diff --git a/share/colldef_unicode/Makefile b/share/colldef_unicode/Makefile --- a/share/colldef_unicode/Makefile +++ b/share/colldef_unicode/Makefile @@ -27,6 +27,8 @@ LOCALES+= en_US.UTF-8 LOCALES+= es_MX.UTF-8 LOCALES+= et_EE.UTF-8 +LOCALES+= fa_AF.UTF-8 +LOCALES+= fa_IR.UTF-8 LOCALES+= fi_FI.UTF-8 LOCALES+= fr_CA.UTF-8 LOCALES+= he_IL.UTF-8 diff --git a/share/colldef_unicode/fa_AF.UTF-8.src b/share/colldef_unicode/fa_AF.UTF-8.src new file mode 100644 --- /dev/null +++ b/share/colldef_unicode/fa_AF.UTF-8.src @@ -0,0 +1,1901 @@ +# Warning: Do not edit. This file is automatically extracted from the +# tools in /usr/src/tools/tools/locale. The data is obtained from the +# CLDR project, obtained from http://cldr.unicode.org/ +# ----------------------------------------------------------------------------- +comment_char * +escape_char / +LC_COLLATE +************* + +collating-element from "" +collating-element from "" +collating-element from "" +collating-element from "" + + +* Define collation weights as symbols + +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol + +order_start forward;forward;forward;forward + + +* collation weights in order + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +* assignment of characters to weights + + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + "";;""; + "";;""; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + "";;""; + "";;""; + ;;; + ;;; + ;;; + ;;; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";;""; + "";;""; + "";;""; + ;;; + ;;; + ;;; + ;;; + ;;; + ;"";""; + ;"";""; + ;;; + ;;; + ;;; + ;;; + ;;; + "";"";""; + "";"";""; + "";"";""; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + "";;""; + "";;""; + "";;""; + ;;; + ;;; + ;;; + ;;; + ;;; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + "";;""; + "";;""; + "";;""; + "";;""; + ;;; + ;;; + ;;; + ;;; + ;;; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + ;;; + ;;; + ;;; + ;;; + ;;; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + ;;; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;"";""; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + "";;""; + "";;""; + "";;""; + ;;; + ;;; + ;;; + ;"";""; + "";"";""; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + ;;; + ;;; + ;;; + ;;; + ;;; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + ;;; + ;;; + ;;; + ;;; + ;;; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + ;;; + ;;; + ;;; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + ;;; + ;;; + ;;; + ;;; + ;;; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + ;;; + ;;; + ;;; + ;;; + ;;; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + ;;; + ;;; + ;;; + ;;; + ;;; + "";"";""; + "";"";""; + "";"";""; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + ;;; + ;;; + ;;; + ;;; + ;;; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + ;;; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + ;;; + ;;; + ;;; + ;;; + ;;; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + ;;; + ;;; + ;;; + ;;; + ;;; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + ;;; + ;;; + ;;; + ;;; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + ;;; + ;;; + ;;; + ;;; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + ;;; + ;;; + ;;; + ;;; + ;;; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";;""; + "";;""; + "";;""; + ;;; + ;;; + ;;; + ;;; + ;;; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + ;;; + ;;; + ;;; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + ;;; + ;;; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;"";""; + ;;; + ;;; + ;"";""; + ;;; + ;;; + ;;; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + "";;""; + "";"";""; + "";"";""; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + "";"";""; + "";"";""; + ;;; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + ;;; + ;;; + "";"";""; + "";"";""; + ;;; + ;;; + ;;; + ;;; + ;;; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + ;;; + ;;; + ;;; + ;;; + ;"";""; + ;"";""; + ;;; + ;;; + ;;; + ;;; + ;;; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;"";""; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + ;;; + ;;; + ;"";""; + ;"";""; + "";;""; + "";;""; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; +

;;;

+

;;;

;;;

+

;;;

+ ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; +UNDEFINED IGNORE;IGNORE;IGNORE;... + +order_end + +END LC_COLLATE diff --git a/share/ctypedef/Makefile b/share/ctypedef/Makefile --- a/share/ctypedef/Makefile +++ b/share/ctypedef/Makefile @@ -81,6 +81,8 @@ SAME+= C.UTF-8 hi_IN.UTF-8 SAME+= C.UTF-8 he_IL.UTF-8 SAME+= C.UTF-8 ga_IE.UTF-8 +SAME+= C.UTF-8 fa_AF.UTF-8 +SAME+= C.UTF-8 fa_IR.UTF-8 SAME+= C.UTF-8 fr_FR.UTF-8 SAME+= C.UTF-8 fr_CH.UTF-8 SAME+= C.UTF-8 fr_CA.UTF-8 diff --git a/share/monetdef_unicode/Makefile b/share/monetdef_unicode/Makefile --- a/share/monetdef_unicode/Makefile +++ b/share/monetdef_unicode/Makefile @@ -32,6 +32,8 @@ LOCALES+= es_AR.UTF-8 LOCALES+= es_CR.UTF-8 LOCALES+= es_MX.UTF-8 +LOCALES+= fa_AF.UTF-8 +LOCALES+= fa_IR.UTF-8 LOCALES+= fr_CA.UTF-8 LOCALES+= fr_CH.UTF-8 LOCALES+= fr_FR.UTF-8 diff --git a/share/monetdef_unicode/fa_AF.UTF-8.src b/share/monetdef_unicode/fa_AF.UTF-8.src new file mode 100644 --- /dev/null +++ b/share/monetdef_unicode/fa_AF.UTF-8.src @@ -0,0 +1,50 @@ +# Warning: Do not edit. This file is automatically generated from the +# tools in /usr/src/tools/tools/locale. The data is obtained from the +# CLDR project, obtained from http://cldr.unicode.org/ +# ----------------------------------------------------------------------------- +# +# int_curr_symbol (last character always SPACE) +AFN +# +# currency_symbol +؋ +# +# mon_decimal_point +٫ +# +# mon_thousands_sep +٬ +# +# mon_grouping +3 +# +# positive_sign + +# +# negative_sign +‎− +# +# int_frac_digits +0 +# +# frac_digits +0 +# +# p_cs_precedes +1 +# +# p_sep_by_space +1 +# +# n_cs_precedes +1 +# +# n_sep_by_space +1 +# +# p_sign_posn +1 +# +# n_sign_posn +1 +# EOF diff --git a/share/monetdef_unicode/fa_IR.UTF-8.src b/share/monetdef_unicode/fa_IR.UTF-8.src new file mode 100644 --- /dev/null +++ b/share/monetdef_unicode/fa_IR.UTF-8.src @@ -0,0 +1,50 @@ +# Warning: Do not edit. This file is automatically generated from the +# tools in /usr/src/tools/tools/locale. The data is obtained from the +# CLDR project, obtained from http://cldr.unicode.org/ +# ----------------------------------------------------------------------------- +# +# int_curr_symbol (last character always SPACE) +IRR +# +# currency_symbol +ریال +# +# mon_decimal_point +٫ +# +# mon_thousands_sep +٬ +# +# mon_grouping +3 +# +# positive_sign + +# +# negative_sign +‎− +# +# int_frac_digits +0 +# +# frac_digits +0 +# +# p_cs_precedes +1 +# +# p_sep_by_space +1 +# +# n_cs_precedes +1 +# +# n_sep_by_space +1 +# +# p_sign_posn +1 +# +# n_sign_posn +1 +# EOF diff --git a/share/msgdef_unicode/Makefile b/share/msgdef_unicode/Makefile --- a/share/msgdef_unicode/Makefile +++ b/share/msgdef_unicode/Makefile @@ -19,6 +19,7 @@ LOCALES+= es_MX.UTF-8 LOCALES+= et_EE.UTF-8 LOCALES+= eu_ES.UTF-8 +LOCALES+= fa_IR.UTF-8 LOCALES+= fi_FI.UTF-8 LOCALES+= fr_FR.UTF-8 LOCALES+= ga_IE.UTF-8 @@ -81,6 +82,7 @@ SAME+= en_US.UTF-8 en_GB.UTF-8 SAME+= en_US.UTF-8 en_CA.UTF-8 SAME+= en_US.UTF-8 en_AU.UTF-8 +SAME+= fa_IR.UTF-8 fa_AF.UTF-8 SAME+= fr_FR.UTF-8 fr_CH.UTF-8 SAME+= fr_FR.UTF-8 fr_CA.UTF-8 SAME+= fr_FR.UTF-8 fr_BE.UTF-8 diff --git a/share/numericdef_unicode/ar_SA.UTF-8.src b/share/msgdef_unicode/fa_IR.UTF-8.src rename from share/numericdef_unicode/ar_SA.UTF-8.src rename to share/msgdef_unicode/fa_IR.UTF-8.src --- a/share/numericdef_unicode/ar_SA.UTF-8.src +++ b/share/msgdef_unicode/fa_IR.UTF-8.src @@ -3,12 +3,15 @@ # CLDR project, obtained from http://cldr.unicode.org/ # ----------------------------------------------------------------------------- # -# decimal_point -٫ +# yesexpr +^((بله)|(ب)|(آری)|(آ)|([yY]([eE][sS])?)|([yY])) # -# thousands_sep -٬ +# noexpr +^((نه)|(ن)|(خیر)|(خ)|([nN]([oO])?)|([nN])) # -# grouping -3 +# yesstr +بله:ب:آری:آ:yes:y:YES:Y +# +# nostr +نه:ن:خیر:خ:no:n:NO:N # EOF diff --git a/share/numericdef_unicode/Makefile b/share/numericdef_unicode/Makefile --- a/share/numericdef_unicode/Makefile +++ b/share/numericdef_unicode/Makefile @@ -9,8 +9,8 @@ .src.out: grep -v -E '^(#$$|#[ ])' < ${.IMPSRC} > ${.TARGET} -LOCALES+= ar_SA.UTF-8 LOCALES+= en_US.UTF-8 +LOCALES+= fa_IR.UTF-8 LOCALES+= fr_FR.UTF-8 LOCALES+= hi_IN.UTF-8 LOCALES+= it_CH.UTF-8 @@ -62,10 +62,12 @@ SAME+= en_US.UTF-8 en_CA.UTF-8 SAME+= en_US.UTF-8 en_AU.UTF-8 SAME+= en_US.UTF-8 am_ET.UTF-8 -SAME+= ar_SA.UTF-8 ar_QA.UTF-8 -SAME+= ar_SA.UTF-8 ar_JO.UTF-8 -SAME+= ar_SA.UTF-8 ar_EG.UTF-8 -SAME+= ar_SA.UTF-8 ar_AE.UTF-8 +SAME+= fa_IR.UTF-8 fa_AF.UTF-8 +SAME+= fa_IR.UTF-8 ar_SA.UTF-8 +SAME+= fa_IR.UTF-8 ar_QA.UTF-8 +SAME+= fa_IR.UTF-8 ar_JO.UTF-8 +SAME+= fa_IR.UTF-8 ar_EG.UTF-8 +SAME+= fa_IR.UTF-8 ar_AE.UTF-8 SAME+= tr_TR.UTF-8 sr_RS.UTF-8@latin SAME+= tr_TR.UTF-8 sr_RS.UTF-8 SAME+= tr_TR.UTF-8 sl_SI.UTF-8 diff --git a/share/numericdef_unicode/ar_SA.UTF-8.src b/share/numericdef_unicode/fa_IR.UTF-8.src rename from share/numericdef_unicode/ar_SA.UTF-8.src rename to share/numericdef_unicode/fa_IR.UTF-8.src diff --git a/share/timedef/Makefile b/share/timedef/Makefile --- a/share/timedef/Makefile +++ b/share/timedef/Makefile @@ -46,6 +46,8 @@ LOCALES+= et_EE.ISO8859-15 LOCALES+= et_EE.UTF-8 LOCALES+= eu_ES.UTF-8 +LOCALES+= fa_AF.UTF-8 +LOCALES+= fa_IR.UTF-8 LOCALES+= fi_FI.ISO8859-15 LOCALES+= fi_FI.UTF-8 LOCALES+= fr_BE.ISO8859-15 diff --git a/share/timedef/fa_AF.UTF-8.src b/share/timedef/fa_AF.UTF-8.src new file mode 100644 --- /dev/null +++ b/share/timedef/fa_AF.UTF-8.src @@ -0,0 +1,83 @@ +# +# Short month names +جنو +فبروری +مارچ +اپریل +می +جون +جول +اگست +سپتمبر +اکتوبر +نومبر +دسم +# +# Long month names (as in a date) +جنوری +فبروری +مارچ +اپریل +می +جون +جولای +اگست +سپتمبر +اکتوبر +نومبر +دسمبر +# +# Short weekday names +یکشنبه +دوشنبه +سه‌شنبه +چهارشنبه +پنجشنبه +جمعه +شنبه +# +# Long weekday names +یکشنبه +دوشنبه +سه‌شنبه +چهارشنبه +پنجشنبه +جمعه +شنبه +# +# X_fmt +%OH:%OM:%OS +# +# x_fmt +%Oy/%Om/%Oe +# +# c_fmt +%Oe %B %Oy، ساعت %OH:%OM:%OS (%Z) +# +# AM/PM +قبل‌ازظهر +بعدازظهر +# +# date_fmt +%Oe %B %Oy، ساعت %OH:%OM:%OS (%Z) +# +# Long month names (without case ending) +جنوری +فبروری +مارچ +اپریل +می +جون +جولای +اگست +سپتمبر +اکتوبر +نومبر +دسمبر +# +# md_order +md +# +# ampm_fmt +%OI:%OM:%OS %p +# EOF diff --git a/share/timedef/fa_IR.UTF-8.src b/share/timedef/fa_IR.UTF-8.src new file mode 100644 --- /dev/null +++ b/share/timedef/fa_IR.UTF-8.src @@ -0,0 +1,83 @@ +# +# Short month names +ژانویهٔ +فوریهٔ +مارس +آوریل +مهٔ +ژوئن +ژوئیهٔ +اوت +سپتامبر +اکتبر +نوامبر +دسامبر +# +# Long month names (as in a date) +ژانویهٔ +فوریهٔ +مارس +آوریل +مهٔ +ژوئن +ژوئیهٔ +اوت +سپتامبر +اکتبر +نوامبر +دسامبر +# +# Short weekday names +یکشنبه +دوشنبه +سه‌شنبه +چهارشنبه +پنجشنبه +جمعه +شنبه +# +# Long weekday names +یکشنبه +دوشنبه +سه‌شنبه +چهارشنبه +پنجشنبه +جمعه +شنبه +# +# X_fmt +%OH:%OM:%OS +# +# x_fmt +%Oy/%Om/%Oe +# +# c_fmt +%Oe %B %Oy، ساعت %OH:%OM:%OS (%Z) +# +# AM/PM +قبل‌ازظهر +بعدازظهر +# +# date_fmt +%Oe %B %Oy، ساعت %OH:%OM:%OS (%Z) +# +# Long month names (without case ending) +ژانویهٔ +فوریهٔ +مارس +آوریل +مهٔ +ژوئن +ژوئیهٔ +اوت +سپتامبر +اکتبر +نوامبر +دسامبر +# +# md_order +md +# +# ampm_fmt +%OI:%OM:%OS %p +# EOF diff --git a/tools/tools/locale/Makefile b/tools/tools/locale/Makefile --- a/tools/tools/locale/Makefile +++ b/tools/tools/locale/Makefile @@ -107,7 +107,7 @@ be_BY bg_BG ca_AD ca_ES ca_FR ca_IT \ cs_CZ da_DK de_AT de_CH de_DE el_GR en_AU en_CA \ en_GB en_HK en_IE en_NZ en_PH en_SG en_US en_ZA \ - es_AR es_CR es_ES es_MX et_EE eu_ES fi_FI fr_BE \ + es_AR es_CR es_ES es_MX et_EE eu_ES fa_AF fa_IR fi_FI fr_BE \ fr_CA fr_CH fr_FR ga_IE he_IL hi_IN hr_HR hu_HU hy_AM \ is_IS it_CH it_IT ja_JP ko_KR lt_LT lv_LV \ nb_NO nl_BE nl_NL nn_NO pl_PL pt_BR pt_PT ro_RO \ diff --git a/tools/tools/locale/etc/charmaps.xml b/tools/tools/locale/etc/charmaps.xml --- a/tools/tools/locale/etc/charmaps.xml +++ b/tools/tools/locale/etc/charmaps.xml @@ -68,6 +68,8 @@ countries="EE" /> +

+ ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; +UNDEFINED IGNORE;IGNORE;IGNORE;... + +order_end + +END LC_COLLATE diff --git a/share/colldef_unicode/fa_IR.UTF-8.src b/share/colldef_unicode/fa_IR.UTF-8.src new file mode 100644 --- /dev/null +++ b/share/colldef_unicode/fa_IR.UTF-8.src @@ -0,0 +1,1895 @@ +# Warning: Do not edit. This file is automatically extracted from the +# tools in /usr/src/tools/tools/locale. The data is obtained from the +# CLDR project, obtained from http://cldr.unicode.org/ +# ----------------------------------------------------------------------------- +comment_char * +escape_char / +LC_COLLATE +************* + +collating-element from "" +collating-element from "" + + +* Define collation weights as symbols + +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol + +order_start forward;forward;forward;forward + + +* collation weights in order + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +* assignment of characters to weights + + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + "";;""; + "";;""; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + "";;""; + "";;""; + ;;; + ;;; + ;;; + ;;; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";;""; + "";;""; + "";;""; + ;;; + ;;; + ;;; + ;;; + ;;; + ;"";""; + ;"";""; + ;;; + "";"";""; + "";"";""; + "";"";""; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + ;;; + ;;; + ;;; + ;;; + ;;; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + "";;""; + "";;""; + "";;""; + ;;; + ;;; + ;;; + ;;; + ;;; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + "";;""; + "";;""; + "";;""; + "";;""; + ;;; + ;;; + ;;; + ;;; + ;;; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + ;;; + ;;; + ;;; + ;;; + ;;; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + ;;; + ;;; + ;;; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;"";""; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + "";;""; + "";;""; + "";;""; + ;;; + ;;; + ;;; + ;"";""; + "";"";""; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + ;;; + ;;; + ;;; + ;;; + ;;; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + ;;; + ;;; + ;;; + ;;; + ;;; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + ;;; + ;;; + ;;; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + ;;; + ;;; + ;;; + ;;; + ;;; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + ;;; + ;;; + ;;; + ;;; + ;;; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + ;;; + ;;; + ;;; + ;;; + ;;; + "";"";""; + "";"";""; + "";"";""; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + ;;; + ;;; + ;;; + ;;; + ;;; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + ;;; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + ;;; + ;;; + ;;; + ;;; + ;;; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + ;;; + ;;; + ;;; + ;;; + ;;; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + ;;; + ;;; + ;;; + ;;; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + ;;; + ;;; + ;;; + ;;; + ;;; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + ;;; + ;;; + ;;; + ;;; + ;;; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";;""; + "";;""; + "";;""; + ;;; + ;;; + ;;; + ;;; + ;;; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + ;;; + ;;; + ;;; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + ;;; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + ;;; + ;;; + ;;; + ;;; + ;"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + "";;""; + "";"";""; + "";"";""; + ;;; + ;;; + ;;; + ;;; + "";"";""; + "";"";""; + ;;; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + ;;; + ;;; + ;;; + "";"";""; + "";"";""; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";"";""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + ;;; + ;;; + ;;; + ;;; + ;"";""; + ;"";""; + ;;; + ;;; + ;;; + ;;; + ;;; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;"";""; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + ;;; + ;;; + ;"";""; + ;"";""; + "";;""; + "";;""; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; +