From 566399c1357be29593632cf7e17be4e1a8209556 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pavel=20Rosick=C3=BD?= Date: Thu, 27 Feb 2025 01:00:32 +0100 Subject: [PATCH 1/2] update unicode to 15.0 --- resources/tables/CR_Age_14_0.bin | Bin 0 -> 5656 bytes resources/tables/CR_Age_15_0.bin | Bin 0 -> 5728 bytes resources/tables/CR_Ahom.bin | Bin 32 -> 32 bytes resources/tables/CR_Alnum.bin | Bin 5864 -> 6184 bytes resources/tables/CR_Alpha.bin | Bin 5568 -> 5864 bytes resources/tables/CR_Arabic.bin | Bin 464 -> 472 bytes resources/tables/CR_Assigned.bin | Bin 5424 -> 5664 bytes resources/tables/CR_Balinese.bin | Bin 24 -> 24 bytes resources/tables/CR_Brahmi.bin | Bin 32 -> 32 bytes resources/tables/CR_C.bin | Bin 5440 -> 5704 bytes resources/tables/CR_Canadian_Aboriginal.bin | Bin 24 -> 32 bytes resources/tables/CR_Case_Ignorable.bin | Bin 3288 -> 3504 bytes resources/tables/CR_Cased.bin | Bin 1136 -> 1264 bytes resources/tables/CR_Cf.bin | Bin 168 -> 176 bytes .../tables/CR_Changes_When_Casefolded.bin | Bin 4920 -> 4984 bytes .../tables/CR_Changes_When_Casemapped.bin | Bin 1000 -> 1056 bytes .../tables/CR_Changes_When_Lowercased.bin | Bin 4816 -> 4880 bytes .../tables/CR_Changes_When_Titlecased.bin | Bin 4952 -> 5016 bytes .../tables/CR_Changes_When_Uppercased.bin | Bin 4960 -> 5024 bytes resources/tables/CR_Cn.bin | Bin 5424 -> 5664 bytes resources/tables/CR_Common.bin | Bin 1392 -> 1392 bytes resources/tables/CR_Cypro_Minoan.bin | Bin 0 -> 16 bytes resources/tables/CR_Cyrillic.bin | Bin 72 -> 88 bytes resources/tables/CR_Dash.bin | Bin 184 -> 192 bytes .../CR_Default_Ignorable_Code_Point.bin | Bin 144 -> 144 bytes resources/tables/CR_Devanagari.bin | Bin 40 -> 48 bytes resources/tables/CR_Diacritic.bin | Bin 1416 -> 1568 bytes resources/tables/CR_Digit.bin | Bin 496 -> 520 bytes resources/tables/CR_Egyptian_Hieroglyphs.bin | Bin 24 -> 16 bytes resources/tables/CR_Emoji.bin | Bin 1224 -> 1216 bytes resources/tables/CR_Emoji_Modifier_Base.bin | Bin 312 -> 328 bytes resources/tables/CR_Emoji_Presentation.bin | Bin 656 -> 656 bytes resources/tables/CR_Ethiopic.bin | Bin 264 -> 296 bytes resources/tables/CR_Extender.bin | Bin 264 -> 272 bytes resources/tables/CR_Glagolitic.bin | Bin 64 -> 56 bytes resources/tables/CR_Graph.bin | Bin 5464 -> 5704 bytes resources/tables/CR_Grapheme_Base.bin | Bin 6680 -> 7008 bytes .../CR_Grapheme_Cluster_Break_Control.bin | Bin 160 -> 160 bytes .../CR_Grapheme_Cluster_Break_Extend.bin | Bin 2768 -> 2920 bytes .../CR_Grapheme_Cluster_Break_Prepend.bin | Bin 112 -> 128 bytes .../CR_Grapheme_Cluster_Break_SpacingMark.bin | Bin 1280 -> 1328 bytes resources/tables/CR_Grapheme_Extend.bin | Bin 2760 -> 2912 bytes resources/tables/CR_Grapheme_Link.bin | Bin 440 -> 456 bytes resources/tables/CR_Han.bin | Bin 160 -> 176 bytes resources/tables/CR_Hiragana.bin | Bin 48 -> 56 bytes resources/tables/CR_ID_Continue.bin | Bin 5848 -> 6152 bytes resources/tables/CR_ID_Start.bin | Bin 4984 -> 5280 bytes resources/tables/CR_Ideographic.bin | Bin 160 -> 168 bytes resources/tables/CR_In_Ahom.bin | Bin 16 -> 16 bytes resources/tables/CR_In_Arabic_Extended_B.bin | Bin 0 -> 16 bytes resources/tables/CR_In_Arabic_Extended_C.bin | Bin 0 -> 16 bytes ..._In_CJK_Unified_Ideographs_Extension_H.bin | Bin 0 -> 16 bytes resources/tables/CR_In_Cypro_Minoan.bin | Bin 0 -> 16 bytes .../tables/CR_In_Cyrillic_Extended_D.bin | Bin 0 -> 16 bytes .../tables/CR_In_Devanagari_Extended_A.bin | Bin 0 -> 16 bytes ...In_Egyptian_Hieroglyph_Format_Controls.bin | Bin 16 -> 16 bytes .../tables/CR_In_Ethiopic_Extended_B.bin | Bin 0 -> 16 bytes resources/tables/CR_In_Kaktovik_Numerals.bin | Bin 0 -> 16 bytes resources/tables/CR_In_Kana_Extended_B.bin | Bin 0 -> 16 bytes resources/tables/CR_In_Kawi.bin | Bin 0 -> 16 bytes resources/tables/CR_In_Latin_Extended_F.bin | Bin 0 -> 16 bytes resources/tables/CR_In_Latin_Extended_G.bin | Bin 0 -> 16 bytes resources/tables/CR_In_Nag_Mundari.bin | Bin 0 -> 16 bytes resources/tables/CR_In_No_Block.bin | Bin 440 -> 416 bytes resources/tables/CR_In_Old_Uyghur.bin | Bin 0 -> 16 bytes resources/tables/CR_In_Tangsa.bin | Bin 0 -> 16 bytes resources/tables/CR_In_Tangut_Supplement.bin | Bin 16 -> 16 bytes resources/tables/CR_In_Toto.bin | Bin 0 -> 16 bytes ...nadian_Aboriginal_Syllabics_Extended_A.bin | Bin 0 -> 16 bytes resources/tables/CR_In_Vithkuqi.bin | Bin 0 -> 16 bytes .../CR_In_Znamenny_Musical_Notation.bin | Bin 0 -> 16 bytes resources/tables/CR_Inherited.bin | Bin 232 -> 240 bytes resources/tables/CR_Kaithi.bin | Bin 24 -> 24 bytes resources/tables/CR_Kannada.bin | Bin 112 -> 112 bytes resources/tables/CR_Katakana.bin | Bin 80 -> 120 bytes resources/tables/CR_Kawi.bin | Bin 0 -> 32 bytes resources/tables/CR_Khojki.bin | Bin 24 -> 24 bytes resources/tables/CR_L.bin | Bin 4984 -> 5280 bytes resources/tables/CR_LC.bin | Bin 1064 -> 1152 bytes resources/tables/CR_Lao.bin | Bin 96 -> 96 bytes resources/tables/CR_Latin.bin | Bin 264 -> 320 bytes resources/tables/CR_Ll.bin | Bin 5168 -> 5272 bytes resources/tables/CR_Lm.bin | Bin 496 -> 576 bytes resources/tables/CR_Lo.bin | Bin 3920 -> 4088 bytes resources/tables/CR_Lower.bin | Bin 5224 -> 5376 bytes resources/tables/CR_Lu.bin | Bin 5112 -> 5176 bytes resources/tables/CR_M.bin | Bin 2328 -> 2488 bytes resources/tables/CR_Mc.bin | Bin 1408 -> 1464 bytes resources/tables/CR_Mn.bin | Bin 2624 -> 2776 bytes resources/tables/CR_Mongolian.bin | Bin 64 -> 56 bytes resources/tables/CR_N.bin | Bin 1072 -> 1104 bytes resources/tables/CR_Nag_Mundari.bin | Bin 0 -> 16 bytes resources/tables/CR_No.bin | Bin 576 -> 584 bytes resources/tables/CR_Old_Uyghur.bin | Bin 0 -> 16 bytes resources/tables/CR_Other_Alphabetic.bin | Bin 1848 -> 1928 bytes resources/tables/CR_Other_Lowercase.bin | Bin 168 -> 232 bytes resources/tables/CR_Pd.bin | Bin 152 -> 160 bytes resources/tables/CR_Pe.bin | Bin 584 -> 616 bytes resources/tables/CR_Po.bin | Bin 1456 -> 1504 bytes .../CR_Prepended_Concatenation_Mark.bin | Bin 56 -> 64 bytes resources/tables/CR_Print.bin | Bin 5440 -> 5680 bytes resources/tables/CR_Ps.bin | Bin 608 -> 640 bytes resources/tables/CR_Punct.bin | Bin 1488 -> 1536 bytes resources/tables/CR_S.bin | Bin 1840 -> 1864 bytes resources/tables/CR_Sc.bin | Bin 176 -> 176 bytes resources/tables/CR_Sentence_Terminal.bin | Bin 616 -> 648 bytes resources/tables/CR_Sk.bin | Bin 248 -> 256 bytes resources/tables/CR_So.bin | Bin 1464 -> 1480 bytes resources/tables/CR_Soft_Dotted.bin | Bin 256 -> 280 bytes resources/tables/CR_Tagalog.bin | Bin 24 -> 24 bytes resources/tables/CR_Takri.bin | Bin 24 -> 24 bytes resources/tables/CR_Tangsa.bin | Bin 0 -> 24 bytes resources/tables/CR_Telugu.bin | Bin 104 -> 112 bytes resources/tables/CR_Terminal_Punctuation.bin | Bin 840 -> 872 bytes resources/tables/CR_Toto.bin | Bin 0 -> 16 bytes resources/tables/CR_Unified_Ideograph.bin | Bin 128 -> 136 bytes resources/tables/CR_Unknown.bin | Bin 5408 -> 5648 bytes resources/tables/CR_Upper.bin | Bin 5152 -> 5216 bytes resources/tables/CR_Variation_Selector.bin | Bin 32 -> 40 bytes resources/tables/CR_Vithkuqi.bin | Bin 0 -> 72 bytes resources/tables/CR_Word.bin | Bin 5864 -> 6168 bytes resources/tables/CR_XID_Continue.bin | Bin 5904 -> 6208 bytes resources/tables/CR_XID_Start.bin | Bin 5040 -> 5336 bytes resources/tables/CR_XPosixPunct.bin | Bin 1448 -> 1496 bytes resources/tables/CaseFold.bin | Bin 18364 -> 18844 bytes resources/tables/CaseUnfold_11.bin | Bin 16384 -> 16864 bytes .../Transcoder_SingleByte_ByteArray.bin | Bin 26606 -> 27903 bytes .../Transcoder_SingleByte_WordArray.bin | Bin 51392 -> 52764 bytes scripts/generate.rb | 2 +- src/org/jcodings/Config.java | 10 +-- .../jcodings/transcode/TranscoderList.java | 68 ++++++++++-------- .../jcodings/unicode/UnicodeCodeRange.java | 35 ++++++++- 132 files changed, 77 insertions(+), 38 deletions(-) create mode 100644 resources/tables/CR_Age_14_0.bin create mode 100644 resources/tables/CR_Age_15_0.bin create mode 100644 resources/tables/CR_Cypro_Minoan.bin create mode 100644 resources/tables/CR_In_Arabic_Extended_B.bin create mode 100644 resources/tables/CR_In_Arabic_Extended_C.bin create mode 100644 resources/tables/CR_In_CJK_Unified_Ideographs_Extension_H.bin create mode 100644 resources/tables/CR_In_Cypro_Minoan.bin create mode 100644 resources/tables/CR_In_Cyrillic_Extended_D.bin create mode 100644 resources/tables/CR_In_Devanagari_Extended_A.bin create mode 100644 resources/tables/CR_In_Ethiopic_Extended_B.bin create mode 100644 resources/tables/CR_In_Kaktovik_Numerals.bin create mode 100644 resources/tables/CR_In_Kana_Extended_B.bin create mode 100644 resources/tables/CR_In_Kawi.bin create mode 100644 resources/tables/CR_In_Latin_Extended_F.bin create mode 100644 resources/tables/CR_In_Latin_Extended_G.bin create mode 100644 resources/tables/CR_In_Nag_Mundari.bin create mode 100644 resources/tables/CR_In_Old_Uyghur.bin create mode 100644 resources/tables/CR_In_Tangsa.bin create mode 100644 resources/tables/CR_In_Toto.bin create mode 100644 resources/tables/CR_In_Unified_Canadian_Aboriginal_Syllabics_Extended_A.bin create mode 100644 resources/tables/CR_In_Vithkuqi.bin create mode 100644 resources/tables/CR_In_Znamenny_Musical_Notation.bin create mode 100644 resources/tables/CR_Kawi.bin create mode 100644 resources/tables/CR_Nag_Mundari.bin create mode 100644 resources/tables/CR_Old_Uyghur.bin create mode 100644 resources/tables/CR_Tangsa.bin create mode 100644 resources/tables/CR_Toto.bin create mode 100644 resources/tables/CR_Vithkuqi.bin diff --git a/resources/tables/CR_Age_14_0.bin b/resources/tables/CR_Age_14_0.bin new file mode 100644 index 0000000000000000000000000000000000000000..30faf1fc4e0f583b1a82d6116cad1fbbed985bfc GIT binary patch literal 5656 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 Md^hBruN@ire+L+fLjV8( literal 0 HcmV?d00001 diff --git a/resources/tables/CR_Age_15_0.bin b/resources/tables/CR_Age_15_0.bin new file mode 100644 index 0000000000000000000000000000000000000000..f3aaf078992913449286aa6daa2f55c9579ed389 GIT binary patch literal 5728 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 literal 0 HcmV?d00001 diff --git a/resources/tables/CR_Ahom.bin b/resources/tables/CR_Ahom.bin index 7a42287051b66e115720e1bb2771a961e739fce3..9559430f81c3e936e46c341eff3dfa54b05e4ebb 100644 GIT binary patch delta 6 NcmY#Tm>|#S1^@(00XF~u delta 6 NcmY#Tm>|z+4*Wbgn diff --git a/resources/tables/CR_Alnum.bin b/resources/tables/CR_Alnum.bin index 0d05c34a811dfd6c56f173187f0cd945eb385313..83f5220e70cfa9170cef7eb6ea2a643c7086952b 100644 GIT binary patch delta 621 zcmXZXO=wd=6o%n*lHA){t4Zu74HROeK_~@DsHLC_X+evEi%=-RMYZ5U5GrvYinyqX z6h$<26kP~L0@jTr@e0--q`0yoS`k4Pnh--$5Pypc5vy;Yi-$93=9@Xp(&pPKN5pOy z@dwIIK_giaXBy{l5qT_lb9%#P_6K%Y<05OvO+IiS_JP$$RPhN7e8UecdmF8c>KX62 z9aYN}iN?+KwuasPLZthpnR24K$Ghef)nwNEGy6Jr$DWJKF5)%bta?j*kDuPXj$6LN zR#wzHfs;6o3z)%WT)|b`L;+=Zcz{QEENY8r+aQK8h6x(?GBh(`wRxwev8%@L0_k@(>JSV mU4E3C^fqk)>Jl&>`_>^jZNM6cb8(|1Y8lD| zY{hG_Wj=|8^vt&M=~D-)NwlN4<9TvyAfFalQQ(8btLFpoD`G}0iX~CgZR?DjA~01F z>mtb2n*T z_uK|?GSi`mPc!$tpB<0O6jh7-key^Rx0UWm_Q%AEXy{?CO#C|W$UxP_b7D3Enqd)csvPo-okeETI(sKxr9lA)65g|pG z_!I?Q3=f`STfc)^A){Lnv526c+O)7i6f5ZzS?{5T7oX<~pYOwSc#56XowkTIC*u21 zu&2}=60t{d9b=fpb8l8J`^;f~+UghC&~HZkr`?a7KB0oo_=#n&=1-_z^*S1(YPE=j zqoy}7-yV4>5_u)kCfJR=ID(_-^*ZdFnsU=Wv$U>n%L|d|5?)3Bd+>^Jf^F^v zQRgBkJF|FJXOhA5+T%?IW7-%_iH0+#=-k)5IkRcT715}J5DuanDdU7B;lVcSsLSLuOLx@wI_NtYSb!DS`qvGK UyPvA;7CG`lTD||LoV3RLKmM#y@Bjb+ diff --git a/resources/tables/CR_Arabic.bin b/resources/tables/CR_Arabic.bin index 26666f5d0376adbba0617f59c2abcadaf01b648e..b7a3b8482dbda641617a20c484f02a20f015099d 100644 GIT binary patch delta 133 zcmcb>e1n;Tfq|hEh^;1a$WPQa$t_@D;OGP52|zp%h-U!tLm++(#Qzx>eg^>YAt1iY z!0^`=h#i2qABZOb@o^wN55*sVG*JCNpn3mFfVd2Z|1dD}B>-_95dQ_@{~HeoFaiLY C94N#9 delta 123 zcmcb?e1VyRfq|hIh%F~_$g|2YFtEu@R56cTz`($<1&Fr+@o^x&48#wC_%RUwXJGgp z0K^A@7%2YN7KnlTzx_Zw35bE}|9$}CzYGlj3V^r-h|7TZ4+A4#0ua}2JR!gc0GXL2 AJ^%m! diff --git a/resources/tables/CR_Assigned.bin b/resources/tables/CR_Assigned.bin index 65c8c14084e1bc74280d419b0a64cc4fbc1d70b0..3eeb82e7479387d150372845c7402ff775989287 100644 GIT binary patch delta 791 zcmXZaUr1AN6bJBgT=U*#``c7-=q!oZNH!!a#e@n)B1kGBk%dn^1kqlS$S4WIipXuJ zXpcz`J_K!cAJVcCC9;TVlVDQekYUl^q2%nE+E?=7!;kwrzjJy+ zOU8ImeECs(g2+X17+TZ8n2*PzKH@i*eh;5f)RGQ64c)vu=Ydj=Ti<_Hd z(9&f_rIICL41--J*=v1(IkDRY4yc0$Xp^+H+Tsfl`{s%LII_D{%55IgbK=t@@LHN} zS88He;@ATGhGjrsu~p(Y5(c(I^@bL#N1=6{q-=FXm=#Y{fghRxM<&L^W-qpXB~Bum zYy{kuoD#o1X_>*+Od0F|Z^YrXq>-9F1HJ2{(owN5L_GTtkT&}V*8a;(5@+!JISq60 z1-`)#_z789)lN7xuKGy4_#Lpd_?I|`Yjd5@1=D~MIi%(g&t=8$tT~_`Bi1_rz34%} zqwC#p4MOk?UcgI8zz0AX9bM=sqc6#z(`}leyng)nk836E+^HD0wveGBCTd~jKL^6` A%m4rY delta 570 zcmWmCK}b|l6b9h`%s6kJ*?aTG8VW~eim=fbOlYVG(nUlo@aA6Uxq=H1UX+|geTYOy3J?EZ#E?hTTI$;8l%RuP) zlsRS??SPS*8ov~G0dtP#=^d@kzAc30yyn6gy&fKt&-x~ulr3Eg|CD7fXo`uoA2?*w zK{}%AkqZ$jy-KGz;45?qGQMy4z sx<#z1v!>4D^#}BbW~fB-7%-dbn_>Kruj!+|ws%D^a455fQwCIW^4 delta 14 ScmY#Tm>|xX&%h{955fQv@B)AU diff --git a/resources/tables/CR_C.bin b/resources/tables/CR_C.bin index ced4d6c7bd5ff14679e40b0cf8ba2a9b5257e59e..3a41f40f8ea591ca27873e8a68b7431f5740065c 100644 GIT binary patch delta 886 zcmXZZUr1AN6bJBgwl+82=B7=-sY4c6xw5c7IZUv~SkiEG-MW1*+=ma}d(ZFpJNMjsKkiTYEkveq zB13B265;ys(U3JvWQoGl`1c_L2jsG`+0;*D8;}v>MP8At(ZhKu8graZZ0@RLQw>pV zqgc#AcE|OWpVx_`Lg2@u-xPUd1D!nI%`wIEYSo`Ok{LR zNX;^ACC*qq+%QG7gXPi~VAfI!=3xPHiP7?IJ~2#e(mc`$Qu9Rj9I1J&dxz9a%1VXD z9U(5euZtr!?-Tiov+OPsSMG&Y=z}mklyi2k>jts&E==mC%@N1)It(Av;EX2jgTv4UA?Su4=#`?gy=xv@(g&dxf`BdQX+V8p z8<305fbX$*9d5x-Kt0n1Nm!D8SH|%brByHNffn&swb;=#dkr4LnDkWnI-AiZImB?HVS^2q7v_jZWf994klJrGQ7wF@@>1= W-21AH)gdzaUXg=Ta`10*s_K6>a2Tcl delta 650 zcmXZXUr1AN6bJBgwsv>>b9e7F`{Nu7(pDkNpc0~*PbnmhP(pfeZ{b6fP$4yH4?WmJ zQ0w&8!(O6M1R}SP9%9p81jRpliJ(%dmq3}2Z0x%0ukT_H9}d5B_?*)72iD0_6zARith_9S-FS$S{ta$IVL;*U}bM7T%V%#<%r z+**}a=3BXLovIH%9g}xfl*it-*80mXKO51L8^)u+YkFxDS5-`Qjzn z-&B-x(+P<+A2IU8KONX1{zdkaW}7=!iOU;M0vGV9atG4z6;Q9N%Z-+^>FPb=|8Qs( zoFPcUO}GVjVH{F`@6H4~g*Pw>(~yVHumoQ~5pPSwJYos3p;F{|{R0rE&p@0cc%Xf6 MfD{FIlPsnF0VIvm-T(jq diff --git a/resources/tables/CR_Canadian_Aboriginal.bin b/resources/tables/CR_Canadian_Aboriginal.bin index 7b9e122ed9a0d0e5f0ff9e4f27c69856d0d34659..83bef94ea78e7acd77251322648de62de352f12f 100644 GIT binary patch literal 32 jcmZQzU|?rpU|?oo5CKwR^$ZLW8-VyL1EbUiAl?rECBFnN literal 24 ccmZQzU|?lnU|?ck5CKwR^$ZLW8-VyL01Pt%h5!Hn diff --git a/resources/tables/CR_Case_Ignorable.bin b/resources/tables/CR_Case_Ignorable.bin index 873143526bd18f3fb32b88f236b1b3e6da67b5f4..03c5a5728b3723ae6a7827219934c84d6ecdc28c 100644 GIT binary patch delta 370 zcmXZXze~eF6bJD4Y>y-u+TtKB4jG&)6-$s(u`SZ9f(Q=&2Sq68&`}Cvw`$+wq81#w znQCwmr!3-P+;mLENrj3(Ch^Bt%<$p+?%mzv?k>}x(1~I-B0f9OmpIcR(*NwhF6_Y} zTzRYPuqqOnMd^;*^0hQ#mpmh-xWh?l#oOqlRp1TP0;^Y|-n*C6=9zt|>z#3JlUUn= zZRo=(oOg_ho%kY7{17Lrun0}S$rMLsk=RSsBkRZwSurM+kII*ZQB!5&v9cE$k341J zD;DlrHWZ)~sURVr1N8C^EX&Pk!FFGW-8cAvPr#GhZ{mx6IDjr35eFC@WC0_Bs-(?k cHbfb&LHpkT>%koH{c+?OIV65~0_mC4znke?;{X5v delta 162 zcmdlWeM6Fifq~hSfq`+>Mvh=c#><;a7~L5sA7;A3cy{s(=HrYelM`6n8Tlr!VCiQ( zFxi6jJnK&e2HD@6S=iheHwUxZFftyTJb`1Mgc}BwgA#@lQ(cG zPrl8WvDusJIU}2i0Ry9n#pDDYE51E*85sA>1L6fhym;~jo+jRhK-q`342+N70P*B{ GUPAz*=`Rid diff --git a/resources/tables/CR_Cased.bin b/resources/tables/CR_Cased.bin index 7599c2cafb15bfadb9b3f3690b01ee819690b350..daa2be21a300f2de65133d1b7cfd7635327316e3 100644 GIT binary patch delta 223 zcmXZWKMMhI9Dwof&)wxNn-_3dET&s!kymiDWH%^flR-&WvbZCYK?Z{bH~I4lOeBNp zyoAdjVekxwPtW?qW^9=vsvsiMq4`nYP*+VAcnLRu6j_{b#^vuyZ+PH|7v3UE2W3=H z^R-gdXoxaeXrqq-e2g&01T)OBMu;u;IEYGi{<^dW4=Zf23yWG>*%9NBg%oULkrQ=y JP!C)^^8-@&Ho*V@ delta 95 zcmeys`GJFjfq_w)fq|iSBFAsWznfVYiy3+K7#MU6fH)3_6DF511#9kSU|4<#h))6W mS0Mfd#6N)e7X!m;pvu)zKpX?a8IzcuHZNipV4Qr3MGgSd5*ua! diff --git a/resources/tables/CR_Cf.bin b/resources/tables/CR_Cf.bin index bbe8747a0c65c89d7331be657491355d206eb17b..d91a2a7af86fdd57cedf579a75e0b6461724b523 100644 GIT binary patch delta 30 kcmZ3%xPg&_fq_9Ah(#xIXtPdWVBnZI(IA}Beqx6L08*_6CIA2c delta 24 ecmdnMxPp;`fq_92h(#uHXiu~bVYHYyK>+|aR|Nh5 diff --git a/resources/tables/CR_Changes_When_Casefolded.bin b/resources/tables/CR_Changes_When_Casefolded.bin index 44b80e22326686d56ae42213eb55b6037b9746ec..f2dfd97e4c986bd7fe6f266ee106a362d52c349b 100644 GIT binary patch delta 117 zcmdm?_Ct+>fq~^N0|QguMvnQsjQX2b@G7&K9$;Wt4#J0^_y~|b4#X#+_yUjy;cHNQ m14!SP{6NS`j|B# delta 36 scmeyNwnL4Bfq~^L0|QgqMvnQsjCz|_@G7%TzAPj$nOWF;a+I(f0KLTt@Bjb+ diff --git a/resources/tables/CR_Changes_When_Casemapped.bin b/resources/tables/CR_Changes_When_Casemapped.bin index 9393bd6f284bdec99fe78a135d739e336522f8cb..d78583379894e3118255f85aa5c86539d234a0ca 100644 GIT binary patch delta 110 zcmaFCzJP;+fq{{ofq|iUBgb*3$@iH$1Wz$AEWZH67lHU15Z|0!z#L@9TEM`_S_Q;4 qK->kyJwQAOh^GMYR3M%X#0!CVF%WMA;>|$36Nq;M@t(;Cm^A+28QK_fcVtp4CbK8znIkk DVWke( diff --git a/resources/tables/CR_Changes_When_Lowercased.bin b/resources/tables/CR_Changes_When_Lowercased.bin index a6eeb60dd25dbf4bbab710f5e9155826bc7d21aa..61fc097ba11143017d39351aaf668135411c28b2 100644 GIT binary patch delta 117 zcmcbhIzf$tfq~^P0|QgyMh<^oM*YnZyvnSm2N)QZgYY3JJ_4kV1Mx{Hz5t{__!<=7 m0Ma)mPY_a)V=Z7{WUT_?8X)ch;vOKL1jJK-cgjPaWf@G7&i9%NuxesJ;wA!*TzKo$sJhvJ(+`sU;x hLQZn5(-|097XtBOAl?YXn}K*I5bp-!J(Dej6##wU8)*Ol delta 54 zcmbQCenX9efq~^J0|QgmMvm>gjB%R}@G7&49%f)z4#Fp(_!N*nHCaN~X>ygY900fA B5YGSr diff --git a/resources/tables/CR_Changes_When_Uppercased.bin b/resources/tables/CR_Changes_When_Uppercased.bin index f4a0cc2683cd8cfc8e7b459df166f2c39daab1dc..c7b0ed1369750797bfe96be90e86918c5800d38d 100644 GIT binary patch delta 116 zcmaE$wm_YOfq~^Y0|Qg>MvncwjPaXK@G7&K9%Nux4#J0__ymv!;Zsn25lDmZbtt|G lq;F0Vc9LVA&cMjJ5QrB8@kSut48%KucsCI5nd~5}003ENB2oYV delta 36 scmZ3W{y>d`fq~^Z0|Qg`MvncwjB%S!@G7%T{wyRhSy|YAa+9ze0K-TMumAu6 diff --git a/resources/tables/CR_Cn.bin b/resources/tables/CR_Cn.bin index 1c64620dcecd4f33d1c5f32707c8fd8cd6f1152e..c6eeee60744eb623b23cf7290b8bd2f4d4c1e402 100644 GIT binary patch delta 880 zcmXZaOGs2v9LMqhaU5sV#+fl6;P^lktele2UWzWtauG2>;zGrsrHckyRAl8MC@N^Q z6VBt$UU1VJweB}B_k~nnLZr>Ys@!@yRIsfy&=Wy@vjt4=vi1V6A z#@L|y)Zm%J{;-HUV!KV=8<_}as3yJNQRD0u+0vuC9bIKfp5|>!RX1?M4Mn|0qG7b!7C0>=%t~4o zjbaj}sNw)h5d`94=uG%xc|&|FrGbvQ6zNGKb!ZNsrd?2qgHSDYdthuIE`Bv(AD`>%@I+HQLt^%z+X{c zMAT9ojF;!JZ2Li4QZ_Tzo*z>?KZ#oV38vRJ!E4j!Z~=3mMVf7C*3&CGSg^O(;GV`w za26wsOX$aSMDW)3p8S9$Xk&Z>Z45q;VTxMkFZyqaWPY6!o2FzuUI6)`Q6~$wyBu3X L;;0(dnT5fB-nkSf delta 614 zcmXZXO=uHQ5C`!8OU!0#T{o$$DUE9sEon7a1wT+k3yKOB0<{Ne!GI?Z#r9AU3F^Uv zM~!o|5W$b42W?rT2ts1bL9|#K1nWTyS`k4>L2c>EcKvV3;m7c1-pqS*Co{TD2O=kd z(EWmbR?}=ivkT{r$BTgewC)vSb*wxPQU_&cI4!yGY5NnfX0~pQ@f*$8{g(IPntJP0 zR+-8$fJDHel*~kqL`h@FW} znOmEW@J7p$^qY@lM{HLxc{gh-_Dg>(&1Z*W*Mj_5in7GL;s-WPG4*bN7^l<34^96d zo~y@XGG3L(P3`i%X_HZc`r^_u)K@r1*Eyi1Ko==bYy65gOkk6{}tTTHF5v DuqnZo diff --git a/resources/tables/CR_Common.bin b/resources/tables/CR_Common.bin index 0ef91f6edac8ab81607ae6d9c8f184ab52eda4dd..a78a02bd205ebaf0ea1d505379efb0a326d66360 100644 GIT binary patch delta 175 zcmWN}F$+Oa7=YpL>oT~5-(a*@*;#CES)`QBq)ZkDqw&`H1IiyzcQIT!B`d`w2BR>X z$<@i=9iHi}*M%-zwN$N%bfCRttz9jq3(<5bdW^6$rJz=Lik>XaNhfG%Lx`oN+O7J%kuygb8RIjpObXSYm@1TO4shimPpx>wmr(L$&|_ diff --git a/resources/tables/CR_Cypro_Minoan.bin b/resources/tables/CR_Cypro_Minoan.bin new file mode 100644 index 0000000000000000000000000000000000000000..3df632d633f7f7f7b36c9a5ce13af8bc9e9f4105 GIT binary patch literal 16 VcmZQzU|?ooU|?im)Sm#vp8y4f0p|b! literal 0 HcmV?d00001 diff --git a/resources/tables/CR_Cyrillic.bin b/resources/tables/CR_Cyrillic.bin index b3ace34d3650da2d1db7c714745db1f548801a61..eebdc4ce0e8504e6f7562a148039719cbf32ec8f 100644 GIT binary patch delta 31 fcmeZ>;9y{25Cvkci5w0B42%y9fH)V3`#~50PAvxT delta 14 Tcma#>;9y{25Cme5i5w093y}ev diff --git a/resources/tables/CR_Dash.bin b/resources/tables/CR_Dash.bin index 4deb90c6f72f088e05e6aba76620f3794aa1f85f..8c9eded56154b3ad70287dc5c1c2fef259b2d78e 100644 GIT binary patch delta 26 gcmdnNcz}_Efq_9Eh{Y#z6tU^WGBD`HPONYM06^RYIRF3v delta 19 ZcmX@WxPy^{fq_96h{Yyy6isZh0{|uY1R?+c diff --git a/resources/tables/CR_Default_Ignorable_Code_Point.bin b/resources/tables/CR_Default_Ignorable_Code_Point.bin index c887540e53aa6347952e3cdf4173332427269572..7da689e036de79fcfbf73811e85330c16fe2f8c8 100644 GIT binary patch delta 11 ScmbQhIDv73IV1l>iwFP{Qv(|S delta 11 ScmbQhIDv73IV0ahiwFP{PXihN diff --git a/resources/tables/CR_Devanagari.bin b/resources/tables/CR_Devanagari.bin index e1ec4638a6f5af9210fe5562589e1f44a88fcbd1..76412b500dc445c7549ceba6452c0eda7ef6920e 100644 GIT binary patch delta 23 bcmdNe;9y{2;09vWi5vZ zO!}Pr7#O4u0`cj|8BFP$uQNF_`mr}KFtWD-aXS!i0OCzRyo-U6>nRXFV_@V}0%COr zM!vs5{GWl5-wlWZfVc^Wf%*i1d@wEm(gl+ZSYEN2xHB-Cgie-VRZ?63fq`-TXCVFx z#J_2p@gb0YXvV19YOp;tU|@V`Hi=CE0J@MF>;M1& diff --git a/resources/tables/CR_Digit.bin b/resources/tables/CR_Digit.bin index 18b73ce75306cdba9029f5c085a03d52aaab15ba..a8aac6ed99f963e2768bd9c5513b0dad64200f92 100644 GIT binary patch delta 67 zcmeys+`+=Zz`)Q5#10!dHZh9H2QV-_I5FY^IlamiHDv3S$z`*$ACj;Y4 OpputBCBK3E-#-B>nG{U` delta 43 wcmeBR`M}Jz>% diff --git a/resources/tables/CR_Egyptian_Hieroglyphs.bin b/resources/tables/CR_Egyptian_Hieroglyphs.bin index c067f40f5426ecec54d6887fa1ac89af85cdce64..b2940db0d94435167ba8ae0481f4952e25214c51 100644 GIT binary patch literal 16 VcmZQzU|?ooU|?imGysw&p#TCW0KfnM literal 24 ccmZQzU|?lnU|?ckG+ZM10c2l014FrZU6uP diff --git a/resources/tables/CR_Emoji.bin b/resources/tables/CR_Emoji.bin index df1327fb4fcdd7462ddd2c1f7ff2f4ff4b6456d6..e706bc59285324cfca5167784268650a33ae397c 100644 GIT binary patch delta 110 zcmX@Xd4Q9Hfq_w)X m5Z3^40}yur@dO~=3&i_@_$Uyc1LE62`~Zkw05Q<4Uq1lXnkgOt delta 101 zcmX@Wd4iLJfq~JGfq`MhMh;^Z#s`yaSo9_rv50zBFfjhC0^-v^d=`lRGcf)t0OArL j2Fm>c%Kd5p;x-_j0K_YRcmoh`1L6ZfdTmS$7 delta 17 XcmX@Xw1bI*fq}snh}AZ77%&0=A9Vui diff --git a/resources/tables/CR_Emoji_Presentation.bin b/resources/tables/CR_Emoji_Presentation.bin index 9989ea296e37f7db4ba7b83d7efcc68166975eae..b4ef3f65ed8419b69325d63161586666f4dccf65 100644 GIT binary patch delta 107 zcmbQhI)QbAG?VHb2F7pqf%r8LzX9SeK>UY+@%sZH28wh=IC)y#QjM?q5FuUeqn= delta 89 zcmbQhI)QbAG}B~dCh^HmOro9@42(akfcP{Jp9SLo42-`DfVc#RfpWiqa=#jYxDALW X0PzYS-T=hgfcO9q9|GbFKzt1VZj2$x diff --git a/resources/tables/CR_Ethiopic.bin b/resources/tables/CR_Ethiopic.bin index bc89b8426fbd6b67aa3e47392df3089d338cc444..7c3620d881c14169d7b059cd09ffe3567a801ec5 100644 GIT binary patch delta 49 tcmeBRTEWD@z`)=M#3~Cp7!?>8pFaTNXF&V{h+hNoTOfW1#2J7y%a)0!RP= diff --git a/resources/tables/CR_Extender.bin b/resources/tables/CR_Extender.bin index 93896879dc6bb6ae714292384cfbe93ee59da54e..372b01c35ca32f1d7f672a4152e7c0d26c674dd7 100644 GIT binary patch delta 26 gcmeBRn!v=tz`)=P#EKI+4zaN}GBC0?O+4WM06jh($ delta 19 ZcmbQh)WO8Tz`)=L#0nER4o$pd2LK{n1cCqn diff --git a/resources/tables/CR_Glagolitic.bin b/resources/tables/CR_Glagolitic.bin index 183347a5547c3ca8314599620c83b2089c18384e..a530a0a957f7b11577e06da6f27743a8b539bf99 100644 GIT binary patch delta 22 acmZ>;5MW?n;00nf1_m7_V$#h`%e6JNf8@iD`R2^b`Q|(G&6~XLbv6-ei%48| zi|trTLs_y{#C8SEAZ}~(zd9bLC1$53+gc;Cw8k8=RA;{D=>x*}h*6B=2PRF}GOj&= z(4us;rirAx%unkMvn9SQxkn^Jum>JAn6da$vp%6ygJvvYqbabR(i(HicEC97t1@4T zw1?1#fd#K=2Qd*Sv1e#zm&go5vrTBlbM!8V1nL)8>*3R))_PpRWwhcduHiav;3oVC zpc4=9P&8gd6N<1E6{y8QG~yi2qXTzwKM+~6TbDa#MU%4OMisocXm%yK>?cH>XV7K5 ziFi%nqfD!Nw+DUx|~QsF-lQoY|cVQL9=MVgs7V- z8!F5$XSV&Z=#d~^7_akekuM_Zo5U~7fPMMqL_1jEUyZ^A9@>52`}`HH$;GAAPkZy> zMmd<#`&5*p&=A=;4((fuTznSor{7tp&R+>f{RRL4 delta 595 zcmWmCK}gea6bJC{+uVQu#s1s>uP!Z}OGH*N%)_vV(jX$JL&FjZL3Zm9H6ag@LDHdX z*}DiG+Rdno@(&9-IK4C~VN8e-6{8@61XqxA(`8=|pTm#udyn6PmrsV06t)oOiN-`H~jtEv+ql$av(mp7O@^hWBdpD-hgMrtkEFHt09~(Xw|#R^38V zn^-}hEkvz!NY{O5eSEdsnlPR?IiLe{ky3P5OU9rPtpU+(ZS}vAB`x@mTYW&HpT;Py zP3Dvg>$Ev$Jlz4Z(9dR%wFJzq&^!9;b_P16cNy4T0~$lb;f;s%n7B=&LJi;_+$;M= zEWi%?9xZFux+H^Iv3BLPRzfiuQae25 z%Rvrq>1_Cgj@rjU{JbRlhy#)*bk>ebM)UUl&^&{ME=m!Xa!zW|i3EN^icE^N{?s3OkTC5 zt7zduV#cnJW)DfCY>}o!Ne@j2jh>T{GmWYJqgnhomvg>z&UY{OYT;y&T_p0ANLWL= zy-PFNdphHqMC=!E9YfYW9kfMMi>#I}&w zu1BHO995|aJ4DheP>*JuuwL71R0qta7?(K`)1uWT5L0LBVoNigiFA(O1;#>N62~!T z^~6r=>PI3Alol_d15Yp<;v+6wy>T_V|EOrhakSz*I&cY>aRoPU6Wy@Thko1>jTF(S zB9x#Cwb+XmoWdD+a2t26{P;@c^J)A^oW?oR;@A*(K-6&%hyF1hM^{9#Xkv-AJK>sY zp9v)9YPrcunvP@A%7AD(ThpVBJ-I)}CYtF$A~s?RXwEDR*-G4F29gU>Ty3JRInjKY z3tiwyVYvw;=SDvetslUU$#S+9xqYJUpZJ9ZEMiI2Lu2YW3OQISI+>3~lb4#kvrTmB7C1ch89w~R z@_*hDQ7?Hfc`y0dNzC9Q$j^SoH&CBlvT9TNb=_Oh`7ar`1p0 z?=vN7MP=Kq#Az|6>zsZ98Q2+n{ delta 474 zcmWm8O(?^07zgm@nVG*a{A0GZ@{%+MF&PIXZ#lWlIHQ#0C5nUOAR@VVc`gphZW9O7 zZ!tM|J1A13YOwbF!F*i#`vs|&*s z>ta?Ah1~-1f=~SU&GM38uRjytpmWm%t^cIa_9S)oV(GQp)Rz5#OC!XeZxDlD;yB{* zF_?yXKtKK}%Z^&#_XP3xBwWH3aiRlyU>HVW9FR#MlfZal9+qJfg0Kh2a0=IOCz`V` P{ecVtBE!B%+|IH;O0Jq( diff --git a/resources/tables/CR_Grapheme_Cluster_Break_Control.bin b/resources/tables/CR_Grapheme_Cluster_Break_Control.bin index 61e4e8bbce5421e7b720c80291d6abbe478904ec..9ea27aef5b8db8bcf8850e1be7d1c6c01f184903 100644 GIT binary patch delta 11 ScmZ3$xPWm&Iivl=3Jm}kBLlkt delta 11 ScmZ3$xPWm&IitnI3Jm}k2LrSK diff --git a/resources/tables/CR_Grapheme_Cluster_Break_Extend.bin b/resources/tables/CR_Grapheme_Cluster_Break_Extend.bin index 25dc8aaded578ba33d6d2bca6d273c75599317f9..4448efa3b3d1c09ad76267ac9ceaa571b4b4f45d 100644 GIT binary patch delta 287 zcmca0`a+C@fr05J0|R5uM2^FpGZ+{+<^%Dmjc3vsS#1~?cx)ycF#TsdH`#!BKcn&F z56sT2{0s~d{F4n>>VcvgSk`Y&XFbgr#`l+jk?%hPBflFE2LN#s5VtZg3NS*k1&{{H z2^2taF_10+;(8!%1mev=ybXwV0`V>&J_N#(6WEhk9T^yf95)|emtxYB2f9-pXrjCs z5L*GU0~9*}X&^QM^1;|0NQX|o!D+;I9;oHKE)W|4vD;)0u1Ts7`WYBO_#sf}A<(2p V>!A1zkbcj=_ykBlnY^4!697pPL16#@ delta 140 zcmaDMc0rVbfq`i=0|R5^M2^FZmp5KXXPoTJ^oQ~6WC!N`j3$#rVy-+25N>SkE!)@w+iF@&_<53NS*k1&{`c3Dg5|BM@%};%z{@6NqV2}r5eg+0MAjQTC#CIW>9ViCE920AjQTC#CIW>ou7e$oqwW6002u01V#V= diff --git a/resources/tables/CR_Grapheme_Cluster_Break_SpacingMark.bin b/resources/tables/CR_Grapheme_Cluster_Break_SpacingMark.bin index 31525896a556cd21f1e6391c3c1e6989f2cf3f5b..9035da46d0f966bffde3b9962d02ba2ad1cce2bb 100644 GIT binary patch delta 84 zcmZqR+Q7xZz`*Fuz`(F{BF8T_p3e*nJf9~qHuH)yFo=V&2?%d)U|h^JS(|0MoIEoF XBN&?iX;UD!17dq1b_C(c4_Fic#dZ%v delta 39 vcmdnM)xgEUz`$tFz`!tnBFC@ET#SvIXEQEfVpU*Z6jz*V!Ln diff --git a/resources/tables/CR_Grapheme_Extend.bin b/resources/tables/CR_Grapheme_Extend.bin index 5018ebe453bbae00784ebbbb7efef0d7aae07f32..a781c8fb1b77267e7f34bd40d9bc0f772bc10e68 100644 GIT binary patch delta 287 zcmX>h`aq0>fr05d0|R6BM2^FpGZ+{+<^%Dmjc3vsS#1~?cx)ycF#TsdH`#!BKcn&F z56sT2{0s~d{F4n>>VcvgSk`Y&XFbgr#`l+jk?%hPBflFE2LN#s5VtZg3NS*k1&{{H z2^2taF_10+;(8!%1mev=ybXwV0`V>&J_N#(6WEhk9T^yf95)|emtxYB2f9-pXrjCs z5L*GU0~9*}X&^QM^1;|0NQX|o!D+;I9;oHKE)W|4vD;)0u1Ts7`WYBO_#sf}A<(2p V>!A1zkbcj=_ykBlnY^4!5dbskK}G-o delta 140 zcmaDLc0!bcfq`iw0|R5kM2^FZmp5KXXPoTJ^oQ~6WC!N`j3$#rVy-+25N>SkE!)@w+iF@&_<53NS*k1&{`c3Dg5|BM@%};%z{@6Nq}X~!U|}Z}W%(xZ+NdpE? diff --git a/resources/tables/CR_Han.bin b/resources/tables/CR_Han.bin index fc1a6faf024604bf5986a72b4164395af5302587..862a01edbaf34f7f3a169ec42281803aa8d7b3e3 100644 GIT binary patch delta 78 zcmZ3$xPg&_fq_9Ah(#xIxEuawVE74S|H=j80wBK0z?lCCh#v#-2O$2)zyy?LT6Uj- WX*rPIZaJ|+gM)!tIDmm!c|8Cig%m~r delta 61 zcmdnMxPXy^fq_9Ch=nI|xNH7lVE74S|H=j80wBK0z?lC5h(9tg0fm{C-DO}}4y3o6 IOl;5q0MuI$P5=M^ diff --git a/resources/tables/CR_Hiragana.bin b/resources/tables/CR_Hiragana.bin index 0284cf0115fd7a409fb713e347fe5cc193f1c821..31e3262727138a405b2775a6292c6d1ece6dcbea 100644 GIT binary patch literal 56 wcmZQzVBlq7U|?flFmMFoX+S&|i03mfZeV0!+$aykMo=68q=Oh3KQVwX0No}E9smFU literal 48 tcmZQzVBlt8U|?lnFmMFoX+S&|i03mfZeV0!+$aac0YDtY!1##)gaMWW2vPt5 diff --git a/resources/tables/CR_ID_Continue.bin b/resources/tables/CR_ID_Continue.bin index 9df774222f712af3d304c4ac7689aa0140ab3306..a83fbd3c6ce0718061d3cd69b5ce0b5e57b00236 100644 GIT binary patch delta 614 zcmXZaO-NKx6bJBg=IcGv-kT3*Ch}vzp~L~1M_ADiGPV!`p&=41u#FoL#My`vf-MqF zq@+_MxQJ+>E8mPah)iN=5!6B_EGW=s5UD`QK?#aX{143H#~`N2r6L1&q!K`}DPaJ$vuDP1rJw!DHUH3eO-53SPo1SdpZ0GNj!m*2ZB1GOz^8s@sThgYlo(tb?Ws3z-6p zHOFPvjQEC#y<@NpZ^|TR4syG)yb1P%lf>Z;>GKI^zYTmtlrT$crZ zV<Ws(d=&(08UEdtiq`b)f> v2jur6e1jjb13%#xl;BYH1- z8qM&sE5X~YLhKpv{do~@;$3var|6#O2GOlD-5cch0TD~sVuW{$MGA7;D0`Z~AjCXx znt6Au2gJTr+nghR3YbibyeP2U-_b|qTkORagYHD0%(>d;D(696bM zBohD9k~#he#63k&a7$cpG+3lrRSIT_TcLew^6J15PlV%cS)@#g3*j;5@UC?%wLUCz rVu^EhRvp+Y#F~@jtTU=NL9acv=S-9530h5#JJ0Z4WZbX_u&DD3$rn|B diff --git a/resources/tables/CR_ID_Start.bin b/resources/tables/CR_ID_Start.bin index 84dec0ca042d2dad6cb45da02c1ff9fc365eacce..d652c82ba75f278b06d63786ffc558758724e4f6 100644 GIT binary patch delta 567 zcmXZaPe@cz6vy#%-s??oK%3`?jUcIv_?Kd&axz+E6ti+M2`&{^DoQyCZK6dkMA9hn z8ZO$raN#OurWZsd;zEL2O^AyYF@s12kxEenq4*te@!`k0+;a~H?!Okl-4$_KMJ$td z=d>mx;?Ce99>d3nz*pOH21F_bjBj7pFTsv|#d4}dVh!eOXjyxMLge;x2JD9}XGE=A=cdm*?drbGK?NE$4v6QKe zJky+c6`829L>tOZz(W)lOrsZ1Cgw#G`=Xs9dNF}(NQvH{PLZSJST}fbY!Df&nIUg7 znWZiJ8-MU02RIbX(UOnj{IN9I2R6_52PH4Ar;FSv)}t96qNPsUT8P$l&5Lfoz&d`2 r?i4_NE8#1?qg?;QF7|O4G)7xBToh}Czw!FANmsYIVppfdZpt13xO#~V delta 255 zcmWO1Jxjx27=_{UyszzoD0p2zB=*eD*W7ImSyxMPP z(*${-6jDqJnz)y;WnbJ=397(ajT+R{eQ%Vz_yaQC_3Obs(0-t2`mqE5(agGlOs-Q( zd(@-@JI+^RrUNMq=$(EckwY7rhKFjyH$5+$NnewwrFYT1%SlP9`W02Q7`MU>vpYxI gv}14MMbXhzIoF4LeA=|QEdCIt&9gU&9#60Q0}5h7i2wiq diff --git a/resources/tables/CR_Ideographic.bin b/resources/tables/CR_Ideographic.bin index 3b3d7d8a95efb63f0b0a592627bac78b5e5103ce..93db5105d9bbee5744b9234c1609feaa53deec73 100644 GIT binary patch delta 43 xcmZ3$xPp;`fq_92h(#uHs5AbbXkgEIpMhyP0|V1`%ZU{l91P6D0SwH_>jA{v2}b|` delta 34 ocmZ3%xPXy^fq_9Ch=nI|s5AbVXkgEImw{U&_W%F@ diff --git a/resources/tables/CR_In_Ahom.bin b/resources/tables/CR_In_Ahom.bin index 7cf8b2f75b21c0a9ce7dfab9241aa5eb2460e244..120d1e4faa920ce2ddcb2f1c2132b64b282fb331 100644 GIT binary patch literal 16 VcmZQzU|?ooU|?im6bF*x{r~|{0E7Sl literal 16 VcmZQzU|?ooU|?im6bF*x_5cAv0CWHV diff --git a/resources/tables/CR_In_Arabic_Extended_B.bin b/resources/tables/CR_In_Arabic_Extended_B.bin new file mode 100644 index 0000000000000000000000000000000000000000..a059facaf4d26627e8b25eb8bea4167b05bf522e GIT binary patch literal 16 VcmZQzU|?ooU|?im;3xp%`2Yh?0VDtb literal 0 HcmV?d00001 diff --git a/resources/tables/CR_In_Arabic_Extended_C.bin b/resources/tables/CR_In_Arabic_Extended_C.bin new file mode 100644 index 0000000000000000000000000000000000000000..01aa36958b4433aa9a0782f21bc05d35a23d4a24 GIT binary patch literal 16 VcmZQzU|?ooU|?im literal 0 HcmV?d00001 diff --git a/resources/tables/CR_In_Cyrillic_Extended_D.bin b/resources/tables/CR_In_Cyrillic_Extended_D.bin new file mode 100644 index 0000000000000000000000000000000000000000..4df6670dae49e471965f065b07a9704194e4d62a GIT binary patch literal 16 VcmZQzU|?ooU|?imd|&{?{QwBb0)_wp literal 0 HcmV?d00001 diff --git a/resources/tables/CR_In_Devanagari_Extended_A.bin b/resources/tables/CR_In_Devanagari_Extended_A.bin new file mode 100644 index 0000000000000000000000000000000000000000..80c9c3bf02fcaf42aba2d5c39c3e10edf88c58c7 GIT binary patch literal 16 VcmZQzU|?ooU|?imlm?R0@c;pV0Gt2- literal 0 HcmV?d00001 diff --git a/resources/tables/CR_In_Egyptian_Hieroglyph_Format_Controls.bin b/resources/tables/CR_In_Egyptian_Hieroglyph_Format_Controls.bin index 4e410f70102e8cd3c9c65bd36d218bd530bd7300..e06698943c92fe81c43e8b389a45cf6d63415e72 100644 GIT binary patch literal 16 VcmZQzU|?ooU|?imG%*0;cmM-A0R8{~ literal 16 VcmZQzU|?ooU|?imG%)~TdjJC&0Nwxq diff --git a/resources/tables/CR_In_Ethiopic_Extended_B.bin b/resources/tables/CR_In_Ethiopic_Extended_B.bin new file mode 100644 index 0000000000000000000000000000000000000000..b6325efd3258c87f6e6ef0135887099edc6984ac GIT binary patch literal 16 WcmZQzU|?ooU|?imeEtB4{{sLF;RCb) literal 0 HcmV?d00001 diff --git a/resources/tables/CR_In_Kaktovik_Numerals.bin b/resources/tables/CR_In_Kaktovik_Numerals.bin new file mode 100644 index 0000000000000000000000000000000000000000..9beb97111108060a629eb8a5e086f81924f9017b GIT binary patch literal 16 WcmZQzU|?ooU|?imymSDF?*jk}c>_uS literal 0 HcmV?d00001 diff --git a/resources/tables/CR_In_Kana_Extended_B.bin b/resources/tables/CR_In_Kana_Extended_B.bin new file mode 100644 index 0000000000000000000000000000000000000000..2ea6aff673ca600a0a924ed59fc8ea6f7e32b311 GIT binary patch literal 16 WcmZQzU|?ooU|?imT>k-x{{sLEaRXEU literal 0 HcmV?d00001 diff --git a/resources/tables/CR_In_Kawi.bin b/resources/tables/CR_In_Kawi.bin new file mode 100644 index 0000000000000000000000000000000000000000..58df9471d0a35b4a3088c8518a9a2ee986a0144f GIT binary patch literal 16 VcmZQzU|?ooU|?imln0XX@c;p#0Hgo_ literal 0 HcmV?d00001 diff --git a/resources/tables/CR_In_Latin_Extended_F.bin b/resources/tables/CR_In_Latin_Extended_F.bin new file mode 100644 index 0000000000000000000000000000000000000000..bf7ec02d14d5894d4b5c0742f0c538c337003443 GIT binary patch literal 16 VcmZQzU|?ooU|?imWN!fC{Qv{O0aO40 literal 0 HcmV?d00001 diff --git a/resources/tables/CR_In_Latin_Extended_G.bin b/resources/tables/CR_In_Latin_Extended_G.bin new file mode 100644 index 0000000000000000000000000000000000000000..c94911710b9eedb5999e56014da5cc5950a79856 GIT binary patch literal 16 WcmZQzU|?ooU|?imybmPr{|5jFK?1}8 literal 0 HcmV?d00001 diff --git a/resources/tables/CR_In_Nag_Mundari.bin b/resources/tables/CR_In_Nag_Mundari.bin new file mode 100644 index 0000000000000000000000000000000000000000..52b031122d87d10cf8b21cd39e05d2d1ecc41fd8 GIT binary patch literal 16 WcmZQzU|?ooU|?imd~yMZ{{sLFc>|sR literal 0 HcmV?d00001 diff --git a/resources/tables/CR_In_No_Block.bin b/resources/tables/CR_In_No_Block.bin index 94a03a07b947764cb535f16e8bc24b0c17649bd1..9382881291d70e63d9de9198eb6e996f5a4bdf99 100644 GIT binary patch delta 250 zcmWNKu}VT=9L3K;BpZ~bG_EBP%??Rp4MIbcqobRHkh@F1K;)$d&^J(M5fbzXx}jTx zx6Ej?H~9Pwhu?S3|8Tx(W|YZEYNM<8C^}ro*&rV*;@WlGJAZ7*MSKaChVn@Z!3aj= zW%^}!I+4#(xk6qU%a`=4&vFf4=YH3h+psf`A8yeI;k&S#%1_+KJNZ@e8~KdAcX*S0 z$O(@ngUh+RqPW6;Qdq;U0fOJ$H+=ZRz&4S8;a~dF^!@S0MEMX@P#;16s}RB-n2|?w delta 272 zcmWNJF=_%)6h-gLAW4&NA(%vs7GfuuLaYZQ7FKRRunP#n>>#rQ2N$3_7{Nv`V0K{8 zF3pTdkuvV!dy2#1pU3^HU>kHL&7ddUMX;1QIsD6R1n;sS2QMo`fN$fZ-E;0!=6DsU z#Wa~T$D!}dkHvWC5^D&SsYSi{fsdM0bo8>y_tu0!vJvOXTfvNt@9;E;S( zU+1!vuwk&nAAE4YM~25tc4Bbi{Y}qs{sQ>S{bw)xW%uV7p$*HWk?y^hQw-QHa^7D7 Dl~G1Q diff --git a/resources/tables/CR_In_Old_Uyghur.bin b/resources/tables/CR_In_Old_Uyghur.bin new file mode 100644 index 0000000000000000000000000000000000000000..ec970fb3603569a9566322ea9ccddab60c1da861 GIT binary patch literal 16 VcmZQzU|?ooU|?im;;m&^#BDi0iXZ? literal 16 VcmZQzU|?ooU|?im>;;m&{Qw0)0k8l7 diff --git a/resources/tables/CR_In_Toto.bin b/resources/tables/CR_In_Toto.bin new file mode 100644 index 0000000000000000000000000000000000000000..c81bbe73291c01d2108c6a7c24692c0a99ece31c GIT binary patch literal 16 WcmZQzU|?ooU|?imd^7=w_X7Y5=>r-7 literal 0 HcmV?d00001 diff --git a/resources/tables/CR_In_Unified_Canadian_Aboriginal_Syllabics_Extended_A.bin b/resources/tables/CR_In_Unified_Canadian_Aboriginal_Syllabics_Extended_A.bin new file mode 100644 index 0000000000000000000000000000000000000000..64428eb0d3bc2759ac793623d7f2a92330806548 GIT binary patch literal 16 VcmZQzU|?ooU|?iml-dBq`vC<>0jdB1 literal 0 HcmV?d00001 diff --git a/resources/tables/CR_In_Vithkuqi.bin b/resources/tables/CR_In_Vithkuqi.bin new file mode 100644 index 0000000000000000000000000000000000000000..d833c4671cf1e767db14e4b8888382153194be6a GIT binary patch literal 16 VcmZQzU|?ooU|?imWGw*V{Qv`D0YCr% literal 0 HcmV?d00001 diff --git a/resources/tables/CR_In_Znamenny_Musical_Notation.bin b/resources/tables/CR_In_Znamenny_Musical_Notation.bin new file mode 100644 index 0000000000000000000000000000000000000000..079a0db426880d3fd0aae1e3398053f54aa6c8f8 GIT binary patch literal 16 WcmZQzU|?ooU|?imJP#z#p9cU3kpgr8 literal 0 HcmV?d00001 diff --git a/resources/tables/CR_Inherited.bin b/resources/tables/CR_Inherited.bin index 86bb22f7838622bdb1f39aa247f99c6925dc9197..7dab441a33689484ac87d2b403bd902cea84bd34 100644 GIT binary patch delta 42 tcmaFC_<@mwfq}sqh-D{o=rf+1Xkk9F+?($_0|VoET_839Vz-G0Gyvhr3yuH) delta 33 ncmeys_=1sxfq}sih-D^n=rbOeXkpI!lYv3@_rx5(iKo;6imVBv diff --git a/resources/tables/CR_Kaithi.bin b/resources/tables/CR_Kaithi.bin index 21736cf7dbb634242f779e7c7bbe6c25889b5ace..e10a54c6a12cfcb410c7a8e201e79e19130434a6 100644 GIT binary patch literal 24 ZcmZQzU|?lnU|?ck6lehALqL2MgaH)i11JCh literal 24 ZcmZQzU|?lnU|?ck6lehAgFt*1gaH)Z11A6g diff --git a/resources/tables/CR_Kannada.bin b/resources/tables/CR_Kannada.bin index ca836f796004ac1cc3379f34c51cfd2fd4d32d6a..ab48a13ea0511a58b040b062a0feb4fd7ad3f840 100644 GIT binary patch delta 34 hcmXRYm=G*`mw|!j9uPkO;>SSz42a(Y@kb#33;?TS32XoW delta 34 gcmXRYm=G*`kAZ;)gdYI$V<3J8#P5OlBM^TA0IPrrYybcN diff --git a/resources/tables/CR_Katakana.bin b/resources/tables/CR_Katakana.bin index b8ffc19c366cb81e7f1ab51c1d7f9b9cbd591b61..858d3e0011c21b5d3b821851fa1cdaa92b66ac5c 100644 GIT binary patch delta 69 zcmWHj;9y{2kOgACi5ymD>pw6suKx_gUxD~H5dQ_@e+-Np7$A6~0t4elB_Ixk;uIjA F4giv*6E^?= delta 29 fcmb;j;9y{25C&q-i5ymZ8yFZEL3m>d5T^qGK~V)> diff --git a/resources/tables/CR_Kawi.bin b/resources/tables/CR_Kawi.bin new file mode 100644 index 0000000000000000000000000000000000000000..fc7dfda4ddc2a13552a9c1816f54bc55502eaf34 GIT binary patch literal 32 fcmZQzU|?rpU|?oolxF~90U#CvVk;oF1L8;k56=O< literal 0 HcmV?d00001 diff --git a/resources/tables/CR_Khojki.bin b/resources/tables/CR_Khojki.bin index 2dd1190f5f14e136a6eddb2d0dc921a0bcd44527..880bcbe33d93d74b432b7fbf22f7add1e0e91847 100644 GIT binary patch delta 6 Ncmb1;m>|yR2mk}t0U7`R delta 6 Ncmb1;m>|w*2LJ=p0T%!O diff --git a/resources/tables/CR_L.bin b/resources/tables/CR_L.bin index 4701c531288a3f58b11e2a0fc89f12255a8be516..328f5f7d2a34f4df19efc6a7663441004c1b8a67 100644 GIT binary patch delta 545 zcmXZaPe{{o7{~GF`ThLO-(YKNl7mJ$G&3Vm><@)t3uUJcE9hu+5u^y0V222*Lx>eI z{1zf!79JEtw)H!RCgN33MhbR_4G|3@l|m3C>HPx_FFrgE&+~jQ--Gk{W>>^%60uCl zeXFOkBJLoD@E&_60b9t0#kb1TMvw=dExGwr@=dC zmPIC3@D<;Vt&!jH$6F09SRGDQ)Om*Ic!PHs#s_@F2tHvPC3u*{7tEVn=yYxMOVR4r z7(@}DG3QN&66#-%yfTa7MEHqlv>yXLvmSor+!T$aOzOl&Af6J9r%f_4rbRO!>FcpX z>wHy+B8JQ0x-TiB4Wpvxc)77tv?Yf<(N_9bT5t<#(JtyV*-JjWjuh@Aiv{x_+JCLU zTH!DDafp975-qY)sz=+g40#v#d|oA5ueD`n%4gAti=vfQJRXiEuI5BHrm=`$qMIuq nw=3AfPx$q3>|hT^UNY9C!LnEr{DPSqCR2046}u)Qc0=Jm2#$#j delta 218 zcmZ3W`9qC^fq~^N0|QguMviVq-USQ{99w{R8xSAgyn>OLY4T=f2gZAwzc5=f@$xV* zi1PulAP_4|Hep-M=)L&?+jK@=Jq89H10aqA;)Ka19G_U{|6yQQFgcksgm*s!!}3Ew zdy?j zZ}JBL>B+)^`FtCI+>LTT900^Yn|BB*F;4y@B*}V!f$`Dn%?`rqjGT8Fn3eUz`!Waz`)SIkwc$pvO80PQ RIUrUAVl4*7mq78C&H#afB9Q<9 delta 61 zcmZqRT*1M?z`)4Kz`)S5kwc$}SC4@~#{h`qfH+~Y2~#rXeg=l+hk*Fh;yXZm9{@>D1{(kX delta 22 ZcmYdDnBXsXmVtrq0ubK>;yXZm9{@={1{weW diff --git a/resources/tables/CR_Latin.bin b/resources/tables/CR_Latin.bin index d45ad2c88f846ccf382ccffea51ea3e116adf51a..8549fcb902258058909f680c43e8532b86c5c9c3 100644 GIT binary patch delta 90 zcmeBRI>5xiz`)=S#Of0{_RF4PU|4F+-Dsfq_+(fq`k#Mvi)3#`w)0yw0qy2N@WagYaP}J^`db_!Jah1kxaU8H%q0 zX%M~+#W#WU&B+ghg5+4IGcd9)1meX&yb*{u1MyBE-VMZiCL0Ln8?=owj3AI_#UZV1!4y!vi)SyquTR?kl}hkC=DA=$ra9^zCt1Mq4nh S0posEv+=AAbJBykaQh2ouUH-c delta 194 zcmew%e?g9efr0rl0|VpBi5$Cm7cekzYyskJKzw}T4Q8gvkC_}8?`>9LW@h5$VPFvF z17blSR+y~Ax|q>>^95EmM%MX%7#J2TzRboVx`Ba_{|FF20OD^9i~`I+Y(9xQdvY=N z{mD^06B!Roe#4VLxtLd+%>ZbpiQeP|ywZ~o^ZIbgF)(fn0OFv@8hl1#4}p>ob%59p gf*&1VV0`p?^9nw3M$WqoOv@Px)*^A5WWn> zSAjGLUx(tGKpKQU0r8i~62kI~nUgJqjqF&bGcd9)1meX&yb*{u1MyBE-VMZi7#P_b zptu=Gw*qlH5N`nDO+dVBa)$6PwfhVVjQ2T#m>Y=YfLIlXwHO#57yxlD1LI32Aa(`- D40tx& delta 74 zcmZqBdZEF=z`!cWz`)eAkz+9j6DIk4na)7Wr WW5(nHVWY{9gnzKTRAOL!=?nll@fZaF diff --git a/resources/tables/CR_Lu.bin b/resources/tables/CR_Lu.bin index d006266aabeb69e202104b3047b569196d066343..449856b018fa5ca4be596739c1ad816cec28f5c8 100644 GIT binary patch delta 118 zcmeyNzC(k9fq|8mfq|)QBS$?iqyFX&US(F(0}KqyLHH099|6+Gf%qg8UjWh|d<}|k n0O=c(4+tsAu@*2evQ`0c4G?z$aSsqr0^%t^JazK}AqhqR5-lMe delta 37 tcmdm?@k5=1fq~^O0|QgtMvi)3M!n4)yvnSTHw#Hjek>%vSxH!o5dhC23WERu diff --git a/resources/tables/CR_M.bin b/resources/tables/CR_M.bin index 7f7b46c65a2139cd370a8e5b9d1d4636e6f50bdb..f61ba79d4b4dd28b95897de2286057e6bb6fa6cd 100644 GIT binary patch delta 290 zcmbOsv_qJKfq^NPfq~I%BFACQ84L^@^MUx(#xwqmtTqe`JT{Xhn3C9dJ_DJbCs!~{ zXFNAqfO$Ei=;R&D#;p7d3=;g4Uog7^MGaWeH_vC8&FIJXmw}P*KLaDb8xRKoaT5@? zGB64NEfHV>VhbP!$_W%eaWRlC0pfZf2C5a<0K~h1_z(zBPGAdWb!1=^a@@Rut%^}k z9%za@BM>t~u?dj20%AKLc4A;Oae!iXARRhcgTsmMJW$JdT_839VzvU^br2&Emp% zU~&LUI_pmc2HD@6x3J7(RO5GJVB`;AU=#rA7hnQn3m^uH3Dg5|6A*6z;$4#$umx}a i%~sAhc@c-hWgRlt*Z@$1diCIpbnSl|E VO@Op15ZeK0|+Vr diff --git a/resources/tables/CR_Mn.bin b/resources/tables/CR_Mn.bin index e7521a8d541355168a841e872c6dfab4e3e2fc75..ef3e77177a21c34f39414d22fe6c0330dec12f4e 100644 GIT binary patch delta 308 zcmXZWu}cDB7{~G7b9#6Oad(J9+qE?%Vj?0US)tI>QbTKtV^F&$grms2xanUY$YGI7 zQCmgV6pd#%SOoqBqCew?4`1Hr<$ZV`6JJRK&_;lqb&O}T3m83m8NO9TF9I7ym+TeQ>6$#c zrF$CF)0*0fo$F;tyzDh%zmjtKPnR3r92ICUw9itO=YLi9MAgiU<@1TZLusn0uGuUF gZOGb$qX{>C4?=(J95Q96?CgU+AwP$71WQ2k72@$o4*&oF delta 141 zcmca1dO(DOfq|)?fq~I|BFACI%Nwt_Gfq}!I>UH&@&~5THI1MICaW(KhG+P delta 71 zcmcb>v4Mkwfq{{mfq|iQBS$y0?g0iy`6~>JDnLP%JO;+B1R&02V9X8x;z%Hl2I52p S#=Hg~o;LXgv({uT7B>L?&<`;H diff --git a/resources/tables/CR_Nag_Mundari.bin b/resources/tables/CR_Nag_Mundari.bin new file mode 100644 index 0000000000000000000000000000000000000000..ab468049234eb919faa3f5970a3cdbe564da276a GIT binary patch literal 16 WcmZQzU|?ooU|?imd~yMZe*ypua|4(F literal 0 HcmV?d00001 diff --git a/resources/tables/CR_No.bin b/resources/tables/CR_No.bin index 3a8516eeba0a6eef9320e8dba0f8cf3e57561002..426e624a0908c8aa92689dafe3675cf805d72430 100644 GIT binary patch delta 27 hcmX@Wa)O0}fq`Kn5PNLo_{_+9fPwMS<;g!7Jpf~62wngH delta 21 bcmX@Xa)5<{fq|hPh}}1Gd}f@?%;X9HH?#!# diff --git a/resources/tables/CR_Old_Uyghur.bin b/resources/tables/CR_Old_Uyghur.bin new file mode 100644 index 0000000000000000000000000000000000000000..585629667f6116ec1905e89cc6891517d8090b21 GIT binary patch literal 16 VcmZQzU|?ooU|?imIQaq7rOmsT6B&7%7#IaWcmojc Wm~6r7y}6q;opG`dd%)x@b~ymiClo9I diff --git a/resources/tables/CR_Other_Lowercase.bin b/resources/tables/CR_Other_Lowercase.bin index be9ff4abbefc30e1cb877638b627467fcbe7321f..37409e7ed1ddfb6493d0e4da730687dfdcb95df2 100644 GIT binary patch delta 96 zcmZ3%_=1sxfq}sih-D^nSg{HGVPFvWGtnX1^%Dcb@-IOA1BibzFszON;&>p=1Y<__ c1_lUj2GXrS+z!MWfOr!S?_ywlU;xCq0I3-lp#T5? delta 33 mcmaFCxPp;`fq_92h(#uHSWWbb205~)RtpET3 delta 19 ZcmZ3$ID?Ucfq_94h=nF{1Win`0{|dJ1C{^) diff --git a/resources/tables/CR_Pe.bin b/resources/tables/CR_Pe.bin index 42920a4a9d34ada5afb202762a7aebe7288105ff..1311265167fd872d250c9efd5fa2b8d31a0fe109 100644 GIT binary patch delta 52 scmX@X@`8nffq`Kr5c_Q8h+>q}3u9ma;|L%P!ckBh1EganCosMM00JZl>;M1& delta 21 bcmaFCa)O0}fq`Kn5PNLoh+>@F#P|#VIh6&f diff --git a/resources/tables/CR_Po.bin b/resources/tables/CR_Po.bin index 9d07d7157a871b3eacca529ce28bb33354b94818..71301e38a8acf30c97163447c88bfc517e83eff5 100644 GIT binary patch delta 106 zcmdnM{eYW;fq}7{fq`N7M2_8zvKx=6GqTn)Fi6);e!=*hF=X=vrd5n={A~=3{GF34 zSSGQF?POpS+c}wo)rw6Ts8gDAvIDEMtTO|nygv~ChhUWg21b<<21fmlK>TTP2CD}E D!^;{+ delta 63 zcmaFBy@8v9fq^lbfq`M`M2_8zavP7RGfw`@_=GWN^9`m|jFY=qCQMdhwV0g5D#`nw Rfl(faRSJN(WbzDF4*+yw6I}oR diff --git a/resources/tables/CR_Prepended_Concatenation_Mark.bin b/resources/tables/CR_Prepended_Concatenation_Mark.bin index b66b6473122dc457389d5ff347deeb72fa6bd406..a90ccf1d72de16429a6b516948b09bdb36f7e360 100644 GIT binary patch literal 64 wcmZQzVBlw9U|?rpU;|QYtU!Dhg4u!MAj~lVh$jN^BQRzZ*vkOHXMyxt0JU5QcK`qY literal 56 qcmZQzVBlq7U|<6y1~yh8eHVh+`572MnBx%`GYafwfZ(%0`YZs0xCcW3 diff --git a/resources/tables/CR_Print.bin b/resources/tables/CR_Print.bin index 99bbb9f29a91c969e2c348cf41c9780e35468b24..868a98a567dce7944239b1b7e1bb36ef54174c98 100644 GIT binary patch delta 814 zcmXZbT}YE*6bJBgw&u2MpUo{4TV-X9#37+6CHA321dT#aWYI+z5>&e>BEuwzKFQ5f zH1>Dpo-(p@9c z^o0y3Le15-0FmJa1R(_Nk+&x`yj}Ka3w3^?6@F>dHspW8(`QJ+7Z`&{_yyCF)K2n% z5?f|rT@I1UEfc!kQkKH z25(?!$vdpWFr}L@osoWr+n69t2mXgg<&tu2)@xV# MNLvt=RXLmf0l-xFYybcN delta 592 zcmWmCPe_w-7zgn0v$=O$?S1#oT7|Z)C|ib@hfxxy2Z@3Xid~FAb_}8xbck+c z&#^<^47|MZhIw<2AgF}b39(BtDk4zO0-Jkv+1JB|AHU!8hu;H_(^WbX0YXDSV0tog z$1sipMtXAma$*XIyrDUIPb;&Z3IVyOeZj2W3XZ0}0-N3`az`$6~z`(G7BFAk;*^N)k8Ch!?7^LeaOE4X0jNSZzX%{0Ke;WfMf9K>G zER)#8b}}%E?VPN^YQ-iE)G5t5Ie}GL)|r7(-XDnnL$FE#1EWd_1Ec;&ApSJDgVh57 Dpr;xh delta 63 zcmZqRxxmfAz`$6{z`(F`BFAk;xs6ZE87C_<9bpXG{DNs0O;^_-R$V)GBiw)+keDnC#*U%}mq9uUArdiY*o48@Akj(X zSK$nXCucaxJFzyF0%Q*$o~nYF$_JDm+Tw^TLNE7_;u83{RHf)I<9-7-e=wsOBw7Ww z;m9@gjFObkkmsEe${;EGX@|OWqzm1Mf0_hivr^X$h;CAg+SH>y`81#z&1p?LIuSEE OCT8>t@&*lQMB5*s15&R5 delta 195 zcmWN}KMMhI9LMqRS5C)p55R7+sq;9L#VC_SDF&HLW;qYSc)GGWCb^UhGFp_Pm|XXB zSKh;G`uy2DzGI7MBqH~fUDBYeuIeUesxru&X_#hRH zd58y?;0p5i>4k-QCmD$*V?;QLnkL%lp^qWx7&?ZznPP?|e5?^-hZ8QMKfxRe9R4$T BN>l&< diff --git a/resources/tables/CR_Sc.bin b/resources/tables/CR_Sc.bin index b3b6ff59b461d52c0bbf11b9e0beec323e0c6b05..63875fbe83b21c7a45412698b5a233d5c265e056 100644 GIT binary patch delta 11 ScmdnMxPfs(I^%(f86E%{2LxOI delta 11 ScmdnMxPfs(I^+I{86E%{0|Z+D diff --git a/resources/tables/CR_Sentence_Terminal.bin b/resources/tables/CR_Sentence_Terminal.bin index b9e4ad992f3c72dba35057e02cb0b6cf93f2b092..a539433e88d82e9ff6695cc2996dea2fe4178d79 100644 GIT binary patch delta 63 zcmaFC(!t8Xz`(E&hyx~aC^O1V)S1R6UCY2AT{rQ75u08x1A|`3#1D(u_}ds5`8y|1 SU|hr|@65m`?=snd$pQf0IS)wy delta 36 pcmeBReZj)Pz`!sQhs#s!mC0dWwM833pR3Q+(6 diff --git a/resources/tables/CR_Sk.bin b/resources/tables/CR_Sk.bin index 3339a457fa092a44428eed7c5b22189bd8191330..a59635628530d79538c83095026d7770e64471d1 100644 GIT binary patch delta 31 lcmeyt*uccWz`$S+#PSn4ve-B}7#KJ@CKjYK9-4SV0RUuy2fqLS delta 24 ecmZo*`oYM-z`$S&#BvikvL;rgG9H}xKmh%W7s(ok|1$P#dR|zFo1*c?q+U($rjk39FQTs}5`080 w9XrApCtUFWzfDXjUv0UzsOzGS0VbGYhB;PPV~ZosAmeTz<5JPLAjAUuAGU%_oB#j- delta 178 zcmWN|p$fua7=_{Uu?+?`@4-vZY_uCKVjl<^hRI}>{a%Do%P@*b9D+%VMnQwgv0n$i z;YsJb$HuM^OO{B=xA7o|YN@VW8f2~+w(a41VbQwFJ}Wr#X mR?Sf0Ec1N~kzkA|_;@~^+%K@i8XM%;Dd-j{;l2R;mp4}5_*1B3yxlL{69 delta 16 WcmbQi)WF2Sz`$S+#PSn4egFU#R|6CP diff --git a/resources/tables/CR_Tagalog.bin b/resources/tables/CR_Tagalog.bin index f2b056d26dba50965a3f97c14f5c43e76bf895e5..b0036edaaf85b3b71a0840dbf01777f6cc210aad 100644 GIT binary patch literal 24 ZcmZQzU|?lnU|?ck5C>A?qChMU!T<#N0Ji`D literal 24 acmZQzU|?lnU|?ck5C>A?JV49`#3BF$NdS@n diff --git a/resources/tables/CR_Takri.bin b/resources/tables/CR_Takri.bin index e1cd46901a23f027dc81f5dce7268840ad22f6d6..24f19ad68baf1e327435eac766a8b47604d460e0 100644 GIT binary patch literal 24 bcmZQzU|?lnU|?ck6l(zDoj`m5h))6l6%hj_ literal 24 bcmZQzU|?lnU|?ck6l(zD9YA~lh))6l6$k?* diff --git a/resources/tables/CR_Tangsa.bin b/resources/tables/CR_Tangsa.bin new file mode 100644 index 0000000000000000000000000000000000000000..4e6fea3b2a835999c26d10fa48bfaec6806f8ad2 GIT binary patch literal 24 bcmZQzU|?lnU|?ck%qjrleL#Ewh))6l9_|Ed literal 0 HcmV?d00001 diff --git a/resources/tables/CR_Telugu.bin b/resources/tables/CR_Telugu.bin index 2dfa002d21b8f7ff49bc235e18fc8c065e9983d7..03e903def3faa4491777fb51262f7140deb20ff6 100644 GIT binary patch delta 28 icmc~O;9y{2kOpGji5$v|HWPK!Sz{R(cw#38NB{sl1_Y`A delta 41 ncmXTO;9y{2kOX3$i5$v|wi9*KMH7IWWFSrh;(Q=32jY4Fc)|m5&U|>)LVgUvQ6CmZgpMk*-NYDR2QNo_{J_FNo1_q|>mJ<^cI2f3P0~nZ< G*8>3c{|Y|< delta 45 wcmeBRY+#gNU|^63Vtxh&6CmZgpMk*-NYDQ>QNo_{E(6nY1_q|>CKD4B0HF*B?*IS* diff --git a/resources/tables/CR_Unknown.bin b/resources/tables/CR_Unknown.bin index 83deb7c2108ea04c1b86c1ef5612dbbf96f17200..314cfce44fa3802e9ac66a0d3e9893eba01247af 100644 GIT binary patch delta 904 zcmXZaUr3Wt7{~GFY)z*&x0!#ysY51MxsuTSDSAK_YgeWh&RerK3}1dzbFCca$c0nzt;G->_m?({X!J#iC=| z+{#fXQdFiF97lCk#zSvRq}UMgokRM6HbuF2q8jZ8;g&9O`LiyF@?68HZgRD#Bl@1pD5quN zFeYG#D)ONOLC~S7S-;BdaYaNG{{a=gY+dVqR#?WP-)pHS8_=#3?iyEERP}FAQQM|V zJe66)qPk5Jy2;bGKPf7*X5p|A6SbzH0QR8!|df1o?fJ=15v zS<)d~MK5k5j1QKNIRoAh_kCd~&*8=^M&i~gG=ncv{Vh9S163m{+D=|ujnfPF`c V*aI&lR|GcraUF)_sul4V#y?2V7&rg` delta 638 zcmXZXO=uHQ5C`!8OU!0#-R!0kQySM*w4{|_75qREEhyGQA)q~oLIa*W6x%~ZB=`Xy zJlZ%%3lS<7J*Z`oA_$2!2hn0}5Nr=x(259^1eBJpr0YK=habb6c{A_LNb13E9SHRR zfw7!^QPXTdvvZevqIp1n(eReBJW(7BsH3tsn3PQLoc#sZw9v4~_=Bnqf8-AYKAIA(W18&&ws$W)ri$_~e8}hmQgxX+ znG0vtS?SaJwR{c8`|@1hX%vBR4jX?@f8DB{Q0-H|zcNtkCeE&nP>#4vtwL+$yB!-Z zC^aOnniFoN`Lr^8D6@mQ=)CkAPSX&Sb%Um4*hs76QZoDX8F4G`gp{tZ7wtIKzEBP& diff --git a/resources/tables/CR_Upper.bin b/resources/tables/CR_Upper.bin index d87ae018864196e8ff3022297a9446cc3d0c850a..21717eb843083c67e716fa227f9ae86ac238fbf0 100644 GIT binary patch delta 118 zcmZ3W@j!!vfq_+=fq|)eBS$|kqyFX@yvnSm2N)QZgYY3JJ_4kV1Mx{Hz5t{__!<=7 n0Ma)mUl3A~V=Z7{WUT_?8X)ch;vOKL1jJK-cF|oU zT~)u)U{S$rv6sKUVmJj5f>4iWVY-~jR{-~=Wxi78ZY4|7h=N@?8s zD{5~;Z(D}Ufm!THQ?e7mGopd>n8VWzre=@nptB>8)s84{MTblwXtZK}1j{iIO#~1^ z7W;7!^h_KvH$y$$>5^!=C7PkMKMh*+=gsp_a!XP4DfO*U7 zq7^Pzd$6l5M;-?MuI9}|IBP9Zve<_VhMZdXs9JUQ>TzsG$^;@QtHE*O6fSQtdm_o* zCDG-(V2tJ8q92z)erjL^O?<`|d_@cEP9ZX)opo`|in#9YHMQ=YwmX~?cd{&&3ReFE DrK_a? delta 337 zcmXZYKS%;`6bJD4j{95PA3Hk-GYbbRN{)~Qp$J-n1SJZbS|6^7MP_6-_c0(tO)ByAgcF7*ui#Wlm zgbS3H)3hT8_(p9xj$h(O))1f1)ey}gfSARiY@D{W0y=cBk36*Lephmrcym<#uZ?Px#Ej9-qBu@oEZJsT$4HmF1QL(1cv$?ZJ zS^A&PS)`7gG(tdUm)(%#gt#d7oE%asa)eDCK}{&4f~du!M#SQ`km17*?mhRMb4vrYj3p9qM7+VO zHKpNE5o-dMa0R#A`+D1>JIn!Jzkftz?T9J*j_Nz}*4M4eZp#-`ou3VyReww*o-kv< zed?H3!KsdUk#50WQ?w4d@2w#<={3L2K!_>5@i0_N~^m1#Mrb;vy)%4s0ZtoX2*4jZkQY^2;HqKOb9$YCdTgPw_l zrWxt$N|!{_OQIP{vuV>QF8Mxo%YS#1qu;%xsKK4wfk_FXJcvf_=*?q7@!j`>>@g zPwof*t`8NMWHH delta 358 zcmXZYPbfnH90&04@3r@5w!J;u>ru?eVMuF-MXg9VQkE#EwQ_J=NpW+aIMUBS?XcZ; zWZt4&yf_fKu!9TvQ?84mhJ&AS`1I}9_ww!MrM8j=pq>HBQ`IO^YZ)+V;!vE6Ten6f zg+_SBm*6#DKK1|v|2&Ep@hTePO}rndI?=UjXv-7|0&S+SMK`bOQ)F>nFZw;817d<# zjGPv00@2v)U!HVwyMYjC*6x5oeq}UUYg?5A@u0FPvfW-$SX$FOSk}wD;>K0VXwm0T*#r A!vFvP diff --git a/resources/tables/CR_XID_Start.bin b/resources/tables/CR_XID_Start.bin index 6dfc537b9227df209cad7c92d1952880f91d8437..52e49f81a5d25a5faeade01e65ded9e8dc0d8f8a 100644 GIT binary patch delta 525 zcmXZZODIH97zgn0yVo6eYM5)p$b=fnqp6W+l2^(~8cNyBb`~T<*~o&0JVOoqg^cNQm9d|j#%Db+;MdRU$1EI*Mt3DYnS z0XWkGEK7=)$l?_Nxs`AAxLhwO8ASF1;WBM;yB;wuuozI^h0olXcTTh&feX0&cZIxx z5B=1flo}O3u`&XqFavY21k11jtFQ@M5C$Fg;Si3*i6u8Xb&NQ50wy5@yKtaiTO4d` zw~mWMnj>wHSQ~<2gHY4^lqOOLY4T=f2gZAwzc5=f@$xV* zi1PulAP_4|Hep-L=)L&{TR$VO9s`4p0T9Olal+&jj!&%f|1dBtm>kR*!n>b=Vfi5- zJ_W>IHy`2r$26IVS7NgfuO#E-U_Ob-)qEL~U-R9ce2IT1O=C3C zV_W%L0fUfH-clhhP!k2B6SJIUo)I;-JkR1eF-&9sHx7h5ZeN= g9|S)-z`*$E_2vp;bwyoAE@WVo`wqlE7#QXML$C@^T%~041Xd3K;gl9X diff --git a/resources/tables/CaseFold.bin b/resources/tables/CaseFold.bin index ab9dee67e687c47c5af326ea335b62ec0412afe2..347026af758b21999ba7cf2e0da664fca6246c3f 100644 GIT binary patch delta 509 zcmXxc%PvDv0EOYblkVtw15<;}ni_W6p~O4z3Z?GBaj!}_Rm81sQI0#!p-4O64VbvR zijkH2&AvY?S;T?GZ@5+O?A`js`c^L1@Bltib#fS1(%f59-igAWx zc>-7ENqi#v_*9<4p*)Sx*KfPAu8E)i7d@C35oxFr=auG-J jGQO8r@Pi!Sx?IAK@+wX|DaypNyp9|425v^xOncieU4>32 delta 34 qcmbO;nQ>1)BMSoq>!pn>{d$|{>lJWJmNxg;+-@Gtxw*|rj2!^Xi3?l+ diff --git a/resources/tables/CaseUnfold_11.bin b/resources/tables/CaseUnfold_11.bin index db9b182c38f0f71abb39cdd517b797565fe17577..6724aeb5c5c156cb13067963baa073b8a968f870 100644 GIT binary patch delta 509 zcmXZR$u0z87)IgmPwJP{U62q-M`F_(SJStEMmIr~Zu6`|%u@_yrc=hS;11XrcH%lL zylH3moSZmz-(?q=`Fu4fWWtb;SrTx)Z?RtM)~X%m&r$tL$%Hb1la#RdSr#|#Sq diff --git a/resources/tables/Transcoder_SingleByte_ByteArray.bin b/resources/tables/Transcoder_SingleByte_ByteArray.bin index a6846f658340dadddcc1edbe66c205f236b7fa59..284b334d4fc0ef9f56d1eb17dc9d9ef5fb36bb40 100644 GIT binary patch delta 376 zcmY+AO-lk{6otKx^Ijci-tlWbbVf&KR4S-#h?GG=gdnu4R`~;3^bd5^y5TN^vQ=wo z(XNlJn{wHo5QSC+)jKYN4&2LKT%L0{vsd_e2NsK+eZ>YeJ{pcMx;?5n*J-z0@v1dH zs5e}iOUK~Sv=`9#7PCMIlPLft9i5G{A9M|tt73?zWz6U3#+AW{;A3#zCgM;$Ym#T@3bfCidqp^Zf>p@S}#v4S2} zv4%bd5kc?;3;u$F1{`$AKo)Y4hXNR2f(14dOAaji0#TS;2WT{DvD*wswj^TEtvaEX Q{X!g*^w8SA|LA?%zh?hR3jhEB delta 30 mcmex=lkweoMm7e9^j8e^lLfOHHnw^DO`d6?w3#L3w*&ymmJDzJ diff --git a/resources/tables/Transcoder_SingleByte_WordArray.bin b/resources/tables/Transcoder_SingleByte_WordArray.bin index 61364d9d53b21e01b0963ff119adc02f92f8d26c..9ccb6072774a907e89a10ec33ce9aa715e83e0a3 100644 GIT binary patch delta 4002 zcmaKve^AuN6~OntC*K%LS~^XrWm1N=*4l)gI@g9*sN@>34EL*V3xcyfn=2M7ldjiAiLHehLDtTi;HN?T2A^Q)ibzT^yJ`p1WT z`*z>%dvD)&Z|N;E+id1JLOj0j_?*WIEH0l}ob;J1^R5ORgyOQRLD?l&gL0q?>YxQ| z-~lV-LkU!XXuDuOgq_%T(JYR$RyTC{%z69KH6wd{=9Au=K^-83xZg|L1@2DzcAwcI zj{3|wr|2AJa-Gkdi`jIRmBOMib3Jk+w15lRzzU_%4kw@*D&aWTIbtDJ4+~KcDJ(+Vr_MzPyCy_09ELjh z6O_X^I3OD&?1l;`g%Wt?q7a3VtYNJ4Cb~bvLz~d=28sWE(H1~H9DqW28S-F1yaF$2k!(S9hzAe|%72xs9OG{I}o4Cmn} z3_&Xl!!h~E(_gi8A-xXWa0zCya(^Xf8f7R2?wDX4ne|Z4tAH} zq{{O+ed?_kIia35f-#eSyfBl4%tdCbuwn^+THq{3b5SmWDC7ZJ4yu@O5exB<#A5HD zTk4J~n5SvQc`|Ens7xqaqCfj4^yjN5l7bnOBI8Lqx%B`dZfg3jLIH*%s>S+W9u; z%5htmW!?LTDj9|Y>U&xLBXo&=orB~!CXh*JEln*6t;ONmRObDjHUp)RNIRmP1UVjt z7)U~aont5DBO8gW%|nicSn;J#OLcuWi&?3(0{LpigYIu1+Gf&f$ECGqMc4)p*Shk- z@KJr|D~Y^5$~{@5o3#2EX#0w0Q}3es!(~|OB6+!S zU~%gt(~Y>)&6v8AOZ-kicLAM>S6#`er-X0?%aNu>!cvLCr4ov1CqpwO?@A&8kH}@s z!TQE!Ov#k-%?mB6lwC*svt4%TYyz3sYiV2@&E2)?Qq^GOp!FKgP^&I-;fe^)KUEuj*r_8?`6C<;p{OT zE5|6!_UP#l=C$?en?4ZYWQ-hX3)MIOScr~AaP@nZ|aLpSf@3e>OTX^w#NLwVA2sOqk9%x`i)GeL-SFQz7d#Ucmd#IKjogWnpQ<<6j>j| z)fYow*)Y$S3pV;jHu|q2e>NK;gMIoZ)fzMZ461+nta7+>k2~}9uT9!Ol)Tn^LErWg zr?ph2Mc;OgCuxWb_T^Xx)38(-xrdj7R{~xR;`zP29GuHi$&48uo~1wA!|h+-)f-~i z-@m)#N>C2$fn4_kKV4(`;)|s8Z2ZgyviJMpx+#uVa+ljWz!9IDkhU`iwDY&zk%RM0 zmLZZdb13R5tnS%ik}#uFFV@vhqpS1lhF!FTH~URA+=1Rm{Ln7u=YdK#bJJ8o7$FUh TAV)(i#0!E+5+ZXBlSlstvql#m delta 2801 zcmaJ@ZA_C_6h3{?S7a>X2dk`c3sHxRv5AD4Zi$8&V>;&e5L6JviiplE8(WN$$X2G# z@B>}vML;RiGDK(*DlcHG6l+E7Hs+cPoO4VY;uf|M!yMaivXAG|x3(d=A5YG?=i}b< zoO|EX8Vn)MPeNu9B`!HLYw002v^R-4wy34Qj~r77hvHfBM@rUKnIxuuN%XOrMZBwI z|5TPM)1JVxoQM>_9Oz|4`bErGlql%qCC||?LC_bo;cAtbmO*r+lucFN5Yre`1G7H0 znjKb#vbba6y0jr8R!S89G*RJg-(D02+c42i$ZZCqqG%wCD19F6JVrkANF{V0y9*eE z9t$K8aWkm_4Ui6GV}BFuq0o8mTsn9)gwDD`Na{K^q!80{;9SM@wJBmoE>Tqi^VZ%G zs>+zhkRntUv-x$Z{OTSgf@rk|QZDR08_^ydm{AA&b$N5dRF(K*s&~NN30*F%dK|hM z2r4Y&7Gfru)7By_Ke0t2)Fd%ueUZ5K8qx7&Hs1COi!%<0nNe7_vMFPXn7NUt*1%#- z3sN)DoLV>b!j3avAQ^KnEZJSwF&mJ>dTawsri} zNuSM70=)uy6eQmZT{eJ49V%V76EYk=`Pz@eUyD1gbpoTn6fN;3&PP%L0|1KHRNMb;%r-Ud9-x-vG_xKg$LQ=)o)woLgNYFoV&wn0gAQd9`_qb$AYpkN$l z#a0!&+Y}|P|AELdu^Wl~z$L&6Y*>six6f~Ch6Fj26Y%=TZFm#nRXwSi@{BYsG8?HfFO3bG|D3Hq@XJ zzd~6#F+?XLS-JU+n6m?FEGxC72u<^+>5W*TbU9|CCV2b}VMuyj37gSpYpQ`njZNq! zzoeWo==_<>JQ|y^Yq&4wWHfw{fEH_+N0S@68qfggKsM3F7ZKxut{`^VrjsUH4=RLH zk*ut3r6YvPl%|M^; zzIdK_0(qf`iv<#(*FdTP4Ui6G``)0%2wg$aW!rWI^PUc6&WpM)%dEr?Fr?MKpC z{D4n8>gRmg4?qTS%KHtr3XCy_bg%0Th0s1cJ-dp|Iu~sEndr=@d_Ja48*1tW`1R$- zV@3=xjV)$v{@YM_SWrnF=xm1LDyiwe-$?V)%d&lE%eQ}XO%sk z7Cv|^cHU<-fKB|5f6EGNR4heZ2oqxLHrVANkE6f~fB~ojP5=cj5uNX2nu{Z1!5*mN zEWx!=EU**xc$nU$R5=m?8yrPK6|gE1zfKzFbg5JhZNSZkSS|2+Kis8k!u5*asALJ3 z^2LJtuy|PIr9@q?+yQ=rj%;8TPyx8{Wa9yBxOF)sCnn$Ic`qs(#Tq$1h;zgO$yh`3 z3D8>(sRlFv?;!Tws)Jn*T~Ss!GJ79T0qEIt7xqi;zTFC;caSCbUlj{?6FI$LohlaE zh%R=bU?uzD%3C^DD6)C$aO%uTUHCTrmAX*9SMjS51o$QM(8=-HM!8G>14jy_Hvj+t diff --git a/scripts/generate.rb b/scripts/generate.rb index ca45ea0b..84f0971f 100644 --- a/scripts/generate.rb +++ b/scripts/generate.rb @@ -8,7 +8,7 @@ else ;["rdata", ""] end -UNICODE_VERSION = "13.0.0" +UNICODE_VERSION = "15.0.0" SRC_DIR = "../src/org/jcodings" DST_BIN_DIR = "../resources/tables" INDENT = " " * 4 diff --git a/src/org/jcodings/Config.java b/src/org/jcodings/Config.java index 09bf0c70..28dcd8fb 100644 --- a/src/org/jcodings/Config.java +++ b/src/org/jcodings/Config.java @@ -62,12 +62,12 @@ public interface Config { final int ENC_CASE_FOLD_MIN = INTERNAL_ENC_CASE_FOLD_MULTI_CHAR; final int ENC_CASE_FOLD_DEFAULT = ENC_CASE_FOLD_MIN; - final String UNICODE_VERSION_STRING = "13.0.0"; - final int UNICODE_VERSION_MAJOR = 13; + final String UNICODE_VERSION_STRING = "15.0.0"; + final int UNICODE_VERSION_MAJOR = 15; final int UNICODE_VERSION_MINOR = 0; final int UNICODE_VERSION_TEENY = 0; - final String UNICODE_EMOJI_VERSION_STRING = "13.1"; - final int UNICODE_EMOJI_VERSION_MAJOR = 13; - final int UNICODE_EMOJI_VERSION_MINOR = 1; + final String UNICODE_EMOJI_VERSION_STRING = "15.0"; + final int UNICODE_EMOJI_VERSION_MAJOR = 15; + final int UNICODE_EMOJI_VERSION_MINOR = 0; } diff --git a/src/org/jcodings/transcode/TranscoderList.java b/src/org/jcodings/transcode/TranscoderList.java index 9b6f2f72..235fa14d 100644 --- a/src/org/jcodings/transcode/TranscoderList.java +++ b/src/org/jcodings/transcode/TranscoderList.java @@ -101,6 +101,7 @@ static void load() { TranscoderDB.declare("", "universal_newline", "Universal_newline"); TranscoderDB.declare("", "crlf_newline", null /*Crlf_newline*/); TranscoderDB.declare("", "cr_newline", null /*Cr_newline*/); + TranscoderDB.declare("", "lf_newline", "Lf_newline"); TranscoderDB.declare("US-ASCII", "UTF-8", null /*From_US_ASCII*/); TranscoderDB.declare("UTF-8", "US-ASCII", null /*To_US_ASCII*/); TranscoderDB.declare("ASCII-8BIT", "UTF-8", null /*From_ASCII_8BIT*/); @@ -175,6 +176,8 @@ static void load() { TranscoderDB.declare("UTF-8", "IBM862", null /*To_IBM862*/); TranscoderDB.declare("IBM863", "UTF-8", null /*From_IBM863*/); TranscoderDB.declare("UTF-8", "IBM863", null /*To_IBM863*/); + TranscoderDB.declare("IBM864", "UTF-8", null /*From_IBM864*/); + TranscoderDB.declare("UTF-8", "IBM864", null /*To_IBM864*/); TranscoderDB.declare("IBM865", "UTF-8", null /*From_IBM865*/); TranscoderDB.declare("UTF-8", "IBM865", null /*To_IBM865*/); TranscoderDB.declare("IBM866", "UTF-8", null /*From_IBM866*/); @@ -223,7 +226,7 @@ static void load() { TranscoderDB.declare("UTF-32", "UTF-8", "From_UTF_32"); TranscoderDB.declare("UTF-8", "UTF-16", "To_UTF_16"); TranscoderDB.declare("UTF-8", "UTF-32", "To_UTF_32"); - } + }; static final GenericTranscoderEntry[] GENERIC_LIST = new GenericTranscoderEntry[] { new GenericTranscoderEntry("Big5", "UTF-8", 57100, "Big5", 1, 2, 1, AsciiCompatibility.CONVERTER, 0), @@ -359,36 +362,38 @@ static void load() { new GenericTranscoderEntry("UTF-8", "IBM862", 35228, "SingleByte", 1, 4, 1, AsciiCompatibility.CONVERTER, 0), new GenericTranscoderEntry("IBM863", "UTF-8", 35752, "SingleByte", 1, 1, 1, AsciiCompatibility.CONVERTER, 0), new GenericTranscoderEntry("UTF-8", "IBM863", 36132, "SingleByte", 1, 4, 1, AsciiCompatibility.CONVERTER, 0), - new GenericTranscoderEntry("IBM865", "UTF-8", 36656, "SingleByte", 1, 1, 1, AsciiCompatibility.CONVERTER, 0), - new GenericTranscoderEntry("UTF-8", "IBM865", 36968, "SingleByte", 1, 4, 1, AsciiCompatibility.CONVERTER, 0), - new GenericTranscoderEntry("IBM866", "UTF-8", 37492, "SingleByte", 1, 1, 1, AsciiCompatibility.CONVERTER, 0), - new GenericTranscoderEntry("UTF-8", "IBM866", 37948, "SingleByte", 1, 4, 1, AsciiCompatibility.CONVERTER, 0), - new GenericTranscoderEntry("IBM869", "UTF-8", 38440, "SingleByte", 1, 1, 1, AsciiCompatibility.CONVERTER, 0), - new GenericTranscoderEntry("UTF-8", "IBM869", 38956, "SingleByte", 1, 4, 1, AsciiCompatibility.CONVERTER, 0), - new GenericTranscoderEntry("MACCROATIAN", "UTF-8", 39480, "SingleByte", 1, 1, 1, AsciiCompatibility.CONVERTER, 0), - new GenericTranscoderEntry("UTF-8", "MACCROATIAN", 40312, "SingleByte", 1, 4, 1, AsciiCompatibility.CONVERTER, 0), - new GenericTranscoderEntry("MACCYRILLIC", "UTF-8", 40836, "SingleByte", 1, 1, 1, AsciiCompatibility.CONVERTER, 0), - new GenericTranscoderEntry("UTF-8", "MACCYRILLIC", 41540, "SingleByte", 1, 4, 1, AsciiCompatibility.CONVERTER, 0), - new GenericTranscoderEntry("MACGREEK", "UTF-8", 42064, "SingleByte", 1, 1, 1, AsciiCompatibility.CONVERTER, 0), - new GenericTranscoderEntry("UTF-8", "MACGREEK", 42764, "SingleByte", 1, 4, 1, AsciiCompatibility.CONVERTER, 0), - new GenericTranscoderEntry("MACICELAND", "UTF-8", 43288, "SingleByte", 1, 1, 1, AsciiCompatibility.CONVERTER, 0), - new GenericTranscoderEntry("UTF-8", "MACICELAND", 44004, "SingleByte", 1, 4, 1, AsciiCompatibility.CONVERTER, 0), - new GenericTranscoderEntry("MACROMAN", "UTF-8", 44528, "SingleByte", 1, 1, 1, AsciiCompatibility.CONVERTER, 0), - new GenericTranscoderEntry("UTF-8", "MACROMAN", 45012, "SingleByte", 1, 4, 1, AsciiCompatibility.CONVERTER, 0), - new GenericTranscoderEntry("MACROMANIA", "UTF-8", 45536, "SingleByte", 1, 1, 1, AsciiCompatibility.CONVERTER, 0), - new GenericTranscoderEntry("UTF-8", "MACROMANIA", 45912, "SingleByte", 1, 4, 1, AsciiCompatibility.CONVERTER, 0), - new GenericTranscoderEntry("MACTURKISH", "UTF-8", 46432, "SingleByte", 1, 1, 1, AsciiCompatibility.CONVERTER, 0), - new GenericTranscoderEntry("UTF-8", "MACTURKISH", 46788, "SingleByte", 1, 4, 1, AsciiCompatibility.CONVERTER, 0), - new GenericTranscoderEntry("MACUKRAINE", "UTF-8", 47312, "SingleByte", 1, 1, 1, AsciiCompatibility.CONVERTER, 0), - new GenericTranscoderEntry("UTF-8", "MACUKRAINE", 47536, "SingleByte", 1, 4, 1, AsciiCompatibility.CONVERTER, 0), - new GenericTranscoderEntry("KOI8-U", "UTF-8", 48060, "SingleByte", 1, 1, 1, AsciiCompatibility.CONVERTER, 0), - new GenericTranscoderEntry("UTF-8", "KOI8-U", 48844, "SingleByte", 1, 4, 1, AsciiCompatibility.CONVERTER, 0), - new GenericTranscoderEntry("KOI8-R", "UTF-8", 49368, "SingleByte", 1, 1, 1, AsciiCompatibility.CONVERTER, 0), - new GenericTranscoderEntry("UTF-8", "KOI8-R", 49900, "SingleByte", 1, 4, 1, AsciiCompatibility.CONVERTER, 0), - new GenericTranscoderEntry("TIS-620", "UTF-8", 50264, "SingleByte", 1, 1, 1, AsciiCompatibility.CONVERTER, 0), - new GenericTranscoderEntry("UTF-8", "TIS-620", 50308, "SingleByte", 1, 4, 1, AsciiCompatibility.CONVERTER, 0), - new GenericTranscoderEntry("CP850", "UTF-8", 50832, "SingleByte", 1, 1, 1, AsciiCompatibility.CONVERTER, 0), - new GenericTranscoderEntry("UTF-8", "CP850", 51380, "SingleByte", 1, 4, 1, AsciiCompatibility.CONVERTER, 0), + new GenericTranscoderEntry("IBM864", "UTF-8", 36644, "SingleByte", 1, 1, 1, AsciiCompatibility.CONVERTER, 0), + new GenericTranscoderEntry("UTF-8", "IBM864", 37504, "SingleByte", 1, 4, 1, AsciiCompatibility.CONVERTER, 0), + new GenericTranscoderEntry("IBM865", "UTF-8", 38028, "SingleByte", 1, 1, 1, AsciiCompatibility.CONVERTER, 0), + new GenericTranscoderEntry("UTF-8", "IBM865", 38340, "SingleByte", 1, 4, 1, AsciiCompatibility.CONVERTER, 0), + new GenericTranscoderEntry("IBM866", "UTF-8", 38864, "SingleByte", 1, 1, 1, AsciiCompatibility.CONVERTER, 0), + new GenericTranscoderEntry("UTF-8", "IBM866", 39320, "SingleByte", 1, 4, 1, AsciiCompatibility.CONVERTER, 0), + new GenericTranscoderEntry("IBM869", "UTF-8", 39812, "SingleByte", 1, 1, 1, AsciiCompatibility.CONVERTER, 0), + new GenericTranscoderEntry("UTF-8", "IBM869", 40328, "SingleByte", 1, 4, 1, AsciiCompatibility.CONVERTER, 0), + new GenericTranscoderEntry("MACCROATIAN", "UTF-8", 40852, "SingleByte", 1, 1, 1, AsciiCompatibility.CONVERTER, 0), + new GenericTranscoderEntry("UTF-8", "MACCROATIAN", 41684, "SingleByte", 1, 4, 1, AsciiCompatibility.CONVERTER, 0), + new GenericTranscoderEntry("MACCYRILLIC", "UTF-8", 42208, "SingleByte", 1, 1, 1, AsciiCompatibility.CONVERTER, 0), + new GenericTranscoderEntry("UTF-8", "MACCYRILLIC", 42912, "SingleByte", 1, 4, 1, AsciiCompatibility.CONVERTER, 0), + new GenericTranscoderEntry("MACGREEK", "UTF-8", 43436, "SingleByte", 1, 1, 1, AsciiCompatibility.CONVERTER, 0), + new GenericTranscoderEntry("UTF-8", "MACGREEK", 44136, "SingleByte", 1, 4, 1, AsciiCompatibility.CONVERTER, 0), + new GenericTranscoderEntry("MACICELAND", "UTF-8", 44660, "SingleByte", 1, 1, 1, AsciiCompatibility.CONVERTER, 0), + new GenericTranscoderEntry("UTF-8", "MACICELAND", 45376, "SingleByte", 1, 4, 1, AsciiCompatibility.CONVERTER, 0), + new GenericTranscoderEntry("MACROMAN", "UTF-8", 45900, "SingleByte", 1, 1, 1, AsciiCompatibility.CONVERTER, 0), + new GenericTranscoderEntry("UTF-8", "MACROMAN", 46384, "SingleByte", 1, 4, 1, AsciiCompatibility.CONVERTER, 0), + new GenericTranscoderEntry("MACROMANIA", "UTF-8", 46908, "SingleByte", 1, 1, 1, AsciiCompatibility.CONVERTER, 0), + new GenericTranscoderEntry("UTF-8", "MACROMANIA", 47284, "SingleByte", 1, 4, 1, AsciiCompatibility.CONVERTER, 0), + new GenericTranscoderEntry("MACTURKISH", "UTF-8", 47804, "SingleByte", 1, 1, 1, AsciiCompatibility.CONVERTER, 0), + new GenericTranscoderEntry("UTF-8", "MACTURKISH", 48160, "SingleByte", 1, 4, 1, AsciiCompatibility.CONVERTER, 0), + new GenericTranscoderEntry("MACUKRAINE", "UTF-8", 48684, "SingleByte", 1, 1, 1, AsciiCompatibility.CONVERTER, 0), + new GenericTranscoderEntry("UTF-8", "MACUKRAINE", 48908, "SingleByte", 1, 4, 1, AsciiCompatibility.CONVERTER, 0), + new GenericTranscoderEntry("KOI8-U", "UTF-8", 49432, "SingleByte", 1, 1, 1, AsciiCompatibility.CONVERTER, 0), + new GenericTranscoderEntry("UTF-8", "KOI8-U", 50216, "SingleByte", 1, 4, 1, AsciiCompatibility.CONVERTER, 0), + new GenericTranscoderEntry("KOI8-R", "UTF-8", 50740, "SingleByte", 1, 1, 1, AsciiCompatibility.CONVERTER, 0), + new GenericTranscoderEntry("UTF-8", "KOI8-R", 51272, "SingleByte", 1, 4, 1, AsciiCompatibility.CONVERTER, 0), + new GenericTranscoderEntry("TIS-620", "UTF-8", 51636, "SingleByte", 1, 1, 1, AsciiCompatibility.CONVERTER, 0), + new GenericTranscoderEntry("UTF-8", "TIS-620", 51680, "SingleByte", 1, 4, 1, AsciiCompatibility.CONVERTER, 0), + new GenericTranscoderEntry("CP850", "UTF-8", 52204, "SingleByte", 1, 1, 1, AsciiCompatibility.CONVERTER, 0), + new GenericTranscoderEntry("UTF-8", "CP850", 52752, "SingleByte", 1, 4, 1, AsciiCompatibility.CONVERTER, 0), new GenericTranscoderEntry("CP852", "UTF-8", 29992, "SingleByte", 1, 1, 1, AsciiCompatibility.CONVERTER, 0), new GenericTranscoderEntry("UTF-8", "CP852", 30608, "SingleByte", 1, 4, 1, AsciiCompatibility.CONVERTER, 0), new GenericTranscoderEntry("CP855", "UTF-8", 31132, "SingleByte", 1, 1, 1, AsciiCompatibility.CONVERTER, 0), @@ -416,6 +421,7 @@ public static Transcoder getInstance(String name) { case "Eucjp2sjis": return Eucjp2sjis_Transcoder.INSTANCE; case "Sjis2eucjp": return Sjis2eucjp_Transcoder.INSTANCE; case "Universal_newline": return Universal_newline_Transcoder.INSTANCE; + case "Lf_newline": return Lf_newline_Transcoder.INSTANCE; case "From_UTF8_MAC": return From_UTF8_MAC_Transcoder.INSTANCE; case "From_UTF_16BE": return From_UTF_16BE_Transcoder.INSTANCE; case "To_UTF_16BE": return To_UTF_16BE_Transcoder.INSTANCE; diff --git a/src/org/jcodings/unicode/UnicodeCodeRange.java b/src/org/jcodings/unicode/UnicodeCodeRange.java index 6277ffa2..8ff37faa 100644 --- a/src/org/jcodings/unicode/UnicodeCodeRange.java +++ b/src/org/jcodings/unicode/UnicodeCodeRange.java @@ -450,6 +450,18 @@ public enum UnicodeCodeRange { KITS("kits", "CR_Khitan_Small_Script"), YEZIDI("yezidi", "CR_Yezidi"), YEZI("yezi", "CR_Yezidi"), + CYPROMINOAN("cyprominoan", "CR_Cypro_Minoan"), + CPMN("cpmn", "CR_Cypro_Minoan"), + OLDUYGHUR("olduyghur", "CR_Old_Uyghur"), + OUGR("ougr", "CR_Old_Uyghur"), + TANGSA("tangsa", "CR_Tangsa"), + TNSA("tnsa", "CR_Tangsa"), + TOTO("toto", "CR_Toto"), + VITHKUQI("vithkuqi", "CR_Vithkuqi"), + VITH("vith", "CR_Vithkuqi"), + KAWI("kawi", "CR_Kawi"), + NAGMUNDARI("nagmundari", "CR_Nag_Mundari"), + NAGM("nagm", "CR_Nag_Mundari"), WHITESPACE("whitespace", "CR_Space"), WSPACE("wspace", "CR_Space"), BIDICONTROL("bidicontrol", "CR_Bidi_Control"), @@ -550,6 +562,8 @@ public enum UnicodeCodeRange { AGE_12_0("age=12.0", "CR_Age_12_0"), AGE_12_1("age=12.1", "CR_Age_12_1"), AGE_13_0("age=13.0", "CR_Age_13_0"), + AGE_14_0("age=14.0", "CR_Age_14_0"), + AGE_15_0("age=15.0", "CR_Age_15_0"), GRAPHEMECLUSTERBREAK_PREPEND("graphemeclusterbreak=prepend", "CR_Grapheme_Cluster_Break_Prepend"), GRAPHEMECLUSTERBREAK_CR("graphemeclusterbreak=cr", "CR_Grapheme_Cluster_Break_CR"), GRAPHEMECLUSTERBREAK_LF("graphemeclusterbreak=lf", "CR_NEWLINE"), @@ -584,6 +598,7 @@ public enum UnicodeCodeRange { INSAMARITAN("insamaritan", "CR_In_Samaritan"), INMANDAIC("inmandaic", "CR_In_Mandaic"), INSYRIACSUPPLEMENT("insyriacsupplement", "CR_In_Syriac_Supplement"), + INARABICEXTENDEDB("inarabicextendedb", "CR_In_Arabic_Extended_B"), INARABICEXTENDEDA("inarabicextendeda", "CR_In_Arabic_Extended_A"), INDEVANAGARI("indevanagari", "CR_In_Devanagari"), INBENGALI("inbengali", "CR_In_Bengali"), @@ -751,7 +766,9 @@ public enum UnicodeCodeRange { INOSAGE("inosage", "CR_In_Osage"), INELBASAN("inelbasan", "CR_In_Elbasan"), INCAUCASIANALBANIAN("incaucasianalbanian", "CR_In_Caucasian_Albanian"), + INVITHKUQI("invithkuqi", "CR_In_Vithkuqi"), INLINEARA("inlineara", "CR_In_Linear_A"), + INLATINEXTENDEDF("inlatinextendedf", "CR_In_Latin_Extended_F"), INCYPRIOTSYLLABARY("incypriotsyllabary", "CR_In_Cypriot_Syllabary"), INIMPERIALARAMAIC("inimperialaramaic", "CR_In_Imperial_Aramaic"), PALMYRENE("palmyrene", "CR_Palmyrene"), @@ -778,8 +795,10 @@ public enum UnicodeCodeRange { INHANIFIROHINGYA("inhanifirohingya", "CR_In_Hanifi_Rohingya"), INRUMINUMERALSYMBOLS("inruminumeralsymbols", "CR_In_Rumi_Numeral_Symbols"), INYEZIDI("inyezidi", "CR_In_Yezidi"), + INARABICEXTENDEDC("inarabicextendedc", "CR_In_Arabic_Extended_C"), INOLDSOGDIAN("inoldsogdian", "CR_In_Old_Sogdian"), INSOGDIAN("insogdian", "CR_In_Sogdian"), + INOLDUYGHUR("inolduyghur", "CR_In_Old_Uyghur"), INCHORASMIAN("inchorasmian", "CR_In_Chorasmian"), INELYMAIC("inelymaic", "CR_In_Elymaic"), INBRAHMI("inbrahmi", "CR_In_Brahmi"), @@ -807,22 +826,27 @@ public enum UnicodeCodeRange { INNANDINAGARI("innandinagari", "CR_In_Nandinagari"), INZANABAZARSQUARE("inzanabazarsquare", "CR_In_Zanabazar_Square"), INSOYOMBO("insoyombo", "CR_In_Soyombo"), + INUNIFIEDCANADIANABORIGINALSYLLABICSEXTENDEDA("inunifiedcanadianaboriginalsyllabicsextendeda", "CR_In_Unified_Canadian_Aboriginal_Syllabics_Extended_A"), INPAUCINHAU("inpaucinhau", "CR_In_Pau_Cin_Hau"), + INDEVANAGARIEXTENDEDA("indevanagariextendeda", "CR_In_Devanagari_Extended_A"), INBHAIKSUKI("inbhaiksuki", "CR_In_Bhaiksuki"), INMARCHEN("inmarchen", "CR_In_Marchen"), INMASARAMGONDI("inmasaramgondi", "CR_In_Masaram_Gondi"), INGUNJALAGONDI("ingunjalagondi", "CR_In_Gunjala_Gondi"), INMAKASAR("inmakasar", "CR_In_Makasar"), + INKAWI("inkawi", "CR_In_Kawi"), INLISUSUPPLEMENT("inlisusupplement", "CR_In_Lisu_Supplement"), INTAMILSUPPLEMENT("intamilsupplement", "CR_In_Tamil_Supplement"), INCUNEIFORM("incuneiform", "CR_In_Cuneiform"), INCUNEIFORMNUMBERSANDPUNCTUATION("incuneiformnumbersandpunctuation", "CR_In_Cuneiform_Numbers_and_Punctuation"), INEARLYDYNASTICCUNEIFORM("inearlydynasticcuneiform", "CR_In_Early_Dynastic_Cuneiform"), + INCYPROMINOAN("incyprominoan", "CR_In_Cypro_Minoan"), INEGYPTIANHIEROGLYPHS("inegyptianhieroglyphs", "CR_In_Egyptian_Hieroglyphs"), INEGYPTIANHIEROGLYPHFORMATCONTROLS("inegyptianhieroglyphformatcontrols", "CR_In_Egyptian_Hieroglyph_Format_Controls"), INANATOLIANHIEROGLYPHS("inanatolianhieroglyphs", "CR_In_Anatolian_Hieroglyphs"), INBAMUMSUPPLEMENT("inbamumsupplement", "CR_In_Bamum_Supplement"), INMRO("inmro", "CR_In_Mro"), + INTANGSA("intangsa", "CR_In_Tangsa"), INBASSAVAH("inbassavah", "CR_In_Bassa_Vah"), INPAHAWHHMONG("inpahawhhmong", "CR_In_Pahawh_Hmong"), INMEDEFAIDRIN("inmedefaidrin", "CR_In_Medefaidrin"), @@ -832,23 +856,31 @@ public enum UnicodeCodeRange { INTANGUTCOMPONENTS("intangutcomponents", "CR_In_Tangut_Components"), INKHITANSMALLSCRIPT("inkhitansmallscript", "CR_In_Khitan_Small_Script"), INTANGUTSUPPLEMENT("intangutsupplement", "CR_In_Tangut_Supplement"), + INKANAEXTENDEDB("inkanaextendedb", "CR_In_Kana_Extended_B"), INKANASUPPLEMENT("inkanasupplement", "CR_In_Kana_Supplement"), INKANAEXTENDEDA("inkanaextendeda", "CR_In_Kana_Extended_A"), INSMALLKANAEXTENSION("insmallkanaextension", "CR_In_Small_Kana_Extension"), INNUSHU("innushu", "CR_In_Nushu"), INDUPLOYAN("induployan", "CR_In_Duployan"), INSHORTHANDFORMATCONTROLS("inshorthandformatcontrols", "CR_In_Shorthand_Format_Controls"), + INZNAMENNYMUSICALNOTATION("inznamennymusicalnotation", "CR_In_Znamenny_Musical_Notation"), INBYZANTINEMUSICALSYMBOLS("inbyzantinemusicalsymbols", "CR_In_Byzantine_Musical_Symbols"), INMUSICALSYMBOLS("inmusicalsymbols", "CR_In_Musical_Symbols"), INANCIENTGREEKMUSICALNOTATION("inancientgreekmusicalnotation", "CR_In_Ancient_Greek_Musical_Notation"), + INKAKTOVIKNUMERALS("inkaktoviknumerals", "CR_In_Kaktovik_Numerals"), INMAYANNUMERALS("inmayannumerals", "CR_In_Mayan_Numerals"), INTAIXUANJINGSYMBOLS("intaixuanjingsymbols", "CR_In_Tai_Xuan_Jing_Symbols"), INCOUNTINGRODNUMERALS("incountingrodnumerals", "CR_In_Counting_Rod_Numerals"), INMATHEMATICALALPHANUMERICSYMBOLS("inmathematicalalphanumericsymbols", "CR_In_Mathematical_Alphanumeric_Symbols"), INSUTTONSIGNWRITING("insuttonsignwriting", "CR_In_Sutton_SignWriting"), + INLATINEXTENDEDG("inlatinextendedg", "CR_In_Latin_Extended_G"), INGLAGOLITICSUPPLEMENT("inglagoliticsupplement", "CR_In_Glagolitic_Supplement"), + INCYRILLICEXTENDEDD("incyrillicextendedd", "CR_In_Cyrillic_Extended_D"), INNYIAKENGPUACHUEHMONG("innyiakengpuachuehmong", "CR_In_Nyiakeng_Puachue_Hmong"), + INTOTO("intoto", "CR_In_Toto"), INWANCHO("inwancho", "CR_In_Wancho"), + INNAGMUNDARI("innagmundari", "CR_In_Nag_Mundari"), + INETHIOPICEXTENDEDB("inethiopicextendedb", "CR_In_Ethiopic_Extended_B"), INMENDEKIKAKUI("inmendekikakui", "CR_In_Mende_Kikakui"), INADLAM("inadlam", "CR_In_Adlam"), ININDICSIYAQNUMBERS("inindicsiyaqnumbers", "CR_In_Indic_Siyaq_Numbers"), @@ -877,6 +909,7 @@ public enum UnicodeCodeRange { INCJKUNIFIEDIDEOGRAPHSEXTENSIONF("incjkunifiedideographsextensionf", "CR_In_CJK_Unified_Ideographs_Extension_F"), INCJKCOMPATIBILITYIDEOGRAPHSSUPPLEMENT("incjkcompatibilityideographssupplement", "CR_In_CJK_Compatibility_Ideographs_Supplement"), INCJKUNIFIEDIDEOGRAPHSEXTENSIONG("incjkunifiedideographsextensiong", "CR_In_CJK_Unified_Ideographs_Extension_G"), + INCJKUNIFIEDIDEOGRAPHSEXTENSIONH("incjkunifiedideographsextensionh", "CR_In_CJK_Unified_Ideographs_Extension_H"), INTAGS("intags", "CR_In_Tags"), INVARIATIONSELECTORSSUPPLEMENT("invariationselectorssupplement", "CR_In_Variation_Selectors_Supplement"), INSUPPLEMENTARYPRIVATEUSEAREAA("insupplementaryprivateuseareaa", "CR_In_Supplementary_Private_Use_Area_A"), @@ -906,5 +939,5 @@ public int getCType() { } static final UnicodeCodeRange[]CodeRangeTable = UnicodeCodeRange.values(); - static final int MAX_WORD_LENGTH = 44; + static final int MAX_WORD_LENGTH = 45; } From 2bdca5b4bcf603df18e0ba5f42c7cc914a8699a6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pavel=20Rosick=C3=BD?= Date: Thu, 27 Feb 2025 02:10:08 +0100 Subject: [PATCH 2/2] add lf_newline --- scripts/generate.rb | 1 + src/org/jcodings/transcode/EConv.java | 5 +++++ src/org/jcodings/transcode/EConvFlags.java | 15 ++++++++------- src/org/jcodings/transcode/TranscoderDB.java | 2 ++ src/org/jcodings/transcode/TranscoderList.java | 4 ++-- test/org/jcodings/specific/TestEConv.java | 12 ++++++++++++ 6 files changed, 30 insertions(+), 9 deletions(-) diff --git a/scripts/generate.rb b/scripts/generate.rb index 84f0971f..230b71db 100644 --- a/scripts/generate.rb +++ b/scripts/generate.rb @@ -107,6 +107,7 @@ def generate_transcoder_list src, dst, tree_start, table_info, iul, max_in, max_out, conv, state_size, state_init, state_fini, *funcs = body tree_start = trans_src[/#define\s+#{tree_start}\s+WORDINDEX2INFO\((\d+)\)/, 1].to_i << 2 state_size = "24" if state_size == "sizeof(struct from_utf8_mac_status)" + t_name = "universal_newline" if t_name == "Lf_newline" generic = funcs.all?{|f|f == "NULL" || f == "0"} if generic diff --git a/src/org/jcodings/transcode/EConv.java b/src/org/jcodings/transcode/EConv.java index 1197127c..269b4da0 100644 --- a/src/org/jcodings/transcode/EConv.java +++ b/src/org/jcodings/transcode/EConv.java @@ -732,6 +732,11 @@ public void binmode() { if (entry.getTranscoder() != null) transcoders[n++] = entry.getTranscoder(); } + if ((flags & LF_NEWLINE_DECORATOR) != 0) { + TranscoderDB.Entry entry = TranscoderDB.getEntry(NULL_STRING, "lf_newline".getBytes()); + if (entry.getTranscoder() != null) transcoders[n++] = entry.getTranscoder(); + } + int nTrans = numTranscoders; int j = 0; for (int i = 0; i < nTrans; i++) { diff --git a/src/org/jcodings/transcode/EConvFlags.java b/src/org/jcodings/transcode/EConvFlags.java index bbd6f7af..51743e22 100644 --- a/src/org/jcodings/transcode/EConvFlags.java +++ b/src/org/jcodings/transcode/EConvFlags.java @@ -29,23 +29,24 @@ public interface EConvFlags { final int UNDEF_REPLACE = 0x00000020; final int UNDEF_HEX_CHARREF = 0x00000030; - final int DECORATOR_MASK = 0x0000ff00; - final int NEWLINE_DECORATOR_MASK = 0x00003f00; + final int DECORATOR_MASK = 0x0001ff00; + final int NEWLINE_DECORATOR_MASK = 0x00007f00; final int NEWLINE_DECORATOR_READ_MASK = 0x00000f00; - final int NEWLINE_DECORATOR_WRITE_MASK = 0x00003000; + final int NEWLINE_DECORATOR_WRITE_MASK = 0x00007000; final int UNIVERSAL_NEWLINE_DECORATOR = 0x00000100; final int CRLF_NEWLINE_DECORATOR = 0x00001000; final int CR_NEWLINE_DECORATOR = 0x00002000; - final int XML_TEXT_DECORATOR = 0x00004000; - final int XML_ATTR_CONTENT_DECORATOR = 0x00008000; + final int LF_NEWLINE_DECORATOR = 0x00004000; + final int XML_TEXT_DECORATOR = 0x00008000; + final int XML_ATTR_CONTENT_DECORATOR = 0x00010000; final int STATEFUL_DECORATOR_MASK = 0x00f00000; final int XML_ATTR_QUOTE_DECORATOR = 0x00100000; - final int PARTIAL_INPUT = 0x00010000; - final int AFTER_OUTPUT = 0x00020000; + final int PARTIAL_INPUT = 0x00020000; + final int AFTER_OUTPUT = 0x00040000; final int MAX_ECFLAGS_DECORATORS = 32; } \ No newline at end of file diff --git a/src/org/jcodings/transcode/TranscoderDB.java b/src/org/jcodings/transcode/TranscoderDB.java index e944b69d..e9c72d57 100644 --- a/src/org/jcodings/transcode/TranscoderDB.java +++ b/src/org/jcodings/transcode/TranscoderDB.java @@ -247,6 +247,7 @@ public static int decoratorNames(int ecflags, byte[][] decorators) { case UNIVERSAL_NEWLINE_DECORATOR: case CRLF_NEWLINE_DECORATOR: case CR_NEWLINE_DECORATOR: + case LF_NEWLINE_DECORATOR: case 0: break; default: @@ -263,6 +264,7 @@ public static int decoratorNames(int ecflags, byte[][] decorators) { if ((ecflags & CRLF_NEWLINE_DECORATOR) != 0) decorators[numDecorators++] = "crlf_newline".getBytes(); if ((ecflags & CR_NEWLINE_DECORATOR) != 0) decorators[numDecorators++] = "cr_newline".getBytes(); + if ((ecflags & LF_NEWLINE_DECORATOR) != 0) decorators[numDecorators++] = "lf_newline".getBytes(); if ((ecflags & UNIVERSAL_NEWLINE_DECORATOR) != 0) decorators[numDecorators++] = "universal_newline".getBytes(); return numDecorators; diff --git a/src/org/jcodings/transcode/TranscoderList.java b/src/org/jcodings/transcode/TranscoderList.java index 235fa14d..8d0ed16e 100644 --- a/src/org/jcodings/transcode/TranscoderList.java +++ b/src/org/jcodings/transcode/TranscoderList.java @@ -101,7 +101,7 @@ static void load() { TranscoderDB.declare("", "universal_newline", "Universal_newline"); TranscoderDB.declare("", "crlf_newline", null /*Crlf_newline*/); TranscoderDB.declare("", "cr_newline", null /*Cr_newline*/); - TranscoderDB.declare("", "lf_newline", "Lf_newline"); + TranscoderDB.declare("", "lf_newline", "Universal_newline"); TranscoderDB.declare("US-ASCII", "UTF-8", null /*From_US_ASCII*/); TranscoderDB.declare("UTF-8", "US-ASCII", null /*To_US_ASCII*/); TranscoderDB.declare("ASCII-8BIT", "UTF-8", null /*From_ASCII_8BIT*/); @@ -421,7 +421,7 @@ public static Transcoder getInstance(String name) { case "Eucjp2sjis": return Eucjp2sjis_Transcoder.INSTANCE; case "Sjis2eucjp": return Sjis2eucjp_Transcoder.INSTANCE; case "Universal_newline": return Universal_newline_Transcoder.INSTANCE; - case "Lf_newline": return Lf_newline_Transcoder.INSTANCE; + case "Lf_newline": return Universal_newline_Transcoder.INSTANCE; case "From_UTF8_MAC": return From_UTF8_MAC_Transcoder.INSTANCE; case "From_UTF_16BE": return From_UTF_16BE_Transcoder.INSTANCE; case "To_UTF_16BE": return To_UTF_16BE_Transcoder.INSTANCE; diff --git a/test/org/jcodings/specific/TestEConv.java b/test/org/jcodings/specific/TestEConv.java index 326c73f3..69f3bfe7 100644 --- a/test/org/jcodings/specific/TestEConv.java +++ b/test/org/jcodings/specific/TestEConv.java @@ -63,6 +63,18 @@ public void testCrNewline() throws Exception { Assert.assertArrayEquals("foo\rbar".getBytes(), dest); } + @Test + public void testLfNewline() throws Exception { + EConv econv = TranscoderDB.open("".getBytes(), "".getBytes(), EConvFlags.LF_NEWLINE_DECORATOR); + + byte[] src = "foo\nbar\r\nbaz".getBytes(); + byte[] dest = new byte[11]; + + econv.convert(src, new Ptr(0), 12, dest, new Ptr(0), dest.length, 0); + + Assert.assertArrayEquals("foo\nbar\nbaz".getBytes(), dest); + } + @Test public void testXMLWithCharref() throws Exception { EConv econv = TranscoderDB.open("utf-8".getBytes(), "euc-jp".getBytes(), EConvFlags.XML_ATTR_CONTENT_DECORATOR | EConvFlags.XML_ATTR_QUOTE_DECORATOR | EConvFlags.UNDEF_HEX_CHARREF);