]> Cypherpunks repositories - gostls13.git/commitdiff
unicode: upgrade to 8.0.0
authorMarcel van Lohuizen <mpvl@golang.org>
Sun, 21 Jun 2015 18:21:04 +0000 (20:21 +0200)
committerRuss Cox <rsc@golang.org>
Fri, 26 Jun 2015 18:01:29 +0000 (18:01 +0000)
Not sure if I'm on time for 1.5; Unicode 8 just got released.

Straighforward upgrade. Only changed maketables.go to prevent it from adding
the Cherokee upper and lower case mappings. This change causes the caseOrbit
table to NOT change. Added tests to verify that the relevant functions still
produce the correct result, even for Cherokee.

Fixes #11309

Change-Id: I42850f5b3399bde125b002efc78eff96dbd86a08
Reviewed-on: https://go-review.googlesource.com/11286
Reviewed-by: Russ Cox <rsc@golang.org>
api/except.txt
api/next.txt
src/strconv/isprint.go
src/unicode/letter_test.go
src/unicode/maketables.go
src/unicode/script_test.go
src/unicode/tables.go

index 6e40e1844ee5d71eee0353def0d948f54f6f4c5c..59ef94211db55a67b8e38e411faf7d6709337347 100644 (file)
@@ -328,3 +328,4 @@ pkg syscall (netbsd-arm), type IfMsghdr struct, Pad_cgo_1 [4]uint8
 pkg syscall (netbsd-arm-cgo), const SizeofIfData = 132
 pkg syscall (netbsd-arm-cgo), type IfMsghdr struct, Pad_cgo_1 [4]uint8
 pkg unicode, const Version = "6.3.0"
+pkg unicode, const Version = "7.0.0"
index b8e09df5c203a19ff535278420efb7afc0f22151..7fa2508b8b8498f3001fed66a2f753ba765276cf 100644 (file)
@@ -948,3 +948,10 @@ pkg syscall (openbsd-amd64-cgo), type SysProcAttr struct, Pgid int
 pkg text/template, method (*Template) DefinedTemplates() string
 pkg text/template, method (*Template) Option(...string) *Template
 pkg time, method (Time) AppendFormat([]uint8, string) []uint8
+pkg unicode, const Version = "8.0.0"
+pkg unicode, var Ahom *RangeTable
+pkg unicode, var Anatolian_Hieroglyphs *RangeTable
+pkg unicode, var Hatran *RangeTable
+pkg unicode, var Multani *RangeTable
+pkg unicode, var Old_Hungarian *RangeTable
+pkg unicode, var SignWriting *RangeTable
index 80738ed71117231b771f1fdb26db0b85cf66ef01..0cf363c699ed3ea88b6284f8f363e6a8a06c3d15 100644 (file)
@@ -7,7 +7,7 @@
 
 package strconv
 
-// (468+138+67)*2 + (326)*4 = 2650 bytes
+// (470+136+73)*2 + (342)*4 = 2726 bytes
 
 var isPrint16 = []uint16{
        0x0020, 0x007e,
@@ -26,8 +26,8 @@ var isPrint16 = []uint16{
        0x0800, 0x082d,
        0x0830, 0x085b,
        0x085e, 0x085e,
-       0x08a0, 0x08b2,
-       0x08e4, 0x098c,
+       0x08a0, 0x08b4,
+       0x08e3, 0x098c,
        0x098f, 0x0990,
        0x0993, 0x09b2,
        0x09b6, 0x09b9,
@@ -51,6 +51,7 @@ var isPrint16 = []uint16{
        0x0ad0, 0x0ad0,
        0x0ae0, 0x0ae3,
        0x0ae6, 0x0af1,
+       0x0af9, 0x0af9,
        0x0b01, 0x0b0c,
        0x0b0f, 0x0b10,
        0x0b13, 0x0b39,
@@ -73,7 +74,7 @@ var isPrint16 = []uint16{
        0x0be6, 0x0bfa,
        0x0c00, 0x0c39,
        0x0c3d, 0x0c4d,
-       0x0c55, 0x0c59,
+       0x0c55, 0x0c5a,
        0x0c60, 0x0c63,
        0x0c66, 0x0c6f,
        0x0c78, 0x0cb9,
@@ -84,7 +85,7 @@ var isPrint16 = []uint16{
        0x0d01, 0x0d3a,
        0x0d3d, 0x0d4e,
        0x0d57, 0x0d57,
-       0x0d60, 0x0d63,
+       0x0d5f, 0x0d63,
        0x0d66, 0x0d75,
        0x0d79, 0x0d7f,
        0x0d82, 0x0d96,
@@ -117,7 +118,8 @@ var isPrint16 = []uint16{
        0x1318, 0x135a,
        0x135d, 0x137c,
        0x1380, 0x1399,
-       0x13a0, 0x13f4,
+       0x13a0, 0x13f5,
+       0x13f8, 0x13fd,
        0x1400, 0x169c,
        0x16a0, 0x16f8,
        0x1700, 0x1714,
@@ -167,9 +169,9 @@ var isPrint16 = []uint16{
        0x2030, 0x205e,
        0x2070, 0x2071,
        0x2074, 0x209c,
-       0x20a0, 0x20bd,
+       0x20a0, 0x20be,
        0x20d0, 0x20f0,
-       0x2100, 0x2189,
+       0x2100, 0x218b,
        0x2190, 0x23fa,
        0x2400, 0x2426,
        0x2440, 0x244a,
@@ -177,6 +179,7 @@ var isPrint16 = []uint16{
        0x2b76, 0x2b95,
        0x2b98, 0x2bb9,
        0x2bbd, 0x2bd1,
+       0x2bec, 0x2bef,
        0x2c00, 0x2cf3,
        0x2cf9, 0x2d27,
        0x2d2d, 0x2d2d,
@@ -193,19 +196,19 @@ var isPrint16 = []uint16{
        0x3131, 0x31ba,
        0x31c0, 0x31e3,
        0x31f0, 0x4db5,
-       0x4dc0, 0x9fcc,
+       0x4dc0, 0x9fd5,
        0xa000, 0xa48c,
        0xa490, 0xa4c6,
        0xa4d0, 0xa62b,
        0xa640, 0xa6f7,
        0xa700, 0xa7ad,
-       0xa7b0, 0xa7b1,
+       0xa7b0, 0xa7b7,
        0xa7f7, 0xa82b,
        0xa830, 0xa839,
        0xa840, 0xa877,
        0xa880, 0xa8c4,
        0xa8ce, 0xa8d9,
-       0xa8e0, 0xa8fb,
+       0xa8e0, 0xa8fd,
        0xa900, 0xa953,
        0xa95f, 0xa97c,
        0xa980, 0xa9d9,
@@ -217,9 +220,8 @@ var isPrint16 = []uint16{
        0xab01, 0xab06,
        0xab09, 0xab0e,
        0xab11, 0xab16,
-       0xab20, 0xab5f,
-       0xab64, 0xab65,
-       0xabc0, 0xabed,
+       0xab20, 0xab65,
+       0xab70, 0xabed,
        0xabf0, 0xabf9,
        0xac00, 0xd7a3,
        0xd7b0, 0xd7c6,
@@ -234,8 +236,7 @@ var isPrint16 = []uint16{
        0xfd92, 0xfdc7,
        0xfdf0, 0xfdfd,
        0xfe00, 0xfe19,
-       0xfe20, 0xfe2d,
-       0xfe30, 0xfe6b,
+       0xfe20, 0xfe6b,
        0xfe70, 0xfefc,
        0xff01, 0xffbe,
        0xffc2, 0xffc7,
@@ -370,8 +371,6 @@ var isNotPrint16 = []uint16{
        0x318f,
        0x321f,
        0x32ff,
-       0xa69e,
-       0xa78f,
        0xa9ce,
        0xa9ff,
        0xab27,
@@ -418,12 +417,13 @@ var isPrint32 = []uint32{
        0x01083c, 0x01083c,
        0x01083f, 0x01089e,
        0x0108a7, 0x0108af,
-       0x010900, 0x01091b,
+       0x0108e0, 0x0108f5,
+       0x0108fb, 0x01091b,
        0x01091f, 0x010939,
        0x01093f, 0x01093f,
        0x010980, 0x0109b7,
-       0x0109be, 0x0109bf,
-       0x010a00, 0x010a06,
+       0x0109bc, 0x0109cf,
+       0x0109d2, 0x010a06,
        0x010a0c, 0x010a33,
        0x010a38, 0x010a3a,
        0x010a3f, 0x010a47,
@@ -438,6 +438,9 @@ var isPrint32 = []uint32{
        0x010b99, 0x010b9c,
        0x010ba9, 0x010baf,
        0x010c00, 0x010c48,
+       0x010c80, 0x010cb2,
+       0x010cc0, 0x010cf2,
+       0x010cfa, 0x010cff,
        0x010e60, 0x010e7e,
        0x011000, 0x01104d,
        0x011052, 0x01106f,
@@ -446,19 +449,19 @@ var isPrint32 = []uint32{
        0x0110f0, 0x0110f9,
        0x011100, 0x011143,
        0x011150, 0x011176,
-       0x011180, 0x0111c8,
-       0x0111cd, 0x0111cd,
-       0x0111d0, 0x0111da,
-       0x0111e1, 0x0111f4,
+       0x011180, 0x0111cd,
+       0x0111d0, 0x0111f4,
        0x011200, 0x01123d,
+       0x011280, 0x0112a9,
        0x0112b0, 0x0112ea,
        0x0112f0, 0x0112f9,
-       0x011301, 0x01130c,
+       0x011300, 0x01130c,
        0x01130f, 0x011310,
        0x011313, 0x011339,
        0x01133c, 0x011344,
        0x011347, 0x011348,
        0x01134b, 0x01134d,
+       0x011350, 0x011350,
        0x011357, 0x011357,
        0x01135d, 0x011363,
        0x011366, 0x01136c,
@@ -466,17 +469,22 @@ var isPrint32 = []uint32{
        0x011480, 0x0114c7,
        0x0114d0, 0x0114d9,
        0x011580, 0x0115b5,
-       0x0115b8, 0x0115c9,
+       0x0115b8, 0x0115dd,
        0x011600, 0x011644,
        0x011650, 0x011659,
        0x011680, 0x0116b7,
        0x0116c0, 0x0116c9,
+       0x011700, 0x011719,
+       0x01171d, 0x01172b,
+       0x011730, 0x01173f,
        0x0118a0, 0x0118f2,
        0x0118ff, 0x0118ff,
        0x011ac0, 0x011af8,
-       0x012000, 0x012398,
+       0x012000, 0x012399,
        0x012400, 0x012474,
+       0x012480, 0x012543,
        0x013000, 0x01342e,
+       0x014400, 0x014646,
        0x016800, 0x016a38,
        0x016a40, 0x016a69,
        0x016a6e, 0x016a6f,
@@ -497,7 +505,7 @@ var isPrint32 = []uint32{
        0x01d000, 0x01d0f5,
        0x01d100, 0x01d126,
        0x01d129, 0x01d172,
-       0x01d17b, 0x01d1dd,
+       0x01d17b, 0x01d1e8,
        0x01d200, 0x01d245,
        0x01d300, 0x01d356,
        0x01d360, 0x01d371,
@@ -508,7 +516,8 @@ var isPrint32 = []uint32{
        0x01d50d, 0x01d546,
        0x01d54a, 0x01d6a5,
        0x01d6a8, 0x01d7cb,
-       0x01d7ce, 0x01d7ff,
+       0x01d7ce, 0x01da8b,
+       0x01da9b, 0x01daaf,
        0x01e800, 0x01e8c4,
        0x01e8c7, 0x01e8d6,
        0x01ee00, 0x01ee24,
@@ -530,13 +539,7 @@ var isPrint32 = []uint32{
        0x01f210, 0x01f23a,
        0x01f240, 0x01f248,
        0x01f250, 0x01f251,
-       0x01f300, 0x01f32c,
-       0x01f330, 0x01f37d,
-       0x01f380, 0x01f3ce,
-       0x01f3d4, 0x01f3f7,
-       0x01f400, 0x01f54a,
-       0x01f550, 0x01f642,
-       0x01f645, 0x01f6cf,
+       0x01f300, 0x01f6d0,
        0x01f6e0, 0x01f6ec,
        0x01f6f0, 0x01f6f3,
        0x01f700, 0x01f773,
@@ -546,9 +549,13 @@ var isPrint32 = []uint32{
        0x01f850, 0x01f859,
        0x01f860, 0x01f887,
        0x01f890, 0x01f8ad,
+       0x01f910, 0x01f918,
+       0x01f980, 0x01f984,
+       0x01f9c0, 0x01f9c0,
        0x020000, 0x02a6d6,
        0x02a700, 0x02b734,
        0x02b740, 0x02b81d,
+       0x02b820, 0x02cea1,
        0x02f800, 0x02fa1d,
        0x0e0100, 0x0e01ef,
 }
@@ -562,12 +569,18 @@ var isNotPrint32 = []uint16{ // add 0x10000 to each entry
        0x0809,
        0x0836,
        0x0856,
+       0x08f3,
        0x0a04,
        0x0a14,
        0x0a18,
        0x10bd,
        0x1135,
+       0x11e0,
        0x1212,
+       0x1287,
+       0x1289,
+       0x128e,
+       0x129e,
        0x1304,
        0x1329,
        0x1331,
@@ -589,6 +602,7 @@ var isNotPrint32 = []uint16{ // add 0x10000 to each entry
        0xd53f,
        0xd545,
        0xd551,
+       0xdaa0,
        0xee04,
        0xee20,
        0xee23,
@@ -618,7 +632,6 @@ var isNotPrint32 = []uint16{ // add 0x10000 to each entry
        0xf0c0,
        0xf0d0,
        0xf12f,
-       0xf4ff,
        0xf57a,
        0xf5a4,
 }
index 4ee11fb364f58dab8ea41e237651992473977fe1..a40b412f66dd17d5d152436320a24feb98839271 100644 (file)
@@ -24,6 +24,7 @@ var upperTest = []rune{
        0x181,
        0x376,
        0x3cf,
+       0x13bd,
        0x1f2a,
        0x2102,
        0x2c00,
@@ -46,6 +47,7 @@ var notupperTest = []rune{
        0x377,
        0x387,
        0x2150,
+       0xab7d,
        0xffff,
        0x10000,
 }
@@ -194,6 +196,15 @@ var caseTest = []caseT{
        {LowerCase, 0x0148, 0x0148},
        {TitleCase, 0x0148, 0x0147},
 
+       // Lowercase lower than uppercase.
+       // AB78;CHEROKEE SMALL LETTER GE;Ll;0;L;;;;;N;;;13A8;;13A8
+       {UpperCase, 0xab78, 0x13a8},
+       {LowerCase, 0xab78, 0xab78},
+       {TitleCase, 0xab78, 0x13a8},
+       {UpperCase, 0x13a8, 0x13a8},
+       {LowerCase, 0x13a8, 0xab78},
+       {TitleCase, 0x13a8, 0x13a8},
+
        // Last block in the 5.1.0 table
        // 10400;DESERET CAPITAL LETTER LONG I;Lu;0;L;;;;;N;;;;10428;
        {UpperCase, 0x10400, 0x10400},
@@ -405,6 +416,9 @@ var simpleFoldTests = []string{
        // Extra special cases: has lower/upper but no case fold.
        "İ",
        "ı",
+
+       // Upper comes before lower (Cherokee).
+       "\u13b0\uab80",
 }
 
 func TestSimpleFold(t *testing.T) {
index d1c9aa04aeb4f58a1b06ead5d18ddbdddb61a46a..9fccdecafaed67d90e7282c7c72a37f372634591 100644 (file)
@@ -44,7 +44,7 @@ func main() {
 var dataURL = flag.String("data", "", "full URL for UnicodeData.txt; defaults to --url/UnicodeData.txt")
 var casefoldingURL = flag.String("casefolding", "", "full URL for CaseFolding.txt; defaults to --url/CaseFolding.txt")
 var url = flag.String("url",
-       "http://www.unicode.org/Public/7.0.0/ucd/",
+       "http://www.unicode.org/Public/8.0.0/ucd/",
        "URL of Unicode database directory")
 var tablelist = flag.String("tables",
        "all",
@@ -1152,11 +1152,14 @@ func printCasefold() {
                }
        }
 
-       // Delete the groups for which assuming [lower, upper] is right.
+       // Delete the groups for which assuming [lower, upper] or [upper, lower] is right.
        for i, orb := range caseOrbit {
                if len(orb) == 2 && chars[orb[0]].upperCase == orb[1] && chars[orb[1]].lowerCase == orb[0] {
                        caseOrbit[i] = nil
                }
+               if len(orb) == 2 && chars[orb[1]].upperCase == orb[0] && chars[orb[0]].lowerCase == orb[1] {
+                       caseOrbit[i] = nil
+               }
        }
 
        // Record orbit information in chars.
index 795cb4e171b85a6eb35aca2a9489d234bbd77e5b..935c225c376172772cbac65d7f2ea07c2aee85bc 100644 (file)
@@ -14,9 +14,11 @@ type T struct {
        script string
 }
 
-// Hand-chosen tests from Unicode 5.1.0, 6.0.0, 6.2.0, 6.3.0 and 7.0.0 mostly to
-// discover when new scripts and categories arise.
+// Hand-chosen tests from Unicode 5.1.0, 6.0.0, 6.2.0, 6.3.0, 7.0.0 and 8.0.0
+// mostly to discover when new scripts and categories arise.
 var inTest = []T{
+       {0x11711, "Ahom"},
+       {0x14646, "Anatolian_Hieroglyphs"},
        {0x06e2, "Arabic"},
        {0x0567, "Armenian"},
        {0x10b20, "Avestan"},
@@ -58,6 +60,7 @@ var inTest = []T{
        {0x3028, "Han"},
        {0x11b8, "Hangul"},
        {0x1727, "Hanunoo"},
+       {0x108FF, "Hatran"},
        {0x05a0, "Hebrew"},
        {0x3058, "Hiragana"},
        {0x10841, "Imperial_Aramaic"},
@@ -94,12 +97,14 @@ var inTest = []T{
        {0x11611, "Modi"},
        {0x1822, "Mongolian"},
        {0x16a60, "Mro"},
+       {0x11293, "Multani"},
        {0x104c, "Myanmar"},
        {0x10880, "Nabataean"},
        {0x19c3, "New_Tai_Lue"},
        {0x07f8, "Nko"},
        {0x169b, "Ogham"},
        {0x1c6a, "Ol_Chiki"},
+       {0x10C80, "Old_Hungarian"},
        {0x10310, "Old_Italic"},
        {0x10a80, "Old_North_Arabian"},
        {0x10350, "Old_Permic"},
@@ -121,6 +126,7 @@ var inTest = []T{
        {0x111a0, "Sharada"},
        {0x10463, "Shavian"},
        {0x115c1, "Siddham"},
+       {0x1D920, "SignWriting"},
        {0x0dbd, "Sinhala"},
        {0x110d0, "Sora_Sompeng"},
        {0x1ba3, "Sundanese"},
index 8b77dd6036bd8246e48768b6bcca69b6486c9abf..370a9d1174d7bdedace49bdb05370b21101f09d2 100644 (file)
@@ -3,13 +3,13 @@
 // license that can be found in the LICENSE file.
 
 // Generated by running
-//     maketables --tables=all --data=http://www.unicode.org/Public/7.0.0/ucd/UnicodeData.txt --casefolding=http://www.unicode.org/Public/7.0.0/ucd/CaseFolding.txt
+//     maketables --tables=all --data=http://www.unicode.org/Public/8.0.0/ucd/UnicodeData.txt --casefolding=http://www.unicode.org/Public/8.0.0/ucd/CaseFolding.txt
 // DO NOT EDIT
 
 package unicode
 
 // Version is the Unicode edition from which the tables are derived.
-const Version = "7.0.0"
+const Version = "8.0.0"
 
 // Categories is the set of Unicode category tables.
 var Categories = map[string]*RangeTable{
@@ -170,7 +170,7 @@ var _L = &RangeTable{
                {0x081a, 0x0824, 10},
                {0x0828, 0x0840, 24},
                {0x0841, 0x0858, 1},
-               {0x08a0, 0x08b2, 1},
+               {0x08a0, 0x08b4, 1},
                {0x0904, 0x0939, 1},
                {0x093d, 0x0950, 19},
                {0x0958, 0x0961, 1},
@@ -203,7 +203,8 @@ var _L = &RangeTable{
                {0x0ab5, 0x0ab9, 1},
                {0x0abd, 0x0ad0, 19},
                {0x0ae0, 0x0ae1, 1},
-               {0x0b05, 0x0b0c, 1},
+               {0x0af9, 0x0b05, 12},
+               {0x0b06, 0x0b0c, 1},
                {0x0b0f, 0x0b10, 1},
                {0x0b13, 0x0b28, 1},
                {0x0b2a, 0x0b30, 1},
@@ -228,9 +229,9 @@ var _L = &RangeTable{
                {0x0c12, 0x0c28, 1},
                {0x0c2a, 0x0c39, 1},
                {0x0c3d, 0x0c58, 27},
-               {0x0c59, 0x0c60, 7},
-               {0x0c61, 0x0c85, 36},
-               {0x0c86, 0x0c8c, 1},
+               {0x0c59, 0x0c5a, 1},
+               {0x0c60, 0x0c61, 1},
+               {0x0c85, 0x0c8c, 1},
                {0x0c8e, 0x0c90, 1},
                {0x0c92, 0x0ca8, 1},
                {0x0caa, 0x0cb3, 1},
@@ -241,7 +242,7 @@ var _L = &RangeTable{
                {0x0d05, 0x0d0c, 1},
                {0x0d0e, 0x0d10, 1},
                {0x0d12, 0x0d3a, 1},
-               {0x0d3d, 0x0d4e, 17},
+               {0x0d3d, 0x0d5f, 17},
                {0x0d60, 0x0d61, 1},
                {0x0d7a, 0x0d7f, 1},
                {0x0d85, 0x0d96, 1},
@@ -300,7 +301,8 @@ var _L = &RangeTable{
                {0x1312, 0x1315, 1},
                {0x1318, 0x135a, 1},
                {0x1380, 0x138f, 1},
-               {0x13a0, 0x13f4, 1},
+               {0x13a0, 0x13f5, 1},
+               {0x13f8, 0x13fd, 1},
                {0x1401, 0x166c, 1},
                {0x166f, 0x167f, 1},
                {0x1681, 0x169a, 1},
@@ -322,7 +324,7 @@ var _L = &RangeTable{
                {0x1950, 0x196d, 1},
                {0x1970, 0x1974, 1},
                {0x1980, 0x19ab, 1},
-               {0x19c1, 0x19c7, 1},
+               {0x19b0, 0x19c9, 1},
                {0x1a00, 0x1a16, 1},
                {0x1a20, 0x1a54, 1},
                {0x1aa7, 0x1b05, 94},
@@ -399,7 +401,7 @@ var _L = &RangeTable{
                {0x31a0, 0x31ba, 1},
                {0x31f0, 0x31ff, 1},
                {0x3400, 0x4db5, 1},
-               {0x4e00, 0x9fcc, 1},
+               {0x4e00, 0x9fd5, 1},
                {0xa000, 0xa48c, 1},
                {0xa4d0, 0xa4fd, 1},
                {0xa500, 0xa60c, 1},
@@ -410,9 +412,8 @@ var _L = &RangeTable{
                {0xa6a0, 0xa6e5, 1},
                {0xa717, 0xa71f, 1},
                {0xa722, 0xa788, 1},
-               {0xa78b, 0xa78e, 1},
-               {0xa790, 0xa7ad, 1},
-               {0xa7b0, 0xa7b1, 1},
+               {0xa78b, 0xa7ad, 1},
+               {0xa7b0, 0xa7b7, 1},
                {0xa7f7, 0xa801, 1},
                {0xa803, 0xa805, 1},
                {0xa807, 0xa80a, 1},
@@ -420,8 +421,8 @@ var _L = &RangeTable{
                {0xa840, 0xa873, 1},
                {0xa882, 0xa8b3, 1},
                {0xa8f2, 0xa8f7, 1},
-               {0xa8fb, 0xa90a, 15},
-               {0xa90b, 0xa925, 1},
+               {0xa8fb, 0xa8fd, 2},
+               {0xa90a, 0xa925, 1},
                {0xa930, 0xa946, 1},
                {0xa960, 0xa97c, 1},
                {0xa984, 0xa9b2, 1},
@@ -448,9 +449,8 @@ var _L = &RangeTable{
                {0xab20, 0xab26, 1},
                {0xab28, 0xab2e, 1},
                {0xab30, 0xab5a, 1},
-               {0xab5c, 0xab5f, 1},
-               {0xab64, 0xab65, 1},
-               {0xabc0, 0xabe2, 1},
+               {0xab5c, 0xab65, 1},
+               {0xab70, 0xabe2, 1},
                {0xac00, 0xd7a3, 1},
                {0xd7b0, 0xd7c6, 1},
                {0xd7cb, 0xd7fb, 1},
@@ -511,6 +511,8 @@ var _L = &RangeTable{
                {0x10840, 0x10855, 1},
                {0x10860, 0x10876, 1},
                {0x10880, 0x1089e, 1},
+               {0x108e0, 0x108f2, 1},
+               {0x108f4, 0x108f5, 1},
                {0x10900, 0x10915, 1},
                {0x10920, 0x10939, 1},
                {0x10980, 0x109b7, 1},
@@ -528,6 +530,8 @@ var _L = &RangeTable{
                {0x10b60, 0x10b72, 1},
                {0x10b80, 0x10b91, 1},
                {0x10c00, 0x10c48, 1},
+               {0x10c80, 0x10cb2, 1},
+               {0x10cc0, 0x10cf2, 1},
                {0x11003, 0x11037, 1},
                {0x11083, 0x110af, 1},
                {0x110d0, 0x110e8, 1},
@@ -536,9 +540,14 @@ var _L = &RangeTable{
                {0x11176, 0x11183, 13},
                {0x11184, 0x111b2, 1},
                {0x111c1, 0x111c4, 1},
-               {0x111da, 0x11200, 38},
-               {0x11201, 0x11211, 1},
+               {0x111da, 0x111dc, 2},
+               {0x11200, 0x11211, 1},
                {0x11213, 0x1122b, 1},
+               {0x11280, 0x11286, 1},
+               {0x11288, 0x1128a, 2},
+               {0x1128b, 0x1128d, 1},
+               {0x1128f, 0x1129d, 1},
+               {0x1129f, 0x112a8, 1},
                {0x112b0, 0x112de, 1},
                {0x11305, 0x1130c, 1},
                {0x1130f, 0x11310, 1},
@@ -546,20 +555,24 @@ var _L = &RangeTable{
                {0x1132a, 0x11330, 1},
                {0x11332, 0x11333, 1},
                {0x11335, 0x11339, 1},
-               {0x1133d, 0x1135d, 32},
-               {0x1135e, 0x11361, 1},
+               {0x1133d, 0x11350, 19},
+               {0x1135d, 0x11361, 1},
                {0x11480, 0x114af, 1},
                {0x114c4, 0x114c5, 1},
                {0x114c7, 0x11580, 185},
                {0x11581, 0x115ae, 1},
+               {0x115d8, 0x115db, 1},
                {0x11600, 0x1162f, 1},
                {0x11644, 0x11680, 60},
                {0x11681, 0x116aa, 1},
+               {0x11700, 0x11719, 1},
                {0x118a0, 0x118df, 1},
                {0x118ff, 0x11ac0, 449},
                {0x11ac1, 0x11af8, 1},
-               {0x12000, 0x12398, 1},
+               {0x12000, 0x12399, 1},
+               {0x12480, 0x12543, 1},
                {0x13000, 0x1342e, 1},
+               {0x14400, 0x14646, 1},
                {0x16800, 0x16a38, 1},
                {0x16a40, 0x16a5e, 1},
                {0x16ad0, 0x16aed, 1},
@@ -633,6 +646,7 @@ var _L = &RangeTable{
                {0x20000, 0x2a6d6, 1},
                {0x2a700, 0x2b734, 1},
                {0x2b740, 0x2b81d, 1},
+               {0x2b820, 0x2cea1, 1},
                {0x2f800, 0x2fa1d, 1},
        },
        LatinOffset: 6,
@@ -691,6 +705,7 @@ var _Ll = &RangeTable{
                {0x04c2, 0x04ce, 2},
                {0x04cf, 0x052f, 2},
                {0x0561, 0x0587, 1},
+               {0x13f8, 0x13fd, 1},
                {0x1d00, 0x1d2b, 1},
                {0x1d6b, 0x1d77, 1},
                {0x1d79, 0x1d9a, 1},
@@ -747,15 +762,18 @@ var _Ll = &RangeTable{
                {0xa791, 0xa793, 2},
                {0xa794, 0xa795, 1},
                {0xa797, 0xa7a9, 2},
+               {0xa7b5, 0xa7b7, 2},
                {0xa7fa, 0xab30, 822},
                {0xab31, 0xab5a, 1},
-               {0xab64, 0xab65, 1},
+               {0xab60, 0xab65, 1},
+               {0xab70, 0xabbf, 1},
                {0xfb00, 0xfb06, 1},
                {0xfb13, 0xfb17, 1},
                {0xff41, 0xff5a, 1},
        },
        R32: []Range32{
                {0x10428, 0x1044f, 1},
+               {0x10cc0, 0x10cf2, 1},
                {0x118c0, 0x118df, 1},
                {0x1d41a, 0x1d433, 1},
                {0x1d44e, 0x1d454, 1},
@@ -861,7 +879,7 @@ var _Lo = &RangeTable{
                {0x07cb, 0x07ea, 1},
                {0x0800, 0x0815, 1},
                {0x0840, 0x0858, 1},
-               {0x08a0, 0x08b2, 1},
+               {0x08a0, 0x08b4, 1},
                {0x0904, 0x0939, 1},
                {0x093d, 0x0950, 19},
                {0x0958, 0x0961, 1},
@@ -894,7 +912,8 @@ var _Lo = &RangeTable{
                {0x0ab5, 0x0ab9, 1},
                {0x0abd, 0x0ad0, 19},
                {0x0ae0, 0x0ae1, 1},
-               {0x0b05, 0x0b0c, 1},
+               {0x0af9, 0x0b05, 12},
+               {0x0b06, 0x0b0c, 1},
                {0x0b0f, 0x0b10, 1},
                {0x0b13, 0x0b28, 1},
                {0x0b2a, 0x0b30, 1},
@@ -919,9 +938,9 @@ var _Lo = &RangeTable{
                {0x0c12, 0x0c28, 1},
                {0x0c2a, 0x0c39, 1},
                {0x0c3d, 0x0c58, 27},
-               {0x0c59, 0x0c60, 7},
-               {0x0c61, 0x0c85, 36},
-               {0x0c86, 0x0c8c, 1},
+               {0x0c59, 0x0c5a, 1},
+               {0x0c60, 0x0c61, 1},
+               {0x0c85, 0x0c8c, 1},
                {0x0c8e, 0x0c90, 1},
                {0x0c92, 0x0ca8, 1},
                {0x0caa, 0x0cb3, 1},
@@ -932,7 +951,7 @@ var _Lo = &RangeTable{
                {0x0d05, 0x0d0c, 1},
                {0x0d0e, 0x0d10, 1},
                {0x0d12, 0x0d3a, 1},
-               {0x0d3d, 0x0d4e, 17},
+               {0x0d3d, 0x0d5f, 17},
                {0x0d60, 0x0d61, 1},
                {0x0d7a, 0x0d7f, 1},
                {0x0d85, 0x0d96, 1},
@@ -988,7 +1007,6 @@ var _Lo = &RangeTable{
                {0x1312, 0x1315, 1},
                {0x1318, 0x135a, 1},
                {0x1380, 0x138f, 1},
-               {0x13a0, 0x13f4, 1},
                {0x1401, 0x166c, 1},
                {0x166f, 0x167f, 1},
                {0x1681, 0x169a, 1},
@@ -1011,7 +1029,7 @@ var _Lo = &RangeTable{
                {0x1950, 0x196d, 1},
                {0x1970, 0x1974, 1},
                {0x1980, 0x19ab, 1},
-               {0x19c1, 0x19c7, 1},
+               {0x19b0, 0x19c9, 1},
                {0x1a00, 0x1a16, 1},
                {0x1a20, 0x1a54, 1},
                {0x1b05, 0x1b33, 1},
@@ -1046,7 +1064,7 @@ var _Lo = &RangeTable{
                {0x31a0, 0x31ba, 1},
                {0x31f0, 0x31ff, 1},
                {0x3400, 0x4db5, 1},
-               {0x4e00, 0x9fcc, 1},
+               {0x4e00, 0x9fd5, 1},
                {0xa000, 0xa014, 1},
                {0xa016, 0xa48c, 1},
                {0xa4d0, 0xa4f7, 1},
@@ -1055,16 +1073,16 @@ var _Lo = &RangeTable{
                {0xa62a, 0xa62b, 1},
                {0xa66e, 0xa6a0, 50},
                {0xa6a1, 0xa6e5, 1},
-               {0xa7f7, 0xa7fb, 4},
-               {0xa7fc, 0xa801, 1},
+               {0xa78f, 0xa7f7, 104},
+               {0xa7fb, 0xa801, 1},
                {0xa803, 0xa805, 1},
                {0xa807, 0xa80a, 1},
                {0xa80c, 0xa822, 1},
                {0xa840, 0xa873, 1},
                {0xa882, 0xa8b3, 1},
                {0xa8f2, 0xa8f7, 1},
-               {0xa8fb, 0xa90a, 15},
-               {0xa90b, 0xa925, 1},
+               {0xa8fb, 0xa8fd, 2},
+               {0xa90a, 0xa925, 1},
                {0xa930, 0xa946, 1},
                {0xa960, 0xa97c, 1},
                {0xa984, 0xa9b2, 1},
@@ -1149,6 +1167,8 @@ var _Lo = &RangeTable{
                {0x10840, 0x10855, 1},
                {0x10860, 0x10876, 1},
                {0x10880, 0x1089e, 1},
+               {0x108e0, 0x108f2, 1},
+               {0x108f4, 0x108f5, 1},
                {0x10900, 0x10915, 1},
                {0x10920, 0x10939, 1},
                {0x10980, 0x109b7, 1},
@@ -1174,9 +1194,14 @@ var _Lo = &RangeTable{
                {0x11176, 0x11183, 13},
                {0x11184, 0x111b2, 1},
                {0x111c1, 0x111c4, 1},
-               {0x111da, 0x11200, 38},
-               {0x11201, 0x11211, 1},
+               {0x111da, 0x111dc, 2},
+               {0x11200, 0x11211, 1},
                {0x11213, 0x1122b, 1},
+               {0x11280, 0x11286, 1},
+               {0x11288, 0x1128a, 2},
+               {0x1128b, 0x1128d, 1},
+               {0x1128f, 0x1129d, 1},
+               {0x1129f, 0x112a8, 1},
                {0x112b0, 0x112de, 1},
                {0x11305, 0x1130c, 1},
                {0x1130f, 0x11310, 1},
@@ -1184,19 +1209,23 @@ var _Lo = &RangeTable{
                {0x1132a, 0x11330, 1},
                {0x11332, 0x11333, 1},
                {0x11335, 0x11339, 1},
-               {0x1133d, 0x1135d, 32},
-               {0x1135e, 0x11361, 1},
+               {0x1133d, 0x11350, 19},
+               {0x1135d, 0x11361, 1},
                {0x11480, 0x114af, 1},
                {0x114c4, 0x114c5, 1},
                {0x114c7, 0x11580, 185},
                {0x11581, 0x115ae, 1},
+               {0x115d8, 0x115db, 1},
                {0x11600, 0x1162f, 1},
                {0x11644, 0x11680, 60},
                {0x11681, 0x116aa, 1},
+               {0x11700, 0x11719, 1},
                {0x118ff, 0x11ac0, 449},
                {0x11ac1, 0x11af8, 1},
-               {0x12000, 0x12398, 1},
+               {0x12000, 0x12399, 1},
+               {0x12480, 0x12543, 1},
                {0x13000, 0x1342e, 1},
+               {0x14400, 0x14646, 1},
                {0x16800, 0x16a38, 1},
                {0x16a40, 0x16a5e, 1},
                {0x16ad0, 0x16aed, 1},
@@ -1238,6 +1267,7 @@ var _Lo = &RangeTable{
                {0x20000, 0x2a6d6, 1},
                {0x2a700, 0x2b734, 1},
                {0x2b740, 0x2b81d, 1},
+               {0x2b820, 0x2cea1, 1},
                {0x2f800, 0x2fa1d, 1},
        },
        LatinOffset: 1,
@@ -1312,6 +1342,7 @@ var _Lu = &RangeTable{
                {0x0531, 0x0556, 1},
                {0x10a0, 0x10c5, 1},
                {0x10c7, 0x10cd, 6},
+               {0x13a0, 0x13f5, 1},
                {0x1e00, 0x1e94, 2},
                {0x1e9e, 0x1efe, 2},
                {0x1f08, 0x1f0f, 1},
@@ -1356,11 +1387,13 @@ var _Lu = &RangeTable{
                {0xa790, 0xa792, 2},
                {0xa796, 0xa7aa, 2},
                {0xa7ab, 0xa7ad, 1},
-               {0xa7b0, 0xa7b1, 1},
-               {0xff21, 0xff3a, 1},
+               {0xa7b0, 0xa7b4, 1},
+               {0xa7b6, 0xff21, 22379},
+               {0xff22, 0xff3a, 1},
        },
        R32: []Range32{
                {0x10400, 0x10427, 1},
+               {0x10c80, 0x10cb2, 1},
                {0x118a0, 0x118bf, 1},
                {0x1d400, 0x1d419, 1},
                {0x1d434, 0x1d44d, 1},
@@ -1420,7 +1453,7 @@ var _M = &RangeTable{
                {0x0825, 0x0827, 1},
                {0x0829, 0x082d, 1},
                {0x0859, 0x085b, 1},
-               {0x08e4, 0x0903, 1},
+               {0x08e3, 0x0903, 1},
                {0x093a, 0x093c, 1},
                {0x093e, 0x094f, 1},
                {0x0951, 0x0957, 1},
@@ -1516,8 +1549,6 @@ var _M = &RangeTable{
                {0x18a9, 0x1920, 119},
                {0x1921, 0x192b, 1},
                {0x1930, 0x193b, 1},
-               {0x19b0, 0x19c0, 1},
-               {0x19c8, 0x19c9, 1},
                {0x1a17, 0x1a1b, 1},
                {0x1a55, 0x1a5e, 1},
                {0x1a60, 0x1a7c, 1},
@@ -1545,10 +1576,11 @@ var _M = &RangeTable{
                {0x3099, 0x309a, 1},
                {0xa66f, 0xa672, 1},
                {0xa674, 0xa67d, 1},
-               {0xa69f, 0xa6f0, 81},
-               {0xa6f1, 0xa802, 273},
-               {0xa806, 0xa80b, 5},
-               {0xa823, 0xa827, 1},
+               {0xa69e, 0xa69f, 1},
+               {0xa6f0, 0xa6f1, 1},
+               {0xa802, 0xa806, 4},
+               {0xa80b, 0xa823, 24},
+               {0xa824, 0xa827, 1},
                {0xa880, 0xa881, 1},
                {0xa8b4, 0xa8c4, 1},
                {0xa8e0, 0xa8f1, 1},
@@ -1572,7 +1604,7 @@ var _M = &RangeTable{
                {0xabec, 0xabed, 1},
                {0xfb1e, 0xfe00, 738},
                {0xfe01, 0xfe0f, 1},
-               {0xfe20, 0xfe2d, 1},
+               {0xfe20, 0xfe2f, 1},
        },
        R32: []Range32{
                {0x101fd, 0x102e0, 227},
@@ -1592,9 +1624,10 @@ var _M = &RangeTable{
                {0x11173, 0x11180, 13},
                {0x11181, 0x11182, 1},
                {0x111b3, 0x111c0, 1},
+               {0x111ca, 0x111cc, 1},
                {0x1122c, 0x11237, 1},
                {0x112df, 0x112ea, 1},
-               {0x11301, 0x11303, 1},
+               {0x11300, 0x11303, 1},
                {0x1133c, 0x1133e, 2},
                {0x1133f, 0x11344, 1},
                {0x11347, 0x11348, 1},
@@ -1606,8 +1639,10 @@ var _M = &RangeTable{
                {0x114b0, 0x114c3, 1},
                {0x115af, 0x115b5, 1},
                {0x115b8, 0x115c0, 1},
+               {0x115dc, 0x115dd, 1},
                {0x11630, 0x11640, 1},
                {0x116ab, 0x116b7, 1},
+               {0x1171d, 0x1172b, 1},
                {0x16af0, 0x16af4, 1},
                {0x16b30, 0x16b36, 1},
                {0x16f51, 0x16f7e, 1},
@@ -1619,6 +1654,11 @@ var _M = &RangeTable{
                {0x1d185, 0x1d18b, 1},
                {0x1d1aa, 0x1d1ad, 1},
                {0x1d242, 0x1d244, 1},
+               {0x1da00, 0x1da36, 1},
+               {0x1da3b, 0x1da6c, 1},
+               {0x1da75, 0x1da84, 15},
+               {0x1da9b, 0x1da9f, 1},
+               {0x1daa1, 0x1daaf, 1},
                {0x1e8d0, 0x1e8d6, 1},
                {0xe0100, 0xe01ef, 1},
        },
@@ -1685,8 +1725,6 @@ var _Mc = &RangeTable{
                {0x1929, 0x192b, 1},
                {0x1930, 0x1931, 1},
                {0x1933, 0x1938, 1},
-               {0x19b0, 0x19c0, 1},
-               {0x19c8, 0x19c9, 1},
                {0x1a19, 0x1a1a, 1},
                {0x1a55, 0x1a57, 2},
                {0x1a61, 0x1a63, 2},
@@ -1755,8 +1793,9 @@ var _Mc = &RangeTable{
                {0x1163b, 0x1163c, 1},
                {0x1163e, 0x116ac, 110},
                {0x116ae, 0x116af, 1},
-               {0x116b6, 0x16f51, 22683},
-               {0x16f52, 0x16f7e, 1},
+               {0x116b6, 0x11720, 106},
+               {0x11721, 0x11726, 5},
+               {0x16f51, 0x16f7e, 1},
                {0x1d165, 0x1d166, 1},
                {0x1d16d, 0x1d172, 1},
        },
@@ -1796,7 +1835,7 @@ var _Mn = &RangeTable{
                {0x0825, 0x0827, 1},
                {0x0829, 0x082d, 1},
                {0x0859, 0x085b, 1},
-               {0x08e4, 0x0902, 1},
+               {0x08e3, 0x0902, 1},
                {0x093a, 0x093c, 2},
                {0x0941, 0x0948, 1},
                {0x094d, 0x0951, 4},
@@ -1918,12 +1957,12 @@ var _Mn = &RangeTable{
                {0x3099, 0x309a, 1},
                {0xa66f, 0xa674, 5},
                {0xa675, 0xa67d, 1},
-               {0xa69f, 0xa6f0, 81},
-               {0xa6f1, 0xa802, 273},
-               {0xa806, 0xa80b, 5},
-               {0xa825, 0xa826, 1},
-               {0xa8c4, 0xa8e0, 28},
-               {0xa8e1, 0xa8f1, 1},
+               {0xa69e, 0xa69f, 1},
+               {0xa6f0, 0xa6f1, 1},
+               {0xa802, 0xa806, 4},
+               {0xa80b, 0xa825, 26},
+               {0xa826, 0xa8c4, 158},
+               {0xa8e0, 0xa8f1, 1},
                {0xa926, 0xa92d, 1},
                {0xa947, 0xa951, 1},
                {0xa980, 0xa982, 1},
@@ -1943,7 +1982,7 @@ var _Mn = &RangeTable{
                {0xabe5, 0xabe8, 3},
                {0xabed, 0xfb1e, 20273},
                {0xfe00, 0xfe0f, 1},
-               {0xfe20, 0xfe2d, 1},
+               {0xfe20, 0xfe2f, 1},
        },
        R32: []Range32{
                {0x101fd, 0x102e0, 227},
@@ -1964,13 +2003,14 @@ var _Mn = &RangeTable{
                {0x11173, 0x11180, 13},
                {0x11181, 0x111b6, 53},
                {0x111b7, 0x111be, 1},
+               {0x111ca, 0x111cc, 1},
                {0x1122f, 0x11231, 1},
                {0x11234, 0x11236, 2},
                {0x11237, 0x112df, 168},
                {0x112e3, 0x112ea, 1},
-               {0x11301, 0x1133c, 59},
-               {0x11340, 0x11366, 38},
-               {0x11367, 0x1136c, 1},
+               {0x11300, 0x11301, 1},
+               {0x1133c, 0x11340, 4},
+               {0x11366, 0x1136c, 1},
                {0x11370, 0x11374, 1},
                {0x114b3, 0x114b8, 1},
                {0x114ba, 0x114bf, 5},
@@ -1979,13 +2019,17 @@ var _Mn = &RangeTable{
                {0x115b3, 0x115b5, 1},
                {0x115bc, 0x115bd, 1},
                {0x115bf, 0x115c0, 1},
+               {0x115dc, 0x115dd, 1},
                {0x11633, 0x1163a, 1},
                {0x1163d, 0x1163f, 2},
                {0x11640, 0x116ab, 107},
                {0x116ad, 0x116b0, 3},
                {0x116b1, 0x116b5, 1},
-               {0x116b7, 0x16af0, 21561},
-               {0x16af1, 0x16af4, 1},
+               {0x116b7, 0x1171d, 102},
+               {0x1171e, 0x1171f, 1},
+               {0x11722, 0x11725, 1},
+               {0x11727, 0x1172b, 1},
+               {0x16af0, 0x16af4, 1},
                {0x16b30, 0x16b36, 1},
                {0x16f8f, 0x16f92, 1},
                {0x1bc9d, 0x1bc9e, 1},
@@ -1994,6 +2038,11 @@ var _Mn = &RangeTable{
                {0x1d185, 0x1d18b, 1},
                {0x1d1aa, 0x1d1ad, 1},
                {0x1d242, 0x1d244, 1},
+               {0x1da00, 0x1da36, 1},
+               {0x1da3b, 0x1da6c, 1},
+               {0x1da75, 0x1da84, 15},
+               {0x1da9b, 0x1da9f, 1},
+               {0x1daa1, 0x1daaf, 1},
                {0x1e8d0, 0x1e8d6, 1},
                {0xe0100, 0xe01ef, 1},
        },
@@ -2079,7 +2128,11 @@ var _N = &RangeTable{
                {0x10858, 0x1085f, 1},
                {0x10879, 0x1087f, 1},
                {0x108a7, 0x108af, 1},
+               {0x108fb, 0x108ff, 1},
                {0x10916, 0x1091b, 1},
+               {0x109bc, 0x109bd, 1},
+               {0x109c0, 0x109cf, 1},
+               {0x109d2, 0x109ff, 1},
                {0x10a40, 0x10a47, 1},
                {0x10a7d, 0x10a7e, 1},
                {0x10a9d, 0x10a9f, 1},
@@ -2087,6 +2140,7 @@ var _N = &RangeTable{
                {0x10b58, 0x10b5f, 1},
                {0x10b78, 0x10b7f, 1},
                {0x10ba9, 0x10baf, 1},
+               {0x10cfa, 0x10cff, 1},
                {0x10e60, 0x10e7e, 1},
                {0x11052, 0x1106f, 1},
                {0x110f0, 0x110f9, 1},
@@ -2097,6 +2151,7 @@ var _N = &RangeTable{
                {0x114d0, 0x114d9, 1},
                {0x11650, 0x11659, 1},
                {0x116c0, 0x116c9, 1},
+               {0x11730, 0x1173b, 1},
                {0x118e0, 0x118f2, 1},
                {0x12400, 0x1246e, 1},
                {0x16a60, 0x16a69, 1},
@@ -2160,6 +2215,7 @@ var _Nd = &RangeTable{
                {0x114d0, 0x114d9, 1},
                {0x11650, 0x11659, 1},
                {0x116c0, 0x116c9, 1},
+               {0x11730, 0x11739, 1},
                {0x118e0, 0x118e9, 1},
                {0x16a60, 0x16a69, 1},
                {0x16b50, 0x16b59, 1},
@@ -2225,7 +2281,11 @@ var _No = &RangeTable{
                {0x10858, 0x1085f, 1},
                {0x10879, 0x1087f, 1},
                {0x108a7, 0x108af, 1},
+               {0x108fb, 0x108ff, 1},
                {0x10916, 0x1091b, 1},
+               {0x109bc, 0x109bd, 1},
+               {0x109c0, 0x109cf, 1},
+               {0x109d2, 0x109ff, 1},
                {0x10a40, 0x10a47, 1},
                {0x10a7d, 0x10a7e, 1},
                {0x10a9d, 0x10a9f, 1},
@@ -2233,9 +2293,11 @@ var _No = &RangeTable{
                {0x10b58, 0x10b5f, 1},
                {0x10b78, 0x10b7f, 1},
                {0x10ba9, 0x10baf, 1},
+               {0x10cfa, 0x10cff, 1},
                {0x10e60, 0x10e7e, 1},
                {0x11052, 0x11065, 1},
                {0x111e1, 0x111f4, 1},
+               {0x1173a, 0x1173b, 1},
                {0x118ea, 0x118f2, 1},
                {0x16b5b, 0x16b61, 1},
                {0x1d360, 0x1d371, 1},
@@ -2336,9 +2398,9 @@ var _P = &RangeTable{
                {0xa874, 0xa877, 1},
                {0xa8ce, 0xa8cf, 1},
                {0xa8f8, 0xa8fa, 1},
-               {0xa92e, 0xa92f, 1},
-               {0xa95f, 0xa9c1, 98},
-               {0xa9c2, 0xa9cd, 1},
+               {0xa8fc, 0xa92e, 50},
+               {0xa92f, 0xa95f, 48},
+               {0xa9c1, 0xa9cd, 1},
                {0xa9de, 0xa9df, 1},
                {0xaa5c, 0xaa5f, 1},
                {0xaade, 0xaadf, 1},
@@ -2375,17 +2437,20 @@ var _P = &RangeTable{
                {0x110be, 0x110c1, 1},
                {0x11140, 0x11143, 1},
                {0x11174, 0x11175, 1},
-               {0x111c5, 0x111c8, 1},
-               {0x111cd, 0x11238, 107},
-               {0x11239, 0x1123d, 1},
-               {0x114c6, 0x115c1, 251},
-               {0x115c2, 0x115c9, 1},
+               {0x111c5, 0x111c9, 1},
+               {0x111cd, 0x111db, 14},
+               {0x111dd, 0x111df, 1},
+               {0x11238, 0x1123d, 1},
+               {0x112a9, 0x114c6, 541},
+               {0x115c1, 0x115d7, 1},
                {0x11641, 0x11643, 1},
+               {0x1173c, 0x1173e, 1},
                {0x12470, 0x12474, 1},
                {0x16a6e, 0x16a6f, 1},
                {0x16af5, 0x16b37, 66},
                {0x16b38, 0x16b3b, 1},
                {0x16b44, 0x1bc9f, 20827},
+               {0x1da87, 0x1da8b, 1},
        },
        LatinOffset: 11,
 }
@@ -2550,9 +2615,9 @@ var _Po = &RangeTable{
                {0xa874, 0xa877, 1},
                {0xa8ce, 0xa8cf, 1},
                {0xa8f8, 0xa8fa, 1},
-               {0xa92e, 0xa92f, 1},
-               {0xa95f, 0xa9c1, 98},
-               {0xa9c2, 0xa9cd, 1},
+               {0xa8fc, 0xa92e, 50},
+               {0xa92f, 0xa95f, 48},
+               {0xa9c1, 0xa9cd, 1},
                {0xa9de, 0xa9df, 1},
                {0xaa5c, 0xaa5f, 1},
                {0xaade, 0xaadf, 1},
@@ -2592,17 +2657,20 @@ var _Po = &RangeTable{
                {0x110be, 0x110c1, 1},
                {0x11140, 0x11143, 1},
                {0x11174, 0x11175, 1},
-               {0x111c5, 0x111c8, 1},
-               {0x111cd, 0x11238, 107},
-               {0x11239, 0x1123d, 1},
-               {0x114c6, 0x115c1, 251},
-               {0x115c2, 0x115c9, 1},
+               {0x111c5, 0x111c9, 1},
+               {0x111cd, 0x111db, 14},
+               {0x111dd, 0x111df, 1},
+               {0x11238, 0x1123d, 1},
+               {0x112a9, 0x114c6, 541},
+               {0x115c1, 0x115d7, 1},
                {0x11641, 0x11643, 1},
+               {0x1173c, 0x1173e, 1},
                {0x12470, 0x12474, 1},
                {0x16a6e, 0x16a6f, 1},
                {0x16af5, 0x16b37, 66},
                {0x16b38, 0x16b3b, 1},
                {0x16b44, 0x1bc9f, 20827},
+               {0x1da87, 0x1da8b, 1},
        },
        LatinOffset: 8,
 }
@@ -2694,7 +2762,7 @@ var _S = &RangeTable{
                {0x2044, 0x2052, 14},
                {0x207a, 0x207c, 1},
                {0x208a, 0x208c, 1},
-               {0x20a0, 0x20bd, 1},
+               {0x20a0, 0x20be, 1},
                {0x2100, 0x2101, 1},
                {0x2103, 0x2106, 1},
                {0x2108, 0x2109, 1},
@@ -2706,7 +2774,8 @@ var _S = &RangeTable{
                {0x213b, 0x2140, 5},
                {0x2141, 0x2144, 1},
                {0x214a, 0x214d, 1},
-               {0x214f, 0x2190, 65},
+               {0x214f, 0x218a, 59},
+               {0x218b, 0x2190, 5},
                {0x2191, 0x2307, 1},
                {0x230c, 0x2328, 1},
                {0x232b, 0x23fa, 1},
@@ -2724,6 +2793,7 @@ var _S = &RangeTable{
                {0x2b98, 0x2bb9, 1},
                {0x2bbd, 0x2bc8, 1},
                {0x2bca, 0x2bd1, 1},
+               {0x2bec, 0x2bef, 1},
                {0x2ce5, 0x2cea, 1},
                {0x2e80, 0x2e99, 1},
                {0x2e9b, 0x2ef3, 1},
@@ -2774,8 +2844,8 @@ var _S = &RangeTable{
                {0x101a0, 0x101d0, 48},
                {0x101d1, 0x101fc, 1},
                {0x10877, 0x10878, 1},
-               {0x10ac8, 0x16b3c, 24692},
-               {0x16b3d, 0x16b3f, 1},
+               {0x10ac8, 0x1173f, 3191},
+               {0x16b3c, 0x16b3f, 1},
                {0x16b45, 0x1bc9c, 20823},
                {0x1d000, 0x1d0f5, 1},
                {0x1d100, 0x1d126, 1},
@@ -2783,7 +2853,7 @@ var _S = &RangeTable{
                {0x1d16a, 0x1d16c, 1},
                {0x1d183, 0x1d184, 1},
                {0x1d18c, 0x1d1a9, 1},
-               {0x1d1ae, 0x1d1dd, 1},
+               {0x1d1ae, 0x1d1e8, 1},
                {0x1d200, 0x1d241, 1},
                {0x1d245, 0x1d300, 187},
                {0x1d301, 0x1d356, 1},
@@ -2792,6 +2862,11 @@ var _S = &RangeTable{
                {0x1d735, 0x1d74f, 26},
                {0x1d76f, 0x1d789, 26},
                {0x1d7a9, 0x1d7c3, 26},
+               {0x1d800, 0x1d9ff, 1},
+               {0x1da37, 0x1da3a, 1},
+               {0x1da6d, 0x1da74, 1},
+               {0x1da76, 0x1da83, 1},
+               {0x1da85, 0x1da86, 1},
                {0x1eef0, 0x1eef1, 1},
                {0x1f000, 0x1f02b, 1},
                {0x1f030, 0x1f093, 1},
@@ -2806,16 +2881,9 @@ var _S = &RangeTable{
                {0x1f210, 0x1f23a, 1},
                {0x1f240, 0x1f248, 1},
                {0x1f250, 0x1f251, 1},
-               {0x1f300, 0x1f32c, 1},
-               {0x1f330, 0x1f37d, 1},
-               {0x1f380, 0x1f3ce, 1},
-               {0x1f3d4, 0x1f3f7, 1},
-               {0x1f400, 0x1f4fe, 1},
-               {0x1f500, 0x1f54a, 1},
-               {0x1f550, 0x1f579, 1},
+               {0x1f300, 0x1f579, 1},
                {0x1f57b, 0x1f5a3, 1},
-               {0x1f5a5, 0x1f642, 1},
-               {0x1f645, 0x1f6cf, 1},
+               {0x1f5a5, 0x1f6d0, 1},
                {0x1f6e0, 0x1f6ec, 1},
                {0x1f6f0, 0x1f6f3, 1},
                {0x1f700, 0x1f773, 1},
@@ -2825,6 +2893,9 @@ var _S = &RangeTable{
                {0x1f850, 0x1f859, 1},
                {0x1f860, 0x1f887, 1},
                {0x1f890, 0x1f8ad, 1},
+               {0x1f910, 0x1f918, 1},
+               {0x1f980, 0x1f984, 1},
+               {0x1f9c0, 0x1f9c0, 1},
        },
        LatinOffset: 10,
 }
@@ -2838,7 +2909,7 @@ var _Sc = &RangeTable{
                {0x09fb, 0x0af1, 246},
                {0x0bf9, 0x0e3f, 582},
                {0x17db, 0x20a0, 2245},
-               {0x20a1, 0x20bd, 1},
+               {0x20a1, 0x20be, 1},
                {0xa838, 0xfdfc, 21956},
                {0xfe69, 0xff04, 155},
                {0xffe0, 0xffe1, 1},
@@ -2873,6 +2944,10 @@ var _Sk = &RangeTable{
                {0xff3e, 0xff40, 2},
                {0xffe3, 0xffe3, 1},
        },
+       R32: []Range32{
+               {0x1f3fb, 0x1f3fb, 1},
+               {0x1f3fc, 0x1f3ff, 1},
+       },
        LatinOffset: 3,
 }
 
@@ -2971,7 +3046,8 @@ var _So = &RangeTable{
                {0x212e, 0x213a, 12},
                {0x213b, 0x214a, 15},
                {0x214c, 0x214d, 1},
-               {0x214f, 0x2195, 70},
+               {0x214f, 0x218a, 59},
+               {0x218b, 0x2195, 10},
                {0x2196, 0x2199, 1},
                {0x219c, 0x219f, 1},
                {0x21a1, 0x21a2, 1},
@@ -3005,6 +3081,7 @@ var _So = &RangeTable{
                {0x2b98, 0x2bb9, 1},
                {0x2bbd, 0x2bc8, 1},
                {0x2bca, 0x2bd1, 1},
+               {0x2bec, 0x2bef, 1},
                {0x2ce5, 0x2cea, 1},
                {0x2e80, 0x2e99, 1},
                {0x2e9b, 0x2ef3, 1},
@@ -3044,8 +3121,8 @@ var _So = &RangeTable{
                {0x101a0, 0x101d0, 48},
                {0x101d1, 0x101fc, 1},
                {0x10877, 0x10878, 1},
-               {0x10ac8, 0x16b3c, 24692},
-               {0x16b3d, 0x16b3f, 1},
+               {0x10ac8, 0x1173f, 3191},
+               {0x16b3c, 0x16b3f, 1},
                {0x16b45, 0x1bc9c, 20823},
                {0x1d000, 0x1d0f5, 1},
                {0x1d100, 0x1d126, 1},
@@ -3053,10 +3130,15 @@ var _So = &RangeTable{
                {0x1d16a, 0x1d16c, 1},
                {0x1d183, 0x1d184, 1},
                {0x1d18c, 0x1d1a9, 1},
-               {0x1d1ae, 0x1d1dd, 1},
+               {0x1d1ae, 0x1d1e8, 1},
                {0x1d200, 0x1d241, 1},
                {0x1d245, 0x1d300, 187},
                {0x1d301, 0x1d356, 1},
+               {0x1d800, 0x1d9ff, 1},
+               {0x1da37, 0x1da3a, 1},
+               {0x1da6d, 0x1da74, 1},
+               {0x1da76, 0x1da83, 1},
+               {0x1da85, 0x1da86, 1},
                {0x1f000, 0x1f02b, 1},
                {0x1f030, 0x1f093, 1},
                {0x1f0a0, 0x1f0ae, 1},
@@ -3070,16 +3152,10 @@ var _So = &RangeTable{
                {0x1f210, 0x1f23a, 1},
                {0x1f240, 0x1f248, 1},
                {0x1f250, 0x1f251, 1},
-               {0x1f300, 0x1f32c, 1},
-               {0x1f330, 0x1f37d, 1},
-               {0x1f380, 0x1f3ce, 1},
-               {0x1f3d4, 0x1f3f7, 1},
-               {0x1f400, 0x1f4fe, 1},
-               {0x1f500, 0x1f54a, 1},
-               {0x1f550, 0x1f579, 1},
+               {0x1f300, 0x1f3fa, 1},
+               {0x1f400, 0x1f579, 1},
                {0x1f57b, 0x1f5a3, 1},
-               {0x1f5a5, 0x1f642, 1},
-               {0x1f645, 0x1f6cf, 1},
+               {0x1f5a5, 0x1f6d0, 1},
                {0x1f6e0, 0x1f6ec, 1},
                {0x1f6f0, 0x1f6f3, 1},
                {0x1f700, 0x1f773, 1},
@@ -3089,6 +3165,9 @@ var _So = &RangeTable{
                {0x1f850, 0x1f859, 1},
                {0x1f860, 0x1f887, 1},
                {0x1f890, 0x1f8ad, 1},
+               {0x1f910, 0x1f918, 1},
+               {0x1f980, 0x1f984, 1},
+               {0x1f9c0, 0x1f9c0, 1},
        },
        LatinOffset: 2,
 }
@@ -3180,11 +3259,13 @@ var (
 )
 
 // Generated by running
-//     maketables --scripts=all --url=http://www.unicode.org/Public/7.0.0/ucd/
+//     maketables --scripts=all --url=http://www.unicode.org/Public/8.0.0/ucd/
 // DO NOT EDIT
 
 // Scripts is the set of Unicode script tables.
 var Scripts = map[string]*RangeTable{
+       "Ahom":                   Ahom,
+       "Anatolian_Hieroglyphs":  Anatolian_Hieroglyphs,
        "Arabic":                 Arabic,
        "Armenian":               Armenian,
        "Avestan":                Avestan,
@@ -3225,6 +3306,7 @@ var Scripts = map[string]*RangeTable{
        "Han":                    Han,
        "Hangul":                 Hangul,
        "Hanunoo":                Hanunoo,
+       "Hatran":                 Hatran,
        "Hebrew":                 Hebrew,
        "Hiragana":               Hiragana,
        "Imperial_Aramaic":       Imperial_Aramaic,
@@ -3261,12 +3343,14 @@ var Scripts = map[string]*RangeTable{
        "Modi":                   Modi,
        "Mongolian":              Mongolian,
        "Mro":                    Mro,
+       "Multani":                Multani,
        "Myanmar":                Myanmar,
        "Nabataean":              Nabataean,
        "New_Tai_Lue":            New_Tai_Lue,
        "Nko":                    Nko,
        "Ogham":                  Ogham,
        "Ol_Chiki":               Ol_Chiki,
+       "Old_Hungarian":          Old_Hungarian,
        "Old_Italic":             Old_Italic,
        "Old_North_Arabian":      Old_North_Arabian,
        "Old_Permic":             Old_Permic,
@@ -3288,6 +3372,7 @@ var Scripts = map[string]*RangeTable{
        "Sharada":                Sharada,
        "Shavian":                Shavian,
        "Siddham":                Siddham,
+       "SignWriting":            SignWriting,
        "Sinhala":                Sinhala,
        "Sora_Sompeng":           Sora_Sompeng,
        "Sundanese":              Sundanese,
@@ -3312,6 +3397,22 @@ var Scripts = map[string]*RangeTable{
        "Yi":                     Yi,
 }
 
+var _Ahom = &RangeTable{
+       R16: []Range16{},
+       R32: []Range32{
+               {0x11700, 0x11719, 1},
+               {0x1171d, 0x1172b, 1},
+               {0x11730, 0x1173f, 1},
+       },
+}
+
+var _Anatolian_Hieroglyphs = &RangeTable{
+       R16: []Range16{},
+       R32: []Range32{
+               {0x14400, 0x14646, 1},
+       },
+}
+
 var _Arabic = &RangeTable{
        R16: []Range16{
                {0x0600, 0x0604, 1},
@@ -3320,13 +3421,12 @@ var _Arabic = &RangeTable{
                {0x061e, 0x061e, 1},
                {0x0620, 0x063f, 1},
                {0x0641, 0x064a, 1},
-               {0x0656, 0x065f, 1},
-               {0x066a, 0x066f, 1},
+               {0x0656, 0x066f, 1},
                {0x0671, 0x06dc, 1},
                {0x06de, 0x06ff, 1},
                {0x0750, 0x077f, 1},
-               {0x08a0, 0x08b2, 1},
-               {0x08e4, 0x08ff, 1},
+               {0x08a0, 0x08b4, 1},
+               {0x08e3, 0x08ff, 1},
                {0xfb50, 0xfbc1, 1},
                {0xfbd3, 0xfd3d, 1},
                {0xfd50, 0xfd8f, 1},
@@ -3520,7 +3620,9 @@ var _Cham = &RangeTable{
 
 var _Cherokee = &RangeTable{
        R16: []Range16{
-               {0x13a0, 0x13f4, 1},
+               {0x13a0, 0x13f5, 1},
+               {0x13f8, 0x13fd, 1},
+               {0xab70, 0xabbf, 1},
        },
 }
 
@@ -3546,7 +3648,6 @@ var _Common = &RangeTable{
                {0x061b, 0x061c, 1},
                {0x061f, 0x061f, 1},
                {0x0640, 0x0640, 1},
-               {0x0660, 0x0669, 1},
                {0x06dd, 0x06dd, 1},
                {0x0964, 0x0965, 1},
                {0x0e3f, 0x0e3f, 1},
@@ -3566,13 +3667,13 @@ var _Common = &RangeTable{
                {0x2066, 0x2070, 1},
                {0x2074, 0x207e, 1},
                {0x2080, 0x208e, 1},
-               {0x20a0, 0x20bd, 1},
+               {0x20a0, 0x20be, 1},
                {0x2100, 0x2125, 1},
                {0x2127, 0x2129, 1},
                {0x212c, 0x2131, 1},
                {0x2133, 0x214d, 1},
                {0x214f, 0x215f, 1},
-               {0x2189, 0x2189, 1},
+               {0x2189, 0x218b, 1},
                {0x2190, 0x23fa, 1},
                {0x2400, 0x2426, 1},
                {0x2440, 0x244a, 1},
@@ -3582,6 +3683,7 @@ var _Common = &RangeTable{
                {0x2b98, 0x2bb9, 1},
                {0x2bbd, 0x2bc8, 1},
                {0x2bca, 0x2bd1, 1},
+               {0x2bec, 0x2bef, 1},
                {0x2e00, 0x2e42, 1},
                {0x2ff0, 0x2ffb, 1},
                {0x3000, 0x3004, 1},
@@ -3633,7 +3735,7 @@ var _Common = &RangeTable{
                {0x1d16a, 0x1d17a, 1},
                {0x1d183, 0x1d184, 1},
                {0x1d18c, 0x1d1a9, 1},
-               {0x1d1ae, 0x1d1dd, 1},
+               {0x1d1ae, 0x1d1e8, 1},
                {0x1d300, 0x1d356, 1},
                {0x1d360, 0x1d371, 1},
                {0x1d400, 0x1d454, 1},
@@ -3672,16 +3774,9 @@ var _Common = &RangeTable{
                {0x1f210, 0x1f23a, 1},
                {0x1f240, 0x1f248, 1},
                {0x1f250, 0x1f251, 1},
-               {0x1f300, 0x1f32c, 1},
-               {0x1f330, 0x1f37d, 1},
-               {0x1f380, 0x1f3ce, 1},
-               {0x1f3d4, 0x1f3f7, 1},
-               {0x1f400, 0x1f4fe, 1},
-               {0x1f500, 0x1f54a, 1},
-               {0x1f550, 0x1f579, 1},
+               {0x1f300, 0x1f579, 1},
                {0x1f57b, 0x1f5a3, 1},
-               {0x1f5a5, 0x1f642, 1},
-               {0x1f645, 0x1f6cf, 1},
+               {0x1f5a5, 0x1f6d0, 1},
                {0x1f6e0, 0x1f6ec, 1},
                {0x1f6f0, 0x1f6f3, 1},
                {0x1f700, 0x1f773, 1},
@@ -3691,6 +3786,9 @@ var _Common = &RangeTable{
                {0x1f850, 0x1f859, 1},
                {0x1f860, 0x1f887, 1},
                {0x1f890, 0x1f8ad, 1},
+               {0x1f910, 0x1f918, 1},
+               {0x1f980, 0x1f984, 1},
+               {0x1f9c0, 0x1f9c0, 1},
                {0xe0001, 0xe0001, 1},
                {0xe0020, 0xe007f, 1},
        },
@@ -3708,9 +3806,10 @@ var _Coptic = &RangeTable{
 var _Cuneiform = &RangeTable{
        R16: []Range16{},
        R32: []Range32{
-               {0x12000, 0x12398, 1},
+               {0x12000, 0x12399, 1},
                {0x12400, 0x1246e, 1},
                {0x12470, 0x12474, 1},
+               {0x12480, 0x12543, 1},
        },
 }
 
@@ -3733,8 +3832,8 @@ var _Cyrillic = &RangeTable{
                {0x1d2b, 0x1d2b, 1},
                {0x1d78, 0x1d78, 1},
                {0x2de0, 0x2dff, 1},
-               {0xa640, 0xa69d, 1},
-               {0xa69f, 0xa69f, 1},
+               {0xa640, 0xa69f, 1},
+               {0xfe2e, 0xfe2f, 1},
        },
 }
 
@@ -3750,7 +3849,7 @@ var _Devanagari = &RangeTable{
                {0x0900, 0x0950, 1},
                {0x0953, 0x0963, 1},
                {0x0966, 0x097f, 1},
-               {0xa8e0, 0xa8fb, 1},
+               {0xa8e0, 0xa8fd, 1},
        },
 }
 
@@ -3846,7 +3945,7 @@ var _Gothic = &RangeTable{
 var _Grantha = &RangeTable{
        R16: []Range16{},
        R32: []Range32{
-               {0x11301, 0x11303, 1},
+               {0x11300, 0x11303, 1},
                {0x11305, 0x1130c, 1},
                {0x1130f, 0x11310, 1},
                {0x11313, 0x11328, 1},
@@ -3856,6 +3955,7 @@ var _Grantha = &RangeTable{
                {0x1133c, 0x11344, 1},
                {0x11347, 0x11348, 1},
                {0x1134b, 0x1134d, 1},
+               {0x11350, 0x11350, 1},
                {0x11357, 0x11357, 1},
                {0x1135d, 0x11363, 1},
                {0x11366, 0x1136c, 1},
@@ -3921,6 +4021,7 @@ var _Gujarati = &RangeTable{
                {0x0ad0, 0x0ad0, 1},
                {0x0ae0, 0x0ae3, 1},
                {0x0ae6, 0x0af1, 1},
+               {0x0af9, 0x0af9, 1},
        },
 }
 
@@ -3955,7 +4056,7 @@ var _Han = &RangeTable{
                {0x3021, 0x3029, 1},
                {0x3038, 0x303b, 1},
                {0x3400, 0x4db5, 1},
-               {0x4e00, 0x9fcc, 1},
+               {0x4e00, 0x9fd5, 1},
                {0xf900, 0xfa6d, 1},
                {0xfa70, 0xfad9, 1},
        },
@@ -3963,6 +4064,7 @@ var _Han = &RangeTable{
                {0x20000, 0x2a6d6, 1},
                {0x2a700, 0x2b734, 1},
                {0x2b740, 0x2b81d, 1},
+               {0x2b820, 0x2cea1, 1},
                {0x2f800, 0x2fa1d, 1},
        },
 }
@@ -3992,6 +4094,15 @@ var _Hanunoo = &RangeTable{
        },
 }
 
+var _Hatran = &RangeTable{
+       R16: []Range16{},
+       R32: []Range32{
+               {0x108e0, 0x108f2, 1},
+               {0x108f4, 0x108f5, 1},
+               {0x108fb, 0x108ff, 1},
+       },
+}
+
 var _Hebrew = &RangeTable{
        R16: []Range16{
                {0x0591, 0x05c7, 1},
@@ -4218,13 +4329,11 @@ var _Latin = &RangeTable{
                {0x2160, 0x2188, 1},
                {0x2c60, 0x2c7f, 1},
                {0xa722, 0xa787, 1},
-               {0xa78b, 0xa78e, 1},
-               {0xa790, 0xa7ad, 1},
-               {0xa7b0, 0xa7b1, 1},
+               {0xa78b, 0xa7ad, 1},
+               {0xa7b0, 0xa7b7, 1},
                {0xa7f7, 0xa7ff, 1},
                {0xab30, 0xab5a, 1},
-               {0xab5c, 0xab5f, 1},
-               {0xab64, 0xab64, 1},
+               {0xab5c, 0xab64, 1},
                {0xfb00, 0xfb06, 1},
                {0xff21, 0xff3a, 1},
                {0xff41, 0xff5a, 1},
@@ -4310,7 +4419,7 @@ var _Malayalam = &RangeTable{
                {0x0d46, 0x0d48, 1},
                {0x0d4a, 0x0d4e, 1},
                {0x0d57, 0x0d57, 1},
-               {0x0d60, 0x0d63, 1},
+               {0x0d5f, 0x0d63, 1},
                {0x0d66, 0x0d75, 1},
                {0x0d79, 0x0d7f, 1},
        },
@@ -4351,7 +4460,8 @@ var _Meroitic_Cursive = &RangeTable{
        R16: []Range16{},
        R32: []Range32{
                {0x109a0, 0x109b7, 1},
-               {0x109be, 0x109bf, 1},
+               {0x109bc, 0x109cf, 1},
+               {0x109d2, 0x109ff, 1},
        },
 }
 
@@ -4399,6 +4509,17 @@ var _Mro = &RangeTable{
        },
 }
 
+var _Multani = &RangeTable{
+       R16: []Range16{},
+       R32: []Range32{
+               {0x11280, 0x11286, 1},
+               {0x11288, 0x11288, 1},
+               {0x1128a, 0x1128d, 1},
+               {0x1128f, 0x1129d, 1},
+               {0x1129f, 0x112a9, 1},
+       },
+}
+
 var _Myanmar = &RangeTable{
        R16: []Range16{
                {0x1000, 0x109f, 1},
@@ -4442,6 +4563,15 @@ var _Ol_Chiki = &RangeTable{
        },
 }
 
+var _Old_Hungarian = &RangeTable{
+       R16: []Range16{},
+       R32: []Range32{
+               {0x10c80, 0x10cb2, 1},
+               {0x10cc0, 0x10cf2, 1},
+               {0x10cfa, 0x10cff, 1},
+       },
+}
+
 var _Old_Italic = &RangeTable{
        R16: []Range16{},
        R32: []Range32{
@@ -4591,9 +4721,8 @@ var _Saurashtra = &RangeTable{
 var _Sharada = &RangeTable{
        R16: []Range16{},
        R32: []Range32{
-               {0x11180, 0x111c8, 1},
-               {0x111cd, 0x111cd, 1},
-               {0x111d0, 0x111da, 1},
+               {0x11180, 0x111cd, 1},
+               {0x111d0, 0x111df, 1},
        },
 }
 
@@ -4608,7 +4737,16 @@ var _Siddham = &RangeTable{
        R16: []Range16{},
        R32: []Range32{
                {0x11580, 0x115b5, 1},
-               {0x115b8, 0x115c9, 1},
+               {0x115b8, 0x115dd, 1},
+       },
+}
+
+var _SignWriting = &RangeTable{
+       R16: []Range16{},
+       R32: []Range32{
+               {0x1d800, 0x1da8b, 1},
+               {0x1da9b, 0x1da9f, 1},
+               {0x1daa1, 0x1daaf, 1},
        },
 }
 
@@ -4740,7 +4878,7 @@ var _Telugu = &RangeTable{
                {0x0c46, 0x0c48, 1},
                {0x0c4a, 0x0c4d, 1},
                {0x0c55, 0x0c56, 1},
-               {0x0c58, 0x0c59, 1},
+               {0x0c58, 0x0c5a, 1},
                {0x0c60, 0x0c63, 1},
                {0x0c66, 0x0c6f, 1},
                {0x0c78, 0x0c7f, 1},
@@ -4819,6 +4957,8 @@ var _Yi = &RangeTable{
 
 // These variables have type *RangeTable.
 var (
+       Ahom                   = _Ahom                   // Ahom is the set of Unicode characters in script Ahom.
+       Anatolian_Hieroglyphs  = _Anatolian_Hieroglyphs  // Anatolian_Hieroglyphs is the set of Unicode characters in script Anatolian_Hieroglyphs.
        Arabic                 = _Arabic                 // Arabic is the set of Unicode characters in script Arabic.
        Armenian               = _Armenian               // Armenian is the set of Unicode characters in script Armenian.
        Avestan                = _Avestan                // Avestan is the set of Unicode characters in script Avestan.
@@ -4859,6 +4999,7 @@ var (
        Han                    = _Han                    // Han is the set of Unicode characters in script Han.
        Hangul                 = _Hangul                 // Hangul is the set of Unicode characters in script Hangul.
        Hanunoo                = _Hanunoo                // Hanunoo is the set of Unicode characters in script Hanunoo.
+       Hatran                 = _Hatran                 // Hatran is the set of Unicode characters in script Hatran.
        Hebrew                 = _Hebrew                 // Hebrew is the set of Unicode characters in script Hebrew.
        Hiragana               = _Hiragana               // Hiragana is the set of Unicode characters in script Hiragana.
        Imperial_Aramaic       = _Imperial_Aramaic       // Imperial_Aramaic is the set of Unicode characters in script Imperial_Aramaic.
@@ -4895,12 +5036,14 @@ var (
        Modi                   = _Modi                   // Modi is the set of Unicode characters in script Modi.
        Mongolian              = _Mongolian              // Mongolian is the set of Unicode characters in script Mongolian.
        Mro                    = _Mro                    // Mro is the set of Unicode characters in script Mro.
+       Multani                = _Multani                // Multani is the set of Unicode characters in script Multani.
        Myanmar                = _Myanmar                // Myanmar is the set of Unicode characters in script Myanmar.
        Nabataean              = _Nabataean              // Nabataean is the set of Unicode characters in script Nabataean.
        New_Tai_Lue            = _New_Tai_Lue            // New_Tai_Lue is the set of Unicode characters in script New_Tai_Lue.
        Nko                    = _Nko                    // Nko is the set of Unicode characters in script Nko.
        Ogham                  = _Ogham                  // Ogham is the set of Unicode characters in script Ogham.
        Ol_Chiki               = _Ol_Chiki               // Ol_Chiki is the set of Unicode characters in script Ol_Chiki.
+       Old_Hungarian          = _Old_Hungarian          // Old_Hungarian is the set of Unicode characters in script Old_Hungarian.
        Old_Italic             = _Old_Italic             // Old_Italic is the set of Unicode characters in script Old_Italic.
        Old_North_Arabian      = _Old_North_Arabian      // Old_North_Arabian is the set of Unicode characters in script Old_North_Arabian.
        Old_Permic             = _Old_Permic             // Old_Permic is the set of Unicode characters in script Old_Permic.
@@ -4922,6 +5065,7 @@ var (
        Sharada                = _Sharada                // Sharada is the set of Unicode characters in script Sharada.
        Shavian                = _Shavian                // Shavian is the set of Unicode characters in script Shavian.
        Siddham                = _Siddham                // Siddham is the set of Unicode characters in script Siddham.
+       SignWriting            = _SignWriting            // SignWriting is the set of Unicode characters in script SignWriting.
        Sinhala                = _Sinhala                // Sinhala is the set of Unicode characters in script Sinhala.
        Sora_Sompeng           = _Sora_Sompeng           // Sora_Sompeng is the set of Unicode characters in script Sora_Sompeng.
        Sundanese              = _Sundanese              // Sundanese is the set of Unicode characters in script Sundanese.
@@ -4947,7 +5091,7 @@ var (
 )
 
 // Generated by running
-//     maketables --props=all --url=http://www.unicode.org/Public/7.0.0/ucd/
+//     maketables --props=all --url=http://www.unicode.org/Public/8.0.0/ucd/
 // DO NOT EDIT
 
 // Properties is the set of Unicode property tables.
@@ -5043,7 +5187,7 @@ var _Deprecated = &RangeTable{
        },
        R32: []Range32{
                {0xe0001, 0xe0001, 1},
-               {0xe0020, 0xe007f, 1},
+               {0xe007f, 0xe007f, 1},
        },
 }
 
@@ -5077,7 +5221,7 @@ var _Diacritic = &RangeTable{
                {0x07a6, 0x07b0, 1},
                {0x07eb, 0x07f5, 1},
                {0x0818, 0x0819, 1},
-               {0x08e4, 0x08fe, 1},
+               {0x08e3, 0x08fe, 1},
                {0x093c, 0x093c, 1},
                {0x094d, 0x094d, 1},
                {0x0951, 0x0954, 1},
@@ -5164,7 +5308,7 @@ var _Diacritic = &RangeTable{
                {0xab5b, 0xab5f, 1},
                {0xabec, 0xabed, 1},
                {0xfb1e, 0xfb1e, 1},
-               {0xfe20, 0xfe2d, 1},
+               {0xfe20, 0xfe2f, 1},
                {0xff3e, 0xff3e, 1},
                {0xff40, 0xff40, 1},
                {0xff70, 0xff70, 1},
@@ -5178,6 +5322,7 @@ var _Diacritic = &RangeTable{
                {0x11133, 0x11134, 1},
                {0x11173, 0x11173, 1},
                {0x111c0, 0x111c0, 1},
+               {0x111ca, 0x111cc, 1},
                {0x11235, 0x11236, 1},
                {0x112e9, 0x112ea, 1},
                {0x1133c, 0x1133c, 1},
@@ -5188,6 +5333,7 @@ var _Diacritic = &RangeTable{
                {0x115bf, 0x115c0, 1},
                {0x1163f, 0x1163f, 1},
                {0x116b6, 0x116b7, 1},
+               {0x1172b, 0x1172b, 1},
                {0x16af0, 0x16af4, 1},
                {0x16f8f, 0x16f9f, 1},
                {0x1d167, 0x1d169, 1},
@@ -5281,7 +5427,7 @@ var _Ideographic = &RangeTable{
                {0x3021, 0x3029, 1},
                {0x3038, 0x303a, 1},
                {0x3400, 0x4db5, 1},
-               {0x4e00, 0x9fcc, 1},
+               {0x4e00, 0x9fd5, 1},
                {0xf900, 0xfa6d, 1},
                {0xfa70, 0xfad9, 1},
        },
@@ -5289,6 +5435,7 @@ var _Ideographic = &RangeTable{
                {0x20000, 0x2a6d6, 1},
                {0x2a700, 0x2b734, 1},
                {0x2b740, 0x2b81d, 1},
+               {0x2b820, 0x2cea1, 1},
                {0x2f800, 0x2fa1d, 1},
        },
 }
@@ -5303,6 +5450,8 @@ var _Logical_Order_Exception = &RangeTable{
        R16: []Range16{
                {0x0e40, 0x0e44, 1},
                {0x0ec0, 0x0ec4, 1},
+               {0x19b5, 0x19b7, 1},
+               {0x19ba, 0x19ba, 1},
                {0xaab5, 0xaab6, 1},
                {0xaab9, 0xaab9, 1},
                {0xaabb, 0xaabc, 1},
@@ -5357,7 +5506,7 @@ var _Other_Alphabetic = &RangeTable{
                {0x081b, 0x0823, 1},
                {0x0825, 0x0827, 1},
                {0x0829, 0x082c, 1},
-               {0x08e4, 0x08e9, 1},
+               {0x08e3, 0x08e9, 1},
                {0x08f0, 0x0903, 1},
                {0x093a, 0x093b, 1},
                {0x093e, 0x094c, 1},
@@ -5445,8 +5594,6 @@ var _Other_Alphabetic = &RangeTable{
                {0x18a9, 0x18a9, 1},
                {0x1920, 0x192b, 1},
                {0x1930, 0x1938, 1},
-               {0x19b0, 0x19c0, 1},
-               {0x19c8, 0x19c9, 1},
                {0x1a17, 0x1a1b, 1},
                {0x1a55, 0x1a5e, 1},
                {0x1a61, 0x1a74, 1},
@@ -5462,7 +5609,7 @@ var _Other_Alphabetic = &RangeTable{
                {0x24b6, 0x24e9, 1},
                {0x2de0, 0x2dff, 1},
                {0xa674, 0xa67b, 1},
-               {0xa69f, 0xa69f, 1},
+               {0xa69e, 0xa69f, 1},
                {0xa823, 0xa827, 1},
                {0xa880, 0xa881, 1},
                {0xa8b4, 0xa8c3, 1},
@@ -5498,7 +5645,7 @@ var _Other_Alphabetic = &RangeTable{
                {0x1122c, 0x11234, 1},
                {0x11237, 0x11237, 1},
                {0x112df, 0x112e8, 1},
-               {0x11301, 0x11303, 1},
+               {0x11300, 0x11303, 1},
                {0x1133e, 0x11344, 1},
                {0x11347, 0x11348, 1},
                {0x1134b, 0x1134c, 1},
@@ -5507,9 +5654,11 @@ var _Other_Alphabetic = &RangeTable{
                {0x114b0, 0x114c1, 1},
                {0x115af, 0x115b5, 1},
                {0x115b8, 0x115be, 1},
+               {0x115dc, 0x115dd, 1},
                {0x11630, 0x1163e, 1},
                {0x11640, 0x11640, 1},
                {0x116ab, 0x116b5, 1},
+               {0x1171d, 0x1172a, 1},
                {0x16b30, 0x16b36, 1},
                {0x16f51, 0x16f7e, 1},
                {0x1bc9e, 0x1bc9e, 1},
@@ -5890,16 +6039,20 @@ var _STerm = &RangeTable{
                {0x11141, 0x11143, 1},
                {0x111c5, 0x111c6, 1},
                {0x111cd, 0x111cd, 1},
+               {0x111de, 0x111df, 1},
                {0x11238, 0x11239, 1},
                {0x1123b, 0x1123c, 1},
+               {0x112a9, 0x112a9, 1},
                {0x115c2, 0x115c3, 1},
-               {0x115c9, 0x115c9, 1},
+               {0x115c9, 0x115d7, 1},
                {0x11641, 0x11642, 1},
+               {0x1173c, 0x1173e, 1},
                {0x16a6e, 0x16a6f, 1},
                {0x16af5, 0x16af5, 1},
                {0x16b37, 0x16b38, 1},
                {0x16b44, 0x16b44, 1},
                {0x1bc9f, 0x1bc9f, 1},
+               {0x1da88, 0x1da88, 1},
        },
        LatinOffset: 3,
 }
@@ -6023,16 +6176,20 @@ var _Terminal_Punctuation = &RangeTable{
                {0x11141, 0x11143, 1},
                {0x111c5, 0x111c6, 1},
                {0x111cd, 0x111cd, 1},
+               {0x111de, 0x111df, 1},
                {0x11238, 0x1123c, 1},
+               {0x112a9, 0x112a9, 1},
                {0x115c2, 0x115c5, 1},
-               {0x115c9, 0x115c9, 1},
+               {0x115c9, 0x115d7, 1},
                {0x11641, 0x11642, 1},
+               {0x1173c, 0x1173e, 1},
                {0x12470, 0x12474, 1},
                {0x16a6e, 0x16a6f, 1},
                {0x16af5, 0x16af5, 1},
                {0x16b37, 0x16b39, 1},
                {0x16b44, 0x16b44, 1},
                {0x1bc9f, 0x1bc9f, 1},
+               {0x1da87, 0x1da8a, 1},
        },
        LatinOffset: 5,
 }
@@ -6040,7 +6197,7 @@ var _Terminal_Punctuation = &RangeTable{
 var _Unified_Ideograph = &RangeTable{
        R16: []Range16{
                {0x3400, 0x4db5, 1},
-               {0x4e00, 0x9fcc, 1},
+               {0x4e00, 0x9fd5, 1},
                {0xfa0e, 0xfa0f, 1},
                {0xfa11, 0xfa11, 1},
                {0xfa13, 0xfa14, 1},
@@ -6053,6 +6210,7 @@ var _Unified_Ideograph = &RangeTable{
                {0x20000, 0x2a6d6, 1},
                {0x2a700, 0x2b734, 1},
                {0x2b740, 0x2b81d, 1},
+               {0x2b820, 0x2cea1, 1},
        },
 }
 
@@ -6119,7 +6277,7 @@ var (
 )
 
 // Generated by running
-//     maketables --data=http://www.unicode.org/Public/7.0.0/ucd/UnicodeData.txt --casefolding=http://www.unicode.org/Public/7.0.0/ucd/CaseFolding.txt
+//     maketables --data=http://www.unicode.org/Public/8.0.0/ucd/UnicodeData.txt --casefolding=http://www.unicode.org/Public/8.0.0/ucd/CaseFolding.txt
 // DO NOT EDIT
 
 // CaseRanges is the table describing case mappings for all letters with
@@ -6240,6 +6398,7 @@ var _CaseRanges = []CaseRange{
        {0x028A, 0x028B, d{-217, 0, -217}},
        {0x028C, 0x028C, d{-71, 0, -71}},
        {0x0292, 0x0292, d{-219, 0, -219}},
+       {0x029D, 0x029D, d{42261, 0, 42261}},
        {0x029E, 0x029E, d{42258, 0, 42258}},
        {0x0345, 0x0345, d{84, 0, 84}},
        {0x0370, 0x0373, d{UpperLower, UpperLower, UpperLower}},
@@ -6291,6 +6450,9 @@ var _CaseRanges = []CaseRange{
        {0x10A0, 0x10C5, d{0, 7264, 0}},
        {0x10C7, 0x10C7, d{0, 7264, 0}},
        {0x10CD, 0x10CD, d{0, 7264, 0}},
+       {0x13A0, 0x13EF, d{0, 38864, 0}},
+       {0x13F0, 0x13F5, d{0, 8, 0}},
+       {0x13F8, 0x13FD, d{-8, 0, -8}},
        {0x1D79, 0x1D79, d{35332, 0, 35332}},
        {0x1D7D, 0x1D7D, d{3814, 0, 3814}},
        {0x1E00, 0x1E95, d{UpperLower, UpperLower, UpperLower}},
@@ -6399,10 +6561,17 @@ var _CaseRanges = []CaseRange{
        {0xA7AD, 0xA7AD, d{0, -42305, 0}},
        {0xA7B0, 0xA7B0, d{0, -42258, 0}},
        {0xA7B1, 0xA7B1, d{0, -42282, 0}},
+       {0xA7B2, 0xA7B2, d{0, -42261, 0}},
+       {0xA7B3, 0xA7B3, d{0, 928, 0}},
+       {0xA7B4, 0xA7B7, d{UpperLower, UpperLower, UpperLower}},
+       {0xAB53, 0xAB53, d{-928, 0, -928}},
+       {0xAB70, 0xABBF, d{-38864, 0, -38864}},
        {0xFF21, 0xFF3A, d{0, 32, 0}},
        {0xFF41, 0xFF5A, d{-32, 0, -32}},
        {0x10400, 0x10427, d{0, 40, 0}},
        {0x10428, 0x1044F, d{-40, 0, -40}},
+       {0x10C80, 0x10CB2, d{0, 64, 0}},
+       {0x10CC0, 0x10CF2, d{-64, 0, -64}},
        {0x118A0, 0x118BF, d{0, 32, 0}},
        {0x118C0, 0x118DF, d{-32, 0, -32}},
 }
@@ -6832,6 +7001,7 @@ var foldLl = &RangeTable{
                {0x0531, 0x0556, 1},
                {0x10a0, 0x10c5, 1},
                {0x10c7, 0x10cd, 6},
+               {0x13a0, 0x13f5, 1},
                {0x1e00, 0x1e94, 2},
                {0x1e9e, 0x1efe, 2},
                {0x1f08, 0x1f0f, 1},
@@ -6872,11 +7042,13 @@ var foldLl = &RangeTable{
                {0xa790, 0xa792, 2},
                {0xa796, 0xa7aa, 2},
                {0xa7ab, 0xa7ad, 1},
-               {0xa7b0, 0xa7b1, 1},
-               {0xff21, 0xff3a, 1},
+               {0xa7b0, 0xa7b4, 1},
+               {0xa7b6, 0xff21, 22379},
+               {0xff22, 0xff3a, 1},
        },
        R32: []Range32{
                {0x10400, 0x10427, 1},
+               {0x10c80, 0x10cb2, 1},
                {0x118a0, 0x118bf, 1},
        },
        LatinOffset: 3,
@@ -6942,9 +7114,10 @@ var foldLu = &RangeTable{
                {0x0275, 0x027d, 8},
                {0x0280, 0x0283, 3},
                {0x0287, 0x028c, 1},
-               {0x0292, 0x029e, 12},
-               {0x0345, 0x0371, 44},
-               {0x0373, 0x037b, 4},
+               {0x0292, 0x029d, 11},
+               {0x029e, 0x0345, 167},
+               {0x0371, 0x0373, 2},
+               {0x0377, 0x037b, 4},
                {0x037c, 0x037d, 1},
                {0x03ac, 0x03af, 1},
                {0x03b1, 0x03ce, 1},
@@ -6959,6 +7132,7 @@ var foldLu = &RangeTable{
                {0x04c2, 0x04ce, 2},
                {0x04cf, 0x052f, 2},
                {0x0561, 0x0586, 1},
+               {0x13f8, 0x13fd, 1},
                {0x1d79, 0x1d7d, 4},
                {0x1e01, 0x1e95, 2},
                {0x1e9b, 0x1ea1, 6},
@@ -6994,10 +7168,14 @@ var foldLu = &RangeTable{
                {0xa78c, 0xa791, 5},
                {0xa793, 0xa797, 4},
                {0xa799, 0xa7a9, 2},
+               {0xa7b5, 0xa7b7, 2},
+               {0xab53, 0xab70, 29},
+               {0xab71, 0xabbf, 1},
                {0xff41, 0xff5a, 1},
        },
        R32: []Range32{
                {0x10428, 0x1044f, 1},
+               {0x10cc0, 0x10cf2, 1},
                {0x118c0, 0x118df, 1},
        },
        LatinOffset: 4,
@@ -7023,7 +7201,7 @@ var foldMn = &RangeTable{
 // If there is no entry for a script name, there are no such points.
 var FoldScript = map[string]*RangeTable{}
 
-// Range entries: 3532 16-bit, 1204 32-bit, 4736 total.
-// Range bytes: 21192 16-bit, 14448 32-bit, 35640 total.
+// Range entries: 3546 16-bit, 1306 32-bit, 4852 total.
+// Range bytes: 21276 16-bit, 15672 32-bit, 36948 total.
 
 // Fold orbit bytes: 63 pairs, 252 bytes