Update the table of Bidi character categories to Unicode 4.0.1: partial patch to Bug 240943 to match the 1.7 branch checkin. r=jshin, rs=blizzard.
authorsmontagu@smontagu.org
Thu, 28 Jun 2007 13:02:53 -0700
changeset 2924 44c1347182f58ac32ca00017ea2ca75857700255
parent 2923 0f7df7deeb33c15838e73e20c92fa4a01368f5bc
child 2925 bcbd1d4f4b32f8a7b8e2d4d5a7fde584edf958b7
push idunknown
push userunknown
push dateunknown
reviewersjshin, blizzard
bugs240943
milestone1.9a6pre
Update the table of Bidi character categories to Unicode 4.0.1: partial patch to Bug 240943 to match the 1.7 branch checkin. r=jshin, rs=blizzard.
intl/unicharutil/util/bidicattable.h
--- a/intl/unicharutil/util/bidicattable.h
+++ b/intl/unicharutil/util/bidicattable.h
@@ -1,76 +1,56 @@
 /* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
  *
- * ***** BEGIN LICENSE BLOCK *****
- * Version: MPL 1.1/GPL 2.0/LGPL 2.1
- *
- * The contents of this file are subject to the Mozilla Public License Version
- * 1.1 (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
+ * The contents of this file are subject to the Mozilla Public License
+ * Version 1.1 (the "MPL"); you may not use this file except in
+ * compliance with the MPL.  You may obtain a copy of the MPL at
  * http://www.mozilla.org/MPL/
  *
- * Software distributed under the License is distributed on an "AS IS" basis,
- * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * Software distributed under the MPL is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the MPL
  * for the specific language governing rights and limitations under the
- * License.
- *
- * The Original Code is mozilla.org Code.
- *
- * The Initial Developer of the Original Code is
- * IBM Corporation.
- * Portions created by the Initial Developer are Copyright (C) 2000
- * the Initial Developer. All Rights Reserved.
- *
- * Contributor(s):
+ * MPL.
  *
- * Alternatively, the contents of this file may be used under the terms of
- * either of the GNU General Public License Version 2 or later (the "GPL"),
- * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
- * in which case the provisions of the GPL or the LGPL are applicable instead
- * of those above. If you wish to allow use of your version of this file only
- * under the terms of either the GPL or the LGPL, and not to allow others to
- * use your version of this file under the terms of the MPL, indicate your
- * decision by deleting the provisions above and replace them with the notice
- * and other provisions required by the GPL or the LGPL. If you do not delete
- * the provisions above, a recipient may use your version of this file under
- * the terms of any one of the MPL, the GPL or the LGPL.
- *
- * ***** END LICENSE BLOCK ***** */
+ * The Initial Developer of the Original Code is IBM
+ * Corporation.  Portions created by IBM are
+ * Copyright (C) 2000 IBM Corporation. All
+ * Rights Reserved.
+ */
 /* 
     DO NOT EDIT THIS DOCUMENT !!! THIS DOCUMENT IS GENERATED BY
     mozilla/layout/tools/genbidicattable.pl
  */
 
 
 #include "nscore.h" 
 
 static PRUint8 gBidiCatIdx1[256] = {
      11,  /* U+0000 - U+0007 : 0xBBBBBBBB */
      16,  /* U+0008 - U+000F : 0xBBCEDCDB */
      11,  /* U+0010 - U+0017 : 0xBBBBBBBB */
      17,  /* U+0018 - U+001F : 0xDCCCBBBB */
      18,  /* U+0020 - U+0027 : 0x9977799E */
-     19,  /* U+0028 - U+002F : 0x68787999 */
+     19,  /* U+0028 - U+002F : 0x88686999 */
       5,  /* U+0030 - U+0037 : 0x55555555 */
      20,  /* U+0038 - U+003F : 0x99999855 */
      21,  /* U+0040 - U+0047 : 0x11111119 */
       1,  /* U+0048 - U+004F : 0x11111111 */
       1,  /* U+0050 - U+0057 : 0x11111111 */
      22,  /* U+0058 - U+005F : 0x99999111 */
      21,  /* U+0060 - U+0067 : 0x11111119 */
       1,  /* U+0068 - U+006F : 0x11111111 */
       1,  /* U+0070 - U+0077 : 0x11111111 */
      23,  /* U+0078 - U+007F : 0xB9999111 */
      24,  /* U+0080 - U+0087 : 0xBBCBBBBB */
      11,  /* U+0088 - U+008F : 0xBBBBBBBB */
      11,  /* U+0090 - U+0097 : 0xBBBBBBBB */
      11,  /* U+0098 - U+009F : 0xBBBBBBBB */
      25,  /* U+00A0 - U+00A7 : 0x99777798 */
-     26,  /* U+00A8 - U+00AF : 0x99999199 */
+     26,  /* U+00A8 - U+00AF : 0x99B99199 */
      27,  /* U+00B0 - U+00B7 : 0x99195577 */
      28,  /* U+00B8 - U+00BF : 0x99999159 */
       1,  /* U+00C0 - U+00C7 : 0x11111111 */
       1,  /* U+00C8 - U+00CF : 0x11111111 */
      29,  /* U+00D0 - U+00D7 : 0x91111111 */
       1,  /* U+00D8 - U+00DF : 0x11111111 */
       1,  /* U+00E0 - U+00E7 : 0x11111111 */
       1,  /* U+00E8 - U+00EF : 0x11111111 */
@@ -132,50 +112,50 @@ static PRUint8 gBidiCatIdx1[256] = {
       1,  /* U+02A8 - U+02AF : 0x11111111 */
       1,  /* U+02B0 - U+02B7 : 0x11111111 */
      30,  /* U+02B8 - U+02BF : 0x11111991 */
      31,  /* U+02C0 - U+02C7 : 0x99999911 */
       9,  /* U+02C8 - U+02CF : 0x99999999 */
      31,  /* U+02D0 - U+02D7 : 0x99999911 */
       9,  /* U+02D8 - U+02DF : 0x99999999 */
      32,  /* U+02E0 - U+02E7 : 0x99911111 */
-     33,  /* U+02E8 - U+02EF : 0x11999999 */
-      1,  /* U+02F0 - U+02F7 : 0x11111111 */
-      1,  /* U+02F8 - U+02FF : 0x11111111 */
+     33,  /* U+02E8 - U+02EF : 0x91999999 */
+      9,  /* U+02F0 - U+02F7 : 0x99999999 */
+      9,  /* U+02F8 - U+02FF : 0x99999999 */
      10,  /* U+0300 - U+0307 : 0xAAAAAAAA */
      10,  /* U+0308 - U+030F : 0xAAAAAAAA */
      10,  /* U+0310 - U+0317 : 0xAAAAAAAA */
      10,  /* U+0318 - U+031F : 0xAAAAAAAA */
      10,  /* U+0320 - U+0327 : 0xAAAAAAAA */
      10,  /* U+0328 - U+032F : 0xAAAAAAAA */
      10,  /* U+0330 - U+0337 : 0xAAAAAAAA */
      10,  /* U+0338 - U+033F : 0xAAAAAAAA */
      10,  /* U+0340 - U+0347 : 0xAAAAAAAA */
-     34,  /* U+0348 - U+034F : 0x1AAAAAAA */
-      1,  /* U+0350 - U+0357 : 0x11111111 */
-      1,  /* U+0358 - U+035F : 0x11111111 */
-     35,  /* U+0360 - U+0367 : 0x11111AAA */
-      1,  /* U+0368 - U+036F : 0x11111111 */
-     36,  /* U+0370 - U+0377 : 0x11991111 */
-     37,  /* U+0378 - U+037F : 0x19111111 */
-     38,  /* U+0380 - U+0387 : 0x91991111 */
+     10,  /* U+0348 - U+034F : 0xAAAAAAAA */
+     10,  /* U+0350 - U+0357 : 0xAAAAAAAA */
+     34,  /* U+0358 - U+035F : 0xAAA11111 */
+     10,  /* U+0360 - U+0367 : 0xAAAAAAAA */
+     10,  /* U+0368 - U+036F : 0xAAAAAAAA */
+     35,  /* U+0370 - U+0377 : 0x11991111 */
+     36,  /* U+0378 - U+037F : 0x19111111 */
+     37,  /* U+0380 - U+0387 : 0x91991111 */
       1,  /* U+0388 - U+038F : 0x11111111 */
       1,  /* U+0390 - U+0397 : 0x11111111 */
       1,  /* U+0398 - U+039F : 0x11111111 */
       1,  /* U+03A0 - U+03A7 : 0x11111111 */
       1,  /* U+03A8 - U+03AF : 0x11111111 */
       1,  /* U+03B0 - U+03B7 : 0x11111111 */
       1,  /* U+03B8 - U+03BF : 0x11111111 */
       1,  /* U+03C0 - U+03C7 : 0x11111111 */
       1,  /* U+03C8 - U+03CF : 0x11111111 */
       1,  /* U+03D0 - U+03D7 : 0x11111111 */
       1,  /* U+03D8 - U+03DF : 0x11111111 */
       1,  /* U+03E0 - U+03E7 : 0x11111111 */
       1,  /* U+03E8 - U+03EF : 0x11111111 */
-      1,  /* U+03F0 - U+03F7 : 0x11111111 */
+     36,  /* U+03F0 - U+03F7 : 0x19111111 */
       1,  /* U+03F8 - U+03FF : 0x11111111 */
       1,  /* U+0400 - U+0407 : 0x11111111 */
       1,  /* U+0408 - U+040F : 0x11111111 */
       1,  /* U+0410 - U+0417 : 0x11111111 */
       1,  /* U+0418 - U+041F : 0x11111111 */
       1,  /* U+0420 - U+0427 : 0x11111111 */
       1,  /* U+0428 - U+042F : 0x11111111 */
       1,  /* U+0430 - U+0437 : 0x11111111 */
@@ -183,18 +163,18 @@ static PRUint8 gBidiCatIdx1[256] = {
       1,  /* U+0440 - U+0447 : 0x11111111 */
       1,  /* U+0448 - U+044F : 0x11111111 */
       1,  /* U+0450 - U+0457 : 0x11111111 */
       1,  /* U+0458 - U+045F : 0x11111111 */
       1,  /* U+0460 - U+0467 : 0x11111111 */
       1,  /* U+0468 - U+046F : 0x11111111 */
       1,  /* U+0470 - U+0477 : 0x11111111 */
       1,  /* U+0478 - U+047F : 0x11111111 */
-     39,  /* U+0480 - U+0487 : 0x1AAAA111 */
-     40,  /* U+0488 - U+048F : 0x111111AA */
+     38,  /* U+0480 - U+0487 : 0x1AAAA111 */
+     39,  /* U+0488 - U+048F : 0x111111AA */
       1,  /* U+0490 - U+0497 : 0x11111111 */
       1,  /* U+0498 - U+049F : 0x11111111 */
       1,  /* U+04A0 - U+04A7 : 0x11111111 */
       1,  /* U+04A8 - U+04AF : 0x11111111 */
       1,  /* U+04B0 - U+04B7 : 0x11111111 */
       1,  /* U+04B8 - U+04BF : 0x11111111 */
       1,  /* U+04C0 - U+04C7 : 0x11111111 */
       1,  /* U+04C8 - U+04CF : 0x11111111 */
@@ -216,59 +196,59 @@ static PRUint8 gBidiCatIdx1[256] = {
       1,  /* U+0548 - U+054F : 0x11111111 */
       1,  /* U+0550 - U+0557 : 0x11111111 */
       1,  /* U+0558 - U+055F : 0x11111111 */
       1,  /* U+0560 - U+0567 : 0x11111111 */
       1,  /* U+0568 - U+056F : 0x11111111 */
       1,  /* U+0570 - U+0577 : 0x11111111 */
       1,  /* U+0578 - U+057F : 0x11111111 */
       1,  /* U+0580 - U+0587 : 0x11111111 */
-     41,  /* U+0588 - U+058F : 0x11111911 */
-     42,  /* U+0590 - U+0597 : 0xAAAAAAA2 */
+     40,  /* U+0588 - U+058F : 0x11111911 */
+     41,  /* U+0590 - U+0597 : 0xAAAAAAA2 */
      10,  /* U+0598 - U+059F : 0xAAAAAAAA */
-     43,  /* U+05A0 - U+05A7 : 0xAAAAA2AA */
+     42,  /* U+05A0 - U+05A7 : 0xAAAAA2AA */
      10,  /* U+05A8 - U+05AF : 0xAAAAAAAA */
      10,  /* U+05B0 - U+05B7 : 0xAAAAAAAA */
-     44,  /* U+05B8 - U+05BF : 0xA2AAA2AA */
-     45,  /* U+05C0 - U+05C7 : 0x222A2AA2 */
+     43,  /* U+05B8 - U+05BF : 0xA2AAA2AA */
+     44,  /* U+05C0 - U+05C7 : 0x222A2AA2 */
       2,  /* U+05C8 - U+05CF : 0x22222222 */
       2,  /* U+05D0 - U+05D7 : 0x22222222 */
       2,  /* U+05D8 - U+05DF : 0x22222222 */
       2,  /* U+05E0 - U+05E7 : 0x22222222 */
       2,  /* U+05E8 - U+05EF : 0x22222222 */
       2,  /* U+05F0 - U+05F7 : 0x22222222 */
       2,  /* U+05F8 - U+05FF : 0x22222222 */
       3,  /* U+0600 - U+0607 : 0x33333333 */
-     46,  /* U+0608 - U+060F : 0x33383333 */
-      3,  /* U+0610 - U+0617 : 0x33333333 */
+     45,  /* U+0608 - U+060F : 0x99383333 */
+     46,  /* U+0610 - U+0617 : 0x33AAAAAA */
       3,  /* U+0618 - U+061F : 0x33333333 */
       3,  /* U+0620 - U+0627 : 0x33333333 */
       3,  /* U+0628 - U+062F : 0x33333333 */
       3,  /* U+0630 - U+0637 : 0x33333333 */
       3,  /* U+0638 - U+063F : 0x33333333 */
       3,  /* U+0640 - U+0647 : 0x33333333 */
      47,  /* U+0648 - U+064F : 0xAAAAA333 */
-     48,  /* U+0650 - U+0657 : 0x33AAAAAA */
-      3,  /* U+0658 - U+065F : 0x33333333 */
+     10,  /* U+0650 - U+0657 : 0xAAAAAAAA */
+     48,  /* U+0658 - U+065F : 0x3333333A */
       4,  /* U+0660 - U+0667 : 0x44444444 */
      49,  /* U+0668 - U+066F : 0x33344744 */
-     50,  /* U+0670 - U+0677 : 0x3333333A */
+     48,  /* U+0670 - U+0677 : 0x3333333A */
       3,  /* U+0678 - U+067F : 0x33333333 */
       3,  /* U+0680 - U+0687 : 0x33333333 */
       3,  /* U+0688 - U+068F : 0x33333333 */
       3,  /* U+0690 - U+0697 : 0x33333333 */
       3,  /* U+0698 - U+069F : 0x33333333 */
       3,  /* U+06A0 - U+06A7 : 0x33333333 */
       3,  /* U+06A8 - U+06AF : 0x33333333 */
       3,  /* U+06B0 - U+06B7 : 0x33333333 */
       3,  /* U+06B8 - U+06BF : 0x33333333 */
       3,  /* U+06C0 - U+06C7 : 0x33333333 */
       3,  /* U+06C8 - U+06CF : 0x33333333 */
-     51,  /* U+06D0 - U+06D7 : 0xAA333333 */
-     10,  /* U+06D8 - U+06DF : 0xAAAAAAAA */
+     50,  /* U+06D0 - U+06D7 : 0xAA333333 */
+     51,  /* U+06D8 - U+06DF : 0xAA3AAAAA */
      52,  /* U+06E0 - U+06E7 : 0xA33AAAAA */
      53,  /* U+06E8 - U+06EF : 0x33AAAA9A */
       5,  /* U+06F0 - U+06F7 : 0x55555555 */
      54,  /* U+06F8 - U+06FF : 0x33333355 */
       3,  /* U+0700 - U+0707 : 0x33333333 */
      55,  /* U+0708 - U+070F : 0xB3333333 */
      56,  /* U+0710 - U+0717 : 0x333333A3 */
       3,  /* U+0718 - U+071F : 0x33333333 */
@@ -283,31 +263,31 @@ static PRUint8 gBidiCatIdx1[256] = {
       3,  /* U+0760 - U+0767 : 0x33333333 */
       3,  /* U+0768 - U+076F : 0x33333333 */
       3,  /* U+0770 - U+0777 : 0x33333333 */
       3,  /* U+0778 - U+077F : 0x33333333 */
       3,  /* U+0780 - U+0787 : 0x33333333 */
       3,  /* U+0788 - U+078F : 0x33333333 */
       3,  /* U+0790 - U+0797 : 0x33333333 */
       3,  /* U+0798 - U+079F : 0x33333333 */
-     51,  /* U+07A0 - U+07A7 : 0xAA333333 */
+     50,  /* U+07A0 - U+07A7 : 0xAA333333 */
      10,  /* U+07A8 - U+07AF : 0xAAAAAAAA */
-     50,  /* U+07B0 - U+07B7 : 0x3333333A */
+     48,  /* U+07B0 - U+07B7 : 0x3333333A */
       3,  /* U+07B8 - U+07BF : 0x33333333 */
       1,  /* U+07C0 - U+07C7 : 0x11111111 */
       1,  /* U+07C8 - U+07CF : 0x11111111 */
       1,  /* U+07D0 - U+07D7 : 0x11111111 */
       1,  /* U+07D8 - U+07DF : 0x11111111 */
       1,  /* U+07E0 - U+07E7 : 0x11111111 */
       1,  /* U+07E8 - U+07EF : 0x11111111 */
       1,  /* U+07F0 - U+07F7 : 0x11111111 */
       1,  /* U+07F8 - U+07FF : 0x11111111 */
 };
 
-static PRUint8 gBidiCatIdx2[512] = {
+static PRUint8 gBidiCatIdx2[544] = {
      58,  /* U+0900 - U+0907 : 0x11111AA1 */
       1,  /* U+0908 - U+090F : 0x11111111 */
       1,  /* U+0910 - U+0917 : 0x11111111 */
       1,  /* U+0918 - U+091F : 0x11111111 */
       1,  /* U+0920 - U+0927 : 0x11111111 */
       1,  /* U+0928 - U+092F : 0x11111111 */
       1,  /* U+0930 - U+0937 : 0x11111111 */
      59,  /* U+0938 - U+093F : 0x111A1111 */
@@ -330,47 +310,47 @@ static PRUint8 gBidiCatIdx2[512] = {
      62,  /* U+09C0 - U+09C7 : 0x111AAAA1 */
      65,  /* U+09C8 - U+09CF : 0x11A11111 */
       1,  /* U+09D0 - U+09D7 : 0x11111111 */
       1,  /* U+09D8 - U+09DF : 0x11111111 */
      63,  /* U+09E0 - U+09E7 : 0x1111AA11 */
       1,  /* U+09E8 - U+09EF : 0x11111111 */
      66,  /* U+09F0 - U+09F7 : 0x11117711 */
       1,  /* U+09F8 - U+09FF : 0x11111111 */
-     67,  /* U+0A00 - U+0A07 : 0x11111A11 */
+     58,  /* U+0A00 - U+0A07 : 0x11111AA1 */
       1,  /* U+0A08 - U+0A0F : 0x11111111 */
       1,  /* U+0A10 - U+0A17 : 0x11111111 */
       1,  /* U+0A18 - U+0A1F : 0x11111111 */
       1,  /* U+0A20 - U+0A27 : 0x11111111 */
       1,  /* U+0A28 - U+0A2F : 0x11111111 */
       1,  /* U+0A30 - U+0A37 : 0x11111111 */
      59,  /* U+0A38 - U+0A3F : 0x111A1111 */
-     68,  /* U+0A40 - U+0A47 : 0xA1111AA1 */
-     69,  /* U+0A48 - U+0A4F : 0x11AAA11A */
+     67,  /* U+0A40 - U+0A47 : 0xA1111AA1 */
+     68,  /* U+0A48 - U+0A4F : 0x11AAA11A */
       1,  /* U+0A50 - U+0A57 : 0x11111111 */
       1,  /* U+0A58 - U+0A5F : 0x11111111 */
       1,  /* U+0A60 - U+0A67 : 0x11111111 */
       1,  /* U+0A68 - U+0A6F : 0x11111111 */
-     40,  /* U+0A70 - U+0A77 : 0x111111AA */
+     39,  /* U+0A70 - U+0A77 : 0x111111AA */
       1,  /* U+0A78 - U+0A7F : 0x11111111 */
      58,  /* U+0A80 - U+0A87 : 0x11111AA1 */
       1,  /* U+0A88 - U+0A8F : 0x11111111 */
       1,  /* U+0A90 - U+0A97 : 0x11111111 */
       1,  /* U+0A98 - U+0A9F : 0x11111111 */
       1,  /* U+0AA0 - U+0AA7 : 0x11111111 */
       1,  /* U+0AA8 - U+0AAF : 0x11111111 */
       1,  /* U+0AB0 - U+0AB7 : 0x11111111 */
      59,  /* U+0AB8 - U+0ABF : 0x111A1111 */
-     70,  /* U+0AC0 - U+0AC7 : 0xA1AAAAA1 */
+     69,  /* U+0AC0 - U+0AC7 : 0xA1AAAAA1 */
      61,  /* U+0AC8 - U+0ACF : 0x11A1111A */
       1,  /* U+0AD0 - U+0AD7 : 0x11111111 */
       1,  /* U+0AD8 - U+0ADF : 0x11111111 */
-      1,  /* U+0AE0 - U+0AE7 : 0x11111111 */
+     63,  /* U+0AE0 - U+0AE7 : 0x1111AA11 */
       1,  /* U+0AE8 - U+0AEF : 0x11111111 */
-      1,  /* U+0AF0 - U+0AF7 : 0x11111111 */
+     70,  /* U+0AF0 - U+0AF7 : 0x11111171 */
       1,  /* U+0AF8 - U+0AFF : 0x11111111 */
      64,  /* U+0B00 - U+0B07 : 0x111111A1 */
       1,  /* U+0B08 - U+0B0F : 0x11111111 */
       1,  /* U+0B10 - U+0B17 : 0x11111111 */
       1,  /* U+0B18 - U+0B1F : 0x11111111 */
       1,  /* U+0B20 - U+0B27 : 0x11111111 */
       1,  /* U+0B28 - U+0B2F : 0x11111111 */
       1,  /* U+0B30 - U+0B37 : 0x11111111 */
@@ -378,58 +358,58 @@ static PRUint8 gBidiCatIdx2[512] = {
      72,  /* U+0B40 - U+0B47 : 0x1111AAA1 */
      65,  /* U+0B48 - U+0B4F : 0x11A11111 */
      73,  /* U+0B50 - U+0B57 : 0x1A111111 */
       1,  /* U+0B58 - U+0B5F : 0x11111111 */
       1,  /* U+0B60 - U+0B67 : 0x11111111 */
       1,  /* U+0B68 - U+0B6F : 0x11111111 */
       1,  /* U+0B70 - U+0B77 : 0x11111111 */
       1,  /* U+0B78 - U+0B7F : 0x11111111 */
-     67,  /* U+0B80 - U+0B87 : 0x11111A11 */
+     74,  /* U+0B80 - U+0B87 : 0x11111A11 */
       1,  /* U+0B88 - U+0B8F : 0x11111111 */
       1,  /* U+0B90 - U+0B97 : 0x11111111 */
       1,  /* U+0B98 - U+0B9F : 0x11111111 */
       1,  /* U+0BA0 - U+0BA7 : 0x11111111 */
       1,  /* U+0BA8 - U+0BAF : 0x11111111 */
       1,  /* U+0BB0 - U+0BB7 : 0x11111111 */
       1,  /* U+0BB8 - U+0BBF : 0x11111111 */
-     74,  /* U+0BC0 - U+0BC7 : 0x1111111A */
+     75,  /* U+0BC0 - U+0BC7 : 0x1111111A */
      65,  /* U+0BC8 - U+0BCF : 0x11A11111 */
       1,  /* U+0BD0 - U+0BD7 : 0x11111111 */
       1,  /* U+0BD8 - U+0BDF : 0x11111111 */
       1,  /* U+0BE0 - U+0BE7 : 0x11111111 */
       1,  /* U+0BE8 - U+0BEF : 0x11111111 */
-      1,  /* U+0BF0 - U+0BF7 : 0x11111111 */
-      1,  /* U+0BF8 - U+0BFF : 0x11111111 */
+     22,  /* U+0BF0 - U+0BF7 : 0x99999111 */
+     76,  /* U+0BF8 - U+0BFF : 0x11111979 */
       1,  /* U+0C00 - U+0C07 : 0x11111111 */
       1,  /* U+0C08 - U+0C0F : 0x11111111 */
       1,  /* U+0C10 - U+0C17 : 0x11111111 */
       1,  /* U+0C18 - U+0C1F : 0x11111111 */
       1,  /* U+0C20 - U+0C27 : 0x11111111 */
       1,  /* U+0C28 - U+0C2F : 0x11111111 */
       1,  /* U+0C30 - U+0C37 : 0x11111111 */
-     75,  /* U+0C38 - U+0C3F : 0xAA111111 */
-     76,  /* U+0C40 - U+0C47 : 0xAA11111A */
-     77,  /* U+0C48 - U+0C4F : 0x11AAAA1A */
-     78,  /* U+0C50 - U+0C57 : 0x1AA11111 */
+     77,  /* U+0C38 - U+0C3F : 0xAA111111 */
+     78,  /* U+0C40 - U+0C47 : 0xAA11111A */
+     79,  /* U+0C48 - U+0C4F : 0x11AAAA1A */
+     80,  /* U+0C50 - U+0C57 : 0x1AA11111 */
       1,  /* U+0C58 - U+0C5F : 0x11111111 */
       1,  /* U+0C60 - U+0C67 : 0x11111111 */
       1,  /* U+0C68 - U+0C6F : 0x11111111 */
       1,  /* U+0C70 - U+0C77 : 0x11111111 */
       1,  /* U+0C78 - U+0C7F : 0x11111111 */
       1,  /* U+0C80 - U+0C87 : 0x11111111 */
       1,  /* U+0C88 - U+0C8F : 0x11111111 */
       1,  /* U+0C90 - U+0C97 : 0x11111111 */
       1,  /* U+0C98 - U+0C9F : 0x11111111 */
       1,  /* U+0CA0 - U+0CA7 : 0x11111111 */
       1,  /* U+0CA8 - U+0CAF : 0x11111111 */
       1,  /* U+0CB0 - U+0CB7 : 0x11111111 */
-     79,  /* U+0CB8 - U+0CBF : 0xA1111111 */
-     73,  /* U+0CC0 - U+0CC7 : 0x1A111111 */
-     80,  /* U+0CC8 - U+0CCF : 0x11AA1111 */
+     59,  /* U+0CB8 - U+0CBF : 0x111A1111 */
+      1,  /* U+0CC0 - U+0CC7 : 0x11111111 */
+     81,  /* U+0CC8 - U+0CCF : 0x11AA1111 */
       1,  /* U+0CD0 - U+0CD7 : 0x11111111 */
       1,  /* U+0CD8 - U+0CDF : 0x11111111 */
       1,  /* U+0CE0 - U+0CE7 : 0x11111111 */
       1,  /* U+0CE8 - U+0CEF : 0x11111111 */
       1,  /* U+0CF0 - U+0CF7 : 0x11111111 */
       1,  /* U+0CF8 - U+0CFF : 0x11111111 */
       1,  /* U+0D00 - U+0D07 : 0x11111111 */
       1,  /* U+0D08 - U+0D0F : 0x11111111 */
@@ -451,99 +431,99 @@ static PRUint8 gBidiCatIdx2[512] = {
       1,  /* U+0D88 - U+0D8F : 0x11111111 */
       1,  /* U+0D90 - U+0D97 : 0x11111111 */
       1,  /* U+0D98 - U+0D9F : 0x11111111 */
       1,  /* U+0DA0 - U+0DA7 : 0x11111111 */
       1,  /* U+0DA8 - U+0DAF : 0x11111111 */
       1,  /* U+0DB0 - U+0DB7 : 0x11111111 */
       1,  /* U+0DB8 - U+0DBF : 0x11111111 */
       1,  /* U+0DC0 - U+0DC7 : 0x11111111 */
-     67,  /* U+0DC8 - U+0DCF : 0x11111A11 */
-     81,  /* U+0DD0 - U+0DD7 : 0x1A1AAA11 */
+     74,  /* U+0DC8 - U+0DCF : 0x11111A11 */
+     82,  /* U+0DD0 - U+0DD7 : 0x1A1AAA11 */
       1,  /* U+0DD8 - U+0DDF : 0x11111111 */
       1,  /* U+0DE0 - U+0DE7 : 0x11111111 */
       1,  /* U+0DE8 - U+0DEF : 0x11111111 */
       1,  /* U+0DF0 - U+0DF7 : 0x11111111 */
       1,  /* U+0DF8 - U+0DFF : 0x11111111 */
       1,  /* U+0E00 - U+0E07 : 0x11111111 */
       1,  /* U+0E08 - U+0E0F : 0x11111111 */
       1,  /* U+0E10 - U+0E17 : 0x11111111 */
       1,  /* U+0E18 - U+0E1F : 0x11111111 */
       1,  /* U+0E20 - U+0E27 : 0x11111111 */
       1,  /* U+0E28 - U+0E2F : 0x11111111 */
-     82,  /* U+0E30 - U+0E37 : 0xAAAA11A1 */
-     83,  /* U+0E38 - U+0E3F : 0x71111AAA */
-     79,  /* U+0E40 - U+0E47 : 0xA1111111 */
-     34,  /* U+0E48 - U+0E4F : 0x1AAAAAAA */
+     83,  /* U+0E30 - U+0E37 : 0xAAAA11A1 */
+     84,  /* U+0E38 - U+0E3F : 0x71111AAA */
+     85,  /* U+0E40 - U+0E47 : 0xA1111111 */
+     86,  /* U+0E48 - U+0E4F : 0x1AAAAAAA */
       1,  /* U+0E50 - U+0E57 : 0x11111111 */
       1,  /* U+0E58 - U+0E5F : 0x11111111 */
       1,  /* U+0E60 - U+0E67 : 0x11111111 */
       1,  /* U+0E68 - U+0E6F : 0x11111111 */
       1,  /* U+0E70 - U+0E77 : 0x11111111 */
       1,  /* U+0E78 - U+0E7F : 0x11111111 */
       1,  /* U+0E80 - U+0E87 : 0x11111111 */
       1,  /* U+0E88 - U+0E8F : 0x11111111 */
       1,  /* U+0E90 - U+0E97 : 0x11111111 */
       1,  /* U+0E98 - U+0E9F : 0x11111111 */
       1,  /* U+0EA0 - U+0EA7 : 0x11111111 */
       1,  /* U+0EA8 - U+0EAF : 0x11111111 */
-     82,  /* U+0EB0 - U+0EB7 : 0xAAAA11A1 */
-     84,  /* U+0EB8 - U+0EBF : 0x111AA1AA */
+     83,  /* U+0EB0 - U+0EB7 : 0xAAAA11A1 */
+     87,  /* U+0EB8 - U+0EBF : 0x111AA1AA */
       1,  /* U+0EC0 - U+0EC7 : 0x11111111 */
-     85,  /* U+0EC8 - U+0ECF : 0x11AAAAAA */
+     88,  /* U+0EC8 - U+0ECF : 0x11AAAAAA */
       1,  /* U+0ED0 - U+0ED7 : 0x11111111 */
       1,  /* U+0ED8 - U+0EDF : 0x11111111 */
       1,  /* U+0EE0 - U+0EE7 : 0x11111111 */
       1,  /* U+0EE8 - U+0EEF : 0x11111111 */
       1,  /* U+0EF0 - U+0EF7 : 0x11111111 */
       1,  /* U+0EF8 - U+0EFF : 0x11111111 */
       1,  /* U+0F00 - U+0F07 : 0x11111111 */
       1,  /* U+0F08 - U+0F0F : 0x11111111 */
       1,  /* U+0F10 - U+0F17 : 0x11111111 */
-     40,  /* U+0F18 - U+0F1F : 0x111111AA */
+     39,  /* U+0F18 - U+0F1F : 0x111111AA */
       1,  /* U+0F20 - U+0F27 : 0x11111111 */
       1,  /* U+0F28 - U+0F2F : 0x11111111 */
-     86,  /* U+0F30 - U+0F37 : 0xA1A11111 */
-     87,  /* U+0F38 - U+0F3F : 0x119999A1 */
+     89,  /* U+0F30 - U+0F37 : 0xA1A11111 */
+     90,  /* U+0F38 - U+0F3F : 0x119999A1 */
       1,  /* U+0F40 - U+0F47 : 0x11111111 */
       1,  /* U+0F48 - U+0F4F : 0x11111111 */
       1,  /* U+0F50 - U+0F57 : 0x11111111 */
       1,  /* U+0F58 - U+0F5F : 0x11111111 */
       1,  /* U+0F60 - U+0F67 : 0x11111111 */
       1,  /* U+0F68 - U+0F6F : 0x11111111 */
      60,  /* U+0F70 - U+0F77 : 0xAAAAAAA1 */
-     34,  /* U+0F78 - U+0F7F : 0x1AAAAAAA */
-     88,  /* U+0F80 - U+0F87 : 0xAA1AAAAA */
+     86,  /* U+0F78 - U+0F7F : 0x1AAAAAAA */
+     91,  /* U+0F80 - U+0F87 : 0xAA1AAAAA */
       1,  /* U+0F88 - U+0F8F : 0x11111111 */
      10,  /* U+0F90 - U+0F97 : 0xAAAAAAAA */
      60,  /* U+0F98 - U+0F9F : 0xAAAAAAA1 */
      10,  /* U+0FA0 - U+0FA7 : 0xAAAAAAAA */
      10,  /* U+0FA8 - U+0FAF : 0xAAAAAAAA */
      10,  /* U+0FB0 - U+0FB7 : 0xAAAAAAAA */
-     89,  /* U+0FB8 - U+0FBF : 0x111AAAAA */
+     92,  /* U+0FB8 - U+0FBF : 0x111AAAAA */
      73,  /* U+0FC0 - U+0FC7 : 0x1A111111 */
       1,  /* U+0FC8 - U+0FCF : 0x11111111 */
       1,  /* U+0FD0 - U+0FD7 : 0x11111111 */
       1,  /* U+0FD8 - U+0FDF : 0x11111111 */
       1,  /* U+0FE0 - U+0FE7 : 0x11111111 */
       1,  /* U+0FE8 - U+0FEF : 0x11111111 */
       1,  /* U+0FF0 - U+0FF7 : 0x11111111 */
       1,  /* U+0FF8 - U+0FFF : 0x11111111 */
       1,  /* U+1000 - U+1007 : 0x11111111 */
       1,  /* U+1008 - U+100F : 0x11111111 */
       1,  /* U+1010 - U+1017 : 0x11111111 */
       1,  /* U+1018 - U+101F : 0x11111111 */
       1,  /* U+1020 - U+1027 : 0x11111111 */
-     90,  /* U+1028 - U+102F : 0xAAA11111 */
-     91,  /* U+1030 - U+1037 : 0xAA111A1A */
+     34,  /* U+1028 - U+102F : 0xAAA11111 */
+     93,  /* U+1030 - U+1037 : 0xAA111A1A */
      64,  /* U+1038 - U+103F : 0x111111A1 */
       1,  /* U+1040 - U+1047 : 0x11111111 */
       1,  /* U+1048 - U+104F : 0x11111111 */
       1,  /* U+1050 - U+1057 : 0x11111111 */
-     40,  /* U+1058 - U+105F : 0x111111AA */
+     39,  /* U+1058 - U+105F : 0x111111AA */
       1,  /* U+1060 - U+1067 : 0x11111111 */
       1,  /* U+1068 - U+106F : 0x11111111 */
       1,  /* U+1070 - U+1077 : 0x11111111 */
       1,  /* U+1078 - U+107F : 0x11111111 */
       1,  /* U+1080 - U+1087 : 0x11111111 */
       1,  /* U+1088 - U+108F : 0x11111111 */
       1,  /* U+1090 - U+1097 : 0x11111111 */
       1,  /* U+1098 - U+109F : 0x11111111 */
@@ -730,66 +710,66 @@ static PRUint8 gBidiCatIdx2[512] = {
       1,  /* U+1640 - U+1647 : 0x11111111 */
       1,  /* U+1648 - U+164F : 0x11111111 */
       1,  /* U+1650 - U+1657 : 0x11111111 */
       1,  /* U+1658 - U+165F : 0x11111111 */
       1,  /* U+1660 - U+1667 : 0x11111111 */
       1,  /* U+1668 - U+166F : 0x11111111 */
       1,  /* U+1670 - U+1677 : 0x11111111 */
       1,  /* U+1678 - U+167F : 0x11111111 */
-     92,  /* U+1680 - U+1687 : 0x1111111E */
+     94,  /* U+1680 - U+1687 : 0x1111111E */
       1,  /* U+1688 - U+168F : 0x11111111 */
       1,  /* U+1690 - U+1697 : 0x11111111 */
-     93,  /* U+1698 - U+169F : 0x11199111 */
+     95,  /* U+1698 - U+169F : 0x11199111 */
       1,  /* U+16A0 - U+16A7 : 0x11111111 */
       1,  /* U+16A8 - U+16AF : 0x11111111 */
       1,  /* U+16B0 - U+16B7 : 0x11111111 */
       1,  /* U+16B8 - U+16BF : 0x11111111 */
       1,  /* U+16C0 - U+16C7 : 0x11111111 */
       1,  /* U+16C8 - U+16CF : 0x11111111 */
       1,  /* U+16D0 - U+16D7 : 0x11111111 */
       1,  /* U+16D8 - U+16DF : 0x11111111 */
       1,  /* U+16E0 - U+16E7 : 0x11111111 */
       1,  /* U+16E8 - U+16EF : 0x11111111 */
       1,  /* U+16F0 - U+16F7 : 0x11111111 */
       1,  /* U+16F8 - U+16FF : 0x11111111 */
       1,  /* U+1700 - U+1707 : 0x11111111 */
       1,  /* U+1708 - U+170F : 0x11111111 */
-      1,  /* U+1710 - U+1717 : 0x11111111 */
+     96,  /* U+1710 - U+1717 : 0x111AAA11 */
       1,  /* U+1718 - U+171F : 0x11111111 */
       1,  /* U+1720 - U+1727 : 0x11111111 */
       1,  /* U+1728 - U+172F : 0x11111111 */
-      1,  /* U+1730 - U+1737 : 0x11111111 */
+     96,  /* U+1730 - U+1737 : 0x111AAA11 */
       1,  /* U+1738 - U+173F : 0x11111111 */
       1,  /* U+1740 - U+1747 : 0x11111111 */
       1,  /* U+1748 - U+174F : 0x11111111 */
-      1,  /* U+1750 - U+1757 : 0x11111111 */
+     63,  /* U+1750 - U+1757 : 0x1111AA11 */
       1,  /* U+1758 - U+175F : 0x11111111 */
       1,  /* U+1760 - U+1767 : 0x11111111 */
       1,  /* U+1768 - U+176F : 0x11111111 */
-      1,  /* U+1770 - U+1777 : 0x11111111 */
+     63,  /* U+1770 - U+1777 : 0x1111AA11 */
       1,  /* U+1778 - U+177F : 0x11111111 */
       1,  /* U+1780 - U+1787 : 0x11111111 */
       1,  /* U+1788 - U+178F : 0x11111111 */
       1,  /* U+1790 - U+1797 : 0x11111111 */
       1,  /* U+1798 - U+179F : 0x11111111 */
       1,  /* U+17A0 - U+17A7 : 0x11111111 */
       1,  /* U+17A8 - U+17AF : 0x11111111 */
-     79,  /* U+17B0 - U+17B7 : 0xA1111111 */
-     85,  /* U+17B8 - U+17BF : 0x11AAAAAA */
+     85,  /* U+17B0 - U+17B7 : 0xA1111111 */
+     88,  /* U+17B8 - U+17BF : 0x11AAAAAA */
      73,  /* U+17C0 - U+17C7 : 0x1A111111 */
      60,  /* U+17C8 - U+17CF : 0xAAAAAAA1 */
-     94,  /* U+17D0 - U+17D7 : 0x1111AAAA */
-     95,  /* U+17D8 - U+17DF : 0x11117111 */
+     97,  /* U+17D0 - U+17D7 : 0x1111AAAA */
+     98,  /* U+17D8 - U+17DF : 0x11A17111 */
       1,  /* U+17E0 - U+17E7 : 0x11111111 */
       1,  /* U+17E8 - U+17EF : 0x11111111 */
-      1,  /* U+17F0 - U+17F7 : 0x11111111 */
-      1,  /* U+17F8 - U+17FF : 0x11111111 */
+      9,  /* U+17F0 - U+17F7 : 0x99999999 */
+     99,  /* U+17F8 - U+17FF : 0x11111199 */
       9,  /* U+1800 - U+1807 : 0x99999999 */
-     96,  /* U+1808 - U+180F : 0x1BBBB999 */
+    100,  /* U+1808 - U+180F : 0x1EAAA999 */
       1,  /* U+1810 - U+1817 : 0x11111111 */
       1,  /* U+1818 - U+181F : 0x11111111 */
       1,  /* U+1820 - U+1827 : 0x11111111 */
       1,  /* U+1828 - U+182F : 0x11111111 */
       1,  /* U+1830 - U+1837 : 0x11111111 */
       1,  /* U+1838 - U+183F : 0x11111111 */
       1,  /* U+1840 - U+1847 : 0x11111111 */
       1,  /* U+1848 - U+184F : 0x11111111 */
@@ -810,19 +790,83 @@ static PRUint8 gBidiCatIdx2[512] = {
       1,  /* U+18C0 - U+18C7 : 0x11111111 */
       1,  /* U+18C8 - U+18CF : 0x11111111 */
       1,  /* U+18D0 - U+18D7 : 0x11111111 */
       1,  /* U+18D8 - U+18DF : 0x11111111 */
       1,  /* U+18E0 - U+18E7 : 0x11111111 */
       1,  /* U+18E8 - U+18EF : 0x11111111 */
       1,  /* U+18F0 - U+18F7 : 0x11111111 */
       1,  /* U+18F8 - U+18FF : 0x11111111 */
+      1,  /* U+1900 - U+1907 : 0x11111111 */
+      1,  /* U+1908 - U+190F : 0x11111111 */
+      1,  /* U+1910 - U+1917 : 0x11111111 */
+      1,  /* U+1918 - U+191F : 0x11111111 */
+    101,  /* U+1920 - U+1927 : 0xA1111AAA */
+     97,  /* U+1928 - U+192F : 0x1111AAAA */
+     74,  /* U+1930 - U+1937 : 0x11111A11 */
+     72,  /* U+1938 - U+193F : 0x1111AAA1 */
+    102,  /* U+1940 - U+1947 : 0x11991119 */
+      1,  /* U+1948 - U+194F : 0x11111111 */
+      1,  /* U+1950 - U+1957 : 0x11111111 */
+      1,  /* U+1958 - U+195F : 0x11111111 */
+      1,  /* U+1960 - U+1967 : 0x11111111 */
+      1,  /* U+1968 - U+196F : 0x11111111 */
+      1,  /* U+1970 - U+1977 : 0x11111111 */
+      1,  /* U+1978 - U+197F : 0x11111111 */
+      1,  /* U+1980 - U+1987 : 0x11111111 */
+      1,  /* U+1988 - U+198F : 0x11111111 */
+      1,  /* U+1990 - U+1997 : 0x11111111 */
+      1,  /* U+1998 - U+199F : 0x11111111 */
+      1,  /* U+19A0 - U+19A7 : 0x11111111 */
+      1,  /* U+19A8 - U+19AF : 0x11111111 */
+      1,  /* U+19B0 - U+19B7 : 0x11111111 */
+      1,  /* U+19B8 - U+19BF : 0x11111111 */
+      1,  /* U+19C0 - U+19C7 : 0x11111111 */
+      1,  /* U+19C8 - U+19CF : 0x11111111 */
+      1,  /* U+19D0 - U+19D7 : 0x11111111 */
+      1,  /* U+19D8 - U+19DF : 0x11111111 */
+      9,  /* U+19E0 - U+19E7 : 0x99999999 */
+      9,  /* U+19E8 - U+19EF : 0x99999999 */
+      9,  /* U+19F0 - U+19F7 : 0x99999999 */
+      9,  /* U+19F8 - U+19FF : 0x99999999 */
 };
 
-static PRUint8 gBidiCatIdx3[352] = {
+static PRUint8 gBidiCatIdx3[480] = {
+      1,  /* U+1D00 - U+1D07 : 0x11111111 */
+      1,  /* U+1D08 - U+1D0F : 0x11111111 */
+      1,  /* U+1D10 - U+1D17 : 0x11111111 */
+      1,  /* U+1D18 - U+1D1F : 0x11111111 */
+      1,  /* U+1D20 - U+1D27 : 0x11111111 */
+      1,  /* U+1D28 - U+1D2F : 0x11111111 */
+      1,  /* U+1D30 - U+1D37 : 0x11111111 */
+      1,  /* U+1D38 - U+1D3F : 0x11111111 */
+      1,  /* U+1D40 - U+1D47 : 0x11111111 */
+      1,  /* U+1D48 - U+1D4F : 0x11111111 */
+      1,  /* U+1D50 - U+1D57 : 0x11111111 */
+      1,  /* U+1D58 - U+1D5F : 0x11111111 */
+      1,  /* U+1D60 - U+1D67 : 0x11111111 */
+      1,  /* U+1D68 - U+1D6F : 0x11111111 */
+      1,  /* U+1D70 - U+1D77 : 0x11111111 */
+      1,  /* U+1D78 - U+1D7F : 0x11111111 */
+      1,  /* U+1D80 - U+1D87 : 0x11111111 */
+      1,  /* U+1D88 - U+1D8F : 0x11111111 */
+      1,  /* U+1D90 - U+1D97 : 0x11111111 */
+      1,  /* U+1D98 - U+1D9F : 0x11111111 */
+      1,  /* U+1DA0 - U+1DA7 : 0x11111111 */
+      1,  /* U+1DA8 - U+1DAF : 0x11111111 */
+      1,  /* U+1DB0 - U+1DB7 : 0x11111111 */
+      1,  /* U+1DB8 - U+1DBF : 0x11111111 */
+      1,  /* U+1DC0 - U+1DC7 : 0x11111111 */
+      1,  /* U+1DC8 - U+1DCF : 0x11111111 */
+      1,  /* U+1DD0 - U+1DD7 : 0x11111111 */
+      1,  /* U+1DD8 - U+1DDF : 0x11111111 */
+      1,  /* U+1DE0 - U+1DE7 : 0x11111111 */
+      1,  /* U+1DE8 - U+1DEF : 0x11111111 */
+      1,  /* U+1DF0 - U+1DF7 : 0x11111111 */
+      1,  /* U+1DF8 - U+1DFF : 0x11111111 */
       1,  /* U+1E00 - U+1E07 : 0x11111111 */
       1,  /* U+1E08 - U+1E0F : 0x11111111 */
       1,  /* U+1E10 - U+1E17 : 0x11111111 */
       1,  /* U+1E18 - U+1E1F : 0x11111111 */
       1,  /* U+1E20 - U+1E27 : 0x11111111 */
       1,  /* U+1E28 - U+1E2F : 0x11111111 */
       1,  /* U+1E30 - U+1E37 : 0x11111111 */
       1,  /* U+1E38 - U+1E3F : 0x11111111 */
@@ -868,67 +912,67 @@ static PRUint8 gBidiCatIdx3[352] = {
       1,  /* U+1F78 - U+1F7F : 0x11111111 */
       1,  /* U+1F80 - U+1F87 : 0x11111111 */
       1,  /* U+1F88 - U+1F8F : 0x11111111 */
       1,  /* U+1F90 - U+1F97 : 0x11111111 */
       1,  /* U+1F98 - U+1F9F : 0x11111111 */
       1,  /* U+1FA0 - U+1FA7 : 0x11111111 */
       1,  /* U+1FA8 - U+1FAF : 0x11111111 */
       1,  /* U+1FB0 - U+1FB7 : 0x11111111 */
-     97,  /* U+1FB8 - U+1FBF : 0x91911111 */
-     98,  /* U+1FC0 - U+1FC7 : 0x11111199 */
+    103,  /* U+1FB8 - U+1FBF : 0x91911111 */
+     99,  /* U+1FC0 - U+1FC7 : 0x11111199 */
      32,  /* U+1FC8 - U+1FCF : 0x99911111 */
       1,  /* U+1FD0 - U+1FD7 : 0x11111111 */
      32,  /* U+1FD8 - U+1FDF : 0x99911111 */
       1,  /* U+1FE0 - U+1FE7 : 0x11111111 */
      32,  /* U+1FE8 - U+1FEF : 0x99911111 */
       1,  /* U+1FF0 - U+1FF7 : 0x11111111 */
-     99,  /* U+1FF8 - U+1FFF : 0x19911111 */
+    104,  /* U+1FF8 - U+1FFF : 0x19911111 */
      14,  /* U+2000 - U+2007 : 0xEEEEEEEE */
-    100,  /* U+2008 - U+200F : 0x21BBBEEE */
+    105,  /* U+2008 - U+200F : 0x21BBBEEE */
       9,  /* U+2010 - U+2017 : 0x99999999 */
       9,  /* U+2018 - U+201F : 0x99999999 */
       9,  /* U+2020 - U+2027 : 0x99999999 */
-    101,  /* U+2028 - U+202F : 0xEFFFFFCE */
-    102,  /* U+2030 - U+2037 : 0x99977777 */
+    106,  /* U+2028 - U+202F : 0xEFFFFFCE */
+    107,  /* U+2030 - U+2037 : 0x99977777 */
       9,  /* U+2038 - U+203F : 0x99999999 */
-    103,  /* U+2040 - U+2047 : 0x19999999 */
-     33,  /* U+2048 - U+204F : 0x11999999 */
-      1,  /* U+2050 - U+2057 : 0x11111111 */
-      1,  /* U+2058 - U+205F : 0x11111111 */
-      1,  /* U+2060 - U+2067 : 0x11111111 */
-    104,  /* U+2068 - U+206F : 0xBBBBBB11 */
-    105,  /* U+2070 - U+2077 : 0x55551115 */
-    106,  /* U+2078 - U+207F : 0x19997755 */
+    108,  /* U+2040 - U+2047 : 0x99989999 */
+      9,  /* U+2048 - U+204F : 0x99999999 */
+    109,  /* U+2050 - U+2057 : 0x91199999 */
+    110,  /* U+2058 - U+205F : 0xE1111111 */
+    111,  /* U+2060 - U+2067 : 0x1111BBBB */
+    112,  /* U+2068 - U+206F : 0xBBBBBB11 */
+    113,  /* U+2070 - U+2077 : 0x55551115 */
+    114,  /* U+2078 - U+207F : 0x19997755 */
       5,  /* U+2080 - U+2087 : 0x55555555 */
-    106,  /* U+2088 - U+208F : 0x19997755 */
+    114,  /* U+2088 - U+208F : 0x19997755 */
       1,  /* U+2090 - U+2097 : 0x11111111 */
       1,  /* U+2098 - U+209F : 0x11111111 */
       7,  /* U+20A0 - U+20A7 : 0x77777777 */
       7,  /* U+20A8 - U+20AF : 0x77777777 */
-      1,  /* U+20B0 - U+20B7 : 0x11111111 */
+    115,  /* U+20B0 - U+20B7 : 0x11111177 */
       1,  /* U+20B8 - U+20BF : 0x11111111 */
       1,  /* U+20C0 - U+20C7 : 0x11111111 */
       1,  /* U+20C8 - U+20CF : 0x11111111 */
      10,  /* U+20D0 - U+20D7 : 0xAAAAAAAA */
      10,  /* U+20D8 - U+20DF : 0xAAAAAAAA */
-     94,  /* U+20E0 - U+20E7 : 0x1111AAAA */
-      1,  /* U+20E8 - U+20EF : 0x11111111 */
+     10,  /* U+20E0 - U+20E7 : 0xAAAAAAAA */
+    116,  /* U+20E8 - U+20EF : 0x11111AAA */
       1,  /* U+20F0 - U+20F7 : 0x11111111 */
       1,  /* U+20F8 - U+20FF : 0x11111111 */
-    107,  /* U+2100 - U+2107 : 0x19999199 */
-     98,  /* U+2108 - U+210F : 0x11111199 */
-    108,  /* U+2110 - U+2117 : 0x99191111 */
-    109,  /* U+2118 - U+211F : 0x99111119 */
-    110,  /* U+2120 - U+2127 : 0x91919999 */
-    111,  /* U+2128 - U+212F : 0x17111191 */
-     41,  /* U+2130 - U+2137 : 0x11111911 */
-     41,  /* U+2138 - U+213F : 0x11111911 */
-      1,  /* U+2140 - U+2147 : 0x11111111 */
-      1,  /* U+2148 - U+214F : 0x11111111 */
+    117,  /* U+2100 - U+2107 : 0x19999199 */
+     99,  /* U+2108 - U+210F : 0x11111199 */
+    118,  /* U+2110 - U+2117 : 0x99191111 */
+    119,  /* U+2118 - U+211F : 0x99111119 */
+    120,  /* U+2120 - U+2127 : 0x91919999 */
+    121,  /* U+2128 - U+212F : 0x17111191 */
+     40,  /* U+2130 - U+2137 : 0x11111911 */
+    122,  /* U+2138 - U+213F : 0x11119911 */
+    123,  /* U+2140 - U+2147 : 0x11199999 */
+    122,  /* U+2148 - U+214F : 0x11119911 */
      22,  /* U+2150 - U+2157 : 0x99999111 */
       9,  /* U+2158 - U+215F : 0x99999999 */
       1,  /* U+2160 - U+2167 : 0x11111111 */
       1,  /* U+2168 - U+216F : 0x11111111 */
       1,  /* U+2170 - U+2177 : 0x11111111 */
       1,  /* U+2178 - U+217F : 0x11111111 */
       1,  /* U+2180 - U+2187 : 0x11111111 */
       1,  /* U+2188 - U+218F : 0x11111111 */
@@ -939,21 +983,21 @@ static PRUint8 gBidiCatIdx3[352] = {
       9,  /* U+21B0 - U+21B7 : 0x99999999 */
       9,  /* U+21B8 - U+21BF : 0x99999999 */
       9,  /* U+21C0 - U+21C7 : 0x99999999 */
       9,  /* U+21C8 - U+21CF : 0x99999999 */
       9,  /* U+21D0 - U+21D7 : 0x99999999 */
       9,  /* U+21D8 - U+21DF : 0x99999999 */
       9,  /* U+21E0 - U+21E7 : 0x99999999 */
       9,  /* U+21E8 - U+21EF : 0x99999999 */
-    112,  /* U+21F0 - U+21F7 : 0x11119999 */
-      1,  /* U+21F8 - U+21FF : 0x11111111 */
+      9,  /* U+21F0 - U+21F7 : 0x99999999 */
+      9,  /* U+21F8 - U+21FF : 0x99999999 */
       9,  /* U+2200 - U+2207 : 0x99999999 */
       9,  /* U+2208 - U+220F : 0x99999999 */
-    113,  /* U+2210 - U+2217 : 0x99997799 */
+    124,  /* U+2210 - U+2217 : 0x99997799 */
       9,  /* U+2218 - U+221F : 0x99999999 */
       9,  /* U+2220 - U+2227 : 0x99999999 */
       9,  /* U+2228 - U+222F : 0x99999999 */
       9,  /* U+2230 - U+2237 : 0x99999999 */
       9,  /* U+2238 - U+223F : 0x99999999 */
       9,  /* U+2240 - U+2247 : 0x99999999 */
       9,  /* U+2248 - U+224F : 0x99999999 */
       9,  /* U+2250 - U+2257 : 0x99999999 */
@@ -971,82 +1015,82 @@ static PRUint8 gBidiCatIdx3[352] = {
       9,  /* U+22B0 - U+22B7 : 0x99999999 */
       9,  /* U+22B8 - U+22BF : 0x99999999 */
       9,  /* U+22C0 - U+22C7 : 0x99999999 */
       9,  /* U+22C8 - U+22CF : 0x99999999 */
       9,  /* U+22D0 - U+22D7 : 0x99999999 */
       9,  /* U+22D8 - U+22DF : 0x99999999 */
       9,  /* U+22E0 - U+22E7 : 0x99999999 */
       9,  /* U+22E8 - U+22EF : 0x99999999 */
-     98,  /* U+22F0 - U+22F7 : 0x11111199 */
-      1,  /* U+22F8 - U+22FF : 0x11111111 */
+      9,  /* U+22F0 - U+22F7 : 0x99999999 */
+      9,  /* U+22F8 - U+22FF : 0x99999999 */
       9,  /* U+2300 - U+2307 : 0x99999999 */
       9,  /* U+2308 - U+230F : 0x99999999 */
       9,  /* U+2310 - U+2317 : 0x99999999 */
       9,  /* U+2318 - U+231F : 0x99999999 */
       9,  /* U+2320 - U+2327 : 0x99999999 */
       9,  /* U+2328 - U+232F : 0x99999999 */
-     33,  /* U+2330 - U+2337 : 0x11999999 */
+    125,  /* U+2330 - U+2337 : 0x11999999 */
       1,  /* U+2338 - U+233F : 0x11111111 */
       1,  /* U+2340 - U+2347 : 0x11111111 */
       1,  /* U+2348 - U+234F : 0x11111111 */
       1,  /* U+2350 - U+2357 : 0x11111111 */
       1,  /* U+2358 - U+235F : 0x11111111 */
       1,  /* U+2360 - U+2367 : 0x11111111 */
       1,  /* U+2368 - U+236F : 0x11111111 */
       1,  /* U+2370 - U+2377 : 0x11111111 */
-    114,  /* U+2378 - U+237F : 0x99919111 */
+     22,  /* U+2378 - U+237F : 0x99999111 */
       9,  /* U+2380 - U+2387 : 0x99999999 */
       9,  /* U+2388 - U+238F : 0x99999999 */
-    115,  /* U+2390 - U+2397 : 0x99199999 */
-    116,  /* U+2398 - U+239F : 0x11111999 */
-      1,  /* U+23A0 - U+23A7 : 0x11111111 */
-      1,  /* U+23A8 - U+23AF : 0x11111111 */
-      1,  /* U+23B0 - U+23B7 : 0x11111111 */
-      1,  /* U+23B8 - U+23BF : 0x11111111 */
-      1,  /* U+23C0 - U+23C7 : 0x11111111 */
-      1,  /* U+23C8 - U+23CF : 0x11111111 */
-      1,  /* U+23D0 - U+23D7 : 0x11111111 */
+    126,  /* U+2390 - U+2397 : 0x99199999 */
+      9,  /* U+2398 - U+239F : 0x99999999 */
+      9,  /* U+23A0 - U+23A7 : 0x99999999 */
+      9,  /* U+23A8 - U+23AF : 0x99999999 */
+      9,  /* U+23B0 - U+23B7 : 0x99999999 */
+      9,  /* U+23B8 - U+23BF : 0x99999999 */
+      9,  /* U+23C0 - U+23C7 : 0x99999999 */
+      9,  /* U+23C8 - U+23CF : 0x99999999 */
+     21,  /* U+23D0 - U+23D7 : 0x11111119 */
       1,  /* U+23D8 - U+23DF : 0x11111111 */
       1,  /* U+23E0 - U+23E7 : 0x11111111 */
       1,  /* U+23E8 - U+23EF : 0x11111111 */
       1,  /* U+23F0 - U+23F7 : 0x11111111 */
       1,  /* U+23F8 - U+23FF : 0x11111111 */
       9,  /* U+2400 - U+2407 : 0x99999999 */
       9,  /* U+2408 - U+240F : 0x99999999 */
       9,  /* U+2410 - U+2417 : 0x99999999 */
       9,  /* U+2418 - U+241F : 0x99999999 */
-    103,  /* U+2420 - U+2427 : 0x19999999 */
+    127,  /* U+2420 - U+2427 : 0x19999999 */
       1,  /* U+2428 - U+242F : 0x11111111 */
       1,  /* U+2430 - U+2437 : 0x11111111 */
       1,  /* U+2438 - U+243F : 0x11111111 */
       9,  /* U+2440 - U+2447 : 0x99999999 */
-    116,  /* U+2448 - U+244F : 0x11111999 */
+    128,  /* U+2448 - U+244F : 0x11111999 */
       1,  /* U+2450 - U+2457 : 0x11111111 */
       1,  /* U+2458 - U+245F : 0x11111111 */
-      5,  /* U+2460 - U+2467 : 0x55555555 */
-      5,  /* U+2468 - U+246F : 0x55555555 */
-      5,  /* U+2470 - U+2477 : 0x55555555 */
-      5,  /* U+2478 - U+247F : 0x55555555 */
-      5,  /* U+2480 - U+2487 : 0x55555555 */
+      9,  /* U+2460 - U+2467 : 0x99999999 */
+      9,  /* U+2468 - U+246F : 0x99999999 */
+      9,  /* U+2470 - U+2477 : 0x99999999 */
+      9,  /* U+2478 - U+247F : 0x99999999 */
+      9,  /* U+2480 - U+2487 : 0x99999999 */
       5,  /* U+2488 - U+248F : 0x55555555 */
       5,  /* U+2490 - U+2497 : 0x55555555 */
-    117,  /* U+2498 - U+249F : 0x11115555 */
+    129,  /* U+2498 - U+249F : 0x11115555 */
       1,  /* U+24A0 - U+24A7 : 0x11111111 */
       1,  /* U+24A8 - U+24AF : 0x11111111 */
       1,  /* U+24B0 - U+24B7 : 0x11111111 */
       1,  /* U+24B8 - U+24BF : 0x11111111 */
       1,  /* U+24C0 - U+24C7 : 0x11111111 */
       1,  /* U+24C8 - U+24CF : 0x11111111 */
       1,  /* U+24D0 - U+24D7 : 0x11111111 */
       1,  /* U+24D8 - U+24DF : 0x11111111 */
       1,  /* U+24E0 - U+24E7 : 0x11111111 */
-    118,  /* U+24E8 - U+24EF : 0x11111511 */
-      1,  /* U+24F0 - U+24F7 : 0x11111111 */
-      1,  /* U+24F8 - U+24FF : 0x11111111 */
+     31,  /* U+24E8 - U+24EF : 0x99999911 */
+      9,  /* U+24F0 - U+24F7 : 0x99999999 */
+      9,  /* U+24F8 - U+24FF : 0x99999999 */
       9,  /* U+2500 - U+2507 : 0x99999999 */
       9,  /* U+2508 - U+250F : 0x99999999 */
       9,  /* U+2510 - U+2517 : 0x99999999 */
       9,  /* U+2518 - U+251F : 0x99999999 */
       9,  /* U+2520 - U+2527 : 0x99999999 */
       9,  /* U+2528 - U+252F : 0x99999999 */
       9,  /* U+2530 - U+2537 : 0x99999999 */
       9,  /* U+2538 - U+253F : 0x99999999 */
@@ -1055,144 +1099,240 @@ static PRUint8 gBidiCatIdx3[352] = {
       9,  /* U+2550 - U+2557 : 0x99999999 */
       9,  /* U+2558 - U+255F : 0x99999999 */
       9,  /* U+2560 - U+2567 : 0x99999999 */
       9,  /* U+2568 - U+256F : 0x99999999 */
       9,  /* U+2570 - U+2577 : 0x99999999 */
       9,  /* U+2578 - U+257F : 0x99999999 */
       9,  /* U+2580 - U+2587 : 0x99999999 */
       9,  /* U+2588 - U+258F : 0x99999999 */
-     33,  /* U+2590 - U+2597 : 0x11999999 */
-      1,  /* U+2598 - U+259F : 0x11111111 */
+      9,  /* U+2590 - U+2597 : 0x99999999 */
+      9,  /* U+2598 - U+259F : 0x99999999 */
       9,  /* U+25A0 - U+25A7 : 0x99999999 */
       9,  /* U+25A8 - U+25AF : 0x99999999 */
       9,  /* U+25B0 - U+25B7 : 0x99999999 */
       9,  /* U+25B8 - U+25BF : 0x99999999 */
       9,  /* U+25C0 - U+25C7 : 0x99999999 */
       9,  /* U+25C8 - U+25CF : 0x99999999 */
       9,  /* U+25D0 - U+25D7 : 0x99999999 */
       9,  /* U+25D8 - U+25DF : 0x99999999 */
       9,  /* U+25E0 - U+25E7 : 0x99999999 */
       9,  /* U+25E8 - U+25EF : 0x99999999 */
       9,  /* U+25F0 - U+25F7 : 0x99999999 */
-      1,  /* U+25F8 - U+25FF : 0x11111111 */
+      9,  /* U+25F8 - U+25FF : 0x99999999 */
       9,  /* U+2600 - U+2607 : 0x99999999 */
       9,  /* U+2608 - U+260F : 0x99999999 */
-    112,  /* U+2610 - U+2617 : 0x11119999 */
-    119,  /* U+2618 - U+261F : 0x99999991 */
+      9,  /* U+2610 - U+2617 : 0x99999999 */
+    130,  /* U+2618 - U+261F : 0x99999991 */
       9,  /* U+2620 - U+2627 : 0x99999999 */
       9,  /* U+2628 - U+262F : 0x99999999 */
       9,  /* U+2630 - U+2637 : 0x99999999 */
       9,  /* U+2638 - U+263F : 0x99999999 */
       9,  /* U+2640 - U+2647 : 0x99999999 */
       9,  /* U+2648 - U+264F : 0x99999999 */
       9,  /* U+2650 - U+2657 : 0x99999999 */
       9,  /* U+2658 - U+265F : 0x99999999 */
       9,  /* U+2660 - U+2667 : 0x99999999 */
       9,  /* U+2668 - U+266F : 0x99999999 */
-     98,  /* U+2670 - U+2677 : 0x11111199 */
-      1,  /* U+2678 - U+267F : 0x11111111 */
-      1,  /* U+2680 - U+2687 : 0x11111111 */
-      1,  /* U+2688 - U+268F : 0x11111111 */
-      1,  /* U+2690 - U+2697 : 0x11111111 */
+      9,  /* U+2670 - U+2677 : 0x99999999 */
+    125,  /* U+2678 - U+267F : 0x11999999 */
+      9,  /* U+2680 - U+2687 : 0x99999999 */
+      9,  /* U+2688 - U+268F : 0x99999999 */
+     99,  /* U+2690 - U+2697 : 0x11111199 */
       1,  /* U+2698 - U+269F : 0x11111111 */
-      1,  /* U+26A0 - U+26A7 : 0x11111111 */
+     99,  /* U+26A0 - U+26A7 : 0x11111199 */
       1,  /* U+26A8 - U+26AF : 0x11111111 */
       1,  /* U+26B0 - U+26B7 : 0x11111111 */
       1,  /* U+26B8 - U+26BF : 0x11111111 */
       1,  /* U+26C0 - U+26C7 : 0x11111111 */
       1,  /* U+26C8 - U+26CF : 0x11111111 */
       1,  /* U+26D0 - U+26D7 : 0x11111111 */
       1,  /* U+26D8 - U+26DF : 0x11111111 */
       1,  /* U+26E0 - U+26E7 : 0x11111111 */
       1,  /* U+26E8 - U+26EF : 0x11111111 */
       1,  /* U+26F0 - U+26F7 : 0x11111111 */
       1,  /* U+26F8 - U+26FF : 0x11111111 */
-    120,  /* U+2700 - U+2707 : 0x99199991 */
-    121,  /* U+2708 - U+270F : 0x99991199 */
+    131,  /* U+2700 - U+2707 : 0x99199991 */
+    132,  /* U+2708 - U+270F : 0x99991199 */
       9,  /* U+2710 - U+2717 : 0x99999999 */
       9,  /* U+2718 - U+271F : 0x99999999 */
       9,  /* U+2720 - U+2727 : 0x99999999 */
-    119,  /* U+2728 - U+272F : 0x99999991 */
+    130,  /* U+2728 - U+272F : 0x99999991 */
       9,  /* U+2730 - U+2737 : 0x99999999 */
       9,  /* U+2738 - U+273F : 0x99999999 */
       9,  /* U+2740 - U+2747 : 0x99999999 */
-    110,  /* U+2748 - U+274F : 0x91919999 */
-    122,  /* U+2750 - U+2757 : 0x19111999 */
-    103,  /* U+2758 - U+275F : 0x19999999 */
-    119,  /* U+2760 - U+2767 : 0x99999991 */
-      1,  /* U+2768 - U+276F : 0x11111111 */
-    123,  /* U+2770 - U+2777 : 0x99111111 */
+    120,  /* U+2748 - U+274F : 0x91919999 */
+    133,  /* U+2750 - U+2757 : 0x19111999 */
+    127,  /* U+2758 - U+275F : 0x19999999 */
+    130,  /* U+2760 - U+2767 : 0x99999991 */
+      9,  /* U+2768 - U+276F : 0x99999999 */
+      9,  /* U+2770 - U+2777 : 0x99999999 */
       9,  /* U+2778 - U+277F : 0x99999999 */
       9,  /* U+2780 - U+2787 : 0x99999999 */
       9,  /* U+2788 - U+278F : 0x99999999 */
-    124,  /* U+2790 - U+2797 : 0x11199999 */
+    123,  /* U+2790 - U+2797 : 0x11199999 */
       9,  /* U+2798 - U+279F : 0x99999999 */
       9,  /* U+27A0 - U+27A7 : 0x99999999 */
       9,  /* U+27A8 - U+27AF : 0x99999999 */
-    119,  /* U+27B0 - U+27B7 : 0x99999991 */
-    103,  /* U+27B8 - U+27BF : 0x19999999 */
+    130,  /* U+27B0 - U+27B7 : 0x99999991 */
+    127,  /* U+27B8 - U+27BF : 0x19999999 */
       1,  /* U+27C0 - U+27C7 : 0x11111111 */
       1,  /* U+27C8 - U+27CF : 0x11111111 */
-      1,  /* U+27D0 - U+27D7 : 0x11111111 */
-      1,  /* U+27D8 - U+27DF : 0x11111111 */
-      1,  /* U+27E0 - U+27E7 : 0x11111111 */
-      1,  /* U+27E8 - U+27EF : 0x11111111 */
-      1,  /* U+27F0 - U+27F7 : 0x11111111 */
-      1,  /* U+27F8 - U+27FF : 0x11111111 */
-      9,  /* U+2800 - U+2807 : 0x99999999 */
-      9,  /* U+2808 - U+280F : 0x99999999 */
-      9,  /* U+2810 - U+2817 : 0x99999999 */
-      9,  /* U+2818 - U+281F : 0x99999999 */
-      9,  /* U+2820 - U+2827 : 0x99999999 */
-      9,  /* U+2828 - U+282F : 0x99999999 */
-      9,  /* U+2830 - U+2837 : 0x99999999 */
-      9,  /* U+2838 - U+283F : 0x99999999 */
-      9,  /* U+2840 - U+2847 : 0x99999999 */
-      9,  /* U+2848 - U+284F : 0x99999999 */
-      9,  /* U+2850 - U+2857 : 0x99999999 */
-      9,  /* U+2858 - U+285F : 0x99999999 */
-      9,  /* U+2860 - U+2867 : 0x99999999 */
-      9,  /* U+2868 - U+286F : 0x99999999 */
-      9,  /* U+2870 - U+2877 : 0x99999999 */
-      9,  /* U+2878 - U+287F : 0x99999999 */
-      9,  /* U+2880 - U+2887 : 0x99999999 */
-      9,  /* U+2888 - U+288F : 0x99999999 */
-      9,  /* U+2890 - U+2897 : 0x99999999 */
-      9,  /* U+2898 - U+289F : 0x99999999 */
-      9,  /* U+28A0 - U+28A7 : 0x99999999 */
-      9,  /* U+28A8 - U+28AF : 0x99999999 */
-      9,  /* U+28B0 - U+28B7 : 0x99999999 */
-      9,  /* U+28B8 - U+28BF : 0x99999999 */
-      9,  /* U+28C0 - U+28C7 : 0x99999999 */
-      9,  /* U+28C8 - U+28CF : 0x99999999 */
-      9,  /* U+28D0 - U+28D7 : 0x99999999 */
-      9,  /* U+28D8 - U+28DF : 0x99999999 */
-      9,  /* U+28E0 - U+28E7 : 0x99999999 */
-      9,  /* U+28E8 - U+28EF : 0x99999999 */
-      9,  /* U+28F0 - U+28F7 : 0x99999999 */
-      9,  /* U+28F8 - U+28FF : 0x99999999 */
+      9,  /* U+27D0 - U+27D7 : 0x99999999 */
+      9,  /* U+27D8 - U+27DF : 0x99999999 */
+      9,  /* U+27E0 - U+27E7 : 0x99999999 */
+    134,  /* U+27E8 - U+27EF : 0x11119999 */
+      9,  /* U+27F0 - U+27F7 : 0x99999999 */
+      9,  /* U+27F8 - U+27FF : 0x99999999 */
+      1,  /* U+2800 - U+2807 : 0x11111111 */
+      1,  /* U+2808 - U+280F : 0x11111111 */
+      1,  /* U+2810 - U+2817 : 0x11111111 */
+      1,  /* U+2818 - U+281F : 0x11111111 */
+      1,  /* U+2820 - U+2827 : 0x11111111 */
+      1,  /* U+2828 - U+282F : 0x11111111 */
+      1,  /* U+2830 - U+2837 : 0x11111111 */
+      1,  /* U+2838 - U+283F : 0x11111111 */
+      1,  /* U+2840 - U+2847 : 0x11111111 */
+      1,  /* U+2848 - U+284F : 0x11111111 */
+      1,  /* U+2850 - U+2857 : 0x11111111 */
+      1,  /* U+2858 - U+285F : 0x11111111 */
+      1,  /* U+2860 - U+2867 : 0x11111111 */
+      1,  /* U+2868 - U+286F : 0x11111111 */
+      1,  /* U+2870 - U+2877 : 0x11111111 */
+      1,  /* U+2878 - U+287F : 0x11111111 */
+      1,  /* U+2880 - U+2887 : 0x11111111 */
+      1,  /* U+2888 - U+288F : 0x11111111 */
+      1,  /* U+2890 - U+2897 : 0x11111111 */
+      1,  /* U+2898 - U+289F : 0x11111111 */
+      1,  /* U+28A0 - U+28A7 : 0x11111111 */
+      1,  /* U+28A8 - U+28AF : 0x11111111 */
+      1,  /* U+28B0 - U+28B7 : 0x11111111 */
+      1,  /* U+28B8 - U+28BF : 0x11111111 */
+      1,  /* U+28C0 - U+28C7 : 0x11111111 */
+      1,  /* U+28C8 - U+28CF : 0x11111111 */
+      1,  /* U+28D0 - U+28D7 : 0x11111111 */
+      1,  /* U+28D8 - U+28DF : 0x11111111 */
+      1,  /* U+28E0 - U+28E7 : 0x11111111 */
+      1,  /* U+28E8 - U+28EF : 0x11111111 */
+      1,  /* U+28F0 - U+28F7 : 0x11111111 */
+      1,  /* U+28F8 - U+28FF : 0x11111111 */
+      9,  /* U+2900 - U+2907 : 0x99999999 */
+      9,  /* U+2908 - U+290F : 0x99999999 */
+      9,  /* U+2910 - U+2917 : 0x99999999 */
+      9,  /* U+2918 - U+291F : 0x99999999 */
+      9,  /* U+2920 - U+2927 : 0x99999999 */
+      9,  /* U+2928 - U+292F : 0x99999999 */
+      9,  /* U+2930 - U+2937 : 0x99999999 */
+      9,  /* U+2938 - U+293F : 0x99999999 */
+      9,  /* U+2940 - U+2947 : 0x99999999 */
+      9,  /* U+2948 - U+294F : 0x99999999 */
+      9,  /* U+2950 - U+2957 : 0x99999999 */
+      9,  /* U+2958 - U+295F : 0x99999999 */
+      9,  /* U+2960 - U+2967 : 0x99999999 */
+      9,  /* U+2968 - U+296F : 0x99999999 */
+      9,  /* U+2970 - U+2977 : 0x99999999 */
+      9,  /* U+2978 - U+297F : 0x99999999 */
+      9,  /* U+2980 - U+2987 : 0x99999999 */
+      9,  /* U+2988 - U+298F : 0x99999999 */
+      9,  /* U+2990 - U+2997 : 0x99999999 */
+      9,  /* U+2998 - U+299F : 0x99999999 */
+      9,  /* U+29A0 - U+29A7 : 0x99999999 */
+      9,  /* U+29A8 - U+29AF : 0x99999999 */
+      9,  /* U+29B0 - U+29B7 : 0x99999999 */
+      9,  /* U+29B8 - U+29BF : 0x99999999 */
+      9,  /* U+29C0 - U+29C7 : 0x99999999 */
+      9,  /* U+29C8 - U+29CF : 0x99999999 */
+      9,  /* U+29D0 - U+29D7 : 0x99999999 */
+      9,  /* U+29D8 - U+29DF : 0x99999999 */
+      9,  /* U+29E0 - U+29E7 : 0x99999999 */
+      9,  /* U+29E8 - U+29EF : 0x99999999 */
+      9,  /* U+29F0 - U+29F7 : 0x99999999 */
+      9,  /* U+29F8 - U+29FF : 0x99999999 */
+      9,  /* U+2A00 - U+2A07 : 0x99999999 */
+      9,  /* U+2A08 - U+2A0F : 0x99999999 */
+      9,  /* U+2A10 - U+2A17 : 0x99999999 */
+      9,  /* U+2A18 - U+2A1F : 0x99999999 */
+      9,  /* U+2A20 - U+2A27 : 0x99999999 */
+      9,  /* U+2A28 - U+2A2F : 0x99999999 */
+      9,  /* U+2A30 - U+2A37 : 0x99999999 */
+      9,  /* U+2A38 - U+2A3F : 0x99999999 */
+      9,  /* U+2A40 - U+2A47 : 0x99999999 */
+      9,  /* U+2A48 - U+2A4F : 0x99999999 */
+      9,  /* U+2A50 - U+2A57 : 0x99999999 */
+      9,  /* U+2A58 - U+2A5F : 0x99999999 */
+      9,  /* U+2A60 - U+2A67 : 0x99999999 */
+      9,  /* U+2A68 - U+2A6F : 0x99999999 */
+      9,  /* U+2A70 - U+2A77 : 0x99999999 */
+      9,  /* U+2A78 - U+2A7F : 0x99999999 */
+      9,  /* U+2A80 - U+2A87 : 0x99999999 */
+      9,  /* U+2A88 - U+2A8F : 0x99999999 */
+      9,  /* U+2A90 - U+2A97 : 0x99999999 */
+      9,  /* U+2A98 - U+2A9F : 0x99999999 */
+      9,  /* U+2AA0 - U+2AA7 : 0x99999999 */
+      9,  /* U+2AA8 - U+2AAF : 0x99999999 */
+      9,  /* U+2AB0 - U+2AB7 : 0x99999999 */
+      9,  /* U+2AB8 - U+2ABF : 0x99999999 */
+      9,  /* U+2AC0 - U+2AC7 : 0x99999999 */
+      9,  /* U+2AC8 - U+2ACF : 0x99999999 */
+      9,  /* U+2AD0 - U+2AD7 : 0x99999999 */
+      9,  /* U+2AD8 - U+2ADF : 0x99999999 */
+      9,  /* U+2AE0 - U+2AE7 : 0x99999999 */
+      9,  /* U+2AE8 - U+2AEF : 0x99999999 */
+      9,  /* U+2AF0 - U+2AF7 : 0x99999999 */
+      9,  /* U+2AF8 - U+2AFF : 0x99999999 */
+      9,  /* U+2B00 - U+2B07 : 0x99999999 */
+    125,  /* U+2B08 - U+2B0F : 0x11999999 */
+      1,  /* U+2B10 - U+2B17 : 0x11111111 */
+      1,  /* U+2B18 - U+2B1F : 0x11111111 */
+      1,  /* U+2B20 - U+2B27 : 0x11111111 */
+      1,  /* U+2B28 - U+2B2F : 0x11111111 */
+      1,  /* U+2B30 - U+2B37 : 0x11111111 */
+      1,  /* U+2B38 - U+2B3F : 0x11111111 */
+      1,  /* U+2B40 - U+2B47 : 0x11111111 */
+      1,  /* U+2B48 - U+2B4F : 0x11111111 */
+      1,  /* U+2B50 - U+2B57 : 0x11111111 */
+      1,  /* U+2B58 - U+2B5F : 0x11111111 */
+      1,  /* U+2B60 - U+2B67 : 0x11111111 */
+      1,  /* U+2B68 - U+2B6F : 0x11111111 */
+      1,  /* U+2B70 - U+2B77 : 0x11111111 */
+      1,  /* U+2B78 - U+2B7F : 0x11111111 */
+      1,  /* U+2B80 - U+2B87 : 0x11111111 */
+      1,  /* U+2B88 - U+2B8F : 0x11111111 */
+      1,  /* U+2B90 - U+2B97 : 0x11111111 */
+      1,  /* U+2B98 - U+2B9F : 0x11111111 */
+      1,  /* U+2BA0 - U+2BA7 : 0x11111111 */
+      1,  /* U+2BA8 - U+2BAF : 0x11111111 */
+      1,  /* U+2BB0 - U+2BB7 : 0x11111111 */
+      1,  /* U+2BB8 - U+2BBF : 0x11111111 */
+      1,  /* U+2BC0 - U+2BC7 : 0x11111111 */
+      1,  /* U+2BC8 - U+2BCF : 0x11111111 */
+      1,  /* U+2BD0 - U+2BD7 : 0x11111111 */
+      1,  /* U+2BD8 - U+2BDF : 0x11111111 */
+      1,  /* U+2BE0 - U+2BE7 : 0x11111111 */
+      1,  /* U+2BE8 - U+2BEF : 0x11111111 */
+      1,  /* U+2BF0 - U+2BF7 : 0x11111111 */
+      1,  /* U+2BF8 - U+2BFF : 0x11111111 */
 };
 
 static PRUint8 gBidiCatIdx4[176] = {
       9,  /* U+2E80 - U+2E87 : 0x99999999 */
       9,  /* U+2E88 - U+2E8F : 0x99999999 */
       9,  /* U+2E90 - U+2E97 : 0x99999999 */
-     26,  /* U+2E98 - U+2E9F : 0x99999199 */
+    135,  /* U+2E98 - U+2E9F : 0x99999199 */
       9,  /* U+2EA0 - U+2EA7 : 0x99999999 */
       9,  /* U+2EA8 - U+2EAF : 0x99999999 */
       9,  /* U+2EB0 - U+2EB7 : 0x99999999 */
       9,  /* U+2EB8 - U+2EBF : 0x99999999 */
       9,  /* U+2EC0 - U+2EC7 : 0x99999999 */
       9,  /* U+2EC8 - U+2ECF : 0x99999999 */
       9,  /* U+2ED0 - U+2ED7 : 0x99999999 */
       9,  /* U+2ED8 - U+2EDF : 0x99999999 */
       9,  /* U+2EE0 - U+2EE7 : 0x99999999 */
       9,  /* U+2EE8 - U+2EEF : 0x99999999 */
-    112,  /* U+2EF0 - U+2EF7 : 0x11119999 */
+    134,  /* U+2EF0 - U+2EF7 : 0x11119999 */
       1,  /* U+2EF8 - U+2EFF : 0x11111111 */
       9,  /* U+2F00 - U+2F07 : 0x99999999 */
       9,  /* U+2F08 - U+2F0F : 0x99999999 */
       9,  /* U+2F10 - U+2F17 : 0x99999999 */
       9,  /* U+2F18 - U+2F1F : 0x99999999 */
       9,  /* U+2F20 - U+2F27 : 0x99999999 */
       9,  /* U+2F28 - U+2F2F : 0x99999999 */
       9,  /* U+2F30 - U+2F37 : 0x99999999 */
@@ -1210,54 +1350,54 @@ static PRUint8 gBidiCatIdx4[176] = {
       9,  /* U+2F90 - U+2F97 : 0x99999999 */
       9,  /* U+2F98 - U+2F9F : 0x99999999 */
       9,  /* U+2FA0 - U+2FA7 : 0x99999999 */
       9,  /* U+2FA8 - U+2FAF : 0x99999999 */
       9,  /* U+2FB0 - U+2FB7 : 0x99999999 */
       9,  /* U+2FB8 - U+2FBF : 0x99999999 */
       9,  /* U+2FC0 - U+2FC7 : 0x99999999 */
       9,  /* U+2FC8 - U+2FCF : 0x99999999 */
-     33,  /* U+2FD0 - U+2FD7 : 0x11999999 */
+    125,  /* U+2FD0 - U+2FD7 : 0x11999999 */
       1,  /* U+2FD8 - U+2FDF : 0x11111111 */
       1,  /* U+2FE0 - U+2FE7 : 0x11111111 */
       1,  /* U+2FE8 - U+2FEF : 0x11111111 */
       9,  /* U+2FF0 - U+2FF7 : 0x99999999 */
-    112,  /* U+2FF8 - U+2FFF : 0x11119999 */
-    125,  /* U+3000 - U+3007 : 0x1119999E */
+    134,  /* U+2FF8 - U+2FFF : 0x11119999 */
+    136,  /* U+3000 - U+3007 : 0x1119999E */
       9,  /* U+3008 - U+300F : 0x99999999 */
       9,  /* U+3010 - U+3017 : 0x99999999 */
       9,  /* U+3018 - U+301F : 0x99999999 */
      21,  /* U+3020 - U+3027 : 0x11111119 */
-    126,  /* U+3028 - U+302F : 0xAAAAAA11 */
-    109,  /* U+3030 - U+3037 : 0x99111119 */
-    123,  /* U+3038 - U+303F : 0x99111111 */
+    137,  /* U+3028 - U+302F : 0xAAAAAA11 */
+    119,  /* U+3030 - U+3037 : 0x99111119 */
+     32,  /* U+3038 - U+303F : 0x99911111 */
       1,  /* U+3040 - U+3047 : 0x11111111 */
       1,  /* U+3048 - U+304F : 0x11111111 */
       1,  /* U+3050 - U+3057 : 0x11111111 */
       1,  /* U+3058 - U+305F : 0x11111111 */
       1,  /* U+3060 - U+3067 : 0x11111111 */
       1,  /* U+3068 - U+306F : 0x11111111 */
       1,  /* U+3070 - U+3077 : 0x11111111 */
       1,  /* U+3078 - U+307F : 0x11111111 */
       1,  /* U+3080 - U+3087 : 0x11111111 */
       1,  /* U+3088 - U+308F : 0x11111111 */
       1,  /* U+3090 - U+3097 : 0x11111111 */
-    127,  /* U+3098 - U+309F : 0x11199AA1 */
-      1,  /* U+30A0 - U+30A7 : 0x11111111 */
+    138,  /* U+3098 - U+309F : 0x11199AA1 */
+     21,  /* U+30A0 - U+30A7 : 0x11111119 */
       1,  /* U+30A8 - U+30AF : 0x11111111 */
       1,  /* U+30B0 - U+30B7 : 0x11111111 */
       1,  /* U+30B8 - U+30BF : 0x11111111 */
       1,  /* U+30C0 - U+30C7 : 0x11111111 */
       1,  /* U+30C8 - U+30CF : 0x11111111 */
       1,  /* U+30D0 - U+30D7 : 0x11111111 */
       1,  /* U+30D8 - U+30DF : 0x11111111 */
       1,  /* U+30E0 - U+30E7 : 0x11111111 */
       1,  /* U+30E8 - U+30EF : 0x11111111 */
       1,  /* U+30F0 - U+30F7 : 0x11111111 */
-    128,  /* U+30F8 - U+30FF : 0x11119111 */
+    139,  /* U+30F8 - U+30FF : 0x11119111 */
       1,  /* U+3100 - U+3107 : 0x11111111 */
       1,  /* U+3108 - U+310F : 0x11111111 */
       1,  /* U+3110 - U+3117 : 0x11111111 */
       1,  /* U+3118 - U+311F : 0x11111111 */
       1,  /* U+3120 - U+3127 : 0x11111111 */
       1,  /* U+3128 - U+312F : 0x11111111 */
       1,  /* U+3130 - U+3137 : 0x11111111 */
       1,  /* U+3138 - U+313F : 0x11111111 */
@@ -1283,39 +1423,39 @@ static PRUint8 gBidiCatIdx4[176] = {
       1,  /* U+31D8 - U+31DF : 0x11111111 */
       1,  /* U+31E0 - U+31E7 : 0x11111111 */
       1,  /* U+31E8 - U+31EF : 0x11111111 */
       1,  /* U+31F0 - U+31F7 : 0x11111111 */
       1,  /* U+31F8 - U+31FF : 0x11111111 */
       1,  /* U+3200 - U+3207 : 0x11111111 */
       1,  /* U+3208 - U+320F : 0x11111111 */
       1,  /* U+3210 - U+3217 : 0x11111111 */
-      1,  /* U+3218 - U+321F : 0x11111111 */
+    104,  /* U+3218 - U+321F : 0x19911111 */
       1,  /* U+3220 - U+3227 : 0x11111111 */
       1,  /* U+3228 - U+322F : 0x11111111 */
       1,  /* U+3230 - U+3237 : 0x11111111 */
       1,  /* U+3238 - U+323F : 0x11111111 */
       1,  /* U+3240 - U+3247 : 0x11111111 */
       1,  /* U+3248 - U+324F : 0x11111111 */
-      1,  /* U+3250 - U+3257 : 0x11111111 */
-      1,  /* U+3258 - U+325F : 0x11111111 */
+      9,  /* U+3250 - U+3257 : 0x99999999 */
+      9,  /* U+3258 - U+325F : 0x99999999 */
       1,  /* U+3260 - U+3267 : 0x11111111 */
       1,  /* U+3268 - U+326F : 0x11111111 */
       1,  /* U+3270 - U+3277 : 0x11111111 */
-      1,  /* U+3278 - U+327F : 0x11111111 */
+     35,  /* U+3278 - U+327F : 0x11991111 */
       1,  /* U+3280 - U+3287 : 0x11111111 */
       1,  /* U+3288 - U+328F : 0x11111111 */
       1,  /* U+3290 - U+3297 : 0x11111111 */
       1,  /* U+3298 - U+329F : 0x11111111 */
       1,  /* U+32A0 - U+32A7 : 0x11111111 */
       1,  /* U+32A8 - U+32AF : 0x11111111 */
-      1,  /* U+32B0 - U+32B7 : 0x11111111 */
-      1,  /* U+32B8 - U+32BF : 0x11111111 */
+    130,  /* U+32B0 - U+32B7 : 0x99999991 */
+      9,  /* U+32B8 - U+32BF : 0x99999999 */
       1,  /* U+32C0 - U+32C7 : 0x11111111 */
-      1,  /* U+32C8 - U+32CF : 0x11111111 */
+    140,  /* U+32C8 - U+32CF : 0x99991111 */
       1,  /* U+32D0 - U+32D7 : 0x11111111 */
       1,  /* U+32D8 - U+32DF : 0x11111111 */
       1,  /* U+32E0 - U+32E7 : 0x11111111 */
       1,  /* U+32E8 - U+32EF : 0x11111111 */
       1,  /* U+32F0 - U+32F7 : 0x11111111 */
       1,  /* U+32F8 - U+32FF : 0x11111111 */
       1,  /* U+3300 - U+3307 : 0x11111111 */
       1,  /* U+3308 - U+330F : 0x11111111 */
@@ -1326,37 +1466,48 @@ static PRUint8 gBidiCatIdx4[176] = {
       1,  /* U+3330 - U+3337 : 0x11111111 */
       1,  /* U+3338 - U+333F : 0x11111111 */
       1,  /* U+3340 - U+3347 : 0x11111111 */
       1,  /* U+3348 - U+334F : 0x11111111 */
       1,  /* U+3350 - U+3357 : 0x11111111 */
       1,  /* U+3358 - U+335F : 0x11111111 */
       1,  /* U+3360 - U+3367 : 0x11111111 */
       1,  /* U+3368 - U+336F : 0x11111111 */
-      1,  /* U+3370 - U+3377 : 0x11111111 */
-      1,  /* U+3378 - U+337F : 0x11111111 */
+     29,  /* U+3370 - U+3377 : 0x91111111 */
+    128,  /* U+3378 - U+337F : 0x11111999 */
       1,  /* U+3380 - U+3387 : 0x11111111 */
       1,  /* U+3388 - U+338F : 0x11111111 */
       1,  /* U+3390 - U+3397 : 0x11111111 */
       1,  /* U+3398 - U+339F : 0x11111111 */
       1,  /* U+33A0 - U+33A7 : 0x11111111 */
       1,  /* U+33A8 - U+33AF : 0x11111111 */
       1,  /* U+33B0 - U+33B7 : 0x11111111 */
       1,  /* U+33B8 - U+33BF : 0x11111111 */
       1,  /* U+33C0 - U+33C7 : 0x11111111 */
       1,  /* U+33C8 - U+33CF : 0x11111111 */
       1,  /* U+33D0 - U+33D7 : 0x11111111 */
-      1,  /* U+33D8 - U+33DF : 0x11111111 */
+    141,  /* U+33D8 - U+33DF : 0x99111111 */
       1,  /* U+33E0 - U+33E7 : 0x11111111 */
       1,  /* U+33E8 - U+33EF : 0x11111111 */
       1,  /* U+33F0 - U+33F7 : 0x11111111 */
-      1,  /* U+33F8 - U+33FF : 0x11111111 */
+     29,  /* U+33F8 - U+33FF : 0x91111111 */
 };
 
-static PRUint8 gBidiCatIdx5[160] = {
+static PRUint8 gBidiCatIdx5[8] = {
+      9,  /* U+4DC0 - U+4DC7 : 0x99999999 */
+      9,  /* U+4DC8 - U+4DCF : 0x99999999 */
+      9,  /* U+4DD0 - U+4DD7 : 0x99999999 */
+      9,  /* U+4DD8 - U+4DDF : 0x99999999 */
+      9,  /* U+4DE0 - U+4DE7 : 0x99999999 */
+      9,  /* U+4DE8 - U+4DEF : 0x99999999 */
+      9,  /* U+4DF0 - U+4DF7 : 0x99999999 */
+      9,  /* U+4DF8 - U+4DFF : 0x99999999 */
+};
+
+static PRUint8 gBidiCatIdx6[160] = {
       1,  /* U+A000 - U+A007 : 0x11111111 */
       1,  /* U+A008 - U+A00F : 0x11111111 */
       1,  /* U+A010 - U+A017 : 0x11111111 */
       1,  /* U+A018 - U+A01F : 0x11111111 */
       1,  /* U+A020 - U+A027 : 0x11111111 */
       1,  /* U+A028 - U+A02F : 0x11111111 */
       1,  /* U+A030 - U+A037 : 0x11111111 */
       1,  /* U+A038 - U+A03F : 0x11111111 */
@@ -1495,31 +1646,31 @@ static PRUint8 gBidiCatIdx5[160] = {
       1,  /* U+A460 - U+A467 : 0x11111111 */
       1,  /* U+A468 - U+A46F : 0x11111111 */
       1,  /* U+A470 - U+A477 : 0x11111111 */
       1,  /* U+A478 - U+A47F : 0x11111111 */
       1,  /* U+A480 - U+A487 : 0x11111111 */
       1,  /* U+A488 - U+A48F : 0x11111111 */
       9,  /* U+A490 - U+A497 : 0x99999999 */
       9,  /* U+A498 - U+A49F : 0x99999999 */
-    121,  /* U+A4A0 - U+A4A7 : 0x99991199 */
+      9,  /* U+A4A0 - U+A4A7 : 0x99999999 */
       9,  /* U+A4A8 - U+A4AF : 0x99999999 */
-    129,  /* U+A4B0 - U+A4B7 : 0x99919999 */
+      9,  /* U+A4B0 - U+A4B7 : 0x99999999 */
       9,  /* U+A4B8 - U+A4BF : 0x99999999 */
-    130,  /* U+A4C0 - U+A4C7 : 0x19199919 */
+    127,  /* U+A4C0 - U+A4C7 : 0x19999999 */
       1,  /* U+A4C8 - U+A4CF : 0x11111111 */
       1,  /* U+A4D0 - U+A4D7 : 0x11111111 */
       1,  /* U+A4D8 - U+A4DF : 0x11111111 */
       1,  /* U+A4E0 - U+A4E7 : 0x11111111 */
       1,  /* U+A4E8 - U+A4EF : 0x11111111 */
       1,  /* U+A4F0 - U+A4F7 : 0x11111111 */
       1,  /* U+A4F8 - U+A4FF : 0x11111111 */
 };
 
-static PRUint8 gBidiCatIdx6[224] = {
+static PRUint8 gBidiCatIdx7[224] = {
       1,  /* U+F900 - U+F907 : 0x11111111 */
       1,  /* U+F908 - U+F90F : 0x11111111 */
       1,  /* U+F910 - U+F917 : 0x11111111 */
       1,  /* U+F918 - U+F91F : 0x11111111 */
       1,  /* U+F920 - U+F927 : 0x11111111 */
       1,  /* U+F928 - U+F92F : 0x11111111 */
       1,  /* U+F930 - U+F937 : 0x11111111 */
       1,  /* U+F938 - U+F93F : 0x11111111 */
@@ -1577,19 +1728,19 @@ static PRUint8 gBidiCatIdx6[224] = {
       1,  /* U+FAD8 - U+FADF : 0x11111111 */
       1,  /* U+FAE0 - U+FAE7 : 0x11111111 */
       1,  /* U+FAE8 - U+FAEF : 0x11111111 */
       1,  /* U+FAF0 - U+FAF7 : 0x11111111 */
       1,  /* U+FAF8 - U+FAFF : 0x11111111 */
       1,  /* U+FB00 - U+FB07 : 0x11111111 */
       1,  /* U+FB08 - U+FB0F : 0x11111111 */
       1,  /* U+FB10 - U+FB17 : 0x11111111 */
-    131,  /* U+FB18 - U+FB1F : 0x2A211111 */
+    142,  /* U+FB18 - U+FB1F : 0x2A211111 */
       2,  /* U+FB20 - U+FB27 : 0x22222222 */
-    132,  /* U+FB28 - U+FB2F : 0x22222272 */
+    143,  /* U+FB28 - U+FB2F : 0x22222272 */
       2,  /* U+FB30 - U+FB37 : 0x22222222 */
       2,  /* U+FB38 - U+FB3F : 0x22222222 */
       2,  /* U+FB40 - U+FB47 : 0x22222222 */
       2,  /* U+FB48 - U+FB4F : 0x22222222 */
       3,  /* U+FB50 - U+FB57 : 0x33333333 */
       3,  /* U+FB58 - U+FB5F : 0x33333333 */
       3,  /* U+FB60 - U+FB67 : 0x33333333 */
       3,  /* U+FB68 - U+FB6F : 0x33333333 */
@@ -1645,17 +1796,17 @@ static PRUint8 gBidiCatIdx6[224] = {
       3,  /* U+FCF8 - U+FCFF : 0x33333333 */
       3,  /* U+FD00 - U+FD07 : 0x33333333 */
       3,  /* U+FD08 - U+FD0F : 0x33333333 */
       3,  /* U+FD10 - U+FD17 : 0x33333333 */
       3,  /* U+FD18 - U+FD1F : 0x33333333 */
       3,  /* U+FD20 - U+FD27 : 0x33333333 */
       3,  /* U+FD28 - U+FD2F : 0x33333333 */
       3,  /* U+FD30 - U+FD37 : 0x33333333 */
-    133,  /* U+FD38 - U+FD3F : 0x99333333 */
+    144,  /* U+FD38 - U+FD3F : 0x99333333 */
       3,  /* U+FD40 - U+FD47 : 0x33333333 */
       3,  /* U+FD48 - U+FD4F : 0x33333333 */
       3,  /* U+FD50 - U+FD57 : 0x33333333 */
       3,  /* U+FD58 - U+FD5F : 0x33333333 */
       3,  /* U+FD60 - U+FD67 : 0x33333333 */
       3,  /* U+FD68 - U+FD6F : 0x33333333 */
       3,  /* U+FD70 - U+FD77 : 0x33333333 */
       3,  /* U+FD78 - U+FD7F : 0x33333333 */
@@ -1669,31 +1820,31 @@ static PRUint8 gBidiCatIdx6[224] = {
       3,  /* U+FDB8 - U+FDBF : 0x33333333 */
       3,  /* U+FDC0 - U+FDC7 : 0x33333333 */
       3,  /* U+FDC8 - U+FDCF : 0x33333333 */
       3,  /* U+FDD0 - U+FDD7 : 0x33333333 */
       3,  /* U+FDD8 - U+FDDF : 0x33333333 */
       3,  /* U+FDE0 - U+FDE7 : 0x33333333 */
       3,  /* U+FDE8 - U+FDEF : 0x33333333 */
       3,  /* U+FDF0 - U+FDF7 : 0x33333333 */
-      3,  /* U+FDF8 - U+FDFF : 0x33333333 */
-      1,  /* U+FE00 - U+FE07 : 0x11111111 */
-      1,  /* U+FE08 - U+FE0F : 0x11111111 */
+    145,  /* U+FDF8 - U+FDFF : 0x33933333 */
+     10,  /* U+FE00 - U+FE07 : 0xAAAAAAAA */
+     10,  /* U+FE08 - U+FE0F : 0xAAAAAAAA */
       1,  /* U+FE10 - U+FE17 : 0x11111111 */
       1,  /* U+FE18 - U+FE1F : 0x11111111 */
-     94,  /* U+FE20 - U+FE27 : 0x1111AAAA */
+     97,  /* U+FE20 - U+FE27 : 0x1111AAAA */
       1,  /* U+FE28 - U+FE2F : 0x11111111 */
       9,  /* U+FE30 - U+FE37 : 0x99999999 */
       9,  /* U+FE38 - U+FE3F : 0x99999999 */
-    124,  /* U+FE40 - U+FE47 : 0x11199999 */
-    119,  /* U+FE48 - U+FE4F : 0x99999991 */
-    134,  /* U+FE50 - U+FE57 : 0x99891898 */
-    135,  /* U+FE58 - U+FE5F : 0x79999999 */
-    136,  /* U+FE60 - U+FE67 : 0x19997799 */
-    137,  /* U+FE68 - U+FE6F : 0x11119779 */
+      9,  /* U+FE40 - U+FE47 : 0x99999999 */
+      9,  /* U+FE48 - U+FE4F : 0x99999999 */
+    146,  /* U+FE50 - U+FE57 : 0x99891898 */
+    147,  /* U+FE58 - U+FE5F : 0x79999999 */
+    148,  /* U+FE60 - U+FE67 : 0x19997799 */
+    149,  /* U+FE68 - U+FE6F : 0x11119779 */
       3,  /* U+FE70 - U+FE77 : 0x33333333 */
       3,  /* U+FE78 - U+FE7F : 0x33333333 */
       3,  /* U+FE80 - U+FE87 : 0x33333333 */
       3,  /* U+FE88 - U+FE8F : 0x33333333 */
       3,  /* U+FE90 - U+FE97 : 0x33333333 */
       3,  /* U+FE98 - U+FE9F : 0x33333333 */
       3,  /* U+FEA0 - U+FEA7 : 0x33333333 */
       3,  /* U+FEA8 - U+FEAF : 0x33333333 */
@@ -1702,51 +1853,51 @@ static PRUint8 gBidiCatIdx6[224] = {
       3,  /* U+FEC0 - U+FEC7 : 0x33333333 */
       3,  /* U+FEC8 - U+FECF : 0x33333333 */
       3,  /* U+FED0 - U+FED7 : 0x33333333 */
       3,  /* U+FED8 - U+FEDF : 0x33333333 */
       3,  /* U+FEE0 - U+FEE7 : 0x33333333 */
       3,  /* U+FEE8 - U+FEEF : 0x33333333 */
       3,  /* U+FEF0 - U+FEF7 : 0x33333333 */
      55,  /* U+FEF8 - U+FEFF : 0xB3333333 */
-    138,  /* U+FF00 - U+FF07 : 0x99777991 */
-     19,  /* U+FF08 - U+FF0F : 0x68787999 */
+    150,  /* U+FF00 - U+FF07 : 0x99777991 */
+    151,  /* U+FF08 - U+FF0F : 0x68787999 */
       5,  /* U+FF10 - U+FF17 : 0x55555555 */
      20,  /* U+FF18 - U+FF1F : 0x99999855 */
      21,  /* U+FF20 - U+FF27 : 0x11111119 */
       1,  /* U+FF28 - U+FF2F : 0x11111111 */
       1,  /* U+FF30 - U+FF37 : 0x11111111 */
      22,  /* U+FF38 - U+FF3F : 0x99999111 */
      21,  /* U+FF40 - U+FF47 : 0x11111119 */
       1,  /* U+FF48 - U+FF4F : 0x11111111 */
       1,  /* U+FF50 - U+FF57 : 0x11111111 */
-    139,  /* U+FF58 - U+FF5F : 0x19999111 */
-    140,  /* U+FF60 - U+FF67 : 0x11999991 */
+     22,  /* U+FF58 - U+FF5F : 0x99999111 */
+    125,  /* U+FF60 - U+FF67 : 0x11999999 */
       1,  /* U+FF68 - U+FF6F : 0x11111111 */
       1,  /* U+FF70 - U+FF77 : 0x11111111 */
       1,  /* U+FF78 - U+FF7F : 0x11111111 */
       1,  /* U+FF80 - U+FF87 : 0x11111111 */
       1,  /* U+FF88 - U+FF8F : 0x11111111 */
       1,  /* U+FF90 - U+FF97 : 0x11111111 */
       1,  /* U+FF98 - U+FF9F : 0x11111111 */
       1,  /* U+FFA0 - U+FFA7 : 0x11111111 */
       1,  /* U+FFA8 - U+FFAF : 0x11111111 */
       1,  /* U+FFB0 - U+FFB7 : 0x11111111 */
       1,  /* U+FFB8 - U+FFBF : 0x11111111 */
       1,  /* U+FFC0 - U+FFC7 : 0x11111111 */
       1,  /* U+FFC8 - U+FFCF : 0x11111111 */
       1,  /* U+FFD0 - U+FFD7 : 0x11111111 */
       1,  /* U+FFD8 - U+FFDF : 0x11111111 */
-    141,  /* U+FFE0 - U+FFE7 : 0x17799977 */
-    103,  /* U+FFE8 - U+FFEF : 0x19999999 */
+    152,  /* U+FFE0 - U+FFE7 : 0x17799977 */
+    127,  /* U+FFE8 - U+FFEF : 0x19999999 */
       1,  /* U+FFF0 - U+FFF7 : 0x11111111 */
-    142,  /* U+FFF8 - U+FFFF : 0x1199BBB1 */
+    153,  /* U+FFF8 - U+FFFF : 0x11999991 */
 };
 
-static PRUint32 gBidiCatPat[143] = {
+static PRUint32 gBidiCatPat[154] = {
     0x00000000,  /* 0 */
     0x11111111,  /* 1 */
     0x22222222,  /* 2 */
     0x33333333,  /* 3 */
     0x44444444,  /* 4 */
     0x55555555,  /* 5 */
     0x66666666,  /* 6 */
     0x77777777,  /* 7 */
@@ -1756,140 +1907,151 @@ static PRUint32 gBidiCatPat[143] = {
     0xBBBBBBBB,  /* 11 */
     0xCCCCCCCC,  /* 12 */
     0xDDDDDDDD,  /* 13 */
     0xEEEEEEEE,  /* 14 */
     0xFFFFFFFF,  /* 15 */
     0xBBCEDCDB,  /* 16 */
     0xDCCCBBBB,  /* 17 */
     0x9977799E,  /* 18 */
-    0x68787999,  /* 19 */
+    0x88686999,  /* 19 */
     0x99999855,  /* 20 */
     0x11111119,  /* 21 */
     0x99999111,  /* 22 */
     0xB9999111,  /* 23 */
     0xBBCBBBBB,  /* 24 */
     0x99777798,  /* 25 */
-    0x99999199,  /* 26 */
+    0x99B99199,  /* 26 */
     0x99195577,  /* 27 */
     0x99999159,  /* 28 */
     0x91111111,  /* 29 */
     0x11111991,  /* 30 */
     0x99999911,  /* 31 */
     0x99911111,  /* 32 */
-    0x11999999,  /* 33 */
-    0x1AAAAAAA,  /* 34 */
-    0x11111AAA,  /* 35 */
-    0x11991111,  /* 36 */
-    0x19111111,  /* 37 */
-    0x91991111,  /* 38 */
-    0x1AAAA111,  /* 39 */
-    0x111111AA,  /* 40 */
-    0x11111911,  /* 41 */
-    0xAAAAAAA2,  /* 42 */
-    0xAAAAA2AA,  /* 43 */
-    0xA2AAA2AA,  /* 44 */
-    0x222A2AA2,  /* 45 */
-    0x33383333,  /* 46 */
+    0x91999999,  /* 33 */
+    0xAAA11111,  /* 34 */
+    0x11991111,  /* 35 */
+    0x19111111,  /* 36 */
+    0x91991111,  /* 37 */
+    0x1AAAA111,  /* 38 */
+    0x111111AA,  /* 39 */
+    0x11111911,  /* 40 */
+    0xAAAAAAA2,  /* 41 */
+    0xAAAAA2AA,  /* 42 */
+    0xA2AAA2AA,  /* 43 */
+    0x222A2AA2,  /* 44 */
+    0x99383333,  /* 45 */
+    0x33AAAAAA,  /* 46 */
     0xAAAAA333,  /* 47 */
-    0x33AAAAAA,  /* 48 */
+    0x3333333A,  /* 48 */
     0x33344744,  /* 49 */
-    0x3333333A,  /* 50 */
-    0xAA333333,  /* 51 */
+    0xAA333333,  /* 50 */
+    0xAA3AAAAA,  /* 51 */
     0xA33AAAAA,  /* 52 */
     0x33AAAA9A,  /* 53 */
     0x33333355,  /* 54 */
     0xB3333333,  /* 55 */
     0x333333A3,  /* 56 */
     0x33333AAA,  /* 57 */
     0x11111AA1,  /* 58 */
     0x111A1111,  /* 59 */
     0xAAAAAAA1,  /* 60 */
     0x11A1111A,  /* 61 */
     0x111AAAA1,  /* 62 */
     0x1111AA11,  /* 63 */
     0x111111A1,  /* 64 */
     0x11A11111,  /* 65 */
     0x11117711,  /* 66 */
-    0x11111A11,  /* 67 */
-    0xA1111AA1,  /* 68 */
-    0x11AAA11A,  /* 69 */
-    0xA1AAAAA1,  /* 70 */
+    0xA1111AA1,  /* 67 */
+    0x11AAA11A,  /* 68 */
+    0xA1AAAAA1,  /* 69 */
+    0x11111171,  /* 70 */
     0xA11A1111,  /* 71 */
     0x1111AAA1,  /* 72 */
     0x1A111111,  /* 73 */
-    0x1111111A,  /* 74 */
-    0xAA111111,  /* 75 */
-    0xAA11111A,  /* 76 */
-    0x11AAAA1A,  /* 77 */
-    0x1AA11111,  /* 78 */
-    0xA1111111,  /* 79 */
-    0x11AA1111,  /* 80 */
-    0x1A1AAA11,  /* 81 */
-    0xAAAA11A1,  /* 82 */
-    0x71111AAA,  /* 83 */
-    0x111AA1AA,  /* 84 */
-    0x11AAAAAA,  /* 85 */
-    0xA1A11111,  /* 86 */
-    0x119999A1,  /* 87 */
-    0xAA1AAAAA,  /* 88 */
-    0x111AAAAA,  /* 89 */
-    0xAAA11111,  /* 90 */
-    0xAA111A1A,  /* 91 */
-    0x1111111E,  /* 92 */
-    0x11199111,  /* 93 */
-    0x1111AAAA,  /* 94 */
-    0x11117111,  /* 95 */
-    0x1BBBB999,  /* 96 */
-    0x91911111,  /* 97 */
-    0x11111199,  /* 98 */
-    0x19911111,  /* 99 */
-    0x21BBBEEE,  /* 100 */
-    0xEFFFFFCE,  /* 101 */
-    0x99977777,  /* 102 */
-    0x19999999,  /* 103 */
-    0xBBBBBB11,  /* 104 */
-    0x55551115,  /* 105 */
-    0x19997755,  /* 106 */
-    0x19999199,  /* 107 */
-    0x99191111,  /* 108 */
-    0x99111119,  /* 109 */
-    0x91919999,  /* 110 */
-    0x17111191,  /* 111 */
-    0x11119999,  /* 112 */
-    0x99997799,  /* 113 */
-    0x99919111,  /* 114 */
-    0x99199999,  /* 115 */
-    0x11111999,  /* 116 */
-    0x11115555,  /* 117 */
-    0x11111511,  /* 118 */
-    0x99999991,  /* 119 */
-    0x99199991,  /* 120 */
-    0x99991199,  /* 121 */
-    0x19111999,  /* 122 */
-    0x99111111,  /* 123 */
-    0x11199999,  /* 124 */
-    0x1119999E,  /* 125 */
-    0xAAAAAA11,  /* 126 */
-    0x11199AA1,  /* 127 */
-    0x11119111,  /* 128 */
-    0x99919999,  /* 129 */
-    0x19199919,  /* 130 */
-    0x2A211111,  /* 131 */
-    0x22222272,  /* 132 */
-    0x99333333,  /* 133 */
-    0x99891898,  /* 134 */
-    0x79999999,  /* 135 */
-    0x19997799,  /* 136 */
-    0x11119779,  /* 137 */
-    0x99777991,  /* 138 */
-    0x19999111,  /* 139 */
-    0x11999991,  /* 140 */
-    0x17799977,  /* 141 */
-    0x1199BBB1,  /* 142 */
+    0x11111A11,  /* 74 */
+    0x1111111A,  /* 75 */
+    0x11111979,  /* 76 */
+    0xAA111111,  /* 77 */
+    0xAA11111A,  /* 78 */
+    0x11AAAA1A,  /* 79 */
+    0x1AA11111,  /* 80 */
+    0x11AA1111,  /* 81 */
+    0x1A1AAA11,  /* 82 */
+    0xAAAA11A1,  /* 83 */
+    0x71111AAA,  /* 84 */
+    0xA1111111,  /* 85 */
+    0x1AAAAAAA,  /* 86 */
+    0x111AA1AA,  /* 87 */
+    0x11AAAAAA,  /* 88 */
+    0xA1A11111,  /* 89 */
+    0x119999A1,  /* 90 */
+    0xAA1AAAAA,  /* 91 */
+    0x111AAAAA,  /* 92 */
+    0xAA111A1A,  /* 93 */
+    0x1111111E,  /* 94 */
+    0x11199111,  /* 95 */
+    0x111AAA11,  /* 96 */
+    0x1111AAAA,  /* 97 */
+    0x11A17111,  /* 98 */
+    0x11111199,  /* 99 */
+    0x1EAAA999,  /* 100 */
+    0xA1111AAA,  /* 101 */
+    0x11991119,  /* 102 */
+    0x91911111,  /* 103 */
+    0x19911111,  /* 104 */
+    0x21BBBEEE,  /* 105 */
+    0xEFFFFFCE,  /* 106 */
+    0x99977777,  /* 107 */
+    0x99989999,  /* 108 */
+    0x91199999,  /* 109 */
+    0xE1111111,  /* 110 */
+    0x1111BBBB,  /* 111 */
+    0xBBBBBB11,  /* 112 */
+    0x55551115,  /* 113 */
+    0x19997755,  /* 114 */
+    0x11111177,  /* 115 */
+    0x11111AAA,  /* 116 */
+    0x19999199,  /* 117 */
+    0x99191111,  /* 118 */
+    0x99111119,  /* 119 */
+    0x91919999,  /* 120 */
+    0x17111191,  /* 121 */
+    0x11119911,  /* 122 */
+    0x11199999,  /* 123 */
+    0x99997799,  /* 124 */
+    0x11999999,  /* 125 */
+    0x99199999,  /* 126 */
+    0x19999999,  /* 127 */
+    0x11111999,  /* 128 */
+    0x11115555,  /* 129 */
+    0x99999991,  /* 130 */
+    0x99199991,  /* 131 */
+    0x99991199,  /* 132 */
+    0x19111999,  /* 133 */
+    0x11119999,  /* 134 */
+    0x99999199,  /* 135 */
+    0x1119999E,  /* 136 */
+    0xAAAAAA11,  /* 137 */
+    0x11199AA1,  /* 138 */
+    0x11119111,  /* 139 */
+    0x99991111,  /* 140 */
+    0x99111111,  /* 141 */
+    0x2A211111,  /* 142 */
+    0x22222272,  /* 143 */
+    0x99333333,  /* 144 */
+    0x33933333,  /* 145 */
+    0x99891898,  /* 146 */
+    0x79999999,  /* 147 */
+    0x19997799,  /* 148 */
+    0x11119779,  /* 149 */
+    0x99777991,  /* 150 */
+    0x68787999,  /* 151 */
+    0x17799977,  /* 152 */
+    0x11999991,  /* 153 */
 };
 
 static eBidiCategory GetBidiCat(PRUnichar u)
 {
     PRUint32 pat;
     PRUint16 patidx;
 
     /*  Handle blocks which use index table mapping */   
@@ -1900,30 +2062,30 @@ static eBidiCategory GetBidiCat(PRUnicha
         if (patidx < 0x10)
             return (eBidiCategory)patidx;
         else {
             pat = gBidiCatPat[patidx];
             return (eBidiCategory)((pat  >> ((u % 8) * 4)) & 0x0F);
         }
     }
 
-    /* Handle U+0900 to U+18FF */
-    if ((((PRUnichar)0x0900)<=u)&&(u<=((PRUnichar)0x18FF))) {
+    /* Handle U+0900 to U+19FF */
+    if ((((PRUnichar)0x0900)<=u)&&(u<=((PRUnichar)0x19FF))) {
         patidx = gBidiCatIdx2 [( (u -(PRUnichar) 0x0900) >> 3 )];
         if (patidx < 0x10)
             return (eBidiCategory)patidx;
         else {
             pat = gBidiCatPat[patidx];
             return (eBidiCategory)((pat  >> ((u % 8) * 4)) & 0x0F);
         }
     }
 
-    /* Handle U+1E00 to U+28FF */
-    if ((((PRUnichar)0x1E00)<=u)&&(u<=((PRUnichar)0x28FF))) {
-        patidx = gBidiCatIdx3 [( (u -(PRUnichar) 0x1E00) >> 3 )];
+    /* Handle U+1D00 to U+2BFF */
+    if ((((PRUnichar)0x1D00)<=u)&&(u<=((PRUnichar)0x2BFF))) {
+        patidx = gBidiCatIdx3 [( (u -(PRUnichar) 0x1D00) >> 3 )];
         if (patidx < 0x10)
             return (eBidiCategory)patidx;
         else {
             pat = gBidiCatPat[patidx];
             return (eBidiCategory)((pat  >> ((u % 8) * 4)) & 0x0F);
         }
     }
 
@@ -1933,33 +2095,44 @@ static eBidiCategory GetBidiCat(PRUnicha
         if (patidx < 0x10)
             return (eBidiCategory)patidx;
         else {
             pat = gBidiCatPat[patidx];
             return (eBidiCategory)((pat  >> ((u % 8) * 4)) & 0x0F);
         }
     }
 
+    /* Handle U+4DC0 to U+4DFF */
+    if ((((PRUnichar)0x4DC0)<=u)&&(u<=((PRUnichar)0x4DFF))) {
+        patidx = gBidiCatIdx5 [( (u -(PRUnichar) 0x4DC0) >> 3 )];
+        if (patidx < 0x10)
+            return (eBidiCategory)patidx;
+        else {
+            pat = gBidiCatPat[patidx];
+            return (eBidiCategory)((pat  >> ((u % 8) * 4)) & 0x0F);
+        }
+    }
+
     /* Handle U+A000 to U+A4FF */
     if ((((PRUnichar)0xA000)<=u)&&(u<=((PRUnichar)0xA4FF))) {
-        patidx = gBidiCatIdx5 [( (u -(PRUnichar) 0xA000) >> 3 )];
+        patidx = gBidiCatIdx6 [( (u -(PRUnichar) 0xA000) >> 3 )];
         if (patidx < 0x10)
             return (eBidiCategory)patidx;
         else {
             pat = gBidiCatPat[patidx];
             return (eBidiCategory)((pat  >> ((u % 8) * 4)) & 0x0F);
         }
     }
 
     /* Handle U+F900 to U+FFFF */
     if (((PRUnichar)0xF900)<=u) {
-        patidx = gBidiCatIdx6 [( (u -(PRUnichar) 0xF900) >> 3 )];
+        patidx = gBidiCatIdx7 [( (u -(PRUnichar) 0xF900) >> 3 )];
         if (patidx < 0x10)
             return (eBidiCategory)patidx;
         else {
             pat = gBidiCatPat[patidx];
             return (eBidiCategory)((pat  >> ((u % 8) * 4)) & 0x0F);
         }
     }
 
     return eBidiCat_L; /* UNDEFINE = L */
 }
-/* total data size = 2252 */
+/* total data size = 2464 */