diff --git a/src/bin/edit/documents.rs b/src/bin/edit/documents.rs index db88743e915..d221db8f6fe 100644 --- a/src/bin/edit/documents.rs +++ b/src/bin/edit/documents.rs @@ -199,6 +199,13 @@ impl DocumentManager { Ok(self.list.front_mut().unwrap()) } + pub fn reflow_all(&self) { + for doc in &self.list { + let mut tb = doc.buffer.borrow_mut(); + tb.reflow(); + } + } + pub fn open_for_reading(path: &Path) -> apperr::Result { File::open(path).map_err(apperr::Error::from) } diff --git a/src/bin/edit/main.rs b/src/bin/edit/main.rs index 0f625b2c6e1..f8f01a0654b 100644 --- a/src/bin/edit/main.rs +++ b/src/bin/edit/main.rs @@ -29,12 +29,12 @@ use draw_menubar::*; use draw_statusbar::*; use edit::arena::{self, Arena, ArenaString, scratch_arena}; use edit::framebuffer::{self, IndexedColor}; -use edit::helpers::{KIBI, MEBI, MetricFormatter, Rect, Size}; +use edit::helpers::{CoordType, KIBI, MEBI, MetricFormatter, Rect, Size}; use edit::input::{self, kbmod, vk}; use edit::oklab::oklab_blend; use edit::tui::*; use edit::vt::{self, Token}; -use edit::{apperr, arena_format, base64, path, sys}; +use edit::{apperr, arena_format, base64, path, sys, unicode}; use localization::*; use state::*; @@ -85,7 +85,7 @@ fn run() -> apperr::Result<()> { let mut input_parser = input::Parser::new(); let mut tui = Tui::new()?; - let _restore = setup_terminal(&mut tui, &mut vt_parser); + let _restore = setup_terminal(&mut tui, &mut state, &mut vt_parser); state.menubar_color_bg = oklab_blend( tui.indexed(IndexedColor::Background), @@ -509,7 +509,7 @@ impl Drop for RestoreModes { } } -fn setup_terminal(tui: &mut Tui, vt_parser: &mut vt::Parser) -> RestoreModes { +fn setup_terminal(tui: &mut Tui, state: &mut State, vt_parser: &mut vt::Parser) -> RestoreModes { sys::write_stdout(concat!( // 1049: Alternative Screen Buffer // I put the ASB switch in the beginning, just in case the terminal performs @@ -524,6 +524,12 @@ fn setup_terminal(tui: &mut Tui, vt_parser: &mut vt::Parser) -> RestoreModes { "\x1b]4;8;?;9;?;10;?;11;?;12;?;13;?;14;?;15;?\x07", // OSC 10 and 11 queries for the current foreground and background colors. "\x1b]10;?\x07\x1b]11;?\x07", + // Test whether ambiguous width characters are two columns wide. + // We use "…", because it's the most common ambiguous width character we use, + // and the old Windows conhost doesn't actually use wcwidth, it measures the + // actual display width of the character and assigns it columns accordingly. + // We detect it by writing the character and asking for the cursor position. + "\r…\x1b[6n", // CSI c reports the terminal capabilities. // It also helps us to detect the end of the responses, because not all // terminals support the OSC queries, but all of them support CSI c. @@ -534,6 +540,7 @@ fn setup_terminal(tui: &mut Tui, vt_parser: &mut vt::Parser) -> RestoreModes { let mut osc_buffer = String::new(); let mut indexed_colors = framebuffer::DEFAULT_THEME; let mut color_responses = 0; + let mut ambiguous_width = 1; while !done { let scratch = scratch_arena(None); @@ -544,7 +551,12 @@ fn setup_terminal(tui: &mut Tui, vt_parser: &mut vt::Parser) -> RestoreModes { let mut vt_stream = vt_parser.parse(&input); while let Some(token) = vt_stream.next() { match token { - Token::Csi(state) if state.final_byte == 'c' => done = true, + Token::Csi(csi) => match csi.final_byte { + 'c' => done = true, + // CPR (Cursor Position Report) response. + 'R' => ambiguous_width = csi.params[1] as CoordType - 1, + _ => {} + }, Token::Osc { mut data, partial } => { if partial { osc_buffer.push_str(data); @@ -601,6 +613,11 @@ fn setup_terminal(tui: &mut Tui, vt_parser: &mut vt::Parser) -> RestoreModes { } } + if ambiguous_width == 2 { + unicode::setup_ambiguous_width(2); + state.documents.reflow_all(); + } + if color_responses == indexed_colors.len() { tui.setup_indexed_colors(indexed_colors); } diff --git a/src/buffer/mod.rs b/src/buffer/mod.rs index 4676fb945b9..35e6c359e6b 100644 --- a/src/buffer/mod.rs +++ b/src/buffer/mod.rs @@ -422,7 +422,7 @@ impl TextBuffer { false } else { self.margin_enabled = enabled; - self.reflow(true); + self.reflow(); true } } @@ -477,7 +477,7 @@ impl TextBuffer { false } else { self.width = width; - self.reflow(true); + self.reflow(); true } } @@ -494,7 +494,7 @@ impl TextBuffer { false } else { self.tab_size = width; - self.reflow(true); + self.reflow(); true } } @@ -519,7 +519,7 @@ impl TextBuffer { self.ruler = column; } - fn reflow(&mut self, force: bool) { + pub fn reflow(&mut self) { // +1 onto logical_lines, because line numbers are 1-based. // +1 onto log10, because we want the digit width and not the actual log10. // +3 onto log10, because we append " | " to the line numbers to form the margin. @@ -531,24 +531,25 @@ impl TextBuffer { let text_width = self.text_width(); // 2 columns are required, because otherwise wide glyphs wouldn't ever fit. - let word_wrap_column = + self.word_wrap_column = if self.word_wrap_enabled && text_width >= 2 { text_width } else { 0 }; - if force || self.word_wrap_column > word_wrap_column { - self.word_wrap_column = word_wrap_column; - - if self.cursor.offset != 0 { - self.cursor = self - .cursor_move_to_logical_internal(Default::default(), self.cursor.logical_pos); - } - - // Recalculate the line statistics. - if self.word_wrap_enabled { - let end = self.cursor_move_to_logical_internal(self.cursor, Point::MAX); - self.stats.visual_lines = end.visual_pos.y + 1; + // Recalculate the cursor position. + self.cursor = self.cursor_move_to_logical_internal( + if self.word_wrap_column > 0 { + Default::default() } else { - self.stats.visual_lines = self.stats.logical_lines; - } + self.goto_line_start(self.cursor, self.cursor.logical_pos.y) + }, + self.cursor.logical_pos, + ); + + // Recalculate the line statistics. + if self.word_wrap_column > 0 { + let end = self.cursor_move_to_logical_internal(self.cursor, Point::MAX); + self.stats.visual_lines = end.visual_pos.y + 1; + } else { + self.stats.visual_lines = self.stats.logical_lines; } self.cursor_for_rendering = None; @@ -578,7 +579,7 @@ impl TextBuffer { self.set_selection(None); self.search = None; self.mark_as_clean(); - self.reflow(true); + self.reflow(); } /// Copies the contents of the buffer into a string. @@ -2280,9 +2281,7 @@ impl TextBuffer { } self.search = None; - - // Also takes care of clearing `cursor_for_rendering`. - self.reflow(false); + self.cursor_for_rendering = None; } /// Undo the last edit operation. @@ -2396,8 +2395,7 @@ impl TextBuffer { } } - // Also takes care of clearing `cursor_for_rendering`. - self.reflow(false); + self.cursor_for_rendering = None; } /// For interfacing with ICU. diff --git a/src/unicode/measurement.rs b/src/unicode/measurement.rs index 05c19bbcf56..4aac8acd846 100644 --- a/src/unicode/measurement.rs +++ b/src/unicode/measurement.rs @@ -9,6 +9,25 @@ use crate::document::ReadableDocument; use crate::helpers::{CoordType, Point}; use crate::simd::{memchr2, memrchr2}; +// On one hand it's disgusting that I wrote this as a global variable, but on the +// other hand, this isn't a public library API, and it makes the code a lot cleaner, +// because we don't need to inject this once-per-process value everywhere. +static mut AMBIGUOUS_WIDTH: usize = 1; + +/// Sets the width of "ambiguous" width characters as per "UAX #11: East Asian Width". +/// +/// Defaults to 1. +pub fn setup_ambiguous_width(ambiguous_width: CoordType) { + unsafe { AMBIGUOUS_WIDTH = ambiguous_width as usize }; +} + +#[inline] +fn ambiguous_width() -> usize { + // SAFETY: This is a global variable that is set once per process. + // It is never changed after that, so this is safe to call. + unsafe { AMBIGUOUS_WIDTH } +} + /// Stores a position inside a [`ReadableDocument`]. /// /// The cursor tracks both the absolute byte-offset, @@ -40,16 +59,25 @@ pub struct Cursor { /// Your entrypoint to navigating inside a [`ReadableDocument`]. #[derive(Clone)] pub struct MeasurementConfig<'doc> { - buffer: &'doc dyn ReadableDocument, + cursor: Cursor, tab_size: CoordType, word_wrap_column: CoordType, - cursor: Cursor, + buffer: &'doc dyn ReadableDocument, } impl<'doc> MeasurementConfig<'doc> { /// Creates a new [`MeasurementConfig`] for the given document. pub fn new(buffer: &'doc dyn ReadableDocument) -> Self { - Self { buffer, tab_size: 8, word_wrap_column: 0, cursor: Default::default() } + Self { cursor: Default::default(), tab_size: 8, word_wrap_column: 0, buffer } + } + + /// Sets the initial cursor to the given position. + /// + /// WARNING: While the code doesn't panic if the cursor is invalid, + /// the results will obviously be complete garbage. + pub fn with_cursor(mut self, cursor: Cursor) -> Self { + self.cursor = cursor; + self } /// Sets the tab size. @@ -68,31 +96,13 @@ impl<'doc> MeasurementConfig<'doc> { self } - /// Sets the initial cursor to the given position. - /// - /// WARNING: While the code doesn't panic if the cursor is invalid, - /// the results will obviously be complete garbage. - pub fn with_cursor(mut self, cursor: Cursor) -> Self { - self.cursor = cursor; - self - } - /// Navigates **forward** to the given absolute offset. /// /// # Returns /// /// The cursor position after the navigation. pub fn goto_offset(&mut self, offset: usize) -> Cursor { - self.cursor = Self::measure_forward( - self.tab_size, - self.word_wrap_column, - offset, - Point::MAX, - Point::MAX, - self.cursor, - self.buffer, - ); - self.cursor + self.measure_forward(offset, Point::MAX, Point::MAX) } /// Navigates **forward** to the given logical position. @@ -103,16 +113,7 @@ impl<'doc> MeasurementConfig<'doc> { /// /// The cursor position after the navigation. pub fn goto_logical(&mut self, logical_target: Point) -> Cursor { - self.cursor = Self::measure_forward( - self.tab_size, - self.word_wrap_column, - usize::MAX, - logical_target, - Point::MAX, - self.cursor, - self.buffer, - ); - self.cursor + self.measure_forward(usize::MAX, logical_target, Point::MAX) } /// Navigates **forward** to the given visual position. @@ -123,16 +124,7 @@ impl<'doc> MeasurementConfig<'doc> { /// /// The cursor position after the navigation. pub fn goto_visual(&mut self, visual_target: Point) -> Cursor { - self.cursor = Self::measure_forward( - self.tab_size, - self.word_wrap_column, - usize::MAX, - Point::MAX, - visual_target, - self.cursor, - self.buffer, - ); - self.cursor + self.measure_forward(usize::MAX, Point::MAX, visual_target) } /// Returns the current cursor position. @@ -149,27 +141,24 @@ impl<'doc> MeasurementConfig<'doc> { // the wrap exists on both lines and it'll default to wrapping. `goto_visual` however will always // try to return a Y position that matches the requested position, so that Home/End works properly. fn measure_forward( - tab_size: CoordType, - word_wrap_column: CoordType, + &mut self, offset_target: usize, logical_target: Point, visual_target: Point, - cursor: Cursor, - buffer: &dyn ReadableDocument, ) -> Cursor { - if cursor.offset >= offset_target - || cursor.logical_pos >= logical_target - || cursor.visual_pos >= visual_target + if self.cursor.offset >= offset_target + || self.cursor.logical_pos >= logical_target + || self.cursor.visual_pos >= visual_target { - return cursor; + return self.cursor; } - let mut offset = cursor.offset; - let mut logical_pos_x = cursor.logical_pos.x; - let mut logical_pos_y = cursor.logical_pos.y; - let mut visual_pos_x = cursor.visual_pos.x; - let mut visual_pos_y = cursor.visual_pos.y; - let mut column = cursor.column; + let mut offset = self.cursor.offset; + let mut logical_pos_x = self.cursor.logical_pos.x; + let mut logical_pos_y = self.cursor.logical_pos.y; + let mut visual_pos_x = self.cursor.visual_pos.x; + let mut visual_pos_y = self.cursor.visual_pos.y; + let mut column = self.cursor.column; let mut logical_target_x = Self::calc_target_x(logical_target, logical_pos_y); let mut visual_target_x = Self::calc_target_x(visual_target, visual_pos_y); @@ -177,7 +166,7 @@ impl<'doc> MeasurementConfig<'doc> { // wrap_opp = Wrap Opportunity // These store the position and column of the last wrap opportunity. If `word_wrap_column` is // zero (word wrap disabled), all grapheme clusters are a wrap opportunity, because none are. - let mut wrap_opp = cursor.wrap_opp; + let mut wrap_opp = self.cursor.wrap_opp; let mut wrap_opp_offset = offset; let mut wrap_opp_logical_pos_x = logical_pos_x; let mut wrap_opp_visual_pos_x = visual_pos_x; @@ -209,7 +198,7 @@ impl<'doc> MeasurementConfig<'doc> { loop { if !chunk_iter.has_next() { cold_path(); - chunk_iter = Utf8Chars::new(buffer.read_forward(chunk_range.end), 0); + chunk_iter = Utf8Chars::new(self.buffer.read_forward(chunk_range.end), 0); chunk_range = chunk_range.end..chunk_range.end + chunk_iter.len(); } @@ -219,7 +208,8 @@ impl<'doc> MeasurementConfig<'doc> { // Similar applies to the width. props_last_char = props_next_cluster; offset_next_cluster = chunk_range.start + chunk_iter.offset(); - width += ucd_grapheme_cluster_character_width(props_next_cluster) as CoordType; + width += ucd_grapheme_cluster_character_width(props_next_cluster, ambiguous_width()) + as CoordType; // The `Document::read_forward` interface promises us that it will not split // grapheme clusters across chunks. Therefore, we can safely break here. @@ -252,10 +242,10 @@ impl<'doc> MeasurementConfig<'doc> { // Tabs require special handling because they can have a variable width. if props_last_char == ucd_tab_properties() { - // SAFETY: `tab_size` is clamped to >= 1 in `with_tab_size`. + // SAFETY: `self.tab_size` is clamped to >= 1 in `with_tab_size`. // This assert ensures that Rust doesn't insert panicking null checks. - unsafe { std::hint::assert_unchecked(tab_size >= 1) }; - width = tab_size - (column % tab_size); + unsafe { std::hint::assert_unchecked(self.tab_size >= 1) }; + width = self.tab_size - (column % self.tab_size); } // Hard wrap: Both the logical and visual position advance by one line. @@ -290,7 +280,7 @@ impl<'doc> MeasurementConfig<'doc> { // Since this code above may need to revert to a previous `wrap_opp_*`, // it must be done before advancing / checking for `ucd_line_break_joins`. - if word_wrap_column > 0 && visual_pos_x + width > word_wrap_column { + if self.word_wrap_column > 0 && visual_pos_x + width > self.word_wrap_column { if !wrap_opp { // Otherwise, the lack of a wrap opportunity means that a single word // is wider than the word wrap column. We need to force-break the word. @@ -342,7 +332,7 @@ impl<'doc> MeasurementConfig<'doc> { visual_pos_x += width; column += width; - if word_wrap_column > 0 + if self.word_wrap_column > 0 && !ucd_line_break_joins(props_current_cluster, props_next_cluster) { wrap_opp = true; @@ -355,7 +345,7 @@ impl<'doc> MeasurementConfig<'doc> { // If we're here, we hit our target. Now the only question is: // Is the word we're currently on so wide that it will be wrapped further down the document? - if word_wrap_column > 0 { + if self.word_wrap_column > 0 { if !wrap_opp { // If the current laid-out line had no wrap opportunities, it means we had an input // such as "fooooooooooooooooooooo" at a `word_wrap_column` of e.g. 10. The word @@ -386,7 +376,8 @@ impl<'doc> MeasurementConfig<'doc> { loop { if !chunk_iter.has_next() { cold_path(); - chunk_iter = Utf8Chars::new(buffer.read_forward(chunk_range.end), 0); + chunk_iter = + Utf8Chars::new(self.buffer.read_forward(chunk_range.end), 0); chunk_range = chunk_range.end..chunk_range.end + chunk_iter.len(); } @@ -396,8 +387,10 @@ impl<'doc> MeasurementConfig<'doc> { // Similar applies to the width. props_last_char = props_next_cluster; offset_next_cluster = chunk_range.start + chunk_iter.offset(); - width += - ucd_grapheme_cluster_character_width(props_next_cluster) as CoordType; + width += ucd_grapheme_cluster_character_width( + props_next_cluster, + ambiguous_width(), + ) as CoordType; // The `Document::read_forward` interface promises us that it will not split // grapheme clusters across chunks. Therefore, we can safely break here. @@ -431,10 +424,10 @@ impl<'doc> MeasurementConfig<'doc> { // Tabs require special handling because they can have a variable width. if props_last_char == ucd_tab_properties() { - // SAFETY: `tab_size` is clamped to >= 1 in `with_tab_size`. + // SAFETY: `self.tab_size` is clamped to >= 1 in `with_tab_size`. // This assert ensures that Rust doesn't insert panicking null checks. - unsafe { std::hint::assert_unchecked(tab_size >= 1) }; - width = tab_size - (column % tab_size); + unsafe { std::hint::assert_unchecked(self.tab_size >= 1) }; + width = self.tab_size - (column % self.tab_size); } // Hard wrap: Both the logical and visual position advance by one line. @@ -444,7 +437,7 @@ impl<'doc> MeasurementConfig<'doc> { visual_pos_x_lookahead += width; - if visual_pos_x_lookahead > word_wrap_column { + if visual_pos_x_lookahead > self.word_wrap_column { visual_pos_x -= wrap_opp_visual_pos_x; visual_pos_y += 1; break; @@ -467,13 +460,12 @@ impl<'doc> MeasurementConfig<'doc> { } } - Cursor { - offset, - logical_pos: Point { x: logical_pos_x, y: logical_pos_y }, - visual_pos: Point { x: visual_pos_x, y: visual_pos_y }, - column, - wrap_opp, - } + self.cursor.offset = offset; + self.cursor.logical_pos = Point { x: logical_pos_x, y: logical_pos_y }; + self.cursor.visual_pos = Point { x: visual_pos_x, y: visual_pos_y }; + self.cursor.column = column; + self.cursor.wrap_opp = wrap_opp; + self.cursor } #[inline] diff --git a/src/unicode/tables.rs b/src/unicode/tables.rs index dc2ffa476e0..ee88b873148 100644 --- a/src/unicode/tables.rs +++ b/src/unicode/tables.rs @@ -1,17 +1,17 @@ // Copyright (c) Microsoft Corporation. // Licensed under the MIT License. -// BEGIN: Generated by grapheme-table-gen on 2025-03-31T16:50:08Z, from Unicode 16.0.0, with --lang=rust --extended --no-ambiguous --line-breaks, 16950 bytes +// BEGIN: Generated by grapheme-table-gen on 2025-06-03T13:50:48Z, from Unicode 16.0.0, with --lang=rust --extended --line-breaks, 17688 bytes #[rustfmt::skip] const STAGE0: [u16; 544] = [ 0x0000, 0x0040, 0x007f, 0x00bf, 0x00ff, 0x013f, 0x017f, 0x0194, 0x0194, 0x01a6, 0x0194, 0x0194, 0x0194, 0x0194, 0x0194, 0x0194, - 0x0194, 0x0194, 0x0194, 0x0194, 0x01e6, 0x0226, 0x024a, 0x024b, 0x024c, 0x0246, 0x0255, 0x0295, 0x0295, 0x0295, 0x0295, 0x02cd, - 0x030d, 0x034d, 0x038d, 0x03cd, 0x040d, 0x0438, 0x0478, 0x049b, 0x04bc, 0x0295, 0x0295, 0x0295, 0x04f4, 0x0534, 0x0194, 0x0194, - 0x0574, 0x05b4, 0x0295, 0x0295, 0x0295, 0x05dd, 0x061d, 0x063d, 0x0295, 0x0663, 0x06a3, 0x06e3, 0x0723, 0x0763, 0x07a3, 0x07e3, + 0x0194, 0x0194, 0x0194, 0x0194, 0x01e6, 0x0226, 0x024a, 0x024b, 0x024c, 0x0246, 0x0255, 0x0295, 0x02d5, 0x02d5, 0x02d5, 0x030d, + 0x034d, 0x038d, 0x03cd, 0x040d, 0x044d, 0x0478, 0x04b8, 0x04db, 0x04fc, 0x0295, 0x0295, 0x0295, 0x0534, 0x0574, 0x0194, 0x0194, + 0x05b4, 0x05f4, 0x0295, 0x0295, 0x0295, 0x061d, 0x065d, 0x067d, 0x0295, 0x06a3, 0x06e3, 0x0723, 0x0763, 0x07a3, 0x07e3, 0x0823, 0x0194, 0x0194, 0x0194, 0x0194, 0x0194, 0x0194, 0x0194, 0x0194, 0x0194, 0x0194, 0x0194, 0x0194, 0x0194, 0x0194, 0x0194, 0x0194, - 0x0194, 0x0194, 0x0194, 0x0194, 0x0194, 0x0194, 0x0194, 0x0194, 0x0194, 0x0194, 0x0194, 0x0194, 0x0194, 0x0194, 0x0194, 0x0823, + 0x0194, 0x0194, 0x0194, 0x0194, 0x0194, 0x0194, 0x0194, 0x0194, 0x0194, 0x0194, 0x0194, 0x0194, 0x0194, 0x0194, 0x0194, 0x0863, 0x0194, 0x0194, 0x0194, 0x0194, 0x0194, 0x0194, 0x0194, 0x0194, 0x0194, 0x0194, 0x0194, 0x0194, 0x0194, 0x0194, 0x0194, 0x0194, - 0x0194, 0x0194, 0x0194, 0x0194, 0x0194, 0x0194, 0x0194, 0x0194, 0x0194, 0x0194, 0x0194, 0x0194, 0x0194, 0x0194, 0x0194, 0x0823, + 0x0194, 0x0194, 0x0194, 0x0194, 0x0194, 0x0194, 0x0194, 0x0194, 0x0194, 0x0194, 0x0194, 0x0194, 0x0194, 0x0194, 0x0194, 0x0863, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, @@ -32,550 +32,568 @@ const STAGE0: [u16; 544] = [ 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, - 0x0863, 0x0873, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, - 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, - 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, - 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, - 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, + 0x08a3, 0x08b3, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, 0x0295, + 0x02d5, 0x02d5, 0x02d5, 0x02d5, 0x02d5, 0x02d5, 0x02d5, 0x02d5, 0x02d5, 0x02d5, 0x02d5, 0x02d5, 0x02d5, 0x02d5, 0x02d5, 0x02d5, + 0x02d5, 0x02d5, 0x02d5, 0x02d5, 0x02d5, 0x02d5, 0x02d5, 0x02d5, 0x02d5, 0x02d5, 0x02d5, 0x02d5, 0x02d5, 0x02d5, 0x02d5, 0x08f3, + 0x02d5, 0x02d5, 0x02d5, 0x02d5, 0x02d5, 0x02d5, 0x02d5, 0x02d5, 0x02d5, 0x02d5, 0x02d5, 0x02d5, 0x02d5, 0x02d5, 0x02d5, 0x02d5, + 0x02d5, 0x02d5, 0x02d5, 0x02d5, 0x02d5, 0x02d5, 0x02d5, 0x02d5, 0x02d5, 0x02d5, 0x02d5, 0x02d5, 0x02d5, 0x02d5, 0x02d5, 0x08f3, ]; #[rustfmt::skip] -const STAGE1: [u16; 2227] = [ - 0x0000, 0x0008, 0x0010, 0x0018, 0x0020, 0x0028, 0x0030, 0x0030, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x003d, 0x0036, 0x0045, 0x0045, 0x004a, 0x0052, 0x005a, 0x0062, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x006a, 0x0036, 0x0036, 0x0036, 0x0036, 0x006e, 0x0073, 0x0036, 0x007a, 0x007f, 0x0087, 0x008d, 0x0095, 0x0036, 0x009d, 0x00a5, 0x0036, 0x0036, 0x00aa, 0x00b2, 0x00b9, 0x00be, 0x00c4, 0x0036, 0x0036, 0x00cb, 0x00d3, 0x00d9, - 0x00e1, 0x00e8, 0x00f0, 0x00f8, 0x00fd, 0x0036, 0x0105, 0x010d, 0x0115, 0x011b, 0x0123, 0x012b, 0x0133, 0x0139, 0x0141, 0x0149, 0x0151, 0x0157, 0x015f, 0x0167, 0x016f, 0x0175, 0x017d, 0x0185, 0x018d, 0x0193, 0x019b, 0x01a3, 0x01ab, 0x01b3, 0x01bb, 0x01c2, 0x01ca, 0x01d0, 0x01d8, 0x01e0, 0x01e8, 0x01ee, 0x01f6, 0x01fe, 0x0206, 0x020c, 0x0214, 0x021c, 0x0224, 0x022b, 0x0233, 0x023b, 0x0241, 0x0245, 0x024d, 0x0241, 0x0241, 0x0254, 0x025c, 0x0241, 0x0264, 0x026c, 0x0070, 0x0274, 0x027c, 0x0283, 0x028b, 0x0241, - 0x0292, 0x029a, 0x02a2, 0x02aa, 0x0036, 0x02b2, 0x0036, 0x02ba, 0x02ba, 0x02ba, 0x02c2, 0x02c2, 0x02c8, 0x02ca, 0x02ca, 0x0036, 0x0036, 0x02d2, 0x0036, 0x02da, 0x02de, 0x02e6, 0x0036, 0x02ec, 0x0036, 0x02f2, 0x02fa, 0x0302, 0x0036, 0x0036, 0x030a, 0x0312, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x031a, 0x0036, 0x0036, 0x0322, 0x032a, 0x0332, 0x033a, 0x0342, 0x0241, 0x0347, 0x034f, 0x0357, 0x035f, - 0x0036, 0x0036, 0x0367, 0x036f, 0x0375, 0x0036, 0x0379, 0x0037, 0x0381, 0x0389, 0x0241, 0x0241, 0x0241, 0x038d, 0x0036, 0x0395, 0x0241, 0x039d, 0x03a5, 0x03ad, 0x03b4, 0x03b9, 0x0241, 0x03c1, 0x03c4, 0x03cc, 0x03d4, 0x03dc, 0x03e4, 0x0241, 0x03ec, 0x0036, 0x03f3, 0x03fb, 0x0402, 0x00f8, 0x040a, 0x0412, 0x041a, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0422, 0x0426, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x030a, 0x0036, 0x042e, 0x0436, 0x0036, 0x043e, 0x0442, 0x044a, 0x0452, - 0x045a, 0x0462, 0x046a, 0x0472, 0x047a, 0x0482, 0x0486, 0x048e, 0x0496, 0x049d, 0x04a5, 0x04ac, 0x04b3, 0x04b7, 0x0036, 0x04bf, 0x04c7, 0x04cf, 0x04d7, 0x04df, 0x04e6, 0x0036, 0x04ee, 0x04f4, 0x04fb, 0x0036, 0x0036, 0x0501, 0x0036, 0x0506, 0x050c, 0x0036, 0x0513, 0x051b, 0x0241, 0x0241, 0x0241, 0x0523, 0x0524, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x052c, 0x0534, 0x053c, 0x0544, 0x054c, 0x0554, 0x055c, 0x0564, 0x056c, 0x0574, 0x057c, 0x0584, 0x058b, 0x0592, 0x059a, 0x05a0, 0x05a8, 0x05b0, 0x05b7, 0x0036, - 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x05bb, 0x0036, 0x0036, 0x05c3, 0x0036, 0x05ca, 0x05d1, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x05d9, 0x0036, 0x05e1, 0x05e8, 0x05ee, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x05f4, 0x0036, 0x02b2, 0x0036, 0x05fc, 0x0604, 0x060c, 0x060c, 0x0045, 0x0614, 0x061c, 0x0624, 0x0241, 0x062c, 0x0633, 0x0633, 0x0636, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x063e, 0x0644, 0x064c, - 0x0654, 0x065c, 0x0664, 0x066c, 0x0674, 0x0664, 0x067c, 0x0684, 0x0688, 0x0633, 0x0633, 0x068d, 0x0633, 0x0633, 0x0694, 0x069c, 0x0633, 0x06a4, 0x0633, 0x06a8, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, - 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x06b0, 0x06b0, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x06b8, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, - 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x06be, 0x0633, 0x06c5, 0x0402, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x06ca, 0x06d2, 0x0036, 0x06da, 0x06e2, 0x0036, 0x0036, 0x06ea, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x06f2, 0x06fa, 0x0702, 0x070a, 0x0036, 0x0712, 0x071a, 0x071d, 0x0724, 0x072c, 0x00d3, 0x0734, 0x073b, 0x0743, 0x074b, 0x074f, 0x0757, 0x075f, 0x0241, 0x0766, 0x076e, 0x0776, 0x0241, 0x077e, 0x0786, 0x078e, 0x0796, 0x079e, - 0x0036, 0x07a3, 0x0036, 0x0036, 0x0036, 0x07ab, 0x07b3, 0x07b4, 0x07b5, 0x07b6, 0x07b7, 0x07b8, 0x07b9, 0x07b3, 0x07b4, 0x07b5, 0x07b6, 0x07b7, 0x07b8, 0x07b9, 0x07b3, 0x07b4, 0x07b5, 0x07b6, 0x07b7, 0x07b8, 0x07b9, 0x07b3, 0x07b4, 0x07b5, 0x07b6, 0x07b7, 0x07b8, 0x07b9, 0x07b3, 0x07b4, 0x07b5, 0x07b6, 0x07b7, 0x07b8, 0x07b9, 0x07b3, 0x07b4, 0x07b5, 0x07b6, 0x07b7, 0x07b8, 0x07b9, 0x07b3, 0x07b4, 0x07b5, 0x07b6, 0x07b7, 0x07b8, 0x07b9, 0x07b3, 0x07b4, 0x07b5, 0x07b6, 0x07b7, 0x07b8, 0x07b9, 0x07b3, 0x07b4, - 0x07b5, 0x07b6, 0x07b7, 0x07b8, 0x07b9, 0x07b3, 0x07b4, 0x07b5, 0x07b6, 0x07b7, 0x07b8, 0x07b9, 0x07b3, 0x07b4, 0x07b5, 0x07b6, 0x07b7, 0x07b8, 0x07c0, 0x07c7, 0x07ca, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, - 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x07d2, 0x07da, 0x07e2, 0x0036, 0x0036, 0x0036, 0x07ea, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x07ef, 0x0036, 0x0036, 0x05e9, 0x0036, 0x07f7, 0x07fb, 0x0803, 0x080b, 0x0812, - 0x081a, 0x0036, 0x0036, 0x0036, 0x0820, 0x0828, 0x0830, 0x0838, 0x0840, 0x0845, 0x084d, 0x0855, 0x085d, 0x006f, 0x0865, 0x086d, 0x0241, 0x0036, 0x0036, 0x0036, 0x07e4, 0x0875, 0x0878, 0x0036, 0x0036, 0x087e, 0x0240, 0x0886, 0x088a, 0x0241, 0x0241, 0x0241, 0x0241, 0x0892, 0x0036, 0x0895, 0x089d, 0x0036, 0x08a3, 0x00f8, 0x08a7, 0x08af, 0x0036, 0x08b7, 0x0241, 0x0036, 0x0036, 0x0036, 0x0036, 0x0436, 0x0363, 0x08bf, 0x08c5, 0x0036, 0x08ca, 0x0036, 0x08d1, 0x08d5, 0x08da, 0x0036, 0x08e2, 0x0036, 0x0036, 0x0036, - 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0604, 0x0379, 0x08e5, 0x0061, 0x08ed, 0x0241, 0x0241, 0x08f5, 0x08f8, 0x0900, 0x0036, 0x0037, 0x0908, 0x0241, 0x0910, 0x0917, 0x091f, 0x0241, 0x0241, 0x0036, 0x0927, 0x05e9, 0x0036, 0x092f, 0x0936, 0x093e, 0x0036, 0x0036, 0x0241, 0x0036, 0x0946, 0x0036, 0x094e, 0x0438, 0x0956, 0x095c, 0x0964, 0x0241, 0x0241, 0x0036, 0x0036, 0x096c, 0x0241, 0x0036, 0x07e6, 0x0036, 0x0974, 0x0036, 0x097b, 0x00d3, 0x0983, 0x098a, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, - 0x0037, 0x0036, 0x0992, 0x099a, 0x099c, 0x0036, 0x08ca, 0x09a4, 0x0886, 0x09ac, 0x0886, 0x08e4, 0x0604, 0x09b4, 0x09b6, 0x09bd, 0x09c4, 0x03dc, 0x09cc, 0x09d4, 0x09da, 0x09e2, 0x09e9, 0x09f1, 0x09f5, 0x03dc, 0x09fd, 0x0a05, 0x0a0d, 0x005e, 0x0a15, 0x0a1d, 0x0241, 0x0a25, 0x0a2d, 0x0063, 0x0a35, 0x0a3d, 0x0a3f, 0x0a47, 0x0a4f, 0x0241, 0x0a55, 0x0a5d, 0x0a65, 0x0036, 0x0a6d, 0x0a75, 0x0a7d, 0x0036, 0x0a85, 0x0a8d, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0036, 0x0a95, 0x0a9d, 0x0241, 0x0036, 0x0aa5, 0x0aad, - 0x0ab5, 0x0036, 0x0abd, 0x0ac5, 0x0acc, 0x0acd, 0x0ad5, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0036, 0x0add, 0x0241, 0x0241, 0x0241, 0x0036, 0x0036, 0x0ae5, 0x0241, 0x0aed, 0x0af5, 0x0241, 0x0241, 0x05eb, 0x0afd, 0x0b05, 0x0b0d, 0x0b11, 0x0b19, 0x0036, 0x0b20, 0x0b28, 0x0036, 0x0367, 0x0b30, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0036, 0x0b38, 0x0b40, 0x0b45, 0x0b4d, 0x0b54, 0x0b59, 0x0b5f, 0x0241, 0x0241, 0x0b67, 0x0b6b, 0x0b73, 0x0b7b, 0x0b81, 0x0b89, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, - 0x0241, 0x0241, 0x0241, 0x0241, 0x0b8d, 0x0b95, 0x0b98, 0x0ba0, 0x0241, 0x0241, 0x0ba7, 0x0baf, 0x0bb7, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0302, 0x0241, 0x0241, 0x0241, 0x0036, 0x0036, 0x0036, 0x0bbf, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0bc7, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, - 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0886, 0x0036, 0x0036, 0x07e6, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, - 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0bcf, 0x0036, 0x0bd7, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0bda, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0be1, 0x0be9, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, - 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x07e4, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0bf1, 0x0036, 0x0036, 0x0036, 0x0bf8, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0bfa, 0x0c02, 0x0241, 0x0241, - 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, - 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0367, 0x0037, 0x0c0a, 0x0036, 0x0037, 0x0363, 0x0c0f, 0x0036, 0x0c17, 0x0c1e, 0x0c26, 0x08e3, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0036, 0x0c2e, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0036, 0x0036, 0x0c36, 0x0241, 0x0241, 0x0241, 0x0036, 0x0036, 0x0c3e, 0x0c43, 0x0c49, 0x0241, 0x0241, 0x0c51, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, - 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0635, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, - 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x06b0, 0x06b0, 0x06b0, 0x06b0, 0x06b0, 0x06b0, 0x06b0, 0x06b0, 0x06b0, 0x06b0, 0x06b0, 0x06b0, 0x06b0, 0x06b0, 0x0c59, 0x0c5f, 0x0c67, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, - 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0c6b, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0c73, 0x0c78, 0x0c7f, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0634, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, - 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0036, 0x0036, 0x0036, 0x0c87, 0x0c8c, 0x0c94, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, - 0x0241, 0x0241, 0x0241, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0c9c, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x08e2, 0x0241, 0x0241, 0x0045, 0x0ca4, 0x0cab, 0x0036, 0x0036, 0x0036, 0x0bc7, 0x0241, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0379, 0x0036, 0x0cb2, 0x0036, 0x0cb9, 0x0cc1, 0x0cc7, 0x0036, 0x051b, 0x0036, 0x0036, 0x0ccf, 0x0241, 0x0241, 0x0241, 0x08e2, 0x08e2, 0x06b0, 0x06b0, 0x0cd7, 0x0cdf, 0x0241, - 0x0241, 0x0241, 0x0241, 0x0036, 0x0036, 0x043e, 0x0036, 0x0ce7, 0x0cef, 0x0cf7, 0x0036, 0x0cfe, 0x0cf9, 0x0d06, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0d0d, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0d12, 0x0d16, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0045, 0x0d1e, 0x0045, 0x0d25, 0x0d2c, 0x0d34, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, - 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0037, 0x0d3b, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0d43, 0x0d4b, 0x0036, 0x0d50, 0x0d55, 0x0241, 0x0241, 0x0241, 0x0036, 0x0d5d, 0x0d65, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0886, 0x0d6d, 0x0036, 0x0d75, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, - 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0886, 0x0d7d, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0886, 0x0d85, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0d8d, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0d95, 0x0241, 0x0036, 0x0036, 0x0d9d, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, - 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0da5, 0x0036, 0x0daa, 0x0241, 0x0241, 0x0db2, 0x0436, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0cf7, 0x0dba, 0x0dc2, 0x0dca, 0x0dd2, 0x0dda, 0x0241, 0x0b34, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, 0x0de2, 0x0de4, 0x0de4, 0x0de4, 0x0de4, 0x0de4, 0x0de9, 0x0de4, 0x0df1, 0x0df6, 0x0241, 0x0dfc, 0x0e04, 0x0e0b, 0x0de4, 0x0e12, 0x0e1a, 0x0e21, 0x0e29, 0x0e31, 0x0de4, 0x0de4, 0x0de4, 0x0de4, 0x0e39, 0x0e41, 0x0e39, 0x0e47, 0x0e4f, - 0x0e57, 0x0e5f, 0x0e67, 0x0e39, 0x0e6f, 0x0e77, 0x0e39, 0x0e39, 0x0e7f, 0x0e39, 0x0e84, 0x0e8c, 0x0e93, 0x0e9b, 0x0ea1, 0x0ea8, 0x0de2, 0x0eae, 0x0eb5, 0x0e39, 0x0e39, 0x0ebc, 0x0ec0, 0x0e39, 0x0e39, 0x0ec8, 0x0ed0, 0x0036, 0x0036, 0x0036, 0x0ed8, 0x0036, 0x0036, 0x0ee0, 0x0ee8, 0x0ef0, 0x0036, 0x0ef6, 0x0036, 0x0efe, 0x0f03, 0x0f0b, 0x0f0c, 0x0f14, 0x0f17, 0x0f1e, 0x0e39, 0x0e39, 0x0e39, 0x0e39, 0x0e39, 0x0f26, 0x0f26, 0x0f29, 0x0f2e, 0x0f36, 0x0e39, 0x0f3d, 0x0f45, 0x0036, 0x0036, 0x0036, 0x0036, 0x0031, - 0x0036, 0x0036, 0x0c9c, 0x0de4, 0x0de4, 0x0de4, 0x0de4, 0x0de4, 0x0de4, 0x0de4, 0x0de4, 0x0de4, 0x0de4, 0x0de4, 0x0de4, 0x0de4, 0x0de4, 0x0de4, 0x0de4, 0x0de4, 0x0de4, 0x0de4, 0x0de4, 0x0de4, 0x0de4, 0x0de4, 0x0de4, 0x0de4, 0x0de4, 0x0de4, 0x0de4, 0x0de4, 0x0de4, 0x0de4, 0x0f4c, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, - 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0633, 0x0f54, 0x0f5c, 0x0045, 0x0045, 0x0045, 0x0020, 0x0020, 0x0020, 0x0020, 0x0045, 0x0045, 0x0045, 0x0045, 0x0045, 0x0045, 0x0045, 0x0f64, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, - 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, +const STAGE1: [u16; 2355] = [ + 0x0000, 0x0008, 0x0010, 0x0018, 0x0020, 0x0028, 0x0030, 0x0038, 0x0040, 0x0047, 0x004f, 0x0056, 0x0059, 0x0059, 0x005e, 0x0059, 0x0059, 0x0059, 0x0066, 0x006a, 0x0059, 0x0059, 0x0071, 0x0059, 0x0079, 0x0079, 0x007e, 0x0086, 0x008e, 0x0096, 0x009e, 0x0059, 0x00a6, 0x00aa, 0x00ae, 0x0059, 0x00b6, 0x0059, 0x0059, 0x0059, 0x0059, 0x00ba, 0x00bf, 0x0059, 0x00c6, 0x00cb, 0x00d3, 0x00d9, 0x00e1, 0x0059, 0x00e9, 0x00f1, 0x0059, 0x0059, 0x00f6, 0x00fe, 0x0105, 0x010a, 0x0110, 0x0059, 0x0059, 0x0117, 0x011f, 0x0125, + 0x012d, 0x0134, 0x013c, 0x0144, 0x0149, 0x0059, 0x0151, 0x0159, 0x0161, 0x0167, 0x016f, 0x0177, 0x017f, 0x0185, 0x018d, 0x0195, 0x019d, 0x01a3, 0x01ab, 0x01b3, 0x01bb, 0x01c1, 0x01c9, 0x01d1, 0x01d9, 0x01df, 0x01e7, 0x01ef, 0x01f7, 0x01ff, 0x0207, 0x020e, 0x0216, 0x021c, 0x0224, 0x022c, 0x0234, 0x023a, 0x0242, 0x024a, 0x0252, 0x0258, 0x0260, 0x0268, 0x0270, 0x0277, 0x027f, 0x0287, 0x028d, 0x0291, 0x0299, 0x028d, 0x028d, 0x02a0, 0x02a8, 0x028d, 0x02b0, 0x02b8, 0x00bc, 0x02c0, 0x02c8, 0x02cf, 0x02d7, 0x028d, + 0x02de, 0x02e6, 0x02ee, 0x02f6, 0x0059, 0x02fe, 0x0059, 0x0306, 0x0306, 0x0306, 0x030e, 0x030e, 0x0314, 0x0316, 0x0316, 0x0059, 0x0059, 0x031e, 0x0059, 0x0326, 0x032a, 0x0332, 0x0059, 0x0338, 0x0059, 0x033e, 0x0346, 0x034e, 0x0059, 0x0059, 0x0356, 0x035e, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0366, 0x0059, 0x0059, 0x036e, 0x0376, 0x037e, 0x0386, 0x038e, 0x028d, 0x0393, 0x039b, 0x03a3, 0x03ab, + 0x0059, 0x0059, 0x03b3, 0x03bb, 0x03c1, 0x0059, 0x03c5, 0x03cd, 0x03d5, 0x03dd, 0x028d, 0x028d, 0x028d, 0x03e1, 0x0059, 0x03e9, 0x028d, 0x03f1, 0x03f9, 0x0401, 0x0408, 0x040d, 0x028d, 0x0415, 0x0418, 0x0420, 0x0428, 0x0430, 0x0438, 0x028d, 0x0440, 0x0059, 0x0447, 0x044f, 0x0456, 0x0144, 0x045e, 0x0466, 0x046e, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0476, 0x047a, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0356, 0x0059, 0x0482, 0x048a, 0x0059, 0x0492, 0x0496, 0x049e, 0x04a6, + 0x04ae, 0x04b6, 0x04be, 0x04c6, 0x04ce, 0x04d6, 0x04da, 0x04e2, 0x04ea, 0x04f1, 0x04f9, 0x0500, 0x0507, 0x050e, 0x0515, 0x051d, 0x0525, 0x052d, 0x0535, 0x053d, 0x0544, 0x0059, 0x054c, 0x0552, 0x0559, 0x0059, 0x0059, 0x055f, 0x0059, 0x0564, 0x056a, 0x0059, 0x0571, 0x0579, 0x0581, 0x0581, 0x0581, 0x0589, 0x058f, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x0597, 0x059f, 0x05a7, 0x05af, 0x05b7, 0x05bf, 0x05c7, 0x05cf, 0x05d7, 0x05df, 0x05e7, 0x05ef, 0x05f6, 0x05fe, 0x0606, 0x060e, 0x0616, 0x061e, 0x0625, 0x0059, + 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0629, 0x0059, 0x0059, 0x0631, 0x0059, 0x0638, 0x063f, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0647, 0x0059, 0x064f, 0x0656, 0x065c, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0662, 0x0059, 0x02fe, 0x0059, 0x066a, 0x0672, 0x067a, 0x067a, 0x0079, 0x0682, 0x068a, 0x0692, 0x028d, 0x069a, 0x06a1, 0x06a1, 0x06a4, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06ac, 0x06b2, 0x06ba, + 0x06c2, 0x06ca, 0x06d2, 0x06da, 0x06e2, 0x06d2, 0x06ea, 0x06f2, 0x06f6, 0x06a1, 0x06a1, 0x06fb, 0x06a1, 0x06a1, 0x0702, 0x070a, 0x06a1, 0x0712, 0x06a1, 0x0716, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, + 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x071e, 0x071e, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x0726, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, + 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x072c, 0x06a1, 0x0733, 0x0456, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0738, 0x0740, 0x0059, 0x0748, 0x0750, 0x0059, 0x0059, 0x0758, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0760, 0x0768, 0x0770, 0x0778, 0x0059, 0x0780, 0x0788, 0x078b, 0x0792, 0x079a, 0x011f, 0x07a2, 0x07a9, 0x07b1, 0x07b9, 0x07bd, 0x07c5, 0x07cd, 0x028d, 0x07d4, 0x07dc, 0x07e4, 0x028d, 0x07ec, 0x07f4, 0x07fc, 0x0804, 0x080c, + 0x0059, 0x0811, 0x0059, 0x0059, 0x0059, 0x0819, 0x0821, 0x0822, 0x0823, 0x0824, 0x0825, 0x0826, 0x0827, 0x0821, 0x0822, 0x0823, 0x0824, 0x0825, 0x0826, 0x0827, 0x0821, 0x0822, 0x0823, 0x0824, 0x0825, 0x0826, 0x0827, 0x0821, 0x0822, 0x0823, 0x0824, 0x0825, 0x0826, 0x0827, 0x0821, 0x0822, 0x0823, 0x0824, 0x0825, 0x0826, 0x0827, 0x0821, 0x0822, 0x0823, 0x0824, 0x0825, 0x0826, 0x0827, 0x0821, 0x0822, 0x0823, 0x0824, 0x0825, 0x0826, 0x0827, 0x0821, 0x0822, 0x0823, 0x0824, 0x0825, 0x0826, 0x0827, 0x0821, 0x0822, + 0x0823, 0x0824, 0x0825, 0x0826, 0x0827, 0x0821, 0x0822, 0x0823, 0x0824, 0x0825, 0x0826, 0x0827, 0x0821, 0x0822, 0x0823, 0x0824, 0x0825, 0x0826, 0x082e, 0x0835, 0x0838, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, + 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x0581, 0x0581, 0x0581, 0x0581, 0x0581, 0x0581, 0x0581, 0x0581, 0x0581, 0x0581, 0x0581, 0x0581, 0x0581, 0x0581, 0x0581, 0x0581, 0x0581, 0x0581, 0x0581, 0x0581, 0x0581, 0x0581, 0x0581, 0x0581, 0x0581, 0x0581, 0x0581, 0x0581, 0x0581, 0x0581, 0x0581, 0x0581, 0x0581, 0x0581, 0x0581, 0x0581, 0x0581, 0x0581, 0x0581, 0x0581, 0x0581, 0x0581, 0x0581, + 0x0581, 0x0581, 0x0581, 0x0581, 0x0581, 0x0581, 0x0581, 0x0581, 0x0581, 0x0581, 0x0581, 0x0581, 0x0581, 0x0581, 0x0581, 0x0581, 0x0581, 0x0581, 0x0581, 0x0581, 0x0581, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x0840, 0x0848, 0x0850, 0x0059, 0x0059, 0x0059, 0x0858, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x085d, 0x0059, 0x0059, 0x0657, 0x0059, 0x0865, 0x0869, 0x0871, 0x0879, 0x0880, + 0x0888, 0x0059, 0x0059, 0x0059, 0x088e, 0x0896, 0x089e, 0x08a6, 0x08ae, 0x08b3, 0x08bb, 0x08c3, 0x08cb, 0x00bb, 0x08d3, 0x08db, 0x028d, 0x0059, 0x0059, 0x0059, 0x0852, 0x08e3, 0x08e6, 0x0059, 0x0059, 0x08ec, 0x028c, 0x08f4, 0x08f8, 0x028d, 0x028d, 0x028d, 0x028d, 0x0900, 0x0059, 0x0903, 0x090b, 0x0059, 0x0911, 0x0144, 0x0915, 0x091d, 0x0059, 0x0925, 0x028d, 0x0059, 0x0059, 0x0059, 0x0059, 0x048a, 0x03af, 0x092d, 0x0933, 0x0059, 0x0938, 0x0059, 0x093f, 0x0943, 0x0948, 0x0059, 0x0950, 0x0059, 0x0059, 0x0059, + 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0672, 0x03c5, 0x0953, 0x095b, 0x095f, 0x028d, 0x028d, 0x0967, 0x096a, 0x0972, 0x0059, 0x03cd, 0x097a, 0x028d, 0x0982, 0x0989, 0x0991, 0x028d, 0x028d, 0x0059, 0x0999, 0x0657, 0x0059, 0x09a1, 0x09a8, 0x09b0, 0x0059, 0x0059, 0x028d, 0x0059, 0x09b8, 0x0059, 0x09c0, 0x048c, 0x09c8, 0x09ce, 0x09d6, 0x028d, 0x028d, 0x0059, 0x0059, 0x09de, 0x028d, 0x0059, 0x0854, 0x0059, 0x09e6, 0x0059, 0x09ed, 0x011f, 0x09f5, 0x09fc, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, + 0x03cd, 0x0059, 0x0a04, 0x0a0c, 0x0a0e, 0x0059, 0x0938, 0x0a16, 0x08f4, 0x0a1e, 0x08f4, 0x0952, 0x0672, 0x0a26, 0x0a28, 0x0a2f, 0x0a36, 0x0430, 0x0a3e, 0x0a46, 0x0a4c, 0x0a54, 0x0a5b, 0x0a63, 0x0a67, 0x0430, 0x0a6f, 0x0a77, 0x0a7f, 0x065d, 0x0a87, 0x0a8f, 0x028d, 0x0a97, 0x0a9f, 0x0a55, 0x0aa7, 0x0aaf, 0x0ab1, 0x0ab9, 0x0ac1, 0x028d, 0x0ac7, 0x0acf, 0x0ad7, 0x0059, 0x0adf, 0x0ae7, 0x0aef, 0x0059, 0x0af7, 0x0aff, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x0059, 0x0b07, 0x0b0f, 0x028d, 0x0059, 0x0b17, 0x0b1f, + 0x0b27, 0x0059, 0x0b2f, 0x0b37, 0x0b3e, 0x0b3f, 0x0b47, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x0059, 0x0b4f, 0x028d, 0x028d, 0x028d, 0x0059, 0x0059, 0x0b57, 0x028d, 0x0b5f, 0x0b67, 0x028d, 0x028d, 0x0659, 0x0b6f, 0x0b77, 0x0b7f, 0x0b83, 0x0b8b, 0x0059, 0x0b92, 0x0b9a, 0x0059, 0x03b3, 0x0ba2, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x0059, 0x0baa, 0x0bb2, 0x0bb7, 0x0bbf, 0x0bc6, 0x0bcb, 0x0bd1, 0x028d, 0x028d, 0x0bd9, 0x0bdd, 0x0be5, 0x0bed, 0x0bf3, 0x0bfb, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, + 0x028d, 0x028d, 0x028d, 0x028d, 0x0bff, 0x0c07, 0x0c0a, 0x0c12, 0x028d, 0x028d, 0x0c19, 0x0c21, 0x0c29, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x034e, 0x028d, 0x028d, 0x028d, 0x0059, 0x0059, 0x0059, 0x0c31, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0c39, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, + 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x08f4, 0x0059, 0x0059, 0x0854, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, + 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0c41, 0x0059, 0x0c49, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0c4c, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0c53, 0x0c5b, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, + 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0852, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0c63, 0x0059, 0x0059, 0x0059, 0x0c6a, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x0c6c, 0x0c74, 0x028d, 0x028d, + 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, + 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x03b3, 0x03cd, 0x0c7c, 0x0059, 0x03cd, 0x03af, 0x0c81, 0x0059, 0x0c89, 0x0c90, 0x0c98, 0x0951, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x0059, 0x0ca0, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x0059, 0x0059, 0x0ca8, 0x028d, 0x028d, 0x028d, 0x0059, 0x0059, 0x0cb0, 0x0cb5, 0x0cbb, 0x028d, 0x028d, 0x0cc3, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, + 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a3, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, + 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x071e, 0x071e, 0x071e, 0x071e, 0x071e, 0x071e, 0x071e, 0x071e, 0x071e, 0x071e, 0x071e, 0x071e, 0x071e, 0x071e, 0x0ccb, 0x0cd1, 0x0cd9, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, + 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x0cdd, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x0ce5, 0x0cea, 0x0cf1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a2, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, + 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x0059, 0x0059, 0x0059, 0x0cf9, 0x0cfe, 0x0d06, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, + 0x028d, 0x028d, 0x028d, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0d0e, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0950, 0x028d, 0x028d, 0x0079, 0x0d16, 0x0d1d, 0x0059, 0x0059, 0x0059, 0x0c39, 0x028d, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x03c5, 0x0059, 0x0d24, 0x0059, 0x0d2b, 0x0d33, 0x0d39, 0x0059, 0x0579, 0x0059, 0x0059, 0x0d41, 0x028d, 0x028d, 0x028d, 0x0950, 0x0950, 0x071e, 0x071e, 0x0d49, 0x0d51, 0x028d, + 0x028d, 0x028d, 0x028d, 0x0059, 0x0059, 0x0492, 0x0059, 0x0d59, 0x0d61, 0x0d69, 0x0059, 0x0d70, 0x0d6b, 0x0d78, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0d7f, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0d84, 0x0d88, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0079, 0x0d90, 0x0079, 0x0d97, 0x0d9e, 0x0da6, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, + 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x03cd, 0x0dad, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x0db5, 0x0dbd, 0x0059, 0x0dc2, 0x0dc7, 0x028d, 0x028d, 0x028d, 0x0059, 0x0dcf, 0x0dd7, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x08f4, 0x0ddf, 0x0059, 0x0de7, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, + 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x08f4, 0x0def, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x08f4, 0x0df7, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x0dff, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0e07, 0x028d, 0x0059, 0x0059, 0x0e0f, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, + 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x0e17, 0x0059, 0x0e1c, 0x028d, 0x028d, 0x0e24, 0x048a, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x0d69, 0x0e2c, 0x0e34, 0x0e3c, 0x0e44, 0x0e4c, 0x028d, 0x0ba6, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x028d, 0x0e54, 0x0e56, 0x0e56, 0x0e56, 0x0e56, 0x0e56, 0x0e5b, 0x0e56, 0x0e63, 0x0e68, 0x0581, 0x0e6e, 0x0e76, 0x0e7d, 0x0e56, 0x0e84, 0x0e8c, 0x0e93, 0x0e9b, 0x0ea3, 0x0e56, 0x0e56, 0x0e56, 0x0e56, 0x0eab, 0x0eb3, 0x0eab, 0x0eb9, 0x0ec1, + 0x0ec9, 0x0ed1, 0x0ed9, 0x0eab, 0x0ee1, 0x0ee9, 0x0eab, 0x0eab, 0x0ef1, 0x0eab, 0x0ef6, 0x0efe, 0x0f05, 0x0f0d, 0x0f13, 0x0f1a, 0x0e54, 0x0f20, 0x0f27, 0x0eab, 0x0eab, 0x0f2e, 0x0f32, 0x0eab, 0x0eab, 0x0f3a, 0x0f42, 0x0059, 0x0059, 0x0059, 0x0f4a, 0x0059, 0x0059, 0x0f52, 0x0f5a, 0x0f62, 0x0059, 0x0f68, 0x0059, 0x0f70, 0x0f75, 0x0f7d, 0x0f7e, 0x0f86, 0x0f89, 0x0f90, 0x0eab, 0x0eab, 0x0eab, 0x0eab, 0x0eab, 0x0f98, 0x0f98, 0x0f9b, 0x0fa0, 0x0fa8, 0x0eab, 0x0faf, 0x0fb7, 0x0059, 0x0059, 0x0059, 0x0059, 0x0fbf, + 0x0059, 0x0059, 0x0d0e, 0x0e56, 0x0e56, 0x0e56, 0x0e56, 0x0e56, 0x0e56, 0x0e56, 0x0e56, 0x0e56, 0x0e56, 0x0e56, 0x0e56, 0x0e56, 0x0e56, 0x0e56, 0x0e56, 0x0e56, 0x0e56, 0x0e56, 0x0e56, 0x0e56, 0x0e56, 0x0e56, 0x0e56, 0x0e56, 0x0e56, 0x0e56, 0x0e56, 0x0e56, 0x0e56, 0x0e56, 0x0fc7, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, + 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x06a1, 0x0fcf, 0x0fd7, 0x0079, 0x0079, 0x0079, 0x0020, 0x0020, 0x0020, 0x0020, 0x0079, 0x0079, 0x0079, 0x0079, 0x0079, 0x0079, 0x0079, 0x0fdf, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, + 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0581, 0x0581, 0x0581, 0x0581, 0x0581, 0x0581, 0x0581, 0x0581, 0x0581, 0x0581, 0x0581, 0x0581, 0x0581, + 0x0581, 0x0581, 0x0581, 0x0581, 0x0581, 0x0581, 0x0581, 0x0581, 0x0581, 0x0581, 0x0581, 0x0581, 0x0581, 0x0581, 0x0581, 0x0581, 0x0581, 0x0581, 0x0581, 0x0581, 0x0581, 0x0581, 0x0581, 0x0581, 0x0581, 0x0581, 0x0581, 0x0581, 0x0581, 0x0581, 0x0581, 0x0581, 0x0581, 0x0581, 0x0581, 0x0581, 0x0581, 0x0581, 0x0581, 0x0581, 0x0581, 0x0581, 0x0581, 0x0581, 0x0581, 0x0581, 0x0581, 0x0581, 0x0581, 0x0581, 0x0fe7, ]; #[rustfmt::skip] -const STAGE2: [u16; 3948] = [ +const STAGE2: [u16; 4079] = [ 0x0000, 0x0004, 0x0008, 0x000c, 0x0010, 0x0014, 0x0018, 0x001c, 0x0020, 0x0024, 0x0028, 0x002c, 0x0030, 0x0034, 0x0038, 0x003c, 0x0040, 0x0044, 0x0048, 0x004c, 0x0050, 0x0054, 0x0058, 0x005c, 0x0060, 0x0064, 0x0068, 0x006c, 0x0070, 0x0074, 0x0078, 0x007c, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0080, 0x0083, 0x0086, 0x008a, 0x008e, 0x0092, 0x0094, 0x0098, - 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x009c, 0x0040, 0x0040, - 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x009c, 0x00a0, - 0x00a4, 0x00a5, 0x0040, 0x00a9, 0x00ad, 0x00b1, 0x00b1, 0x00b1, - 0x00b1, 0x00b1, 0x00b1, 0x00b1, 0x00b1, 0x00b2, 0x00b1, 0x00b1, - 0x00b1, 0x00b5, 0x00b6, 0x00b1, 0x00b1, 0x00b1, 0x0040, 0x0040, - 0x00ba, 0x00bc, 0x00a9, 0x0040, 0x009c, 0x00bf, 0x0040, 0x0040, - 0x0040, 0x0040, 0x00c1, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, - 0x0040, 0x0040, 0x00c4, 0x00b1, 0x00c7, 0x0040, 0x0040, 0x0040, - 0x0040, 0x0040, 0x00a5, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, - 0x009c, 0x00a5, 0x0040, 0x0040, 0x00ca, 0x00cd, 0x00d1, 0x00b1, - 0x00b1, 0x00b1, 0x00b1, 0x00b1, 0x00b1, 0x00b1, 0x00d3, 0x00c6, - 0x00d6, 0x00a9, 0x00a9, 0x0040, 0x0040, 0x0040, 0x0040, 0x009c, - 0x00aa, 0x0040, 0x0093, 0x00a9, 0x00a9, 0x00da, 0x00dc, 0x00df, - 0x003a, 0x00b1, 0x00b1, 0x00e3, 0x00e5, 0x0040, 0x0040, 0x00c4, - 0x00b1, 0x00b1, 0x00b1, 0x00b1, 0x00b1, 0x0030, 0x0030, 0x00e9, - 0x00ec, 0x00f0, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x00f4, - 0x00b1, 0x00f7, 0x00b1, 0x00fa, 0x00fd, 0x00c7, 0x0030, 0x0030, - 0x0101, 0x0040, 0x0040, 0x0040, 0x0103, 0x00ef, 0x0040, 0x0040, - 0x0040, 0x0040, 0x00b1, 0x00b1, 0x00b1, 0x00b1, 0x0107, 0x00a5, - 0x0040, 0x0040, 0x0040, 0x0040, 0x00c5, 0x00b1, 0x00b1, 0x010b, - 0x00a9, 0x00a9, 0x00a9, 0x0030, 0x0030, 0x0101, 0x0040, 0x0040, - 0x0040, 0x0040, 0x0040, 0x00c4, 0x00b1, 0x00b1, 0x0040, 0x010f, - 0x0112, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x00c5, 0x0116, - 0x00b1, 0x0118, 0x0118, 0x011a, 0x0040, 0x0040, 0x0040, 0x009c, - 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0118, 0x00ab, - 0x0040, 0x0040, 0x009c, 0x00a9, 0x0040, 0x0040, 0x0040, 0x0040, - 0x009c, 0x011e, 0x0120, 0x00b1, 0x00b1, 0x0040, 0x0040, 0x00c5, - 0x00b1, 0x00b1, 0x00b1, 0x00b1, 0x00b1, 0x0123, 0x00b1, 0x00b1, - 0x00b1, 0x00b1, 0x00b1, 0x00b1, 0x00b1, 0x0126, 0x0040, 0x0040, - 0x0040, 0x0040, 0x012a, 0x012b, 0x012b, 0x012b, 0x012b, 0x012b, - 0x012b, 0x012d, 0x0131, 0x0134, 0x00b1, 0x0137, 0x013a, 0x0118, - 0x00b1, 0x012b, 0x012b, 0x00c5, 0x013e, 0x0030, 0x0030, 0x0040, - 0x0040, 0x012b, 0x012b, 0x0142, 0x00a5, 0x0040, 0x0146, 0x0146, - 0x012a, 0x012b, 0x012b, 0x014a, 0x012b, 0x014d, 0x0150, 0x0152, - 0x0131, 0x0134, 0x0156, 0x0159, 0x015c, 0x00a9, 0x015f, 0x00a9, - 0x014c, 0x00c5, 0x0163, 0x0030, 0x0030, 0x0167, 0x0040, 0x016b, - 0x016f, 0x0172, 0x00a5, 0x009c, 0x00aa, 0x0146, 0x0040, 0x0040, - 0x0040, 0x00bf, 0x0040, 0x00bf, 0x00c0, 0x00a7, 0x0176, 0x0179, - 0x0120, 0x017b, 0x011a, 0x0155, 0x00a9, 0x00a5, 0x017f, 0x00a9, - 0x0163, 0x0030, 0x0030, 0x00c7, 0x0183, 0x00a9, 0x00a9, 0x0172, - 0x00a5, 0x0040, 0x00c1, 0x00c1, 0x012a, 0x012b, 0x012b, 0x014a, - 0x012b, 0x014a, 0x0186, 0x0152, 0x0131, 0x0134, 0x0108, 0x018a, - 0x018d, 0x0093, 0x00a9, 0x00a9, 0x00a9, 0x00c5, 0x0163, 0x0030, - 0x0030, 0x0191, 0x00a9, 0x0194, 0x00b1, 0x0198, 0x00a5, 0x0040, - 0x0146, 0x0146, 0x012a, 0x012b, 0x012b, 0x014a, 0x012b, 0x014a, - 0x0186, 0x0152, 0x019c, 0x0134, 0x0156, 0x0159, 0x018d, 0x00a9, - 0x0172, 0x00a9, 0x014c, 0x00c5, 0x0163, 0x0030, 0x0030, 0x01a0, - 0x0040, 0x00a9, 0x00a9, 0x017c, 0x00a5, 0x009c, 0x00ba, 0x00bf, - 0x00a7, 0x00c0, 0x00bf, 0x00aa, 0x0093, 0x009c, 0x00ba, 0x0040, - 0x0040, 0x00a7, 0x01a4, 0x01a8, 0x01a4, 0x01aa, 0x01ad, 0x0093, - 0x015f, 0x00a9, 0x00a9, 0x0163, 0x0030, 0x0030, 0x0040, 0x0040, - 0x01b1, 0x00a9, 0x0137, 0x00f0, 0x0040, 0x00bf, 0x00bf, 0x012a, - 0x012b, 0x012b, 0x014a, 0x012b, 0x012b, 0x012b, 0x0152, 0x00fd, - 0x0137, 0x01b5, 0x0171, 0x01b8, 0x00a9, 0x01bb, 0x01bf, 0x01c2, - 0x00c5, 0x0163, 0x0030, 0x0030, 0x00a9, 0x00a1, 0x0040, 0x0040, - 0x0142, 0x01c6, 0x0040, 0x00bf, 0x00bf, 0x0040, 0x0040, 0x0040, - 0x00bf, 0x0040, 0x0040, 0x00a5, 0x00a7, 0x019c, 0x01ca, 0x01cd, - 0x01aa, 0x011a, 0x00a9, 0x01d1, 0x00a9, 0x00c0, 0x00c5, 0x0163, - 0x0030, 0x0030, 0x01d4, 0x00a9, 0x00a9, 0x00a9, 0x0136, 0x0040, - 0x0040, 0x00bf, 0x00bf, 0x012a, 0x012b, 0x012b, 0x012b, 0x012b, - 0x012b, 0x012b, 0x012c, 0x0131, 0x0134, 0x0176, 0x01aa, 0x01d7, - 0x00a9, 0x01c7, 0x0040, 0x0040, 0x00c5, 0x0163, 0x0030, 0x0030, - 0x0040, 0x0040, 0x01da, 0x0040, 0x0198, 0x00a5, 0x0040, 0x0040, - 0x0040, 0x009c, 0x00ba, 0x0040, 0x0040, 0x0040, 0x0040, 0x00c1, - 0x0040, 0x0040, 0x01c2, 0x0040, 0x009c, 0x0154, 0x015f, 0x0133, - 0x01de, 0x01ca, 0x01ca, 0x00a9, 0x0163, 0x0030, 0x0030, 0x01a4, - 0x0093, 0x00a9, 0x00a9, 0x00a9, 0x00a9, 0x00a9, 0x00a9, 0x00a9, - 0x00a9, 0x01df, 0x00b1, 0x0107, 0x01e3, 0x00a9, 0x0120, 0x00b1, - 0x01e7, 0x0030, 0x0030, 0x01eb, 0x00a9, 0x00a9, 0x00a9, 0x00a9, - 0x01df, 0x00b1, 0x00b1, 0x01ef, 0x00a9, 0x00a9, 0x00b1, 0x0107, - 0x0030, 0x0030, 0x01f3, 0x00a9, 0x01f7, 0x01fa, 0x01fe, 0x0202, - 0x0204, 0x003f, 0x00c7, 0x0040, 0x0030, 0x0030, 0x0101, 0x0040, - 0x0040, 0x0208, 0x020a, 0x020c, 0x0040, 0x0040, 0x0040, 0x0093, - 0x00d1, 0x00b1, 0x00b1, 0x0210, 0x00b1, 0x00d4, 0x0040, 0x0118, - 0x00b1, 0x00b1, 0x00d1, 0x00b1, 0x00b1, 0x00b1, 0x00b1, 0x00b1, - 0x00b1, 0x00b1, 0x0214, 0x0040, 0x00ee, 0x0040, 0x00bf, 0x0218, - 0x0040, 0x021c, 0x00a9, 0x00a9, 0x00a9, 0x00d1, 0x0220, 0x00b1, - 0x0172, 0x0179, 0x0030, 0x0030, 0x01eb, 0x0040, 0x00a9, 0x01a4, - 0x011a, 0x0121, 0x01ef, 0x00a9, 0x00a9, 0x00a9, 0x00d1, 0x01ef, - 0x00a9, 0x00a9, 0x0154, 0x0179, 0x00a9, 0x0155, 0x0030, 0x0030, - 0x01f3, 0x0155, 0x0040, 0x00c1, 0x00a9, 0x01c2, 0x0040, 0x0040, - 0x0040, 0x0040, 0x0224, 0x0224, 0x0224, 0x0224, 0x0224, 0x0224, - 0x0224, 0x0224, 0x0228, 0x0228, 0x0228, 0x0228, 0x0228, 0x0228, - 0x0228, 0x0228, 0x022c, 0x022c, 0x022c, 0x022c, 0x022c, 0x022c, - 0x022c, 0x022c, 0x0040, 0x0040, 0x00bf, 0x00a7, 0x0040, 0x009c, - 0x00bf, 0x00a7, 0x0040, 0x0040, 0x00bf, 0x00a7, 0x0040, 0x0040, - 0x0040, 0x0040, 0x00bf, 0x00a7, 0x0040, 0x009c, 0x00bf, 0x00a7, - 0x0040, 0x0040, 0x0040, 0x009c, 0x0040, 0x0040, 0x0040, 0x0040, - 0x00bf, 0x00a7, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, - 0x009c, 0x00d1, 0x0230, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, - 0x0040, 0x0093, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, - 0x00a7, 0x00a9, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x00a7, - 0x0040, 0x00a7, 0x0231, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, - 0x0040, 0x0040, 0x0231, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, - 0x0058, 0x0235, 0x0040, 0x0040, 0x0239, 0x023c, 0x0040, 0x0040, - 0x0093, 0x00a9, 0x0040, 0x0040, 0x0040, 0x0040, 0x00c5, 0x0240, - 0x00a9, 0x00aa, 0x0040, 0x0040, 0x0040, 0x0040, 0x00c5, 0x0244, - 0x00a9, 0x00a9, 0x0040, 0x0040, 0x0040, 0x0040, 0x00c5, 0x00a9, - 0x00a9, 0x00a9, 0x0040, 0x0040, 0x0040, 0x00bf, 0x0248, 0x00a9, - 0x00a9, 0x00a9, 0x00a9, 0x00a9, 0x0173, 0x00b1, 0x0136, 0x01ca, - 0x01a6, 0x0134, 0x00b1, 0x00b1, 0x024c, 0x0250, 0x0155, 0x0030, - 0x0030, 0x01f3, 0x00a9, 0x0040, 0x0040, 0x00a7, 0x00a9, 0x0254, - 0x0258, 0x025c, 0x025f, 0x0030, 0x0030, 0x01f3, 0x00a9, 0x0040, - 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0093, 0x00a9, 0x0040, - 0x00c6, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0183, - 0x00a9, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x00a7, 0x00a9, - 0x00a9, 0x0126, 0x0263, 0x0137, 0x00a9, 0x01a6, 0x01ca, 0x0134, - 0x00a9, 0x0093, 0x00e7, 0x0030, 0x0030, 0x00a9, 0x00a9, 0x00a9, - 0x00a9, 0x0030, 0x0030, 0x0267, 0x00a9, 0x0040, 0x0040, 0x0040, - 0x0040, 0x0040, 0x00c4, 0x0199, 0x00ba, 0x00a9, 0x00a9, 0x00a9, - 0x00a9, 0x00a9, 0x026a, 0x00b1, 0x0107, 0x01de, 0x00d1, 0x00b1, - 0x0137, 0x0263, 0x00b1, 0x00b1, 0x017b, 0x0030, 0x0030, 0x01f3, - 0x00a9, 0x0030, 0x0030, 0x01f3, 0x00a9, 0x00a9, 0x00a9, 0x00a9, - 0x00b1, 0x00b1, 0x00b1, 0x00b1, 0x0107, 0x00a9, 0x00a9, 0x00a9, - 0x00a9, 0x00b1, 0x01e2, 0x00a9, 0x00a9, 0x00a9, 0x00a9, 0x00a9, - 0x00a9, 0x0220, 0x0126, 0x0137, 0x01a6, 0x01e2, 0x00a9, 0x026e, - 0x00a9, 0x00a9, 0x026e, 0x0272, 0x0275, 0x0276, 0x0277, 0x00b1, - 0x00b1, 0x0276, 0x0276, 0x0272, 0x0127, 0x0040, 0x0040, 0x0040, - 0x0040, 0x0040, 0x0040, 0x0040, 0x027b, 0x0136, 0x0173, 0x00c7, - 0x0030, 0x0030, 0x0101, 0x0040, 0x00a9, 0x027f, 0x0136, 0x0282, - 0x0136, 0x00a9, 0x00a9, 0x0040, 0x01ca, 0x01ca, 0x00b1, 0x00b1, - 0x0133, 0x0286, 0x0289, 0x0030, 0x0030, 0x01f3, 0x00a5, 0x0030, - 0x0030, 0x0101, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, - 0x0040, 0x023a, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, - 0x009c, 0x00a5, 0x0040, 0x0040, 0x00a9, 0x00a9, 0x01e7, 0x00b1, - 0x00b1, 0x00b1, 0x0220, 0x00b1, 0x00f0, 0x00ef, 0x0040, 0x028d, - 0x0291, 0x00a9, 0x00b1, 0x00b1, 0x00b1, 0x0295, 0x00b1, 0x00b1, - 0x00b1, 0x00b1, 0x00b1, 0x00b1, 0x00b1, 0x0296, 0x0040, 0x00a7, - 0x0040, 0x00a7, 0x0040, 0x0040, 0x00ac, 0x00ac, 0x0040, 0x0040, - 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x00a7, 0x0040, 0x0040, - 0x0040, 0x0040, 0x0040, 0x00bf, 0x0040, 0x0040, 0x0040, 0x00ba, - 0x0040, 0x00a5, 0x0040, 0x0040, 0x0040, 0x0040, 0x00ba, 0x00bf, - 0x0040, 0x029a, 0x0289, 0x029e, 0x02a2, 0x02a6, 0x02a0, 0x00aa, - 0x02aa, 0x02aa, 0x00ba, 0x02ae, 0x02b2, 0x02b4, 0x02b8, 0x02b8, - 0x02bc, 0x02c0, 0x0040, 0x02c4, 0x02c7, 0x0040, 0x0040, 0x02c9, - 0x0289, 0x02cd, 0x02d1, 0x02d4, 0x00b1, 0x00b1, 0x00a7, 0x00a5, - 0x0040, 0x02d8, 0x0093, 0x00a5, 0x0040, 0x02d8, 0x0040, 0x0040, - 0x0040, 0x0093, 0x02dc, 0x02dd, 0x02dc, 0x02dc, 0x02dc, 0x02de, - 0x02dd, 0x02de, 0x02e0, 0x02dc, 0x02dc, 0x02dc, 0x00b1, 0x00b1, - 0x00b1, 0x00b1, 0x01ef, 0x00a9, 0x00a9, 0x00a9, 0x02e4, 0x00bf, - 0x01da, 0x0040, 0x009c, 0x02e8, 0x0040, 0x0040, 0x02eb, 0x0040, - 0x009c, 0x0040, 0x0040, 0x0040, 0x02ee, 0x0040, 0x0040, 0x0040, - 0x0040, 0x00a9, 0x00a9, 0x00a9, 0x00aa, 0x00a9, 0x00a9, 0x00a9, - 0x0040, 0x00a9, 0x00a9, 0x00ba, 0x0040, 0x0040, 0x00bf, 0x00a9, - 0x00a9, 0x02f2, 0x02f4, 0x0040, 0x0040, 0x02f7, 0x0040, 0x0040, - 0x0040, 0x0040, 0x0040, 0x00c1, 0x00a5, 0x0040, 0x0040, 0x01c2, - 0x009c, 0x00c0, 0x009c, 0x02fa, 0x00bf, 0x00c1, 0x0093, 0x00c0, - 0x017f, 0x00a9, 0x00ac, 0x0040, 0x00a9, 0x0040, 0x00ba, 0x0040, - 0x0040, 0x00a5, 0x00a5, 0x00c1, 0x0040, 0x0040, 0x0040, 0x00ba, - 0x00a9, 0x00a7, 0x00a7, 0x0040, 0x0040, 0x0040, 0x0040, 0x00a7, - 0x00a7, 0x0040, 0x0040, 0x0040, 0x00bf, 0x00bf, 0x0040, 0x00bf, - 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x009c, 0x0040, 0x0040, - 0x0040, 0x02fe, 0x0040, 0x0040, 0x0040, 0x0040, 0x0302, 0x0040, - 0x00c1, 0x0040, 0x0306, 0x0040, 0x0040, 0x030a, 0x0040, 0x0040, - 0x0040, 0x0040, 0x0040, 0x030e, 0x0040, 0x0040, 0x0040, 0x0040, - 0x0040, 0x030f, 0x0040, 0x0040, 0x0040, 0x0040, 0x0313, 0x0316, - 0x031a, 0x0040, 0x031e, 0x0040, 0x0040, 0x00a7, 0x00a9, 0x00a9, - 0x00a9, 0x00a9, 0x00a9, 0x0040, 0x0040, 0x009c, 0x00a9, 0x00a9, - 0x00a9, 0x00a9, 0x00a9, 0x0322, 0x00a9, 0x00a9, 0x00a9, 0x00a9, - 0x00a9, 0x00a9, 0x00a9, 0x00aa, 0x00ab, 0x00a9, 0x0325, 0x0040, - 0x00a7, 0x0329, 0x0040, 0x00ba, 0x032b, 0x00a7, 0x00c0, 0x00a7, - 0x00ba, 0x0040, 0x0040, 0x0040, 0x00a7, 0x00ba, 0x0040, 0x009c, - 0x0040, 0x0040, 0x030f, 0x032f, 0x0333, 0x0337, 0x033a, 0x033c, - 0x031e, 0x0340, 0x0344, 0x0333, 0x0348, 0x0348, 0x0348, 0x0348, - 0x034c, 0x034c, 0x0350, 0x0348, 0x0354, 0x0348, 0x034c, 0x034c, - 0x034c, 0x0348, 0x0348, 0x0348, 0x0358, 0x0358, 0x035c, 0x0358, - 0x0348, 0x0348, 0x0348, 0x0317, 0x0348, 0x0327, 0x0360, 0x0362, - 0x0349, 0x0348, 0x0348, 0x033c, 0x0366, 0x0348, 0x034a, 0x0348, - 0x0348, 0x0348, 0x0348, 0x0369, 0x0333, 0x036a, 0x036d, 0x0370, - 0x0373, 0x0377, 0x036c, 0x037b, 0x0335, 0x0348, 0x037f, 0x02f2, - 0x0382, 0x0386, 0x0389, 0x038c, 0x0333, 0x038f, 0x0393, 0x0346, - 0x031e, 0x0397, 0x0040, 0x02ee, 0x0040, 0x039b, 0x0040, 0x030f, - 0x030e, 0x0040, 0x0040, 0x039f, 0x0040, 0x03a3, 0x03a6, 0x03a9, - 0x03ad, 0x03b0, 0x03b3, 0x0347, 0x0302, 0x0302, 0x0302, 0x03b7, - 0x00a9, 0x00a9, 0x00a9, 0x00a9, 0x00a9, 0x0313, 0x0040, 0x0040, - 0x02ee, 0x0040, 0x0040, 0x0040, 0x039b, 0x0040, 0x0040, 0x03a6, - 0x0040, 0x03bb, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, - 0x03be, 0x0302, 0x0302, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, - 0x0327, 0x0040, 0x0040, 0x0058, 0x03c1, 0x03c1, 0x03c1, 0x03c1, - 0x03c1, 0x03c5, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, - 0x0302, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, - 0x0304, 0x0040, 0x03c8, 0x0040, 0x0040, 0x0040, 0x0040, 0x03a6, - 0x039b, 0x0040, 0x0040, 0x0040, 0x0040, 0x039b, 0x03cc, 0x00ba, - 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x00ba, 0x0040, 0x0040, - 0x0040, 0x0040, 0x0040, 0x00c1, 0x0040, 0x0040, 0x0040, 0x00c4, - 0x00c7, 0x00a9, 0x03cf, 0x03d2, 0x0040, 0x0040, 0x00a9, 0x00aa, - 0x03d5, 0x00a9, 0x00a9, 0x0120, 0x0040, 0x0040, 0x0040, 0x0040, - 0x0040, 0x009c, 0x00a9, 0x00a9, 0x0040, 0x009c, 0x0040, 0x009c, - 0x0040, 0x009c, 0x0040, 0x009c, 0x03b0, 0x03b0, 0x03b0, 0x03d9, - 0x0289, 0x03db, 0x03df, 0x03e3, 0x03e7, 0x0302, 0x03e9, 0x03eb, - 0x03db, 0x0231, 0x00a7, 0x03ef, 0x03f3, 0x0289, 0x03ef, 0x03f1, - 0x003c, 0x03f7, 0x03f9, 0x03fd, 0x0401, 0x0401, 0x0401, 0x0401, - 0x0401, 0x0401, 0x0403, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401, - 0x0401, 0x0401, 0x0401, 0x00a9, 0x00a9, 0x00a9, 0x0401, 0x0401, - 0x0401, 0x0401, 0x0401, 0x0406, 0x00a9, 0x00a9, 0x00a9, 0x00a9, - 0x0401, 0x0401, 0x0401, 0x0401, 0x040a, 0x040d, 0x0411, 0x0411, - 0x0413, 0x0411, 0x0411, 0x0417, 0x0401, 0x0401, 0x041b, 0x041d, - 0x0421, 0x0424, 0x0426, 0x0429, 0x042d, 0x042f, 0x0424, 0x0401, - 0x0401, 0x0401, 0x0401, 0x0401, 0x0422, 0x0401, 0x0401, 0x0401, - 0x0401, 0x0401, 0x0401, 0x0401, 0x0422, 0x042f, 0x0401, 0x0423, - 0x0401, 0x0431, 0x0434, 0x0437, 0x043b, 0x042f, 0x0424, 0x0401, - 0x0401, 0x0401, 0x0401, 0x0401, 0x0422, 0x042f, 0x0401, 0x0423, - 0x0401, 0x043d, 0x0426, 0x0441, 0x00a9, 0x0400, 0x0401, 0x0401, - 0x0401, 0x0401, 0x0401, 0x0401, 0x0400, 0x0401, 0x0401, 0x0401, - 0x0402, 0x0401, 0x0401, 0x0401, 0x0401, 0x0406, 0x00a9, 0x0445, - 0x0449, 0x0449, 0x0449, 0x0449, 0x0401, 0x0401, 0x0401, 0x0401, - 0x0401, 0x0401, 0x0401, 0x0402, 0x0401, 0x0401, 0x00a9, 0x00a9, - 0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x044d, 0x044f, 0x0401, - 0x0362, 0x0362, 0x0362, 0x0362, 0x0362, 0x0362, 0x0362, 0x0362, - 0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x040d, 0x0401, 0x0401, - 0x0401, 0x0444, 0x0401, 0x0401, 0x0401, 0x0401, 0x0402, 0x00a9, - 0x00a9, 0x0040, 0x0040, 0x0040, 0x0040, 0x0453, 0x0040, 0x0040, - 0x0040, 0x0040, 0x0030, 0x0030, 0x0101, 0x00a9, 0x00a9, 0x00a9, - 0x00a9, 0x00a9, 0x0040, 0x0040, 0x0040, 0x00c4, 0x01e7, 0x00b1, - 0x00b1, 0x00c7, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, - 0x0040, 0x00c5, 0x0040, 0x0040, 0x0040, 0x0040, 0x0457, 0x0289, - 0x00a9, 0x00a9, 0x0040, 0x0040, 0x0040, 0x00a7, 0x00c1, 0x00a5, - 0x0040, 0x0093, 0x00a9, 0x00a9, 0x00a9, 0x00a9, 0x00ba, 0x0040, - 0x0040, 0x0040, 0x00ee, 0x00ee, 0x00c4, 0x0040, 0x0040, 0x0040, - 0x0040, 0x0040, 0x01c7, 0x045b, 0x0040, 0x01ef, 0x0040, 0x0040, - 0x045f, 0x00a9, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0463, - 0x00a9, 0x00a9, 0x0467, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, - 0x0040, 0x0040, 0x01ca, 0x01ca, 0x01ca, 0x011a, 0x00a9, 0x026e, - 0x0030, 0x0030, 0x01f3, 0x00a9, 0x00b1, 0x00b1, 0x00b1, 0x00b1, - 0x00c7, 0x0040, 0x0040, 0x046b, 0x0040, 0x00c5, 0x00b1, 0x024a, - 0x0040, 0x0040, 0x0040, 0x0040, 0x00c4, 0x00b1, 0x00b1, 0x0136, - 0x00a9, 0x00a9, 0x00aa, 0x0224, 0x0224, 0x0224, 0x0224, 0x0224, - 0x0224, 0x0224, 0x046f, 0x0126, 0x00a9, 0x00a9, 0x00a9, 0x00a9, - 0x00a9, 0x00a9, 0x00a9, 0x0120, 0x0133, 0x0136, 0x0136, 0x0473, - 0x0474, 0x0274, 0x0478, 0x00a9, 0x00a9, 0x00a9, 0x047c, 0x00a9, - 0x0155, 0x00a9, 0x00a9, 0x0030, 0x0030, 0x01f3, 0x00a9, 0x00a9, - 0x00d1, 0x0126, 0x045b, 0x0179, 0x00a9, 0x00a9, 0x028a, 0x0289, - 0x0289, 0x0240, 0x00a9, 0x00a9, 0x00a9, 0x0272, 0x00a9, 0x00a9, - 0x00a9, 0x00a9, 0x00a9, 0x00a9, 0x00a9, 0x01ef, 0x00a9, 0x00a9, - 0x00a9, 0x00a9, 0x0171, 0x017b, 0x01ef, 0x0121, 0x0155, 0x00a9, - 0x00a9, 0x00a9, 0x00a9, 0x00a9, 0x00a9, 0x00a9, 0x0040, 0x0040, - 0x01c7, 0x0136, 0x023c, 0x0480, 0x00a9, 0x00a9, 0x00a5, 0x009c, - 0x00a5, 0x009c, 0x00a5, 0x009c, 0x00a9, 0x00a9, 0x0040, 0x009c, - 0x0040, 0x009c, 0x0040, 0x0040, 0x0040, 0x0040, 0x00a9, 0x0040, - 0x0040, 0x0040, 0x0040, 0x01c7, 0x01a7, 0x0484, 0x01ad, 0x0030, - 0x0030, 0x01f3, 0x00a9, 0x0488, 0x0489, 0x0489, 0x0489, 0x0489, - 0x0489, 0x0489, 0x0488, 0x0489, 0x0489, 0x0489, 0x0489, 0x0489, - 0x0489, 0x00a9, 0x00a9, 0x00a9, 0x0228, 0x0228, 0x0228, 0x0228, - 0x048d, 0x0490, 0x022c, 0x022c, 0x022c, 0x022c, 0x022c, 0x022c, - 0x022c, 0x00a9, 0x0040, 0x009c, 0x00a9, 0x00a9, 0x00aa, 0x0040, - 0x00a9, 0x0182, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x009c, - 0x0040, 0x017f, 0x00c1, 0x00bf, 0x0040, 0x0040, 0x0040, 0x0040, - 0x0040, 0x0040, 0x009c, 0x00a9, 0x00a9, 0x00a9, 0x00aa, 0x0040, - 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0494, 0x0040, - 0x0040, 0x00a9, 0x00aa, 0x00a9, 0x00a9, 0x00a9, 0x00a9, 0x0040, - 0x0040, 0x0040, 0x0498, 0x00b1, 0x00b1, 0x00b1, 0x049c, 0x04a0, - 0x04a3, 0x04a7, 0x00a9, 0x04ab, 0x04ad, 0x04ac, 0x04ae, 0x0401, - 0x0410, 0x04b2, 0x04b2, 0x04b6, 0x04ba, 0x0401, 0x04be, 0x04c2, - 0x0410, 0x0412, 0x0401, 0x0402, 0x04c6, 0x00a9, 0x0040, 0x00bf, - 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x04ca, - 0x04ce, 0x04d2, 0x0413, 0x04d6, 0x0401, 0x0401, 0x04d9, 0x04dd, - 0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x04e1, 0x04d7, - 0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x04e1, 0x04e5, - 0x04e9, 0x04ec, 0x00a9, 0x00a9, 0x04ef, 0x0276, 0x0276, 0x0276, - 0x0276, 0x0276, 0x0276, 0x0276, 0x04f1, 0x0276, 0x0276, 0x0276, - 0x0276, 0x0276, 0x0276, 0x0276, 0x04f5, 0x047c, 0x0276, 0x047c, - 0x0276, 0x047c, 0x0276, 0x047c, 0x04f7, 0x04fb, 0x04fe, 0x0040, - 0x009c, 0x0000, 0x0000, 0x02b3, 0x00a9, 0x0040, 0x009c, 0x0040, - 0x0040, 0x0040, 0x0040, 0x009c, 0x00c1, 0x0040, 0x0040, 0x0040, - 0x00a7, 0x0040, 0x0040, 0x0040, 0x00a7, 0x0502, 0x00aa, 0x0040, - 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x00aa, 0x0040, 0x0040, - 0x0040, 0x009c, 0x0040, 0x0040, 0x0040, 0x0093, 0x00a9, 0x00a9, - 0x00a9, 0x00a9, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, - 0x0040, 0x0506, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, - 0x0040, 0x0093, 0x00a9, 0x00a9, 0x00a9, 0x00f0, 0x0040, 0x0040, - 0x0040, 0x0040, 0x0040, 0x0040, 0x00a9, 0x00a9, 0x00a5, 0x0040, - 0x0040, 0x0040, 0x0040, 0x0040, 0x00c5, 0x0107, 0x00a9, 0x0040, - 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x050a, 0x0040, - 0x00a9, 0x0040, 0x0040, 0x0231, 0x00a7, 0x00a9, 0x00a9, 0x0040, - 0x0040, 0x0040, 0x0040, 0x0040, 0x00a9, 0x0040, 0x0040, 0x0040, - 0x0040, 0x0040, 0x0040, 0x0040, 0x00a9, 0x00a9, 0x0040, 0x0040, - 0x0040, 0x0040, 0x00a9, 0x00a9, 0x00aa, 0x0040, 0x0040, 0x009c, - 0x0040, 0x009c, 0x00c1, 0x0040, 0x0040, 0x0040, 0x00c1, 0x0040, - 0x00c1, 0x0093, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x00a9, - 0x00a9, 0x00a9, 0x00a9, 0x00a9, 0x00a9, 0x0040, 0x0040, 0x0040, - 0x0040, 0x00bf, 0x0040, 0x009c, 0x00a9, 0x0040, 0x00a7, 0x00bf, - 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x00c1, 0x0093, 0x0146, - 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x050a, 0x0040, 0x0040, - 0x00a9, 0x00aa, 0x0040, 0x0040, 0x00a9, 0x00a9, 0x00a9, 0x00a9, - 0x0040, 0x0040, 0x0040, 0x0040, 0x009c, 0x00a7, 0x00aa, 0x0040, - 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0286, 0x0040, - 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x00a7, 0x00aa, 0x0040, - 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x00a9, 0x0040, 0x0118, - 0x01bb, 0x00a9, 0x00b1, 0x0040, 0x00a5, 0x00a5, 0x0040, 0x0040, - 0x0040, 0x0040, 0x0040, 0x00a7, 0x0107, 0x0120, 0x0040, 0x0040, - 0x0093, 0x00a9, 0x0289, 0x0289, 0x0093, 0x00a9, 0x0040, 0x050e, - 0x00aa, 0x0040, 0x0289, 0x0512, 0x00a9, 0x00a9, 0x0040, 0x0040, - 0x0040, 0x0040, 0x0040, 0x00a7, 0x0288, 0x0289, 0x0040, 0x0040, - 0x0040, 0x0040, 0x009c, 0x00a9, 0x0040, 0x0040, 0x0040, 0x0040, - 0x00a7, 0x00a9, 0x00a5, 0x0093, 0x00a9, 0x00a9, 0x00a5, 0x0040, - 0x00a9, 0x00a9, 0x00a9, 0x00a9, 0x0040, 0x0040, 0x0093, 0x00a9, - 0x00a9, 0x00a9, 0x00a9, 0x00a9, 0x0040, 0x0040, 0x0040, 0x0040, - 0x009c, 0x00a9, 0x00ba, 0x0040, 0x00b1, 0x00a9, 0x00a9, 0x0030, - 0x0030, 0x01f3, 0x00a9, 0x0040, 0x00a7, 0x00d1, 0x0516, 0x0040, - 0x0040, 0x0040, 0x0040, 0x00a7, 0x00a9, 0x00ba, 0x00a9, 0x00a9, - 0x00a9, 0x00a9, 0x0040, 0x0040, 0x0519, 0x051c, 0x00a7, 0x00a9, - 0x00a9, 0x00a9, 0x00ba, 0x0093, 0x00a9, 0x00a9, 0x00a9, 0x00a9, - 0x00a9, 0x00a9, 0x00a9, 0x00b1, 0x0040, 0x00c5, 0x00b1, 0x00b1, - 0x00f0, 0x0040, 0x00a7, 0x00a9, 0x00c5, 0x00c7, 0x00a7, 0x00a9, - 0x00a9, 0x00a9, 0x00a9, 0x00a9, 0x026b, 0x00a9, 0x00a9, 0x00a9, - 0x00a9, 0x00a9, 0x00a9, 0x00a9, 0x00b1, 0x00b1, 0x00d2, 0x0275, - 0x04f6, 0x047c, 0x0276, 0x0276, 0x0276, 0x04f6, 0x00a9, 0x00a9, - 0x017b, 0x01ef, 0x00a9, 0x051e, 0x0040, 0x0040, 0x0040, 0x0040, - 0x0263, 0x0126, 0x0290, 0x0522, 0x01ed, 0x00a9, 0x00a9, 0x0526, - 0x0040, 0x0040, 0x0040, 0x0040, 0x0093, 0x00a9, 0x0030, 0x0030, - 0x01f3, 0x00a9, 0x01e7, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, - 0x0040, 0x0040, 0x00c4, 0x00b1, 0x0134, 0x00b1, 0x052a, 0x0030, - 0x0030, 0x0289, 0x052e, 0x00a9, 0x00a9, 0x0040, 0x0040, 0x0040, - 0x0040, 0x00c4, 0x029a, 0x00a9, 0x00a9, 0x0040, 0x0040, 0x0040, - 0x0040, 0x01c7, 0x0133, 0x00b1, 0x0126, 0x0530, 0x023b, 0x0534, - 0x019c, 0x0030, 0x0030, 0x0538, 0x02cd, 0x00a5, 0x0040, 0x0040, - 0x0040, 0x0040, 0x0093, 0x00a9, 0x00a9, 0x0040, 0x0040, 0x0040, - 0x0263, 0x0136, 0x0220, 0x03db, 0x053c, 0x0506, 0x00a9, 0x00a9, - 0x00a9, 0x00a9, 0x00a9, 0x00a9, 0x00a9, 0x0040, 0x009c, 0x00bf, - 0x00c1, 0x0040, 0x0040, 0x0040, 0x00c1, 0x0040, 0x0040, 0x053f, - 0x00a9, 0x0040, 0x0040, 0x0040, 0x0040, 0x0263, 0x00b1, 0x0107, - 0x00a9, 0x0030, 0x0030, 0x01f3, 0x00a9, 0x0136, 0x00a9, 0x00a9, - 0x00a9, 0x00a9, 0x00a9, 0x00a9, 0x00a9, 0x0120, 0x0543, 0x0137, - 0x0159, 0x0159, 0x0545, 0x00a9, 0x015f, 0x00a9, 0x047a, 0x01a4, - 0x0121, 0x00b1, 0x01ef, 0x00b1, 0x01ef, 0x00a9, 0x00a9, 0x00a9, - 0x00a9, 0x00a9, 0x0547, 0x0263, 0x00b1, 0x01e0, 0x054b, 0x01cb, - 0x01a6, 0x054f, 0x0552, 0x04f7, 0x00a9, 0x01bb, 0x00a9, 0x00a9, - 0x00a9, 0x00a9, 0x00a9, 0x00a9, 0x00a9, 0x0040, 0x0040, 0x0040, - 0x0040, 0x0040, 0x01c9, 0x00b1, 0x00b1, 0x0133, 0x012f, 0x0239, - 0x03ef, 0x0030, 0x0030, 0x01eb, 0x0182, 0x00a7, 0x00a9, 0x00a9, - 0x00a9, 0x00a9, 0x00a9, 0x00a9, 0x00a9, 0x0040, 0x0040, 0x0040, - 0x0040, 0x0263, 0x00b1, 0x0281, 0x0263, 0x0220, 0x0040, 0x00a9, - 0x00a9, 0x0030, 0x0030, 0x01f3, 0x00a9, 0x0040, 0x0040, 0x0040, - 0x01c7, 0x0133, 0x011a, 0x01ca, 0x0173, 0x0556, 0x055a, 0x02cd, - 0x0289, 0x0289, 0x0289, 0x0040, 0x011a, 0x0040, 0x0040, 0x0040, - 0x0040, 0x0263, 0x00b1, 0x0126, 0x0282, 0x055e, 0x0093, 0x00a9, - 0x00a9, 0x0030, 0x0030, 0x01f3, 0x00a9, 0x0562, 0x0562, 0x0562, - 0x00a0, 0x00a9, 0x00a9, 0x00a9, 0x00a9, 0x0040, 0x0040, 0x00c4, - 0x01a7, 0x00b1, 0x0173, 0x00a7, 0x00a9, 0x0030, 0x0030, 0x01f3, - 0x00a9, 0x0030, 0x0030, 0x0030, 0x0030, 0x00a9, 0x00a9, 0x00a9, - 0x00a9, 0x00a9, 0x00a9, 0x00a9, 0x021f, 0x0121, 0x0173, 0x00b1, - 0x00a9, 0x0030, 0x0030, 0x01f3, 0x0502, 0x0040, 0x0040, 0x0040, - 0x0263, 0x00b1, 0x00b1, 0x0290, 0x00a9, 0x0030, 0x0030, 0x0101, - 0x0040, 0x009c, 0x00a9, 0x00a9, 0x00aa, 0x00a9, 0x00a9, 0x00a9, - 0x00a9, 0x01ca, 0x01a9, 0x0566, 0x0569, 0x056d, 0x0502, 0x00a9, - 0x00a9, 0x00a9, 0x00a9, 0x00a9, 0x00a9, 0x0040, 0x0040, 0x0040, - 0x0040, 0x01c9, 0x00b1, 0x0121, 0x01ca, 0x0299, 0x01e2, 0x00a9, - 0x00a9, 0x00a9, 0x00a9, 0x00a9, 0x00a9, 0x0118, 0x00b1, 0x01e7, - 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x00c4, 0x00b1, 0x0570, - 0x0573, 0x02cd, 0x0577, 0x00a9, 0x00a9, 0x0118, 0x0126, 0x0134, - 0x0040, 0x057b, 0x057d, 0x00b1, 0x00b1, 0x0126, 0x024a, 0x0560, - 0x0581, 0x00a9, 0x00a9, 0x00a9, 0x0040, 0x0040, 0x0040, 0x0040, - 0x0562, 0x0562, 0x0585, 0x00a9, 0x00a9, 0x00a9, 0x00a9, 0x00a9, - 0x00a7, 0x00a9, 0x00a9, 0x00a9, 0x0030, 0x0030, 0x01f3, 0x00a9, - 0x0040, 0x0040, 0x00bf, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, - 0x01c7, 0x00b1, 0x0107, 0x00b1, 0x0173, 0x02cd, 0x0589, 0x00a9, - 0x00a9, 0x0030, 0x0030, 0x0101, 0x0040, 0x0040, 0x0040, 0x0093, - 0x058d, 0x0040, 0x0040, 0x0040, 0x0040, 0x0121, 0x00b1, 0x00b1, - 0x00b1, 0x0591, 0x00b1, 0x0220, 0x0179, 0x00a9, 0x00a9, 0x0040, - 0x009c, 0x00c1, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0118, - 0x0107, 0x0154, 0x0108, 0x00b1, 0x0593, 0x00a9, 0x00a9, 0x0030, - 0x0030, 0x01f3, 0x00a9, 0x0040, 0x00c1, 0x00bf, 0x0040, 0x0040, - 0x0040, 0x0040, 0x0040, 0x01c8, 0x01cb, 0x0596, 0x0282, 0x0093, - 0x00a9, 0x0030, 0x0030, 0x01f3, 0x00a9, 0x00a9, 0x00a9, 0x00a9, - 0x00a9, 0x059a, 0x0484, 0x03d5, 0x00a9, 0x059d, 0x00a9, 0x00a9, - 0x00a9, 0x00a9, 0x00a9, 0x00a9, 0x00a9, 0x0133, 0x0107, 0x01a4, - 0x05a1, 0x0275, 0x0276, 0x0276, 0x00a9, 0x00a9, 0x0154, 0x00a9, - 0x00a9, 0x00a9, 0x00a9, 0x0093, 0x00a9, 0x00a9, 0x00a9, 0x0040, - 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x00df, 0x0498, - 0x0040, 0x0040, 0x0040, 0x00a7, 0x00a9, 0x00a9, 0x0286, 0x0040, - 0x0040, 0x0040, 0x009c, 0x0289, 0x03d5, 0x00a9, 0x00a9, 0x0040, - 0x00a9, 0x00a9, 0x00a9, 0x00a9, 0x00a9, 0x00a9, 0x00a9, 0x0040, - 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x05a5, 0x05a8, 0x05aa, - 0x03be, 0x0304, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, - 0x05ad, 0x0040, 0x0040, 0x0040, 0x0058, 0x00b5, 0x05b1, 0x05b5, - 0x05b9, 0x00f0, 0x00c4, 0x00b1, 0x00b1, 0x00b1, 0x011a, 0x00a9, - 0x00a9, 0x0040, 0x0040, 0x0040, 0x03be, 0x0040, 0x0040, 0x0040, - 0x0040, 0x009c, 0x00a9, 0x00a9, 0x00a9, 0x00a9, 0x00a9, 0x00a9, - 0x00a9, 0x0121, 0x00b1, 0x00b1, 0x0136, 0x0134, 0x00a9, 0x00a9, - 0x00a9, 0x00a9, 0x0030, 0x0030, 0x01f3, 0x026e, 0x0040, 0x0040, - 0x0040, 0x0040, 0x00a7, 0x00b1, 0x051c, 0x00a9, 0x00a9, 0x0040, - 0x0040, 0x0040, 0x0040, 0x00b1, 0x00d2, 0x023c, 0x0040, 0x05bd, - 0x00a9, 0x00a9, 0x0030, 0x0030, 0x05c1, 0x0040, 0x00c1, 0x0040, - 0x0040, 0x0040, 0x0040, 0x0040, 0x00a9, 0x00a5, 0x05c4, 0x05c4, - 0x05c7, 0x023a, 0x0030, 0x0030, 0x01f3, 0x00a9, 0x0040, 0x0040, - 0x0040, 0x0040, 0x0040, 0x0239, 0x0518, 0x00a9, 0x0040, 0x0040, - 0x009c, 0x0120, 0x01c9, 0x01ca, 0x01ca, 0x01ca, 0x01ca, 0x01ca, - 0x01ca, 0x01ca, 0x01ca, 0x00a9, 0x0120, 0x01e7, 0x0040, 0x0040, - 0x0040, 0x05cb, 0x05cf, 0x00a9, 0x00a9, 0x05d3, 0x00a9, 0x00a9, - 0x00a9, 0x0362, 0x0362, 0x0362, 0x0362, 0x0362, 0x05d7, 0x00a9, - 0x00a9, 0x00a9, 0x00a9, 0x00a9, 0x00a9, 0x00a9, 0x05d9, 0x0401, - 0x0401, 0x0444, 0x00a9, 0x00a9, 0x00a9, 0x00a9, 0x00a9, 0x0362, - 0x05db, 0x0362, 0x05d6, 0x0402, 0x00a9, 0x00a9, 0x00a9, 0x05df, - 0x00a9, 0x00a9, 0x00a9, 0x00a9, 0x05e3, 0x05e6, 0x00a9, 0x00a9, - 0x0449, 0x00a9, 0x00a9, 0x0401, 0x0401, 0x0401, 0x0401, 0x0040, - 0x0040, 0x009c, 0x00a9, 0x0040, 0x0040, 0x0040, 0x0093, 0x00a9, - 0x0040, 0x0040, 0x00a7, 0x05ea, 0x00b1, 0x00a9, 0x00a9, 0x00a9, - 0x00a9, 0x00a9, 0x00a9, 0x00a9, 0x0040, 0x0040, 0x0040, 0x0040, - 0x0030, 0x0030, 0x01f3, 0x00a9, 0x00b1, 0x00b1, 0x00b1, 0x011a, - 0x00b1, 0x00b1, 0x00b1, 0x00b1, 0x0107, 0x00a9, 0x00a9, 0x0040, - 0x0040, 0x0040, 0x0040, 0x009c, 0x00a5, 0x0040, 0x0040, 0x0040, - 0x0040, 0x0040, 0x0132, 0x00c7, 0x01c9, 0x0263, 0x00b1, 0x00b1, - 0x00b1, 0x01e7, 0x0118, 0x00b1, 0x0040, 0x0040, 0x0040, 0x0040, - 0x0040, 0x00c5, 0x00c7, 0x0040, 0x0040, 0x0040, 0x0040, 0x00c5, - 0x010b, 0x00a9, 0x00a9, 0x00a9, 0x00a9, 0x00a9, 0x00a9, 0x0362, - 0x0362, 0x0362, 0x0362, 0x0362, 0x05dc, 0x00a9, 0x00a9, 0x0362, - 0x0362, 0x0362, 0x0362, 0x0362, 0x05ee, 0x0093, 0x00a9, 0x0040, - 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x00bf, 0x00ab, - 0x00c0, 0x00a5, 0x00bf, 0x0040, 0x0040, 0x00c1, 0x00a5, 0x0040, - 0x00a5, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x00c1, - 0x009c, 0x00a5, 0x0040, 0x00bf, 0x0040, 0x00bf, 0x0040, 0x017f, - 0x00ba, 0x0040, 0x00bf, 0x0040, 0x0040, 0x0040, 0x00a7, 0x0040, - 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0163, 0x0030, 0x0030, - 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x00b1, 0x00b1, - 0x00b1, 0x00b1, 0x00b1, 0x01e7, 0x00c4, 0x00b1, 0x00b1, 0x00b1, - 0x00f0, 0x0040, 0x00ef, 0x0040, 0x0040, 0x05f2, 0x03ef, 0x00a9, - 0x00a9, 0x00a9, 0x0120, 0x00b1, 0x00d1, 0x00b1, 0x00b1, 0x00b1, - 0x00a9, 0x00a9, 0x00a9, 0x00a9, 0x00a5, 0x009c, 0x00a9, 0x00a9, - 0x00a9, 0x00a9, 0x00a9, 0x00b1, 0x0107, 0x00b1, 0x00b1, 0x00b1, - 0x00b1, 0x017b, 0x00b1, 0x0108, 0x0171, 0x0107, 0x00a9, 0x0040, - 0x0040, 0x0040, 0x0040, 0x00a7, 0x00a9, 0x00a9, 0x00a9, 0x00a9, - 0x0120, 0x00a9, 0x00a9, 0x00a9, 0x00a9, 0x0040, 0x0040, 0x0040, - 0x0093, 0x00b1, 0x01e7, 0x0040, 0x00a7, 0x0030, 0x0030, 0x01f3, - 0x00ba, 0x00a9, 0x00a9, 0x00a9, 0x00a9, 0x0040, 0x0040, 0x0040, - 0x016f, 0x00a9, 0x00a9, 0x00a9, 0x00a9, 0x0040, 0x0040, 0x0040, - 0x00b1, 0x0030, 0x0030, 0x01f3, 0x01e3, 0x0040, 0x0040, 0x0040, - 0x00b1, 0x0030, 0x0030, 0x01f3, 0x00a9, 0x0040, 0x0040, 0x0040, - 0x00c5, 0x05f6, 0x0030, 0x0267, 0x00aa, 0x0040, 0x009c, 0x0040, - 0x00c0, 0x0040, 0x0040, 0x0040, 0x009c, 0x0040, 0x0146, 0x0040, - 0x0040, 0x00b1, 0x0107, 0x00a9, 0x00a9, 0x0040, 0x00b1, 0x01e7, - 0x00a9, 0x0030, 0x0030, 0x01f3, 0x05fa, 0x00a9, 0x00a9, 0x00a9, - 0x00a9, 0x00a5, 0x0040, 0x0040, 0x0040, 0x0498, 0x0498, 0x0093, - 0x00a9, 0x00a9, 0x00a5, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, - 0x0040, 0x0040, 0x00c0, 0x0146, 0x00a5, 0x0040, 0x009c, 0x0040, - 0x00ac, 0x00a9, 0x00ab, 0x00aa, 0x00ac, 0x00a5, 0x00c0, 0x0146, - 0x00ac, 0x00ac, 0x00c0, 0x0146, 0x009c, 0x0040, 0x009c, 0x0040, - 0x00a5, 0x017f, 0x0040, 0x0040, 0x00c1, 0x0040, 0x0040, 0x0040, - 0x0040, 0x00a9, 0x00a5, 0x00a5, 0x00c1, 0x0040, 0x0040, 0x0040, - 0x0040, 0x00a9, 0x0333, 0x05fe, 0x0333, 0x0333, 0x0333, 0x0333, - 0x0333, 0x0333, 0x0333, 0x0333, 0x05ff, 0x0333, 0x0333, 0x0333, - 0x0333, 0x00a9, 0x00a9, 0x00a9, 0x0603, 0x00a9, 0x00a9, 0x00a9, - 0x00a9, 0x0607, 0x00a9, 0x00a9, 0x00a9, 0x00a9, 0x00ba, 0x0348, - 0x060b, 0x00a9, 0x00a9, 0x060d, 0x00a9, 0x00a9, 0x00a9, 0x0611, - 0x0614, 0x0615, 0x0616, 0x00a9, 0x00a9, 0x00a9, 0x0619, 0x0333, - 0x0333, 0x0333, 0x0333, 0x061b, 0x061d, 0x061d, 0x061d, 0x061d, - 0x061d, 0x061d, 0x0621, 0x0333, 0x0333, 0x0333, 0x0401, 0x0401, - 0x044e, 0x0401, 0x0401, 0x0401, 0x044d, 0x0625, 0x0627, 0x0628, - 0x0333, 0x0401, 0x0401, 0x062b, 0x0333, 0x036a, 0x0333, 0x0333, - 0x0333, 0x0627, 0x036a, 0x0333, 0x0333, 0x0333, 0x0333, 0x0333, - 0x0333, 0x0627, 0x0627, 0x0627, 0x0627, 0x0627, 0x0627, 0x0627, - 0x0627, 0x05fe, 0x0333, 0x0333, 0x062e, 0x0627, 0x0384, 0x0627, - 0x0627, 0x0627, 0x0627, 0x0627, 0x0627, 0x0627, 0x0631, 0x0627, - 0x0627, 0x0627, 0x0627, 0x0627, 0x0333, 0x0333, 0x0635, 0x0627, - 0x0627, 0x0627, 0x0627, 0x0627, 0x0639, 0x0627, 0x063b, 0x0627, - 0x0627, 0x062f, 0x05ff, 0x0627, 0x0333, 0x0333, 0x0333, 0x0627, - 0x0627, 0x0627, 0x0627, 0x05fe, 0x05fe, 0x063c, 0x063f, 0x0627, - 0x0627, 0x0627, 0x0627, 0x0627, 0x0627, 0x0627, 0x062f, 0x0631, - 0x0627, 0x0627, 0x0627, 0x0627, 0x0627, 0x0627, 0x0627, 0x0643, - 0x063b, 0x0627, 0x0646, 0x0639, 0x0627, 0x0627, 0x0627, 0x0627, - 0x0627, 0x0627, 0x0627, 0x031a, 0x034c, 0x0649, 0x0627, 0x0627, - 0x0627, 0x0646, 0x034c, 0x034c, 0x063b, 0x0627, 0x0627, 0x0647, - 0x034c, 0x034c, 0x064d, 0x0040, 0x02f6, 0x0651, 0x062f, 0x0627, - 0x0627, 0x0627, 0x0627, 0x0333, 0x0333, 0x0333, 0x0333, 0x0655, - 0x0333, 0x0333, 0x0333, 0x0333, 0x0333, 0x0383, 0x0333, 0x0333, - 0x0333, 0x0333, 0x0333, 0x0348, 0x0348, 0x0333, 0x0333, 0x0333, - 0x0333, 0x0333, 0x0348, 0x0651, 0x0627, 0x0627, 0x0627, 0x0627, - 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x03ae, 0x0659, 0x0040, - 0x0627, 0x036a, 0x0333, 0x05fe, 0x062f, 0x062e, 0x0333, 0x0627, - 0x0333, 0x0333, 0x05ff, 0x05fe, 0x0333, 0x0627, 0x0627, 0x05fe, - 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0333, 0x0333, 0x0333, - 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0332, 0x0333, 0x0333, - 0x0627, 0x0627, 0x0627, 0x0333, 0x05fe, 0x0333, 0x0333, 0x0333, - 0x0040, 0x0040, 0x0040, 0x02f2, 0x0040, 0x0040, 0x0040, 0x0040, - 0x02f2, 0x02f2, 0x0040, 0x0040, 0x02f0, 0x02f2, 0x0040, 0x0040, - 0x02f2, 0x02f2, 0x0040, 0x0040, 0x0040, 0x0040, 0x02f0, 0x0348, - 0x0348, 0x0348, 0x02f2, 0x033c, 0x02f2, 0x02f2, 0x02f2, 0x02f2, - 0x02f2, 0x02f2, 0x02f2, 0x02f2, 0x0040, 0x0040, 0x0040, 0x0627, - 0x0627, 0x0627, 0x0627, 0x0627, 0x0627, 0x065d, 0x0627, 0x065e, - 0x0627, 0x0627, 0x0627, 0x0627, 0x0627, 0x0627, 0x0348, 0x0348, - 0x0348, 0x0348, 0x0348, 0x0348, 0x0348, 0x0348, 0x0333, 0x0333, - 0x0333, 0x0333, 0x0627, 0x0627, 0x0627, 0x05fe, 0x0627, 0x0627, - 0x036a, 0x05ff, 0x0627, 0x0627, 0x0627, 0x0627, 0x062f, 0x0333, - 0x0393, 0x0627, 0x0627, 0x0627, 0x031a, 0x0627, 0x0627, 0x036a, - 0x0333, 0x0627, 0x0627, 0x05fe, 0x0333, 0x0333, 0x0333, 0x0333, - 0x0333, 0x0333, 0x0333, 0x0662, 0x0401, 0x0401, 0x0401, 0x0401, - 0x0401, 0x0401, 0x0401, 0x0406, 0x0666, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x00b1, 0x00b1, 0x00b1, 0x00b1, - 0x0000, 0x0000, 0x0000, 0x0000, + 0x0080, 0x0084, 0x0087, 0x008b, 0x008f, 0x0093, 0x0095, 0x0099, + 0x0040, 0x009d, 0x0040, 0x0040, 0x009f, 0x00a0, 0x009f, 0x00a4, + 0x00a6, 0x009d, 0x00aa, 0x00a6, 0x00ac, 0x00a0, 0x00aa, 0x00af, + 0x009e, 0x0040, 0x0040, 0x0040, 0x00b0, 0x0040, 0x00b4, 0x0040, + 0x00a4, 0x00b4, 0x0040, 0x00a9, 0x0040, 0x009f, 0x00b4, 0x00aa, + 0x009f, 0x00b7, 0x009e, 0x00a4, 0x0040, 0x0040, 0x0040, 0x00a4, + 0x00b4, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, + 0x0040, 0x009d, 0x00af, 0x00af, 0x00af, 0x009f, 0x0040, 0x0040, + 0x0040, 0x0040, 0x009e, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, + 0x0040, 0x0040, 0x00ba, 0x00be, 0x00c2, 0x00c3, 0x0040, 0x00c7, + 0x00cb, 0x00cf, 0x00cf, 0x00cf, 0x00cf, 0x00cf, 0x00cf, 0x00cf, + 0x00cf, 0x00d0, 0x00cf, 0x00cf, 0x00cf, 0x00d3, 0x00d4, 0x00cf, + 0x00cf, 0x00cf, 0x0040, 0x0040, 0x00d8, 0x00da, 0x00de, 0x0040, + 0x00e2, 0x00e4, 0x00a9, 0x00b7, 0x00b7, 0x00b7, 0x00e8, 0x00b7, + 0x00a6, 0x0040, 0x00a9, 0x00b7, 0x00b7, 0x00b7, 0x00ab, 0x00b7, + 0x00a6, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x009e, 0x0040, + 0x0040, 0x0040, 0x00b7, 0x00b7, 0x00b7, 0x00b7, 0x00b7, 0x00b7, + 0x00b7, 0x00b7, 0x009e, 0x0040, 0x0040, 0x0040, 0x00ec, 0x00cf, + 0x00ef, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x00e1, 0x0040, + 0x0040, 0x0040, 0x0040, 0x0040, 0x00e2, 0x00e1, 0x0040, 0x0040, + 0x00f2, 0x00f5, 0x00f9, 0x00cf, 0x00cf, 0x00cf, 0x00cf, 0x00cf, + 0x00cf, 0x00cf, 0x00fb, 0x00ee, 0x00fe, 0x00de, 0x00de, 0x0040, + 0x0040, 0x0040, 0x0040, 0x00e2, 0x00df, 0x0040, 0x00dd, 0x00de, + 0x00de, 0x0102, 0x0104, 0x0107, 0x003a, 0x00cf, 0x00cf, 0x010b, + 0x010d, 0x0040, 0x0040, 0x00ec, 0x00cf, 0x00cf, 0x00cf, 0x00cf, + 0x00cf, 0x0030, 0x0030, 0x0111, 0x0114, 0x0118, 0x0040, 0x0040, + 0x0040, 0x0040, 0x0040, 0x011c, 0x00cf, 0x011f, 0x00cf, 0x0122, + 0x0125, 0x00ef, 0x0030, 0x0030, 0x0129, 0x0040, 0x0040, 0x0040, + 0x012b, 0x0117, 0x0040, 0x0040, 0x0040, 0x0040, 0x00cf, 0x00cf, + 0x00cf, 0x00cf, 0x012f, 0x00e1, 0x0040, 0x0040, 0x0040, 0x0040, + 0x00ed, 0x00cf, 0x00cf, 0x0133, 0x00de, 0x00de, 0x00de, 0x0030, + 0x0030, 0x0129, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x00ec, + 0x00cf, 0x00cf, 0x0040, 0x0137, 0x013a, 0x0040, 0x0040, 0x0040, + 0x0040, 0x0040, 0x00ed, 0x013e, 0x00cf, 0x0140, 0x0140, 0x0142, + 0x0040, 0x0040, 0x0040, 0x00e2, 0x0040, 0x0040, 0x0040, 0x0040, + 0x0040, 0x0040, 0x0140, 0x0144, 0x0040, 0x0040, 0x00e2, 0x00de, + 0x0040, 0x0040, 0x0040, 0x0040, 0x00e2, 0x0148, 0x014a, 0x00cf, + 0x00cf, 0x0040, 0x0040, 0x00ed, 0x00cf, 0x00cf, 0x00cf, 0x00cf, + 0x00cf, 0x014d, 0x00cf, 0x00cf, 0x00cf, 0x00cf, 0x00cf, 0x00cf, + 0x00cf, 0x0150, 0x0040, 0x0040, 0x0040, 0x0040, 0x0154, 0x0155, + 0x0155, 0x0155, 0x0155, 0x0155, 0x0155, 0x0157, 0x015b, 0x015e, + 0x00cf, 0x0161, 0x0164, 0x0140, 0x00cf, 0x0155, 0x0155, 0x00ed, + 0x0168, 0x0030, 0x0030, 0x0040, 0x0040, 0x0155, 0x0155, 0x016c, + 0x00e1, 0x0040, 0x0170, 0x0170, 0x0154, 0x0155, 0x0155, 0x0174, + 0x0155, 0x0177, 0x017a, 0x017c, 0x015b, 0x015e, 0x0180, 0x0183, + 0x0186, 0x00de, 0x0189, 0x00de, 0x0176, 0x00ed, 0x018d, 0x0030, + 0x0030, 0x0191, 0x0040, 0x0195, 0x0199, 0x019c, 0x00e1, 0x00e2, + 0x00df, 0x0170, 0x0040, 0x0040, 0x0040, 0x00e4, 0x0040, 0x00e4, + 0x01a0, 0x01a1, 0x01a5, 0x01a8, 0x014a, 0x01aa, 0x0142, 0x017f, + 0x00de, 0x00e1, 0x01ae, 0x00de, 0x018d, 0x0030, 0x0030, 0x00ef, + 0x01b2, 0x00de, 0x00de, 0x019c, 0x00e1, 0x0040, 0x00e3, 0x00e3, + 0x0154, 0x0155, 0x0155, 0x0174, 0x0155, 0x0174, 0x01b5, 0x017c, + 0x015b, 0x015e, 0x0130, 0x01b9, 0x01bc, 0x00dd, 0x00de, 0x00de, + 0x00de, 0x00ed, 0x018d, 0x0030, 0x0030, 0x01c0, 0x00de, 0x01c3, + 0x00cf, 0x01c7, 0x00e1, 0x0040, 0x0170, 0x0170, 0x0154, 0x0155, + 0x0155, 0x0174, 0x0155, 0x0174, 0x01b5, 0x017c, 0x01cb, 0x015e, + 0x0180, 0x0183, 0x01bc, 0x00de, 0x019c, 0x00de, 0x0176, 0x00ed, + 0x018d, 0x0030, 0x0030, 0x01cf, 0x0040, 0x00de, 0x00de, 0x01ab, + 0x00e1, 0x00e2, 0x00d8, 0x00e4, 0x01a1, 0x01a0, 0x00e4, 0x00df, + 0x00dd, 0x00e2, 0x00d8, 0x0040, 0x0040, 0x01a1, 0x01d3, 0x01d7, + 0x01d3, 0x01d9, 0x01dc, 0x00dd, 0x0189, 0x00de, 0x00de, 0x018d, + 0x0030, 0x0030, 0x0040, 0x0040, 0x01e0, 0x00de, 0x0161, 0x0118, + 0x0040, 0x00e4, 0x00e4, 0x0154, 0x0155, 0x0155, 0x0174, 0x0155, + 0x0155, 0x0155, 0x017c, 0x0125, 0x0161, 0x01e4, 0x019b, 0x01e7, + 0x00de, 0x01ea, 0x01ee, 0x01f1, 0x00ed, 0x018d, 0x0030, 0x0030, + 0x00de, 0x01f3, 0x0040, 0x0040, 0x016c, 0x01f6, 0x0040, 0x00e4, + 0x00e4, 0x0040, 0x0040, 0x0040, 0x00e4, 0x0040, 0x0040, 0x00e1, + 0x01a1, 0x01cb, 0x01fa, 0x01fd, 0x01d9, 0x0142, 0x00de, 0x0201, + 0x00de, 0x01a0, 0x00ed, 0x018d, 0x0030, 0x0030, 0x0204, 0x00de, + 0x00de, 0x00de, 0x0160, 0x0040, 0x0040, 0x00e4, 0x00e4, 0x0154, + 0x0155, 0x0155, 0x0155, 0x0155, 0x0155, 0x0155, 0x0156, 0x015b, + 0x015e, 0x01a5, 0x01d9, 0x0207, 0x00de, 0x01f7, 0x0040, 0x0040, + 0x00ed, 0x018d, 0x0030, 0x0030, 0x0040, 0x0040, 0x020a, 0x0040, + 0x01c7, 0x00e1, 0x0040, 0x0040, 0x0040, 0x00e2, 0x00d8, 0x0040, + 0x0040, 0x0040, 0x0040, 0x00e3, 0x0040, 0x0040, 0x01f1, 0x0040, + 0x00e2, 0x017e, 0x0189, 0x015d, 0x020e, 0x01fa, 0x01fa, 0x00de, + 0x018d, 0x0030, 0x0030, 0x01d3, 0x00dd, 0x00de, 0x00de, 0x00de, + 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x01a4, 0x00cf, 0x012f, + 0x0211, 0x00de, 0x014a, 0x00cf, 0x0215, 0x0030, 0x0030, 0x0219, + 0x00de, 0x00de, 0x00de, 0x00de, 0x01a4, 0x00cf, 0x00cf, 0x0210, + 0x00de, 0x00de, 0x00cf, 0x012f, 0x0030, 0x0030, 0x021d, 0x00de, + 0x0221, 0x0224, 0x0228, 0x022c, 0x022e, 0x003f, 0x00ef, 0x0040, + 0x0030, 0x0030, 0x0129, 0x0040, 0x0040, 0x0232, 0x0234, 0x0236, + 0x0040, 0x0040, 0x0040, 0x00dd, 0x00f9, 0x00cf, 0x00cf, 0x023a, + 0x00cf, 0x00fc, 0x0040, 0x0140, 0x00cf, 0x00cf, 0x00f9, 0x00cf, + 0x00cf, 0x00cf, 0x00cf, 0x00cf, 0x00cf, 0x00cf, 0x023e, 0x0040, + 0x0116, 0x0040, 0x00e4, 0x0242, 0x0040, 0x0246, 0x00de, 0x00de, + 0x00de, 0x00f9, 0x024a, 0x00cf, 0x019c, 0x01a8, 0x0030, 0x0030, + 0x0219, 0x0040, 0x00de, 0x01d3, 0x0142, 0x014b, 0x0210, 0x00de, + 0x00de, 0x00de, 0x00f9, 0x0210, 0x00de, 0x00de, 0x017e, 0x01a8, + 0x00de, 0x017f, 0x0030, 0x0030, 0x021d, 0x017f, 0x0040, 0x00e3, + 0x00de, 0x01f1, 0x0040, 0x0040, 0x0040, 0x0040, 0x024e, 0x024e, + 0x024e, 0x024e, 0x024e, 0x024e, 0x024e, 0x024e, 0x0252, 0x0252, + 0x0252, 0x0252, 0x0252, 0x0252, 0x0252, 0x0252, 0x0256, 0x0256, + 0x0256, 0x0256, 0x0256, 0x0256, 0x0256, 0x0256, 0x0040, 0x0040, + 0x00e4, 0x01a1, 0x0040, 0x00e2, 0x00e4, 0x01a1, 0x0040, 0x0040, + 0x00e4, 0x01a1, 0x0040, 0x0040, 0x0040, 0x0040, 0x00e4, 0x01a1, + 0x0040, 0x00e2, 0x00e4, 0x01a1, 0x0040, 0x0040, 0x0040, 0x00e2, + 0x0040, 0x0040, 0x0040, 0x0040, 0x00e4, 0x01a1, 0x0040, 0x0040, + 0x0040, 0x0040, 0x0040, 0x0040, 0x00e2, 0x00f9, 0x025a, 0x0040, + 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x00dd, 0x0040, 0x0040, + 0x0040, 0x0040, 0x0040, 0x0040, 0x01a1, 0x00de, 0x0040, 0x0040, + 0x0040, 0x0040, 0x0040, 0x01a1, 0x0040, 0x01a1, 0x025b, 0x0040, + 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x025b, 0x0040, + 0x0040, 0x0040, 0x0040, 0x0040, 0x0058, 0x025f, 0x0040, 0x0040, + 0x0263, 0x0266, 0x0040, 0x0040, 0x00dd, 0x00de, 0x0040, 0x0040, + 0x0040, 0x0040, 0x00ed, 0x026a, 0x00de, 0x00df, 0x0040, 0x0040, + 0x0040, 0x0040, 0x00ed, 0x026e, 0x00de, 0x00de, 0x0040, 0x0040, + 0x0040, 0x0040, 0x00ed, 0x00de, 0x00de, 0x00de, 0x0040, 0x0040, + 0x0040, 0x00e4, 0x0272, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, + 0x0274, 0x00cf, 0x0160, 0x01fa, 0x01d5, 0x015e, 0x00cf, 0x00cf, + 0x0278, 0x027c, 0x017f, 0x0030, 0x0030, 0x021d, 0x00de, 0x0040, + 0x0040, 0x01a1, 0x00de, 0x0280, 0x0284, 0x0288, 0x028b, 0x0030, + 0x0030, 0x021d, 0x00de, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, + 0x0040, 0x00dd, 0x00de, 0x0040, 0x00ee, 0x0040, 0x0040, 0x0040, + 0x0040, 0x0040, 0x0040, 0x01b2, 0x00de, 0x0040, 0x0040, 0x0040, + 0x0040, 0x0040, 0x01a1, 0x00de, 0x00de, 0x0040, 0x0040, 0x0040, + 0x0040, 0x0040, 0x0040, 0x0040, 0x00e2, 0x0150, 0x028f, 0x0161, + 0x00de, 0x01d5, 0x01fa, 0x015e, 0x00de, 0x00dd, 0x010f, 0x0030, + 0x0030, 0x00de, 0x00de, 0x00de, 0x00de, 0x0030, 0x0030, 0x0293, + 0x00de, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x00ec, 0x01c8, + 0x00d8, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x0296, 0x00cf, + 0x012f, 0x020e, 0x00f9, 0x00cf, 0x0161, 0x028f, 0x00cf, 0x00cf, + 0x01aa, 0x0030, 0x0030, 0x021d, 0x00de, 0x0030, 0x0030, 0x021d, + 0x00de, 0x00de, 0x00de, 0x00de, 0x00cf, 0x00cf, 0x00cf, 0x00cf, + 0x012f, 0x00de, 0x00de, 0x00de, 0x00de, 0x00cf, 0x0299, 0x00de, + 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x024a, 0x0150, 0x0161, + 0x01d5, 0x0299, 0x00de, 0x029b, 0x00de, 0x00de, 0x029b, 0x029f, + 0x02a2, 0x02a3, 0x02a4, 0x00cf, 0x00cf, 0x02a3, 0x02a3, 0x029f, + 0x0151, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, + 0x02a8, 0x0160, 0x0274, 0x00ef, 0x0030, 0x0030, 0x0129, 0x0040, + 0x00de, 0x02ac, 0x0160, 0x02af, 0x0160, 0x00de, 0x00de, 0x0040, + 0x01fa, 0x01fa, 0x00cf, 0x00cf, 0x015d, 0x029a, 0x02b3, 0x0030, + 0x0030, 0x021d, 0x00e1, 0x0030, 0x0030, 0x0129, 0x0040, 0x0040, + 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0264, 0x0040, 0x0040, + 0x0040, 0x0040, 0x0040, 0x0040, 0x00e2, 0x00e1, 0x0040, 0x0040, + 0x00de, 0x00de, 0x0215, 0x00cf, 0x00cf, 0x00cf, 0x024a, 0x00cf, + 0x0118, 0x0117, 0x0040, 0x02b7, 0x02bb, 0x00de, 0x00cf, 0x00cf, + 0x00cf, 0x02bf, 0x00cf, 0x00cf, 0x00cf, 0x00cf, 0x00cf, 0x00cf, + 0x00cf, 0x02c0, 0x0040, 0x01a1, 0x0040, 0x01a1, 0x0040, 0x0040, + 0x01af, 0x01af, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, + 0x0040, 0x01a1, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x00e4, + 0x0040, 0x0040, 0x0040, 0x00d8, 0x0040, 0x00e1, 0x0040, 0x0040, + 0x0040, 0x0040, 0x00d8, 0x00e4, 0x0040, 0x02c4, 0x02b3, 0x02c8, + 0x02cc, 0x02d0, 0x02d4, 0x00c8, 0x02d8, 0x02d8, 0x02dc, 0x02e0, + 0x02e4, 0x02e6, 0x02ea, 0x02ee, 0x02f2, 0x02f6, 0x0040, 0x02fa, + 0x02fd, 0x0040, 0x0040, 0x02ff, 0x02b3, 0x0303, 0x0307, 0x030a, + 0x00cf, 0x00cf, 0x01a1, 0x00c3, 0x0040, 0x030e, 0x0094, 0x00c3, + 0x0040, 0x0312, 0x0040, 0x0040, 0x0040, 0x00dd, 0x0316, 0x0317, + 0x0316, 0x031b, 0x0316, 0x031d, 0x0317, 0x031d, 0x031f, 0x0316, + 0x0316, 0x0316, 0x00cf, 0x00cf, 0x00cf, 0x00cf, 0x0210, 0x00de, + 0x00de, 0x00de, 0x0323, 0x00a2, 0x0325, 0x0040, 0x00a0, 0x0327, + 0x0040, 0x0040, 0x032a, 0x009d, 0x00a0, 0x0040, 0x0040, 0x0040, + 0x032d, 0x0040, 0x0040, 0x0040, 0x0040, 0x0331, 0x0334, 0x0331, + 0x00c8, 0x00c7, 0x00c7, 0x00c7, 0x0040, 0x00c7, 0x00c7, 0x0338, + 0x0040, 0x0040, 0x00a2, 0x00de, 0x00c7, 0x033c, 0x033e, 0x0040, + 0x0040, 0x0341, 0x0040, 0x0040, 0x0040, 0x00a6, 0x0040, 0x0040, + 0x0040, 0x0040, 0x00a1, 0x00c3, 0x0040, 0x0040, 0x00b4, 0x0040, + 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0345, 0x00a0, 0x0348, + 0x00a0, 0x034a, 0x00a2, 0x00a1, 0x0094, 0x0348, 0x0344, 0x00c7, + 0x00ca, 0x0040, 0x00c7, 0x0040, 0x0338, 0x0040, 0x0040, 0x00c3, + 0x00c3, 0x00a1, 0x0040, 0x0040, 0x0040, 0x0338, 0x00c7, 0x00c5, + 0x00c5, 0x0040, 0x0040, 0x0040, 0x0040, 0x00c5, 0x00c5, 0x0040, + 0x0040, 0x0040, 0x00a2, 0x00a2, 0x0040, 0x00a2, 0x0040, 0x0040, + 0x0040, 0x0040, 0x0040, 0x00a0, 0x0040, 0x0040, 0x0040, 0x034e, + 0x0040, 0x0040, 0x0040, 0x0040, 0x0352, 0x0040, 0x00a1, 0x0040, + 0x0356, 0x0040, 0x0040, 0x035a, 0x0040, 0x0040, 0x0040, 0x0040, + 0x0040, 0x035e, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x035f, + 0x0040, 0x0040, 0x0040, 0x0040, 0x0363, 0x0366, 0x036a, 0x0040, + 0x036e, 0x0040, 0x0040, 0x01a1, 0x00de, 0x00de, 0x00de, 0x00de, + 0x00de, 0x0040, 0x0040, 0x00e2, 0x00de, 0x00de, 0x00de, 0x00de, + 0x00de, 0x00c7, 0x00c7, 0x00c7, 0x00c7, 0x00c7, 0x00c7, 0x00c7, + 0x00c7, 0x0372, 0x00c7, 0x00c7, 0x00c7, 0x00c7, 0x00c7, 0x00c7, + 0x00c7, 0x0375, 0x00c7, 0x00c7, 0x00c7, 0x00c7, 0x0378, 0x00c9, + 0x00c7, 0x037c, 0x0040, 0x00c5, 0x0380, 0x0040, 0x0338, 0x0382, + 0x00c5, 0x0348, 0x00c5, 0x0338, 0x0040, 0x0040, 0x0040, 0x00c5, + 0x0338, 0x0040, 0x00a0, 0x0040, 0x0040, 0x035f, 0x0386, 0x038a, + 0x038e, 0x0391, 0x0393, 0x036e, 0x0397, 0x039b, 0x039f, 0x03a3, + 0x03a3, 0x03a3, 0x03a3, 0x03a7, 0x03a7, 0x03ab, 0x03a3, 0x03af, + 0x03a3, 0x03a7, 0x03a7, 0x03a7, 0x03a3, 0x03a3, 0x03a3, 0x03b3, + 0x03b3, 0x03b7, 0x03b3, 0x03a3, 0x03a3, 0x03a3, 0x0367, 0x03a3, + 0x037e, 0x03bb, 0x03bd, 0x03a4, 0x03a3, 0x03a3, 0x0393, 0x03c1, + 0x03a3, 0x03a5, 0x03a3, 0x03a3, 0x03a3, 0x03a3, 0x03c4, 0x038a, + 0x03c5, 0x03c8, 0x03cb, 0x03ce, 0x03d2, 0x03c7, 0x03d6, 0x03d9, + 0x03a3, 0x03dc, 0x033c, 0x03df, 0x03e3, 0x03e6, 0x03e9, 0x038a, + 0x03ed, 0x03f1, 0x03f5, 0x036e, 0x03f8, 0x0040, 0x032d, 0x0040, + 0x03fc, 0x0040, 0x035f, 0x035e, 0x0040, 0x009e, 0x0040, 0x0400, + 0x0040, 0x0404, 0x0407, 0x040a, 0x040e, 0x0411, 0x0414, 0x03a2, + 0x0352, 0x0352, 0x0352, 0x0418, 0x00c7, 0x00c7, 0x00de, 0x00de, + 0x00de, 0x00de, 0x00de, 0x0363, 0x0040, 0x0040, 0x032d, 0x0040, + 0x0040, 0x0040, 0x03fc, 0x0040, 0x0040, 0x0407, 0x0040, 0x041c, + 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x041f, 0x0352, + 0x0352, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x037e, 0x0040, + 0x0040, 0x0058, 0x0422, 0x0422, 0x0422, 0x0422, 0x0422, 0x0426, + 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0352, 0x0040, + 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0354, 0x0040, + 0x0429, 0x0040, 0x0040, 0x0040, 0x0040, 0x0407, 0x03fc, 0x0040, + 0x0040, 0x0040, 0x0040, 0x03fc, 0x042d, 0x0338, 0x0040, 0x0040, + 0x0040, 0x0040, 0x0040, 0x00d8, 0x0040, 0x0040, 0x0040, 0x0040, + 0x0040, 0x00e3, 0x0040, 0x0040, 0x0040, 0x00ec, 0x00ef, 0x00de, + 0x0431, 0x0434, 0x0040, 0x0040, 0x00de, 0x00df, 0x0437, 0x00de, + 0x00de, 0x014a, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x00e2, + 0x00de, 0x00de, 0x0040, 0x00e2, 0x0040, 0x00e2, 0x0040, 0x00e2, + 0x0040, 0x00e2, 0x0411, 0x0411, 0x0411, 0x043b, 0x02b3, 0x043d, + 0x0441, 0x0445, 0x0449, 0x0352, 0x044b, 0x044d, 0x043d, 0x025b, + 0x01a1, 0x0451, 0x0455, 0x02b3, 0x0451, 0x0453, 0x003c, 0x0459, + 0x045b, 0x045f, 0x0463, 0x0463, 0x0463, 0x0463, 0x0463, 0x0463, + 0x0465, 0x0463, 0x0463, 0x0463, 0x0463, 0x0463, 0x0463, 0x0463, + 0x0463, 0x00de, 0x00de, 0x00de, 0x0463, 0x0463, 0x0463, 0x0463, + 0x0463, 0x0468, 0x00de, 0x00de, 0x00de, 0x00de, 0x0463, 0x0463, + 0x0463, 0x0463, 0x046c, 0x046f, 0x0473, 0x0473, 0x0475, 0x0473, + 0x0473, 0x0479, 0x0463, 0x0463, 0x047d, 0x047f, 0x0483, 0x0486, + 0x0488, 0x048b, 0x048f, 0x0491, 0x0486, 0x0463, 0x0463, 0x0463, + 0x0463, 0x0463, 0x0484, 0x0463, 0x0463, 0x0463, 0x0463, 0x0463, + 0x0463, 0x0463, 0x0484, 0x0491, 0x0463, 0x0485, 0x0463, 0x0493, + 0x0496, 0x0499, 0x049d, 0x0491, 0x0486, 0x0463, 0x0463, 0x0463, + 0x0463, 0x0463, 0x0484, 0x0491, 0x0463, 0x0485, 0x0463, 0x049f, + 0x0488, 0x04a3, 0x00de, 0x0462, 0x0463, 0x0463, 0x0463, 0x0463, + 0x0463, 0x0463, 0x0462, 0x0463, 0x0463, 0x0463, 0x0464, 0x0463, + 0x0463, 0x0463, 0x0463, 0x0468, 0x00de, 0x04a7, 0x04ab, 0x04ab, + 0x04ab, 0x04ab, 0x0463, 0x0463, 0x0463, 0x0463, 0x0463, 0x0463, + 0x0463, 0x0464, 0x0463, 0x0463, 0x00c7, 0x00c7, 0x0463, 0x0463, + 0x0463, 0x0463, 0x0463, 0x04af, 0x04b1, 0x0463, 0x03bd, 0x03bd, + 0x03bd, 0x03bd, 0x03bd, 0x03bd, 0x03bd, 0x03bd, 0x0463, 0x0463, + 0x0463, 0x0463, 0x0463, 0x046f, 0x0463, 0x0463, 0x0463, 0x04a6, + 0x0463, 0x0463, 0x0463, 0x0463, 0x0464, 0x00de, 0x00de, 0x0040, + 0x0040, 0x0040, 0x0040, 0x04b5, 0x0040, 0x0040, 0x0040, 0x0040, + 0x0030, 0x0030, 0x0129, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, + 0x0040, 0x0040, 0x0040, 0x00ec, 0x0215, 0x00cf, 0x00cf, 0x00ef, + 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x00ed, + 0x0040, 0x0040, 0x0040, 0x0040, 0x04b9, 0x02b3, 0x00de, 0x00de, + 0x0040, 0x0040, 0x0040, 0x01a1, 0x00e3, 0x00e1, 0x0040, 0x00dd, + 0x00de, 0x00de, 0x00de, 0x00de, 0x00d8, 0x0040, 0x0040, 0x0040, + 0x0116, 0x0116, 0x00ec, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, + 0x01f7, 0x04bd, 0x0040, 0x0210, 0x0040, 0x0040, 0x04c1, 0x00de, + 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x04c5, 0x00de, 0x00de, + 0x04c9, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, + 0x01fa, 0x01fa, 0x01fa, 0x0142, 0x00de, 0x029b, 0x0030, 0x0030, + 0x021d, 0x00de, 0x00cf, 0x00cf, 0x00cf, 0x00cf, 0x00ef, 0x0040, + 0x0040, 0x04cd, 0x0040, 0x00ed, 0x00cf, 0x04d0, 0x0040, 0x0040, + 0x0040, 0x0040, 0x00ec, 0x00cf, 0x00cf, 0x0160, 0x00de, 0x00de, + 0x00df, 0x024e, 0x024e, 0x024e, 0x024e, 0x024e, 0x024e, 0x024e, + 0x04d4, 0x0150, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, + 0x00de, 0x014a, 0x015d, 0x0160, 0x0160, 0x04d8, 0x04d9, 0x02a1, + 0x04dd, 0x00de, 0x00de, 0x00de, 0x04e1, 0x00de, 0x017f, 0x00de, + 0x00de, 0x0030, 0x0030, 0x021d, 0x00de, 0x00de, 0x00f9, 0x0150, + 0x04bd, 0x01a8, 0x00de, 0x00de, 0x02b4, 0x02b3, 0x02b3, 0x026a, + 0x00de, 0x00de, 0x00de, 0x029f, 0x00de, 0x00de, 0x00de, 0x00de, + 0x00de, 0x00de, 0x00de, 0x0210, 0x00de, 0x00de, 0x00de, 0x00de, + 0x019b, 0x01aa, 0x0210, 0x014b, 0x017f, 0x00de, 0x00de, 0x00de, + 0x00de, 0x00de, 0x00de, 0x00de, 0x0040, 0x0040, 0x01f7, 0x0160, + 0x0266, 0x04e5, 0x00de, 0x00de, 0x00e1, 0x00e2, 0x00e1, 0x00e2, + 0x00e1, 0x00e2, 0x00de, 0x00de, 0x0040, 0x00e2, 0x0040, 0x00e2, + 0x0040, 0x0040, 0x0040, 0x0040, 0x00de, 0x0040, 0x0040, 0x0040, + 0x0040, 0x01f7, 0x01d6, 0x04e9, 0x01dc, 0x0030, 0x0030, 0x021d, + 0x00de, 0x04ed, 0x04ee, 0x04ee, 0x04ee, 0x04ee, 0x04ee, 0x04ee, + 0x04ed, 0x04ee, 0x04ee, 0x04ee, 0x04ee, 0x04ee, 0x04ee, 0x00de, + 0x00de, 0x00de, 0x0252, 0x0252, 0x0252, 0x0252, 0x04f2, 0x04f5, + 0x0256, 0x0256, 0x0256, 0x0256, 0x0256, 0x0256, 0x0256, 0x00de, + 0x0040, 0x00e2, 0x00de, 0x00de, 0x00df, 0x0040, 0x00de, 0x01b1, + 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x00e2, 0x0040, 0x01ae, + 0x00e3, 0x00e4, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, + 0x00e2, 0x00de, 0x00de, 0x00de, 0x00df, 0x0040, 0x0040, 0x0040, + 0x0040, 0x0040, 0x0040, 0x0040, 0x04f9, 0x0040, 0x0040, 0x00de, + 0x00df, 0x00de, 0x00de, 0x00de, 0x00de, 0x0040, 0x0040, 0x0040, + 0x04fd, 0x00cf, 0x00cf, 0x00cf, 0x0501, 0x0505, 0x0508, 0x050c, + 0x00de, 0x0510, 0x0512, 0x0511, 0x0513, 0x0463, 0x0472, 0x0517, + 0x0517, 0x051b, 0x051f, 0x0463, 0x0523, 0x0527, 0x0472, 0x0474, + 0x0463, 0x0464, 0x052b, 0x00de, 0x0040, 0x00e4, 0x0040, 0x0040, + 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x052f, 0x0533, 0x0537, + 0x0475, 0x053b, 0x0463, 0x0463, 0x053e, 0x0542, 0x0463, 0x0463, + 0x0463, 0x0463, 0x0463, 0x0463, 0x0546, 0x053c, 0x0463, 0x0463, + 0x0463, 0x0463, 0x0463, 0x0463, 0x0546, 0x054a, 0x054e, 0x0551, + 0x00de, 0x00de, 0x0554, 0x02a3, 0x02a3, 0x02a3, 0x02a3, 0x02a3, + 0x02a3, 0x02a3, 0x0556, 0x02a3, 0x02a3, 0x02a3, 0x02a3, 0x02a3, + 0x02a3, 0x02a3, 0x055a, 0x04e1, 0x02a3, 0x04e1, 0x02a3, 0x04e1, + 0x02a3, 0x04e1, 0x055c, 0x0560, 0x0563, 0x0040, 0x00e2, 0x0000, + 0x0000, 0x02e5, 0x0333, 0x0040, 0x00e2, 0x0040, 0x0040, 0x0040, + 0x0040, 0x00e2, 0x00e3, 0x0040, 0x0040, 0x0040, 0x01a1, 0x0040, + 0x0040, 0x0040, 0x01a1, 0x0567, 0x00df, 0x0040, 0x0040, 0x0040, + 0x0040, 0x0040, 0x0040, 0x00df, 0x0040, 0x0040, 0x0040, 0x00e2, + 0x0040, 0x0040, 0x0040, 0x00dd, 0x00de, 0x00de, 0x00de, 0x00de, + 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x056b, + 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x00dd, + 0x00de, 0x00de, 0x00de, 0x0118, 0x0040, 0x0040, 0x0040, 0x0040, + 0x0040, 0x0040, 0x00de, 0x00de, 0x00e1, 0x0040, 0x0040, 0x0040, + 0x0040, 0x0040, 0x00ed, 0x012f, 0x00de, 0x0040, 0x0040, 0x0040, + 0x0040, 0x0040, 0x0040, 0x0040, 0x056f, 0x0040, 0x00de, 0x0040, + 0x0040, 0x025b, 0x01a1, 0x00de, 0x00de, 0x0040, 0x0040, 0x0040, + 0x0040, 0x0040, 0x00de, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, + 0x0040, 0x0040, 0x00de, 0x00de, 0x0040, 0x0040, 0x0040, 0x0040, + 0x00de, 0x00de, 0x00df, 0x0040, 0x0040, 0x00e2, 0x0040, 0x00e2, + 0x00e3, 0x0040, 0x0040, 0x0040, 0x00e3, 0x0040, 0x00e3, 0x00dd, + 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x00de, 0x00de, 0x00de, + 0x00de, 0x00de, 0x00de, 0x0040, 0x00e3, 0x0040, 0x0040, 0x0040, + 0x0040, 0x0040, 0x0040, 0x00e4, 0x0040, 0x00e2, 0x00de, 0x0040, + 0x01a1, 0x00e4, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x00e3, + 0x00dd, 0x0170, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x056f, + 0x0040, 0x0040, 0x00de, 0x00df, 0x0040, 0x0040, 0x00de, 0x00de, + 0x00de, 0x00de, 0x0040, 0x0040, 0x0040, 0x0040, 0x00e2, 0x01a1, + 0x00df, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, + 0x029a, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x01a1, + 0x00df, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x00de, + 0x0040, 0x0140, 0x01ea, 0x00de, 0x00cf, 0x0040, 0x00e1, 0x00e1, + 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x01a1, 0x012f, 0x014a, + 0x0040, 0x0040, 0x00dd, 0x00de, 0x02b3, 0x02b3, 0x00dd, 0x00de, + 0x0040, 0x0573, 0x00df, 0x0040, 0x02b3, 0x0577, 0x00de, 0x00de, + 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x01a1, 0x02c7, 0x02b3, + 0x0040, 0x0040, 0x0040, 0x0040, 0x00e2, 0x00de, 0x0040, 0x0040, + 0x0040, 0x0040, 0x01a1, 0x00de, 0x00e1, 0x00dd, 0x00de, 0x00de, + 0x00e1, 0x0040, 0x00de, 0x00de, 0x00de, 0x00de, 0x0040, 0x0040, + 0x00dd, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x0040, 0x0040, + 0x0040, 0x0040, 0x00e2, 0x00de, 0x00d8, 0x0040, 0x00cf, 0x00de, + 0x00de, 0x0030, 0x0030, 0x021d, 0x00de, 0x0040, 0x01a1, 0x00f9, + 0x057b, 0x0040, 0x0040, 0x0040, 0x0040, 0x01a1, 0x00de, 0x00d8, + 0x00de, 0x00de, 0x00de, 0x00de, 0x0040, 0x0040, 0x057e, 0x0581, + 0x01a1, 0x00de, 0x00de, 0x00de, 0x00d8, 0x00dd, 0x00de, 0x00de, + 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00cf, 0x0040, 0x00ed, + 0x00cf, 0x00cf, 0x0118, 0x0040, 0x01a1, 0x00de, 0x00ed, 0x00ef, + 0x01a1, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x0297, 0x00de, + 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00cf, 0x00cf, + 0x00fa, 0x02a2, 0x055b, 0x04e1, 0x02a3, 0x02a3, 0x02a3, 0x055b, + 0x00de, 0x00de, 0x01aa, 0x0210, 0x00de, 0x0583, 0x0040, 0x0040, + 0x0040, 0x0040, 0x028f, 0x0150, 0x02ba, 0x0587, 0x0589, 0x00de, + 0x00de, 0x058c, 0x0040, 0x0040, 0x0040, 0x0040, 0x00dd, 0x00de, + 0x0030, 0x0030, 0x021d, 0x00de, 0x0215, 0x0040, 0x0040, 0x0040, + 0x0040, 0x0040, 0x0040, 0x0040, 0x00ec, 0x00cf, 0x015e, 0x00cf, + 0x0590, 0x0030, 0x0030, 0x02b3, 0x0594, 0x00de, 0x00de, 0x0040, + 0x0040, 0x0040, 0x0040, 0x00ec, 0x02c4, 0x00de, 0x00de, 0x0040, + 0x0040, 0x0040, 0x0040, 0x01f7, 0x015d, 0x00cf, 0x0150, 0x0596, + 0x0265, 0x059a, 0x01cb, 0x0030, 0x0030, 0x059e, 0x0303, 0x00e1, + 0x0040, 0x0040, 0x0040, 0x0040, 0x00dd, 0x00de, 0x00de, 0x0040, + 0x0040, 0x0040, 0x028f, 0x0160, 0x024a, 0x043d, 0x05a2, 0x056b, + 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x0040, + 0x00e2, 0x00e4, 0x00e3, 0x0040, 0x0040, 0x0040, 0x00e3, 0x0040, + 0x0040, 0x05a5, 0x00de, 0x0040, 0x0040, 0x0040, 0x0040, 0x028f, + 0x00cf, 0x012f, 0x00de, 0x0030, 0x0030, 0x021d, 0x00de, 0x0160, + 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x014a, + 0x05a9, 0x0161, 0x0183, 0x0183, 0x05ab, 0x00de, 0x0189, 0x00de, + 0x04df, 0x01d3, 0x014b, 0x00cf, 0x0210, 0x00cf, 0x0210, 0x00de, + 0x00de, 0x00de, 0x00de, 0x00de, 0x05ad, 0x028f, 0x00cf, 0x05b1, + 0x05b2, 0x01fb, 0x01d5, 0x05b6, 0x05b9, 0x055c, 0x00de, 0x01ea, + 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x0040, + 0x0040, 0x0040, 0x0040, 0x0040, 0x01f9, 0x00cf, 0x00cf, 0x015d, + 0x0159, 0x0263, 0x0451, 0x0030, 0x0030, 0x0219, 0x01b1, 0x01a1, + 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x0040, + 0x0040, 0x0040, 0x0040, 0x028f, 0x00cf, 0x02ae, 0x028f, 0x024a, + 0x0040, 0x00de, 0x00de, 0x0030, 0x0030, 0x021d, 0x00de, 0x0040, + 0x0040, 0x0040, 0x01f7, 0x015d, 0x0142, 0x01fa, 0x0274, 0x05bd, + 0x05c1, 0x0303, 0x02b3, 0x02b3, 0x02b3, 0x0040, 0x0142, 0x0040, + 0x0040, 0x0040, 0x0040, 0x028f, 0x00cf, 0x0150, 0x02af, 0x05c5, + 0x00dd, 0x00de, 0x00de, 0x0030, 0x0030, 0x021d, 0x00de, 0x05c9, + 0x05c9, 0x05c9, 0x05cc, 0x00de, 0x00de, 0x00de, 0x00de, 0x0040, + 0x0040, 0x00ec, 0x01d6, 0x00cf, 0x0274, 0x01a1, 0x00de, 0x0030, + 0x0030, 0x021d, 0x00de, 0x0030, 0x0030, 0x0030, 0x0030, 0x00de, + 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x0249, 0x014b, + 0x0274, 0x00cf, 0x00de, 0x0030, 0x0030, 0x021d, 0x0567, 0x0040, + 0x0040, 0x0040, 0x028f, 0x00cf, 0x00cf, 0x02ba, 0x00de, 0x0030, + 0x0030, 0x0129, 0x0040, 0x00e2, 0x00de, 0x00de, 0x00df, 0x00de, + 0x00de, 0x00de, 0x00de, 0x01fa, 0x01d8, 0x05d0, 0x05d3, 0x05d7, + 0x0567, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x0040, + 0x0040, 0x0040, 0x0040, 0x01f9, 0x00cf, 0x014b, 0x01fa, 0x02c3, + 0x0299, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x0140, + 0x00cf, 0x0215, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x00ec, + 0x00cf, 0x05da, 0x05dd, 0x0303, 0x05e1, 0x00de, 0x00de, 0x0140, + 0x0150, 0x015e, 0x0040, 0x05e5, 0x05e7, 0x00cf, 0x00cf, 0x0150, + 0x04d0, 0x05c7, 0x05eb, 0x00de, 0x00de, 0x00de, 0x0040, 0x0040, + 0x0040, 0x0040, 0x05c9, 0x05c9, 0x05cb, 0x00de, 0x00de, 0x00de, + 0x00de, 0x00de, 0x01a1, 0x00de, 0x00de, 0x00de, 0x0030, 0x0030, + 0x021d, 0x00de, 0x0040, 0x0040, 0x00e4, 0x0040, 0x0040, 0x0040, + 0x0040, 0x0040, 0x01f7, 0x00cf, 0x012f, 0x00cf, 0x0274, 0x0303, + 0x05ec, 0x00de, 0x00de, 0x0030, 0x0030, 0x0129, 0x0040, 0x0040, + 0x0040, 0x00dd, 0x05f0, 0x0040, 0x0040, 0x0040, 0x0040, 0x014b, + 0x00cf, 0x00cf, 0x00cf, 0x05f4, 0x00cf, 0x024a, 0x01a8, 0x00de, + 0x00de, 0x0040, 0x00e2, 0x00e3, 0x0040, 0x0040, 0x0040, 0x0040, + 0x0040, 0x0140, 0x012f, 0x017e, 0x0130, 0x00cf, 0x05f6, 0x00de, + 0x00de, 0x0030, 0x0030, 0x021d, 0x00de, 0x0040, 0x00e3, 0x00e4, + 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x01f8, 0x01fb, 0x05f9, + 0x02af, 0x00dd, 0x00de, 0x0030, 0x0030, 0x021d, 0x00de, 0x00de, + 0x00de, 0x00de, 0x00de, 0x05fd, 0x04e9, 0x0437, 0x00de, 0x0600, + 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x015d, + 0x012f, 0x01d3, 0x0275, 0x02a2, 0x02a3, 0x02a3, 0x00de, 0x00de, + 0x017e, 0x00de, 0x00de, 0x00de, 0x00de, 0x00dd, 0x00de, 0x00de, + 0x00de, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, + 0x0107, 0x04fd, 0x0040, 0x0040, 0x0040, 0x01a1, 0x00de, 0x00de, + 0x029a, 0x0040, 0x0040, 0x0040, 0x00e2, 0x02b3, 0x0437, 0x00de, + 0x00de, 0x0040, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, + 0x00de, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0604, + 0x0607, 0x0609, 0x041f, 0x0354, 0x0040, 0x0040, 0x0040, 0x0040, + 0x0040, 0x0040, 0x060c, 0x0040, 0x0040, 0x0040, 0x0058, 0x00d3, + 0x0610, 0x0614, 0x0618, 0x0118, 0x00ec, 0x00cf, 0x00cf, 0x00cf, + 0x0142, 0x00de, 0x00de, 0x0040, 0x0040, 0x0040, 0x041f, 0x0040, + 0x0040, 0x0040, 0x0040, 0x00e2, 0x00de, 0x00de, 0x00de, 0x00de, + 0x00de, 0x00de, 0x00de, 0x014b, 0x00cf, 0x00cf, 0x0160, 0x015e, + 0x00de, 0x00de, 0x00de, 0x00de, 0x0030, 0x0030, 0x021d, 0x029b, + 0x0040, 0x0040, 0x0040, 0x0040, 0x01a1, 0x00cf, 0x0581, 0x00de, + 0x00de, 0x0040, 0x0040, 0x0040, 0x0040, 0x00cf, 0x00fa, 0x0266, + 0x0040, 0x061c, 0x00de, 0x00de, 0x0030, 0x0030, 0x0620, 0x0040, + 0x00e3, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x00de, 0x00e1, + 0x0623, 0x0623, 0x0626, 0x0264, 0x0030, 0x0030, 0x021d, 0x00de, + 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0263, 0x057d, 0x00de, + 0x0040, 0x0040, 0x00e2, 0x014a, 0x01f9, 0x01fa, 0x01fa, 0x01fa, + 0x01fa, 0x01fa, 0x01fa, 0x01fa, 0x01fa, 0x00de, 0x014a, 0x0215, + 0x0040, 0x0040, 0x0040, 0x062a, 0x062e, 0x00de, 0x00de, 0x0632, + 0x00de, 0x00de, 0x00de, 0x03bd, 0x03bd, 0x03bd, 0x03bd, 0x03bd, + 0x0636, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, + 0x0638, 0x0463, 0x0463, 0x04a6, 0x00de, 0x00de, 0x00de, 0x00de, + 0x00de, 0x03bd, 0x063a, 0x03bd, 0x0635, 0x0464, 0x00de, 0x00de, + 0x00de, 0x063e, 0x00de, 0x00de, 0x00de, 0x00de, 0x0642, 0x0645, + 0x00de, 0x00de, 0x04ab, 0x00de, 0x00de, 0x0463, 0x0463, 0x0463, + 0x0463, 0x0040, 0x0040, 0x00e2, 0x00de, 0x0040, 0x0040, 0x0040, + 0x00dd, 0x00de, 0x0040, 0x0040, 0x01a1, 0x04cf, 0x00cf, 0x00de, + 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x0040, 0x0040, + 0x0040, 0x0040, 0x0030, 0x0030, 0x021d, 0x00de, 0x00cf, 0x00cf, + 0x00cf, 0x0142, 0x00cf, 0x00cf, 0x00cf, 0x00cf, 0x012f, 0x00de, + 0x00de, 0x0040, 0x0040, 0x0040, 0x0040, 0x00e2, 0x00e1, 0x0040, + 0x0040, 0x0040, 0x0040, 0x0040, 0x015c, 0x00ef, 0x01f9, 0x028f, + 0x00cf, 0x00cf, 0x00cf, 0x0215, 0x0140, 0x00cf, 0x0040, 0x0040, + 0x0040, 0x0040, 0x0040, 0x00ed, 0x00ef, 0x0040, 0x0040, 0x0040, + 0x0040, 0x00ed, 0x0133, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, + 0x00de, 0x03bd, 0x03bd, 0x03bd, 0x03bd, 0x03bd, 0x063b, 0x00de, + 0x00de, 0x03bd, 0x03bd, 0x03bd, 0x03bd, 0x03bd, 0x0649, 0x00dd, + 0x00de, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, + 0x00e4, 0x0144, 0x01a0, 0x00e1, 0x00e4, 0x0040, 0x0040, 0x00e3, + 0x00e1, 0x0040, 0x00e1, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, + 0x0040, 0x00e3, 0x00e2, 0x00e1, 0x0040, 0x00e4, 0x0040, 0x00e4, + 0x0040, 0x01ae, 0x00d8, 0x0040, 0x00e4, 0x0040, 0x0040, 0x0040, + 0x01a1, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x018d, + 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, + 0x00cf, 0x00cf, 0x00cf, 0x00cf, 0x00cf, 0x0215, 0x00ec, 0x00cf, + 0x00cf, 0x00cf, 0x0118, 0x0040, 0x0117, 0x0040, 0x0040, 0x064d, + 0x0451, 0x00de, 0x00de, 0x00de, 0x014a, 0x00cf, 0x00f9, 0x00cf, + 0x00cf, 0x00cf, 0x00de, 0x00de, 0x00de, 0x00de, 0x00e1, 0x00e2, + 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00cf, 0x012f, 0x00cf, + 0x00cf, 0x00cf, 0x00cf, 0x01aa, 0x00cf, 0x0130, 0x019b, 0x012f, + 0x00de, 0x0040, 0x0040, 0x0040, 0x0040, 0x01a1, 0x00de, 0x00de, + 0x00de, 0x00de, 0x014a, 0x00de, 0x00de, 0x00de, 0x00de, 0x0040, + 0x0040, 0x0040, 0x00dd, 0x00cf, 0x0215, 0x0040, 0x01a1, 0x0030, + 0x0030, 0x021d, 0x00d8, 0x00de, 0x00de, 0x00de, 0x00de, 0x0040, + 0x0040, 0x0040, 0x0199, 0x00de, 0x00de, 0x00de, 0x00de, 0x0040, + 0x0040, 0x0040, 0x00cf, 0x0030, 0x0030, 0x021d, 0x0211, 0x0040, + 0x0040, 0x0040, 0x00cf, 0x0030, 0x0030, 0x021d, 0x00de, 0x0040, + 0x0040, 0x0040, 0x00ed, 0x0651, 0x0030, 0x0293, 0x00df, 0x0040, + 0x00e2, 0x0040, 0x01a0, 0x0040, 0x0040, 0x0040, 0x00e2, 0x0040, + 0x0170, 0x0040, 0x0040, 0x00cf, 0x012f, 0x00de, 0x00de, 0x0040, + 0x00cf, 0x0215, 0x00de, 0x0030, 0x0030, 0x021d, 0x0655, 0x00de, + 0x00de, 0x00de, 0x00de, 0x00e1, 0x0040, 0x0040, 0x0040, 0x04fd, + 0x04fd, 0x00dd, 0x00de, 0x00de, 0x00e1, 0x0040, 0x0040, 0x0040, + 0x0040, 0x0040, 0x0040, 0x0040, 0x01a0, 0x0170, 0x00e1, 0x0040, + 0x00e2, 0x0040, 0x01af, 0x00de, 0x0144, 0x00df, 0x01af, 0x00e1, + 0x01a0, 0x0170, 0x01af, 0x01af, 0x01a0, 0x0170, 0x00e2, 0x0040, + 0x00e2, 0x0040, 0x00e1, 0x01ae, 0x0040, 0x0040, 0x00e3, 0x0040, + 0x0040, 0x0040, 0x0040, 0x00de, 0x00e1, 0x00e1, 0x00e3, 0x0040, + 0x0040, 0x0040, 0x0040, 0x00de, 0x038a, 0x0659, 0x038a, 0x038a, + 0x038a, 0x038a, 0x038a, 0x038a, 0x038a, 0x038a, 0x065a, 0x038a, + 0x038a, 0x038a, 0x038a, 0x00c7, 0x00c7, 0x065e, 0x0661, 0x00c7, + 0x00c7, 0x00c7, 0x00c7, 0x0665, 0x00c7, 0x00c7, 0x00c7, 0x00c7, + 0x0338, 0x03a3, 0x0669, 0x00c7, 0x00c7, 0x066b, 0x00c7, 0x00c7, + 0x00c7, 0x066f, 0x0672, 0x0673, 0x0674, 0x00c7, 0x00c7, 0x00c7, + 0x0677, 0x038a, 0x038a, 0x038a, 0x038a, 0x0679, 0x067b, 0x067b, + 0x067b, 0x067b, 0x067b, 0x067b, 0x067f, 0x038a, 0x038a, 0x038a, + 0x0463, 0x0463, 0x04b0, 0x0463, 0x0463, 0x0463, 0x04af, 0x0683, + 0x0685, 0x0686, 0x038a, 0x0463, 0x0463, 0x0689, 0x038a, 0x03f3, + 0x038a, 0x038a, 0x038a, 0x0685, 0x03f3, 0x038a, 0x038a, 0x038a, + 0x038a, 0x038a, 0x038a, 0x0685, 0x0685, 0x0685, 0x0685, 0x0685, + 0x0685, 0x0685, 0x0685, 0x0659, 0x038a, 0x038a, 0x068c, 0x0685, + 0x068e, 0x0685, 0x0685, 0x0685, 0x0685, 0x0685, 0x0685, 0x0685, + 0x068f, 0x0685, 0x0685, 0x0685, 0x0685, 0x0685, 0x038a, 0x038a, + 0x0693, 0x0685, 0x0685, 0x0685, 0x0685, 0x0685, 0x0697, 0x0685, + 0x0699, 0x0685, 0x0685, 0x068d, 0x065a, 0x0685, 0x038a, 0x038a, + 0x038a, 0x0685, 0x0685, 0x0685, 0x0685, 0x0659, 0x0659, 0x069a, + 0x069d, 0x0685, 0x0685, 0x0685, 0x0685, 0x0685, 0x0685, 0x0685, + 0x068d, 0x068f, 0x0685, 0x0685, 0x0685, 0x0685, 0x0685, 0x0685, + 0x0685, 0x06a1, 0x0699, 0x0685, 0x06a4, 0x0697, 0x0685, 0x0685, + 0x0685, 0x0685, 0x0685, 0x0685, 0x0685, 0x036a, 0x03a7, 0x06a7, + 0x0685, 0x0685, 0x0685, 0x06a4, 0x03a7, 0x03a7, 0x0699, 0x0685, + 0x0685, 0x06a5, 0x03a7, 0x03a7, 0x06ab, 0x0040, 0x0340, 0x06af, + 0x068d, 0x0685, 0x0685, 0x0685, 0x0685, 0x038a, 0x038a, 0x038a, + 0x038a, 0x06b3, 0x038a, 0x038a, 0x038a, 0x038a, 0x038a, 0x03f2, + 0x038a, 0x038a, 0x038a, 0x038a, 0x038a, 0x03a3, 0x03a3, 0x038a, + 0x038a, 0x038a, 0x038a, 0x038a, 0x03a3, 0x06af, 0x0685, 0x0685, + 0x0685, 0x0685, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x040f, + 0x06b7, 0x0040, 0x0685, 0x03f3, 0x038a, 0x0659, 0x068d, 0x068c, + 0x038a, 0x0685, 0x038a, 0x038a, 0x065a, 0x0659, 0x038a, 0x0685, + 0x0685, 0x0659, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x038a, + 0x038a, 0x038a, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0389, + 0x038a, 0x038a, 0x0685, 0x0685, 0x0685, 0x038a, 0x0659, 0x038a, + 0x038a, 0x038a, 0x0040, 0x0040, 0x0040, 0x06bb, 0x0040, 0x0040, + 0x0040, 0x0040, 0x06bb, 0x06bb, 0x0040, 0x0040, 0x06bf, 0x06bb, + 0x0040, 0x0040, 0x06bb, 0x06bb, 0x0040, 0x0040, 0x0040, 0x0040, + 0x06bf, 0x03a3, 0x03a3, 0x03a3, 0x06bb, 0x06c3, 0x06bb, 0x06bb, + 0x06bb, 0x06bb, 0x06bb, 0x06bb, 0x06bb, 0x06bb, 0x0040, 0x0040, + 0x0040, 0x0685, 0x0685, 0x0685, 0x0685, 0x0685, 0x0685, 0x06c7, + 0x0685, 0x06c8, 0x0685, 0x0685, 0x0685, 0x0685, 0x0685, 0x0685, + 0x03a3, 0x03a3, 0x03a3, 0x03a3, 0x03a3, 0x03a3, 0x03a3, 0x03a3, + 0x038a, 0x038a, 0x038a, 0x038a, 0x0685, 0x0685, 0x0685, 0x0659, + 0x0685, 0x0685, 0x03f3, 0x065a, 0x0685, 0x0685, 0x0685, 0x0685, + 0x068d, 0x038a, 0x03f1, 0x0685, 0x0685, 0x0685, 0x036a, 0x0685, + 0x0685, 0x03f3, 0x038a, 0x0685, 0x0685, 0x0659, 0x038a, 0x0040, + 0x0040, 0x0040, 0x0040, 0x00e2, 0x0040, 0x0040, 0x0040, 0x038a, + 0x038a, 0x038a, 0x038a, 0x038a, 0x038a, 0x038a, 0x06cc, 0x0463, + 0x0463, 0x0463, 0x0463, 0x0463, 0x0463, 0x0463, 0x0468, 0x06d0, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00cf, + 0x00cf, 0x00cf, 0x00cf, 0x0000, 0x0000, 0x0000, 0x0000, 0x00c7, + 0x00c7, 0x00c7, 0x00c7, 0x00c7, 0x00c7, 0x00c7, 0x06d4, ]; #[rustfmt::skip] -const STAGE3: [u16; 1642] = [ +const STAGE3: [u16; 1752] = [ 0x0803, 0x0803, 0x0803, 0x0803, 0x0803, 0x0803, 0x0803, 0x0803, 0x0803, 0x0963, 0x0802, 0x0803, @@ -608,23 +626,33 @@ const STAGE3: [u16; 1642] = [ 0x0d80, 0x0d80, 0x0d80, 0x0d80, 0x0d80, 0x0d80, 0x0d80, 0x0bc0, 0x0940, 0x0a00, 0x0d80, 0x0803, - 0x08c0, 0x0bc0, 0x0cc0, 0x0d00, - 0x0d00, 0x0d80, 0x0800, 0x0d8e, - 0x0800, 0x0c00, 0x0d80, 0x0944, - 0x0d8e, 0x0d80, 0x0cc0, 0x0d00, - 0x0800, 0x0800, 0x0980, 0x0d80, - 0x0800, 0x0800, 0x0800, 0x0c00, - 0x0800, 0x0800, 0x0800, 0x0bc0, - 0x0d80, 0x0d80, 0x0d80, 0x0800, - 0x0980, 0x0800, 0x0800, 0x0800, - 0x0980, 0x0800, 0x0d80, 0x0d80, - 0x0d80, 0x0800, 0x0800, 0x0800, - 0x0800, 0x0d80, 0x0800, 0x0d80, - 0x0980, 0x0004, 0x0004, 0x0004, - 0x0004, 0x00c4, 0x00c4, 0x00c4, - 0x00c4, 0x0004, 0x0800, 0x0800, - 0x0d80, 0x0d80, 0x0c40, 0x0d80, - 0x0800, 0x0d80, 0x0d80, 0x0800, + 0x08c0, 0x1bc0, 0x0cc0, 0x0d00, + 0x1d00, 0x0d00, 0x0d80, 0x1800, + 0x0d8e, 0x1800, 0x0c00, 0x0d80, + 0x0944, 0x1d8e, 0x0d80, 0x1cc0, + 0x1d00, 0x1800, 0x1800, 0x1980, + 0x0d80, 0x1800, 0x1800, 0x1800, + 0x0c00, 0x1800, 0x1800, 0x1800, + 0x1bc0, 0x0d80, 0x0d80, 0x1d80, + 0x0d80, 0x0d80, 0x0d80, 0x1800, + 0x0d80, 0x0d80, 0x1d80, 0x1d80, + 0x0d80, 0x0d80, 0x1d80, 0x1d80, + 0x1d80, 0x0d80, 0x1d80, 0x1d80, + 0x0d80, 0x1d80, 0x0d80, 0x1d80, + 0x0d80, 0x0d80, 0x0d80, 0x1d80, + 0x1d80, 0x1d80, 0x1d80, 0x0d80, + 0x0d80, 0x1800, 0x0980, 0x1800, + 0x1800, 0x1800, 0x0980, 0x1800, + 0x0d80, 0x0d80, 0x0d80, 0x1800, + 0x1800, 0x1800, 0x1800, 0x0d80, + 0x1800, 0x0d80, 0x1980, 0x0004, + 0x0004, 0x0004, 0x0004, 0x00c4, + 0x00c4, 0x00c4, 0x00c4, 0x0004, + 0x0800, 0x0800, 0x0d80, 0x0d80, + 0x0c40, 0x0d80, 0x0800, 0x0800, + 0x0800, 0x0800, 0x0d80, 0x0d80, + 0x0d80, 0x0800, 0x0d80, 0x0d80, + 0x1d80, 0x1d80, 0x0800, 0x1d80, 0x0d80, 0x0d80, 0x0d80, 0x0004, 0x0004, 0x0d80, 0x0d80, 0x0c40, 0x0940, 0x0800, 0x0d80, 0x0d80, @@ -647,48 +675,50 @@ const STAGE3: [u16; 1642] = [ 0x0ac0, 0x0d80, 0x0800, 0x0004, 0x0d00, 0x0d00, 0x0004, 0x0004, 0x0d80, 0x0004, 0x0004, 0x0004, - 0x0800, 0x0800, 0x0486, 0x0486, - 0x0800, 0x0800, 0x0800, 0x0004, - 0x0004, 0x0486, 0x0004, 0x0004, - 0x0004, 0x0804, 0x0d80, 0x0d8d, - 0x0d8d, 0x0d8d, 0x0d8d, 0x0004, - 0x0804, 0x0004, 0x0d80, 0x0804, - 0x0804, 0x0004, 0x0004, 0x0004, - 0x0804, 0x0804, 0x0804, 0x000c, - 0x0804, 0x0804, 0x0940, 0x0940, - 0x0c80, 0x0c80, 0x0d80, 0x0004, - 0x0804, 0x0804, 0x0d80, 0x0800, - 0x0800, 0x0d80, 0x0d8d, 0x0800, - 0x0d8d, 0x0d8d, 0x0800, 0x0d8d, - 0x0800, 0x0800, 0x0d8d, 0x0d8d, - 0x0800, 0x0800, 0x0004, 0x0800, - 0x0800, 0x0804, 0x0800, 0x0800, - 0x0804, 0x000c, 0x0d80, 0x0800, - 0x0800, 0x0800, 0x0804, 0x0800, - 0x0800, 0x0c80, 0x0c80, 0x0d8d, - 0x0d8d, 0x0cc0, 0x0cc0, 0x0d80, - 0x0cc0, 0x0d80, 0x0d00, 0x0d80, - 0x0d80, 0x0004, 0x0800, 0x0004, - 0x0004, 0x0804, 0x0004, 0x0800, - 0x0804, 0x0804, 0x0004, 0x0004, - 0x0800, 0x0800, 0x0004, 0x0d80, - 0x0800, 0x0d80, 0x0800, 0x0d80, - 0x0004, 0x0d80, 0x0800, 0x0d8d, - 0x0d8d, 0x0d8d, 0x0004, 0x0804, - 0x0800, 0x0804, 0x000c, 0x0800, - 0x0800, 0x0d80, 0x0d00, 0x0800, - 0x0800, 0x0d8d, 0x0004, 0x0004, - 0x0800, 0x0004, 0x0804, 0x0804, - 0x0004, 0x0d80, 0x0804, 0x0004, - 0x0d80, 0x0d8d, 0x0d80, 0x0d80, - 0x0800, 0x0800, 0x0804, 0x0804, - 0x0004, 0x0804, 0x0804, 0x0800, - 0x0804, 0x0804, 0x0004, 0x0800, - 0x0800, 0x0d80, 0x0d00, 0x0d80, - 0x0800, 0x0804, 0x0800, 0x0004, - 0x0004, 0x000c, 0x0800, 0x0800, - 0x0004, 0x0004, 0x0800, 0x0d8d, - 0x0d8d, 0x0d8d, 0x0800, 0x0d80, + 0x0800, 0x0800, 0x0d80, 0x0800, + 0x0486, 0x0486, 0x0800, 0x0800, + 0x0800, 0x0004, 0x0004, 0x0486, + 0x0004, 0x0004, 0x0004, 0x0804, + 0x0d80, 0x0d8d, 0x0d8d, 0x0d8d, + 0x0d8d, 0x0004, 0x0804, 0x0004, + 0x0d80, 0x0804, 0x0804, 0x0004, + 0x0004, 0x0004, 0x0804, 0x0804, + 0x0804, 0x000c, 0x0804, 0x0804, + 0x0940, 0x0940, 0x0c80, 0x0c80, + 0x0d80, 0x0004, 0x0804, 0x0804, + 0x0d80, 0x0800, 0x0800, 0x0d80, + 0x0d8d, 0x0800, 0x0d8d, 0x0d8d, + 0x0800, 0x0d8d, 0x0800, 0x0800, + 0x0d8d, 0x0d8d, 0x0800, 0x0800, + 0x0004, 0x0800, 0x0800, 0x0804, + 0x0800, 0x0800, 0x0804, 0x000c, + 0x0d80, 0x0800, 0x0800, 0x0800, + 0x0804, 0x0800, 0x0800, 0x0c80, + 0x0c80, 0x0d8d, 0x0d8d, 0x0cc0, + 0x0cc0, 0x0d80, 0x0cc0, 0x0d80, + 0x0d00, 0x0d80, 0x0d80, 0x0004, + 0x0800, 0x0004, 0x0004, 0x0804, + 0x0800, 0x0d80, 0x0d80, 0x0800, + 0x0800, 0x0004, 0x0800, 0x0804, + 0x0804, 0x0004, 0x0004, 0x0800, + 0x0800, 0x0004, 0x0d80, 0x0800, + 0x0d80, 0x0800, 0x0d80, 0x0004, + 0x0d80, 0x0800, 0x0d8d, 0x0d8d, + 0x0d8d, 0x0004, 0x0804, 0x0800, + 0x0804, 0x000c, 0x0800, 0x0800, + 0x0d80, 0x0d00, 0x0800, 0x0800, + 0x0d8d, 0x0004, 0x0004, 0x0800, + 0x0004, 0x0804, 0x0804, 0x0004, + 0x0d80, 0x0804, 0x0004, 0x0d80, + 0x0d8d, 0x0d80, 0x0d80, 0x0800, + 0x0800, 0x0804, 0x0804, 0x0004, + 0x0804, 0x0804, 0x0800, 0x0804, + 0x0804, 0x0004, 0x0800, 0x0800, + 0x0d80, 0x0d00, 0x0d80, 0x0800, + 0x0804, 0x0800, 0x0004, 0x0004, + 0x000c, 0x0800, 0x0800, 0x0004, + 0x0004, 0x0800, 0x0d8d, 0x0d8d, + 0x0d8d, 0x0800, 0x0d80, 0x0800, 0x0800, 0x0800, 0x0980, 0x0d80, 0x0d80, 0x0d80, 0x0804, 0x0804, 0x0804, 0x0804, 0x0800, 0x0004, @@ -696,33 +726,32 @@ const STAGE3: [u16; 1642] = [ 0x0800, 0x0d80, 0x0d80, 0x0804, 0x000c, 0x0d86, 0x0d80, 0x0cc0, 0x0d80, 0x0d80, 0x0004, 0x0800, - 0x0004, 0x0800, 0x0804, 0x0800, - 0x0800, 0x0800, 0x0d00, 0x0004, - 0x0004, 0x0004, 0x0d80, 0x0c80, - 0x0c80, 0x0940, 0x0940, 0x0004, - 0x0800, 0x0800, 0x0800, 0x0c80, - 0x0c80, 0x0800, 0x0800, 0x0d80, - 0x0980, 0x0980, 0x0980, 0x0d80, - 0x0980, 0x0980, 0x08c0, 0x0980, - 0x0980, 0x0940, 0x08c0, 0x0ac0, - 0x0ac0, 0x0ac0, 0x08c0, 0x0d80, - 0x0940, 0x0004, 0x0d80, 0x0004, - 0x0bc0, 0x0a00, 0x0804, 0x0804, - 0x0004, 0x0004, 0x0004, 0x0944, - 0x0004, 0x0800, 0x0940, 0x0940, - 0x0980, 0x0980, 0x0940, 0x0980, - 0x0d80, 0x08c0, 0x08c0, 0x0800, - 0x0004, 0x0804, 0x0004, 0x0004, - 0x1007, 0x1007, 0x1007, 0x1007, - 0x0808, 0x0808, 0x0808, 0x0808, - 0x0809, 0x0809, 0x0809, 0x0809, - 0x0d80, 0x0940, 0x0d80, 0x0d80, - 0x0d80, 0x0a00, 0x0800, 0x0800, - 0x0800, 0x0d80, 0x0d80, 0x0d80, - 0x0940, 0x0940, 0x0d80, 0x0d80, - 0x0004, 0x0804, 0x0800, 0x0800, - 0x0804, 0x0940, 0x0940, 0x0800, - 0x0d80, 0x0800, 0x0004, 0x0004, + 0x0004, 0x0800, 0x0800, 0x0800, + 0x0d00, 0x0004, 0x0004, 0x0004, + 0x0d80, 0x0c80, 0x0c80, 0x0940, + 0x0940, 0x0c80, 0x0c80, 0x0800, + 0x0800, 0x0d80, 0x0980, 0x0980, + 0x0980, 0x0d80, 0x0980, 0x0980, + 0x08c0, 0x0980, 0x0980, 0x0940, + 0x08c0, 0x0ac0, 0x0ac0, 0x0ac0, + 0x08c0, 0x0d80, 0x0940, 0x0004, + 0x0d80, 0x0004, 0x0bc0, 0x0a00, + 0x0804, 0x0804, 0x0004, 0x0004, + 0x0004, 0x0944, 0x0004, 0x0800, + 0x0940, 0x0940, 0x0980, 0x0980, + 0x0940, 0x0980, 0x0d80, 0x08c0, + 0x08c0, 0x0800, 0x0004, 0x0804, + 0x0004, 0x0004, 0x1007, 0x1007, + 0x1007, 0x1007, 0x0808, 0x0808, + 0x0808, 0x0808, 0x0809, 0x0809, + 0x0809, 0x0809, 0x0d80, 0x0940, + 0x0d80, 0x0d80, 0x0d80, 0x0a00, + 0x0800, 0x0800, 0x0800, 0x0d80, + 0x0d80, 0x0d80, 0x0940, 0x0940, + 0x0d80, 0x0d80, 0x0004, 0x0804, + 0x0800, 0x0800, 0x0804, 0x0940, + 0x0940, 0x0800, 0x0d80, 0x0800, + 0x0004, 0x0004, 0x0804, 0x0004, 0x0940, 0x0940, 0x0b40, 0x0800, 0x0940, 0x0d80, 0x0940, 0x0d00, 0x0d80, 0x0d80, 0x0ac0, 0x0ac0, @@ -732,41 +761,50 @@ const STAGE3: [u16; 1642] = [ 0x0804, 0x0804, 0x0004, 0x0c80, 0x0c80, 0x0c80, 0x0800, 0x0804, 0x0004, 0x0804, 0x0800, 0x0800, - 0x0940, 0x0940, 0x0dc0, 0x0940, - 0x0940, 0x0940, 0x0dc0, 0x0dc0, - 0x0dc0, 0x0dc0, 0x0004, 0x0d80, - 0x0804, 0x0004, 0x0004, 0x0800, - 0x0800, 0x0004, 0x0804, 0x0004, - 0x0804, 0x0004, 0x0800, 0x0800, - 0x0800, 0x0940, 0x0940, 0x0940, - 0x0940, 0x0004, 0x0d80, 0x0d80, - 0x0804, 0x0004, 0x0004, 0x0d80, - 0x0800, 0x0004, 0x00c4, 0x0004, - 0x0004, 0x0004, 0x0d80, 0x0980, - 0x0d80, 0x0800, 0x0940, 0x0940, - 0x0940, 0x08c0, 0x0940, 0x0940, - 0x0940, 0x0084, 0x0004, 0x000f, - 0x0004, 0x0004, 0x0c00, 0x0c00, - 0x0bc0, 0x0c00, 0x0b00, 0x0b00, - 0x0b00, 0x0940, 0x0803, 0x0803, - 0x0004, 0x0004, 0x0004, 0x08c0, - 0x0cc0, 0x0cc0, 0x0cc0, 0x0cc0, - 0x0d80, 0x0c00, 0x0c00, 0x0800, - 0x0b4e, 0x0b40, 0x0d80, 0x0d80, - 0x0c40, 0x0bc0, 0x0a00, 0x0b40, - 0x0b4e, 0x0d80, 0x0d80, 0x0940, - 0x0cc0, 0x0d80, 0x0940, 0x0940, - 0x0940, 0x0044, 0x0584, 0x0584, - 0x0584, 0x0803, 0x0004, 0x0004, - 0x0d80, 0x0bc0, 0x0a00, 0x0800, - 0x0d00, 0x0d00, 0x0d00, 0x0d00, - 0x0cc0, 0x0d00, 0x0d00, 0x0d00, - 0x0d80, 0x0d80, 0x0d80, 0x0cc0, - 0x0d80, 0x0d80, 0x0d00, 0x0d80, - 0x0800, 0x080e, 0x0d80, 0x0d8e, - 0x0d80, 0x0d80, 0x080e, 0x080e, - 0x080e, 0x080e, 0x0d80, 0x0d80, - 0x0d8e, 0x0d8e, 0x0d80, 0x0800, + 0x0800, 0x0940, 0x0940, 0x0dc0, + 0x0940, 0x0940, 0x0940, 0x0dc0, + 0x0dc0, 0x0dc0, 0x0dc0, 0x0004, + 0x0d80, 0x0804, 0x0004, 0x0004, + 0x0800, 0x0800, 0x0004, 0x0804, + 0x0004, 0x0804, 0x0004, 0x0940, + 0x0940, 0x0940, 0x0940, 0x0004, + 0x0d80, 0x0d80, 0x0804, 0x0004, + 0x0004, 0x0d80, 0x0800, 0x0004, + 0x00c4, 0x0004, 0x0004, 0x0004, + 0x0d80, 0x0980, 0x0d80, 0x0800, + 0x0940, 0x0940, 0x0940, 0x08c0, + 0x0940, 0x0940, 0x0940, 0x0084, + 0x0004, 0x000f, 0x0004, 0x0004, + 0x1940, 0x08c0, 0x0940, 0x1940, + 0x1c00, 0x1c00, 0x0bc0, 0x0c00, + 0x1800, 0x1800, 0x1d80, 0x0d80, + 0x1b00, 0x1b00, 0x1b00, 0x1940, + 0x0803, 0x0803, 0x0004, 0x0004, + 0x0004, 0x08c0, 0x1cc0, 0x0cc0, + 0x1cc0, 0x1cc0, 0x0cc0, 0x1cc0, + 0x0cc0, 0x0cc0, 0x0d80, 0x0c00, + 0x0c00, 0x1800, 0x0b4e, 0x0b40, + 0x1d80, 0x0d80, 0x0c40, 0x0bc0, + 0x0a00, 0x0b40, 0x0b4e, 0x0d80, + 0x0d80, 0x0940, 0x0cc0, 0x0d80, + 0x0940, 0x0940, 0x0940, 0x0044, + 0x0584, 0x0584, 0x0584, 0x0803, + 0x0004, 0x0004, 0x0d80, 0x0bc0, + 0x0a00, 0x1800, 0x0d80, 0x0bc0, + 0x0a00, 0x0800, 0x0d00, 0x0d00, + 0x0d00, 0x0d00, 0x0cc0, 0x1d00, + 0x0d00, 0x0d00, 0x0d00, 0x0cc0, + 0x0d00, 0x0d00, 0x0d00, 0x0d80, + 0x0d80, 0x0d80, 0x1cc0, 0x0d80, + 0x0d80, 0x1d00, 0x0d80, 0x1800, + 0x180e, 0x0d80, 0x0d8e, 0x0d80, + 0x0d80, 0x0800, 0x0800, 0x0800, + 0x1800, 0x0800, 0x0800, 0x0800, + 0x1800, 0x1800, 0x0d80, 0x0d80, + 0x180e, 0x180e, 0x180e, 0x180e, + 0x0d80, 0x0d80, 0x0d8e, 0x0d8e, + 0x0d80, 0x1800, 0x0d80, 0x1800, + 0x1800, 0x0d80, 0x0d80, 0x1800, 0x0d00, 0x0d00, 0x0d80, 0x0d80, 0x0d80, 0x0b00, 0x0bc0, 0x0a00, 0x0bc0, 0x0a00, 0x0d80, 0x0d80, @@ -776,217 +814,224 @@ const STAGE3: [u16; 1642] = [ 0x158e, 0x158e, 0x158e, 0x0d8e, 0x0d8e, 0x0d8e, 0x15ce, 0x0dce, 0x0dce, 0x15ce, 0x0d8e, 0x0d8e, - 0x0d8e, 0x0d80, 0x0800, 0x0800, - 0x080e, 0x0800, 0x0800, 0x0d8e, - 0x0d8e, 0x0d80, 0x0d80, 0x080e, - 0x0800, 0x0d80, 0x0d80, 0x0d8e, - 0x158e, 0x158e, 0x0d80, 0x0dce, - 0x0dce, 0x0dce, 0x0dce, 0x0d8e, - 0x080e, 0x0800, 0x0d8e, 0x080e, - 0x0d8e, 0x0d8e, 0x080e, 0x080e, - 0x15ce, 0x15ce, 0x080e, 0x080e, - 0x0dce, 0x0d8e, 0x0dce, 0x0dce, - 0x0d8e, 0x0d8e, 0x0d8e, 0x0d8e, - 0x158e, 0x158e, 0x158e, 0x158e, - 0x0d8e, 0x0dce, 0x0dce, 0x0dce, - 0x080e, 0x0d8e, 0x080e, 0x0d8e, - 0x080e, 0x080e, 0x0d8e, 0x080e, - 0x0dce, 0x080e, 0x080e, 0x0d8e, - 0x0d80, 0x0d80, 0x1580, 0x1580, - 0x1580, 0x1580, 0x0d8e, 0x158e, - 0x0d8e, 0x0d8e, 0x15ce, 0x15ce, - 0x0dce, 0x0dce, 0x080e, 0x080e, - 0x080e, 0x0dce, 0x158e, 0x0dce, - 0x0dce, 0x080e, 0x0dce, 0x15ce, - 0x080e, 0x080e, 0x080e, 0x0dce, - 0x080e, 0x080e, 0x0dce, 0x080e, - 0x080e, 0x15ce, 0x080e, 0x0dce, - 0x15ce, 0x15ce, 0x0dce, 0x15ce, - 0x080e, 0x0dce, 0x0dce, 0x15ce, - 0x080e, 0x15ce, 0x0dce, 0x0dce, - 0x158e, 0x0d80, 0x0d80, 0x0dce, - 0x0dce, 0x15ce, 0x15ce, 0x0d8e, - 0x0d80, 0x0d8e, 0x0d80, 0x158e, - 0x0d80, 0x0d80, 0x0d80, 0x0d8e, + 0x0d8e, 0x0d80, 0x1800, 0x1800, + 0x180e, 0x1800, 0x1800, 0x0800, + 0x1800, 0x1800, 0x1800, 0x1d80, + 0x1800, 0x1800, 0x0d8e, 0x0d8e, + 0x0d80, 0x0d80, 0x180e, 0x1800, 0x0d80, 0x0d80, 0x0d8e, 0x158e, - 0x0d80, 0x158e, 0x0d80, 0x0d80, - 0x0d80, 0x158e, 0x158e, 0x0d80, - 0x100e, 0x0d80, 0x0d80, 0x0d80, - 0x0c00, 0x0c00, 0x0c00, 0x0c00, - 0x0d80, 0x0ac0, 0x0ace, 0x0bc0, - 0x0a00, 0x0800, 0x0800, 0x0d80, - 0x0bc0, 0x0a00, 0x0d80, 0x0d80, - 0x0bc0, 0x0a00, 0x0bc0, 0x0a00, - 0x0bc0, 0x0a00, 0x0d80, 0x0d80, - 0x0d80, 0x0d8e, 0x0d8e, 0x0d8e, - 0x0d80, 0x100e, 0x0800, 0x0800, - 0x0ac0, 0x0940, 0x0940, 0x0d80, - 0x0ac0, 0x0940, 0x0800, 0x0800, - 0x0800, 0x0c00, 0x0c00, 0x0940, - 0x0940, 0x0d80, 0x0940, 0x0bc0, - 0x0940, 0x0d80, 0x0d80, 0x0c00, - 0x0c00, 0x0d80, 0x0d80, 0x0c00, - 0x0c00, 0x0bc0, 0x0a00, 0x0940, - 0x0940, 0x0ac0, 0x0d80, 0x0940, - 0x0940, 0x0940, 0x0d80, 0x0940, - 0x0940, 0x0bc0, 0x0940, 0x0ac0, + 0x158e, 0x0d80, 0x0dce, 0x0dce, + 0x0dce, 0x0dce, 0x0d8e, 0x180e, + 0x1800, 0x0d8e, 0x180e, 0x0d8e, + 0x0d8e, 0x180e, 0x180e, 0x15ce, + 0x15ce, 0x080e, 0x080e, 0x0dce, + 0x0d8e, 0x0dce, 0x0dce, 0x1dce, + 0x0dce, 0x1dce, 0x0dce, 0x0d8e, + 0x0d8e, 0x0d8e, 0x0d8e, 0x158e, + 0x158e, 0x158e, 0x158e, 0x0d8e, + 0x0dce, 0x0dce, 0x0dce, 0x180e, + 0x0d8e, 0x180e, 0x0d8e, 0x180e, + 0x180e, 0x0d8e, 0x180e, 0x1dce, + 0x180e, 0x180e, 0x0d8e, 0x0d80, + 0x0d80, 0x1580, 0x1580, 0x1580, + 0x1580, 0x0d8e, 0x158e, 0x0d8e, + 0x0d8e, 0x15ce, 0x15ce, 0x1dce, + 0x1dce, 0x180e, 0x180e, 0x180e, + 0x1dce, 0x158e, 0x1dce, 0x1dce, + 0x180e, 0x1dce, 0x15ce, 0x180e, + 0x180e, 0x180e, 0x1dce, 0x180e, + 0x180e, 0x1dce, 0x1dce, 0x0d8e, + 0x180e, 0x180e, 0x15ce, 0x180e, + 0x1dce, 0x15ce, 0x15ce, 0x1dce, + 0x15ce, 0x180e, 0x1dce, 0x1dce, + 0x15ce, 0x180e, 0x15ce, 0x1dce, + 0x1dce, 0x0dce, 0x158e, 0x0d80, + 0x0d80, 0x0dce, 0x0dce, 0x15ce, + 0x15ce, 0x0dce, 0x0dce, 0x0d8e, + 0x0d8e, 0x0d80, 0x0d8e, 0x0d80, + 0x158e, 0x0d80, 0x0d80, 0x0d80, + 0x0d8e, 0x0d80, 0x0d80, 0x0d8e, + 0x158e, 0x0d80, 0x158e, 0x0d80, + 0x0d80, 0x0d80, 0x158e, 0x158e, + 0x0d80, 0x100e, 0x0d80, 0x0d80, + 0x0d80, 0x0c00, 0x0c00, 0x0c00, + 0x0c00, 0x0d80, 0x0ac0, 0x0ace, + 0x0bc0, 0x0a00, 0x1800, 0x1800, + 0x0d80, 0x0bc0, 0x0a00, 0x0d80, + 0x0d80, 0x0bc0, 0x0a00, 0x0bc0, + 0x0a00, 0x0bc0, 0x0a00, 0x0d80, + 0x0d80, 0x0d80, 0x0d8e, 0x0d8e, + 0x0d8e, 0x0d80, 0x100e, 0x1800, + 0x1800, 0x0800, 0x0ac0, 0x0940, + 0x0940, 0x0d80, 0x0ac0, 0x0940, + 0x0800, 0x0800, 0x0800, 0x0c00, + 0x0c00, 0x0940, 0x0940, 0x0d80, + 0x0940, 0x0bc0, 0x0940, 0x0d80, + 0x0d80, 0x0c00, 0x0c00, 0x0d80, + 0x0d80, 0x0c00, 0x0c00, 0x0bc0, + 0x0a00, 0x0940, 0x0940, 0x0ac0, + 0x0d80, 0x0940, 0x0940, 0x0940, + 0x0d80, 0x0940, 0x0940, 0x0bc0, + 0x0940, 0x0ac0, 0x0bc0, 0x0a80, 0x0bc0, 0x0a80, 0x0bc0, 0x0a80, - 0x0bc0, 0x0a80, 0x0940, 0x0800, - 0x0800, 0x15c0, 0x15c0, 0x15c0, - 0x15c0, 0x0800, 0x15c0, 0x15c0, - 0x0800, 0x0800, 0x1140, 0x1200, - 0x1200, 0x15c0, 0x1340, 0x15c0, - 0x15c0, 0x1380, 0x1200, 0x1380, - 0x1200, 0x15c0, 0x15c0, 0x1340, - 0x1380, 0x1200, 0x1200, 0x15c0, - 0x15c0, 0x0004, 0x0004, 0x1004, - 0x1004, 0x15ce, 0x15c0, 0x15c0, - 0x15c0, 0x1000, 0x15c0, 0x15c0, - 0x15c0, 0x1340, 0x15ce, 0x15c0, - 0x0dc0, 0x0800, 0x1000, 0x15c0, - 0x1000, 0x15c0, 0x1000, 0x1000, - 0x0800, 0x0004, 0x0004, 0x1340, - 0x1340, 0x1340, 0x15c0, 0x1340, - 0x1000, 0x15c0, 0x1000, 0x1000, - 0x15c0, 0x1000, 0x1340, 0x1340, - 0x15c0, 0x0800, 0x0800, 0x0800, - 0x15c0, 0x1000, 0x1000, 0x1000, - 0x1000, 0x15c0, 0x15c0, 0x15c0, - 0x15ce, 0x15c0, 0x15c0, 0x0d80, - 0x0940, 0x0ac0, 0x0940, 0x0004, - 0x0004, 0x0d80, 0x0940, 0x0804, - 0x0004, 0x0004, 0x0804, 0x0cc0, - 0x0d80, 0x0800, 0x0800, 0x0980, - 0x0980, 0x0ac0, 0x0ac0, 0x0804, - 0x0804, 0x0d80, 0x0d80, 0x0980, - 0x0d80, 0x0d80, 0x0004, 0x1007, - 0x0800, 0x0800, 0x0800, 0x0804, - 0x0dc0, 0x0dc0, 0x0dc0, 0x0940, - 0x0dc0, 0x0dc0, 0x0800, 0x0940, - 0x0800, 0x0800, 0x0dc0, 0x0dc0, - 0x0d80, 0x0804, 0x0004, 0x0800, - 0x0004, 0x0804, 0x0804, 0x0940, - 0x100a, 0x100b, 0x100b, 0x100b, - 0x100b, 0x0808, 0x0808, 0x0808, - 0x0800, 0x0800, 0x0800, 0x0809, - 0x0d80, 0x0d80, 0x0a00, 0x0bc0, - 0x0cc0, 0x0d80, 0x0d80, 0x0d80, - 0x0004, 0x0004, 0x0004, 0x1004, - 0x1200, 0x1200, 0x1200, 0x1340, - 0x12c0, 0x12c0, 0x1380, 0x1200, - 0x1300, 0x0800, 0x0800, 0x00c4, - 0x0004, 0x00c4, 0x0004, 0x00c4, - 0x00c4, 0x0004, 0x1200, 0x1380, + 0x0940, 0x0800, 0x0800, 0x15c0, + 0x15c0, 0x15c0, 0x15c0, 0x0800, + 0x15c0, 0x15c0, 0x0800, 0x0800, + 0x1140, 0x1200, 0x1200, 0x15c0, + 0x1340, 0x15c0, 0x15c0, 0x1380, 0x1200, 0x1380, 0x1200, 0x15c0, - 0x15c0, 0x1380, 0x1200, 0x15c0, - 0x15c0, 0x15c0, 0x1200, 0x15c0, - 0x1200, 0x0800, 0x1340, 0x1340, - 0x12c0, 0x12c0, 0x15c0, 0x1500, - 0x14c0, 0x15c0, 0x0d80, 0x0800, - 0x0800, 0x0044, 0x0800, 0x12c0, - 0x15c0, 0x15c0, 0x1500, 0x14c0, - 0x15c0, 0x15c0, 0x1200, 0x15c0, - 0x1200, 0x15c0, 0x15c0, 0x1340, - 0x1340, 0x15c0, 0x15c0, 0x15c0, - 0x12c0, 0x15c0, 0x15c0, 0x15c0, - 0x1380, 0x15c0, 0x1200, 0x15c0, - 0x1380, 0x1200, 0x0a00, 0x0b80, - 0x0a00, 0x0b40, 0x0dc0, 0x0800, - 0x0dc0, 0x0dc0, 0x0dc0, 0x0b44, - 0x0b44, 0x0dc0, 0x0dc0, 0x0dc0, - 0x0800, 0x0800, 0x0800, 0x14c0, - 0x1500, 0x15c0, 0x15c0, 0x1500, - 0x1500, 0x0800, 0x0940, 0x0940, - 0x0940, 0x0800, 0x0d80, 0x0004, - 0x0800, 0x0800, 0x0d80, 0x0d80, - 0x0800, 0x0940, 0x0d80, 0x0004, - 0x0004, 0x0800, 0x0940, 0x0940, - 0x0b00, 0x0800, 0x0004, 0x0004, - 0x0940, 0x0d80, 0x0d80, 0x0800, - 0x0004, 0x0940, 0x0800, 0x0800, - 0x0800, 0x00c4, 0x0d80, 0x0486, - 0x0940, 0x0940, 0x0800, 0x0486, - 0x0800, 0x0800, 0x0004, 0x0800, - 0x0c80, 0x0c80, 0x0d80, 0x0804, - 0x0804, 0x0d80, 0x0d86, 0x0d86, - 0x0940, 0x0004, 0x0004, 0x0004, - 0x0c80, 0x0c80, 0x0d80, 0x0980, - 0x0940, 0x0d80, 0x0004, 0x0d80, - 0x0940, 0x0800, 0x0800, 0x0004, - 0x0940, 0x0804, 0x0804, 0x0800, - 0x0800, 0x0800, 0x0dc0, 0x0800, - 0x0804, 0x0800, 0x0804, 0x0004, - 0x0806, 0x0004, 0x0dc0, 0x0dc0, - 0x0800, 0x0dc0, 0x0004, 0x0980, - 0x0940, 0x0940, 0x0ac0, 0x0ac0, - 0x0d80, 0x0d80, 0x0004, 0x0940, - 0x0940, 0x0d80, 0x0980, 0x0980, - 0x0980, 0x0980, 0x0804, 0x0800, - 0x0800, 0x0004, 0x0804, 0x0004, - 0x0806, 0x0804, 0x0806, 0x0804, - 0x0004, 0x0804, 0x0d86, 0x0004, - 0x0004, 0x0004, 0x0980, 0x0940, - 0x0980, 0x0d80, 0x0004, 0x0d86, - 0x0d86, 0x0d86, 0x0d86, 0x0004, - 0x0004, 0x0980, 0x0940, 0x0940, - 0x0800, 0x0980, 0x0980, 0x0800, - 0x0800, 0x0940, 0x0940, 0x0800, - 0x0800, 0x0980, 0x0ac0, 0x0d80, - 0x0d80, 0x0800, 0x0804, 0x0004, - 0x0004, 0x0d86, 0x0004, 0x0004, - 0x0800, 0x0804, 0x0800, 0x0800, - 0x0940, 0x0004, 0x0004, 0x0806, - 0x0804, 0x0004, 0x0804, 0x0004, - 0x0940, 0x0bc0, 0x0bc0, 0x0bc0, - 0x0a00, 0x0a00, 0x0d80, 0x0d80, - 0x0a00, 0x0d80, 0x0bc0, 0x0a00, - 0x0a00, 0x00c4, 0x00c4, 0x00c4, - 0x03c4, 0x0204, 0x00c4, 0x00c4, - 0x00c4, 0x03c4, 0x0204, 0x03c4, - 0x0204, 0x0940, 0x0d80, 0x0800, - 0x0800, 0x0c80, 0x0c80, 0x0800, - 0x0d80, 0x0d80, 0x0d80, 0x0d88, - 0x0d88, 0x0d88, 0x0d80, 0x1340, - 0x1340, 0x1340, 0x1340, 0x00c4, - 0x0800, 0x0800, 0x0800, 0x1004, - 0x1004, 0x0800, 0x0800, 0x1580, - 0x1580, 0x0800, 0x0800, 0x0800, - 0x1580, 0x1580, 0x1580, 0x0800, - 0x0800, 0x1000, 0x0800, 0x1000, - 0x1000, 0x1000, 0x0800, 0x1000, - 0x0800, 0x0800, 0x0d80, 0x0004, - 0x0004, 0x0940, 0x1580, 0x1580, - 0x1580, 0x0d80, 0x0004, 0x0d80, - 0x0d80, 0x0940, 0x0d80, 0x0c80, - 0x0c80, 0x0c80, 0x0800, 0x0800, - 0x0bc0, 0x0bc0, 0x15ce, 0x0dce, - 0x0dce, 0x0dce, 0x15ce, 0x0800, - 0x0d8e, 0x0d8e, 0x0d8e, 0x0800, - 0x0800, 0x0d80, 0x0d8e, 0x080e, - 0x080e, 0x0800, 0x0800, 0x080e, - 0x080e, 0x0800, 0x0800, 0x100e, - 0x0800, 0x100e, 0x100e, 0x100e, - 0x100e, 0x0800, 0x0d8e, 0x0dce, - 0x0dce, 0x0805, 0x0805, 0x0805, - 0x0805, 0x15c0, 0x15ce, 0x15ce, - 0x0dce, 0x15c0, 0x15c0, 0x15ce, - 0x15ce, 0x15ce, 0x15ce, 0x15c0, - 0x0dce, 0x0dce, 0x0dce, 0x15ce, - 0x15ce, 0x15ce, 0x0dce, 0x15ce, - 0x15ce, 0x0d8e, 0x0d8e, 0x0dce, - 0x0dce, 0x15ce, 0x158e, 0x158e, - 0x15ce, 0x15ce, 0x15ce, 0x15c4, - 0x15c4, 0x15c4, 0x15c4, 0x158e, - 0x15ce, 0x158e, 0x15ce, 0x15ce, - 0x15ce, 0x158e, 0x158e, 0x158e, - 0x15ce, 0x158e, 0x158e, 0x0d80, - 0x0d80, 0x0d8e, 0x0d8e, 0x0dce, - 0x15ce, 0x0dce, 0x0dce, 0x15ce, - 0x0dce, 0x0c00, 0x0b40, 0x0b40, - 0x0b40, 0x15ce, 0x15ce, 0x15ce, - 0x0dc0, 0x15ce, 0x0dce, 0x0dce, - 0x0800, 0x0800, 0x0803, 0x0004, - 0x0803, 0x0803, + 0x15c0, 0x1340, 0x1380, 0x1200, + 0x1200, 0x15c0, 0x15c0, 0x0004, + 0x0004, 0x1004, 0x1004, 0x15ce, + 0x15c0, 0x15c0, 0x15c0, 0x1000, + 0x15c0, 0x15c0, 0x15c0, 0x1340, + 0x15ce, 0x15c0, 0x0dc0, 0x0800, + 0x1000, 0x15c0, 0x1000, 0x15c0, + 0x1000, 0x1000, 0x0800, 0x0004, + 0x0004, 0x1340, 0x1340, 0x1340, + 0x15c0, 0x1340, 0x1000, 0x15c0, + 0x1000, 0x1000, 0x15c0, 0x1000, + 0x1340, 0x1340, 0x15c0, 0x0800, + 0x0800, 0x0800, 0x15c0, 0x1000, + 0x1000, 0x1000, 0x1000, 0x15c0, + 0x15c0, 0x15c0, 0x15ce, 0x15c0, + 0x15c0, 0x0d80, 0x0940, 0x0ac0, + 0x0940, 0x0004, 0x0004, 0x0d80, + 0x0940, 0x0804, 0x0004, 0x0004, + 0x0804, 0x0cc0, 0x0d80, 0x0800, + 0x0800, 0x0980, 0x0980, 0x0ac0, + 0x0ac0, 0x0804, 0x0804, 0x0d80, + 0x0d80, 0x0980, 0x0d80, 0x0d80, + 0x0004, 0x0004, 0x0940, 0x0940, + 0x1007, 0x0800, 0x0800, 0x0800, + 0x0804, 0x0dc0, 0x0dc0, 0x0dc0, + 0x0940, 0x0dc0, 0x0dc0, 0x0800, + 0x0940, 0x0800, 0x0800, 0x0dc0, + 0x0dc0, 0x0d80, 0x0804, 0x0004, + 0x0800, 0x0004, 0x0804, 0x0804, + 0x0940, 0x100a, 0x100b, 0x100b, + 0x100b, 0x100b, 0x0808, 0x0808, + 0x0808, 0x0800, 0x0800, 0x0800, + 0x0809, 0x0d80, 0x0d80, 0x0a00, + 0x0bc0, 0x0cc0, 0x0d80, 0x0d80, + 0x0d80, 0x0004, 0x0004, 0x0004, + 0x1004, 0x1200, 0x1200, 0x1200, + 0x1340, 0x12c0, 0x12c0, 0x1380, + 0x1200, 0x1300, 0x0800, 0x0800, + 0x00c4, 0x0004, 0x00c4, 0x0004, + 0x00c4, 0x00c4, 0x0004, 0x1200, + 0x1380, 0x1200, 0x1380, 0x1200, + 0x15c0, 0x15c0, 0x1380, 0x1200, + 0x15c0, 0x15c0, 0x15c0, 0x1200, + 0x15c0, 0x1200, 0x0800, 0x1340, + 0x1340, 0x12c0, 0x12c0, 0x15c0, + 0x1500, 0x14c0, 0x15c0, 0x0d80, + 0x0800, 0x0800, 0x0044, 0x0800, + 0x12c0, 0x15c0, 0x15c0, 0x1500, + 0x14c0, 0x15c0, 0x15c0, 0x1200, + 0x15c0, 0x1200, 0x15c0, 0x15c0, + 0x1340, 0x1340, 0x15c0, 0x15c0, + 0x15c0, 0x12c0, 0x15c0, 0x15c0, + 0x15c0, 0x1380, 0x15c0, 0x1200, + 0x15c0, 0x1380, 0x1200, 0x0a00, + 0x0b80, 0x0a00, 0x0b40, 0x0dc0, + 0x0800, 0x0dc0, 0x0dc0, 0x0dc0, + 0x0b44, 0x0b44, 0x0dc0, 0x0dc0, + 0x0dc0, 0x0800, 0x0800, 0x0800, + 0x14c0, 0x1500, 0x15c0, 0x15c0, + 0x1500, 0x1500, 0x0800, 0x0940, + 0x0940, 0x0940, 0x0800, 0x0d80, + 0x0004, 0x0800, 0x0800, 0x0d80, + 0x0d80, 0x0800, 0x0940, 0x0d80, + 0x0004, 0x0004, 0x0800, 0x0940, + 0x0940, 0x0b00, 0x0800, 0x0004, + 0x0004, 0x0940, 0x0d80, 0x0d80, + 0x0800, 0x0004, 0x0940, 0x0800, + 0x0800, 0x0800, 0x00c4, 0x0d80, + 0x0486, 0x0940, 0x0940, 0x0004, + 0x0800, 0x0486, 0x0800, 0x0800, + 0x0004, 0x0800, 0x0c80, 0x0c80, + 0x0d80, 0x0804, 0x0804, 0x0d80, + 0x0d86, 0x0d86, 0x0940, 0x0004, + 0x0004, 0x0004, 0x0c80, 0x0c80, + 0x0d80, 0x0980, 0x0940, 0x0d80, + 0x0004, 0x0d80, 0x0940, 0x0800, + 0x0800, 0x0004, 0x0940, 0x0804, + 0x0804, 0x0800, 0x0800, 0x0800, + 0x0dc0, 0x0004, 0x0800, 0x0804, + 0x0800, 0x0804, 0x0004, 0x0806, + 0x0004, 0x0dc0, 0x0dc0, 0x0800, + 0x0dc0, 0x0004, 0x0980, 0x0940, + 0x0940, 0x0ac0, 0x0ac0, 0x0d80, + 0x0d80, 0x0004, 0x0940, 0x0940, + 0x0d80, 0x0980, 0x0980, 0x0980, + 0x0980, 0x0800, 0x0800, 0x0800, + 0x0804, 0x0800, 0x0800, 0x0004, + 0x0804, 0x0004, 0x0806, 0x0804, + 0x0806, 0x0804, 0x0004, 0x0804, + 0x0d86, 0x0004, 0x0004, 0x0004, + 0x0980, 0x0940, 0x0980, 0x0d80, + 0x0004, 0x0d86, 0x0d86, 0x0d86, + 0x0d86, 0x0004, 0x0004, 0x0980, + 0x0940, 0x0940, 0x0800, 0x0800, + 0x0980, 0x0ac0, 0x0d80, 0x0d80, + 0x0800, 0x0804, 0x0004, 0x0004, + 0x0d86, 0x0004, 0x0004, 0x0800, + 0x0804, 0x0800, 0x0800, 0x0940, + 0x0004, 0x0004, 0x0806, 0x0804, + 0x0bc0, 0x0bc0, 0x0bc0, 0x0a00, + 0x0a00, 0x0d80, 0x0d80, 0x0a00, + 0x0d80, 0x0bc0, 0x0a00, 0x0a00, + 0x00c4, 0x00c4, 0x00c4, 0x03c4, + 0x0204, 0x00c4, 0x00c4, 0x00c4, + 0x03c4, 0x0204, 0x03c4, 0x0204, + 0x0940, 0x0d80, 0x0800, 0x0800, + 0x0c80, 0x0c80, 0x0800, 0x0d80, + 0x0d80, 0x0d80, 0x0d88, 0x0d88, + 0x0d88, 0x0d80, 0x1340, 0x1340, + 0x1340, 0x1340, 0x00c4, 0x0800, + 0x0800, 0x0800, 0x1004, 0x1004, + 0x0800, 0x0800, 0x1580, 0x1580, + 0x0800, 0x0800, 0x0800, 0x1580, + 0x1580, 0x1580, 0x0800, 0x0800, + 0x1000, 0x0800, 0x1000, 0x1000, + 0x1000, 0x0800, 0x1000, 0x0800, + 0x0800, 0x1580, 0x1580, 0x1580, + 0x0d80, 0x0004, 0x0d80, 0x0d80, + 0x0940, 0x0d80, 0x0c80, 0x0c80, + 0x0c80, 0x0800, 0x0800, 0x0bc0, + 0x0bc0, 0x15ce, 0x0dce, 0x0dce, + 0x0dce, 0x15ce, 0x1800, 0x1800, + 0x1800, 0x0800, 0x0d8e, 0x0d8e, + 0x0d8e, 0x1800, 0x1800, 0x0d80, + 0x0d8e, 0x180e, 0x180e, 0x1800, + 0x1800, 0x180e, 0x180e, 0x1800, + 0x1800, 0x100e, 0x1800, 0x100e, + 0x100e, 0x100e, 0x100e, 0x1800, + 0x0d8e, 0x0dce, 0x0dce, 0x0805, + 0x0805, 0x0805, 0x0805, 0x15c0, + 0x15ce, 0x15ce, 0x0dce, 0x15c0, + 0x15c0, 0x15ce, 0x15ce, 0x15ce, + 0x15ce, 0x15c0, 0x0dce, 0x0dce, + 0x0dce, 0x15ce, 0x15ce, 0x15ce, + 0x0dce, 0x15ce, 0x15ce, 0x0d8e, + 0x0d8e, 0x0dce, 0x0dce, 0x15ce, + 0x158e, 0x158e, 0x15ce, 0x15ce, + 0x15ce, 0x15c4, 0x15c4, 0x15c4, + 0x15c4, 0x158e, 0x15ce, 0x158e, + 0x15ce, 0x15ce, 0x15ce, 0x158e, + 0x158e, 0x158e, 0x15ce, 0x158e, + 0x158e, 0x0d80, 0x0d80, 0x0d8e, + 0x0d8e, 0x0dce, 0x15ce, 0x0dce, + 0x0dce, 0x15ce, 0x0dce, 0x0c00, + 0x0b40, 0x0b40, 0x0b40, 0x080e, + 0x080e, 0x080e, 0x080e, 0x0d80, + 0x0d80, 0x080e, 0x080e, 0x0d8e, + 0x0d8e, 0x080e, 0x080e, 0x15ce, + 0x15ce, 0x15ce, 0x0dc0, 0x15ce, + 0x0dce, 0x0dce, 0x0800, 0x0800, + 0x0803, 0x0004, 0x0803, 0x0803, + 0x1800, 0x1800, 0x0800, 0x0800, ]; #[rustfmt::skip] const GRAPHEME_JOIN_RULES: [[u32; 16]; 2] = [ @@ -1082,8 +1127,13 @@ pub fn ucd_grapheme_cluster_joins_done(state: u32) -> bool { state == 3 } #[inline(always)] -pub fn ucd_grapheme_cluster_character_width(val: usize) -> usize { - val >> 11 +pub fn ucd_grapheme_cluster_character_width(val: usize, ambiguous_width: usize) -> usize { + let mut w = val >> 11; + if w > 2 { + cold_path(); + w = ambiguous_width; + } + w } #[inline(always)] pub fn ucd_line_break_joins(lead: usize, trail: usize) -> bool { @@ -1106,4 +1156,7 @@ pub fn ucd_tab_properties() -> usize { pub fn ucd_linefeed_properties() -> usize { 0x802 } +#[cold] +#[inline(always)] +fn cold_path() {} // END: Generated by grapheme-table-gen diff --git a/tools/grapheme-table-gen/src/main.rs b/tools/grapheme-table-gen/src/main.rs index 7fad694581a..69eca2d4e2f 100644 --- a/tools/grapheme-table-gen/src/main.rs +++ b/tools/grapheme-table-gen/src/main.rs @@ -247,12 +247,15 @@ Usage: grapheme-table-gen [options...] Expose tab and linefeed as grapheme cluster properties --no-ambiguous Treat all ambiguous characters as narrow --line-breaks Store and expose line break information + +Download ucd.nounihan.grouped.xml at: + https://www.unicode.org/Public/UCD/latest/ucdxml/ucd.nounihan.grouped.zip "; fn main() -> anyhow::Result<()> { let mut args = pico_args::Arguments::from_env(); if args.contains(["-h", "--help"]) { - eprint!("{}", HELP); + eprint!("{HELP}"); return Ok(()); } @@ -310,7 +313,7 @@ fn main() -> anyhow::Result<()> { for s in &out.trie.stages { actual = s.values[actual as usize + ((cp >> s.shift) & s.mask)]; } - assert_eq!(expected.value(), actual, "trie sanity check failed for U+{:04X}", cp); + assert_eq!(expected.value(), actual, "trie sanity check failed for U+{cp:04X}"); } for (cp, &expected) in out.ucd.values[..0x80].iter().enumerate() { let last = out.trie.stages.last().unwrap(); @@ -318,8 +321,7 @@ fn main() -> anyhow::Result<()> { assert_eq!( expected.value(), actual, - "trie sanity check failed for direct ASCII mapping of U+{:04X}", - cp + "trie sanity check failed for direct ASCII mapping of U+{cp:04X}" ); } @@ -372,7 +374,7 @@ fn generate_c(out: Output) -> String { for table in &out.rules_gc { buf.push_str(" {\n"); for &r in table { - _ = writeln!(buf, " 0b{:032b},", r); + _ = writeln!(buf, " 0b{r:032b},"); } buf.push_str(" },\n"); } @@ -443,15 +445,38 @@ fn generate_c(out: Output) -> String { {{ return state == 3; }} - inline int ucd_grapheme_cluster_character_width(const int val) - {{ - return val >> {1}; - }} ", out.ucd.packing.mask_cluster_break, - out.ucd.packing.shift_character_width, ); + if out.arg_no_ambiguous { + _ = writedoc!( + buf, + " + inline int ucd_grapheme_cluster_character_width(const int val) + {{ + return val >> {}; + }} + ", + out.ucd.packing.shift_character_width, + ); + } else { + _ = writedoc!( + buf, + " + inline int ucd_grapheme_cluster_character_width(const int val, int ambiguous_width) + {{ + int w = val >> {}; + if (w == 3) {{ + w = ambiguous_width; + }} + return w; + }} + ", + out.ucd.packing.shift_character_width, + ); + } + if out.arg_line_breaks { _ = writedoc!( buf, @@ -546,7 +571,7 @@ fn generate_rust(out: Output) -> String { for table in &out.rules_gc { buf.push_str(" [\n"); for &r in table { - _ = writeln!(buf, " 0b{:032b},", r); + _ = writeln!(buf, " 0b{r:032b},"); } buf.push_str(" ],\n"); } @@ -622,15 +647,43 @@ fn generate_rust(out: Output) -> String { pub fn ucd_grapheme_cluster_joins_done(state: u32) -> bool {{ state == 3 }} - #[inline(always)] - pub fn ucd_grapheme_cluster_character_width(val: usize) -> usize {{ - val >> {1} - }} ", out.ucd.packing.mask_cluster_break, - out.ucd.packing.shift_character_width, ); + if out.arg_no_ambiguous { + _ = writedoc!( + buf, + " + #[inline(always)] + pub fn ucd_grapheme_cluster_character_width(val: usize) -> usize {{ + val >> {} + }} + ", + out.ucd.packing.shift_character_width, + ); + } else { + // `cold_path()` ensures that LLVM emits a branch instead of a conditional move. + // This improves performance, as ambiguous characters are rare. + // `> 2` is used instead of `== 3`, because this way the compiler can immediately + // test whether `val > (2 << shift_character_width)` before shifting. + _ = writedoc!( + buf, + " + #[inline(always)] + pub fn ucd_grapheme_cluster_character_width(val: usize, ambiguous_width: usize) -> usize {{ + let mut w = val >> {}; + if w > 2 {{ + cold_path(); + w = ambiguous_width; + }} + w + }} + ", + out.ucd.packing.shift_character_width, + ); + } + if out.arg_line_breaks { _ = writedoc!( buf, @@ -681,6 +734,17 @@ fn generate_rust(out: Output) -> String { ); } + if !out.arg_no_ambiguous { + _ = writedoc!( + buf, + " + #[cold] + #[inline(always)] + fn cold_path() {{}} + " + ); + } + buf.push_str("// END: Generated by grapheme-table-gen\n"); buf }