aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRyo Nihei <nihei.dev@gmail.com>2021-04-30 01:54:02 +0900
committerRyo Nihei <nihei.dev@gmail.com>2021-04-30 01:54:02 +0900
commit43fdbf94ad87ea91a173c72688cad70a0a5f1ab4 (patch)
tree655f651e39f13b5e415445d1ef24f4ecb7511041
parentAdd code point expression (Meet RL1.1 of UTS #18) (diff)
downloadtre-43fdbf94ad87ea91a173c72688cad70a0a5f1ab4.tar.gz
tre-43fdbf94ad87ea91a173c72688cad70a0a5f1ab4.tar.xz
Add character property expression (Meet RL1.2 of UTS #18 partially)
\p{property name=property value} matches a character has the property. When the property name is General_Category, it can be omitted. That is, \p{Letter} equals \p{General_Category=Letter}. Currently, only General_Category is supported. This feature meets RL1.2 of UTS #18 partially. RL1.2 Properties: https://unicode.org/reports/tr18/#RL1.2
-rw-r--r--compiler/lexer.go88
-rw-r--r--compiler/lexer_test.go46
-rw-r--r--compiler/parser.go55
-rw-r--r--compiler/parser_test.go73
-rw-r--r--compiler/syntax_error.go37
-rw-r--r--compiler/ucd.go36
-rw-r--r--compiler/ucd_table.go4089
-rw-r--r--compiler/ucd_table.go.tmpl43
-rw-r--r--generator/main.go70
-rw-r--r--ucd/parser.go238
10 files changed, 4748 insertions, 27 deletions
diff --git a/compiler/lexer.go b/compiler/lexer.go
index 5987e44..1aadf50 100644
--- a/compiler/lexer.go
+++ b/compiler/lexer.go
@@ -23,16 +23,20 @@ const (
tokenKindBExpClose = tokenKind("]")
tokenKindCharRange = tokenKind("-")
tokenKindCodePointLeader = tokenKind("\\u")
+ tokenKindCharPropLeader = tokenKind("\\p")
tokenKindLBrace = tokenKind("{")
tokenKindRBrace = tokenKind("}")
+ tokenKindEqual = tokenKind("=")
tokenKindCodePoint = tokenKind("code point")
+ tokenKindCharPropSymbol = tokenKind("character property symbol")
tokenKindEOF = tokenKind("eof")
)
type token struct {
- kind tokenKind
- char rune
- codePoint string
+ kind tokenKind
+ char rune
+ propSymbol string
+ codePoint string
}
const nullChar = '\u0000'
@@ -51,12 +55,20 @@ func newCodePointToken(codePoint string) *token {
}
}
+func newCharPropSymbolToken(propSymbol string) *token {
+ return &token{
+ kind: tokenKindCharPropSymbol,
+ propSymbol: propSymbol,
+ }
+}
+
type lexerMode string
const (
- lexerModeDefault = lexerMode("default")
- lexerModeBExp = lexerMode("bracket expression")
- lexerModeCPExp = lexerMode("code point expression")
+ lexerModeDefault = lexerMode("default")
+ lexerModeBExp = lexerMode("bracket expression")
+ lexerModeCPExp = lexerMode("code point expression")
+ lexerModeCharPropExp = lexerMode("character property expression")
)
type lexerModeStack struct {
@@ -161,6 +173,8 @@ func (l *lexer) next() (*token, error) {
}
case tokenKindCodePointLeader:
l.modeStack.push(lexerModeCPExp)
+ case tokenKindCharPropLeader:
+ l.modeStack.push(lexerModeCharPropExp)
}
return tok, nil
case lexerModeCPExp:
@@ -173,6 +187,16 @@ func (l *lexer) next() (*token, error) {
l.modeStack.pop()
}
return tok, nil
+ case lexerModeCharPropExp:
+ tok, err := l.nextInCharProp(c)
+ if err != nil {
+ return nil, err
+ }
+ switch tok.kind {
+ case tokenKindRBrace:
+ l.modeStack.pop()
+ }
+ return tok, nil
default:
tok, err := l.nextInDefault(c)
if err != nil {
@@ -187,6 +211,8 @@ func (l *lexer) next() (*token, error) {
l.rangeState = rangeStateReady
case tokenKindCodePointLeader:
l.modeStack.push(lexerModeCPExp)
+ case tokenKindCharPropLeader:
+ l.modeStack.push(lexerModeCharPropExp)
}
return tok, nil
}
@@ -265,6 +291,9 @@ func (l *lexer) nextInDefault(c rune) (*token, error) {
if c == 'u' {
return newToken(tokenKindCodePointLeader, nullChar), nil
}
+ if c == 'p' {
+ return newToken(tokenKindCharPropLeader, nullChar), nil
+ }
if c == '\\' || c == '.' || c == '*' || c == '+' || c == '?' || c == '|' || c == '(' || c == ')' || c == '[' || c == ']' {
return newToken(tokenKindChar, c), nil
}
@@ -317,10 +346,13 @@ func (l *lexer) nextInBExp(c rune) (*token, error) {
if c == 'u' {
return newToken(tokenKindCodePointLeader, nullChar), nil
}
+ if c == 'p' {
+ return newToken(tokenKindCharPropLeader, nullChar), nil
+ }
if c == '\\' || c == '^' || c == '-' || c == ']' {
return newToken(tokenKindChar, c), nil
}
- l.errMsgDetails = fmt.Sprintf("\\%v is not supported", string(c))
+ l.errMsgDetails = fmt.Sprintf("\\%v is not supported in a bracket expression", string(c))
return nil, synErrInvalidEscSeq
default:
return newToken(tokenKindChar, c), nil
@@ -381,6 +413,48 @@ func isHexDigit(c rune) bool {
return false
}
+func (l *lexer) nextInCharProp(c rune) (*token, error) {
+ switch c {
+ case '{':
+ return newToken(tokenKindLBrace, nullChar), nil
+ case '}':
+ return newToken(tokenKindRBrace, nullChar), nil
+ case '=':
+ return newToken(tokenKindEqual, nullChar), nil
+ default:
+ var b strings.Builder
+ fmt.Fprint(&b, string(c))
+ n := 1
+ for {
+ c, eof, err := l.read()
+ if err != nil {
+ return nil, err
+ }
+ if eof {
+ l.restore()
+ if err != nil {
+ return nil, err
+ }
+ break
+ }
+ if c == '}' || c == '=' {
+ err := l.restore()
+ if err != nil {
+ return nil, err
+ }
+ break
+ }
+ fmt.Fprint(&b, string(c))
+ n++
+ }
+ sym := strings.TrimSpace(b.String())
+ if len(sym) == 0 {
+ raiseSyntaxError(synErrCharPropInvalidSymbol)
+ }
+ return newCharPropSymbolToken(sym), nil
+ }
+}
+
func (l *lexer) read() (rune, bool, error) {
if l.reachedEOF {
return l.lastChar, l.reachedEOF, nil
diff --git a/compiler/lexer_test.go b/compiler/lexer_test.go
index 87e3a81..089253b 100644
--- a/compiler/lexer_test.go
+++ b/compiler/lexer_test.go
@@ -401,6 +401,50 @@ func TestLexer(t *testing.T) {
},
err: synErrInvalidCodePoint,
},
+ {
+ caption: "lexer can recognize the special characters and symbols in character property expression mode",
+ src: "\\p{Letter}\\p{General_Category=Letter}[\\p{Letter}\\p{General_Category=Letter}][^\\p{Letter}\\p{General_Category=Letter}]",
+ tokens: []*token{
+ newToken(tokenKindCharPropLeader, nullChar),
+ newToken(tokenKindLBrace, nullChar),
+ newCharPropSymbolToken("Letter"),
+ newToken(tokenKindRBrace, nullChar),
+ newToken(tokenKindCharPropLeader, nullChar),
+ newToken(tokenKindLBrace, nullChar),
+ newCharPropSymbolToken("General_Category"),
+ newToken(tokenKindEqual, nullChar),
+ newCharPropSymbolToken("Letter"),
+ newToken(tokenKindRBrace, nullChar),
+
+ newToken(tokenKindBExpOpen, nullChar),
+ newToken(tokenKindCharPropLeader, nullChar),
+ newToken(tokenKindLBrace, nullChar),
+ newCharPropSymbolToken("Letter"),
+ newToken(tokenKindRBrace, nullChar),
+ newToken(tokenKindCharPropLeader, nullChar),
+ newToken(tokenKindLBrace, nullChar),
+ newCharPropSymbolToken("General_Category"),
+ newToken(tokenKindEqual, nullChar),
+ newCharPropSymbolToken("Letter"),
+ newToken(tokenKindRBrace, nullChar),
+ newToken(tokenKindBExpClose, nullChar),
+
+ newToken(tokenKindInverseBExpOpen, nullChar),
+ newToken(tokenKindCharPropLeader, nullChar),
+ newToken(tokenKindLBrace, nullChar),
+ newCharPropSymbolToken("Letter"),
+ newToken(tokenKindRBrace, nullChar),
+ newToken(tokenKindCharPropLeader, nullChar),
+ newToken(tokenKindLBrace, nullChar),
+ newCharPropSymbolToken("General_Category"),
+ newToken(tokenKindEqual, nullChar),
+ newCharPropSymbolToken("Letter"),
+ newToken(tokenKindRBrace, nullChar),
+ newToken(tokenKindBExpClose, nullChar),
+
+ newToken(tokenKindEOF, nullChar),
+ },
+ },
}
for _, tt := range tests {
t.Run(tt.caption, func(t *testing.T) {
@@ -425,7 +469,7 @@ func TestLexer(t *testing.T) {
}
}
if err != tt.err {
- t.Fatalf("unexpected error; want: %v, got: %v", tt.err, err)
+ t.Fatalf("unexpected error; want: %v, got: %v (%v)", tt.err, err, lex.errMsgDetails)
}
if i < len(tt.tokens) {
t.Fatalf("expecte more tokens")
diff --git a/compiler/parser.go b/compiler/parser.go
index ba15cd0..7b50459 100644
--- a/compiler/parser.go
+++ b/compiler/parser.go
@@ -312,6 +312,9 @@ func (p *parser) parseSingleChar() astNode {
if p.consume(tokenKindCodePointLeader) {
return p.parseCodePoint()
}
+ if p.consume(tokenKindCharPropLeader) {
+ return p.parseCharProp()
+ }
c := p.parseNormalChar()
if c == nil {
if p.consume(tokenKindBExpClose) {
@@ -393,12 +396,62 @@ func (p *parser) parseCodePoint() astNode {
return concat
}
+func (p *parser) parseCharProp() astNode {
+ if !p.consume(tokenKindLBrace) {
+ raiseSyntaxError(synErrCharPropExpInvalidForm)
+ }
+ var sym1, sym2 string
+ if !p.consume(tokenKindCharPropSymbol) {
+ raiseSyntaxError(synErrCharPropExpInvalidForm)
+ }
+ sym1 = p.lastTok.propSymbol
+ if p.consume(tokenKindEqual) {
+ if !p.consume(tokenKindCharPropSymbol) {
+ raiseSyntaxError(synErrCharPropExpInvalidForm)
+ }
+ sym2 = p.lastTok.propSymbol
+ }
+
+ var propName, propVal string
+ if sym2 != "" {
+ propName = sym1
+ propVal = sym2
+ } else {
+ propName = "gc"
+ propVal = sym1
+ }
+ cpRanges, err := findCodePointRanges(propName, propVal)
+ if err != nil {
+ p.errMsgDetails = fmt.Sprintf("%v", err)
+ raiseSyntaxError(synErrCharPropUnsupported)
+ }
+
+ var alt astNode
+ for _, r := range cpRanges {
+ from := genNormalCharAST(r.From)
+ to := genNormalCharAST(r.To)
+ alt = genAltNode(
+ alt,
+ genRangeAST(from, to),
+ )
+ }
+
+ if !p.consume(tokenKindRBrace) {
+ raiseSyntaxError(synErrCharPropExpInvalidForm)
+ }
+
+ return alt
+}
+
func (p *parser) parseNormalChar() astNode {
if !p.consume(tokenKindChar) {
return nil
}
+ return genNormalCharAST(p.lastTok.char)
+}
- b := []byte(string(p.lastTok.char))
+func genNormalCharAST(c rune) astNode {
+ b := []byte(string(c))
switch len(b) {
case 1:
return newSymbolNode(b[0])
diff --git a/compiler/parser_test.go b/compiler/parser_test.go
index c636d8b..5a138ab 100644
--- a/compiler/parser_test.go
+++ b/compiler/parser_test.go
@@ -29,6 +29,11 @@ func TestParser_parse(t *testing.T) {
pattern string
ast astNode
syntaxError *SyntaxError
+
+ // When an AST is large, as patterns containing a character property expression,
+ // this test only checks that the pattern is parsable.
+ // The check of the validity of such AST is performed by checking that it can be matched correctly using the driver.
+ skipTestAST bool
}{
{
pattern: "a",
@@ -84,6 +89,10 @@ func TestParser_parse(t *testing.T) {
),
},
{
+ pattern: "\\p{Letter}?",
+ skipTestAST: true,
+ },
+ {
pattern: "(a)?",
ast: genConcatNode(
newOptionNode(
@@ -186,6 +195,10 @@ func TestParser_parse(t *testing.T) {
),
},
{
+ pattern: "\\p{Letter}*",
+ skipTestAST: true,
+ },
+ {
pattern: "((a*)*)*",
ast: genConcatNode(
newRepeatNode(
@@ -290,6 +303,10 @@ func TestParser_parse(t *testing.T) {
),
},
{
+ pattern: "\\p{Letter}+",
+ skipTestAST: true,
+ },
+ {
pattern: "((a+)+)+",
ast: genConcatNode(
genConcatNode(
@@ -838,6 +855,58 @@ func TestParser_parse(t *testing.T) {
syntaxError: synErrCPExpInvalidForm,
},
{
+ pattern: "\\p{Letter}",
+ skipTestAST: true,
+ },
+ {
+ pattern: "\\p{General_Category=Letter}",
+ skipTestAST: true,
+ },
+ {
+ pattern: "\\p{ Letter }",
+ skipTestAST: true,
+ },
+ {
+ pattern: "\\p{ General_Category = Letter }",
+ skipTestAST: true,
+ },
+ {
+ pattern: "\\p",
+ syntaxError: synErrCharPropExpInvalidForm,
+ },
+ {
+ pattern: "\\p{",
+ syntaxError: synErrCharPropExpInvalidForm,
+ },
+ {
+ pattern: "\\p{Letter",
+ syntaxError: synErrCharPropExpInvalidForm,
+ },
+ {
+ pattern: "\\p{General_Category=}",
+ syntaxError: synErrCharPropExpInvalidForm,
+ },
+ {
+ pattern: "\\p{General_Category= }",
+ syntaxError: synErrCharPropInvalidSymbol,
+ },
+ {
+ pattern: "\\p{=Letter}",
+ syntaxError: synErrCharPropExpInvalidForm,
+ },
+ {
+ pattern: "\\p{ =Letter}",
+ syntaxError: synErrCharPropInvalidSymbol,
+ },
+ {
+ pattern: "\\p{=}",
+ syntaxError: synErrCharPropExpInvalidForm,
+ },
+ {
+ pattern: "\\p{}",
+ syntaxError: synErrCharPropExpInvalidForm,
+ },
+ {
pattern: "(a)",
ast: newConcatNode(
newSymbolNodeWithPos(byte('a'), symPos(1)),
@@ -1031,7 +1100,9 @@ func TestParser_parse(t *testing.T) {
t.Fatal("AST is nil")
}
// printAST(os.Stdout, ast, "", "", false)
- testAST(t, tt.ast, ast)
+ if !tt.skipTestAST {
+ testAST(t, tt.ast, ast)
+ }
}
})
}
diff --git a/compiler/syntax_error.go b/compiler/syntax_error.go
index df8977d..d784995 100644
--- a/compiler/syntax_error.go
+++ b/compiler/syntax_error.go
@@ -18,23 +18,26 @@ func (e *SyntaxError) Error() string {
var (
// lexical errors
- synErrIncompletedEscSeq = newSyntaxError("incompleted escape sequence; unexpected EOF following \\")
- synErrInvalidEscSeq = newSyntaxError("invalid escape sequence")
- synErrInvalidCodePoint = newSyntaxError("code points must consist of just 4 or 6 hex digits")
+ synErrIncompletedEscSeq = newSyntaxError("incompleted escape sequence; unexpected EOF following \\")
+ synErrInvalidEscSeq = newSyntaxError("invalid escape sequence")
+ synErrInvalidCodePoint = newSyntaxError("code points must consist of just 4 or 6 hex digits")
+ synErrCharPropInvalidSymbol = newSyntaxError("invalid character property symbol")
// syntax errors
- synErrUnexpectedToken = newSyntaxError("unexpected token")
- synErrNullPattern = newSyntaxError("a pattern must be a non-empty byte sequence")
- synErrAltLackOfOperand = newSyntaxError("an alternation expression must have operands")
- synErrRepNoTarget = newSyntaxError("a repeat expression must have an operand")
- synErrGroupNoElem = newSyntaxError("a grouping expression must include at least one character")
- synErrGroupUnclosed = newSyntaxError("unclosed grouping expression")
- synErrGroupNoInitiator = newSyntaxError(") needs preceding (")
- synErrGroupInvalidForm = newSyntaxError("invalid grouping expression")
- synErrBExpNoElem = newSyntaxError("a bracket expression must include at least one character")
- synErrBExpUnclosed = newSyntaxError("unclosed bracket expression")
- synErrBExpInvalidForm = newSyntaxError("invalid bracket expression")
- synErrRangeInvalidOrder = newSyntaxError("a range expression with invalid order")
- synErrCPExpInvalidForm = newSyntaxError("invalid code point expression")
- synErrCPExpOutOfRange = newSyntaxError("a code point must be between U+0000 to U+10FFFF")
+ synErrUnexpectedToken = newSyntaxError("unexpected token")
+ synErrNullPattern = newSyntaxError("a pattern must be a non-empty byte sequence")
+ synErrAltLackOfOperand = newSyntaxError("an alternation expression must have operands")
+ synErrRepNoTarget = newSyntaxError("a repeat expression must have an operand")
+ synErrGroupNoElem = newSyntaxError("a grouping expression must include at least one character")
+ synErrGroupUnclosed = newSyntaxError("unclosed grouping expression")
+ synErrGroupNoInitiator = newSyntaxError(") needs preceding (")
+ synErrGroupInvalidForm = newSyntaxError("invalid grouping expression")
+ synErrBExpNoElem = newSyntaxError("a bracket expression must include at least one character")
+ synErrBExpUnclosed = newSyntaxError("unclosed bracket expression")
+ synErrBExpInvalidForm = newSyntaxError("invalid bracket expression")
+ synErrRangeInvalidOrder = newSyntaxError("a range expression with invalid order")
+ synErrCPExpInvalidForm = newSyntaxError("invalid code point expression")
+ synErrCPExpOutOfRange = newSyntaxError("a code point must be between U+0000 to U+10FFFF")
+ synErrCharPropExpInvalidForm = newSyntaxError("invalid character property expression")
+ synErrCharPropUnsupported = newSyntaxError("unsupported character property")
)
diff --git a/compiler/ucd.go b/compiler/ucd.go
new file mode 100644
index 0000000..7432ba6
--- /dev/null
+++ b/compiler/ucd.go
@@ -0,0 +1,36 @@
+//go:generate go run ../generator/main.go
+//go:generate gofmt -w ucd_table.go
+
+package compiler
+
+import (
+ "fmt"
+
+ "github.com/nihei9/maleeni/ucd"
+)
+
+func findCodePointRanges(propName, propVal string) ([]*ucd.CodePointRange, error) {
+ name := ucd.NormalizeSymbolicValue(propName)
+ val := ucd.NormalizeSymbolicValue(propVal)
+ name, ok := propertyNameAbbs[name]
+ if !ok {
+ return nil, fmt.Errorf("unsupported character property: %v", propName)
+ }
+ val, ok = generalCategoryValueAbbs[val]
+ if !ok {
+ return nil, fmt.Errorf("unsupported character property value: %v", val)
+ }
+ vals, ok := compositGeneralCategories[val]
+ if !ok {
+ vals = []string{val}
+ }
+ var ranges []*ucd.CodePointRange
+ for _, v := range vals {
+ rs, ok := generalCategoryCodePoints[v]
+ if !ok {
+ return nil, fmt.Errorf("invalie value of the General_Category property: %v", v)
+ }
+ ranges = append(ranges, rs...)
+ }
+ return ranges, nil
+}
diff --git a/compiler/ucd_table.go b/compiler/ucd_table.go
new file mode 100644
index 0000000..e9fa01a
--- /dev/null
+++ b/compiler/ucd_table.go
@@ -0,0 +1,4089 @@
+// Code generated by generator/main.go; DO NOT EDIT.
+
+package compiler
+
+import "github.com/nihei9/maleeni/ucd"
+
+// https://www.unicode.org/reports/tr44/#GC_Values_Table
+var compositGeneralCategories = map[string][]string{
+ // Cased_Letter
+ "lc": {"lu", "ll", "lt"},
+ // Letter
+ "l": {"lu", "ll", "lt", "lm", "lo"},
+ // Mark
+ "m": {"mm", "mc", "me"},
+ // Number
+ "n": {"nd", "nl", "no"},
+ // Punctuation
+ "p": {"pc", "pd", "ps", "pi", "pe", "pf", "po"},
+ // Symbol
+ "s": {"sm", "sc", "sk", "so"},
+ // Separator
+ "z": {"zs", "zl", "zp"},
+ // Other
+ "c": {"cc", "cf", "cs", "co", "cn"},
+}
+
+// https://www.unicode.org/Public/13.0.0/ucd/PropertyAliases.txt
+var propertyNameAbbs = map[string]string{
+ "generalcategory": "gc",
+ "gc": "gc",
+}
+
+// https://www.unicode.org/Public/13.0.0/ucd/PropertyValueAliases.txt
+var generalCategoryValueAbbs = map[string]string{
+ "c": "c",
+ "casedletter": "lc",
+ "cc": "cc",
+ "cf": "cf",
+ "closepunctuation": "pe",
+ "cn": "cn",
+ "cntrl": "cc",
+ "co": "co",
+ "combiningmark": "m",
+ "connectorpunctuation": "pc",
+ "control": "cc",
+ "cs": "cs",
+ "currencysymbol": "sc",
+ "dashpunctuation": "pd",
+ "decimalnumber": "nd",
+ "digit": "nd",
+ "enclosingmark": "me",
+ "finalpunctuation": "pf",
+ "format": "cf",
+ "initialpunctuation": "pi",
+ "l": "l",
+ "lc": "lc",
+ "letter": "l",
+ "letternumber": "nl",
+ "lineseparator": "zl",
+ "ll": "ll",
+ "lm": "lm",
+ "lo": "lo",
+ "lowercaseletter": "ll",
+ "lt": "lt",
+ "lu": "lu",
+ "m": "m",
+ "mark": "m",
+ "mathsymbol": "sm",
+ "mc": "mc",
+ "me": "me",
+ "mn": "mn",
+ "modifierletter": "lm",
+ "modifiersymbol": "sk",
+ "n": "n",
+ "nd": "nd",
+ "nl": "nl",
+ "no": "no",
+ "nonspacingmark": "mn",
+ "number": "n",
+ "openpunctuation": "ps",
+ "other": "c",
+ "otherletter": "lo",
+ "othernumber": "no",
+ "otherpunctuation": "po",
+ "othersymbol": "so",
+ "p": "p",
+ "paragraphseparator": "zp",
+ "pc": "pc",
+ "pd": "pd",
+ "pe": "pe",
+ "pf": "pf",
+ "pi": "pi",
+ "po": "po",
+ "privateuse": "co",
+ "ps": "ps",
+ "punct": "p",
+ "punctuation": "p",
+ "s": "s",
+ "sc": "sc",
+ "separator": "z",
+ "sk": "sk",
+ "sm": "sm",
+ "so": "so",
+ "spaceseparator": "zs",
+ "spacingmark": "mc",
+ "surrogate": "cs",
+ "symbol": "s",
+ "titlecaseletter": "lt",
+ "unassigned": "cn",
+ "uppercaseletter": "lu",
+ "z": "z",
+ "zl": "zl",
+ "zp": "zp",
+ "zs": "zs",
+}
+
+// https://www.unicode.org/Public/13.0.0/ucd/UnicodeData.txt
+var generalCategoryCodePoints = map[string][]*ucd.CodePointRange{
+ "cc": {
+ &ucd.CodePointRange{From: rune(0), To: rune(31)},
+ &ucd.CodePointRange{From: rune(127), To: rune(159)},
+ },
+ "cf": {
+ &ucd.CodePointRange{From: rune(173), To: rune(173)},
+ &ucd.CodePointRange{From: rune(1536), To: rune(1541)},
+ &ucd.CodePointRange{From: rune(1564), To: rune(1564)},
+ &ucd.CodePointRange{From: rune(1757), To: rune(1757)},
+ &ucd.CodePointRange{From: rune(1807), To: rune(1807)},
+ &ucd.CodePointRange{From: rune(2274), To: rune(2274)},
+ &ucd.CodePointRange{From: rune(6158), To: rune(6158)},
+ &ucd.CodePointRange{From: rune(8203), To: rune(8207)},
+ &ucd.CodePointRange{From: rune(8234), To: rune(8238)},
+ &ucd.CodePointRange{From: rune(8288), To: rune(8292)},
+ &ucd.CodePointRange{From: rune(8294), To: rune(8303)},
+ &ucd.CodePointRange{From: rune(65279), To: rune(65279)},
+ &ucd.CodePointRange{From: rune(65529), To: rune(65531)},
+ &ucd.CodePointRange{From: rune(69821), To: rune(69821)},
+ &ucd.CodePointRange{From: rune(69837), To: rune(69837)},
+ &ucd.CodePointRange{From: rune(78896), To: rune(78904)},
+ &ucd.CodePointRange{From: rune(113824), To: rune(113827)},
+ &ucd.CodePointRange{From: rune(119155), To: rune(119162)},
+ &ucd.CodePointRange{From: rune(917505), To: rune(917505)},
+ &ucd.CodePointRange{From: rune(917536), To: rune(917631)},
+ },
+ "co": {
+ &ucd.CodePointRange{From: rune(57344), To: rune(57344)},
+ &ucd.CodePointRange{From: rune(63743), To: rune(63743)},
+ &ucd.CodePointRange{From: rune(983040), To: rune(983040)},
+ &ucd.CodePointRange{From: rune(1048573), To: rune(1048573)},
+ &ucd.CodePointRange{From: rune(1048576), To: rune(1048576)},
+ &ucd.CodePointRange{From: rune(1114109), To: rune(1114109)},
+ },
+ "cs": {
+ &ucd.CodePointRange{From: rune(55296), To: rune(55296)},
+ &ucd.CodePointRange{From: rune(56191), To: rune(56192)},
+ &ucd.CodePointRange{From: rune(56319), To: rune(56320)},
+ &ucd.CodePointRange{From: rune(57343), To: rune(57343)},
+ },
+ "ll": {
+ &ucd.CodePointRange{From: rune(97), To: rune(122)},
+ &ucd.CodePointRange{From: rune(181), To: rune(181)},
+ &ucd.CodePointRange{From: rune(223), To: rune(246)},
+ &ucd.CodePointRange{From: rune(248), To: rune(255)},
+ &ucd.CodePointRange{From: rune(257), To: rune(257)},
+ &ucd.CodePointRange{From: rune(259), To: rune(259)},
+ &ucd.CodePointRange{From: rune(261), To: rune(261)},
+ &ucd.CodePointRange{From: rune(263), To: rune(263)},
+ &ucd.CodePointRange{From: rune(265), To: rune(265)},
+ &ucd.CodePointRange{From: rune(267), To: rune(267)},
+ &ucd.CodePointRange{From: rune(269), To: rune(269)},
+ &ucd.CodePointRange{From: rune(271), To: rune(271)},
+ &ucd.CodePointRange{From: rune(273), To: rune(273)},
+ &ucd.CodePointRange{From: rune(275), To: rune(275)},
+ &ucd.CodePointRange{From: rune(277), To: rune(277)},
+ &ucd.CodePointRange{From: rune(279), To: rune(279)},
+ &ucd.CodePointRange{From: rune(281), To: rune(281)},
+ &ucd.CodePointRange{From: rune(283), To: rune(283)},
+ &ucd.CodePointRange{From: rune(285), To: rune(285)},
+ &ucd.CodePointRange{From: rune(287), To: rune(287)},
+ &ucd.CodePointRange{From: rune(289), To: rune(289)},
+ &ucd.CodePointRange{From: rune(291), To: rune(291)},
+ &ucd.CodePointRange{From: rune(293), To: rune(293)},
+ &ucd.CodePointRange{From: rune(295), To: rune(295)},
+ &ucd.CodePointRange{From: rune(297), To: rune(297)},
+ &ucd.CodePointRange{From: rune(299), To: rune(299)},
+ &ucd.CodePointRange{From: rune(301), To: rune(301)},
+ &ucd.CodePointRange{From: rune(303), To: rune(303)},
+ &ucd.CodePointRange{From: rune(305), To: rune(305)},
+ &ucd.CodePointRange{From: rune(307), To: rune(307)},
+ &ucd.CodePointRange{From: rune(309), To: rune(309)},
+ &ucd.CodePointRange{From: rune(311), To: rune(312)},
+ &ucd.CodePointRange{From: rune(314), To: rune(314)},
+ &ucd.CodePointRange{From: rune(316), To: rune(316)},
+ &ucd.CodePointRange{From: rune(318), To: rune(318)},
+ &ucd.CodePointRange{From: rune(320), To: rune(320)},
+ &ucd.CodePointRange{From: rune(322), To: rune(322)},
+ &ucd.CodePointRange{From: rune(324), To: rune(324)},
+ &ucd.CodePointRange{From: rune(326), To: rune(326)},
+ &ucd.CodePointRange{From: rune(328), To: rune(329)},
+ &ucd.CodePointRange{From: rune(331), To: rune(331)},
+ &ucd.CodePointRange{From: rune(333), To: rune(333)},
+ &ucd.CodePointRange{From: rune(335), To: rune(335)},
+ &ucd.CodePointRange{From: rune(337), To: rune(337)},
+ &ucd.CodePointRange{From: rune(339), To: rune(339)},
+ &ucd.CodePointRange{From: rune(341), To: rune(341)},
+ &ucd.CodePointRange{From: rune(343), To: rune(343)},
+ &ucd.CodePointRange{From: rune(345), To: rune(345)},
+ &ucd.CodePointRange{From: rune(347), To: rune(347)},
+ &ucd.CodePointRange{From: rune(349), To: rune(349)},
+ &ucd.CodePointRange{From: rune(351), To: rune(351)},
+ &ucd.CodePointRange{From: rune(353), To: rune(353)},
+ &ucd.CodePointRange{From: rune(355), To: rune(355)},
+ &ucd.CodePointRange{From: rune(357), To: rune(357)},
+ &ucd.CodePointRange{From: rune(359), To: rune(359)},
+ &ucd.CodePointRange{From: rune(361), To: rune(361)},
+ &ucd.CodePointRange{From: rune(363), To: rune(363)},
+ &ucd.CodePointRange{From: rune(365), To: rune(365)},
+ &ucd.CodePointRange{From: rune(367), To: rune(367)},
+ &ucd.CodePointRange{From: rune(369), To: rune(369)},
+ &ucd.CodePointRange{From: rune(371), To: rune(371)},
+ &ucd.CodePointRange{From: rune(373), To: rune(373)},
+ &ucd.CodePointRange{From: rune(375), To: rune(375)},
+ &ucd.CodePointRange{From: rune(378), To: rune(378)},
+ &ucd.CodePointRange{From: rune(380), To: rune(380)},
+ &ucd.CodePointRange{From: rune(382), To: rune(384)},
+ &ucd.CodePointRange{From: rune(387), To: rune(387)},
+ &ucd.CodePointRange{From: rune(389), To: rune(389)},
+ &ucd.CodePointRange{From: rune(392), To: rune(392)},
+ &ucd.CodePointRange{From: rune(396), To: rune(397)},
+ &ucd.CodePointRange{From: rune(402), To: rune(402)},
+ &ucd.CodePointRange{From: rune(405), To: rune(405)},
+ &ucd.CodePointRange{From: rune(409), To: rune(411)},
+ &ucd.CodePointRange{From: rune(414), To: rune(414)},
+ &ucd.CodePointRange{From: rune(417), To: rune(417)},
+ &ucd.CodePointRange{From: rune(419), To: rune(419)},
+ &ucd.CodePointRange{From: rune(421), To: rune(421)},
+ &ucd.CodePointRange{From: rune(424), To: rune(424)},
+ &ucd.CodePointRange{From: rune(426), To: rune(427)},
+ &ucd.CodePointRange{From: rune(429), To: rune(429)},
+ &ucd.CodePointRange{From: rune(432), To: rune(432)},
+ &ucd.CodePointRange{From: rune(436), To: rune(436)},
+ &ucd.CodePointRange{From: rune(438), To: rune(438)},
+ &ucd.CodePointRange{From: rune(441), To: rune(442)},
+ &ucd.CodePointRange{From: rune(445), To: rune(447)},
+ &ucd.CodePointRange{From: rune(454), To: rune(454)},
+ &ucd.CodePointRange{From: rune(457), To: rune(457)},
+ &ucd.CodePointRange{From: rune(460), To: rune(460)},
+ &ucd.CodePointRange{From: rune(462), To: rune(462)},
+ &ucd.CodePointRange{From: rune(464), To: rune(464)},
+ &ucd.CodePointRange{From: rune(466), To: rune(466)},
+ &ucd.CodePointRange{From: rune(468), To: rune(468)},
+ &ucd.CodePointRange{From: rune(470), To: rune(470)},
+ &ucd.CodePointRange{From: rune(472), To: rune(472)},
+ &ucd.CodePointRange{From: rune(474), To: rune(474)},
+ &ucd.CodePointRange{From: rune(476), To: rune(477)},
+ &ucd.CodePointRange{From: rune(479), To: rune(479)},
+ &ucd.CodePointRange{From: rune(481), To: rune(481)},
+ &ucd.CodePointRange{From: rune(483), To: rune(483)},
+ &ucd.CodePointRange{From: rune(485), To: rune(485)},
+ &ucd.CodePointRange{From: rune(487), To: rune(487)},
+ &ucd.CodePointRange{From: rune(489), To: rune(489)},
+ &ucd.CodePointRange{From: rune(491), To: rune(491)},
+ &ucd.CodePointRange{From: rune(493), To: rune(493)},
+ &ucd.CodePointRange{From: rune(495), To: rune(496)},
+ &ucd.CodePointRange{From: rune(499), To: rune(499)},
+ &ucd.CodePointRange{From: rune(501), To: rune(501)},
+ &ucd.CodePointRange{From: rune(505), To: rune(505)},
+ &ucd.CodePointRange{From: rune(507), To: rune(507)},
+ &ucd.CodePointRange{From: rune(509), To: rune(509)},
+ &ucd.CodePointRange{From: rune(511), To: rune(511)},
+ &ucd.CodePointRange{From: rune(513), To: rune(513)},
+ &ucd.CodePointRange{From: rune(515), To: rune(515)},
+ &ucd.CodePointRange{From: rune(517), To: rune(517)},
+ &ucd.CodePointRange{From: rune(519), To: rune(519)},
+ &ucd.CodePointRange{From: rune(521), To: rune(521)},
+ &ucd.CodePointRange{From: rune(523), To: rune(523)},
+ &ucd.CodePointRange{From: rune(525), To: rune(525)},
+ &ucd.CodePointRange{From: rune(527), To: rune(527)},
+ &ucd.CodePointRange{From: rune(529), To: rune(529)},
+ &ucd.CodePointRange{From: rune(531), To: rune(531)},
+ &ucd.CodePointRange{From: rune(533), To: rune(533)},
+ &ucd.CodePointRange{From: rune(535), To: rune(535)},
+ &ucd.CodePointRange{From: rune(537), To: rune(537)},
+ &ucd.CodePointRange{From: rune(539), To: rune(539)},
+ &ucd.CodePointRange{From: rune(541), To: rune(541)},
+ &ucd.CodePointRange{From: rune(543), To: rune(543)},
+ &ucd.CodePointRange{From: rune(545), To: rune(545)},
+ &ucd.CodePointRange{From: rune(547), To: rune(547)},
+ &ucd.CodePointRange{From: rune(549), To: rune(549)},
+ &ucd.CodePointRange{From: rune(551), To: rune(551)},
+ &ucd.CodePointRange{From: rune(553), To: rune(553)},
+ &ucd.CodePointRange{From: rune(555), To: rune(555)},
+ &ucd.CodePointRange{From: rune(557), To: rune(557)},
+ &ucd.CodePointRange{From: rune(559), To: rune(559)},
+ &ucd.CodePointRange{From: rune(561), To: rune(561)},
+ &ucd.CodePointRange{From: rune(563), To: rune(569)},
+ &ucd.CodePointRange{From: rune(572), To: rune(572)},
+ &ucd.CodePointRange{From: rune(575), To: rune(576)},
+ &ucd.CodePointRange{From: rune(578), To: rune(578)},
+ &ucd.CodePointRange{From: rune(583), To: rune(583)},
+ &ucd.CodePointRange{From: rune(585), To: rune(585)},
+ &ucd.CodePointRange{From: rune(587), To: rune(587)},
+ &ucd.CodePointRange{From: rune(589), To: rune(589)},
+ &ucd.CodePointRange{From: rune(591), To: rune(659)},
+ &ucd.CodePointRange{From: rune(661), To: rune(687)},
+ &ucd.CodePointRange{From: rune(881), To: rune(881)},
+ &ucd.CodePointRange{From: rune(883), To: rune(883)},
+ &ucd.CodePointRange{From: rune(887), To: rune(887)},
+ &ucd.CodePointRange{From: rune(891), To: rune(893)},
+ &ucd.CodePointRange{From: rune(912), To: rune(912)},
+ &ucd.CodePointRange{From: rune(940), To: rune(974)},
+ &ucd.CodePointRange{From: rune(976), To: rune(977)},
+ &ucd.CodePointRange{From: rune(981), To: rune(983)},
+ &ucd.CodePointRange{From: rune(985), To: rune(985)},
+ &ucd.CodePointRange{From: rune(987), To: rune(987)},
+ &ucd.CodePointRange{From: rune(989), To: rune(989)},
+ &ucd.CodePointRange{From: rune(991), To: rune(991)},
+ &ucd.CodePointRange{From: rune(993), To: rune(993)},
+ &ucd.CodePointRange{From: rune(995), To: rune(995)},
+ &ucd.CodePointRange{From: rune(997), To: rune(997)},
+ &ucd.CodePointRange{From: rune(999), To: rune(999)},
+ &ucd.CodePointRange{From: rune(1001), To: rune(1001)},
+ &ucd.CodePointRange{From: rune(1003), To: rune(1003)},
+ &ucd.CodePointRange{From: rune(1005), To: rune(1005)},
+ &ucd.CodePointRange{From: rune(1007), To: rune(1011)},
+ &ucd.CodePointRange{From: rune(1013), To: rune(1013)},
+ &ucd.CodePointRange{From: rune(1016), To: rune(1016)},
+ &ucd.CodePointRange{From: rune(1019), To: rune(1020)},
+ &ucd.CodePointRange{From: rune(1072), To: rune(1119)},
+ &ucd.CodePointRange{From: rune(1121), To: rune(1121)},
+ &ucd.CodePointRange{From: rune(1123), To: rune(1123)},
+ &ucd.CodePointRange{From: rune(1125), To: rune(1125)},
+ &ucd.CodePointRange{From: rune(1127), To: rune(1127)},
+ &ucd.CodePointRange{From: rune(1129), To: rune(1129)},
+ &ucd.CodePointRange{From: rune(1131), To: rune(1131)},
+ &ucd.CodePointRange{From: rune(1133), To: rune(1133)},
+ &ucd.CodePointRange{From: rune(1135), To: rune(1135)},
+ &ucd.CodePointRange{From: rune(1137), To: rune(1137)},
+ &ucd.CodePointRange{From: rune(1139), To: rune(1139)},
+ &ucd.CodePointRange{From: rune(1141), To: rune(1141)},
+ &ucd.CodePointRange{From: rune(1143), To: rune(1143)},
+ &ucd.CodePointRange{From: rune(1145), To: rune(1145)},
+ &ucd.CodePointRange{From: rune(1147), To: rune(1147)},
+ &ucd.CodePointRange{From: rune(1149), To: rune(1149)},
+ &ucd.CodePointRange{From: rune(1151), To: rune(1151)},
+ &ucd.CodePointRange{From: rune(1153), To: rune(1153)},
+ &ucd.CodePointRange{From: rune(1163), To: rune(1163)},
+ &ucd.CodePointRange{From: rune(1165), To: rune(1165)},
+ &ucd.CodePointRange{From: rune(1167), To: rune(1167)},
+ &ucd.CodePointRange{From: rune(1169), To: rune(1169)},
+ &ucd.CodePointRange{From: rune(1171), To: rune(1171)},
+ &ucd.CodePointRange{From: rune(1173), To: rune(1173)},
+ &ucd.CodePointRange{From: rune(1175), To: rune(1175)},
+ &ucd.CodePointRange{From: rune(1177), To: rune(1177)},
+ &ucd.CodePointRange{From: rune(1179), To: rune(1179)},
+ &ucd.CodePointRange{From: rune(1181), To: rune(1181)},
+ &ucd.CodePointRange{From: rune(1183), To: rune(1183)},
+ &ucd.CodePointRange{From: rune(1185), To: rune(1185)},
+ &ucd.CodePointRange{From: rune(1187), To: rune(1187)},
+ &ucd.CodePointRange{From: rune(1189), To: rune(1189)},
+ &ucd.CodePointRange{From: rune(1191), To: rune(1191)},
+ &ucd.CodePointRange{From: rune(1193), To: rune(1193)},
+ &ucd.CodePointRange{From: rune(1195), To: rune(1195)},
+ &ucd.CodePointRange{From: rune(1197), To: rune(1197)},
+ &ucd.CodePointRange{From: rune(1199), To: rune(1199)},
+ &ucd.CodePointRange{From: rune(1201), To: rune(1201)},
+ &ucd.CodePointRange{From: rune(1203), To: rune(1203)},
+ &ucd.CodePointRange{From: rune(1205), To: rune(1205)},
+ &ucd.CodePointRange{From: rune(1207), To: rune(1207)},
+ &ucd.CodePointRange{From: rune(1209), To: rune(1209)},
+ &ucd.CodePointRange{From: rune(1211), To: rune(1211)},
+ &ucd.CodePointRange{From: rune(1213), To: rune(1213)},
+ &ucd.CodePointRange{From: rune(1215), To: rune(1215)},
+ &ucd.CodePointRange{From: rune(1218), To: rune(1218)},
+ &ucd.CodePointRange{From: rune(1220), To: rune(1220)},
+ &ucd.CodePointRange{From: rune(1222), To: rune(1222)},
+ &ucd.CodePointRange{From: rune(1224), To: rune(1224)},
+ &ucd.CodePointRange{From: rune(1226), To: rune(1226)},
+ &ucd.CodePointRange{From: rune(1228), To: rune(1228)},
+ &ucd.CodePointRange{From: rune(1230), To: rune(1231)},
+ &ucd.CodePointRange{From: rune(1233), To: rune(1233)},
+ &ucd.CodePointRange{From: rune(1235), To: rune(1235)},
+ &ucd.CodePointRange{From: rune(1237), To: rune(1237)},
+ &ucd.CodePointRange{From: rune(1239), To: rune(1239)},
+ &ucd.CodePointRange{From: rune(1241), To: rune(1241)},
+ &ucd.CodePointRange{From: rune(1243), To: rune(1243)},
+ &ucd.CodePointRange{From: rune(1245), To: rune(1245)},
+ &ucd.CodePointRange{From: rune(1247), To: rune(1247)},
+ &ucd.CodePointRange{From: rune(1249), To: rune(1249)},
+ &ucd.CodePointRange{From: rune(1251), To: rune(1251)},
+ &ucd.CodePointRange{From: rune(1253), To: rune(1253)},
+ &ucd.CodePointRange{From: rune(1255), To: rune(1255)},
+ &ucd.CodePointRange{From: rune(1257), To: rune(1257)},
+ &ucd.CodePointRange{From: rune(1259), To: rune(1259)},
+ &ucd.CodePointRange{From: rune(1261), To: rune(1261)},
+ &ucd.CodePointRange{From: rune(1263), To: rune(1263)},
+ &ucd.CodePointRange{From: rune(1265), To: rune(1265)},
+ &ucd.CodePointRange{From: rune(1267), To: rune(1267)},
+ &ucd.CodePointRange{From: rune(1269), To: rune(1269)},
+ &ucd.CodePointRange{From: rune(1271), To: rune(1271)},
+ &ucd.CodePointRange{From: rune(1273), To: rune(1273)},
+ &ucd.CodePointRange{From: rune(1275), To: rune(1275)},
+ &ucd.CodePointRange{From: rune(1277), To: rune(1277)},
+ &ucd.CodePointRange{From: rune(1279), To: rune(1279)},
+ &ucd.CodePointRange{From: rune(1281), To: rune(1281)},
+ &ucd.CodePointRange{From: rune(1283), To: rune(1283)},
+ &ucd.CodePointRange{From: rune(1285), To: rune(1285)},
+ &ucd.CodePointRange{From: rune(1287), To: rune(1287)},
+ &ucd.CodePointRange{From: rune(1289), To: rune(1289)},
+ &ucd.CodePointRange{From: rune(1291), To: rune(1291)},
+ &ucd.CodePointRange{From: rune(1293), To: rune(1293)},
+ &ucd.CodePointRange{From: rune(1295), To: rune(1295)},
+ &ucd.CodePointRange{From: rune(1297), To: rune(1297)},
+ &ucd.CodePointRange{From: rune(1299), To: rune(1299)},
+ &ucd.CodePointRange{From: rune(1301), To: rune(1301)},
+ &ucd.CodePointRange{From: rune(1303), To: rune(1303)},
+ &ucd.CodePointRange{From: rune(1305), To: rune(1305)},
+ &ucd.CodePointRange{From: rune(1307), To: rune(1307)},
+ &ucd.CodePointRange{From: rune(1309), To: rune(1309)},
+ &ucd.CodePointRange{From: rune(1311), To: rune(1311)},
+ &ucd.CodePointRange{From: rune(1313), To: rune(1313)},
+ &ucd.CodePointRange{From: rune(1315), To: rune(1315)},
+ &ucd.CodePointRange{From: rune(1317), To: rune(1317)},
+ &ucd.CodePointRange{From: rune(1319), To: rune(1319)},
+ &ucd.CodePointRange{From: rune(1321), To: rune(1321)},
+ &ucd.CodePointRange{From: rune(1323), To: rune(1323)},
+ &ucd.CodePointRange{From: rune(1325), To: rune(1325)},
+ &ucd.CodePointRange{From: rune(1327), To: rune(1327)},
+ &ucd.CodePointRange{From: rune(1376), To: rune(1416)},
+ &ucd.CodePointRange{From: rune(4304), To: rune(4346)},
+ &ucd.CodePointRange{From: rune(4349), To: rune(4351)},
+ &ucd.CodePointRange{From: rune(5112), To: rune(5117)},
+ &ucd.CodePointRange{From: rune(7296), To: rune(7304)},
+ &ucd.CodePointRange{From: rune(7424), To: rune(7467)},
+ &ucd.CodePointRange{From: rune(7531), To: rune(7543)},
+ &ucd.CodePointRange{From: rune(7545), To: rune(7578)},
+ &ucd.CodePointRange{From: rune(7681), To: rune(7681)},
+ &ucd.CodePointRange{From: rune(7683), To: rune(7683)},
+ &ucd.CodePointRange{From: rune(7685), To: rune(7685)},
+ &ucd.CodePointRange{From: rune(7687), To: rune(7687)},
+ &ucd.CodePointRange{From: rune(7689), To: rune(7689)},
+ &ucd.CodePointRange{From: rune(7691), To: rune(7691)},
+ &ucd.CodePointRange{From: rune(7693), To: rune(7693)},
+ &ucd.CodePointRange{From: rune(7695), To: rune(7695)},
+ &ucd.CodePointRange{From: rune(7697), To: rune(7697)},
+ &ucd.CodePointRange{From: rune(7699), To: rune(7699)},
+ &ucd.CodePointRange{From: rune(7701), To: rune(7701)},
+ &ucd.CodePointRange{From: rune(7703), To: rune(7703)},
+ &ucd.CodePointRange{From: rune(7705), To: rune(7705)},
+ &ucd.CodePointRange{From: rune(7707), To: rune(7707)},
+ &ucd.CodePointRange{From: rune(7709), To: rune(7709)},
+ &ucd.CodePointRange{From: rune(7711), To: rune(7711)},
+ &ucd.CodePointRange{From: rune(7713), To: rune(7713)},
+ &ucd.CodePointRange{From: rune(7715), To: rune(7715)},
+ &ucd.CodePointRange{From: rune(7717), To: rune(7717)},
+ &ucd.CodePointRange{From: rune(7719), To: rune(7719)},
+ &ucd.CodePointRange{From: rune(7721), To: rune(7721)},
+ &ucd.CodePointRange{From: rune(7723), To: rune(7723)},
+ &ucd.CodePointRange{From: rune(7725), To: rune(7725)},
+ &ucd.CodePointRange{From: rune(7727), To: rune(7727)},
+ &ucd.CodePointRange{From: rune(7729), To: rune(7729)},
+ &ucd.CodePointRange{From: rune(7731), To: rune(7731)},
+ &ucd.CodePointRange{From: rune(7733), To: rune(7733)},
+ &ucd.CodePointRange{From: rune(7735), To: rune(7735)},
+ &ucd.CodePointRange{From: rune(7737), To: rune(7737)},
+ &ucd.CodePointRange{From: rune(7739), To: rune(7739)},
+ &ucd.CodePointRange{From: rune(7741), To: rune(7741)},
+ &ucd.CodePointRange{From: rune(7743), To: rune(7743)},
+ &ucd.CodePointRange{From: rune(7745), To: rune(7745)},
+ &ucd.CodePointRange{From: rune(7747), To: rune(7747)},
+ &ucd.CodePointRange{From: rune(7749), To: rune(7749)},
+ &ucd.CodePointRange{From: rune(7751), To: rune(7751)},
+ &ucd.CodePointRange{From: rune(7753), To: rune(7753)},
+ &ucd.CodePointRange{From: rune(7755), To: rune(7755)},
+ &ucd.CodePointRange{From: rune(7757), To: rune(7757)},
+ &ucd.CodePointRange{From: rune(7759), To: rune(7759)},
+ &ucd.CodePointRange{From: rune(7761), To: rune(7761)},
+ &ucd.CodePointRange{From: rune(7763), To: rune(7763)},
+ &ucd.CodePointRange{From: rune(7765), To: rune(7765)},
+ &ucd.CodePointRange{From: rune(7767), To: rune(7767)},
+ &ucd.CodePointRange{From: rune(7769), To: rune(7769)},
+ &ucd.CodePointRange{From: rune(7771), To: rune(7771)},
+ &ucd.CodePointRange{From: rune(7773), To: rune(7773)},
+ &ucd.CodePointRange{From: rune(7775), To: rune(7775)},
+ &ucd.CodePointRange{From: rune(7777), To: rune(7777)},
+ &ucd.CodePointRange{From: rune(7779), To: rune(7779)},
+ &ucd.CodePointRange{From: rune(7781), To: rune(7781)},
+ &ucd.CodePointRange{From: rune(7783), To: rune(7783)},
+ &ucd.CodePointRange{From: rune(7785), To: rune(7785)},
+ &ucd.CodePointRange{From: rune(7787), To: rune(7787)},
+ &ucd.CodePointRange{From: rune(7789), To: rune(7789)},
+ &ucd.CodePointRange{From: rune(7791), To: rune(7791)},
+ &ucd.CodePointRange{From: rune(7793), To: rune(7793)},
+ &ucd.CodePointRange{From: rune(7795), To: rune(7795)},
+ &ucd.CodePointRange{From: rune(7797), To: rune(7797)},
+ &ucd.CodePointRange{From: rune(7799), To: rune(7799)},
+ &ucd.CodePointRange{From: rune(7801), To: rune(7801)},
+ &ucd.CodePointRange{From: rune(7803), To: rune(7803)},
+ &ucd.CodePointRange{From: rune(7805), To: rune(7805)},
+ &ucd.CodePointRange{From: rune(7807), To: rune(7807)},
+ &ucd.CodePointRange{From: rune(7809), To: rune(7809)},
+ &ucd.CodePointRange{From: rune(7811), To: rune(7811)},
+ &ucd.CodePointRange{From: rune(7813), To: rune(7813)},
+ &ucd.CodePointRange{From: rune(7815), To: rune(7815)},
+ &ucd.CodePointRange{From: rune(7817), To: rune(7817)},
+ &ucd.CodePointRange{From: rune(7819), To: rune(7819)},
+ &ucd.CodePointRange{From: rune(7821), To: rune(7821)},
+ &ucd.CodePointRange{From: rune(7823), To: rune(7823)},
+ &ucd.CodePointRange{From: rune(7825), To: rune(7825)},
+ &ucd.CodePointRange{From: rune(7827), To: rune(7827)},
+ &ucd.CodePointRange{From: rune(7829), To: rune(7837)},
+ &ucd.CodePointRange{From: rune(7839), To: rune(7839)},
+ &ucd.CodePointRange{From: rune(7841), To: rune(7841)},
+ &ucd.CodePointRange{From: rune(7843), To: rune(7843)},
+ &ucd.CodePointRange{From: rune(7845), To: rune(7845)},
+ &ucd.CodePointRange{From: rune(7847), To: rune(7847)},
+ &ucd.CodePointRange{From: rune(7849), To: rune(7849)},
+ &ucd.CodePointRange{From: rune(7851), To: rune(7851)},
+ &ucd.CodePointRange{From: rune(7853), To: rune(7853)},
+ &ucd.CodePointRange{From: rune(7855), To: rune(7855)},
+ &ucd.CodePointRange{From: rune(7857), To: rune(7857)},
+ &ucd.CodePointRange{From: rune(7859), To: rune(7859)},
+ &ucd.CodePointRange{From: rune(7861), To: rune(7861)},
+ &ucd.CodePointRange{From: rune(7863), To: rune(7863)},
+ &ucd.CodePointRange{From: rune(7865), To: rune(7865)},
+ &ucd.CodePointRange{From: rune(7867), To: rune(7867)},
+ &ucd.CodePointRange{From: rune(7869), To: rune(7869)},
+ &ucd.CodePointRange{From: rune(7871), To: rune(7871)},
+ &ucd.CodePointRange{From: rune(7873), To: rune(7873)},
+ &ucd.CodePointRange{From: rune(7875), To: rune(7875)},
+ &ucd.CodePointRange{From: rune(7877), To: rune(7877)},
+ &ucd.CodePointRange{From: rune(7879), To: rune(7879)},
+ &ucd.CodePointRange{From: rune(7881), To: rune(7881)},
+ &ucd.CodePointRange{From: rune(7883), To: rune(7883)},
+ &ucd.CodePointRange{From: rune(7885), To: rune(7885)},
+ &ucd.CodePointRange{From: rune(7887), To: rune(7887)},
+ &ucd.CodePointRange{From: rune(7889), To: rune(7889)},
+ &ucd.CodePointRange{From: rune(7891), To: rune(7891)},
+ &ucd.CodePointRange{From: rune(7893), To: rune(7893)},
+ &ucd.CodePointRange{From: rune(7895), To: rune(7895)},
+ &ucd.CodePointRange{From: rune(7897), To: rune(7897)},
+ &ucd.CodePointRange{From: rune(7899), To: rune(7899)},
+ &ucd.CodePointRange{From: rune(7901), To: rune(7901)},
+ &ucd.CodePointRange{From: rune(7903), To: rune(7903)},
+ &ucd.CodePointRange{From: rune(7905), To: rune(7905)},
+ &ucd.CodePointRange{From: rune(7907), To: rune(7907)},
+ &ucd.CodePointRange{From: rune(7909), To: rune(7909)},
+ &ucd.CodePointRange{From: rune(7911), To: rune(7911)},
+ &ucd.CodePointRange{From: rune(7913), To: rune(7913)},
+ &ucd.CodePointRange{From: rune(7915), To: rune(7915)},
+ &ucd.CodePointRange{From: rune(7917), To: rune(7917)},
+ &ucd.CodePointRange{From: rune(7919), To: rune(7919)},
+ &ucd.CodePointRange{From: rune(7921), To: rune(7921)},
+ &ucd.CodePointRange{From: rune(7923), To: rune(7923)},
+ &ucd.CodePointRange{From: rune(7925), To: rune(7925)},
+ &ucd.CodePointRange{From: rune(7927), To: rune(7927)},
+ &ucd.CodePointRange{From: rune(7929), To: rune(7929)},
+ &ucd.CodePointRange{From: rune(7931), To: rune(7931)},
+ &ucd.CodePointRange{From: rune(7933), To: rune(7933)},
+ &ucd.CodePointRange{From: rune(7935), To: rune(7943)},
+ &ucd.CodePointRange{From: rune(7952), To: rune(7957)},
+ &ucd.CodePointRange{From: rune(7968), To: rune(7975)},
+ &ucd.CodePointRange{From: rune(7984), To: rune(7991)},
+ &ucd.CodePointRange{From: rune(8000), To: rune(8005)},
+ &ucd.CodePointRange{From: rune(8016), To: rune(8023)},
+ &ucd.CodePointRange{From: rune(8032), To: rune(8039)},
+ &ucd.CodePointRange{From: rune(8048), To: rune(8061)},
+ &ucd.CodePointRange{From: rune(8064), To: rune(8071)},
+ &ucd.CodePointRange{From: rune(8080), To: rune(8087)},
+ &ucd.CodePointRange{From: rune(8096), To: rune(8103)},
+ &ucd.CodePointRange{From: rune(8112), To: rune(8116)},
+ &ucd.CodePointRange{From: rune(8118), To: rune(8119)},
+ &ucd.CodePointRange{From: rune(8126), To: rune(8126)},
+ &ucd.CodePointRange{From: rune(8130), To: rune(8132)},
+ &ucd.CodePointRange{From: rune(8134), To: rune(8135)},
+ &ucd.CodePointRange{From: rune(8144), To: rune(8147)},
+ &ucd.CodePointRange{From: rune(8150), To: rune(8151)},
+ &ucd.CodePointRange{From: rune(8160), To: rune(8167)},
+ &ucd.CodePointRange{From: rune(8178), To: rune(8180)},
+ &ucd.CodePointRange{From: rune(8182), To: rune(8183)},
+ &ucd.CodePointRange{From: rune(8458), To: rune(8458)},
+ &ucd.CodePointRange{From: rune(8462), To: rune(8463)},
+ &ucd.CodePointRange{From: rune(8467), To: rune(8467)},
+ &ucd.CodePointRange{From: rune(8495), To: rune(8495)},
+ &ucd.CodePointRange{From: rune(8500), To: rune(8500)},
+ &ucd.CodePointRange{From: rune(8505), To: rune(8505)},
+ &ucd.CodePointRange{From: rune(8508), To: rune(8509)},
+ &ucd.CodePointRange{From: rune(8518), To: rune(8521)},
+ &ucd.CodePointRange{From: rune(8526), To: rune(8526)},
+ &ucd.CodePointRange{From: rune(8580), To: rune(8580)},
+ &ucd.CodePointRange{From: rune(11312), To: rune(11358)},
+ &ucd.CodePointRange{From: rune(11361), To: rune(11361)},
+ &ucd.CodePointRange{From: rune(11365), To: rune(11366)},
+ &ucd.CodePointRange{From: rune(11368), To: rune(11368)},
+ &ucd.CodePointRange{From: rune(11370), To: rune(11370)},
+ &ucd.CodePointRange{From: rune(11372), To: rune(11372)},
+ &ucd.CodePointRange{From: rune(11377), To: rune(11377)},
+ &ucd.CodePointRange{From: rune(11379), To: rune(11380)},
+ &ucd.CodePointRange{From: rune(11382), To: rune(11387)},
+ &ucd.CodePointRange{From: rune(11393), To: rune(11393)},
+ &ucd.CodePointRange{From: rune(11395), To: rune(11395)},
+ &ucd.CodePointRange{From: rune(11397), To: rune(11397)},
+ &ucd.CodePointRange{From: rune(11399), To: rune(11399)},
+ &ucd.CodePointRange{From: rune(11401), To: rune(11401)},
+ &ucd.CodePointRange{From: rune(11403), To: rune(11403)},
+ &ucd.CodePointRange{From: rune(11405), To: rune(11405)},
+ &ucd.CodePointRange{From: rune(11407), To: rune(11407)},
+ &ucd.CodePointRange{From: rune(11409), To: rune(11409)},
+ &ucd.CodePointRange{From: rune(11411), To: rune(11411)},
+ &ucd.CodePointRange{From: rune(11413), To: rune(11413)},
+ &ucd.CodePointRange{From: rune(11415), To: rune(11415)},
+ &ucd.CodePointRange{From: rune(11417), To: rune(11417)},
+ &ucd.CodePointRange{From: rune(11419), To: rune(11419)},
+ &ucd.CodePointRange{From: rune(11421), To: rune(11421)},
+ &ucd.CodePointRange{From: rune(11423), To: rune(11423)},
+ &ucd.CodePointRange{From: rune(11425), To: rune(11425)},
+ &ucd.CodePointRange{From: rune(11427), To: rune(11427)},
+ &ucd.CodePointRange{From: rune(11429), To: rune(11429)},
+ &ucd.CodePointRange{From: rune(11431), To: rune(11431)},
+ &ucd.CodePointRange{From: rune(11433), To: rune(11433)},
+ &ucd.CodePointRange{From: rune(11435), To: rune(11435)},
+ &ucd.CodePointRange{From: rune(11437), To: rune(11437)},
+ &ucd.CodePointRange{From: rune(11439), To: rune(11439)},
+ &ucd.CodePointRange{From: rune(11441), To: rune(11441)},
+ &ucd.CodePointRange{From: rune(11443), To: rune(11443)},
+ &ucd.CodePointRange{From: rune(11445), To: rune(11445)},
+ &ucd.CodePointRange{From: rune(11447), To: rune(11447)},
+ &ucd.CodePointRange{From: rune(11449), To: rune(11449)},
+ &ucd.CodePointRange{From: rune(11451), To: rune(11451)},
+ &ucd.CodePointRange{From: rune(11453), To: rune(11453)},
+ &ucd.CodePointRange{From: rune(11455), To: rune(11455)},
+ &ucd.CodePointRange{From: rune(11457), To: rune(11457)},
+ &ucd.CodePointRange{From: rune(11459), To: rune(11459)},
+ &ucd.CodePointRange{From: rune(11461), To: rune(11461)},
+ &ucd.CodePointRange{From: rune(11463), To: rune(11463)},
+ &ucd.CodePointRange{From: rune(11465), To: rune(11465)},
+ &ucd.CodePointRange{From: rune(11467), To: rune(11467)},
+ &ucd.CodePointRange{From: rune(11469), To: rune(11469)},
+ &ucd.CodePointRange{From: rune(11471), To: rune(11471)},
+ &ucd.CodePointRange{From: rune(11473), To: rune(11473)},
+ &ucd.CodePointRange{From: rune(11475), To: rune(11475)},
+ &ucd.CodePointRange{From: rune(11477), To: rune(11477)},
+ &ucd.CodePointRange{From: rune(11479), To: rune(11479)},
+ &ucd.CodePointRange{From: rune(11481), To: rune(11481)},
+ &ucd.CodePointRange{From: rune(11483), To: rune(11483)},
+ &ucd.CodePointRange{From: rune(11485), To: rune(11485)},
+ &ucd.CodePointRange{From: rune(11487), To: rune(11487)},
+ &ucd.CodePointRange{From: rune(11489), To: rune(11489)},
+ &ucd.CodePointRange{From: rune(11491), To: rune(11492)},
+ &ucd.CodePointRange{From: rune(11500), To: rune(11500)},
+ &ucd.CodePointRange{From: rune(11502), To: rune(11502)},
+ &ucd.CodePointRange{From: rune(11507), To: rune(11507)},
+ &ucd.CodePointRange{From: rune(11520), To: rune(11557)},
+ &ucd.CodePointRange{From: rune(11559), To: rune(11559)},
+ &ucd.CodePointRange{From: rune(11565), To: rune(11565)},
+ &ucd.CodePointRange{From: rune(42561), To: rune(42561)},
+ &ucd.CodePointRange{From: rune(42563), To: rune(42563)},
+ &ucd.CodePointRange{From: rune(42565), To: rune(42565)},
+ &ucd.CodePointRange{From: rune(42567), To: rune(42567)},
+ &ucd.CodePointRange{From: rune(42569), To: rune(42569)},
+ &ucd.CodePointRange{From: rune(42571), To: rune(42571)},
+ &ucd.CodePointRange{From: rune(42573), To: rune(42573)},
+ &ucd.CodePointRange{From: rune(42575), To: rune(42575)},
+ &ucd.CodePointRange{From: rune(42577), To: rune(42577)},
+ &ucd.CodePointRange{From: rune(42579), To: rune(42579)},
+ &ucd.CodePointRange{From: rune(42581), To: rune(42581)},
+ &ucd.CodePointRange{From: rune(42583), To: rune(42583)},
+ &ucd.CodePointRange{From: rune(42585), To: rune(42585)},
+ &ucd.CodePointRange{From: rune(42587), To: rune(42587)},
+ &ucd.CodePointRange{From: rune(42589), To: rune(42589)},
+ &ucd.CodePointRange{From: rune(42591), To: rune(42591)},
+ &ucd.CodePointRange{From: rune(42593), To: rune(42593)},
+ &ucd.CodePointRange{From: rune(42595), To: rune(42595)},
+ &ucd.CodePointRange{From: rune(42597), To: rune(42597)},
+ &ucd.CodePointRange{From: rune(42599), To: rune(42599)},
+ &ucd.CodePointRange{From: rune(42601), To: rune(42601)},
+ &ucd.CodePointRange{From: rune(42603), To: rune(42603)},
+ &ucd.CodePointRange{From: rune(42605), To: rune(42605)},
+ &ucd.CodePointRange{From: rune(42625), To: rune(42625)},
+ &ucd.CodePointRange{From: rune(42627), To: rune(42627)},
+ &ucd.CodePointRange{From: rune(42629), To: rune(42629)},
+ &ucd.CodePointRange{From: rune(42631), To: rune(42631)},
+ &ucd.CodePointRange{From: rune(42633), To: rune(42633)},
+ &ucd.CodePointRange{From: rune(42635), To: rune(42635)},
+ &ucd.CodePointRange{From: rune(42637), To: rune(42637)},
+ &ucd.CodePointRange{From: rune(42639), To: rune(42639)},
+ &ucd.CodePointRange{From: rune(42641), To: rune(42641)},
+ &ucd.CodePointRange{From: rune(42643), To: rune(42643)},
+ &ucd.CodePointRange{From: rune(42645), To: rune(42645)},
+ &ucd.CodePointRange{From: rune(42647), To: rune(42647)},
+ &ucd.CodePointRange{From: rune(42649), To: rune(42649)},
+ &ucd.CodePointRange{From: rune(42651), To: rune(42651)},
+ &ucd.CodePointRange{From: rune(42787), To: rune(42787)},
+ &ucd.CodePointRange{From: rune(42789), To: rune(42789)},
+ &ucd.CodePointRange{From: rune(42791), To: rune(42791)},
+ &ucd.CodePointRange{From: rune(42793), To: rune(42793)},
+ &ucd.CodePointRange{From: rune(42795), To: rune(42795)},
+ &ucd.CodePointRange{From: rune(42797), To: rune(42797)},
+ &ucd.CodePointRange{From: rune(42799), To: rune(42801)},
+ &ucd.CodePointRange{From: rune(42803), To: rune(42803)},
+ &ucd.CodePointRange{From: rune(42805), To: rune(42805)},
+ &ucd.CodePointRange{From: rune(42807), To: rune(42807)},
+ &ucd.CodePointRange{From: rune(42809), To: rune(42809)},
+ &ucd.CodePointRange{From: rune(42811), To: rune(42811)},
+ &ucd.CodePointRange{From: rune(42813), To: rune(42813)},
+ &ucd.CodePointRange{From: rune(42815), To: rune(42815)},
+ &ucd.CodePointRange{From: rune(42817), To: rune(42817)},
+ &ucd.CodePointRange{From: rune(42819), To: rune(42819)},
+ &ucd.CodePointRange{From: rune(42821), To: rune(42821)},
+ &ucd.CodePointRange{From: rune(42823), To: rune(42823)},
+ &ucd.CodePointRange{From: rune(42825), To: rune(42825)},
+ &ucd.CodePointRange{From: rune(42827), To: rune(42827)},
+ &ucd.CodePointRange{From: rune(42829), To: rune(42829)},
+ &ucd.CodePointRange{From: rune(42831), To: rune(42831)},
+ &ucd.CodePointRange{From: rune(42833), To: rune(42833)},
+ &ucd.CodePointRange{From: rune(42835), To: rune(42835)},
+ &ucd.CodePointRange{From: rune(42837), To: rune(42837)},
+ &ucd.CodePointRange{From: rune(42839), To: rune(42839)},
+ &ucd.CodePointRange{From: rune(42841), To: rune(42841)},
+ &ucd.CodePointRange{From: rune(42843), To: rune(42843)},
+ &ucd.CodePointRange{From: rune(42845), To: rune(42845)},
+ &ucd.CodePointRange{From: rune(42847), To: rune(42847)},
+ &ucd.CodePointRange{From: rune(42849), To: rune(42849)},
+ &ucd.CodePointRange{From: rune(42851), To: rune(42851)},
+ &ucd.CodePointRange{From: rune(42853), To: rune(42853)},
+ &ucd.CodePointRange{From: rune(42855), To: rune(42855)},
+ &ucd.CodePointRange{From: rune(42857), To: rune(42857)},
+ &ucd.CodePointRange{From: rune(42859), To: rune(42859)},
+ &ucd.CodePointRange{From: rune(42861), To: rune(42861)},
+ &ucd.CodePointRange{From: rune(42863), To: rune(42863)},
+ &ucd.CodePointRange{From: rune(42865), To: rune(42872)},
+ &ucd.CodePointRange{From: rune(42874), To: rune(42874)},
+ &ucd.CodePointRange{From: rune(42876), To: rune(42876)},
+ &ucd.CodePointRange{From: rune(42879), To: rune(42879)},
+ &ucd.CodePointRange{From: rune(42881), To: rune(42881)},
+ &ucd.CodePointRange{From: rune(42883), To: rune(42883)},
+ &ucd.CodePointRange{From: rune(42885), To: rune(42885)},
+ &ucd.CodePointRange{From: rune(42887), To: rune(42887)},
+ &ucd.CodePointRange{From: rune(42892), To: rune(42892)},
+ &ucd.CodePointRange{From: rune(42894), To: rune(42894)},
+ &ucd.CodePointRange{From: rune(42897), To: rune(42897)},
+ &ucd.CodePointRange{From: rune(42899), To: rune(42901)},
+ &ucd.CodePointRange{From: rune(42903), To: rune(42903)},
+ &ucd.CodePointRange{From: rune(42905), To: rune(42905)},
+ &ucd.CodePointRange{From: rune(42907), To: rune(42907)},
+ &ucd.CodePointRange{From: rune(42909), To: rune(42909)},
+ &ucd.CodePointRange{From: rune(42911), To: rune(42911)},
+ &ucd.CodePointRange{From: rune(42913), To: rune(42913)},
+ &ucd.CodePointRange{From: rune(42915), To: rune(42915)},
+ &ucd.CodePointRange{From: rune(42917), To: rune(42917)},
+ &ucd.CodePointRange{From: rune(42919), To: rune(42919)},
+ &ucd.CodePointRange{From: rune(42921), To: rune(42921)},
+ &ucd.CodePointRange{From: rune(42927), To: rune(42927)},
+ &ucd.CodePointRange{From: rune(42933), To: rune(42933)},
+ &ucd.CodePointRange{From: rune(42935), To: rune(42935)},
+ &ucd.CodePointRange{From: rune(42937), To: rune(42937)},
+ &ucd.CodePointRange{From: rune(42939), To: rune(42939)},
+ &ucd.CodePointRange{From: rune(42941), To: rune(42941)},
+ &ucd.CodePointRange{From: rune(42943), To: rune(42943)},
+ &ucd.CodePointRange{From: rune(42947), To: rune(42947)},
+ &ucd.CodePointRange{From: rune(42952), To: rune(42952)},
+ &ucd.CodePointRange{From: rune(42954), To: rune(42954)},
+ &ucd.CodePointRange{From: rune(42998), To: rune(42998)},
+ &ucd.CodePointRange{From: rune(43002), To: rune(43002)},
+ &ucd.CodePointRange{From: rune(43824), To: rune(43866)},
+ &ucd.CodePointRange{From: rune(43872), To: rune(43880)},
+ &ucd.CodePointRange{From: rune(43888), To: rune(43967)},
+ &ucd.CodePointRange{From: rune(64256), To: rune(64262)},
+ &ucd.CodePointRange{From: rune(64275), To: rune(64279)},
+ &ucd.CodePointRange{From: rune(65345), To: rune(65370)},
+ &ucd.CodePointRange{From: rune(66600), To: rune(66639)},
+ &ucd.CodePointRange{From: rune(66776), To: rune(66811)},
+ &ucd.CodePointRange{From: rune(68800), To: rune(68850)},
+ &ucd.CodePointRange{From: rune(71872), To: rune(71903)},
+ &ucd.CodePointRange{From: rune(93792), To: rune(93823)},
+ &ucd.CodePointRange{From: rune(119834), To: rune(119859)},
+ &ucd.CodePointRange{From: rune(119886), To: rune(119892)},
+ &ucd.CodePointRange{From: rune(119894), To: rune(119911)},
+ &ucd.CodePointRange{From: rune(119938), To: rune(119963)},
+ &ucd.CodePointRange{From: rune(119990), To: rune(119993)},
+ &ucd.CodePointRange{From: rune(119995), To: rune(119995)},
+ &ucd.CodePointRange{From: rune(119997), To: rune(120003)},
+ &ucd.CodePointRange{From: rune(120005), To: rune(120015)},
+ &ucd.CodePointRange{From: rune(120042), To: rune(120067)},
+ &ucd.CodePointRange{From: rune(120094), To: rune(120119)},
+ &ucd.CodePointRange{From: rune(120146), To: rune(120171)},
+ &ucd.CodePointRange{From: rune(120198), To: rune(120223)},
+ &ucd.CodePointRange{From: rune(120250), To: rune(120275)},
+ &ucd.CodePointRange{From: rune(120302), To: rune(120327)},
+ &ucd.CodePointRange{From: rune(120354), To: rune(120379)},
+ &ucd.CodePointRange{From: rune(120406), To: rune(120431)},
+ &ucd.CodePointRange{From: rune(120458), To: rune(120485)},
+ &ucd.CodePointRange{From: rune(120514), To: rune(120538)},
+ &ucd.CodePointRange{From: rune(120540), To: rune(120545)},
+ &ucd.CodePointRange{From: rune(120572), To: rune(120596)},
+ &ucd.CodePointRange{From: rune(120598), To: rune(120603)},
+ &ucd.CodePointRange{From: rune(120630), To: rune(120654)},
+ &ucd.CodePointRange{From: rune(120656), To: rune(120661)},
+ &ucd.CodePointRange{From: rune(120688), To: rune(120712)},
+ &ucd.CodePointRange{From: rune(120714), To: rune(120719)},
+ &ucd.CodePointRange{From: rune(120746), To: rune(120770)},
+ &ucd.CodePointRange{From: rune(120772), To: rune(120777)},
+ &ucd.CodePointRange{From: rune(120779), To: rune(120779)},
+ &ucd.CodePointRange{From: rune(125218), To: rune(125251)},
+ },
+ "lm": {
+ &ucd.CodePointRange{From: rune(688), To: rune(705)},
+ &ucd.CodePointRange{From: rune(710), To: rune(721)},
+ &ucd.CodePointRange{From: rune(736), To: rune(740)},
+ &ucd.CodePointRange{From: rune(748), To: rune(748)},
+ &ucd.CodePointRange{From: rune(750), To: rune(750)},
+ &ucd.CodePointRange{From: rune(884), To: rune(884)},
+ &ucd.CodePointRange{From: rune(890), To: rune(890)},
+ &ucd.CodePointRange{From: rune(1369), To: rune(1369)},
+ &ucd.CodePointRange{From: rune(1600), To: rune(1600)},
+ &ucd.CodePointRange{From: rune(1765), To: rune(1766)},
+ &ucd.CodePointRange{From: rune(2036), To: rune(2037)},
+ &ucd.CodePointRange{From: rune(2042), To: rune(2042)},
+ &ucd.CodePointRange{From: rune(2074), To: rune(2074)},
+ &ucd.CodePointRange{From: rune(2084), To: rune(2084)},
+ &ucd.CodePointRange{From: rune(2088), To: rune(2088)},
+ &ucd.CodePointRange{From: rune(2417), To: rune(2417)},
+ &ucd.CodePointRange{From: rune(3654), To: rune(3654)},
+ &ucd.CodePointRange{From: rune(3782), To: rune(3782)},
+ &ucd.CodePointRange{From: rune(4348), To: rune(4348)},
+ &ucd.CodePointRange{From: rune(6103), To: rune(6103)},
+ &ucd.CodePointRange{From: rune(6211), To: rune(6211)},
+ &ucd.CodePointRange{From: rune(6823), To: rune(6823)},
+ &ucd.CodePointRange{From: rune(7288), To: rune(7293)},
+ &ucd.CodePointRange{From: rune(7468), To: rune(7530)},
+ &ucd.CodePointRange{From: rune(7544), To: rune(7544)},
+ &ucd.CodePointRange{From: rune(7579), To: rune(7615)},
+ &ucd.CodePointRange{From: rune(8305), To: rune(8305)},
+ &ucd.CodePointRange{From: rune(8319), To: rune(8319)},
+ &ucd.CodePointRange{From: rune(8336), To: rune(8348)},
+ &ucd.CodePointRange{From: rune(11388), To: rune(11389)},
+ &ucd.CodePointRange{From: rune(11631), To: rune(11631)},
+ &ucd.CodePointRange{From: rune(11823), To: rune(11823)},
+ &ucd.CodePointRange{From: rune(12293), To: rune(12293)},
+ &ucd.CodePointRange{From: rune(12337), To: rune(12341)},
+ &ucd.CodePointRange{From: rune(12347), To: rune(12347)},
+ &ucd.CodePointRange{From: rune(12445), To: rune(12446)},
+ &ucd.CodePointRange{From: rune(12540), To: rune(12542)},
+ &ucd.CodePointRange{From: rune(40981), To: rune(40981)},
+ &ucd.CodePointRange{From: rune(42232), To: rune(42237)},
+ &ucd.CodePointRange{From: rune(42508), To: rune(42508)},
+ &ucd.CodePointRange{From: rune(42623), To: rune(42623)},
+ &ucd.CodePointRange{From: rune(42652), To: rune(42653)},
+ &ucd.CodePointRange{From: rune(42775), To: rune(42783)},
+ &ucd.CodePointRange{From: rune(42864), To: rune(42864)},
+ &ucd.CodePointRange{From: rune(42888), To: rune(42888)},
+ &ucd.CodePointRange{From: rune(43000), To: rune(43001)},
+ &ucd.CodePointRange{From: rune(43471), To: rune(43471)},
+ &ucd.CodePointRange{From: rune(43494), To: rune(43494)},
+ &ucd.CodePointRange{From: rune(43632), To: rune(43632)},
+ &ucd.CodePointRange{From: rune(43741), To: rune(43741)},
+ &ucd.CodePointRange{From: rune(43763), To: rune(43764)},
+ &ucd.CodePointRange{From: rune(43868), To: rune(43871)},
+ &ucd.CodePointRange{From: rune(43881), To: rune(43881)},
+ &ucd.CodePointRange{From: rune(65392), To: rune(65392)},
+ &ucd.CodePointRange{From: rune(65438), To: rune(65439)},
+ &ucd.CodePointRange{From: rune(92992), To: rune(92995)},
+ &ucd.CodePointRange{From: rune(94099), To: rune(94111)},
+ &ucd.CodePointRange{From: rune(94176), To: rune(94177)},
+ &ucd.CodePointRange{From: rune(94179), To: rune(94179)},
+ &ucd.CodePointRange{From: rune(123191), To: rune(123197)},
+ &ucd.CodePointRange{From: rune(125259), To: rune(125259)},
+ },
+ "lo": {
+ &ucd.CodePointRange{From: rune(170), To: rune(170)},
+ &ucd.CodePointRange{From: rune(186), To: rune(186)},
+ &ucd.CodePointRange{From: rune(443), To: rune(443)},
+ &ucd.CodePointRange{From: rune(448), To: rune(451)},
+ &ucd.CodePointRange{From: rune(660), To: rune(660)},
+ &ucd.CodePointRange{From: rune(1488), To: rune(1514)},
+ &ucd.CodePointRange{From: rune(1519), To: rune(1522)},
+ &ucd.CodePointRange{From: rune(1568), To: rune(1599)},
+ &ucd.CodePointRange{From: rune(1601), To: rune(1610)},
+ &ucd.CodePointRange{From: rune(1646), To: rune(1647)},
+ &ucd.CodePointRange{From: rune(1649), To: rune(1747)},
+ &ucd.CodePointRange{From: rune(1749), To: rune(1749)},
+ &ucd.CodePointRange{From: rune(1774), To: rune(1775)},
+ &ucd.CodePointRange{From: rune(1786), To: rune(1788)},
+ &ucd.CodePointRange{From: rune(1791), To: rune(1791)},
+ &ucd.CodePointRange{From: rune(1808), To: rune(1808)},
+ &ucd.CodePointRange{From: rune(1810), To: rune(1839)},
+ &ucd.CodePointRange{From: rune(1869), To: rune(1957)},
+ &ucd.CodePointRange{From: rune(1969), To: rune(1969)},
+ &ucd.CodePointRange{From: rune(1994), To: rune(2026)},
+ &ucd.CodePointRange{From: rune(2048), To: rune(2069)},
+ &ucd.CodePointRange{From: rune(2112), To: rune(2136)},
+ &ucd.CodePointRange{From: rune(2144), To: rune(2154)},
+ &ucd.CodePointRange{From: rune(2208), To: rune(2228)},
+ &ucd.CodePointRange{From: rune(2230), To: rune(2247)},
+ &ucd.CodePointRange{From: rune(2308), To: rune(2361)},
+ &ucd.CodePointRange{From: rune(2365), To: rune(2365)},
+ &ucd.CodePointRange{From: rune(2384), To: rune(2384)},
+ &ucd.CodePointRange{From: rune(2392), To: rune(2401)},
+ &ucd.CodePointRange{From: rune(2418), To: rune(2432)},
+ &ucd.CodePointRange{From: rune(2437), To: rune(2444)},
+ &ucd.CodePointRange{From: rune(2447), To: rune(2448)},
+ &ucd.CodePointRange{From: rune(2451), To: rune(2472)},
+ &ucd.CodePointRange{From: rune(2474), To: rune(2480)},
+ &ucd.CodePointRange{From: rune(2482), To: rune(2482)},
+ &ucd.CodePointRange{From: rune(2486), To: rune(2489)},
+ &ucd.CodePointRange{From: rune(2493), To: rune(2493)},
+ &ucd.CodePointRange{From: rune(2510), To: rune(2510)},
+ &ucd.CodePointRange{From: rune(2524), To: rune(2525)},
+ &ucd.CodePointRange{From: rune(2527), To: rune(2529)},
+ &ucd.CodePointRange{From: rune(2544), To: rune(2545)},
+ &ucd.CodePointRange{From: rune(2556), To: rune(2556)},
+ &ucd.CodePointRange{From: rune(2565), To: rune(2570)},
+ &ucd.CodePointRange{From: rune(2575), To: rune(2576)},
+ &ucd.CodePointRange{From: rune(2579), To: rune(2600)},
+ &ucd.CodePointRange{From: rune(2602), To: rune(2608)},
+ &ucd.CodePointRange{From: rune(2610), To: rune(2611)},
+ &ucd.CodePointRange{From: rune(2613), To: rune(2614)},
+ &ucd.CodePointRange{From: rune(2616), To: rune(2617)},
+ &ucd.CodePointRange{From: rune(2649), To: rune(2652)},
+ &ucd.CodePointRange{From: rune(2654), To: rune(2654)},
+ &ucd.CodePointRange{From: rune(2674), To: rune(2676)},
+ &ucd.CodePointRange{From: rune(2693), To: rune(2701)},
+ &ucd.CodePointRange{From: rune(2703), To: rune(2705)},
+ &ucd.CodePointRange{From: rune(2707), To: rune(2728)},
+ &ucd.CodePointRange{From: rune(2730), To: rune(2736)},
+ &ucd.CodePointRange{From: rune(2738), To: rune(2739)},
+ &ucd.CodePointRange{From: rune(2741), To: rune(2745)},
+ &ucd.CodePointRange{From: rune(2749), To: rune(2749)},
+ &ucd.CodePointRange{From: rune(2768), To: rune(2768)},
+ &ucd.CodePointRange{From: rune(2784), To: rune(2785)},
+ &ucd.CodePointRange{From: rune(2809), To: rune(2809)},
+ &ucd.CodePointRange{From: rune(2821), To: rune(2828)},
+ &ucd.CodePointRange{From: rune(2831), To: rune(2832)},
+ &ucd.CodePointRange{From: rune(2835), To: rune(2856)},
+ &ucd.CodePointRange{From: rune(2858), To: rune(2864)},
+ &ucd.CodePointRange{From: rune(2866), To: rune(2867)},
+ &ucd.CodePointRange{From: rune(2869), To: rune(2873)},
+ &ucd.CodePointRange{From: rune(2877), To: rune(2877)},
+ &ucd.CodePointRange{From: rune(2908), To: rune(2909)},
+ &ucd.CodePointRange{From: rune(2911), To: rune(2913)},
+ &ucd.CodePointRange{From: rune(2929), To: rune(2929)},
+ &ucd.CodePointRange{From: rune(2947), To: rune(2947)},
+ &ucd.CodePointRange{From: rune(2949), To: rune(2954)},
+ &ucd.CodePointRange{From: rune(2958), To: rune(2960)},
+ &ucd.CodePointRange{From: rune(2962), To: rune(2965)},
+ &ucd.CodePointRange{From: rune(2969), To: rune(2970)},
+ &ucd.CodePointRange{From: rune(2972), To: rune(2972)},
+ &ucd.CodePointRange{From: rune(2974), To: rune(2975)},
+ &ucd.CodePointRange{From: rune(2979), To: rune(2980)},
+ &ucd.CodePointRange{From: rune(2984), To: rune(2986)},
+ &ucd.CodePointRange{From: rune(2990), To: rune(3001)},
+ &ucd.CodePointRange{From: rune(3024), To: rune(3024)},
+ &ucd.CodePointRange{From: rune(3077), To: rune(3084)},
+ &ucd.CodePointRange{From: rune(3086), To: rune(3088)},
+ &ucd.CodePointRange{From: rune(3090), To: rune(3112)},
+ &ucd.CodePointRange{From: rune(3114), To: rune(3129)},
+ &ucd.CodePointRange{From: rune(3133), To: rune(3133)},
+ &ucd.CodePointRange{From: rune(3160), To: rune(3162)},
+ &ucd.CodePointRange{From: rune(3168), To: rune(3169)},
+ &ucd.CodePointRange{From: rune(3200), To: rune(3200)},
+ &ucd.CodePointRange{From: rune(3205), To: rune(3212)},
+ &ucd.CodePointRange{From: rune(3214), To: rune(3216)},
+ &ucd.CodePointRange{From: rune(3218), To: rune(3240)},
+ &ucd.CodePointRange{From: rune(3242), To: rune(3251)},
+ &ucd.CodePointRange{From: rune(3253), To: rune(3257)},
+ &ucd.CodePointRange{From: rune(3261), To: rune(3261)},
+ &ucd.CodePointRange{From: rune(3294), To: rune(3294)},
+ &ucd.CodePointRange{From: rune(3296), To: rune(3297)},
+ &ucd.CodePointRange{From: rune(3313), To: rune(3314)},
+ &ucd.CodePointRange{From: rune(3332), To: rune(3340)},
+ &ucd.CodePointRange{From: rune(3342), To: rune(3344)},
+ &ucd.CodePointRange{From: rune(3346), To: rune(3386)},
+ &ucd.CodePointRange{From: rune(3389), To: rune(3389)},
+ &ucd.CodePointRange{From: rune(3406), To: rune(3406)},
+ &ucd.CodePointRange{From: rune(3412), To: rune(3414)},
+ &ucd.CodePointRange{From: rune(3423), To: rune(3425)},
+ &ucd.CodePointRange{From: rune(3450), To: rune(3455)},
+ &ucd.CodePointRange{From: rune(3461), To: rune(3478)},
+ &ucd.CodePointRange{From: rune(3482), To: rune(3505)},
+ &ucd.CodePointRange{From: rune(3507), To: rune(3515)},
+ &ucd.CodePointRange{From: rune(3517), To: rune(3517)},
+ &ucd.CodePointRange{From: rune(3520), To: rune(3526)},
+ &ucd.CodePointRange{From: rune(3585), To: rune(3632)},
+ &ucd.CodePointRange{From: rune(3634), To: rune(3635)},
+ &ucd.CodePointRange{From: rune(3648), To: rune(3653)},
+ &ucd.CodePointRange{From: rune(3713), To: rune(3714)},
+ &ucd.CodePointRange{From: rune(3716), To: rune(3716)},
+ &ucd.CodePointRange{From: rune(3718), To: rune(3722)},
+ &ucd.CodePointRange{From: rune(3724), To: rune(3747)},
+ &ucd.CodePointRange{From: rune(3749), To: rune(3749)},
+ &ucd.CodePointRange{From: rune(3751), To: rune(3760)},
+ &ucd.CodePointRange{From: rune(3762), To: rune(3763)},
+ &ucd.CodePointRange{From: rune(3773), To: rune(3773)},
+ &ucd.CodePointRange{From: rune(3776), To: rune(3780)},
+ &ucd.CodePointRange{From: rune(3804), To: rune(3807)},
+ &ucd.CodePointRange{From: rune(3840), To: rune(3840)},
+ &ucd.CodePointRange{From: rune(3904), To: rune(3911)},
+ &ucd.CodePointRange{From: rune(3913), To: rune(3948)},
+ &ucd.CodePointRange{From: rune(3976), To: rune(3980)},
+ &ucd.CodePointRange{From: rune(4096), To: rune(4138)},
+ &ucd.CodePointRange{From: rune(4159), To: rune(4159)},
+ &ucd.CodePointRange{From: rune(4176), To: rune(4181)},
+ &ucd.CodePointRange{From: rune(4186), To: rune(4189)},
+ &ucd.CodePointRange{From: rune(4193), To: rune(4193)},
+ &ucd.CodePointRange{From: rune(4197), To: rune(4198)},
+ &ucd.CodePointRange{From: rune(4206), To: rune(4208)},
+ &ucd.CodePointRange{From: rune(4213), To: rune(4225)},
+ &ucd.CodePointRange{From: rune(4238), To: rune(4238)},
+ &ucd.CodePointRange{From: rune(4352), To: rune(4680)},
+ &ucd.CodePointRange{From: rune(4682), To: rune(4685)},
+ &ucd.CodePointRange{From: rune(4688), To: rune(4694)},
+ &ucd.CodePointRange{From: rune(4696), To: rune(4696)},
+ &ucd.CodePointRange{From: rune(4698), To: rune(4701)},
+ &ucd.CodePointRange{From: rune(4704), To: rune(4744)},
+ &ucd.CodePointRange{From: rune(4746), To: rune(4749)},
+ &ucd.CodePointRange{From: rune(4752), To: rune(4784)},
+ &ucd.CodePointRange{From: rune(4786), To: rune(4789)},
+ &ucd.CodePointRange{From: rune(4792), To: rune(4798)},
+ &ucd.CodePointRange{From: rune(4800), To: rune(4800)},
+ &ucd.CodePointRange{From: rune(4802), To: rune(4805)},
+ &ucd.CodePointRange{From: rune(4808), To: rune(4822)},
+ &ucd.CodePointRange{From: rune(4824), To: rune(4880)},
+ &ucd.CodePointRange{From: rune(4882), To: rune(4885)},
+ &ucd.CodePointRange{From: rune(4888), To: rune(4954)},
+ &ucd.CodePointRange{From: rune(4992), To: rune(5007)},
+ &ucd.CodePointRange{From: rune(5121), To: rune(5740)},
+ &ucd.CodePointRange{From: rune(5743), To: rune(5759)},
+ &ucd.CodePointRange{From: rune(5761), To: rune(5786)},
+ &ucd.CodePointRange{From: rune(5792), To: rune(5866)},
+ &ucd.CodePointRange{From: rune(5873), To: rune(5880)},
+ &ucd.CodePointRange{From: rune(5888), To: rune(5900)},
+ &ucd.CodePointRange{From: rune(5902), To: rune(5905)},
+ &ucd.CodePointRange{From: rune(5920), To: rune(5937)},
+ &ucd.CodePointRange{From: rune(5952), To: rune(5969)},
+ &ucd.CodePointRange{From: rune(5984), To: rune(5996)},
+ &ucd.CodePointRange{From: rune(5998), To: rune(6000)},
+ &ucd.CodePointRange{From: rune(6016), To: rune(6067)},
+ &ucd.CodePointRange{From: rune(6108), To: rune(6108)},
+ &ucd.CodePointRange{From: rune(6176), To: rune(6210)},
+ &ucd.CodePointRange{From: rune(6212), To: rune(6264)},
+ &ucd.CodePointRange{From: rune(6272), To: rune(6276)},
+ &ucd.CodePointRange{From: rune(6279), To: rune(6312)},
+ &ucd.CodePointRange{From: rune(6314), To: rune(6314)},
+ &ucd.CodePointRange{From: rune(6320), To: rune(6389)},
+ &ucd.CodePointRange{From: rune(6400), To: rune(6430)},
+ &ucd.CodePointRange{From: rune(6480), To: rune(6509)},
+ &ucd.CodePointRange{From: rune(6512), To: rune(6516)},
+ &ucd.CodePointRange{From: rune(6528), To: rune(6571)},
+ &ucd.CodePointRange{From: rune(6576), To: rune(6601)},
+ &ucd.CodePointRange{From: rune(6656), To: rune(6678)},
+ &ucd.CodePointRange{From: rune(6688), To: rune(6740)},
+ &ucd.CodePointRange{From: rune(6917), To: rune(6963)},
+ &ucd.CodePointRange{From: rune(6981), To: rune(6987)},
+ &ucd.CodePointRange{From: rune(7043), To: rune(7072)},
+ &ucd.CodePointRange{From: rune(7086), To: rune(7087)},
+ &ucd.CodePointRange{From: rune(7098), To: rune(7141)},
+ &ucd.CodePointRange{From: rune(7168), To: rune(7203)},
+ &ucd.CodePointRange{From: rune(7245), To: rune(7247)},
+ &ucd.CodePointRange{From: rune(7258), To: rune(7287)},
+ &ucd.CodePointRange{From: rune(7401), To: rune(7404)},
+ &ucd.CodePointRange{From: rune(7406), To: rune(7411)},
+ &ucd.CodePointRange{From: rune(7413), To: rune(7414)},
+ &ucd.CodePointRange{From: rune(7418), To: rune(7418)},
+ &ucd.CodePointRange{From: rune(8501), To: rune(8504)},
+ &ucd.CodePointRange{From: rune(11568), To: rune(11623)},
+ &ucd.CodePointRange{From: rune(11648), To: rune(11670)},
+ &ucd.CodePointRange{From: rune(11680), To: rune(11686)},
+ &ucd.CodePointRange{From: rune(11688), To: rune(11694)},
+ &ucd.CodePointRange{From: rune(11696), To: rune(11702)},
+ &ucd.CodePointRange{From: rune(11704), To: rune(11710)},
+ &ucd.CodePointRange{From: rune(11712), To: rune(11718)},
+ &ucd.CodePointRange{From: rune(11720), To: rune(11726)},
+ &ucd.CodePointRange{From: rune(11728), To: rune(11734)},
+ &ucd.CodePointRange{From: rune(11736), To: rune(11742)},
+ &ucd.CodePointRange{From: rune(12294), To: rune(12294)},
+ &ucd.CodePointRange{From: rune(12348), To: rune(12348)},
+ &ucd.CodePointRange{From: rune(12353), To: rune(12438)},
+ &ucd.CodePointRange{From: rune(12447), To: rune(12447)},
+ &ucd.CodePointRange{From: rune(12449), To: rune(12538)},
+ &ucd.CodePointRange{From: rune(12543), To: rune(12543)},
+ &ucd.CodePointRange{From: rune(12549), To: rune(12591)},
+ &ucd.CodePointRange{From: rune(12593), To: rune(12686)},
+ &ucd.CodePointRange{From: rune(12704), To: rune(12735)},
+ &ucd.CodePointRange{From: rune(12784), To: rune(12799)},
+ &ucd.CodePointRange{From: rune(13312), To: rune(13312)},
+ &ucd.CodePointRange{From: rune(19903), To: rune(19903)},
+ &ucd.CodePointRange{From: rune(19968), To: rune(19968)},
+ &ucd.CodePointRange{From: rune(40956), To: rune(40956)},
+ &ucd.CodePointRange{From: rune(40960), To: rune(40980)},
+ &ucd.CodePointRange{From: rune(40982), To: rune(42124)},
+ &ucd.CodePointRange{From: rune(42192), To: rune(42231)},
+ &ucd.CodePointRange{From: rune(42240), To: rune(42507)},
+ &ucd.CodePointRange{From: rune(42512), To: rune(42527)},
+ &ucd.CodePointRange{From: rune(42538), To: rune(42539)},
+ &ucd.CodePointRange{From: rune(42606), To: rune(42606)},
+ &ucd.CodePointRange{From: rune(42656), To: rune(42725)},
+ &ucd.CodePointRange{From: rune(42895), To: rune(42895)},
+ &ucd.CodePointRange{From: rune(42999), To: rune(42999)},
+ &ucd.CodePointRange{From: rune(43003), To: rune(43009)},
+ &ucd.CodePointRange{From: rune(43011), To: rune(43013)},
+ &ucd.CodePointRange{From: rune(43015), To: rune(43018)},
+ &ucd.CodePointRange{From: rune(43020), To: rune(43042)},
+ &ucd.CodePointRange{From: rune(43072), To: rune(43123)},
+ &ucd.CodePointRange{From: rune(43138), To: rune(43187)},
+ &ucd.CodePointRange{From: rune(43250), To: rune(43255)},
+ &ucd.CodePointRange{From: rune(43259), To: rune(43259)},
+ &ucd.CodePointRange{From: rune(43261), To: rune(43262)},
+ &ucd.CodePointRange{From: rune(43274), To: rune(43301)},
+ &ucd.CodePointRange{From: rune(43312), To: rune(43334)},
+ &ucd.CodePointRange{From: rune(43360), To: rune(43388)},
+ &ucd.CodePointRange{From: rune(43396), To: rune(43442)},
+ &ucd.CodePointRange{From: rune(43488), To: rune(43492)},
+ &ucd.CodePointRange{From: rune(43495), To: rune(43503)},
+ &ucd.CodePointRange{From: rune(43514), To: rune(43518)},
+ &ucd.CodePointRange{From: rune(43520), To: rune(43560)},
+ &ucd.CodePointRange{From: rune(43584), To: rune(43586)},
+ &ucd.CodePointRange{From: rune(43588), To: rune(43595)},
+ &ucd.CodePointRange{From: rune(43616), To: rune(43631)},
+ &ucd.CodePointRange{From: rune(43633), To: rune(43638)},
+ &ucd.CodePointRange{From: rune(43642), To: rune(43642)},
+ &ucd.CodePointRange{From: rune(43646), To: rune(43695)},
+ &ucd.CodePointRange{From: rune(43697), To: rune(43697)},
+ &ucd.CodePointRange{From: rune(43701), To: rune(43702)},
+ &ucd.CodePointRange{From: rune(43705), To: rune(43709)},
+ &ucd.CodePointRange{From: rune(43712), To: rune(43712)},
+ &ucd.CodePointRange{From: rune(43714), To: rune(43714)},
+ &ucd.CodePointRange{From: rune(43739), To: rune(43740)},
+ &ucd.CodePointRange{From: rune(43744), To: rune(43754)},
+ &ucd.CodePointRange{From: rune(43762), To: rune(43762)},
+ &ucd.CodePointRange{From: rune(43777), To: rune(43782)},
+ &ucd.CodePointRange{From: rune(43785), To: rune(43790)},
+ &ucd.CodePointRange{From: rune(43793), To: rune(43798)},
+ &ucd.CodePointRange{From: rune(43808), To: rune(43814)},
+ &ucd.CodePointRange{From: rune(43816), To: rune(43822)},
+ &ucd.CodePointRange{From: rune(43968), To: rune(44002)},
+ &ucd.CodePointRange{From: rune(44032), To: rune(44032)},
+ &ucd.CodePointRange{From: rune(55203), To: rune(55203)},
+ &ucd.CodePointRange{From: rune(55216), To: rune(55238)},
+ &ucd.CodePointRange{From: rune(55243), To: rune(55291)},
+ &ucd.CodePointRange{From: rune(63744), To: rune(64109)},
+ &ucd.CodePointRange{From: rune(64112), To: rune(64217)},
+ &ucd.CodePointRange{From: rune(64285), To: rune(64285)},
+ &ucd.CodePointRange{From: rune(64287), To: rune(64296)},
+ &ucd.CodePointRange{From: rune(64298), To: rune(64310)},
+ &ucd.CodePointRange{From: rune(64312), To: rune(64316)},
+ &ucd.CodePointRange{From: rune(64318), To: rune(64318)},
+ &ucd.CodePointRange{From: rune(64320), To: rune(64321)},
+ &ucd.CodePointRange{From: rune(64323), To: rune(64324)},
+ &ucd.CodePointRange{From: rune(64326), To: rune(64433)},
+ &ucd.CodePointRange{From: rune(64467), To: rune(64829)},
+ &ucd.CodePointRange{From: rune(64848), To: rune(64911)},
+ &ucd.CodePointRange{From: rune(64914), To: rune(64967)},
+ &ucd.CodePointRange{From: rune(65008), To: rune(65019)},
+ &ucd.CodePointRange{From: rune(65136), To: rune(65140)},
+ &ucd.CodePointRange{From: rune(65142), To: rune(65276)},
+ &ucd.CodePointRange{From: rune(65382), To: rune(65391)},
+ &ucd.CodePointRange{From: rune(65393), To: rune(65437)},
+ &ucd.CodePointRange{From: rune(65440), To: rune(65470)},
+ &ucd.CodePointRange{From: rune(65474), To: rune(65479)},
+ &ucd.CodePointRange{From: rune(65482), To: rune(65487)},
+ &ucd.CodePointRange{From: rune(65490), To: rune(65495)},
+ &ucd.CodePointRange{From: rune(65498), To: rune(65500)},
+ &ucd.CodePointRange{From: rune(65536), To: rune(65547)},
+ &ucd.CodePointRange{From: rune(65549), To: rune(65574)},
+ &ucd.CodePointRange{From: rune(65576), To: rune(65594)},
+ &ucd.CodePointRange{From: rune(65596), To: rune(65597)},
+ &ucd.CodePointRange{From: rune(65599), To: rune(65613)},
+ &ucd.CodePointRange{From: rune(65616), To: rune(65629)},
+ &ucd.CodePointRange{From: rune(65664), To: rune(65786)},
+ &ucd.CodePointRange{From: rune(66176), To: rune(66204)},
+ &ucd.CodePointRange{From: rune(66208), To: rune(66256)},
+ &ucd.CodePointRange{From: rune(66304), To: rune(66335)},
+ &ucd.CodePointRange{From: rune(66349), To: rune(66368)},
+ &ucd.CodePointRange{From: rune(66370), To: rune(66377)},
+ &ucd.CodePointRange{From: rune(66384), To: rune(66421)},
+ &ucd.CodePointRange{From: rune(66432), To: rune(66461)},
+ &ucd.CodePointRange{From: rune(66464), To: rune(66499)},
+ &ucd.CodePointRange{From: rune(66504), To: rune(66511)},
+ &ucd.CodePointRange{From: rune(66640), To: rune(66717)},
+ &ucd.CodePointRange{From: rune(66816), To: rune(66855)},
+ &ucd.CodePointRange{From: rune(66864), To: rune(66915)},
+ &ucd.CodePointRange{From: rune(67072), To: rune(67382)},
+ &ucd.CodePointRange{From: rune(67392), To: rune(67413)},
+ &ucd.CodePointRange{From: rune(67424), To: rune(67431)},
+ &ucd.CodePointRange{From: rune(67584), To: rune(67589)},
+ &ucd.CodePointRange{From: rune(67592), To: rune(67592)},
+ &ucd.CodePointRange{From: rune(67594), To: rune(67637)},
+ &ucd.CodePointRange{From: rune(67639), To: rune(67640)},
+ &ucd.CodePointRange{From: rune(67644), To: rune(67644)},
+ &ucd.CodePointRange{From: rune(67647), To: rune(67669)},
+ &ucd.CodePointRange{From: rune(67680), To: rune(67702)},
+ &ucd.CodePointRange{From: rune(67712), To: rune(67742)},
+ &ucd.CodePointRange{From: rune(67808), To: rune(67826)},
+ &ucd.CodePointRange{From: rune(67828), To: rune(67829)},
+ &ucd.CodePointRange{From: rune(67840), To: rune(67861)},
+ &ucd.CodePointRange{From: rune(67872), To: rune(67897)},
+ &ucd.CodePointRange{From: rune(67968), To: rune(68023)},
+ &ucd.CodePointRange{From: rune(68030), To: rune(68031)},
+ &ucd.CodePointRange{From: rune(68096), To: rune(68096)},
+ &ucd.CodePointRange{From: rune(68112), To: rune(68115)},
+ &ucd.CodePointRange{From: rune(68117), To: rune(68119)},
+ &ucd.CodePointRange{From: rune(68121), To: rune(68149)},
+ &ucd.CodePointRange{From: rune(68192), To: rune(68220)},
+ &ucd.CodePointRange{From: rune(68224), To: rune(68252)},
+ &ucd.CodePointRange{From: rune(68288), To: rune(68295)},
+ &ucd.CodePointRange{From: rune(68297), To: rune(68324)},
+ &ucd.CodePointRange{From: rune(68352), To: rune(68405)},
+ &ucd.CodePointRange{From: rune(68416), To: rune(68437)},
+ &ucd.CodePointRange{From: rune(68448), To: rune(68466)},
+ &ucd.CodePointRange{From: rune(68480), To: rune(68497)},
+ &ucd.CodePointRange{From: rune(68608), To: rune(68680)},
+ &ucd.CodePointRange{From: rune(68864), To: rune(68899)},
+ &ucd.CodePointRange{From: rune(69248), To: rune(69289)},
+ &ucd.CodePointRange{From: rune(69296), To: rune(69297)},
+ &ucd.CodePointRange{From: rune(69376), To: rune(69404)},
+ &ucd.CodePointRange{From: rune(69415), To: rune(69415)},
+ &ucd.CodePointRange{From: rune(69424), To: rune(69445)},
+ &ucd.CodePointRange{From: rune(69552), To: rune(69572)},
+ &ucd.CodePointRange{From: rune(69600), To: rune(69622)},
+ &ucd.CodePointRange{From: rune(69635), To: rune(69687)},
+ &ucd.CodePointRange{From: rune(69763), To: rune(69807)},
+ &ucd.CodePointRange{From: rune(69840), To: rune(69864)},
+ &ucd.CodePointRange{From: rune(69891), To: rune(69926)},
+ &ucd.CodePointRange{From: rune(69956), To: rune(69956)},
+ &ucd.CodePointRange{From: rune(69959), To: rune(69959)},
+ &ucd.CodePointRange{From: rune(69968), To: rune(70002)},
+ &ucd.CodePointRange{From: rune(70006), To: rune(70006)},
+ &ucd.CodePointRange{From: rune(70019), To: rune(70066)},
+ &ucd.CodePointRange{From: rune(70081), To: rune(70084)},
+ &ucd.CodePointRange{From: rune(70106), To: rune(70106)},
+ &ucd.CodePointRange{From: rune(70108), To: rune(70108)},
+ &ucd.CodePointRange{From: rune(70144), To: rune(70161)},
+ &ucd.CodePointRange{From: rune(70163), To: rune(70187)},
+ &ucd.CodePointRange{From: rune(70272), To: rune(70278)},
+ &ucd.CodePointRange{From: rune(70280), To: rune(70280)},
+ &ucd.CodePointRange{From: rune(70282), To: rune(70285)},
+ &ucd.CodePointRange{From: rune(70287), To: rune(70301)},
+ &ucd.CodePointRange{From: rune(70303), To: rune(70312)},
+ &ucd.CodePointRange{From: rune(70320), To: rune(70366)},
+ &ucd.CodePointRange{From: rune(70405), To: rune(70412)},
+ &ucd.CodePointRange{From: rune(70415), To: rune(70416)},
+ &ucd.CodePointRange{From: rune(70419), To: rune(70440)},
+ &ucd.CodePointRange{From: rune(70442), To: rune(70448)},
+ &ucd.CodePointRange{From: rune(70450), To: rune(70451)},
+ &ucd.CodePointRange{From: rune(70453), To: rune(70457)},
+ &ucd.CodePointRange{From: rune(70461), To: rune(70461)},
+ &ucd.CodePointRange{From: rune(70480), To: rune(70480)},
+ &ucd.CodePointRange{From: rune(70493), To: rune(70497)},
+ &ucd.CodePointRange{From: rune(70656), To: rune(70708)},
+ &ucd.CodePointRange{From: rune(70727), To: rune(70730)},
+ &ucd.CodePointRange{From: rune(70751), To: rune(70753)},
+ &ucd.CodePointRange{From: rune(70784), To: rune(70831)},
+ &ucd.CodePointRange{From: rune(70852), To: rune(70853)},
+ &ucd.CodePointRange{From: rune(70855), To: rune(70855)},
+ &ucd.CodePointRange{From: rune(71040), To: rune(71086)},
+ &ucd.CodePointRange{From: rune(71128), To: rune(71131)},
+ &ucd.CodePointRange{From: rune(71168), To: rune(71215)},
+ &ucd.CodePointRange{From: rune(71236), To: rune(71236)},
+ &ucd.CodePointRange{From: rune(71296), To: rune(71338)},
+ &ucd.CodePointRange{From: rune(71352), To: rune(71352)},
+ &ucd.CodePointRange{From: rune(71424), To: rune(71450)},
+ &ucd.CodePointRange{From: rune(71680), To: rune(71723)},
+ &ucd.CodePointRange{From: rune(71935), To: rune(71942)},
+ &ucd.CodePointRange{From: rune(71945), To: rune(71945)},
+ &ucd.CodePointRange{From: rune(71948), To: rune(71955)},
+ &ucd.CodePointRange{From: rune(71957), To: rune(71958)},
+ &ucd.CodePointRange{From: rune(71960), To: rune(71983)},
+ &ucd.CodePointRange{From: rune(71999), To: rune(71999)},
+ &ucd.CodePointRange{From: rune(72001), To: rune(72001)},
+ &ucd.CodePointRange{From: rune(72096), To: rune(72103)},
+ &ucd.CodePointRange{From: rune(72106), To: rune(72144)},
+ &ucd.CodePointRange{From: rune(72161), To: rune(72161)},
+ &ucd.CodePointRange{From: rune(72163), To: rune(72163)},
+ &ucd.CodePointRange{From: rune(72192), To: rune(72192)},
+ &ucd.CodePointRange{From: rune(72203), To: rune(72242)},
+ &ucd.CodePointRange{From: rune(72250), To: rune(72250)},
+ &ucd.CodePointRange{From: rune(72272), To: rune(72272)},
+ &ucd.CodePointRange{From: rune(72284), To: rune(72329)},
+ &ucd.CodePointRange{From: rune(72349), To: rune(72349)},
+ &ucd.CodePointRange{From: rune(72384), To: rune(72440)},
+ &ucd.CodePointRange{From: rune(72704), To: rune(72712)},
+ &ucd.CodePointRange{From: rune(72714), To: rune(72750)},
+ &ucd.CodePointRange{From: rune(72768), To: rune(72768)},
+ &ucd.CodePointRange{From: rune(72818), To: rune(72847)},
+ &ucd.CodePointRange{From: rune(72960), To: rune(72966)},
+ &ucd.CodePointRange{From: rune(72968), To: rune(72969)},
+ &ucd.CodePointRange{From: rune(72971), To: rune(73008)},
+ &ucd.CodePointRange{From: rune(73030), To: rune(73030)},
+ &ucd.CodePointRange{From: rune(73056), To: rune(73061)},
+ &ucd.CodePointRange{From: rune(73063), To: rune(73064)},
+ &ucd.CodePointRange{From: rune(73066), To: rune(73097)},
+ &ucd.CodePointRange{From: rune(73112), To: rune(73112)},
+ &ucd.CodePointRange{From: rune(73440), To: rune(73458)},
+ &ucd.CodePointRange{From: rune(73648), To: rune(73648)},
+ &ucd.CodePointRange{From: rune(73728), To: rune(74649)},
+ &ucd.CodePointRange{From: rune(74880), To: rune(75075)},
+ &ucd.CodePointRange{From: rune(77824), To: rune(78894)},
+ &ucd.CodePointRange{From: rune(82944), To: rune(83526)},
+ &ucd.CodePointRange{From: rune(92160), To: rune(92728)},
+ &ucd.CodePointRange{From: rune(92736), To: rune(92766)},
+ &ucd.CodePointRange{From: rune(92880), To: rune(92909)},
+ &ucd.CodePointRange{From: rune(92928), To: rune(92975)},
+ &ucd.CodePointRange{From: rune(93027), To: rune(93047)},
+ &ucd.CodePointRange{From: rune(93053), To: rune(93071)},
+ &ucd.CodePointRange{From: rune(93952), To: rune(94026)},
+ &ucd.CodePointRange{From: rune(94032), To: rune(94032)},
+ &ucd.CodePointRange{From: rune(94208), To: rune(94208)},
+ &ucd.CodePointRange{From: rune(100343), To: rune(100343)},
+ &ucd.CodePointRange{From: rune(100352), To: rune(101589)},
+ &ucd.CodePointRange{From: rune(101632), To: rune(101632)},
+ &ucd.CodePointRange{From: rune(101640), To: rune(101640)},
+ &ucd.CodePointRange{From: rune(110592), To: rune(110878)},
+ &ucd.CodePointRange{From: rune(110928), To: rune(110930)},
+ &ucd.CodePointRange{From: rune(110948), To: rune(110951)},
+ &ucd.CodePointRange{From: rune(110960), To: rune(111355)},
+ &ucd.CodePointRange{From: rune(113664), To: rune(113770)},
+ &ucd.CodePointRange{From: rune(113776), To: rune(113788)},
+ &ucd.CodePointRange{From: rune(113792), To: rune(113800)},
+ &ucd.CodePointRange{From: rune(113808), To: rune(113817)},
+ &ucd.CodePointRange{From: rune(123136), To: rune(123180)},
+ &ucd.CodePointRange{From: rune(123214), To: rune(123214)},
+ &ucd.CodePointRange{From: rune(123584), To: rune(123627)},
+ &ucd.CodePointRange{From: rune(124928), To: rune(125124)},
+ &ucd.CodePointRange{From: rune(126464), To: rune(126467)},
+ &ucd.CodePointRange{From: rune(126469), To: rune(126495)},
+ &ucd.CodePointRange{From: rune(126497), To: rune(126498)},
+ &ucd.CodePointRange{From: rune(126500), To: rune(126500)},
+ &ucd.CodePointRange{From: rune(126503), To: rune(126503)},
+ &ucd.CodePointRange{From: rune(126505), To: rune(126514)},
+ &ucd.CodePointRange{From: rune(126516), To: rune(126519)},
+ &ucd.CodePointRange{From: rune(126521), To: rune(126521)},
+ &ucd.CodePointRange{From: rune(126523), To: rune(126523)},
+ &ucd.CodePointRange{From: rune(126530), To: rune(126530)},
+ &ucd.CodePointRange{From: rune(126535), To: rune(126535)},
+ &ucd.CodePointRange{From: rune(126537), To: rune(126537)},
+ &ucd.CodePointRange{From: rune(126539), To: rune(126539)},
+ &ucd.CodePointRange{From: rune(126541), To: rune(126543)},
+ &ucd.CodePointRange{From: rune(126545), To: rune(126546)},
+ &ucd.CodePointRange{From: rune(126548), To: rune(126548)},
+ &ucd.CodePointRange{From: rune(126551), To: rune(126551)},
+ &ucd.CodePointRange{From: rune(126553), To: rune(126553)},
+ &ucd.CodePointRange{From: rune(126555), To: rune(126555)},
+ &ucd.CodePointRange{From: rune(126557), To: rune(126557)},
+ &ucd.CodePointRange{From: rune(126559), To: rune(126559)},
+ &ucd.CodePointRange{From: rune(126561), To: rune(126562)},
+ &ucd.CodePointRange{From: rune(126564), To: rune(126564)},
+ &ucd.CodePointRange{From: rune(126567), To: rune(126570)},
+ &ucd.CodePointRange{From: rune(126572), To: rune(126578)},
+ &ucd.CodePointRange{From: rune(126580), To: rune(126583)},
+ &ucd.CodePointRange{From: rune(126585), To: rune(126588)},
+ &ucd.CodePointRange{From: rune(126590), To: rune(126590)},
+ &ucd.CodePointRange{From: rune(126592), To: rune(126601)},
+ &ucd.CodePointRange{From: rune(126603), To: rune(126619)},
+ &ucd.CodePointRange{From: rune(126625), To: rune(126627)},
+ &ucd.CodePointRange{From: rune(126629), To: rune(126633)},
+ &ucd.CodePointRange{From: rune(126635), To: rune(126651)},
+ &ucd.CodePointRange{From: rune(131072), To: rune(131072)},
+ &ucd.CodePointRange{From: rune(173789), To: rune(173789)},
+ &ucd.CodePointRange{From: rune(173824), To: rune(173824)},
+ &ucd.CodePointRange{From: rune(177972), To: rune(177972)},
+ &ucd.CodePointRange{From: rune(177984), To: rune(177984)},
+ &ucd.CodePointRange{From: rune(178205), To: rune(178205)},
+ &ucd.CodePointRange{From: rune(178208), To: rune(178208)},
+ &ucd.CodePointRange{From: rune(183969), To: rune(183969)},
+ &ucd.CodePointRange{From: rune(183984), To: rune(183984)},
+ &ucd.CodePointRange{From: rune(191456), To: rune(191456)},
+ &ucd.CodePointRange{From: rune(194560), To: rune(195101)},
+ &ucd.CodePointRange{From: rune(196608), To: rune(196608)},
+ &ucd.CodePointRange{From: rune(201546), To: rune(201546)},
+ },
+ "lt": {
+ &ucd.CodePointRange{From: rune(453), To: rune(453)},
+ &ucd.CodePointRange{From: rune(456), To: rune(456)},
+ &ucd.CodePointRange{From: rune(459), To: rune(459)},
+ &ucd.CodePointRange{From: rune(498), To: rune(498)},
+ &ucd.CodePointRange{From: rune(8072), To: rune(8079)},
+ &ucd.CodePointRange{From: rune(8088), To: rune(8095)},
+ &ucd.CodePointRange{From: rune(8104), To: rune(8111)},
+ &ucd.CodePointRange{From: rune(8124), To: rune(8124)},
+ &ucd.CodePointRange{From: rune(8140), To: rune(8140)},
+ &ucd.CodePointRange{From: rune(8188), To: rune(8188)},
+ },
+ "lu": {
+ &ucd.CodePointRange{From: rune(65), To: rune(90)},
+ &ucd.CodePointRange{From: rune(192), To: rune(214)},
+ &ucd.CodePointRange{From: rune(216), To: rune(222)},
+ &ucd.CodePointRange{From: rune(256), To: rune(256)},
+ &ucd.CodePointRange{From: rune(258), To: rune(258)},
+ &ucd.CodePointRange{From: rune(260), To: rune(260)},
+ &ucd.CodePointRange{From: rune(262), To: rune(262)},
+ &ucd.CodePointRange{From: rune(264), To: rune(264)},
+ &ucd.CodePointRange{From: rune(266), To: rune(266)},
+ &ucd.CodePointRange{From: rune(268), To: rune(268)},
+ &ucd.CodePointRange{From: rune(270), To: rune(270)},
+ &ucd.CodePointRange{From: rune(272), To: rune(272)},
+ &ucd.CodePointRange{From: rune(274), To: rune(274)},
+ &ucd.CodePointRange{From: rune(276), To: rune(276)},
+ &ucd.CodePointRange{From: rune(278), To: rune(278)},
+ &ucd.CodePointRange{From: rune(280), To: rune(280)},
+ &ucd.CodePointRange{From: rune(282), To: rune(282)},
+ &ucd.CodePointRange{From: rune(284), To: rune(284)},
+ &ucd.CodePointRange{From: rune(286), To: rune(286)},
+ &ucd.CodePointRange{From: rune(288), To: rune(288)},
+ &ucd.CodePointRange{From: rune(290), To: rune(290)},
+ &ucd.CodePointRange{From: rune(292), To: rune(292)},
+ &ucd.CodePointRange{From: rune(294), To: rune(294)},
+ &ucd.CodePointRange{From: rune(296), To: rune(296)},
+ &ucd.CodePointRange{From: rune(298), To: rune(298)},
+ &ucd.CodePointRange{From: rune(300), To: rune(300)},
+ &ucd.CodePointRange{From: rune(302), To: rune(302)},
+ &ucd.CodePointRange{From: rune(304), To: rune(304)},
+ &ucd.CodePointRange{From: rune(306), To: rune(306)},
+ &ucd.CodePointRange{From: rune(308), To: rune(308)},
+ &ucd.CodePointRange{From: rune(310), To: rune(310)},
+ &ucd.CodePointRange{From: rune(313), To: rune(313)},
+ &ucd.CodePointRange{From: rune(315), To: rune(315)},
+ &ucd.CodePointRange{From: rune(317), To: rune(317)},
+ &ucd.CodePointRange{From: rune(319), To: rune(319)},
+ &ucd.CodePointRange{From: rune(321), To: rune(321)},
+ &ucd.CodePointRange{From: rune(323), To: rune(323)},
+ &ucd.CodePointRange{From: rune(325), To: rune(325)},
+ &ucd.CodePointRange{From: rune(327), To: rune(327)},
+ &ucd.CodePointRange{From: rune(330), To: rune(330)},
+ &ucd.CodePointRange{From: rune(332), To: rune(332)},
+ &ucd.CodePointRange{From: rune(334), To: rune(334)},
+ &ucd.CodePointRange{From: rune(336), To: rune(336)},
+ &ucd.CodePointRange{From: rune(338), To: rune(338)},
+ &ucd.CodePointRange{From: rune(340), To: rune(340)},
+ &ucd.CodePointRange{From: rune(342), To: rune(342)},
+ &ucd.CodePointRange{From: rune(344), To: rune(344)},
+ &ucd.CodePointRange{From: rune(346), To: rune(346)},
+ &ucd.CodePointRange{From: rune(348), To: rune(348)},
+ &ucd.CodePointRange{From: rune(350), To: rune(350)},
+ &ucd.CodePointRange{From: rune(352), To: rune(352)},
+ &ucd.CodePointRange{From: rune(354), To: rune(354)},
+ &ucd.CodePointRange{From: rune(356), To: rune(356)},
+ &ucd.CodePointRange{From: rune(358), To: rune(358)},
+ &ucd.CodePointRange{From: rune(360), To: rune(360)},
+ &ucd.CodePointRange{From: rune(362), To: rune(362)},
+ &ucd.CodePointRange{From: rune(364), To: rune(364)},
+ &ucd.CodePointRange{From: rune(366), To: rune(366)},
+ &ucd.CodePointRange{From: rune(368), To: rune(368)},
+ &ucd.CodePointRange{From: rune(370), To: rune(370)},
+ &ucd.CodePointRange{From: rune(372), To: rune(372)},
+ &ucd.CodePointRange{From: rune(374), To: rune(374)},
+ &ucd.CodePointRange{From: rune(376), To: rune(377)},
+ &ucd.CodePointRange{From: rune(379), To: rune(379)},
+ &ucd.CodePointRange{From: rune(381), To: rune(381)},
+ &ucd.CodePointRange{From: rune(385), To: rune(386)},
+ &ucd.CodePointRange{From: rune(388), To: rune(388)},
+ &ucd.CodePointRange{From: rune(390), To: rune(391)},
+ &ucd.CodePointRange{From: rune(393), To: rune(395)},
+ &ucd.CodePointRange{From: rune(398), To: rune(401)},
+ &ucd.CodePointRange{From: rune(403), To: rune(404)},
+ &ucd.CodePointRange{From: rune(406), To: rune(408)},
+ &ucd.CodePointRange{From: rune(412), To: rune(413)},
+ &ucd.CodePointRange{From: rune(415), To: rune(416)},
+ &ucd.CodePointRange{From: rune(418), To: rune(418)},
+ &ucd.CodePointRange{From: rune(420), To: rune(420)},
+ &ucd.CodePointRange{From: rune(422), To: rune(423)},
+ &ucd.CodePointRange{From: rune(425), To: rune(425)},
+ &ucd.CodePointRange{From: rune(428), To: rune(428)},
+ &ucd.CodePointRange{From: rune(430), To: rune(431)},
+ &ucd.CodePointRange{From: rune(433), To: rune(435)},
+ &ucd.CodePointRange{From: rune(437), To: rune(437)},
+ &ucd.CodePointRange{From: rune(439), To: rune(440)},
+ &ucd.CodePointRange{From: rune(444), To: rune(444)},
+ &ucd.CodePointRange{From: rune(452), To: rune(452)},
+ &ucd.CodePointRange{From: rune(455), To: rune(455)},
+ &ucd.CodePointRange{From: rune(458), To: rune(458)},
+ &ucd.CodePointRange{From: rune(461), To: rune(461)},
+ &ucd.CodePointRange{From: rune(463), To: rune(463)},
+ &ucd.CodePointRange{From: rune(465), To: rune(465)},
+ &ucd.CodePointRange{From: rune(467), To: rune(467)},
+ &ucd.CodePointRange{From: rune(469), To: rune(469)},
+ &ucd.CodePointRange{From: rune(471), To: rune(471)},
+ &ucd.CodePointRange{From: rune(473), To: rune(473)},
+ &ucd.CodePointRange{From: rune(475), To: rune(475)},
+ &ucd.CodePointRange{From: rune(478), To: rune(478)},
+ &ucd.CodePointRange{From: rune(480), To: rune(480)},
+ &ucd.CodePointRange{From: rune(482), To: rune(482)},
+ &ucd.CodePointRange{From: rune(484), To: rune(484)},
+ &ucd.CodePointRange{From: rune(486), To: rune(486)},
+ &ucd.CodePointRange{From: rune(488), To: rune(488)},
+ &ucd.CodePointRange{From: rune(490), To: rune(490)},
+ &ucd.CodePointRange{From: rune(492), To: rune(492)},
+ &ucd.CodePointRange{From: rune(494), To: rune(494)},
+ &ucd.CodePointRange{From: rune(497), To: rune(497)},
+ &ucd.CodePointRange{From: rune(500), To: rune(500)},
+ &ucd.CodePointRange{From: rune(502), To: rune(504)},
+ &ucd.CodePointRange{From: rune(506), To: rune(506)},
+ &ucd.CodePointRange{From: rune(508), To: rune(508)},
+ &ucd.CodePointRange{From: rune(510), To: rune(510)},
+ &ucd.CodePointRange{From: rune(512), To: rune(512)},
+ &ucd.CodePointRange{From: rune(514), To: rune(514)},
+ &ucd.CodePointRange{From: rune(516), To: rune(516)},
+ &ucd.CodePointRange{From: rune(518), To: rune(518)},
+ &ucd.CodePointRange{From: rune(520), To: rune(520)},
+ &ucd.CodePointRange{From: rune(522), To: rune(522)},
+ &ucd.CodePointRange{From: rune(524), To: rune(524)},
+ &ucd.CodePointRange{From: rune(526), To: rune(526)},
+ &ucd.CodePointRange{From: rune(528), To: rune(528)},
+ &ucd.CodePointRange{From: rune(530), To: rune(530)},
+ &ucd.CodePointRange{From: rune(532), To: rune(532)},
+ &ucd.CodePointRange{From: rune(534), To: rune(534)},
+ &ucd.CodePointRange{From: rune(536), To: rune(536)},
+ &ucd.CodePointRange{From: rune(538), To: rune(538)},
+ &ucd.CodePointRange{From: rune(540), To: rune(540)},
+ &ucd.CodePointRange{From: rune(542), To: rune(542)},
+ &ucd.CodePointRange{From: rune(544), To: rune(544)},
+ &ucd.CodePointRange{From: rune(546), To: rune(546)},
+ &ucd.CodePointRange{From: rune(548), To: rune(548)},
+ &ucd.CodePointRange{From: rune(550), To: rune(550)},
+ &ucd.CodePointRange{From: rune(552), To: rune(552)},
+ &ucd.CodePointRange{From: rune(554), To: rune(554)},
+ &ucd.CodePointRange{From: rune(556), To: rune(556)},
+ &ucd.CodePointRange{From: rune(558), To: rune(558)},
+ &ucd.CodePointRange{From: rune(560), To: rune(560)},
+ &ucd.CodePointRange{From: rune(562), To: rune(562)},
+ &ucd.CodePointRange{From: rune(570), To: rune(571)},
+ &ucd.CodePointRange{From: rune(573), To: rune(574)},
+ &ucd.CodePointRange{From: rune(577), To: rune(577)},
+ &ucd.CodePointRange{From: rune(579), To: rune(582)},
+ &ucd.CodePointRange{From: rune(584), To: rune(584)},
+ &ucd.CodePointRange{From: rune(586), To: rune(586)},
+ &ucd.CodePointRange{From: rune(588), To: rune(588)},
+ &ucd.CodePointRange{From: rune(590), To: rune(590)},
+ &ucd.CodePointRange{From: rune(880), To: rune(880)},
+ &ucd.CodePointRange{From: rune(882), To: rune(882)},
+ &ucd.CodePointRange{From: rune(886), To: rune(886)},
+ &ucd.CodePointRange{From: rune(895), To: rune(895)},
+ &ucd.CodePointRange{From: rune(902), To: rune(902)},
+ &ucd.CodePointRange{From: rune(904), To: rune(906)},
+ &ucd.CodePointRange{From: rune(908), To: rune(908)},
+ &ucd.CodePointRange{From: rune(910), To: rune(911)},
+ &ucd.CodePointRange{From: rune(913), To: rune(929)},
+ &ucd.CodePointRange{From: rune(931), To: rune(939)},
+ &ucd.CodePointRange{From: rune(975), To: rune(975)},
+ &ucd.CodePointRange{From: rune(978), To: rune(980)},
+ &ucd.CodePointRange{From: rune(984), To: rune(984)},
+ &ucd.CodePointRange{From: rune(986), To: rune(986)},
+ &ucd.CodePointRange{From: rune(988), To: rune(988)},
+ &ucd.CodePointRange{From: rune(990), To: rune(990)},
+ &ucd.CodePointRange{From: rune(992), To: rune(992)},
+ &ucd.CodePointRange{From: rune(994), To: rune(994)},
+ &ucd.CodePointRange{From: rune(996), To: rune(996)},
+ &ucd.CodePointRange{From: rune(998), To: rune(998)},
+ &ucd.CodePointRange{From: rune(1000), To: rune(1000)},
+ &ucd.CodePointRange{From: rune(1002), To: rune(1002)},
+ &ucd.CodePointRange{From: rune(1004), To: rune(1004)},
+ &ucd.CodePointRange{From: rune(1006), To: rune(1006)},
+ &ucd.CodePointRange{From: rune(1012), To: rune(1012)},
+ &ucd.CodePointRange{From: rune(1015), To: rune(1015)},
+ &ucd.CodePointRange{From: rune(1017), To: rune(1018)},
+ &ucd.CodePointRange{From: rune(1021), To: rune(1071)},
+ &ucd.CodePointRange{From: rune(1120), To: rune(1120)},
+ &ucd.CodePointRange{From: rune(1122), To: rune(1122)},
+ &ucd.CodePointRange{From: rune(1124), To: rune(1124)},
+ &ucd.CodePointRange{From: rune(1126), To: rune(1126)},
+ &ucd.CodePointRange{From: rune(1128), To: rune(1128)},
+ &ucd.CodePointRange{From: rune(1130), To: rune(1130)},
+ &ucd.CodePointRange{From: rune(1132), To: rune(1132)},
+ &ucd.CodePointRange{From: rune(1134), To: rune(1134)},
+ &ucd.CodePointRange{From: rune(1136), To: rune(1136)},
+ &ucd.CodePointRange{From: rune(1138), To: rune(1138)},
+ &ucd.CodePointRange{From: rune(1140), To: rune(1140)},
+ &ucd.CodePointRange{From: rune(1142), To: rune(1142)},
+ &ucd.CodePointRange{From: rune(1144), To: rune(1144)},
+ &ucd.CodePointRange{From: rune(1146), To: rune(1146)},
+ &ucd.CodePointRange{From: rune(1148), To: rune(1148)},
+ &ucd.CodePointRange{From: rune(1150), To: rune(1150)},
+ &ucd.CodePointRange{From: rune(1152), To: rune(1152)},
+ &ucd.CodePointRange{From: rune(1162), To: rune(1162)},
+ &ucd.CodePointRange{From: rune(1164), To: rune(1164)},
+ &ucd.CodePointRange{From: rune(1166), To: rune(1166)},
+ &ucd.CodePointRange{From: rune(1168), To: rune(1168)},
+ &ucd.CodePointRange{From: rune(1170), To: rune(1170)},
+ &ucd.CodePointRange{From: rune(1172), To: rune(1172)},
+ &ucd.CodePointRange{From: rune(1174), To: rune(1174)},
+ &ucd.CodePointRange{From: rune(1176), To: rune(1176)},
+ &ucd.CodePointRange{From: rune(1178), To: rune(1178)},
+ &ucd.CodePointRange{From: rune(1180), To: rune(1180)},
+ &ucd.CodePointRange{From: rune(1182), To: rune(1182)},
+ &ucd.CodePointRange{From: rune(1184), To: rune(1184)},
+ &ucd.CodePointRange{From: rune(1186), To: rune(1186)},
+ &ucd.CodePointRange{From: rune(1188), To: rune(1188)},
+ &ucd.CodePointRange{From: rune(1190), To: rune(1190)},
+ &ucd.CodePointRange{From: rune(1192), To: rune(1192)},
+ &ucd.CodePointRange{From: rune(1194), To: rune(1194)},
+ &ucd.CodePointRange{From: rune(1196), To: rune(1196)},
+ &ucd.CodePointRange{From: rune(1198), To: rune(1198)},
+ &ucd.CodePointRange{From: rune(1200), To: rune(1200)},
+ &ucd.CodePointRange{From: rune(1202), To: rune(1202)},
+ &ucd.CodePointRange{From: rune(1204), To: rune(1204)},
+ &ucd.CodePointRange{From: rune(1206), To: rune(1206)},
+ &ucd.CodePointRange{From: rune(1208), To: rune(1208)},
+ &ucd.CodePointRange{From: rune(1210), To: rune(1210)},
+ &ucd.CodePointRange{From: rune(1212), To: rune(1212)},
+ &ucd.CodePointRange{From: rune(1214), To: rune(1214)},
+ &ucd.CodePointRange{From: rune(1216), To: rune(1217)},
+ &ucd.CodePointRange{From: rune(1219), To: rune(1219)},
+ &ucd.CodePointRange{From: rune(1221), To: rune(1221)},
+ &ucd.CodePointRange{From: rune(1223), To: rune(1223)},
+ &ucd.CodePointRange{From: rune(1225), To: rune(1225)},
+ &ucd.CodePointRange{From: rune(1227), To: rune(1227)},
+ &ucd.CodePointRange{From: rune(1229), To: rune(1229)},
+ &ucd.CodePointRange{From: rune(1232), To: rune(1232)},
+ &ucd.CodePointRange{From: rune(1234), To: rune(1234)},
+ &ucd.CodePointRange{From: rune(1236), To: rune(1236)},
+ &ucd.CodePointRange{From: rune(1238), To: rune(1238)},
+ &ucd.CodePointRange{From: rune(1240), To: rune(1240)},
+ &ucd.CodePointRange{From: rune(1242), To: rune(1242)},
+ &ucd.CodePointRange{From: rune(1244), To: rune(1244)},
+ &ucd.CodePointRange{From: rune(1246), To: rune(1246)},
+ &ucd.CodePointRange{From: rune(1248), To: rune(1248)},
+ &ucd.CodePointRange{From: rune(1250), To: rune(1250)},
+ &ucd.CodePointRange{From: rune(1252), To: rune(1252)},
+ &ucd.CodePointRange{From: rune(1254), To: rune(1254)},
+ &ucd.CodePointRange{From: rune(1256), To: rune(1256)},
+ &ucd.CodePointRange{From: rune(1258), To: rune(1258)},
+ &ucd.CodePointRange{From: rune(1260), To: rune(1260)},
+ &ucd.CodePointRange{From: rune(1262), To: rune(1262)},
+ &ucd.CodePointRange{From: rune(1264), To: rune(1264)},
+ &ucd.CodePointRange{From: rune(1266), To: rune(1266)},
+ &ucd.CodePointRange{From: rune(1268), To: rune(1268)},
+ &ucd.CodePointRange{From: rune(1270), To: rune(1270)},
+ &ucd.CodePointRange{From: rune(1272), To: rune(1272)},
+ &ucd.CodePointRange{From: rune(1274), To: rune(1274)},
+ &ucd.CodePointRange{From: rune(1276), To: rune(1276)},
+ &ucd.CodePointRange{From: rune(1278), To: rune(1278)},
+ &ucd.CodePointRange{From: rune(1280), To: rune(1280)},
+ &ucd.CodePointRange{From: rune(1282), To: rune(1282)},
+ &ucd.CodePointRange{From: rune(1284), To: rune(1284)},
+ &ucd.CodePointRange{From: rune(1286), To: rune(1286)},
+ &ucd.CodePointRange{From: rune(1288), To: rune(1288)},
+ &ucd.CodePointRange{From: rune(1290), To: rune(1290)},
+ &ucd.CodePointRange{From: rune(1292), To: rune(1292)},
+ &ucd.CodePointRange{From: rune(1294), To: rune(1294)},
+ &ucd.CodePointRange{From: rune(1296), To: rune(1296)},
+ &ucd.CodePointRange{From: rune(1298), To: rune(1298)},
+ &ucd.CodePointRange{From: rune(1300), To: rune(1300)},
+ &ucd.CodePointRange{From: rune(1302), To: rune(1302)},
+ &ucd.CodePointRange{From: rune(1304), To: rune(1304)},
+ &ucd.CodePointRange{From: rune(1306), To: rune(1306)},
+ &ucd.CodePointRange{From: rune(1308), To: rune(1308)},
+ &ucd.CodePointRange{From: rune(1310), To: rune(1310)},
+ &ucd.CodePointRange{From: rune(1312), To: rune(1312)},
+ &ucd.CodePointRange{From: rune(1314), To: rune(1314)},
+ &ucd.CodePointRange{From: rune(1316), To: rune(1316)},
+ &ucd.CodePointRange{From: rune(1318), To: rune(1318)},
+ &ucd.CodePointRange{From: rune(1320), To: rune(1320)},
+ &ucd.CodePointRange{From: rune(1322), To: rune(1322)},
+ &ucd.CodePointRange{From: rune(1324), To: rune(1324)},
+ &ucd.CodePointRange{From: rune(1326), To: rune(1326)},
+ &ucd.CodePointRange{From: rune(1329), To: rune(1366)},
+ &ucd.CodePointRange{From: rune(4256), To: rune(4293)},
+ &ucd.CodePointRange{From: rune(4295), To: rune(4295)},
+ &ucd.CodePointRange{From: rune(4301), To: rune(4301)},
+ &ucd.CodePointRange{From: rune(5024), To: rune(5109)},
+ &ucd.CodePointRange{From: rune(7312), To: rune(7354)},
+ &ucd.CodePointRange{From: rune(7357), To: rune(7359)},
+ &ucd.CodePointRange{From: rune(7680), To: rune(7680)},
+ &ucd.CodePointRange{From: rune(7682), To: rune(7682)},
+ &ucd.CodePointRange{From: rune(7684), To: rune(7684)},
+ &ucd.CodePointRange{From: rune(7686), To: rune(7686)},
+ &ucd.CodePointRange{From: rune(7688), To: rune(7688)},
+ &ucd.CodePointRange{From: rune(7690), To: rune(7690)},
+ &ucd.CodePointRange{From: rune(7692), To: rune(7692)},
+ &ucd.CodePointRange{From: rune(7694), To: rune(7694)},
+ &ucd.CodePointRange{From: rune(7696), To: rune(7696)},
+ &ucd.CodePointRange{From: rune(7698), To: rune(7698)},
+ &ucd.CodePointRange{From: rune(7700), To: rune(7700)},
+ &ucd.CodePointRange{From: rune(7702), To: rune(7702)},
+ &ucd.CodePointRange{From: rune(7704), To: rune(7704)},
+ &ucd.CodePointRange{From: rune(7706), To: rune(7706)},
+ &ucd.CodePointRange{From: rune(7708), To: rune(7708)},
+ &ucd.CodePointRange{From: rune(7710), To: rune(7710)},
+ &ucd.CodePointRange{From: rune(7712), To: rune(7712)},
+ &ucd.CodePointRange{From: rune(7714), To: rune(7714)},
+ &ucd.CodePointRange{From: rune(7716), To: rune(7716)},
+ &ucd.CodePointRange{From: rune(7718), To: rune(7718)},
+ &ucd.CodePointRange{From: rune(7720), To: rune(7720)},
+ &ucd.CodePointRange{From: rune(7722), To: rune(7722)},
+ &ucd.CodePointRange{From: rune(7724), To: rune(7724)},
+ &ucd.CodePointRange{From: rune(7726), To: rune(7726)},
+ &ucd.CodePointRange{From: rune(7728), To: rune(7728)},
+ &ucd.CodePointRange{From: rune(7730), To: rune(7730)},
+ &ucd.CodePointRange{From: rune(7732), To: rune(7732)},
+ &ucd.CodePointRange{From: rune(7734), To: rune(7734)},
+ &ucd.CodePointRange{From: rune(7736), To: rune(7736)},
+ &ucd.CodePointRange{From: rune(7738), To: rune(7738)},
+ &ucd.CodePointRange{From: rune(7740), To: rune(7740)},
+ &ucd.CodePointRange{From: rune(7742), To: rune(7742)},
+ &ucd.CodePointRange{From: rune(7744), To: rune(7744)},
+ &ucd.CodePointRange{From: rune(7746), To: rune(7746)},
+ &ucd.CodePointRange{From: rune(7748), To: rune(7748)},
+ &ucd.CodePointRange{From: rune(7750), To: rune(7750)},
+ &ucd.CodePointRange{From: rune(7752), To: rune(7752)},
+ &ucd.CodePointRange{From: rune(7754), To: rune(7754)},
+ &ucd.CodePointRange{From: rune(7756), To: rune(7756)},
+ &ucd.CodePointRange{From: rune(7758), To: rune(7758)},
+ &ucd.CodePointRange{From: rune(7760), To: rune(7760)},
+ &ucd.CodePointRange{From: rune(7762), To: rune(7762)},
+ &ucd.CodePointRange{From: rune(7764), To: rune(7764)},
+ &ucd.CodePointRange{From: rune(7766), To: rune(7766)},
+ &ucd.CodePointRange{From: rune(7768), To: rune(7768)},
+ &ucd.CodePointRange{From: rune(7770), To: rune(7770)},
+ &ucd.CodePointRange{From: rune(7772), To: rune(7772)},
+ &ucd.CodePointRange{From: rune(7774), To: rune(7774)},
+ &ucd.CodePointRange{From: rune(7776), To: rune(7776)},
+ &ucd.CodePointRange{From: rune(7778), To: rune(7778)},
+ &ucd.CodePointRange{From: rune(7780), To: rune(7780)},
+ &ucd.CodePointRange{From: rune(7782), To: rune(7782)},
+ &ucd.CodePointRange{From: rune(7784), To: rune(7784)},
+ &ucd.CodePointRange{From: rune(7786), To: rune(7786)},
+ &ucd.CodePointRange{From: rune(7788), To: rune(7788)},
+ &ucd.CodePointRange{From: rune(7790), To: rune(7790)},
+ &ucd.CodePointRange{From: rune(7792), To: rune(7792)},
+ &ucd.CodePointRange{From: rune(7794), To: rune(7794)},
+ &ucd.CodePointRange{From: rune(7796), To: rune(7796)},
+ &ucd.CodePointRange{From: rune(7798), To: rune(7798)},
+ &ucd.CodePointRange{From: rune(7800), To: rune(7800)},
+ &ucd.CodePointRange{From: rune(7802), To: rune(7802)},
+ &ucd.CodePointRange{From: rune(7804), To: rune(7804)},
+ &ucd.CodePointRange{From: rune(7806), To: rune(7806)},
+ &ucd.CodePointRange{From: rune(7808), To: rune(7808)},
+ &ucd.CodePointRange{From: rune(7810), To: rune(7810)},
+ &ucd.CodePointRange{From: rune(7812), To: rune(7812)},
+ &ucd.CodePointRange{From: rune(7814), To: rune(7814)},
+ &ucd.CodePointRange{From: rune(7816), To: rune(7816)},
+ &ucd.CodePointRange{From: rune(7818), To: rune(7818)},
+ &ucd.CodePointRange{From: rune(7820), To: rune(7820)},
+ &ucd.CodePointRange{From: rune(7822), To: rune(7822)},
+ &ucd.CodePointRange{From: rune(7824), To: rune(7824)},
+ &ucd.CodePointRange{From: rune(7826), To: rune(7826)},
+ &ucd.CodePointRange{From: rune(7828), To: rune(7828)},
+ &ucd.CodePointRange{From: rune(7838), To: rune(7838)},
+ &ucd.CodePointRange{From: rune(7840), To: rune(7840)},
+ &ucd.CodePointRange{From: rune(7842), To: rune(7842)},
+ &ucd.CodePointRange{From: rune(7844), To: rune(7844)},
+ &ucd.CodePointRange{From: rune(7846), To: rune(7846)},
+ &ucd.CodePointRange{From: rune(7848), To: rune(7848)},
+ &ucd.CodePointRange{From: rune(7850), To: rune(7850)},
+ &ucd.CodePointRange{From: rune(7852), To: rune(7852)},
+ &ucd.CodePointRange{From: rune(7854), To: rune(7854)},
+ &ucd.CodePointRange{From: rune(7856), To: rune(7856)},
+ &ucd.CodePointRange{From: rune(7858), To: rune(7858)},
+ &ucd.CodePointRange{From: rune(7860), To: rune(7860)},
+ &ucd.CodePointRange{From: rune(7862), To: rune(7862)},
+ &ucd.CodePointRange{From: rune(7864), To: rune(7864)},
+ &ucd.CodePointRange{From: rune(7866), To: rune(7866)},
+ &ucd.CodePointRange{From: rune(7868), To: rune(7868)},
+ &ucd.CodePointRange{From: rune(7870), To: rune(7870)},
+ &ucd.CodePointRange{From: rune(7872), To: rune(7872)},
+ &ucd.CodePointRange{From: rune(7874), To: rune(7874)},
+ &ucd.CodePointRange{From: rune(7876), To: rune(7876)},
+ &ucd.CodePointRange{From: rune(7878), To: rune(7878)},
+ &ucd.CodePointRange{From: rune(7880), To: rune(7880)},
+ &ucd.CodePointRange{From: rune(7882), To: rune(7882)},
+ &ucd.CodePointRange{From: rune(7884), To: rune(7884)},
+ &ucd.CodePointRange{From: rune(7886), To: rune(7886)},
+ &ucd.CodePointRange{From: rune(7888), To: rune(7888)},
+ &ucd.CodePointRange{From: rune(7890), To: rune(7890)},
+ &ucd.CodePointRange{From: rune(7892), To: rune(7892)},
+ &ucd.CodePointRange{From: rune(7894), To: rune(7894)},
+ &ucd.CodePointRange{From: rune(7896), To: rune(7896)},
+ &ucd.CodePointRange{From: rune(7898), To: rune(7898)},
+ &ucd.CodePointRange{From: rune(7900), To: rune(7900)},
+ &ucd.CodePointRange{From: rune(7902), To: rune(7902)},
+ &ucd.CodePointRange{From: rune(7904), To: rune(7904)},
+ &ucd.CodePointRange{From: rune(7906), To: rune(7906)},
+ &ucd.CodePointRange{From: rune(7908), To: rune(7908)},
+ &ucd.CodePointRange{From: rune(7910), To: rune(7910)},
+ &ucd.CodePointRange{From: rune(7912), To: rune(7912)},
+ &ucd.CodePointRange{From: rune(7914), To: rune(7914)},
+ &ucd.CodePointRange{From: rune(7916), To: rune(7916)},
+ &ucd.CodePointRange{From: rune(7918), To: rune(7918)},
+ &ucd.CodePointRange{From: rune(7920), To: rune(7920)},
+ &ucd.CodePointRange{From: rune(7922), To: rune(7922)},
+ &ucd.CodePointRange{From: rune(7924), To: rune(7924)},
+ &ucd.CodePointRange{From: rune(7926), To: rune(7926)},
+ &ucd.CodePointRange{From: rune(7928), To: rune(7928)},
+ &ucd.CodePointRange{From: rune(7930), To: rune(7930)},
+ &ucd.CodePointRange{From: rune(7932), To: rune(7932)},
+ &ucd.CodePointRange{From: rune(7934), To: rune(7934)},
+ &ucd.CodePointRange{From: rune(7944), To: rune(7951)},
+ &ucd.CodePointRange{From: rune(7960), To: rune(7965)},
+ &ucd.CodePointRange{From: rune(7976), To: rune(7983)},
+ &ucd.CodePointRange{From: rune(7992), To: rune(7999)},
+ &ucd.CodePointRange{From: rune(8008), To: rune(8013)},
+ &ucd.CodePointRange{From: rune(8025), To: rune(8025)},
+ &ucd.CodePointRange{From: rune(8027), To: rune(8027)},
+ &ucd.CodePointRange{From: rune(8029), To: rune(8029)},
+ &ucd.CodePointRange{From: rune(8031), To: rune(8031)},
+ &ucd.CodePointRange{From: rune(8040), To: rune(8047)},
+ &ucd.CodePointRange{From: rune(8120), To: rune(8123)},
+ &ucd.CodePointRange{From: rune(8136), To: rune(8139)},
+ &ucd.CodePointRange{From: rune(8152), To: rune(8155)},
+ &ucd.CodePointRange{From: rune(8168), To: rune(8172)},
+ &ucd.CodePointRange{From: rune(8184), To: rune(8187)},
+ &ucd.CodePointRange{From: rune(8450), To: rune(8450)},
+ &ucd.CodePointRange{From: rune(8455), To: rune(8455)},
+ &ucd.CodePointRange{From: rune(8459), To: rune(8461)},
+ &ucd.CodePointRange{From: rune(8464), To: rune(8466)},
+ &ucd.CodePointRange{From: rune(8469), To: rune(8469)},
+ &ucd.CodePointRange{From: rune(8473), To: rune(8477)},
+ &ucd.CodePointRange{From: rune(8484), To: rune(8484)},
+ &ucd.CodePointRange{From: rune(8486), To: rune(8486)},
+ &ucd.CodePointRange{From: rune(8488), To: rune(8488)},
+ &ucd.CodePointRange{From: rune(8490), To: rune(8493)},
+ &ucd.CodePointRange{From: rune(8496), To: rune(8499)},
+ &ucd.CodePointRange{From: rune(8510), To: rune(8511)},
+ &ucd.CodePointRange{From: rune(8517), To: rune(8517)},
+ &ucd.CodePointRange{From: rune(8579), To: rune(8579)},
+ &ucd.CodePointRange{From: rune(11264), To: rune(11310)},
+ &ucd.CodePointRange{From: rune(11360), To: rune(11360)},
+ &ucd.CodePointRange{From: rune(11362), To: rune(11364)},
+ &ucd.CodePointRange{From: rune(11367), To: rune(11367)},
+ &ucd.CodePointRange{From: rune(11369), To: rune(11369)},
+ &ucd.CodePointRange{From: rune(11371), To: rune(11371)},
+ &ucd.CodePointRange{From: rune(11373), To: rune(11376)},
+ &ucd.CodePointRange{From: rune(11378), To: rune(11378)},
+ &ucd.CodePointRange{From: rune(11381), To: rune(11381)},
+ &ucd.CodePointRange{From: rune(11390), To: rune(11392)},
+ &ucd.CodePointRange{From: rune(11394), To: rune(11394)},
+ &ucd.CodePointRange{From: rune(11396), To: rune(11396)},
+ &ucd.CodePointRange{From: rune(11398), To: rune(11398)},
+ &ucd.CodePointRange{From: rune(11400), To: rune(11400)},
+ &ucd.CodePointRange{From: rune(11402), To: rune(11402)},
+ &ucd.CodePointRange{From: rune(11404), To: rune(11404)},
+ &ucd.CodePointRange{From: rune(11406), To: rune(11406)},
+ &ucd.CodePointRange{From: rune(11408), To: rune(11408)},
+ &ucd.CodePointRange{From: rune(11410), To: rune(11410)},
+ &ucd.CodePointRange{From: rune(11412), To: rune(11412)},
+ &ucd.CodePointRange{From: rune(11414), To: rune(11414)},
+ &ucd.CodePointRange{From: rune(11416), To: rune(11416)},
+ &ucd.CodePointRange{From: rune(11418), To: rune(11418)},
+ &ucd.CodePointRange{From: rune(11420), To: rune(11420)},
+ &ucd.CodePointRange{From: rune(11422), To: rune(11422)},
+ &ucd.CodePointRange{From: rune(11424), To: rune(11424)},
+ &ucd.CodePointRange{From: rune(11426), To: rune(11426)},
+ &ucd.CodePointRange{From: rune(11428), To: rune(11428)},
+ &ucd.CodePointRange{From: rune(11430), To: rune(11430)},
+ &ucd.CodePointRange{From: rune(11432), To: rune(11432)},
+ &ucd.CodePointRange{From: rune(11434), To: rune(11434)},
+ &ucd.CodePointRange{From: rune(11436), To: rune(11436)},
+ &ucd.CodePointRange{From: rune(11438), To: rune(11438)},
+ &ucd.CodePointRange{From: rune(11440), To: rune(11440)},
+ &ucd.CodePointRange{From: rune(11442), To: rune(11442)},
+ &ucd.CodePointRange{From: rune(11444), To: rune(11444)},
+ &ucd.CodePointRange{From: rune(11446), To: rune(11446)},
+ &ucd.CodePointRange{From: rune(11448), To: rune(11448)},
+ &ucd.CodePointRange{From: rune(11450), To: rune(11450)},
+ &ucd.CodePointRange{From: rune(11452), To: rune(11452)},
+ &ucd.CodePointRange{From: rune(11454), To: rune(11454)},
+ &ucd.CodePointRange{From: rune(11456), To: rune(11456)},
+ &ucd.CodePointRange{From: rune(11458), To: rune(11458)},
+ &ucd.CodePointRange{From: rune(11460), To: rune(11460)},
+ &ucd.CodePointRange{From: rune(11462), To: rune(11462)},
+ &ucd.CodePointRange{From: rune(11464), To: rune(11464)},
+ &ucd.CodePointRange{From: rune(11466), To: rune(11466)},
+ &ucd.CodePointRange{From: rune(11468), To: rune(11468)},
+ &ucd.CodePointRange{From: rune(11470), To: rune(11470)},
+ &ucd.CodePointRange{From: rune(11472), To: rune(11472)},
+ &ucd.CodePointRange{From: rune(11474), To: rune(11474)},
+ &ucd.CodePointRange{From: rune(11476), To: rune(11476)},
+ &ucd.CodePointRange{From: rune(11478), To: rune(11478)},
+ &ucd.CodePointRange{From: rune(11480), To: rune(11480)},
+ &ucd.CodePointRange{From: rune(11482), To: rune(11482)},
+ &ucd.CodePointRange{From: rune(11484), To: rune(11484)},
+ &ucd.CodePointRange{From: rune(11486), To: rune(11486)},
+ &ucd.CodePointRange{From: rune(11488), To: rune(11488)},
+ &ucd.CodePointRange{From: rune(11490), To: rune(11490)},
+ &ucd.CodePointRange{From: rune(11499), To: rune(11499)},
+ &ucd.CodePointRange{From: rune(11501), To: rune(11501)},
+ &ucd.CodePointRange{From: rune(11506), To: rune(11506)},
+ &ucd.CodePointRange{From: rune(42560), To: rune(42560)},
+ &ucd.CodePointRange{From: rune(42562), To: rune(42562)},
+ &ucd.CodePointRange{From: rune(42564), To: rune(42564)},
+ &ucd.CodePointRange{From: rune(42566), To: rune(42566)},
+ &ucd.CodePointRange{From: rune(42568), To: rune(42568)},
+ &ucd.CodePointRange{From: rune(42570), To: rune(42570)},
+ &ucd.CodePointRange{From: rune(42572), To: rune(42572)},
+ &ucd.CodePointRange{From: rune(42574), To: rune(42574)},
+ &ucd.CodePointRange{From: rune(42576), To: rune(42576)},
+ &ucd.CodePointRange{From: rune(42578), To: rune(42578)},
+ &ucd.CodePointRange{From: rune(42580), To: rune(42580)},
+ &ucd.CodePointRange{From: rune(42582), To: rune(42582)},
+ &ucd.CodePointRange{From: rune(42584), To: rune(42584)},
+ &ucd.CodePointRange{From: rune(42586), To: rune(42586)},
+ &ucd.CodePointRange{From: rune(42588), To: rune(42588)},
+ &ucd.CodePointRange{From: rune(42590), To: rune(42590)},
+ &ucd.CodePointRange{From: rune(42592), To: rune(42592)},
+ &ucd.CodePointRange{From: rune(42594), To: rune(42594)},
+ &ucd.CodePointRange{From: rune(42596), To: rune(42596)},
+ &ucd.CodePointRange{From: rune(42598), To: rune(42598)},
+ &ucd.CodePointRange{From: rune(42600), To: rune(42600)},
+ &ucd.CodePointRange{From: rune(42602), To: rune(42602)},
+ &ucd.CodePointRange{From: rune(42604), To: rune(42604)},
+ &ucd.CodePointRange{From: rune(42624), To: rune(42624)},
+ &ucd.CodePointRange{From: rune(42626), To: rune(42626)},
+ &ucd.CodePointRange{From: rune(42628), To: rune(42628)},
+ &ucd.CodePointRange{From: rune(42630), To: rune(42630)},
+ &ucd.CodePointRange{From: rune(42632), To: rune(42632)},
+ &ucd.CodePointRange{From: rune(42634), To: rune(42634)},
+ &ucd.CodePointRange{From: rune(42636), To: rune(42636)},
+ &ucd.CodePointRange{From: rune(42638), To: rune(42638)},
+ &ucd.CodePointRange{From: rune(42640), To: rune(42640)},
+ &ucd.CodePointRange{From: rune(42642), To: rune(42642)},
+ &ucd.CodePointRange{From: rune(42644), To: rune(42644)},
+ &ucd.CodePointRange{From: rune(42646), To: rune(42646)},
+ &ucd.CodePointRange{From: rune(42648), To: rune(42648)},
+ &ucd.CodePointRange{From: rune(42650), To: rune(42650)},
+ &ucd.CodePointRange{From: rune(42786), To: rune(42786)},
+ &ucd.CodePointRange{From: rune(42788), To: rune(42788)},
+ &ucd.CodePointRange{From: rune(42790), To: rune(42790)},
+ &ucd.CodePointRange{From: rune(42792), To: rune(42792)},
+ &ucd.CodePointRange{From: rune(42794), To: rune(42794)},
+ &ucd.CodePointRange{From: rune(42796), To: rune(42796)},
+ &ucd.CodePointRange{From: rune(42798), To: rune(42798)},
+ &ucd.CodePointRange{From: rune(42802), To: rune(42802)},
+ &ucd.CodePointRange{From: rune(42804), To: rune(42804)},
+ &ucd.CodePointRange{From: rune(42806), To: rune(42806)},
+ &ucd.CodePointRange{From: rune(42808), To: rune(42808)},
+ &ucd.CodePointRange{From: rune(42810), To: rune(42810)},
+ &ucd.CodePointRange{From: rune(42812), To: rune(42812)},
+ &ucd.CodePointRange{From: rune(42814), To: rune(42814)},
+ &ucd.CodePointRange{From: rune(42816), To: rune(42816)},
+ &ucd.CodePointRange{From: rune(42818), To: rune(42818)},
+ &ucd.CodePointRange{From: rune(42820), To: rune(42820)},
+ &ucd.CodePointRange{From: rune(42822), To: rune(42822)},
+ &ucd.CodePointRange{From: rune(42824), To: rune(42824)},
+ &ucd.CodePointRange{From: rune(42826), To: rune(42826)},
+ &ucd.CodePointRange{From: rune(42828), To: rune(42828)},
+ &ucd.CodePointRange{From: rune(42830), To: rune(42830)},
+ &ucd.CodePointRange{From: rune(42832), To: rune(42832)},
+ &ucd.CodePointRange{From: rune(42834), To: rune(42834)},
+ &ucd.CodePointRange{From: rune(42836), To: rune(42836)},
+ &ucd.CodePointRange{From: rune(42838), To: rune(42838)},
+ &ucd.CodePointRange{From: rune(42840), To: rune(42840)},
+ &ucd.CodePointRange{From: rune(42842), To: rune(42842)},
+ &ucd.CodePointRange{From: rune(42844), To: rune(42844)},
+ &ucd.CodePointRange{From: rune(42846), To: rune(42846)},
+ &ucd.CodePointRange{From: rune(42848), To: rune(42848)},
+ &ucd.CodePointRange{From: rune(42850), To: rune(42850)},
+ &ucd.CodePointRange{From: rune(42852), To: rune(42852)},
+ &ucd.CodePointRange{From: rune(42854), To: rune(42854)},
+ &ucd.CodePointRange{From: rune(42856), To: rune(42856)},
+ &ucd.CodePointRange{From: rune(42858), To: rune(42858)},
+ &ucd.CodePointRange{From: rune(42860), To: rune(42860)},
+ &ucd.CodePointRange{From: rune(42862), To: rune(42862)},
+ &ucd.CodePointRange{From: rune(42873), To: rune(42873)},
+ &ucd.CodePointRange{From: rune(42875), To: rune(42875)},
+ &ucd.CodePointRange{From: rune(42877), To: rune(42878)},
+ &ucd.CodePointRange{From: rune(42880), To: rune(42880)},
+ &ucd.CodePointRange{From: rune(42882), To: rune(42882)},
+ &ucd.CodePointRange{From: rune(42884), To: rune(42884)},
+ &ucd.CodePointRange{From: rune(42886), To: rune(42886)},
+ &ucd.CodePointRange{From: rune(42891), To: rune(42891)},
+ &ucd.CodePointRange{From: rune(42893), To: rune(42893)},
+ &ucd.CodePointRange{From: rune(42896), To: rune(42896)},
+ &ucd.CodePointRange{From: rune(42898), To: rune(42898)},
+ &ucd.CodePointRange{From: rune(42902), To: rune(42902)},
+ &ucd.CodePointRange{From: rune(42904), To: rune(42904)},
+ &ucd.CodePointRange{From: rune(42906), To: rune(42906)},
+ &ucd.CodePointRange{From: rune(42908), To: rune(42908)},
+ &ucd.CodePointRange{From: rune(42910), To: rune(42910)},
+ &ucd.CodePointRange{From: rune(42912), To: rune(42912)},
+ &ucd.CodePointRange{From: rune(42914), To: rune(42914)},
+ &ucd.CodePointRange{From: rune(42916), To: rune(42916)},
+ &ucd.CodePointRange{From: rune(42918), To: rune(42918)},
+ &ucd.CodePointRange{From: rune(42920), To: rune(42920)},
+ &ucd.CodePointRange{From: rune(42922), To: rune(42926)},
+ &ucd.CodePointRange{From: rune(42928), To: rune(42932)},
+ &ucd.CodePointRange{From: rune(42934), To: rune(42934)},
+ &ucd.CodePointRange{From: rune(42936), To: rune(42936)},
+ &ucd.CodePointRange{From: rune(42938), To: rune(42938)},
+ &ucd.CodePointRange{From: rune(42940), To: rune(42940)},
+ &ucd.CodePointRange{From: rune(42942), To: rune(42942)},
+ &ucd.CodePointRange{From: rune(42946), To: rune(42946)},
+ &ucd.CodePointRange{From: rune(42948), To: rune(42951)},
+ &ucd.CodePointRange{From: rune(42953), To: rune(42953)},
+ &ucd.CodePointRange{From: rune(42997), To: rune(42997)},
+ &ucd.CodePointRange{From: rune(65313), To: rune(65338)},
+ &ucd.CodePointRange{From: rune(66560), To: rune(66599)},
+ &ucd.CodePointRange{From: rune(66736), To: rune(66771)},
+ &ucd.CodePointRange{From: rune(68736), To: rune(68786)},
+ &ucd.CodePointRange{From: rune(71840), To: rune(71871)},
+ &ucd.CodePointRange{From: rune(93760), To: rune(93791)},
+ &ucd.CodePointRange{From: rune(119808), To: rune(119833)},
+ &ucd.CodePointRange{From: rune(119860), To: rune(119885)},
+ &ucd.CodePointRange{From: rune(119912), To: rune(119937)},
+ &ucd.CodePointRange{From: rune(119964), To: rune(119964)},
+ &ucd.CodePointRange{From: rune(119966), To: rune(119967)},
+ &ucd.CodePointRange{From: rune(119970), To: rune(119970)},
+ &ucd.CodePointRange{From: rune(119973), To: rune(119974)},
+ &ucd.CodePointRange{From: rune(119977), To: rune(119980)},
+ &ucd.CodePointRange{From: rune(119982), To: rune(119989)},
+ &ucd.CodePointRange{From: rune(120016), To: rune(120041)},
+ &ucd.CodePointRange{From: rune(120068), To: rune(120069)},
+ &ucd.CodePointRange{From: rune(120071), To: rune(120074)},
+ &ucd.CodePointRange{From: rune(120077), To: rune(120084)},
+ &ucd.CodePointRange{From: rune(120086), To: rune(120092)},
+ &ucd.CodePointRange{From: rune(120120), To: rune(120121)},
+ &ucd.CodePointRange{From: rune(120123), To: rune(120126)},
+ &ucd.CodePointRange{From: rune(120128), To: rune(120132)},
+ &ucd.CodePointRange{From: rune(120134), To: rune(120134)},
+ &ucd.CodePointRange{From: rune(120138), To: rune(120144)},
+ &ucd.CodePointRange{From: rune(120172), To: rune(120197)},
+ &ucd.CodePointRange{From: rune(120224), To: rune(120249)},
+ &ucd.CodePointRange{From: rune(120276), To: rune(120301)},
+ &ucd.CodePointRange{From: rune(120328), To: rune(120353)},
+ &ucd.CodePointRange{From: rune(120380), To: rune(120405)},
+ &ucd.CodePointRange{From: rune(120432), To: rune(120457)},
+ &ucd.CodePointRange{From: rune(120488), To: rune(120512)},
+ &ucd.CodePointRange{From: rune(120546), To: rune(120570)},
+ &ucd.CodePointRange{From: rune(120604), To: rune(120628)},
+ &ucd.CodePointRange{From: rune(120662), To: rune(120686)},
+ &ucd.CodePointRange{From: rune(120720), To: rune(120744)},
+ &ucd.CodePointRange{From: rune(120778), To: rune(120778)},
+ &ucd.CodePointRange{From: rune(125184), To: rune(125217)},
+ },
+ "mc": {
+ &ucd.CodePointRange{From: rune(2307), To: rune(2307)},
+ &ucd.CodePointRange{From: rune(2363), To: rune(2363)},
+ &ucd.CodePointRange{From: rune(2366), To: rune(2368)},
+ &ucd.CodePointRange{From: rune(2377), To: rune(2380)},
+ &ucd.CodePointRange{From: rune(2382), To: rune(2383)},
+ &ucd.CodePointRange{From: rune(2434), To: rune(2435)},
+ &ucd.CodePointRange{From: rune(2494), To: rune(2496)},
+ &ucd.CodePointRange{From: rune(2503), To: rune(2504)},
+ &ucd.CodePointRange{From: rune(2507), To: rune(2508)},
+ &ucd.CodePointRange{From: rune(2519), To: rune(2519)},
+ &ucd.CodePointRange{From: rune(2563), To: rune(2563)},
+ &ucd.CodePointRange{From: rune(2622), To: rune(2624)},
+ &ucd.CodePointRange{From: rune(2691), To: rune(2691)},
+ &ucd.CodePointRange{From: rune(2750), To: rune(2752)},
+ &ucd.CodePointRange{From: rune(2761), To: rune(2761)},
+ &ucd.CodePointRange{From: rune(2763), To: rune(2764)},
+ &ucd.CodePointRange{From: rune(2818), To: rune(2819)},
+ &ucd.CodePointRange{From: rune(2878), To: rune(2878)},
+ &ucd.CodePointRange{From: rune(2880), To: rune(2880)},
+ &ucd.CodePointRange{From: rune(2887), To: rune(2888)},
+ &ucd.CodePointRange{From: rune(2891), To: rune(2892)},
+ &ucd.CodePointRange{From: rune(2903), To: rune(2903)},
+ &ucd.CodePointRange{From: rune(3006), To: rune(3007)},
+ &ucd.CodePointRange{From: rune(3009), To: rune(3010)},
+ &ucd.CodePointRange{From: rune(3014), To: rune(3016)},
+ &ucd.CodePointRange{From: rune(3018), To: rune(3020)},
+ &ucd.CodePointRange{From: rune(3031), To: rune(3031)},
+ &ucd.CodePointRange{From: rune(3073), To: rune(3075)},
+ &ucd.CodePointRange{From: rune(3137), To: rune(3140)},
+ &ucd.CodePointRange{From: rune(3202), To: rune(3203)},
+ &ucd.CodePointRange{From: rune(3262), To: rune(3262)},
+ &ucd.CodePointRange{From: rune(3264), To: rune(3268)},
+ &ucd.CodePointRange{From: rune(3271), To: rune(3272)},
+ &ucd.CodePointRange{From: rune(3274), To: rune(3275)},
+ &ucd.CodePointRange{From: rune(3285), To: rune(3286)},
+ &ucd.CodePointRange{From: rune(3330), To: rune(3331)},
+ &ucd.CodePointRange{From: rune(3390), To: rune(3392)},
+ &ucd.CodePointRange{From: rune(3398), To: rune(3400)},
+ &ucd.CodePointRange{From: rune(3402), To: rune(3404)},
+ &ucd.CodePointRange{From: rune(3415), To: rune(3415)},
+ &ucd.CodePointRange{From: rune(3458), To: rune(3459)},
+ &ucd.CodePointRange{From: rune(3535), To: rune(3537)},
+ &ucd.CodePointRange{From: rune(3544), To: rune(3551)},
+ &ucd.CodePointRange{From: rune(3570), To: rune(3571)},
+ &ucd.CodePointRange{From: rune(3902), To: rune(3903)},
+ &ucd.CodePointRange{From: rune(3967), To: rune(3967)},
+ &ucd.CodePointRange{From: rune(4139), To: rune(4140)},
+ &ucd.CodePointRange{From: rune(4145), To: rune(4145)},
+ &ucd.CodePointRange{From: rune(4152), To: rune(4152)},
+ &ucd.CodePointRange{From: rune(4155), To: rune(4156)},
+ &ucd.CodePointRange{From: rune(4182), To: rune(4183)},
+ &ucd.CodePointRange{From: rune(4194), To: rune(4196)},
+ &ucd.CodePointRange{From: rune(4199), To: rune(4205)},
+ &ucd.CodePointRange{From: rune(4227), To: rune(4228)},
+ &ucd.CodePointRange{From: rune(4231), To: rune(4236)},
+ &ucd.CodePointRange{From: rune(4239), To: rune(4239)},
+ &ucd.CodePointRange{From: rune(4250), To: rune(4252)},
+ &ucd.CodePointRange{From: rune(6070), To: rune(6070)},
+ &ucd.CodePointRange{From: rune(6078), To: rune(6085)},
+ &ucd.CodePointRange{From: rune(6087), To: rune(6088)},
+ &ucd.CodePointRange{From: rune(6435), To: rune(6438)},
+ &ucd.CodePointRange{From: rune(6441), To: rune(6443)},
+ &ucd.CodePointRange{From: rune(6448), To: rune(6449)},
+ &ucd.CodePointRange{From: rune(6451), To: rune(6456)},
+ &ucd.CodePointRange{From: rune(6681), To: rune(6682)},
+ &ucd.CodePointRange{From: rune(6741), To: rune(6741)},
+ &ucd.CodePointRange{From: rune(6743), To: rune(6743)},
+ &ucd.CodePointRange{From: rune(6753), To: rune(6753)},
+ &ucd.CodePointRange{From: rune(6755), To: rune(6756)},
+ &ucd.CodePointRange{From: rune(6765), To: rune(6770)},
+ &ucd.CodePointRange{From: rune(6916), To: rune(6916)},
+ &ucd.CodePointRange{From: rune(6965), To: rune(6965)},
+ &ucd.CodePointRange{From: rune(6971), To: rune(6971)},
+ &ucd.CodePointRange{From: rune(6973), To: rune(6977)},
+ &ucd.CodePointRange{From: rune(6979), To: rune(6980)},
+ &ucd.CodePointRange{From: rune(7042), To: rune(7042)},
+ &ucd.CodePointRange{From: rune(7073), To: rune(7073)},
+ &ucd.CodePointRange{From: rune(7078), To: rune(7079)},
+ &ucd.CodePointRange{From: rune(7082), To: rune(7082)},
+ &ucd.CodePointRange{From: rune(7143), To: rune(7143)},
+ &ucd.CodePointRange{From: rune(7146), To: rune(7148)},
+ &ucd.CodePointRange{From: rune(7150), To: rune(7150)},
+ &ucd.CodePointRange{From: rune(7154), To: rune(7155)},
+ &ucd.CodePointRange{From: rune(7204), To: rune(7211)},
+ &ucd.CodePointRange{From: rune(7220), To: rune(7221)},
+ &ucd.CodePointRange{From: rune(7393), To: rune(7393)},
+ &ucd.CodePointRange{From: rune(7415), To: rune(7415)},
+ &ucd.CodePointRange{From: rune(12334), To: rune(12335)},
+ &ucd.CodePointRange{From: rune(43043), To: rune(43044)},
+ &ucd.CodePointRange{From: rune(43047), To: rune(43047)},
+ &ucd.CodePointRange{From: rune(43136), To: rune(43137)},
+ &ucd.CodePointRange{From: rune(43188), To: rune(43203)},
+ &ucd.CodePointRange{From: rune(43346), To: rune(43347)},
+ &ucd.CodePointRange{From: rune(43395), To: rune(43395)},
+ &ucd.CodePointRange{From: rune(43444), To: rune(43445)},
+ &ucd.CodePointRange{From: rune(43450), To: rune(43451)},
+ &ucd.CodePointRange{From: rune(43454), To: rune(43456)},
+ &ucd.CodePointRange{From: rune(43567), To: rune(43568)},
+ &ucd.CodePointRange{From: rune(43571), To: rune(43572)},
+ &ucd.CodePointRange{From: rune(43597), To: rune(43597)},
+ &ucd.CodePointRange{From: rune(43643), To: rune(43643)},
+ &ucd.CodePointRange{From: rune(43645), To: rune(43645)},
+ &ucd.CodePointRange{From: rune(43755), To: rune(43755)},
+ &ucd.CodePointRange{From: rune(43758), To: rune(43759)},
+ &ucd.CodePointRange{From: rune(43765), To: rune(43765)},
+ &ucd.CodePointRange{From: rune(44003), To: rune(44004)},
+ &ucd.CodePointRange{From: rune(44006), To: rune(44007)},
+ &ucd.CodePointRange{From: rune(44009), To: rune(44010)},
+ &ucd.CodePointRange{From: rune(44012), To: rune(44012)},
+ &ucd.CodePointRange{From: rune(69632), To: rune(69632)},
+ &ucd.CodePointRange{From: rune(69634), To: rune(69634)},
+ &ucd.CodePointRange{From: rune(69762), To: rune(69762)},
+ &ucd.CodePointRange{From: rune(69808), To: rune(69810)},
+ &ucd.CodePointRange{From: rune(69815), To: rune(69816)},
+ &ucd.CodePointRange{From: rune(69932), To: rune(69932)},
+ &ucd.CodePointRange{From: rune(69957), To: rune(69958)},
+ &ucd.CodePointRange{From: rune(70018), To: rune(70018)},
+ &ucd.CodePointRange{From: rune(70067), To: rune(70069)},
+ &ucd.CodePointRange{From: rune(70079), To: rune(70080)},
+ &ucd.CodePointRange{From: rune(70094), To: rune(70094)},
+ &ucd.CodePointRange{From: rune(70188), To: rune(70190)},
+ &ucd.CodePointRange{From: rune(70194), To: rune(70195)},
+ &ucd.CodePointRange{From: rune(70197), To: rune(70197)},
+ &ucd.CodePointRange{From: rune(70368), To: rune(70370)},
+ &ucd.CodePointRange{From: rune(70402), To: rune(70403)},
+ &ucd.CodePointRange{From: rune(70462), To: rune(70463)},
+ &ucd.CodePointRange{From: rune(70465), To: rune(70468)},
+ &ucd.CodePointRange{From: rune(70471), To: rune(70472)},
+ &ucd.CodePointRange{From: rune(70475), To: rune(70477)},
+ &ucd.CodePointRange{From: rune(70487), To: rune(70487)},
+ &ucd.CodePointRange{From: rune(70498), To: rune(70499)},
+ &ucd.CodePointRange{From: rune(70709), To: rune(70711)},
+ &ucd.CodePointRange{From: rune(70720), To: rune(70721)},
+ &ucd.CodePointRange{From: rune(70725), To: rune(70725)},
+ &ucd.CodePointRange{From: rune(70832), To: rune(70834)},
+ &ucd.CodePointRange{From: rune(70841), To: rune(70841)},
+ &ucd.CodePointRange{From: rune(70843), To: rune(70846)},
+ &ucd.CodePointRange{From: rune(70849), To: rune(70849)},
+ &ucd.CodePointRange{From: rune(71087), To: rune(71089)},
+ &ucd.CodePointRange{From: rune(71096), To: rune(71099)},
+ &ucd.CodePointRange{From: rune(71102), To: rune(71102)},
+ &ucd.CodePointRange{From: rune(71216), To: rune(71218)},
+ &ucd.CodePointRange{From: rune(71227), To: rune(71228)},
+ &ucd.CodePointRange{From: rune(71230), To: rune(71230)},
+ &ucd.CodePointRange{From: rune(71340), To: rune(71340)},
+ &ucd.CodePointRange{From: rune(71342), To: rune(71343)},
+ &ucd.CodePointRange{From: rune(71350), To: rune(71350)},
+ &ucd.CodePointRange{From: rune(71456), To: rune(71457)},
+ &ucd.CodePointRange{From: rune(71462), To: rune(71462)},
+ &ucd.CodePointRange{From: rune(71724), To: rune(71726)},
+ &ucd.CodePointRange{From: rune(71736), To: rune(71736)},
+ &ucd.CodePointRange{From: rune(71984), To: rune(71989)},
+ &ucd.CodePointRange{From: rune(71991), To: rune(71992)},
+ &ucd.CodePointRange{From: rune(71997), To: rune(71997)},
+ &ucd.CodePointRange{From: rune(72000), To: rune(72000)},
+ &ucd.CodePointRange{From: rune(72002), To: rune(72002)},
+ &ucd.CodePointRange{From: rune(72145), To: rune(72147)},
+ &ucd.CodePointRange{From: rune(72156), To: rune(72159)},
+ &ucd.CodePointRange{From: rune(72164), To: rune(72164)},
+ &ucd.CodePointRange{From: rune(72249), To: rune(72249)},
+ &ucd.CodePointRange{From: rune(72279), To: rune(72280)},
+ &ucd.CodePointRange{From: rune(72343), To: rune(72343)},
+ &ucd.CodePointRange{From: rune(72751), To: rune(72751)},
+ &ucd.CodePointRange{From: rune(72766), To: rune(72766)},
+ &ucd.CodePointRange{From: rune(72873), To: rune(72873)},
+ &ucd.CodePointRange{From: rune(72881), To: rune(72881)},
+ &ucd.CodePointRange{From: rune(72884), To: rune(72884)},
+ &ucd.CodePointRange{From: rune(73098), To: rune(73102)},
+ &ucd.CodePointRange{From: rune(73107), To: rune(73108)},
+ &ucd.CodePointRange{From: rune(73110), To: rune(73110)},
+ &ucd.CodePointRange{From: rune(73461), To: rune(73462)},
+ &ucd.CodePointRange{From: rune(94033), To: rune(94087)},
+ &ucd.CodePointRange{From: rune(94192), To: rune(94193)},
+ &ucd.CodePointRange{From: rune(119141), To: rune(119142)},
+ &ucd.CodePointRange{From: rune(119149), To: rune(119154)},
+ },
+ "me": {
+ &ucd.CodePointRange{From: rune(1160), To: rune(1161)},
+ &ucd.CodePointRange{From: rune(6846), To: rune(6846)},
+ &ucd.CodePointRange{From: rune(8413), To: rune(8416)},
+ &ucd.CodePointRange{From: rune(8418), To: rune(8420)},
+ &ucd.CodePointRange{From: rune(42608), To: rune(42610)},
+ },
+ "mn": {
+ &ucd.CodePointRange{From: rune(768), To: rune(879)},
+ &ucd.CodePointRange{From: rune(1155), To: rune(1159)},
+ &ucd.CodePointRange{From: rune(1425), To: rune(1469)},
+ &ucd.CodePointRange{From: rune(1471), To: rune(1471)},
+ &ucd.CodePointRange{From: rune(1473), To: rune(1474)},
+ &ucd.CodePointRange{From: rune(1476), To: rune(1477)},
+ &ucd.CodePointRange{From: rune(1479), To: rune(1479)},
+ &ucd.CodePointRange{From: rune(1552), To: rune(1562)},
+ &ucd.CodePointRange{From: rune(1611), To: rune(1631)},
+ &ucd.CodePointRange{From: rune(1648), To: rune(1648)},
+ &ucd.CodePointRange{From: rune(1750), To: rune(1756)},
+ &ucd.CodePointRange{From: rune(1759), To: rune(1764)},
+ &ucd.CodePointRange{From: rune(1767), To: rune(1768)},
+ &ucd.CodePointRange{From: rune(1770), To: rune(1773)},
+ &ucd.CodePointRange{From: rune(1809), To: rune(1809)},
+ &ucd.CodePointRange{From: rune(1840), To: rune(1866)},
+ &ucd.CodePointRange{From: rune(1958), To: rune(1968)},
+ &ucd.CodePointRange{From: rune(2027), To: rune(2035)},
+ &ucd.CodePointRange{From: rune(2045), To: rune(2045)},
+ &ucd.CodePointRange{From: rune(2070), To: rune(2073)},
+ &ucd.CodePointRange{From: rune(2075), To: rune(2083)},
+ &ucd.CodePointRange{From: rune(2085), To: rune(2087)},
+ &ucd.CodePointRange{From: rune(2089), To: rune(2093)},
+ &ucd.CodePointRange{From: rune(2137), To: rune(2139)},
+ &ucd.CodePointRange{From: rune(2259), To: rune(2273)},
+ &ucd.CodePointRange{From: rune(2275), To: rune(2306)},
+ &ucd.CodePointRange{From: rune(2362), To: rune(2362)},
+ &ucd.CodePointRange{From: rune(2364), To: rune(2364)},
+ &ucd.CodePointRange{From: rune(2369), To: rune(2376)},
+ &ucd.CodePointRange{From: rune(2381), To: rune(2381)},
+ &ucd.CodePointRange{From: rune(2385), To: rune(2391)},
+ &ucd.CodePointRange{From: rune(2402), To: rune(2403)},
+ &ucd.CodePointRange{From: rune(2433), To: rune(2433)},
+ &ucd.CodePointRange{From: rune(2492), To: rune(2492)},
+ &ucd.CodePointRange{From: rune(2497), To: rune(2500)},
+ &ucd.CodePointRange{From: rune(2509), To: rune(2509)},
+ &ucd.CodePointRange{From: rune(2530), To: rune(2531)},
+ &ucd.CodePointRange{From: rune(2558), To: rune(2558)},
+ &ucd.CodePointRange{From: rune(2561), To: rune(2562)},
+ &ucd.CodePointRange{From: rune(2620), To: rune(2620)},
+ &ucd.CodePointRange{From: rune(2625), To: rune(2626)},
+ &ucd.CodePointRange{From: rune(2631), To: rune(2632)},
+ &ucd.CodePointRange{From: rune(2635), To: rune(2637)},
+ &ucd.CodePointRange{From: rune(2641), To: rune(2641)},
+ &ucd.CodePointRange{From: rune(2672), To: rune(2673)},
+ &ucd.CodePointRange{From: rune(2677), To: rune(2677)},
+ &ucd.CodePointRange{From: rune(2689), To: rune(2690)},
+ &ucd.CodePointRange{From: rune(2748), To: rune(2748)},
+ &ucd.CodePointRange{From: rune(2753), To: rune(2757)},
+ &ucd.CodePointRange{From: rune(2759), To: rune(2760)},
+ &ucd.CodePointRange{From: rune(2765), To: rune(2765)},
+ &ucd.CodePointRange{From: rune(2786), To: rune(2787)},
+ &ucd.CodePointRange{From: rune(2810), To: rune(2815)},
+ &ucd.CodePointRange{From: rune(2817), To: rune(2817)},
+ &ucd.CodePointRange{From: rune(2876), To: rune(2876)},
+ &ucd.CodePointRange{From: rune(2879), To: rune(2879)},
+ &ucd.CodePointRange{From: rune(2881), To: rune(2884)},
+ &ucd.CodePointRange{From: rune(2893), To: rune(2893)},
+ &ucd.CodePointRange{From: rune(2901), To: rune(2902)},
+ &ucd.CodePointRange{From: rune(2914), To: rune(2915)},
+ &ucd.CodePointRange{From: rune(2946), To: rune(2946)},
+ &ucd.CodePointRange{From: rune(3008), To: rune(3008)},
+ &ucd.CodePointRange{From: rune(3021), To: rune(3021)},
+ &ucd.CodePointRange{From: rune(3072), To: rune(3072)},
+ &ucd.CodePointRange{From: rune(3076), To: rune(3076)},
+ &ucd.CodePointRange{From: rune(3134), To: rune(3136)},
+ &ucd.CodePointRange{From: rune(3142), To: rune(3144)},
+ &ucd.CodePointRange{From: rune(3146), To: rune(3149)},
+ &ucd.CodePointRange{From: rune(3157), To: rune(3158)},
+ &ucd.CodePointRange{From: rune(3170), To: rune(3171)},
+ &ucd.CodePointRange{From: rune(3201), To: rune(3201)},
+ &ucd.CodePointRange{From: rune(3260), To: rune(3260)},
+ &ucd.CodePointRange{From: rune(3263), To: rune(3263)},
+ &ucd.CodePointRange{From: rune(3270), To: rune(3270)},
+ &ucd.CodePointRange{From: rune(3276), To: rune(3277)},
+ &ucd.CodePointRange{From: rune(3298), To: rune(3299)},
+ &ucd.CodePointRange{From: rune(3328), To: rune(3329)},
+ &ucd.CodePointRange{From: rune(3387), To: rune(3388)},
+ &ucd.CodePointRange{From: rune(3393), To: rune(3396)},
+ &ucd.CodePointRange{From: rune(3405), To: rune(3405)},
+ &ucd.CodePointRange{From: rune(3426), To: rune(3427)},
+ &ucd.CodePointRange{From: rune(3457), To: rune(3457)},
+ &ucd.CodePointRange{From: rune(3530), To: rune(3530)},
+ &ucd.CodePointRange{From: rune(3538), To: rune(3540)},
+ &ucd.CodePointRange{From: rune(3542), To: rune(3542)},
+ &ucd.CodePointRange{From: rune(3633), To: rune(3633)},
+ &ucd.CodePointRange{From: rune(3636), To: rune(3642)},
+ &ucd.CodePointRange{From: rune(3655), To: rune(3662)},
+ &ucd.CodePointRange{From: rune(3761), To: rune(3761)},
+ &ucd.CodePointRange{From: rune(3764), To: rune(3772)},
+ &ucd.CodePointRange{From: rune(3784), To: rune(3789)},
+ &ucd.CodePointRange{From: rune(3864), To: rune(3865)},
+ &ucd.CodePointRange{From: rune(3893), To: rune(3893)},
+ &ucd.CodePointRange{From: rune(3895), To: rune(3895)},
+ &ucd.CodePointRange{From: rune(3897), To: rune(3897)},
+ &ucd.CodePointRange{From: rune(3953), To: rune(3966)},
+ &ucd.CodePointRange{From: rune(3968), To: rune(3972)},
+ &ucd.CodePointRange{From: rune(3974), To: rune(3975)},
+ &ucd.CodePointRange{From: rune(3981), To: rune(3991)},
+ &ucd.CodePointRange{From: rune(3993), To: rune(4028)},
+ &ucd.CodePointRange{From: rune(4038), To: rune(4038)},
+ &ucd.CodePointRange{From: rune(4141), To: rune(4144)},
+ &ucd.CodePointRange{From: rune(4146), To: rune(4151)},
+ &ucd.CodePointRange{From: rune(4153), To: rune(4154)},
+ &ucd.CodePointRange{From: rune(4157), To: rune(4158)},
+ &ucd.CodePointRange{From: rune(4184), To: rune(4185)},
+ &ucd.CodePointRange{From: rune(4190), To: rune(4192)},
+ &ucd.CodePointRange{From: rune(4209), To: rune(4212)},
+ &ucd.CodePointRange{From: rune(4226), To: rune(4226)},
+ &ucd.CodePointRange{From: rune(4229), To: rune(4230)},
+ &ucd.CodePointRange{From: rune(4237), To: rune(4237)},
+ &ucd.CodePointRange{From: rune(4253), To: rune(4253)},
+ &ucd.CodePointRange{From: rune(4957), To: rune(4959)},
+ &ucd.CodePointRange{From: rune(5906), To: rune(5908)},
+ &ucd.CodePointRange{From: rune(5938), To: rune(5940)},
+ &ucd.CodePointRange{From: rune(5970), To: rune(5971)},
+ &ucd.CodePointRange{From: rune(6002), To: rune(6003)},
+ &ucd.CodePointRange{From: rune(6068), To: rune(6069)},
+ &ucd.CodePointRange{From: rune(6071), To: rune(6077)},
+ &ucd.CodePointRange{From: rune(6086), To: rune(6086)},
+ &ucd.CodePointRange{From: rune(6089), To: rune(6099)},
+ &ucd.CodePointRange{From: rune(6109), To: rune(6109)},
+ &ucd.CodePointRange{From: rune(6155), To: rune(6157)},
+ &ucd.CodePointRange{From: rune(6277), To: rune(6278)},
+ &ucd.CodePointRange{From: rune(6313), To: rune(6313)},
+ &ucd.CodePointRange{From: rune(6432), To: rune(6434)},
+ &ucd.CodePointRange{From: rune(6439), To: rune(6440)},
+ &ucd.CodePointRange{From: rune(6450), To: rune(6450)},
+ &ucd.CodePointRange{From: rune(6457), To: rune(6459)},
+ &ucd.CodePointRange{From: rune(6679), To: rune(6680)},
+ &ucd.CodePointRange{From: rune(6683), To: rune(6683)},
+ &ucd.CodePointRange{From: rune(6742), To: rune(6742)},
+ &ucd.CodePointRange{From: rune(6744), To: rune(6750)},
+ &ucd.CodePointRange{From: rune(6752), To: rune(6752)},
+ &ucd.CodePointRange{From: rune(6754), To: rune(6754)},
+ &ucd.CodePointRange{From: rune(6757), To: rune(6764)},
+ &ucd.CodePointRange{From: rune(6771), To: rune(6780)},
+ &ucd.CodePointRange{From: rune(6783), To: rune(6783)},
+ &ucd.CodePointRange{From: rune(6832), To: rune(6845)},
+ &ucd.CodePointRange{From: rune(6847), To: rune(6848)},
+ &ucd.CodePointRange{From: rune(6912), To: rune(6915)},
+ &ucd.CodePointRange{From: rune(6964), To: rune(6964)},
+ &ucd.CodePointRange{From: rune(6966), To: rune(6970)},
+ &ucd.CodePointRange{From: rune(6972), To: rune(6972)},
+ &ucd.CodePointRange{From: rune(6978), To: rune(6978)},
+ &ucd.CodePointRange{From: rune(7019), To: rune(7027)},
+ &ucd.CodePointRange{From: rune(7040), To: rune(7041)},
+ &ucd.CodePointRange{From: rune(7074), To: rune(7077)},
+ &ucd.CodePointRange{From: rune(7080), To: rune(7081)},
+ &ucd.CodePointRange{From: rune(7083), To: rune(7085)},
+ &ucd.CodePointRange{From: rune(7142), To: rune(7142)},
+ &ucd.CodePointRange{From: rune(7144), To: rune(7145)},
+ &ucd.CodePointRange{From: rune(7149), To: rune(7149)},
+ &ucd.CodePointRange{From: rune(7151), To: rune(7153)},
+ &ucd.CodePointRange{From: rune(7212), To: rune(7219)},
+ &ucd.CodePointRange{From: rune(7222), To: rune(7223)},
+ &ucd.CodePointRange{From: rune(7376), To: rune(7378)},
+ &ucd.CodePointRange{From: rune(7380), To: rune(7392)},
+ &ucd.CodePointRange{From: rune(7394), To: rune(7400)},
+ &ucd.CodePointRange{From: rune(7405), To: rune(7405)},
+ &ucd.CodePointRange{From: rune(7412), To: rune(7412)},
+ &ucd.CodePointRange{From: rune(7416), To: rune(7417)},
+ &ucd.CodePointRange{From: rune(7616), To: rune(7673)},
+ &ucd.CodePointRange{From: rune(7675), To: rune(7679)},
+ &ucd.CodePointRange{From: rune(8400), To: rune(8412)},
+ &ucd.CodePointRange{From: rune(8417), To: rune(8417)},
+ &ucd.CodePointRange{From: rune(8421), To: rune(8432)},
+ &ucd.CodePointRange{From: rune(11503), To: rune(11505)},
+ &ucd.CodePointRange{From: rune(11647), To: rune(11647)},
+ &ucd.CodePointRange{From: rune(11744), To: rune(11775)},
+ &ucd.CodePointRange{From: rune(12330), To: rune(12333)},
+ &ucd.CodePointRange{From: rune(12441), To: rune(12442)},
+ &ucd.CodePointRange{From: rune(42607), To: rune(42607)},
+ &ucd.CodePointRange{From: rune(42612), To: rune(42621)},
+ &ucd.CodePointRange{From: rune(42654), To: rune(42655)},
+ &ucd.CodePointRange{From: rune(42736), To: rune(42737)},
+ &ucd.CodePointRange{From: rune(43010), To: rune(43010)},
+ &ucd.CodePointRange{From: rune(43014), To: rune(43014)},
+ &ucd.CodePointRange{From: rune(43019), To: rune(43019)},
+ &ucd.CodePointRange{From: rune(43045), To: rune(43046)},
+ &ucd.CodePointRange{From: rune(43052), To: rune(43052)},
+ &ucd.CodePointRange{From: rune(43204), To: rune(43205)},
+ &ucd.CodePointRange{From: rune(43232), To: rune(43249)},
+ &ucd.CodePointRange{From: rune(43263), To: rune(43263)},
+ &ucd.CodePointRange{From: rune(43302), To: rune(43309)},
+ &ucd.CodePointRange{From: rune(43335), To: rune(43345)},
+ &ucd.CodePointRange{From: rune(43392), To: rune(43394)},
+ &ucd.CodePointRange{From: rune(43443), To: rune(43443)},
+ &ucd.CodePointRange{From: rune(43446), To: rune(43449)},
+ &ucd.CodePointRange{From: rune(43452), To: rune(43453)},
+ &ucd.CodePointRange{From: rune(43493), To: rune(43493)},
+ &ucd.CodePointRange{From: rune(43561), To: rune(43566)},
+ &ucd.CodePointRange{From: rune(43569), To: rune(43570)},
+ &ucd.CodePointRange{From: rune(43573), To: rune(43574)},
+ &ucd.CodePointRange{From: rune(43587), To: rune(43587)},
+ &ucd.CodePointRange{From: rune(43596), To: rune(43596)},
+ &ucd.CodePointRange{From: rune(43644), To: rune(43644)},
+ &ucd.CodePointRange{From: rune(43696), To: rune(43696)},
+ &ucd.CodePointRange{From: rune(43698), To: rune(43700)},
+ &ucd.CodePointRange{From: rune(43703), To: rune(43704)},
+ &ucd.CodePointRange{From: rune(43710), To: rune(43711)},
+ &ucd.CodePointRange{From: rune(43713), To: rune(43713)},
+ &ucd.CodePointRange{From: rune(43756), To: rune(43757)},
+ &ucd.CodePointRange{From: rune(43766), To: rune(43766)},
+ &ucd.CodePointRange{From: rune(44005), To: rune(44005)},
+ &ucd.CodePointRange{From: rune(44008), To: rune(44008)},
+ &ucd.CodePointRange{From: rune(44013), To: rune(44013)},
+ &ucd.CodePointRange{From: rune(64286), To: rune(64286)},
+ &ucd.CodePointRange{From: rune(65024), To: rune(65039)},
+ &ucd.CodePointRange{From: rune(65056), To: rune(65071)},
+ &ucd.CodePointRange{From: rune(66045), To: rune(66045)},
+ &ucd.CodePointRange{From: rune(66272), To: rune(66272)},
+ &ucd.CodePointRange{From: rune(66422), To: rune(66426)},
+ &ucd.CodePointRange{From: rune(68097), To: rune(68099)},
+ &ucd.CodePointRange{From: rune(68101), To: rune(68102)},
+ &ucd.CodePointRange{From: rune(68108), To: rune(68111)},
+ &ucd.CodePointRange{From: rune(68152), To: rune(68154)},
+ &ucd.CodePointRange{From: rune(68159), To: rune(68159)},
+ &ucd.CodePointRange{From: rune(68325), To: rune(68326)},
+ &ucd.CodePointRange{From: rune(68900), To: rune(68903)},
+ &ucd.CodePointRange{From: rune(69291), To: rune(69292)},
+ &ucd.CodePointRange{From: rune(69446), To: rune(69456)},
+ &ucd.CodePointRange{From: rune(69633), To: rune(69633)},
+ &ucd.CodePointRange{From: rune(69688), To: rune(69702)},
+ &ucd.CodePointRange{From: rune(69759), To: rune(69761)},
+ &ucd.CodePointRange{From: rune(69811), To: rune(69814)},
+ &ucd.CodePointRange{From: rune(69817), To: rune(69818)},
+ &ucd.CodePointRange{From: rune(69888), To: rune(69890)},
+ &ucd.CodePointRange{From: rune(69927), To: rune(69931)},
+ &ucd.CodePointRange{From: rune(69933), To: rune(69940)},
+ &ucd.CodePointRange{From: rune(70003), To: rune(70003)},
+ &ucd.CodePointRange{From: rune(70016), To: rune(70017)},
+ &ucd.CodePointRange{From: rune(70070), To: rune(70078)},
+ &ucd.CodePointRange{From: rune(70089), To: rune(70092)},
+ &ucd.CodePointRange{From: rune(70095), To: rune(70095)},
+ &ucd.CodePointRange{From: rune(70191), To: rune(70193)},
+ &ucd.CodePointRange{From: rune(70196), To: rune(70196)},
+ &ucd.CodePointRange{From: rune(70198), To: rune(70199)},
+ &ucd.CodePointRange{From: rune(70206), To: rune(70206)},
+ &ucd.CodePointRange{From: rune(70367), To: rune(70367)},
+ &ucd.CodePointRange{From: rune(70371), To: rune(70378)},
+ &ucd.CodePointRange{From: rune(70400), To: rune(70401)},
+ &ucd.CodePointRange{From: rune(70459), To: rune(70460)},
+ &ucd.CodePointRange{From: rune(70464), To: rune(70464)},
+ &ucd.CodePointRange{From: rune(70502), To: rune(70508)},
+ &ucd.CodePointRange{From: rune(70512), To: rune(70516)},
+ &ucd.CodePointRange{From: rune(70712), To: rune(70719)},
+ &ucd.CodePointRange{From: rune(70722), To: rune(70724)},
+ &ucd.CodePointRange{From: rune(70726), To: rune(70726)},
+ &ucd.CodePointRange{From: rune(70750), To: rune(70750)},
+ &ucd.CodePointRange{From: rune(70835), To: rune(70840)},
+ &ucd.CodePointRange{From: rune(70842), To: rune(70842)},
+ &ucd.CodePointRange{From: rune(70847), To: rune(70848)},
+ &ucd.CodePointRange{From: rune(70850), To: rune(70851)},
+ &ucd.CodePointRange{From: rune(71090), To: rune(71093)},
+ &ucd.CodePointRange{From: rune(71100), To: rune(71101)},
+ &ucd.CodePointRange{From: rune(71103), To: rune(71104)},
+ &ucd.CodePointRange{From: rune(71132), To: rune(71133)},
+ &ucd.CodePointRange{From: rune(71219), To: rune(71226)},
+ &ucd.CodePointRange{From: rune(71229), To: rune(71229)},
+ &ucd.CodePointRange{From: rune(71231), To: rune(71232)},
+ &ucd.CodePointRange{From: rune(71339), To: rune(71339)},
+ &ucd.CodePointRange{From: rune(71341), To: rune(71341)},
+ &ucd.CodePointRange{From: rune(71344), To: rune(71349)},
+ &ucd.CodePointRange{From: rune(71351), To: rune(71351)},
+ &ucd.CodePointRange{From: rune(71453), To: rune(71455)},
+ &ucd.CodePointRange{From: rune(71458), To: rune(71461)},
+ &ucd.CodePointRange{From: rune(71463), To: rune(71467)},
+ &ucd.CodePointRange{From: rune(71727), To: rune(71735)},
+ &ucd.CodePointRange{From: rune(71737), To: rune(71738)},
+ &ucd.CodePointRange{From: rune(71995), To: rune(71996)},
+ &ucd.CodePointRange{From: rune(71998), To: rune(71998)},
+ &ucd.CodePointRange{From: rune(72003), To: rune(72003)},
+ &ucd.CodePointRange{From: rune(72148), To: rune(72151)},
+ &ucd.CodePointRange{From: rune(72154), To: rune(72155)},
+ &ucd.CodePointRange{From: rune(72160), To: rune(72160)},
+ &ucd.CodePointRange{From: rune(72193), To: rune(72202)},
+ &ucd.CodePointRange{From: rune(72243), To: rune(72248)},
+ &ucd.CodePointRange{From: rune(72251), To: rune(72254)},
+ &ucd.CodePointRange{From: rune(72263), To: rune(72263)},
+ &ucd.CodePointRange{From: rune(72273), To: rune(72278)},
+ &ucd.CodePointRange{From: rune(72281), To: rune(72283)},
+ &ucd.CodePointRange{From: rune(72330), To: rune(72342)},
+ &ucd.CodePointRange{From: rune(72344), To: rune(72345)},
+ &ucd.CodePointRange{From: rune(72752), To: rune(72758)},
+ &ucd.CodePointRange{From: rune(72760), To: rune(72765)},
+ &ucd.CodePointRange{From: rune(72767), To: rune(72767)},
+ &ucd.CodePointRange{From: rune(72850), To: rune(72871)},
+ &ucd.CodePointRange{From: rune(72874), To: rune(72880)},
+ &ucd.CodePointRange{From: rune(72882), To: rune(72883)},
+ &ucd.CodePointRange{From: rune(72885), To: rune(72886)},
+ &ucd.CodePointRange{From: rune(73009), To: rune(73014)},
+ &ucd.CodePointRange{From: rune(73018), To: rune(73018)},
+ &ucd.CodePointRange{From: rune(73020), To: rune(73021)},
+ &ucd.CodePointRange{From: rune(73023), To: rune(73029)},
+ &ucd.CodePointRange{From: rune(73031), To: rune(73031)},
+ &ucd.CodePointRange{From: rune(73104), To: rune(73105)},
+ &ucd.CodePointRange{From: rune(73109), To: rune(73109)},
+ &ucd.CodePointRange{From: rune(73111), To: rune(73111)},
+ &ucd.CodePointRange{From: rune(73459), To: rune(73460)},
+ &ucd.CodePointRange{From: rune(92912), To: rune(92916)},
+ &ucd.CodePointRange{From: rune(92976), To: rune(92982)},
+ &ucd.CodePointRange{From: rune(94031), To: rune(94031)},
+ &ucd.CodePointRange{From: rune(94095), To: rune(94098)},
+ &ucd.CodePointRange{From: rune(94180), To: rune(94180)},
+ &ucd.CodePointRange{From: rune(113821), To: rune(113822)},
+ &ucd.CodePointRange{From: rune(119143), To: rune(119145)},
+ &ucd.CodePointRange{From: rune(119163), To: rune(119170)},
+ &ucd.CodePointRange{From: rune(119173), To: rune(119179)},
+ &ucd.CodePointRange{From: rune(119210), To: rune(119213)},
+ &ucd.CodePointRange{From: rune(119362), To: rune(119364)},
+ &ucd.CodePointRange{From: rune(121344), To: rune(121398)},
+ &ucd.CodePointRange{From: rune(121403), To: rune(121452)},
+ &ucd.CodePointRange{From: rune(121461), To: rune(121461)},
+ &ucd.CodePointRange{From: rune(121476), To: rune(121476)},
+ &ucd.CodePointRange{From: rune(121499), To: rune(121503)},
+ &ucd.CodePointRange{From: rune(121505), To: rune(121519)},
+ &ucd.CodePointRange{From: rune(122880), To: rune(122886)},
+ &ucd.CodePointRange{From: rune(122888), To: rune(122904)},
+ &ucd.CodePointRange{From: rune(122907), To: rune(122913)},
+ &ucd.CodePointRange{From: rune(122915), To: rune(122916)},
+ &ucd.CodePointRange{From: rune(122918), To: rune(122922)},
+ &ucd.CodePointRange{From: rune(123184), To: rune(123190)},
+ &ucd.CodePointRange{From: rune(123628), To: rune(123631)},
+ &ucd.CodePointRange{From: rune(125136), To: rune(125142)},
+ &ucd.CodePointRange{From: rune(125252), To: rune(125258)},
+ &ucd.CodePointRange{From: rune(917760), To: rune(917999)},
+ },
+ "nd": {
+ &ucd.CodePointRange{From: rune(48), To: rune(57)},
+ &ucd.CodePointRange{From: rune(1632), To: rune(1641)},
+ &ucd.CodePointRange{From: rune(1776), To: rune(1785)},
+ &ucd.CodePointRange{From: rune(1984), To: rune(1993)},
+ &ucd.CodePointRange{From: rune(2406), To: rune(2415)},
+ &ucd.CodePointRange{From: rune(2534), To: rune(2543)},
+ &ucd.CodePointRange{From: rune(2662), To: rune(2671)},
+ &ucd.CodePointRange{From: rune(2790), To: rune(2799)},
+ &ucd.CodePointRange{From: rune(2918), To: rune(2927)},
+ &ucd.CodePointRange{From: rune(3046), To: rune(3055)},
+ &ucd.CodePointRange{From: rune(3174), To: rune(3183)},
+ &ucd.CodePointRange{From: rune(3302), To: rune(3311)},
+ &ucd.CodePointRange{From: rune(3430), To: rune(3439)},
+ &ucd.CodePointRange{From: rune(3558), To: rune(3567)},
+ &ucd.CodePointRange{From: rune(3664), To: rune(3673)},
+ &ucd.CodePointRange{From: rune(3792), To: rune(3801)},
+ &ucd.CodePointRange{From: rune(3872), To: rune(3881)},
+ &ucd.CodePointRange{From: rune(4160), To: rune(4169)},
+ &ucd.CodePointRange{From: rune(4240), To: rune(4249)},
+ &ucd.CodePointRange{From: rune(6112), To: rune(6121)},
+ &ucd.CodePointRange{From: rune(6160), To: rune(6169)},
+ &ucd.CodePointRange{From: rune(6470), To: rune(6479)},
+ &ucd.CodePointRange{From: rune(6608), To: rune(6617)},
+ &ucd.CodePointRange{From: rune(6784), To: rune(6793)},
+ &ucd.CodePointRange{From: rune(6800), To: rune(6809)},
+ &ucd.CodePointRange{From: rune(6992), To: rune(7001)},
+ &ucd.CodePointRange{From: rune(7088), To: rune(7097)},
+ &ucd.CodePointRange{From: rune(7232), To: rune(7241)},
+ &ucd.CodePointRange{From: rune(7248), To: rune(7257)},
+ &ucd.CodePointRange{From: rune(42528), To: rune(42537)},
+ &ucd.CodePointRange{From: rune(43216), To: rune(43225)},
+ &ucd.CodePointRange{From: rune(43264), To: rune(43273)},
+ &ucd.CodePointRange{From: rune(43472), To: rune(43481)},
+ &ucd.CodePointRange{From: rune(43504), To: rune(43513)},
+ &ucd.CodePointRange{From: rune(43600), To: rune(43609)},
+ &ucd.CodePointRange{From: rune(44016), To: rune(44025)},
+ &ucd.CodePointRange{From: rune(65296), To: rune(65305)},
+ &ucd.CodePointRange{From: rune(66720), To: rune(66729)},
+ &ucd.CodePointRange{From: rune(68912), To: rune(68921)},
+ &ucd.CodePointRange{From: rune(69734), To: rune(69743)},
+ &ucd.CodePointRange{From: rune(69872), To: rune(69881)},
+ &ucd.CodePointRange{From: rune(69942), To: rune(69951)},
+ &ucd.CodePointRange{From: rune(70096), To: rune(70105)},
+ &ucd.CodePointRange{From: rune(70384), To: rune(70393)},
+ &ucd.CodePointRange{From: rune(70736), To: rune(70745)},
+ &ucd.CodePointRange{From: rune(70864), To: rune(70873)},
+ &ucd.CodePointRange{From: rune(71248), To: rune(71257)},
+ &ucd.CodePointRange{From: rune(71360), To: rune(71369)},
+ &ucd.CodePointRange{From: rune(71472), To: rune(71481)},
+ &ucd.CodePointRange{From: rune(71904), To: rune(71913)},
+ &ucd.CodePointRange{From: rune(72016), To: rune(72025)},
+ &ucd.CodePointRange{From: rune(72784), To: rune(72793)},
+ &ucd.CodePointRange{From: rune(73040), To: rune(73049)},
+ &ucd.CodePointRange{From: rune(73120), To: rune(73129)},
+ &ucd.CodePointRange{From: rune(92768), To: rune(92777)},
+ &ucd.CodePointRange{From: rune(93008), To: rune(93017)},
+ &ucd.CodePointRange{From: rune(120782), To: rune(120831)},
+ &ucd.CodePointRange{From: rune(123200), To: rune(123209)},
+ &ucd.CodePointRange{From: rune(123632), To: rune(123641)},
+ &ucd.CodePointRange{From: rune(125264), To: rune(125273)},
+ &ucd.CodePointRange{From: rune(130032), To: rune(130041)},
+ },
+ "nl": {
+ &ucd.CodePointRange{From: rune(5870), To: rune(5872)},
+ &ucd.CodePointRange{From: rune(8544), To: rune(8578)},
+ &ucd.CodePointRange{From: rune(8581), To: rune(8584)},
+ &ucd.CodePointRange{From: rune(12295), To: rune(12295)},
+ &ucd.CodePointRange{From: rune(12321), To: rune(12329)},
+ &ucd.CodePointRange{From: rune(12344), To: rune(12346)},
+ &ucd.CodePointRange{From: rune(42726), To: rune(42735)},
+ &ucd.CodePointRange{From: rune(65856), To: rune(65908)},
+ &ucd.CodePointRange{From: rune(66369), To: rune(66369)},
+ &ucd.CodePointRange{From: rune(66378), To: rune(66378)},
+ &ucd.CodePointRange{From: rune(66513), To: rune(66517)},
+ &ucd.CodePointRange{From: rune(74752), To: rune(74862)},
+ },
+ "no": {
+ &ucd.CodePointRange{From: rune(178), To: rune(179)},
+ &ucd.CodePointRange{From: rune(185), To: rune(185)},
+ &ucd.CodePointRange{From: rune(188), To: rune(190)},
+ &ucd.CodePointRange{From: rune(2548), To: rune(2553)},
+ &ucd.CodePointRange{From: rune(2930), To: rune(2935)},
+ &ucd.CodePointRange{From: rune(3056), To: rune(3058)},
+ &ucd.CodePointRange{From: rune(3192), To: rune(3198)},
+ &ucd.CodePointRange{From: rune(3416), To: rune(3422)},
+ &ucd.CodePointRange{From: rune(3440), To: rune(3448)},
+ &ucd.CodePointRange{From: rune(3882), To: rune(3891)},
+ &ucd.CodePointRange{From: rune(4969), To: rune(4988)},
+ &ucd.CodePointRange{From: rune(6128), To: rune(6137)},
+ &ucd.CodePointRange{From: rune(6618), To: rune(6618)},
+ &ucd.CodePointRange{From: rune(8304), To: rune(8304)},
+ &ucd.CodePointRange{From: rune(8308), To: rune(8313)},
+ &ucd.CodePointRange{From: rune(8320), To: rune(8329)},
+ &ucd.CodePointRange{From: rune(8528), To: rune(8543)},
+ &ucd.CodePointRange{From: rune(8585), To: rune(8585)},
+ &ucd.CodePointRange{From: rune(9312), To: rune(9371)},
+ &ucd.CodePointRange{From: rune(9450), To: rune(9471)},
+ &ucd.CodePointRange{From: rune(10102), To: rune(10131)},
+ &ucd.CodePointRange{From: rune(11517), To: rune(11517)},
+ &ucd.CodePointRange{From: rune(12690), To: rune(12693)},
+ &ucd.CodePointRange{From: rune(12832), To: rune(12841)},
+ &ucd.CodePointRange{From: rune(12872), To: rune(12879)},
+ &ucd.CodePointRange{From: rune(12881), To: rune(12895)},
+ &ucd.CodePointRange{From: rune(12928), To: rune(12937)},
+ &ucd.CodePointRange{From: rune(12977), To: rune(12991)},
+ &ucd.CodePointRange{From: rune(43056), To: rune(43061)},
+ &ucd.CodePointRange{From: rune(65799), To: rune(65843)},
+ &ucd.CodePointRange{From: rune(65909), To: rune(65912)},
+ &ucd.CodePointRange{From: rune(65930), To: rune(65931)},
+ &ucd.CodePointRange{From: rune(66273), To: rune(66299)},
+ &ucd.CodePointRange{From: rune(66336), To: rune(66339)},
+ &ucd.CodePointRange{From: rune(67672), To: rune(67679)},
+ &ucd.CodePointRange{From: rune(67705), To: rune(67711)},
+ &ucd.CodePointRange{From: rune(67751), To: rune(67759)},
+ &ucd.CodePointRange{From: rune(67835), To: rune(67839)},
+ &ucd.CodePointRange{From: rune(67862), To: rune(67867)},
+ &ucd.CodePointRange{From: rune(68028), To: rune(68029)},
+ &ucd.CodePointRange{From: rune(68032), To: rune(68047)},
+ &ucd.CodePointRange{From: rune(68050), To: rune(68095)},
+ &ucd.CodePointRange{From: rune(68160), To: rune(68168)},
+ &ucd.CodePointRange{From: rune(68221), To: rune(68222)},
+ &ucd.CodePointRange{From: rune(68253), To: rune(68255)},
+ &ucd.CodePointRange{From: rune(68331), To: rune(68335)},
+ &ucd.CodePointRange{From: rune(68440), To: rune(68447)},
+ &ucd.CodePointRange{From: rune(68472), To: rune(68479)},
+ &ucd.CodePointRange{From: rune(68521), To: rune(68527)},
+ &ucd.CodePointRange{From: rune(68858), To: rune(68863)},
+ &ucd.CodePointRange{From: rune(69216), To: rune(69246)},
+ &ucd.CodePointRange{From: rune(69405), To: rune(69414)},
+ &ucd.CodePointRange{From: rune(69457), To: rune(69460)},
+ &ucd.CodePointRange{From: rune(69573), To: rune(69579)},
+ &ucd.CodePointRange{From: rune(69714), To: rune(69733)},
+ &ucd.CodePointRange{From: rune(70113), To: rune(70132)},
+ &ucd.CodePointRange{From: rune(71482), To: rune(71483)},
+ &ucd.CodePointRange{From: rune(71914), To: rune(71922)},
+ &ucd.CodePointRange{From: rune(72794), To: rune(72812)},
+ &ucd.CodePointRange{From: rune(73664), To: rune(73684)},
+ &ucd.CodePointRange{From: rune(93019), To: rune(93025)},
+ &ucd.CodePointRange{From: rune(93824), To: rune(93846)},
+ &ucd.CodePointRange{From: rune(119520), To: rune(119539)},
+ &ucd.CodePointRange{From: rune(119648), To: rune(119672)},
+ &ucd.CodePointRange{From: rune(125127), To: rune(125135)},
+ &ucd.CodePointRange{From: rune(126065), To: rune(126123)},
+ &ucd.CodePointRange{From: rune(126125), To: rune(126127)},
+ &ucd.CodePointRange{From: rune(126129), To: rune(126132)},
+ &ucd.CodePointRange{From: rune(126209), To: rune(126253)},
+ &ucd.CodePointRange{From: rune(126255), To: rune(126269)},
+ &ucd.CodePointRange{From: rune(127232), To: rune(127244)},
+ },
+ "pc": {
+ &ucd.CodePointRange{From: rune(95), To: rune(95)},
+ &ucd.CodePointRange{From: rune(8255), To: rune(8256)},
+ &ucd.CodePointRange{From: rune(8276), To: rune(8276)},
+ &ucd.CodePointRange{From: rune(65075), To: rune(65076)},
+ &ucd.CodePointRange{From: rune(65101), To: rune(65103)},
+ &ucd.CodePointRange{From: rune(65343), To: rune(65343)},
+ },
+ "pd": {
+ &ucd.CodePointRange{From: rune(45), To: rune(45)},
+ &ucd.CodePointRange{From: rune(1418), To: rune(1418)},
+ &ucd.CodePointRange{From: rune(1470), To: rune(1470)},
+ &ucd.CodePointRange{From: rune(5120), To: rune(5120)},
+ &ucd.CodePointRange{From: rune(6150), To: rune(6150)},
+ &ucd.CodePointRange{From: rune(8208), To: rune(8213)},
+ &ucd.CodePointRange{From: rune(11799), To: rune(11799)},
+ &ucd.CodePointRange{From: rune(11802), To: rune(11802)},
+ &ucd.CodePointRange{From: rune(11834), To: rune(11835)},
+ &ucd.CodePointRange{From: rune(11840), To: rune(11840)},
+ &ucd.CodePointRange{From: rune(12316), To: rune(12316)},
+ &ucd.CodePointRange{From: rune(12336), To: rune(12336)},
+ &ucd.CodePointRange{From: rune(12448), To: rune(12448)},
+ &ucd.CodePointRange{From: rune(65073), To: rune(65074)},
+ &ucd.CodePointRange{From: rune(65112), To: rune(65112)},
+ &ucd.CodePointRange{From: rune(65123), To: rune(65123)},
+ &ucd.CodePointRange{From: rune(65293), To: rune(65293)},
+ &ucd.CodePointRange{From: rune(69293), To: rune(69293)},
+ },
+ "pe": {
+ &ucd.CodePointRange{From: rune(41), To: rune(41)},
+ &ucd.CodePointRange{From: rune(93), To: rune(93)},
+ &ucd.CodePointRange{From: rune(125), To: rune(125)},
+ &ucd.CodePointRange{From: rune(3899), To: rune(3899)},
+ &ucd.CodePointRange{From: rune(3901), To: rune(3901)},
+ &ucd.CodePointRange{From: rune(5788), To: rune(5788)},
+ &ucd.CodePointRange{From: rune(8262), To: rune(8262)},
+ &ucd.CodePointRange{From: rune(8318), To: rune(8318)},
+ &ucd.CodePointRange{From: rune(8334), To: rune(8334)},
+ &ucd.CodePointRange{From: rune(8969), To: rune(8969)},
+ &ucd.CodePointRange{From: rune(8971), To: rune(8971)},
+ &ucd.CodePointRange{From: rune(9002), To: rune(9002)},
+ &ucd.CodePointRange{From: rune(10089), To: rune(10089)},
+ &ucd.CodePointRange{From: rune(10091), To: rune(10091)},
+ &ucd.CodePointRange{From: rune(10093), To: rune(10093)},
+ &ucd.CodePointRange{From: rune(10095), To: rune(10095)},
+ &ucd.CodePointRange{From: rune(10097), To: rune(10097)},
+ &ucd.CodePointRange{From: rune(10099), To: rune(10099)},
+ &ucd.CodePointRange{From: rune(10101), To: rune(10101)},
+ &ucd.CodePointRange{From: rune(10182), To: rune(10182)},
+ &ucd.CodePointRange{From: rune(10215), To: rune(10215)},
+ &ucd.CodePointRange{From: rune(10217), To: rune(10217)},
+ &ucd.CodePointRange{From: rune(10219), To: rune(10219)},
+ &ucd.CodePointRange{From: rune(10221), To: rune(10221)},
+ &ucd.CodePointRange{From: rune(10223), To: rune(10223)},
+ &ucd.CodePointRange{From: rune(10628), To: rune(10628)},
+ &ucd.CodePointRange{From: rune(10630), To: rune(10630)},
+ &ucd.CodePointRange{From: rune(10632), To: rune(10632)},
+ &ucd.CodePointRange{From: rune(10634), To: rune(10634)},
+ &ucd.CodePointRange{From: rune(10636), To: rune(10636)},
+ &ucd.CodePointRange{From: rune(10638), To: rune(10638)},
+ &ucd.CodePointRange{From: rune(10640), To: rune(10640)},
+ &ucd.CodePointRange{From: rune(10642), To: rune(10642)},
+ &ucd.CodePointRange{From: rune(10644), To: rune(10644)},
+ &ucd.CodePointRange{From: rune(10646), To: rune(10646)},
+ &ucd.CodePointRange{From: rune(10648), To: rune(10648)},
+ &ucd.CodePointRange{From: rune(10713), To: rune(10713)},
+ &ucd.CodePointRange{From: rune(10715), To: rune(10715)},
+ &ucd.CodePointRange{From: rune(10749), To: rune(10749)},
+ &ucd.CodePointRange{From: rune(11811), To: rune(11811)},
+ &ucd.CodePointRange{From: rune(11813), To: rune(11813)},
+ &ucd.CodePointRange{From: rune(11815), To: rune(11815)},
+ &ucd.CodePointRange{From: rune(11817), To: rune(11817)},
+ &ucd.CodePointRange{From: rune(12297), To: rune(12297)},
+ &ucd.CodePointRange{From: rune(12299), To: rune(12299)},
+ &ucd.CodePointRange{From: rune(12301), To: rune(12301)},
+ &ucd.CodePointRange{From: rune(12303), To: rune(12303)},
+ &ucd.CodePointRange{From: rune(12305), To: rune(12305)},
+ &ucd.CodePointRange{From: rune(12309), To: rune(12309)},
+ &ucd.CodePointRange{From: rune(12311), To: rune(12311)},
+ &ucd.CodePointRange{From: rune(12313), To: rune(12313)},
+ &ucd.CodePointRange{From: rune(12315), To: rune(12315)},
+ &ucd.CodePointRange{From: rune(12318), To: rune(12319)},
+ &ucd.CodePointRange{From: rune(64830), To: rune(64830)},
+ &ucd.CodePointRange{From: rune(65048), To: rune(65048)},
+ &ucd.CodePointRange{From: rune(65078), To: rune(65078)},
+ &ucd.CodePointRange{From: rune(65080), To: rune(65080)},
+ &ucd.CodePointRange{From: rune(65082), To: rune(65082)},
+ &ucd.CodePointRange{From: rune(65084), To: rune(65084)},
+ &ucd.CodePointRange{From: rune(65086), To: rune(65086)},
+ &ucd.CodePointRange{From: rune(65088), To: rune(65088)},
+ &ucd.CodePointRange{From: rune(65090), To: rune(65090)},
+ &ucd.CodePointRange{From: rune(65092), To: rune(65092)},
+ &ucd.CodePointRange{From: rune(65096), To: rune(65096)},
+ &ucd.CodePointRange{From: rune(65114), To: rune(65114)},
+ &ucd.CodePointRange{From: rune(65116), To: rune(65116)},
+ &ucd.CodePointRange{From: rune(65118), To: rune(65118)},
+ &ucd.CodePointRange{From: rune(65289), To: rune(65289)},
+ &ucd.CodePointRange{From: rune(65341), To: rune(65341)},
+ &ucd.CodePointRange{From: rune(65373), To: rune(65373)},
+ &ucd.CodePointRange{From: rune(65376), To: rune(65376)},
+ &ucd.CodePointRange{From: rune(65379), To: rune(65379)},
+ },
+ "pf": {
+ &ucd.CodePointRange{From: rune(187), To: rune(187)},
+ &ucd.CodePointRange{From: rune(8217), To: rune(8217)},
+ &ucd.CodePointRange{From: rune(8221), To: rune(8221)},
+ &ucd.CodePointRange{From: rune(8250), To: rune(8250)},
+ &ucd.CodePointRange{From: rune(11779), To: rune(11779)},
+ &ucd.CodePointRange{From: rune(11781), To: rune(11781)},
+ &ucd.CodePointRange{From: rune(11786), To: rune(11786)},
+ &ucd.CodePointRange{From: rune(11789), To: rune(11789)},
+ &ucd.CodePointRange{From: rune(11805), To: rune(11805)},
+ &ucd.CodePointRange{From: rune(11809), To: rune(11809)},
+ },
+ "pi": {
+ &ucd.CodePointRange{From: rune(171), To: rune(171)},
+ &ucd.CodePointRange{From: rune(8216), To: rune(8216)},
+ &ucd.CodePointRange{From: rune(8219), To: rune(8220)},
+ &ucd.CodePointRange{From: rune(8223), To: rune(8223)},
+ &ucd.CodePointRange{From: rune(8249), To: rune(8249)},
+ &ucd.CodePointRange{From: rune(11778), To: rune(11778)},
+ &ucd.CodePointRange{From: rune(11780), To: rune(11780)},
+ &ucd.CodePointRange{From: rune(11785), To: rune(11785)},
+ &ucd.CodePointRange{From: rune(11788), To: rune(11788)},
+ &ucd.CodePointRange{From: rune(11804), To: rune(11804)},
+ &ucd.CodePointRange{From: rune(11808), To: rune(11808)},
+ },
+ "po": {
+ &ucd.CodePointRange{From: rune(33), To: rune(35)},
+ &ucd.CodePointRange{From: rune(37), To: rune(39)},
+ &ucd.CodePointRange{From: rune(42), To: rune(42)},
+ &ucd.CodePointRange{From: rune(44), To: rune(44)},
+ &ucd.CodePointRange{From: rune(46), To: rune(47)},
+ &ucd.CodePointRange{From: rune(58), To: rune(59)},
+ &ucd.CodePointRange{From: rune(63), To: rune(64)},
+ &ucd.CodePointRange{From: rune(92), To: rune(92)},
+ &ucd.CodePointRange{From: rune(161), To: rune(161)},
+ &ucd.CodePointRange{From: rune(167), To: rune(167)},
+ &ucd.CodePointRange{From: rune(182), To: rune(183)},
+ &ucd.CodePointRange{From: rune(191), To: rune(191)},
+ &ucd.CodePointRange{From: rune(894), To: rune(894)},
+ &ucd.CodePointRange{From: rune(903), To: rune(903)},
+ &ucd.CodePointRange{From: rune(1370), To: rune(1375)},
+ &ucd.CodePointRange{From: rune(1417), To: rune(1417)},
+ &ucd.CodePointRange{From: rune(1472), To: rune(1472)},
+ &ucd.CodePointRange{From: rune(1475), To: rune(1475)},
+ &ucd.CodePointRange{From: rune(1478), To: rune(1478)},
+ &ucd.CodePointRange{From: rune(1523), To: rune(1524)},
+ &ucd.CodePointRange{From: rune(1545), To: rune(1546)},
+ &ucd.CodePointRange{From: rune(1548), To: rune(1549)},
+ &ucd.CodePointRange{From: rune(1563), To: rune(1563)},
+ &ucd.CodePointRange{From: rune(1566), To: rune(1567)},
+ &ucd.CodePointRange{From: rune(1642), To: rune(1645)},
+ &ucd.CodePointRange{From: rune(1748), To: rune(1748)},
+ &ucd.CodePointRange{From: rune(1792), To: rune(1805)},
+ &ucd.CodePointRange{From: rune(2039), To: rune(2041)},
+ &ucd.CodePointRange{From: rune(2096), To: rune(2110)},
+ &ucd.CodePointRange{From: rune(2142), To: rune(2142)},
+ &ucd.CodePointRange{From: rune(2404), To: rune(2405)},
+ &ucd.CodePointRange{From: rune(2416), To: rune(2416)},
+ &ucd.CodePointRange{From: rune(2557), To: rune(2557)},
+ &ucd.CodePointRange{From: rune(2678), To: rune(2678)},
+ &ucd.CodePointRange{From: rune(2800), To: rune(2800)},
+ &ucd.CodePointRange{From: rune(3191), To: rune(3191)},
+ &ucd.CodePointRange{From: rune(3204), To: rune(3204)},
+ &ucd.CodePointRange{From: rune(3572), To: rune(3572)},
+ &ucd.CodePointRange{From: rune(3663), To: rune(3663)},
+ &ucd.CodePointRange{From: rune(3674), To: rune(3675)},
+ &ucd.CodePointRange{From: rune(3844), To: rune(3858)},
+ &ucd.CodePointRange{From: rune(3860), To: rune(3860)},
+ &ucd.CodePointRange{From: rune(3973), To: rune(3973)},
+ &ucd.CodePointRange{From: rune(4048), To: rune(4052)},
+ &ucd.CodePointRange{From: rune(4057), To: rune(4058)},
+ &ucd.CodePointRange{From: rune(4170), To: rune(4175)},
+ &ucd.CodePointRange{From: rune(4347), To: rune(4347)},
+ &ucd.CodePointRange{From: rune(4960), To: rune(4968)},
+ &ucd.CodePointRange{From: rune(5742), To: rune(5742)},
+ &ucd.CodePointRange{From: rune(5867), To: rune(5869)},
+ &ucd.CodePointRange{From: rune(5941), To: rune(5942)},
+ &ucd.CodePointRange{From: rune(6100), To: rune(6102)},
+ &ucd.CodePointRange{From: rune(6104), To: rune(6106)},
+ &ucd.CodePointRange{From: rune(6144), To: rune(6149)},
+ &ucd.CodePointRange{From: rune(6151), To: rune(6154)},
+ &ucd.CodePointRange{From: rune(6468), To: rune(6469)},
+ &ucd.CodePointRange{From: rune(6686), To: rune(6687)},
+ &ucd.CodePointRange{From: rune(6816), To: rune(6822)},
+ &ucd.CodePointRange{From: rune(6824), To: rune(6829)},
+ &ucd.CodePointRange{From: rune(7002), To: rune(7008)},
+ &ucd.CodePointRange{From: rune(7164), To: rune(7167)},
+ &ucd.CodePointRange{From: rune(7227), To: rune(7231)},
+ &ucd.CodePointRange{From: rune(7294), To: rune(7295)},
+ &ucd.CodePointRange{From: rune(7360), To: rune(7367)},
+ &ucd.CodePointRange{From: rune(7379), To: rune(7379)},
+ &ucd.CodePointRange{From: rune(8214), To: rune(8215)},
+ &ucd.CodePointRange{From: rune(8224), To: rune(8231)},
+ &ucd.CodePointRange{From: rune(8240), To: rune(8248)},
+ &ucd.CodePointRange{From: rune(8251), To: rune(8254)},
+ &ucd.CodePointRange{From: rune(8257), To: rune(8259)},
+ &ucd.CodePointRange{From: rune(8263), To: rune(8273)},
+ &ucd.CodePointRange{From: rune(8275), To: rune(8275)},
+ &ucd.CodePointRange{From: rune(8277), To: rune(8286)},
+ &ucd.CodePointRange{From: rune(11513), To: rune(11516)},
+ &ucd.CodePointRange{From: rune(11518), To: rune(11519)},
+ &ucd.CodePointRange{From: rune(11632), To: rune(11632)},
+ &ucd.CodePointRange{From: rune(11776), To: rune(11777)},
+ &ucd.CodePointRange{From: rune(11782), To: rune(11784)},
+ &ucd.CodePointRange{From: rune(11787), To: rune(11787)},
+ &ucd.CodePointRange{From: rune(11790), To: rune(11798)},
+ &ucd.CodePointRange{From: rune(11800), To: rune(11801)},
+ &ucd.CodePointRange{From: rune(11803), To: rune(11803)},
+ &ucd.CodePointRange{From: rune(11806), To: rune(11807)},
+ &ucd.CodePointRange{From: rune(11818), To: rune(11822)},
+ &ucd.CodePointRange{From: rune(11824), To: rune(11833)},
+ &ucd.CodePointRange{From: rune(11836), To: rune(11839)},
+ &ucd.CodePointRange{From: rune(11841), To: rune(11841)},
+ &ucd.CodePointRange{From: rune(11843), To: rune(11855)},
+ &ucd.CodePointRange{From: rune(11858), To: rune(11858)},
+ &ucd.CodePointRange{From: rune(12289), To: rune(12291)},
+ &ucd.CodePointRange{From: rune(12349), To: rune(12349)},
+ &ucd.CodePointRange{From: rune(12539), To: rune(12539)},
+ &ucd.CodePointRange{From: rune(42238), To: rune(42239)},
+ &ucd.CodePointRange{From: rune(42509), To: rune(42511)},
+ &ucd.CodePointRange{From: rune(42611), To: rune(42611)},
+ &ucd.CodePointRange{From: rune(42622), To: rune(42622)},
+ &ucd.CodePointRange{From: rune(42738), To: rune(42743)},
+ &ucd.CodePointRange{From: rune(43124), To: rune(43127)},
+ &ucd.CodePointRange{From: rune(43214), To: rune(43215)},
+ &ucd.CodePointRange{From: rune(43256), To: rune(43258)},
+ &ucd.CodePointRange{From: rune(43260), To: rune(43260)},
+ &ucd.CodePointRange{From: rune(43310), To: rune(43311)},
+ &ucd.CodePointRange{From: rune(43359), To: rune(43359)},
+ &ucd.CodePointRange{From: rune(43457), To: rune(43469)},
+ &ucd.CodePointRange{From: rune(43486), To: rune(43487)},
+ &ucd.CodePointRange{From: rune(43612), To: rune(43615)},
+ &ucd.CodePointRange{From: rune(43742), To: rune(43743)},
+ &ucd.CodePointRange{From: rune(43760), To: rune(43761)},
+ &ucd.CodePointRange{From: rune(44011), To: rune(44011)},
+ &ucd.CodePointRange{From: rune(65040), To: rune(65046)},
+ &ucd.CodePointRange{From: rune(65049), To: rune(65049)},
+ &ucd.CodePointRange{From: rune(65072), To: rune(65072)},
+ &ucd.CodePointRange{From: rune(65093), To: rune(65094)},
+ &ucd.CodePointRange{From: rune(65097), To: rune(65100)},
+ &ucd.CodePointRange{From: rune(65104), To: rune(65106)},
+ &ucd.CodePointRange{From: rune(65108), To: rune(65111)},
+ &ucd.CodePointRange{From: rune(65119), To: rune(65121)},
+ &ucd.CodePointRange{From: rune(65128), To: rune(65128)},
+ &ucd.CodePointRange{From: rune(65130), To: rune(65131)},
+ &ucd.CodePointRange{From: rune(65281), To: rune(65283)},
+ &ucd.CodePointRange{From: rune(65285), To: rune(65287)},
+ &ucd.CodePointRange{From: rune(65290), To: rune(65290)},
+ &ucd.CodePointRange{From: rune(65292), To: rune(65292)},
+ &ucd.CodePointRange{From: rune(65294), To: rune(65295)},
+ &ucd.CodePointRange{From: rune(65306), To: rune(65307)},
+ &ucd.CodePointRange{From: rune(65311), To: rune(65312)},
+ &ucd.CodePointRange{From: rune(65340), To: rune(65340)},
+ &ucd.CodePointRange{From: rune(65377), To: rune(65377)},
+ &ucd.CodePointRange{From: rune(65380), To: rune(65381)},
+ &ucd.CodePointRange{From: rune(65792), To: rune(65794)},
+ &ucd.CodePointRange{From: rune(66463), To: rune(66463)},
+ &ucd.CodePointRange{From: rune(66512), To: rune(66512)},
+ &ucd.CodePointRange{From: rune(66927), To: rune(66927)},
+ &ucd.CodePointRange{From: rune(67671), To: rune(67671)},
+ &ucd.CodePointRange{From: rune(67871), To: rune(67871)},
+ &ucd.CodePointRange{From: rune(67903), To: rune(67903)},
+ &ucd.CodePointRange{From: rune(68176), To: rune(68184)},
+ &ucd.CodePointRange{From: rune(68223), To: rune(68223)},
+ &ucd.CodePointRange{From: rune(68336), To: rune(68342)},
+ &ucd.CodePointRange{From: rune(68409), To: rune(68415)},
+ &ucd.CodePointRange{From: rune(68505), To: rune(68508)},
+ &ucd.CodePointRange{From: rune(69461), To: rune(69465)},
+ &ucd.CodePointRange{From: rune(69703), To: rune(69709)},
+ &ucd.CodePointRange{From: rune(69819), To: rune(69820)},
+ &ucd.CodePointRange{From: rune(69822), To: rune(69825)},
+ &ucd.CodePointRange{From: rune(69952), To: rune(69955)},
+ &ucd.CodePointRange{From: rune(70004), To: rune(70005)},
+ &ucd.CodePointRange{From: rune(70085), To: rune(70088)},
+ &ucd.CodePointRange{From: rune(70093), To: rune(70093)},
+ &ucd.CodePointRange{From: rune(70107), To: rune(70107)},
+ &ucd.CodePointRange{From: rune(70109), To: rune(70111)},
+ &ucd.CodePointRange{From: rune(70200), To: rune(70205)},
+ &ucd.CodePointRange{From: rune(70313), To: rune(70313)},
+ &ucd.CodePointRange{From: rune(70731), To: rune(70735)},
+ &ucd.CodePointRange{From: rune(70746), To: rune(70747)},
+ &ucd.CodePointRange{From: rune(70749), To: rune(70749)},
+ &ucd.CodePointRange{From: rune(70854), To: rune(70854)},
+ &ucd.CodePointRange{From: rune(71105), To: rune(71127)},
+ &ucd.CodePointRange{From: rune(71233), To: rune(71235)},
+ &ucd.CodePointRange{From: rune(71264), To: rune(71276)},
+ &ucd.CodePointRange{From: rune(71484), To: rune(71486)},
+ &ucd.CodePointRange{From: rune(71739), To: rune(71739)},
+ &ucd.CodePointRange{From: rune(72004), To: rune(72006)},
+ &ucd.CodePointRange{From: rune(72162), To: rune(72162)},
+ &ucd.CodePointRange{From: rune(72255), To: rune(72262)},
+ &ucd.CodePointRange{From: rune(72346), To: rune(72348)},
+ &ucd.CodePointRange{From: rune(72350), To: rune(72354)},
+ &ucd.CodePointRange{From: rune(72769), To: rune(72773)},
+ &ucd.CodePointRange{From: rune(72816), To: rune(72817)},
+ &ucd.CodePointRange{From: rune(73463), To: rune(73464)},
+ &ucd.CodePointRange{From: rune(73727), To: rune(73727)},
+ &ucd.CodePointRange{From: rune(74864), To: rune(74868)},
+ &ucd.CodePointRange{From: rune(92782), To: rune(92783)},
+ &ucd.CodePointRange{From: rune(92917), To: rune(92917)},
+ &ucd.CodePointRange{From: rune(92983), To: rune(92987)},
+ &ucd.CodePointRange{From: rune(92996), To: rune(92996)},
+ &ucd.CodePointRange{From: rune(93847), To: rune(93850)},
+ &ucd.CodePointRange{From: rune(94178), To: rune(94178)},
+ &ucd.CodePointRange{From: rune(113823), To: rune(113823)},
+ &ucd.CodePointRange{From: rune(121479), To: rune(121483)},
+ &ucd.CodePointRange{From: rune(125278), To: rune(125279)},
+ },
+ "ps": {
+ &ucd.CodePointRange{From: rune(40), To: rune(40)},
+ &ucd.CodePointRange{From: rune(91), To: rune(91)},
+ &ucd.CodePointRange{From: rune(123), To: rune(123)},
+ &ucd.CodePointRange{From: rune(3898), To: rune(3898)},
+ &ucd.CodePointRange{From: rune(3900), To: rune(3900)},
+ &ucd.CodePointRange{From: rune(5787), To: rune(5787)},
+ &ucd.CodePointRange{From: rune(8218), To: rune(8218)},
+ &ucd.CodePointRange{From: rune(8222), To: rune(8222)},
+ &ucd.CodePointRange{From: rune(8261), To: rune(8261)},
+ &ucd.CodePointRange{From: rune(8317), To: rune(8317)},
+ &ucd.CodePointRange{From: rune(8333), To: rune(8333)},
+ &ucd.CodePointRange{From: rune(8968), To: rune(8968)},
+ &ucd.CodePointRange{From: rune(8970), To: rune(8970)},
+ &ucd.CodePointRange{From: rune(9001), To: rune(9001)},
+ &ucd.CodePointRange{From: rune(10088), To: rune(10088)},
+ &ucd.CodePointRange{From: rune(10090), To: rune(10090)},
+ &ucd.CodePointRange{From: rune(10092), To: rune(10092)},
+ &ucd.CodePointRange{From: rune(10094), To: rune(10094)},
+ &ucd.CodePointRange{From: rune(10096), To: rune(10096)},
+ &ucd.CodePointRange{From: rune(10098), To: rune(10098)},
+ &ucd.CodePointRange{From: rune(10100), To: rune(10100)},
+ &ucd.CodePointRange{From: rune(10181), To: rune(10181)},
+ &ucd.CodePointRange{From: rune(10214), To: rune(10214)},
+ &ucd.CodePointRange{From: rune(10216), To: rune(10216)},
+ &ucd.CodePointRange{From: rune(10218), To: rune(10218)},
+ &ucd.CodePointRange{From: rune(10220), To: rune(10220)},
+ &ucd.CodePointRange{From: rune(10222), To: rune(10222)},
+ &ucd.CodePointRange{From: rune(10627), To: rune(10627)},
+ &ucd.CodePointRange{From: rune(10629), To: rune(10629)},
+ &ucd.CodePointRange{From: rune(10631), To: rune(10631)},
+ &ucd.CodePointRange{From: rune(10633), To: rune(10633)},
+ &ucd.CodePointRange{From: rune(10635), To: rune(10635)},
+ &ucd.CodePointRange{From: rune(10637), To: rune(10637)},
+ &ucd.CodePointRange{From: rune(10639), To: rune(10639)},
+ &ucd.CodePointRange{From: rune(10641), To: rune(10641)},
+ &ucd.CodePointRange{From: rune(10643), To: rune(10643)},
+ &ucd.CodePointRange{From: rune(10645), To: rune(10645)},
+ &ucd.CodePointRange{From: rune(10647), To: rune(10647)},
+ &ucd.CodePointRange{From: rune(10712), To: rune(10712)},
+ &ucd.CodePointRange{From: rune(10714), To: rune(10714)},
+ &ucd.CodePointRange{From: rune(10748), To: rune(10748)},
+ &ucd.CodePointRange{From: rune(11810), To: rune(11810)},
+ &ucd.CodePointRange{From: rune(11812), To: rune(11812)},
+ &ucd.CodePointRange{From: rune(11814), To: rune(11814)},
+ &ucd.CodePointRange{From: rune(11816), To: rune(11816)},
+ &ucd.CodePointRange{From: rune(11842), To: rune(11842)},
+ &ucd.CodePointRange{From: rune(12296), To: rune(12296)},
+ &ucd.CodePointRange{From: rune(12298), To: rune(12298)},
+ &ucd.CodePointRange{From: rune(12300), To: rune(12300)},
+ &ucd.CodePointRange{From: rune(12302), To: rune(12302)},
+ &ucd.CodePointRange{From: rune(12304), To: rune(12304)},
+ &ucd.CodePointRange{From: rune(12308), To: rune(12308)},
+ &ucd.CodePointRange{From: rune(12310), To: rune(12310)},
+ &ucd.CodePointRange{From: rune(12312), To: rune(12312)},
+ &ucd.CodePointRange{From: rune(12314), To: rune(12314)},
+ &ucd.CodePointRange{From: rune(12317), To: rune(12317)},
+ &ucd.CodePointRange{From: rune(64831), To: rune(64831)},
+ &ucd.CodePointRange{From: rune(65047), To: rune(65047)},
+ &ucd.CodePointRange{From: rune(65077), To: rune(65077)},
+ &ucd.CodePointRange{From: rune(65079), To: rune(65079)},
+ &ucd.CodePointRange{From: rune(65081), To: rune(65081)},
+ &ucd.CodePointRange{From: rune(65083), To: rune(65083)},
+ &ucd.CodePointRange{From: rune(65085), To: rune(65085)},
+ &ucd.CodePointRange{From: rune(65087), To: rune(65087)},
+ &ucd.CodePointRange{From: rune(65089), To: rune(65089)},
+ &ucd.CodePointRange{From: rune(65091), To: rune(65091)},
+ &ucd.CodePointRange{From: rune(65095), To: rune(65095)},
+ &ucd.CodePointRange{From: rune(65113), To: rune(65113)},
+ &ucd.CodePointRange{From: rune(65115), To: rune(65115)},
+ &ucd.CodePointRange{From: rune(65117), To: rune(65117)},
+ &ucd.CodePointRange{From: rune(65288), To: rune(65288)},
+ &ucd.CodePointRange{From: rune(65339), To: rune(65339)},
+ &ucd.CodePointRange{From: rune(65371), To: rune(65371)},
+ &ucd.CodePointRange{From: rune(65375), To: rune(65375)},
+ &ucd.CodePointRange{From: rune(65378), To: rune(65378)},
+ },
+ "sc": {
+ &ucd.CodePointRange{From: rune(36), To: rune(36)},
+ &ucd.CodePointRange{From: rune(162), To: rune(165)},
+ &ucd.CodePointRange{From: rune(1423), To: rune(1423)},
+ &ucd.CodePointRange{From: rune(1547), To: rune(1547)},
+ &ucd.CodePointRange{From: rune(2046), To: rune(2047)},
+ &ucd.CodePointRange{From: rune(2546), To: rune(2547)},
+ &ucd.CodePointRange{From: rune(2555), To: rune(2555)},
+ &ucd.CodePointRange{From: rune(2801), To: rune(2801)},
+ &ucd.CodePointRange{From: rune(3065), To: rune(3065)},
+ &ucd.CodePointRange{From: rune(3647), To: rune(3647)},
+ &ucd.CodePointRange{From: rune(6107), To: rune(6107)},
+ &ucd.CodePointRange{From: rune(8352), To: rune(8383)},
+ &ucd.CodePointRange{From: rune(43064), To: rune(43064)},
+ &ucd.CodePointRange{From: rune(65020), To: rune(65020)},
+ &ucd.CodePointRange{From: rune(65129), To: rune(65129)},
+ &ucd.CodePointRange{From: rune(65284), To: rune(65284)},
+ &ucd.CodePointRange{From: rune(65504), To: rune(65505)},
+ &ucd.CodePointRange{From: rune(65509), To: rune(65510)},
+ &ucd.CodePointRange{From: rune(73693), To: rune(73696)},
+ &ucd.CodePointRange{From: rune(123647), To: rune(123647)},
+ &ucd.CodePointRange{From: rune(126128), To: rune(126128)},
+ },
+ "sk": {
+ &ucd.CodePointRange{From: rune(94), To: rune(94)},
+ &ucd.CodePointRange{From: rune(96), To: rune(96)},
+ &ucd.CodePointRange{From: rune(168), To: rune(168)},
+ &ucd.CodePointRange{From: rune(175), To: rune(175)},
+ &ucd.CodePointRange{From: rune(180), To: rune(180)},
+ &ucd.CodePointRange{From: rune(184), To: rune(184)},
+ &ucd.CodePointRange{From: rune(706), To: rune(709)},
+ &ucd.CodePointRange{From: rune(722), To: rune(735)},
+ &ucd.CodePointRange{From: rune(741), To: rune(747)},
+ &ucd.CodePointRange{From: rune(749), To: rune(749)},
+ &ucd.CodePointRange{From: rune(751), To: rune(767)},
+ &ucd.CodePointRange{From: rune(885), To: rune(885)},
+ &ucd.CodePointRange{From: rune(900), To: rune(901)},
+ &ucd.CodePointRange{From: rune(8125), To: rune(8125)},
+ &ucd.CodePointRange{From: rune(8127), To: rune(8129)},
+ &ucd.CodePointRange{From: rune(8141), To: rune(8143)},
+ &ucd.CodePointRange{From: rune(8157), To: rune(8159)},
+ &ucd.CodePointRange{From: rune(8173), To: rune(8175)},
+ &ucd.CodePointRange{From: rune(8189), To: rune(8190)},
+ &ucd.CodePointRange{From: rune(12443), To: rune(12444)},
+ &ucd.CodePointRange{From: rune(42752), To: rune(42774)},
+ &ucd.CodePointRange{From: rune(42784), To: rune(42785)},
+ &ucd.CodePointRange{From: rune(42889), To: rune(42890)},
+ &ucd.CodePointRange{From: rune(43867), To: rune(43867)},
+ &ucd.CodePointRange{From: rune(43882), To: rune(43883)},
+ &ucd.CodePointRange{From: rune(64434), To: rune(64449)},
+ &ucd.CodePointRange{From: rune(65342), To: rune(65342)},
+ &ucd.CodePointRange{From: rune(65344), To: rune(65344)},
+ &ucd.CodePointRange{From: rune(65507), To: rune(65507)},
+ &ucd.CodePointRange{From: rune(127995), To: rune(127999)},
+ },
+ "sm": {
+ &ucd.CodePointRange{From: rune(43), To: rune(43)},
+ &ucd.CodePointRange{From: rune(60), To: rune(62)},
+ &ucd.CodePointRange{From: rune(124), To: rune(124)},
+ &ucd.CodePointRange{From: rune(126), To: rune(126)},
+ &ucd.CodePointRange{From: rune(172), To: rune(172)},
+ &ucd.CodePointRange{From: rune(177), To: rune(177)},
+ &ucd.CodePointRange{From: rune(215), To: rune(215)},
+ &ucd.CodePointRange{From: rune(247), To: rune(247)},
+ &ucd.CodePointRange{From: rune(1014), To: rune(1014)},
+ &ucd.CodePointRange{From: rune(1542), To: rune(1544)},
+ &ucd.CodePointRange{From: rune(8260), To: rune(8260)},
+ &ucd.CodePointRange{From: rune(8274), To: rune(8274)},
+ &ucd.CodePointRange{From: rune(8314), To: rune(8316)},
+ &ucd.CodePointRange{From: rune(8330), To: rune(8332)},
+ &ucd.CodePointRange{From: rune(8472), To: rune(8472)},
+ &ucd.CodePointRange{From: rune(8512), To: rune(8516)},
+ &ucd.CodePointRange{From: rune(8523), To: rune(8523)},
+ &ucd.CodePointRange{From: rune(8592), To: rune(8596)},
+ &ucd.CodePointRange{From: rune(8602), To: rune(8603)},
+ &ucd.CodePointRange{From: rune(8608), To: rune(8608)},
+ &ucd.CodePointRange{From: rune(8611), To: rune(8611)},
+ &ucd.CodePointRange{From: rune(8614), To: rune(8614)},
+ &ucd.CodePointRange{From: rune(8622), To: rune(8622)},
+ &ucd.CodePointRange{From: rune(8654), To: rune(8655)},
+ &ucd.CodePointRange{From: rune(8658), To: rune(8658)},
+ &ucd.CodePointRange{From: rune(8660), To: rune(8660)},
+ &ucd.CodePointRange{From: rune(8692), To: rune(8959)},
+ &ucd.CodePointRange{From: rune(8992), To: rune(8993)},
+ &ucd.CodePointRange{From: rune(9084), To: rune(9084)},
+ &ucd.CodePointRange{From: rune(9115), To: rune(9139)},
+ &ucd.CodePointRange{From: rune(9180), To: rune(9185)},
+ &ucd.CodePointRange{From: rune(9655), To: rune(9655)},
+ &ucd.CodePointRange{From: rune(9665), To: rune(9665)},
+ &ucd.CodePointRange{From: rune(9720), To: rune(9727)},
+ &ucd.CodePointRange{From: rune(9839), To: rune(9839)},
+ &ucd.CodePointRange{From: rune(10176), To: rune(10180)},
+ &ucd.CodePointRange{From: rune(10183), To: rune(10213)},
+ &ucd.CodePointRange{From: rune(10224), To: rune(10239)},
+ &ucd.CodePointRange{From: rune(10496), To: rune(10626)},
+ &ucd.CodePointRange{From: rune(10649), To: rune(10711)},
+ &ucd.CodePointRange{From: rune(10716), To: rune(10747)},
+ &ucd.CodePointRange{From: rune(10750), To: rune(11007)},
+ &ucd.CodePointRange{From: rune(11056), To: rune(11076)},
+ &ucd.CodePointRange{From: rune(11079), To: rune(11084)},
+ &ucd.CodePointRange{From: rune(64297), To: rune(64297)},
+ &ucd.CodePointRange{From: rune(65122), To: rune(65122)},
+ &ucd.CodePointRange{From: rune(65124), To: rune(65126)},
+ &ucd.CodePointRange{From: rune(65291), To: rune(65291)},
+ &ucd.CodePointRange{From: rune(65308), To: rune(65310)},
+ &ucd.CodePointRange{From: rune(65372), To: rune(65372)},
+ &ucd.CodePointRange{From: rune(65374), To: rune(65374)},
+ &ucd.CodePointRange{From: rune(65506), To: rune(65506)},
+ &ucd.CodePointRange{From: rune(65513), To: rune(65516)},
+ &ucd.CodePointRange{From: rune(120513), To: rune(120513)},
+ &ucd.CodePointRange{From: rune(120539), To: rune(120539)},
+ &ucd.CodePointRange{From: rune(120571), To: rune(120571)},
+ &ucd.CodePointRange{From: rune(120597), To: rune(120597)},
+ &ucd.CodePointRange{From: rune(120629), To: rune(120629)},
+ &ucd.CodePointRange{From: rune(120655), To: rune(120655)},
+ &ucd.CodePointRange{From: rune(120687), To: rune(120687)},
+ &ucd.CodePointRange{From: rune(120713), To: rune(120713)},
+ &ucd.CodePointRange{From: rune(120745), To: rune(120745)},
+ &ucd.CodePointRange{From: rune(120771), To: rune(120771)},
+ &ucd.CodePointRange{From: rune(126704), To: rune(126705)},
+ },
+ "so": {
+ &ucd.CodePointRange{From: rune(166), To: rune(166)},
+ &ucd.CodePointRange{From: rune(169), To: rune(169)},
+ &ucd.CodePointRange{From: rune(174), To: rune(174)},
+ &ucd.CodePointRange{From: rune(176), To: rune(176)},
+ &ucd.CodePointRange{From: rune(1154), To: rune(1154)},
+ &ucd.CodePointRange{From: rune(1421), To: rune(1422)},
+ &ucd.CodePointRange{From: rune(1550), To: rune(1551)},
+ &ucd.CodePointRange{From: rune(1758), To: rune(1758)},
+ &ucd.CodePointRange{From: rune(1769), To: rune(1769)},
+ &ucd.CodePointRange{From: rune(1789), To: rune(1790)},
+ &ucd.CodePointRange{From: rune(2038), To: rune(2038)},
+ &ucd.CodePointRange{From: rune(2554), To: rune(2554)},
+ &ucd.CodePointRange{From: rune(2928), To: rune(2928)},
+ &ucd.CodePointRange{From: rune(3059), To: rune(3064)},
+ &ucd.CodePointRange{From: rune(3066), To: rune(3066)},
+ &ucd.CodePointRange{From: rune(3199), To: rune(3199)},
+ &ucd.CodePointRange{From: rune(3407), To: rune(3407)},
+ &ucd.CodePointRange{From: rune(3449), To: rune(3449)},
+ &ucd.CodePointRange{From: rune(3841), To: rune(3843)},
+ &ucd.CodePointRange{From: rune(3859), To: rune(3859)},
+ &ucd.CodePointRange{From: rune(3861), To: rune(3863)},
+ &ucd.CodePointRange{From: rune(3866), To: rune(3871)},
+ &ucd.CodePointRange{From: rune(3892), To: rune(3892)},
+ &ucd.CodePointRange{From: rune(3894), To: rune(3894)},
+ &ucd.CodePointRange{From: rune(3896), To: rune(3896)},
+ &ucd.CodePointRange{From: rune(4030), To: rune(4037)},
+ &ucd.CodePointRange{From: rune(4039), To: rune(4044)},
+ &ucd.CodePointRange{From: rune(4046), To: rune(4047)},
+ &ucd.CodePointRange{From: rune(4053), To: rune(4056)},
+ &ucd.CodePointRange{From: rune(4254), To: rune(4255)},
+ &ucd.CodePointRange{From: rune(5008), To: rune(5017)},
+ &ucd.CodePointRange{From: rune(5741), To: rune(5741)},
+ &ucd.CodePointRange{From: rune(6464), To: rune(6464)},
+ &ucd.CodePointRange{From: rune(6622), To: rune(6655)},
+ &ucd.CodePointRange{From: rune(7009), To: rune(7018)},
+ &ucd.CodePointRange{From: rune(7028), To: rune(7036)},
+ &ucd.CodePointRange{From: rune(8448), To: rune(8449)},
+ &ucd.CodePointRange{From: rune(8451), To: rune(8454)},
+ &ucd.CodePointRange{From: rune(8456), To: rune(8457)},
+ &ucd.CodePointRange{From: rune(8468), To: rune(8468)},
+ &ucd.CodePointRange{From: rune(8470), To: rune(8471)},
+ &ucd.CodePointRange{From: rune(8478), To: rune(8483)},
+ &ucd.CodePointRange{From: rune(8485), To: rune(8485)},
+ &ucd.CodePointRange{From: rune(8487), To: rune(8487)},
+ &ucd.CodePointRange{From: rune(8489), To: rune(8489)},
+ &ucd.CodePointRange{From: rune(8494), To: rune(8494)},
+ &ucd.CodePointRange{From: rune(8506), To: rune(8507)},
+ &ucd.CodePointRange{From: rune(8522), To: rune(8522)},
+ &ucd.CodePointRange{From: rune(8524), To: rune(8525)},
+ &ucd.CodePointRange{From: rune(8527), To: rune(8527)},
+ &ucd.CodePointRange{From: rune(8586), To: rune(8587)},
+ &ucd.CodePointRange{From: rune(8597), To: rune(8601)},
+ &ucd.CodePointRange{From: rune(8604), To: rune(8607)},
+ &ucd.CodePointRange{From: rune(8609), To: rune(8610)},
+ &ucd.CodePointRange{From: rune(8612), To: rune(8613)},
+ &ucd.CodePointRange{From: rune(8615), To: rune(8621)},
+ &ucd.CodePointRange{From: rune(8623), To: rune(8653)},
+ &ucd.CodePointRange{From: rune(8656), To: rune(8657)},
+ &ucd.CodePointRange{From: rune(8659), To: rune(8659)},
+ &ucd.CodePointRange{From: rune(8661), To: rune(8691)},
+ &ucd.CodePointRange{From: rune(8960), To: rune(8967)},
+ &ucd.CodePointRange{From: rune(8972), To: rune(8991)},
+ &ucd.CodePointRange{From: rune(8994), To: rune(9000)},
+ &ucd.CodePointRange{From: rune(9003), To: rune(9083)},
+ &ucd.CodePointRange{From: rune(9085), To: rune(9114)},
+ &ucd.CodePointRange{From: rune(9140), To: rune(9179)},
+ &ucd.CodePointRange{From: rune(9186), To: rune(9254)},
+ &ucd.CodePointRange{From: rune(9280), To: rune(9290)},
+ &ucd.CodePointRange{From: rune(9372), To: rune(9449)},
+ &ucd.CodePointRange{From: rune(9472), To: rune(9654)},
+ &ucd.CodePointRange{From: rune(9656), To: rune(9664)},
+ &ucd.CodePointRange{From: rune(9666), To: rune(9719)},
+ &ucd.CodePointRange{From: rune(9728), To: rune(9838)},
+ &ucd.CodePointRange{From: rune(9840), To: rune(10087)},
+ &ucd.CodePointRange{From: rune(10132), To: rune(10175)},
+ &ucd.CodePointRange{From: rune(10240), To: rune(10495)},
+ &ucd.CodePointRange{From: rune(11008), To: rune(11055)},
+ &ucd.CodePointRange{From: rune(11077), To: rune(11078)},
+ &ucd.CodePointRange{From: rune(11085), To: rune(11123)},
+ &ucd.CodePointRange{From: rune(11126), To: rune(11157)},
+ &ucd.CodePointRange{From: rune(11159), To: rune(11263)},
+ &ucd.CodePointRange{From: rune(11493), To: rune(11498)},
+ &ucd.CodePointRange{From: rune(11856), To: rune(11857)},
+ &ucd.CodePointRange{From: rune(11904), To: rune(11929)},
+ &ucd.CodePointRange{From: rune(11931), To: rune(12019)},
+ &ucd.CodePointRange{From: rune(12032), To: rune(12245)},
+ &ucd.CodePointRange{From: rune(12272), To: rune(12283)},
+ &ucd.CodePointRange{From: rune(12292), To: rune(12292)},
+ &ucd.CodePointRange{From: rune(12306), To: rune(12307)},
+ &ucd.CodePointRange{From: rune(12320), To: rune(12320)},
+ &ucd.CodePointRange{From: rune(12342), To: rune(12343)},
+ &ucd.CodePointRange{From: rune(12350), To: rune(12351)},
+ &ucd.CodePointRange{From: rune(12688), To: rune(12689)},
+ &ucd.CodePointRange{From: rune(12694), To: rune(12703)},
+ &ucd.CodePointRange{From: rune(12736), To: rune(12771)},
+ &ucd.CodePointRange{From: rune(12800), To: rune(12830)},
+ &ucd.CodePointRange{From: rune(12842), To: rune(12871)},
+ &ucd.CodePointRange{From: rune(12880), To: rune(12880)},
+ &ucd.CodePointRange{From: rune(12896), To: rune(12927)},
+ &ucd.CodePointRange{From: rune(12938), To: rune(12976)},
+ &ucd.CodePointRange{From: rune(12992), To: rune(13311)},
+ &ucd.CodePointRange{From: rune(19904), To: rune(19967)},
+ &ucd.CodePointRange{From: rune(42128), To: rune(42182)},
+ &ucd.CodePointRange{From: rune(43048), To: rune(43051)},
+ &ucd.CodePointRange{From: rune(43062), To: rune(43063)},
+ &ucd.CodePointRange{From: rune(43065), To: rune(43065)},
+ &ucd.CodePointRange{From: rune(43639), To: rune(43641)},
+ &ucd.CodePointRange{From: rune(65021), To: rune(65021)},
+ &ucd.CodePointRange{From: rune(65508), To: rune(65508)},
+ &ucd.CodePointRange{From: rune(65512), To: rune(65512)},
+ &ucd.CodePointRange{From: rune(65517), To: rune(65518)},
+ &ucd.CodePointRange{From: rune(65532), To: rune(65533)},
+ &ucd.CodePointRange{From: rune(65847), To: rune(65855)},
+ &ucd.CodePointRange{From: rune(65913), To: rune(65929)},
+ &ucd.CodePointRange{From: rune(65932), To: rune(65934)},
+ &ucd.CodePointRange{From: rune(65936), To: rune(65948)},
+ &ucd.CodePointRange{From: rune(65952), To: rune(65952)},
+ &ucd.CodePointRange{From: rune(66000), To: rune(66044)},
+ &ucd.CodePointRange{From: rune(67703), To: rune(67704)},
+ &ucd.CodePointRange{From: rune(68296), To: rune(68296)},
+ &ucd.CodePointRange{From: rune(71487), To: rune(71487)},
+ &ucd.CodePointRange{From: rune(73685), To: rune(73692)},
+ &ucd.CodePointRange{From: rune(73697), To: rune(73713)},
+ &ucd.CodePointRange{From: rune(92988), To: rune(92991)},
+ &ucd.CodePointRange{From: rune(92997), To: rune(92997)},
+ &ucd.CodePointRange{From: rune(113820), To: rune(113820)},
+ &ucd.CodePointRange{From: rune(118784), To: rune(119029)},
+ &ucd.CodePointRange{From: rune(119040), To: rune(119078)},
+ &ucd.CodePointRange{From: rune(119081), To: rune(119140)},
+ &ucd.CodePointRange{From: rune(119146), To: rune(119148)},
+ &ucd.CodePointRange{From: rune(119171), To: rune(119172)},
+ &ucd.CodePointRange{From: rune(119180), To: rune(119209)},
+ &ucd.CodePointRange{From: rune(119214), To: rune(119272)},
+ &ucd.CodePointRange{From: rune(119296), To: rune(119361)},
+ &ucd.CodePointRange{From: rune(119365), To: rune(119365)},
+ &ucd.CodePointRange{From: rune(119552), To: rune(119638)},
+ &ucd.CodePointRange{From: rune(120832), To: rune(121343)},
+ &ucd.CodePointRange{From: rune(121399), To: rune(121402)},
+ &ucd.CodePointRange{From: rune(121453), To: rune(121460)},
+ &ucd.CodePointRange{From: rune(121462), To: rune(121475)},
+ &ucd.CodePointRange{From: rune(121477), To: rune(121478)},
+ &ucd.CodePointRange{From: rune(123215), To: rune(123215)},
+ &ucd.CodePointRange{From: rune(126124), To: rune(126124)},
+ &ucd.CodePointRange{From: rune(126254), To: rune(126254)},
+ &ucd.CodePointRange{From: rune(126976), To: rune(127019)},
+ &ucd.CodePointRange{From: rune(127024), To: rune(127123)},
+ &ucd.CodePointRange{From: rune(127136), To: rune(127150)},
+ &ucd.CodePointRange{From: rune(127153), To: rune(127167)},
+ &ucd.CodePointRange{From: rune(127169), To: rune(127183)},
+ &ucd.CodePointRange{From: rune(127185), To: rune(127221)},
+ &ucd.CodePointRange{From: rune(127245), To: rune(127405)},
+ &ucd.CodePointRange{From: rune(127462), To: rune(127490)},
+ &ucd.CodePointRange{From: rune(127504), To: rune(127547)},
+ &ucd.CodePointRange{From: rune(127552), To: rune(127560)},
+ &ucd.CodePointRange{From: rune(127568), To: rune(127569)},
+ &ucd.CodePointRange{From: rune(127584), To: rune(127589)},
+ &ucd.CodePointRange{From: rune(127744), To: rune(127994)},
+ &ucd.CodePointRange{From: rune(128000), To: rune(128727)},
+ &ucd.CodePointRange{From: rune(128736), To: rune(128748)},
+ &ucd.CodePointRange{From: rune(128752), To: rune(128764)},
+ &ucd.CodePointRange{From: rune(128768), To: rune(128883)},
+ &ucd.CodePointRange{From: rune(128896), To: rune(128984)},
+ &ucd.CodePointRange{From: rune(128992), To: rune(129003)},
+ &ucd.CodePointRange{From: rune(129024), To: rune(129035)},
+ &ucd.CodePointRange{From: rune(129040), To: rune(129095)},
+ &ucd.CodePointRange{From: rune(129104), To: rune(129113)},
+ &ucd.CodePointRange{From: rune(129120), To: rune(129159)},
+ &ucd.CodePointRange{From: rune(129168), To: rune(129197)},
+ &ucd.CodePointRange{From: rune(129200), To: rune(129201)},
+ &ucd.CodePointRange{From: rune(129280), To: rune(129400)},
+ &ucd.CodePointRange{From: rune(129402), To: rune(129483)},
+ &ucd.CodePointRange{From: rune(129485), To: rune(129619)},
+ &ucd.CodePointRange{From: rune(129632), To: rune(129645)},
+ &ucd.CodePointRange{From: rune(129648), To: rune(129652)},
+ &ucd.CodePointRange{From: rune(129656), To: rune(129658)},
+ &ucd.CodePointRange{From: rune(129664), To: rune(129670)},
+ &ucd.CodePointRange{From: rune(129680), To: rune(129704)},
+ &ucd.CodePointRange{From: rune(129712), To: rune(129718)},
+ &ucd.CodePointRange{From: rune(129728), To: rune(129730)},
+ &ucd.CodePointRange{From: rune(129744), To: rune(129750)},
+ &ucd.CodePointRange{From: rune(129792), To: rune(129938)},
+ &ucd.CodePointRange{From: rune(129940), To: rune(129994)},
+ },
+ "unassigned": {
+ &ucd.CodePointRange{From: rune(888), To: rune(889)},
+ &ucd.CodePointRange{From: rune(896), To: rune(899)},
+ &ucd.CodePointRange{From: rune(907), To: rune(907)},
+ &ucd.CodePointRange{From: rune(909), To: rune(909)},
+ &ucd.CodePointRange{From: rune(930), To: rune(930)},
+ &ucd.CodePointRange{From: rune(1328), To: rune(1328)},
+ &ucd.CodePointRange{From: rune(1367), To: rune(1368)},
+ &ucd.CodePointRange{From: rune(1419), To: rune(1420)},
+ &ucd.CodePointRange{From: rune(1424), To: rune(1424)},
+ &ucd.CodePointRange{From: rune(1480), To: rune(1487)},
+ &ucd.CodePointRange{From: rune(1515), To: rune(1518)},
+ &ucd.CodePointRange{From: rune(1525), To: rune(1535)},
+ &ucd.CodePointRange{From: rune(1565), To: rune(1565)},
+ &ucd.CodePointRange{From: rune(1806), To: rune(1806)},
+ &ucd.CodePointRange{From: rune(1867), To: rune(1868)},
+ &ucd.CodePointRange{From: rune(1970), To: rune(1983)},
+ &ucd.CodePointRange{From: rune(2043), To: rune(2044)},
+ &ucd.CodePointRange{From: rune(2094), To: rune(2095)},
+ &ucd.CodePointRange{From: rune(2111), To: rune(2111)},
+ &ucd.CodePointRange{From: rune(2140), To: rune(2141)},
+ &ucd.CodePointRange{From: rune(2143), To: rune(2143)},
+ &ucd.CodePointRange{From: rune(2155), To: rune(2207)},
+ &ucd.CodePointRange{From: rune(2229), To: rune(2229)},
+ &ucd.CodePointRange{From: rune(2248), To: rune(2258)},
+ &ucd.CodePointRange{From: rune(2436), To: rune(2436)},
+ &ucd.CodePointRange{From: rune(2445), To: rune(2446)},
+ &ucd.CodePointRange{From: rune(2449), To: rune(2450)},
+ &ucd.CodePointRange{From: rune(2473), To: rune(2473)},
+ &ucd.CodePointRange{From: rune(2481), To: rune(2481)},
+ &ucd.CodePointRange{From: rune(2483), To: rune(2485)},
+ &ucd.CodePointRange{From: rune(2490), To: rune(2491)},
+ &ucd.CodePointRange{From: rune(2501), To: rune(2502)},
+ &ucd.CodePointRange{From: rune(2505), To: rune(2506)},
+ &ucd.CodePointRange{From: rune(2511), To: rune(2518)},
+ &ucd.CodePointRange{From: rune(2520), To: rune(2523)},
+ &ucd.CodePointRange{From: rune(2526), To: rune(2526)},
+ &ucd.CodePointRange{From: rune(2532), To: rune(2533)},
+ &ucd.CodePointRange{From: rune(2559), To: rune(2560)},
+ &ucd.CodePointRange{From: rune(2564), To: rune(2564)},
+ &ucd.CodePointRange{From: rune(2571), To: rune(2574)},
+ &ucd.CodePointRange{From: rune(2577), To: rune(2578)},
+ &ucd.CodePointRange{From: rune(2601), To: rune(2601)},
+ &ucd.CodePointRange{From: rune(2609), To: rune(2609)},
+ &ucd.CodePointRange{From: rune(2612), To: rune(2612)},
+ &ucd.CodePointRange{From: rune(2615), To: rune(2615)},
+ &ucd.CodePointRange{From: rune(2618), To: rune(2619)},
+ &ucd.CodePointRange{From: rune(2621), To: rune(2621)},
+ &ucd.CodePointRange{From: rune(2627), To: rune(2630)},
+ &ucd.CodePointRange{From: rune(2633), To: rune(2634)},
+ &ucd.CodePointRange{From: rune(2638), To: rune(2640)},
+ &ucd.CodePointRange{From: rune(2642), To: rune(2648)},
+ &ucd.CodePointRange{From: rune(2653), To: rune(2653)},
+ &ucd.CodePointRange{From: rune(2655), To: rune(2661)},
+ &ucd.CodePointRange{From: rune(2679), To: rune(2688)},
+ &ucd.CodePointRange{From: rune(2692), To: rune(2692)},
+ &ucd.CodePointRange{From: rune(2702), To: rune(2702)},
+ &ucd.CodePointRange{From: rune(2706), To: rune(2706)},
+ &ucd.CodePointRange{From: rune(2729), To: rune(2729)},
+ &ucd.CodePointRange{From: rune(2737), To: rune(2737)},
+ &ucd.CodePointRange{From: rune(2740), To: rune(2740)},
+ &ucd.CodePointRange{From: rune(2746), To: rune(2747)},
+ &ucd.CodePointRange{From: rune(2758), To: rune(2758)},
+ &ucd.CodePointRange{From: rune(2762), To: rune(2762)},
+ &ucd.CodePointRange{From: rune(2766), To: rune(2767)},
+ &ucd.CodePointRange{From: rune(2769), To: rune(2783)},
+ &ucd.CodePointRange{From: rune(2788), To: rune(2789)},
+ &ucd.CodePointRange{From: rune(2802), To: rune(2808)},
+ &ucd.CodePointRange{From: rune(2816), To: rune(2816)},
+ &ucd.CodePointRange{From: rune(2820), To: rune(2820)},
+ &ucd.CodePointRange{From: rune(2829), To: rune(2830)},
+ &ucd.CodePointRange{From: rune(2833), To: rune(2834)},
+ &ucd.CodePointRange{From: rune(2857), To: rune(2857)},
+ &ucd.CodePointRange{From: rune(2865), To: rune(2865)},
+ &ucd.CodePointRange{From: rune(2868), To: rune(2868)},
+ &ucd.CodePointRange{From: rune(2874), To: rune(2875)},
+ &ucd.CodePointRange{From: rune(2885), To: rune(2886)},
+ &ucd.CodePointRange{From: rune(2889), To: rune(2890)},
+ &ucd.CodePointRange{From: rune(2894), To: rune(2900)},
+ &ucd.CodePointRange{From: rune(2904), To: rune(2907)},
+ &ucd.CodePointRange{From: rune(2910), To: rune(2910)},
+ &ucd.CodePointRange{From: rune(2916), To: rune(2917)},
+ &ucd.CodePointRange{From: rune(2936), To: rune(2945)},
+ &ucd.CodePointRange{From: rune(2948), To: rune(2948)},
+ &ucd.CodePointRange{From: rune(2955), To: rune(2957)},
+ &ucd.CodePointRange{From: rune(2961), To: rune(2961)},
+ &ucd.CodePointRange{From: rune(2966), To: rune(2968)},
+ &ucd.CodePointRange{From: rune(2971), To: rune(2971)},
+ &ucd.CodePointRange{From: rune(2973), To: rune(2973)},
+ &ucd.CodePointRange{From: rune(2976), To: rune(2978)},
+ &ucd.CodePointRange{From: rune(2981), To: rune(2983)},
+ &ucd.CodePointRange{From: rune(2987), To: rune(2989)},
+ &ucd.CodePointRange{From: rune(3002), To: rune(3005)},
+ &ucd.CodePointRange{From: rune(3011), To: rune(3013)},
+ &ucd.CodePointRange{From: rune(3017), To: rune(3017)},
+ &ucd.CodePointRange{From: rune(3022), To: rune(3023)},
+ &ucd.CodePointRange{From: rune(3025), To: rune(3030)},
+ &ucd.CodePointRange{From: rune(3032), To: rune(3045)},
+ &ucd.CodePointRange{From: rune(3067), To: rune(3071)},
+ &ucd.CodePointRange{From: rune(3085), To: rune(3085)},
+ &ucd.CodePointRange{From: rune(3089), To: rune(3089)},
+ &ucd.CodePointRange{From: rune(3113), To: rune(3113)},
+ &ucd.CodePointRange{From: rune(3130), To: rune(3132)},
+ &ucd.CodePointRange{From: rune(3141), To: rune(3141)},
+ &ucd.CodePointRange{From: rune(3145), To: rune(3145)},
+ &ucd.CodePointRange{From: rune(3150), To: rune(3156)},
+ &ucd.CodePointRange{From: rune(3159), To: rune(3159)},
+ &ucd.CodePointRange{From: rune(3163), To: rune(3167)},
+ &ucd.CodePointRange{From: rune(3172), To: rune(3173)},
+ &ucd.CodePointRange{From: rune(3184), To: rune(3190)},
+ &ucd.CodePointRange{From: rune(3213), To: rune(3213)},
+ &ucd.CodePointRange{From: rune(3217), To: rune(3217)},
+ &ucd.CodePointRange{From: rune(3241), To: rune(3241)},
+ &ucd.CodePointRange{From: rune(3252), To: rune(3252)},
+ &ucd.CodePointRange{From: rune(3258), To: rune(3259)},
+ &ucd.CodePointRange{From: rune(3269), To: rune(3269)},
+ &ucd.CodePointRange{From: rune(3273), To: rune(3273)},
+ &ucd.CodePointRange{From: rune(3278), To: rune(3284)},
+ &ucd.CodePointRange{From: rune(3287), To: rune(3293)},
+ &ucd.CodePointRange{From: rune(3295), To: rune(3295)},
+ &ucd.CodePointRange{From: rune(3300), To: rune(3301)},
+ &ucd.CodePointRange{From: rune(3312), To: rune(3312)},
+ &ucd.CodePointRange{From: rune(3315), To: rune(3327)},
+ &ucd.CodePointRange{From: rune(3341), To: rune(3341)},
+ &ucd.CodePointRange{From: rune(3345), To: rune(3345)},
+ &ucd.CodePointRange{From: rune(3397), To: rune(3397)},
+ &ucd.CodePointRange{From: rune(3401), To: rune(3401)},
+ &ucd.CodePointRange{From: rune(3408), To: rune(3411)},
+ &ucd.CodePointRange{From: rune(3428), To: rune(3429)},
+ &ucd.CodePointRange{From: rune(3456), To: rune(3456)},
+ &ucd.CodePointRange{From: rune(3460), To: rune(3460)},
+ &ucd.CodePointRange{From: rune(3479), To: rune(3481)},
+ &ucd.CodePointRange{From: rune(3506), To: rune(3506)},
+ &ucd.CodePointRange{From: rune(3516), To: rune(3516)},
+ &ucd.CodePointRange{From: rune(3518), To: rune(3519)},
+ &ucd.CodePointRange{From: rune(3527), To: rune(3529)},
+ &ucd.CodePointRange{From: rune(3531), To: rune(3534)},
+ &ucd.CodePointRange{From: rune(3541), To: rune(3541)},
+ &ucd.CodePointRange{From: rune(3543), To: rune(3543)},
+ &ucd.CodePointRange{From: rune(3552), To: rune(3557)},
+ &ucd.CodePointRange{From: rune(3568), To: rune(3569)},
+ &ucd.CodePointRange{From: rune(3573), To: rune(3584)},
+ &ucd.CodePointRange{From: rune(3643), To: rune(3646)},
+ &ucd.CodePointRange{From: rune(3676), To: rune(3712)},
+ &ucd.CodePointRange{From: rune(3715), To: rune(3715)},
+ &ucd.CodePointRange{From: rune(3717), To: rune(3717)},
+ &ucd.CodePointRange{From: rune(3723), To: rune(3723)},
+ &ucd.CodePointRange{From: rune(3748), To: rune(3748)},
+ &ucd.CodePointRange{From: rune(3750), To: rune(3750)},
+ &ucd.CodePointRange{From: rune(3774), To: rune(3775)},
+ &ucd.CodePointRange{From: rune(3781), To: rune(3781)},
+ &ucd.CodePointRange{From: rune(3783), To: rune(3783)},
+ &ucd.CodePointRange{From: rune(3790), To: rune(3791)},
+ &ucd.CodePointRange{From: rune(3802), To: rune(3803)},
+ &ucd.CodePointRange{From: rune(3808), To: rune(3839)},
+ &ucd.CodePointRange{From: rune(3912), To: rune(3912)},
+ &ucd.CodePointRange{From: rune(3949), To: rune(3952)},
+ &ucd.CodePointRange{From: rune(3992), To: rune(3992)},
+ &ucd.CodePointRange{From: rune(4029), To: rune(4029)},
+ &ucd.CodePointRange{From: rune(4045), To: rune(4045)},
+ &ucd.CodePointRange{From: rune(4059), To: rune(4095)},
+ &ucd.CodePointRange{From: rune(4294), To: rune(4294)},
+ &ucd.CodePointRange{From: rune(4296), To: rune(4300)},
+ &ucd.CodePointRange{From: rune(4302), To: rune(4303)},
+ &ucd.CodePointRange{From: rune(4681), To: rune(4681)},
+ &ucd.CodePointRange{From: rune(4686), To: rune(4687)},
+ &ucd.CodePointRange{From: rune(4695), To: rune(4695)},
+ &ucd.CodePointRange{From: rune(4697), To: rune(4697)},
+ &ucd.CodePointRange{From: rune(4702), To: rune(4703)},
+ &ucd.CodePointRange{From: rune(4745), To: rune(4745)},
+ &ucd.CodePointRange{From: rune(4750), To: rune(4751)},
+ &ucd.CodePointRange{From: rune(4785), To: rune(4785)},
+ &ucd.CodePointRange{From: rune(4790), To: rune(4791)},
+ &ucd.CodePointRange{From: rune(4799), To: rune(4799)},
+ &ucd.CodePointRange{From: rune(4801), To: rune(4801)},
+ &ucd.CodePointRange{From: rune(4806), To: rune(4807)},
+ &ucd.CodePointRange{From: rune(4823), To: rune(4823)},
+ &ucd.CodePointRange{From: rune(4881), To: rune(4881)},
+ &ucd.CodePointRange{From: rune(4886), To: rune(4887)},
+ &ucd.CodePointRange{From: rune(4955), To: rune(4956)},
+ &ucd.CodePointRange{From: rune(4989), To: rune(4991)},
+ &ucd.CodePointRange{From: rune(5018), To: rune(5023)},
+ &ucd.CodePointRange{From: rune(5110), To: rune(5111)},
+ &ucd.CodePointRange{From: rune(5118), To: rune(5119)},
+ &ucd.CodePointRange{From: rune(5789), To: rune(5791)},
+ &ucd.CodePointRange{From: rune(5881), To: rune(5887)},
+ &ucd.CodePointRange{From: rune(5901), To: rune(5901)},
+ &ucd.CodePointRange{From: rune(5909), To: rune(5919)},
+ &ucd.CodePointRange{From: rune(5943), To: rune(5951)},
+ &ucd.CodePointRange{From: rune(5972), To: rune(5983)},
+ &ucd.CodePointRange{From: rune(5997), To: rune(5997)},
+ &ucd.CodePointRange{From: rune(6001), To: rune(6001)},
+ &ucd.CodePointRange{From: rune(6004), To: rune(6015)},
+ &ucd.CodePointRange{From: rune(6110), To: rune(6111)},
+ &ucd.CodePointRange{From: rune(6122), To: rune(6127)},
+ &ucd.CodePointRange{From: rune(6138), To: rune(6143)},
+ &ucd.CodePointRange{From: rune(6159), To: rune(6159)},
+ &ucd.CodePointRange{From: rune(6170), To: rune(6175)},
+ &ucd.CodePointRange{From: rune(6265), To: rune(6271)},
+ &ucd.CodePointRange{From: rune(6315), To: rune(6319)},
+ &ucd.CodePointRange{From: rune(6390), To: rune(6399)},
+ &ucd.CodePointRange{From: rune(6431), To: rune(6431)},
+ &ucd.CodePointRange{From: rune(6444), To: rune(6447)},
+ &ucd.CodePointRange{From: rune(6460), To: rune(6463)},
+ &ucd.CodePointRange{From: rune(6465), To: rune(6467)},
+ &ucd.CodePointRange{From: rune(6510), To: rune(6511)},
+ &ucd.CodePointRange{From: rune(6517), To: rune(6527)},
+ &ucd.CodePointRange{From: rune(6572), To: rune(6575)},
+ &ucd.CodePointRange{From: rune(6602), To: rune(6607)},
+ &ucd.CodePointRange{From: rune(6619), To: rune(6621)},
+ &ucd.CodePointRange{From: rune(6684), To: rune(6685)},
+ &ucd.CodePointRange{From: rune(6751), To: rune(6751)},
+ &ucd.CodePointRange{From: rune(6781), To: rune(6782)},
+ &ucd.CodePointRange{From: rune(6794), To: rune(6799)},
+ &ucd.CodePointRange{From: rune(6810), To: rune(6815)},
+ &ucd.CodePointRange{From: rune(6830), To: rune(6831)},
+ &ucd.CodePointRange{From: rune(6849), To: rune(6911)},
+ &ucd.CodePointRange{From: rune(6988), To: rune(6991)},
+ &ucd.CodePointRange{From: rune(7037), To: rune(7039)},
+ &ucd.CodePointRange{From: rune(7156), To: rune(7163)},
+ &ucd.CodePointRange{From: rune(7224), To: rune(7226)},
+ &ucd.CodePointRange{From: rune(7242), To: rune(7244)},
+ &ucd.CodePointRange{From: rune(7305), To: rune(7311)},
+ &ucd.CodePointRange{From: rune(7355), To: rune(7356)},
+ &ucd.CodePointRange{From: rune(7368), To: rune(7375)},
+ &ucd.CodePointRange{From: rune(7419), To: rune(7423)},
+ &ucd.CodePointRange{From: rune(7674), To: rune(7674)},
+ &ucd.CodePointRange{From: rune(7958), To: rune(7959)},
+ &ucd.CodePointRange{From: rune(7966), To: rune(7967)},
+ &ucd.CodePointRange{From: rune(8006), To: rune(8007)},
+ &ucd.CodePointRange{From: rune(8014), To: rune(8015)},
+ &ucd.CodePointRange{From: rune(8024), To: rune(8024)},
+ &ucd.CodePointRange{From: rune(8026), To: rune(8026)},
+ &ucd.CodePointRange{From: rune(8028), To: rune(8028)},
+ &ucd.CodePointRange{From: rune(8030), To: rune(8030)},
+ &ucd.CodePointRange{From: rune(8062), To: rune(8063)},
+ &ucd.CodePointRange{From: rune(8117), To: rune(8117)},
+ &ucd.CodePointRange{From: rune(8133), To: rune(8133)},
+ &ucd.CodePointRange{From: rune(8148), To: rune(8149)},
+ &ucd.CodePointRange{From: rune(8156), To: rune(8156)},
+ &ucd.CodePointRange{From: rune(8176), To: rune(8177)},
+ &ucd.CodePointRange{From: rune(8181), To: rune(8181)},
+ &ucd.CodePointRange{From: rune(8191), To: rune(8191)},
+ &ucd.CodePointRange{From: rune(8293), To: rune(8293)},
+ &ucd.CodePointRange{From: rune(8306), To: rune(8307)},
+ &ucd.CodePointRange{From: rune(8335), To: rune(8335)},
+ &ucd.CodePointRange{From: rune(8349), To: rune(8351)},
+ &ucd.CodePointRange{From: rune(8384), To: rune(8399)},
+ &ucd.CodePointRange{From: rune(8433), To: rune(8447)},
+ &ucd.CodePointRange{From: rune(8588), To: rune(8591)},
+ &ucd.CodePointRange{From: rune(9255), To: rune(9279)},
+ &ucd.CodePointRange{From: rune(9291), To: rune(9311)},
+ &ucd.CodePointRange{From: rune(11124), To: rune(11125)},
+ &ucd.CodePointRange{From: rune(11158), To: rune(11158)},
+ &ucd.CodePointRange{From: rune(11311), To: rune(11311)},
+ &ucd.CodePointRange{From: rune(11359), To: rune(11359)},
+ &ucd.CodePointRange{From: rune(11508), To: rune(11512)},
+ &ucd.CodePointRange{From: rune(11558), To: rune(11558)},
+ &ucd.CodePointRange{From: rune(11560), To: rune(11564)},
+ &ucd.CodePointRange{From: rune(11566), To: rune(11567)},
+ &ucd.CodePointRange{From: rune(11624), To: rune(11630)},
+ &ucd.CodePointRange{From: rune(11633), To: rune(11646)},
+ &ucd.CodePointRange{From: rune(11671), To: rune(11679)},
+ &ucd.CodePointRange{From: rune(11687), To: rune(11687)},
+ &ucd.CodePointRange{From: rune(11695), To: rune(11695)},
+ &ucd.CodePointRange{From: rune(11703), To: rune(11703)},
+ &ucd.CodePointRange{From: rune(11711), To: rune(11711)},
+ &ucd.CodePointRange{From: rune(11719), To: rune(11719)},
+ &ucd.CodePointRange{From: rune(11727), To: rune(11727)},
+ &ucd.CodePointRange{From: rune(11735), To: rune(11735)},
+ &ucd.CodePointRange{From: rune(11743), To: rune(11743)},
+ &ucd.CodePointRange{From: rune(11859), To: rune(11903)},
+ &ucd.CodePointRange{From: rune(11930), To: rune(11930)},
+ &ucd.CodePointRange{From: rune(12020), To: rune(12031)},
+ &ucd.CodePointRange{From: rune(12246), To: rune(12271)},
+ &ucd.CodePointRange{From: rune(12284), To: rune(12287)},
+ &ucd.CodePointRange{From: rune(12352), To: rune(12352)},
+ &ucd.CodePointRange{From: rune(12439), To: rune(12440)},
+ &ucd.CodePointRange{From: rune(12544), To: rune(12548)},
+ &ucd.CodePointRange{From: rune(12592), To: rune(12592)},
+ &ucd.CodePointRange{From: rune(12687), To: rune(12687)},
+ &ucd.CodePointRange{From: rune(12772), To: rune(12783)},
+ &ucd.CodePointRange{From: rune(12831), To: rune(12831)},
+ &ucd.CodePointRange{From: rune(13313), To: rune(19902)},
+ &ucd.CodePointRange{From: rune(19969), To: rune(40955)},
+ &ucd.CodePointRange{From: rune(40957), To: rune(40959)},
+ &ucd.CodePointRange{From: rune(42125), To: rune(42127)},
+ &ucd.CodePointRange{From: rune(42183), To: rune(42191)},
+ &ucd.CodePointRange{From: rune(42540), To: rune(42559)},
+ &ucd.CodePointRange{From: rune(42744), To: rune(42751)},
+ &ucd.CodePointRange{From: rune(42944), To: rune(42945)},
+ &ucd.CodePointRange{From: rune(42955), To: rune(42996)},
+ &ucd.CodePointRange{From: rune(43053), To: rune(43055)},
+ &ucd.CodePointRange{From: rune(43066), To: rune(43071)},
+ &ucd.CodePointRange{From: rune(43128), To: rune(43135)},
+ &ucd.CodePointRange{From: rune(43206), To: rune(43213)},
+ &ucd.CodePointRange{From: rune(43226), To: rune(43231)},
+ &ucd.CodePointRange{From: rune(43348), To: rune(43358)},
+ &ucd.CodePointRange{From: rune(43389), To: rune(43391)},
+ &ucd.CodePointRange{From: rune(43470), To: rune(43470)},
+ &ucd.CodePointRange{From: rune(43482), To: rune(43485)},
+ &ucd.CodePointRange{From: rune(43519), To: rune(43519)},
+ &ucd.CodePointRange{From: rune(43575), To: rune(43583)},
+ &ucd.CodePointRange{From: rune(43598), To: rune(43599)},
+ &ucd.CodePointRange{From: rune(43610), To: rune(43611)},
+ &ucd.CodePointRange{From: rune(43715), To: rune(43738)},
+ &ucd.CodePointRange{From: rune(43767), To: rune(43776)},
+ &ucd.CodePointRange{From: rune(43783), To: rune(43784)},
+ &ucd.CodePointRange{From: rune(43791), To: rune(43792)},
+ &ucd.CodePointRange{From: rune(43799), To: rune(43807)},
+ &ucd.CodePointRange{From: rune(43815), To: rune(43815)},
+ &ucd.CodePointRange{From: rune(43823), To: rune(43823)},
+ &ucd.CodePointRange{From: rune(43884), To: rune(43887)},
+ &ucd.CodePointRange{From: rune(44014), To: rune(44015)},
+ &ucd.CodePointRange{From: rune(44026), To: rune(44031)},
+ &ucd.CodePointRange{From: rune(44033), To: rune(55202)},
+ &ucd.CodePointRange{From: rune(55204), To: rune(55215)},
+ &ucd.CodePointRange{From: rune(55239), To: rune(55242)},
+ &ucd.CodePointRange{From: rune(55292), To: rune(55295)},
+ &ucd.CodePointRange{From: rune(55297), To: rune(56190)},
+ &ucd.CodePointRange{From: rune(56193), To: rune(56318)},
+ &ucd.CodePointRange{From: rune(56321), To: rune(57342)},
+ &ucd.CodePointRange{From: rune(57345), To: rune(63742)},
+ &ucd.CodePointRange{From: rune(64110), To: rune(64111)},
+ &ucd.CodePointRange{From: rune(64218), To: rune(64255)},
+ &ucd.CodePointRange{From: rune(64263), To: rune(64274)},
+ &ucd.CodePointRange{From: rune(64280), To: rune(64284)},
+ &ucd.CodePointRange{From: rune(64311), To: rune(64311)},
+ &ucd.CodePointRange{From: rune(64317), To: rune(64317)},
+ &ucd.CodePointRange{From: rune(64319), To: rune(64319)},
+ &ucd.CodePointRange{From: rune(64322), To: rune(64322)},
+ &ucd.CodePointRange{From: rune(64325), To: rune(64325)},
+ &ucd.CodePointRange{From: rune(64450), To: rune(64466)},
+ &ucd.CodePointRange{From: rune(64832), To: rune(64847)},
+ &ucd.CodePointRange{From: rune(64912), To: rune(64913)},
+ &ucd.CodePointRange{From: rune(64968), To: rune(65007)},
+ &ucd.CodePointRange{From: rune(65022), To: rune(65023)},
+ &ucd.CodePointRange{From: rune(65050), To: rune(65055)},
+ &ucd.CodePointRange{From: rune(65107), To: rune(65107)},
+ &ucd.CodePointRange{From: rune(65127), To: rune(65127)},
+ &ucd.CodePointRange{From: rune(65132), To: rune(65135)},
+ &ucd.CodePointRange{From: rune(65141), To: rune(65141)},
+ &ucd.CodePointRange{From: rune(65277), To: rune(65278)},
+ &ucd.CodePointRange{From: rune(65280), To: rune(65280)},
+ &ucd.CodePointRange{From: rune(65471), To: rune(65473)},
+ &ucd.CodePointRange{From: rune(65480), To: rune(65481)},
+ &ucd.CodePointRange{From: rune(65488), To: rune(65489)},
+ &ucd.CodePointRange{From: rune(65496), To: rune(65497)},
+ &ucd.CodePointRange{From: rune(65501), To: rune(65503)},
+ &ucd.CodePointRange{From: rune(65511), To: rune(65511)},
+ &ucd.CodePointRange{From: rune(65519), To: rune(65528)},
+ &ucd.CodePointRange{From: rune(65534), To: rune(65535)},
+ &ucd.CodePointRange{From: rune(65548), To: rune(65548)},
+ &ucd.CodePointRange{From: rune(65575), To: rune(65575)},
+ &ucd.CodePointRange{From: rune(65595), To: rune(65595)},
+ &ucd.CodePointRange{From: rune(65598), To: rune(65598)},
+ &ucd.CodePointRange{From: rune(65614), To: rune(65615)},
+ &ucd.CodePointRange{From: rune(65630), To: rune(65663)},
+ &ucd.CodePointRange{From: rune(65787), To: rune(65791)},
+ &ucd.CodePointRange{From: rune(65795), To: rune(65798)},
+ &ucd.CodePointRange{From: rune(65844), To: rune(65846)},
+ &ucd.CodePointRange{From: rune(65935), To: rune(65935)},
+ &ucd.CodePointRange{From: rune(65949), To: rune(65951)},
+ &ucd.CodePointRange{From: rune(65953), To: rune(65999)},
+ &ucd.CodePointRange{From: rune(66046), To: rune(66175)},
+ &ucd.CodePointRange{From: rune(66205), To: rune(66207)},
+ &ucd.CodePointRange{From: rune(66257), To: rune(66271)},
+ &ucd.CodePointRange{From: rune(66300), To: rune(66303)},
+ &ucd.CodePointRange{From: rune(66340), To: rune(66348)},
+ &ucd.CodePointRange{From: rune(66379), To: rune(66383)},
+ &ucd.CodePointRange{From: rune(66427), To: rune(66431)},
+ &ucd.CodePointRange{From: rune(66462), To: rune(66462)},
+ &ucd.CodePointRange{From: rune(66500), To: rune(66503)},
+ &ucd.CodePointRange{From: rune(66518), To: rune(66559)},
+ &ucd.CodePointRange{From: rune(66718), To: rune(66719)},
+ &ucd.CodePointRange{From: rune(66730), To: rune(66735)},
+ &ucd.CodePointRange{From: rune(66772), To: rune(66775)},
+ &ucd.CodePointRange{From: rune(66812), To: rune(66815)},
+ &ucd.CodePointRange{From: rune(66856), To: rune(66863)},
+ &ucd.CodePointRange{From: rune(66916), To: rune(66926)},
+ &ucd.CodePointRange{From: rune(66928), To: rune(67071)},
+ &ucd.CodePointRange{From: rune(67383), To: rune(67391)},
+ &ucd.CodePointRange{From: rune(67414), To: rune(67423)},
+ &ucd.CodePointRange{From: rune(67432), To: rune(67583)},
+ &ucd.CodePointRange{From: rune(67590), To: rune(67591)},
+ &ucd.CodePointRange{From: rune(67593), To: rune(67593)},
+ &ucd.CodePointRange{From: rune(67638), To: rune(67638)},
+ &ucd.CodePointRange{From: rune(67641), To: rune(67643)},
+ &ucd.CodePointRange{From: rune(67645), To: rune(67646)},
+ &ucd.CodePointRange{From: rune(67670), To: rune(67670)},
+ &ucd.CodePointRange{From: rune(67743), To: rune(67750)},
+ &ucd.CodePointRange{From: rune(67760), To: rune(67807)},
+ &ucd.CodePointRange{From: rune(67827), To: rune(67827)},
+ &ucd.CodePointRange{From: rune(67830), To: rune(67834)},
+ &ucd.CodePointRange{From: rune(67868), To: rune(67870)},
+ &ucd.CodePointRange{From: rune(67898), To: rune(67902)},
+ &ucd.CodePointRange{From: rune(67904), To: rune(67967)},
+ &ucd.CodePointRange{From: rune(68024), To: rune(68027)},
+ &ucd.CodePointRange{From: rune(68048), To: rune(68049)},
+ &ucd.CodePointRange{From: rune(68100), To: rune(68100)},
+ &ucd.CodePointRange{From: rune(68103), To: rune(68107)},
+ &ucd.CodePointRange{From: rune(68116), To: rune(68116)},
+ &ucd.CodePointRange{From: rune(68120), To: rune(68120)},
+ &ucd.CodePointRange{From: rune(68150), To: rune(68151)},
+ &ucd.CodePointRange{From: rune(68155), To: rune(68158)},
+ &ucd.CodePointRange{From: rune(68169), To: rune(68175)},
+ &ucd.CodePointRange{From: rune(68185), To: rune(68191)},
+ &ucd.CodePointRange{From: rune(68256), To: rune(68287)},
+ &ucd.CodePointRange{From: rune(68327), To: rune(68330)},
+ &ucd.CodePointRange{From: rune(68343), To: rune(68351)},
+ &ucd.CodePointRange{From: rune(68406), To: rune(68408)},
+ &ucd.CodePointRange{From: rune(68438), To: rune(68439)},
+ &ucd.CodePointRange{From: rune(68467), To: rune(68471)},
+ &ucd.CodePointRange{From: rune(68498), To: rune(68504)},
+ &ucd.CodePointRange{From: rune(68509), To: rune(68520)},
+ &ucd.CodePointRange{From: rune(68528), To: rune(68607)},
+ &ucd.CodePointRange{From: rune(68681), To: rune(68735)},
+ &ucd.CodePointRange{From: rune(68787), To: rune(68799)},
+ &ucd.CodePointRange{From: rune(68851), To: rune(68857)},
+ &ucd.CodePointRange{From: rune(68904), To: rune(68911)},
+ &ucd.CodePointRange{From: rune(68922), To: rune(69215)},
+ &ucd.CodePointRange{From: rune(69247), To: rune(69247)},
+ &ucd.CodePointRange{From: rune(69290), To: rune(69290)},
+ &ucd.CodePointRange{From: rune(69294), To: rune(69295)},
+ &ucd.CodePointRange{From: rune(69298), To: rune(69375)},
+ &ucd.CodePointRange{From: rune(69416), To: rune(69423)},
+ &ucd.CodePointRange{From: rune(69466), To: rune(69551)},
+ &ucd.CodePointRange{From: rune(69580), To: rune(69599)},
+ &ucd.CodePointRange{From: rune(69623), To: rune(69631)},
+ &ucd.CodePointRange{From: rune(69710), To: rune(69713)},
+ &ucd.CodePointRange{From: rune(69744), To: rune(69758)},
+ &ucd.CodePointRange{From: rune(69826), To: rune(69836)},
+ &ucd.CodePointRange{From: rune(69838), To: rune(69839)},
+ &ucd.CodePointRange{From: rune(69865), To: rune(69871)},
+ &ucd.CodePointRange{From: rune(69882), To: rune(69887)},
+ &ucd.CodePointRange{From: rune(69941), To: rune(69941)},
+ &ucd.CodePointRange{From: rune(69960), To: rune(69967)},
+ &ucd.CodePointRange{From: rune(70007), To: rune(70015)},
+ &ucd.CodePointRange{From: rune(70112), To: rune(70112)},
+ &ucd.CodePointRange{From: rune(70133), To: rune(70143)},
+ &ucd.CodePointRange{From: rune(70162), To: rune(70162)},
+ &ucd.CodePointRange{From: rune(70207), To: rune(70271)},
+ &ucd.CodePointRange{From: rune(70279), To: rune(70279)},
+ &ucd.CodePointRange{From: rune(70281), To: rune(70281)},
+ &ucd.CodePointRange{From: rune(70286), To: rune(70286)},
+ &ucd.CodePointRange{From: rune(70302), To: rune(70302)},
+ &ucd.CodePointRange{From: rune(70314), To: rune(70319)},
+ &ucd.CodePointRange{From: rune(70379), To: rune(70383)},
+ &ucd.CodePointRange{From: rune(70394), To: rune(70399)},
+ &ucd.CodePointRange{From: rune(70404), To: rune(70404)},
+ &ucd.CodePointRange{From: rune(70413), To: rune(70414)},
+ &ucd.CodePointRange{From: rune(70417), To: rune(70418)},
+ &ucd.CodePointRange{From: rune(70441), To: rune(70441)},
+ &ucd.CodePointRange{From: rune(70449), To: rune(70449)},
+ &ucd.CodePointRange{From: rune(70452), To: rune(70452)},
+ &ucd.CodePointRange{From: rune(70458), To: rune(70458)},
+ &ucd.CodePointRange{From: rune(70469), To: rune(70470)},
+ &ucd.CodePointRange{From: rune(70473), To: rune(70474)},
+ &ucd.CodePointRange{From: rune(70478), To: rune(70479)},
+ &ucd.CodePointRange{From: rune(70481), To: rune(70486)},
+ &ucd.CodePointRange{From: rune(70488), To: rune(70492)},
+ &ucd.CodePointRange{From: rune(70500), To: rune(70501)},
+ &ucd.CodePointRange{From: rune(70509), To: rune(70511)},
+ &ucd.CodePointRange{From: rune(70517), To: rune(70655)},
+ &ucd.CodePointRange{From: rune(70748), To: rune(70748)},
+ &ucd.CodePointRange{From: rune(70754), To: rune(70783)},
+ &ucd.CodePointRange{From: rune(70856), To: rune(70863)},
+ &ucd.CodePointRange{From: rune(70874), To: rune(71039)},
+ &ucd.CodePointRange{From: rune(71094), To: rune(71095)},
+ &ucd.CodePointRange{From: rune(71134), To: rune(71167)},
+ &ucd.CodePointRange{From: rune(71237), To: rune(71247)},
+ &ucd.CodePointRange{From: rune(71258), To: rune(71263)},
+ &ucd.CodePointRange{From: rune(71277), To: rune(71295)},
+ &ucd.CodePointRange{From: rune(71353), To: rune(71359)},
+ &ucd.CodePointRange{From: rune(71370), To: rune(71423)},
+ &ucd.CodePointRange{From: rune(71451), To: rune(71452)},
+ &ucd.CodePointRange{From: rune(71468), To: rune(71471)},
+ &ucd.CodePointRange{From: rune(71488), To: rune(71679)},
+ &ucd.CodePointRange{From: rune(71740), To: rune(71839)},
+ &ucd.CodePointRange{From: rune(71923), To: rune(71934)},
+ &ucd.CodePointRange{From: rune(71943), To: rune(71944)},
+ &ucd.CodePointRange{From: rune(71946), To: rune(71947)},
+ &ucd.CodePointRange{From: rune(71956), To: rune(71956)},
+ &ucd.CodePointRange{From: rune(71959), To: rune(71959)},
+ &ucd.CodePointRange{From: rune(71990), To: rune(71990)},
+ &ucd.CodePointRange{From: rune(71993), To: rune(71994)},
+ &ucd.CodePointRange{From: rune(72007), To: rune(72015)},
+ &ucd.CodePointRange{From: rune(72026), To: rune(72095)},
+ &ucd.CodePointRange{From: rune(72104), To: rune(72105)},
+ &ucd.CodePointRange{From: rune(72152), To: rune(72153)},
+ &ucd.CodePointRange{From: rune(72165), To: rune(72191)},
+ &ucd.CodePointRange{From: rune(72264), To: rune(72271)},
+ &ucd.CodePointRange{From: rune(72355), To: rune(72383)},
+ &ucd.CodePointRange{From: rune(72441), To: rune(72703)},
+ &ucd.CodePointRange{From: rune(72713), To: rune(72713)},
+ &ucd.CodePointRange{From: rune(72759), To: rune(72759)},
+ &ucd.CodePointRange{From: rune(72774), To: rune(72783)},
+ &ucd.CodePointRange{From: rune(72813), To: rune(72815)},
+ &ucd.CodePointRange{From: rune(72848), To: rune(72849)},
+ &ucd.CodePointRange{From: rune(72872), To: rune(72872)},
+ &ucd.CodePointRange{From: rune(72887), To: rune(72959)},
+ &ucd.CodePointRange{From: rune(72967), To: rune(72967)},
+ &ucd.CodePointRange{From: rune(72970), To: rune(72970)},
+ &ucd.CodePointRange{From: rune(73015), To: rune(73017)},
+ &ucd.CodePointRange{From: rune(73019), To: rune(73019)},
+ &ucd.CodePointRange{From: rune(73022), To: rune(73022)},
+ &ucd.CodePointRange{From: rune(73032), To: rune(73039)},
+ &ucd.CodePointRange{From: rune(73050), To: rune(73055)},
+ &ucd.CodePointRange{From: rune(73062), To: rune(73062)},
+ &ucd.CodePointRange{From: rune(73065), To: rune(73065)},
+ &ucd.CodePointRange{From: rune(73103), To: rune(73103)},
+ &ucd.CodePointRange{From: rune(73106), To: rune(73106)},
+ &ucd.CodePointRange{From: rune(73113), To: rune(73119)},
+ &ucd.CodePointRange{From: rune(73130), To: rune(73439)},
+ &ucd.CodePointRange{From: rune(73465), To: rune(73647)},
+ &ucd.CodePointRange{From: rune(73649), To: rune(73663)},
+ &ucd.CodePointRange{From: rune(73714), To: rune(73726)},
+ &ucd.CodePointRange{From: rune(74650), To: rune(74751)},
+ &ucd.CodePointRange{From: rune(74863), To: rune(74863)},
+ &ucd.CodePointRange{From: rune(74869), To: rune(74879)},
+ &ucd.CodePointRange{From: rune(75076), To: rune(77823)},
+ &ucd.CodePointRange{From: rune(78895), To: rune(78895)},
+ &ucd.CodePointRange{From: rune(78905), To: rune(82943)},
+ &ucd.CodePointRange{From: rune(83527), To: rune(92159)},
+ &ucd.CodePointRange{From: rune(92729), To: rune(92735)},
+ &ucd.CodePointRange{From: rune(92767), To: rune(92767)},
+ &ucd.CodePointRange{From: rune(92778), To: rune(92781)},
+ &ucd.CodePointRange{From: rune(92784), To: rune(92879)},
+ &ucd.CodePointRange{From: rune(92910), To: rune(92911)},
+ &ucd.CodePointRange{From: rune(92918), To: rune(92927)},
+ &ucd.CodePointRange{From: rune(92998), To: rune(93007)},
+ &ucd.CodePointRange{From: rune(93018), To: rune(93018)},
+ &ucd.CodePointRange{From: rune(93026), To: rune(93026)},
+ &ucd.CodePointRange{From: rune(93048), To: rune(93052)},
+ &ucd.CodePointRange{From: rune(93072), To: rune(93759)},
+ &ucd.CodePointRange{From: rune(93851), To: rune(93951)},
+ &ucd.CodePointRange{From: rune(94027), To: rune(94030)},
+ &ucd.CodePointRange{From: rune(94088), To: rune(94094)},
+ &ucd.CodePointRange{From: rune(94112), To: rune(94175)},
+ &ucd.CodePointRange{From: rune(94181), To: rune(94191)},
+ &ucd.CodePointRange{From: rune(94194), To: rune(94207)},
+ &ucd.CodePointRange{From: rune(94209), To: rune(100342)},
+ &ucd.CodePointRange{From: rune(100344), To: rune(100351)},
+ &ucd.CodePointRange{From: rune(101590), To: rune(101631)},
+ &ucd.CodePointRange{From: rune(101633), To: rune(101639)},
+ &ucd.CodePointRange{From: rune(101641), To: rune(110591)},
+ &ucd.CodePointRange{From: rune(110879), To: rune(110927)},
+ &ucd.CodePointRange{From: rune(110931), To: rune(110947)},
+ &ucd.CodePointRange{From: rune(110952), To: rune(110959)},
+ &ucd.CodePointRange{From: rune(111356), To: rune(113663)},
+ &ucd.CodePointRange{From: rune(113771), To: rune(113775)},
+ &ucd.CodePointRange{From: rune(113789), To: rune(113791)},
+ &ucd.CodePointRange{From: rune(113801), To: rune(113807)},
+ &ucd.CodePointRange{From: rune(113818), To: rune(113819)},
+ &ucd.CodePointRange{From: rune(113828), To: rune(118783)},
+ &ucd.CodePointRange{From: rune(119030), To: rune(119039)},
+ &ucd.CodePointRange{From: rune(119079), To: rune(119080)},
+ &ucd.CodePointRange{From: rune(119273), To: rune(119295)},
+ &ucd.CodePointRange{From: rune(119366), To: rune(119519)},
+ &ucd.CodePointRange{From: rune(119540), To: rune(119551)},
+ &ucd.CodePointRange{From: rune(119639), To: rune(119647)},
+ &ucd.CodePointRange{From: rune(119673), To: rune(119807)},
+ &ucd.CodePointRange{From: rune(119893), To: rune(119893)},
+ &ucd.CodePointRange{From: rune(119965), To: rune(119965)},
+ &ucd.CodePointRange{From: rune(119968), To: rune(119969)},
+ &ucd.CodePointRange{From: rune(119971), To: rune(119972)},
+ &ucd.CodePointRange{From: rune(119975), To: rune(119976)},
+ &ucd.CodePointRange{From: rune(119981), To: rune(119981)},
+ &ucd.CodePointRange{From: rune(119994), To: rune(119994)},
+ &ucd.CodePointRange{From: rune(119996), To: rune(119996)},
+ &ucd.CodePointRange{From: rune(120004), To: rune(120004)},
+ &ucd.CodePointRange{From: rune(120070), To: rune(120070)},
+ &ucd.CodePointRange{From: rune(120075), To: rune(120076)},
+ &ucd.CodePointRange{From: rune(120085), To: rune(120085)},
+ &ucd.CodePointRange{From: rune(120093), To: rune(120093)},
+ &ucd.CodePointRange{From: rune(120122), To: rune(120122)},
+ &ucd.CodePointRange{From: rune(120127), To: rune(120127)},
+ &ucd.CodePointRange{From: rune(120133), To: rune(120133)},
+ &ucd.CodePointRange{From: rune(120135), To: rune(120137)},
+ &ucd.CodePointRange{From: rune(120145), To: rune(120145)},
+ &ucd.CodePointRange{From: rune(120486), To: rune(120487)},
+ &ucd.CodePointRange{From: rune(120780), To: rune(120781)},
+ &ucd.CodePointRange{From: rune(121484), To: rune(121498)},
+ &ucd.CodePointRange{From: rune(121504), To: rune(121504)},
+ &ucd.CodePointRange{From: rune(121520), To: rune(122879)},
+ &ucd.CodePointRange{From: rune(122887), To: rune(122887)},
+ &ucd.CodePointRange{From: rune(122905), To: rune(122906)},
+ &ucd.CodePointRange{From: rune(122914), To: rune(122914)},
+ &ucd.CodePointRange{From: rune(122917), To: rune(122917)},
+ &ucd.CodePointRange{From: rune(122923), To: rune(123135)},
+ &ucd.CodePointRange{From: rune(123181), To: rune(123183)},
+ &ucd.CodePointRange{From: rune(123198), To: rune(123199)},
+ &ucd.CodePointRange{From: rune(123210), To: rune(123213)},
+ &ucd.CodePointRange{From: rune(123216), To: rune(123583)},
+ &ucd.CodePointRange{From: rune(123642), To: rune(123646)},
+ &ucd.CodePointRange{From: rune(123648), To: rune(124927)},
+ &ucd.CodePointRange{From: rune(125125), To: rune(125126)},
+ &ucd.CodePointRange{From: rune(125143), To: rune(125183)},
+ &ucd.CodePointRange{From: rune(125260), To: rune(125263)},
+ &ucd.CodePointRange{From: rune(125274), To: rune(125277)},
+ &ucd.CodePointRange{From: rune(125280), To: rune(126064)},
+ &ucd.CodePointRange{From: rune(126133), To: rune(126208)},
+ &ucd.CodePointRange{From: rune(126270), To: rune(126463)},
+ &ucd.CodePointRange{From: rune(126468), To: rune(126468)},
+ &ucd.CodePointRange{From: rune(126496), To: rune(126496)},
+ &ucd.CodePointRange{From: rune(126499), To: rune(126499)},
+ &ucd.CodePointRange{From: rune(126501), To: rune(126502)},
+ &ucd.CodePointRange{From: rune(126504), To: rune(126504)},
+ &ucd.CodePointRange{From: rune(126515), To: rune(126515)},
+ &ucd.CodePointRange{From: rune(126520), To: rune(126520)},
+ &ucd.CodePointRange{From: rune(126522), To: rune(126522)},
+ &ucd.CodePointRange{From: rune(126524), To: rune(126529)},
+ &ucd.CodePointRange{From: rune(126531), To: rune(126534)},
+ &ucd.CodePointRange{From: rune(126536), To: rune(126536)},
+ &ucd.CodePointRange{From: rune(126538), To: rune(126538)},
+ &ucd.CodePointRange{From: rune(126540), To: rune(126540)},
+ &ucd.CodePointRange{From: rune(126544), To: rune(126544)},
+ &ucd.CodePointRange{From: rune(126547), To: rune(126547)},
+ &ucd.CodePointRange{From: rune(126549), To: rune(126550)},
+ &ucd.CodePointRange{From: rune(126552), To: rune(126552)},
+ &ucd.CodePointRange{From: rune(126554), To: rune(126554)},
+ &ucd.CodePointRange{From: rune(126556), To: rune(126556)},
+ &ucd.CodePointRange{From: rune(126558), To: rune(126558)},
+ &ucd.CodePointRange{From: rune(126560), To: rune(126560)},
+ &ucd.CodePointRange{From: rune(126563), To: rune(126563)},
+ &ucd.CodePointRange{From: rune(126565), To: rune(126566)},
+ &ucd.CodePointRange{From: rune(126571), To: rune(126571)},
+ &ucd.CodePointRange{From: rune(126579), To: rune(126579)},
+ &ucd.CodePointRange{From: rune(126584), To: rune(126584)},
+ &ucd.CodePointRange{From: rune(126589), To: rune(126589)},
+ &ucd.CodePointRange{From: rune(126591), To: rune(126591)},
+ &ucd.CodePointRange{From: rune(126602), To: rune(126602)},
+ &ucd.CodePointRange{From: rune(126620), To: rune(126624)},
+ &ucd.CodePointRange{From: rune(126628), To: rune(126628)},
+ &ucd.CodePointRange{From: rune(126634), To: rune(126634)},
+ &ucd.CodePointRange{From: rune(126652), To: rune(126703)},
+ &ucd.CodePointRange{From: rune(126706), To: rune(126975)},
+ &ucd.CodePointRange{From: rune(127020), To: rune(127023)},
+ &ucd.CodePointRange{From: rune(127124), To: rune(127135)},
+ &ucd.CodePointRange{From: rune(127151), To: rune(127152)},
+ &ucd.CodePointRange{From: rune(127168), To: rune(127168)},
+ &ucd.CodePointRange{From: rune(127184), To: rune(127184)},
+ &ucd.CodePointRange{From: rune(127222), To: rune(127231)},
+ &ucd.CodePointRange{From: rune(127406), To: rune(127461)},
+ &ucd.CodePointRange{From: rune(127491), To: rune(127503)},
+ &ucd.CodePointRange{From: rune(127548), To: rune(127551)},
+ &ucd.CodePointRange{From: rune(127561), To: rune(127567)},
+ &ucd.CodePointRange{From: rune(127570), To: rune(127583)},
+ &ucd.CodePointRange{From: rune(127590), To: rune(127743)},
+ &ucd.CodePointRange{From: rune(128728), To: rune(128735)},
+ &ucd.CodePointRange{From: rune(128749), To: rune(128751)},
+ &ucd.CodePointRange{From: rune(128765), To: rune(128767)},
+ &ucd.CodePointRange{From: rune(128884), To: rune(128895)},
+ &ucd.CodePointRange{From: rune(128985), To: rune(128991)},
+ &ucd.CodePointRange{From: rune(129004), To: rune(129023)},
+ &ucd.CodePointRange{From: rune(129036), To: rune(129039)},
+ &ucd.CodePointRange{From: rune(129096), To: rune(129103)},
+ &ucd.CodePointRange{From: rune(129114), To: rune(129119)},
+ &ucd.CodePointRange{From: rune(129160), To: rune(129167)},
+ &ucd.CodePointRange{From: rune(129198), To: rune(129199)},
+ &ucd.CodePointRange{From: rune(129202), To: rune(129279)},
+ &ucd.CodePointRange{From: rune(129401), To: rune(129401)},
+ &ucd.CodePointRange{From: rune(129484), To: rune(129484)},
+ &ucd.CodePointRange{From: rune(129620), To: rune(129631)},
+ &ucd.CodePointRange{From: rune(129646), To: rune(129647)},
+ &ucd.CodePointRange{From: rune(129653), To: rune(129655)},
+ &ucd.CodePointRange{From: rune(129659), To: rune(129663)},
+ &ucd.CodePointRange{From: rune(129671), To: rune(129679)},
+ &ucd.CodePointRange{From: rune(129705), To: rune(129711)},
+ &ucd.CodePointRange{From: rune(129719), To: rune(129727)},
+ &ucd.CodePointRange{From: rune(129731), To: rune(129743)},
+ &ucd.CodePointRange{From: rune(129751), To: rune(129791)},
+ &ucd.CodePointRange{From: rune(129939), To: rune(129939)},
+ &ucd.CodePointRange{From: rune(129995), To: rune(130031)},
+ &ucd.CodePointRange{From: rune(130042), To: rune(131071)},
+ &ucd.CodePointRange{From: rune(131073), To: rune(173788)},
+ &ucd.CodePointRange{From: rune(173790), To: rune(173823)},
+ &ucd.CodePointRange{From: rune(173825), To: rune(177971)},
+ &ucd.CodePointRange{From: rune(177973), To: rune(177983)},
+ &ucd.CodePointRange{From: rune(177985), To: rune(178204)},
+ &ucd.CodePointRange{From: rune(178206), To: rune(178207)},
+ &ucd.CodePointRange{From: rune(178209), To: rune(183968)},
+ &ucd.CodePointRange{From: rune(183970), To: rune(183983)},
+ &ucd.CodePointRange{From: rune(183985), To: rune(191455)},
+ &ucd.CodePointRange{From: rune(191457), To: rune(194559)},
+ &ucd.CodePointRange{From: rune(195102), To: rune(196607)},
+ &ucd.CodePointRange{From: rune(196609), To: rune(201545)},
+ &ucd.CodePointRange{From: rune(201547), To: rune(917504)},
+ &ucd.CodePointRange{From: rune(917506), To: rune(917535)},
+ &ucd.CodePointRange{From: rune(917632), To: rune(917759)},
+ &ucd.CodePointRange{From: rune(918000), To: rune(983039)},
+ &ucd.CodePointRange{From: rune(983041), To: rune(1048572)},
+ &ucd.CodePointRange{From: rune(1048574), To: rune(1048575)},
+ &ucd.CodePointRange{From: rune(1048577), To: rune(1114108)},
+ &ucd.CodePointRange{From: rune(1114110), To: rune(1114111)},
+ },
+ "zl": {
+ &ucd.CodePointRange{From: rune(8232), To: rune(8232)},
+ },
+ "zp": {
+ &ucd.CodePointRange{From: rune(8233), To: rune(8233)},
+ },
+ "zs": {
+ &ucd.CodePointRange{From: rune(32), To: rune(32)},
+ &ucd.CodePointRange{From: rune(160), To: rune(160)},
+ &ucd.CodePointRange{From: rune(5760), To: rune(5760)},
+ &ucd.CodePointRange{From: rune(8192), To: rune(8202)},
+ &ucd.CodePointRange{From: rune(8239), To: rune(8239)},
+ &ucd.CodePointRange{From: rune(8287), To: rune(8287)},
+ &ucd.CodePointRange{From: rune(12288), To: rune(12288)},
+ },
+}
diff --git a/compiler/ucd_table.go.tmpl b/compiler/ucd_table.go.tmpl
new file mode 100644
index 0000000..a364191
--- /dev/null
+++ b/compiler/ucd_table.go.tmpl
@@ -0,0 +1,43 @@
+// Code generated by {{ .GeneratorName }}; DO NOT EDIT.
+
+package compiler
+
+import "github.com/nihei9/maleeni/ucd"
+
+// https://www.unicode.org/reports/tr44/#GC_Values_Table
+var compositGeneralCategories = map[string][]string{
+ // Cased_Letter
+ "lc": {"lu", "ll", "lt"},
+ // Letter
+ "l": {"lu", "ll", "lt", "lm", "lo"},
+ // Mark
+ "m": {"mm", "mc", "me"},
+ // Number
+ "n": {"nd", "nl", "no"},
+ // Punctuation
+ "p": {"pc", "pd", "ps", "pi", "pe", "pf", "po"},
+ // Symbol
+ "s": {"sm", "sc", "sk", "so"},
+ // Separator
+ "z": {"zs", "zl", "zp"},
+ // Other
+ "c": {"cc", "cf", "cs", "co", "cn"},
+}
+
+// https://www.unicode.org/Public/13.0.0/ucd/PropertyAliases.txt
+var propertyNameAbbs = map[string]string{
+ "generalcategory": "gc",
+ "gc": "gc",
+}
+
+// https://www.unicode.org/Public/13.0.0/ucd/PropertyValueAliases.txt
+var generalCategoryValueAbbs = map[string]string{ {{ range $long, $abb := .PropertyValueAliases.GeneralCategory }}
+ "{{ $long }}": "{{ $abb }}",{{ end }}
+}
+
+// https://www.unicode.org/Public/13.0.0/ucd/UnicodeData.txt
+var generalCategoryCodePoints = map[string][]*ucd.CodePointRange{ {{ range $propName, $codePoints := .UnicodeData.GeneralCategory }}
+ "{{ $propName }}": { {{ range $codePoints }}
+ &ucd.CodePointRange{From: rune({{ .From }}), To: rune({{ .To }})},{{ end }}
+ },{{ end }}
+}
diff --git a/generator/main.go b/generator/main.go
new file mode 100644
index 0000000..3edcef5
--- /dev/null
+++ b/generator/main.go
@@ -0,0 +1,70 @@
+package main
+
+import (
+ "fmt"
+ "net/http"
+ "os"
+ "strings"
+ "text/template"
+
+ "github.com/nihei9/maleeni/ucd"
+)
+
+func main() {
+ err := gen()
+ if err != nil {
+ fmt.Fprintf(os.Stderr, "%v\n", err)
+ os.Exit(1)
+ }
+}
+
+func gen() error {
+ var propValAliases *ucd.PropertyValueAliases
+ {
+ resp, err := http.Get("https://www.unicode.org/Public/13.0.0/ucd/PropertyValueAliases.txt")
+ if err != nil {
+ return err
+ }
+ defer resp.Body.Close()
+ propValAliases, err = ucd.ParsePropertyValueAliases(resp.Body)
+ if err != nil {
+ return err
+ }
+ }
+ var unicodeData *ucd.UnicodeData
+ {
+ resp, err := http.Get("https://www.unicode.org/Public/13.0.0/ucd/UnicodeData.txt")
+ if err != nil {
+ return err
+ }
+ defer resp.Body.Close()
+ unicodeData, err = ucd.ParseUnicodeData(resp.Body, propValAliases)
+ if err != nil {
+ return err
+ }
+ }
+ tmpl, err := template.ParseFiles("../compiler/ucd_table.go.tmpl")
+ if err != nil {
+ return err
+ }
+ var b strings.Builder
+ err = tmpl.Execute(&b, struct {
+ GeneratorName string
+ UnicodeData *ucd.UnicodeData
+ PropertyValueAliases *ucd.PropertyValueAliases
+ }{
+ GeneratorName: "generator/main.go",
+ UnicodeData: unicodeData,
+ PropertyValueAliases: propValAliases,
+ })
+ if err != nil {
+ return err
+ }
+ f, err := os.OpenFile("../compiler/ucd_table.go", os.O_CREATE|os.O_TRUNC|os.O_WRONLY, 0644)
+ if err != nil {
+ return err
+ }
+ defer f.Close()
+ fmt.Fprintf(f, b.String())
+ return nil
+}
diff --git a/ucd/parser.go b/ucd/parser.go
new file mode 100644
index 0000000..9476a2f
--- /dev/null
+++ b/ucd/parser.go
@@ -0,0 +1,238 @@
+package ucd
+
+import (
+ "bufio"
+ "encoding/binary"
+ "encoding/hex"
+ "io"
+ "regexp"
+ "strings"
+)
+
+type CodePointRange struct {
+ From rune
+ To rune
+}
+
+type UnicodeData struct {
+ GeneralCategory map[string][]*CodePointRange
+}
+
+func ParseUnicodeData(r io.Reader, propValAliases *PropertyValueAliases) (*UnicodeData, error) {
+ gc2CPRange := map[string][]*CodePointRange{}
+ lastCPTo := rune(-1)
+ p := newParser(r)
+ for p.parse() {
+ if len(p.fields) == 0 {
+ continue
+ }
+ cpFrom, cpTo, err := parseCodePointRange(p.fields[0])
+ if err != nil {
+ return nil, err
+ }
+ if cpFrom-lastCPTo > 1 {
+ defaultGCVal := propValAliases.GeneralCategoryDefaultValue
+ gc2CPRange[defaultGCVal] = append(gc2CPRange[defaultGCVal], &CodePointRange{
+ From: lastCPTo + 1,
+ To: cpFrom - 1,
+ })
+ }
+ lastCPTo = cpTo
+ gc := NormalizeSymbolicValue(p.fields[2])
+ rs, ok := gc2CPRange[gc]
+ if ok {
+ r := rs[len(rs)-1]
+ if cpFrom-r.To == 1 {
+ r.To = cpTo
+ } else {
+ gc2CPRange[gc] = append(rs, &CodePointRange{
+ From: cpFrom,
+ To: cpTo,
+ })
+ }
+ } else {
+ gc2CPRange[gc] = []*CodePointRange{
+ {
+ From: cpFrom,
+ To: cpTo,
+ },
+ }
+ }
+ }
+ if p.err != nil {
+ return nil, p.err
+ }
+ if lastCPTo < propValAliases.GeneralCategoryDefaultRange.To {
+ defaultGCVal := propValAliases.GeneralCategoryDefaultValue
+ gc2CPRange[defaultGCVal] = append(gc2CPRange[defaultGCVal], &CodePointRange{
+ From: lastCPTo + 1,
+ To: propValAliases.GeneralCategoryDefaultRange.To,
+ })
+ }
+ return &UnicodeData{
+ GeneralCategory: gc2CPRange,
+ }, nil
+}
+
+type PropertyValueAliases struct {
+ GeneralCategory map[string]string
+ GeneralCategoryDefaultRange *CodePointRange
+ GeneralCategoryDefaultValue string
+}
+
+func ParsePropertyValueAliases(r io.Reader) (*PropertyValueAliases, error) {
+ catName2Abbs := map[string]string{}
+ var defaultGCCPRange *CodePointRange
+ var defaultGCVal string
+ p := newParser(r)
+ for p.parse() {
+ if len(p.fields) > 0 && p.fields[0] == "gc" {
+ catNameShort := NormalizeSymbolicValue(p.fields[1])
+ catNameLong := NormalizeSymbolicValue(p.fields[2])
+ catName2Abbs[catNameShort] = catNameShort
+ catName2Abbs[catNameLong] = catNameShort
+ for _, f := range p.fields[3:] {
+ catNameOther := NormalizeSymbolicValue(f)
+ catName2Abbs[catNameOther] = catNameShort
+ }
+ }
+ if len(p.defaultFields) > 0 && p.defaultFields[1] == "General_Category" {
+ cpFrom, cpTo, err := parseCodePointRange(p.defaultFields[0])
+ if err != nil {
+ return nil, err
+ }
+ defaultGCCPRange = &CodePointRange{
+ From: cpFrom,
+ To: cpTo,
+ }
+ defaultGCVal = NormalizeSymbolicValue(p.defaultFields[2])
+ }
+ }
+ if p.err != nil {
+ return nil, p.err
+ }
+ return &PropertyValueAliases{
+ GeneralCategory: catName2Abbs,
+ GeneralCategoryDefaultRange: defaultGCCPRange,
+ GeneralCategoryDefaultValue: defaultGCVal,
+ }, nil
+}
+
+var symValReplacer = strings.NewReplacer("_", "", "-", "", "\x20", "")
+
+func NormalizeSymbolicValue(original string) string {
+ strings.Trim("", "")
+ v := strings.ToLower(symValReplacer.Replace(original))
+ if strings.HasPrefix(v, "is") && v != "is" {
+ return v[3:]
+ }
+ return v
+}
+
+type Fields []string
+
+var (
+ reLine = regexp.MustCompile(`^\s*(.*?)\s*(#.*)?$`)
+ reCodePointRange = regexp.MustCompile(`^([[:xdigit:]]+)(?:..([[:xdigit:]]+))?$`)
+
+ specialCommentPrefix = "# @missing:"
+)
+
+// This parser can parse data files of Unicode Character Database (UCD).
+// Specifically, it has the following two functions:
+// - Converts each line of the data files into a slice of fields.
+// - Recognizes specially-formatted comments starting `@missing` and generates a slice of fields.
+//
+// However, for practical purposes, each field needs to be analyzed more specifically.
+// For instance, in UnicodeData.txt, the first field represents a range of code points,
+// so it needs to be recognized as a hexadecimal string.
+// You can perform more specific parsing for each file by implementing a dedicated parser that wraps this parser.
+//
+// https://www.unicode.org/reports/tr44/#Format_Conventions
+type parser struct {
+ scanner *bufio.Scanner
+ fields Fields
+ defaultFields Fields
+ err error
+}
+
+func newParser(r io.Reader) *parser {
+ return &parser{
+ scanner: bufio.NewScanner(r),
+ }
+}
+
+func (p *parser) parse() bool {
+ for p.scanner.Scan() {
+ p.fields, p.defaultFields, p.err = parseRecord(p.scanner.Text())
+ if p.err != nil {
+ return false
+ }
+ if p.fields != nil || p.defaultFields != nil {
+ return true
+ }
+ }
+ p.err = p.scanner.Err()
+ return false
+}
+
+func parseRecord(src string) (Fields, Fields, error) {
+ ms := reLine.FindStringSubmatch(src)
+ fields := ms[1]
+ comment := ms[2]
+ var fs Fields
+ if fields != "" {
+ fs = parseFields(fields)
+ }
+ var defaultFs Fields
+ if strings.HasPrefix(comment, specialCommentPrefix) {
+ fields := strings.Replace(comment, specialCommentPrefix, "", -1)
+ fs := parseFields(fields)
+ defaultFs = fs
+ }
+ return fs, defaultFs, nil
+}
+
+func parseFields(src string) Fields {
+ var fields Fields
+ for _, f := range strings.Split(src, ";") {
+ fields = append(fields, strings.TrimSpace(f))
+ }
+ return fields
+}
+
+func parseCodePointRange(src string) (rune, rune, error) {
+ var from, to rune
+ var err error
+ cp := reCodePointRange.FindStringSubmatch(src)
+ from, err = decodeHexToRune(cp[1])
+ if err != nil {
+ return 0, 0, err
+ }
+ if cp[2] != "" {
+ to, err = decodeHexToRune(cp[2])
+ if err != nil {
+ return 0, 0, err
+ }
+ } else {
+ to = from
+ }
+ return from, to, nil
+}
+
+func decodeHexToRune(hexCodePoint string) (rune, error) {
+ h := hexCodePoint
+ if len(h)%2 != 0 {
+ h = "0" + h
+ }
+ b, err := hex.DecodeString(h)
+ if err != nil {
+ return 0, err
+ }
+ l := len(b)
+ for i := 0; i < 4-l; i++ {
+ b = append([]byte{0}, b...)
+ }
+ n := binary.BigEndian.Uint32(b)
+ return rune(n), nil
+}