aboutsummaryrefslogtreecommitdiffhomepage
path: root/vendor/golang.org/x/text/unicode/bidi
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/golang.org/x/text/unicode/bidi')
-rw-r--r--vendor/golang.org/x/text/unicode/bidi/bidi.go198
-rw-r--r--vendor/golang.org/x/text/unicode/bidi/bracket.go335
-rw-r--r--vendor/golang.org/x/text/unicode/bidi/core.go1058
-rw-r--r--vendor/golang.org/x/text/unicode/bidi/gen.go133
-rw-r--r--vendor/golang.org/x/text/unicode/bidi/gen_ranges.go57
-rw-r--r--vendor/golang.org/x/text/unicode/bidi/gen_trieval.go64
-rw-r--r--vendor/golang.org/x/text/unicode/bidi/prop.go206
-rw-r--r--vendor/golang.org/x/text/unicode/bidi/tables10.0.0.go1815
-rw-r--r--vendor/golang.org/x/text/unicode/bidi/tables9.0.0.go1781
-rw-r--r--vendor/golang.org/x/text/unicode/bidi/trieval.go60
10 files changed, 5707 insertions, 0 deletions
diff --git a/vendor/golang.org/x/text/unicode/bidi/bidi.go b/vendor/golang.org/x/text/unicode/bidi/bidi.go
new file mode 100644
index 0000000..3fc4a62
--- /dev/null
+++ b/vendor/golang.org/x/text/unicode/bidi/bidi.go
@@ -0,0 +1,198 @@
1// Copyright 2015 The Go Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style
3// license that can be found in the LICENSE file.
4
5//go:generate go run gen.go gen_trieval.go gen_ranges.go
6
7// Package bidi contains functionality for bidirectional text support.
8//
9// See http://www.unicode.org/reports/tr9.
10//
11// NOTE: UNDER CONSTRUCTION. This API may change in backwards incompatible ways
12// and without notice.
13package bidi // import "golang.org/x/text/unicode/bidi"
14
15// TODO:
16// The following functionality would not be hard to implement, but hinges on
17// the definition of a Segmenter interface. For now this is up to the user.
18// - Iterate over paragraphs
19// - Segmenter to iterate over runs directly from a given text.
20// Also:
21// - Transformer for reordering?
22// - Transformer (validator, really) for Bidi Rule.
23
24// This API tries to avoid dealing with embedding levels for now. Under the hood
25// these will be computed, but the question is to which extent the user should
26// know they exist. We should at some point allow the user to specify an
27// embedding hierarchy, though.
28
29// A Direction indicates the overall flow of text.
30type Direction int
31
32const (
33 // LeftToRight indicates the text contains no right-to-left characters and
34 // that either there are some left-to-right characters or the option
35 // DefaultDirection(LeftToRight) was passed.
36 LeftToRight Direction = iota
37
38 // RightToLeft indicates the text contains no left-to-right characters and
39 // that either there are some right-to-left characters or the option
40 // DefaultDirection(RightToLeft) was passed.
41 RightToLeft
42
43 // Mixed indicates text contains both left-to-right and right-to-left
44 // characters.
45 Mixed
46
47 // Neutral means that text contains no left-to-right and right-to-left
48 // characters and that no default direction has been set.
49 Neutral
50)
51
52type options struct{}
53
54// An Option is an option for Bidi processing.
55type Option func(*options)
56
57// ICU allows the user to define embedding levels. This may be used, for example,
58// to use hierarchical structure of markup languages to define embeddings.
59// The following option may be a way to expose this functionality in this API.
60// // LevelFunc sets a function that associates nesting levels with the given text.
61// // The levels function will be called with monotonically increasing values for p.
62// func LevelFunc(levels func(p int) int) Option {
63// panic("unimplemented")
64// }
65
66// DefaultDirection sets the default direction for a Paragraph. The direction is
67// overridden if the text contains directional characters.
68func DefaultDirection(d Direction) Option {
69 panic("unimplemented")
70}
71
72// A Paragraph holds a single Paragraph for Bidi processing.
73type Paragraph struct {
74 // buffers
75}
76
77// SetBytes configures p for the given paragraph text. It replaces text
78// previously set by SetBytes or SetString. If b contains a paragraph separator
79// it will only process the first paragraph and report the number of bytes
80// consumed from b including this separator. Error may be non-nil if options are
81// given.
82func (p *Paragraph) SetBytes(b []byte, opts ...Option) (n int, err error) {
83 panic("unimplemented")
84}
85
86// SetString configures p for the given paragraph text. It replaces text
87// previously set by SetBytes or SetString. If b contains a paragraph separator
88// it will only process the first paragraph and report the number of bytes
89// consumed from b including this separator. Error may be non-nil if options are
90// given.
91func (p *Paragraph) SetString(s string, opts ...Option) (n int, err error) {
92 panic("unimplemented")
93}
94
95// IsLeftToRight reports whether the principle direction of rendering for this
96// paragraphs is left-to-right. If this returns false, the principle direction
97// of rendering is right-to-left.
98func (p *Paragraph) IsLeftToRight() bool {
99 panic("unimplemented")
100}
101
102// Direction returns the direction of the text of this paragraph.
103//
104// The direction may be LeftToRight, RightToLeft, Mixed, or Neutral.
105func (p *Paragraph) Direction() Direction {
106 panic("unimplemented")
107}
108
109// RunAt reports the Run at the given position of the input text.
110//
111// This method can be used for computing line breaks on paragraphs.
112func (p *Paragraph) RunAt(pos int) Run {
113 panic("unimplemented")
114}
115
116// Order computes the visual ordering of all the runs in a Paragraph.
117func (p *Paragraph) Order() (Ordering, error) {
118 panic("unimplemented")
119}
120
121// Line computes the visual ordering of runs for a single line starting and
122// ending at the given positions in the original text.
123func (p *Paragraph) Line(start, end int) (Ordering, error) {
124 panic("unimplemented")
125}
126
127// An Ordering holds the computed visual order of runs of a Paragraph. Calling
128// SetBytes or SetString on the originating Paragraph invalidates an Ordering.
129// The methods of an Ordering should only be called by one goroutine at a time.
130type Ordering struct{}
131
132// Direction reports the directionality of the runs.
133//
134// The direction may be LeftToRight, RightToLeft, Mixed, or Neutral.
135func (o *Ordering) Direction() Direction {
136 panic("unimplemented")
137}
138
139// NumRuns returns the number of runs.
140func (o *Ordering) NumRuns() int {
141 panic("unimplemented")
142}
143
144// Run returns the ith run within the ordering.
145func (o *Ordering) Run(i int) Run {
146 panic("unimplemented")
147}
148
149// TODO: perhaps with options.
150// // Reorder creates a reader that reads the runes in visual order per character.
151// // Modifiers remain after the runes they modify.
152// func (l *Runs) Reorder() io.Reader {
153// panic("unimplemented")
154// }
155
156// A Run is a continuous sequence of characters of a single direction.
157type Run struct {
158}
159
160// String returns the text of the run in its original order.
161func (r *Run) String() string {
162 panic("unimplemented")
163}
164
165// Bytes returns the text of the run in its original order.
166func (r *Run) Bytes() []byte {
167 panic("unimplemented")
168}
169
170// TODO: methods for
171// - Display order
172// - headers and footers
173// - bracket replacement.
174
175// Direction reports the direction of the run.
176func (r *Run) Direction() Direction {
177 panic("unimplemented")
178}
179
180// Position of the Run within the text passed to SetBytes or SetString of the
181// originating Paragraph value.
182func (r *Run) Pos() (start, end int) {
183 panic("unimplemented")
184}
185
186// AppendReverse reverses the order of characters of in, appends them to out,
187// and returns the result. Modifiers will still follow the runes they modify.
188// Brackets are replaced with their counterparts.
189func AppendReverse(out, in []byte) []byte {
190 panic("unimplemented")
191}
192
193// ReverseString reverses the order of characters in s and returns a new string.
194// Modifiers will still follow the runes they modify. Brackets are replaced with
195// their counterparts.
196func ReverseString(s string) string {
197 panic("unimplemented")
198}
diff --git a/vendor/golang.org/x/text/unicode/bidi/bracket.go b/vendor/golang.org/x/text/unicode/bidi/bracket.go
new file mode 100644
index 0000000..601e259
--- /dev/null
+++ b/vendor/golang.org/x/text/unicode/bidi/bracket.go
@@ -0,0 +1,335 @@
1// Copyright 2015 The Go Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style
3// license that can be found in the LICENSE file.
4
5package bidi
6
7import (
8 "container/list"
9 "fmt"
10 "sort"
11)
12
13// This file contains a port of the reference implementation of the
14// Bidi Parentheses Algorithm:
15// http://www.unicode.org/Public/PROGRAMS/BidiReferenceJava/BidiPBAReference.java
16//
17// The implementation in this file covers definitions BD14-BD16 and rule N0
18// of UAX#9.
19//
20// Some preprocessing is done for each rune before data is passed to this
21// algorithm:
22// - opening and closing brackets are identified
23// - a bracket pair type, like '(' and ')' is assigned a unique identifier that
24// is identical for the opening and closing bracket. It is left to do these
25// mappings.
26// - The BPA algorithm requires that bracket characters that are canonical
27// equivalents of each other be able to be substituted for each other.
28// It is the responsibility of the caller to do this canonicalization.
29//
30// In implementing BD16, this implementation departs slightly from the "logical"
31// algorithm defined in UAX#9. In particular, the stack referenced there
32// supports operations that go beyond a "basic" stack. An equivalent
33// implementation based on a linked list is used here.
34
35// Bidi_Paired_Bracket_Type
36// BD14. An opening paired bracket is a character whose
37// Bidi_Paired_Bracket_Type property value is Open.
38//
39// BD15. A closing paired bracket is a character whose
40// Bidi_Paired_Bracket_Type property value is Close.
41type bracketType byte
42
43const (
44 bpNone bracketType = iota
45 bpOpen
46 bpClose
47)
48
49// bracketPair holds a pair of index values for opening and closing bracket
50// location of a bracket pair.
51type bracketPair struct {
52 opener int
53 closer int
54}
55
56func (b *bracketPair) String() string {
57 return fmt.Sprintf("(%v, %v)", b.opener, b.closer)
58}
59
60// bracketPairs is a slice of bracketPairs with a sort.Interface implementation.
61type bracketPairs []bracketPair
62
63func (b bracketPairs) Len() int { return len(b) }
64func (b bracketPairs) Swap(i, j int) { b[i], b[j] = b[j], b[i] }
65func (b bracketPairs) Less(i, j int) bool { return b[i].opener < b[j].opener }
66
67// resolvePairedBrackets runs the paired bracket part of the UBA algorithm.
68//
69// For each rune, it takes the indexes into the original string, the class the
70// bracket type (in pairTypes) and the bracket identifier (pairValues). It also
71// takes the direction type for the start-of-sentence and the embedding level.
72//
73// The identifiers for bracket types are the rune of the canonicalized opening
74// bracket for brackets (open or close) or 0 for runes that are not brackets.
75func resolvePairedBrackets(s *isolatingRunSequence) {
76 p := bracketPairer{
77 sos: s.sos,
78 openers: list.New(),
79 codesIsolatedRun: s.types,
80 indexes: s.indexes,
81 }
82 dirEmbed := L
83 if s.level&1 != 0 {
84 dirEmbed = R
85 }
86 p.locateBrackets(s.p.pairTypes, s.p.pairValues)
87 p.resolveBrackets(dirEmbed, s.p.initialTypes)
88}
89
90type bracketPairer struct {
91 sos Class // direction corresponding to start of sequence
92
93 // The following is a restatement of BD 16 using non-algorithmic language.
94 //
95 // A bracket pair is a pair of characters consisting of an opening
96 // paired bracket and a closing paired bracket such that the
97 // Bidi_Paired_Bracket property value of the former equals the latter,
98 // subject to the following constraints.
99 // - both characters of a pair occur in the same isolating run sequence
100 // - the closing character of a pair follows the opening character
101 // - any bracket character can belong at most to one pair, the earliest possible one
102 // - any bracket character not part of a pair is treated like an ordinary character
103 // - pairs may nest properly, but their spans may not overlap otherwise
104
105 // Bracket characters with canonical decompositions are supposed to be
106 // treated as if they had been normalized, to allow normalized and non-
107 // normalized text to give the same result. In this implementation that step
108 // is pushed out to the caller. The caller has to ensure that the pairValue
109 // slices contain the rune of the opening bracket after normalization for
110 // any opening or closing bracket.
111
112 openers *list.List // list of positions for opening brackets
113
114 // bracket pair positions sorted by location of opening bracket
115 pairPositions bracketPairs
116
117 codesIsolatedRun []Class // directional bidi codes for an isolated run
118 indexes []int // array of index values into the original string
119
120}
121
122// matchOpener reports whether characters at given positions form a matching
123// bracket pair.
124func (p *bracketPairer) matchOpener(pairValues []rune, opener, closer int) bool {
125 return pairValues[p.indexes[opener]] == pairValues[p.indexes[closer]]
126}
127
128const maxPairingDepth = 63
129
130// locateBrackets locates matching bracket pairs according to BD16.
131//
132// This implementation uses a linked list instead of a stack, because, while
133// elements are added at the front (like a push) they are not generally removed
134// in atomic 'pop' operations, reducing the benefit of the stack archetype.
135func (p *bracketPairer) locateBrackets(pairTypes []bracketType, pairValues []rune) {
136 // traverse the run
137 // do that explicitly (not in a for-each) so we can record position
138 for i, index := range p.indexes {
139
140 // look at the bracket type for each character
141 if pairTypes[index] == bpNone || p.codesIsolatedRun[i] != ON {
142 // continue scanning
143 continue
144 }
145 switch pairTypes[index] {
146 case bpOpen:
147 // check if maximum pairing depth reached
148 if p.openers.Len() == maxPairingDepth {
149 p.openers.Init()
150 return
151 }
152 // remember opener location, most recent first
153 p.openers.PushFront(i)
154
155 case bpClose:
156 // see if there is a match
157 count := 0
158 for elem := p.openers.Front(); elem != nil; elem = elem.Next() {
159 count++
160 opener := elem.Value.(int)
161 if p.matchOpener(pairValues, opener, i) {
162 // if the opener matches, add nested pair to the ordered list
163 p.pairPositions = append(p.pairPositions, bracketPair{opener, i})
164 // remove up to and including matched opener
165 for ; count > 0; count-- {
166 p.openers.Remove(p.openers.Front())
167 }
168 break
169 }
170 }
171 sort.Sort(p.pairPositions)
172 // if we get here, the closing bracket matched no openers
173 // and gets ignored
174 }
175 }
176}
177
178// Bracket pairs within an isolating run sequence are processed as units so
179// that both the opening and the closing paired bracket in a pair resolve to
180// the same direction.
181//
182// N0. Process bracket pairs in an isolating run sequence sequentially in
183// the logical order of the text positions of the opening paired brackets
184// using the logic given below. Within this scope, bidirectional types EN
185// and AN are treated as R.
186//
187// Identify the bracket pairs in the current isolating run sequence
188// according to BD16. For each bracket-pair element in the list of pairs of
189// text positions:
190//
191// a Inspect the bidirectional types of the characters enclosed within the
192// bracket pair.
193//
194// b If any strong type (either L or R) matching the embedding direction is
195// found, set the type for both brackets in the pair to match the embedding
196// direction.
197//
198// o [ e ] o -> o e e e o
199//
200// o [ o e ] -> o e o e e
201//
202// o [ NI e ] -> o e NI e e
203//
204// c Otherwise, if a strong type (opposite the embedding direction) is
205// found, test for adjacent strong types as follows: 1 First, check
206// backwards before the opening paired bracket until the first strong type
207// (L, R, or sos) is found. If that first preceding strong type is opposite
208// the embedding direction, then set the type for both brackets in the pair
209// to that type. 2 Otherwise, set the type for both brackets in the pair to
210// the embedding direction.
211//
212// o [ o ] e -> o o o o e
213//
214// o [ o NI ] o -> o o o NI o o
215//
216// e [ o ] o -> e e o e o
217//
218// e [ o ] e -> e e o e e
219//
220// e ( o [ o ] NI ) e -> e e o o o o NI e e
221//
222// d Otherwise, do not set the type for the current bracket pair. Note that
223// if the enclosed text contains no strong types the paired brackets will
224// both resolve to the same level when resolved individually using rules N1
225// and N2.
226//
227// e ( NI ) o -> e ( NI ) o
228
229// getStrongTypeN0 maps character's directional code to strong type as required
230// by rule N0.
231//
232// TODO: have separate type for "strong" directionality.
233func (p *bracketPairer) getStrongTypeN0(index int) Class {
234 switch p.codesIsolatedRun[index] {
235 // in the scope of N0, number types are treated as R
236 case EN, AN, AL, R:
237 return R
238 case L:
239 return L
240 default:
241 return ON
242 }
243}
244
245// classifyPairContent reports the strong types contained inside a Bracket Pair,
246// assuming the given embedding direction.
247//
248// It returns ON if no strong type is found. If a single strong type is found,
249// it returns this this type. Otherwise it returns the embedding direction.
250//
251// TODO: use separate type for "strong" directionality.
252func (p *bracketPairer) classifyPairContent(loc bracketPair, dirEmbed Class) Class {
253 dirOpposite := ON
254 for i := loc.opener + 1; i < loc.closer; i++ {
255 dir := p.getStrongTypeN0(i)
256 if dir == ON {
257 continue
258 }
259 if dir == dirEmbed {
260 return dir // type matching embedding direction found
261 }
262 dirOpposite = dir
263 }
264 // return ON if no strong type found, or class opposite to dirEmbed
265 return dirOpposite
266}
267
268// classBeforePair determines which strong types are present before a Bracket
269// Pair. Return R or L if strong type found, otherwise ON.
270func (p *bracketPairer) classBeforePair(loc bracketPair) Class {
271 for i := loc.opener - 1; i >= 0; i-- {
272 if dir := p.getStrongTypeN0(i); dir != ON {
273 return dir
274 }
275 }
276 // no strong types found, return sos
277 return p.sos
278}
279
280// assignBracketType implements rule N0 for a single bracket pair.
281func (p *bracketPairer) assignBracketType(loc bracketPair, dirEmbed Class, initialTypes []Class) {
282 // rule "N0, a", inspect contents of pair
283 dirPair := p.classifyPairContent(loc, dirEmbed)
284
285 // dirPair is now L, R, or N (no strong type found)
286
287 // the following logical tests are performed out of order compared to
288 // the statement of the rules but yield the same results
289 if dirPair == ON {
290 return // case "d" - nothing to do
291 }
292
293 if dirPair != dirEmbed {
294 // case "c": strong type found, opposite - check before (c.1)
295 dirPair = p.classBeforePair(loc)
296 if dirPair == dirEmbed || dirPair == ON {
297 // no strong opposite type found before - use embedding (c.2)
298 dirPair = dirEmbed
299 }
300 }
301 // else: case "b", strong type found matching embedding,
302 // no explicit action needed, as dirPair is already set to embedding
303 // direction
304
305 // set the bracket types to the type found
306 p.setBracketsToType(loc, dirPair, initialTypes)
307}
308
309func (p *bracketPairer) setBracketsToType(loc bracketPair, dirPair Class, initialTypes []Class) {
310 p.codesIsolatedRun[loc.opener] = dirPair
311 p.codesIsolatedRun[loc.closer] = dirPair
312
313 for i := loc.opener + 1; i < loc.closer; i++ {
314 index := p.indexes[i]
315 if initialTypes[index] != NSM {
316 break
317 }
318 p.codesIsolatedRun[i] = dirPair
319 }
320
321 for i := loc.closer + 1; i < len(p.indexes); i++ {
322 index := p.indexes[i]
323 if initialTypes[index] != NSM {
324 break
325 }
326 p.codesIsolatedRun[i] = dirPair
327 }
328}
329
330// resolveBrackets implements rule N0 for a list of pairs.
331func (p *bracketPairer) resolveBrackets(dirEmbed Class, initialTypes []Class) {
332 for _, loc := range p.pairPositions {
333 p.assignBracketType(loc, dirEmbed, initialTypes)
334 }
335}
diff --git a/vendor/golang.org/x/text/unicode/bidi/core.go b/vendor/golang.org/x/text/unicode/bidi/core.go
new file mode 100644
index 0000000..d4c1399
--- /dev/null
+++ b/vendor/golang.org/x/text/unicode/bidi/core.go
@@ -0,0 +1,1058 @@
1// Copyright 2015 The Go Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style
3// license that can be found in the LICENSE file.
4
5package bidi
6
7import "log"
8
9// This implementation is a port based on the reference implementation found at:
10// http://www.unicode.org/Public/PROGRAMS/BidiReferenceJava/
11//
12// described in Unicode Bidirectional Algorithm (UAX #9).
13//
14// Input:
15// There are two levels of input to the algorithm, since clients may prefer to
16// supply some information from out-of-band sources rather than relying on the
17// default behavior.
18//
19// - Bidi class array
20// - Bidi class array, with externally supplied base line direction
21//
22// Output:
23// Output is separated into several stages:
24//
25// - levels array over entire paragraph
26// - reordering array over entire paragraph
27// - levels array over line
28// - reordering array over line
29//
30// Note that for conformance to the Unicode Bidirectional Algorithm,
31// implementations are only required to generate correct reordering and
32// character directionality (odd or even levels) over a line. Generating
33// identical level arrays over a line is not required. Bidi explicit format
34// codes (LRE, RLE, LRO, RLO, PDF) and BN can be assigned arbitrary levels and
35// positions as long as the rest of the input is properly reordered.
36//
37// As the algorithm is defined to operate on a single paragraph at a time, this
38// implementation is written to handle single paragraphs. Thus rule P1 is
39// presumed by this implementation-- the data provided to the implementation is
40// assumed to be a single paragraph, and either contains no 'B' codes, or a
41// single 'B' code at the end of the input. 'B' is allowed as input to
42// illustrate how the algorithm assigns it a level.
43//
44// Also note that rules L3 and L4 depend on the rendering engine that uses the
45// result of the bidi algorithm. This implementation assumes that the rendering
46// engine expects combining marks in visual order (e.g. to the left of their
47// base character in RTL runs) and that it adjusts the glyphs used to render
48// mirrored characters that are in RTL runs so that they render appropriately.
49
50// level is the embedding level of a character. Even embedding levels indicate
51// left-to-right order and odd levels indicate right-to-left order. The special
52// level of -1 is reserved for undefined order.
53type level int8
54
55const implicitLevel level = -1
56
57// in returns if x is equal to any of the values in set.
58func (c Class) in(set ...Class) bool {
59 for _, s := range set {
60 if c == s {
61 return true
62 }
63 }
64 return false
65}
66
67// A paragraph contains the state of a paragraph.
68type paragraph struct {
69 initialTypes []Class
70
71 // Arrays of properties needed for paired bracket evaluation in N0
72 pairTypes []bracketType // paired Bracket types for paragraph
73 pairValues []rune // rune for opening bracket or pbOpen and pbClose; 0 for pbNone
74
75 embeddingLevel level // default: = implicitLevel;
76
77 // at the paragraph levels
78 resultTypes []Class
79 resultLevels []level
80
81 // Index of matching PDI for isolate initiator characters. For other
82 // characters, the value of matchingPDI will be set to -1. For isolate
83 // initiators with no matching PDI, matchingPDI will be set to the length of
84 // the input string.
85 matchingPDI []int
86
87 // Index of matching isolate initiator for PDI characters. For other
88 // characters, and for PDIs with no matching isolate initiator, the value of
89 // matchingIsolateInitiator will be set to -1.
90 matchingIsolateInitiator []int
91}
92
93// newParagraph initializes a paragraph. The user needs to supply a few arrays
94// corresponding to the preprocessed text input. The types correspond to the
95// Unicode BiDi classes for each rune. pairTypes indicates the bracket type for
96// each rune. pairValues provides a unique bracket class identifier for each
97// rune (suggested is the rune of the open bracket for opening and matching
98// close brackets, after normalization). The embedding levels are optional, but
99// may be supplied to encode embedding levels of styled text.
100//
101// TODO: return an error.
102func newParagraph(types []Class, pairTypes []bracketType, pairValues []rune, levels level) *paragraph {
103 validateTypes(types)
104 validatePbTypes(pairTypes)
105 validatePbValues(pairValues, pairTypes)
106 validateParagraphEmbeddingLevel(levels)
107
108 p := &paragraph{
109 initialTypes: append([]Class(nil), types...),
110 embeddingLevel: levels,
111
112 pairTypes: pairTypes,
113 pairValues: pairValues,
114
115 resultTypes: append([]Class(nil), types...),
116 }
117 p.run()
118 return p
119}
120
121func (p *paragraph) Len() int { return len(p.initialTypes) }
122
123// The algorithm. Does not include line-based processing (Rules L1, L2).
124// These are applied later in the line-based phase of the algorithm.
125func (p *paragraph) run() {
126 p.determineMatchingIsolates()
127
128 // 1) determining the paragraph level
129 // Rule P1 is the requirement for entering this algorithm.
130 // Rules P2, P3.
131 // If no externally supplied paragraph embedding level, use default.
132 if p.embeddingLevel == implicitLevel {
133 p.embeddingLevel = p.determineParagraphEmbeddingLevel(0, p.Len())
134 }
135
136 // Initialize result levels to paragraph embedding level.
137 p.resultLevels = make([]level, p.Len())
138 setLevels(p.resultLevels, p.embeddingLevel)
139
140 // 2) Explicit levels and directions
141 // Rules X1-X8.
142 p.determineExplicitEmbeddingLevels()
143
144 // Rule X9.
145 // We do not remove the embeddings, the overrides, the PDFs, and the BNs
146 // from the string explicitly. But they are not copied into isolating run
147 // sequences when they are created, so they are removed for all
148 // practical purposes.
149
150 // Rule X10.
151 // Run remainder of algorithm one isolating run sequence at a time
152 for _, seq := range p.determineIsolatingRunSequences() {
153 // 3) resolving weak types
154 // Rules W1-W7.
155 seq.resolveWeakTypes()
156
157 // 4a) resolving paired brackets
158 // Rule N0
159 resolvePairedBrackets(seq)
160
161 // 4b) resolving neutral types
162 // Rules N1-N3.
163 seq.resolveNeutralTypes()
164
165 // 5) resolving implicit embedding levels
166 // Rules I1, I2.
167 seq.resolveImplicitLevels()
168
169 // Apply the computed levels and types
170 seq.applyLevelsAndTypes()
171 }
172
173 // Assign appropriate levels to 'hide' LREs, RLEs, LROs, RLOs, PDFs, and
174 // BNs. This is for convenience, so the resulting level array will have
175 // a value for every character.
176 p.assignLevelsToCharactersRemovedByX9()
177}
178
179// determineMatchingIsolates determines the matching PDI for each isolate
180// initiator and vice versa.
181//
182// Definition BD9.
183//
184// At the end of this function:
185//
186// - The member variable matchingPDI is set to point to the index of the
187// matching PDI character for each isolate initiator character. If there is
188// no matching PDI, it is set to the length of the input text. For other
189// characters, it is set to -1.
190// - The member variable matchingIsolateInitiator is set to point to the
191// index of the matching isolate initiator character for each PDI character.
192// If there is no matching isolate initiator, or the character is not a PDI,
193// it is set to -1.
194func (p *paragraph) determineMatchingIsolates() {
195 p.matchingPDI = make([]int, p.Len())
196 p.matchingIsolateInitiator = make([]int, p.Len())
197
198 for i := range p.matchingIsolateInitiator {
199 p.matchingIsolateInitiator[i] = -1
200 }
201
202 for i := range p.matchingPDI {
203 p.matchingPDI[i] = -1
204
205 if t := p.resultTypes[i]; t.in(LRI, RLI, FSI) {
206 depthCounter := 1
207 for j := i + 1; j < p.Len(); j++ {
208 if u := p.resultTypes[j]; u.in(LRI, RLI, FSI) {
209 depthCounter++
210 } else if u == PDI {
211 if depthCounter--; depthCounter == 0 {
212 p.matchingPDI[i] = j
213 p.matchingIsolateInitiator[j] = i
214 break
215 }
216 }
217 }
218 if p.matchingPDI[i] == -1 {
219 p.matchingPDI[i] = p.Len()
220 }
221 }
222 }
223}
224
225// determineParagraphEmbeddingLevel reports the resolved paragraph direction of
226// the substring limited by the given range [start, end).
227//
228// Determines the paragraph level based on rules P2, P3. This is also used
229// in rule X5c to find if an FSI should resolve to LRI or RLI.
230func (p *paragraph) determineParagraphEmbeddingLevel(start, end int) level {
231 var strongType Class = unknownClass
232
233 // Rule P2.
234 for i := start; i < end; i++ {
235 if t := p.resultTypes[i]; t.in(L, AL, R) {
236 strongType = t
237 break
238 } else if t.in(FSI, LRI, RLI) {
239 i = p.matchingPDI[i] // skip over to the matching PDI
240 if i > end {
241 log.Panic("assert (i <= end)")
242 }
243 }
244 }
245 // Rule P3.
246 switch strongType {
247 case unknownClass: // none found
248 // default embedding level when no strong types found is 0.
249 return 0
250 case L:
251 return 0
252 default: // AL, R
253 return 1
254 }
255}
256
257const maxDepth = 125
258
259// This stack will store the embedding levels and override and isolated
260// statuses
261type directionalStatusStack struct {
262 stackCounter int
263 embeddingLevelStack [maxDepth + 1]level
264 overrideStatusStack [maxDepth + 1]Class
265 isolateStatusStack [maxDepth + 1]bool
266}
267
268func (s *directionalStatusStack) empty() { s.stackCounter = 0 }
269func (s *directionalStatusStack) pop() { s.stackCounter-- }
270func (s *directionalStatusStack) depth() int { return s.stackCounter }
271
272func (s *directionalStatusStack) push(level level, overrideStatus Class, isolateStatus bool) {
273 s.embeddingLevelStack[s.stackCounter] = level
274 s.overrideStatusStack[s.stackCounter] = overrideStatus
275 s.isolateStatusStack[s.stackCounter] = isolateStatus
276 s.stackCounter++
277}
278
279func (s *directionalStatusStack) lastEmbeddingLevel() level {
280 return s.embeddingLevelStack[s.stackCounter-1]
281}
282
283func (s *directionalStatusStack) lastDirectionalOverrideStatus() Class {
284 return s.overrideStatusStack[s.stackCounter-1]
285}
286
287func (s *directionalStatusStack) lastDirectionalIsolateStatus() bool {
288 return s.isolateStatusStack[s.stackCounter-1]
289}
290
291// Determine explicit levels using rules X1 - X8
292func (p *paragraph) determineExplicitEmbeddingLevels() {
293 var stack directionalStatusStack
294 var overflowIsolateCount, overflowEmbeddingCount, validIsolateCount int
295
296 // Rule X1.
297 stack.push(p.embeddingLevel, ON, false)
298
299 for i, t := range p.resultTypes {
300 // Rules X2, X3, X4, X5, X5a, X5b, X5c
301 switch t {
302 case RLE, LRE, RLO, LRO, RLI, LRI, FSI:
303 isIsolate := t.in(RLI, LRI, FSI)
304 isRTL := t.in(RLE, RLO, RLI)
305
306 // override if this is an FSI that resolves to RLI
307 if t == FSI {
308 isRTL = (p.determineParagraphEmbeddingLevel(i+1, p.matchingPDI[i]) == 1)
309 }
310 if isIsolate {
311 p.resultLevels[i] = stack.lastEmbeddingLevel()
312 if stack.lastDirectionalOverrideStatus() != ON {
313 p.resultTypes[i] = stack.lastDirectionalOverrideStatus()
314 }
315 }
316
317 var newLevel level
318 if isRTL {
319 // least greater odd
320 newLevel = (stack.lastEmbeddingLevel() + 1) | 1
321 } else {
322 // least greater even
323 newLevel = (stack.lastEmbeddingLevel() + 2) &^ 1
324 }
325
326 if newLevel <= maxDepth && overflowIsolateCount == 0 && overflowEmbeddingCount == 0 {
327 if isIsolate {
328 validIsolateCount++
329 }
330 // Push new embedding level, override status, and isolated
331 // status.
332 // No check for valid stack counter, since the level check
333 // suffices.
334 switch t {
335 case LRO:
336 stack.push(newLevel, L, isIsolate)
337 case RLO:
338 stack.push(newLevel, R, isIsolate)
339 default:
340 stack.push(newLevel, ON, isIsolate)
341 }
342 // Not really part of the spec
343 if !isIsolate {
344 p.resultLevels[i] = newLevel
345 }
346 } else {
347 // This is an invalid explicit formatting character,
348 // so apply the "Otherwise" part of rules X2-X5b.
349 if isIsolate {
350 overflowIsolateCount++
351 } else { // !isIsolate
352 if overflowIsolateCount == 0 {
353 overflowEmbeddingCount++
354 }
355 }
356 }
357
358 // Rule X6a
359 case PDI:
360 if overflowIsolateCount > 0 {
361 overflowIsolateCount--
362 } else if validIsolateCount == 0 {
363 // do nothing
364 } else {
365 overflowEmbeddingCount = 0
366 for !stack.lastDirectionalIsolateStatus() {
367 stack.pop()
368 }
369 stack.pop()
370 validIsolateCount--
371 }
372 p.resultLevels[i] = stack.lastEmbeddingLevel()
373
374 // Rule X7
375 case PDF:
376 // Not really part of the spec
377 p.resultLevels[i] = stack.lastEmbeddingLevel()
378
379 if overflowIsolateCount > 0 {
380 // do nothing
381 } else if overflowEmbeddingCount > 0 {
382 overflowEmbeddingCount--
383 } else if !stack.lastDirectionalIsolateStatus() && stack.depth() >= 2 {
384 stack.pop()
385 }
386
387 case B: // paragraph separator.
388 // Rule X8.
389
390 // These values are reset for clarity, in this implementation B
391 // can only occur as the last code in the array.
392 stack.empty()
393 overflowIsolateCount = 0
394 overflowEmbeddingCount = 0
395 validIsolateCount = 0
396 p.resultLevels[i] = p.embeddingLevel
397
398 default:
399 p.resultLevels[i] = stack.lastEmbeddingLevel()
400 if stack.lastDirectionalOverrideStatus() != ON {
401 p.resultTypes[i] = stack.lastDirectionalOverrideStatus()
402 }
403 }
404 }
405}
406
407type isolatingRunSequence struct {
408 p *paragraph
409
410 indexes []int // indexes to the original string
411
412 types []Class // type of each character using the index
413 resolvedLevels []level // resolved levels after application of rules
414 level level
415 sos, eos Class
416}
417
418func (i *isolatingRunSequence) Len() int { return len(i.indexes) }
419
420func maxLevel(a, b level) level {
421 if a > b {
422 return a
423 }
424 return b
425}
426
427// Rule X10, second bullet: Determine the start-of-sequence (sos) and end-of-sequence (eos) types,
428// either L or R, for each isolating run sequence.
429func (p *paragraph) isolatingRunSequence(indexes []int) *isolatingRunSequence {
430 length := len(indexes)
431 types := make([]Class, length)
432 for i, x := range indexes {
433 types[i] = p.resultTypes[x]
434 }
435
436 // assign level, sos and eos
437 prevChar := indexes[0] - 1
438 for prevChar >= 0 && isRemovedByX9(p.initialTypes[prevChar]) {
439 prevChar--
440 }
441 prevLevel := p.embeddingLevel
442 if prevChar >= 0 {
443 prevLevel = p.resultLevels[prevChar]
444 }
445
446 var succLevel level
447 lastType := types[length-1]
448 if lastType.in(LRI, RLI, FSI) {
449 succLevel = p.embeddingLevel
450 } else {
451 // the first character after the end of run sequence
452 limit := indexes[length-1] + 1
453 for ; limit < p.Len() && isRemovedByX9(p.initialTypes[limit]); limit++ {
454
455 }
456 succLevel = p.embeddingLevel
457 if limit < p.Len() {
458 succLevel = p.resultLevels[limit]
459 }
460 }
461 level := p.resultLevels[indexes[0]]
462 return &isolatingRunSequence{
463 p: p,
464 indexes: indexes,
465 types: types,
466 level: level,
467 sos: typeForLevel(maxLevel(prevLevel, level)),
468 eos: typeForLevel(maxLevel(succLevel, level)),
469 }
470}
471
472// Resolving weak types Rules W1-W7.
473//
474// Note that some weak types (EN, AN) remain after this processing is
475// complete.
476func (s *isolatingRunSequence) resolveWeakTypes() {
477
478 // on entry, only these types remain
479 s.assertOnly(L, R, AL, EN, ES, ET, AN, CS, B, S, WS, ON, NSM, LRI, RLI, FSI, PDI)
480
481 // Rule W1.
482 // Changes all NSMs.
483 preceedingCharacterType := s.sos
484 for i, t := range s.types {
485 if t == NSM {
486 s.types[i] = preceedingCharacterType
487 } else {
488 if t.in(LRI, RLI, FSI, PDI) {
489 preceedingCharacterType = ON
490 }
491 preceedingCharacterType = t
492 }
493 }
494
495 // Rule W2.
496 // EN does not change at the start of the run, because sos != AL.
497 for i, t := range s.types {
498 if t == EN {
499 for j := i - 1; j >= 0; j-- {
500 if t := s.types[j]; t.in(L, R, AL) {
501 if t == AL {
502 s.types[i] = AN
503 }
504 break
505 }
506 }
507 }
508 }
509
510 // Rule W3.
511 for i, t := range s.types {
512 if t == AL {
513 s.types[i] = R
514 }
515 }
516
517 // Rule W4.
518 // Since there must be values on both sides for this rule to have an
519 // effect, the scan skips the first and last value.
520 //
521 // Although the scan proceeds left to right, and changes the type
522 // values in a way that would appear to affect the computations
523 // later in the scan, there is actually no problem. A change in the
524 // current value can only affect the value to its immediate right,
525 // and only affect it if it is ES or CS. But the current value can
526 // only change if the value to its right is not ES or CS. Thus
527 // either the current value will not change, or its change will have
528 // no effect on the remainder of the analysis.
529
530 for i := 1; i < s.Len()-1; i++ {
531 t := s.types[i]
532 if t == ES || t == CS {
533 prevSepType := s.types[i-1]
534 succSepType := s.types[i+1]
535 if prevSepType == EN && succSepType == EN {
536 s.types[i] = EN
537 } else if s.types[i] == CS && prevSepType == AN && succSepType == AN {
538 s.types[i] = AN
539 }
540 }
541 }
542
543 // Rule W5.
544 for i, t := range s.types {
545 if t == ET {
546 // locate end of sequence
547 runStart := i
548 runEnd := s.findRunLimit(runStart, ET)
549
550 // check values at ends of sequence
551 t := s.sos
552 if runStart > 0 {
553 t = s.types[runStart-1]
554 }
555 if t != EN {
556 t = s.eos
557 if runEnd < len(s.types) {
558 t = s.types[runEnd]
559 }
560 }
561 if t == EN {
562 setTypes(s.types[runStart:runEnd], EN)
563 }
564 // continue at end of sequence
565 i = runEnd
566 }
567 }
568
569 // Rule W6.
570 for i, t := range s.types {
571 if t.in(ES, ET, CS) {
572 s.types[i] = ON
573 }
574 }
575
576 // Rule W7.
577 for i, t := range s.types {
578 if t == EN {
579 // set default if we reach start of run
580 prevStrongType := s.sos
581 for j := i - 1; j >= 0; j-- {
582 t = s.types[j]
583 if t == L || t == R { // AL's have been changed to R
584 prevStrongType = t
585 break
586 }
587 }
588 if prevStrongType == L {
589 s.types[i] = L
590 }
591 }
592 }
593}
594
595// 6) resolving neutral types Rules N1-N2.
596func (s *isolatingRunSequence) resolveNeutralTypes() {
597
598 // on entry, only these types can be in resultTypes
599 s.assertOnly(L, R, EN, AN, B, S, WS, ON, RLI, LRI, FSI, PDI)
600
601 for i, t := range s.types {
602 switch t {
603 case WS, ON, B, S, RLI, LRI, FSI, PDI:
604 // find bounds of run of neutrals
605 runStart := i
606 runEnd := s.findRunLimit(runStart, B, S, WS, ON, RLI, LRI, FSI, PDI)
607
608 // determine effective types at ends of run
609 var leadType, trailType Class
610
611 // Note that the character found can only be L, R, AN, or
612 // EN.
613 if runStart == 0 {
614 leadType = s.sos
615 } else {
616 leadType = s.types[runStart-1]
617 if leadType.in(AN, EN) {
618 leadType = R
619 }
620 }
621 if runEnd == len(s.types) {
622 trailType = s.eos
623 } else {
624 trailType = s.types[runEnd]
625 if trailType.in(AN, EN) {
626 trailType = R
627 }
628 }
629
630 var resolvedType Class
631 if leadType == trailType {
632 // Rule N1.
633 resolvedType = leadType
634 } else {
635 // Rule N2.
636 // Notice the embedding level of the run is used, not
637 // the paragraph embedding level.
638 resolvedType = typeForLevel(s.level)
639 }
640
641 setTypes(s.types[runStart:runEnd], resolvedType)
642
643 // skip over run of (former) neutrals
644 i = runEnd
645 }
646 }
647}
648
649func setLevels(levels []level, newLevel level) {
650 for i := range levels {
651 levels[i] = newLevel
652 }
653}
654
655func setTypes(types []Class, newType Class) {
656 for i := range types {
657 types[i] = newType
658 }
659}
660
661// 7) resolving implicit embedding levels Rules I1, I2.
662func (s *isolatingRunSequence) resolveImplicitLevels() {
663
664 // on entry, only these types can be in resultTypes
665 s.assertOnly(L, R, EN, AN)
666
667 s.resolvedLevels = make([]level, len(s.types))
668 setLevels(s.resolvedLevels, s.level)
669
670 if (s.level & 1) == 0 { // even level
671 for i, t := range s.types {
672 // Rule I1.
673 if t == L {
674 // no change
675 } else if t == R {
676 s.resolvedLevels[i] += 1
677 } else { // t == AN || t == EN
678 s.resolvedLevels[i] += 2
679 }
680 }
681 } else { // odd level
682 for i, t := range s.types {
683 // Rule I2.
684 if t == R {
685 // no change
686 } else { // t == L || t == AN || t == EN
687 s.resolvedLevels[i] += 1
688 }
689 }
690 }
691}
692
693// Applies the levels and types resolved in rules W1-I2 to the
694// resultLevels array.
695func (s *isolatingRunSequence) applyLevelsAndTypes() {
696 for i, x := range s.indexes {
697 s.p.resultTypes[x] = s.types[i]
698 s.p.resultLevels[x] = s.resolvedLevels[i]
699 }
700}
701
702// Return the limit of the run consisting only of the types in validSet
703// starting at index. This checks the value at index, and will return
704// index if that value is not in validSet.
705func (s *isolatingRunSequence) findRunLimit(index int, validSet ...Class) int {
706loop:
707 for ; index < len(s.types); index++ {
708 t := s.types[index]
709 for _, valid := range validSet {
710 if t == valid {
711 continue loop
712 }
713 }
714 return index // didn't find a match in validSet
715 }
716 return len(s.types)
717}
718
719// Algorithm validation. Assert that all values in types are in the
720// provided set.
721func (s *isolatingRunSequence) assertOnly(codes ...Class) {
722loop:
723 for i, t := range s.types {
724 for _, c := range codes {
725 if t == c {
726 continue loop
727 }
728 }
729 log.Panicf("invalid bidi code %v present in assertOnly at position %d", t, s.indexes[i])
730 }
731}
732
733// determineLevelRuns returns an array of level runs. Each level run is
734// described as an array of indexes into the input string.
735//
736// Determines the level runs. Rule X9 will be applied in determining the
737// runs, in the way that makes sure the characters that are supposed to be
738// removed are not included in the runs.
739func (p *paragraph) determineLevelRuns() [][]int {
740 run := []int{}
741 allRuns := [][]int{}
742 currentLevel := implicitLevel
743
744 for i := range p.initialTypes {
745 if !isRemovedByX9(p.initialTypes[i]) {
746 if p.resultLevels[i] != currentLevel {
747 // we just encountered a new run; wrap up last run
748 if currentLevel >= 0 { // only wrap it up if there was a run
749 allRuns = append(allRuns, run)
750 run = nil
751 }
752 // Start new run
753 currentLevel = p.resultLevels[i]
754 }
755 run = append(run, i)
756 }
757 }
758 // Wrap up the final run, if any
759 if len(run) > 0 {
760 allRuns = append(allRuns, run)
761 }
762 return allRuns
763}
764
765// Definition BD13. Determine isolating run sequences.
766func (p *paragraph) determineIsolatingRunSequences() []*isolatingRunSequence {
767 levelRuns := p.determineLevelRuns()
768
769 // Compute the run that each character belongs to
770 runForCharacter := make([]int, p.Len())
771 for i, run := range levelRuns {
772 for _, index := range run {
773 runForCharacter[index] = i
774 }
775 }
776
777 sequences := []*isolatingRunSequence{}
778
779 var currentRunSequence []int
780
781 for _, run := range levelRuns {
782 first := run[0]
783 if p.initialTypes[first] != PDI || p.matchingIsolateInitiator[first] == -1 {
784 currentRunSequence = nil
785 // int run = i;
786 for {
787 // Copy this level run into currentRunSequence
788 currentRunSequence = append(currentRunSequence, run...)
789
790 last := currentRunSequence[len(currentRunSequence)-1]
791 lastT := p.initialTypes[last]
792 if lastT.in(LRI, RLI, FSI) && p.matchingPDI[last] != p.Len() {
793 run = levelRuns[runForCharacter[p.matchingPDI[last]]]
794 } else {
795 break
796 }
797 }
798 sequences = append(sequences, p.isolatingRunSequence(currentRunSequence))
799 }
800 }
801 return sequences
802}
803
804// Assign level information to characters removed by rule X9. This is for
805// ease of relating the level information to the original input data. Note
806// that the levels assigned to these codes are arbitrary, they're chosen so
807// as to avoid breaking level runs.
808func (p *paragraph) assignLevelsToCharactersRemovedByX9() {
809 for i, t := range p.initialTypes {
810 if t.in(LRE, RLE, LRO, RLO, PDF, BN) {
811 p.resultTypes[i] = t
812 p.resultLevels[i] = -1
813 }
814 }
815 // now propagate forward the levels information (could have
816 // propagated backward, the main thing is not to introduce a level
817 // break where one doesn't already exist).
818
819 if p.resultLevels[0] == -1 {
820 p.resultLevels[0] = p.embeddingLevel
821 }
822 for i := 1; i < len(p.initialTypes); i++ {
823 if p.resultLevels[i] == -1 {
824 p.resultLevels[i] = p.resultLevels[i-1]
825 }
826 }
827 // Embedding information is for informational purposes only so need not be
828 // adjusted.
829}
830
831//
832// Output
833//
834
835// getLevels computes levels array breaking lines at offsets in linebreaks.
836// Rule L1.
837//
838// The linebreaks array must include at least one value. The values must be
839// in strictly increasing order (no duplicates) between 1 and the length of
840// the text, inclusive. The last value must be the length of the text.
841func (p *paragraph) getLevels(linebreaks []int) []level {
842 // Note that since the previous processing has removed all
843 // P, S, and WS values from resultTypes, the values referred to
844 // in these rules are the initial types, before any processing
845 // has been applied (including processing of overrides).
846 //
847 // This example implementation has reinserted explicit format codes
848 // and BN, in order that the levels array correspond to the
849 // initial text. Their final placement is not normative.
850 // These codes are treated like WS in this implementation,
851 // so they don't interrupt sequences of WS.
852
853 validateLineBreaks(linebreaks, p.Len())
854
855 result := append([]level(nil), p.resultLevels...)
856
857 // don't worry about linebreaks since if there is a break within
858 // a series of WS values preceding S, the linebreak itself
859 // causes the reset.
860 for i, t := range p.initialTypes {
861 if t.in(B, S) {
862 // Rule L1, clauses one and two.
863 result[i] = p.embeddingLevel
864
865 // Rule L1, clause three.
866 for j := i - 1; j >= 0; j-- {
867 if isWhitespace(p.initialTypes[j]) { // including format codes
868 result[j] = p.embeddingLevel
869 } else {
870 break
871 }
872 }
873 }
874 }
875
876 // Rule L1, clause four.
877 start := 0
878 for _, limit := range linebreaks {
879 for j := limit - 1; j >= start; j-- {
880 if isWhitespace(p.initialTypes[j]) { // including format codes
881 result[j] = p.embeddingLevel
882 } else {
883 break
884 }
885 }
886 start = limit
887 }
888
889 return result
890}
891
892// getReordering returns the reordering of lines from a visual index to a
893// logical index for line breaks at the given offsets.
894//
895// Lines are concatenated from left to right. So for example, the fifth
896// character from the left on the third line is
897//
898// getReordering(linebreaks)[linebreaks[1] + 4]
899//
900// (linebreaks[1] is the position after the last character of the second
901// line, which is also the index of the first character on the third line,
902// and adding four gets the fifth character from the left).
903//
904// The linebreaks array must include at least one value. The values must be
905// in strictly increasing order (no duplicates) between 1 and the length of
906// the text, inclusive. The last value must be the length of the text.
907func (p *paragraph) getReordering(linebreaks []int) []int {
908 validateLineBreaks(linebreaks, p.Len())
909
910 return computeMultilineReordering(p.getLevels(linebreaks), linebreaks)
911}
912
913// Return multiline reordering array for a given level array. Reordering
914// does not occur across a line break.
915func computeMultilineReordering(levels []level, linebreaks []int) []int {
916 result := make([]int, len(levels))
917
918 start := 0
919 for _, limit := range linebreaks {
920 tempLevels := make([]level, limit-start)
921 copy(tempLevels, levels[start:])
922
923 for j, order := range computeReordering(tempLevels) {
924 result[start+j] = order + start
925 }
926 start = limit
927 }
928 return result
929}
930
931// Return reordering array for a given level array. This reorders a single
932// line. The reordering is a visual to logical map. For example, the
933// leftmost char is string.charAt(order[0]). Rule L2.
934func computeReordering(levels []level) []int {
935 result := make([]int, len(levels))
936 // initialize order
937 for i := range result {
938 result[i] = i
939 }
940
941 // locate highest level found on line.
942 // Note the rules say text, but no reordering across line bounds is
943 // performed, so this is sufficient.
944 highestLevel := level(0)
945 lowestOddLevel := level(maxDepth + 2)
946 for _, level := range levels {
947 if level > highestLevel {
948 highestLevel = level
949 }
950 if level&1 != 0 && level < lowestOddLevel {
951 lowestOddLevel = level
952 }
953 }
954
955 for level := highestLevel; level >= lowestOddLevel; level-- {
956 for i := 0; i < len(levels); i++ {
957 if levels[i] >= level {
958 // find range of text at or above this level
959 start := i
960 limit := i + 1
961 for limit < len(levels) && levels[limit] >= level {
962 limit++
963 }
964
965 for j, k := start, limit-1; j < k; j, k = j+1, k-1 {
966 result[j], result[k] = result[k], result[j]
967 }
968 // skip to end of level run
969 i = limit
970 }
971 }
972 }
973
974 return result
975}
976
977// isWhitespace reports whether the type is considered a whitespace type for the
978// line break rules.
979func isWhitespace(c Class) bool {
980 switch c {
981 case LRE, RLE, LRO, RLO, PDF, LRI, RLI, FSI, PDI, BN, WS:
982 return true
983 }
984 return false
985}
986
987// isRemovedByX9 reports whether the type is one of the types removed in X9.
988func isRemovedByX9(c Class) bool {
989 switch c {
990 case LRE, RLE, LRO, RLO, PDF, BN:
991 return true
992 }
993 return false
994}
995
996// typeForLevel reports the strong type (L or R) corresponding to the level.
997func typeForLevel(level level) Class {
998 if (level & 0x1) == 0 {
999 return L
1000 }
1001 return R
1002}
1003
1004// TODO: change validation to not panic
1005
1006func validateTypes(types []Class) {
1007 if len(types) == 0 {
1008 log.Panic("types is null")
1009 }
1010 for i, t := range types[:len(types)-1] {
1011 if t == B {
1012 log.Panicf("B type before end of paragraph at index: %d", i)
1013 }
1014 }
1015}
1016
1017func validateParagraphEmbeddingLevel(embeddingLevel level) {
1018 if embeddingLevel != implicitLevel &&
1019 embeddingLevel != 0 &&
1020 embeddingLevel != 1 {
1021 log.Panicf("illegal paragraph embedding level: %d", embeddingLevel)
1022 }
1023}
1024
1025func validateLineBreaks(linebreaks []int, textLength int) {
1026 prev := 0
1027 for i, next := range linebreaks {
1028 if next <= prev {
1029 log.Panicf("bad linebreak: %d at index: %d", next, i)
1030 }
1031 prev = next
1032 }
1033 if prev != textLength {
1034 log.Panicf("last linebreak was %d, want %d", prev, textLength)
1035 }
1036}
1037
1038func validatePbTypes(pairTypes []bracketType) {
1039 if len(pairTypes) == 0 {
1040 log.Panic("pairTypes is null")
1041 }
1042 for i, pt := range pairTypes {
1043 switch pt {
1044 case bpNone, bpOpen, bpClose:
1045 default:
1046 log.Panicf("illegal pairType value at %d: %v", i, pairTypes[i])
1047 }
1048 }
1049}
1050
1051func validatePbValues(pairValues []rune, pairTypes []bracketType) {
1052 if pairValues == nil {
1053 log.Panic("pairValues is null")
1054 }
1055 if len(pairTypes) != len(pairValues) {
1056 log.Panic("pairTypes is different length from pairValues")
1057 }
1058}
diff --git a/vendor/golang.org/x/text/unicode/bidi/gen.go b/vendor/golang.org/x/text/unicode/bidi/gen.go
new file mode 100644
index 0000000..4e1c7ba
--- /dev/null
+++ b/vendor/golang.org/x/text/unicode/bidi/gen.go
@@ -0,0 +1,133 @@
1// Copyright 2015 The Go Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style
3// license that can be found in the LICENSE file.
4
5// +build ignore
6
7package main
8
9import (
10 "flag"
11 "log"
12
13 "golang.org/x/text/internal/gen"
14 "golang.org/x/text/internal/triegen"
15 "golang.org/x/text/internal/ucd"
16)
17
18var outputFile = flag.String("out", "tables.go", "output file")
19
20func main() {
21 gen.Init()
22 gen.Repackage("gen_trieval.go", "trieval.go", "bidi")
23 gen.Repackage("gen_ranges.go", "ranges_test.go", "bidi")
24
25 genTables()
26}
27
28// bidiClass names and codes taken from class "bc" in
29// http://www.unicode.org/Public/8.0.0/ucd/PropertyValueAliases.txt
30var bidiClass = map[string]Class{
31 "AL": AL, // ArabicLetter
32 "AN": AN, // ArabicNumber
33 "B": B, // ParagraphSeparator
34 "BN": BN, // BoundaryNeutral
35 "CS": CS, // CommonSeparator
36 "EN": EN, // EuropeanNumber
37 "ES": ES, // EuropeanSeparator
38 "ET": ET, // EuropeanTerminator
39 "L": L, // LeftToRight
40 "NSM": NSM, // NonspacingMark
41 "ON": ON, // OtherNeutral
42 "R": R, // RightToLeft
43 "S": S, // SegmentSeparator
44 "WS": WS, // WhiteSpace
45
46 "FSI": Control,
47 "PDF": Control,
48 "PDI": Control,
49 "LRE": Control,
50 "LRI": Control,
51 "LRO": Control,
52 "RLE": Control,
53 "RLI": Control,
54 "RLO": Control,
55}
56
57func genTables() {
58 if numClass > 0x0F {
59 log.Fatalf("Too many Class constants (%#x > 0x0F).", numClass)
60 }
61 w := gen.NewCodeWriter()
62 defer w.WriteVersionedGoFile(*outputFile, "bidi")
63
64 gen.WriteUnicodeVersion(w)
65
66 t := triegen.NewTrie("bidi")
67
68 // Build data about bracket mapping. These bits need to be or-ed with
69 // any other bits.
70 orMask := map[rune]uint64{}
71
72 xorMap := map[rune]int{}
73 xorMasks := []rune{0} // First value is no-op.
74
75 ucd.Parse(gen.OpenUCDFile("BidiBrackets.txt"), func(p *ucd.Parser) {
76 r1 := p.Rune(0)
77 r2 := p.Rune(1)
78 xor := r1 ^ r2
79 if _, ok := xorMap[xor]; !ok {
80 xorMap[xor] = len(xorMasks)
81 xorMasks = append(xorMasks, xor)
82 }
83 entry := uint64(xorMap[xor]) << xorMaskShift
84 switch p.String(2) {
85 case "o":
86 entry |= openMask
87 case "c", "n":
88 default:
89 log.Fatalf("Unknown bracket class %q.", p.String(2))
90 }
91 orMask[r1] = entry
92 })
93
94 w.WriteComment(`
95 xorMasks contains masks to be xor-ed with brackets to get the reverse
96 version.`)
97 w.WriteVar("xorMasks", xorMasks)
98
99 done := map[rune]bool{}
100
101 insert := func(r rune, c Class) {
102 if !done[r] {
103 t.Insert(r, orMask[r]|uint64(c))
104 done[r] = true
105 }
106 }
107
108 // Insert the derived BiDi properties.
109 ucd.Parse(gen.OpenUCDFile("extracted/DerivedBidiClass.txt"), func(p *ucd.Parser) {
110 r := p.Rune(0)
111 class, ok := bidiClass[p.String(1)]
112 if !ok {
113 log.Fatalf("%U: Unknown BiDi class %q", r, p.String(1))
114 }
115 insert(r, class)
116 })
117 visitDefaults(insert)
118
119 // TODO: use sparse blocks. This would reduce table size considerably
120 // from the looks of it.
121
122 sz, err := t.Gen(w)
123 if err != nil {
124 log.Fatal(err)
125 }
126 w.Size += sz
127}
128
129// dummy values to make methods in gen_common compile. The real versions
130// will be generated by this file to tables.go.
131var (
132 xorMasks []rune
133)
diff --git a/vendor/golang.org/x/text/unicode/bidi/gen_ranges.go b/vendor/golang.org/x/text/unicode/bidi/gen_ranges.go
new file mode 100644
index 0000000..51bd68f
--- /dev/null
+++ b/vendor/golang.org/x/text/unicode/bidi/gen_ranges.go
@@ -0,0 +1,57 @@
1// Copyright 2015 The Go Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style
3// license that can be found in the LICENSE file.
4
5// +build ignore
6
7package main
8
9import (
10 "unicode"
11
12 "golang.org/x/text/internal/gen"
13 "golang.org/x/text/internal/ucd"
14 "golang.org/x/text/unicode/rangetable"
15)
16
17// These tables are hand-extracted from:
18// http://www.unicode.org/Public/8.0.0/ucd/extracted/DerivedBidiClass.txt
19func visitDefaults(fn func(r rune, c Class)) {
20 // first write default values for ranges listed above.
21 visitRunes(fn, AL, []rune{
22 0x0600, 0x07BF, // Arabic
23 0x08A0, 0x08FF, // Arabic Extended-A
24 0xFB50, 0xFDCF, // Arabic Presentation Forms
25 0xFDF0, 0xFDFF,
26 0xFE70, 0xFEFF,
27 0x0001EE00, 0x0001EEFF, // Arabic Mathematical Alpha Symbols
28 })
29 visitRunes(fn, R, []rune{
30 0x0590, 0x05FF, // Hebrew
31 0x07C0, 0x089F, // Nko et al.
32 0xFB1D, 0xFB4F,
33 0x00010800, 0x00010FFF, // Cypriot Syllabary et. al.
34 0x0001E800, 0x0001EDFF,
35 0x0001EF00, 0x0001EFFF,
36 })
37 visitRunes(fn, ET, []rune{ // European Terminator
38 0x20A0, 0x20Cf, // Currency symbols
39 })
40 rangetable.Visit(unicode.Noncharacter_Code_Point, func(r rune) {
41 fn(r, BN) // Boundary Neutral
42 })
43 ucd.Parse(gen.OpenUCDFile("DerivedCoreProperties.txt"), func(p *ucd.Parser) {
44 if p.String(1) == "Default_Ignorable_Code_Point" {
45 fn(p.Rune(0), BN) // Boundary Neutral
46 }
47 })
48}
49
50func visitRunes(fn func(r rune, c Class), c Class, runes []rune) {
51 for i := 0; i < len(runes); i += 2 {
52 lo, hi := runes[i], runes[i+1]
53 for j := lo; j <= hi; j++ {
54 fn(j, c)
55 }
56 }
57}
diff --git a/vendor/golang.org/x/text/unicode/bidi/gen_trieval.go b/vendor/golang.org/x/text/unicode/bidi/gen_trieval.go
new file mode 100644
index 0000000..9cb9942
--- /dev/null
+++ b/vendor/golang.org/x/text/unicode/bidi/gen_trieval.go
@@ -0,0 +1,64 @@
1// Copyright 2015 The Go Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style
3// license that can be found in the LICENSE file.
4
5// +build ignore
6
7package main
8
9// Class is the Unicode BiDi class. Each rune has a single class.
10type Class uint
11
12const (
13 L Class = iota // LeftToRight
14 R // RightToLeft
15 EN // EuropeanNumber
16 ES // EuropeanSeparator
17 ET // EuropeanTerminator
18 AN // ArabicNumber
19 CS // CommonSeparator
20 B // ParagraphSeparator
21 S // SegmentSeparator
22 WS // WhiteSpace
23 ON // OtherNeutral
24 BN // BoundaryNeutral
25 NSM // NonspacingMark
26 AL // ArabicLetter
27 Control // Control LRO - PDI
28
29 numClass
30
31 LRO // LeftToRightOverride
32 RLO // RightToLeftOverride
33 LRE // LeftToRightEmbedding
34 RLE // RightToLeftEmbedding
35 PDF // PopDirectionalFormat
36 LRI // LeftToRightIsolate
37 RLI // RightToLeftIsolate
38 FSI // FirstStrongIsolate
39 PDI // PopDirectionalIsolate
40
41 unknownClass = ^Class(0)
42)
43
44var controlToClass = map[rune]Class{
45 0x202D: LRO, // LeftToRightOverride,
46 0x202E: RLO, // RightToLeftOverride,
47 0x202A: LRE, // LeftToRightEmbedding,
48 0x202B: RLE, // RightToLeftEmbedding,
49 0x202C: PDF, // PopDirectionalFormat,
50 0x2066: LRI, // LeftToRightIsolate,
51 0x2067: RLI, // RightToLeftIsolate,
52 0x2068: FSI, // FirstStrongIsolate,
53 0x2069: PDI, // PopDirectionalIsolate,
54}
55
56// A trie entry has the following bits:
57// 7..5 XOR mask for brackets
58// 4 1: Bracket open, 0: Bracket close
59// 3..0 Class type
60
61const (
62 openMask = 0x10
63 xorMaskShift = 5
64)
diff --git a/vendor/golang.org/x/text/unicode/bidi/prop.go b/vendor/golang.org/x/text/unicode/bidi/prop.go
new file mode 100644
index 0000000..7c9484e
--- /dev/null
+++ b/vendor/golang.org/x/text/unicode/bidi/prop.go
@@ -0,0 +1,206 @@
1// Copyright 2016 The Go Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style
3// license that can be found in the LICENSE file.
4
5package bidi
6
7import "unicode/utf8"
8
9// Properties provides access to BiDi properties of runes.
10type Properties struct {
11 entry uint8
12 last uint8
13}
14
15var trie = newBidiTrie(0)
16
17// TODO: using this for bidirule reduces the running time by about 5%. Consider
18// if this is worth exposing or if we can find a way to speed up the Class
19// method.
20//
21// // CompactClass is like Class, but maps all of the BiDi control classes
22// // (LRO, RLO, LRE, RLE, PDF, LRI, RLI, FSI, PDI) to the class Control.
23// func (p Properties) CompactClass() Class {
24// return Class(p.entry & 0x0F)
25// }
26
27// Class returns the Bidi class for p.
28func (p Properties) Class() Class {
29 c := Class(p.entry & 0x0F)
30 if c == Control {
31 c = controlByteToClass[p.last&0xF]
32 }
33 return c
34}
35
36// IsBracket reports whether the rune is a bracket.
37func (p Properties) IsBracket() bool { return p.entry&0xF0 != 0 }
38
39// IsOpeningBracket reports whether the rune is an opening bracket.
40// IsBracket must return true.
41func (p Properties) IsOpeningBracket() bool { return p.entry&openMask != 0 }
42
43// TODO: find a better API and expose.
44func (p Properties) reverseBracket(r rune) rune {
45 return xorMasks[p.entry>>xorMaskShift] ^ r
46}
47
48var controlByteToClass = [16]Class{
49 0xD: LRO, // U+202D LeftToRightOverride,
50 0xE: RLO, // U+202E RightToLeftOverride,
51 0xA: LRE, // U+202A LeftToRightEmbedding,
52 0xB: RLE, // U+202B RightToLeftEmbedding,
53 0xC: PDF, // U+202C PopDirectionalFormat,
54 0x6: LRI, // U+2066 LeftToRightIsolate,
55 0x7: RLI, // U+2067 RightToLeftIsolate,
56 0x8: FSI, // U+2068 FirstStrongIsolate,
57 0x9: PDI, // U+2069 PopDirectionalIsolate,
58}
59
60// LookupRune returns properties for r.
61func LookupRune(r rune) (p Properties, size int) {
62 var buf [4]byte
63 n := utf8.EncodeRune(buf[:], r)
64 return Lookup(buf[:n])
65}
66
67// TODO: these lookup methods are based on the generated trie code. The returned
68// sizes have slightly different semantics from the generated code, in that it
69// always returns size==1 for an illegal UTF-8 byte (instead of the length
70// of the maximum invalid subsequence). Most Transformers, like unicode/norm,
71// leave invalid UTF-8 untouched, in which case it has performance benefits to
72// do so (without changing the semantics). Bidi requires the semantics used here
73// for the bidirule implementation to be compatible with the Go semantics.
74// They ultimately should perhaps be adopted by all trie implementations, for
75// convenience sake.
76// This unrolled code also boosts performance of the secure/bidirule package by
77// about 30%.
78// So, to remove this code:
79// - add option to trie generator to define return type.
80// - always return 1 byte size for ill-formed UTF-8 runes.
81
82// Lookup returns properties for the first rune in s and the width in bytes of
83// its encoding. The size will be 0 if s does not hold enough bytes to complete
84// the encoding.
85func Lookup(s []byte) (p Properties, sz int) {
86 c0 := s[0]
87 switch {
88 case c0 < 0x80: // is ASCII
89 return Properties{entry: bidiValues[c0]}, 1
90 case c0 < 0xC2:
91 return Properties{}, 1
92 case c0 < 0xE0: // 2-byte UTF-8
93 if len(s) < 2 {
94 return Properties{}, 0
95 }
96 i := bidiIndex[c0]
97 c1 := s[1]
98 if c1 < 0x80 || 0xC0 <= c1 {
99 return Properties{}, 1
100 }
101 return Properties{entry: trie.lookupValue(uint32(i), c1)}, 2
102 case c0 < 0xF0: // 3-byte UTF-8
103 if len(s) < 3 {
104 return Properties{}, 0
105 }
106 i := bidiIndex[c0]
107 c1 := s[1]
108 if c1 < 0x80 || 0xC0 <= c1 {
109 return Properties{}, 1
110 }
111 o := uint32(i)<<6 + uint32(c1)
112 i = bidiIndex[o]
113 c2 := s[2]
114 if c2 < 0x80 || 0xC0 <= c2 {
115 return Properties{}, 1
116 }
117 return Properties{entry: trie.lookupValue(uint32(i), c2), last: c2}, 3
118 case c0 < 0xF8: // 4-byte UTF-8
119 if len(s) < 4 {
120 return Properties{}, 0
121 }
122 i := bidiIndex[c0]
123 c1 := s[1]
124 if c1 < 0x80 || 0xC0 <= c1 {
125 return Properties{}, 1
126 }
127 o := uint32(i)<<6 + uint32(c1)
128 i = bidiIndex[o]
129 c2 := s[2]
130 if c2 < 0x80 || 0xC0 <= c2 {
131 return Properties{}, 1
132 }
133 o = uint32(i)<<6 + uint32(c2)
134 i = bidiIndex[o]
135 c3 := s[3]
136 if c3 < 0x80 || 0xC0 <= c3 {
137 return Properties{}, 1
138 }
139 return Properties{entry: trie.lookupValue(uint32(i), c3)}, 4
140 }
141 // Illegal rune
142 return Properties{}, 1
143}
144
145// LookupString returns properties for the first rune in s and the width in
146// bytes of its encoding. The size will be 0 if s does not hold enough bytes to
147// complete the encoding.
148func LookupString(s string) (p Properties, sz int) {
149 c0 := s[0]
150 switch {
151 case c0 < 0x80: // is ASCII
152 return Properties{entry: bidiValues[c0]}, 1
153 case c0 < 0xC2:
154 return Properties{}, 1
155 case c0 < 0xE0: // 2-byte UTF-8
156 if len(s) < 2 {
157 return Properties{}, 0
158 }
159 i := bidiIndex[c0]
160 c1 := s[1]
161 if c1 < 0x80 || 0xC0 <= c1 {
162 return Properties{}, 1
163 }
164 return Properties{entry: trie.lookupValue(uint32(i), c1)}, 2
165 case c0 < 0xF0: // 3-byte UTF-8
166 if len(s) < 3 {
167 return Properties{}, 0
168 }
169 i := bidiIndex[c0]
170 c1 := s[1]
171 if c1 < 0x80 || 0xC0 <= c1 {
172 return Properties{}, 1
173 }
174 o := uint32(i)<<6 + uint32(c1)
175 i = bidiIndex[o]
176 c2 := s[2]
177 if c2 < 0x80 || 0xC0 <= c2 {
178 return Properties{}, 1
179 }
180 return Properties{entry: trie.lookupValue(uint32(i), c2), last: c2}, 3
181 case c0 < 0xF8: // 4-byte UTF-8
182 if len(s) < 4 {
183 return Properties{}, 0
184 }
185 i := bidiIndex[c0]
186 c1 := s[1]
187 if c1 < 0x80 || 0xC0 <= c1 {
188 return Properties{}, 1
189 }
190 o := uint32(i)<<6 + uint32(c1)
191 i = bidiIndex[o]
192 c2 := s[2]
193 if c2 < 0x80 || 0xC0 <= c2 {
194 return Properties{}, 1
195 }
196 o = uint32(i)<<6 + uint32(c2)
197 i = bidiIndex[o]
198 c3 := s[3]
199 if c3 < 0x80 || 0xC0 <= c3 {
200 return Properties{}, 1
201 }
202 return Properties{entry: trie.lookupValue(uint32(i), c3)}, 4
203 }
204 // Illegal rune
205 return Properties{}, 1
206}
diff --git a/vendor/golang.org/x/text/unicode/bidi/tables10.0.0.go b/vendor/golang.org/x/text/unicode/bidi/tables10.0.0.go
new file mode 100644
index 0000000..2e1ff19
--- /dev/null
+++ b/vendor/golang.org/x/text/unicode/bidi/tables10.0.0.go
@@ -0,0 +1,1815 @@
1// Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT.
2
3// +build go1.10
4
5package bidi
6
7// UnicodeVersion is the Unicode version from which the tables in this package are derived.
8const UnicodeVersion = "10.0.0"
9
10// xorMasks contains masks to be xor-ed with brackets to get the reverse
11// version.
12var xorMasks = []int32{ // 8 elements
13 0, 1, 6, 7, 3, 15, 29, 63,
14} // Size: 56 bytes
15
16// lookup returns the trie value for the first UTF-8 encoding in s and
17// the width in bytes of this encoding. The size will be 0 if s does not
18// hold enough bytes to complete the encoding. len(s) must be greater than 0.
19func (t *bidiTrie) lookup(s []byte) (v uint8, sz int) {
20 c0 := s[0]
21 switch {
22 case c0 < 0x80: // is ASCII
23 return bidiValues[c0], 1
24 case c0 < 0xC2:
25 return 0, 1 // Illegal UTF-8: not a starter, not ASCII.
26 case c0 < 0xE0: // 2-byte UTF-8
27 if len(s) < 2 {
28 return 0, 0
29 }
30 i := bidiIndex[c0]
31 c1 := s[1]
32 if c1 < 0x80 || 0xC0 <= c1 {
33 return 0, 1 // Illegal UTF-8: not a continuation byte.
34 }
35 return t.lookupValue(uint32(i), c1), 2
36 case c0 < 0xF0: // 3-byte UTF-8
37 if len(s) < 3 {
38 return 0, 0
39 }
40 i := bidiIndex[c0]
41 c1 := s[1]
42 if c1 < 0x80 || 0xC0 <= c1 {
43 return 0, 1 // Illegal UTF-8: not a continuation byte.
44 }
45 o := uint32(i)<<6 + uint32(c1)
46 i = bidiIndex[o]
47 c2 := s[2]
48 if c2 < 0x80 || 0xC0 <= c2 {
49 return 0, 2 // Illegal UTF-8: not a continuation byte.
50 }
51 return t.lookupValue(uint32(i), c2), 3
52 case c0 < 0xF8: // 4-byte UTF-8
53 if len(s) < 4 {
54 return 0, 0
55 }
56 i := bidiIndex[c0]
57 c1 := s[1]
58 if c1 < 0x80 || 0xC0 <= c1 {
59 return 0, 1 // Illegal UTF-8: not a continuation byte.
60 }
61 o := uint32(i)<<6 + uint32(c1)
62 i = bidiIndex[o]
63 c2 := s[2]
64 if c2 < 0x80 || 0xC0 <= c2 {
65 return 0, 2 // Illegal UTF-8: not a continuation byte.
66 }
67 o = uint32(i)<<6 + uint32(c2)
68 i = bidiIndex[o]
69 c3 := s[3]
70 if c3 < 0x80 || 0xC0 <= c3 {
71 return 0, 3 // Illegal UTF-8: not a continuation byte.
72 }
73 return t.lookupValue(uint32(i), c3), 4
74 }
75 // Illegal rune
76 return 0, 1
77}
78
79// lookupUnsafe returns the trie value for the first UTF-8 encoding in s.
80// s must start with a full and valid UTF-8 encoded rune.
81func (t *bidiTrie) lookupUnsafe(s []byte) uint8 {
82 c0 := s[0]
83 if c0 < 0x80 { // is ASCII
84 return bidiValues[c0]
85 }
86 i := bidiIndex[c0]
87 if c0 < 0xE0 { // 2-byte UTF-8
88 return t.lookupValue(uint32(i), s[1])
89 }
90 i = bidiIndex[uint32(i)<<6+uint32(s[1])]
91 if c0 < 0xF0 { // 3-byte UTF-8
92 return t.lookupValue(uint32(i), s[2])
93 }
94 i = bidiIndex[uint32(i)<<6+uint32(s[2])]
95 if c0 < 0xF8 { // 4-byte UTF-8
96 return t.lookupValue(uint32(i), s[3])
97 }
98 return 0
99}
100
101// lookupString returns the trie value for the first UTF-8 encoding in s and
102// the width in bytes of this encoding. The size will be 0 if s does not
103// hold enough bytes to complete the encoding. len(s) must be greater than 0.
104func (t *bidiTrie) lookupString(s string) (v uint8, sz int) {
105 c0 := s[0]
106 switch {
107 case c0 < 0x80: // is ASCII
108 return bidiValues[c0], 1
109 case c0 < 0xC2:
110 return 0, 1 // Illegal UTF-8: not a starter, not ASCII.
111 case c0 < 0xE0: // 2-byte UTF-8
112 if len(s) < 2 {
113 return 0, 0
114 }
115 i := bidiIndex[c0]
116 c1 := s[1]
117 if c1 < 0x80 || 0xC0 <= c1 {
118 return 0, 1 // Illegal UTF-8: not a continuation byte.
119 }
120 return t.lookupValue(uint32(i), c1), 2
121 case c0 < 0xF0: // 3-byte UTF-8
122 if len(s) < 3 {
123 return 0, 0
124 }
125 i := bidiIndex[c0]
126 c1 := s[1]
127 if c1 < 0x80 || 0xC0 <= c1 {
128 return 0, 1 // Illegal UTF-8: not a continuation byte.
129 }
130 o := uint32(i)<<6 + uint32(c1)
131 i = bidiIndex[o]
132 c2 := s[2]
133 if c2 < 0x80 || 0xC0 <= c2 {
134 return 0, 2 // Illegal UTF-8: not a continuation byte.
135 }
136 return t.lookupValue(uint32(i), c2), 3
137 case c0 < 0xF8: // 4-byte UTF-8
138 if len(s) < 4 {
139 return 0, 0
140 }
141 i := bidiIndex[c0]
142 c1 := s[1]
143 if c1 < 0x80 || 0xC0 <= c1 {
144 return 0, 1 // Illegal UTF-8: not a continuation byte.
145 }
146 o := uint32(i)<<6 + uint32(c1)
147 i = bidiIndex[o]
148 c2 := s[2]
149 if c2 < 0x80 || 0xC0 <= c2 {
150 return 0, 2 // Illegal UTF-8: not a continuation byte.
151 }
152 o = uint32(i)<<6 + uint32(c2)
153 i = bidiIndex[o]
154 c3 := s[3]
155 if c3 < 0x80 || 0xC0 <= c3 {
156 return 0, 3 // Illegal UTF-8: not a continuation byte.
157 }
158 return t.lookupValue(uint32(i), c3), 4
159 }
160 // Illegal rune
161 return 0, 1
162}
163
164// lookupStringUnsafe returns the trie value for the first UTF-8 encoding in s.
165// s must start with a full and valid UTF-8 encoded rune.
166func (t *bidiTrie) lookupStringUnsafe(s string) uint8 {
167 c0 := s[0]
168 if c0 < 0x80 { // is ASCII
169 return bidiValues[c0]
170 }
171 i := bidiIndex[c0]
172 if c0 < 0xE0 { // 2-byte UTF-8
173 return t.lookupValue(uint32(i), s[1])
174 }
175 i = bidiIndex[uint32(i)<<6+uint32(s[1])]
176 if c0 < 0xF0 { // 3-byte UTF-8
177 return t.lookupValue(uint32(i), s[2])
178 }
179 i = bidiIndex[uint32(i)<<6+uint32(s[2])]
180 if c0 < 0xF8 { // 4-byte UTF-8
181 return t.lookupValue(uint32(i), s[3])
182 }
183 return 0
184}
185
186// bidiTrie. Total size: 16128 bytes (15.75 KiB). Checksum: 8122d83e461996f.
187type bidiTrie struct{}
188
189func newBidiTrie(i int) *bidiTrie {
190 return &bidiTrie{}
191}
192
193// lookupValue determines the type of block n and looks up the value for b.
194func (t *bidiTrie) lookupValue(n uint32, b byte) uint8 {
195 switch {
196 default:
197 return uint8(bidiValues[n<<6+uint32(b)])
198 }
199}
200
201// bidiValues: 228 blocks, 14592 entries, 14592 bytes
202// The third block is the zero block.
203var bidiValues = [14592]uint8{
204 // Block 0x0, offset 0x0
205 0x00: 0x000b, 0x01: 0x000b, 0x02: 0x000b, 0x03: 0x000b, 0x04: 0x000b, 0x05: 0x000b,
206 0x06: 0x000b, 0x07: 0x000b, 0x08: 0x000b, 0x09: 0x0008, 0x0a: 0x0007, 0x0b: 0x0008,
207 0x0c: 0x0009, 0x0d: 0x0007, 0x0e: 0x000b, 0x0f: 0x000b, 0x10: 0x000b, 0x11: 0x000b,
208 0x12: 0x000b, 0x13: 0x000b, 0x14: 0x000b, 0x15: 0x000b, 0x16: 0x000b, 0x17: 0x000b,
209 0x18: 0x000b, 0x19: 0x000b, 0x1a: 0x000b, 0x1b: 0x000b, 0x1c: 0x0007, 0x1d: 0x0007,
210 0x1e: 0x0007, 0x1f: 0x0008, 0x20: 0x0009, 0x21: 0x000a, 0x22: 0x000a, 0x23: 0x0004,
211 0x24: 0x0004, 0x25: 0x0004, 0x26: 0x000a, 0x27: 0x000a, 0x28: 0x003a, 0x29: 0x002a,
212 0x2a: 0x000a, 0x2b: 0x0003, 0x2c: 0x0006, 0x2d: 0x0003, 0x2e: 0x0006, 0x2f: 0x0006,
213 0x30: 0x0002, 0x31: 0x0002, 0x32: 0x0002, 0x33: 0x0002, 0x34: 0x0002, 0x35: 0x0002,
214 0x36: 0x0002, 0x37: 0x0002, 0x38: 0x0002, 0x39: 0x0002, 0x3a: 0x0006, 0x3b: 0x000a,
215 0x3c: 0x000a, 0x3d: 0x000a, 0x3e: 0x000a, 0x3f: 0x000a,
216 // Block 0x1, offset 0x40
217 0x40: 0x000a,
218 0x5b: 0x005a, 0x5c: 0x000a, 0x5d: 0x004a,
219 0x5e: 0x000a, 0x5f: 0x000a, 0x60: 0x000a,
220 0x7b: 0x005a,
221 0x7c: 0x000a, 0x7d: 0x004a, 0x7e: 0x000a, 0x7f: 0x000b,
222 // Block 0x2, offset 0x80
223 // Block 0x3, offset 0xc0
224 0xc0: 0x000b, 0xc1: 0x000b, 0xc2: 0x000b, 0xc3: 0x000b, 0xc4: 0x000b, 0xc5: 0x0007,
225 0xc6: 0x000b, 0xc7: 0x000b, 0xc8: 0x000b, 0xc9: 0x000b, 0xca: 0x000b, 0xcb: 0x000b,
226 0xcc: 0x000b, 0xcd: 0x000b, 0xce: 0x000b, 0xcf: 0x000b, 0xd0: 0x000b, 0xd1: 0x000b,
227 0xd2: 0x000b, 0xd3: 0x000b, 0xd4: 0x000b, 0xd5: 0x000b, 0xd6: 0x000b, 0xd7: 0x000b,
228 0xd8: 0x000b, 0xd9: 0x000b, 0xda: 0x000b, 0xdb: 0x000b, 0xdc: 0x000b, 0xdd: 0x000b,
229 0xde: 0x000b, 0xdf: 0x000b, 0xe0: 0x0006, 0xe1: 0x000a, 0xe2: 0x0004, 0xe3: 0x0004,
230 0xe4: 0x0004, 0xe5: 0x0004, 0xe6: 0x000a, 0xe7: 0x000a, 0xe8: 0x000a, 0xe9: 0x000a,
231 0xeb: 0x000a, 0xec: 0x000a, 0xed: 0x000b, 0xee: 0x000a, 0xef: 0x000a,
232 0xf0: 0x0004, 0xf1: 0x0004, 0xf2: 0x0002, 0xf3: 0x0002, 0xf4: 0x000a,
233 0xf6: 0x000a, 0xf7: 0x000a, 0xf8: 0x000a, 0xf9: 0x0002, 0xfb: 0x000a,
234 0xfc: 0x000a, 0xfd: 0x000a, 0xfe: 0x000a, 0xff: 0x000a,
235 // Block 0x4, offset 0x100
236 0x117: 0x000a,
237 0x137: 0x000a,
238 // Block 0x5, offset 0x140
239 0x179: 0x000a, 0x17a: 0x000a,
240 // Block 0x6, offset 0x180
241 0x182: 0x000a, 0x183: 0x000a, 0x184: 0x000a, 0x185: 0x000a,
242 0x186: 0x000a, 0x187: 0x000a, 0x188: 0x000a, 0x189: 0x000a, 0x18a: 0x000a, 0x18b: 0x000a,
243 0x18c: 0x000a, 0x18d: 0x000a, 0x18e: 0x000a, 0x18f: 0x000a,
244 0x192: 0x000a, 0x193: 0x000a, 0x194: 0x000a, 0x195: 0x000a, 0x196: 0x000a, 0x197: 0x000a,
245 0x198: 0x000a, 0x199: 0x000a, 0x19a: 0x000a, 0x19b: 0x000a, 0x19c: 0x000a, 0x19d: 0x000a,
246 0x19e: 0x000a, 0x19f: 0x000a,
247 0x1a5: 0x000a, 0x1a6: 0x000a, 0x1a7: 0x000a, 0x1a8: 0x000a, 0x1a9: 0x000a,
248 0x1aa: 0x000a, 0x1ab: 0x000a, 0x1ac: 0x000a, 0x1ad: 0x000a, 0x1af: 0x000a,
249 0x1b0: 0x000a, 0x1b1: 0x000a, 0x1b2: 0x000a, 0x1b3: 0x000a, 0x1b4: 0x000a, 0x1b5: 0x000a,
250 0x1b6: 0x000a, 0x1b7: 0x000a, 0x1b8: 0x000a, 0x1b9: 0x000a, 0x1ba: 0x000a, 0x1bb: 0x000a,
251 0x1bc: 0x000a, 0x1bd: 0x000a, 0x1be: 0x000a, 0x1bf: 0x000a,
252 // Block 0x7, offset 0x1c0
253 0x1c0: 0x000c, 0x1c1: 0x000c, 0x1c2: 0x000c, 0x1c3: 0x000c, 0x1c4: 0x000c, 0x1c5: 0x000c,
254 0x1c6: 0x000c, 0x1c7: 0x000c, 0x1c8: 0x000c, 0x1c9: 0x000c, 0x1ca: 0x000c, 0x1cb: 0x000c,
255 0x1cc: 0x000c, 0x1cd: 0x000c, 0x1ce: 0x000c, 0x1cf: 0x000c, 0x1d0: 0x000c, 0x1d1: 0x000c,
256 0x1d2: 0x000c, 0x1d3: 0x000c, 0x1d4: 0x000c, 0x1d5: 0x000c, 0x1d6: 0x000c, 0x1d7: 0x000c,
257 0x1d8: 0x000c, 0x1d9: 0x000c, 0x1da: 0x000c, 0x1db: 0x000c, 0x1dc: 0x000c, 0x1dd: 0x000c,
258 0x1de: 0x000c, 0x1df: 0x000c, 0x1e0: 0x000c, 0x1e1: 0x000c, 0x1e2: 0x000c, 0x1e3: 0x000c,
259 0x1e4: 0x000c, 0x1e5: 0x000c, 0x1e6: 0x000c, 0x1e7: 0x000c, 0x1e8: 0x000c, 0x1e9: 0x000c,
260 0x1ea: 0x000c, 0x1eb: 0x000c, 0x1ec: 0x000c, 0x1ed: 0x000c, 0x1ee: 0x000c, 0x1ef: 0x000c,
261 0x1f0: 0x000c, 0x1f1: 0x000c, 0x1f2: 0x000c, 0x1f3: 0x000c, 0x1f4: 0x000c, 0x1f5: 0x000c,
262 0x1f6: 0x000c, 0x1f7: 0x000c, 0x1f8: 0x000c, 0x1f9: 0x000c, 0x1fa: 0x000c, 0x1fb: 0x000c,
263 0x1fc: 0x000c, 0x1fd: 0x000c, 0x1fe: 0x000c, 0x1ff: 0x000c,
264 // Block 0x8, offset 0x200
265 0x200: 0x000c, 0x201: 0x000c, 0x202: 0x000c, 0x203: 0x000c, 0x204: 0x000c, 0x205: 0x000c,
266 0x206: 0x000c, 0x207: 0x000c, 0x208: 0x000c, 0x209: 0x000c, 0x20a: 0x000c, 0x20b: 0x000c,
267 0x20c: 0x000c, 0x20d: 0x000c, 0x20e: 0x000c, 0x20f: 0x000c, 0x210: 0x000c, 0x211: 0x000c,
268 0x212: 0x000c, 0x213: 0x000c, 0x214: 0x000c, 0x215: 0x000c, 0x216: 0x000c, 0x217: 0x000c,
269 0x218: 0x000c, 0x219: 0x000c, 0x21a: 0x000c, 0x21b: 0x000c, 0x21c: 0x000c, 0x21d: 0x000c,
270 0x21e: 0x000c, 0x21f: 0x000c, 0x220: 0x000c, 0x221: 0x000c, 0x222: 0x000c, 0x223: 0x000c,
271 0x224: 0x000c, 0x225: 0x000c, 0x226: 0x000c, 0x227: 0x000c, 0x228: 0x000c, 0x229: 0x000c,
272 0x22a: 0x000c, 0x22b: 0x000c, 0x22c: 0x000c, 0x22d: 0x000c, 0x22e: 0x000c, 0x22f: 0x000c,
273 0x234: 0x000a, 0x235: 0x000a,
274 0x23e: 0x000a,
275 // Block 0x9, offset 0x240
276 0x244: 0x000a, 0x245: 0x000a,
277 0x247: 0x000a,
278 // Block 0xa, offset 0x280
279 0x2b6: 0x000a,
280 // Block 0xb, offset 0x2c0
281 0x2c3: 0x000c, 0x2c4: 0x000c, 0x2c5: 0x000c,
282 0x2c6: 0x000c, 0x2c7: 0x000c, 0x2c8: 0x000c, 0x2c9: 0x000c,
283 // Block 0xc, offset 0x300
284 0x30a: 0x000a,
285 0x30d: 0x000a, 0x30e: 0x000a, 0x30f: 0x0004, 0x310: 0x0001, 0x311: 0x000c,
286 0x312: 0x000c, 0x313: 0x000c, 0x314: 0x000c, 0x315: 0x000c, 0x316: 0x000c, 0x317: 0x000c,
287 0x318: 0x000c, 0x319: 0x000c, 0x31a: 0x000c, 0x31b: 0x000c, 0x31c: 0x000c, 0x31d: 0x000c,
288 0x31e: 0x000c, 0x31f: 0x000c, 0x320: 0x000c, 0x321: 0x000c, 0x322: 0x000c, 0x323: 0x000c,
289 0x324: 0x000c, 0x325: 0x000c, 0x326: 0x000c, 0x327: 0x000c, 0x328: 0x000c, 0x329: 0x000c,
290 0x32a: 0x000c, 0x32b: 0x000c, 0x32c: 0x000c, 0x32d: 0x000c, 0x32e: 0x000c, 0x32f: 0x000c,
291 0x330: 0x000c, 0x331: 0x000c, 0x332: 0x000c, 0x333: 0x000c, 0x334: 0x000c, 0x335: 0x000c,
292 0x336: 0x000c, 0x337: 0x000c, 0x338: 0x000c, 0x339: 0x000c, 0x33a: 0x000c, 0x33b: 0x000c,
293 0x33c: 0x000c, 0x33d: 0x000c, 0x33e: 0x0001, 0x33f: 0x000c,
294 // Block 0xd, offset 0x340
295 0x340: 0x0001, 0x341: 0x000c, 0x342: 0x000c, 0x343: 0x0001, 0x344: 0x000c, 0x345: 0x000c,
296 0x346: 0x0001, 0x347: 0x000c, 0x348: 0x0001, 0x349: 0x0001, 0x34a: 0x0001, 0x34b: 0x0001,
297 0x34c: 0x0001, 0x34d: 0x0001, 0x34e: 0x0001, 0x34f: 0x0001, 0x350: 0x0001, 0x351: 0x0001,
298 0x352: 0x0001, 0x353: 0x0001, 0x354: 0x0001, 0x355: 0x0001, 0x356: 0x0001, 0x357: 0x0001,
299 0x358: 0x0001, 0x359: 0x0001, 0x35a: 0x0001, 0x35b: 0x0001, 0x35c: 0x0001, 0x35d: 0x0001,
300 0x35e: 0x0001, 0x35f: 0x0001, 0x360: 0x0001, 0x361: 0x0001, 0x362: 0x0001, 0x363: 0x0001,
301 0x364: 0x0001, 0x365: 0x0001, 0x366: 0x0001, 0x367: 0x0001, 0x368: 0x0001, 0x369: 0x0001,
302 0x36a: 0x0001, 0x36b: 0x0001, 0x36c: 0x0001, 0x36d: 0x0001, 0x36e: 0x0001, 0x36f: 0x0001,
303 0x370: 0x0001, 0x371: 0x0001, 0x372: 0x0001, 0x373: 0x0001, 0x374: 0x0001, 0x375: 0x0001,
304 0x376: 0x0001, 0x377: 0x0001, 0x378: 0x0001, 0x379: 0x0001, 0x37a: 0x0001, 0x37b: 0x0001,
305 0x37c: 0x0001, 0x37d: 0x0001, 0x37e: 0x0001, 0x37f: 0x0001,
306 // Block 0xe, offset 0x380
307 0x380: 0x0005, 0x381: 0x0005, 0x382: 0x0005, 0x383: 0x0005, 0x384: 0x0005, 0x385: 0x0005,
308 0x386: 0x000a, 0x387: 0x000a, 0x388: 0x000d, 0x389: 0x0004, 0x38a: 0x0004, 0x38b: 0x000d,
309 0x38c: 0x0006, 0x38d: 0x000d, 0x38e: 0x000a, 0x38f: 0x000a, 0x390: 0x000c, 0x391: 0x000c,
310 0x392: 0x000c, 0x393: 0x000c, 0x394: 0x000c, 0x395: 0x000c, 0x396: 0x000c, 0x397: 0x000c,
311 0x398: 0x000c, 0x399: 0x000c, 0x39a: 0x000c, 0x39b: 0x000d, 0x39c: 0x000d, 0x39d: 0x000d,
312 0x39e: 0x000d, 0x39f: 0x000d, 0x3a0: 0x000d, 0x3a1: 0x000d, 0x3a2: 0x000d, 0x3a3: 0x000d,
313 0x3a4: 0x000d, 0x3a5: 0x000d, 0x3a6: 0x000d, 0x3a7: 0x000d, 0x3a8: 0x000d, 0x3a9: 0x000d,
314 0x3aa: 0x000d, 0x3ab: 0x000d, 0x3ac: 0x000d, 0x3ad: 0x000d, 0x3ae: 0x000d, 0x3af: 0x000d,
315 0x3b0: 0x000d, 0x3b1: 0x000d, 0x3b2: 0x000d, 0x3b3: 0x000d, 0x3b4: 0x000d, 0x3b5: 0x000d,
316 0x3b6: 0x000d, 0x3b7: 0x000d, 0x3b8: 0x000d, 0x3b9: 0x000d, 0x3ba: 0x000d, 0x3bb: 0x000d,
317 0x3bc: 0x000d, 0x3bd: 0x000d, 0x3be: 0x000d, 0x3bf: 0x000d,
318 // Block 0xf, offset 0x3c0
319 0x3c0: 0x000d, 0x3c1: 0x000d, 0x3c2: 0x000d, 0x3c3: 0x000d, 0x3c4: 0x000d, 0x3c5: 0x000d,
320 0x3c6: 0x000d, 0x3c7: 0x000d, 0x3c8: 0x000d, 0x3c9: 0x000d, 0x3ca: 0x000d, 0x3cb: 0x000c,
321 0x3cc: 0x000c, 0x3cd: 0x000c, 0x3ce: 0x000c, 0x3cf: 0x000c, 0x3d0: 0x000c, 0x3d1: 0x000c,
322 0x3d2: 0x000c, 0x3d3: 0x000c, 0x3d4: 0x000c, 0x3d5: 0x000c, 0x3d6: 0x000c, 0x3d7: 0x000c,
323 0x3d8: 0x000c, 0x3d9: 0x000c, 0x3da: 0x000c, 0x3db: 0x000c, 0x3dc: 0x000c, 0x3dd: 0x000c,
324 0x3de: 0x000c, 0x3df: 0x000c, 0x3e0: 0x0005, 0x3e1: 0x0005, 0x3e2: 0x0005, 0x3e3: 0x0005,
325 0x3e4: 0x0005, 0x3e5: 0x0005, 0x3e6: 0x0005, 0x3e7: 0x0005, 0x3e8: 0x0005, 0x3e9: 0x0005,
326 0x3ea: 0x0004, 0x3eb: 0x0005, 0x3ec: 0x0005, 0x3ed: 0x000d, 0x3ee: 0x000d, 0x3ef: 0x000d,
327 0x3f0: 0x000c, 0x3f1: 0x000d, 0x3f2: 0x000d, 0x3f3: 0x000d, 0x3f4: 0x000d, 0x3f5: 0x000d,
328 0x3f6: 0x000d, 0x3f7: 0x000d, 0x3f8: 0x000d, 0x3f9: 0x000d, 0x3fa: 0x000d, 0x3fb: 0x000d,
329 0x3fc: 0x000d, 0x3fd: 0x000d, 0x3fe: 0x000d, 0x3ff: 0x000d,
330 // Block 0x10, offset 0x400
331 0x400: 0x000d, 0x401: 0x000d, 0x402: 0x000d, 0x403: 0x000d, 0x404: 0x000d, 0x405: 0x000d,
332 0x406: 0x000d, 0x407: 0x000d, 0x408: 0x000d, 0x409: 0x000d, 0x40a: 0x000d, 0x40b: 0x000d,
333 0x40c: 0x000d, 0x40d: 0x000d, 0x40e: 0x000d, 0x40f: 0x000d, 0x410: 0x000d, 0x411: 0x000d,
334 0x412: 0x000d, 0x413: 0x000d, 0x414: 0x000d, 0x415: 0x000d, 0x416: 0x000d, 0x417: 0x000d,
335 0x418: 0x000d, 0x419: 0x000d, 0x41a: 0x000d, 0x41b: 0x000d, 0x41c: 0x000d, 0x41d: 0x000d,
336 0x41e: 0x000d, 0x41f: 0x000d, 0x420: 0x000d, 0x421: 0x000d, 0x422: 0x000d, 0x423: 0x000d,
337 0x424: 0x000d, 0x425: 0x000d, 0x426: 0x000d, 0x427: 0x000d, 0x428: 0x000d, 0x429: 0x000d,
338 0x42a: 0x000d, 0x42b: 0x000d, 0x42c: 0x000d, 0x42d: 0x000d, 0x42e: 0x000d, 0x42f: 0x000d,
339 0x430: 0x000d, 0x431: 0x000d, 0x432: 0x000d, 0x433: 0x000d, 0x434: 0x000d, 0x435: 0x000d,
340 0x436: 0x000d, 0x437: 0x000d, 0x438: 0x000d, 0x439: 0x000d, 0x43a: 0x000d, 0x43b: 0x000d,
341 0x43c: 0x000d, 0x43d: 0x000d, 0x43e: 0x000d, 0x43f: 0x000d,
342 // Block 0x11, offset 0x440
343 0x440: 0x000d, 0x441: 0x000d, 0x442: 0x000d, 0x443: 0x000d, 0x444: 0x000d, 0x445: 0x000d,
344 0x446: 0x000d, 0x447: 0x000d, 0x448: 0x000d, 0x449: 0x000d, 0x44a: 0x000d, 0x44b: 0x000d,
345 0x44c: 0x000d, 0x44d: 0x000d, 0x44e: 0x000d, 0x44f: 0x000d, 0x450: 0x000d, 0x451: 0x000d,
346 0x452: 0x000d, 0x453: 0x000d, 0x454: 0x000d, 0x455: 0x000d, 0x456: 0x000c, 0x457: 0x000c,
347 0x458: 0x000c, 0x459: 0x000c, 0x45a: 0x000c, 0x45b: 0x000c, 0x45c: 0x000c, 0x45d: 0x0005,
348 0x45e: 0x000a, 0x45f: 0x000c, 0x460: 0x000c, 0x461: 0x000c, 0x462: 0x000c, 0x463: 0x000c,
349 0x464: 0x000c, 0x465: 0x000d, 0x466: 0x000d, 0x467: 0x000c, 0x468: 0x000c, 0x469: 0x000a,
350 0x46a: 0x000c, 0x46b: 0x000c, 0x46c: 0x000c, 0x46d: 0x000c, 0x46e: 0x000d, 0x46f: 0x000d,
351 0x470: 0x0002, 0x471: 0x0002, 0x472: 0x0002, 0x473: 0x0002, 0x474: 0x0002, 0x475: 0x0002,
352 0x476: 0x0002, 0x477: 0x0002, 0x478: 0x0002, 0x479: 0x0002, 0x47a: 0x000d, 0x47b: 0x000d,
353 0x47c: 0x000d, 0x47d: 0x000d, 0x47e: 0x000d, 0x47f: 0x000d,
354 // Block 0x12, offset 0x480
355 0x480: 0x000d, 0x481: 0x000d, 0x482: 0x000d, 0x483: 0x000d, 0x484: 0x000d, 0x485: 0x000d,
356 0x486: 0x000d, 0x487: 0x000d, 0x488: 0x000d, 0x489: 0x000d, 0x48a: 0x000d, 0x48b: 0x000d,
357 0x48c: 0x000d, 0x48d: 0x000d, 0x48e: 0x000d, 0x48f: 0x000d, 0x490: 0x000d, 0x491: 0x000c,
358 0x492: 0x000d, 0x493: 0x000d, 0x494: 0x000d, 0x495: 0x000d, 0x496: 0x000d, 0x497: 0x000d,
359 0x498: 0x000d, 0x499: 0x000d, 0x49a: 0x000d, 0x49b: 0x000d, 0x49c: 0x000d, 0x49d: 0x000d,
360 0x49e: 0x000d, 0x49f: 0x000d, 0x4a0: 0x000d, 0x4a1: 0x000d, 0x4a2: 0x000d, 0x4a3: 0x000d,
361 0x4a4: 0x000d, 0x4a5: 0x000d, 0x4a6: 0x000d, 0x4a7: 0x000d, 0x4a8: 0x000d, 0x4a9: 0x000d,
362 0x4aa: 0x000d, 0x4ab: 0x000d, 0x4ac: 0x000d, 0x4ad: 0x000d, 0x4ae: 0x000d, 0x4af: 0x000d,
363 0x4b0: 0x000c, 0x4b1: 0x000c, 0x4b2: 0x000c, 0x4b3: 0x000c, 0x4b4: 0x000c, 0x4b5: 0x000c,
364 0x4b6: 0x000c, 0x4b7: 0x000c, 0x4b8: 0x000c, 0x4b9: 0x000c, 0x4ba: 0x000c, 0x4bb: 0x000c,
365 0x4bc: 0x000c, 0x4bd: 0x000c, 0x4be: 0x000c, 0x4bf: 0x000c,
366 // Block 0x13, offset 0x4c0
367 0x4c0: 0x000c, 0x4c1: 0x000c, 0x4c2: 0x000c, 0x4c3: 0x000c, 0x4c4: 0x000c, 0x4c5: 0x000c,
368 0x4c6: 0x000c, 0x4c7: 0x000c, 0x4c8: 0x000c, 0x4c9: 0x000c, 0x4ca: 0x000c, 0x4cb: 0x000d,
369 0x4cc: 0x000d, 0x4cd: 0x000d, 0x4ce: 0x000d, 0x4cf: 0x000d, 0x4d0: 0x000d, 0x4d1: 0x000d,
370 0x4d2: 0x000d, 0x4d3: 0x000d, 0x4d4: 0x000d, 0x4d5: 0x000d, 0x4d6: 0x000d, 0x4d7: 0x000d,
371 0x4d8: 0x000d, 0x4d9: 0x000d, 0x4da: 0x000d, 0x4db: 0x000d, 0x4dc: 0x000d, 0x4dd: 0x000d,
372 0x4de: 0x000d, 0x4df: 0x000d, 0x4e0: 0x000d, 0x4e1: 0x000d, 0x4e2: 0x000d, 0x4e3: 0x000d,
373 0x4e4: 0x000d, 0x4e5: 0x000d, 0x4e6: 0x000d, 0x4e7: 0x000d, 0x4e8: 0x000d, 0x4e9: 0x000d,
374 0x4ea: 0x000d, 0x4eb: 0x000d, 0x4ec: 0x000d, 0x4ed: 0x000d, 0x4ee: 0x000d, 0x4ef: 0x000d,
375 0x4f0: 0x000d, 0x4f1: 0x000d, 0x4f2: 0x000d, 0x4f3: 0x000d, 0x4f4: 0x000d, 0x4f5: 0x000d,
376 0x4f6: 0x000d, 0x4f7: 0x000d, 0x4f8: 0x000d, 0x4f9: 0x000d, 0x4fa: 0x000d, 0x4fb: 0x000d,
377 0x4fc: 0x000d, 0x4fd: 0x000d, 0x4fe: 0x000d, 0x4ff: 0x000d,
378 // Block 0x14, offset 0x500
379 0x500: 0x000d, 0x501: 0x000d, 0x502: 0x000d, 0x503: 0x000d, 0x504: 0x000d, 0x505: 0x000d,
380 0x506: 0x000d, 0x507: 0x000d, 0x508: 0x000d, 0x509: 0x000d, 0x50a: 0x000d, 0x50b: 0x000d,
381 0x50c: 0x000d, 0x50d: 0x000d, 0x50e: 0x000d, 0x50f: 0x000d, 0x510: 0x000d, 0x511: 0x000d,
382 0x512: 0x000d, 0x513: 0x000d, 0x514: 0x000d, 0x515: 0x000d, 0x516: 0x000d, 0x517: 0x000d,
383 0x518: 0x000d, 0x519: 0x000d, 0x51a: 0x000d, 0x51b: 0x000d, 0x51c: 0x000d, 0x51d: 0x000d,
384 0x51e: 0x000d, 0x51f: 0x000d, 0x520: 0x000d, 0x521: 0x000d, 0x522: 0x000d, 0x523: 0x000d,
385 0x524: 0x000d, 0x525: 0x000d, 0x526: 0x000c, 0x527: 0x000c, 0x528: 0x000c, 0x529: 0x000c,
386 0x52a: 0x000c, 0x52b: 0x000c, 0x52c: 0x000c, 0x52d: 0x000c, 0x52e: 0x000c, 0x52f: 0x000c,
387 0x530: 0x000c, 0x531: 0x000d, 0x532: 0x000d, 0x533: 0x000d, 0x534: 0x000d, 0x535: 0x000d,
388 0x536: 0x000d, 0x537: 0x000d, 0x538: 0x000d, 0x539: 0x000d, 0x53a: 0x000d, 0x53b: 0x000d,
389 0x53c: 0x000d, 0x53d: 0x000d, 0x53e: 0x000d, 0x53f: 0x000d,
390 // Block 0x15, offset 0x540
391 0x540: 0x0001, 0x541: 0x0001, 0x542: 0x0001, 0x543: 0x0001, 0x544: 0x0001, 0x545: 0x0001,
392 0x546: 0x0001, 0x547: 0x0001, 0x548: 0x0001, 0x549: 0x0001, 0x54a: 0x0001, 0x54b: 0x0001,
393 0x54c: 0x0001, 0x54d: 0x0001, 0x54e: 0x0001, 0x54f: 0x0001, 0x550: 0x0001, 0x551: 0x0001,
394 0x552: 0x0001, 0x553: 0x0001, 0x554: 0x0001, 0x555: 0x0001, 0x556: 0x0001, 0x557: 0x0001,
395 0x558: 0x0001, 0x559: 0x0001, 0x55a: 0x0001, 0x55b: 0x0001, 0x55c: 0x0001, 0x55d: 0x0001,
396 0x55e: 0x0001, 0x55f: 0x0001, 0x560: 0x0001, 0x561: 0x0001, 0x562: 0x0001, 0x563: 0x0001,
397 0x564: 0x0001, 0x565: 0x0001, 0x566: 0x0001, 0x567: 0x0001, 0x568: 0x0001, 0x569: 0x0001,
398 0x56a: 0x0001, 0x56b: 0x000c, 0x56c: 0x000c, 0x56d: 0x000c, 0x56e: 0x000c, 0x56f: 0x000c,
399 0x570: 0x000c, 0x571: 0x000c, 0x572: 0x000c, 0x573: 0x000c, 0x574: 0x0001, 0x575: 0x0001,
400 0x576: 0x000a, 0x577: 0x000a, 0x578: 0x000a, 0x579: 0x000a, 0x57a: 0x0001, 0x57b: 0x0001,
401 0x57c: 0x0001, 0x57d: 0x0001, 0x57e: 0x0001, 0x57f: 0x0001,
402 // Block 0x16, offset 0x580
403 0x580: 0x0001, 0x581: 0x0001, 0x582: 0x0001, 0x583: 0x0001, 0x584: 0x0001, 0x585: 0x0001,
404 0x586: 0x0001, 0x587: 0x0001, 0x588: 0x0001, 0x589: 0x0001, 0x58a: 0x0001, 0x58b: 0x0001,
405 0x58c: 0x0001, 0x58d: 0x0001, 0x58e: 0x0001, 0x58f: 0x0001, 0x590: 0x0001, 0x591: 0x0001,
406 0x592: 0x0001, 0x593: 0x0001, 0x594: 0x0001, 0x595: 0x0001, 0x596: 0x000c, 0x597: 0x000c,
407 0x598: 0x000c, 0x599: 0x000c, 0x59a: 0x0001, 0x59b: 0x000c, 0x59c: 0x000c, 0x59d: 0x000c,
408 0x59e: 0x000c, 0x59f: 0x000c, 0x5a0: 0x000c, 0x5a1: 0x000c, 0x5a2: 0x000c, 0x5a3: 0x000c,
409 0x5a4: 0x0001, 0x5a5: 0x000c, 0x5a6: 0x000c, 0x5a7: 0x000c, 0x5a8: 0x0001, 0x5a9: 0x000c,
410 0x5aa: 0x000c, 0x5ab: 0x000c, 0x5ac: 0x000c, 0x5ad: 0x000c, 0x5ae: 0x0001, 0x5af: 0x0001,
411 0x5b0: 0x0001, 0x5b1: 0x0001, 0x5b2: 0x0001, 0x5b3: 0x0001, 0x5b4: 0x0001, 0x5b5: 0x0001,
412 0x5b6: 0x0001, 0x5b7: 0x0001, 0x5b8: 0x0001, 0x5b9: 0x0001, 0x5ba: 0x0001, 0x5bb: 0x0001,
413 0x5bc: 0x0001, 0x5bd: 0x0001, 0x5be: 0x0001, 0x5bf: 0x0001,
414 // Block 0x17, offset 0x5c0
415 0x5c0: 0x0001, 0x5c1: 0x0001, 0x5c2: 0x0001, 0x5c3: 0x0001, 0x5c4: 0x0001, 0x5c5: 0x0001,
416 0x5c6: 0x0001, 0x5c7: 0x0001, 0x5c8: 0x0001, 0x5c9: 0x0001, 0x5ca: 0x0001, 0x5cb: 0x0001,
417 0x5cc: 0x0001, 0x5cd: 0x0001, 0x5ce: 0x0001, 0x5cf: 0x0001, 0x5d0: 0x0001, 0x5d1: 0x0001,
418 0x5d2: 0x0001, 0x5d3: 0x0001, 0x5d4: 0x0001, 0x5d5: 0x0001, 0x5d6: 0x0001, 0x5d7: 0x0001,
419 0x5d8: 0x0001, 0x5d9: 0x000c, 0x5da: 0x000c, 0x5db: 0x000c, 0x5dc: 0x0001, 0x5dd: 0x0001,
420 0x5de: 0x0001, 0x5df: 0x0001, 0x5e0: 0x000d, 0x5e1: 0x000d, 0x5e2: 0x000d, 0x5e3: 0x000d,
421 0x5e4: 0x000d, 0x5e5: 0x000d, 0x5e6: 0x000d, 0x5e7: 0x000d, 0x5e8: 0x000d, 0x5e9: 0x000d,
422 0x5ea: 0x000d, 0x5eb: 0x000d, 0x5ec: 0x000d, 0x5ed: 0x000d, 0x5ee: 0x000d, 0x5ef: 0x000d,
423 0x5f0: 0x0001, 0x5f1: 0x0001, 0x5f2: 0x0001, 0x5f3: 0x0001, 0x5f4: 0x0001, 0x5f5: 0x0001,
424 0x5f6: 0x0001, 0x5f7: 0x0001, 0x5f8: 0x0001, 0x5f9: 0x0001, 0x5fa: 0x0001, 0x5fb: 0x0001,
425 0x5fc: 0x0001, 0x5fd: 0x0001, 0x5fe: 0x0001, 0x5ff: 0x0001,
426 // Block 0x18, offset 0x600
427 0x600: 0x0001, 0x601: 0x0001, 0x602: 0x0001, 0x603: 0x0001, 0x604: 0x0001, 0x605: 0x0001,
428 0x606: 0x0001, 0x607: 0x0001, 0x608: 0x0001, 0x609: 0x0001, 0x60a: 0x0001, 0x60b: 0x0001,
429 0x60c: 0x0001, 0x60d: 0x0001, 0x60e: 0x0001, 0x60f: 0x0001, 0x610: 0x0001, 0x611: 0x0001,
430 0x612: 0x0001, 0x613: 0x0001, 0x614: 0x0001, 0x615: 0x0001, 0x616: 0x0001, 0x617: 0x0001,
431 0x618: 0x0001, 0x619: 0x0001, 0x61a: 0x0001, 0x61b: 0x0001, 0x61c: 0x0001, 0x61d: 0x0001,
432 0x61e: 0x0001, 0x61f: 0x0001, 0x620: 0x000d, 0x621: 0x000d, 0x622: 0x000d, 0x623: 0x000d,
433 0x624: 0x000d, 0x625: 0x000d, 0x626: 0x000d, 0x627: 0x000d, 0x628: 0x000d, 0x629: 0x000d,
434 0x62a: 0x000d, 0x62b: 0x000d, 0x62c: 0x000d, 0x62d: 0x000d, 0x62e: 0x000d, 0x62f: 0x000d,
435 0x630: 0x000d, 0x631: 0x000d, 0x632: 0x000d, 0x633: 0x000d, 0x634: 0x000d, 0x635: 0x000d,
436 0x636: 0x000d, 0x637: 0x000d, 0x638: 0x000d, 0x639: 0x000d, 0x63a: 0x000d, 0x63b: 0x000d,
437 0x63c: 0x000d, 0x63d: 0x000d, 0x63e: 0x000d, 0x63f: 0x000d,
438 // Block 0x19, offset 0x640
439 0x640: 0x000d, 0x641: 0x000d, 0x642: 0x000d, 0x643: 0x000d, 0x644: 0x000d, 0x645: 0x000d,
440 0x646: 0x000d, 0x647: 0x000d, 0x648: 0x000d, 0x649: 0x000d, 0x64a: 0x000d, 0x64b: 0x000d,
441 0x64c: 0x000d, 0x64d: 0x000d, 0x64e: 0x000d, 0x64f: 0x000d, 0x650: 0x000d, 0x651: 0x000d,
442 0x652: 0x000d, 0x653: 0x000d, 0x654: 0x000c, 0x655: 0x000c, 0x656: 0x000c, 0x657: 0x000c,
443 0x658: 0x000c, 0x659: 0x000c, 0x65a: 0x000c, 0x65b: 0x000c, 0x65c: 0x000c, 0x65d: 0x000c,
444 0x65e: 0x000c, 0x65f: 0x000c, 0x660: 0x000c, 0x661: 0x000c, 0x662: 0x0005, 0x663: 0x000c,
445 0x664: 0x000c, 0x665: 0x000c, 0x666: 0x000c, 0x667: 0x000c, 0x668: 0x000c, 0x669: 0x000c,
446 0x66a: 0x000c, 0x66b: 0x000c, 0x66c: 0x000c, 0x66d: 0x000c, 0x66e: 0x000c, 0x66f: 0x000c,
447 0x670: 0x000c, 0x671: 0x000c, 0x672: 0x000c, 0x673: 0x000c, 0x674: 0x000c, 0x675: 0x000c,
448 0x676: 0x000c, 0x677: 0x000c, 0x678: 0x000c, 0x679: 0x000c, 0x67a: 0x000c, 0x67b: 0x000c,
449 0x67c: 0x000c, 0x67d: 0x000c, 0x67e: 0x000c, 0x67f: 0x000c,
450 // Block 0x1a, offset 0x680
451 0x680: 0x000c, 0x681: 0x000c, 0x682: 0x000c,
452 0x6ba: 0x000c,
453 0x6bc: 0x000c,
454 // Block 0x1b, offset 0x6c0
455 0x6c1: 0x000c, 0x6c2: 0x000c, 0x6c3: 0x000c, 0x6c4: 0x000c, 0x6c5: 0x000c,
456 0x6c6: 0x000c, 0x6c7: 0x000c, 0x6c8: 0x000c,
457 0x6cd: 0x000c, 0x6d1: 0x000c,
458 0x6d2: 0x000c, 0x6d3: 0x000c, 0x6d4: 0x000c, 0x6d5: 0x000c, 0x6d6: 0x000c, 0x6d7: 0x000c,
459 0x6e2: 0x000c, 0x6e3: 0x000c,
460 // Block 0x1c, offset 0x700
461 0x701: 0x000c,
462 0x73c: 0x000c,
463 // Block 0x1d, offset 0x740
464 0x741: 0x000c, 0x742: 0x000c, 0x743: 0x000c, 0x744: 0x000c,
465 0x74d: 0x000c,
466 0x762: 0x000c, 0x763: 0x000c,
467 0x772: 0x0004, 0x773: 0x0004,
468 0x77b: 0x0004,
469 // Block 0x1e, offset 0x780
470 0x781: 0x000c, 0x782: 0x000c,
471 0x7bc: 0x000c,
472 // Block 0x1f, offset 0x7c0
473 0x7c1: 0x000c, 0x7c2: 0x000c,
474 0x7c7: 0x000c, 0x7c8: 0x000c, 0x7cb: 0x000c,
475 0x7cc: 0x000c, 0x7cd: 0x000c, 0x7d1: 0x000c,
476 0x7f0: 0x000c, 0x7f1: 0x000c, 0x7f5: 0x000c,
477 // Block 0x20, offset 0x800
478 0x801: 0x000c, 0x802: 0x000c, 0x803: 0x000c, 0x804: 0x000c, 0x805: 0x000c,
479 0x807: 0x000c, 0x808: 0x000c,
480 0x80d: 0x000c,
481 0x822: 0x000c, 0x823: 0x000c,
482 0x831: 0x0004,
483 0x83a: 0x000c, 0x83b: 0x000c,
484 0x83c: 0x000c, 0x83d: 0x000c, 0x83e: 0x000c, 0x83f: 0x000c,
485 // Block 0x21, offset 0x840
486 0x841: 0x000c,
487 0x87c: 0x000c, 0x87f: 0x000c,
488 // Block 0x22, offset 0x880
489 0x881: 0x000c, 0x882: 0x000c, 0x883: 0x000c, 0x884: 0x000c,
490 0x88d: 0x000c,
491 0x896: 0x000c,
492 0x8a2: 0x000c, 0x8a3: 0x000c,
493 // Block 0x23, offset 0x8c0
494 0x8c2: 0x000c,
495 // Block 0x24, offset 0x900
496 0x900: 0x000c,
497 0x90d: 0x000c,
498 0x933: 0x000a, 0x934: 0x000a, 0x935: 0x000a,
499 0x936: 0x000a, 0x937: 0x000a, 0x938: 0x000a, 0x939: 0x0004, 0x93a: 0x000a,
500 // Block 0x25, offset 0x940
501 0x940: 0x000c,
502 0x97e: 0x000c, 0x97f: 0x000c,
503 // Block 0x26, offset 0x980
504 0x980: 0x000c,
505 0x986: 0x000c, 0x987: 0x000c, 0x988: 0x000c, 0x98a: 0x000c, 0x98b: 0x000c,
506 0x98c: 0x000c, 0x98d: 0x000c,
507 0x995: 0x000c, 0x996: 0x000c,
508 0x9a2: 0x000c, 0x9a3: 0x000c,
509 0x9b8: 0x000a, 0x9b9: 0x000a, 0x9ba: 0x000a, 0x9bb: 0x000a,
510 0x9bc: 0x000a, 0x9bd: 0x000a, 0x9be: 0x000a,
511 // Block 0x27, offset 0x9c0
512 0x9cc: 0x000c, 0x9cd: 0x000c,
513 0x9e2: 0x000c, 0x9e3: 0x000c,
514 // Block 0x28, offset 0xa00
515 0xa00: 0x000c, 0xa01: 0x000c,
516 0xa3b: 0x000c,
517 0xa3c: 0x000c,
518 // Block 0x29, offset 0xa40
519 0xa41: 0x000c, 0xa42: 0x000c, 0xa43: 0x000c, 0xa44: 0x000c,
520 0xa4d: 0x000c,
521 0xa62: 0x000c, 0xa63: 0x000c,
522 // Block 0x2a, offset 0xa80
523 0xa8a: 0x000c,
524 0xa92: 0x000c, 0xa93: 0x000c, 0xa94: 0x000c, 0xa96: 0x000c,
525 // Block 0x2b, offset 0xac0
526 0xaf1: 0x000c, 0xaf4: 0x000c, 0xaf5: 0x000c,
527 0xaf6: 0x000c, 0xaf7: 0x000c, 0xaf8: 0x000c, 0xaf9: 0x000c, 0xafa: 0x000c,
528 0xaff: 0x0004,
529 // Block 0x2c, offset 0xb00
530 0xb07: 0x000c, 0xb08: 0x000c, 0xb09: 0x000c, 0xb0a: 0x000c, 0xb0b: 0x000c,
531 0xb0c: 0x000c, 0xb0d: 0x000c, 0xb0e: 0x000c,
532 // Block 0x2d, offset 0xb40
533 0xb71: 0x000c, 0xb74: 0x000c, 0xb75: 0x000c,
534 0xb76: 0x000c, 0xb77: 0x000c, 0xb78: 0x000c, 0xb79: 0x000c, 0xb7b: 0x000c,
535 0xb7c: 0x000c,
536 // Block 0x2e, offset 0xb80
537 0xb88: 0x000c, 0xb89: 0x000c, 0xb8a: 0x000c, 0xb8b: 0x000c,
538 0xb8c: 0x000c, 0xb8d: 0x000c,
539 // Block 0x2f, offset 0xbc0
540 0xbd8: 0x000c, 0xbd9: 0x000c,
541 0xbf5: 0x000c,
542 0xbf7: 0x000c, 0xbf9: 0x000c, 0xbfa: 0x003a, 0xbfb: 0x002a,
543 0xbfc: 0x003a, 0xbfd: 0x002a,
544 // Block 0x30, offset 0xc00
545 0xc31: 0x000c, 0xc32: 0x000c, 0xc33: 0x000c, 0xc34: 0x000c, 0xc35: 0x000c,
546 0xc36: 0x000c, 0xc37: 0x000c, 0xc38: 0x000c, 0xc39: 0x000c, 0xc3a: 0x000c, 0xc3b: 0x000c,
547 0xc3c: 0x000c, 0xc3d: 0x000c, 0xc3e: 0x000c,
548 // Block 0x31, offset 0xc40
549 0xc40: 0x000c, 0xc41: 0x000c, 0xc42: 0x000c, 0xc43: 0x000c, 0xc44: 0x000c,
550 0xc46: 0x000c, 0xc47: 0x000c,
551 0xc4d: 0x000c, 0xc4e: 0x000c, 0xc4f: 0x000c, 0xc50: 0x000c, 0xc51: 0x000c,
552 0xc52: 0x000c, 0xc53: 0x000c, 0xc54: 0x000c, 0xc55: 0x000c, 0xc56: 0x000c, 0xc57: 0x000c,
553 0xc59: 0x000c, 0xc5a: 0x000c, 0xc5b: 0x000c, 0xc5c: 0x000c, 0xc5d: 0x000c,
554 0xc5e: 0x000c, 0xc5f: 0x000c, 0xc60: 0x000c, 0xc61: 0x000c, 0xc62: 0x000c, 0xc63: 0x000c,
555 0xc64: 0x000c, 0xc65: 0x000c, 0xc66: 0x000c, 0xc67: 0x000c, 0xc68: 0x000c, 0xc69: 0x000c,
556 0xc6a: 0x000c, 0xc6b: 0x000c, 0xc6c: 0x000c, 0xc6d: 0x000c, 0xc6e: 0x000c, 0xc6f: 0x000c,
557 0xc70: 0x000c, 0xc71: 0x000c, 0xc72: 0x000c, 0xc73: 0x000c, 0xc74: 0x000c, 0xc75: 0x000c,
558 0xc76: 0x000c, 0xc77: 0x000c, 0xc78: 0x000c, 0xc79: 0x000c, 0xc7a: 0x000c, 0xc7b: 0x000c,
559 0xc7c: 0x000c,
560 // Block 0x32, offset 0xc80
561 0xc86: 0x000c,
562 // Block 0x33, offset 0xcc0
563 0xced: 0x000c, 0xcee: 0x000c, 0xcef: 0x000c,
564 0xcf0: 0x000c, 0xcf2: 0x000c, 0xcf3: 0x000c, 0xcf4: 0x000c, 0xcf5: 0x000c,
565 0xcf6: 0x000c, 0xcf7: 0x000c, 0xcf9: 0x000c, 0xcfa: 0x000c,
566 0xcfd: 0x000c, 0xcfe: 0x000c,
567 // Block 0x34, offset 0xd00
568 0xd18: 0x000c, 0xd19: 0x000c,
569 0xd1e: 0x000c, 0xd1f: 0x000c, 0xd20: 0x000c,
570 0xd31: 0x000c, 0xd32: 0x000c, 0xd33: 0x000c, 0xd34: 0x000c,
571 // Block 0x35, offset 0xd40
572 0xd42: 0x000c, 0xd45: 0x000c,
573 0xd46: 0x000c,
574 0xd4d: 0x000c,
575 0xd5d: 0x000c,
576 // Block 0x36, offset 0xd80
577 0xd9d: 0x000c,
578 0xd9e: 0x000c, 0xd9f: 0x000c,
579 // Block 0x37, offset 0xdc0
580 0xdd0: 0x000a, 0xdd1: 0x000a,
581 0xdd2: 0x000a, 0xdd3: 0x000a, 0xdd4: 0x000a, 0xdd5: 0x000a, 0xdd6: 0x000a, 0xdd7: 0x000a,
582 0xdd8: 0x000a, 0xdd9: 0x000a,
583 // Block 0x38, offset 0xe00
584 0xe00: 0x000a,
585 // Block 0x39, offset 0xe40
586 0xe40: 0x0009,
587 0xe5b: 0x007a, 0xe5c: 0x006a,
588 // Block 0x3a, offset 0xe80
589 0xe92: 0x000c, 0xe93: 0x000c, 0xe94: 0x000c,
590 0xeb2: 0x000c, 0xeb3: 0x000c, 0xeb4: 0x000c,
591 // Block 0x3b, offset 0xec0
592 0xed2: 0x000c, 0xed3: 0x000c,
593 0xef2: 0x000c, 0xef3: 0x000c,
594 // Block 0x3c, offset 0xf00
595 0xf34: 0x000c, 0xf35: 0x000c,
596 0xf37: 0x000c, 0xf38: 0x000c, 0xf39: 0x000c, 0xf3a: 0x000c, 0xf3b: 0x000c,
597 0xf3c: 0x000c, 0xf3d: 0x000c,
598 // Block 0x3d, offset 0xf40
599 0xf46: 0x000c, 0xf49: 0x000c, 0xf4a: 0x000c, 0xf4b: 0x000c,
600 0xf4c: 0x000c, 0xf4d: 0x000c, 0xf4e: 0x000c, 0xf4f: 0x000c, 0xf50: 0x000c, 0xf51: 0x000c,
601 0xf52: 0x000c, 0xf53: 0x000c,
602 0xf5b: 0x0004, 0xf5d: 0x000c,
603 0xf70: 0x000a, 0xf71: 0x000a, 0xf72: 0x000a, 0xf73: 0x000a, 0xf74: 0x000a, 0xf75: 0x000a,
604 0xf76: 0x000a, 0xf77: 0x000a, 0xf78: 0x000a, 0xf79: 0x000a,
605 // Block 0x3e, offset 0xf80
606 0xf80: 0x000a, 0xf81: 0x000a, 0xf82: 0x000a, 0xf83: 0x000a, 0xf84: 0x000a, 0xf85: 0x000a,
607 0xf86: 0x000a, 0xf87: 0x000a, 0xf88: 0x000a, 0xf89: 0x000a, 0xf8a: 0x000a, 0xf8b: 0x000c,
608 0xf8c: 0x000c, 0xf8d: 0x000c, 0xf8e: 0x000b,
609 // Block 0x3f, offset 0xfc0
610 0xfc5: 0x000c,
611 0xfc6: 0x000c,
612 0xfe9: 0x000c,
613 // Block 0x40, offset 0x1000
614 0x1020: 0x000c, 0x1021: 0x000c, 0x1022: 0x000c,
615 0x1027: 0x000c, 0x1028: 0x000c,
616 0x1032: 0x000c,
617 0x1039: 0x000c, 0x103a: 0x000c, 0x103b: 0x000c,
618 // Block 0x41, offset 0x1040
619 0x1040: 0x000a, 0x1044: 0x000a, 0x1045: 0x000a,
620 // Block 0x42, offset 0x1080
621 0x109e: 0x000a, 0x109f: 0x000a, 0x10a0: 0x000a, 0x10a1: 0x000a, 0x10a2: 0x000a, 0x10a3: 0x000a,
622 0x10a4: 0x000a, 0x10a5: 0x000a, 0x10a6: 0x000a, 0x10a7: 0x000a, 0x10a8: 0x000a, 0x10a9: 0x000a,
623 0x10aa: 0x000a, 0x10ab: 0x000a, 0x10ac: 0x000a, 0x10ad: 0x000a, 0x10ae: 0x000a, 0x10af: 0x000a,
624 0x10b0: 0x000a, 0x10b1: 0x000a, 0x10b2: 0x000a, 0x10b3: 0x000a, 0x10b4: 0x000a, 0x10b5: 0x000a,
625 0x10b6: 0x000a, 0x10b7: 0x000a, 0x10b8: 0x000a, 0x10b9: 0x000a, 0x10ba: 0x000a, 0x10bb: 0x000a,
626 0x10bc: 0x000a, 0x10bd: 0x000a, 0x10be: 0x000a, 0x10bf: 0x000a,
627 // Block 0x43, offset 0x10c0
628 0x10d7: 0x000c,
629 0x10d8: 0x000c, 0x10db: 0x000c,
630 // Block 0x44, offset 0x1100
631 0x1116: 0x000c,
632 0x1118: 0x000c, 0x1119: 0x000c, 0x111a: 0x000c, 0x111b: 0x000c, 0x111c: 0x000c, 0x111d: 0x000c,
633 0x111e: 0x000c, 0x1120: 0x000c, 0x1122: 0x000c,
634 0x1125: 0x000c, 0x1126: 0x000c, 0x1127: 0x000c, 0x1128: 0x000c, 0x1129: 0x000c,
635 0x112a: 0x000c, 0x112b: 0x000c, 0x112c: 0x000c,
636 0x1133: 0x000c, 0x1134: 0x000c, 0x1135: 0x000c,
637 0x1136: 0x000c, 0x1137: 0x000c, 0x1138: 0x000c, 0x1139: 0x000c, 0x113a: 0x000c, 0x113b: 0x000c,
638 0x113c: 0x000c, 0x113f: 0x000c,
639 // Block 0x45, offset 0x1140
640 0x1170: 0x000c, 0x1171: 0x000c, 0x1172: 0x000c, 0x1173: 0x000c, 0x1174: 0x000c, 0x1175: 0x000c,
641 0x1176: 0x000c, 0x1177: 0x000c, 0x1178: 0x000c, 0x1179: 0x000c, 0x117a: 0x000c, 0x117b: 0x000c,
642 0x117c: 0x000c, 0x117d: 0x000c, 0x117e: 0x000c,
643 // Block 0x46, offset 0x1180
644 0x1180: 0x000c, 0x1181: 0x000c, 0x1182: 0x000c, 0x1183: 0x000c,
645 0x11b4: 0x000c,
646 0x11b6: 0x000c, 0x11b7: 0x000c, 0x11b8: 0x000c, 0x11b9: 0x000c, 0x11ba: 0x000c,
647 0x11bc: 0x000c,
648 // Block 0x47, offset 0x11c0
649 0x11c2: 0x000c,
650 0x11eb: 0x000c, 0x11ec: 0x000c, 0x11ed: 0x000c, 0x11ee: 0x000c, 0x11ef: 0x000c,
651 0x11f0: 0x000c, 0x11f1: 0x000c, 0x11f2: 0x000c, 0x11f3: 0x000c,
652 // Block 0x48, offset 0x1200
653 0x1200: 0x000c, 0x1201: 0x000c,
654 0x1222: 0x000c, 0x1223: 0x000c,
655 0x1224: 0x000c, 0x1225: 0x000c, 0x1228: 0x000c, 0x1229: 0x000c,
656 0x122b: 0x000c, 0x122c: 0x000c, 0x122d: 0x000c,
657 // Block 0x49, offset 0x1240
658 0x1266: 0x000c, 0x1268: 0x000c, 0x1269: 0x000c,
659 0x126d: 0x000c, 0x126f: 0x000c,
660 0x1270: 0x000c, 0x1271: 0x000c,
661 // Block 0x4a, offset 0x1280
662 0x12ac: 0x000c, 0x12ad: 0x000c, 0x12ae: 0x000c, 0x12af: 0x000c,
663 0x12b0: 0x000c, 0x12b1: 0x000c, 0x12b2: 0x000c, 0x12b3: 0x000c,
664 0x12b6: 0x000c, 0x12b7: 0x000c,
665 // Block 0x4b, offset 0x12c0
666 0x12d0: 0x000c, 0x12d1: 0x000c,
667 0x12d2: 0x000c, 0x12d4: 0x000c, 0x12d5: 0x000c, 0x12d6: 0x000c, 0x12d7: 0x000c,
668 0x12d8: 0x000c, 0x12d9: 0x000c, 0x12da: 0x000c, 0x12db: 0x000c, 0x12dc: 0x000c, 0x12dd: 0x000c,
669 0x12de: 0x000c, 0x12df: 0x000c, 0x12e0: 0x000c, 0x12e2: 0x000c, 0x12e3: 0x000c,
670 0x12e4: 0x000c, 0x12e5: 0x000c, 0x12e6: 0x000c, 0x12e7: 0x000c, 0x12e8: 0x000c,
671 0x12ed: 0x000c,
672 0x12f4: 0x000c,
673 0x12f8: 0x000c, 0x12f9: 0x000c,
674 // Block 0x4c, offset 0x1300
675 0x1300: 0x000c, 0x1301: 0x000c, 0x1302: 0x000c, 0x1303: 0x000c, 0x1304: 0x000c, 0x1305: 0x000c,
676 0x1306: 0x000c, 0x1307: 0x000c, 0x1308: 0x000c, 0x1309: 0x000c, 0x130a: 0x000c, 0x130b: 0x000c,
677 0x130c: 0x000c, 0x130d: 0x000c, 0x130e: 0x000c, 0x130f: 0x000c, 0x1310: 0x000c, 0x1311: 0x000c,
678 0x1312: 0x000c, 0x1313: 0x000c, 0x1314: 0x000c, 0x1315: 0x000c, 0x1316: 0x000c, 0x1317: 0x000c,
679 0x1318: 0x000c, 0x1319: 0x000c, 0x131a: 0x000c, 0x131b: 0x000c, 0x131c: 0x000c, 0x131d: 0x000c,
680 0x131e: 0x000c, 0x131f: 0x000c, 0x1320: 0x000c, 0x1321: 0x000c, 0x1322: 0x000c, 0x1323: 0x000c,
681 0x1324: 0x000c, 0x1325: 0x000c, 0x1326: 0x000c, 0x1327: 0x000c, 0x1328: 0x000c, 0x1329: 0x000c,
682 0x132a: 0x000c, 0x132b: 0x000c, 0x132c: 0x000c, 0x132d: 0x000c, 0x132e: 0x000c, 0x132f: 0x000c,
683 0x1330: 0x000c, 0x1331: 0x000c, 0x1332: 0x000c, 0x1333: 0x000c, 0x1334: 0x000c, 0x1335: 0x000c,
684 0x1336: 0x000c, 0x1337: 0x000c, 0x1338: 0x000c, 0x1339: 0x000c, 0x133b: 0x000c,
685 0x133c: 0x000c, 0x133d: 0x000c, 0x133e: 0x000c, 0x133f: 0x000c,
686 // Block 0x4d, offset 0x1340
687 0x137d: 0x000a, 0x137f: 0x000a,
688 // Block 0x4e, offset 0x1380
689 0x1380: 0x000a, 0x1381: 0x000a,
690 0x138d: 0x000a, 0x138e: 0x000a, 0x138f: 0x000a,
691 0x139d: 0x000a,
692 0x139e: 0x000a, 0x139f: 0x000a,
693 0x13ad: 0x000a, 0x13ae: 0x000a, 0x13af: 0x000a,
694 0x13bd: 0x000a, 0x13be: 0x000a,
695 // Block 0x4f, offset 0x13c0
696 0x13c0: 0x0009, 0x13c1: 0x0009, 0x13c2: 0x0009, 0x13c3: 0x0009, 0x13c4: 0x0009, 0x13c5: 0x0009,
697 0x13c6: 0x0009, 0x13c7: 0x0009, 0x13c8: 0x0009, 0x13c9: 0x0009, 0x13ca: 0x0009, 0x13cb: 0x000b,
698 0x13cc: 0x000b, 0x13cd: 0x000b, 0x13cf: 0x0001, 0x13d0: 0x000a, 0x13d1: 0x000a,
699 0x13d2: 0x000a, 0x13d3: 0x000a, 0x13d4: 0x000a, 0x13d5: 0x000a, 0x13d6: 0x000a, 0x13d7: 0x000a,
700 0x13d8: 0x000a, 0x13d9: 0x000a, 0x13da: 0x000a, 0x13db: 0x000a, 0x13dc: 0x000a, 0x13dd: 0x000a,
701 0x13de: 0x000a, 0x13df: 0x000a, 0x13e0: 0x000a, 0x13e1: 0x000a, 0x13e2: 0x000a, 0x13e3: 0x000a,
702 0x13e4: 0x000a, 0x13e5: 0x000a, 0x13e6: 0x000a, 0x13e7: 0x000a, 0x13e8: 0x0009, 0x13e9: 0x0007,
703 0x13ea: 0x000e, 0x13eb: 0x000e, 0x13ec: 0x000e, 0x13ed: 0x000e, 0x13ee: 0x000e, 0x13ef: 0x0006,
704 0x13f0: 0x0004, 0x13f1: 0x0004, 0x13f2: 0x0004, 0x13f3: 0x0004, 0x13f4: 0x0004, 0x13f5: 0x000a,
705 0x13f6: 0x000a, 0x13f7: 0x000a, 0x13f8: 0x000a, 0x13f9: 0x000a, 0x13fa: 0x000a, 0x13fb: 0x000a,
706 0x13fc: 0x000a, 0x13fd: 0x000a, 0x13fe: 0x000a, 0x13ff: 0x000a,
707 // Block 0x50, offset 0x1400
708 0x1400: 0x000a, 0x1401: 0x000a, 0x1402: 0x000a, 0x1403: 0x000a, 0x1404: 0x0006, 0x1405: 0x009a,
709 0x1406: 0x008a, 0x1407: 0x000a, 0x1408: 0x000a, 0x1409: 0x000a, 0x140a: 0x000a, 0x140b: 0x000a,
710 0x140c: 0x000a, 0x140d: 0x000a, 0x140e: 0x000a, 0x140f: 0x000a, 0x1410: 0x000a, 0x1411: 0x000a,
711 0x1412: 0x000a, 0x1413: 0x000a, 0x1414: 0x000a, 0x1415: 0x000a, 0x1416: 0x000a, 0x1417: 0x000a,
712 0x1418: 0x000a, 0x1419: 0x000a, 0x141a: 0x000a, 0x141b: 0x000a, 0x141c: 0x000a, 0x141d: 0x000a,
713 0x141e: 0x000a, 0x141f: 0x0009, 0x1420: 0x000b, 0x1421: 0x000b, 0x1422: 0x000b, 0x1423: 0x000b,
714 0x1424: 0x000b, 0x1425: 0x000b, 0x1426: 0x000e, 0x1427: 0x000e, 0x1428: 0x000e, 0x1429: 0x000e,
715 0x142a: 0x000b, 0x142b: 0x000b, 0x142c: 0x000b, 0x142d: 0x000b, 0x142e: 0x000b, 0x142f: 0x000b,
716 0x1430: 0x0002, 0x1434: 0x0002, 0x1435: 0x0002,
717 0x1436: 0x0002, 0x1437: 0x0002, 0x1438: 0x0002, 0x1439: 0x0002, 0x143a: 0x0003, 0x143b: 0x0003,
718 0x143c: 0x000a, 0x143d: 0x009a, 0x143e: 0x008a,
719 // Block 0x51, offset 0x1440
720 0x1440: 0x0002, 0x1441: 0x0002, 0x1442: 0x0002, 0x1443: 0x0002, 0x1444: 0x0002, 0x1445: 0x0002,
721 0x1446: 0x0002, 0x1447: 0x0002, 0x1448: 0x0002, 0x1449: 0x0002, 0x144a: 0x0003, 0x144b: 0x0003,
722 0x144c: 0x000a, 0x144d: 0x009a, 0x144e: 0x008a,
723 0x1460: 0x0004, 0x1461: 0x0004, 0x1462: 0x0004, 0x1463: 0x0004,
724 0x1464: 0x0004, 0x1465: 0x0004, 0x1466: 0x0004, 0x1467: 0x0004, 0x1468: 0x0004, 0x1469: 0x0004,
725 0x146a: 0x0004, 0x146b: 0x0004, 0x146c: 0x0004, 0x146d: 0x0004, 0x146e: 0x0004, 0x146f: 0x0004,
726 0x1470: 0x0004, 0x1471: 0x0004, 0x1472: 0x0004, 0x1473: 0x0004, 0x1474: 0x0004, 0x1475: 0x0004,
727 0x1476: 0x0004, 0x1477: 0x0004, 0x1478: 0x0004, 0x1479: 0x0004, 0x147a: 0x0004, 0x147b: 0x0004,
728 0x147c: 0x0004, 0x147d: 0x0004, 0x147e: 0x0004, 0x147f: 0x0004,
729 // Block 0x52, offset 0x1480
730 0x1480: 0x0004, 0x1481: 0x0004, 0x1482: 0x0004, 0x1483: 0x0004, 0x1484: 0x0004, 0x1485: 0x0004,
731 0x1486: 0x0004, 0x1487: 0x0004, 0x1488: 0x0004, 0x1489: 0x0004, 0x148a: 0x0004, 0x148b: 0x0004,
732 0x148c: 0x0004, 0x148d: 0x0004, 0x148e: 0x0004, 0x148f: 0x0004, 0x1490: 0x000c, 0x1491: 0x000c,
733 0x1492: 0x000c, 0x1493: 0x000c, 0x1494: 0x000c, 0x1495: 0x000c, 0x1496: 0x000c, 0x1497: 0x000c,
734 0x1498: 0x000c, 0x1499: 0x000c, 0x149a: 0x000c, 0x149b: 0x000c, 0x149c: 0x000c, 0x149d: 0x000c,
735 0x149e: 0x000c, 0x149f: 0x000c, 0x14a0: 0x000c, 0x14a1: 0x000c, 0x14a2: 0x000c, 0x14a3: 0x000c,
736 0x14a4: 0x000c, 0x14a5: 0x000c, 0x14a6: 0x000c, 0x14a7: 0x000c, 0x14a8: 0x000c, 0x14a9: 0x000c,
737 0x14aa: 0x000c, 0x14ab: 0x000c, 0x14ac: 0x000c, 0x14ad: 0x000c, 0x14ae: 0x000c, 0x14af: 0x000c,
738 0x14b0: 0x000c,
739 // Block 0x53, offset 0x14c0
740 0x14c0: 0x000a, 0x14c1: 0x000a, 0x14c3: 0x000a, 0x14c4: 0x000a, 0x14c5: 0x000a,
741 0x14c6: 0x000a, 0x14c8: 0x000a, 0x14c9: 0x000a,
742 0x14d4: 0x000a, 0x14d6: 0x000a, 0x14d7: 0x000a,
743 0x14d8: 0x000a,
744 0x14de: 0x000a, 0x14df: 0x000a, 0x14e0: 0x000a, 0x14e1: 0x000a, 0x14e2: 0x000a, 0x14e3: 0x000a,
745 0x14e5: 0x000a, 0x14e7: 0x000a, 0x14e9: 0x000a,
746 0x14ee: 0x0004,
747 0x14fa: 0x000a, 0x14fb: 0x000a,
748 // Block 0x54, offset 0x1500
749 0x1500: 0x000a, 0x1501: 0x000a, 0x1502: 0x000a, 0x1503: 0x000a, 0x1504: 0x000a,
750 0x150a: 0x000a, 0x150b: 0x000a,
751 0x150c: 0x000a, 0x150d: 0x000a, 0x1510: 0x000a, 0x1511: 0x000a,
752 0x1512: 0x000a, 0x1513: 0x000a, 0x1514: 0x000a, 0x1515: 0x000a, 0x1516: 0x000a, 0x1517: 0x000a,
753 0x1518: 0x000a, 0x1519: 0x000a, 0x151a: 0x000a, 0x151b: 0x000a, 0x151c: 0x000a, 0x151d: 0x000a,
754 0x151e: 0x000a, 0x151f: 0x000a,
755 // Block 0x55, offset 0x1540
756 0x1549: 0x000a, 0x154a: 0x000a, 0x154b: 0x000a,
757 0x1550: 0x000a, 0x1551: 0x000a,
758 0x1552: 0x000a, 0x1553: 0x000a, 0x1554: 0x000a, 0x1555: 0x000a, 0x1556: 0x000a, 0x1557: 0x000a,
759 0x1558: 0x000a, 0x1559: 0x000a, 0x155a: 0x000a, 0x155b: 0x000a, 0x155c: 0x000a, 0x155d: 0x000a,
760 0x155e: 0x000a, 0x155f: 0x000a, 0x1560: 0x000a, 0x1561: 0x000a, 0x1562: 0x000a, 0x1563: 0x000a,
761 0x1564: 0x000a, 0x1565: 0x000a, 0x1566: 0x000a, 0x1567: 0x000a, 0x1568: 0x000a, 0x1569: 0x000a,
762 0x156a: 0x000a, 0x156b: 0x000a, 0x156c: 0x000a, 0x156d: 0x000a, 0x156e: 0x000a, 0x156f: 0x000a,
763 0x1570: 0x000a, 0x1571: 0x000a, 0x1572: 0x000a, 0x1573: 0x000a, 0x1574: 0x000a, 0x1575: 0x000a,
764 0x1576: 0x000a, 0x1577: 0x000a, 0x1578: 0x000a, 0x1579: 0x000a, 0x157a: 0x000a, 0x157b: 0x000a,
765 0x157c: 0x000a, 0x157d: 0x000a, 0x157e: 0x000a, 0x157f: 0x000a,
766 // Block 0x56, offset 0x1580
767 0x1580: 0x000a, 0x1581: 0x000a, 0x1582: 0x000a, 0x1583: 0x000a, 0x1584: 0x000a, 0x1585: 0x000a,
768 0x1586: 0x000a, 0x1587: 0x000a, 0x1588: 0x000a, 0x1589: 0x000a, 0x158a: 0x000a, 0x158b: 0x000a,
769 0x158c: 0x000a, 0x158d: 0x000a, 0x158e: 0x000a, 0x158f: 0x000a, 0x1590: 0x000a, 0x1591: 0x000a,
770 0x1592: 0x000a, 0x1593: 0x000a, 0x1594: 0x000a, 0x1595: 0x000a, 0x1596: 0x000a, 0x1597: 0x000a,
771 0x1598: 0x000a, 0x1599: 0x000a, 0x159a: 0x000a, 0x159b: 0x000a, 0x159c: 0x000a, 0x159d: 0x000a,
772 0x159e: 0x000a, 0x159f: 0x000a, 0x15a0: 0x000a, 0x15a1: 0x000a, 0x15a2: 0x000a, 0x15a3: 0x000a,
773 0x15a4: 0x000a, 0x15a5: 0x000a, 0x15a6: 0x000a, 0x15a7: 0x000a, 0x15a8: 0x000a, 0x15a9: 0x000a,
774 0x15aa: 0x000a, 0x15ab: 0x000a, 0x15ac: 0x000a, 0x15ad: 0x000a, 0x15ae: 0x000a, 0x15af: 0x000a,
775 0x15b0: 0x000a, 0x15b1: 0x000a, 0x15b2: 0x000a, 0x15b3: 0x000a, 0x15b4: 0x000a, 0x15b5: 0x000a,
776 0x15b6: 0x000a, 0x15b7: 0x000a, 0x15b8: 0x000a, 0x15b9: 0x000a, 0x15ba: 0x000a, 0x15bb: 0x000a,
777 0x15bc: 0x000a, 0x15bd: 0x000a, 0x15be: 0x000a, 0x15bf: 0x000a,
778 // Block 0x57, offset 0x15c0
779 0x15c0: 0x000a, 0x15c1: 0x000a, 0x15c2: 0x000a, 0x15c3: 0x000a, 0x15c4: 0x000a, 0x15c5: 0x000a,
780 0x15c6: 0x000a, 0x15c7: 0x000a, 0x15c8: 0x000a, 0x15c9: 0x000a, 0x15ca: 0x000a, 0x15cb: 0x000a,
781 0x15cc: 0x000a, 0x15cd: 0x000a, 0x15ce: 0x000a, 0x15cf: 0x000a, 0x15d0: 0x000a, 0x15d1: 0x000a,
782 0x15d2: 0x0003, 0x15d3: 0x0004, 0x15d4: 0x000a, 0x15d5: 0x000a, 0x15d6: 0x000a, 0x15d7: 0x000a,
783 0x15d8: 0x000a, 0x15d9: 0x000a, 0x15da: 0x000a, 0x15db: 0x000a, 0x15dc: 0x000a, 0x15dd: 0x000a,
784 0x15de: 0x000a, 0x15df: 0x000a, 0x15e0: 0x000a, 0x15e1: 0x000a, 0x15e2: 0x000a, 0x15e3: 0x000a,
785 0x15e4: 0x000a, 0x15e5: 0x000a, 0x15e6: 0x000a, 0x15e7: 0x000a, 0x15e8: 0x000a, 0x15e9: 0x000a,
786 0x15ea: 0x000a, 0x15eb: 0x000a, 0x15ec: 0x000a, 0x15ed: 0x000a, 0x15ee: 0x000a, 0x15ef: 0x000a,
787 0x15f0: 0x000a, 0x15f1: 0x000a, 0x15f2: 0x000a, 0x15f3: 0x000a, 0x15f4: 0x000a, 0x15f5: 0x000a,
788 0x15f6: 0x000a, 0x15f7: 0x000a, 0x15f8: 0x000a, 0x15f9: 0x000a, 0x15fa: 0x000a, 0x15fb: 0x000a,
789 0x15fc: 0x000a, 0x15fd: 0x000a, 0x15fe: 0x000a, 0x15ff: 0x000a,
790 // Block 0x58, offset 0x1600
791 0x1600: 0x000a, 0x1601: 0x000a, 0x1602: 0x000a, 0x1603: 0x000a, 0x1604: 0x000a, 0x1605: 0x000a,
792 0x1606: 0x000a, 0x1607: 0x000a, 0x1608: 0x003a, 0x1609: 0x002a, 0x160a: 0x003a, 0x160b: 0x002a,
793 0x160c: 0x000a, 0x160d: 0x000a, 0x160e: 0x000a, 0x160f: 0x000a, 0x1610: 0x000a, 0x1611: 0x000a,
794 0x1612: 0x000a, 0x1613: 0x000a, 0x1614: 0x000a, 0x1615: 0x000a, 0x1616: 0x000a, 0x1617: 0x000a,
795 0x1618: 0x000a, 0x1619: 0x000a, 0x161a: 0x000a, 0x161b: 0x000a, 0x161c: 0x000a, 0x161d: 0x000a,
796 0x161e: 0x000a, 0x161f: 0x000a, 0x1620: 0x000a, 0x1621: 0x000a, 0x1622: 0x000a, 0x1623: 0x000a,
797 0x1624: 0x000a, 0x1625: 0x000a, 0x1626: 0x000a, 0x1627: 0x000a, 0x1628: 0x000a, 0x1629: 0x009a,
798 0x162a: 0x008a, 0x162b: 0x000a, 0x162c: 0x000a, 0x162d: 0x000a, 0x162e: 0x000a, 0x162f: 0x000a,
799 0x1630: 0x000a, 0x1631: 0x000a, 0x1632: 0x000a, 0x1633: 0x000a, 0x1634: 0x000a, 0x1635: 0x000a,
800 // Block 0x59, offset 0x1640
801 0x167b: 0x000a,
802 0x167c: 0x000a, 0x167d: 0x000a, 0x167e: 0x000a, 0x167f: 0x000a,
803 // Block 0x5a, offset 0x1680
804 0x1680: 0x000a, 0x1681: 0x000a, 0x1682: 0x000a, 0x1683: 0x000a, 0x1684: 0x000a, 0x1685: 0x000a,
805 0x1686: 0x000a, 0x1687: 0x000a, 0x1688: 0x000a, 0x1689: 0x000a, 0x168a: 0x000a, 0x168b: 0x000a,
806 0x168c: 0x000a, 0x168d: 0x000a, 0x168e: 0x000a, 0x168f: 0x000a, 0x1690: 0x000a, 0x1691: 0x000a,
807 0x1692: 0x000a, 0x1693: 0x000a, 0x1694: 0x000a, 0x1696: 0x000a, 0x1697: 0x000a,
808 0x1698: 0x000a, 0x1699: 0x000a, 0x169a: 0x000a, 0x169b: 0x000a, 0x169c: 0x000a, 0x169d: 0x000a,
809 0x169e: 0x000a, 0x169f: 0x000a, 0x16a0: 0x000a, 0x16a1: 0x000a, 0x16a2: 0x000a, 0x16a3: 0x000a,
810 0x16a4: 0x000a, 0x16a5: 0x000a, 0x16a6: 0x000a, 0x16a7: 0x000a, 0x16a8: 0x000a, 0x16a9: 0x000a,
811 0x16aa: 0x000a, 0x16ab: 0x000a, 0x16ac: 0x000a, 0x16ad: 0x000a, 0x16ae: 0x000a, 0x16af: 0x000a,
812 0x16b0: 0x000a, 0x16b1: 0x000a, 0x16b2: 0x000a, 0x16b3: 0x000a, 0x16b4: 0x000a, 0x16b5: 0x000a,
813 0x16b6: 0x000a, 0x16b7: 0x000a, 0x16b8: 0x000a, 0x16b9: 0x000a, 0x16ba: 0x000a, 0x16bb: 0x000a,
814 0x16bc: 0x000a, 0x16bd: 0x000a, 0x16be: 0x000a, 0x16bf: 0x000a,
815 // Block 0x5b, offset 0x16c0
816 0x16c0: 0x000a, 0x16c1: 0x000a, 0x16c2: 0x000a, 0x16c3: 0x000a, 0x16c4: 0x000a, 0x16c5: 0x000a,
817 0x16c6: 0x000a, 0x16c7: 0x000a, 0x16c8: 0x000a, 0x16c9: 0x000a, 0x16ca: 0x000a, 0x16cb: 0x000a,
818 0x16cc: 0x000a, 0x16cd: 0x000a, 0x16ce: 0x000a, 0x16cf: 0x000a, 0x16d0: 0x000a, 0x16d1: 0x000a,
819 0x16d2: 0x000a, 0x16d3: 0x000a, 0x16d4: 0x000a, 0x16d5: 0x000a, 0x16d6: 0x000a, 0x16d7: 0x000a,
820 0x16d8: 0x000a, 0x16d9: 0x000a, 0x16da: 0x000a, 0x16db: 0x000a, 0x16dc: 0x000a, 0x16dd: 0x000a,
821 0x16de: 0x000a, 0x16df: 0x000a, 0x16e0: 0x000a, 0x16e1: 0x000a, 0x16e2: 0x000a, 0x16e3: 0x000a,
822 0x16e4: 0x000a, 0x16e5: 0x000a, 0x16e6: 0x000a,
823 // Block 0x5c, offset 0x1700
824 0x1700: 0x000a, 0x1701: 0x000a, 0x1702: 0x000a, 0x1703: 0x000a, 0x1704: 0x000a, 0x1705: 0x000a,
825 0x1706: 0x000a, 0x1707: 0x000a, 0x1708: 0x000a, 0x1709: 0x000a, 0x170a: 0x000a,
826 0x1720: 0x000a, 0x1721: 0x000a, 0x1722: 0x000a, 0x1723: 0x000a,
827 0x1724: 0x000a, 0x1725: 0x000a, 0x1726: 0x000a, 0x1727: 0x000a, 0x1728: 0x000a, 0x1729: 0x000a,
828 0x172a: 0x000a, 0x172b: 0x000a, 0x172c: 0x000a, 0x172d: 0x000a, 0x172e: 0x000a, 0x172f: 0x000a,
829 0x1730: 0x000a, 0x1731: 0x000a, 0x1732: 0x000a, 0x1733: 0x000a, 0x1734: 0x000a, 0x1735: 0x000a,
830 0x1736: 0x000a, 0x1737: 0x000a, 0x1738: 0x000a, 0x1739: 0x000a, 0x173a: 0x000a, 0x173b: 0x000a,
831 0x173c: 0x000a, 0x173d: 0x000a, 0x173e: 0x000a, 0x173f: 0x000a,
832 // Block 0x5d, offset 0x1740
833 0x1740: 0x000a, 0x1741: 0x000a, 0x1742: 0x000a, 0x1743: 0x000a, 0x1744: 0x000a, 0x1745: 0x000a,
834 0x1746: 0x000a, 0x1747: 0x000a, 0x1748: 0x0002, 0x1749: 0x0002, 0x174a: 0x0002, 0x174b: 0x0002,
835 0x174c: 0x0002, 0x174d: 0x0002, 0x174e: 0x0002, 0x174f: 0x0002, 0x1750: 0x0002, 0x1751: 0x0002,
836 0x1752: 0x0002, 0x1753: 0x0002, 0x1754: 0x0002, 0x1755: 0x0002, 0x1756: 0x0002, 0x1757: 0x0002,
837 0x1758: 0x0002, 0x1759: 0x0002, 0x175a: 0x0002, 0x175b: 0x0002,
838 // Block 0x5e, offset 0x1780
839 0x17aa: 0x000a, 0x17ab: 0x000a, 0x17ac: 0x000a, 0x17ad: 0x000a, 0x17ae: 0x000a, 0x17af: 0x000a,
840 0x17b0: 0x000a, 0x17b1: 0x000a, 0x17b2: 0x000a, 0x17b3: 0x000a, 0x17b4: 0x000a, 0x17b5: 0x000a,
841 0x17b6: 0x000a, 0x17b7: 0x000a, 0x17b8: 0x000a, 0x17b9: 0x000a, 0x17ba: 0x000a, 0x17bb: 0x000a,
842 0x17bc: 0x000a, 0x17bd: 0x000a, 0x17be: 0x000a, 0x17bf: 0x000a,
843 // Block 0x5f, offset 0x17c0
844 0x17c0: 0x000a, 0x17c1: 0x000a, 0x17c2: 0x000a, 0x17c3: 0x000a, 0x17c4: 0x000a, 0x17c5: 0x000a,
845 0x17c6: 0x000a, 0x17c7: 0x000a, 0x17c8: 0x000a, 0x17c9: 0x000a, 0x17ca: 0x000a, 0x17cb: 0x000a,
846 0x17cc: 0x000a, 0x17cd: 0x000a, 0x17ce: 0x000a, 0x17cf: 0x000a, 0x17d0: 0x000a, 0x17d1: 0x000a,
847 0x17d2: 0x000a, 0x17d3: 0x000a, 0x17d4: 0x000a, 0x17d5: 0x000a, 0x17d6: 0x000a, 0x17d7: 0x000a,
848 0x17d8: 0x000a, 0x17d9: 0x000a, 0x17da: 0x000a, 0x17db: 0x000a, 0x17dc: 0x000a, 0x17dd: 0x000a,
849 0x17de: 0x000a, 0x17df: 0x000a, 0x17e0: 0x000a, 0x17e1: 0x000a, 0x17e2: 0x000a, 0x17e3: 0x000a,
850 0x17e4: 0x000a, 0x17e5: 0x000a, 0x17e6: 0x000a, 0x17e7: 0x000a, 0x17e8: 0x000a, 0x17e9: 0x000a,
851 0x17ea: 0x000a, 0x17eb: 0x000a, 0x17ed: 0x000a, 0x17ee: 0x000a, 0x17ef: 0x000a,
852 0x17f0: 0x000a, 0x17f1: 0x000a, 0x17f2: 0x000a, 0x17f3: 0x000a, 0x17f4: 0x000a, 0x17f5: 0x000a,
853 0x17f6: 0x000a, 0x17f7: 0x000a, 0x17f8: 0x000a, 0x17f9: 0x000a, 0x17fa: 0x000a, 0x17fb: 0x000a,
854 0x17fc: 0x000a, 0x17fd: 0x000a, 0x17fe: 0x000a, 0x17ff: 0x000a,
855 // Block 0x60, offset 0x1800
856 0x1800: 0x000a, 0x1801: 0x000a, 0x1802: 0x000a, 0x1803: 0x000a, 0x1804: 0x000a, 0x1805: 0x000a,
857 0x1806: 0x000a, 0x1807: 0x000a, 0x1808: 0x000a, 0x1809: 0x000a, 0x180a: 0x000a, 0x180b: 0x000a,
858 0x180c: 0x000a, 0x180d: 0x000a, 0x180e: 0x000a, 0x180f: 0x000a, 0x1810: 0x000a, 0x1811: 0x000a,
859 0x1812: 0x000a, 0x1813: 0x000a, 0x1814: 0x000a, 0x1815: 0x000a, 0x1816: 0x000a, 0x1817: 0x000a,
860 0x1818: 0x000a, 0x1819: 0x000a, 0x181a: 0x000a, 0x181b: 0x000a, 0x181c: 0x000a, 0x181d: 0x000a,
861 0x181e: 0x000a, 0x181f: 0x000a, 0x1820: 0x000a, 0x1821: 0x000a, 0x1822: 0x000a, 0x1823: 0x000a,
862 0x1824: 0x000a, 0x1825: 0x000a, 0x1826: 0x000a, 0x1827: 0x000a, 0x1828: 0x003a, 0x1829: 0x002a,
863 0x182a: 0x003a, 0x182b: 0x002a, 0x182c: 0x003a, 0x182d: 0x002a, 0x182e: 0x003a, 0x182f: 0x002a,
864 0x1830: 0x003a, 0x1831: 0x002a, 0x1832: 0x003a, 0x1833: 0x002a, 0x1834: 0x003a, 0x1835: 0x002a,
865 0x1836: 0x000a, 0x1837: 0x000a, 0x1838: 0x000a, 0x1839: 0x000a, 0x183a: 0x000a, 0x183b: 0x000a,
866 0x183c: 0x000a, 0x183d: 0x000a, 0x183e: 0x000a, 0x183f: 0x000a,
867 // Block 0x61, offset 0x1840
868 0x1840: 0x000a, 0x1841: 0x000a, 0x1842: 0x000a, 0x1843: 0x000a, 0x1844: 0x000a, 0x1845: 0x009a,
869 0x1846: 0x008a, 0x1847: 0x000a, 0x1848: 0x000a, 0x1849: 0x000a, 0x184a: 0x000a, 0x184b: 0x000a,
870 0x184c: 0x000a, 0x184d: 0x000a, 0x184e: 0x000a, 0x184f: 0x000a, 0x1850: 0x000a, 0x1851: 0x000a,
871 0x1852: 0x000a, 0x1853: 0x000a, 0x1854: 0x000a, 0x1855: 0x000a, 0x1856: 0x000a, 0x1857: 0x000a,
872 0x1858: 0x000a, 0x1859: 0x000a, 0x185a: 0x000a, 0x185b: 0x000a, 0x185c: 0x000a, 0x185d: 0x000a,
873 0x185e: 0x000a, 0x185f: 0x000a, 0x1860: 0x000a, 0x1861: 0x000a, 0x1862: 0x000a, 0x1863: 0x000a,
874 0x1864: 0x000a, 0x1865: 0x000a, 0x1866: 0x003a, 0x1867: 0x002a, 0x1868: 0x003a, 0x1869: 0x002a,
875 0x186a: 0x003a, 0x186b: 0x002a, 0x186c: 0x003a, 0x186d: 0x002a, 0x186e: 0x003a, 0x186f: 0x002a,
876 0x1870: 0x000a, 0x1871: 0x000a, 0x1872: 0x000a, 0x1873: 0x000a, 0x1874: 0x000a, 0x1875: 0x000a,
877 0x1876: 0x000a, 0x1877: 0x000a, 0x1878: 0x000a, 0x1879: 0x000a, 0x187a: 0x000a, 0x187b: 0x000a,
878 0x187c: 0x000a, 0x187d: 0x000a, 0x187e: 0x000a, 0x187f: 0x000a,
879 // Block 0x62, offset 0x1880
880 0x1880: 0x000a, 0x1881: 0x000a, 0x1882: 0x000a, 0x1883: 0x007a, 0x1884: 0x006a, 0x1885: 0x009a,
881 0x1886: 0x008a, 0x1887: 0x00ba, 0x1888: 0x00aa, 0x1889: 0x009a, 0x188a: 0x008a, 0x188b: 0x007a,
882 0x188c: 0x006a, 0x188d: 0x00da, 0x188e: 0x002a, 0x188f: 0x003a, 0x1890: 0x00ca, 0x1891: 0x009a,
883 0x1892: 0x008a, 0x1893: 0x007a, 0x1894: 0x006a, 0x1895: 0x009a, 0x1896: 0x008a, 0x1897: 0x00ba,
884 0x1898: 0x00aa, 0x1899: 0x000a, 0x189a: 0x000a, 0x189b: 0x000a, 0x189c: 0x000a, 0x189d: 0x000a,
885 0x189e: 0x000a, 0x189f: 0x000a, 0x18a0: 0x000a, 0x18a1: 0x000a, 0x18a2: 0x000a, 0x18a3: 0x000a,
886 0x18a4: 0x000a, 0x18a5: 0x000a, 0x18a6: 0x000a, 0x18a7: 0x000a, 0x18a8: 0x000a, 0x18a9: 0x000a,
887 0x18aa: 0x000a, 0x18ab: 0x000a, 0x18ac: 0x000a, 0x18ad: 0x000a, 0x18ae: 0x000a, 0x18af: 0x000a,
888 0x18b0: 0x000a, 0x18b1: 0x000a, 0x18b2: 0x000a, 0x18b3: 0x000a, 0x18b4: 0x000a, 0x18b5: 0x000a,
889 0x18b6: 0x000a, 0x18b7: 0x000a, 0x18b8: 0x000a, 0x18b9: 0x000a, 0x18ba: 0x000a, 0x18bb: 0x000a,
890 0x18bc: 0x000a, 0x18bd: 0x000a, 0x18be: 0x000a, 0x18bf: 0x000a,
891 // Block 0x63, offset 0x18c0
892 0x18c0: 0x000a, 0x18c1: 0x000a, 0x18c2: 0x000a, 0x18c3: 0x000a, 0x18c4: 0x000a, 0x18c5: 0x000a,
893 0x18c6: 0x000a, 0x18c7: 0x000a, 0x18c8: 0x000a, 0x18c9: 0x000a, 0x18ca: 0x000a, 0x18cb: 0x000a,
894 0x18cc: 0x000a, 0x18cd: 0x000a, 0x18ce: 0x000a, 0x18cf: 0x000a, 0x18d0: 0x000a, 0x18d1: 0x000a,
895 0x18d2: 0x000a, 0x18d3: 0x000a, 0x18d4: 0x000a, 0x18d5: 0x000a, 0x18d6: 0x000a, 0x18d7: 0x000a,
896 0x18d8: 0x003a, 0x18d9: 0x002a, 0x18da: 0x003a, 0x18db: 0x002a, 0x18dc: 0x000a, 0x18dd: 0x000a,
897 0x18de: 0x000a, 0x18df: 0x000a, 0x18e0: 0x000a, 0x18e1: 0x000a, 0x18e2: 0x000a, 0x18e3: 0x000a,
898 0x18e4: 0x000a, 0x18e5: 0x000a, 0x18e6: 0x000a, 0x18e7: 0x000a, 0x18e8: 0x000a, 0x18e9: 0x000a,
899 0x18ea: 0x000a, 0x18eb: 0x000a, 0x18ec: 0x000a, 0x18ed: 0x000a, 0x18ee: 0x000a, 0x18ef: 0x000a,
900 0x18f0: 0x000a, 0x18f1: 0x000a, 0x18f2: 0x000a, 0x18f3: 0x000a, 0x18f4: 0x000a, 0x18f5: 0x000a,
901 0x18f6: 0x000a, 0x18f7: 0x000a, 0x18f8: 0x000a, 0x18f9: 0x000a, 0x18fa: 0x000a, 0x18fb: 0x000a,
902 0x18fc: 0x003a, 0x18fd: 0x002a, 0x18fe: 0x000a, 0x18ff: 0x000a,
903 // Block 0x64, offset 0x1900
904 0x1900: 0x000a, 0x1901: 0x000a, 0x1902: 0x000a, 0x1903: 0x000a, 0x1904: 0x000a, 0x1905: 0x000a,
905 0x1906: 0x000a, 0x1907: 0x000a, 0x1908: 0x000a, 0x1909: 0x000a, 0x190a: 0x000a, 0x190b: 0x000a,
906 0x190c: 0x000a, 0x190d: 0x000a, 0x190e: 0x000a, 0x190f: 0x000a, 0x1910: 0x000a, 0x1911: 0x000a,
907 0x1912: 0x000a, 0x1913: 0x000a, 0x1914: 0x000a, 0x1915: 0x000a, 0x1916: 0x000a, 0x1917: 0x000a,
908 0x1918: 0x000a, 0x1919: 0x000a, 0x191a: 0x000a, 0x191b: 0x000a, 0x191c: 0x000a, 0x191d: 0x000a,
909 0x191e: 0x000a, 0x191f: 0x000a, 0x1920: 0x000a, 0x1921: 0x000a, 0x1922: 0x000a, 0x1923: 0x000a,
910 0x1924: 0x000a, 0x1925: 0x000a, 0x1926: 0x000a, 0x1927: 0x000a, 0x1928: 0x000a, 0x1929: 0x000a,
911 0x192a: 0x000a, 0x192b: 0x000a, 0x192c: 0x000a, 0x192d: 0x000a, 0x192e: 0x000a, 0x192f: 0x000a,
912 0x1930: 0x000a, 0x1931: 0x000a, 0x1932: 0x000a, 0x1933: 0x000a,
913 0x1936: 0x000a, 0x1937: 0x000a, 0x1938: 0x000a, 0x1939: 0x000a, 0x193a: 0x000a, 0x193b: 0x000a,
914 0x193c: 0x000a, 0x193d: 0x000a, 0x193e: 0x000a, 0x193f: 0x000a,
915 // Block 0x65, offset 0x1940
916 0x1940: 0x000a, 0x1941: 0x000a, 0x1942: 0x000a, 0x1943: 0x000a, 0x1944: 0x000a, 0x1945: 0x000a,
917 0x1946: 0x000a, 0x1947: 0x000a, 0x1948: 0x000a, 0x1949: 0x000a, 0x194a: 0x000a, 0x194b: 0x000a,
918 0x194c: 0x000a, 0x194d: 0x000a, 0x194e: 0x000a, 0x194f: 0x000a, 0x1950: 0x000a, 0x1951: 0x000a,
919 0x1952: 0x000a, 0x1953: 0x000a, 0x1954: 0x000a, 0x1955: 0x000a,
920 0x1958: 0x000a, 0x1959: 0x000a, 0x195a: 0x000a, 0x195b: 0x000a, 0x195c: 0x000a, 0x195d: 0x000a,
921 0x195e: 0x000a, 0x195f: 0x000a, 0x1960: 0x000a, 0x1961: 0x000a, 0x1962: 0x000a, 0x1963: 0x000a,
922 0x1964: 0x000a, 0x1965: 0x000a, 0x1966: 0x000a, 0x1967: 0x000a, 0x1968: 0x000a, 0x1969: 0x000a,
923 0x196a: 0x000a, 0x196b: 0x000a, 0x196c: 0x000a, 0x196d: 0x000a, 0x196e: 0x000a, 0x196f: 0x000a,
924 0x1970: 0x000a, 0x1971: 0x000a, 0x1972: 0x000a, 0x1973: 0x000a, 0x1974: 0x000a, 0x1975: 0x000a,
925 0x1976: 0x000a, 0x1977: 0x000a, 0x1978: 0x000a, 0x1979: 0x000a,
926 0x197d: 0x000a, 0x197e: 0x000a, 0x197f: 0x000a,
927 // Block 0x66, offset 0x1980
928 0x1980: 0x000a, 0x1981: 0x000a, 0x1982: 0x000a, 0x1983: 0x000a, 0x1984: 0x000a, 0x1985: 0x000a,
929 0x1986: 0x000a, 0x1987: 0x000a, 0x1988: 0x000a, 0x198a: 0x000a, 0x198b: 0x000a,
930 0x198c: 0x000a, 0x198d: 0x000a, 0x198e: 0x000a, 0x198f: 0x000a, 0x1990: 0x000a, 0x1991: 0x000a,
931 0x1992: 0x000a,
932 0x19ac: 0x000a, 0x19ad: 0x000a, 0x19ae: 0x000a, 0x19af: 0x000a,
933 // Block 0x67, offset 0x19c0
934 0x19e5: 0x000a, 0x19e6: 0x000a, 0x19e7: 0x000a, 0x19e8: 0x000a, 0x19e9: 0x000a,
935 0x19ea: 0x000a, 0x19ef: 0x000c,
936 0x19f0: 0x000c, 0x19f1: 0x000c,
937 0x19f9: 0x000a, 0x19fa: 0x000a, 0x19fb: 0x000a,
938 0x19fc: 0x000a, 0x19fd: 0x000a, 0x19fe: 0x000a, 0x19ff: 0x000a,
939 // Block 0x68, offset 0x1a00
940 0x1a3f: 0x000c,
941 // Block 0x69, offset 0x1a40
942 0x1a60: 0x000c, 0x1a61: 0x000c, 0x1a62: 0x000c, 0x1a63: 0x000c,
943 0x1a64: 0x000c, 0x1a65: 0x000c, 0x1a66: 0x000c, 0x1a67: 0x000c, 0x1a68: 0x000c, 0x1a69: 0x000c,
944 0x1a6a: 0x000c, 0x1a6b: 0x000c, 0x1a6c: 0x000c, 0x1a6d: 0x000c, 0x1a6e: 0x000c, 0x1a6f: 0x000c,
945 0x1a70: 0x000c, 0x1a71: 0x000c, 0x1a72: 0x000c, 0x1a73: 0x000c, 0x1a74: 0x000c, 0x1a75: 0x000c,
946 0x1a76: 0x000c, 0x1a77: 0x000c, 0x1a78: 0x000c, 0x1a79: 0x000c, 0x1a7a: 0x000c, 0x1a7b: 0x000c,
947 0x1a7c: 0x000c, 0x1a7d: 0x000c, 0x1a7e: 0x000c, 0x1a7f: 0x000c,
948 // Block 0x6a, offset 0x1a80
949 0x1a80: 0x000a, 0x1a81: 0x000a, 0x1a82: 0x000a, 0x1a83: 0x000a, 0x1a84: 0x000a, 0x1a85: 0x000a,
950 0x1a86: 0x000a, 0x1a87: 0x000a, 0x1a88: 0x000a, 0x1a89: 0x000a, 0x1a8a: 0x000a, 0x1a8b: 0x000a,
951 0x1a8c: 0x000a, 0x1a8d: 0x000a, 0x1a8e: 0x000a, 0x1a8f: 0x000a, 0x1a90: 0x000a, 0x1a91: 0x000a,
952 0x1a92: 0x000a, 0x1a93: 0x000a, 0x1a94: 0x000a, 0x1a95: 0x000a, 0x1a96: 0x000a, 0x1a97: 0x000a,
953 0x1a98: 0x000a, 0x1a99: 0x000a, 0x1a9a: 0x000a, 0x1a9b: 0x000a, 0x1a9c: 0x000a, 0x1a9d: 0x000a,
954 0x1a9e: 0x000a, 0x1a9f: 0x000a, 0x1aa0: 0x000a, 0x1aa1: 0x000a, 0x1aa2: 0x003a, 0x1aa3: 0x002a,
955 0x1aa4: 0x003a, 0x1aa5: 0x002a, 0x1aa6: 0x003a, 0x1aa7: 0x002a, 0x1aa8: 0x003a, 0x1aa9: 0x002a,
956 0x1aaa: 0x000a, 0x1aab: 0x000a, 0x1aac: 0x000a, 0x1aad: 0x000a, 0x1aae: 0x000a, 0x1aaf: 0x000a,
957 0x1ab0: 0x000a, 0x1ab1: 0x000a, 0x1ab2: 0x000a, 0x1ab3: 0x000a, 0x1ab4: 0x000a, 0x1ab5: 0x000a,
958 0x1ab6: 0x000a, 0x1ab7: 0x000a, 0x1ab8: 0x000a, 0x1ab9: 0x000a, 0x1aba: 0x000a, 0x1abb: 0x000a,
959 0x1abc: 0x000a, 0x1abd: 0x000a, 0x1abe: 0x000a, 0x1abf: 0x000a,
960 // Block 0x6b, offset 0x1ac0
961 0x1ac0: 0x000a, 0x1ac1: 0x000a, 0x1ac2: 0x000a, 0x1ac3: 0x000a, 0x1ac4: 0x000a, 0x1ac5: 0x000a,
962 0x1ac6: 0x000a, 0x1ac7: 0x000a, 0x1ac8: 0x000a, 0x1ac9: 0x000a,
963 // Block 0x6c, offset 0x1b00
964 0x1b00: 0x000a, 0x1b01: 0x000a, 0x1b02: 0x000a, 0x1b03: 0x000a, 0x1b04: 0x000a, 0x1b05: 0x000a,
965 0x1b06: 0x000a, 0x1b07: 0x000a, 0x1b08: 0x000a, 0x1b09: 0x000a, 0x1b0a: 0x000a, 0x1b0b: 0x000a,
966 0x1b0c: 0x000a, 0x1b0d: 0x000a, 0x1b0e: 0x000a, 0x1b0f: 0x000a, 0x1b10: 0x000a, 0x1b11: 0x000a,
967 0x1b12: 0x000a, 0x1b13: 0x000a, 0x1b14: 0x000a, 0x1b15: 0x000a, 0x1b16: 0x000a, 0x1b17: 0x000a,
968 0x1b18: 0x000a, 0x1b19: 0x000a, 0x1b1b: 0x000a, 0x1b1c: 0x000a, 0x1b1d: 0x000a,
969 0x1b1e: 0x000a, 0x1b1f: 0x000a, 0x1b20: 0x000a, 0x1b21: 0x000a, 0x1b22: 0x000a, 0x1b23: 0x000a,
970 0x1b24: 0x000a, 0x1b25: 0x000a, 0x1b26: 0x000a, 0x1b27: 0x000a, 0x1b28: 0x000a, 0x1b29: 0x000a,
971 0x1b2a: 0x000a, 0x1b2b: 0x000a, 0x1b2c: 0x000a, 0x1b2d: 0x000a, 0x1b2e: 0x000a, 0x1b2f: 0x000a,
972 0x1b30: 0x000a, 0x1b31: 0x000a, 0x1b32: 0x000a, 0x1b33: 0x000a, 0x1b34: 0x000a, 0x1b35: 0x000a,
973 0x1b36: 0x000a, 0x1b37: 0x000a, 0x1b38: 0x000a, 0x1b39: 0x000a, 0x1b3a: 0x000a, 0x1b3b: 0x000a,
974 0x1b3c: 0x000a, 0x1b3d: 0x000a, 0x1b3e: 0x000a, 0x1b3f: 0x000a,
975 // Block 0x6d, offset 0x1b40
976 0x1b40: 0x000a, 0x1b41: 0x000a, 0x1b42: 0x000a, 0x1b43: 0x000a, 0x1b44: 0x000a, 0x1b45: 0x000a,
977 0x1b46: 0x000a, 0x1b47: 0x000a, 0x1b48: 0x000a, 0x1b49: 0x000a, 0x1b4a: 0x000a, 0x1b4b: 0x000a,
978 0x1b4c: 0x000a, 0x1b4d: 0x000a, 0x1b4e: 0x000a, 0x1b4f: 0x000a, 0x1b50: 0x000a, 0x1b51: 0x000a,
979 0x1b52: 0x000a, 0x1b53: 0x000a, 0x1b54: 0x000a, 0x1b55: 0x000a, 0x1b56: 0x000a, 0x1b57: 0x000a,
980 0x1b58: 0x000a, 0x1b59: 0x000a, 0x1b5a: 0x000a, 0x1b5b: 0x000a, 0x1b5c: 0x000a, 0x1b5d: 0x000a,
981 0x1b5e: 0x000a, 0x1b5f: 0x000a, 0x1b60: 0x000a, 0x1b61: 0x000a, 0x1b62: 0x000a, 0x1b63: 0x000a,
982 0x1b64: 0x000a, 0x1b65: 0x000a, 0x1b66: 0x000a, 0x1b67: 0x000a, 0x1b68: 0x000a, 0x1b69: 0x000a,
983 0x1b6a: 0x000a, 0x1b6b: 0x000a, 0x1b6c: 0x000a, 0x1b6d: 0x000a, 0x1b6e: 0x000a, 0x1b6f: 0x000a,
984 0x1b70: 0x000a, 0x1b71: 0x000a, 0x1b72: 0x000a, 0x1b73: 0x000a,
985 // Block 0x6e, offset 0x1b80
986 0x1b80: 0x000a, 0x1b81: 0x000a, 0x1b82: 0x000a, 0x1b83: 0x000a, 0x1b84: 0x000a, 0x1b85: 0x000a,
987 0x1b86: 0x000a, 0x1b87: 0x000a, 0x1b88: 0x000a, 0x1b89: 0x000a, 0x1b8a: 0x000a, 0x1b8b: 0x000a,
988 0x1b8c: 0x000a, 0x1b8d: 0x000a, 0x1b8e: 0x000a, 0x1b8f: 0x000a, 0x1b90: 0x000a, 0x1b91: 0x000a,
989 0x1b92: 0x000a, 0x1b93: 0x000a, 0x1b94: 0x000a, 0x1b95: 0x000a,
990 0x1bb0: 0x000a, 0x1bb1: 0x000a, 0x1bb2: 0x000a, 0x1bb3: 0x000a, 0x1bb4: 0x000a, 0x1bb5: 0x000a,
991 0x1bb6: 0x000a, 0x1bb7: 0x000a, 0x1bb8: 0x000a, 0x1bb9: 0x000a, 0x1bba: 0x000a, 0x1bbb: 0x000a,
992 // Block 0x6f, offset 0x1bc0
993 0x1bc0: 0x0009, 0x1bc1: 0x000a, 0x1bc2: 0x000a, 0x1bc3: 0x000a, 0x1bc4: 0x000a,
994 0x1bc8: 0x003a, 0x1bc9: 0x002a, 0x1bca: 0x003a, 0x1bcb: 0x002a,
995 0x1bcc: 0x003a, 0x1bcd: 0x002a, 0x1bce: 0x003a, 0x1bcf: 0x002a, 0x1bd0: 0x003a, 0x1bd1: 0x002a,
996 0x1bd2: 0x000a, 0x1bd3: 0x000a, 0x1bd4: 0x003a, 0x1bd5: 0x002a, 0x1bd6: 0x003a, 0x1bd7: 0x002a,
997 0x1bd8: 0x003a, 0x1bd9: 0x002a, 0x1bda: 0x003a, 0x1bdb: 0x002a, 0x1bdc: 0x000a, 0x1bdd: 0x000a,
998 0x1bde: 0x000a, 0x1bdf: 0x000a, 0x1be0: 0x000a,
999 0x1bea: 0x000c, 0x1beb: 0x000c, 0x1bec: 0x000c, 0x1bed: 0x000c,
1000 0x1bf0: 0x000a,
1001 0x1bf6: 0x000a, 0x1bf7: 0x000a,
1002 0x1bfd: 0x000a, 0x1bfe: 0x000a, 0x1bff: 0x000a,
1003 // Block 0x70, offset 0x1c00
1004 0x1c19: 0x000c, 0x1c1a: 0x000c, 0x1c1b: 0x000a, 0x1c1c: 0x000a,
1005 0x1c20: 0x000a,
1006 // Block 0x71, offset 0x1c40
1007 0x1c7b: 0x000a,
1008 // Block 0x72, offset 0x1c80
1009 0x1c80: 0x000a, 0x1c81: 0x000a, 0x1c82: 0x000a, 0x1c83: 0x000a, 0x1c84: 0x000a, 0x1c85: 0x000a,
1010 0x1c86: 0x000a, 0x1c87: 0x000a, 0x1c88: 0x000a, 0x1c89: 0x000a, 0x1c8a: 0x000a, 0x1c8b: 0x000a,
1011 0x1c8c: 0x000a, 0x1c8d: 0x000a, 0x1c8e: 0x000a, 0x1c8f: 0x000a, 0x1c90: 0x000a, 0x1c91: 0x000a,
1012 0x1c92: 0x000a, 0x1c93: 0x000a, 0x1c94: 0x000a, 0x1c95: 0x000a, 0x1c96: 0x000a, 0x1c97: 0x000a,
1013 0x1c98: 0x000a, 0x1c99: 0x000a, 0x1c9a: 0x000a, 0x1c9b: 0x000a, 0x1c9c: 0x000a, 0x1c9d: 0x000a,
1014 0x1c9e: 0x000a, 0x1c9f: 0x000a, 0x1ca0: 0x000a, 0x1ca1: 0x000a, 0x1ca2: 0x000a, 0x1ca3: 0x000a,
1015 // Block 0x73, offset 0x1cc0
1016 0x1cdd: 0x000a,
1017 0x1cde: 0x000a,
1018 // Block 0x74, offset 0x1d00
1019 0x1d10: 0x000a, 0x1d11: 0x000a,
1020 0x1d12: 0x000a, 0x1d13: 0x000a, 0x1d14: 0x000a, 0x1d15: 0x000a, 0x1d16: 0x000a, 0x1d17: 0x000a,
1021 0x1d18: 0x000a, 0x1d19: 0x000a, 0x1d1a: 0x000a, 0x1d1b: 0x000a, 0x1d1c: 0x000a, 0x1d1d: 0x000a,
1022 0x1d1e: 0x000a, 0x1d1f: 0x000a,
1023 0x1d3c: 0x000a, 0x1d3d: 0x000a, 0x1d3e: 0x000a,
1024 // Block 0x75, offset 0x1d40
1025 0x1d71: 0x000a, 0x1d72: 0x000a, 0x1d73: 0x000a, 0x1d74: 0x000a, 0x1d75: 0x000a,
1026 0x1d76: 0x000a, 0x1d77: 0x000a, 0x1d78: 0x000a, 0x1d79: 0x000a, 0x1d7a: 0x000a, 0x1d7b: 0x000a,
1027 0x1d7c: 0x000a, 0x1d7d: 0x000a, 0x1d7e: 0x000a, 0x1d7f: 0x000a,
1028 // Block 0x76, offset 0x1d80
1029 0x1d8c: 0x000a, 0x1d8d: 0x000a, 0x1d8e: 0x000a, 0x1d8f: 0x000a,
1030 // Block 0x77, offset 0x1dc0
1031 0x1df7: 0x000a, 0x1df8: 0x000a, 0x1df9: 0x000a, 0x1dfa: 0x000a,
1032 // Block 0x78, offset 0x1e00
1033 0x1e1e: 0x000a, 0x1e1f: 0x000a,
1034 0x1e3f: 0x000a,
1035 // Block 0x79, offset 0x1e40
1036 0x1e50: 0x000a, 0x1e51: 0x000a,
1037 0x1e52: 0x000a, 0x1e53: 0x000a, 0x1e54: 0x000a, 0x1e55: 0x000a, 0x1e56: 0x000a, 0x1e57: 0x000a,
1038 0x1e58: 0x000a, 0x1e59: 0x000a, 0x1e5a: 0x000a, 0x1e5b: 0x000a, 0x1e5c: 0x000a, 0x1e5d: 0x000a,
1039 0x1e5e: 0x000a, 0x1e5f: 0x000a, 0x1e60: 0x000a, 0x1e61: 0x000a, 0x1e62: 0x000a, 0x1e63: 0x000a,
1040 0x1e64: 0x000a, 0x1e65: 0x000a, 0x1e66: 0x000a, 0x1e67: 0x000a, 0x1e68: 0x000a, 0x1e69: 0x000a,
1041 0x1e6a: 0x000a, 0x1e6b: 0x000a, 0x1e6c: 0x000a, 0x1e6d: 0x000a, 0x1e6e: 0x000a, 0x1e6f: 0x000a,
1042 0x1e70: 0x000a, 0x1e71: 0x000a, 0x1e72: 0x000a, 0x1e73: 0x000a, 0x1e74: 0x000a, 0x1e75: 0x000a,
1043 0x1e76: 0x000a, 0x1e77: 0x000a, 0x1e78: 0x000a, 0x1e79: 0x000a, 0x1e7a: 0x000a, 0x1e7b: 0x000a,
1044 0x1e7c: 0x000a, 0x1e7d: 0x000a, 0x1e7e: 0x000a, 0x1e7f: 0x000a,
1045 // Block 0x7a, offset 0x1e80
1046 0x1e80: 0x000a, 0x1e81: 0x000a, 0x1e82: 0x000a, 0x1e83: 0x000a, 0x1e84: 0x000a, 0x1e85: 0x000a,
1047 0x1e86: 0x000a,
1048 // Block 0x7b, offset 0x1ec0
1049 0x1ecd: 0x000a, 0x1ece: 0x000a, 0x1ecf: 0x000a,
1050 // Block 0x7c, offset 0x1f00
1051 0x1f2f: 0x000c,
1052 0x1f30: 0x000c, 0x1f31: 0x000c, 0x1f32: 0x000c, 0x1f33: 0x000a, 0x1f34: 0x000c, 0x1f35: 0x000c,
1053 0x1f36: 0x000c, 0x1f37: 0x000c, 0x1f38: 0x000c, 0x1f39: 0x000c, 0x1f3a: 0x000c, 0x1f3b: 0x000c,
1054 0x1f3c: 0x000c, 0x1f3d: 0x000c, 0x1f3e: 0x000a, 0x1f3f: 0x000a,
1055 // Block 0x7d, offset 0x1f40
1056 0x1f5e: 0x000c, 0x1f5f: 0x000c,
1057 // Block 0x7e, offset 0x1f80
1058 0x1fb0: 0x000c, 0x1fb1: 0x000c,
1059 // Block 0x7f, offset 0x1fc0
1060 0x1fc0: 0x000a, 0x1fc1: 0x000a, 0x1fc2: 0x000a, 0x1fc3: 0x000a, 0x1fc4: 0x000a, 0x1fc5: 0x000a,
1061 0x1fc6: 0x000a, 0x1fc7: 0x000a, 0x1fc8: 0x000a, 0x1fc9: 0x000a, 0x1fca: 0x000a, 0x1fcb: 0x000a,
1062 0x1fcc: 0x000a, 0x1fcd: 0x000a, 0x1fce: 0x000a, 0x1fcf: 0x000a, 0x1fd0: 0x000a, 0x1fd1: 0x000a,
1063 0x1fd2: 0x000a, 0x1fd3: 0x000a, 0x1fd4: 0x000a, 0x1fd5: 0x000a, 0x1fd6: 0x000a, 0x1fd7: 0x000a,
1064 0x1fd8: 0x000a, 0x1fd9: 0x000a, 0x1fda: 0x000a, 0x1fdb: 0x000a, 0x1fdc: 0x000a, 0x1fdd: 0x000a,
1065 0x1fde: 0x000a, 0x1fdf: 0x000a, 0x1fe0: 0x000a, 0x1fe1: 0x000a,
1066 // Block 0x80, offset 0x2000
1067 0x2008: 0x000a,
1068 // Block 0x81, offset 0x2040
1069 0x2042: 0x000c,
1070 0x2046: 0x000c, 0x204b: 0x000c,
1071 0x2065: 0x000c, 0x2066: 0x000c, 0x2068: 0x000a, 0x2069: 0x000a,
1072 0x206a: 0x000a, 0x206b: 0x000a,
1073 0x2078: 0x0004, 0x2079: 0x0004,
1074 // Block 0x82, offset 0x2080
1075 0x20b4: 0x000a, 0x20b5: 0x000a,
1076 0x20b6: 0x000a, 0x20b7: 0x000a,
1077 // Block 0x83, offset 0x20c0
1078 0x20c4: 0x000c, 0x20c5: 0x000c,
1079 0x20e0: 0x000c, 0x20e1: 0x000c, 0x20e2: 0x000c, 0x20e3: 0x000c,
1080 0x20e4: 0x000c, 0x20e5: 0x000c, 0x20e6: 0x000c, 0x20e7: 0x000c, 0x20e8: 0x000c, 0x20e9: 0x000c,
1081 0x20ea: 0x000c, 0x20eb: 0x000c, 0x20ec: 0x000c, 0x20ed: 0x000c, 0x20ee: 0x000c, 0x20ef: 0x000c,
1082 0x20f0: 0x000c, 0x20f1: 0x000c,
1083 // Block 0x84, offset 0x2100
1084 0x2126: 0x000c, 0x2127: 0x000c, 0x2128: 0x000c, 0x2129: 0x000c,
1085 0x212a: 0x000c, 0x212b: 0x000c, 0x212c: 0x000c, 0x212d: 0x000c,
1086 // Block 0x85, offset 0x2140
1087 0x2147: 0x000c, 0x2148: 0x000c, 0x2149: 0x000c, 0x214a: 0x000c, 0x214b: 0x000c,
1088 0x214c: 0x000c, 0x214d: 0x000c, 0x214e: 0x000c, 0x214f: 0x000c, 0x2150: 0x000c, 0x2151: 0x000c,
1089 // Block 0x86, offset 0x2180
1090 0x2180: 0x000c, 0x2181: 0x000c, 0x2182: 0x000c,
1091 0x21b3: 0x000c,
1092 0x21b6: 0x000c, 0x21b7: 0x000c, 0x21b8: 0x000c, 0x21b9: 0x000c,
1093 0x21bc: 0x000c,
1094 // Block 0x87, offset 0x21c0
1095 0x21e5: 0x000c,
1096 // Block 0x88, offset 0x2200
1097 0x2229: 0x000c,
1098 0x222a: 0x000c, 0x222b: 0x000c, 0x222c: 0x000c, 0x222d: 0x000c, 0x222e: 0x000c,
1099 0x2231: 0x000c, 0x2232: 0x000c, 0x2235: 0x000c,
1100 0x2236: 0x000c,
1101 // Block 0x89, offset 0x2240
1102 0x2243: 0x000c,
1103 0x224c: 0x000c,
1104 0x227c: 0x000c,
1105 // Block 0x8a, offset 0x2280
1106 0x22b0: 0x000c, 0x22b2: 0x000c, 0x22b3: 0x000c, 0x22b4: 0x000c,
1107 0x22b7: 0x000c, 0x22b8: 0x000c,
1108 0x22be: 0x000c, 0x22bf: 0x000c,
1109 // Block 0x8b, offset 0x22c0
1110 0x22c1: 0x000c,
1111 0x22ec: 0x000c, 0x22ed: 0x000c,
1112 0x22f6: 0x000c,
1113 // Block 0x8c, offset 0x2300
1114 0x2325: 0x000c, 0x2328: 0x000c,
1115 0x232d: 0x000c,
1116 // Block 0x8d, offset 0x2340
1117 0x235d: 0x0001,
1118 0x235e: 0x000c, 0x235f: 0x0001, 0x2360: 0x0001, 0x2361: 0x0001, 0x2362: 0x0001, 0x2363: 0x0001,
1119 0x2364: 0x0001, 0x2365: 0x0001, 0x2366: 0x0001, 0x2367: 0x0001, 0x2368: 0x0001, 0x2369: 0x0003,
1120 0x236a: 0x0001, 0x236b: 0x0001, 0x236c: 0x0001, 0x236d: 0x0001, 0x236e: 0x0001, 0x236f: 0x0001,
1121 0x2370: 0x0001, 0x2371: 0x0001, 0x2372: 0x0001, 0x2373: 0x0001, 0x2374: 0x0001, 0x2375: 0x0001,
1122 0x2376: 0x0001, 0x2377: 0x0001, 0x2378: 0x0001, 0x2379: 0x0001, 0x237a: 0x0001, 0x237b: 0x0001,
1123 0x237c: 0x0001, 0x237d: 0x0001, 0x237e: 0x0001, 0x237f: 0x0001,
1124 // Block 0x8e, offset 0x2380
1125 0x2380: 0x0001, 0x2381: 0x0001, 0x2382: 0x0001, 0x2383: 0x0001, 0x2384: 0x0001, 0x2385: 0x0001,
1126 0x2386: 0x0001, 0x2387: 0x0001, 0x2388: 0x0001, 0x2389: 0x0001, 0x238a: 0x0001, 0x238b: 0x0001,
1127 0x238c: 0x0001, 0x238d: 0x0001, 0x238e: 0x0001, 0x238f: 0x0001, 0x2390: 0x000d, 0x2391: 0x000d,
1128 0x2392: 0x000d, 0x2393: 0x000d, 0x2394: 0x000d, 0x2395: 0x000d, 0x2396: 0x000d, 0x2397: 0x000d,
1129 0x2398: 0x000d, 0x2399: 0x000d, 0x239a: 0x000d, 0x239b: 0x000d, 0x239c: 0x000d, 0x239d: 0x000d,
1130 0x239e: 0x000d, 0x239f: 0x000d, 0x23a0: 0x000d, 0x23a1: 0x000d, 0x23a2: 0x000d, 0x23a3: 0x000d,
1131 0x23a4: 0x000d, 0x23a5: 0x000d, 0x23a6: 0x000d, 0x23a7: 0x000d, 0x23a8: 0x000d, 0x23a9: 0x000d,
1132 0x23aa: 0x000d, 0x23ab: 0x000d, 0x23ac: 0x000d, 0x23ad: 0x000d, 0x23ae: 0x000d, 0x23af: 0x000d,
1133 0x23b0: 0x000d, 0x23b1: 0x000d, 0x23b2: 0x000d, 0x23b3: 0x000d, 0x23b4: 0x000d, 0x23b5: 0x000d,
1134 0x23b6: 0x000d, 0x23b7: 0x000d, 0x23b8: 0x000d, 0x23b9: 0x000d, 0x23ba: 0x000d, 0x23bb: 0x000d,
1135 0x23bc: 0x000d, 0x23bd: 0x000d, 0x23be: 0x000d, 0x23bf: 0x000d,
1136 // Block 0x8f, offset 0x23c0
1137 0x23c0: 0x000d, 0x23c1: 0x000d, 0x23c2: 0x000d, 0x23c3: 0x000d, 0x23c4: 0x000d, 0x23c5: 0x000d,
1138 0x23c6: 0x000d, 0x23c7: 0x000d, 0x23c8: 0x000d, 0x23c9: 0x000d, 0x23ca: 0x000d, 0x23cb: 0x000d,
1139 0x23cc: 0x000d, 0x23cd: 0x000d, 0x23ce: 0x000d, 0x23cf: 0x000d, 0x23d0: 0x000d, 0x23d1: 0x000d,
1140 0x23d2: 0x000d, 0x23d3: 0x000d, 0x23d4: 0x000d, 0x23d5: 0x000d, 0x23d6: 0x000d, 0x23d7: 0x000d,
1141 0x23d8: 0x000d, 0x23d9: 0x000d, 0x23da: 0x000d, 0x23db: 0x000d, 0x23dc: 0x000d, 0x23dd: 0x000d,
1142 0x23de: 0x000d, 0x23df: 0x000d, 0x23e0: 0x000d, 0x23e1: 0x000d, 0x23e2: 0x000d, 0x23e3: 0x000d,
1143 0x23e4: 0x000d, 0x23e5: 0x000d, 0x23e6: 0x000d, 0x23e7: 0x000d, 0x23e8: 0x000d, 0x23e9: 0x000d,
1144 0x23ea: 0x000d, 0x23eb: 0x000d, 0x23ec: 0x000d, 0x23ed: 0x000d, 0x23ee: 0x000d, 0x23ef: 0x000d,
1145 0x23f0: 0x000d, 0x23f1: 0x000d, 0x23f2: 0x000d, 0x23f3: 0x000d, 0x23f4: 0x000d, 0x23f5: 0x000d,
1146 0x23f6: 0x000d, 0x23f7: 0x000d, 0x23f8: 0x000d, 0x23f9: 0x000d, 0x23fa: 0x000d, 0x23fb: 0x000d,
1147 0x23fc: 0x000d, 0x23fd: 0x000d, 0x23fe: 0x000a, 0x23ff: 0x000a,
1148 // Block 0x90, offset 0x2400
1149 0x2400: 0x000d, 0x2401: 0x000d, 0x2402: 0x000d, 0x2403: 0x000d, 0x2404: 0x000d, 0x2405: 0x000d,
1150 0x2406: 0x000d, 0x2407: 0x000d, 0x2408: 0x000d, 0x2409: 0x000d, 0x240a: 0x000d, 0x240b: 0x000d,
1151 0x240c: 0x000d, 0x240d: 0x000d, 0x240e: 0x000d, 0x240f: 0x000d, 0x2410: 0x000b, 0x2411: 0x000b,
1152 0x2412: 0x000b, 0x2413: 0x000b, 0x2414: 0x000b, 0x2415: 0x000b, 0x2416: 0x000b, 0x2417: 0x000b,
1153 0x2418: 0x000b, 0x2419: 0x000b, 0x241a: 0x000b, 0x241b: 0x000b, 0x241c: 0x000b, 0x241d: 0x000b,
1154 0x241e: 0x000b, 0x241f: 0x000b, 0x2420: 0x000b, 0x2421: 0x000b, 0x2422: 0x000b, 0x2423: 0x000b,
1155 0x2424: 0x000b, 0x2425: 0x000b, 0x2426: 0x000b, 0x2427: 0x000b, 0x2428: 0x000b, 0x2429: 0x000b,
1156 0x242a: 0x000b, 0x242b: 0x000b, 0x242c: 0x000b, 0x242d: 0x000b, 0x242e: 0x000b, 0x242f: 0x000b,
1157 0x2430: 0x000d, 0x2431: 0x000d, 0x2432: 0x000d, 0x2433: 0x000d, 0x2434: 0x000d, 0x2435: 0x000d,
1158 0x2436: 0x000d, 0x2437: 0x000d, 0x2438: 0x000d, 0x2439: 0x000d, 0x243a: 0x000d, 0x243b: 0x000d,
1159 0x243c: 0x000d, 0x243d: 0x000a, 0x243e: 0x000d, 0x243f: 0x000d,
1160 // Block 0x91, offset 0x2440
1161 0x2440: 0x000c, 0x2441: 0x000c, 0x2442: 0x000c, 0x2443: 0x000c, 0x2444: 0x000c, 0x2445: 0x000c,
1162 0x2446: 0x000c, 0x2447: 0x000c, 0x2448: 0x000c, 0x2449: 0x000c, 0x244a: 0x000c, 0x244b: 0x000c,
1163 0x244c: 0x000c, 0x244d: 0x000c, 0x244e: 0x000c, 0x244f: 0x000c, 0x2450: 0x000a, 0x2451: 0x000a,
1164 0x2452: 0x000a, 0x2453: 0x000a, 0x2454: 0x000a, 0x2455: 0x000a, 0x2456: 0x000a, 0x2457: 0x000a,
1165 0x2458: 0x000a, 0x2459: 0x000a,
1166 0x2460: 0x000c, 0x2461: 0x000c, 0x2462: 0x000c, 0x2463: 0x000c,
1167 0x2464: 0x000c, 0x2465: 0x000c, 0x2466: 0x000c, 0x2467: 0x000c, 0x2468: 0x000c, 0x2469: 0x000c,
1168 0x246a: 0x000c, 0x246b: 0x000c, 0x246c: 0x000c, 0x246d: 0x000c, 0x246e: 0x000c, 0x246f: 0x000c,
1169 0x2470: 0x000a, 0x2471: 0x000a, 0x2472: 0x000a, 0x2473: 0x000a, 0x2474: 0x000a, 0x2475: 0x000a,
1170 0x2476: 0x000a, 0x2477: 0x000a, 0x2478: 0x000a, 0x2479: 0x000a, 0x247a: 0x000a, 0x247b: 0x000a,
1171 0x247c: 0x000a, 0x247d: 0x000a, 0x247e: 0x000a, 0x247f: 0x000a,
1172 // Block 0x92, offset 0x2480
1173 0x2480: 0x000a, 0x2481: 0x000a, 0x2482: 0x000a, 0x2483: 0x000a, 0x2484: 0x000a, 0x2485: 0x000a,
1174 0x2486: 0x000a, 0x2487: 0x000a, 0x2488: 0x000a, 0x2489: 0x000a, 0x248a: 0x000a, 0x248b: 0x000a,
1175 0x248c: 0x000a, 0x248d: 0x000a, 0x248e: 0x000a, 0x248f: 0x000a, 0x2490: 0x0006, 0x2491: 0x000a,
1176 0x2492: 0x0006, 0x2494: 0x000a, 0x2495: 0x0006, 0x2496: 0x000a, 0x2497: 0x000a,
1177 0x2498: 0x000a, 0x2499: 0x009a, 0x249a: 0x008a, 0x249b: 0x007a, 0x249c: 0x006a, 0x249d: 0x009a,
1178 0x249e: 0x008a, 0x249f: 0x0004, 0x24a0: 0x000a, 0x24a1: 0x000a, 0x24a2: 0x0003, 0x24a3: 0x0003,
1179 0x24a4: 0x000a, 0x24a5: 0x000a, 0x24a6: 0x000a, 0x24a8: 0x000a, 0x24a9: 0x0004,
1180 0x24aa: 0x0004, 0x24ab: 0x000a,
1181 0x24b0: 0x000d, 0x24b1: 0x000d, 0x24b2: 0x000d, 0x24b3: 0x000d, 0x24b4: 0x000d, 0x24b5: 0x000d,
1182 0x24b6: 0x000d, 0x24b7: 0x000d, 0x24b8: 0x000d, 0x24b9: 0x000d, 0x24ba: 0x000d, 0x24bb: 0x000d,
1183 0x24bc: 0x000d, 0x24bd: 0x000d, 0x24be: 0x000d, 0x24bf: 0x000d,
1184 // Block 0x93, offset 0x24c0
1185 0x24c0: 0x000d, 0x24c1: 0x000d, 0x24c2: 0x000d, 0x24c3: 0x000d, 0x24c4: 0x000d, 0x24c5: 0x000d,
1186 0x24c6: 0x000d, 0x24c7: 0x000d, 0x24c8: 0x000d, 0x24c9: 0x000d, 0x24ca: 0x000d, 0x24cb: 0x000d,
1187 0x24cc: 0x000d, 0x24cd: 0x000d, 0x24ce: 0x000d, 0x24cf: 0x000d, 0x24d0: 0x000d, 0x24d1: 0x000d,
1188 0x24d2: 0x000d, 0x24d3: 0x000d, 0x24d4: 0x000d, 0x24d5: 0x000d, 0x24d6: 0x000d, 0x24d7: 0x000d,
1189 0x24d8: 0x000d, 0x24d9: 0x000d, 0x24da: 0x000d, 0x24db: 0x000d, 0x24dc: 0x000d, 0x24dd: 0x000d,
1190 0x24de: 0x000d, 0x24df: 0x000d, 0x24e0: 0x000d, 0x24e1: 0x000d, 0x24e2: 0x000d, 0x24e3: 0x000d,
1191 0x24e4: 0x000d, 0x24e5: 0x000d, 0x24e6: 0x000d, 0x24e7: 0x000d, 0x24e8: 0x000d, 0x24e9: 0x000d,
1192 0x24ea: 0x000d, 0x24eb: 0x000d, 0x24ec: 0x000d, 0x24ed: 0x000d, 0x24ee: 0x000d, 0x24ef: 0x000d,
1193 0x24f0: 0x000d, 0x24f1: 0x000d, 0x24f2: 0x000d, 0x24f3: 0x000d, 0x24f4: 0x000d, 0x24f5: 0x000d,
1194 0x24f6: 0x000d, 0x24f7: 0x000d, 0x24f8: 0x000d, 0x24f9: 0x000d, 0x24fa: 0x000d, 0x24fb: 0x000d,
1195 0x24fc: 0x000d, 0x24fd: 0x000d, 0x24fe: 0x000d, 0x24ff: 0x000b,
1196 // Block 0x94, offset 0x2500
1197 0x2501: 0x000a, 0x2502: 0x000a, 0x2503: 0x0004, 0x2504: 0x0004, 0x2505: 0x0004,
1198 0x2506: 0x000a, 0x2507: 0x000a, 0x2508: 0x003a, 0x2509: 0x002a, 0x250a: 0x000a, 0x250b: 0x0003,
1199 0x250c: 0x0006, 0x250d: 0x0003, 0x250e: 0x0006, 0x250f: 0x0006, 0x2510: 0x0002, 0x2511: 0x0002,
1200 0x2512: 0x0002, 0x2513: 0x0002, 0x2514: 0x0002, 0x2515: 0x0002, 0x2516: 0x0002, 0x2517: 0x0002,
1201 0x2518: 0x0002, 0x2519: 0x0002, 0x251a: 0x0006, 0x251b: 0x000a, 0x251c: 0x000a, 0x251d: 0x000a,
1202 0x251e: 0x000a, 0x251f: 0x000a, 0x2520: 0x000a,
1203 0x253b: 0x005a,
1204 0x253c: 0x000a, 0x253d: 0x004a, 0x253e: 0x000a, 0x253f: 0x000a,
1205 // Block 0x95, offset 0x2540
1206 0x2540: 0x000a,
1207 0x255b: 0x005a, 0x255c: 0x000a, 0x255d: 0x004a,
1208 0x255e: 0x000a, 0x255f: 0x00fa, 0x2560: 0x00ea, 0x2561: 0x000a, 0x2562: 0x003a, 0x2563: 0x002a,
1209 0x2564: 0x000a, 0x2565: 0x000a,
1210 // Block 0x96, offset 0x2580
1211 0x25a0: 0x0004, 0x25a1: 0x0004, 0x25a2: 0x000a, 0x25a3: 0x000a,
1212 0x25a4: 0x000a, 0x25a5: 0x0004, 0x25a6: 0x0004, 0x25a8: 0x000a, 0x25a9: 0x000a,
1213 0x25aa: 0x000a, 0x25ab: 0x000a, 0x25ac: 0x000a, 0x25ad: 0x000a, 0x25ae: 0x000a,
1214 0x25b0: 0x000b, 0x25b1: 0x000b, 0x25b2: 0x000b, 0x25b3: 0x000b, 0x25b4: 0x000b, 0x25b5: 0x000b,
1215 0x25b6: 0x000b, 0x25b7: 0x000b, 0x25b8: 0x000b, 0x25b9: 0x000a, 0x25ba: 0x000a, 0x25bb: 0x000a,
1216 0x25bc: 0x000a, 0x25bd: 0x000a, 0x25be: 0x000b, 0x25bf: 0x000b,
1217 // Block 0x97, offset 0x25c0
1218 0x25c1: 0x000a,
1219 // Block 0x98, offset 0x2600
1220 0x2600: 0x000a, 0x2601: 0x000a, 0x2602: 0x000a, 0x2603: 0x000a, 0x2604: 0x000a, 0x2605: 0x000a,
1221 0x2606: 0x000a, 0x2607: 0x000a, 0x2608: 0x000a, 0x2609: 0x000a, 0x260a: 0x000a, 0x260b: 0x000a,
1222 0x260c: 0x000a, 0x2610: 0x000a, 0x2611: 0x000a,
1223 0x2612: 0x000a, 0x2613: 0x000a, 0x2614: 0x000a, 0x2615: 0x000a, 0x2616: 0x000a, 0x2617: 0x000a,
1224 0x2618: 0x000a, 0x2619: 0x000a, 0x261a: 0x000a, 0x261b: 0x000a,
1225 0x2620: 0x000a,
1226 // Block 0x99, offset 0x2640
1227 0x267d: 0x000c,
1228 // Block 0x9a, offset 0x2680
1229 0x26a0: 0x000c, 0x26a1: 0x0002, 0x26a2: 0x0002, 0x26a3: 0x0002,
1230 0x26a4: 0x0002, 0x26a5: 0x0002, 0x26a6: 0x0002, 0x26a7: 0x0002, 0x26a8: 0x0002, 0x26a9: 0x0002,
1231 0x26aa: 0x0002, 0x26ab: 0x0002, 0x26ac: 0x0002, 0x26ad: 0x0002, 0x26ae: 0x0002, 0x26af: 0x0002,
1232 0x26b0: 0x0002, 0x26b1: 0x0002, 0x26b2: 0x0002, 0x26b3: 0x0002, 0x26b4: 0x0002, 0x26b5: 0x0002,
1233 0x26b6: 0x0002, 0x26b7: 0x0002, 0x26b8: 0x0002, 0x26b9: 0x0002, 0x26ba: 0x0002, 0x26bb: 0x0002,
1234 // Block 0x9b, offset 0x26c0
1235 0x26f6: 0x000c, 0x26f7: 0x000c, 0x26f8: 0x000c, 0x26f9: 0x000c, 0x26fa: 0x000c,
1236 // Block 0x9c, offset 0x2700
1237 0x2700: 0x0001, 0x2701: 0x0001, 0x2702: 0x0001, 0x2703: 0x0001, 0x2704: 0x0001, 0x2705: 0x0001,
1238 0x2706: 0x0001, 0x2707: 0x0001, 0x2708: 0x0001, 0x2709: 0x0001, 0x270a: 0x0001, 0x270b: 0x0001,
1239 0x270c: 0x0001, 0x270d: 0x0001, 0x270e: 0x0001, 0x270f: 0x0001, 0x2710: 0x0001, 0x2711: 0x0001,
1240 0x2712: 0x0001, 0x2713: 0x0001, 0x2714: 0x0001, 0x2715: 0x0001, 0x2716: 0x0001, 0x2717: 0x0001,
1241 0x2718: 0x0001, 0x2719: 0x0001, 0x271a: 0x0001, 0x271b: 0x0001, 0x271c: 0x0001, 0x271d: 0x0001,
1242 0x271e: 0x0001, 0x271f: 0x0001, 0x2720: 0x0001, 0x2721: 0x0001, 0x2722: 0x0001, 0x2723: 0x0001,
1243 0x2724: 0x0001, 0x2725: 0x0001, 0x2726: 0x0001, 0x2727: 0x0001, 0x2728: 0x0001, 0x2729: 0x0001,
1244 0x272a: 0x0001, 0x272b: 0x0001, 0x272c: 0x0001, 0x272d: 0x0001, 0x272e: 0x0001, 0x272f: 0x0001,
1245 0x2730: 0x0001, 0x2731: 0x0001, 0x2732: 0x0001, 0x2733: 0x0001, 0x2734: 0x0001, 0x2735: 0x0001,
1246 0x2736: 0x0001, 0x2737: 0x0001, 0x2738: 0x0001, 0x2739: 0x0001, 0x273a: 0x0001, 0x273b: 0x0001,
1247 0x273c: 0x0001, 0x273d: 0x0001, 0x273e: 0x0001, 0x273f: 0x0001,
1248 // Block 0x9d, offset 0x2740
1249 0x2740: 0x0001, 0x2741: 0x0001, 0x2742: 0x0001, 0x2743: 0x0001, 0x2744: 0x0001, 0x2745: 0x0001,
1250 0x2746: 0x0001, 0x2747: 0x0001, 0x2748: 0x0001, 0x2749: 0x0001, 0x274a: 0x0001, 0x274b: 0x0001,
1251 0x274c: 0x0001, 0x274d: 0x0001, 0x274e: 0x0001, 0x274f: 0x0001, 0x2750: 0x0001, 0x2751: 0x0001,
1252 0x2752: 0x0001, 0x2753: 0x0001, 0x2754: 0x0001, 0x2755: 0x0001, 0x2756: 0x0001, 0x2757: 0x0001,
1253 0x2758: 0x0001, 0x2759: 0x0001, 0x275a: 0x0001, 0x275b: 0x0001, 0x275c: 0x0001, 0x275d: 0x0001,
1254 0x275e: 0x0001, 0x275f: 0x000a, 0x2760: 0x0001, 0x2761: 0x0001, 0x2762: 0x0001, 0x2763: 0x0001,
1255 0x2764: 0x0001, 0x2765: 0x0001, 0x2766: 0x0001, 0x2767: 0x0001, 0x2768: 0x0001, 0x2769: 0x0001,
1256 0x276a: 0x0001, 0x276b: 0x0001, 0x276c: 0x0001, 0x276d: 0x0001, 0x276e: 0x0001, 0x276f: 0x0001,
1257 0x2770: 0x0001, 0x2771: 0x0001, 0x2772: 0x0001, 0x2773: 0x0001, 0x2774: 0x0001, 0x2775: 0x0001,
1258 0x2776: 0x0001, 0x2777: 0x0001, 0x2778: 0x0001, 0x2779: 0x0001, 0x277a: 0x0001, 0x277b: 0x0001,
1259 0x277c: 0x0001, 0x277d: 0x0001, 0x277e: 0x0001, 0x277f: 0x0001,
1260 // Block 0x9e, offset 0x2780
1261 0x2780: 0x0001, 0x2781: 0x000c, 0x2782: 0x000c, 0x2783: 0x000c, 0x2784: 0x0001, 0x2785: 0x000c,
1262 0x2786: 0x000c, 0x2787: 0x0001, 0x2788: 0x0001, 0x2789: 0x0001, 0x278a: 0x0001, 0x278b: 0x0001,
1263 0x278c: 0x000c, 0x278d: 0x000c, 0x278e: 0x000c, 0x278f: 0x000c, 0x2790: 0x0001, 0x2791: 0x0001,
1264 0x2792: 0x0001, 0x2793: 0x0001, 0x2794: 0x0001, 0x2795: 0x0001, 0x2796: 0x0001, 0x2797: 0x0001,
1265 0x2798: 0x0001, 0x2799: 0x0001, 0x279a: 0x0001, 0x279b: 0x0001, 0x279c: 0x0001, 0x279d: 0x0001,
1266 0x279e: 0x0001, 0x279f: 0x0001, 0x27a0: 0x0001, 0x27a1: 0x0001, 0x27a2: 0x0001, 0x27a3: 0x0001,
1267 0x27a4: 0x0001, 0x27a5: 0x0001, 0x27a6: 0x0001, 0x27a7: 0x0001, 0x27a8: 0x0001, 0x27a9: 0x0001,
1268 0x27aa: 0x0001, 0x27ab: 0x0001, 0x27ac: 0x0001, 0x27ad: 0x0001, 0x27ae: 0x0001, 0x27af: 0x0001,
1269 0x27b0: 0x0001, 0x27b1: 0x0001, 0x27b2: 0x0001, 0x27b3: 0x0001, 0x27b4: 0x0001, 0x27b5: 0x0001,
1270 0x27b6: 0x0001, 0x27b7: 0x0001, 0x27b8: 0x000c, 0x27b9: 0x000c, 0x27ba: 0x000c, 0x27bb: 0x0001,
1271 0x27bc: 0x0001, 0x27bd: 0x0001, 0x27be: 0x0001, 0x27bf: 0x000c,
1272 // Block 0x9f, offset 0x27c0
1273 0x27c0: 0x0001, 0x27c1: 0x0001, 0x27c2: 0x0001, 0x27c3: 0x0001, 0x27c4: 0x0001, 0x27c5: 0x0001,
1274 0x27c6: 0x0001, 0x27c7: 0x0001, 0x27c8: 0x0001, 0x27c9: 0x0001, 0x27ca: 0x0001, 0x27cb: 0x0001,
1275 0x27cc: 0x0001, 0x27cd: 0x0001, 0x27ce: 0x0001, 0x27cf: 0x0001, 0x27d0: 0x0001, 0x27d1: 0x0001,
1276 0x27d2: 0x0001, 0x27d3: 0x0001, 0x27d4: 0x0001, 0x27d5: 0x0001, 0x27d6: 0x0001, 0x27d7: 0x0001,
1277 0x27d8: 0x0001, 0x27d9: 0x0001, 0x27da: 0x0001, 0x27db: 0x0001, 0x27dc: 0x0001, 0x27dd: 0x0001,
1278 0x27de: 0x0001, 0x27df: 0x0001, 0x27e0: 0x0001, 0x27e1: 0x0001, 0x27e2: 0x0001, 0x27e3: 0x0001,
1279 0x27e4: 0x0001, 0x27e5: 0x000c, 0x27e6: 0x000c, 0x27e7: 0x0001, 0x27e8: 0x0001, 0x27e9: 0x0001,
1280 0x27ea: 0x0001, 0x27eb: 0x0001, 0x27ec: 0x0001, 0x27ed: 0x0001, 0x27ee: 0x0001, 0x27ef: 0x0001,
1281 0x27f0: 0x0001, 0x27f1: 0x0001, 0x27f2: 0x0001, 0x27f3: 0x0001, 0x27f4: 0x0001, 0x27f5: 0x0001,
1282 0x27f6: 0x0001, 0x27f7: 0x0001, 0x27f8: 0x0001, 0x27f9: 0x0001, 0x27fa: 0x0001, 0x27fb: 0x0001,
1283 0x27fc: 0x0001, 0x27fd: 0x0001, 0x27fe: 0x0001, 0x27ff: 0x0001,
1284 // Block 0xa0, offset 0x2800
1285 0x2800: 0x0001, 0x2801: 0x0001, 0x2802: 0x0001, 0x2803: 0x0001, 0x2804: 0x0001, 0x2805: 0x0001,
1286 0x2806: 0x0001, 0x2807: 0x0001, 0x2808: 0x0001, 0x2809: 0x0001, 0x280a: 0x0001, 0x280b: 0x0001,
1287 0x280c: 0x0001, 0x280d: 0x0001, 0x280e: 0x0001, 0x280f: 0x0001, 0x2810: 0x0001, 0x2811: 0x0001,
1288 0x2812: 0x0001, 0x2813: 0x0001, 0x2814: 0x0001, 0x2815: 0x0001, 0x2816: 0x0001, 0x2817: 0x0001,
1289 0x2818: 0x0001, 0x2819: 0x0001, 0x281a: 0x0001, 0x281b: 0x0001, 0x281c: 0x0001, 0x281d: 0x0001,
1290 0x281e: 0x0001, 0x281f: 0x0001, 0x2820: 0x0001, 0x2821: 0x0001, 0x2822: 0x0001, 0x2823: 0x0001,
1291 0x2824: 0x0001, 0x2825: 0x0001, 0x2826: 0x0001, 0x2827: 0x0001, 0x2828: 0x0001, 0x2829: 0x0001,
1292 0x282a: 0x0001, 0x282b: 0x0001, 0x282c: 0x0001, 0x282d: 0x0001, 0x282e: 0x0001, 0x282f: 0x0001,
1293 0x2830: 0x0001, 0x2831: 0x0001, 0x2832: 0x0001, 0x2833: 0x0001, 0x2834: 0x0001, 0x2835: 0x0001,
1294 0x2836: 0x0001, 0x2837: 0x0001, 0x2838: 0x0001, 0x2839: 0x000a, 0x283a: 0x000a, 0x283b: 0x000a,
1295 0x283c: 0x000a, 0x283d: 0x000a, 0x283e: 0x000a, 0x283f: 0x000a,
1296 // Block 0xa1, offset 0x2840
1297 0x2840: 0x0001, 0x2841: 0x0001, 0x2842: 0x0001, 0x2843: 0x0001, 0x2844: 0x0001, 0x2845: 0x0001,
1298 0x2846: 0x0001, 0x2847: 0x0001, 0x2848: 0x0001, 0x2849: 0x0001, 0x284a: 0x0001, 0x284b: 0x0001,
1299 0x284c: 0x0001, 0x284d: 0x0001, 0x284e: 0x0001, 0x284f: 0x0001, 0x2850: 0x0001, 0x2851: 0x0001,
1300 0x2852: 0x0001, 0x2853: 0x0001, 0x2854: 0x0001, 0x2855: 0x0001, 0x2856: 0x0001, 0x2857: 0x0001,
1301 0x2858: 0x0001, 0x2859: 0x0001, 0x285a: 0x0001, 0x285b: 0x0001, 0x285c: 0x0001, 0x285d: 0x0001,
1302 0x285e: 0x0001, 0x285f: 0x0001, 0x2860: 0x0005, 0x2861: 0x0005, 0x2862: 0x0005, 0x2863: 0x0005,
1303 0x2864: 0x0005, 0x2865: 0x0005, 0x2866: 0x0005, 0x2867: 0x0005, 0x2868: 0x0005, 0x2869: 0x0005,
1304 0x286a: 0x0005, 0x286b: 0x0005, 0x286c: 0x0005, 0x286d: 0x0005, 0x286e: 0x0005, 0x286f: 0x0005,
1305 0x2870: 0x0005, 0x2871: 0x0005, 0x2872: 0x0005, 0x2873: 0x0005, 0x2874: 0x0005, 0x2875: 0x0005,
1306 0x2876: 0x0005, 0x2877: 0x0005, 0x2878: 0x0005, 0x2879: 0x0005, 0x287a: 0x0005, 0x287b: 0x0005,
1307 0x287c: 0x0005, 0x287d: 0x0005, 0x287e: 0x0005, 0x287f: 0x0001,
1308 // Block 0xa2, offset 0x2880
1309 0x2881: 0x000c,
1310 0x28b8: 0x000c, 0x28b9: 0x000c, 0x28ba: 0x000c, 0x28bb: 0x000c,
1311 0x28bc: 0x000c, 0x28bd: 0x000c, 0x28be: 0x000c, 0x28bf: 0x000c,
1312 // Block 0xa3, offset 0x28c0
1313 0x28c0: 0x000c, 0x28c1: 0x000c, 0x28c2: 0x000c, 0x28c3: 0x000c, 0x28c4: 0x000c, 0x28c5: 0x000c,
1314 0x28c6: 0x000c,
1315 0x28d2: 0x000a, 0x28d3: 0x000a, 0x28d4: 0x000a, 0x28d5: 0x000a, 0x28d6: 0x000a, 0x28d7: 0x000a,
1316 0x28d8: 0x000a, 0x28d9: 0x000a, 0x28da: 0x000a, 0x28db: 0x000a, 0x28dc: 0x000a, 0x28dd: 0x000a,
1317 0x28de: 0x000a, 0x28df: 0x000a, 0x28e0: 0x000a, 0x28e1: 0x000a, 0x28e2: 0x000a, 0x28e3: 0x000a,
1318 0x28e4: 0x000a, 0x28e5: 0x000a,
1319 0x28ff: 0x000c,
1320 // Block 0xa4, offset 0x2900
1321 0x2900: 0x000c, 0x2901: 0x000c,
1322 0x2933: 0x000c, 0x2934: 0x000c, 0x2935: 0x000c,
1323 0x2936: 0x000c, 0x2939: 0x000c, 0x293a: 0x000c,
1324 // Block 0xa5, offset 0x2940
1325 0x2940: 0x000c, 0x2941: 0x000c, 0x2942: 0x000c,
1326 0x2967: 0x000c, 0x2968: 0x000c, 0x2969: 0x000c,
1327 0x296a: 0x000c, 0x296b: 0x000c, 0x296d: 0x000c, 0x296e: 0x000c, 0x296f: 0x000c,
1328 0x2970: 0x000c, 0x2971: 0x000c, 0x2972: 0x000c, 0x2973: 0x000c, 0x2974: 0x000c,
1329 // Block 0xa6, offset 0x2980
1330 0x29b3: 0x000c,
1331 // Block 0xa7, offset 0x29c0
1332 0x29c0: 0x000c, 0x29c1: 0x000c,
1333 0x29f6: 0x000c, 0x29f7: 0x000c, 0x29f8: 0x000c, 0x29f9: 0x000c, 0x29fa: 0x000c, 0x29fb: 0x000c,
1334 0x29fc: 0x000c, 0x29fd: 0x000c, 0x29fe: 0x000c,
1335 // Block 0xa8, offset 0x2a00
1336 0x2a0a: 0x000c, 0x2a0b: 0x000c,
1337 0x2a0c: 0x000c,
1338 // Block 0xa9, offset 0x2a40
1339 0x2a6f: 0x000c,
1340 0x2a70: 0x000c, 0x2a71: 0x000c, 0x2a74: 0x000c,
1341 0x2a76: 0x000c, 0x2a77: 0x000c,
1342 0x2a7e: 0x000c,
1343 // Block 0xaa, offset 0x2a80
1344 0x2a9f: 0x000c, 0x2aa3: 0x000c,
1345 0x2aa4: 0x000c, 0x2aa5: 0x000c, 0x2aa6: 0x000c, 0x2aa7: 0x000c, 0x2aa8: 0x000c, 0x2aa9: 0x000c,
1346 0x2aaa: 0x000c,
1347 // Block 0xab, offset 0x2ac0
1348 0x2ac0: 0x000c, 0x2ac1: 0x000c,
1349 0x2afc: 0x000c,
1350 // Block 0xac, offset 0x2b00
1351 0x2b00: 0x000c,
1352 0x2b26: 0x000c, 0x2b27: 0x000c, 0x2b28: 0x000c, 0x2b29: 0x000c,
1353 0x2b2a: 0x000c, 0x2b2b: 0x000c, 0x2b2c: 0x000c,
1354 0x2b30: 0x000c, 0x2b31: 0x000c, 0x2b32: 0x000c, 0x2b33: 0x000c, 0x2b34: 0x000c,
1355 // Block 0xad, offset 0x2b40
1356 0x2b78: 0x000c, 0x2b79: 0x000c, 0x2b7a: 0x000c, 0x2b7b: 0x000c,
1357 0x2b7c: 0x000c, 0x2b7d: 0x000c, 0x2b7e: 0x000c, 0x2b7f: 0x000c,
1358 // Block 0xae, offset 0x2b80
1359 0x2b82: 0x000c, 0x2b83: 0x000c, 0x2b84: 0x000c,
1360 0x2b86: 0x000c,
1361 // Block 0xaf, offset 0x2bc0
1362 0x2bf3: 0x000c, 0x2bf4: 0x000c, 0x2bf5: 0x000c,
1363 0x2bf6: 0x000c, 0x2bf7: 0x000c, 0x2bf8: 0x000c, 0x2bfa: 0x000c,
1364 0x2bff: 0x000c,
1365 // Block 0xb0, offset 0x2c00
1366 0x2c00: 0x000c, 0x2c02: 0x000c, 0x2c03: 0x000c,
1367 // Block 0xb1, offset 0x2c40
1368 0x2c72: 0x000c, 0x2c73: 0x000c, 0x2c74: 0x000c, 0x2c75: 0x000c,
1369 0x2c7c: 0x000c, 0x2c7d: 0x000c, 0x2c7f: 0x000c,
1370 // Block 0xb2, offset 0x2c80
1371 0x2c80: 0x000c,
1372 0x2c9c: 0x000c, 0x2c9d: 0x000c,
1373 // Block 0xb3, offset 0x2cc0
1374 0x2cf3: 0x000c, 0x2cf4: 0x000c, 0x2cf5: 0x000c,
1375 0x2cf6: 0x000c, 0x2cf7: 0x000c, 0x2cf8: 0x000c, 0x2cf9: 0x000c, 0x2cfa: 0x000c,
1376 0x2cfd: 0x000c, 0x2cff: 0x000c,
1377 // Block 0xb4, offset 0x2d00
1378 0x2d00: 0x000c,
1379 0x2d20: 0x000a, 0x2d21: 0x000a, 0x2d22: 0x000a, 0x2d23: 0x000a,
1380 0x2d24: 0x000a, 0x2d25: 0x000a, 0x2d26: 0x000a, 0x2d27: 0x000a, 0x2d28: 0x000a, 0x2d29: 0x000a,
1381 0x2d2a: 0x000a, 0x2d2b: 0x000a, 0x2d2c: 0x000a,
1382 // Block 0xb5, offset 0x2d40
1383 0x2d6b: 0x000c, 0x2d6d: 0x000c,
1384 0x2d70: 0x000c, 0x2d71: 0x000c, 0x2d72: 0x000c, 0x2d73: 0x000c, 0x2d74: 0x000c, 0x2d75: 0x000c,
1385 0x2d77: 0x000c,
1386 // Block 0xb6, offset 0x2d80
1387 0x2d9d: 0x000c,
1388 0x2d9e: 0x000c, 0x2d9f: 0x000c, 0x2da2: 0x000c, 0x2da3: 0x000c,
1389 0x2da4: 0x000c, 0x2da5: 0x000c, 0x2da7: 0x000c, 0x2da8: 0x000c, 0x2da9: 0x000c,
1390 0x2daa: 0x000c, 0x2dab: 0x000c,
1391 // Block 0xb7, offset 0x2dc0
1392 0x2dc1: 0x000c, 0x2dc2: 0x000c, 0x2dc3: 0x000c, 0x2dc4: 0x000c, 0x2dc5: 0x000c,
1393 0x2dc6: 0x000c, 0x2dc9: 0x000c, 0x2dca: 0x000c,
1394 0x2df3: 0x000c, 0x2df4: 0x000c, 0x2df5: 0x000c,
1395 0x2df6: 0x000c, 0x2df7: 0x000c, 0x2df8: 0x000c, 0x2dfb: 0x000c,
1396 0x2dfc: 0x000c, 0x2dfd: 0x000c, 0x2dfe: 0x000c,
1397 // Block 0xb8, offset 0x2e00
1398 0x2e07: 0x000c,
1399 0x2e11: 0x000c,
1400 0x2e12: 0x000c, 0x2e13: 0x000c, 0x2e14: 0x000c, 0x2e15: 0x000c, 0x2e16: 0x000c,
1401 0x2e19: 0x000c, 0x2e1a: 0x000c, 0x2e1b: 0x000c,
1402 // Block 0xb9, offset 0x2e40
1403 0x2e4a: 0x000c, 0x2e4b: 0x000c,
1404 0x2e4c: 0x000c, 0x2e4d: 0x000c, 0x2e4e: 0x000c, 0x2e4f: 0x000c, 0x2e50: 0x000c, 0x2e51: 0x000c,
1405 0x2e52: 0x000c, 0x2e53: 0x000c, 0x2e54: 0x000c, 0x2e55: 0x000c, 0x2e56: 0x000c,
1406 0x2e58: 0x000c, 0x2e59: 0x000c,
1407 // Block 0xba, offset 0x2e80
1408 0x2eb0: 0x000c, 0x2eb1: 0x000c, 0x2eb2: 0x000c, 0x2eb3: 0x000c, 0x2eb4: 0x000c, 0x2eb5: 0x000c,
1409 0x2eb6: 0x000c, 0x2eb8: 0x000c, 0x2eb9: 0x000c, 0x2eba: 0x000c, 0x2ebb: 0x000c,
1410 0x2ebc: 0x000c, 0x2ebd: 0x000c,
1411 // Block 0xbb, offset 0x2ec0
1412 0x2ed2: 0x000c, 0x2ed3: 0x000c, 0x2ed4: 0x000c, 0x2ed5: 0x000c, 0x2ed6: 0x000c, 0x2ed7: 0x000c,
1413 0x2ed8: 0x000c, 0x2ed9: 0x000c, 0x2eda: 0x000c, 0x2edb: 0x000c, 0x2edc: 0x000c, 0x2edd: 0x000c,
1414 0x2ede: 0x000c, 0x2edf: 0x000c, 0x2ee0: 0x000c, 0x2ee1: 0x000c, 0x2ee2: 0x000c, 0x2ee3: 0x000c,
1415 0x2ee4: 0x000c, 0x2ee5: 0x000c, 0x2ee6: 0x000c, 0x2ee7: 0x000c,
1416 0x2eea: 0x000c, 0x2eeb: 0x000c, 0x2eec: 0x000c, 0x2eed: 0x000c, 0x2eee: 0x000c, 0x2eef: 0x000c,
1417 0x2ef0: 0x000c, 0x2ef2: 0x000c, 0x2ef3: 0x000c, 0x2ef5: 0x000c,
1418 0x2ef6: 0x000c,
1419 // Block 0xbc, offset 0x2f00
1420 0x2f31: 0x000c, 0x2f32: 0x000c, 0x2f33: 0x000c, 0x2f34: 0x000c, 0x2f35: 0x000c,
1421 0x2f36: 0x000c, 0x2f3a: 0x000c,
1422 0x2f3c: 0x000c, 0x2f3d: 0x000c, 0x2f3f: 0x000c,
1423 // Block 0xbd, offset 0x2f40
1424 0x2f40: 0x000c, 0x2f41: 0x000c, 0x2f42: 0x000c, 0x2f43: 0x000c, 0x2f44: 0x000c, 0x2f45: 0x000c,
1425 0x2f47: 0x000c,
1426 // Block 0xbe, offset 0x2f80
1427 0x2fb0: 0x000c, 0x2fb1: 0x000c, 0x2fb2: 0x000c, 0x2fb3: 0x000c, 0x2fb4: 0x000c,
1428 // Block 0xbf, offset 0x2fc0
1429 0x2ff0: 0x000c, 0x2ff1: 0x000c, 0x2ff2: 0x000c, 0x2ff3: 0x000c, 0x2ff4: 0x000c, 0x2ff5: 0x000c,
1430 0x2ff6: 0x000c,
1431 // Block 0xc0, offset 0x3000
1432 0x300f: 0x000c, 0x3010: 0x000c, 0x3011: 0x000c,
1433 0x3012: 0x000c,
1434 // Block 0xc1, offset 0x3040
1435 0x305d: 0x000c,
1436 0x305e: 0x000c, 0x3060: 0x000b, 0x3061: 0x000b, 0x3062: 0x000b, 0x3063: 0x000b,
1437 // Block 0xc2, offset 0x3080
1438 0x30a7: 0x000c, 0x30a8: 0x000c, 0x30a9: 0x000c,
1439 0x30b3: 0x000b, 0x30b4: 0x000b, 0x30b5: 0x000b,
1440 0x30b6: 0x000b, 0x30b7: 0x000b, 0x30b8: 0x000b, 0x30b9: 0x000b, 0x30ba: 0x000b, 0x30bb: 0x000c,
1441 0x30bc: 0x000c, 0x30bd: 0x000c, 0x30be: 0x000c, 0x30bf: 0x000c,
1442 // Block 0xc3, offset 0x30c0
1443 0x30c0: 0x000c, 0x30c1: 0x000c, 0x30c2: 0x000c, 0x30c5: 0x000c,
1444 0x30c6: 0x000c, 0x30c7: 0x000c, 0x30c8: 0x000c, 0x30c9: 0x000c, 0x30ca: 0x000c, 0x30cb: 0x000c,
1445 0x30ea: 0x000c, 0x30eb: 0x000c, 0x30ec: 0x000c, 0x30ed: 0x000c,
1446 // Block 0xc4, offset 0x3100
1447 0x3100: 0x000a, 0x3101: 0x000a, 0x3102: 0x000c, 0x3103: 0x000c, 0x3104: 0x000c, 0x3105: 0x000a,
1448 // Block 0xc5, offset 0x3140
1449 0x3140: 0x000a, 0x3141: 0x000a, 0x3142: 0x000a, 0x3143: 0x000a, 0x3144: 0x000a, 0x3145: 0x000a,
1450 0x3146: 0x000a, 0x3147: 0x000a, 0x3148: 0x000a, 0x3149: 0x000a, 0x314a: 0x000a, 0x314b: 0x000a,
1451 0x314c: 0x000a, 0x314d: 0x000a, 0x314e: 0x000a, 0x314f: 0x000a, 0x3150: 0x000a, 0x3151: 0x000a,
1452 0x3152: 0x000a, 0x3153: 0x000a, 0x3154: 0x000a, 0x3155: 0x000a, 0x3156: 0x000a,
1453 // Block 0xc6, offset 0x3180
1454 0x319b: 0x000a,
1455 // Block 0xc7, offset 0x31c0
1456 0x31d5: 0x000a,
1457 // Block 0xc8, offset 0x3200
1458 0x320f: 0x000a,
1459 // Block 0xc9, offset 0x3240
1460 0x3249: 0x000a,
1461 // Block 0xca, offset 0x3280
1462 0x3283: 0x000a,
1463 0x328e: 0x0002, 0x328f: 0x0002, 0x3290: 0x0002, 0x3291: 0x0002,
1464 0x3292: 0x0002, 0x3293: 0x0002, 0x3294: 0x0002, 0x3295: 0x0002, 0x3296: 0x0002, 0x3297: 0x0002,
1465 0x3298: 0x0002, 0x3299: 0x0002, 0x329a: 0x0002, 0x329b: 0x0002, 0x329c: 0x0002, 0x329d: 0x0002,
1466 0x329e: 0x0002, 0x329f: 0x0002, 0x32a0: 0x0002, 0x32a1: 0x0002, 0x32a2: 0x0002, 0x32a3: 0x0002,
1467 0x32a4: 0x0002, 0x32a5: 0x0002, 0x32a6: 0x0002, 0x32a7: 0x0002, 0x32a8: 0x0002, 0x32a9: 0x0002,
1468 0x32aa: 0x0002, 0x32ab: 0x0002, 0x32ac: 0x0002, 0x32ad: 0x0002, 0x32ae: 0x0002, 0x32af: 0x0002,
1469 0x32b0: 0x0002, 0x32b1: 0x0002, 0x32b2: 0x0002, 0x32b3: 0x0002, 0x32b4: 0x0002, 0x32b5: 0x0002,
1470 0x32b6: 0x0002, 0x32b7: 0x0002, 0x32b8: 0x0002, 0x32b9: 0x0002, 0x32ba: 0x0002, 0x32bb: 0x0002,
1471 0x32bc: 0x0002, 0x32bd: 0x0002, 0x32be: 0x0002, 0x32bf: 0x0002,
1472 // Block 0xcb, offset 0x32c0
1473 0x32c0: 0x000c, 0x32c1: 0x000c, 0x32c2: 0x000c, 0x32c3: 0x000c, 0x32c4: 0x000c, 0x32c5: 0x000c,
1474 0x32c6: 0x000c, 0x32c7: 0x000c, 0x32c8: 0x000c, 0x32c9: 0x000c, 0x32ca: 0x000c, 0x32cb: 0x000c,
1475 0x32cc: 0x000c, 0x32cd: 0x000c, 0x32ce: 0x000c, 0x32cf: 0x000c, 0x32d0: 0x000c, 0x32d1: 0x000c,
1476 0x32d2: 0x000c, 0x32d3: 0x000c, 0x32d4: 0x000c, 0x32d5: 0x000c, 0x32d6: 0x000c, 0x32d7: 0x000c,
1477 0x32d8: 0x000c, 0x32d9: 0x000c, 0x32da: 0x000c, 0x32db: 0x000c, 0x32dc: 0x000c, 0x32dd: 0x000c,
1478 0x32de: 0x000c, 0x32df: 0x000c, 0x32e0: 0x000c, 0x32e1: 0x000c, 0x32e2: 0x000c, 0x32e3: 0x000c,
1479 0x32e4: 0x000c, 0x32e5: 0x000c, 0x32e6: 0x000c, 0x32e7: 0x000c, 0x32e8: 0x000c, 0x32e9: 0x000c,
1480 0x32ea: 0x000c, 0x32eb: 0x000c, 0x32ec: 0x000c, 0x32ed: 0x000c, 0x32ee: 0x000c, 0x32ef: 0x000c,
1481 0x32f0: 0x000c, 0x32f1: 0x000c, 0x32f2: 0x000c, 0x32f3: 0x000c, 0x32f4: 0x000c, 0x32f5: 0x000c,
1482 0x32f6: 0x000c, 0x32fb: 0x000c,
1483 0x32fc: 0x000c, 0x32fd: 0x000c, 0x32fe: 0x000c, 0x32ff: 0x000c,
1484 // Block 0xcc, offset 0x3300
1485 0x3300: 0x000c, 0x3301: 0x000c, 0x3302: 0x000c, 0x3303: 0x000c, 0x3304: 0x000c, 0x3305: 0x000c,
1486 0x3306: 0x000c, 0x3307: 0x000c, 0x3308: 0x000c, 0x3309: 0x000c, 0x330a: 0x000c, 0x330b: 0x000c,
1487 0x330c: 0x000c, 0x330d: 0x000c, 0x330e: 0x000c, 0x330f: 0x000c, 0x3310: 0x000c, 0x3311: 0x000c,
1488 0x3312: 0x000c, 0x3313: 0x000c, 0x3314: 0x000c, 0x3315: 0x000c, 0x3316: 0x000c, 0x3317: 0x000c,
1489 0x3318: 0x000c, 0x3319: 0x000c, 0x331a: 0x000c, 0x331b: 0x000c, 0x331c: 0x000c, 0x331d: 0x000c,
1490 0x331e: 0x000c, 0x331f: 0x000c, 0x3320: 0x000c, 0x3321: 0x000c, 0x3322: 0x000c, 0x3323: 0x000c,
1491 0x3324: 0x000c, 0x3325: 0x000c, 0x3326: 0x000c, 0x3327: 0x000c, 0x3328: 0x000c, 0x3329: 0x000c,
1492 0x332a: 0x000c, 0x332b: 0x000c, 0x332c: 0x000c,
1493 0x3335: 0x000c,
1494 // Block 0xcd, offset 0x3340
1495 0x3344: 0x000c,
1496 0x335b: 0x000c, 0x335c: 0x000c, 0x335d: 0x000c,
1497 0x335e: 0x000c, 0x335f: 0x000c, 0x3361: 0x000c, 0x3362: 0x000c, 0x3363: 0x000c,
1498 0x3364: 0x000c, 0x3365: 0x000c, 0x3366: 0x000c, 0x3367: 0x000c, 0x3368: 0x000c, 0x3369: 0x000c,
1499 0x336a: 0x000c, 0x336b: 0x000c, 0x336c: 0x000c, 0x336d: 0x000c, 0x336e: 0x000c, 0x336f: 0x000c,
1500 // Block 0xce, offset 0x3380
1501 0x3380: 0x000c, 0x3381: 0x000c, 0x3382: 0x000c, 0x3383: 0x000c, 0x3384: 0x000c, 0x3385: 0x000c,
1502 0x3386: 0x000c, 0x3388: 0x000c, 0x3389: 0x000c, 0x338a: 0x000c, 0x338b: 0x000c,
1503 0x338c: 0x000c, 0x338d: 0x000c, 0x338e: 0x000c, 0x338f: 0x000c, 0x3390: 0x000c, 0x3391: 0x000c,
1504 0x3392: 0x000c, 0x3393: 0x000c, 0x3394: 0x000c, 0x3395: 0x000c, 0x3396: 0x000c, 0x3397: 0x000c,
1505 0x3398: 0x000c, 0x339b: 0x000c, 0x339c: 0x000c, 0x339d: 0x000c,
1506 0x339e: 0x000c, 0x339f: 0x000c, 0x33a0: 0x000c, 0x33a1: 0x000c, 0x33a3: 0x000c,
1507 0x33a4: 0x000c, 0x33a6: 0x000c, 0x33a7: 0x000c, 0x33a8: 0x000c, 0x33a9: 0x000c,
1508 0x33aa: 0x000c,
1509 // Block 0xcf, offset 0x33c0
1510 0x33c0: 0x0001, 0x33c1: 0x0001, 0x33c2: 0x0001, 0x33c3: 0x0001, 0x33c4: 0x0001, 0x33c5: 0x0001,
1511 0x33c6: 0x0001, 0x33c7: 0x0001, 0x33c8: 0x0001, 0x33c9: 0x0001, 0x33ca: 0x0001, 0x33cb: 0x0001,
1512 0x33cc: 0x0001, 0x33cd: 0x0001, 0x33ce: 0x0001, 0x33cf: 0x0001, 0x33d0: 0x000c, 0x33d1: 0x000c,
1513 0x33d2: 0x000c, 0x33d3: 0x000c, 0x33d4: 0x000c, 0x33d5: 0x000c, 0x33d6: 0x000c, 0x33d7: 0x0001,
1514 0x33d8: 0x0001, 0x33d9: 0x0001, 0x33da: 0x0001, 0x33db: 0x0001, 0x33dc: 0x0001, 0x33dd: 0x0001,
1515 0x33de: 0x0001, 0x33df: 0x0001, 0x33e0: 0x0001, 0x33e1: 0x0001, 0x33e2: 0x0001, 0x33e3: 0x0001,
1516 0x33e4: 0x0001, 0x33e5: 0x0001, 0x33e6: 0x0001, 0x33e7: 0x0001, 0x33e8: 0x0001, 0x33e9: 0x0001,
1517 0x33ea: 0x0001, 0x33eb: 0x0001, 0x33ec: 0x0001, 0x33ed: 0x0001, 0x33ee: 0x0001, 0x33ef: 0x0001,
1518 0x33f0: 0x0001, 0x33f1: 0x0001, 0x33f2: 0x0001, 0x33f3: 0x0001, 0x33f4: 0x0001, 0x33f5: 0x0001,
1519 0x33f6: 0x0001, 0x33f7: 0x0001, 0x33f8: 0x0001, 0x33f9: 0x0001, 0x33fa: 0x0001, 0x33fb: 0x0001,
1520 0x33fc: 0x0001, 0x33fd: 0x0001, 0x33fe: 0x0001, 0x33ff: 0x0001,
1521 // Block 0xd0, offset 0x3400
1522 0x3400: 0x0001, 0x3401: 0x0001, 0x3402: 0x0001, 0x3403: 0x0001, 0x3404: 0x000c, 0x3405: 0x000c,
1523 0x3406: 0x000c, 0x3407: 0x000c, 0x3408: 0x000c, 0x3409: 0x000c, 0x340a: 0x000c, 0x340b: 0x0001,
1524 0x340c: 0x0001, 0x340d: 0x0001, 0x340e: 0x0001, 0x340f: 0x0001, 0x3410: 0x0001, 0x3411: 0x0001,
1525 0x3412: 0x0001, 0x3413: 0x0001, 0x3414: 0x0001, 0x3415: 0x0001, 0x3416: 0x0001, 0x3417: 0x0001,
1526 0x3418: 0x0001, 0x3419: 0x0001, 0x341a: 0x0001, 0x341b: 0x0001, 0x341c: 0x0001, 0x341d: 0x0001,
1527 0x341e: 0x0001, 0x341f: 0x0001, 0x3420: 0x0001, 0x3421: 0x0001, 0x3422: 0x0001, 0x3423: 0x0001,
1528 0x3424: 0x0001, 0x3425: 0x0001, 0x3426: 0x0001, 0x3427: 0x0001, 0x3428: 0x0001, 0x3429: 0x0001,
1529 0x342a: 0x0001, 0x342b: 0x0001, 0x342c: 0x0001, 0x342d: 0x0001, 0x342e: 0x0001, 0x342f: 0x0001,
1530 0x3430: 0x0001, 0x3431: 0x0001, 0x3432: 0x0001, 0x3433: 0x0001, 0x3434: 0x0001, 0x3435: 0x0001,
1531 0x3436: 0x0001, 0x3437: 0x0001, 0x3438: 0x0001, 0x3439: 0x0001, 0x343a: 0x0001, 0x343b: 0x0001,
1532 0x343c: 0x0001, 0x343d: 0x0001, 0x343e: 0x0001, 0x343f: 0x0001,
1533 // Block 0xd1, offset 0x3440
1534 0x3440: 0x000d, 0x3441: 0x000d, 0x3442: 0x000d, 0x3443: 0x000d, 0x3444: 0x000d, 0x3445: 0x000d,
1535 0x3446: 0x000d, 0x3447: 0x000d, 0x3448: 0x000d, 0x3449: 0x000d, 0x344a: 0x000d, 0x344b: 0x000d,
1536 0x344c: 0x000d, 0x344d: 0x000d, 0x344e: 0x000d, 0x344f: 0x000d, 0x3450: 0x000d, 0x3451: 0x000d,
1537 0x3452: 0x000d, 0x3453: 0x000d, 0x3454: 0x000d, 0x3455: 0x000d, 0x3456: 0x000d, 0x3457: 0x000d,
1538 0x3458: 0x000d, 0x3459: 0x000d, 0x345a: 0x000d, 0x345b: 0x000d, 0x345c: 0x000d, 0x345d: 0x000d,
1539 0x345e: 0x000d, 0x345f: 0x000d, 0x3460: 0x000d, 0x3461: 0x000d, 0x3462: 0x000d, 0x3463: 0x000d,
1540 0x3464: 0x000d, 0x3465: 0x000d, 0x3466: 0x000d, 0x3467: 0x000d, 0x3468: 0x000d, 0x3469: 0x000d,
1541 0x346a: 0x000d, 0x346b: 0x000d, 0x346c: 0x000d, 0x346d: 0x000d, 0x346e: 0x000d, 0x346f: 0x000d,
1542 0x3470: 0x000a, 0x3471: 0x000a, 0x3472: 0x000d, 0x3473: 0x000d, 0x3474: 0x000d, 0x3475: 0x000d,
1543 0x3476: 0x000d, 0x3477: 0x000d, 0x3478: 0x000d, 0x3479: 0x000d, 0x347a: 0x000d, 0x347b: 0x000d,
1544 0x347c: 0x000d, 0x347d: 0x000d, 0x347e: 0x000d, 0x347f: 0x000d,
1545 // Block 0xd2, offset 0x3480
1546 0x3480: 0x000a, 0x3481: 0x000a, 0x3482: 0x000a, 0x3483: 0x000a, 0x3484: 0x000a, 0x3485: 0x000a,
1547 0x3486: 0x000a, 0x3487: 0x000a, 0x3488: 0x000a, 0x3489: 0x000a, 0x348a: 0x000a, 0x348b: 0x000a,
1548 0x348c: 0x000a, 0x348d: 0x000a, 0x348e: 0x000a, 0x348f: 0x000a, 0x3490: 0x000a, 0x3491: 0x000a,
1549 0x3492: 0x000a, 0x3493: 0x000a, 0x3494: 0x000a, 0x3495: 0x000a, 0x3496: 0x000a, 0x3497: 0x000a,
1550 0x3498: 0x000a, 0x3499: 0x000a, 0x349a: 0x000a, 0x349b: 0x000a, 0x349c: 0x000a, 0x349d: 0x000a,
1551 0x349e: 0x000a, 0x349f: 0x000a, 0x34a0: 0x000a, 0x34a1: 0x000a, 0x34a2: 0x000a, 0x34a3: 0x000a,
1552 0x34a4: 0x000a, 0x34a5: 0x000a, 0x34a6: 0x000a, 0x34a7: 0x000a, 0x34a8: 0x000a, 0x34a9: 0x000a,
1553 0x34aa: 0x000a, 0x34ab: 0x000a,
1554 0x34b0: 0x000a, 0x34b1: 0x000a, 0x34b2: 0x000a, 0x34b3: 0x000a, 0x34b4: 0x000a, 0x34b5: 0x000a,
1555 0x34b6: 0x000a, 0x34b7: 0x000a, 0x34b8: 0x000a, 0x34b9: 0x000a, 0x34ba: 0x000a, 0x34bb: 0x000a,
1556 0x34bc: 0x000a, 0x34bd: 0x000a, 0x34be: 0x000a, 0x34bf: 0x000a,
1557 // Block 0xd3, offset 0x34c0
1558 0x34c0: 0x000a, 0x34c1: 0x000a, 0x34c2: 0x000a, 0x34c3: 0x000a, 0x34c4: 0x000a, 0x34c5: 0x000a,
1559 0x34c6: 0x000a, 0x34c7: 0x000a, 0x34c8: 0x000a, 0x34c9: 0x000a, 0x34ca: 0x000a, 0x34cb: 0x000a,
1560 0x34cc: 0x000a, 0x34cd: 0x000a, 0x34ce: 0x000a, 0x34cf: 0x000a, 0x34d0: 0x000a, 0x34d1: 0x000a,
1561 0x34d2: 0x000a, 0x34d3: 0x000a,
1562 0x34e0: 0x000a, 0x34e1: 0x000a, 0x34e2: 0x000a, 0x34e3: 0x000a,
1563 0x34e4: 0x000a, 0x34e5: 0x000a, 0x34e6: 0x000a, 0x34e7: 0x000a, 0x34e8: 0x000a, 0x34e9: 0x000a,
1564 0x34ea: 0x000a, 0x34eb: 0x000a, 0x34ec: 0x000a, 0x34ed: 0x000a, 0x34ee: 0x000a,
1565 0x34f1: 0x000a, 0x34f2: 0x000a, 0x34f3: 0x000a, 0x34f4: 0x000a, 0x34f5: 0x000a,
1566 0x34f6: 0x000a, 0x34f7: 0x000a, 0x34f8: 0x000a, 0x34f9: 0x000a, 0x34fa: 0x000a, 0x34fb: 0x000a,
1567 0x34fc: 0x000a, 0x34fd: 0x000a, 0x34fe: 0x000a, 0x34ff: 0x000a,
1568 // Block 0xd4, offset 0x3500
1569 0x3501: 0x000a, 0x3502: 0x000a, 0x3503: 0x000a, 0x3504: 0x000a, 0x3505: 0x000a,
1570 0x3506: 0x000a, 0x3507: 0x000a, 0x3508: 0x000a, 0x3509: 0x000a, 0x350a: 0x000a, 0x350b: 0x000a,
1571 0x350c: 0x000a, 0x350d: 0x000a, 0x350e: 0x000a, 0x350f: 0x000a, 0x3511: 0x000a,
1572 0x3512: 0x000a, 0x3513: 0x000a, 0x3514: 0x000a, 0x3515: 0x000a, 0x3516: 0x000a, 0x3517: 0x000a,
1573 0x3518: 0x000a, 0x3519: 0x000a, 0x351a: 0x000a, 0x351b: 0x000a, 0x351c: 0x000a, 0x351d: 0x000a,
1574 0x351e: 0x000a, 0x351f: 0x000a, 0x3520: 0x000a, 0x3521: 0x000a, 0x3522: 0x000a, 0x3523: 0x000a,
1575 0x3524: 0x000a, 0x3525: 0x000a, 0x3526: 0x000a, 0x3527: 0x000a, 0x3528: 0x000a, 0x3529: 0x000a,
1576 0x352a: 0x000a, 0x352b: 0x000a, 0x352c: 0x000a, 0x352d: 0x000a, 0x352e: 0x000a, 0x352f: 0x000a,
1577 0x3530: 0x000a, 0x3531: 0x000a, 0x3532: 0x000a, 0x3533: 0x000a, 0x3534: 0x000a, 0x3535: 0x000a,
1578 // Block 0xd5, offset 0x3540
1579 0x3540: 0x0002, 0x3541: 0x0002, 0x3542: 0x0002, 0x3543: 0x0002, 0x3544: 0x0002, 0x3545: 0x0002,
1580 0x3546: 0x0002, 0x3547: 0x0002, 0x3548: 0x0002, 0x3549: 0x0002, 0x354a: 0x0002, 0x354b: 0x000a,
1581 0x354c: 0x000a,
1582 // Block 0xd6, offset 0x3580
1583 0x35aa: 0x000a, 0x35ab: 0x000a,
1584 // Block 0xd7, offset 0x35c0
1585 0x35e0: 0x000a, 0x35e1: 0x000a, 0x35e2: 0x000a, 0x35e3: 0x000a,
1586 0x35e4: 0x000a, 0x35e5: 0x000a,
1587 // Block 0xd8, offset 0x3600
1588 0x3600: 0x000a, 0x3601: 0x000a, 0x3602: 0x000a, 0x3603: 0x000a, 0x3604: 0x000a, 0x3605: 0x000a,
1589 0x3606: 0x000a, 0x3607: 0x000a, 0x3608: 0x000a, 0x3609: 0x000a, 0x360a: 0x000a, 0x360b: 0x000a,
1590 0x360c: 0x000a, 0x360d: 0x000a, 0x360e: 0x000a, 0x360f: 0x000a, 0x3610: 0x000a, 0x3611: 0x000a,
1591 0x3612: 0x000a, 0x3613: 0x000a, 0x3614: 0x000a,
1592 0x3620: 0x000a, 0x3621: 0x000a, 0x3622: 0x000a, 0x3623: 0x000a,
1593 0x3624: 0x000a, 0x3625: 0x000a, 0x3626: 0x000a, 0x3627: 0x000a, 0x3628: 0x000a, 0x3629: 0x000a,
1594 0x362a: 0x000a, 0x362b: 0x000a, 0x362c: 0x000a,
1595 0x3630: 0x000a, 0x3631: 0x000a, 0x3632: 0x000a, 0x3633: 0x000a, 0x3634: 0x000a, 0x3635: 0x000a,
1596 0x3636: 0x000a, 0x3637: 0x000a, 0x3638: 0x000a,
1597 // Block 0xd9, offset 0x3640
1598 0x3640: 0x000a, 0x3641: 0x000a, 0x3642: 0x000a, 0x3643: 0x000a, 0x3644: 0x000a, 0x3645: 0x000a,
1599 0x3646: 0x000a, 0x3647: 0x000a, 0x3648: 0x000a, 0x3649: 0x000a, 0x364a: 0x000a, 0x364b: 0x000a,
1600 0x364c: 0x000a, 0x364d: 0x000a, 0x364e: 0x000a, 0x364f: 0x000a, 0x3650: 0x000a, 0x3651: 0x000a,
1601 0x3652: 0x000a, 0x3653: 0x000a, 0x3654: 0x000a,
1602 // Block 0xda, offset 0x3680
1603 0x3680: 0x000a, 0x3681: 0x000a, 0x3682: 0x000a, 0x3683: 0x000a, 0x3684: 0x000a, 0x3685: 0x000a,
1604 0x3686: 0x000a, 0x3687: 0x000a, 0x3688: 0x000a, 0x3689: 0x000a, 0x368a: 0x000a, 0x368b: 0x000a,
1605 0x3690: 0x000a, 0x3691: 0x000a,
1606 0x3692: 0x000a, 0x3693: 0x000a, 0x3694: 0x000a, 0x3695: 0x000a, 0x3696: 0x000a, 0x3697: 0x000a,
1607 0x3698: 0x000a, 0x3699: 0x000a, 0x369a: 0x000a, 0x369b: 0x000a, 0x369c: 0x000a, 0x369d: 0x000a,
1608 0x369e: 0x000a, 0x369f: 0x000a, 0x36a0: 0x000a, 0x36a1: 0x000a, 0x36a2: 0x000a, 0x36a3: 0x000a,
1609 0x36a4: 0x000a, 0x36a5: 0x000a, 0x36a6: 0x000a, 0x36a7: 0x000a, 0x36a8: 0x000a, 0x36a9: 0x000a,
1610 0x36aa: 0x000a, 0x36ab: 0x000a, 0x36ac: 0x000a, 0x36ad: 0x000a, 0x36ae: 0x000a, 0x36af: 0x000a,
1611 0x36b0: 0x000a, 0x36b1: 0x000a, 0x36b2: 0x000a, 0x36b3: 0x000a, 0x36b4: 0x000a, 0x36b5: 0x000a,
1612 0x36b6: 0x000a, 0x36b7: 0x000a, 0x36b8: 0x000a, 0x36b9: 0x000a, 0x36ba: 0x000a, 0x36bb: 0x000a,
1613 0x36bc: 0x000a, 0x36bd: 0x000a, 0x36be: 0x000a, 0x36bf: 0x000a,
1614 // Block 0xdb, offset 0x36c0
1615 0x36c0: 0x000a, 0x36c1: 0x000a, 0x36c2: 0x000a, 0x36c3: 0x000a, 0x36c4: 0x000a, 0x36c5: 0x000a,
1616 0x36c6: 0x000a, 0x36c7: 0x000a,
1617 0x36d0: 0x000a, 0x36d1: 0x000a,
1618 0x36d2: 0x000a, 0x36d3: 0x000a, 0x36d4: 0x000a, 0x36d5: 0x000a, 0x36d6: 0x000a, 0x36d7: 0x000a,
1619 0x36d8: 0x000a, 0x36d9: 0x000a,
1620 0x36e0: 0x000a, 0x36e1: 0x000a, 0x36e2: 0x000a, 0x36e3: 0x000a,
1621 0x36e4: 0x000a, 0x36e5: 0x000a, 0x36e6: 0x000a, 0x36e7: 0x000a, 0x36e8: 0x000a, 0x36e9: 0x000a,
1622 0x36ea: 0x000a, 0x36eb: 0x000a, 0x36ec: 0x000a, 0x36ed: 0x000a, 0x36ee: 0x000a, 0x36ef: 0x000a,
1623 0x36f0: 0x000a, 0x36f1: 0x000a, 0x36f2: 0x000a, 0x36f3: 0x000a, 0x36f4: 0x000a, 0x36f5: 0x000a,
1624 0x36f6: 0x000a, 0x36f7: 0x000a, 0x36f8: 0x000a, 0x36f9: 0x000a, 0x36fa: 0x000a, 0x36fb: 0x000a,
1625 0x36fc: 0x000a, 0x36fd: 0x000a, 0x36fe: 0x000a, 0x36ff: 0x000a,
1626 // Block 0xdc, offset 0x3700
1627 0x3700: 0x000a, 0x3701: 0x000a, 0x3702: 0x000a, 0x3703: 0x000a, 0x3704: 0x000a, 0x3705: 0x000a,
1628 0x3706: 0x000a, 0x3707: 0x000a,
1629 0x3710: 0x000a, 0x3711: 0x000a,
1630 0x3712: 0x000a, 0x3713: 0x000a, 0x3714: 0x000a, 0x3715: 0x000a, 0x3716: 0x000a, 0x3717: 0x000a,
1631 0x3718: 0x000a, 0x3719: 0x000a, 0x371a: 0x000a, 0x371b: 0x000a, 0x371c: 0x000a, 0x371d: 0x000a,
1632 0x371e: 0x000a, 0x371f: 0x000a, 0x3720: 0x000a, 0x3721: 0x000a, 0x3722: 0x000a, 0x3723: 0x000a,
1633 0x3724: 0x000a, 0x3725: 0x000a, 0x3726: 0x000a, 0x3727: 0x000a, 0x3728: 0x000a, 0x3729: 0x000a,
1634 0x372a: 0x000a, 0x372b: 0x000a, 0x372c: 0x000a, 0x372d: 0x000a,
1635 // Block 0xdd, offset 0x3740
1636 0x3740: 0x000a, 0x3741: 0x000a, 0x3742: 0x000a, 0x3743: 0x000a, 0x3744: 0x000a, 0x3745: 0x000a,
1637 0x3746: 0x000a, 0x3747: 0x000a, 0x3748: 0x000a, 0x3749: 0x000a, 0x374a: 0x000a, 0x374b: 0x000a,
1638 0x3750: 0x000a, 0x3751: 0x000a,
1639 0x3752: 0x000a, 0x3753: 0x000a, 0x3754: 0x000a, 0x3755: 0x000a, 0x3756: 0x000a, 0x3757: 0x000a,
1640 0x3758: 0x000a, 0x3759: 0x000a, 0x375a: 0x000a, 0x375b: 0x000a, 0x375c: 0x000a, 0x375d: 0x000a,
1641 0x375e: 0x000a, 0x375f: 0x000a, 0x3760: 0x000a, 0x3761: 0x000a, 0x3762: 0x000a, 0x3763: 0x000a,
1642 0x3764: 0x000a, 0x3765: 0x000a, 0x3766: 0x000a, 0x3767: 0x000a, 0x3768: 0x000a, 0x3769: 0x000a,
1643 0x376a: 0x000a, 0x376b: 0x000a, 0x376c: 0x000a, 0x376d: 0x000a, 0x376e: 0x000a, 0x376f: 0x000a,
1644 0x3770: 0x000a, 0x3771: 0x000a, 0x3772: 0x000a, 0x3773: 0x000a, 0x3774: 0x000a, 0x3775: 0x000a,
1645 0x3776: 0x000a, 0x3777: 0x000a, 0x3778: 0x000a, 0x3779: 0x000a, 0x377a: 0x000a, 0x377b: 0x000a,
1646 0x377c: 0x000a, 0x377d: 0x000a, 0x377e: 0x000a,
1647 // Block 0xde, offset 0x3780
1648 0x3780: 0x000a, 0x3781: 0x000a, 0x3782: 0x000a, 0x3783: 0x000a, 0x3784: 0x000a, 0x3785: 0x000a,
1649 0x3786: 0x000a, 0x3787: 0x000a, 0x3788: 0x000a, 0x3789: 0x000a, 0x378a: 0x000a, 0x378b: 0x000a,
1650 0x378c: 0x000a, 0x3790: 0x000a, 0x3791: 0x000a,
1651 0x3792: 0x000a, 0x3793: 0x000a, 0x3794: 0x000a, 0x3795: 0x000a, 0x3796: 0x000a, 0x3797: 0x000a,
1652 0x3798: 0x000a, 0x3799: 0x000a, 0x379a: 0x000a, 0x379b: 0x000a, 0x379c: 0x000a, 0x379d: 0x000a,
1653 0x379e: 0x000a, 0x379f: 0x000a, 0x37a0: 0x000a, 0x37a1: 0x000a, 0x37a2: 0x000a, 0x37a3: 0x000a,
1654 0x37a4: 0x000a, 0x37a5: 0x000a, 0x37a6: 0x000a, 0x37a7: 0x000a, 0x37a8: 0x000a, 0x37a9: 0x000a,
1655 0x37aa: 0x000a, 0x37ab: 0x000a,
1656 // Block 0xdf, offset 0x37c0
1657 0x37c0: 0x000a, 0x37c1: 0x000a, 0x37c2: 0x000a, 0x37c3: 0x000a, 0x37c4: 0x000a, 0x37c5: 0x000a,
1658 0x37c6: 0x000a, 0x37c7: 0x000a, 0x37c8: 0x000a, 0x37c9: 0x000a, 0x37ca: 0x000a, 0x37cb: 0x000a,
1659 0x37cc: 0x000a, 0x37cd: 0x000a, 0x37ce: 0x000a, 0x37cf: 0x000a, 0x37d0: 0x000a, 0x37d1: 0x000a,
1660 0x37d2: 0x000a, 0x37d3: 0x000a, 0x37d4: 0x000a, 0x37d5: 0x000a, 0x37d6: 0x000a, 0x37d7: 0x000a,
1661 // Block 0xe0, offset 0x3800
1662 0x3800: 0x000a,
1663 0x3810: 0x000a, 0x3811: 0x000a,
1664 0x3812: 0x000a, 0x3813: 0x000a, 0x3814: 0x000a, 0x3815: 0x000a, 0x3816: 0x000a, 0x3817: 0x000a,
1665 0x3818: 0x000a, 0x3819: 0x000a, 0x381a: 0x000a, 0x381b: 0x000a, 0x381c: 0x000a, 0x381d: 0x000a,
1666 0x381e: 0x000a, 0x381f: 0x000a, 0x3820: 0x000a, 0x3821: 0x000a, 0x3822: 0x000a, 0x3823: 0x000a,
1667 0x3824: 0x000a, 0x3825: 0x000a, 0x3826: 0x000a,
1668 // Block 0xe1, offset 0x3840
1669 0x387e: 0x000b, 0x387f: 0x000b,
1670 // Block 0xe2, offset 0x3880
1671 0x3880: 0x000b, 0x3881: 0x000b, 0x3882: 0x000b, 0x3883: 0x000b, 0x3884: 0x000b, 0x3885: 0x000b,
1672 0x3886: 0x000b, 0x3887: 0x000b, 0x3888: 0x000b, 0x3889: 0x000b, 0x388a: 0x000b, 0x388b: 0x000b,
1673 0x388c: 0x000b, 0x388d: 0x000b, 0x388e: 0x000b, 0x388f: 0x000b, 0x3890: 0x000b, 0x3891: 0x000b,
1674 0x3892: 0x000b, 0x3893: 0x000b, 0x3894: 0x000b, 0x3895: 0x000b, 0x3896: 0x000b, 0x3897: 0x000b,
1675 0x3898: 0x000b, 0x3899: 0x000b, 0x389a: 0x000b, 0x389b: 0x000b, 0x389c: 0x000b, 0x389d: 0x000b,
1676 0x389e: 0x000b, 0x389f: 0x000b, 0x38a0: 0x000b, 0x38a1: 0x000b, 0x38a2: 0x000b, 0x38a3: 0x000b,
1677 0x38a4: 0x000b, 0x38a5: 0x000b, 0x38a6: 0x000b, 0x38a7: 0x000b, 0x38a8: 0x000b, 0x38a9: 0x000b,
1678 0x38aa: 0x000b, 0x38ab: 0x000b, 0x38ac: 0x000b, 0x38ad: 0x000b, 0x38ae: 0x000b, 0x38af: 0x000b,
1679 0x38b0: 0x000b, 0x38b1: 0x000b, 0x38b2: 0x000b, 0x38b3: 0x000b, 0x38b4: 0x000b, 0x38b5: 0x000b,
1680 0x38b6: 0x000b, 0x38b7: 0x000b, 0x38b8: 0x000b, 0x38b9: 0x000b, 0x38ba: 0x000b, 0x38bb: 0x000b,
1681 0x38bc: 0x000b, 0x38bd: 0x000b, 0x38be: 0x000b, 0x38bf: 0x000b,
1682 // Block 0xe3, offset 0x38c0
1683 0x38c0: 0x000c, 0x38c1: 0x000c, 0x38c2: 0x000c, 0x38c3: 0x000c, 0x38c4: 0x000c, 0x38c5: 0x000c,
1684 0x38c6: 0x000c, 0x38c7: 0x000c, 0x38c8: 0x000c, 0x38c9: 0x000c, 0x38ca: 0x000c, 0x38cb: 0x000c,
1685 0x38cc: 0x000c, 0x38cd: 0x000c, 0x38ce: 0x000c, 0x38cf: 0x000c, 0x38d0: 0x000c, 0x38d1: 0x000c,
1686 0x38d2: 0x000c, 0x38d3: 0x000c, 0x38d4: 0x000c, 0x38d5: 0x000c, 0x38d6: 0x000c, 0x38d7: 0x000c,
1687 0x38d8: 0x000c, 0x38d9: 0x000c, 0x38da: 0x000c, 0x38db: 0x000c, 0x38dc: 0x000c, 0x38dd: 0x000c,
1688 0x38de: 0x000c, 0x38df: 0x000c, 0x38e0: 0x000c, 0x38e1: 0x000c, 0x38e2: 0x000c, 0x38e3: 0x000c,
1689 0x38e4: 0x000c, 0x38e5: 0x000c, 0x38e6: 0x000c, 0x38e7: 0x000c, 0x38e8: 0x000c, 0x38e9: 0x000c,
1690 0x38ea: 0x000c, 0x38eb: 0x000c, 0x38ec: 0x000c, 0x38ed: 0x000c, 0x38ee: 0x000c, 0x38ef: 0x000c,
1691 0x38f0: 0x000b, 0x38f1: 0x000b, 0x38f2: 0x000b, 0x38f3: 0x000b, 0x38f4: 0x000b, 0x38f5: 0x000b,
1692 0x38f6: 0x000b, 0x38f7: 0x000b, 0x38f8: 0x000b, 0x38f9: 0x000b, 0x38fa: 0x000b, 0x38fb: 0x000b,
1693 0x38fc: 0x000b, 0x38fd: 0x000b, 0x38fe: 0x000b, 0x38ff: 0x000b,
1694}
1695
1696// bidiIndex: 24 blocks, 1536 entries, 1536 bytes
1697// Block 0 is the zero block.
1698var bidiIndex = [1536]uint8{
1699 // Block 0x0, offset 0x0
1700 // Block 0x1, offset 0x40
1701 // Block 0x2, offset 0x80
1702 // Block 0x3, offset 0xc0
1703 0xc2: 0x01, 0xc3: 0x02,
1704 0xca: 0x03, 0xcb: 0x04, 0xcc: 0x05, 0xcd: 0x06, 0xce: 0x07, 0xcf: 0x08,
1705 0xd2: 0x09, 0xd6: 0x0a, 0xd7: 0x0b,
1706 0xd8: 0x0c, 0xd9: 0x0d, 0xda: 0x0e, 0xdb: 0x0f, 0xdc: 0x10, 0xdd: 0x11, 0xde: 0x12, 0xdf: 0x13,
1707 0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05, 0xe4: 0x06,
1708 0xea: 0x07, 0xef: 0x08,
1709 0xf0: 0x11, 0xf1: 0x12, 0xf2: 0x12, 0xf3: 0x14, 0xf4: 0x15,
1710 // Block 0x4, offset 0x100
1711 0x120: 0x14, 0x121: 0x15, 0x122: 0x16, 0x123: 0x17, 0x124: 0x18, 0x125: 0x19, 0x126: 0x1a, 0x127: 0x1b,
1712 0x128: 0x1c, 0x129: 0x1d, 0x12a: 0x1c, 0x12b: 0x1e, 0x12c: 0x1f, 0x12d: 0x20, 0x12e: 0x21, 0x12f: 0x22,
1713 0x130: 0x23, 0x131: 0x24, 0x132: 0x1a, 0x133: 0x25, 0x134: 0x26, 0x135: 0x27, 0x137: 0x28,
1714 0x138: 0x29, 0x139: 0x2a, 0x13a: 0x2b, 0x13b: 0x2c, 0x13c: 0x2d, 0x13d: 0x2e, 0x13e: 0x2f, 0x13f: 0x30,
1715 // Block 0x5, offset 0x140
1716 0x140: 0x31, 0x141: 0x32, 0x142: 0x33,
1717 0x14d: 0x34, 0x14e: 0x35,
1718 0x150: 0x36,
1719 0x15a: 0x37, 0x15c: 0x38, 0x15d: 0x39, 0x15e: 0x3a, 0x15f: 0x3b,
1720 0x160: 0x3c, 0x162: 0x3d, 0x164: 0x3e, 0x165: 0x3f, 0x167: 0x40,
1721 0x168: 0x41, 0x169: 0x42, 0x16a: 0x43, 0x16c: 0x44, 0x16d: 0x45, 0x16e: 0x46, 0x16f: 0x47,
1722 0x170: 0x48, 0x173: 0x49, 0x177: 0x4a,
1723 0x17e: 0x4b, 0x17f: 0x4c,
1724 // Block 0x6, offset 0x180
1725 0x180: 0x4d, 0x181: 0x4e, 0x182: 0x4f, 0x183: 0x50, 0x184: 0x51, 0x185: 0x52, 0x186: 0x53, 0x187: 0x54,
1726 0x188: 0x55, 0x189: 0x54, 0x18a: 0x54, 0x18b: 0x54, 0x18c: 0x56, 0x18d: 0x57, 0x18e: 0x58, 0x18f: 0x54,
1727 0x190: 0x59, 0x191: 0x5a, 0x192: 0x5b, 0x193: 0x5c, 0x194: 0x54, 0x195: 0x54, 0x196: 0x54, 0x197: 0x54,
1728 0x198: 0x54, 0x199: 0x54, 0x19a: 0x5d, 0x19b: 0x54, 0x19c: 0x54, 0x19d: 0x5e, 0x19e: 0x54, 0x19f: 0x5f,
1729 0x1a4: 0x54, 0x1a5: 0x54, 0x1a6: 0x60, 0x1a7: 0x61,
1730 0x1a8: 0x54, 0x1a9: 0x54, 0x1aa: 0x54, 0x1ab: 0x54, 0x1ac: 0x54, 0x1ad: 0x62, 0x1ae: 0x63, 0x1af: 0x64,
1731 0x1b3: 0x65, 0x1b5: 0x66, 0x1b7: 0x67,
1732 0x1b8: 0x68, 0x1b9: 0x69, 0x1ba: 0x6a, 0x1bb: 0x6b, 0x1bc: 0x54, 0x1bd: 0x54, 0x1be: 0x54, 0x1bf: 0x6c,
1733 // Block 0x7, offset 0x1c0
1734 0x1c0: 0x6d, 0x1c2: 0x6e, 0x1c3: 0x6f, 0x1c7: 0x70,
1735 0x1c8: 0x71, 0x1c9: 0x72, 0x1ca: 0x73, 0x1cb: 0x74, 0x1cd: 0x75, 0x1cf: 0x76,
1736 // Block 0x8, offset 0x200
1737 0x237: 0x54,
1738 // Block 0x9, offset 0x240
1739 0x252: 0x77, 0x253: 0x78,
1740 0x258: 0x79, 0x259: 0x7a, 0x25a: 0x7b, 0x25b: 0x7c, 0x25c: 0x7d, 0x25e: 0x7e,
1741 0x260: 0x7f, 0x261: 0x80, 0x263: 0x81, 0x264: 0x82, 0x265: 0x83, 0x266: 0x84, 0x267: 0x85,
1742 0x268: 0x86, 0x269: 0x87, 0x26a: 0x88, 0x26b: 0x89, 0x26f: 0x8a,
1743 // Block 0xa, offset 0x280
1744 0x2ac: 0x8b, 0x2ad: 0x8c, 0x2ae: 0x0e, 0x2af: 0x0e,
1745 0x2b0: 0x0e, 0x2b1: 0x0e, 0x2b2: 0x0e, 0x2b3: 0x0e, 0x2b4: 0x8d, 0x2b5: 0x0e, 0x2b6: 0x0e, 0x2b7: 0x8e,
1746 0x2b8: 0x8f, 0x2b9: 0x90, 0x2ba: 0x0e, 0x2bb: 0x91, 0x2bc: 0x92, 0x2bd: 0x93, 0x2bf: 0x94,
1747 // Block 0xb, offset 0x2c0
1748 0x2c4: 0x95, 0x2c5: 0x54, 0x2c6: 0x96, 0x2c7: 0x97,
1749 0x2cb: 0x98, 0x2cd: 0x99,
1750 0x2e0: 0x9a, 0x2e1: 0x9a, 0x2e2: 0x9a, 0x2e3: 0x9a, 0x2e4: 0x9b, 0x2e5: 0x9a, 0x2e6: 0x9a, 0x2e7: 0x9a,
1751 0x2e8: 0x9c, 0x2e9: 0x9a, 0x2ea: 0x9a, 0x2eb: 0x9d, 0x2ec: 0x9e, 0x2ed: 0x9a, 0x2ee: 0x9a, 0x2ef: 0x9a,
1752 0x2f0: 0x9a, 0x2f1: 0x9a, 0x2f2: 0x9a, 0x2f3: 0x9a, 0x2f4: 0x9a, 0x2f5: 0x9a, 0x2f6: 0x9a, 0x2f7: 0x9a,
1753 0x2f8: 0x9a, 0x2f9: 0x9f, 0x2fa: 0x9a, 0x2fb: 0x9a, 0x2fc: 0x9a, 0x2fd: 0x9a, 0x2fe: 0x9a, 0x2ff: 0x9a,
1754 // Block 0xc, offset 0x300
1755 0x300: 0xa0, 0x301: 0xa1, 0x302: 0xa2, 0x304: 0xa3, 0x305: 0xa4, 0x306: 0xa5, 0x307: 0xa6,
1756 0x308: 0xa7, 0x30b: 0xa8, 0x30c: 0xa9, 0x30d: 0xaa,
1757 0x310: 0xab, 0x311: 0xac, 0x312: 0xad, 0x313: 0xae, 0x316: 0xaf, 0x317: 0xb0,
1758 0x318: 0xb1, 0x319: 0xb2, 0x31a: 0xb3, 0x31c: 0xb4,
1759 0x328: 0xb5, 0x329: 0xb6, 0x32a: 0xb7,
1760 0x330: 0xb8, 0x332: 0xb9, 0x334: 0xba, 0x335: 0xbb,
1761 // Block 0xd, offset 0x340
1762 0x36b: 0xbc, 0x36c: 0xbd,
1763 0x37e: 0xbe,
1764 // Block 0xe, offset 0x380
1765 0x3b2: 0xbf,
1766 // Block 0xf, offset 0x3c0
1767 0x3c5: 0xc0, 0x3c6: 0xc1,
1768 0x3c8: 0x54, 0x3c9: 0xc2, 0x3cc: 0x54, 0x3cd: 0xc3,
1769 0x3db: 0xc4, 0x3dc: 0xc5, 0x3dd: 0xc6, 0x3de: 0xc7, 0x3df: 0xc8,
1770 0x3e8: 0xc9, 0x3e9: 0xca, 0x3ea: 0xcb,
1771 // Block 0x10, offset 0x400
1772 0x400: 0xcc,
1773 0x420: 0x9a, 0x421: 0x9a, 0x422: 0x9a, 0x423: 0xcd, 0x424: 0x9a, 0x425: 0xce, 0x426: 0x9a, 0x427: 0x9a,
1774 0x428: 0x9a, 0x429: 0x9a, 0x42a: 0x9a, 0x42b: 0x9a, 0x42c: 0x9a, 0x42d: 0x9a, 0x42e: 0x9a, 0x42f: 0x9a,
1775 0x430: 0x9a, 0x431: 0x9a, 0x432: 0x9a, 0x433: 0x9a, 0x434: 0x9a, 0x435: 0x9a, 0x436: 0x9a, 0x437: 0x9a,
1776 0x438: 0x0e, 0x439: 0x0e, 0x43a: 0x0e, 0x43b: 0xcf, 0x43c: 0x9a, 0x43d: 0x9a, 0x43e: 0x9a, 0x43f: 0x9a,
1777 // Block 0x11, offset 0x440
1778 0x440: 0xd0, 0x441: 0x54, 0x442: 0xd1, 0x443: 0xd2, 0x444: 0xd3, 0x445: 0xd4,
1779 0x449: 0xd5, 0x44c: 0x54, 0x44d: 0x54, 0x44e: 0x54, 0x44f: 0x54,
1780 0x450: 0x54, 0x451: 0x54, 0x452: 0x54, 0x453: 0x54, 0x454: 0x54, 0x455: 0x54, 0x456: 0x54, 0x457: 0x54,
1781 0x458: 0x54, 0x459: 0x54, 0x45a: 0x54, 0x45b: 0xd6, 0x45c: 0x54, 0x45d: 0x6b, 0x45e: 0x54, 0x45f: 0xd7,
1782 0x460: 0xd8, 0x461: 0xd9, 0x462: 0xda, 0x464: 0xdb, 0x465: 0xdc, 0x466: 0xdd, 0x467: 0xde,
1783 0x47f: 0xdf,
1784 // Block 0x12, offset 0x480
1785 0x4bf: 0xdf,
1786 // Block 0x13, offset 0x4c0
1787 0x4d0: 0x09, 0x4d1: 0x0a, 0x4d6: 0x0b,
1788 0x4db: 0x0c, 0x4dd: 0x0d, 0x4de: 0x0e, 0x4df: 0x0f,
1789 0x4ef: 0x10,
1790 0x4ff: 0x10,
1791 // Block 0x14, offset 0x500
1792 0x50f: 0x10,
1793 0x51f: 0x10,
1794 0x52f: 0x10,
1795 0x53f: 0x10,
1796 // Block 0x15, offset 0x540
1797 0x540: 0xe0, 0x541: 0xe0, 0x542: 0xe0, 0x543: 0xe0, 0x544: 0x05, 0x545: 0x05, 0x546: 0x05, 0x547: 0xe1,
1798 0x548: 0xe0, 0x549: 0xe0, 0x54a: 0xe0, 0x54b: 0xe0, 0x54c: 0xe0, 0x54d: 0xe0, 0x54e: 0xe0, 0x54f: 0xe0,
1799 0x550: 0xe0, 0x551: 0xe0, 0x552: 0xe0, 0x553: 0xe0, 0x554: 0xe0, 0x555: 0xe0, 0x556: 0xe0, 0x557: 0xe0,
1800 0x558: 0xe0, 0x559: 0xe0, 0x55a: 0xe0, 0x55b: 0xe0, 0x55c: 0xe0, 0x55d: 0xe0, 0x55e: 0xe0, 0x55f: 0xe0,
1801 0x560: 0xe0, 0x561: 0xe0, 0x562: 0xe0, 0x563: 0xe0, 0x564: 0xe0, 0x565: 0xe0, 0x566: 0xe0, 0x567: 0xe0,
1802 0x568: 0xe0, 0x569: 0xe0, 0x56a: 0xe0, 0x56b: 0xe0, 0x56c: 0xe0, 0x56d: 0xe0, 0x56e: 0xe0, 0x56f: 0xe0,
1803 0x570: 0xe0, 0x571: 0xe0, 0x572: 0xe0, 0x573: 0xe0, 0x574: 0xe0, 0x575: 0xe0, 0x576: 0xe0, 0x577: 0xe0,
1804 0x578: 0xe0, 0x579: 0xe0, 0x57a: 0xe0, 0x57b: 0xe0, 0x57c: 0xe0, 0x57d: 0xe0, 0x57e: 0xe0, 0x57f: 0xe0,
1805 // Block 0x16, offset 0x580
1806 0x58f: 0x10,
1807 0x59f: 0x10,
1808 0x5a0: 0x13,
1809 0x5af: 0x10,
1810 0x5bf: 0x10,
1811 // Block 0x17, offset 0x5c0
1812 0x5cf: 0x10,
1813}
1814
1815// Total table size 16184 bytes (15KiB); checksum: F50EF68C
diff --git a/vendor/golang.org/x/text/unicode/bidi/tables9.0.0.go b/vendor/golang.org/x/text/unicode/bidi/tables9.0.0.go
new file mode 100644
index 0000000..0ca0193
--- /dev/null
+++ b/vendor/golang.org/x/text/unicode/bidi/tables9.0.0.go
@@ -0,0 +1,1781 @@
1// Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT.
2
3// +build !go1.10
4
5package bidi
6
7// UnicodeVersion is the Unicode version from which the tables in this package are derived.
8const UnicodeVersion = "9.0.0"
9
10// xorMasks contains masks to be xor-ed with brackets to get the reverse
11// version.
12var xorMasks = []int32{ // 8 elements
13 0, 1, 6, 7, 3, 15, 29, 63,
14} // Size: 56 bytes
15
16// lookup returns the trie value for the first UTF-8 encoding in s and
17// the width in bytes of this encoding. The size will be 0 if s does not
18// hold enough bytes to complete the encoding. len(s) must be greater than 0.
19func (t *bidiTrie) lookup(s []byte) (v uint8, sz int) {
20 c0 := s[0]
21 switch {
22 case c0 < 0x80: // is ASCII
23 return bidiValues[c0], 1
24 case c0 < 0xC2:
25 return 0, 1 // Illegal UTF-8: not a starter, not ASCII.
26 case c0 < 0xE0: // 2-byte UTF-8
27 if len(s) < 2 {
28 return 0, 0
29 }
30 i := bidiIndex[c0]
31 c1 := s[1]
32 if c1 < 0x80 || 0xC0 <= c1 {
33 return 0, 1 // Illegal UTF-8: not a continuation byte.
34 }
35 return t.lookupValue(uint32(i), c1), 2
36 case c0 < 0xF0: // 3-byte UTF-8
37 if len(s) < 3 {
38 return 0, 0
39 }
40 i := bidiIndex[c0]
41 c1 := s[1]
42 if c1 < 0x80 || 0xC0 <= c1 {
43 return 0, 1 // Illegal UTF-8: not a continuation byte.
44 }
45 o := uint32(i)<<6 + uint32(c1)
46 i = bidiIndex[o]
47 c2 := s[2]
48 if c2 < 0x80 || 0xC0 <= c2 {
49 return 0, 2 // Illegal UTF-8: not a continuation byte.
50 }
51 return t.lookupValue(uint32(i), c2), 3
52 case c0 < 0xF8: // 4-byte UTF-8
53 if len(s) < 4 {
54 return 0, 0
55 }
56 i := bidiIndex[c0]
57 c1 := s[1]
58 if c1 < 0x80 || 0xC0 <= c1 {
59 return 0, 1 // Illegal UTF-8: not a continuation byte.
60 }
61 o := uint32(i)<<6 + uint32(c1)
62 i = bidiIndex[o]
63 c2 := s[2]
64 if c2 < 0x80 || 0xC0 <= c2 {
65 return 0, 2 // Illegal UTF-8: not a continuation byte.
66 }
67 o = uint32(i)<<6 + uint32(c2)
68 i = bidiIndex[o]
69 c3 := s[3]
70 if c3 < 0x80 || 0xC0 <= c3 {
71 return 0, 3 // Illegal UTF-8: not a continuation byte.
72 }
73 return t.lookupValue(uint32(i), c3), 4
74 }
75 // Illegal rune
76 return 0, 1
77}
78
79// lookupUnsafe returns the trie value for the first UTF-8 encoding in s.
80// s must start with a full and valid UTF-8 encoded rune.
81func (t *bidiTrie) lookupUnsafe(s []byte) uint8 {
82 c0 := s[0]
83 if c0 < 0x80 { // is ASCII
84 return bidiValues[c0]
85 }
86 i := bidiIndex[c0]
87 if c0 < 0xE0 { // 2-byte UTF-8
88 return t.lookupValue(uint32(i), s[1])
89 }
90 i = bidiIndex[uint32(i)<<6+uint32(s[1])]
91 if c0 < 0xF0 { // 3-byte UTF-8
92 return t.lookupValue(uint32(i), s[2])
93 }
94 i = bidiIndex[uint32(i)<<6+uint32(s[2])]
95 if c0 < 0xF8 { // 4-byte UTF-8
96 return t.lookupValue(uint32(i), s[3])
97 }
98 return 0
99}
100
101// lookupString returns the trie value for the first UTF-8 encoding in s and
102// the width in bytes of this encoding. The size will be 0 if s does not
103// hold enough bytes to complete the encoding. len(s) must be greater than 0.
104func (t *bidiTrie) lookupString(s string) (v uint8, sz int) {
105 c0 := s[0]
106 switch {
107 case c0 < 0x80: // is ASCII
108 return bidiValues[c0], 1
109 case c0 < 0xC2:
110 return 0, 1 // Illegal UTF-8: not a starter, not ASCII.
111 case c0 < 0xE0: // 2-byte UTF-8
112 if len(s) < 2 {
113 return 0, 0
114 }
115 i := bidiIndex[c0]
116 c1 := s[1]
117 if c1 < 0x80 || 0xC0 <= c1 {
118 return 0, 1 // Illegal UTF-8: not a continuation byte.
119 }
120 return t.lookupValue(uint32(i), c1), 2
121 case c0 < 0xF0: // 3-byte UTF-8
122 if len(s) < 3 {
123 return 0, 0
124 }
125 i := bidiIndex[c0]
126 c1 := s[1]
127 if c1 < 0x80 || 0xC0 <= c1 {
128 return 0, 1 // Illegal UTF-8: not a continuation byte.
129 }
130 o := uint32(i)<<6 + uint32(c1)
131 i = bidiIndex[o]
132 c2 := s[2]
133 if c2 < 0x80 || 0xC0 <= c2 {
134 return 0, 2 // Illegal UTF-8: not a continuation byte.
135 }
136 return t.lookupValue(uint32(i), c2), 3
137 case c0 < 0xF8: // 4-byte UTF-8
138 if len(s) < 4 {
139 return 0, 0
140 }
141 i := bidiIndex[c0]
142 c1 := s[1]
143 if c1 < 0x80 || 0xC0 <= c1 {
144 return 0, 1 // Illegal UTF-8: not a continuation byte.
145 }
146 o := uint32(i)<<6 + uint32(c1)
147 i = bidiIndex[o]
148 c2 := s[2]
149 if c2 < 0x80 || 0xC0 <= c2 {
150 return 0, 2 // Illegal UTF-8: not a continuation byte.
151 }
152 o = uint32(i)<<6 + uint32(c2)
153 i = bidiIndex[o]
154 c3 := s[3]
155 if c3 < 0x80 || 0xC0 <= c3 {
156 return 0, 3 // Illegal UTF-8: not a continuation byte.
157 }
158 return t.lookupValue(uint32(i), c3), 4
159 }
160 // Illegal rune
161 return 0, 1
162}
163
164// lookupStringUnsafe returns the trie value for the first UTF-8 encoding in s.
165// s must start with a full and valid UTF-8 encoded rune.
166func (t *bidiTrie) lookupStringUnsafe(s string) uint8 {
167 c0 := s[0]
168 if c0 < 0x80 { // is ASCII
169 return bidiValues[c0]
170 }
171 i := bidiIndex[c0]
172 if c0 < 0xE0 { // 2-byte UTF-8
173 return t.lookupValue(uint32(i), s[1])
174 }
175 i = bidiIndex[uint32(i)<<6+uint32(s[1])]
176 if c0 < 0xF0 { // 3-byte UTF-8
177 return t.lookupValue(uint32(i), s[2])
178 }
179 i = bidiIndex[uint32(i)<<6+uint32(s[2])]
180 if c0 < 0xF8 { // 4-byte UTF-8
181 return t.lookupValue(uint32(i), s[3])
182 }
183 return 0
184}
185
186// bidiTrie. Total size: 15744 bytes (15.38 KiB). Checksum: b4c3b70954803b86.
187type bidiTrie struct{}
188
189func newBidiTrie(i int) *bidiTrie {
190 return &bidiTrie{}
191}
192
193// lookupValue determines the type of block n and looks up the value for b.
194func (t *bidiTrie) lookupValue(n uint32, b byte) uint8 {
195 switch {
196 default:
197 return uint8(bidiValues[n<<6+uint32(b)])
198 }
199}
200
201// bidiValues: 222 blocks, 14208 entries, 14208 bytes
202// The third block is the zero block.
203var bidiValues = [14208]uint8{
204 // Block 0x0, offset 0x0
205 0x00: 0x000b, 0x01: 0x000b, 0x02: 0x000b, 0x03: 0x000b, 0x04: 0x000b, 0x05: 0x000b,
206 0x06: 0x000b, 0x07: 0x000b, 0x08: 0x000b, 0x09: 0x0008, 0x0a: 0x0007, 0x0b: 0x0008,
207 0x0c: 0x0009, 0x0d: 0x0007, 0x0e: 0x000b, 0x0f: 0x000b, 0x10: 0x000b, 0x11: 0x000b,
208 0x12: 0x000b, 0x13: 0x000b, 0x14: 0x000b, 0x15: 0x000b, 0x16: 0x000b, 0x17: 0x000b,
209 0x18: 0x000b, 0x19: 0x000b, 0x1a: 0x000b, 0x1b: 0x000b, 0x1c: 0x0007, 0x1d: 0x0007,
210 0x1e: 0x0007, 0x1f: 0x0008, 0x20: 0x0009, 0x21: 0x000a, 0x22: 0x000a, 0x23: 0x0004,
211 0x24: 0x0004, 0x25: 0x0004, 0x26: 0x000a, 0x27: 0x000a, 0x28: 0x003a, 0x29: 0x002a,
212 0x2a: 0x000a, 0x2b: 0x0003, 0x2c: 0x0006, 0x2d: 0x0003, 0x2e: 0x0006, 0x2f: 0x0006,
213 0x30: 0x0002, 0x31: 0x0002, 0x32: 0x0002, 0x33: 0x0002, 0x34: 0x0002, 0x35: 0x0002,
214 0x36: 0x0002, 0x37: 0x0002, 0x38: 0x0002, 0x39: 0x0002, 0x3a: 0x0006, 0x3b: 0x000a,
215 0x3c: 0x000a, 0x3d: 0x000a, 0x3e: 0x000a, 0x3f: 0x000a,
216 // Block 0x1, offset 0x40
217 0x40: 0x000a,
218 0x5b: 0x005a, 0x5c: 0x000a, 0x5d: 0x004a,
219 0x5e: 0x000a, 0x5f: 0x000a, 0x60: 0x000a,
220 0x7b: 0x005a,
221 0x7c: 0x000a, 0x7d: 0x004a, 0x7e: 0x000a, 0x7f: 0x000b,
222 // Block 0x2, offset 0x80
223 // Block 0x3, offset 0xc0
224 0xc0: 0x000b, 0xc1: 0x000b, 0xc2: 0x000b, 0xc3: 0x000b, 0xc4: 0x000b, 0xc5: 0x0007,
225 0xc6: 0x000b, 0xc7: 0x000b, 0xc8: 0x000b, 0xc9: 0x000b, 0xca: 0x000b, 0xcb: 0x000b,
226 0xcc: 0x000b, 0xcd: 0x000b, 0xce: 0x000b, 0xcf: 0x000b, 0xd0: 0x000b, 0xd1: 0x000b,
227 0xd2: 0x000b, 0xd3: 0x000b, 0xd4: 0x000b, 0xd5: 0x000b, 0xd6: 0x000b, 0xd7: 0x000b,
228 0xd8: 0x000b, 0xd9: 0x000b, 0xda: 0x000b, 0xdb: 0x000b, 0xdc: 0x000b, 0xdd: 0x000b,
229 0xde: 0x000b, 0xdf: 0x000b, 0xe0: 0x0006, 0xe1: 0x000a, 0xe2: 0x0004, 0xe3: 0x0004,
230 0xe4: 0x0004, 0xe5: 0x0004, 0xe6: 0x000a, 0xe7: 0x000a, 0xe8: 0x000a, 0xe9: 0x000a,
231 0xeb: 0x000a, 0xec: 0x000a, 0xed: 0x000b, 0xee: 0x000a, 0xef: 0x000a,
232 0xf0: 0x0004, 0xf1: 0x0004, 0xf2: 0x0002, 0xf3: 0x0002, 0xf4: 0x000a,
233 0xf6: 0x000a, 0xf7: 0x000a, 0xf8: 0x000a, 0xf9: 0x0002, 0xfb: 0x000a,
234 0xfc: 0x000a, 0xfd: 0x000a, 0xfe: 0x000a, 0xff: 0x000a,
235 // Block 0x4, offset 0x100
236 0x117: 0x000a,
237 0x137: 0x000a,
238 // Block 0x5, offset 0x140
239 0x179: 0x000a, 0x17a: 0x000a,
240 // Block 0x6, offset 0x180
241 0x182: 0x000a, 0x183: 0x000a, 0x184: 0x000a, 0x185: 0x000a,
242 0x186: 0x000a, 0x187: 0x000a, 0x188: 0x000a, 0x189: 0x000a, 0x18a: 0x000a, 0x18b: 0x000a,
243 0x18c: 0x000a, 0x18d: 0x000a, 0x18e: 0x000a, 0x18f: 0x000a,
244 0x192: 0x000a, 0x193: 0x000a, 0x194: 0x000a, 0x195: 0x000a, 0x196: 0x000a, 0x197: 0x000a,
245 0x198: 0x000a, 0x199: 0x000a, 0x19a: 0x000a, 0x19b: 0x000a, 0x19c: 0x000a, 0x19d: 0x000a,
246 0x19e: 0x000a, 0x19f: 0x000a,
247 0x1a5: 0x000a, 0x1a6: 0x000a, 0x1a7: 0x000a, 0x1a8: 0x000a, 0x1a9: 0x000a,
248 0x1aa: 0x000a, 0x1ab: 0x000a, 0x1ac: 0x000a, 0x1ad: 0x000a, 0x1af: 0x000a,
249 0x1b0: 0x000a, 0x1b1: 0x000a, 0x1b2: 0x000a, 0x1b3: 0x000a, 0x1b4: 0x000a, 0x1b5: 0x000a,
250 0x1b6: 0x000a, 0x1b7: 0x000a, 0x1b8: 0x000a, 0x1b9: 0x000a, 0x1ba: 0x000a, 0x1bb: 0x000a,
251 0x1bc: 0x000a, 0x1bd: 0x000a, 0x1be: 0x000a, 0x1bf: 0x000a,
252 // Block 0x7, offset 0x1c0
253 0x1c0: 0x000c, 0x1c1: 0x000c, 0x1c2: 0x000c, 0x1c3: 0x000c, 0x1c4: 0x000c, 0x1c5: 0x000c,
254 0x1c6: 0x000c, 0x1c7: 0x000c, 0x1c8: 0x000c, 0x1c9: 0x000c, 0x1ca: 0x000c, 0x1cb: 0x000c,
255 0x1cc: 0x000c, 0x1cd: 0x000c, 0x1ce: 0x000c, 0x1cf: 0x000c, 0x1d0: 0x000c, 0x1d1: 0x000c,
256 0x1d2: 0x000c, 0x1d3: 0x000c, 0x1d4: 0x000c, 0x1d5: 0x000c, 0x1d6: 0x000c, 0x1d7: 0x000c,
257 0x1d8: 0x000c, 0x1d9: 0x000c, 0x1da: 0x000c, 0x1db: 0x000c, 0x1dc: 0x000c, 0x1dd: 0x000c,
258 0x1de: 0x000c, 0x1df: 0x000c, 0x1e0: 0x000c, 0x1e1: 0x000c, 0x1e2: 0x000c, 0x1e3: 0x000c,
259 0x1e4: 0x000c, 0x1e5: 0x000c, 0x1e6: 0x000c, 0x1e7: 0x000c, 0x1e8: 0x000c, 0x1e9: 0x000c,
260 0x1ea: 0x000c, 0x1eb: 0x000c, 0x1ec: 0x000c, 0x1ed: 0x000c, 0x1ee: 0x000c, 0x1ef: 0x000c,
261 0x1f0: 0x000c, 0x1f1: 0x000c, 0x1f2: 0x000c, 0x1f3: 0x000c, 0x1f4: 0x000c, 0x1f5: 0x000c,
262 0x1f6: 0x000c, 0x1f7: 0x000c, 0x1f8: 0x000c, 0x1f9: 0x000c, 0x1fa: 0x000c, 0x1fb: 0x000c,
263 0x1fc: 0x000c, 0x1fd: 0x000c, 0x1fe: 0x000c, 0x1ff: 0x000c,
264 // Block 0x8, offset 0x200
265 0x200: 0x000c, 0x201: 0x000c, 0x202: 0x000c, 0x203: 0x000c, 0x204: 0x000c, 0x205: 0x000c,
266 0x206: 0x000c, 0x207: 0x000c, 0x208: 0x000c, 0x209: 0x000c, 0x20a: 0x000c, 0x20b: 0x000c,
267 0x20c: 0x000c, 0x20d: 0x000c, 0x20e: 0x000c, 0x20f: 0x000c, 0x210: 0x000c, 0x211: 0x000c,
268 0x212: 0x000c, 0x213: 0x000c, 0x214: 0x000c, 0x215: 0x000c, 0x216: 0x000c, 0x217: 0x000c,
269 0x218: 0x000c, 0x219: 0x000c, 0x21a: 0x000c, 0x21b: 0x000c, 0x21c: 0x000c, 0x21d: 0x000c,
270 0x21e: 0x000c, 0x21f: 0x000c, 0x220: 0x000c, 0x221: 0x000c, 0x222: 0x000c, 0x223: 0x000c,
271 0x224: 0x000c, 0x225: 0x000c, 0x226: 0x000c, 0x227: 0x000c, 0x228: 0x000c, 0x229: 0x000c,
272 0x22a: 0x000c, 0x22b: 0x000c, 0x22c: 0x000c, 0x22d: 0x000c, 0x22e: 0x000c, 0x22f: 0x000c,
273 0x234: 0x000a, 0x235: 0x000a,
274 0x23e: 0x000a,
275 // Block 0x9, offset 0x240
276 0x244: 0x000a, 0x245: 0x000a,
277 0x247: 0x000a,
278 // Block 0xa, offset 0x280
279 0x2b6: 0x000a,
280 // Block 0xb, offset 0x2c0
281 0x2c3: 0x000c, 0x2c4: 0x000c, 0x2c5: 0x000c,
282 0x2c6: 0x000c, 0x2c7: 0x000c, 0x2c8: 0x000c, 0x2c9: 0x000c,
283 // Block 0xc, offset 0x300
284 0x30a: 0x000a,
285 0x30d: 0x000a, 0x30e: 0x000a, 0x30f: 0x0004, 0x310: 0x0001, 0x311: 0x000c,
286 0x312: 0x000c, 0x313: 0x000c, 0x314: 0x000c, 0x315: 0x000c, 0x316: 0x000c, 0x317: 0x000c,
287 0x318: 0x000c, 0x319: 0x000c, 0x31a: 0x000c, 0x31b: 0x000c, 0x31c: 0x000c, 0x31d: 0x000c,
288 0x31e: 0x000c, 0x31f: 0x000c, 0x320: 0x000c, 0x321: 0x000c, 0x322: 0x000c, 0x323: 0x000c,
289 0x324: 0x000c, 0x325: 0x000c, 0x326: 0x000c, 0x327: 0x000c, 0x328: 0x000c, 0x329: 0x000c,
290 0x32a: 0x000c, 0x32b: 0x000c, 0x32c: 0x000c, 0x32d: 0x000c, 0x32e: 0x000c, 0x32f: 0x000c,
291 0x330: 0x000c, 0x331: 0x000c, 0x332: 0x000c, 0x333: 0x000c, 0x334: 0x000c, 0x335: 0x000c,
292 0x336: 0x000c, 0x337: 0x000c, 0x338: 0x000c, 0x339: 0x000c, 0x33a: 0x000c, 0x33b: 0x000c,
293 0x33c: 0x000c, 0x33d: 0x000c, 0x33e: 0x0001, 0x33f: 0x000c,
294 // Block 0xd, offset 0x340
295 0x340: 0x0001, 0x341: 0x000c, 0x342: 0x000c, 0x343: 0x0001, 0x344: 0x000c, 0x345: 0x000c,
296 0x346: 0x0001, 0x347: 0x000c, 0x348: 0x0001, 0x349: 0x0001, 0x34a: 0x0001, 0x34b: 0x0001,
297 0x34c: 0x0001, 0x34d: 0x0001, 0x34e: 0x0001, 0x34f: 0x0001, 0x350: 0x0001, 0x351: 0x0001,
298 0x352: 0x0001, 0x353: 0x0001, 0x354: 0x0001, 0x355: 0x0001, 0x356: 0x0001, 0x357: 0x0001,
299 0x358: 0x0001, 0x359: 0x0001, 0x35a: 0x0001, 0x35b: 0x0001, 0x35c: 0x0001, 0x35d: 0x0001,
300 0x35e: 0x0001, 0x35f: 0x0001, 0x360: 0x0001, 0x361: 0x0001, 0x362: 0x0001, 0x363: 0x0001,
301 0x364: 0x0001, 0x365: 0x0001, 0x366: 0x0001, 0x367: 0x0001, 0x368: 0x0001, 0x369: 0x0001,
302 0x36a: 0x0001, 0x36b: 0x0001, 0x36c: 0x0001, 0x36d: 0x0001, 0x36e: 0x0001, 0x36f: 0x0001,
303 0x370: 0x0001, 0x371: 0x0001, 0x372: 0x0001, 0x373: 0x0001, 0x374: 0x0001, 0x375: 0x0001,
304 0x376: 0x0001, 0x377: 0x0001, 0x378: 0x0001, 0x379: 0x0001, 0x37a: 0x0001, 0x37b: 0x0001,
305 0x37c: 0x0001, 0x37d: 0x0001, 0x37e: 0x0001, 0x37f: 0x0001,
306 // Block 0xe, offset 0x380
307 0x380: 0x0005, 0x381: 0x0005, 0x382: 0x0005, 0x383: 0x0005, 0x384: 0x0005, 0x385: 0x0005,
308 0x386: 0x000a, 0x387: 0x000a, 0x388: 0x000d, 0x389: 0x0004, 0x38a: 0x0004, 0x38b: 0x000d,
309 0x38c: 0x0006, 0x38d: 0x000d, 0x38e: 0x000a, 0x38f: 0x000a, 0x390: 0x000c, 0x391: 0x000c,
310 0x392: 0x000c, 0x393: 0x000c, 0x394: 0x000c, 0x395: 0x000c, 0x396: 0x000c, 0x397: 0x000c,
311 0x398: 0x000c, 0x399: 0x000c, 0x39a: 0x000c, 0x39b: 0x000d, 0x39c: 0x000d, 0x39d: 0x000d,
312 0x39e: 0x000d, 0x39f: 0x000d, 0x3a0: 0x000d, 0x3a1: 0x000d, 0x3a2: 0x000d, 0x3a3: 0x000d,
313 0x3a4: 0x000d, 0x3a5: 0x000d, 0x3a6: 0x000d, 0x3a7: 0x000d, 0x3a8: 0x000d, 0x3a9: 0x000d,
314 0x3aa: 0x000d, 0x3ab: 0x000d, 0x3ac: 0x000d, 0x3ad: 0x000d, 0x3ae: 0x000d, 0x3af: 0x000d,
315 0x3b0: 0x000d, 0x3b1: 0x000d, 0x3b2: 0x000d, 0x3b3: 0x000d, 0x3b4: 0x000d, 0x3b5: 0x000d,
316 0x3b6: 0x000d, 0x3b7: 0x000d, 0x3b8: 0x000d, 0x3b9: 0x000d, 0x3ba: 0x000d, 0x3bb: 0x000d,
317 0x3bc: 0x000d, 0x3bd: 0x000d, 0x3be: 0x000d, 0x3bf: 0x000d,
318 // Block 0xf, offset 0x3c0
319 0x3c0: 0x000d, 0x3c1: 0x000d, 0x3c2: 0x000d, 0x3c3: 0x000d, 0x3c4: 0x000d, 0x3c5: 0x000d,
320 0x3c6: 0x000d, 0x3c7: 0x000d, 0x3c8: 0x000d, 0x3c9: 0x000d, 0x3ca: 0x000d, 0x3cb: 0x000c,
321 0x3cc: 0x000c, 0x3cd: 0x000c, 0x3ce: 0x000c, 0x3cf: 0x000c, 0x3d0: 0x000c, 0x3d1: 0x000c,
322 0x3d2: 0x000c, 0x3d3: 0x000c, 0x3d4: 0x000c, 0x3d5: 0x000c, 0x3d6: 0x000c, 0x3d7: 0x000c,
323 0x3d8: 0x000c, 0x3d9: 0x000c, 0x3da: 0x000c, 0x3db: 0x000c, 0x3dc: 0x000c, 0x3dd: 0x000c,
324 0x3de: 0x000c, 0x3df: 0x000c, 0x3e0: 0x0005, 0x3e1: 0x0005, 0x3e2: 0x0005, 0x3e3: 0x0005,
325 0x3e4: 0x0005, 0x3e5: 0x0005, 0x3e6: 0x0005, 0x3e7: 0x0005, 0x3e8: 0x0005, 0x3e9: 0x0005,
326 0x3ea: 0x0004, 0x3eb: 0x0005, 0x3ec: 0x0005, 0x3ed: 0x000d, 0x3ee: 0x000d, 0x3ef: 0x000d,
327 0x3f0: 0x000c, 0x3f1: 0x000d, 0x3f2: 0x000d, 0x3f3: 0x000d, 0x3f4: 0x000d, 0x3f5: 0x000d,
328 0x3f6: 0x000d, 0x3f7: 0x000d, 0x3f8: 0x000d, 0x3f9: 0x000d, 0x3fa: 0x000d, 0x3fb: 0x000d,
329 0x3fc: 0x000d, 0x3fd: 0x000d, 0x3fe: 0x000d, 0x3ff: 0x000d,
330 // Block 0x10, offset 0x400
331 0x400: 0x000d, 0x401: 0x000d, 0x402: 0x000d, 0x403: 0x000d, 0x404: 0x000d, 0x405: 0x000d,
332 0x406: 0x000d, 0x407: 0x000d, 0x408: 0x000d, 0x409: 0x000d, 0x40a: 0x000d, 0x40b: 0x000d,
333 0x40c: 0x000d, 0x40d: 0x000d, 0x40e: 0x000d, 0x40f: 0x000d, 0x410: 0x000d, 0x411: 0x000d,
334 0x412: 0x000d, 0x413: 0x000d, 0x414: 0x000d, 0x415: 0x000d, 0x416: 0x000d, 0x417: 0x000d,
335 0x418: 0x000d, 0x419: 0x000d, 0x41a: 0x000d, 0x41b: 0x000d, 0x41c: 0x000d, 0x41d: 0x000d,
336 0x41e: 0x000d, 0x41f: 0x000d, 0x420: 0x000d, 0x421: 0x000d, 0x422: 0x000d, 0x423: 0x000d,
337 0x424: 0x000d, 0x425: 0x000d, 0x426: 0x000d, 0x427: 0x000d, 0x428: 0x000d, 0x429: 0x000d,
338 0x42a: 0x000d, 0x42b: 0x000d, 0x42c: 0x000d, 0x42d: 0x000d, 0x42e: 0x000d, 0x42f: 0x000d,
339 0x430: 0x000d, 0x431: 0x000d, 0x432: 0x000d, 0x433: 0x000d, 0x434: 0x000d, 0x435: 0x000d,
340 0x436: 0x000d, 0x437: 0x000d, 0x438: 0x000d, 0x439: 0x000d, 0x43a: 0x000d, 0x43b: 0x000d,
341 0x43c: 0x000d, 0x43d: 0x000d, 0x43e: 0x000d, 0x43f: 0x000d,
342 // Block 0x11, offset 0x440
343 0x440: 0x000d, 0x441: 0x000d, 0x442: 0x000d, 0x443: 0x000d, 0x444: 0x000d, 0x445: 0x000d,
344 0x446: 0x000d, 0x447: 0x000d, 0x448: 0x000d, 0x449: 0x000d, 0x44a: 0x000d, 0x44b: 0x000d,
345 0x44c: 0x000d, 0x44d: 0x000d, 0x44e: 0x000d, 0x44f: 0x000d, 0x450: 0x000d, 0x451: 0x000d,
346 0x452: 0x000d, 0x453: 0x000d, 0x454: 0x000d, 0x455: 0x000d, 0x456: 0x000c, 0x457: 0x000c,
347 0x458: 0x000c, 0x459: 0x000c, 0x45a: 0x000c, 0x45b: 0x000c, 0x45c: 0x000c, 0x45d: 0x0005,
348 0x45e: 0x000a, 0x45f: 0x000c, 0x460: 0x000c, 0x461: 0x000c, 0x462: 0x000c, 0x463: 0x000c,
349 0x464: 0x000c, 0x465: 0x000d, 0x466: 0x000d, 0x467: 0x000c, 0x468: 0x000c, 0x469: 0x000a,
350 0x46a: 0x000c, 0x46b: 0x000c, 0x46c: 0x000c, 0x46d: 0x000c, 0x46e: 0x000d, 0x46f: 0x000d,
351 0x470: 0x0002, 0x471: 0x0002, 0x472: 0x0002, 0x473: 0x0002, 0x474: 0x0002, 0x475: 0x0002,
352 0x476: 0x0002, 0x477: 0x0002, 0x478: 0x0002, 0x479: 0x0002, 0x47a: 0x000d, 0x47b: 0x000d,
353 0x47c: 0x000d, 0x47d: 0x000d, 0x47e: 0x000d, 0x47f: 0x000d,
354 // Block 0x12, offset 0x480
355 0x480: 0x000d, 0x481: 0x000d, 0x482: 0x000d, 0x483: 0x000d, 0x484: 0x000d, 0x485: 0x000d,
356 0x486: 0x000d, 0x487: 0x000d, 0x488: 0x000d, 0x489: 0x000d, 0x48a: 0x000d, 0x48b: 0x000d,
357 0x48c: 0x000d, 0x48d: 0x000d, 0x48e: 0x000d, 0x48f: 0x000d, 0x490: 0x000d, 0x491: 0x000c,
358 0x492: 0x000d, 0x493: 0x000d, 0x494: 0x000d, 0x495: 0x000d, 0x496: 0x000d, 0x497: 0x000d,
359 0x498: 0x000d, 0x499: 0x000d, 0x49a: 0x000d, 0x49b: 0x000d, 0x49c: 0x000d, 0x49d: 0x000d,
360 0x49e: 0x000d, 0x49f: 0x000d, 0x4a0: 0x000d, 0x4a1: 0x000d, 0x4a2: 0x000d, 0x4a3: 0x000d,
361 0x4a4: 0x000d, 0x4a5: 0x000d, 0x4a6: 0x000d, 0x4a7: 0x000d, 0x4a8: 0x000d, 0x4a9: 0x000d,
362 0x4aa: 0x000d, 0x4ab: 0x000d, 0x4ac: 0x000d, 0x4ad: 0x000d, 0x4ae: 0x000d, 0x4af: 0x000d,
363 0x4b0: 0x000c, 0x4b1: 0x000c, 0x4b2: 0x000c, 0x4b3: 0x000c, 0x4b4: 0x000c, 0x4b5: 0x000c,
364 0x4b6: 0x000c, 0x4b7: 0x000c, 0x4b8: 0x000c, 0x4b9: 0x000c, 0x4ba: 0x000c, 0x4bb: 0x000c,
365 0x4bc: 0x000c, 0x4bd: 0x000c, 0x4be: 0x000c, 0x4bf: 0x000c,
366 // Block 0x13, offset 0x4c0
367 0x4c0: 0x000c, 0x4c1: 0x000c, 0x4c2: 0x000c, 0x4c3: 0x000c, 0x4c4: 0x000c, 0x4c5: 0x000c,
368 0x4c6: 0x000c, 0x4c7: 0x000c, 0x4c8: 0x000c, 0x4c9: 0x000c, 0x4ca: 0x000c, 0x4cb: 0x000d,
369 0x4cc: 0x000d, 0x4cd: 0x000d, 0x4ce: 0x000d, 0x4cf: 0x000d, 0x4d0: 0x000d, 0x4d1: 0x000d,
370 0x4d2: 0x000d, 0x4d3: 0x000d, 0x4d4: 0x000d, 0x4d5: 0x000d, 0x4d6: 0x000d, 0x4d7: 0x000d,
371 0x4d8: 0x000d, 0x4d9: 0x000d, 0x4da: 0x000d, 0x4db: 0x000d, 0x4dc: 0x000d, 0x4dd: 0x000d,
372 0x4de: 0x000d, 0x4df: 0x000d, 0x4e0: 0x000d, 0x4e1: 0x000d, 0x4e2: 0x000d, 0x4e3: 0x000d,
373 0x4e4: 0x000d, 0x4e5: 0x000d, 0x4e6: 0x000d, 0x4e7: 0x000d, 0x4e8: 0x000d, 0x4e9: 0x000d,
374 0x4ea: 0x000d, 0x4eb: 0x000d, 0x4ec: 0x000d, 0x4ed: 0x000d, 0x4ee: 0x000d, 0x4ef: 0x000d,
375 0x4f0: 0x000d, 0x4f1: 0x000d, 0x4f2: 0x000d, 0x4f3: 0x000d, 0x4f4: 0x000d, 0x4f5: 0x000d,
376 0x4f6: 0x000d, 0x4f7: 0x000d, 0x4f8: 0x000d, 0x4f9: 0x000d, 0x4fa: 0x000d, 0x4fb: 0x000d,
377 0x4fc: 0x000d, 0x4fd: 0x000d, 0x4fe: 0x000d, 0x4ff: 0x000d,
378 // Block 0x14, offset 0x500
379 0x500: 0x000d, 0x501: 0x000d, 0x502: 0x000d, 0x503: 0x000d, 0x504: 0x000d, 0x505: 0x000d,
380 0x506: 0x000d, 0x507: 0x000d, 0x508: 0x000d, 0x509: 0x000d, 0x50a: 0x000d, 0x50b: 0x000d,
381 0x50c: 0x000d, 0x50d: 0x000d, 0x50e: 0x000d, 0x50f: 0x000d, 0x510: 0x000d, 0x511: 0x000d,
382 0x512: 0x000d, 0x513: 0x000d, 0x514: 0x000d, 0x515: 0x000d, 0x516: 0x000d, 0x517: 0x000d,
383 0x518: 0x000d, 0x519: 0x000d, 0x51a: 0x000d, 0x51b: 0x000d, 0x51c: 0x000d, 0x51d: 0x000d,
384 0x51e: 0x000d, 0x51f: 0x000d, 0x520: 0x000d, 0x521: 0x000d, 0x522: 0x000d, 0x523: 0x000d,
385 0x524: 0x000d, 0x525: 0x000d, 0x526: 0x000c, 0x527: 0x000c, 0x528: 0x000c, 0x529: 0x000c,
386 0x52a: 0x000c, 0x52b: 0x000c, 0x52c: 0x000c, 0x52d: 0x000c, 0x52e: 0x000c, 0x52f: 0x000c,
387 0x530: 0x000c, 0x531: 0x000d, 0x532: 0x000d, 0x533: 0x000d, 0x534: 0x000d, 0x535: 0x000d,
388 0x536: 0x000d, 0x537: 0x000d, 0x538: 0x000d, 0x539: 0x000d, 0x53a: 0x000d, 0x53b: 0x000d,
389 0x53c: 0x000d, 0x53d: 0x000d, 0x53e: 0x000d, 0x53f: 0x000d,
390 // Block 0x15, offset 0x540
391 0x540: 0x0001, 0x541: 0x0001, 0x542: 0x0001, 0x543: 0x0001, 0x544: 0x0001, 0x545: 0x0001,
392 0x546: 0x0001, 0x547: 0x0001, 0x548: 0x0001, 0x549: 0x0001, 0x54a: 0x0001, 0x54b: 0x0001,
393 0x54c: 0x0001, 0x54d: 0x0001, 0x54e: 0x0001, 0x54f: 0x0001, 0x550: 0x0001, 0x551: 0x0001,
394 0x552: 0x0001, 0x553: 0x0001, 0x554: 0x0001, 0x555: 0x0001, 0x556: 0x0001, 0x557: 0x0001,
395 0x558: 0x0001, 0x559: 0x0001, 0x55a: 0x0001, 0x55b: 0x0001, 0x55c: 0x0001, 0x55d: 0x0001,
396 0x55e: 0x0001, 0x55f: 0x0001, 0x560: 0x0001, 0x561: 0x0001, 0x562: 0x0001, 0x563: 0x0001,
397 0x564: 0x0001, 0x565: 0x0001, 0x566: 0x0001, 0x567: 0x0001, 0x568: 0x0001, 0x569: 0x0001,
398 0x56a: 0x0001, 0x56b: 0x000c, 0x56c: 0x000c, 0x56d: 0x000c, 0x56e: 0x000c, 0x56f: 0x000c,
399 0x570: 0x000c, 0x571: 0x000c, 0x572: 0x000c, 0x573: 0x000c, 0x574: 0x0001, 0x575: 0x0001,
400 0x576: 0x000a, 0x577: 0x000a, 0x578: 0x000a, 0x579: 0x000a, 0x57a: 0x0001, 0x57b: 0x0001,
401 0x57c: 0x0001, 0x57d: 0x0001, 0x57e: 0x0001, 0x57f: 0x0001,
402 // Block 0x16, offset 0x580
403 0x580: 0x0001, 0x581: 0x0001, 0x582: 0x0001, 0x583: 0x0001, 0x584: 0x0001, 0x585: 0x0001,
404 0x586: 0x0001, 0x587: 0x0001, 0x588: 0x0001, 0x589: 0x0001, 0x58a: 0x0001, 0x58b: 0x0001,
405 0x58c: 0x0001, 0x58d: 0x0001, 0x58e: 0x0001, 0x58f: 0x0001, 0x590: 0x0001, 0x591: 0x0001,
406 0x592: 0x0001, 0x593: 0x0001, 0x594: 0x0001, 0x595: 0x0001, 0x596: 0x000c, 0x597: 0x000c,
407 0x598: 0x000c, 0x599: 0x000c, 0x59a: 0x0001, 0x59b: 0x000c, 0x59c: 0x000c, 0x59d: 0x000c,
408 0x59e: 0x000c, 0x59f: 0x000c, 0x5a0: 0x000c, 0x5a1: 0x000c, 0x5a2: 0x000c, 0x5a3: 0x000c,
409 0x5a4: 0x0001, 0x5a5: 0x000c, 0x5a6: 0x000c, 0x5a7: 0x000c, 0x5a8: 0x0001, 0x5a9: 0x000c,
410 0x5aa: 0x000c, 0x5ab: 0x000c, 0x5ac: 0x000c, 0x5ad: 0x000c, 0x5ae: 0x0001, 0x5af: 0x0001,
411 0x5b0: 0x0001, 0x5b1: 0x0001, 0x5b2: 0x0001, 0x5b3: 0x0001, 0x5b4: 0x0001, 0x5b5: 0x0001,
412 0x5b6: 0x0001, 0x5b7: 0x0001, 0x5b8: 0x0001, 0x5b9: 0x0001, 0x5ba: 0x0001, 0x5bb: 0x0001,
413 0x5bc: 0x0001, 0x5bd: 0x0001, 0x5be: 0x0001, 0x5bf: 0x0001,
414 // Block 0x17, offset 0x5c0
415 0x5c0: 0x0001, 0x5c1: 0x0001, 0x5c2: 0x0001, 0x5c3: 0x0001, 0x5c4: 0x0001, 0x5c5: 0x0001,
416 0x5c6: 0x0001, 0x5c7: 0x0001, 0x5c8: 0x0001, 0x5c9: 0x0001, 0x5ca: 0x0001, 0x5cb: 0x0001,
417 0x5cc: 0x0001, 0x5cd: 0x0001, 0x5ce: 0x0001, 0x5cf: 0x0001, 0x5d0: 0x0001, 0x5d1: 0x0001,
418 0x5d2: 0x0001, 0x5d3: 0x0001, 0x5d4: 0x0001, 0x5d5: 0x0001, 0x5d6: 0x0001, 0x5d7: 0x0001,
419 0x5d8: 0x0001, 0x5d9: 0x000c, 0x5da: 0x000c, 0x5db: 0x000c, 0x5dc: 0x0001, 0x5dd: 0x0001,
420 0x5de: 0x0001, 0x5df: 0x0001, 0x5e0: 0x0001, 0x5e1: 0x0001, 0x5e2: 0x0001, 0x5e3: 0x0001,
421 0x5e4: 0x0001, 0x5e5: 0x0001, 0x5e6: 0x0001, 0x5e7: 0x0001, 0x5e8: 0x0001, 0x5e9: 0x0001,
422 0x5ea: 0x0001, 0x5eb: 0x0001, 0x5ec: 0x0001, 0x5ed: 0x0001, 0x5ee: 0x0001, 0x5ef: 0x0001,
423 0x5f0: 0x0001, 0x5f1: 0x0001, 0x5f2: 0x0001, 0x5f3: 0x0001, 0x5f4: 0x0001, 0x5f5: 0x0001,
424 0x5f6: 0x0001, 0x5f7: 0x0001, 0x5f8: 0x0001, 0x5f9: 0x0001, 0x5fa: 0x0001, 0x5fb: 0x0001,
425 0x5fc: 0x0001, 0x5fd: 0x0001, 0x5fe: 0x0001, 0x5ff: 0x0001,
426 // Block 0x18, offset 0x600
427 0x600: 0x0001, 0x601: 0x0001, 0x602: 0x0001, 0x603: 0x0001, 0x604: 0x0001, 0x605: 0x0001,
428 0x606: 0x0001, 0x607: 0x0001, 0x608: 0x0001, 0x609: 0x0001, 0x60a: 0x0001, 0x60b: 0x0001,
429 0x60c: 0x0001, 0x60d: 0x0001, 0x60e: 0x0001, 0x60f: 0x0001, 0x610: 0x0001, 0x611: 0x0001,
430 0x612: 0x0001, 0x613: 0x0001, 0x614: 0x0001, 0x615: 0x0001, 0x616: 0x0001, 0x617: 0x0001,
431 0x618: 0x0001, 0x619: 0x0001, 0x61a: 0x0001, 0x61b: 0x0001, 0x61c: 0x0001, 0x61d: 0x0001,
432 0x61e: 0x0001, 0x61f: 0x0001, 0x620: 0x000d, 0x621: 0x000d, 0x622: 0x000d, 0x623: 0x000d,
433 0x624: 0x000d, 0x625: 0x000d, 0x626: 0x000d, 0x627: 0x000d, 0x628: 0x000d, 0x629: 0x000d,
434 0x62a: 0x000d, 0x62b: 0x000d, 0x62c: 0x000d, 0x62d: 0x000d, 0x62e: 0x000d, 0x62f: 0x000d,
435 0x630: 0x000d, 0x631: 0x000d, 0x632: 0x000d, 0x633: 0x000d, 0x634: 0x000d, 0x635: 0x000d,
436 0x636: 0x000d, 0x637: 0x000d, 0x638: 0x000d, 0x639: 0x000d, 0x63a: 0x000d, 0x63b: 0x000d,
437 0x63c: 0x000d, 0x63d: 0x000d, 0x63e: 0x000d, 0x63f: 0x000d,
438 // Block 0x19, offset 0x640
439 0x640: 0x000d, 0x641: 0x000d, 0x642: 0x000d, 0x643: 0x000d, 0x644: 0x000d, 0x645: 0x000d,
440 0x646: 0x000d, 0x647: 0x000d, 0x648: 0x000d, 0x649: 0x000d, 0x64a: 0x000d, 0x64b: 0x000d,
441 0x64c: 0x000d, 0x64d: 0x000d, 0x64e: 0x000d, 0x64f: 0x000d, 0x650: 0x000d, 0x651: 0x000d,
442 0x652: 0x000d, 0x653: 0x000d, 0x654: 0x000c, 0x655: 0x000c, 0x656: 0x000c, 0x657: 0x000c,
443 0x658: 0x000c, 0x659: 0x000c, 0x65a: 0x000c, 0x65b: 0x000c, 0x65c: 0x000c, 0x65d: 0x000c,
444 0x65e: 0x000c, 0x65f: 0x000c, 0x660: 0x000c, 0x661: 0x000c, 0x662: 0x0005, 0x663: 0x000c,
445 0x664: 0x000c, 0x665: 0x000c, 0x666: 0x000c, 0x667: 0x000c, 0x668: 0x000c, 0x669: 0x000c,
446 0x66a: 0x000c, 0x66b: 0x000c, 0x66c: 0x000c, 0x66d: 0x000c, 0x66e: 0x000c, 0x66f: 0x000c,
447 0x670: 0x000c, 0x671: 0x000c, 0x672: 0x000c, 0x673: 0x000c, 0x674: 0x000c, 0x675: 0x000c,
448 0x676: 0x000c, 0x677: 0x000c, 0x678: 0x000c, 0x679: 0x000c, 0x67a: 0x000c, 0x67b: 0x000c,
449 0x67c: 0x000c, 0x67d: 0x000c, 0x67e: 0x000c, 0x67f: 0x000c,
450 // Block 0x1a, offset 0x680
451 0x680: 0x000c, 0x681: 0x000c, 0x682: 0x000c,
452 0x6ba: 0x000c,
453 0x6bc: 0x000c,
454 // Block 0x1b, offset 0x6c0
455 0x6c1: 0x000c, 0x6c2: 0x000c, 0x6c3: 0x000c, 0x6c4: 0x000c, 0x6c5: 0x000c,
456 0x6c6: 0x000c, 0x6c7: 0x000c, 0x6c8: 0x000c,
457 0x6cd: 0x000c, 0x6d1: 0x000c,
458 0x6d2: 0x000c, 0x6d3: 0x000c, 0x6d4: 0x000c, 0x6d5: 0x000c, 0x6d6: 0x000c, 0x6d7: 0x000c,
459 0x6e2: 0x000c, 0x6e3: 0x000c,
460 // Block 0x1c, offset 0x700
461 0x701: 0x000c,
462 0x73c: 0x000c,
463 // Block 0x1d, offset 0x740
464 0x741: 0x000c, 0x742: 0x000c, 0x743: 0x000c, 0x744: 0x000c,
465 0x74d: 0x000c,
466 0x762: 0x000c, 0x763: 0x000c,
467 0x772: 0x0004, 0x773: 0x0004,
468 0x77b: 0x0004,
469 // Block 0x1e, offset 0x780
470 0x781: 0x000c, 0x782: 0x000c,
471 0x7bc: 0x000c,
472 // Block 0x1f, offset 0x7c0
473 0x7c1: 0x000c, 0x7c2: 0x000c,
474 0x7c7: 0x000c, 0x7c8: 0x000c, 0x7cb: 0x000c,
475 0x7cc: 0x000c, 0x7cd: 0x000c, 0x7d1: 0x000c,
476 0x7f0: 0x000c, 0x7f1: 0x000c, 0x7f5: 0x000c,
477 // Block 0x20, offset 0x800
478 0x801: 0x000c, 0x802: 0x000c, 0x803: 0x000c, 0x804: 0x000c, 0x805: 0x000c,
479 0x807: 0x000c, 0x808: 0x000c,
480 0x80d: 0x000c,
481 0x822: 0x000c, 0x823: 0x000c,
482 0x831: 0x0004,
483 // Block 0x21, offset 0x840
484 0x841: 0x000c,
485 0x87c: 0x000c, 0x87f: 0x000c,
486 // Block 0x22, offset 0x880
487 0x881: 0x000c, 0x882: 0x000c, 0x883: 0x000c, 0x884: 0x000c,
488 0x88d: 0x000c,
489 0x896: 0x000c,
490 0x8a2: 0x000c, 0x8a3: 0x000c,
491 // Block 0x23, offset 0x8c0
492 0x8c2: 0x000c,
493 // Block 0x24, offset 0x900
494 0x900: 0x000c,
495 0x90d: 0x000c,
496 0x933: 0x000a, 0x934: 0x000a, 0x935: 0x000a,
497 0x936: 0x000a, 0x937: 0x000a, 0x938: 0x000a, 0x939: 0x0004, 0x93a: 0x000a,
498 // Block 0x25, offset 0x940
499 0x940: 0x000c,
500 0x97e: 0x000c, 0x97f: 0x000c,
501 // Block 0x26, offset 0x980
502 0x980: 0x000c,
503 0x986: 0x000c, 0x987: 0x000c, 0x988: 0x000c, 0x98a: 0x000c, 0x98b: 0x000c,
504 0x98c: 0x000c, 0x98d: 0x000c,
505 0x995: 0x000c, 0x996: 0x000c,
506 0x9a2: 0x000c, 0x9a3: 0x000c,
507 0x9b8: 0x000a, 0x9b9: 0x000a, 0x9ba: 0x000a, 0x9bb: 0x000a,
508 0x9bc: 0x000a, 0x9bd: 0x000a, 0x9be: 0x000a,
509 // Block 0x27, offset 0x9c0
510 0x9cc: 0x000c, 0x9cd: 0x000c,
511 0x9e2: 0x000c, 0x9e3: 0x000c,
512 // Block 0x28, offset 0xa00
513 0xa01: 0x000c,
514 // Block 0x29, offset 0xa40
515 0xa41: 0x000c, 0xa42: 0x000c, 0xa43: 0x000c, 0xa44: 0x000c,
516 0xa4d: 0x000c,
517 0xa62: 0x000c, 0xa63: 0x000c,
518 // Block 0x2a, offset 0xa80
519 0xa8a: 0x000c,
520 0xa92: 0x000c, 0xa93: 0x000c, 0xa94: 0x000c, 0xa96: 0x000c,
521 // Block 0x2b, offset 0xac0
522 0xaf1: 0x000c, 0xaf4: 0x000c, 0xaf5: 0x000c,
523 0xaf6: 0x000c, 0xaf7: 0x000c, 0xaf8: 0x000c, 0xaf9: 0x000c, 0xafa: 0x000c,
524 0xaff: 0x0004,
525 // Block 0x2c, offset 0xb00
526 0xb07: 0x000c, 0xb08: 0x000c, 0xb09: 0x000c, 0xb0a: 0x000c, 0xb0b: 0x000c,
527 0xb0c: 0x000c, 0xb0d: 0x000c, 0xb0e: 0x000c,
528 // Block 0x2d, offset 0xb40
529 0xb71: 0x000c, 0xb74: 0x000c, 0xb75: 0x000c,
530 0xb76: 0x000c, 0xb77: 0x000c, 0xb78: 0x000c, 0xb79: 0x000c, 0xb7b: 0x000c,
531 0xb7c: 0x000c,
532 // Block 0x2e, offset 0xb80
533 0xb88: 0x000c, 0xb89: 0x000c, 0xb8a: 0x000c, 0xb8b: 0x000c,
534 0xb8c: 0x000c, 0xb8d: 0x000c,
535 // Block 0x2f, offset 0xbc0
536 0xbd8: 0x000c, 0xbd9: 0x000c,
537 0xbf5: 0x000c,
538 0xbf7: 0x000c, 0xbf9: 0x000c, 0xbfa: 0x003a, 0xbfb: 0x002a,
539 0xbfc: 0x003a, 0xbfd: 0x002a,
540 // Block 0x30, offset 0xc00
541 0xc31: 0x000c, 0xc32: 0x000c, 0xc33: 0x000c, 0xc34: 0x000c, 0xc35: 0x000c,
542 0xc36: 0x000c, 0xc37: 0x000c, 0xc38: 0x000c, 0xc39: 0x000c, 0xc3a: 0x000c, 0xc3b: 0x000c,
543 0xc3c: 0x000c, 0xc3d: 0x000c, 0xc3e: 0x000c,
544 // Block 0x31, offset 0xc40
545 0xc40: 0x000c, 0xc41: 0x000c, 0xc42: 0x000c, 0xc43: 0x000c, 0xc44: 0x000c,
546 0xc46: 0x000c, 0xc47: 0x000c,
547 0xc4d: 0x000c, 0xc4e: 0x000c, 0xc4f: 0x000c, 0xc50: 0x000c, 0xc51: 0x000c,
548 0xc52: 0x000c, 0xc53: 0x000c, 0xc54: 0x000c, 0xc55: 0x000c, 0xc56: 0x000c, 0xc57: 0x000c,
549 0xc59: 0x000c, 0xc5a: 0x000c, 0xc5b: 0x000c, 0xc5c: 0x000c, 0xc5d: 0x000c,
550 0xc5e: 0x000c, 0xc5f: 0x000c, 0xc60: 0x000c, 0xc61: 0x000c, 0xc62: 0x000c, 0xc63: 0x000c,
551 0xc64: 0x000c, 0xc65: 0x000c, 0xc66: 0x000c, 0xc67: 0x000c, 0xc68: 0x000c, 0xc69: 0x000c,
552 0xc6a: 0x000c, 0xc6b: 0x000c, 0xc6c: 0x000c, 0xc6d: 0x000c, 0xc6e: 0x000c, 0xc6f: 0x000c,
553 0xc70: 0x000c, 0xc71: 0x000c, 0xc72: 0x000c, 0xc73: 0x000c, 0xc74: 0x000c, 0xc75: 0x000c,
554 0xc76: 0x000c, 0xc77: 0x000c, 0xc78: 0x000c, 0xc79: 0x000c, 0xc7a: 0x000c, 0xc7b: 0x000c,
555 0xc7c: 0x000c,
556 // Block 0x32, offset 0xc80
557 0xc86: 0x000c,
558 // Block 0x33, offset 0xcc0
559 0xced: 0x000c, 0xcee: 0x000c, 0xcef: 0x000c,
560 0xcf0: 0x000c, 0xcf2: 0x000c, 0xcf3: 0x000c, 0xcf4: 0x000c, 0xcf5: 0x000c,
561 0xcf6: 0x000c, 0xcf7: 0x000c, 0xcf9: 0x000c, 0xcfa: 0x000c,
562 0xcfd: 0x000c, 0xcfe: 0x000c,
563 // Block 0x34, offset 0xd00
564 0xd18: 0x000c, 0xd19: 0x000c,
565 0xd1e: 0x000c, 0xd1f: 0x000c, 0xd20: 0x000c,
566 0xd31: 0x000c, 0xd32: 0x000c, 0xd33: 0x000c, 0xd34: 0x000c,
567 // Block 0x35, offset 0xd40
568 0xd42: 0x000c, 0xd45: 0x000c,
569 0xd46: 0x000c,
570 0xd4d: 0x000c,
571 0xd5d: 0x000c,
572 // Block 0x36, offset 0xd80
573 0xd9d: 0x000c,
574 0xd9e: 0x000c, 0xd9f: 0x000c,
575 // Block 0x37, offset 0xdc0
576 0xdd0: 0x000a, 0xdd1: 0x000a,
577 0xdd2: 0x000a, 0xdd3: 0x000a, 0xdd4: 0x000a, 0xdd5: 0x000a, 0xdd6: 0x000a, 0xdd7: 0x000a,
578 0xdd8: 0x000a, 0xdd9: 0x000a,
579 // Block 0x38, offset 0xe00
580 0xe00: 0x000a,
581 // Block 0x39, offset 0xe40
582 0xe40: 0x0009,
583 0xe5b: 0x007a, 0xe5c: 0x006a,
584 // Block 0x3a, offset 0xe80
585 0xe92: 0x000c, 0xe93: 0x000c, 0xe94: 0x000c,
586 0xeb2: 0x000c, 0xeb3: 0x000c, 0xeb4: 0x000c,
587 // Block 0x3b, offset 0xec0
588 0xed2: 0x000c, 0xed3: 0x000c,
589 0xef2: 0x000c, 0xef3: 0x000c,
590 // Block 0x3c, offset 0xf00
591 0xf34: 0x000c, 0xf35: 0x000c,
592 0xf37: 0x000c, 0xf38: 0x000c, 0xf39: 0x000c, 0xf3a: 0x000c, 0xf3b: 0x000c,
593 0xf3c: 0x000c, 0xf3d: 0x000c,
594 // Block 0x3d, offset 0xf40
595 0xf46: 0x000c, 0xf49: 0x000c, 0xf4a: 0x000c, 0xf4b: 0x000c,
596 0xf4c: 0x000c, 0xf4d: 0x000c, 0xf4e: 0x000c, 0xf4f: 0x000c, 0xf50: 0x000c, 0xf51: 0x000c,
597 0xf52: 0x000c, 0xf53: 0x000c,
598 0xf5b: 0x0004, 0xf5d: 0x000c,
599 0xf70: 0x000a, 0xf71: 0x000a, 0xf72: 0x000a, 0xf73: 0x000a, 0xf74: 0x000a, 0xf75: 0x000a,
600 0xf76: 0x000a, 0xf77: 0x000a, 0xf78: 0x000a, 0xf79: 0x000a,
601 // Block 0x3e, offset 0xf80
602 0xf80: 0x000a, 0xf81: 0x000a, 0xf82: 0x000a, 0xf83: 0x000a, 0xf84: 0x000a, 0xf85: 0x000a,
603 0xf86: 0x000a, 0xf87: 0x000a, 0xf88: 0x000a, 0xf89: 0x000a, 0xf8a: 0x000a, 0xf8b: 0x000c,
604 0xf8c: 0x000c, 0xf8d: 0x000c, 0xf8e: 0x000b,
605 // Block 0x3f, offset 0xfc0
606 0xfc5: 0x000c,
607 0xfc6: 0x000c,
608 0xfe9: 0x000c,
609 // Block 0x40, offset 0x1000
610 0x1020: 0x000c, 0x1021: 0x000c, 0x1022: 0x000c,
611 0x1027: 0x000c, 0x1028: 0x000c,
612 0x1032: 0x000c,
613 0x1039: 0x000c, 0x103a: 0x000c, 0x103b: 0x000c,
614 // Block 0x41, offset 0x1040
615 0x1040: 0x000a, 0x1044: 0x000a, 0x1045: 0x000a,
616 // Block 0x42, offset 0x1080
617 0x109e: 0x000a, 0x109f: 0x000a, 0x10a0: 0x000a, 0x10a1: 0x000a, 0x10a2: 0x000a, 0x10a3: 0x000a,
618 0x10a4: 0x000a, 0x10a5: 0x000a, 0x10a6: 0x000a, 0x10a7: 0x000a, 0x10a8: 0x000a, 0x10a9: 0x000a,
619 0x10aa: 0x000a, 0x10ab: 0x000a, 0x10ac: 0x000a, 0x10ad: 0x000a, 0x10ae: 0x000a, 0x10af: 0x000a,
620 0x10b0: 0x000a, 0x10b1: 0x000a, 0x10b2: 0x000a, 0x10b3: 0x000a, 0x10b4: 0x000a, 0x10b5: 0x000a,
621 0x10b6: 0x000a, 0x10b7: 0x000a, 0x10b8: 0x000a, 0x10b9: 0x000a, 0x10ba: 0x000a, 0x10bb: 0x000a,
622 0x10bc: 0x000a, 0x10bd: 0x000a, 0x10be: 0x000a, 0x10bf: 0x000a,
623 // Block 0x43, offset 0x10c0
624 0x10d7: 0x000c,
625 0x10d8: 0x000c, 0x10db: 0x000c,
626 // Block 0x44, offset 0x1100
627 0x1116: 0x000c,
628 0x1118: 0x000c, 0x1119: 0x000c, 0x111a: 0x000c, 0x111b: 0x000c, 0x111c: 0x000c, 0x111d: 0x000c,
629 0x111e: 0x000c, 0x1120: 0x000c, 0x1122: 0x000c,
630 0x1125: 0x000c, 0x1126: 0x000c, 0x1127: 0x000c, 0x1128: 0x000c, 0x1129: 0x000c,
631 0x112a: 0x000c, 0x112b: 0x000c, 0x112c: 0x000c,
632 0x1133: 0x000c, 0x1134: 0x000c, 0x1135: 0x000c,
633 0x1136: 0x000c, 0x1137: 0x000c, 0x1138: 0x000c, 0x1139: 0x000c, 0x113a: 0x000c, 0x113b: 0x000c,
634 0x113c: 0x000c, 0x113f: 0x000c,
635 // Block 0x45, offset 0x1140
636 0x1170: 0x000c, 0x1171: 0x000c, 0x1172: 0x000c, 0x1173: 0x000c, 0x1174: 0x000c, 0x1175: 0x000c,
637 0x1176: 0x000c, 0x1177: 0x000c, 0x1178: 0x000c, 0x1179: 0x000c, 0x117a: 0x000c, 0x117b: 0x000c,
638 0x117c: 0x000c, 0x117d: 0x000c, 0x117e: 0x000c,
639 // Block 0x46, offset 0x1180
640 0x1180: 0x000c, 0x1181: 0x000c, 0x1182: 0x000c, 0x1183: 0x000c,
641 0x11b4: 0x000c,
642 0x11b6: 0x000c, 0x11b7: 0x000c, 0x11b8: 0x000c, 0x11b9: 0x000c, 0x11ba: 0x000c,
643 0x11bc: 0x000c,
644 // Block 0x47, offset 0x11c0
645 0x11c2: 0x000c,
646 0x11eb: 0x000c, 0x11ec: 0x000c, 0x11ed: 0x000c, 0x11ee: 0x000c, 0x11ef: 0x000c,
647 0x11f0: 0x000c, 0x11f1: 0x000c, 0x11f2: 0x000c, 0x11f3: 0x000c,
648 // Block 0x48, offset 0x1200
649 0x1200: 0x000c, 0x1201: 0x000c,
650 0x1222: 0x000c, 0x1223: 0x000c,
651 0x1224: 0x000c, 0x1225: 0x000c, 0x1228: 0x000c, 0x1229: 0x000c,
652 0x122b: 0x000c, 0x122c: 0x000c, 0x122d: 0x000c,
653 // Block 0x49, offset 0x1240
654 0x1266: 0x000c, 0x1268: 0x000c, 0x1269: 0x000c,
655 0x126d: 0x000c, 0x126f: 0x000c,
656 0x1270: 0x000c, 0x1271: 0x000c,
657 // Block 0x4a, offset 0x1280
658 0x12ac: 0x000c, 0x12ad: 0x000c, 0x12ae: 0x000c, 0x12af: 0x000c,
659 0x12b0: 0x000c, 0x12b1: 0x000c, 0x12b2: 0x000c, 0x12b3: 0x000c,
660 0x12b6: 0x000c, 0x12b7: 0x000c,
661 // Block 0x4b, offset 0x12c0
662 0x12d0: 0x000c, 0x12d1: 0x000c,
663 0x12d2: 0x000c, 0x12d4: 0x000c, 0x12d5: 0x000c, 0x12d6: 0x000c, 0x12d7: 0x000c,
664 0x12d8: 0x000c, 0x12d9: 0x000c, 0x12da: 0x000c, 0x12db: 0x000c, 0x12dc: 0x000c, 0x12dd: 0x000c,
665 0x12de: 0x000c, 0x12df: 0x000c, 0x12e0: 0x000c, 0x12e2: 0x000c, 0x12e3: 0x000c,
666 0x12e4: 0x000c, 0x12e5: 0x000c, 0x12e6: 0x000c, 0x12e7: 0x000c, 0x12e8: 0x000c,
667 0x12ed: 0x000c,
668 0x12f4: 0x000c,
669 0x12f8: 0x000c, 0x12f9: 0x000c,
670 // Block 0x4c, offset 0x1300
671 0x1300: 0x000c, 0x1301: 0x000c, 0x1302: 0x000c, 0x1303: 0x000c, 0x1304: 0x000c, 0x1305: 0x000c,
672 0x1306: 0x000c, 0x1307: 0x000c, 0x1308: 0x000c, 0x1309: 0x000c, 0x130a: 0x000c, 0x130b: 0x000c,
673 0x130c: 0x000c, 0x130d: 0x000c, 0x130e: 0x000c, 0x130f: 0x000c, 0x1310: 0x000c, 0x1311: 0x000c,
674 0x1312: 0x000c, 0x1313: 0x000c, 0x1314: 0x000c, 0x1315: 0x000c, 0x1316: 0x000c, 0x1317: 0x000c,
675 0x1318: 0x000c, 0x1319: 0x000c, 0x131a: 0x000c, 0x131b: 0x000c, 0x131c: 0x000c, 0x131d: 0x000c,
676 0x131e: 0x000c, 0x131f: 0x000c, 0x1320: 0x000c, 0x1321: 0x000c, 0x1322: 0x000c, 0x1323: 0x000c,
677 0x1324: 0x000c, 0x1325: 0x000c, 0x1326: 0x000c, 0x1327: 0x000c, 0x1328: 0x000c, 0x1329: 0x000c,
678 0x132a: 0x000c, 0x132b: 0x000c, 0x132c: 0x000c, 0x132d: 0x000c, 0x132e: 0x000c, 0x132f: 0x000c,
679 0x1330: 0x000c, 0x1331: 0x000c, 0x1332: 0x000c, 0x1333: 0x000c, 0x1334: 0x000c, 0x1335: 0x000c,
680 0x133b: 0x000c,
681 0x133c: 0x000c, 0x133d: 0x000c, 0x133e: 0x000c, 0x133f: 0x000c,
682 // Block 0x4d, offset 0x1340
683 0x137d: 0x000a, 0x137f: 0x000a,
684 // Block 0x4e, offset 0x1380
685 0x1380: 0x000a, 0x1381: 0x000a,
686 0x138d: 0x000a, 0x138e: 0x000a, 0x138f: 0x000a,
687 0x139d: 0x000a,
688 0x139e: 0x000a, 0x139f: 0x000a,
689 0x13ad: 0x000a, 0x13ae: 0x000a, 0x13af: 0x000a,
690 0x13bd: 0x000a, 0x13be: 0x000a,
691 // Block 0x4f, offset 0x13c0
692 0x13c0: 0x0009, 0x13c1: 0x0009, 0x13c2: 0x0009, 0x13c3: 0x0009, 0x13c4: 0x0009, 0x13c5: 0x0009,
693 0x13c6: 0x0009, 0x13c7: 0x0009, 0x13c8: 0x0009, 0x13c9: 0x0009, 0x13ca: 0x0009, 0x13cb: 0x000b,
694 0x13cc: 0x000b, 0x13cd: 0x000b, 0x13cf: 0x0001, 0x13d0: 0x000a, 0x13d1: 0x000a,
695 0x13d2: 0x000a, 0x13d3: 0x000a, 0x13d4: 0x000a, 0x13d5: 0x000a, 0x13d6: 0x000a, 0x13d7: 0x000a,
696 0x13d8: 0x000a, 0x13d9: 0x000a, 0x13da: 0x000a, 0x13db: 0x000a, 0x13dc: 0x000a, 0x13dd: 0x000a,
697 0x13de: 0x000a, 0x13df: 0x000a, 0x13e0: 0x000a, 0x13e1: 0x000a, 0x13e2: 0x000a, 0x13e3: 0x000a,
698 0x13e4: 0x000a, 0x13e5: 0x000a, 0x13e6: 0x000a, 0x13e7: 0x000a, 0x13e8: 0x0009, 0x13e9: 0x0007,
699 0x13ea: 0x000e, 0x13eb: 0x000e, 0x13ec: 0x000e, 0x13ed: 0x000e, 0x13ee: 0x000e, 0x13ef: 0x0006,
700 0x13f0: 0x0004, 0x13f1: 0x0004, 0x13f2: 0x0004, 0x13f3: 0x0004, 0x13f4: 0x0004, 0x13f5: 0x000a,
701 0x13f6: 0x000a, 0x13f7: 0x000a, 0x13f8: 0x000a, 0x13f9: 0x000a, 0x13fa: 0x000a, 0x13fb: 0x000a,
702 0x13fc: 0x000a, 0x13fd: 0x000a, 0x13fe: 0x000a, 0x13ff: 0x000a,
703 // Block 0x50, offset 0x1400
704 0x1400: 0x000a, 0x1401: 0x000a, 0x1402: 0x000a, 0x1403: 0x000a, 0x1404: 0x0006, 0x1405: 0x009a,
705 0x1406: 0x008a, 0x1407: 0x000a, 0x1408: 0x000a, 0x1409: 0x000a, 0x140a: 0x000a, 0x140b: 0x000a,
706 0x140c: 0x000a, 0x140d: 0x000a, 0x140e: 0x000a, 0x140f: 0x000a, 0x1410: 0x000a, 0x1411: 0x000a,
707 0x1412: 0x000a, 0x1413: 0x000a, 0x1414: 0x000a, 0x1415: 0x000a, 0x1416: 0x000a, 0x1417: 0x000a,
708 0x1418: 0x000a, 0x1419: 0x000a, 0x141a: 0x000a, 0x141b: 0x000a, 0x141c: 0x000a, 0x141d: 0x000a,
709 0x141e: 0x000a, 0x141f: 0x0009, 0x1420: 0x000b, 0x1421: 0x000b, 0x1422: 0x000b, 0x1423: 0x000b,
710 0x1424: 0x000b, 0x1425: 0x000b, 0x1426: 0x000e, 0x1427: 0x000e, 0x1428: 0x000e, 0x1429: 0x000e,
711 0x142a: 0x000b, 0x142b: 0x000b, 0x142c: 0x000b, 0x142d: 0x000b, 0x142e: 0x000b, 0x142f: 0x000b,
712 0x1430: 0x0002, 0x1434: 0x0002, 0x1435: 0x0002,
713 0x1436: 0x0002, 0x1437: 0x0002, 0x1438: 0x0002, 0x1439: 0x0002, 0x143a: 0x0003, 0x143b: 0x0003,
714 0x143c: 0x000a, 0x143d: 0x009a, 0x143e: 0x008a,
715 // Block 0x51, offset 0x1440
716 0x1440: 0x0002, 0x1441: 0x0002, 0x1442: 0x0002, 0x1443: 0x0002, 0x1444: 0x0002, 0x1445: 0x0002,
717 0x1446: 0x0002, 0x1447: 0x0002, 0x1448: 0x0002, 0x1449: 0x0002, 0x144a: 0x0003, 0x144b: 0x0003,
718 0x144c: 0x000a, 0x144d: 0x009a, 0x144e: 0x008a,
719 0x1460: 0x0004, 0x1461: 0x0004, 0x1462: 0x0004, 0x1463: 0x0004,
720 0x1464: 0x0004, 0x1465: 0x0004, 0x1466: 0x0004, 0x1467: 0x0004, 0x1468: 0x0004, 0x1469: 0x0004,
721 0x146a: 0x0004, 0x146b: 0x0004, 0x146c: 0x0004, 0x146d: 0x0004, 0x146e: 0x0004, 0x146f: 0x0004,
722 0x1470: 0x0004, 0x1471: 0x0004, 0x1472: 0x0004, 0x1473: 0x0004, 0x1474: 0x0004, 0x1475: 0x0004,
723 0x1476: 0x0004, 0x1477: 0x0004, 0x1478: 0x0004, 0x1479: 0x0004, 0x147a: 0x0004, 0x147b: 0x0004,
724 0x147c: 0x0004, 0x147d: 0x0004, 0x147e: 0x0004, 0x147f: 0x0004,
725 // Block 0x52, offset 0x1480
726 0x1480: 0x0004, 0x1481: 0x0004, 0x1482: 0x0004, 0x1483: 0x0004, 0x1484: 0x0004, 0x1485: 0x0004,
727 0x1486: 0x0004, 0x1487: 0x0004, 0x1488: 0x0004, 0x1489: 0x0004, 0x148a: 0x0004, 0x148b: 0x0004,
728 0x148c: 0x0004, 0x148d: 0x0004, 0x148e: 0x0004, 0x148f: 0x0004, 0x1490: 0x000c, 0x1491: 0x000c,
729 0x1492: 0x000c, 0x1493: 0x000c, 0x1494: 0x000c, 0x1495: 0x000c, 0x1496: 0x000c, 0x1497: 0x000c,
730 0x1498: 0x000c, 0x1499: 0x000c, 0x149a: 0x000c, 0x149b: 0x000c, 0x149c: 0x000c, 0x149d: 0x000c,
731 0x149e: 0x000c, 0x149f: 0x000c, 0x14a0: 0x000c, 0x14a1: 0x000c, 0x14a2: 0x000c, 0x14a3: 0x000c,
732 0x14a4: 0x000c, 0x14a5: 0x000c, 0x14a6: 0x000c, 0x14a7: 0x000c, 0x14a8: 0x000c, 0x14a9: 0x000c,
733 0x14aa: 0x000c, 0x14ab: 0x000c, 0x14ac: 0x000c, 0x14ad: 0x000c, 0x14ae: 0x000c, 0x14af: 0x000c,
734 0x14b0: 0x000c,
735 // Block 0x53, offset 0x14c0
736 0x14c0: 0x000a, 0x14c1: 0x000a, 0x14c3: 0x000a, 0x14c4: 0x000a, 0x14c5: 0x000a,
737 0x14c6: 0x000a, 0x14c8: 0x000a, 0x14c9: 0x000a,
738 0x14d4: 0x000a, 0x14d6: 0x000a, 0x14d7: 0x000a,
739 0x14d8: 0x000a,
740 0x14de: 0x000a, 0x14df: 0x000a, 0x14e0: 0x000a, 0x14e1: 0x000a, 0x14e2: 0x000a, 0x14e3: 0x000a,
741 0x14e5: 0x000a, 0x14e7: 0x000a, 0x14e9: 0x000a,
742 0x14ee: 0x0004,
743 0x14fa: 0x000a, 0x14fb: 0x000a,
744 // Block 0x54, offset 0x1500
745 0x1500: 0x000a, 0x1501: 0x000a, 0x1502: 0x000a, 0x1503: 0x000a, 0x1504: 0x000a,
746 0x150a: 0x000a, 0x150b: 0x000a,
747 0x150c: 0x000a, 0x150d: 0x000a, 0x1510: 0x000a, 0x1511: 0x000a,
748 0x1512: 0x000a, 0x1513: 0x000a, 0x1514: 0x000a, 0x1515: 0x000a, 0x1516: 0x000a, 0x1517: 0x000a,
749 0x1518: 0x000a, 0x1519: 0x000a, 0x151a: 0x000a, 0x151b: 0x000a, 0x151c: 0x000a, 0x151d: 0x000a,
750 0x151e: 0x000a, 0x151f: 0x000a,
751 // Block 0x55, offset 0x1540
752 0x1549: 0x000a, 0x154a: 0x000a, 0x154b: 0x000a,
753 0x1550: 0x000a, 0x1551: 0x000a,
754 0x1552: 0x000a, 0x1553: 0x000a, 0x1554: 0x000a, 0x1555: 0x000a, 0x1556: 0x000a, 0x1557: 0x000a,
755 0x1558: 0x000a, 0x1559: 0x000a, 0x155a: 0x000a, 0x155b: 0x000a, 0x155c: 0x000a, 0x155d: 0x000a,
756 0x155e: 0x000a, 0x155f: 0x000a, 0x1560: 0x000a, 0x1561: 0x000a, 0x1562: 0x000a, 0x1563: 0x000a,
757 0x1564: 0x000a, 0x1565: 0x000a, 0x1566: 0x000a, 0x1567: 0x000a, 0x1568: 0x000a, 0x1569: 0x000a,
758 0x156a: 0x000a, 0x156b: 0x000a, 0x156c: 0x000a, 0x156d: 0x000a, 0x156e: 0x000a, 0x156f: 0x000a,
759 0x1570: 0x000a, 0x1571: 0x000a, 0x1572: 0x000a, 0x1573: 0x000a, 0x1574: 0x000a, 0x1575: 0x000a,
760 0x1576: 0x000a, 0x1577: 0x000a, 0x1578: 0x000a, 0x1579: 0x000a, 0x157a: 0x000a, 0x157b: 0x000a,
761 0x157c: 0x000a, 0x157d: 0x000a, 0x157e: 0x000a, 0x157f: 0x000a,
762 // Block 0x56, offset 0x1580
763 0x1580: 0x000a, 0x1581: 0x000a, 0x1582: 0x000a, 0x1583: 0x000a, 0x1584: 0x000a, 0x1585: 0x000a,
764 0x1586: 0x000a, 0x1587: 0x000a, 0x1588: 0x000a, 0x1589: 0x000a, 0x158a: 0x000a, 0x158b: 0x000a,
765 0x158c: 0x000a, 0x158d: 0x000a, 0x158e: 0x000a, 0x158f: 0x000a, 0x1590: 0x000a, 0x1591: 0x000a,
766 0x1592: 0x000a, 0x1593: 0x000a, 0x1594: 0x000a, 0x1595: 0x000a, 0x1596: 0x000a, 0x1597: 0x000a,
767 0x1598: 0x000a, 0x1599: 0x000a, 0x159a: 0x000a, 0x159b: 0x000a, 0x159c: 0x000a, 0x159d: 0x000a,
768 0x159e: 0x000a, 0x159f: 0x000a, 0x15a0: 0x000a, 0x15a1: 0x000a, 0x15a2: 0x000a, 0x15a3: 0x000a,
769 0x15a4: 0x000a, 0x15a5: 0x000a, 0x15a6: 0x000a, 0x15a7: 0x000a, 0x15a8: 0x000a, 0x15a9: 0x000a,
770 0x15aa: 0x000a, 0x15ab: 0x000a, 0x15ac: 0x000a, 0x15ad: 0x000a, 0x15ae: 0x000a, 0x15af: 0x000a,
771 0x15b0: 0x000a, 0x15b1: 0x000a, 0x15b2: 0x000a, 0x15b3: 0x000a, 0x15b4: 0x000a, 0x15b5: 0x000a,
772 0x15b6: 0x000a, 0x15b7: 0x000a, 0x15b8: 0x000a, 0x15b9: 0x000a, 0x15ba: 0x000a, 0x15bb: 0x000a,
773 0x15bc: 0x000a, 0x15bd: 0x000a, 0x15be: 0x000a, 0x15bf: 0x000a,
774 // Block 0x57, offset 0x15c0
775 0x15c0: 0x000a, 0x15c1: 0x000a, 0x15c2: 0x000a, 0x15c3: 0x000a, 0x15c4: 0x000a, 0x15c5: 0x000a,
776 0x15c6: 0x000a, 0x15c7: 0x000a, 0x15c8: 0x000a, 0x15c9: 0x000a, 0x15ca: 0x000a, 0x15cb: 0x000a,
777 0x15cc: 0x000a, 0x15cd: 0x000a, 0x15ce: 0x000a, 0x15cf: 0x000a, 0x15d0: 0x000a, 0x15d1: 0x000a,
778 0x15d2: 0x0003, 0x15d3: 0x0004, 0x15d4: 0x000a, 0x15d5: 0x000a, 0x15d6: 0x000a, 0x15d7: 0x000a,
779 0x15d8: 0x000a, 0x15d9: 0x000a, 0x15da: 0x000a, 0x15db: 0x000a, 0x15dc: 0x000a, 0x15dd: 0x000a,
780 0x15de: 0x000a, 0x15df: 0x000a, 0x15e0: 0x000a, 0x15e1: 0x000a, 0x15e2: 0x000a, 0x15e3: 0x000a,
781 0x15e4: 0x000a, 0x15e5: 0x000a, 0x15e6: 0x000a, 0x15e7: 0x000a, 0x15e8: 0x000a, 0x15e9: 0x000a,
782 0x15ea: 0x000a, 0x15eb: 0x000a, 0x15ec: 0x000a, 0x15ed: 0x000a, 0x15ee: 0x000a, 0x15ef: 0x000a,
783 0x15f0: 0x000a, 0x15f1: 0x000a, 0x15f2: 0x000a, 0x15f3: 0x000a, 0x15f4: 0x000a, 0x15f5: 0x000a,
784 0x15f6: 0x000a, 0x15f7: 0x000a, 0x15f8: 0x000a, 0x15f9: 0x000a, 0x15fa: 0x000a, 0x15fb: 0x000a,
785 0x15fc: 0x000a, 0x15fd: 0x000a, 0x15fe: 0x000a, 0x15ff: 0x000a,
786 // Block 0x58, offset 0x1600
787 0x1600: 0x000a, 0x1601: 0x000a, 0x1602: 0x000a, 0x1603: 0x000a, 0x1604: 0x000a, 0x1605: 0x000a,
788 0x1606: 0x000a, 0x1607: 0x000a, 0x1608: 0x003a, 0x1609: 0x002a, 0x160a: 0x003a, 0x160b: 0x002a,
789 0x160c: 0x000a, 0x160d: 0x000a, 0x160e: 0x000a, 0x160f: 0x000a, 0x1610: 0x000a, 0x1611: 0x000a,
790 0x1612: 0x000a, 0x1613: 0x000a, 0x1614: 0x000a, 0x1615: 0x000a, 0x1616: 0x000a, 0x1617: 0x000a,
791 0x1618: 0x000a, 0x1619: 0x000a, 0x161a: 0x000a, 0x161b: 0x000a, 0x161c: 0x000a, 0x161d: 0x000a,
792 0x161e: 0x000a, 0x161f: 0x000a, 0x1620: 0x000a, 0x1621: 0x000a, 0x1622: 0x000a, 0x1623: 0x000a,
793 0x1624: 0x000a, 0x1625: 0x000a, 0x1626: 0x000a, 0x1627: 0x000a, 0x1628: 0x000a, 0x1629: 0x009a,
794 0x162a: 0x008a, 0x162b: 0x000a, 0x162c: 0x000a, 0x162d: 0x000a, 0x162e: 0x000a, 0x162f: 0x000a,
795 0x1630: 0x000a, 0x1631: 0x000a, 0x1632: 0x000a, 0x1633: 0x000a, 0x1634: 0x000a, 0x1635: 0x000a,
796 // Block 0x59, offset 0x1640
797 0x167b: 0x000a,
798 0x167c: 0x000a, 0x167d: 0x000a, 0x167e: 0x000a, 0x167f: 0x000a,
799 // Block 0x5a, offset 0x1680
800 0x1680: 0x000a, 0x1681: 0x000a, 0x1682: 0x000a, 0x1683: 0x000a, 0x1684: 0x000a, 0x1685: 0x000a,
801 0x1686: 0x000a, 0x1687: 0x000a, 0x1688: 0x000a, 0x1689: 0x000a, 0x168a: 0x000a, 0x168b: 0x000a,
802 0x168c: 0x000a, 0x168d: 0x000a, 0x168e: 0x000a, 0x168f: 0x000a, 0x1690: 0x000a, 0x1691: 0x000a,
803 0x1692: 0x000a, 0x1693: 0x000a, 0x1694: 0x000a, 0x1696: 0x000a, 0x1697: 0x000a,
804 0x1698: 0x000a, 0x1699: 0x000a, 0x169a: 0x000a, 0x169b: 0x000a, 0x169c: 0x000a, 0x169d: 0x000a,
805 0x169e: 0x000a, 0x169f: 0x000a, 0x16a0: 0x000a, 0x16a1: 0x000a, 0x16a2: 0x000a, 0x16a3: 0x000a,
806 0x16a4: 0x000a, 0x16a5: 0x000a, 0x16a6: 0x000a, 0x16a7: 0x000a, 0x16a8: 0x000a, 0x16a9: 0x000a,
807 0x16aa: 0x000a, 0x16ab: 0x000a, 0x16ac: 0x000a, 0x16ad: 0x000a, 0x16ae: 0x000a, 0x16af: 0x000a,
808 0x16b0: 0x000a, 0x16b1: 0x000a, 0x16b2: 0x000a, 0x16b3: 0x000a, 0x16b4: 0x000a, 0x16b5: 0x000a,
809 0x16b6: 0x000a, 0x16b7: 0x000a, 0x16b8: 0x000a, 0x16b9: 0x000a, 0x16ba: 0x000a, 0x16bb: 0x000a,
810 0x16bc: 0x000a, 0x16bd: 0x000a, 0x16be: 0x000a, 0x16bf: 0x000a,
811 // Block 0x5b, offset 0x16c0
812 0x16c0: 0x000a, 0x16c1: 0x000a, 0x16c2: 0x000a, 0x16c3: 0x000a, 0x16c4: 0x000a, 0x16c5: 0x000a,
813 0x16c6: 0x000a, 0x16c7: 0x000a, 0x16c8: 0x000a, 0x16c9: 0x000a, 0x16ca: 0x000a, 0x16cb: 0x000a,
814 0x16cc: 0x000a, 0x16cd: 0x000a, 0x16ce: 0x000a, 0x16cf: 0x000a, 0x16d0: 0x000a, 0x16d1: 0x000a,
815 0x16d2: 0x000a, 0x16d3: 0x000a, 0x16d4: 0x000a, 0x16d5: 0x000a, 0x16d6: 0x000a, 0x16d7: 0x000a,
816 0x16d8: 0x000a, 0x16d9: 0x000a, 0x16da: 0x000a, 0x16db: 0x000a, 0x16dc: 0x000a, 0x16dd: 0x000a,
817 0x16de: 0x000a, 0x16df: 0x000a, 0x16e0: 0x000a, 0x16e1: 0x000a, 0x16e2: 0x000a, 0x16e3: 0x000a,
818 0x16e4: 0x000a, 0x16e5: 0x000a, 0x16e6: 0x000a, 0x16e7: 0x000a, 0x16e8: 0x000a, 0x16e9: 0x000a,
819 0x16ea: 0x000a, 0x16eb: 0x000a, 0x16ec: 0x000a, 0x16ed: 0x000a, 0x16ee: 0x000a, 0x16ef: 0x000a,
820 0x16f0: 0x000a, 0x16f1: 0x000a, 0x16f2: 0x000a, 0x16f3: 0x000a, 0x16f4: 0x000a, 0x16f5: 0x000a,
821 0x16f6: 0x000a, 0x16f7: 0x000a, 0x16f8: 0x000a, 0x16f9: 0x000a, 0x16fa: 0x000a, 0x16fb: 0x000a,
822 0x16fc: 0x000a, 0x16fd: 0x000a, 0x16fe: 0x000a,
823 // Block 0x5c, offset 0x1700
824 0x1700: 0x000a, 0x1701: 0x000a, 0x1702: 0x000a, 0x1703: 0x000a, 0x1704: 0x000a, 0x1705: 0x000a,
825 0x1706: 0x000a, 0x1707: 0x000a, 0x1708: 0x000a, 0x1709: 0x000a, 0x170a: 0x000a, 0x170b: 0x000a,
826 0x170c: 0x000a, 0x170d: 0x000a, 0x170e: 0x000a, 0x170f: 0x000a, 0x1710: 0x000a, 0x1711: 0x000a,
827 0x1712: 0x000a, 0x1713: 0x000a, 0x1714: 0x000a, 0x1715: 0x000a, 0x1716: 0x000a, 0x1717: 0x000a,
828 0x1718: 0x000a, 0x1719: 0x000a, 0x171a: 0x000a, 0x171b: 0x000a, 0x171c: 0x000a, 0x171d: 0x000a,
829 0x171e: 0x000a, 0x171f: 0x000a, 0x1720: 0x000a, 0x1721: 0x000a, 0x1722: 0x000a, 0x1723: 0x000a,
830 0x1724: 0x000a, 0x1725: 0x000a, 0x1726: 0x000a,
831 // Block 0x5d, offset 0x1740
832 0x1740: 0x000a, 0x1741: 0x000a, 0x1742: 0x000a, 0x1743: 0x000a, 0x1744: 0x000a, 0x1745: 0x000a,
833 0x1746: 0x000a, 0x1747: 0x000a, 0x1748: 0x000a, 0x1749: 0x000a, 0x174a: 0x000a,
834 0x1760: 0x000a, 0x1761: 0x000a, 0x1762: 0x000a, 0x1763: 0x000a,
835 0x1764: 0x000a, 0x1765: 0x000a, 0x1766: 0x000a, 0x1767: 0x000a, 0x1768: 0x000a, 0x1769: 0x000a,
836 0x176a: 0x000a, 0x176b: 0x000a, 0x176c: 0x000a, 0x176d: 0x000a, 0x176e: 0x000a, 0x176f: 0x000a,
837 0x1770: 0x000a, 0x1771: 0x000a, 0x1772: 0x000a, 0x1773: 0x000a, 0x1774: 0x000a, 0x1775: 0x000a,
838 0x1776: 0x000a, 0x1777: 0x000a, 0x1778: 0x000a, 0x1779: 0x000a, 0x177a: 0x000a, 0x177b: 0x000a,
839 0x177c: 0x000a, 0x177d: 0x000a, 0x177e: 0x000a, 0x177f: 0x000a,
840 // Block 0x5e, offset 0x1780
841 0x1780: 0x000a, 0x1781: 0x000a, 0x1782: 0x000a, 0x1783: 0x000a, 0x1784: 0x000a, 0x1785: 0x000a,
842 0x1786: 0x000a, 0x1787: 0x000a, 0x1788: 0x0002, 0x1789: 0x0002, 0x178a: 0x0002, 0x178b: 0x0002,
843 0x178c: 0x0002, 0x178d: 0x0002, 0x178e: 0x0002, 0x178f: 0x0002, 0x1790: 0x0002, 0x1791: 0x0002,
844 0x1792: 0x0002, 0x1793: 0x0002, 0x1794: 0x0002, 0x1795: 0x0002, 0x1796: 0x0002, 0x1797: 0x0002,
845 0x1798: 0x0002, 0x1799: 0x0002, 0x179a: 0x0002, 0x179b: 0x0002,
846 // Block 0x5f, offset 0x17c0
847 0x17ea: 0x000a, 0x17eb: 0x000a, 0x17ec: 0x000a, 0x17ed: 0x000a, 0x17ee: 0x000a, 0x17ef: 0x000a,
848 0x17f0: 0x000a, 0x17f1: 0x000a, 0x17f2: 0x000a, 0x17f3: 0x000a, 0x17f4: 0x000a, 0x17f5: 0x000a,
849 0x17f6: 0x000a, 0x17f7: 0x000a, 0x17f8: 0x000a, 0x17f9: 0x000a, 0x17fa: 0x000a, 0x17fb: 0x000a,
850 0x17fc: 0x000a, 0x17fd: 0x000a, 0x17fe: 0x000a, 0x17ff: 0x000a,
851 // Block 0x60, offset 0x1800
852 0x1800: 0x000a, 0x1801: 0x000a, 0x1802: 0x000a, 0x1803: 0x000a, 0x1804: 0x000a, 0x1805: 0x000a,
853 0x1806: 0x000a, 0x1807: 0x000a, 0x1808: 0x000a, 0x1809: 0x000a, 0x180a: 0x000a, 0x180b: 0x000a,
854 0x180c: 0x000a, 0x180d: 0x000a, 0x180e: 0x000a, 0x180f: 0x000a, 0x1810: 0x000a, 0x1811: 0x000a,
855 0x1812: 0x000a, 0x1813: 0x000a, 0x1814: 0x000a, 0x1815: 0x000a, 0x1816: 0x000a, 0x1817: 0x000a,
856 0x1818: 0x000a, 0x1819: 0x000a, 0x181a: 0x000a, 0x181b: 0x000a, 0x181c: 0x000a, 0x181d: 0x000a,
857 0x181e: 0x000a, 0x181f: 0x000a, 0x1820: 0x000a, 0x1821: 0x000a, 0x1822: 0x000a, 0x1823: 0x000a,
858 0x1824: 0x000a, 0x1825: 0x000a, 0x1826: 0x000a, 0x1827: 0x000a, 0x1828: 0x000a, 0x1829: 0x000a,
859 0x182a: 0x000a, 0x182b: 0x000a, 0x182d: 0x000a, 0x182e: 0x000a, 0x182f: 0x000a,
860 0x1830: 0x000a, 0x1831: 0x000a, 0x1832: 0x000a, 0x1833: 0x000a, 0x1834: 0x000a, 0x1835: 0x000a,
861 0x1836: 0x000a, 0x1837: 0x000a, 0x1838: 0x000a, 0x1839: 0x000a, 0x183a: 0x000a, 0x183b: 0x000a,
862 0x183c: 0x000a, 0x183d: 0x000a, 0x183e: 0x000a, 0x183f: 0x000a,
863 // Block 0x61, offset 0x1840
864 0x1840: 0x000a, 0x1841: 0x000a, 0x1842: 0x000a, 0x1843: 0x000a, 0x1844: 0x000a, 0x1845: 0x000a,
865 0x1846: 0x000a, 0x1847: 0x000a, 0x1848: 0x000a, 0x1849: 0x000a, 0x184a: 0x000a, 0x184b: 0x000a,
866 0x184c: 0x000a, 0x184d: 0x000a, 0x184e: 0x000a, 0x184f: 0x000a, 0x1850: 0x000a, 0x1851: 0x000a,
867 0x1852: 0x000a, 0x1853: 0x000a, 0x1854: 0x000a, 0x1855: 0x000a, 0x1856: 0x000a, 0x1857: 0x000a,
868 0x1858: 0x000a, 0x1859: 0x000a, 0x185a: 0x000a, 0x185b: 0x000a, 0x185c: 0x000a, 0x185d: 0x000a,
869 0x185e: 0x000a, 0x185f: 0x000a, 0x1860: 0x000a, 0x1861: 0x000a, 0x1862: 0x000a, 0x1863: 0x000a,
870 0x1864: 0x000a, 0x1865: 0x000a, 0x1866: 0x000a, 0x1867: 0x000a, 0x1868: 0x003a, 0x1869: 0x002a,
871 0x186a: 0x003a, 0x186b: 0x002a, 0x186c: 0x003a, 0x186d: 0x002a, 0x186e: 0x003a, 0x186f: 0x002a,
872 0x1870: 0x003a, 0x1871: 0x002a, 0x1872: 0x003a, 0x1873: 0x002a, 0x1874: 0x003a, 0x1875: 0x002a,
873 0x1876: 0x000a, 0x1877: 0x000a, 0x1878: 0x000a, 0x1879: 0x000a, 0x187a: 0x000a, 0x187b: 0x000a,
874 0x187c: 0x000a, 0x187d: 0x000a, 0x187e: 0x000a, 0x187f: 0x000a,
875 // Block 0x62, offset 0x1880
876 0x1880: 0x000a, 0x1881: 0x000a, 0x1882: 0x000a, 0x1883: 0x000a, 0x1884: 0x000a, 0x1885: 0x009a,
877 0x1886: 0x008a, 0x1887: 0x000a, 0x1888: 0x000a, 0x1889: 0x000a, 0x188a: 0x000a, 0x188b: 0x000a,
878 0x188c: 0x000a, 0x188d: 0x000a, 0x188e: 0x000a, 0x188f: 0x000a, 0x1890: 0x000a, 0x1891: 0x000a,
879 0x1892: 0x000a, 0x1893: 0x000a, 0x1894: 0x000a, 0x1895: 0x000a, 0x1896: 0x000a, 0x1897: 0x000a,
880 0x1898: 0x000a, 0x1899: 0x000a, 0x189a: 0x000a, 0x189b: 0x000a, 0x189c: 0x000a, 0x189d: 0x000a,
881 0x189e: 0x000a, 0x189f: 0x000a, 0x18a0: 0x000a, 0x18a1: 0x000a, 0x18a2: 0x000a, 0x18a3: 0x000a,
882 0x18a4: 0x000a, 0x18a5: 0x000a, 0x18a6: 0x003a, 0x18a7: 0x002a, 0x18a8: 0x003a, 0x18a9: 0x002a,
883 0x18aa: 0x003a, 0x18ab: 0x002a, 0x18ac: 0x003a, 0x18ad: 0x002a, 0x18ae: 0x003a, 0x18af: 0x002a,
884 0x18b0: 0x000a, 0x18b1: 0x000a, 0x18b2: 0x000a, 0x18b3: 0x000a, 0x18b4: 0x000a, 0x18b5: 0x000a,
885 0x18b6: 0x000a, 0x18b7: 0x000a, 0x18b8: 0x000a, 0x18b9: 0x000a, 0x18ba: 0x000a, 0x18bb: 0x000a,
886 0x18bc: 0x000a, 0x18bd: 0x000a, 0x18be: 0x000a, 0x18bf: 0x000a,
887 // Block 0x63, offset 0x18c0
888 0x18c0: 0x000a, 0x18c1: 0x000a, 0x18c2: 0x000a, 0x18c3: 0x007a, 0x18c4: 0x006a, 0x18c5: 0x009a,
889 0x18c6: 0x008a, 0x18c7: 0x00ba, 0x18c8: 0x00aa, 0x18c9: 0x009a, 0x18ca: 0x008a, 0x18cb: 0x007a,
890 0x18cc: 0x006a, 0x18cd: 0x00da, 0x18ce: 0x002a, 0x18cf: 0x003a, 0x18d0: 0x00ca, 0x18d1: 0x009a,
891 0x18d2: 0x008a, 0x18d3: 0x007a, 0x18d4: 0x006a, 0x18d5: 0x009a, 0x18d6: 0x008a, 0x18d7: 0x00ba,
892 0x18d8: 0x00aa, 0x18d9: 0x000a, 0x18da: 0x000a, 0x18db: 0x000a, 0x18dc: 0x000a, 0x18dd: 0x000a,
893 0x18de: 0x000a, 0x18df: 0x000a, 0x18e0: 0x000a, 0x18e1: 0x000a, 0x18e2: 0x000a, 0x18e3: 0x000a,
894 0x18e4: 0x000a, 0x18e5: 0x000a, 0x18e6: 0x000a, 0x18e7: 0x000a, 0x18e8: 0x000a, 0x18e9: 0x000a,
895 0x18ea: 0x000a, 0x18eb: 0x000a, 0x18ec: 0x000a, 0x18ed: 0x000a, 0x18ee: 0x000a, 0x18ef: 0x000a,
896 0x18f0: 0x000a, 0x18f1: 0x000a, 0x18f2: 0x000a, 0x18f3: 0x000a, 0x18f4: 0x000a, 0x18f5: 0x000a,
897 0x18f6: 0x000a, 0x18f7: 0x000a, 0x18f8: 0x000a, 0x18f9: 0x000a, 0x18fa: 0x000a, 0x18fb: 0x000a,
898 0x18fc: 0x000a, 0x18fd: 0x000a, 0x18fe: 0x000a, 0x18ff: 0x000a,
899 // Block 0x64, offset 0x1900
900 0x1900: 0x000a, 0x1901: 0x000a, 0x1902: 0x000a, 0x1903: 0x000a, 0x1904: 0x000a, 0x1905: 0x000a,
901 0x1906: 0x000a, 0x1907: 0x000a, 0x1908: 0x000a, 0x1909: 0x000a, 0x190a: 0x000a, 0x190b: 0x000a,
902 0x190c: 0x000a, 0x190d: 0x000a, 0x190e: 0x000a, 0x190f: 0x000a, 0x1910: 0x000a, 0x1911: 0x000a,
903 0x1912: 0x000a, 0x1913: 0x000a, 0x1914: 0x000a, 0x1915: 0x000a, 0x1916: 0x000a, 0x1917: 0x000a,
904 0x1918: 0x003a, 0x1919: 0x002a, 0x191a: 0x003a, 0x191b: 0x002a, 0x191c: 0x000a, 0x191d: 0x000a,
905 0x191e: 0x000a, 0x191f: 0x000a, 0x1920: 0x000a, 0x1921: 0x000a, 0x1922: 0x000a, 0x1923: 0x000a,
906 0x1924: 0x000a, 0x1925: 0x000a, 0x1926: 0x000a, 0x1927: 0x000a, 0x1928: 0x000a, 0x1929: 0x000a,
907 0x192a: 0x000a, 0x192b: 0x000a, 0x192c: 0x000a, 0x192d: 0x000a, 0x192e: 0x000a, 0x192f: 0x000a,
908 0x1930: 0x000a, 0x1931: 0x000a, 0x1932: 0x000a, 0x1933: 0x000a, 0x1934: 0x000a, 0x1935: 0x000a,
909 0x1936: 0x000a, 0x1937: 0x000a, 0x1938: 0x000a, 0x1939: 0x000a, 0x193a: 0x000a, 0x193b: 0x000a,
910 0x193c: 0x003a, 0x193d: 0x002a, 0x193e: 0x000a, 0x193f: 0x000a,
911 // Block 0x65, offset 0x1940
912 0x1940: 0x000a, 0x1941: 0x000a, 0x1942: 0x000a, 0x1943: 0x000a, 0x1944: 0x000a, 0x1945: 0x000a,
913 0x1946: 0x000a, 0x1947: 0x000a, 0x1948: 0x000a, 0x1949: 0x000a, 0x194a: 0x000a, 0x194b: 0x000a,
914 0x194c: 0x000a, 0x194d: 0x000a, 0x194e: 0x000a, 0x194f: 0x000a, 0x1950: 0x000a, 0x1951: 0x000a,
915 0x1952: 0x000a, 0x1953: 0x000a, 0x1954: 0x000a, 0x1955: 0x000a, 0x1956: 0x000a, 0x1957: 0x000a,
916 0x1958: 0x000a, 0x1959: 0x000a, 0x195a: 0x000a, 0x195b: 0x000a, 0x195c: 0x000a, 0x195d: 0x000a,
917 0x195e: 0x000a, 0x195f: 0x000a, 0x1960: 0x000a, 0x1961: 0x000a, 0x1962: 0x000a, 0x1963: 0x000a,
918 0x1964: 0x000a, 0x1965: 0x000a, 0x1966: 0x000a, 0x1967: 0x000a, 0x1968: 0x000a, 0x1969: 0x000a,
919 0x196a: 0x000a, 0x196b: 0x000a, 0x196c: 0x000a, 0x196d: 0x000a, 0x196e: 0x000a, 0x196f: 0x000a,
920 0x1970: 0x000a, 0x1971: 0x000a, 0x1972: 0x000a, 0x1973: 0x000a,
921 0x1976: 0x000a, 0x1977: 0x000a, 0x1978: 0x000a, 0x1979: 0x000a, 0x197a: 0x000a, 0x197b: 0x000a,
922 0x197c: 0x000a, 0x197d: 0x000a, 0x197e: 0x000a, 0x197f: 0x000a,
923 // Block 0x66, offset 0x1980
924 0x1980: 0x000a, 0x1981: 0x000a, 0x1982: 0x000a, 0x1983: 0x000a, 0x1984: 0x000a, 0x1985: 0x000a,
925 0x1986: 0x000a, 0x1987: 0x000a, 0x1988: 0x000a, 0x1989: 0x000a, 0x198a: 0x000a, 0x198b: 0x000a,
926 0x198c: 0x000a, 0x198d: 0x000a, 0x198e: 0x000a, 0x198f: 0x000a, 0x1990: 0x000a, 0x1991: 0x000a,
927 0x1992: 0x000a, 0x1993: 0x000a, 0x1994: 0x000a, 0x1995: 0x000a,
928 0x1998: 0x000a, 0x1999: 0x000a, 0x199a: 0x000a, 0x199b: 0x000a, 0x199c: 0x000a, 0x199d: 0x000a,
929 0x199e: 0x000a, 0x199f: 0x000a, 0x19a0: 0x000a, 0x19a1: 0x000a, 0x19a2: 0x000a, 0x19a3: 0x000a,
930 0x19a4: 0x000a, 0x19a5: 0x000a, 0x19a6: 0x000a, 0x19a7: 0x000a, 0x19a8: 0x000a, 0x19a9: 0x000a,
931 0x19aa: 0x000a, 0x19ab: 0x000a, 0x19ac: 0x000a, 0x19ad: 0x000a, 0x19ae: 0x000a, 0x19af: 0x000a,
932 0x19b0: 0x000a, 0x19b1: 0x000a, 0x19b2: 0x000a, 0x19b3: 0x000a, 0x19b4: 0x000a, 0x19b5: 0x000a,
933 0x19b6: 0x000a, 0x19b7: 0x000a, 0x19b8: 0x000a, 0x19b9: 0x000a,
934 0x19bd: 0x000a, 0x19be: 0x000a, 0x19bf: 0x000a,
935 // Block 0x67, offset 0x19c0
936 0x19c0: 0x000a, 0x19c1: 0x000a, 0x19c2: 0x000a, 0x19c3: 0x000a, 0x19c4: 0x000a, 0x19c5: 0x000a,
937 0x19c6: 0x000a, 0x19c7: 0x000a, 0x19c8: 0x000a, 0x19ca: 0x000a, 0x19cb: 0x000a,
938 0x19cc: 0x000a, 0x19cd: 0x000a, 0x19ce: 0x000a, 0x19cf: 0x000a, 0x19d0: 0x000a, 0x19d1: 0x000a,
939 0x19ec: 0x000a, 0x19ed: 0x000a, 0x19ee: 0x000a, 0x19ef: 0x000a,
940 // Block 0x68, offset 0x1a00
941 0x1a25: 0x000a, 0x1a26: 0x000a, 0x1a27: 0x000a, 0x1a28: 0x000a, 0x1a29: 0x000a,
942 0x1a2a: 0x000a, 0x1a2f: 0x000c,
943 0x1a30: 0x000c, 0x1a31: 0x000c,
944 0x1a39: 0x000a, 0x1a3a: 0x000a, 0x1a3b: 0x000a,
945 0x1a3c: 0x000a, 0x1a3d: 0x000a, 0x1a3e: 0x000a, 0x1a3f: 0x000a,
946 // Block 0x69, offset 0x1a40
947 0x1a7f: 0x000c,
948 // Block 0x6a, offset 0x1a80
949 0x1aa0: 0x000c, 0x1aa1: 0x000c, 0x1aa2: 0x000c, 0x1aa3: 0x000c,
950 0x1aa4: 0x000c, 0x1aa5: 0x000c, 0x1aa6: 0x000c, 0x1aa7: 0x000c, 0x1aa8: 0x000c, 0x1aa9: 0x000c,
951 0x1aaa: 0x000c, 0x1aab: 0x000c, 0x1aac: 0x000c, 0x1aad: 0x000c, 0x1aae: 0x000c, 0x1aaf: 0x000c,
952 0x1ab0: 0x000c, 0x1ab1: 0x000c, 0x1ab2: 0x000c, 0x1ab3: 0x000c, 0x1ab4: 0x000c, 0x1ab5: 0x000c,
953 0x1ab6: 0x000c, 0x1ab7: 0x000c, 0x1ab8: 0x000c, 0x1ab9: 0x000c, 0x1aba: 0x000c, 0x1abb: 0x000c,
954 0x1abc: 0x000c, 0x1abd: 0x000c, 0x1abe: 0x000c, 0x1abf: 0x000c,
955 // Block 0x6b, offset 0x1ac0
956 0x1ac0: 0x000a, 0x1ac1: 0x000a, 0x1ac2: 0x000a, 0x1ac3: 0x000a, 0x1ac4: 0x000a, 0x1ac5: 0x000a,
957 0x1ac6: 0x000a, 0x1ac7: 0x000a, 0x1ac8: 0x000a, 0x1ac9: 0x000a, 0x1aca: 0x000a, 0x1acb: 0x000a,
958 0x1acc: 0x000a, 0x1acd: 0x000a, 0x1ace: 0x000a, 0x1acf: 0x000a, 0x1ad0: 0x000a, 0x1ad1: 0x000a,
959 0x1ad2: 0x000a, 0x1ad3: 0x000a, 0x1ad4: 0x000a, 0x1ad5: 0x000a, 0x1ad6: 0x000a, 0x1ad7: 0x000a,
960 0x1ad8: 0x000a, 0x1ad9: 0x000a, 0x1ada: 0x000a, 0x1adb: 0x000a, 0x1adc: 0x000a, 0x1add: 0x000a,
961 0x1ade: 0x000a, 0x1adf: 0x000a, 0x1ae0: 0x000a, 0x1ae1: 0x000a, 0x1ae2: 0x003a, 0x1ae3: 0x002a,
962 0x1ae4: 0x003a, 0x1ae5: 0x002a, 0x1ae6: 0x003a, 0x1ae7: 0x002a, 0x1ae8: 0x003a, 0x1ae9: 0x002a,
963 0x1aea: 0x000a, 0x1aeb: 0x000a, 0x1aec: 0x000a, 0x1aed: 0x000a, 0x1aee: 0x000a, 0x1aef: 0x000a,
964 0x1af0: 0x000a, 0x1af1: 0x000a, 0x1af2: 0x000a, 0x1af3: 0x000a, 0x1af4: 0x000a, 0x1af5: 0x000a,
965 0x1af6: 0x000a, 0x1af7: 0x000a, 0x1af8: 0x000a, 0x1af9: 0x000a, 0x1afa: 0x000a, 0x1afb: 0x000a,
966 0x1afc: 0x000a, 0x1afd: 0x000a, 0x1afe: 0x000a, 0x1aff: 0x000a,
967 // Block 0x6c, offset 0x1b00
968 0x1b00: 0x000a, 0x1b01: 0x000a, 0x1b02: 0x000a, 0x1b03: 0x000a, 0x1b04: 0x000a,
969 // Block 0x6d, offset 0x1b40
970 0x1b40: 0x000a, 0x1b41: 0x000a, 0x1b42: 0x000a, 0x1b43: 0x000a, 0x1b44: 0x000a, 0x1b45: 0x000a,
971 0x1b46: 0x000a, 0x1b47: 0x000a, 0x1b48: 0x000a, 0x1b49: 0x000a, 0x1b4a: 0x000a, 0x1b4b: 0x000a,
972 0x1b4c: 0x000a, 0x1b4d: 0x000a, 0x1b4e: 0x000a, 0x1b4f: 0x000a, 0x1b50: 0x000a, 0x1b51: 0x000a,
973 0x1b52: 0x000a, 0x1b53: 0x000a, 0x1b54: 0x000a, 0x1b55: 0x000a, 0x1b56: 0x000a, 0x1b57: 0x000a,
974 0x1b58: 0x000a, 0x1b59: 0x000a, 0x1b5b: 0x000a, 0x1b5c: 0x000a, 0x1b5d: 0x000a,
975 0x1b5e: 0x000a, 0x1b5f: 0x000a, 0x1b60: 0x000a, 0x1b61: 0x000a, 0x1b62: 0x000a, 0x1b63: 0x000a,
976 0x1b64: 0x000a, 0x1b65: 0x000a, 0x1b66: 0x000a, 0x1b67: 0x000a, 0x1b68: 0x000a, 0x1b69: 0x000a,
977 0x1b6a: 0x000a, 0x1b6b: 0x000a, 0x1b6c: 0x000a, 0x1b6d: 0x000a, 0x1b6e: 0x000a, 0x1b6f: 0x000a,
978 0x1b70: 0x000a, 0x1b71: 0x000a, 0x1b72: 0x000a, 0x1b73: 0x000a, 0x1b74: 0x000a, 0x1b75: 0x000a,
979 0x1b76: 0x000a, 0x1b77: 0x000a, 0x1b78: 0x000a, 0x1b79: 0x000a, 0x1b7a: 0x000a, 0x1b7b: 0x000a,
980 0x1b7c: 0x000a, 0x1b7d: 0x000a, 0x1b7e: 0x000a, 0x1b7f: 0x000a,
981 // Block 0x6e, offset 0x1b80
982 0x1b80: 0x000a, 0x1b81: 0x000a, 0x1b82: 0x000a, 0x1b83: 0x000a, 0x1b84: 0x000a, 0x1b85: 0x000a,
983 0x1b86: 0x000a, 0x1b87: 0x000a, 0x1b88: 0x000a, 0x1b89: 0x000a, 0x1b8a: 0x000a, 0x1b8b: 0x000a,
984 0x1b8c: 0x000a, 0x1b8d: 0x000a, 0x1b8e: 0x000a, 0x1b8f: 0x000a, 0x1b90: 0x000a, 0x1b91: 0x000a,
985 0x1b92: 0x000a, 0x1b93: 0x000a, 0x1b94: 0x000a, 0x1b95: 0x000a, 0x1b96: 0x000a, 0x1b97: 0x000a,
986 0x1b98: 0x000a, 0x1b99: 0x000a, 0x1b9a: 0x000a, 0x1b9b: 0x000a, 0x1b9c: 0x000a, 0x1b9d: 0x000a,
987 0x1b9e: 0x000a, 0x1b9f: 0x000a, 0x1ba0: 0x000a, 0x1ba1: 0x000a, 0x1ba2: 0x000a, 0x1ba3: 0x000a,
988 0x1ba4: 0x000a, 0x1ba5: 0x000a, 0x1ba6: 0x000a, 0x1ba7: 0x000a, 0x1ba8: 0x000a, 0x1ba9: 0x000a,
989 0x1baa: 0x000a, 0x1bab: 0x000a, 0x1bac: 0x000a, 0x1bad: 0x000a, 0x1bae: 0x000a, 0x1baf: 0x000a,
990 0x1bb0: 0x000a, 0x1bb1: 0x000a, 0x1bb2: 0x000a, 0x1bb3: 0x000a,
991 // Block 0x6f, offset 0x1bc0
992 0x1bc0: 0x000a, 0x1bc1: 0x000a, 0x1bc2: 0x000a, 0x1bc3: 0x000a, 0x1bc4: 0x000a, 0x1bc5: 0x000a,
993 0x1bc6: 0x000a, 0x1bc7: 0x000a, 0x1bc8: 0x000a, 0x1bc9: 0x000a, 0x1bca: 0x000a, 0x1bcb: 0x000a,
994 0x1bcc: 0x000a, 0x1bcd: 0x000a, 0x1bce: 0x000a, 0x1bcf: 0x000a, 0x1bd0: 0x000a, 0x1bd1: 0x000a,
995 0x1bd2: 0x000a, 0x1bd3: 0x000a, 0x1bd4: 0x000a, 0x1bd5: 0x000a,
996 0x1bf0: 0x000a, 0x1bf1: 0x000a, 0x1bf2: 0x000a, 0x1bf3: 0x000a, 0x1bf4: 0x000a, 0x1bf5: 0x000a,
997 0x1bf6: 0x000a, 0x1bf7: 0x000a, 0x1bf8: 0x000a, 0x1bf9: 0x000a, 0x1bfa: 0x000a, 0x1bfb: 0x000a,
998 // Block 0x70, offset 0x1c00
999 0x1c00: 0x0009, 0x1c01: 0x000a, 0x1c02: 0x000a, 0x1c03: 0x000a, 0x1c04: 0x000a,
1000 0x1c08: 0x003a, 0x1c09: 0x002a, 0x1c0a: 0x003a, 0x1c0b: 0x002a,
1001 0x1c0c: 0x003a, 0x1c0d: 0x002a, 0x1c0e: 0x003a, 0x1c0f: 0x002a, 0x1c10: 0x003a, 0x1c11: 0x002a,
1002 0x1c12: 0x000a, 0x1c13: 0x000a, 0x1c14: 0x003a, 0x1c15: 0x002a, 0x1c16: 0x003a, 0x1c17: 0x002a,
1003 0x1c18: 0x003a, 0x1c19: 0x002a, 0x1c1a: 0x003a, 0x1c1b: 0x002a, 0x1c1c: 0x000a, 0x1c1d: 0x000a,
1004 0x1c1e: 0x000a, 0x1c1f: 0x000a, 0x1c20: 0x000a,
1005 0x1c2a: 0x000c, 0x1c2b: 0x000c, 0x1c2c: 0x000c, 0x1c2d: 0x000c,
1006 0x1c30: 0x000a,
1007 0x1c36: 0x000a, 0x1c37: 0x000a,
1008 0x1c3d: 0x000a, 0x1c3e: 0x000a, 0x1c3f: 0x000a,
1009 // Block 0x71, offset 0x1c40
1010 0x1c59: 0x000c, 0x1c5a: 0x000c, 0x1c5b: 0x000a, 0x1c5c: 0x000a,
1011 0x1c60: 0x000a,
1012 // Block 0x72, offset 0x1c80
1013 0x1cbb: 0x000a,
1014 // Block 0x73, offset 0x1cc0
1015 0x1cc0: 0x000a, 0x1cc1: 0x000a, 0x1cc2: 0x000a, 0x1cc3: 0x000a, 0x1cc4: 0x000a, 0x1cc5: 0x000a,
1016 0x1cc6: 0x000a, 0x1cc7: 0x000a, 0x1cc8: 0x000a, 0x1cc9: 0x000a, 0x1cca: 0x000a, 0x1ccb: 0x000a,
1017 0x1ccc: 0x000a, 0x1ccd: 0x000a, 0x1cce: 0x000a, 0x1ccf: 0x000a, 0x1cd0: 0x000a, 0x1cd1: 0x000a,
1018 0x1cd2: 0x000a, 0x1cd3: 0x000a, 0x1cd4: 0x000a, 0x1cd5: 0x000a, 0x1cd6: 0x000a, 0x1cd7: 0x000a,
1019 0x1cd8: 0x000a, 0x1cd9: 0x000a, 0x1cda: 0x000a, 0x1cdb: 0x000a, 0x1cdc: 0x000a, 0x1cdd: 0x000a,
1020 0x1cde: 0x000a, 0x1cdf: 0x000a, 0x1ce0: 0x000a, 0x1ce1: 0x000a, 0x1ce2: 0x000a, 0x1ce3: 0x000a,
1021 // Block 0x74, offset 0x1d00
1022 0x1d1d: 0x000a,
1023 0x1d1e: 0x000a,
1024 // Block 0x75, offset 0x1d40
1025 0x1d50: 0x000a, 0x1d51: 0x000a,
1026 0x1d52: 0x000a, 0x1d53: 0x000a, 0x1d54: 0x000a, 0x1d55: 0x000a, 0x1d56: 0x000a, 0x1d57: 0x000a,
1027 0x1d58: 0x000a, 0x1d59: 0x000a, 0x1d5a: 0x000a, 0x1d5b: 0x000a, 0x1d5c: 0x000a, 0x1d5d: 0x000a,
1028 0x1d5e: 0x000a, 0x1d5f: 0x000a,
1029 0x1d7c: 0x000a, 0x1d7d: 0x000a, 0x1d7e: 0x000a,
1030 // Block 0x76, offset 0x1d80
1031 0x1db1: 0x000a, 0x1db2: 0x000a, 0x1db3: 0x000a, 0x1db4: 0x000a, 0x1db5: 0x000a,
1032 0x1db6: 0x000a, 0x1db7: 0x000a, 0x1db8: 0x000a, 0x1db9: 0x000a, 0x1dba: 0x000a, 0x1dbb: 0x000a,
1033 0x1dbc: 0x000a, 0x1dbd: 0x000a, 0x1dbe: 0x000a, 0x1dbf: 0x000a,
1034 // Block 0x77, offset 0x1dc0
1035 0x1dcc: 0x000a, 0x1dcd: 0x000a, 0x1dce: 0x000a, 0x1dcf: 0x000a,
1036 // Block 0x78, offset 0x1e00
1037 0x1e37: 0x000a, 0x1e38: 0x000a, 0x1e39: 0x000a, 0x1e3a: 0x000a,
1038 // Block 0x79, offset 0x1e40
1039 0x1e5e: 0x000a, 0x1e5f: 0x000a,
1040 0x1e7f: 0x000a,
1041 // Block 0x7a, offset 0x1e80
1042 0x1e90: 0x000a, 0x1e91: 0x000a,
1043 0x1e92: 0x000a, 0x1e93: 0x000a, 0x1e94: 0x000a, 0x1e95: 0x000a, 0x1e96: 0x000a, 0x1e97: 0x000a,
1044 0x1e98: 0x000a, 0x1e99: 0x000a, 0x1e9a: 0x000a, 0x1e9b: 0x000a, 0x1e9c: 0x000a, 0x1e9d: 0x000a,
1045 0x1e9e: 0x000a, 0x1e9f: 0x000a, 0x1ea0: 0x000a, 0x1ea1: 0x000a, 0x1ea2: 0x000a, 0x1ea3: 0x000a,
1046 0x1ea4: 0x000a, 0x1ea5: 0x000a, 0x1ea6: 0x000a, 0x1ea7: 0x000a, 0x1ea8: 0x000a, 0x1ea9: 0x000a,
1047 0x1eaa: 0x000a, 0x1eab: 0x000a, 0x1eac: 0x000a, 0x1ead: 0x000a, 0x1eae: 0x000a, 0x1eaf: 0x000a,
1048 0x1eb0: 0x000a, 0x1eb1: 0x000a, 0x1eb2: 0x000a, 0x1eb3: 0x000a, 0x1eb4: 0x000a, 0x1eb5: 0x000a,
1049 0x1eb6: 0x000a, 0x1eb7: 0x000a, 0x1eb8: 0x000a, 0x1eb9: 0x000a, 0x1eba: 0x000a, 0x1ebb: 0x000a,
1050 0x1ebc: 0x000a, 0x1ebd: 0x000a, 0x1ebe: 0x000a, 0x1ebf: 0x000a,
1051 // Block 0x7b, offset 0x1ec0
1052 0x1ec0: 0x000a, 0x1ec1: 0x000a, 0x1ec2: 0x000a, 0x1ec3: 0x000a, 0x1ec4: 0x000a, 0x1ec5: 0x000a,
1053 0x1ec6: 0x000a,
1054 // Block 0x7c, offset 0x1f00
1055 0x1f0d: 0x000a, 0x1f0e: 0x000a, 0x1f0f: 0x000a,
1056 // Block 0x7d, offset 0x1f40
1057 0x1f6f: 0x000c,
1058 0x1f70: 0x000c, 0x1f71: 0x000c, 0x1f72: 0x000c, 0x1f73: 0x000a, 0x1f74: 0x000c, 0x1f75: 0x000c,
1059 0x1f76: 0x000c, 0x1f77: 0x000c, 0x1f78: 0x000c, 0x1f79: 0x000c, 0x1f7a: 0x000c, 0x1f7b: 0x000c,
1060 0x1f7c: 0x000c, 0x1f7d: 0x000c, 0x1f7e: 0x000a, 0x1f7f: 0x000a,
1061 // Block 0x7e, offset 0x1f80
1062 0x1f9e: 0x000c, 0x1f9f: 0x000c,
1063 // Block 0x7f, offset 0x1fc0
1064 0x1ff0: 0x000c, 0x1ff1: 0x000c,
1065 // Block 0x80, offset 0x2000
1066 0x2000: 0x000a, 0x2001: 0x000a, 0x2002: 0x000a, 0x2003: 0x000a, 0x2004: 0x000a, 0x2005: 0x000a,
1067 0x2006: 0x000a, 0x2007: 0x000a, 0x2008: 0x000a, 0x2009: 0x000a, 0x200a: 0x000a, 0x200b: 0x000a,
1068 0x200c: 0x000a, 0x200d: 0x000a, 0x200e: 0x000a, 0x200f: 0x000a, 0x2010: 0x000a, 0x2011: 0x000a,
1069 0x2012: 0x000a, 0x2013: 0x000a, 0x2014: 0x000a, 0x2015: 0x000a, 0x2016: 0x000a, 0x2017: 0x000a,
1070 0x2018: 0x000a, 0x2019: 0x000a, 0x201a: 0x000a, 0x201b: 0x000a, 0x201c: 0x000a, 0x201d: 0x000a,
1071 0x201e: 0x000a, 0x201f: 0x000a, 0x2020: 0x000a, 0x2021: 0x000a,
1072 // Block 0x81, offset 0x2040
1073 0x2048: 0x000a,
1074 // Block 0x82, offset 0x2080
1075 0x2082: 0x000c,
1076 0x2086: 0x000c, 0x208b: 0x000c,
1077 0x20a5: 0x000c, 0x20a6: 0x000c, 0x20a8: 0x000a, 0x20a9: 0x000a,
1078 0x20aa: 0x000a, 0x20ab: 0x000a,
1079 0x20b8: 0x0004, 0x20b9: 0x0004,
1080 // Block 0x83, offset 0x20c0
1081 0x20f4: 0x000a, 0x20f5: 0x000a,
1082 0x20f6: 0x000a, 0x20f7: 0x000a,
1083 // Block 0x84, offset 0x2100
1084 0x2104: 0x000c, 0x2105: 0x000c,
1085 0x2120: 0x000c, 0x2121: 0x000c, 0x2122: 0x000c, 0x2123: 0x000c,
1086 0x2124: 0x000c, 0x2125: 0x000c, 0x2126: 0x000c, 0x2127: 0x000c, 0x2128: 0x000c, 0x2129: 0x000c,
1087 0x212a: 0x000c, 0x212b: 0x000c, 0x212c: 0x000c, 0x212d: 0x000c, 0x212e: 0x000c, 0x212f: 0x000c,
1088 0x2130: 0x000c, 0x2131: 0x000c,
1089 // Block 0x85, offset 0x2140
1090 0x2166: 0x000c, 0x2167: 0x000c, 0x2168: 0x000c, 0x2169: 0x000c,
1091 0x216a: 0x000c, 0x216b: 0x000c, 0x216c: 0x000c, 0x216d: 0x000c,
1092 // Block 0x86, offset 0x2180
1093 0x2187: 0x000c, 0x2188: 0x000c, 0x2189: 0x000c, 0x218a: 0x000c, 0x218b: 0x000c,
1094 0x218c: 0x000c, 0x218d: 0x000c, 0x218e: 0x000c, 0x218f: 0x000c, 0x2190: 0x000c, 0x2191: 0x000c,
1095 // Block 0x87, offset 0x21c0
1096 0x21c0: 0x000c, 0x21c1: 0x000c, 0x21c2: 0x000c,
1097 0x21f3: 0x000c,
1098 0x21f6: 0x000c, 0x21f7: 0x000c, 0x21f8: 0x000c, 0x21f9: 0x000c,
1099 0x21fc: 0x000c,
1100 // Block 0x88, offset 0x2200
1101 0x2225: 0x000c,
1102 // Block 0x89, offset 0x2240
1103 0x2269: 0x000c,
1104 0x226a: 0x000c, 0x226b: 0x000c, 0x226c: 0x000c, 0x226d: 0x000c, 0x226e: 0x000c,
1105 0x2271: 0x000c, 0x2272: 0x000c, 0x2275: 0x000c,
1106 0x2276: 0x000c,
1107 // Block 0x8a, offset 0x2280
1108 0x2283: 0x000c,
1109 0x228c: 0x000c,
1110 0x22bc: 0x000c,
1111 // Block 0x8b, offset 0x22c0
1112 0x22f0: 0x000c, 0x22f2: 0x000c, 0x22f3: 0x000c, 0x22f4: 0x000c,
1113 0x22f7: 0x000c, 0x22f8: 0x000c,
1114 0x22fe: 0x000c, 0x22ff: 0x000c,
1115 // Block 0x8c, offset 0x2300
1116 0x2301: 0x000c,
1117 0x232c: 0x000c, 0x232d: 0x000c,
1118 0x2336: 0x000c,
1119 // Block 0x8d, offset 0x2340
1120 0x2365: 0x000c, 0x2368: 0x000c,
1121 0x236d: 0x000c,
1122 // Block 0x8e, offset 0x2380
1123 0x239d: 0x0001,
1124 0x239e: 0x000c, 0x239f: 0x0001, 0x23a0: 0x0001, 0x23a1: 0x0001, 0x23a2: 0x0001, 0x23a3: 0x0001,
1125 0x23a4: 0x0001, 0x23a5: 0x0001, 0x23a6: 0x0001, 0x23a7: 0x0001, 0x23a8: 0x0001, 0x23a9: 0x0003,
1126 0x23aa: 0x0001, 0x23ab: 0x0001, 0x23ac: 0x0001, 0x23ad: 0x0001, 0x23ae: 0x0001, 0x23af: 0x0001,
1127 0x23b0: 0x0001, 0x23b1: 0x0001, 0x23b2: 0x0001, 0x23b3: 0x0001, 0x23b4: 0x0001, 0x23b5: 0x0001,
1128 0x23b6: 0x0001, 0x23b7: 0x0001, 0x23b8: 0x0001, 0x23b9: 0x0001, 0x23ba: 0x0001, 0x23bb: 0x0001,
1129 0x23bc: 0x0001, 0x23bd: 0x0001, 0x23be: 0x0001, 0x23bf: 0x0001,
1130 // Block 0x8f, offset 0x23c0
1131 0x23c0: 0x0001, 0x23c1: 0x0001, 0x23c2: 0x0001, 0x23c3: 0x0001, 0x23c4: 0x0001, 0x23c5: 0x0001,
1132 0x23c6: 0x0001, 0x23c7: 0x0001, 0x23c8: 0x0001, 0x23c9: 0x0001, 0x23ca: 0x0001, 0x23cb: 0x0001,
1133 0x23cc: 0x0001, 0x23cd: 0x0001, 0x23ce: 0x0001, 0x23cf: 0x0001, 0x23d0: 0x000d, 0x23d1: 0x000d,
1134 0x23d2: 0x000d, 0x23d3: 0x000d, 0x23d4: 0x000d, 0x23d5: 0x000d, 0x23d6: 0x000d, 0x23d7: 0x000d,
1135 0x23d8: 0x000d, 0x23d9: 0x000d, 0x23da: 0x000d, 0x23db: 0x000d, 0x23dc: 0x000d, 0x23dd: 0x000d,
1136 0x23de: 0x000d, 0x23df: 0x000d, 0x23e0: 0x000d, 0x23e1: 0x000d, 0x23e2: 0x000d, 0x23e3: 0x000d,
1137 0x23e4: 0x000d, 0x23e5: 0x000d, 0x23e6: 0x000d, 0x23e7: 0x000d, 0x23e8: 0x000d, 0x23e9: 0x000d,
1138 0x23ea: 0x000d, 0x23eb: 0x000d, 0x23ec: 0x000d, 0x23ed: 0x000d, 0x23ee: 0x000d, 0x23ef: 0x000d,
1139 0x23f0: 0x000d, 0x23f1: 0x000d, 0x23f2: 0x000d, 0x23f3: 0x000d, 0x23f4: 0x000d, 0x23f5: 0x000d,
1140 0x23f6: 0x000d, 0x23f7: 0x000d, 0x23f8: 0x000d, 0x23f9: 0x000d, 0x23fa: 0x000d, 0x23fb: 0x000d,
1141 0x23fc: 0x000d, 0x23fd: 0x000d, 0x23fe: 0x000d, 0x23ff: 0x000d,
1142 // Block 0x90, offset 0x2400
1143 0x2400: 0x000d, 0x2401: 0x000d, 0x2402: 0x000d, 0x2403: 0x000d, 0x2404: 0x000d, 0x2405: 0x000d,
1144 0x2406: 0x000d, 0x2407: 0x000d, 0x2408: 0x000d, 0x2409: 0x000d, 0x240a: 0x000d, 0x240b: 0x000d,
1145 0x240c: 0x000d, 0x240d: 0x000d, 0x240e: 0x000d, 0x240f: 0x000d, 0x2410: 0x000d, 0x2411: 0x000d,
1146 0x2412: 0x000d, 0x2413: 0x000d, 0x2414: 0x000d, 0x2415: 0x000d, 0x2416: 0x000d, 0x2417: 0x000d,
1147 0x2418: 0x000d, 0x2419: 0x000d, 0x241a: 0x000d, 0x241b: 0x000d, 0x241c: 0x000d, 0x241d: 0x000d,
1148 0x241e: 0x000d, 0x241f: 0x000d, 0x2420: 0x000d, 0x2421: 0x000d, 0x2422: 0x000d, 0x2423: 0x000d,
1149 0x2424: 0x000d, 0x2425: 0x000d, 0x2426: 0x000d, 0x2427: 0x000d, 0x2428: 0x000d, 0x2429: 0x000d,
1150 0x242a: 0x000d, 0x242b: 0x000d, 0x242c: 0x000d, 0x242d: 0x000d, 0x242e: 0x000d, 0x242f: 0x000d,
1151 0x2430: 0x000d, 0x2431: 0x000d, 0x2432: 0x000d, 0x2433: 0x000d, 0x2434: 0x000d, 0x2435: 0x000d,
1152 0x2436: 0x000d, 0x2437: 0x000d, 0x2438: 0x000d, 0x2439: 0x000d, 0x243a: 0x000d, 0x243b: 0x000d,
1153 0x243c: 0x000d, 0x243d: 0x000d, 0x243e: 0x000a, 0x243f: 0x000a,
1154 // Block 0x91, offset 0x2440
1155 0x2440: 0x000d, 0x2441: 0x000d, 0x2442: 0x000d, 0x2443: 0x000d, 0x2444: 0x000d, 0x2445: 0x000d,
1156 0x2446: 0x000d, 0x2447: 0x000d, 0x2448: 0x000d, 0x2449: 0x000d, 0x244a: 0x000d, 0x244b: 0x000d,
1157 0x244c: 0x000d, 0x244d: 0x000d, 0x244e: 0x000d, 0x244f: 0x000d, 0x2450: 0x000b, 0x2451: 0x000b,
1158 0x2452: 0x000b, 0x2453: 0x000b, 0x2454: 0x000b, 0x2455: 0x000b, 0x2456: 0x000b, 0x2457: 0x000b,
1159 0x2458: 0x000b, 0x2459: 0x000b, 0x245a: 0x000b, 0x245b: 0x000b, 0x245c: 0x000b, 0x245d: 0x000b,
1160 0x245e: 0x000b, 0x245f: 0x000b, 0x2460: 0x000b, 0x2461: 0x000b, 0x2462: 0x000b, 0x2463: 0x000b,
1161 0x2464: 0x000b, 0x2465: 0x000b, 0x2466: 0x000b, 0x2467: 0x000b, 0x2468: 0x000b, 0x2469: 0x000b,
1162 0x246a: 0x000b, 0x246b: 0x000b, 0x246c: 0x000b, 0x246d: 0x000b, 0x246e: 0x000b, 0x246f: 0x000b,
1163 0x2470: 0x000d, 0x2471: 0x000d, 0x2472: 0x000d, 0x2473: 0x000d, 0x2474: 0x000d, 0x2475: 0x000d,
1164 0x2476: 0x000d, 0x2477: 0x000d, 0x2478: 0x000d, 0x2479: 0x000d, 0x247a: 0x000d, 0x247b: 0x000d,
1165 0x247c: 0x000d, 0x247d: 0x000a, 0x247e: 0x000d, 0x247f: 0x000d,
1166 // Block 0x92, offset 0x2480
1167 0x2480: 0x000c, 0x2481: 0x000c, 0x2482: 0x000c, 0x2483: 0x000c, 0x2484: 0x000c, 0x2485: 0x000c,
1168 0x2486: 0x000c, 0x2487: 0x000c, 0x2488: 0x000c, 0x2489: 0x000c, 0x248a: 0x000c, 0x248b: 0x000c,
1169 0x248c: 0x000c, 0x248d: 0x000c, 0x248e: 0x000c, 0x248f: 0x000c, 0x2490: 0x000a, 0x2491: 0x000a,
1170 0x2492: 0x000a, 0x2493: 0x000a, 0x2494: 0x000a, 0x2495: 0x000a, 0x2496: 0x000a, 0x2497: 0x000a,
1171 0x2498: 0x000a, 0x2499: 0x000a,
1172 0x24a0: 0x000c, 0x24a1: 0x000c, 0x24a2: 0x000c, 0x24a3: 0x000c,
1173 0x24a4: 0x000c, 0x24a5: 0x000c, 0x24a6: 0x000c, 0x24a7: 0x000c, 0x24a8: 0x000c, 0x24a9: 0x000c,
1174 0x24aa: 0x000c, 0x24ab: 0x000c, 0x24ac: 0x000c, 0x24ad: 0x000c, 0x24ae: 0x000c, 0x24af: 0x000c,
1175 0x24b0: 0x000a, 0x24b1: 0x000a, 0x24b2: 0x000a, 0x24b3: 0x000a, 0x24b4: 0x000a, 0x24b5: 0x000a,
1176 0x24b6: 0x000a, 0x24b7: 0x000a, 0x24b8: 0x000a, 0x24b9: 0x000a, 0x24ba: 0x000a, 0x24bb: 0x000a,
1177 0x24bc: 0x000a, 0x24bd: 0x000a, 0x24be: 0x000a, 0x24bf: 0x000a,
1178 // Block 0x93, offset 0x24c0
1179 0x24c0: 0x000a, 0x24c1: 0x000a, 0x24c2: 0x000a, 0x24c3: 0x000a, 0x24c4: 0x000a, 0x24c5: 0x000a,
1180 0x24c6: 0x000a, 0x24c7: 0x000a, 0x24c8: 0x000a, 0x24c9: 0x000a, 0x24ca: 0x000a, 0x24cb: 0x000a,
1181 0x24cc: 0x000a, 0x24cd: 0x000a, 0x24ce: 0x000a, 0x24cf: 0x000a, 0x24d0: 0x0006, 0x24d1: 0x000a,
1182 0x24d2: 0x0006, 0x24d4: 0x000a, 0x24d5: 0x0006, 0x24d6: 0x000a, 0x24d7: 0x000a,
1183 0x24d8: 0x000a, 0x24d9: 0x009a, 0x24da: 0x008a, 0x24db: 0x007a, 0x24dc: 0x006a, 0x24dd: 0x009a,
1184 0x24de: 0x008a, 0x24df: 0x0004, 0x24e0: 0x000a, 0x24e1: 0x000a, 0x24e2: 0x0003, 0x24e3: 0x0003,
1185 0x24e4: 0x000a, 0x24e5: 0x000a, 0x24e6: 0x000a, 0x24e8: 0x000a, 0x24e9: 0x0004,
1186 0x24ea: 0x0004, 0x24eb: 0x000a,
1187 0x24f0: 0x000d, 0x24f1: 0x000d, 0x24f2: 0x000d, 0x24f3: 0x000d, 0x24f4: 0x000d, 0x24f5: 0x000d,
1188 0x24f6: 0x000d, 0x24f7: 0x000d, 0x24f8: 0x000d, 0x24f9: 0x000d, 0x24fa: 0x000d, 0x24fb: 0x000d,
1189 0x24fc: 0x000d, 0x24fd: 0x000d, 0x24fe: 0x000d, 0x24ff: 0x000d,
1190 // Block 0x94, offset 0x2500
1191 0x2500: 0x000d, 0x2501: 0x000d, 0x2502: 0x000d, 0x2503: 0x000d, 0x2504: 0x000d, 0x2505: 0x000d,
1192 0x2506: 0x000d, 0x2507: 0x000d, 0x2508: 0x000d, 0x2509: 0x000d, 0x250a: 0x000d, 0x250b: 0x000d,
1193 0x250c: 0x000d, 0x250d: 0x000d, 0x250e: 0x000d, 0x250f: 0x000d, 0x2510: 0x000d, 0x2511: 0x000d,
1194 0x2512: 0x000d, 0x2513: 0x000d, 0x2514: 0x000d, 0x2515: 0x000d, 0x2516: 0x000d, 0x2517: 0x000d,
1195 0x2518: 0x000d, 0x2519: 0x000d, 0x251a: 0x000d, 0x251b: 0x000d, 0x251c: 0x000d, 0x251d: 0x000d,
1196 0x251e: 0x000d, 0x251f: 0x000d, 0x2520: 0x000d, 0x2521: 0x000d, 0x2522: 0x000d, 0x2523: 0x000d,
1197 0x2524: 0x000d, 0x2525: 0x000d, 0x2526: 0x000d, 0x2527: 0x000d, 0x2528: 0x000d, 0x2529: 0x000d,
1198 0x252a: 0x000d, 0x252b: 0x000d, 0x252c: 0x000d, 0x252d: 0x000d, 0x252e: 0x000d, 0x252f: 0x000d,
1199 0x2530: 0x000d, 0x2531: 0x000d, 0x2532: 0x000d, 0x2533: 0x000d, 0x2534: 0x000d, 0x2535: 0x000d,
1200 0x2536: 0x000d, 0x2537: 0x000d, 0x2538: 0x000d, 0x2539: 0x000d, 0x253a: 0x000d, 0x253b: 0x000d,
1201 0x253c: 0x000d, 0x253d: 0x000d, 0x253e: 0x000d, 0x253f: 0x000b,
1202 // Block 0x95, offset 0x2540
1203 0x2541: 0x000a, 0x2542: 0x000a, 0x2543: 0x0004, 0x2544: 0x0004, 0x2545: 0x0004,
1204 0x2546: 0x000a, 0x2547: 0x000a, 0x2548: 0x003a, 0x2549: 0x002a, 0x254a: 0x000a, 0x254b: 0x0003,
1205 0x254c: 0x0006, 0x254d: 0x0003, 0x254e: 0x0006, 0x254f: 0x0006, 0x2550: 0x0002, 0x2551: 0x0002,
1206 0x2552: 0x0002, 0x2553: 0x0002, 0x2554: 0x0002, 0x2555: 0x0002, 0x2556: 0x0002, 0x2557: 0x0002,
1207 0x2558: 0x0002, 0x2559: 0x0002, 0x255a: 0x0006, 0x255b: 0x000a, 0x255c: 0x000a, 0x255d: 0x000a,
1208 0x255e: 0x000a, 0x255f: 0x000a, 0x2560: 0x000a,
1209 0x257b: 0x005a,
1210 0x257c: 0x000a, 0x257d: 0x004a, 0x257e: 0x000a, 0x257f: 0x000a,
1211 // Block 0x96, offset 0x2580
1212 0x2580: 0x000a,
1213 0x259b: 0x005a, 0x259c: 0x000a, 0x259d: 0x004a,
1214 0x259e: 0x000a, 0x259f: 0x00fa, 0x25a0: 0x00ea, 0x25a1: 0x000a, 0x25a2: 0x003a, 0x25a3: 0x002a,
1215 0x25a4: 0x000a, 0x25a5: 0x000a,
1216 // Block 0x97, offset 0x25c0
1217 0x25e0: 0x0004, 0x25e1: 0x0004, 0x25e2: 0x000a, 0x25e3: 0x000a,
1218 0x25e4: 0x000a, 0x25e5: 0x0004, 0x25e6: 0x0004, 0x25e8: 0x000a, 0x25e9: 0x000a,
1219 0x25ea: 0x000a, 0x25eb: 0x000a, 0x25ec: 0x000a, 0x25ed: 0x000a, 0x25ee: 0x000a,
1220 0x25f0: 0x000b, 0x25f1: 0x000b, 0x25f2: 0x000b, 0x25f3: 0x000b, 0x25f4: 0x000b, 0x25f5: 0x000b,
1221 0x25f6: 0x000b, 0x25f7: 0x000b, 0x25f8: 0x000b, 0x25f9: 0x000a, 0x25fa: 0x000a, 0x25fb: 0x000a,
1222 0x25fc: 0x000a, 0x25fd: 0x000a, 0x25fe: 0x000b, 0x25ff: 0x000b,
1223 // Block 0x98, offset 0x2600
1224 0x2601: 0x000a,
1225 // Block 0x99, offset 0x2640
1226 0x2640: 0x000a, 0x2641: 0x000a, 0x2642: 0x000a, 0x2643: 0x000a, 0x2644: 0x000a, 0x2645: 0x000a,
1227 0x2646: 0x000a, 0x2647: 0x000a, 0x2648: 0x000a, 0x2649: 0x000a, 0x264a: 0x000a, 0x264b: 0x000a,
1228 0x264c: 0x000a, 0x2650: 0x000a, 0x2651: 0x000a,
1229 0x2652: 0x000a, 0x2653: 0x000a, 0x2654: 0x000a, 0x2655: 0x000a, 0x2656: 0x000a, 0x2657: 0x000a,
1230 0x2658: 0x000a, 0x2659: 0x000a, 0x265a: 0x000a, 0x265b: 0x000a,
1231 0x2660: 0x000a,
1232 // Block 0x9a, offset 0x2680
1233 0x26bd: 0x000c,
1234 // Block 0x9b, offset 0x26c0
1235 0x26e0: 0x000c, 0x26e1: 0x0002, 0x26e2: 0x0002, 0x26e3: 0x0002,
1236 0x26e4: 0x0002, 0x26e5: 0x0002, 0x26e6: 0x0002, 0x26e7: 0x0002, 0x26e8: 0x0002, 0x26e9: 0x0002,
1237 0x26ea: 0x0002, 0x26eb: 0x0002, 0x26ec: 0x0002, 0x26ed: 0x0002, 0x26ee: 0x0002, 0x26ef: 0x0002,
1238 0x26f0: 0x0002, 0x26f1: 0x0002, 0x26f2: 0x0002, 0x26f3: 0x0002, 0x26f4: 0x0002, 0x26f5: 0x0002,
1239 0x26f6: 0x0002, 0x26f7: 0x0002, 0x26f8: 0x0002, 0x26f9: 0x0002, 0x26fa: 0x0002, 0x26fb: 0x0002,
1240 // Block 0x9c, offset 0x2700
1241 0x2736: 0x000c, 0x2737: 0x000c, 0x2738: 0x000c, 0x2739: 0x000c, 0x273a: 0x000c,
1242 // Block 0x9d, offset 0x2740
1243 0x2740: 0x0001, 0x2741: 0x0001, 0x2742: 0x0001, 0x2743: 0x0001, 0x2744: 0x0001, 0x2745: 0x0001,
1244 0x2746: 0x0001, 0x2747: 0x0001, 0x2748: 0x0001, 0x2749: 0x0001, 0x274a: 0x0001, 0x274b: 0x0001,
1245 0x274c: 0x0001, 0x274d: 0x0001, 0x274e: 0x0001, 0x274f: 0x0001, 0x2750: 0x0001, 0x2751: 0x0001,
1246 0x2752: 0x0001, 0x2753: 0x0001, 0x2754: 0x0001, 0x2755: 0x0001, 0x2756: 0x0001, 0x2757: 0x0001,
1247 0x2758: 0x0001, 0x2759: 0x0001, 0x275a: 0x0001, 0x275b: 0x0001, 0x275c: 0x0001, 0x275d: 0x0001,
1248 0x275e: 0x0001, 0x275f: 0x0001, 0x2760: 0x0001, 0x2761: 0x0001, 0x2762: 0x0001, 0x2763: 0x0001,
1249 0x2764: 0x0001, 0x2765: 0x0001, 0x2766: 0x0001, 0x2767: 0x0001, 0x2768: 0x0001, 0x2769: 0x0001,
1250 0x276a: 0x0001, 0x276b: 0x0001, 0x276c: 0x0001, 0x276d: 0x0001, 0x276e: 0x0001, 0x276f: 0x0001,
1251 0x2770: 0x0001, 0x2771: 0x0001, 0x2772: 0x0001, 0x2773: 0x0001, 0x2774: 0x0001, 0x2775: 0x0001,
1252 0x2776: 0x0001, 0x2777: 0x0001, 0x2778: 0x0001, 0x2779: 0x0001, 0x277a: 0x0001, 0x277b: 0x0001,
1253 0x277c: 0x0001, 0x277d: 0x0001, 0x277e: 0x0001, 0x277f: 0x0001,
1254 // Block 0x9e, offset 0x2780
1255 0x2780: 0x0001, 0x2781: 0x0001, 0x2782: 0x0001, 0x2783: 0x0001, 0x2784: 0x0001, 0x2785: 0x0001,
1256 0x2786: 0x0001, 0x2787: 0x0001, 0x2788: 0x0001, 0x2789: 0x0001, 0x278a: 0x0001, 0x278b: 0x0001,
1257 0x278c: 0x0001, 0x278d: 0x0001, 0x278e: 0x0001, 0x278f: 0x0001, 0x2790: 0x0001, 0x2791: 0x0001,
1258 0x2792: 0x0001, 0x2793: 0x0001, 0x2794: 0x0001, 0x2795: 0x0001, 0x2796: 0x0001, 0x2797: 0x0001,
1259 0x2798: 0x0001, 0x2799: 0x0001, 0x279a: 0x0001, 0x279b: 0x0001, 0x279c: 0x0001, 0x279d: 0x0001,
1260 0x279e: 0x0001, 0x279f: 0x000a, 0x27a0: 0x0001, 0x27a1: 0x0001, 0x27a2: 0x0001, 0x27a3: 0x0001,
1261 0x27a4: 0x0001, 0x27a5: 0x0001, 0x27a6: 0x0001, 0x27a7: 0x0001, 0x27a8: 0x0001, 0x27a9: 0x0001,
1262 0x27aa: 0x0001, 0x27ab: 0x0001, 0x27ac: 0x0001, 0x27ad: 0x0001, 0x27ae: 0x0001, 0x27af: 0x0001,
1263 0x27b0: 0x0001, 0x27b1: 0x0001, 0x27b2: 0x0001, 0x27b3: 0x0001, 0x27b4: 0x0001, 0x27b5: 0x0001,
1264 0x27b6: 0x0001, 0x27b7: 0x0001, 0x27b8: 0x0001, 0x27b9: 0x0001, 0x27ba: 0x0001, 0x27bb: 0x0001,
1265 0x27bc: 0x0001, 0x27bd: 0x0001, 0x27be: 0x0001, 0x27bf: 0x0001,
1266 // Block 0x9f, offset 0x27c0
1267 0x27c0: 0x0001, 0x27c1: 0x000c, 0x27c2: 0x000c, 0x27c3: 0x000c, 0x27c4: 0x0001, 0x27c5: 0x000c,
1268 0x27c6: 0x000c, 0x27c7: 0x0001, 0x27c8: 0x0001, 0x27c9: 0x0001, 0x27ca: 0x0001, 0x27cb: 0x0001,
1269 0x27cc: 0x000c, 0x27cd: 0x000c, 0x27ce: 0x000c, 0x27cf: 0x000c, 0x27d0: 0x0001, 0x27d1: 0x0001,
1270 0x27d2: 0x0001, 0x27d3: 0x0001, 0x27d4: 0x0001, 0x27d5: 0x0001, 0x27d6: 0x0001, 0x27d7: 0x0001,
1271 0x27d8: 0x0001, 0x27d9: 0x0001, 0x27da: 0x0001, 0x27db: 0x0001, 0x27dc: 0x0001, 0x27dd: 0x0001,
1272 0x27de: 0x0001, 0x27df: 0x0001, 0x27e0: 0x0001, 0x27e1: 0x0001, 0x27e2: 0x0001, 0x27e3: 0x0001,
1273 0x27e4: 0x0001, 0x27e5: 0x0001, 0x27e6: 0x0001, 0x27e7: 0x0001, 0x27e8: 0x0001, 0x27e9: 0x0001,
1274 0x27ea: 0x0001, 0x27eb: 0x0001, 0x27ec: 0x0001, 0x27ed: 0x0001, 0x27ee: 0x0001, 0x27ef: 0x0001,
1275 0x27f0: 0x0001, 0x27f1: 0x0001, 0x27f2: 0x0001, 0x27f3: 0x0001, 0x27f4: 0x0001, 0x27f5: 0x0001,
1276 0x27f6: 0x0001, 0x27f7: 0x0001, 0x27f8: 0x000c, 0x27f9: 0x000c, 0x27fa: 0x000c, 0x27fb: 0x0001,
1277 0x27fc: 0x0001, 0x27fd: 0x0001, 0x27fe: 0x0001, 0x27ff: 0x000c,
1278 // Block 0xa0, offset 0x2800
1279 0x2800: 0x0001, 0x2801: 0x0001, 0x2802: 0x0001, 0x2803: 0x0001, 0x2804: 0x0001, 0x2805: 0x0001,
1280 0x2806: 0x0001, 0x2807: 0x0001, 0x2808: 0x0001, 0x2809: 0x0001, 0x280a: 0x0001, 0x280b: 0x0001,
1281 0x280c: 0x0001, 0x280d: 0x0001, 0x280e: 0x0001, 0x280f: 0x0001, 0x2810: 0x0001, 0x2811: 0x0001,
1282 0x2812: 0x0001, 0x2813: 0x0001, 0x2814: 0x0001, 0x2815: 0x0001, 0x2816: 0x0001, 0x2817: 0x0001,
1283 0x2818: 0x0001, 0x2819: 0x0001, 0x281a: 0x0001, 0x281b: 0x0001, 0x281c: 0x0001, 0x281d: 0x0001,
1284 0x281e: 0x0001, 0x281f: 0x0001, 0x2820: 0x0001, 0x2821: 0x0001, 0x2822: 0x0001, 0x2823: 0x0001,
1285 0x2824: 0x0001, 0x2825: 0x000c, 0x2826: 0x000c, 0x2827: 0x0001, 0x2828: 0x0001, 0x2829: 0x0001,
1286 0x282a: 0x0001, 0x282b: 0x0001, 0x282c: 0x0001, 0x282d: 0x0001, 0x282e: 0x0001, 0x282f: 0x0001,
1287 0x2830: 0x0001, 0x2831: 0x0001, 0x2832: 0x0001, 0x2833: 0x0001, 0x2834: 0x0001, 0x2835: 0x0001,
1288 0x2836: 0x0001, 0x2837: 0x0001, 0x2838: 0x0001, 0x2839: 0x0001, 0x283a: 0x0001, 0x283b: 0x0001,
1289 0x283c: 0x0001, 0x283d: 0x0001, 0x283e: 0x0001, 0x283f: 0x0001,
1290 // Block 0xa1, offset 0x2840
1291 0x2840: 0x0001, 0x2841: 0x0001, 0x2842: 0x0001, 0x2843: 0x0001, 0x2844: 0x0001, 0x2845: 0x0001,
1292 0x2846: 0x0001, 0x2847: 0x0001, 0x2848: 0x0001, 0x2849: 0x0001, 0x284a: 0x0001, 0x284b: 0x0001,
1293 0x284c: 0x0001, 0x284d: 0x0001, 0x284e: 0x0001, 0x284f: 0x0001, 0x2850: 0x0001, 0x2851: 0x0001,
1294 0x2852: 0x0001, 0x2853: 0x0001, 0x2854: 0x0001, 0x2855: 0x0001, 0x2856: 0x0001, 0x2857: 0x0001,
1295 0x2858: 0x0001, 0x2859: 0x0001, 0x285a: 0x0001, 0x285b: 0x0001, 0x285c: 0x0001, 0x285d: 0x0001,
1296 0x285e: 0x0001, 0x285f: 0x0001, 0x2860: 0x0001, 0x2861: 0x0001, 0x2862: 0x0001, 0x2863: 0x0001,
1297 0x2864: 0x0001, 0x2865: 0x0001, 0x2866: 0x0001, 0x2867: 0x0001, 0x2868: 0x0001, 0x2869: 0x0001,
1298 0x286a: 0x0001, 0x286b: 0x0001, 0x286c: 0x0001, 0x286d: 0x0001, 0x286e: 0x0001, 0x286f: 0x0001,
1299 0x2870: 0x0001, 0x2871: 0x0001, 0x2872: 0x0001, 0x2873: 0x0001, 0x2874: 0x0001, 0x2875: 0x0001,
1300 0x2876: 0x0001, 0x2877: 0x0001, 0x2878: 0x0001, 0x2879: 0x000a, 0x287a: 0x000a, 0x287b: 0x000a,
1301 0x287c: 0x000a, 0x287d: 0x000a, 0x287e: 0x000a, 0x287f: 0x000a,
1302 // Block 0xa2, offset 0x2880
1303 0x2880: 0x0001, 0x2881: 0x0001, 0x2882: 0x0001, 0x2883: 0x0001, 0x2884: 0x0001, 0x2885: 0x0001,
1304 0x2886: 0x0001, 0x2887: 0x0001, 0x2888: 0x0001, 0x2889: 0x0001, 0x288a: 0x0001, 0x288b: 0x0001,
1305 0x288c: 0x0001, 0x288d: 0x0001, 0x288e: 0x0001, 0x288f: 0x0001, 0x2890: 0x0001, 0x2891: 0x0001,
1306 0x2892: 0x0001, 0x2893: 0x0001, 0x2894: 0x0001, 0x2895: 0x0001, 0x2896: 0x0001, 0x2897: 0x0001,
1307 0x2898: 0x0001, 0x2899: 0x0001, 0x289a: 0x0001, 0x289b: 0x0001, 0x289c: 0x0001, 0x289d: 0x0001,
1308 0x289e: 0x0001, 0x289f: 0x0001, 0x28a0: 0x0005, 0x28a1: 0x0005, 0x28a2: 0x0005, 0x28a3: 0x0005,
1309 0x28a4: 0x0005, 0x28a5: 0x0005, 0x28a6: 0x0005, 0x28a7: 0x0005, 0x28a8: 0x0005, 0x28a9: 0x0005,
1310 0x28aa: 0x0005, 0x28ab: 0x0005, 0x28ac: 0x0005, 0x28ad: 0x0005, 0x28ae: 0x0005, 0x28af: 0x0005,
1311 0x28b0: 0x0005, 0x28b1: 0x0005, 0x28b2: 0x0005, 0x28b3: 0x0005, 0x28b4: 0x0005, 0x28b5: 0x0005,
1312 0x28b6: 0x0005, 0x28b7: 0x0005, 0x28b8: 0x0005, 0x28b9: 0x0005, 0x28ba: 0x0005, 0x28bb: 0x0005,
1313 0x28bc: 0x0005, 0x28bd: 0x0005, 0x28be: 0x0005, 0x28bf: 0x0001,
1314 // Block 0xa3, offset 0x28c0
1315 0x28c1: 0x000c,
1316 0x28f8: 0x000c, 0x28f9: 0x000c, 0x28fa: 0x000c, 0x28fb: 0x000c,
1317 0x28fc: 0x000c, 0x28fd: 0x000c, 0x28fe: 0x000c, 0x28ff: 0x000c,
1318 // Block 0xa4, offset 0x2900
1319 0x2900: 0x000c, 0x2901: 0x000c, 0x2902: 0x000c, 0x2903: 0x000c, 0x2904: 0x000c, 0x2905: 0x000c,
1320 0x2906: 0x000c,
1321 0x2912: 0x000a, 0x2913: 0x000a, 0x2914: 0x000a, 0x2915: 0x000a, 0x2916: 0x000a, 0x2917: 0x000a,
1322 0x2918: 0x000a, 0x2919: 0x000a, 0x291a: 0x000a, 0x291b: 0x000a, 0x291c: 0x000a, 0x291d: 0x000a,
1323 0x291e: 0x000a, 0x291f: 0x000a, 0x2920: 0x000a, 0x2921: 0x000a, 0x2922: 0x000a, 0x2923: 0x000a,
1324 0x2924: 0x000a, 0x2925: 0x000a,
1325 0x293f: 0x000c,
1326 // Block 0xa5, offset 0x2940
1327 0x2940: 0x000c, 0x2941: 0x000c,
1328 0x2973: 0x000c, 0x2974: 0x000c, 0x2975: 0x000c,
1329 0x2976: 0x000c, 0x2979: 0x000c, 0x297a: 0x000c,
1330 // Block 0xa6, offset 0x2980
1331 0x2980: 0x000c, 0x2981: 0x000c, 0x2982: 0x000c,
1332 0x29a7: 0x000c, 0x29a8: 0x000c, 0x29a9: 0x000c,
1333 0x29aa: 0x000c, 0x29ab: 0x000c, 0x29ad: 0x000c, 0x29ae: 0x000c, 0x29af: 0x000c,
1334 0x29b0: 0x000c, 0x29b1: 0x000c, 0x29b2: 0x000c, 0x29b3: 0x000c, 0x29b4: 0x000c,
1335 // Block 0xa7, offset 0x29c0
1336 0x29f3: 0x000c,
1337 // Block 0xa8, offset 0x2a00
1338 0x2a00: 0x000c, 0x2a01: 0x000c,
1339 0x2a36: 0x000c, 0x2a37: 0x000c, 0x2a38: 0x000c, 0x2a39: 0x000c, 0x2a3a: 0x000c, 0x2a3b: 0x000c,
1340 0x2a3c: 0x000c, 0x2a3d: 0x000c, 0x2a3e: 0x000c,
1341 // Block 0xa9, offset 0x2a40
1342 0x2a4a: 0x000c, 0x2a4b: 0x000c,
1343 0x2a4c: 0x000c,
1344 // Block 0xaa, offset 0x2a80
1345 0x2aaf: 0x000c,
1346 0x2ab0: 0x000c, 0x2ab1: 0x000c, 0x2ab4: 0x000c,
1347 0x2ab6: 0x000c, 0x2ab7: 0x000c,
1348 0x2abe: 0x000c,
1349 // Block 0xab, offset 0x2ac0
1350 0x2adf: 0x000c, 0x2ae3: 0x000c,
1351 0x2ae4: 0x000c, 0x2ae5: 0x000c, 0x2ae6: 0x000c, 0x2ae7: 0x000c, 0x2ae8: 0x000c, 0x2ae9: 0x000c,
1352 0x2aea: 0x000c,
1353 // Block 0xac, offset 0x2b00
1354 0x2b00: 0x000c, 0x2b01: 0x000c,
1355 0x2b3c: 0x000c,
1356 // Block 0xad, offset 0x2b40
1357 0x2b40: 0x000c,
1358 0x2b66: 0x000c, 0x2b67: 0x000c, 0x2b68: 0x000c, 0x2b69: 0x000c,
1359 0x2b6a: 0x000c, 0x2b6b: 0x000c, 0x2b6c: 0x000c,
1360 0x2b70: 0x000c, 0x2b71: 0x000c, 0x2b72: 0x000c, 0x2b73: 0x000c, 0x2b74: 0x000c,
1361 // Block 0xae, offset 0x2b80
1362 0x2bb8: 0x000c, 0x2bb9: 0x000c, 0x2bba: 0x000c, 0x2bbb: 0x000c,
1363 0x2bbc: 0x000c, 0x2bbd: 0x000c, 0x2bbe: 0x000c, 0x2bbf: 0x000c,
1364 // Block 0xaf, offset 0x2bc0
1365 0x2bc2: 0x000c, 0x2bc3: 0x000c, 0x2bc4: 0x000c,
1366 0x2bc6: 0x000c,
1367 // Block 0xb0, offset 0x2c00
1368 0x2c33: 0x000c, 0x2c34: 0x000c, 0x2c35: 0x000c,
1369 0x2c36: 0x000c, 0x2c37: 0x000c, 0x2c38: 0x000c, 0x2c3a: 0x000c,
1370 0x2c3f: 0x000c,
1371 // Block 0xb1, offset 0x2c40
1372 0x2c40: 0x000c, 0x2c42: 0x000c, 0x2c43: 0x000c,
1373 // Block 0xb2, offset 0x2c80
1374 0x2cb2: 0x000c, 0x2cb3: 0x000c, 0x2cb4: 0x000c, 0x2cb5: 0x000c,
1375 0x2cbc: 0x000c, 0x2cbd: 0x000c, 0x2cbf: 0x000c,
1376 // Block 0xb3, offset 0x2cc0
1377 0x2cc0: 0x000c,
1378 0x2cdc: 0x000c, 0x2cdd: 0x000c,
1379 // Block 0xb4, offset 0x2d00
1380 0x2d33: 0x000c, 0x2d34: 0x000c, 0x2d35: 0x000c,
1381 0x2d36: 0x000c, 0x2d37: 0x000c, 0x2d38: 0x000c, 0x2d39: 0x000c, 0x2d3a: 0x000c,
1382 0x2d3d: 0x000c, 0x2d3f: 0x000c,
1383 // Block 0xb5, offset 0x2d40
1384 0x2d40: 0x000c,
1385 0x2d60: 0x000a, 0x2d61: 0x000a, 0x2d62: 0x000a, 0x2d63: 0x000a,
1386 0x2d64: 0x000a, 0x2d65: 0x000a, 0x2d66: 0x000a, 0x2d67: 0x000a, 0x2d68: 0x000a, 0x2d69: 0x000a,
1387 0x2d6a: 0x000a, 0x2d6b: 0x000a, 0x2d6c: 0x000a,
1388 // Block 0xb6, offset 0x2d80
1389 0x2dab: 0x000c, 0x2dad: 0x000c,
1390 0x2db0: 0x000c, 0x2db1: 0x000c, 0x2db2: 0x000c, 0x2db3: 0x000c, 0x2db4: 0x000c, 0x2db5: 0x000c,
1391 0x2db7: 0x000c,
1392 // Block 0xb7, offset 0x2dc0
1393 0x2ddd: 0x000c,
1394 0x2dde: 0x000c, 0x2ddf: 0x000c, 0x2de2: 0x000c, 0x2de3: 0x000c,
1395 0x2de4: 0x000c, 0x2de5: 0x000c, 0x2de7: 0x000c, 0x2de8: 0x000c, 0x2de9: 0x000c,
1396 0x2dea: 0x000c, 0x2deb: 0x000c,
1397 // Block 0xb8, offset 0x2e00
1398 0x2e30: 0x000c, 0x2e31: 0x000c, 0x2e32: 0x000c, 0x2e33: 0x000c, 0x2e34: 0x000c, 0x2e35: 0x000c,
1399 0x2e36: 0x000c, 0x2e38: 0x000c, 0x2e39: 0x000c, 0x2e3a: 0x000c, 0x2e3b: 0x000c,
1400 0x2e3c: 0x000c, 0x2e3d: 0x000c,
1401 // Block 0xb9, offset 0x2e40
1402 0x2e52: 0x000c, 0x2e53: 0x000c, 0x2e54: 0x000c, 0x2e55: 0x000c, 0x2e56: 0x000c, 0x2e57: 0x000c,
1403 0x2e58: 0x000c, 0x2e59: 0x000c, 0x2e5a: 0x000c, 0x2e5b: 0x000c, 0x2e5c: 0x000c, 0x2e5d: 0x000c,
1404 0x2e5e: 0x000c, 0x2e5f: 0x000c, 0x2e60: 0x000c, 0x2e61: 0x000c, 0x2e62: 0x000c, 0x2e63: 0x000c,
1405 0x2e64: 0x000c, 0x2e65: 0x000c, 0x2e66: 0x000c, 0x2e67: 0x000c,
1406 0x2e6a: 0x000c, 0x2e6b: 0x000c, 0x2e6c: 0x000c, 0x2e6d: 0x000c, 0x2e6e: 0x000c, 0x2e6f: 0x000c,
1407 0x2e70: 0x000c, 0x2e72: 0x000c, 0x2e73: 0x000c, 0x2e75: 0x000c,
1408 0x2e76: 0x000c,
1409 // Block 0xba, offset 0x2e80
1410 0x2eb0: 0x000c, 0x2eb1: 0x000c, 0x2eb2: 0x000c, 0x2eb3: 0x000c, 0x2eb4: 0x000c,
1411 // Block 0xbb, offset 0x2ec0
1412 0x2ef0: 0x000c, 0x2ef1: 0x000c, 0x2ef2: 0x000c, 0x2ef3: 0x000c, 0x2ef4: 0x000c, 0x2ef5: 0x000c,
1413 0x2ef6: 0x000c,
1414 // Block 0xbc, offset 0x2f00
1415 0x2f0f: 0x000c, 0x2f10: 0x000c, 0x2f11: 0x000c,
1416 0x2f12: 0x000c,
1417 // Block 0xbd, offset 0x2f40
1418 0x2f5d: 0x000c,
1419 0x2f5e: 0x000c, 0x2f60: 0x000b, 0x2f61: 0x000b, 0x2f62: 0x000b, 0x2f63: 0x000b,
1420 // Block 0xbe, offset 0x2f80
1421 0x2fa7: 0x000c, 0x2fa8: 0x000c, 0x2fa9: 0x000c,
1422 0x2fb3: 0x000b, 0x2fb4: 0x000b, 0x2fb5: 0x000b,
1423 0x2fb6: 0x000b, 0x2fb7: 0x000b, 0x2fb8: 0x000b, 0x2fb9: 0x000b, 0x2fba: 0x000b, 0x2fbb: 0x000c,
1424 0x2fbc: 0x000c, 0x2fbd: 0x000c, 0x2fbe: 0x000c, 0x2fbf: 0x000c,
1425 // Block 0xbf, offset 0x2fc0
1426 0x2fc0: 0x000c, 0x2fc1: 0x000c, 0x2fc2: 0x000c, 0x2fc5: 0x000c,
1427 0x2fc6: 0x000c, 0x2fc7: 0x000c, 0x2fc8: 0x000c, 0x2fc9: 0x000c, 0x2fca: 0x000c, 0x2fcb: 0x000c,
1428 0x2fea: 0x000c, 0x2feb: 0x000c, 0x2fec: 0x000c, 0x2fed: 0x000c,
1429 // Block 0xc0, offset 0x3000
1430 0x3000: 0x000a, 0x3001: 0x000a, 0x3002: 0x000c, 0x3003: 0x000c, 0x3004: 0x000c, 0x3005: 0x000a,
1431 // Block 0xc1, offset 0x3040
1432 0x3040: 0x000a, 0x3041: 0x000a, 0x3042: 0x000a, 0x3043: 0x000a, 0x3044: 0x000a, 0x3045: 0x000a,
1433 0x3046: 0x000a, 0x3047: 0x000a, 0x3048: 0x000a, 0x3049: 0x000a, 0x304a: 0x000a, 0x304b: 0x000a,
1434 0x304c: 0x000a, 0x304d: 0x000a, 0x304e: 0x000a, 0x304f: 0x000a, 0x3050: 0x000a, 0x3051: 0x000a,
1435 0x3052: 0x000a, 0x3053: 0x000a, 0x3054: 0x000a, 0x3055: 0x000a, 0x3056: 0x000a,
1436 // Block 0xc2, offset 0x3080
1437 0x309b: 0x000a,
1438 // Block 0xc3, offset 0x30c0
1439 0x30d5: 0x000a,
1440 // Block 0xc4, offset 0x3100
1441 0x310f: 0x000a,
1442 // Block 0xc5, offset 0x3140
1443 0x3149: 0x000a,
1444 // Block 0xc6, offset 0x3180
1445 0x3183: 0x000a,
1446 0x318e: 0x0002, 0x318f: 0x0002, 0x3190: 0x0002, 0x3191: 0x0002,
1447 0x3192: 0x0002, 0x3193: 0x0002, 0x3194: 0x0002, 0x3195: 0x0002, 0x3196: 0x0002, 0x3197: 0x0002,
1448 0x3198: 0x0002, 0x3199: 0x0002, 0x319a: 0x0002, 0x319b: 0x0002, 0x319c: 0x0002, 0x319d: 0x0002,
1449 0x319e: 0x0002, 0x319f: 0x0002, 0x31a0: 0x0002, 0x31a1: 0x0002, 0x31a2: 0x0002, 0x31a3: 0x0002,
1450 0x31a4: 0x0002, 0x31a5: 0x0002, 0x31a6: 0x0002, 0x31a7: 0x0002, 0x31a8: 0x0002, 0x31a9: 0x0002,
1451 0x31aa: 0x0002, 0x31ab: 0x0002, 0x31ac: 0x0002, 0x31ad: 0x0002, 0x31ae: 0x0002, 0x31af: 0x0002,
1452 0x31b0: 0x0002, 0x31b1: 0x0002, 0x31b2: 0x0002, 0x31b3: 0x0002, 0x31b4: 0x0002, 0x31b5: 0x0002,
1453 0x31b6: 0x0002, 0x31b7: 0x0002, 0x31b8: 0x0002, 0x31b9: 0x0002, 0x31ba: 0x0002, 0x31bb: 0x0002,
1454 0x31bc: 0x0002, 0x31bd: 0x0002, 0x31be: 0x0002, 0x31bf: 0x0002,
1455 // Block 0xc7, offset 0x31c0
1456 0x31c0: 0x000c, 0x31c1: 0x000c, 0x31c2: 0x000c, 0x31c3: 0x000c, 0x31c4: 0x000c, 0x31c5: 0x000c,
1457 0x31c6: 0x000c, 0x31c7: 0x000c, 0x31c8: 0x000c, 0x31c9: 0x000c, 0x31ca: 0x000c, 0x31cb: 0x000c,
1458 0x31cc: 0x000c, 0x31cd: 0x000c, 0x31ce: 0x000c, 0x31cf: 0x000c, 0x31d0: 0x000c, 0x31d1: 0x000c,
1459 0x31d2: 0x000c, 0x31d3: 0x000c, 0x31d4: 0x000c, 0x31d5: 0x000c, 0x31d6: 0x000c, 0x31d7: 0x000c,
1460 0x31d8: 0x000c, 0x31d9: 0x000c, 0x31da: 0x000c, 0x31db: 0x000c, 0x31dc: 0x000c, 0x31dd: 0x000c,
1461 0x31de: 0x000c, 0x31df: 0x000c, 0x31e0: 0x000c, 0x31e1: 0x000c, 0x31e2: 0x000c, 0x31e3: 0x000c,
1462 0x31e4: 0x000c, 0x31e5: 0x000c, 0x31e6: 0x000c, 0x31e7: 0x000c, 0x31e8: 0x000c, 0x31e9: 0x000c,
1463 0x31ea: 0x000c, 0x31eb: 0x000c, 0x31ec: 0x000c, 0x31ed: 0x000c, 0x31ee: 0x000c, 0x31ef: 0x000c,
1464 0x31f0: 0x000c, 0x31f1: 0x000c, 0x31f2: 0x000c, 0x31f3: 0x000c, 0x31f4: 0x000c, 0x31f5: 0x000c,
1465 0x31f6: 0x000c, 0x31fb: 0x000c,
1466 0x31fc: 0x000c, 0x31fd: 0x000c, 0x31fe: 0x000c, 0x31ff: 0x000c,
1467 // Block 0xc8, offset 0x3200
1468 0x3200: 0x000c, 0x3201: 0x000c, 0x3202: 0x000c, 0x3203: 0x000c, 0x3204: 0x000c, 0x3205: 0x000c,
1469 0x3206: 0x000c, 0x3207: 0x000c, 0x3208: 0x000c, 0x3209: 0x000c, 0x320a: 0x000c, 0x320b: 0x000c,
1470 0x320c: 0x000c, 0x320d: 0x000c, 0x320e: 0x000c, 0x320f: 0x000c, 0x3210: 0x000c, 0x3211: 0x000c,
1471 0x3212: 0x000c, 0x3213: 0x000c, 0x3214: 0x000c, 0x3215: 0x000c, 0x3216: 0x000c, 0x3217: 0x000c,
1472 0x3218: 0x000c, 0x3219: 0x000c, 0x321a: 0x000c, 0x321b: 0x000c, 0x321c: 0x000c, 0x321d: 0x000c,
1473 0x321e: 0x000c, 0x321f: 0x000c, 0x3220: 0x000c, 0x3221: 0x000c, 0x3222: 0x000c, 0x3223: 0x000c,
1474 0x3224: 0x000c, 0x3225: 0x000c, 0x3226: 0x000c, 0x3227: 0x000c, 0x3228: 0x000c, 0x3229: 0x000c,
1475 0x322a: 0x000c, 0x322b: 0x000c, 0x322c: 0x000c,
1476 0x3235: 0x000c,
1477 // Block 0xc9, offset 0x3240
1478 0x3244: 0x000c,
1479 0x325b: 0x000c, 0x325c: 0x000c, 0x325d: 0x000c,
1480 0x325e: 0x000c, 0x325f: 0x000c, 0x3261: 0x000c, 0x3262: 0x000c, 0x3263: 0x000c,
1481 0x3264: 0x000c, 0x3265: 0x000c, 0x3266: 0x000c, 0x3267: 0x000c, 0x3268: 0x000c, 0x3269: 0x000c,
1482 0x326a: 0x000c, 0x326b: 0x000c, 0x326c: 0x000c, 0x326d: 0x000c, 0x326e: 0x000c, 0x326f: 0x000c,
1483 // Block 0xca, offset 0x3280
1484 0x3280: 0x000c, 0x3281: 0x000c, 0x3282: 0x000c, 0x3283: 0x000c, 0x3284: 0x000c, 0x3285: 0x000c,
1485 0x3286: 0x000c, 0x3288: 0x000c, 0x3289: 0x000c, 0x328a: 0x000c, 0x328b: 0x000c,
1486 0x328c: 0x000c, 0x328d: 0x000c, 0x328e: 0x000c, 0x328f: 0x000c, 0x3290: 0x000c, 0x3291: 0x000c,
1487 0x3292: 0x000c, 0x3293: 0x000c, 0x3294: 0x000c, 0x3295: 0x000c, 0x3296: 0x000c, 0x3297: 0x000c,
1488 0x3298: 0x000c, 0x329b: 0x000c, 0x329c: 0x000c, 0x329d: 0x000c,
1489 0x329e: 0x000c, 0x329f: 0x000c, 0x32a0: 0x000c, 0x32a1: 0x000c, 0x32a3: 0x000c,
1490 0x32a4: 0x000c, 0x32a6: 0x000c, 0x32a7: 0x000c, 0x32a8: 0x000c, 0x32a9: 0x000c,
1491 0x32aa: 0x000c,
1492 // Block 0xcb, offset 0x32c0
1493 0x32c0: 0x0001, 0x32c1: 0x0001, 0x32c2: 0x0001, 0x32c3: 0x0001, 0x32c4: 0x0001, 0x32c5: 0x0001,
1494 0x32c6: 0x0001, 0x32c7: 0x0001, 0x32c8: 0x0001, 0x32c9: 0x0001, 0x32ca: 0x0001, 0x32cb: 0x0001,
1495 0x32cc: 0x0001, 0x32cd: 0x0001, 0x32ce: 0x0001, 0x32cf: 0x0001, 0x32d0: 0x000c, 0x32d1: 0x000c,
1496 0x32d2: 0x000c, 0x32d3: 0x000c, 0x32d4: 0x000c, 0x32d5: 0x000c, 0x32d6: 0x000c, 0x32d7: 0x0001,
1497 0x32d8: 0x0001, 0x32d9: 0x0001, 0x32da: 0x0001, 0x32db: 0x0001, 0x32dc: 0x0001, 0x32dd: 0x0001,
1498 0x32de: 0x0001, 0x32df: 0x0001, 0x32e0: 0x0001, 0x32e1: 0x0001, 0x32e2: 0x0001, 0x32e3: 0x0001,
1499 0x32e4: 0x0001, 0x32e5: 0x0001, 0x32e6: 0x0001, 0x32e7: 0x0001, 0x32e8: 0x0001, 0x32e9: 0x0001,
1500 0x32ea: 0x0001, 0x32eb: 0x0001, 0x32ec: 0x0001, 0x32ed: 0x0001, 0x32ee: 0x0001, 0x32ef: 0x0001,
1501 0x32f0: 0x0001, 0x32f1: 0x0001, 0x32f2: 0x0001, 0x32f3: 0x0001, 0x32f4: 0x0001, 0x32f5: 0x0001,
1502 0x32f6: 0x0001, 0x32f7: 0x0001, 0x32f8: 0x0001, 0x32f9: 0x0001, 0x32fa: 0x0001, 0x32fb: 0x0001,
1503 0x32fc: 0x0001, 0x32fd: 0x0001, 0x32fe: 0x0001, 0x32ff: 0x0001,
1504 // Block 0xcc, offset 0x3300
1505 0x3300: 0x0001, 0x3301: 0x0001, 0x3302: 0x0001, 0x3303: 0x0001, 0x3304: 0x000c, 0x3305: 0x000c,
1506 0x3306: 0x000c, 0x3307: 0x000c, 0x3308: 0x000c, 0x3309: 0x000c, 0x330a: 0x000c, 0x330b: 0x0001,
1507 0x330c: 0x0001, 0x330d: 0x0001, 0x330e: 0x0001, 0x330f: 0x0001, 0x3310: 0x0001, 0x3311: 0x0001,
1508 0x3312: 0x0001, 0x3313: 0x0001, 0x3314: 0x0001, 0x3315: 0x0001, 0x3316: 0x0001, 0x3317: 0x0001,
1509 0x3318: 0x0001, 0x3319: 0x0001, 0x331a: 0x0001, 0x331b: 0x0001, 0x331c: 0x0001, 0x331d: 0x0001,
1510 0x331e: 0x0001, 0x331f: 0x0001, 0x3320: 0x0001, 0x3321: 0x0001, 0x3322: 0x0001, 0x3323: 0x0001,
1511 0x3324: 0x0001, 0x3325: 0x0001, 0x3326: 0x0001, 0x3327: 0x0001, 0x3328: 0x0001, 0x3329: 0x0001,
1512 0x332a: 0x0001, 0x332b: 0x0001, 0x332c: 0x0001, 0x332d: 0x0001, 0x332e: 0x0001, 0x332f: 0x0001,
1513 0x3330: 0x0001, 0x3331: 0x0001, 0x3332: 0x0001, 0x3333: 0x0001, 0x3334: 0x0001, 0x3335: 0x0001,
1514 0x3336: 0x0001, 0x3337: 0x0001, 0x3338: 0x0001, 0x3339: 0x0001, 0x333a: 0x0001, 0x333b: 0x0001,
1515 0x333c: 0x0001, 0x333d: 0x0001, 0x333e: 0x0001, 0x333f: 0x0001,
1516 // Block 0xcd, offset 0x3340
1517 0x3340: 0x000d, 0x3341: 0x000d, 0x3342: 0x000d, 0x3343: 0x000d, 0x3344: 0x000d, 0x3345: 0x000d,
1518 0x3346: 0x000d, 0x3347: 0x000d, 0x3348: 0x000d, 0x3349: 0x000d, 0x334a: 0x000d, 0x334b: 0x000d,
1519 0x334c: 0x000d, 0x334d: 0x000d, 0x334e: 0x000d, 0x334f: 0x000d, 0x3350: 0x000d, 0x3351: 0x000d,
1520 0x3352: 0x000d, 0x3353: 0x000d, 0x3354: 0x000d, 0x3355: 0x000d, 0x3356: 0x000d, 0x3357: 0x000d,
1521 0x3358: 0x000d, 0x3359: 0x000d, 0x335a: 0x000d, 0x335b: 0x000d, 0x335c: 0x000d, 0x335d: 0x000d,
1522 0x335e: 0x000d, 0x335f: 0x000d, 0x3360: 0x000d, 0x3361: 0x000d, 0x3362: 0x000d, 0x3363: 0x000d,
1523 0x3364: 0x000d, 0x3365: 0x000d, 0x3366: 0x000d, 0x3367: 0x000d, 0x3368: 0x000d, 0x3369: 0x000d,
1524 0x336a: 0x000d, 0x336b: 0x000d, 0x336c: 0x000d, 0x336d: 0x000d, 0x336e: 0x000d, 0x336f: 0x000d,
1525 0x3370: 0x000a, 0x3371: 0x000a, 0x3372: 0x000d, 0x3373: 0x000d, 0x3374: 0x000d, 0x3375: 0x000d,
1526 0x3376: 0x000d, 0x3377: 0x000d, 0x3378: 0x000d, 0x3379: 0x000d, 0x337a: 0x000d, 0x337b: 0x000d,
1527 0x337c: 0x000d, 0x337d: 0x000d, 0x337e: 0x000d, 0x337f: 0x000d,
1528 // Block 0xce, offset 0x3380
1529 0x3380: 0x000a, 0x3381: 0x000a, 0x3382: 0x000a, 0x3383: 0x000a, 0x3384: 0x000a, 0x3385: 0x000a,
1530 0x3386: 0x000a, 0x3387: 0x000a, 0x3388: 0x000a, 0x3389: 0x000a, 0x338a: 0x000a, 0x338b: 0x000a,
1531 0x338c: 0x000a, 0x338d: 0x000a, 0x338e: 0x000a, 0x338f: 0x000a, 0x3390: 0x000a, 0x3391: 0x000a,
1532 0x3392: 0x000a, 0x3393: 0x000a, 0x3394: 0x000a, 0x3395: 0x000a, 0x3396: 0x000a, 0x3397: 0x000a,
1533 0x3398: 0x000a, 0x3399: 0x000a, 0x339a: 0x000a, 0x339b: 0x000a, 0x339c: 0x000a, 0x339d: 0x000a,
1534 0x339e: 0x000a, 0x339f: 0x000a, 0x33a0: 0x000a, 0x33a1: 0x000a, 0x33a2: 0x000a, 0x33a3: 0x000a,
1535 0x33a4: 0x000a, 0x33a5: 0x000a, 0x33a6: 0x000a, 0x33a7: 0x000a, 0x33a8: 0x000a, 0x33a9: 0x000a,
1536 0x33aa: 0x000a, 0x33ab: 0x000a,
1537 0x33b0: 0x000a, 0x33b1: 0x000a, 0x33b2: 0x000a, 0x33b3: 0x000a, 0x33b4: 0x000a, 0x33b5: 0x000a,
1538 0x33b6: 0x000a, 0x33b7: 0x000a, 0x33b8: 0x000a, 0x33b9: 0x000a, 0x33ba: 0x000a, 0x33bb: 0x000a,
1539 0x33bc: 0x000a, 0x33bd: 0x000a, 0x33be: 0x000a, 0x33bf: 0x000a,
1540 // Block 0xcf, offset 0x33c0
1541 0x33c0: 0x000a, 0x33c1: 0x000a, 0x33c2: 0x000a, 0x33c3: 0x000a, 0x33c4: 0x000a, 0x33c5: 0x000a,
1542 0x33c6: 0x000a, 0x33c7: 0x000a, 0x33c8: 0x000a, 0x33c9: 0x000a, 0x33ca: 0x000a, 0x33cb: 0x000a,
1543 0x33cc: 0x000a, 0x33cd: 0x000a, 0x33ce: 0x000a, 0x33cf: 0x000a, 0x33d0: 0x000a, 0x33d1: 0x000a,
1544 0x33d2: 0x000a, 0x33d3: 0x000a,
1545 0x33e0: 0x000a, 0x33e1: 0x000a, 0x33e2: 0x000a, 0x33e3: 0x000a,
1546 0x33e4: 0x000a, 0x33e5: 0x000a, 0x33e6: 0x000a, 0x33e7: 0x000a, 0x33e8: 0x000a, 0x33e9: 0x000a,
1547 0x33ea: 0x000a, 0x33eb: 0x000a, 0x33ec: 0x000a, 0x33ed: 0x000a, 0x33ee: 0x000a,
1548 0x33f1: 0x000a, 0x33f2: 0x000a, 0x33f3: 0x000a, 0x33f4: 0x000a, 0x33f5: 0x000a,
1549 0x33f6: 0x000a, 0x33f7: 0x000a, 0x33f8: 0x000a, 0x33f9: 0x000a, 0x33fa: 0x000a, 0x33fb: 0x000a,
1550 0x33fc: 0x000a, 0x33fd: 0x000a, 0x33fe: 0x000a, 0x33ff: 0x000a,
1551 // Block 0xd0, offset 0x3400
1552 0x3401: 0x000a, 0x3402: 0x000a, 0x3403: 0x000a, 0x3404: 0x000a, 0x3405: 0x000a,
1553 0x3406: 0x000a, 0x3407: 0x000a, 0x3408: 0x000a, 0x3409: 0x000a, 0x340a: 0x000a, 0x340b: 0x000a,
1554 0x340c: 0x000a, 0x340d: 0x000a, 0x340e: 0x000a, 0x340f: 0x000a, 0x3411: 0x000a,
1555 0x3412: 0x000a, 0x3413: 0x000a, 0x3414: 0x000a, 0x3415: 0x000a, 0x3416: 0x000a, 0x3417: 0x000a,
1556 0x3418: 0x000a, 0x3419: 0x000a, 0x341a: 0x000a, 0x341b: 0x000a, 0x341c: 0x000a, 0x341d: 0x000a,
1557 0x341e: 0x000a, 0x341f: 0x000a, 0x3420: 0x000a, 0x3421: 0x000a, 0x3422: 0x000a, 0x3423: 0x000a,
1558 0x3424: 0x000a, 0x3425: 0x000a, 0x3426: 0x000a, 0x3427: 0x000a, 0x3428: 0x000a, 0x3429: 0x000a,
1559 0x342a: 0x000a, 0x342b: 0x000a, 0x342c: 0x000a, 0x342d: 0x000a, 0x342e: 0x000a, 0x342f: 0x000a,
1560 0x3430: 0x000a, 0x3431: 0x000a, 0x3432: 0x000a, 0x3433: 0x000a, 0x3434: 0x000a, 0x3435: 0x000a,
1561 // Block 0xd1, offset 0x3440
1562 0x3440: 0x0002, 0x3441: 0x0002, 0x3442: 0x0002, 0x3443: 0x0002, 0x3444: 0x0002, 0x3445: 0x0002,
1563 0x3446: 0x0002, 0x3447: 0x0002, 0x3448: 0x0002, 0x3449: 0x0002, 0x344a: 0x0002, 0x344b: 0x000a,
1564 0x344c: 0x000a,
1565 // Block 0xd2, offset 0x3480
1566 0x34aa: 0x000a, 0x34ab: 0x000a,
1567 // Block 0xd3, offset 0x34c0
1568 0x34c0: 0x000a, 0x34c1: 0x000a, 0x34c2: 0x000a, 0x34c3: 0x000a, 0x34c4: 0x000a, 0x34c5: 0x000a,
1569 0x34c6: 0x000a, 0x34c7: 0x000a, 0x34c8: 0x000a, 0x34c9: 0x000a, 0x34ca: 0x000a, 0x34cb: 0x000a,
1570 0x34cc: 0x000a, 0x34cd: 0x000a, 0x34ce: 0x000a, 0x34cf: 0x000a, 0x34d0: 0x000a, 0x34d1: 0x000a,
1571 0x34d2: 0x000a,
1572 0x34e0: 0x000a, 0x34e1: 0x000a, 0x34e2: 0x000a, 0x34e3: 0x000a,
1573 0x34e4: 0x000a, 0x34e5: 0x000a, 0x34e6: 0x000a, 0x34e7: 0x000a, 0x34e8: 0x000a, 0x34e9: 0x000a,
1574 0x34ea: 0x000a, 0x34eb: 0x000a, 0x34ec: 0x000a,
1575 0x34f0: 0x000a, 0x34f1: 0x000a, 0x34f2: 0x000a, 0x34f3: 0x000a, 0x34f4: 0x000a, 0x34f5: 0x000a,
1576 0x34f6: 0x000a,
1577 // Block 0xd4, offset 0x3500
1578 0x3500: 0x000a, 0x3501: 0x000a, 0x3502: 0x000a, 0x3503: 0x000a, 0x3504: 0x000a, 0x3505: 0x000a,
1579 0x3506: 0x000a, 0x3507: 0x000a, 0x3508: 0x000a, 0x3509: 0x000a, 0x350a: 0x000a, 0x350b: 0x000a,
1580 0x350c: 0x000a, 0x350d: 0x000a, 0x350e: 0x000a, 0x350f: 0x000a, 0x3510: 0x000a, 0x3511: 0x000a,
1581 0x3512: 0x000a, 0x3513: 0x000a, 0x3514: 0x000a,
1582 // Block 0xd5, offset 0x3540
1583 0x3540: 0x000a, 0x3541: 0x000a, 0x3542: 0x000a, 0x3543: 0x000a, 0x3544: 0x000a, 0x3545: 0x000a,
1584 0x3546: 0x000a, 0x3547: 0x000a, 0x3548: 0x000a, 0x3549: 0x000a, 0x354a: 0x000a, 0x354b: 0x000a,
1585 0x3550: 0x000a, 0x3551: 0x000a,
1586 0x3552: 0x000a, 0x3553: 0x000a, 0x3554: 0x000a, 0x3555: 0x000a, 0x3556: 0x000a, 0x3557: 0x000a,
1587 0x3558: 0x000a, 0x3559: 0x000a, 0x355a: 0x000a, 0x355b: 0x000a, 0x355c: 0x000a, 0x355d: 0x000a,
1588 0x355e: 0x000a, 0x355f: 0x000a, 0x3560: 0x000a, 0x3561: 0x000a, 0x3562: 0x000a, 0x3563: 0x000a,
1589 0x3564: 0x000a, 0x3565: 0x000a, 0x3566: 0x000a, 0x3567: 0x000a, 0x3568: 0x000a, 0x3569: 0x000a,
1590 0x356a: 0x000a, 0x356b: 0x000a, 0x356c: 0x000a, 0x356d: 0x000a, 0x356e: 0x000a, 0x356f: 0x000a,
1591 0x3570: 0x000a, 0x3571: 0x000a, 0x3572: 0x000a, 0x3573: 0x000a, 0x3574: 0x000a, 0x3575: 0x000a,
1592 0x3576: 0x000a, 0x3577: 0x000a, 0x3578: 0x000a, 0x3579: 0x000a, 0x357a: 0x000a, 0x357b: 0x000a,
1593 0x357c: 0x000a, 0x357d: 0x000a, 0x357e: 0x000a, 0x357f: 0x000a,
1594 // Block 0xd6, offset 0x3580
1595 0x3580: 0x000a, 0x3581: 0x000a, 0x3582: 0x000a, 0x3583: 0x000a, 0x3584: 0x000a, 0x3585: 0x000a,
1596 0x3586: 0x000a, 0x3587: 0x000a,
1597 0x3590: 0x000a, 0x3591: 0x000a,
1598 0x3592: 0x000a, 0x3593: 0x000a, 0x3594: 0x000a, 0x3595: 0x000a, 0x3596: 0x000a, 0x3597: 0x000a,
1599 0x3598: 0x000a, 0x3599: 0x000a,
1600 0x35a0: 0x000a, 0x35a1: 0x000a, 0x35a2: 0x000a, 0x35a3: 0x000a,
1601 0x35a4: 0x000a, 0x35a5: 0x000a, 0x35a6: 0x000a, 0x35a7: 0x000a, 0x35a8: 0x000a, 0x35a9: 0x000a,
1602 0x35aa: 0x000a, 0x35ab: 0x000a, 0x35ac: 0x000a, 0x35ad: 0x000a, 0x35ae: 0x000a, 0x35af: 0x000a,
1603 0x35b0: 0x000a, 0x35b1: 0x000a, 0x35b2: 0x000a, 0x35b3: 0x000a, 0x35b4: 0x000a, 0x35b5: 0x000a,
1604 0x35b6: 0x000a, 0x35b7: 0x000a, 0x35b8: 0x000a, 0x35b9: 0x000a, 0x35ba: 0x000a, 0x35bb: 0x000a,
1605 0x35bc: 0x000a, 0x35bd: 0x000a, 0x35be: 0x000a, 0x35bf: 0x000a,
1606 // Block 0xd7, offset 0x35c0
1607 0x35c0: 0x000a, 0x35c1: 0x000a, 0x35c2: 0x000a, 0x35c3: 0x000a, 0x35c4: 0x000a, 0x35c5: 0x000a,
1608 0x35c6: 0x000a, 0x35c7: 0x000a,
1609 0x35d0: 0x000a, 0x35d1: 0x000a,
1610 0x35d2: 0x000a, 0x35d3: 0x000a, 0x35d4: 0x000a, 0x35d5: 0x000a, 0x35d6: 0x000a, 0x35d7: 0x000a,
1611 0x35d8: 0x000a, 0x35d9: 0x000a, 0x35da: 0x000a, 0x35db: 0x000a, 0x35dc: 0x000a, 0x35dd: 0x000a,
1612 0x35de: 0x000a, 0x35df: 0x000a, 0x35e0: 0x000a, 0x35e1: 0x000a, 0x35e2: 0x000a, 0x35e3: 0x000a,
1613 0x35e4: 0x000a, 0x35e5: 0x000a, 0x35e6: 0x000a, 0x35e7: 0x000a, 0x35e8: 0x000a, 0x35e9: 0x000a,
1614 0x35ea: 0x000a, 0x35eb: 0x000a, 0x35ec: 0x000a, 0x35ed: 0x000a,
1615 // Block 0xd8, offset 0x3600
1616 0x3610: 0x000a, 0x3611: 0x000a,
1617 0x3612: 0x000a, 0x3613: 0x000a, 0x3614: 0x000a, 0x3615: 0x000a, 0x3616: 0x000a, 0x3617: 0x000a,
1618 0x3618: 0x000a, 0x3619: 0x000a, 0x361a: 0x000a, 0x361b: 0x000a, 0x361c: 0x000a, 0x361d: 0x000a,
1619 0x361e: 0x000a, 0x3620: 0x000a, 0x3621: 0x000a, 0x3622: 0x000a, 0x3623: 0x000a,
1620 0x3624: 0x000a, 0x3625: 0x000a, 0x3626: 0x000a, 0x3627: 0x000a,
1621 0x3630: 0x000a, 0x3633: 0x000a, 0x3634: 0x000a, 0x3635: 0x000a,
1622 0x3636: 0x000a, 0x3637: 0x000a, 0x3638: 0x000a, 0x3639: 0x000a, 0x363a: 0x000a, 0x363b: 0x000a,
1623 0x363c: 0x000a, 0x363d: 0x000a, 0x363e: 0x000a,
1624 // Block 0xd9, offset 0x3640
1625 0x3640: 0x000a, 0x3641: 0x000a, 0x3642: 0x000a, 0x3643: 0x000a, 0x3644: 0x000a, 0x3645: 0x000a,
1626 0x3646: 0x000a, 0x3647: 0x000a, 0x3648: 0x000a, 0x3649: 0x000a, 0x364a: 0x000a, 0x364b: 0x000a,
1627 0x3650: 0x000a, 0x3651: 0x000a,
1628 0x3652: 0x000a, 0x3653: 0x000a, 0x3654: 0x000a, 0x3655: 0x000a, 0x3656: 0x000a, 0x3657: 0x000a,
1629 0x3658: 0x000a, 0x3659: 0x000a, 0x365a: 0x000a, 0x365b: 0x000a, 0x365c: 0x000a, 0x365d: 0x000a,
1630 0x365e: 0x000a,
1631 // Block 0xda, offset 0x3680
1632 0x3680: 0x000a, 0x3681: 0x000a, 0x3682: 0x000a, 0x3683: 0x000a, 0x3684: 0x000a, 0x3685: 0x000a,
1633 0x3686: 0x000a, 0x3687: 0x000a, 0x3688: 0x000a, 0x3689: 0x000a, 0x368a: 0x000a, 0x368b: 0x000a,
1634 0x368c: 0x000a, 0x368d: 0x000a, 0x368e: 0x000a, 0x368f: 0x000a, 0x3690: 0x000a, 0x3691: 0x000a,
1635 // Block 0xdb, offset 0x36c0
1636 0x36fe: 0x000b, 0x36ff: 0x000b,
1637 // Block 0xdc, offset 0x3700
1638 0x3700: 0x000b, 0x3701: 0x000b, 0x3702: 0x000b, 0x3703: 0x000b, 0x3704: 0x000b, 0x3705: 0x000b,
1639 0x3706: 0x000b, 0x3707: 0x000b, 0x3708: 0x000b, 0x3709: 0x000b, 0x370a: 0x000b, 0x370b: 0x000b,
1640 0x370c: 0x000b, 0x370d: 0x000b, 0x370e: 0x000b, 0x370f: 0x000b, 0x3710: 0x000b, 0x3711: 0x000b,
1641 0x3712: 0x000b, 0x3713: 0x000b, 0x3714: 0x000b, 0x3715: 0x000b, 0x3716: 0x000b, 0x3717: 0x000b,
1642 0x3718: 0x000b, 0x3719: 0x000b, 0x371a: 0x000b, 0x371b: 0x000b, 0x371c: 0x000b, 0x371d: 0x000b,
1643 0x371e: 0x000b, 0x371f: 0x000b, 0x3720: 0x000b, 0x3721: 0x000b, 0x3722: 0x000b, 0x3723: 0x000b,
1644 0x3724: 0x000b, 0x3725: 0x000b, 0x3726: 0x000b, 0x3727: 0x000b, 0x3728: 0x000b, 0x3729: 0x000b,
1645 0x372a: 0x000b, 0x372b: 0x000b, 0x372c: 0x000b, 0x372d: 0x000b, 0x372e: 0x000b, 0x372f: 0x000b,
1646 0x3730: 0x000b, 0x3731: 0x000b, 0x3732: 0x000b, 0x3733: 0x000b, 0x3734: 0x000b, 0x3735: 0x000b,
1647 0x3736: 0x000b, 0x3737: 0x000b, 0x3738: 0x000b, 0x3739: 0x000b, 0x373a: 0x000b, 0x373b: 0x000b,
1648 0x373c: 0x000b, 0x373d: 0x000b, 0x373e: 0x000b, 0x373f: 0x000b,
1649 // Block 0xdd, offset 0x3740
1650 0x3740: 0x000c, 0x3741: 0x000c, 0x3742: 0x000c, 0x3743: 0x000c, 0x3744: 0x000c, 0x3745: 0x000c,
1651 0x3746: 0x000c, 0x3747: 0x000c, 0x3748: 0x000c, 0x3749: 0x000c, 0x374a: 0x000c, 0x374b: 0x000c,
1652 0x374c: 0x000c, 0x374d: 0x000c, 0x374e: 0x000c, 0x374f: 0x000c, 0x3750: 0x000c, 0x3751: 0x000c,
1653 0x3752: 0x000c, 0x3753: 0x000c, 0x3754: 0x000c, 0x3755: 0x000c, 0x3756: 0x000c, 0x3757: 0x000c,
1654 0x3758: 0x000c, 0x3759: 0x000c, 0x375a: 0x000c, 0x375b: 0x000c, 0x375c: 0x000c, 0x375d: 0x000c,
1655 0x375e: 0x000c, 0x375f: 0x000c, 0x3760: 0x000c, 0x3761: 0x000c, 0x3762: 0x000c, 0x3763: 0x000c,
1656 0x3764: 0x000c, 0x3765: 0x000c, 0x3766: 0x000c, 0x3767: 0x000c, 0x3768: 0x000c, 0x3769: 0x000c,
1657 0x376a: 0x000c, 0x376b: 0x000c, 0x376c: 0x000c, 0x376d: 0x000c, 0x376e: 0x000c, 0x376f: 0x000c,
1658 0x3770: 0x000b, 0x3771: 0x000b, 0x3772: 0x000b, 0x3773: 0x000b, 0x3774: 0x000b, 0x3775: 0x000b,
1659 0x3776: 0x000b, 0x3777: 0x000b, 0x3778: 0x000b, 0x3779: 0x000b, 0x377a: 0x000b, 0x377b: 0x000b,
1660 0x377c: 0x000b, 0x377d: 0x000b, 0x377e: 0x000b, 0x377f: 0x000b,
1661}
1662
1663// bidiIndex: 24 blocks, 1536 entries, 1536 bytes
1664// Block 0 is the zero block.
1665var bidiIndex = [1536]uint8{
1666 // Block 0x0, offset 0x0
1667 // Block 0x1, offset 0x40
1668 // Block 0x2, offset 0x80
1669 // Block 0x3, offset 0xc0
1670 0xc2: 0x01, 0xc3: 0x02,
1671 0xca: 0x03, 0xcb: 0x04, 0xcc: 0x05, 0xcd: 0x06, 0xce: 0x07, 0xcf: 0x08,
1672 0xd2: 0x09, 0xd6: 0x0a, 0xd7: 0x0b,
1673 0xd8: 0x0c, 0xd9: 0x0d, 0xda: 0x0e, 0xdb: 0x0f, 0xdc: 0x10, 0xdd: 0x11, 0xde: 0x12, 0xdf: 0x13,
1674 0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05, 0xe4: 0x06,
1675 0xea: 0x07, 0xef: 0x08,
1676 0xf0: 0x11, 0xf1: 0x12, 0xf2: 0x12, 0xf3: 0x14, 0xf4: 0x15,
1677 // Block 0x4, offset 0x100
1678 0x120: 0x14, 0x121: 0x15, 0x122: 0x16, 0x123: 0x17, 0x124: 0x18, 0x125: 0x19, 0x126: 0x1a, 0x127: 0x1b,
1679 0x128: 0x1c, 0x129: 0x1d, 0x12a: 0x1c, 0x12b: 0x1e, 0x12c: 0x1f, 0x12d: 0x20, 0x12e: 0x21, 0x12f: 0x22,
1680 0x130: 0x23, 0x131: 0x24, 0x132: 0x1a, 0x133: 0x25, 0x134: 0x26, 0x135: 0x27, 0x137: 0x28,
1681 0x138: 0x29, 0x139: 0x2a, 0x13a: 0x2b, 0x13b: 0x2c, 0x13c: 0x2d, 0x13d: 0x2e, 0x13e: 0x2f, 0x13f: 0x30,
1682 // Block 0x5, offset 0x140
1683 0x140: 0x31, 0x141: 0x32, 0x142: 0x33,
1684 0x14d: 0x34, 0x14e: 0x35,
1685 0x150: 0x36,
1686 0x15a: 0x37, 0x15c: 0x38, 0x15d: 0x39, 0x15e: 0x3a, 0x15f: 0x3b,
1687 0x160: 0x3c, 0x162: 0x3d, 0x164: 0x3e, 0x165: 0x3f, 0x167: 0x40,
1688 0x168: 0x41, 0x169: 0x42, 0x16a: 0x43, 0x16c: 0x44, 0x16d: 0x45, 0x16e: 0x46, 0x16f: 0x47,
1689 0x170: 0x48, 0x173: 0x49, 0x177: 0x4a,
1690 0x17e: 0x4b, 0x17f: 0x4c,
1691 // Block 0x6, offset 0x180
1692 0x180: 0x4d, 0x181: 0x4e, 0x182: 0x4f, 0x183: 0x50, 0x184: 0x51, 0x185: 0x52, 0x186: 0x53, 0x187: 0x54,
1693 0x188: 0x55, 0x189: 0x54, 0x18a: 0x54, 0x18b: 0x54, 0x18c: 0x56, 0x18d: 0x57, 0x18e: 0x58, 0x18f: 0x59,
1694 0x190: 0x5a, 0x191: 0x5b, 0x192: 0x5c, 0x193: 0x5d, 0x194: 0x54, 0x195: 0x54, 0x196: 0x54, 0x197: 0x54,
1695 0x198: 0x54, 0x199: 0x54, 0x19a: 0x5e, 0x19b: 0x54, 0x19c: 0x54, 0x19d: 0x5f, 0x19e: 0x54, 0x19f: 0x60,
1696 0x1a4: 0x54, 0x1a5: 0x54, 0x1a6: 0x61, 0x1a7: 0x62,
1697 0x1a8: 0x54, 0x1a9: 0x54, 0x1aa: 0x54, 0x1ab: 0x54, 0x1ac: 0x54, 0x1ad: 0x63, 0x1ae: 0x64, 0x1af: 0x65,
1698 0x1b3: 0x66, 0x1b5: 0x67, 0x1b7: 0x68,
1699 0x1b8: 0x69, 0x1b9: 0x6a, 0x1ba: 0x6b, 0x1bb: 0x6c, 0x1bc: 0x54, 0x1bd: 0x54, 0x1be: 0x54, 0x1bf: 0x6d,
1700 // Block 0x7, offset 0x1c0
1701 0x1c0: 0x6e, 0x1c2: 0x6f, 0x1c3: 0x70, 0x1c7: 0x71,
1702 0x1c8: 0x72, 0x1c9: 0x73, 0x1ca: 0x74, 0x1cb: 0x75, 0x1cd: 0x76, 0x1cf: 0x77,
1703 // Block 0x8, offset 0x200
1704 0x237: 0x54,
1705 // Block 0x9, offset 0x240
1706 0x252: 0x78, 0x253: 0x79,
1707 0x258: 0x7a, 0x259: 0x7b, 0x25a: 0x7c, 0x25b: 0x7d, 0x25c: 0x7e, 0x25e: 0x7f,
1708 0x260: 0x80, 0x261: 0x81, 0x263: 0x82, 0x264: 0x83, 0x265: 0x84, 0x266: 0x85, 0x267: 0x86,
1709 0x268: 0x87, 0x269: 0x88, 0x26a: 0x89, 0x26b: 0x8a, 0x26f: 0x8b,
1710 // Block 0xa, offset 0x280
1711 0x2ac: 0x8c, 0x2ad: 0x8d, 0x2ae: 0x0e, 0x2af: 0x0e,
1712 0x2b0: 0x0e, 0x2b1: 0x0e, 0x2b2: 0x0e, 0x2b3: 0x0e, 0x2b4: 0x8e, 0x2b5: 0x0e, 0x2b6: 0x0e, 0x2b7: 0x8f,
1713 0x2b8: 0x90, 0x2b9: 0x91, 0x2ba: 0x0e, 0x2bb: 0x92, 0x2bc: 0x93, 0x2bd: 0x94, 0x2bf: 0x95,
1714 // Block 0xb, offset 0x2c0
1715 0x2c4: 0x96, 0x2c5: 0x54, 0x2c6: 0x97, 0x2c7: 0x98,
1716 0x2cb: 0x99, 0x2cd: 0x9a,
1717 0x2e0: 0x9b, 0x2e1: 0x9b, 0x2e2: 0x9b, 0x2e3: 0x9b, 0x2e4: 0x9c, 0x2e5: 0x9b, 0x2e6: 0x9b, 0x2e7: 0x9b,
1718 0x2e8: 0x9d, 0x2e9: 0x9b, 0x2ea: 0x9b, 0x2eb: 0x9e, 0x2ec: 0x9f, 0x2ed: 0x9b, 0x2ee: 0x9b, 0x2ef: 0x9b,
1719 0x2f0: 0x9b, 0x2f1: 0x9b, 0x2f2: 0x9b, 0x2f3: 0x9b, 0x2f4: 0x9b, 0x2f5: 0x9b, 0x2f6: 0x9b, 0x2f7: 0x9b,
1720 0x2f8: 0x9b, 0x2f9: 0xa0, 0x2fa: 0x9b, 0x2fb: 0x9b, 0x2fc: 0x9b, 0x2fd: 0x9b, 0x2fe: 0x9b, 0x2ff: 0x9b,
1721 // Block 0xc, offset 0x300
1722 0x300: 0xa1, 0x301: 0xa2, 0x302: 0xa3, 0x304: 0xa4, 0x305: 0xa5, 0x306: 0xa6, 0x307: 0xa7,
1723 0x308: 0xa8, 0x30b: 0xa9, 0x30c: 0xaa, 0x30d: 0xab,
1724 0x310: 0xac, 0x311: 0xad, 0x312: 0xae, 0x313: 0xaf, 0x316: 0xb0, 0x317: 0xb1,
1725 0x318: 0xb2, 0x319: 0xb3, 0x31a: 0xb4, 0x31c: 0xb5,
1726 0x330: 0xb6, 0x332: 0xb7,
1727 // Block 0xd, offset 0x340
1728 0x36b: 0xb8, 0x36c: 0xb9,
1729 0x37e: 0xba,
1730 // Block 0xe, offset 0x380
1731 0x3b2: 0xbb,
1732 // Block 0xf, offset 0x3c0
1733 0x3c5: 0xbc, 0x3c6: 0xbd,
1734 0x3c8: 0x54, 0x3c9: 0xbe, 0x3cc: 0x54, 0x3cd: 0xbf,
1735 0x3db: 0xc0, 0x3dc: 0xc1, 0x3dd: 0xc2, 0x3de: 0xc3, 0x3df: 0xc4,
1736 0x3e8: 0xc5, 0x3e9: 0xc6, 0x3ea: 0xc7,
1737 // Block 0x10, offset 0x400
1738 0x400: 0xc8,
1739 0x420: 0x9b, 0x421: 0x9b, 0x422: 0x9b, 0x423: 0xc9, 0x424: 0x9b, 0x425: 0xca, 0x426: 0x9b, 0x427: 0x9b,
1740 0x428: 0x9b, 0x429: 0x9b, 0x42a: 0x9b, 0x42b: 0x9b, 0x42c: 0x9b, 0x42d: 0x9b, 0x42e: 0x9b, 0x42f: 0x9b,
1741 0x430: 0x9b, 0x431: 0x9b, 0x432: 0x9b, 0x433: 0x9b, 0x434: 0x9b, 0x435: 0x9b, 0x436: 0x9b, 0x437: 0x9b,
1742 0x438: 0x0e, 0x439: 0x0e, 0x43a: 0x0e, 0x43b: 0xcb, 0x43c: 0x9b, 0x43d: 0x9b, 0x43e: 0x9b, 0x43f: 0x9b,
1743 // Block 0x11, offset 0x440
1744 0x440: 0xcc, 0x441: 0x54, 0x442: 0xcd, 0x443: 0xce, 0x444: 0xcf, 0x445: 0xd0,
1745 0x44c: 0x54, 0x44d: 0x54, 0x44e: 0x54, 0x44f: 0x54,
1746 0x450: 0x54, 0x451: 0x54, 0x452: 0x54, 0x453: 0x54, 0x454: 0x54, 0x455: 0x54, 0x456: 0x54, 0x457: 0x54,
1747 0x458: 0x54, 0x459: 0x54, 0x45a: 0x54, 0x45b: 0xd1, 0x45c: 0x54, 0x45d: 0x6c, 0x45e: 0x54, 0x45f: 0xd2,
1748 0x460: 0xd3, 0x461: 0xd4, 0x462: 0xd5, 0x464: 0xd6, 0x465: 0xd7, 0x466: 0xd8, 0x467: 0x36,
1749 0x47f: 0xd9,
1750 // Block 0x12, offset 0x480
1751 0x4bf: 0xd9,
1752 // Block 0x13, offset 0x4c0
1753 0x4d0: 0x09, 0x4d1: 0x0a, 0x4d6: 0x0b,
1754 0x4db: 0x0c, 0x4dd: 0x0d, 0x4de: 0x0e, 0x4df: 0x0f,
1755 0x4ef: 0x10,
1756 0x4ff: 0x10,
1757 // Block 0x14, offset 0x500
1758 0x50f: 0x10,
1759 0x51f: 0x10,
1760 0x52f: 0x10,
1761 0x53f: 0x10,
1762 // Block 0x15, offset 0x540
1763 0x540: 0xda, 0x541: 0xda, 0x542: 0xda, 0x543: 0xda, 0x544: 0x05, 0x545: 0x05, 0x546: 0x05, 0x547: 0xdb,
1764 0x548: 0xda, 0x549: 0xda, 0x54a: 0xda, 0x54b: 0xda, 0x54c: 0xda, 0x54d: 0xda, 0x54e: 0xda, 0x54f: 0xda,
1765 0x550: 0xda, 0x551: 0xda, 0x552: 0xda, 0x553: 0xda, 0x554: 0xda, 0x555: 0xda, 0x556: 0xda, 0x557: 0xda,
1766 0x558: 0xda, 0x559: 0xda, 0x55a: 0xda, 0x55b: 0xda, 0x55c: 0xda, 0x55d: 0xda, 0x55e: 0xda, 0x55f: 0xda,
1767 0x560: 0xda, 0x561: 0xda, 0x562: 0xda, 0x563: 0xda, 0x564: 0xda, 0x565: 0xda, 0x566: 0xda, 0x567: 0xda,
1768 0x568: 0xda, 0x569: 0xda, 0x56a: 0xda, 0x56b: 0xda, 0x56c: 0xda, 0x56d: 0xda, 0x56e: 0xda, 0x56f: 0xda,
1769 0x570: 0xda, 0x571: 0xda, 0x572: 0xda, 0x573: 0xda, 0x574: 0xda, 0x575: 0xda, 0x576: 0xda, 0x577: 0xda,
1770 0x578: 0xda, 0x579: 0xda, 0x57a: 0xda, 0x57b: 0xda, 0x57c: 0xda, 0x57d: 0xda, 0x57e: 0xda, 0x57f: 0xda,
1771 // Block 0x16, offset 0x580
1772 0x58f: 0x10,
1773 0x59f: 0x10,
1774 0x5a0: 0x13,
1775 0x5af: 0x10,
1776 0x5bf: 0x10,
1777 // Block 0x17, offset 0x5c0
1778 0x5cf: 0x10,
1779}
1780
1781// Total table size 15800 bytes (15KiB); checksum: F50EF68C
diff --git a/vendor/golang.org/x/text/unicode/bidi/trieval.go b/vendor/golang.org/x/text/unicode/bidi/trieval.go
new file mode 100644
index 0000000..4c459c4
--- /dev/null
+++ b/vendor/golang.org/x/text/unicode/bidi/trieval.go
@@ -0,0 +1,60 @@
1// Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT.
2
3package bidi
4
5// Class is the Unicode BiDi class. Each rune has a single class.
6type Class uint
7
8const (
9 L Class = iota // LeftToRight
10 R // RightToLeft
11 EN // EuropeanNumber
12 ES // EuropeanSeparator
13 ET // EuropeanTerminator
14 AN // ArabicNumber
15 CS // CommonSeparator
16 B // ParagraphSeparator
17 S // SegmentSeparator
18 WS // WhiteSpace
19 ON // OtherNeutral
20 BN // BoundaryNeutral
21 NSM // NonspacingMark
22 AL // ArabicLetter
23 Control // Control LRO - PDI
24
25 numClass
26
27 LRO // LeftToRightOverride
28 RLO // RightToLeftOverride
29 LRE // LeftToRightEmbedding
30 RLE // RightToLeftEmbedding
31 PDF // PopDirectionalFormat
32 LRI // LeftToRightIsolate
33 RLI // RightToLeftIsolate
34 FSI // FirstStrongIsolate
35 PDI // PopDirectionalIsolate
36
37 unknownClass = ^Class(0)
38)
39
40var controlToClass = map[rune]Class{
41 0x202D: LRO, // LeftToRightOverride,
42 0x202E: RLO, // RightToLeftOverride,
43 0x202A: LRE, // LeftToRightEmbedding,
44 0x202B: RLE, // RightToLeftEmbedding,
45 0x202C: PDF, // PopDirectionalFormat,
46 0x2066: LRI, // LeftToRightIsolate,
47 0x2067: RLI, // RightToLeftIsolate,
48 0x2068: FSI, // FirstStrongIsolate,
49 0x2069: PDI, // PopDirectionalIsolate,
50}
51
52// A trie entry has the following bits:
53// 7..5 XOR mask for brackets
54// 4 1: Bracket open, 0: Bracket close
55// 3..0 Class type
56
57const (
58 openMask = 0x10
59 xorMaskShift = 5
60)