mirror of
https://github.com/golang/go
synced 2024-11-22 05:34:39 -07:00
exp/norm: a few minor changes in prepration for a table format change:
- Unified bounary conditions for NFC and NFD and removed some indirections. This enforces boundaries at the character level, which is typically what the user expects. (NFD allows a boundary between 'a' and '`', for example, which may give unexpected results for collation. The current implementation is already stricter than the standard, so nothing much changes. This change just formalizes it. - Moved methods of qcflags to runeInfo. - Swapped YesC and YesMaybe bits in qcFlags. This is to aid future changes. - runeInfo return values use named fields in preperation for struct change. - Replaced some left-over uint32s with rune. R=r CC=golang-dev https://golang.org/cl/5607050
This commit is contained in:
parent
d673c95d6c
commit
8ba20dbdb5
@ -98,10 +98,10 @@ func (rb *reorderBuffer) insertOrdered(info runeInfo) bool {
|
|||||||
func (rb *reorderBuffer) insert(src input, i int, info runeInfo) bool {
|
func (rb *reorderBuffer) insert(src input, i int, info runeInfo) bool {
|
||||||
if info.size == 3 {
|
if info.size == 3 {
|
||||||
if rune := src.hangul(i); rune != 0 {
|
if rune := src.hangul(i); rune != 0 {
|
||||||
return rb.decomposeHangul(uint32(rune))
|
return rb.decomposeHangul(rune)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if info.flags.hasDecomposition() {
|
if info.hasDecomposition() {
|
||||||
dcomp := rb.f.decompose(src, i)
|
dcomp := rb.f.decompose(src, i)
|
||||||
rb.tmpBytes = inputBytes(dcomp)
|
rb.tmpBytes = inputBytes(dcomp)
|
||||||
for i := 0; i < len(dcomp); {
|
for i := 0; i < len(dcomp); {
|
||||||
@ -126,26 +126,26 @@ func (rb *reorderBuffer) insert(src input, i int, info runeInfo) bool {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// appendRune inserts a rune at the end of the buffer. It is used for Hangul.
|
// appendRune inserts a rune at the end of the buffer. It is used for Hangul.
|
||||||
func (rb *reorderBuffer) appendRune(r uint32) {
|
func (rb *reorderBuffer) appendRune(r rune) {
|
||||||
bn := rb.nbyte
|
bn := rb.nbyte
|
||||||
sz := utf8.EncodeRune(rb.byte[bn:], rune(r))
|
sz := utf8.EncodeRune(rb.byte[bn:], rune(r))
|
||||||
rb.nbyte += utf8.UTFMax
|
rb.nbyte += utf8.UTFMax
|
||||||
rb.rune[rb.nrune] = runeInfo{bn, uint8(sz), 0, 0}
|
rb.rune[rb.nrune] = runeInfo{pos: bn, size: uint8(sz)}
|
||||||
rb.nrune++
|
rb.nrune++
|
||||||
}
|
}
|
||||||
|
|
||||||
// assignRune sets a rune at position pos. It is used for Hangul and recomposition.
|
// assignRune sets a rune at position pos. It is used for Hangul and recomposition.
|
||||||
func (rb *reorderBuffer) assignRune(pos int, r uint32) {
|
func (rb *reorderBuffer) assignRune(pos int, r rune) {
|
||||||
bn := rb.rune[pos].pos
|
bn := rb.rune[pos].pos
|
||||||
sz := utf8.EncodeRune(rb.byte[bn:], rune(r))
|
sz := utf8.EncodeRune(rb.byte[bn:], rune(r))
|
||||||
rb.rune[pos] = runeInfo{bn, uint8(sz), 0, 0}
|
rb.rune[pos] = runeInfo{pos: bn, size: uint8(sz)}
|
||||||
}
|
}
|
||||||
|
|
||||||
// runeAt returns the rune at position n. It is used for Hangul and recomposition.
|
// runeAt returns the rune at position n. It is used for Hangul and recomposition.
|
||||||
func (rb *reorderBuffer) runeAt(n int) uint32 {
|
func (rb *reorderBuffer) runeAt(n int) rune {
|
||||||
inf := rb.rune[n]
|
inf := rb.rune[n]
|
||||||
r, _ := utf8.DecodeRune(rb.byte[inf.pos : inf.pos+inf.size])
|
r, _ := utf8.DecodeRune(rb.byte[inf.pos : inf.pos+inf.size])
|
||||||
return uint32(r)
|
return r
|
||||||
}
|
}
|
||||||
|
|
||||||
// bytesAt returns the UTF-8 encoding of the rune at position n.
|
// bytesAt returns the UTF-8 encoding of the rune at position n.
|
||||||
@ -237,7 +237,7 @@ func isHangulWithoutJamoT(b []byte) bool {
|
|||||||
// decomposeHangul algorithmically decomposes a Hangul rune into
|
// decomposeHangul algorithmically decomposes a Hangul rune into
|
||||||
// its Jamo components.
|
// its Jamo components.
|
||||||
// See http://unicode.org/reports/tr15/#Hangul for details on decomposing Hangul.
|
// See http://unicode.org/reports/tr15/#Hangul for details on decomposing Hangul.
|
||||||
func (rb *reorderBuffer) decomposeHangul(r uint32) bool {
|
func (rb *reorderBuffer) decomposeHangul(r rune) bool {
|
||||||
b := rb.rune[:]
|
b := rb.rune[:]
|
||||||
n := rb.nrune
|
n := rb.nrune
|
||||||
if n+3 > len(b) {
|
if n+3 > len(b) {
|
||||||
@ -319,7 +319,7 @@ func (rb *reorderBuffer) compose() {
|
|||||||
// get the info for the combined character. This is more
|
// get the info for the combined character. This is more
|
||||||
// expensive than using the filter. Using combinesBackward()
|
// expensive than using the filter. Using combinesBackward()
|
||||||
// is safe.
|
// is safe.
|
||||||
if ii.flags.combinesBackward() {
|
if ii.combinesBackward() {
|
||||||
cccB := b[k-1].ccc
|
cccB := b[k-1].ccc
|
||||||
cccC := ii.ccc
|
cccC := ii.ccc
|
||||||
blocked := false // b[i] blocked by starter or greater or equal CCC?
|
blocked := false // b[i] blocked by starter or greater or equal CCC?
|
||||||
|
@ -14,7 +14,6 @@ type runeInfo struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// functions dispatchable per form
|
// functions dispatchable per form
|
||||||
type boundaryFunc func(f *formInfo, info runeInfo) bool
|
|
||||||
type lookupFunc func(b input, i int) runeInfo
|
type lookupFunc func(b input, i int) runeInfo
|
||||||
type decompFunc func(b input, i int) []byte
|
type decompFunc func(b input, i int) []byte
|
||||||
|
|
||||||
@ -24,10 +23,8 @@ type formInfo struct {
|
|||||||
|
|
||||||
composing, compatibility bool // form type
|
composing, compatibility bool // form type
|
||||||
|
|
||||||
decompose decompFunc
|
decompose decompFunc
|
||||||
info lookupFunc
|
info lookupFunc
|
||||||
boundaryBefore boundaryFunc
|
|
||||||
boundaryAfter boundaryFunc
|
|
||||||
}
|
}
|
||||||
|
|
||||||
var formTable []*formInfo
|
var formTable []*formInfo
|
||||||
@ -49,17 +46,17 @@ func init() {
|
|||||||
}
|
}
|
||||||
if Form(i) == NFC || Form(i) == NFKC {
|
if Form(i) == NFC || Form(i) == NFKC {
|
||||||
f.composing = true
|
f.composing = true
|
||||||
f.boundaryBefore = compBoundaryBefore
|
|
||||||
f.boundaryAfter = compBoundaryAfter
|
|
||||||
} else {
|
|
||||||
f.boundaryBefore = decompBoundary
|
|
||||||
f.boundaryAfter = decompBoundary
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func decompBoundary(f *formInfo, info runeInfo) bool {
|
// We do not distinguish between boundaries for NFC, NFD, etc. to avoid
|
||||||
if info.ccc == 0 && info.flags.isYesD() { // Implies isHangul(b) == true
|
// unexpected behavior for the user. For example, in NFD, there is a boundary
|
||||||
|
// after 'a'. However, a might combine with modifiers, so from the application's
|
||||||
|
// perspective it is not a good boundary. We will therefore always use the
|
||||||
|
// boundaries for the combining variants.
|
||||||
|
func (i runeInfo) boundaryBefore() bool {
|
||||||
|
if i.ccc == 0 && !i.combinesBackward() {
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
// We assume that the CCC of the first character in a decomposition
|
// We assume that the CCC of the first character in a decomposition
|
||||||
@ -68,25 +65,13 @@ func decompBoundary(f *formInfo, info runeInfo) bool {
|
|||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
func compBoundaryBefore(f *formInfo, info runeInfo) bool {
|
func (i runeInfo) boundaryAfter() bool {
|
||||||
if info.ccc == 0 && !info.flags.combinesBackward() {
|
return i.isInert()
|
||||||
return true
|
|
||||||
}
|
|
||||||
// We assume that the CCC of the first character in a decomposition
|
|
||||||
// is always non-zero if different from info.ccc and that we can return
|
|
||||||
// false at this point. This is verified by maketables.
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
|
|
||||||
func compBoundaryAfter(f *formInfo, info runeInfo) bool {
|
|
||||||
// This misses values where the last char in a decomposition is a
|
|
||||||
// boundary such as Hangul with JamoT.
|
|
||||||
return info.isInert()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// We pack quick check data in 4 bits:
|
// We pack quick check data in 4 bits:
|
||||||
// 0: NFD_QC Yes (0) or No (1). No also means there is a decomposition.
|
// 0: NFD_QC Yes (0) or No (1). No also means there is a decomposition.
|
||||||
// 1..2: NFC_QC Yes(00), No (01), or Maybe (11)
|
// 1..2: NFC_QC Yes(00), No (10), or Maybe (11)
|
||||||
// 3: Combines forward (0 == false, 1 == true)
|
// 3: Combines forward (0 == false, 1 == true)
|
||||||
//
|
//
|
||||||
// When all 4 bits are zero, the character is inert, meaning it is never
|
// When all 4 bits are zero, the character is inert, meaning it is never
|
||||||
@ -95,15 +80,12 @@ func compBoundaryAfter(f *formInfo, info runeInfo) bool {
|
|||||||
// We pack the bits for both NFC/D and NFKC/D in one byte.
|
// We pack the bits for both NFC/D and NFKC/D in one byte.
|
||||||
type qcInfo uint8
|
type qcInfo uint8
|
||||||
|
|
||||||
func (i qcInfo) isYesC() bool { return i&0x2 == 0 }
|
func (i runeInfo) isYesC() bool { return i.flags&0x4 == 0 }
|
||||||
func (i qcInfo) isNoC() bool { return i&0x6 == 0x2 }
|
func (i runeInfo) isYesD() bool { return i.flags&0x1 == 0 }
|
||||||
func (i qcInfo) isMaybe() bool { return i&0x4 != 0 }
|
|
||||||
func (i qcInfo) isYesD() bool { return i&0x1 == 0 }
|
|
||||||
func (i qcInfo) isNoD() bool { return i&0x1 != 0 }
|
|
||||||
|
|
||||||
func (i qcInfo) combinesForward() bool { return i&0x8 != 0 }
|
func (i runeInfo) combinesForward() bool { return i.flags&0x8 != 0 }
|
||||||
func (i qcInfo) combinesBackward() bool { return i&0x4 != 0 } // == isMaybe
|
func (i runeInfo) combinesBackward() bool { return i.flags&0x2 != 0 } // == isMaybe
|
||||||
func (i qcInfo) hasDecomposition() bool { return i&0x1 != 0 } // == isNoD
|
func (i runeInfo) hasDecomposition() bool { return i.flags&0x1 != 0 } // == isNoD
|
||||||
|
|
||||||
func (r runeInfo) isInert() bool {
|
func (r runeInfo) isInert() bool {
|
||||||
return r.flags&0xf == 0 && r.ccc == 0
|
return r.flags&0xf == 0 && r.ccc == 0
|
||||||
@ -137,7 +119,7 @@ func decomposeNFKC(s input, i int) []byte {
|
|||||||
// Note that the recomposition map for NFC and NFKC are identical.
|
// Note that the recomposition map for NFC and NFKC are identical.
|
||||||
|
|
||||||
// combine returns the combined rune or 0 if it doesn't exist.
|
// combine returns the combined rune or 0 if it doesn't exist.
|
||||||
func combine(a, b uint32) uint32 {
|
func combine(a, b rune) rune {
|
||||||
key := uint32(uint16(a))<<16 + uint32(uint16(b))
|
key := uint32(uint16(a))<<16 + uint32(uint16(b))
|
||||||
return recompMap[key]
|
return recompMap[key]
|
||||||
}
|
}
|
||||||
@ -148,10 +130,10 @@ func combine(a, b uint32) uint32 {
|
|||||||
// 12..15 qcInfo for NFKC/NFKD
|
// 12..15 qcInfo for NFKC/NFKD
|
||||||
func lookupInfoNFC(b input, i int) runeInfo {
|
func lookupInfoNFC(b input, i int) runeInfo {
|
||||||
v, sz := b.charinfo(i)
|
v, sz := b.charinfo(i)
|
||||||
return runeInfo{0, uint8(sz), uint8(v), qcInfo(v >> 8)}
|
return runeInfo{size: uint8(sz), ccc: uint8(v), flags: qcInfo(v >> 8)}
|
||||||
}
|
}
|
||||||
|
|
||||||
func lookupInfoNFKC(b input, i int) runeInfo {
|
func lookupInfoNFKC(b input, i int) runeInfo {
|
||||||
v, sz := b.charinfo(i)
|
v, sz := b.charinfo(i)
|
||||||
return runeInfo{0, uint8(sz), uint8(v), qcInfo(v >> 12)}
|
return runeInfo{size: uint8(sz), ccc: uint8(v), flags: qcInfo(v >> 12)}
|
||||||
}
|
}
|
||||||
|
@ -14,7 +14,7 @@ type input interface {
|
|||||||
charinfo(p int) (uint16, int)
|
charinfo(p int) (uint16, int)
|
||||||
decomposeNFC(p int) uint16
|
decomposeNFC(p int) uint16
|
||||||
decomposeNFKC(p int) uint16
|
decomposeNFKC(p int) uint16
|
||||||
hangul(p int) uint32
|
hangul(p int) rune
|
||||||
}
|
}
|
||||||
|
|
||||||
type inputString string
|
type inputString string
|
||||||
@ -54,12 +54,12 @@ func (s inputString) decomposeNFKC(p int) uint16 {
|
|||||||
return nfkcDecompTrie.lookupStringUnsafe(string(s[p:]))
|
return nfkcDecompTrie.lookupStringUnsafe(string(s[p:]))
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s inputString) hangul(p int) uint32 {
|
func (s inputString) hangul(p int) rune {
|
||||||
if !isHangulString(string(s[p:])) {
|
if !isHangulString(string(s[p:])) {
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
rune, _ := utf8.DecodeRuneInString(string(s[p:]))
|
rune, _ := utf8.DecodeRuneInString(string(s[p:]))
|
||||||
return uint32(rune)
|
return rune
|
||||||
}
|
}
|
||||||
|
|
||||||
type inputBytes []byte
|
type inputBytes []byte
|
||||||
@ -96,10 +96,10 @@ func (s inputBytes) decomposeNFKC(p int) uint16 {
|
|||||||
return nfkcDecompTrie.lookupUnsafe(s[p:])
|
return nfkcDecompTrie.lookupUnsafe(s[p:])
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s inputBytes) hangul(p int) uint32 {
|
func (s inputBytes) hangul(p int) rune {
|
||||||
if !isHangul(s[p:]) {
|
if !isHangul(s[p:]) {
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
rune, _ := utf8.DecodeRune(s[p:])
|
rune, _ := utf8.DecodeRune(s[p:])
|
||||||
return uint32(rune)
|
return rune
|
||||||
}
|
}
|
||||||
|
@ -562,7 +562,7 @@ func makeEntry(f *FormInfo) uint16 {
|
|||||||
switch f.quickCheck[MComposed] {
|
switch f.quickCheck[MComposed] {
|
||||||
case QCYes:
|
case QCYes:
|
||||||
case QCNo:
|
case QCNo:
|
||||||
e |= 0x2
|
e |= 0x4
|
||||||
case QCMaybe:
|
case QCMaybe:
|
||||||
e |= 0x6
|
e |= 0x6
|
||||||
default:
|
default:
|
||||||
@ -718,7 +718,7 @@ func makeTables() {
|
|||||||
sz := nrentries * 8
|
sz := nrentries * 8
|
||||||
size += sz
|
size += sz
|
||||||
fmt.Printf("// recompMap: %d bytes (entries only)\n", sz)
|
fmt.Printf("// recompMap: %d bytes (entries only)\n", sz)
|
||||||
fmt.Println("var recompMap = map[uint32]uint32{")
|
fmt.Println("var recompMap = map[uint32]rune{")
|
||||||
for i, c := range chars {
|
for i, c := range chars {
|
||||||
f := c.forms[FCanonical]
|
f := c.forms[FCanonical]
|
||||||
d := f.decomp
|
d := f.decomp
|
||||||
|
@ -188,11 +188,11 @@ func doAppend(rb *reorderBuffer, out []byte, p int) []byte {
|
|||||||
var info runeInfo
|
var info runeInfo
|
||||||
if p < n {
|
if p < n {
|
||||||
info = fd.info(src, p)
|
info = fd.info(src, p)
|
||||||
if p == 0 && !fd.boundaryBefore(fd, info) {
|
if p == 0 && !info.boundaryBefore() {
|
||||||
out = decomposeToLastBoundary(rb, out)
|
out = decomposeToLastBoundary(rb, out)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if info.size == 0 || fd.boundaryBefore(fd, info) {
|
if info.size == 0 || info.boundaryBefore() {
|
||||||
if fd.composing {
|
if fd.composing {
|
||||||
rb.compose()
|
rb.compose()
|
||||||
}
|
}
|
||||||
@ -257,11 +257,11 @@ func quickSpan(rb *reorderBuffer, i int) int {
|
|||||||
}
|
}
|
||||||
cc := info.ccc
|
cc := info.ccc
|
||||||
if rb.f.composing {
|
if rb.f.composing {
|
||||||
if !info.flags.isYesC() {
|
if !info.isYesC() {
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if !info.flags.isYesD() {
|
if !info.isYesD() {
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -316,13 +316,13 @@ func firstBoundary(rb *reorderBuffer) int {
|
|||||||
}
|
}
|
||||||
fd := &rb.f
|
fd := &rb.f
|
||||||
info := fd.info(src, i)
|
info := fd.info(src, i)
|
||||||
for n := 0; info.size != 0 && !fd.boundaryBefore(fd, info); {
|
for n := 0; info.size != 0 && !info.boundaryBefore(); {
|
||||||
i += int(info.size)
|
i += int(info.size)
|
||||||
if n++; n >= maxCombiningChars {
|
if n++; n >= maxCombiningChars {
|
||||||
return i
|
return i
|
||||||
}
|
}
|
||||||
if i >= nsrc {
|
if i >= nsrc {
|
||||||
if !fd.boundaryAfter(fd, info) {
|
if !info.boundaryAfter() {
|
||||||
return -1
|
return -1
|
||||||
}
|
}
|
||||||
return nsrc
|
return nsrc
|
||||||
@ -368,11 +368,11 @@ func lastBoundary(fd *formInfo, b []byte) int {
|
|||||||
if p+int(info.size) != i { // trailing non-starter bytes: illegal UTF-8
|
if p+int(info.size) != i { // trailing non-starter bytes: illegal UTF-8
|
||||||
return i
|
return i
|
||||||
}
|
}
|
||||||
if fd.boundaryAfter(fd, info) {
|
if info.boundaryAfter() {
|
||||||
return i
|
return i
|
||||||
}
|
}
|
||||||
i = p
|
i = p
|
||||||
for n := 0; i >= 0 && !fd.boundaryBefore(fd, info); {
|
for n := 0; i >= 0 && !info.boundaryBefore(); {
|
||||||
info, p = lastRuneStart(fd, b[:i])
|
info, p = lastRuneStart(fd, b[:i])
|
||||||
if n++; n >= maxCombiningChars {
|
if n++; n >= maxCombiningChars {
|
||||||
return len(b)
|
return len(b)
|
||||||
@ -404,7 +404,7 @@ func decomposeSegment(rb *reorderBuffer, sp int) int {
|
|||||||
break
|
break
|
||||||
}
|
}
|
||||||
info = rb.f.info(rb.src, sp)
|
info = rb.f.info(rb.src, sp)
|
||||||
bound := rb.f.boundaryBefore(&rb.f, info)
|
bound := info.boundaryBefore()
|
||||||
if bound || info.size == 0 {
|
if bound || info.size == 0 {
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
@ -419,7 +419,7 @@ func lastRuneStart(fd *formInfo, buf []byte) (runeInfo, int) {
|
|||||||
for ; p >= 0 && !utf8.RuneStart(buf[p]); p-- {
|
for ; p >= 0 && !utf8.RuneStart(buf[p]); p-- {
|
||||||
}
|
}
|
||||||
if p < 0 {
|
if p < 0 {
|
||||||
return runeInfo{0, 0, 0, 0}, -1
|
return runeInfo{}, -1
|
||||||
}
|
}
|
||||||
return fd.info(inputBytes(buf), p), p
|
return fd.info(inputBytes(buf), p), p
|
||||||
}
|
}
|
||||||
@ -433,7 +433,7 @@ func decomposeToLastBoundary(rb *reorderBuffer, buf []byte) []byte {
|
|||||||
// illegal trailing continuation bytes
|
// illegal trailing continuation bytes
|
||||||
return buf
|
return buf
|
||||||
}
|
}
|
||||||
if rb.f.boundaryAfter(fd, info) {
|
if info.boundaryAfter() {
|
||||||
return buf
|
return buf
|
||||||
}
|
}
|
||||||
var add [maxBackRunes]runeInfo // stores runeInfo in reverse order
|
var add [maxBackRunes]runeInfo // stores runeInfo in reverse order
|
||||||
@ -441,13 +441,13 @@ func decomposeToLastBoundary(rb *reorderBuffer, buf []byte) []byte {
|
|||||||
padd := 1
|
padd := 1
|
||||||
n := 1
|
n := 1
|
||||||
p := len(buf) - int(info.size)
|
p := len(buf) - int(info.size)
|
||||||
for ; p >= 0 && !rb.f.boundaryBefore(fd, info); p -= int(info.size) {
|
for ; p >= 0 && !info.boundaryBefore(); p -= int(info.size) {
|
||||||
info, i = lastRuneStart(fd, buf[:p])
|
info, i = lastRuneStart(fd, buf[:p])
|
||||||
if int(info.size) != p-i {
|
if int(info.size) != p-i {
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
// Check that decomposition doesn't result in overflow.
|
// Check that decomposition doesn't result in overflow.
|
||||||
if info.flags.hasDecomposition() {
|
if info.hasDecomposition() {
|
||||||
dcomp := rb.f.decompose(inputBytes(buf), p-int(info.size))
|
dcomp := rb.f.decompose(inputBytes(buf), p-int(info.size))
|
||||||
for i := 0; i < len(dcomp); {
|
for i := 0; i < len(dcomp); {
|
||||||
inf := rb.f.info(inputBytes(dcomp), i)
|
inf := rb.f.info(inputBytes(dcomp), i)
|
||||||
|
@ -4661,7 +4661,7 @@ var nfkcDecompLookup = [960]uint8{
|
|||||||
var nfkcDecompTrie = trie{nfkcDecompLookup[:], nfkcDecompValues[:], nfkcDecompSparseValues[:], nfkcDecompSparseOffset[:], 66}
|
var nfkcDecompTrie = trie{nfkcDecompLookup[:], nfkcDecompValues[:], nfkcDecompSparseValues[:], nfkcDecompSparseOffset[:], 66}
|
||||||
|
|
||||||
// recompMap: 7448 bytes (entries only)
|
// recompMap: 7448 bytes (entries only)
|
||||||
var recompMap = map[uint32]uint32{
|
var recompMap = map[uint32]rune{
|
||||||
0x00410300: 0x00C0,
|
0x00410300: 0x00C0,
|
||||||
0x00410301: 0x00C1,
|
0x00410301: 0x00C1,
|
||||||
0x00410302: 0x00C2,
|
0x00410302: 0x00C2,
|
||||||
@ -5637,7 +5637,7 @@ var charInfoValues = [1024]uint16{
|
|||||||
0x0136: 0x0001, 0x0137: 0x0001, 0x0138: 0x6601, 0x0139: 0x00dc, 0x013a: 0x00dc, 0x013b: 0x00dc,
|
0x0136: 0x0001, 0x0137: 0x0001, 0x0138: 0x6601, 0x0139: 0x00dc, 0x013a: 0x00dc, 0x013b: 0x00dc,
|
||||||
0x013c: 0x00dc, 0x013d: 0x00e6, 0x013e: 0x00e6, 0x013f: 0x00e6,
|
0x013c: 0x00dc, 0x013d: 0x00e6, 0x013e: 0x00e6, 0x013f: 0x00e6,
|
||||||
// Block 0x5, offset 0x140
|
// Block 0x5, offset 0x140
|
||||||
0x0140: 0x33e6, 0x0141: 0x33e6, 0x0142: 0x66e6, 0x0143: 0x33e6, 0x0144: 0x33e6, 0x0145: 0x66f0,
|
0x0140: 0x55e6, 0x0141: 0x55e6, 0x0142: 0x66e6, 0x0143: 0x55e6, 0x0144: 0x55e6, 0x0145: 0x66f0,
|
||||||
0x0146: 0x00e6, 0x0147: 0x00dc, 0x0148: 0x00dc, 0x0149: 0x00dc, 0x014a: 0x00e6, 0x014b: 0x00e6,
|
0x0146: 0x00e6, 0x0147: 0x00dc, 0x0148: 0x00dc, 0x0149: 0x00dc, 0x014a: 0x00e6, 0x014b: 0x00e6,
|
||||||
0x014c: 0x00e6, 0x014d: 0x00dc, 0x014e: 0x00dc, 0x0150: 0x00e6, 0x0151: 0x00e6,
|
0x014c: 0x00e6, 0x014d: 0x00dc, 0x014e: 0x00dc, 0x0150: 0x00e6, 0x0151: 0x00e6,
|
||||||
0x0152: 0x00e6, 0x0153: 0x00dc, 0x0154: 0x00dc, 0x0155: 0x00dc, 0x0156: 0x00dc, 0x0157: 0x00e6,
|
0x0152: 0x00e6, 0x0153: 0x00dc, 0x0154: 0x00dc, 0x0155: 0x00dc, 0x0156: 0x00dc, 0x0157: 0x00e6,
|
||||||
@ -5645,12 +5645,12 @@ var charInfoValues = [1024]uint16{
|
|||||||
0x015e: 0x00ea, 0x015f: 0x00e9, 0x0160: 0x00ea, 0x0161: 0x00ea, 0x0162: 0x00e9, 0x0163: 0x00e6,
|
0x015e: 0x00ea, 0x015f: 0x00e9, 0x0160: 0x00ea, 0x0161: 0x00ea, 0x0162: 0x00e9, 0x0163: 0x00e6,
|
||||||
0x0164: 0x00e6, 0x0165: 0x00e6, 0x0166: 0x00e6, 0x0167: 0x00e6, 0x0168: 0x00e6, 0x0169: 0x00e6,
|
0x0164: 0x00e6, 0x0165: 0x00e6, 0x0166: 0x00e6, 0x0167: 0x00e6, 0x0168: 0x00e6, 0x0169: 0x00e6,
|
||||||
0x016a: 0x00e6, 0x016b: 0x00e6, 0x016c: 0x00e6, 0x016d: 0x00e6, 0x016e: 0x00e6, 0x016f: 0x00e6,
|
0x016a: 0x00e6, 0x016b: 0x00e6, 0x016c: 0x00e6, 0x016d: 0x00e6, 0x016e: 0x00e6, 0x016f: 0x00e6,
|
||||||
0x0174: 0x3300,
|
0x0174: 0x5500,
|
||||||
0x017a: 0x3000,
|
0x017a: 0x5000,
|
||||||
0x017e: 0x3300,
|
0x017e: 0x5500,
|
||||||
// Block 0x6, offset 0x180
|
// Block 0x6, offset 0x180
|
||||||
0x0184: 0x3000, 0x0185: 0x3100,
|
0x0184: 0x5000, 0x0185: 0x5100,
|
||||||
0x0186: 0x1100, 0x0187: 0x3300, 0x0188: 0x1100, 0x0189: 0x1100, 0x018a: 0x1100,
|
0x0186: 0x1100, 0x0187: 0x5500, 0x0188: 0x1100, 0x0189: 0x1100, 0x018a: 0x1100,
|
||||||
0x018c: 0x1100, 0x018e: 0x1100, 0x018f: 0x1100, 0x0190: 0x1100, 0x0191: 0x8800,
|
0x018c: 0x1100, 0x018e: 0x1100, 0x018f: 0x1100, 0x0190: 0x1100, 0x0191: 0x8800,
|
||||||
0x0195: 0x8800, 0x0197: 0x8800,
|
0x0195: 0x8800, 0x0197: 0x8800,
|
||||||
0x0199: 0x8800,
|
0x0199: 0x8800,
|
||||||
@ -5673,7 +5673,7 @@ var charInfoValues = [1024]uint16{
|
|||||||
0x01f6: 0x8800, 0x01f7: 0x8800, 0x01f8: 0x8800, 0x01f9: 0x1100, 0x01fa: 0x8800,
|
0x01f6: 0x8800, 0x01f7: 0x8800, 0x01f8: 0x8800, 0x01f9: 0x1100, 0x01fa: 0x8800,
|
||||||
0x01fe: 0x8800,
|
0x01fe: 0x8800,
|
||||||
// Block 0x8, offset 0x200
|
// Block 0x8, offset 0x200
|
||||||
0x0207: 0x3000,
|
0x0207: 0x5000,
|
||||||
0x0211: 0x00dc,
|
0x0211: 0x00dc,
|
||||||
0x0212: 0x00e6, 0x0213: 0x00e6, 0x0214: 0x00e6, 0x0215: 0x00e6, 0x0216: 0x00dc, 0x0217: 0x00e6,
|
0x0212: 0x00e6, 0x0213: 0x00e6, 0x0214: 0x00e6, 0x0215: 0x00e6, 0x0216: 0x00dc, 0x0217: 0x00e6,
|
||||||
0x0218: 0x00e6, 0x0219: 0x00e6, 0x021a: 0x00de, 0x021b: 0x00dc, 0x021c: 0x00e6, 0x021d: 0x00e6,
|
0x0218: 0x00e6, 0x0219: 0x00e6, 0x021a: 0x00de, 0x021b: 0x00dc, 0x021c: 0x00e6, 0x021d: 0x00e6,
|
||||||
@ -5689,8 +5689,8 @@ var charInfoValues = [1024]uint16{
|
|||||||
0x0252: 0x0022, 0x0253: 0x66e6, 0x0254: 0x66e6, 0x0255: 0x66dc, 0x0256: 0x00dc, 0x0257: 0x00e6,
|
0x0252: 0x0022, 0x0253: 0x66e6, 0x0254: 0x66e6, 0x0255: 0x66dc, 0x0256: 0x00dc, 0x0257: 0x00e6,
|
||||||
0x0258: 0x00e6, 0x0259: 0x00e6, 0x025a: 0x00e6, 0x025b: 0x00e6, 0x025c: 0x00dc, 0x025d: 0x00e6,
|
0x0258: 0x00e6, 0x0259: 0x00e6, 0x025a: 0x00e6, 0x025b: 0x00e6, 0x025c: 0x00dc, 0x025d: 0x00e6,
|
||||||
0x025e: 0x00e6, 0x025f: 0x00dc,
|
0x025e: 0x00e6, 0x025f: 0x00dc,
|
||||||
0x0270: 0x0023, 0x0275: 0x3000,
|
0x0270: 0x0023, 0x0275: 0x5000,
|
||||||
0x0276: 0x3000, 0x0277: 0x3000, 0x0278: 0x3000,
|
0x0276: 0x5000, 0x0277: 0x5000, 0x0278: 0x5000,
|
||||||
// Block 0xa, offset 0x280
|
// Block 0xa, offset 0x280
|
||||||
0x0280: 0x9900, 0x0281: 0x9900, 0x0282: 0x1100, 0x0283: 0x1100, 0x0284: 0x1100, 0x0285: 0x1100,
|
0x0280: 0x9900, 0x0281: 0x9900, 0x0282: 0x1100, 0x0283: 0x1100, 0x0284: 0x1100, 0x0285: 0x1100,
|
||||||
0x0288: 0x9900, 0x0289: 0x9900, 0x028a: 0x1100, 0x028b: 0x1100,
|
0x0288: 0x9900, 0x0289: 0x9900, 0x028a: 0x1100, 0x028b: 0x1100,
|
||||||
@ -5700,21 +5700,21 @@ var charInfoValues = [1024]uint16{
|
|||||||
0x029f: 0x1100, 0x02a0: 0x9900, 0x02a1: 0x9900, 0x02a2: 0x9900, 0x02a3: 0x9900,
|
0x029f: 0x1100, 0x02a0: 0x9900, 0x02a1: 0x9900, 0x02a2: 0x9900, 0x02a3: 0x9900,
|
||||||
0x02a4: 0x9900, 0x02a5: 0x9900, 0x02a6: 0x9900, 0x02a7: 0x9900, 0x02a8: 0x9900, 0x02a9: 0x9900,
|
0x02a4: 0x9900, 0x02a5: 0x9900, 0x02a6: 0x9900, 0x02a7: 0x9900, 0x02a8: 0x9900, 0x02a9: 0x9900,
|
||||||
0x02aa: 0x9900, 0x02ab: 0x9900, 0x02ac: 0x9900, 0x02ad: 0x9900, 0x02ae: 0x9900, 0x02af: 0x9900,
|
0x02aa: 0x9900, 0x02ab: 0x9900, 0x02ac: 0x9900, 0x02ad: 0x9900, 0x02ae: 0x9900, 0x02af: 0x9900,
|
||||||
0x02b0: 0x9900, 0x02b1: 0x3300, 0x02b2: 0x1100, 0x02b3: 0x3300, 0x02b4: 0x9900, 0x02b5: 0x3300,
|
0x02b0: 0x9900, 0x02b1: 0x5500, 0x02b2: 0x1100, 0x02b3: 0x5500, 0x02b4: 0x9900, 0x02b5: 0x5500,
|
||||||
0x02b6: 0x1100, 0x02b7: 0x3300, 0x02b8: 0x1100, 0x02b9: 0x3300, 0x02ba: 0x1100, 0x02bb: 0x3300,
|
0x02b6: 0x1100, 0x02b7: 0x5500, 0x02b8: 0x1100, 0x02b9: 0x5500, 0x02ba: 0x1100, 0x02bb: 0x5500,
|
||||||
0x02bc: 0x9900, 0x02bd: 0x3300,
|
0x02bc: 0x9900, 0x02bd: 0x5500,
|
||||||
// Block 0xb, offset 0x2c0
|
// Block 0xb, offset 0x2c0
|
||||||
0x02c0: 0x3000, 0x02c1: 0x3100, 0x02c2: 0x1100, 0x02c3: 0x1100, 0x02c4: 0x1100,
|
0x02c0: 0x5000, 0x02c1: 0x5100, 0x02c2: 0x1100, 0x02c3: 0x1100, 0x02c4: 0x1100,
|
||||||
0x02c6: 0x9900, 0x02c7: 0x1100, 0x02c8: 0x1100, 0x02c9: 0x3300, 0x02ca: 0x1100, 0x02cb: 0x3300,
|
0x02c6: 0x9900, 0x02c7: 0x1100, 0x02c8: 0x1100, 0x02c9: 0x5500, 0x02ca: 0x1100, 0x02cb: 0x5500,
|
||||||
0x02cc: 0x1100, 0x02cd: 0x3100, 0x02ce: 0x3100, 0x02cf: 0x3100, 0x02d0: 0x1100, 0x02d1: 0x1100,
|
0x02cc: 0x1100, 0x02cd: 0x5100, 0x02ce: 0x5100, 0x02cf: 0x5100, 0x02d0: 0x1100, 0x02d1: 0x1100,
|
||||||
0x02d2: 0x1100, 0x02d3: 0x3300, 0x02d6: 0x1100, 0x02d7: 0x1100,
|
0x02d2: 0x1100, 0x02d3: 0x5500, 0x02d6: 0x1100, 0x02d7: 0x1100,
|
||||||
0x02d8: 0x1100, 0x02d9: 0x1100, 0x02da: 0x1100, 0x02db: 0x3300, 0x02dd: 0x3100,
|
0x02d8: 0x1100, 0x02d9: 0x1100, 0x02da: 0x1100, 0x02db: 0x5500, 0x02dd: 0x5100,
|
||||||
0x02de: 0x3100, 0x02df: 0x3100, 0x02e0: 0x1100, 0x02e1: 0x1100, 0x02e2: 0x1100, 0x02e3: 0x3300,
|
0x02de: 0x5100, 0x02df: 0x5100, 0x02e0: 0x1100, 0x02e1: 0x1100, 0x02e2: 0x1100, 0x02e3: 0x5500,
|
||||||
0x02e4: 0x1100, 0x02e5: 0x1100, 0x02e6: 0x1100, 0x02e7: 0x1100, 0x02e8: 0x1100, 0x02e9: 0x1100,
|
0x02e4: 0x1100, 0x02e5: 0x1100, 0x02e6: 0x1100, 0x02e7: 0x1100, 0x02e8: 0x1100, 0x02e9: 0x1100,
|
||||||
0x02ea: 0x1100, 0x02eb: 0x3300, 0x02ec: 0x1100, 0x02ed: 0x3100, 0x02ee: 0x3300, 0x02ef: 0x3300,
|
0x02ea: 0x1100, 0x02eb: 0x5500, 0x02ec: 0x1100, 0x02ed: 0x5100, 0x02ee: 0x5500, 0x02ef: 0x5500,
|
||||||
0x02f2: 0x1100, 0x02f3: 0x1100, 0x02f4: 0x1100,
|
0x02f2: 0x1100, 0x02f3: 0x1100, 0x02f4: 0x1100,
|
||||||
0x02f6: 0x9900, 0x02f7: 0x1100, 0x02f8: 0x1100, 0x02f9: 0x3300, 0x02fa: 0x1100, 0x02fb: 0x3300,
|
0x02f6: 0x9900, 0x02f7: 0x1100, 0x02f8: 0x1100, 0x02f9: 0x5500, 0x02fa: 0x1100, 0x02fb: 0x5500,
|
||||||
0x02fc: 0x1100, 0x02fd: 0x3300, 0x02fe: 0x3800,
|
0x02fc: 0x1100, 0x02fd: 0x5500, 0x02fe: 0x5800,
|
||||||
// Block 0xc, offset 0x300
|
// Block 0xc, offset 0x300
|
||||||
0x0301: 0x1100, 0x0303: 0x8800, 0x0304: 0x1100, 0x0305: 0x8800,
|
0x0301: 0x1100, 0x0303: 0x8800, 0x0304: 0x1100, 0x0305: 0x8800,
|
||||||
0x0307: 0x1100, 0x0308: 0x8800, 0x0309: 0x1100,
|
0x0307: 0x1100, 0x0308: 0x8800, 0x0309: 0x1100,
|
||||||
@ -5738,8 +5738,8 @@ var charInfoValues = [1024]uint16{
|
|||||||
0x037c: 0x1100, 0x037d: 0x1100,
|
0x037c: 0x1100, 0x037d: 0x1100,
|
||||||
// Block 0xe, offset 0x380
|
// Block 0xe, offset 0x380
|
||||||
0x0394: 0x1100,
|
0x0394: 0x1100,
|
||||||
0x0399: 0x6608, 0x039a: 0x6608, 0x039b: 0x3000, 0x039c: 0x3000, 0x039d: 0x8800,
|
0x0399: 0x6608, 0x039a: 0x6608, 0x039b: 0x5000, 0x039c: 0x5000, 0x039d: 0x8800,
|
||||||
0x039e: 0x1100, 0x039f: 0x3000,
|
0x039e: 0x1100, 0x039f: 0x5000,
|
||||||
0x03a6: 0x8800,
|
0x03a6: 0x8800,
|
||||||
0x03ab: 0x8800, 0x03ac: 0x1100, 0x03ad: 0x8800, 0x03ae: 0x1100, 0x03af: 0x8800,
|
0x03ab: 0x8800, 0x03ac: 0x1100, 0x03ad: 0x8800, 0x03ae: 0x1100, 0x03af: 0x8800,
|
||||||
0x03b0: 0x1100, 0x03b1: 0x8800, 0x03b2: 0x1100, 0x03b3: 0x8800, 0x03b4: 0x1100, 0x03b5: 0x8800,
|
0x03b0: 0x1100, 0x03b1: 0x8800, 0x03b2: 0x1100, 0x03b3: 0x8800, 0x03b4: 0x1100, 0x03b5: 0x8800,
|
||||||
@ -5754,7 +5754,7 @@ var charInfoValues = [1024]uint16{
|
|||||||
0x03ef: 0x8800,
|
0x03ef: 0x8800,
|
||||||
0x03f0: 0x8800, 0x03f1: 0x8800, 0x03f2: 0x8800, 0x03f4: 0x1100,
|
0x03f0: 0x8800, 0x03f1: 0x8800, 0x03f2: 0x8800, 0x03f4: 0x1100,
|
||||||
0x03f7: 0x1100, 0x03f8: 0x1100, 0x03f9: 0x1100, 0x03fa: 0x1100,
|
0x03f7: 0x1100, 0x03f8: 0x1100, 0x03f9: 0x1100, 0x03fa: 0x1100,
|
||||||
0x03fd: 0x8800, 0x03fe: 0x1100, 0x03ff: 0x3000,
|
0x03fd: 0x8800, 0x03fe: 0x1100, 0x03ff: 0x5000,
|
||||||
}
|
}
|
||||||
|
|
||||||
// charInfoSparseOffset: 156 entries, 312 bytes
|
// charInfoSparseOffset: 156 entries, 312 bytes
|
||||||
@ -5764,13 +5764,13 @@ var charInfoSparseOffset = []uint16{0x0, 0x8, 0x13, 0x21, 0x25, 0x2f, 0x36, 0x39
|
|||||||
var charInfoSparseValues = [757]valueRange{
|
var charInfoSparseValues = [757]valueRange{
|
||||||
// Block 0x0, offset 0x1
|
// Block 0x0, offset 0x1
|
||||||
{value: 0x0000, lo: 0x07},
|
{value: 0x0000, lo: 0x07},
|
||||||
{value: 0x3000, lo: 0xa0, hi: 0xa0},
|
{value: 0x5000, lo: 0xa0, hi: 0xa0},
|
||||||
{value: 0x3800, lo: 0xa8, hi: 0xa8},
|
{value: 0x5800, lo: 0xa8, hi: 0xa8},
|
||||||
{value: 0x3000, lo: 0xaa, hi: 0xaa},
|
{value: 0x5000, lo: 0xaa, hi: 0xaa},
|
||||||
{value: 0x3000, lo: 0xaf, hi: 0xaf},
|
{value: 0x5000, lo: 0xaf, hi: 0xaf},
|
||||||
{value: 0x3000, lo: 0xb2, hi: 0xb5},
|
{value: 0x5000, lo: 0xb2, hi: 0xb5},
|
||||||
{value: 0x3000, lo: 0xb8, hi: 0xba},
|
{value: 0x5000, lo: 0xb8, hi: 0xba},
|
||||||
{value: 0x3000, lo: 0xbc, hi: 0xbe},
|
{value: 0x5000, lo: 0xbc, hi: 0xbe},
|
||||||
// Block 0x1, offset 0x2
|
// Block 0x1, offset 0x2
|
||||||
{value: 0x0000, lo: 0x0a},
|
{value: 0x0000, lo: 0x0a},
|
||||||
{value: 0x1100, lo: 0x80, hi: 0x81},
|
{value: 0x1100, lo: 0x80, hi: 0x81},
|
||||||
@ -5779,15 +5779,15 @@ var charInfoSparseValues = [757]valueRange{
|
|||||||
{value: 0x9900, lo: 0x92, hi: 0x93},
|
{value: 0x9900, lo: 0x92, hi: 0x93},
|
||||||
{value: 0x1100, lo: 0x94, hi: 0xa5},
|
{value: 0x1100, lo: 0x94, hi: 0xa5},
|
||||||
{value: 0x1100, lo: 0xa8, hi: 0xb0},
|
{value: 0x1100, lo: 0xa8, hi: 0xb0},
|
||||||
{value: 0x3000, lo: 0xb2, hi: 0xb3},
|
{value: 0x5000, lo: 0xb2, hi: 0xb3},
|
||||||
{value: 0x1100, lo: 0xb4, hi: 0xb7},
|
{value: 0x1100, lo: 0xb4, hi: 0xb7},
|
||||||
{value: 0x1100, lo: 0xb9, hi: 0xbe},
|
{value: 0x1100, lo: 0xb9, hi: 0xbe},
|
||||||
{value: 0x3000, lo: 0xbf, hi: 0xbf},
|
{value: 0x5000, lo: 0xbf, hi: 0xbf},
|
||||||
// Block 0x2, offset 0x3
|
// Block 0x2, offset 0x3
|
||||||
{value: 0x0000, lo: 0x0d},
|
{value: 0x0000, lo: 0x0d},
|
||||||
{value: 0x3000, lo: 0x80, hi: 0x80},
|
{value: 0x5000, lo: 0x80, hi: 0x80},
|
||||||
{value: 0x1100, lo: 0x83, hi: 0x88},
|
{value: 0x1100, lo: 0x83, hi: 0x88},
|
||||||
{value: 0x3000, lo: 0x89, hi: 0x89},
|
{value: 0x5000, lo: 0x89, hi: 0x89},
|
||||||
{value: 0x9900, lo: 0x8c, hi: 0x8d},
|
{value: 0x9900, lo: 0x8c, hi: 0x8d},
|
||||||
{value: 0x1100, lo: 0x8e, hi: 0x91},
|
{value: 0x1100, lo: 0x8e, hi: 0x91},
|
||||||
{value: 0x1100, lo: 0x94, hi: 0x99},
|
{value: 0x1100, lo: 0x94, hi: 0x99},
|
||||||
@ -5797,7 +5797,7 @@ var charInfoSparseValues = [757]valueRange{
|
|||||||
{value: 0x1100, lo: 0xa2, hi: 0xa5},
|
{value: 0x1100, lo: 0xa2, hi: 0xa5},
|
||||||
{value: 0x9900, lo: 0xa8, hi: 0xab},
|
{value: 0x9900, lo: 0xa8, hi: 0xab},
|
||||||
{value: 0x1100, lo: 0xac, hi: 0xbe},
|
{value: 0x1100, lo: 0xac, hi: 0xbe},
|
||||||
{value: 0x3800, lo: 0xbf, hi: 0xbf},
|
{value: 0x5800, lo: 0xbf, hi: 0xbf},
|
||||||
// Block 0x3, offset 0x4
|
// Block 0x3, offset 0x4
|
||||||
{value: 0x0000, lo: 0x03},
|
{value: 0x0000, lo: 0x03},
|
||||||
{value: 0x9900, lo: 0xa0, hi: 0xa1},
|
{value: 0x9900, lo: 0xa0, hi: 0xa1},
|
||||||
@ -5805,13 +5805,13 @@ var charInfoSparseValues = [757]valueRange{
|
|||||||
{value: 0x8800, lo: 0xb7, hi: 0xb7},
|
{value: 0x8800, lo: 0xb7, hi: 0xb7},
|
||||||
// Block 0x4, offset 0x5
|
// Block 0x4, offset 0x5
|
||||||
{value: 0x0000, lo: 0x09},
|
{value: 0x0000, lo: 0x09},
|
||||||
{value: 0x3000, lo: 0x84, hi: 0x8c},
|
{value: 0x5000, lo: 0x84, hi: 0x8c},
|
||||||
{value: 0x1100, lo: 0x8d, hi: 0x9c},
|
{value: 0x1100, lo: 0x8d, hi: 0x9c},
|
||||||
{value: 0x1100, lo: 0x9e, hi: 0xa3},
|
{value: 0x1100, lo: 0x9e, hi: 0xa3},
|
||||||
{value: 0x1100, lo: 0xa6, hi: 0xa9},
|
{value: 0x1100, lo: 0xa6, hi: 0xa9},
|
||||||
{value: 0x9900, lo: 0xaa, hi: 0xab},
|
{value: 0x9900, lo: 0xaa, hi: 0xab},
|
||||||
{value: 0x1100, lo: 0xac, hi: 0xb0},
|
{value: 0x1100, lo: 0xac, hi: 0xb0},
|
||||||
{value: 0x3000, lo: 0xb1, hi: 0xb3},
|
{value: 0x5000, lo: 0xb1, hi: 0xb3},
|
||||||
{value: 0x1100, lo: 0xb4, hi: 0xb5},
|
{value: 0x1100, lo: 0xb4, hi: 0xb5},
|
||||||
{value: 0x1100, lo: 0xb8, hi: 0xbf},
|
{value: 0x1100, lo: 0xb8, hi: 0xbf},
|
||||||
// Block 0x5, offset 0x6
|
// Block 0x5, offset 0x6
|
||||||
@ -5825,11 +5825,11 @@ var charInfoSparseValues = [757]valueRange{
|
|||||||
// Block 0x6, offset 0x7
|
// Block 0x6, offset 0x7
|
||||||
{value: 0x0000, lo: 0x02},
|
{value: 0x0000, lo: 0x02},
|
||||||
{value: 0x8800, lo: 0x92, hi: 0x92},
|
{value: 0x8800, lo: 0x92, hi: 0x92},
|
||||||
{value: 0x3000, lo: 0xb0, hi: 0xb8},
|
{value: 0x5000, lo: 0xb0, hi: 0xb8},
|
||||||
// Block 0x7, offset 0x8
|
// Block 0x7, offset 0x8
|
||||||
{value: 0x0000, lo: 0x02},
|
{value: 0x0000, lo: 0x02},
|
||||||
{value: 0x3000, lo: 0x98, hi: 0x9d},
|
{value: 0x5000, lo: 0x98, hi: 0x9d},
|
||||||
{value: 0x3000, lo: 0xa0, hi: 0xa4},
|
{value: 0x5000, lo: 0xa0, hi: 0xa4},
|
||||||
// Block 0x8, offset 0x9
|
// Block 0x8, offset 0x9
|
||||||
{value: 0x0000, lo: 0x0d},
|
{value: 0x0000, lo: 0x0d},
|
||||||
{value: 0x8800, lo: 0x81, hi: 0x81},
|
{value: 0x8800, lo: 0x81, hi: 0x81},
|
||||||
@ -5838,13 +5838,13 @@ var charInfoSparseValues = [757]valueRange{
|
|||||||
{value: 0x9900, lo: 0x8a, hi: 0x8b},
|
{value: 0x9900, lo: 0x8a, hi: 0x8b},
|
||||||
{value: 0x1100, lo: 0x8c, hi: 0x8d},
|
{value: 0x1100, lo: 0x8c, hi: 0x8d},
|
||||||
{value: 0x9900, lo: 0x8e, hi: 0x8e},
|
{value: 0x9900, lo: 0x8e, hi: 0x8e},
|
||||||
{value: 0x3000, lo: 0x90, hi: 0x91},
|
{value: 0x5000, lo: 0x90, hi: 0x91},
|
||||||
{value: 0x3800, lo: 0x92, hi: 0x92},
|
{value: 0x5800, lo: 0x92, hi: 0x92},
|
||||||
{value: 0x3100, lo: 0x93, hi: 0x94},
|
{value: 0x5100, lo: 0x93, hi: 0x94},
|
||||||
{value: 0x3000, lo: 0x95, hi: 0x96},
|
{value: 0x5000, lo: 0x95, hi: 0x96},
|
||||||
{value: 0x3000, lo: 0xb0, hi: 0xb2},
|
{value: 0x5000, lo: 0xb0, hi: 0xb2},
|
||||||
{value: 0x3000, lo: 0xb4, hi: 0xb5},
|
{value: 0x5000, lo: 0xb4, hi: 0xb5},
|
||||||
{value: 0x3000, lo: 0xb9, hi: 0xb9},
|
{value: 0x5000, lo: 0xb9, hi: 0xb9},
|
||||||
// Block 0x9, offset 0xa
|
// Block 0x9, offset 0xa
|
||||||
{value: 0x0000, lo: 0x0b},
|
{value: 0x0000, lo: 0x0b},
|
||||||
{value: 0x8800, lo: 0x83, hi: 0x83},
|
{value: 0x8800, lo: 0x83, hi: 0x83},
|
||||||
@ -5954,7 +5954,7 @@ var charInfoSparseValues = [757]valueRange{
|
|||||||
{value: 0x00e6, lo: 0x91, hi: 0x91},
|
{value: 0x00e6, lo: 0x91, hi: 0x91},
|
||||||
{value: 0x00dc, lo: 0x92, hi: 0x92},
|
{value: 0x00dc, lo: 0x92, hi: 0x92},
|
||||||
{value: 0x00e6, lo: 0x93, hi: 0x94},
|
{value: 0x00e6, lo: 0x93, hi: 0x94},
|
||||||
{value: 0x3300, lo: 0x98, hi: 0x9f},
|
{value: 0x5500, lo: 0x98, hi: 0x9f},
|
||||||
// Block 0x16, offset 0x17
|
// Block 0x16, offset 0x17
|
||||||
{value: 0x0000, lo: 0x02},
|
{value: 0x0000, lo: 0x02},
|
||||||
{value: 0x0007, lo: 0xbc, hi: 0xbc},
|
{value: 0x0007, lo: 0xbc, hi: 0xbc},
|
||||||
@ -5965,18 +5965,18 @@ var charInfoSparseValues = [757]valueRange{
|
|||||||
{value: 0x1100, lo: 0x8b, hi: 0x8c},
|
{value: 0x1100, lo: 0x8b, hi: 0x8c},
|
||||||
{value: 0x0009, lo: 0x8d, hi: 0x8d},
|
{value: 0x0009, lo: 0x8d, hi: 0x8d},
|
||||||
{value: 0x6600, lo: 0x97, hi: 0x97},
|
{value: 0x6600, lo: 0x97, hi: 0x97},
|
||||||
{value: 0x3300, lo: 0x9c, hi: 0x9d},
|
{value: 0x5500, lo: 0x9c, hi: 0x9d},
|
||||||
{value: 0x3300, lo: 0x9f, hi: 0x9f},
|
{value: 0x5500, lo: 0x9f, hi: 0x9f},
|
||||||
// Block 0x18, offset 0x19
|
// Block 0x18, offset 0x19
|
||||||
{value: 0x0000, lo: 0x03},
|
{value: 0x0000, lo: 0x03},
|
||||||
{value: 0x3300, lo: 0xb3, hi: 0xb3},
|
{value: 0x5500, lo: 0xb3, hi: 0xb3},
|
||||||
{value: 0x3300, lo: 0xb6, hi: 0xb6},
|
{value: 0x5500, lo: 0xb6, hi: 0xb6},
|
||||||
{value: 0x0007, lo: 0xbc, hi: 0xbc},
|
{value: 0x0007, lo: 0xbc, hi: 0xbc},
|
||||||
// Block 0x19, offset 0x1a
|
// Block 0x19, offset 0x1a
|
||||||
{value: 0x0000, lo: 0x03},
|
{value: 0x0000, lo: 0x03},
|
||||||
{value: 0x0009, lo: 0x8d, hi: 0x8d},
|
{value: 0x0009, lo: 0x8d, hi: 0x8d},
|
||||||
{value: 0x3300, lo: 0x99, hi: 0x9b},
|
{value: 0x5500, lo: 0x99, hi: 0x9b},
|
||||||
{value: 0x3300, lo: 0x9e, hi: 0x9e},
|
{value: 0x5500, lo: 0x9e, hi: 0x9e},
|
||||||
// Block 0x1a, offset 0x1b
|
// Block 0x1a, offset 0x1b
|
||||||
{value: 0x0000, lo: 0x01},
|
{value: 0x0000, lo: 0x01},
|
||||||
{value: 0x0007, lo: 0xbc, hi: 0xbc},
|
{value: 0x0007, lo: 0xbc, hi: 0xbc},
|
||||||
@ -5990,7 +5990,7 @@ var charInfoSparseValues = [757]valueRange{
|
|||||||
{value: 0x1100, lo: 0x8b, hi: 0x8c},
|
{value: 0x1100, lo: 0x8b, hi: 0x8c},
|
||||||
{value: 0x0009, lo: 0x8d, hi: 0x8d},
|
{value: 0x0009, lo: 0x8d, hi: 0x8d},
|
||||||
{value: 0x6600, lo: 0x96, hi: 0x97},
|
{value: 0x6600, lo: 0x96, hi: 0x97},
|
||||||
{value: 0x3300, lo: 0x9c, hi: 0x9d},
|
{value: 0x5500, lo: 0x9c, hi: 0x9d},
|
||||||
// Block 0x1d, offset 0x1e
|
// Block 0x1d, offset 0x1e
|
||||||
{value: 0x0000, lo: 0x03},
|
{value: 0x0000, lo: 0x03},
|
||||||
{value: 0x8800, lo: 0x92, hi: 0x92},
|
{value: 0x8800, lo: 0x92, hi: 0x92},
|
||||||
@ -6036,7 +6036,7 @@ var charInfoSparseValues = [757]valueRange{
|
|||||||
{value: 0x6600, lo: 0x9f, hi: 0x9f},
|
{value: 0x6600, lo: 0x9f, hi: 0x9f},
|
||||||
// Block 0x24, offset 0x25
|
// Block 0x24, offset 0x25
|
||||||
{value: 0x0000, lo: 0x03},
|
{value: 0x0000, lo: 0x03},
|
||||||
{value: 0x3000, lo: 0xb3, hi: 0xb3},
|
{value: 0x5000, lo: 0xb3, hi: 0xb3},
|
||||||
{value: 0x0067, lo: 0xb8, hi: 0xb9},
|
{value: 0x0067, lo: 0xb8, hi: 0xb9},
|
||||||
{value: 0x0009, lo: 0xba, hi: 0xba},
|
{value: 0x0009, lo: 0xba, hi: 0xba},
|
||||||
// Block 0x25, offset 0x26
|
// Block 0x25, offset 0x26
|
||||||
@ -6044,49 +6044,49 @@ var charInfoSparseValues = [757]valueRange{
|
|||||||
{value: 0x006b, lo: 0x88, hi: 0x8b},
|
{value: 0x006b, lo: 0x88, hi: 0x8b},
|
||||||
// Block 0x26, offset 0x27
|
// Block 0x26, offset 0x27
|
||||||
{value: 0x0000, lo: 0x02},
|
{value: 0x0000, lo: 0x02},
|
||||||
{value: 0x3000, lo: 0xb3, hi: 0xb3},
|
{value: 0x5000, lo: 0xb3, hi: 0xb3},
|
||||||
{value: 0x0076, lo: 0xb8, hi: 0xb9},
|
{value: 0x0076, lo: 0xb8, hi: 0xb9},
|
||||||
// Block 0x27, offset 0x28
|
// Block 0x27, offset 0x28
|
||||||
{value: 0x0000, lo: 0x02},
|
{value: 0x0000, lo: 0x02},
|
||||||
{value: 0x007a, lo: 0x88, hi: 0x8b},
|
{value: 0x007a, lo: 0x88, hi: 0x8b},
|
||||||
{value: 0x3000, lo: 0x9c, hi: 0x9d},
|
{value: 0x5000, lo: 0x9c, hi: 0x9d},
|
||||||
// Block 0x28, offset 0x29
|
// Block 0x28, offset 0x29
|
||||||
{value: 0x0000, lo: 0x05},
|
{value: 0x0000, lo: 0x05},
|
||||||
{value: 0x3000, lo: 0x8c, hi: 0x8c},
|
{value: 0x5000, lo: 0x8c, hi: 0x8c},
|
||||||
{value: 0x00dc, lo: 0x98, hi: 0x99},
|
{value: 0x00dc, lo: 0x98, hi: 0x99},
|
||||||
{value: 0x00dc, lo: 0xb5, hi: 0xb5},
|
{value: 0x00dc, lo: 0xb5, hi: 0xb5},
|
||||||
{value: 0x00dc, lo: 0xb7, hi: 0xb7},
|
{value: 0x00dc, lo: 0xb7, hi: 0xb7},
|
||||||
{value: 0x00d8, lo: 0xb9, hi: 0xb9},
|
{value: 0x00d8, lo: 0xb9, hi: 0xb9},
|
||||||
// Block 0x29, offset 0x2a
|
// Block 0x29, offset 0x2a
|
||||||
{value: 0x0000, lo: 0x0f},
|
{value: 0x0000, lo: 0x0f},
|
||||||
{value: 0x3300, lo: 0x83, hi: 0x83},
|
{value: 0x5500, lo: 0x83, hi: 0x83},
|
||||||
{value: 0x3300, lo: 0x8d, hi: 0x8d},
|
{value: 0x5500, lo: 0x8d, hi: 0x8d},
|
||||||
{value: 0x3300, lo: 0x92, hi: 0x92},
|
{value: 0x5500, lo: 0x92, hi: 0x92},
|
||||||
{value: 0x3300, lo: 0x97, hi: 0x97},
|
{value: 0x5500, lo: 0x97, hi: 0x97},
|
||||||
{value: 0x3300, lo: 0x9c, hi: 0x9c},
|
{value: 0x5500, lo: 0x9c, hi: 0x9c},
|
||||||
{value: 0x3300, lo: 0xa9, hi: 0xa9},
|
{value: 0x5500, lo: 0xa9, hi: 0xa9},
|
||||||
{value: 0x0081, lo: 0xb1, hi: 0xb1},
|
{value: 0x0081, lo: 0xb1, hi: 0xb1},
|
||||||
{value: 0x0082, lo: 0xb2, hi: 0xb2},
|
{value: 0x0082, lo: 0xb2, hi: 0xb2},
|
||||||
{value: 0x3300, lo: 0xb3, hi: 0xb3},
|
{value: 0x5500, lo: 0xb3, hi: 0xb3},
|
||||||
{value: 0x0084, lo: 0xb4, hi: 0xb4},
|
{value: 0x0084, lo: 0xb4, hi: 0xb4},
|
||||||
{value: 0x3300, lo: 0xb5, hi: 0xb6},
|
{value: 0x5500, lo: 0xb5, hi: 0xb6},
|
||||||
{value: 0x3000, lo: 0xb7, hi: 0xb7},
|
{value: 0x5000, lo: 0xb7, hi: 0xb7},
|
||||||
{value: 0x3300, lo: 0xb8, hi: 0xb8},
|
{value: 0x5500, lo: 0xb8, hi: 0xb8},
|
||||||
{value: 0x3000, lo: 0xb9, hi: 0xb9},
|
{value: 0x5000, lo: 0xb9, hi: 0xb9},
|
||||||
{value: 0x0082, lo: 0xba, hi: 0xbd},
|
{value: 0x0082, lo: 0xba, hi: 0xbd},
|
||||||
// Block 0x2a, offset 0x2b
|
// Block 0x2a, offset 0x2b
|
||||||
{value: 0x0000, lo: 0x0b},
|
{value: 0x0000, lo: 0x0b},
|
||||||
{value: 0x0082, lo: 0x80, hi: 0x80},
|
{value: 0x0082, lo: 0x80, hi: 0x80},
|
||||||
{value: 0x3300, lo: 0x81, hi: 0x81},
|
{value: 0x5500, lo: 0x81, hi: 0x81},
|
||||||
{value: 0x00e6, lo: 0x82, hi: 0x83},
|
{value: 0x00e6, lo: 0x82, hi: 0x83},
|
||||||
{value: 0x0009, lo: 0x84, hi: 0x84},
|
{value: 0x0009, lo: 0x84, hi: 0x84},
|
||||||
{value: 0x00e6, lo: 0x86, hi: 0x87},
|
{value: 0x00e6, lo: 0x86, hi: 0x87},
|
||||||
{value: 0x3300, lo: 0x93, hi: 0x93},
|
{value: 0x5500, lo: 0x93, hi: 0x93},
|
||||||
{value: 0x3300, lo: 0x9d, hi: 0x9d},
|
{value: 0x5500, lo: 0x9d, hi: 0x9d},
|
||||||
{value: 0x3300, lo: 0xa2, hi: 0xa2},
|
{value: 0x5500, lo: 0xa2, hi: 0xa2},
|
||||||
{value: 0x3300, lo: 0xa7, hi: 0xa7},
|
{value: 0x5500, lo: 0xa7, hi: 0xa7},
|
||||||
{value: 0x3300, lo: 0xac, hi: 0xac},
|
{value: 0x5500, lo: 0xac, hi: 0xac},
|
||||||
{value: 0x3300, lo: 0xb9, hi: 0xb9},
|
{value: 0x5500, lo: 0xb9, hi: 0xb9},
|
||||||
// Block 0x2b, offset 0x2c
|
// Block 0x2b, offset 0x2c
|
||||||
{value: 0x0000, lo: 0x01},
|
{value: 0x0000, lo: 0x01},
|
||||||
{value: 0x00dc, lo: 0x86, hi: 0x86},
|
{value: 0x00dc, lo: 0x86, hi: 0x86},
|
||||||
@ -6102,7 +6102,7 @@ var charInfoSparseValues = [757]valueRange{
|
|||||||
{value: 0x00dc, lo: 0x8d, hi: 0x8d},
|
{value: 0x00dc, lo: 0x8d, hi: 0x8d},
|
||||||
// Block 0x2e, offset 0x2f
|
// Block 0x2e, offset 0x2f
|
||||||
{value: 0x0000, lo: 0x01},
|
{value: 0x0000, lo: 0x01},
|
||||||
{value: 0x3000, lo: 0xbc, hi: 0xbc},
|
{value: 0x5000, lo: 0xbc, hi: 0xbc},
|
||||||
// Block 0x2f, offset 0x30
|
// Block 0x2f, offset 0x30
|
||||||
{value: 0x0000, lo: 0x01},
|
{value: 0x0000, lo: 0x01},
|
||||||
{value: 0x8800, lo: 0x80, hi: 0x92},
|
{value: 0x8800, lo: 0x80, hi: 0x92},
|
||||||
@ -6189,17 +6189,17 @@ var charInfoSparseValues = [757]valueRange{
|
|||||||
{value: 0x00dc, lo: 0xad, hi: 0xad},
|
{value: 0x00dc, lo: 0xad, hi: 0xad},
|
||||||
// Block 0x40, offset 0x41
|
// Block 0x40, offset 0x41
|
||||||
{value: 0x0000, lo: 0x03},
|
{value: 0x0000, lo: 0x03},
|
||||||
{value: 0x3000, lo: 0xac, hi: 0xae},
|
{value: 0x5000, lo: 0xac, hi: 0xae},
|
||||||
{value: 0x3000, lo: 0xb0, hi: 0xba},
|
{value: 0x5000, lo: 0xb0, hi: 0xba},
|
||||||
{value: 0x3000, lo: 0xbc, hi: 0xbf},
|
{value: 0x5000, lo: 0xbc, hi: 0xbf},
|
||||||
// Block 0x41, offset 0x42
|
// Block 0x41, offset 0x42
|
||||||
{value: 0x0000, lo: 0x03},
|
{value: 0x0000, lo: 0x03},
|
||||||
{value: 0x3000, lo: 0x80, hi: 0x8d},
|
{value: 0x5000, lo: 0x80, hi: 0x8d},
|
||||||
{value: 0x3000, lo: 0x8f, hi: 0xaa},
|
{value: 0x5000, lo: 0x8f, hi: 0xaa},
|
||||||
{value: 0x3000, lo: 0xb8, hi: 0xb8},
|
{value: 0x5000, lo: 0xb8, hi: 0xb8},
|
||||||
// Block 0x42, offset 0x43
|
// Block 0x42, offset 0x43
|
||||||
{value: 0x0000, lo: 0x01},
|
{value: 0x0000, lo: 0x01},
|
||||||
{value: 0x3000, lo: 0x9b, hi: 0xbf},
|
{value: 0x5000, lo: 0x9b, hi: 0xbf},
|
||||||
// Block 0x43, offset 0x44
|
// Block 0x43, offset 0x44
|
||||||
{value: 0x0000, lo: 0x0e},
|
{value: 0x0000, lo: 0x0e},
|
||||||
{value: 0x00e6, lo: 0x80, hi: 0x81},
|
{value: 0x00e6, lo: 0x80, hi: 0x81},
|
||||||
@ -6231,8 +6231,8 @@ var charInfoSparseValues = [757]valueRange{
|
|||||||
// Block 0x46, offset 0x47
|
// Block 0x46, offset 0x47
|
||||||
{value: 0x0000, lo: 0x07},
|
{value: 0x0000, lo: 0x07},
|
||||||
{value: 0x1100, lo: 0x80, hi: 0x99},
|
{value: 0x1100, lo: 0x80, hi: 0x99},
|
||||||
{value: 0x3000, lo: 0x9a, hi: 0x9a},
|
{value: 0x5000, lo: 0x9a, hi: 0x9a},
|
||||||
{value: 0x3100, lo: 0x9b, hi: 0x9b},
|
{value: 0x5100, lo: 0x9b, hi: 0x9b},
|
||||||
{value: 0x9900, lo: 0xa0, hi: 0xa1},
|
{value: 0x9900, lo: 0xa0, hi: 0xa1},
|
||||||
{value: 0x1100, lo: 0xa2, hi: 0xb7},
|
{value: 0x1100, lo: 0xa2, hi: 0xb7},
|
||||||
{value: 0x9900, lo: 0xb8, hi: 0xb9},
|
{value: 0x9900, lo: 0xb8, hi: 0xb9},
|
||||||
@ -6257,35 +6257,35 @@ var charInfoSparseValues = [757]valueRange{
|
|||||||
{value: 0x1100, lo: 0x80, hi: 0xb4},
|
{value: 0x1100, lo: 0x80, hi: 0xb4},
|
||||||
{value: 0x9900, lo: 0xb6, hi: 0xb6},
|
{value: 0x9900, lo: 0xb6, hi: 0xb6},
|
||||||
{value: 0x1100, lo: 0xb7, hi: 0xba},
|
{value: 0x1100, lo: 0xb7, hi: 0xba},
|
||||||
{value: 0x3300, lo: 0xbb, hi: 0xbb},
|
{value: 0x5500, lo: 0xbb, hi: 0xbb},
|
||||||
{value: 0x1100, lo: 0xbc, hi: 0xbc},
|
{value: 0x1100, lo: 0xbc, hi: 0xbc},
|
||||||
{value: 0x3000, lo: 0xbd, hi: 0xbd},
|
{value: 0x5000, lo: 0xbd, hi: 0xbd},
|
||||||
{value: 0x3300, lo: 0xbe, hi: 0xbe},
|
{value: 0x5500, lo: 0xbe, hi: 0xbe},
|
||||||
{value: 0x3800, lo: 0xbf, hi: 0xbf},
|
{value: 0x5800, lo: 0xbf, hi: 0xbf},
|
||||||
// Block 0x4a, offset 0x4b
|
// Block 0x4a, offset 0x4b
|
||||||
{value: 0x0000, lo: 0x0a},
|
{value: 0x0000, lo: 0x0a},
|
||||||
{value: 0x3300, lo: 0x80, hi: 0x81},
|
{value: 0x5500, lo: 0x80, hi: 0x81},
|
||||||
{value: 0x3000, lo: 0x82, hi: 0x8a},
|
{value: 0x5000, lo: 0x82, hi: 0x8a},
|
||||||
{value: 0x3000, lo: 0x91, hi: 0x91},
|
{value: 0x5000, lo: 0x91, hi: 0x91},
|
||||||
{value: 0x3000, lo: 0x97, hi: 0x97},
|
{value: 0x5000, lo: 0x97, hi: 0x97},
|
||||||
{value: 0x3000, lo: 0xa4, hi: 0xa6},
|
{value: 0x5000, lo: 0xa4, hi: 0xa6},
|
||||||
{value: 0x3000, lo: 0xaf, hi: 0xaf},
|
{value: 0x5000, lo: 0xaf, hi: 0xaf},
|
||||||
{value: 0x3000, lo: 0xb3, hi: 0xb4},
|
{value: 0x5000, lo: 0xb3, hi: 0xb4},
|
||||||
{value: 0x3000, lo: 0xb6, hi: 0xb7},
|
{value: 0x5000, lo: 0xb6, hi: 0xb7},
|
||||||
{value: 0x3000, lo: 0xbc, hi: 0xbc},
|
{value: 0x5000, lo: 0xbc, hi: 0xbc},
|
||||||
{value: 0x3000, lo: 0xbe, hi: 0xbe},
|
{value: 0x5000, lo: 0xbe, hi: 0xbe},
|
||||||
// Block 0x4b, offset 0x4c
|
// Block 0x4b, offset 0x4c
|
||||||
{value: 0x0000, lo: 0x05},
|
{value: 0x0000, lo: 0x05},
|
||||||
{value: 0x3000, lo: 0x87, hi: 0x89},
|
{value: 0x5000, lo: 0x87, hi: 0x89},
|
||||||
{value: 0x3000, lo: 0x97, hi: 0x97},
|
{value: 0x5000, lo: 0x97, hi: 0x97},
|
||||||
{value: 0x3000, lo: 0x9f, hi: 0x9f},
|
{value: 0x5000, lo: 0x9f, hi: 0x9f},
|
||||||
{value: 0x3000, lo: 0xb0, hi: 0xb1},
|
{value: 0x5000, lo: 0xb0, hi: 0xb1},
|
||||||
{value: 0x3000, lo: 0xb4, hi: 0xbf},
|
{value: 0x5000, lo: 0xb4, hi: 0xbf},
|
||||||
// Block 0x4c, offset 0x4d
|
// Block 0x4c, offset 0x4d
|
||||||
{value: 0x0000, lo: 0x03},
|
{value: 0x0000, lo: 0x03},
|
||||||
{value: 0x3000, lo: 0x80, hi: 0x8e},
|
{value: 0x5000, lo: 0x80, hi: 0x8e},
|
||||||
{value: 0x3000, lo: 0x90, hi: 0x9c},
|
{value: 0x5000, lo: 0x90, hi: 0x9c},
|
||||||
{value: 0x3000, lo: 0xa8, hi: 0xa8},
|
{value: 0x5000, lo: 0xa8, hi: 0xa8},
|
||||||
// Block 0x4d, offset 0x4e
|
// Block 0x4d, offset 0x4e
|
||||||
{value: 0x0000, lo: 0x0d},
|
{value: 0x0000, lo: 0x0d},
|
||||||
{value: 0x00e6, lo: 0x90, hi: 0x91},
|
{value: 0x00e6, lo: 0x90, hi: 0x91},
|
||||||
@ -6303,28 +6303,28 @@ var charInfoSparseValues = [757]valueRange{
|
|||||||
{value: 0x00e6, lo: 0xb0, hi: 0xb0},
|
{value: 0x00e6, lo: 0xb0, hi: 0xb0},
|
||||||
// Block 0x4e, offset 0x4f
|
// Block 0x4e, offset 0x4f
|
||||||
{value: 0x0000, lo: 0x0e},
|
{value: 0x0000, lo: 0x0e},
|
||||||
{value: 0x3000, lo: 0x80, hi: 0x83},
|
{value: 0x5000, lo: 0x80, hi: 0x83},
|
||||||
{value: 0x3000, lo: 0x85, hi: 0x87},
|
{value: 0x5000, lo: 0x85, hi: 0x87},
|
||||||
{value: 0x3000, lo: 0x89, hi: 0x93},
|
{value: 0x5000, lo: 0x89, hi: 0x93},
|
||||||
{value: 0x3000, lo: 0x95, hi: 0x96},
|
{value: 0x5000, lo: 0x95, hi: 0x96},
|
||||||
{value: 0x3000, lo: 0x99, hi: 0x9d},
|
{value: 0x5000, lo: 0x99, hi: 0x9d},
|
||||||
{value: 0x3000, lo: 0xa0, hi: 0xa2},
|
{value: 0x5000, lo: 0xa0, hi: 0xa2},
|
||||||
{value: 0x3000, lo: 0xa4, hi: 0xa4},
|
{value: 0x5000, lo: 0xa4, hi: 0xa4},
|
||||||
{value: 0x3300, lo: 0xa6, hi: 0xa6},
|
{value: 0x5500, lo: 0xa6, hi: 0xa6},
|
||||||
{value: 0x3000, lo: 0xa8, hi: 0xa8},
|
{value: 0x5000, lo: 0xa8, hi: 0xa8},
|
||||||
{value: 0x3300, lo: 0xaa, hi: 0xab},
|
{value: 0x5500, lo: 0xaa, hi: 0xab},
|
||||||
{value: 0x3000, lo: 0xac, hi: 0xad},
|
{value: 0x5000, lo: 0xac, hi: 0xad},
|
||||||
{value: 0x3000, lo: 0xaf, hi: 0xb1},
|
{value: 0x5000, lo: 0xaf, hi: 0xb1},
|
||||||
{value: 0x3000, lo: 0xb3, hi: 0xb9},
|
{value: 0x5000, lo: 0xb3, hi: 0xb9},
|
||||||
{value: 0x3000, lo: 0xbb, hi: 0xbf},
|
{value: 0x5000, lo: 0xbb, hi: 0xbf},
|
||||||
// Block 0x4f, offset 0x50
|
// Block 0x4f, offset 0x50
|
||||||
{value: 0x0000, lo: 0x03},
|
{value: 0x0000, lo: 0x03},
|
||||||
{value: 0x3000, lo: 0x80, hi: 0x80},
|
{value: 0x5000, lo: 0x80, hi: 0x80},
|
||||||
{value: 0x3000, lo: 0x85, hi: 0x89},
|
{value: 0x5000, lo: 0x85, hi: 0x89},
|
||||||
{value: 0x3000, lo: 0x90, hi: 0xbf},
|
{value: 0x5000, lo: 0x90, hi: 0xbf},
|
||||||
// Block 0x50, offset 0x51
|
// Block 0x50, offset 0x51
|
||||||
{value: 0x0000, lo: 0x06},
|
{value: 0x0000, lo: 0x06},
|
||||||
{value: 0x3000, lo: 0x89, hi: 0x89},
|
{value: 0x5000, lo: 0x89, hi: 0x89},
|
||||||
{value: 0x8800, lo: 0x90, hi: 0x90},
|
{value: 0x8800, lo: 0x90, hi: 0x90},
|
||||||
{value: 0x8800, lo: 0x92, hi: 0x92},
|
{value: 0x8800, lo: 0x92, hi: 0x92},
|
||||||
{value: 0x8800, lo: 0x94, hi: 0x94},
|
{value: 0x8800, lo: 0x94, hi: 0x94},
|
||||||
@ -6348,8 +6348,8 @@ var charInfoSparseValues = [757]valueRange{
|
|||||||
{value: 0x1100, lo: 0xa4, hi: 0xa4},
|
{value: 0x1100, lo: 0xa4, hi: 0xa4},
|
||||||
{value: 0x8800, lo: 0xa5, hi: 0xa5},
|
{value: 0x8800, lo: 0xa5, hi: 0xa5},
|
||||||
{value: 0x1100, lo: 0xa6, hi: 0xa6},
|
{value: 0x1100, lo: 0xa6, hi: 0xa6},
|
||||||
{value: 0x3000, lo: 0xac, hi: 0xad},
|
{value: 0x5000, lo: 0xac, hi: 0xad},
|
||||||
{value: 0x3000, lo: 0xaf, hi: 0xb0},
|
{value: 0x5000, lo: 0xaf, hi: 0xb0},
|
||||||
{value: 0x8800, lo: 0xbc, hi: 0xbc},
|
{value: 0x8800, lo: 0xbc, hi: 0xbc},
|
||||||
// Block 0x53, offset 0x54
|
// Block 0x53, offset 0x54
|
||||||
{value: 0x0000, lo: 0x0b},
|
{value: 0x0000, lo: 0x0b},
|
||||||
@ -6370,75 +6370,75 @@ var charInfoSparseValues = [757]valueRange{
|
|||||||
{value: 0x1100, lo: 0xaa, hi: 0xad},
|
{value: 0x1100, lo: 0xaa, hi: 0xad},
|
||||||
// Block 0x55, offset 0x56
|
// Block 0x55, offset 0x56
|
||||||
{value: 0x0000, lo: 0x01},
|
{value: 0x0000, lo: 0x01},
|
||||||
{value: 0x3300, lo: 0xa9, hi: 0xaa},
|
{value: 0x5500, lo: 0xa9, hi: 0xaa},
|
||||||
// Block 0x56, offset 0x57
|
// Block 0x56, offset 0x57
|
||||||
{value: 0x0000, lo: 0x01},
|
{value: 0x0000, lo: 0x01},
|
||||||
{value: 0x3000, lo: 0xa0, hi: 0xbf},
|
{value: 0x5000, lo: 0xa0, hi: 0xbf},
|
||||||
// Block 0x57, offset 0x58
|
// Block 0x57, offset 0x58
|
||||||
{value: 0x0000, lo: 0x01},
|
{value: 0x0000, lo: 0x01},
|
||||||
{value: 0x3000, lo: 0x80, hi: 0xbf},
|
{value: 0x5000, lo: 0x80, hi: 0xbf},
|
||||||
// Block 0x58, offset 0x59
|
// Block 0x58, offset 0x59
|
||||||
{value: 0x0000, lo: 0x01},
|
{value: 0x0000, lo: 0x01},
|
||||||
{value: 0x3000, lo: 0x80, hi: 0xaa},
|
{value: 0x5000, lo: 0x80, hi: 0xaa},
|
||||||
// Block 0x59, offset 0x5a
|
// Block 0x59, offset 0x5a
|
||||||
{value: 0x0000, lo: 0x01},
|
{value: 0x0000, lo: 0x01},
|
||||||
{value: 0x3000, lo: 0x8c, hi: 0x8c},
|
{value: 0x5000, lo: 0x8c, hi: 0x8c},
|
||||||
// Block 0x5a, offset 0x5b
|
// Block 0x5a, offset 0x5b
|
||||||
{value: 0x0000, lo: 0x01},
|
{value: 0x0000, lo: 0x01},
|
||||||
{value: 0x3000, lo: 0xb4, hi: 0xb6},
|
{value: 0x5000, lo: 0xb4, hi: 0xb6},
|
||||||
// Block 0x5b, offset 0x5c
|
// Block 0x5b, offset 0x5c
|
||||||
{value: 0x0000, lo: 0x01},
|
{value: 0x0000, lo: 0x01},
|
||||||
{value: 0x3300, lo: 0x9c, hi: 0x9c},
|
{value: 0x5500, lo: 0x9c, hi: 0x9c},
|
||||||
// Block 0x5c, offset 0x5d
|
// Block 0x5c, offset 0x5d
|
||||||
{value: 0x0000, lo: 0x01},
|
{value: 0x0000, lo: 0x01},
|
||||||
{value: 0x3000, lo: 0xbc, hi: 0xbd},
|
{value: 0x5000, lo: 0xbc, hi: 0xbd},
|
||||||
// Block 0x5d, offset 0x5e
|
// Block 0x5d, offset 0x5e
|
||||||
{value: 0x0000, lo: 0x01},
|
{value: 0x0000, lo: 0x01},
|
||||||
{value: 0x00e6, lo: 0xaf, hi: 0xb1},
|
{value: 0x00e6, lo: 0xaf, hi: 0xb1},
|
||||||
// Block 0x5e, offset 0x5f
|
// Block 0x5e, offset 0x5f
|
||||||
{value: 0x0000, lo: 0x02},
|
{value: 0x0000, lo: 0x02},
|
||||||
{value: 0x3000, lo: 0xaf, hi: 0xaf},
|
{value: 0x5000, lo: 0xaf, hi: 0xaf},
|
||||||
{value: 0x0009, lo: 0xbf, hi: 0xbf},
|
{value: 0x0009, lo: 0xbf, hi: 0xbf},
|
||||||
// Block 0x5f, offset 0x60
|
// Block 0x5f, offset 0x60
|
||||||
{value: 0x0000, lo: 0x01},
|
{value: 0x0000, lo: 0x01},
|
||||||
{value: 0x00e6, lo: 0xa0, hi: 0xbf},
|
{value: 0x00e6, lo: 0xa0, hi: 0xbf},
|
||||||
// Block 0x60, offset 0x61
|
// Block 0x60, offset 0x61
|
||||||
{value: 0x0000, lo: 0x01},
|
{value: 0x0000, lo: 0x01},
|
||||||
{value: 0x3000, lo: 0x9f, hi: 0x9f},
|
{value: 0x5000, lo: 0x9f, hi: 0x9f},
|
||||||
// Block 0x61, offset 0x62
|
// Block 0x61, offset 0x62
|
||||||
{value: 0x0000, lo: 0x01},
|
{value: 0x0000, lo: 0x01},
|
||||||
{value: 0x3000, lo: 0xb3, hi: 0xb3},
|
{value: 0x5000, lo: 0xb3, hi: 0xb3},
|
||||||
// Block 0x62, offset 0x63
|
// Block 0x62, offset 0x63
|
||||||
{value: 0x0000, lo: 0x01},
|
{value: 0x0000, lo: 0x01},
|
||||||
{value: 0x3000, lo: 0x80, hi: 0x95},
|
{value: 0x5000, lo: 0x80, hi: 0x95},
|
||||||
// Block 0x63, offset 0x64
|
// Block 0x63, offset 0x64
|
||||||
{value: 0x0000, lo: 0x08},
|
{value: 0x0000, lo: 0x08},
|
||||||
{value: 0x3000, lo: 0x80, hi: 0x80},
|
{value: 0x5000, lo: 0x80, hi: 0x80},
|
||||||
{value: 0x00da, lo: 0xaa, hi: 0xaa},
|
{value: 0x00da, lo: 0xaa, hi: 0xaa},
|
||||||
{value: 0x00e4, lo: 0xab, hi: 0xab},
|
{value: 0x00e4, lo: 0xab, hi: 0xab},
|
||||||
{value: 0x00e8, lo: 0xac, hi: 0xac},
|
{value: 0x00e8, lo: 0xac, hi: 0xac},
|
||||||
{value: 0x00de, lo: 0xad, hi: 0xad},
|
{value: 0x00de, lo: 0xad, hi: 0xad},
|
||||||
{value: 0x00e0, lo: 0xae, hi: 0xaf},
|
{value: 0x00e0, lo: 0xae, hi: 0xaf},
|
||||||
{value: 0x3000, lo: 0xb6, hi: 0xb6},
|
{value: 0x5000, lo: 0xb6, hi: 0xb6},
|
||||||
{value: 0x3000, lo: 0xb8, hi: 0xba},
|
{value: 0x5000, lo: 0xb8, hi: 0xba},
|
||||||
// Block 0x64, offset 0x65
|
// Block 0x64, offset 0x65
|
||||||
{value: 0x0000, lo: 0x01},
|
{value: 0x0000, lo: 0x01},
|
||||||
{value: 0x3000, lo: 0xb1, hi: 0xbf},
|
{value: 0x5000, lo: 0xb1, hi: 0xbf},
|
||||||
// Block 0x65, offset 0x66
|
// Block 0x65, offset 0x66
|
||||||
{value: 0x0000, lo: 0x02},
|
{value: 0x0000, lo: 0x02},
|
||||||
{value: 0x3000, lo: 0x80, hi: 0x8e},
|
{value: 0x5000, lo: 0x80, hi: 0x8e},
|
||||||
{value: 0x3000, lo: 0x92, hi: 0x9f},
|
{value: 0x5000, lo: 0x92, hi: 0x9f},
|
||||||
// Block 0x66, offset 0x67
|
// Block 0x66, offset 0x67
|
||||||
{value: 0x0000, lo: 0x02},
|
{value: 0x0000, lo: 0x02},
|
||||||
{value: 0x3000, lo: 0x80, hi: 0x9e},
|
{value: 0x5000, lo: 0x80, hi: 0x9e},
|
||||||
{value: 0x3000, lo: 0xa0, hi: 0xbf},
|
{value: 0x5000, lo: 0xa0, hi: 0xbf},
|
||||||
// Block 0x67, offset 0x68
|
// Block 0x67, offset 0x68
|
||||||
{value: 0x0000, lo: 0x02},
|
{value: 0x0000, lo: 0x02},
|
||||||
{value: 0x3000, lo: 0x80, hi: 0x87},
|
{value: 0x5000, lo: 0x80, hi: 0x87},
|
||||||
{value: 0x3000, lo: 0x90, hi: 0xbe},
|
{value: 0x5000, lo: 0x90, hi: 0xbe},
|
||||||
// Block 0x68, offset 0x69
|
// Block 0x68, offset 0x69
|
||||||
{value: 0x0000, lo: 0x01},
|
{value: 0x0000, lo: 0x01},
|
||||||
{value: 0x3000, lo: 0x80, hi: 0xbe},
|
{value: 0x5000, lo: 0x80, hi: 0xbe},
|
||||||
// Block 0x69, offset 0x6a
|
// Block 0x69, offset 0x6a
|
||||||
{value: 0x0000, lo: 0x02},
|
{value: 0x0000, lo: 0x02},
|
||||||
{value: 0x00e6, lo: 0xaf, hi: 0xaf},
|
{value: 0x00e6, lo: 0xaf, hi: 0xaf},
|
||||||
@ -6448,7 +6448,7 @@ var charInfoSparseValues = [757]valueRange{
|
|||||||
{value: 0x00e6, lo: 0xb0, hi: 0xb1},
|
{value: 0x00e6, lo: 0xb0, hi: 0xb1},
|
||||||
// Block 0x6b, offset 0x6c
|
// Block 0x6b, offset 0x6c
|
||||||
{value: 0x0000, lo: 0x01},
|
{value: 0x0000, lo: 0x01},
|
||||||
{value: 0x3000, lo: 0xb0, hi: 0xb0},
|
{value: 0x5000, lo: 0xb0, hi: 0xb0},
|
||||||
// Block 0x6c, offset 0x6d
|
// Block 0x6c, offset 0x6d
|
||||||
{value: 0x0000, lo: 0x01},
|
{value: 0x0000, lo: 0x01},
|
||||||
{value: 0x0009, lo: 0x86, hi: 0x86},
|
{value: 0x0009, lo: 0x86, hi: 0x86},
|
||||||
@ -6489,90 +6489,90 @@ var charInfoSparseValues = [757]valueRange{
|
|||||||
{value: 0x1100, lo: 0x80, hi: 0xa3},
|
{value: 0x1100, lo: 0x80, hi: 0xa3},
|
||||||
// Block 0x77, offset 0x78
|
// Block 0x77, offset 0x78
|
||||||
{value: 0x0000, lo: 0x01},
|
{value: 0x0000, lo: 0x01},
|
||||||
{value: 0x3300, lo: 0x80, hi: 0xbf},
|
{value: 0x5500, lo: 0x80, hi: 0xbf},
|
||||||
// Block 0x78, offset 0x79
|
// Block 0x78, offset 0x79
|
||||||
{value: 0x0000, lo: 0x09},
|
{value: 0x0000, lo: 0x09},
|
||||||
{value: 0x3300, lo: 0x80, hi: 0x8d},
|
{value: 0x5500, lo: 0x80, hi: 0x8d},
|
||||||
{value: 0x3300, lo: 0x90, hi: 0x90},
|
{value: 0x5500, lo: 0x90, hi: 0x90},
|
||||||
{value: 0x3300, lo: 0x92, hi: 0x92},
|
{value: 0x5500, lo: 0x92, hi: 0x92},
|
||||||
{value: 0x3300, lo: 0x95, hi: 0x9e},
|
{value: 0x5500, lo: 0x95, hi: 0x9e},
|
||||||
{value: 0x3300, lo: 0xa0, hi: 0xa0},
|
{value: 0x5500, lo: 0xa0, hi: 0xa0},
|
||||||
{value: 0x3300, lo: 0xa2, hi: 0xa2},
|
{value: 0x5500, lo: 0xa2, hi: 0xa2},
|
||||||
{value: 0x3300, lo: 0xa5, hi: 0xa6},
|
{value: 0x5500, lo: 0xa5, hi: 0xa6},
|
||||||
{value: 0x3300, lo: 0xaa, hi: 0xad},
|
{value: 0x5500, lo: 0xaa, hi: 0xad},
|
||||||
{value: 0x3300, lo: 0xb0, hi: 0xbf},
|
{value: 0x5500, lo: 0xb0, hi: 0xbf},
|
||||||
// Block 0x79, offset 0x7a
|
// Block 0x79, offset 0x7a
|
||||||
{value: 0x0000, lo: 0x02},
|
{value: 0x0000, lo: 0x02},
|
||||||
{value: 0x3300, lo: 0x80, hi: 0xad},
|
{value: 0x5500, lo: 0x80, hi: 0xad},
|
||||||
{value: 0x3300, lo: 0xb0, hi: 0xbf},
|
{value: 0x5500, lo: 0xb0, hi: 0xbf},
|
||||||
// Block 0x7a, offset 0x7b
|
// Block 0x7a, offset 0x7b
|
||||||
{value: 0x0000, lo: 0x01},
|
{value: 0x0000, lo: 0x01},
|
||||||
{value: 0x3300, lo: 0x80, hi: 0x99},
|
{value: 0x5500, lo: 0x80, hi: 0x99},
|
||||||
// Block 0x7b, offset 0x7c
|
// Block 0x7b, offset 0x7c
|
||||||
{value: 0x0000, lo: 0x09},
|
{value: 0x0000, lo: 0x09},
|
||||||
{value: 0x3000, lo: 0x80, hi: 0x86},
|
{value: 0x5000, lo: 0x80, hi: 0x86},
|
||||||
{value: 0x3000, lo: 0x93, hi: 0x97},
|
{value: 0x5000, lo: 0x93, hi: 0x97},
|
||||||
{value: 0x3300, lo: 0x9d, hi: 0x9d},
|
{value: 0x5500, lo: 0x9d, hi: 0x9d},
|
||||||
{value: 0x001a, lo: 0x9e, hi: 0x9e},
|
{value: 0x001a, lo: 0x9e, hi: 0x9e},
|
||||||
{value: 0x3300, lo: 0x9f, hi: 0x9f},
|
{value: 0x5500, lo: 0x9f, hi: 0x9f},
|
||||||
{value: 0x3000, lo: 0xa0, hi: 0xa9},
|
{value: 0x5000, lo: 0xa0, hi: 0xa9},
|
||||||
{value: 0x3300, lo: 0xaa, hi: 0xb6},
|
{value: 0x5500, lo: 0xaa, hi: 0xb6},
|
||||||
{value: 0x3300, lo: 0xb8, hi: 0xbc},
|
{value: 0x5500, lo: 0xb8, hi: 0xbc},
|
||||||
{value: 0x3300, lo: 0xbe, hi: 0xbe},
|
{value: 0x5500, lo: 0xbe, hi: 0xbe},
|
||||||
// Block 0x7c, offset 0x7d
|
// Block 0x7c, offset 0x7d
|
||||||
{value: 0x0000, lo: 0x04},
|
{value: 0x0000, lo: 0x04},
|
||||||
{value: 0x3300, lo: 0x80, hi: 0x81},
|
{value: 0x5500, lo: 0x80, hi: 0x81},
|
||||||
{value: 0x3300, lo: 0x83, hi: 0x84},
|
{value: 0x5500, lo: 0x83, hi: 0x84},
|
||||||
{value: 0x3300, lo: 0x86, hi: 0x8e},
|
{value: 0x5500, lo: 0x86, hi: 0x8e},
|
||||||
{value: 0x3000, lo: 0x8f, hi: 0xbf},
|
{value: 0x5000, lo: 0x8f, hi: 0xbf},
|
||||||
// Block 0x7d, offset 0x7e
|
// Block 0x7d, offset 0x7e
|
||||||
{value: 0x0000, lo: 0x01},
|
{value: 0x0000, lo: 0x01},
|
||||||
{value: 0x3000, lo: 0x80, hi: 0xb1},
|
{value: 0x5000, lo: 0x80, hi: 0xb1},
|
||||||
// Block 0x7e, offset 0x7f
|
// Block 0x7e, offset 0x7f
|
||||||
{value: 0x0000, lo: 0x01},
|
{value: 0x0000, lo: 0x01},
|
||||||
{value: 0x3000, lo: 0x93, hi: 0xbf},
|
{value: 0x5000, lo: 0x93, hi: 0xbf},
|
||||||
// Block 0x7f, offset 0x80
|
// Block 0x7f, offset 0x80
|
||||||
{value: 0x0000, lo: 0x01},
|
{value: 0x0000, lo: 0x01},
|
||||||
{value: 0x3000, lo: 0x80, hi: 0xbd},
|
{value: 0x5000, lo: 0x80, hi: 0xbd},
|
||||||
// Block 0x80, offset 0x81
|
// Block 0x80, offset 0x81
|
||||||
{value: 0x0000, lo: 0x01},
|
{value: 0x0000, lo: 0x01},
|
||||||
{value: 0x3000, lo: 0x90, hi: 0xbf},
|
{value: 0x5000, lo: 0x90, hi: 0xbf},
|
||||||
// Block 0x81, offset 0x82
|
// Block 0x81, offset 0x82
|
||||||
{value: 0x0000, lo: 0x02},
|
{value: 0x0000, lo: 0x02},
|
||||||
{value: 0x3000, lo: 0x80, hi: 0x8f},
|
{value: 0x5000, lo: 0x80, hi: 0x8f},
|
||||||
{value: 0x3000, lo: 0x92, hi: 0xbf},
|
{value: 0x5000, lo: 0x92, hi: 0xbf},
|
||||||
// Block 0x82, offset 0x83
|
// Block 0x82, offset 0x83
|
||||||
{value: 0x0000, lo: 0x02},
|
{value: 0x0000, lo: 0x02},
|
||||||
{value: 0x3000, lo: 0x80, hi: 0x87},
|
{value: 0x5000, lo: 0x80, hi: 0x87},
|
||||||
{value: 0x3000, lo: 0xb0, hi: 0xbc},
|
{value: 0x5000, lo: 0xb0, hi: 0xbc},
|
||||||
// Block 0x83, offset 0x84
|
// Block 0x83, offset 0x84
|
||||||
{value: 0x0000, lo: 0x03},
|
{value: 0x0000, lo: 0x03},
|
||||||
{value: 0x3000, lo: 0x90, hi: 0x99},
|
{value: 0x5000, lo: 0x90, hi: 0x99},
|
||||||
{value: 0x00e6, lo: 0xa0, hi: 0xa6},
|
{value: 0x00e6, lo: 0xa0, hi: 0xa6},
|
||||||
{value: 0x3000, lo: 0xb0, hi: 0xbf},
|
{value: 0x5000, lo: 0xb0, hi: 0xbf},
|
||||||
// Block 0x84, offset 0x85
|
// Block 0x84, offset 0x85
|
||||||
{value: 0x0000, lo: 0x07},
|
{value: 0x0000, lo: 0x07},
|
||||||
{value: 0x3000, lo: 0x80, hi: 0x84},
|
{value: 0x5000, lo: 0x80, hi: 0x84},
|
||||||
{value: 0x3000, lo: 0x87, hi: 0x92},
|
{value: 0x5000, lo: 0x87, hi: 0x92},
|
||||||
{value: 0x3000, lo: 0x94, hi: 0xa6},
|
{value: 0x5000, lo: 0x94, hi: 0xa6},
|
||||||
{value: 0x3000, lo: 0xa8, hi: 0xab},
|
{value: 0x5000, lo: 0xa8, hi: 0xab},
|
||||||
{value: 0x3000, lo: 0xb0, hi: 0xb2},
|
{value: 0x5000, lo: 0xb0, hi: 0xb2},
|
||||||
{value: 0x3000, lo: 0xb4, hi: 0xb4},
|
{value: 0x5000, lo: 0xb4, hi: 0xb4},
|
||||||
{value: 0x3000, lo: 0xb6, hi: 0xbf},
|
{value: 0x5000, lo: 0xb6, hi: 0xbf},
|
||||||
// Block 0x85, offset 0x86
|
// Block 0x85, offset 0x86
|
||||||
{value: 0x0000, lo: 0x01},
|
{value: 0x0000, lo: 0x01},
|
||||||
{value: 0x3000, lo: 0x80, hi: 0xbc},
|
{value: 0x5000, lo: 0x80, hi: 0xbc},
|
||||||
// Block 0x86, offset 0x87
|
// Block 0x86, offset 0x87
|
||||||
{value: 0x0000, lo: 0x01},
|
{value: 0x0000, lo: 0x01},
|
||||||
{value: 0x3000, lo: 0x81, hi: 0xbf},
|
{value: 0x5000, lo: 0x81, hi: 0xbf},
|
||||||
// Block 0x87, offset 0x88
|
// Block 0x87, offset 0x88
|
||||||
{value: 0x0000, lo: 0x06},
|
{value: 0x0000, lo: 0x06},
|
||||||
{value: 0x3000, lo: 0x82, hi: 0x87},
|
{value: 0x5000, lo: 0x82, hi: 0x87},
|
||||||
{value: 0x3000, lo: 0x8a, hi: 0x8f},
|
{value: 0x5000, lo: 0x8a, hi: 0x8f},
|
||||||
{value: 0x3000, lo: 0x92, hi: 0x97},
|
{value: 0x5000, lo: 0x92, hi: 0x97},
|
||||||
{value: 0x3000, lo: 0x9a, hi: 0x9c},
|
{value: 0x5000, lo: 0x9a, hi: 0x9c},
|
||||||
{value: 0x3000, lo: 0xa0, hi: 0xa6},
|
{value: 0x5000, lo: 0xa0, hi: 0xa6},
|
||||||
{value: 0x3000, lo: 0xa8, hi: 0xae},
|
{value: 0x5000, lo: 0xa8, hi: 0xae},
|
||||||
// Block 0x88, offset 0x89
|
// Block 0x88, offset 0x89
|
||||||
{value: 0x0000, lo: 0x01},
|
{value: 0x0000, lo: 0x01},
|
||||||
{value: 0x00dc, lo: 0xbd, hi: 0xbd},
|
{value: 0x00dc, lo: 0xbd, hi: 0xbd},
|
||||||
@ -6594,7 +6594,7 @@ var charInfoSparseValues = [757]valueRange{
|
|||||||
{value: 0x0009, lo: 0xb9, hi: 0xba},
|
{value: 0x0009, lo: 0xb9, hi: 0xba},
|
||||||
// Block 0x8b, offset 0x8c
|
// Block 0x8b, offset 0x8c
|
||||||
{value: 0x0000, lo: 0x06},
|
{value: 0x0000, lo: 0x06},
|
||||||
{value: 0x3300, lo: 0x9e, hi: 0xa4},
|
{value: 0x5500, lo: 0x9e, hi: 0xa4},
|
||||||
{value: 0x00d8, lo: 0xa5, hi: 0xa6},
|
{value: 0x00d8, lo: 0xa5, hi: 0xa6},
|
||||||
{value: 0x0001, lo: 0xa7, hi: 0xa9},
|
{value: 0x0001, lo: 0xa7, hi: 0xa9},
|
||||||
{value: 0x00e2, lo: 0xad, hi: 0xad},
|
{value: 0x00e2, lo: 0xad, hi: 0xad},
|
||||||
@ -6606,75 +6606,75 @@ var charInfoSparseValues = [757]valueRange{
|
|||||||
{value: 0x00e6, lo: 0x85, hi: 0x89},
|
{value: 0x00e6, lo: 0x85, hi: 0x89},
|
||||||
{value: 0x00dc, lo: 0x8a, hi: 0x8b},
|
{value: 0x00dc, lo: 0x8a, hi: 0x8b},
|
||||||
{value: 0x00e6, lo: 0xaa, hi: 0xad},
|
{value: 0x00e6, lo: 0xaa, hi: 0xad},
|
||||||
{value: 0x3300, lo: 0xbb, hi: 0xbf},
|
{value: 0x5500, lo: 0xbb, hi: 0xbf},
|
||||||
// Block 0x8d, offset 0x8e
|
// Block 0x8d, offset 0x8e
|
||||||
{value: 0x0000, lo: 0x01},
|
{value: 0x0000, lo: 0x01},
|
||||||
{value: 0x3300, lo: 0x80, hi: 0x80},
|
{value: 0x5500, lo: 0x80, hi: 0x80},
|
||||||
// Block 0x8e, offset 0x8f
|
// Block 0x8e, offset 0x8f
|
||||||
{value: 0x0000, lo: 0x01},
|
{value: 0x0000, lo: 0x01},
|
||||||
{value: 0x00e6, lo: 0x82, hi: 0x84},
|
{value: 0x00e6, lo: 0x82, hi: 0x84},
|
||||||
// Block 0x8f, offset 0x90
|
// Block 0x8f, offset 0x90
|
||||||
{value: 0x0000, lo: 0x02},
|
{value: 0x0000, lo: 0x02},
|
||||||
{value: 0x3000, lo: 0x80, hi: 0x94},
|
{value: 0x5000, lo: 0x80, hi: 0x94},
|
||||||
{value: 0x3000, lo: 0x96, hi: 0xbf},
|
{value: 0x5000, lo: 0x96, hi: 0xbf},
|
||||||
// Block 0x90, offset 0x91
|
// Block 0x90, offset 0x91
|
||||||
{value: 0x0000, lo: 0x08},
|
{value: 0x0000, lo: 0x08},
|
||||||
{value: 0x3000, lo: 0x80, hi: 0x9c},
|
{value: 0x5000, lo: 0x80, hi: 0x9c},
|
||||||
{value: 0x3000, lo: 0x9e, hi: 0x9f},
|
{value: 0x5000, lo: 0x9e, hi: 0x9f},
|
||||||
{value: 0x3000, lo: 0xa2, hi: 0xa2},
|
{value: 0x5000, lo: 0xa2, hi: 0xa2},
|
||||||
{value: 0x3000, lo: 0xa5, hi: 0xa6},
|
{value: 0x5000, lo: 0xa5, hi: 0xa6},
|
||||||
{value: 0x3000, lo: 0xa9, hi: 0xac},
|
{value: 0x5000, lo: 0xa9, hi: 0xac},
|
||||||
{value: 0x3000, lo: 0xae, hi: 0xb9},
|
{value: 0x5000, lo: 0xae, hi: 0xb9},
|
||||||
{value: 0x3000, lo: 0xbb, hi: 0xbb},
|
{value: 0x5000, lo: 0xbb, hi: 0xbb},
|
||||||
{value: 0x3000, lo: 0xbd, hi: 0xbf},
|
{value: 0x5000, lo: 0xbd, hi: 0xbf},
|
||||||
// Block 0x91, offset 0x92
|
// Block 0x91, offset 0x92
|
||||||
{value: 0x0000, lo: 0x02},
|
{value: 0x0000, lo: 0x02},
|
||||||
{value: 0x3000, lo: 0x80, hi: 0x83},
|
{value: 0x5000, lo: 0x80, hi: 0x83},
|
||||||
{value: 0x3000, lo: 0x85, hi: 0xbf},
|
{value: 0x5000, lo: 0x85, hi: 0xbf},
|
||||||
// Block 0x92, offset 0x93
|
// Block 0x92, offset 0x93
|
||||||
{value: 0x0000, lo: 0x06},
|
{value: 0x0000, lo: 0x06},
|
||||||
{value: 0x3000, lo: 0x80, hi: 0x85},
|
{value: 0x5000, lo: 0x80, hi: 0x85},
|
||||||
{value: 0x3000, lo: 0x87, hi: 0x8a},
|
{value: 0x5000, lo: 0x87, hi: 0x8a},
|
||||||
{value: 0x3000, lo: 0x8d, hi: 0x94},
|
{value: 0x5000, lo: 0x8d, hi: 0x94},
|
||||||
{value: 0x3000, lo: 0x96, hi: 0x9c},
|
{value: 0x5000, lo: 0x96, hi: 0x9c},
|
||||||
{value: 0x3000, lo: 0x9e, hi: 0xb9},
|
{value: 0x5000, lo: 0x9e, hi: 0xb9},
|
||||||
{value: 0x3000, lo: 0xbb, hi: 0xbe},
|
{value: 0x5000, lo: 0xbb, hi: 0xbe},
|
||||||
// Block 0x93, offset 0x94
|
// Block 0x93, offset 0x94
|
||||||
{value: 0x0000, lo: 0x04},
|
{value: 0x0000, lo: 0x04},
|
||||||
{value: 0x3000, lo: 0x80, hi: 0x84},
|
{value: 0x5000, lo: 0x80, hi: 0x84},
|
||||||
{value: 0x3000, lo: 0x86, hi: 0x86},
|
{value: 0x5000, lo: 0x86, hi: 0x86},
|
||||||
{value: 0x3000, lo: 0x8a, hi: 0x90},
|
{value: 0x5000, lo: 0x8a, hi: 0x90},
|
||||||
{value: 0x3000, lo: 0x92, hi: 0xbf},
|
{value: 0x5000, lo: 0x92, hi: 0xbf},
|
||||||
// Block 0x94, offset 0x95
|
// Block 0x94, offset 0x95
|
||||||
{value: 0x0000, lo: 0x02},
|
{value: 0x0000, lo: 0x02},
|
||||||
{value: 0x3000, lo: 0x80, hi: 0xa5},
|
{value: 0x5000, lo: 0x80, hi: 0xa5},
|
||||||
{value: 0x3000, lo: 0xa8, hi: 0xbf},
|
{value: 0x5000, lo: 0xa8, hi: 0xbf},
|
||||||
// Block 0x95, offset 0x96
|
// Block 0x95, offset 0x96
|
||||||
{value: 0x0000, lo: 0x02},
|
{value: 0x0000, lo: 0x02},
|
||||||
{value: 0x3000, lo: 0x80, hi: 0x8b},
|
{value: 0x5000, lo: 0x80, hi: 0x8b},
|
||||||
{value: 0x3000, lo: 0x8e, hi: 0xbf},
|
{value: 0x5000, lo: 0x8e, hi: 0xbf},
|
||||||
// Block 0x96, offset 0x97
|
// Block 0x96, offset 0x97
|
||||||
{value: 0x0000, lo: 0x03},
|
{value: 0x0000, lo: 0x03},
|
||||||
{value: 0x3000, lo: 0x80, hi: 0x8a},
|
{value: 0x5000, lo: 0x80, hi: 0x8a},
|
||||||
{value: 0x3000, lo: 0x90, hi: 0xae},
|
{value: 0x5000, lo: 0x90, hi: 0xae},
|
||||||
{value: 0x3000, lo: 0xb0, hi: 0xbf},
|
{value: 0x5000, lo: 0xb0, hi: 0xbf},
|
||||||
// Block 0x97, offset 0x98
|
// Block 0x97, offset 0x98
|
||||||
{value: 0x0000, lo: 0x01},
|
{value: 0x0000, lo: 0x01},
|
||||||
{value: 0x3000, lo: 0x80, hi: 0x8f},
|
{value: 0x5000, lo: 0x80, hi: 0x8f},
|
||||||
// Block 0x98, offset 0x99
|
// Block 0x98, offset 0x99
|
||||||
{value: 0x0000, lo: 0x01},
|
{value: 0x0000, lo: 0x01},
|
||||||
{value: 0x3000, lo: 0x90, hi: 0x90},
|
{value: 0x5000, lo: 0x90, hi: 0x90},
|
||||||
// Block 0x99, offset 0x9a
|
// Block 0x99, offset 0x9a
|
||||||
{value: 0x0000, lo: 0x02},
|
{value: 0x0000, lo: 0x02},
|
||||||
{value: 0x3000, lo: 0x80, hi: 0x82},
|
{value: 0x5000, lo: 0x80, hi: 0x82},
|
||||||
{value: 0x3000, lo: 0x90, hi: 0xba},
|
{value: 0x5000, lo: 0x90, hi: 0xba},
|
||||||
// Block 0x9a, offset 0x9b
|
// Block 0x9a, offset 0x9b
|
||||||
{value: 0x0000, lo: 0x02},
|
{value: 0x0000, lo: 0x02},
|
||||||
{value: 0x3000, lo: 0x80, hi: 0x88},
|
{value: 0x5000, lo: 0x80, hi: 0x88},
|
||||||
{value: 0x3000, lo: 0x90, hi: 0x91},
|
{value: 0x5000, lo: 0x90, hi: 0x91},
|
||||||
// Block 0x9b, offset 0x9c
|
// Block 0x9b, offset 0x9c
|
||||||
{value: 0x0000, lo: 0x01},
|
{value: 0x0000, lo: 0x01},
|
||||||
{value: 0x3300, lo: 0x80, hi: 0x9d},
|
{value: 0x5500, lo: 0x80, hi: 0x9d},
|
||||||
}
|
}
|
||||||
|
|
||||||
// charInfoLookup: 1152 bytes
|
// charInfoLookup: 1152 bytes
|
||||||
|
Loading…
Reference in New Issue
Block a user