diff --git a/SYNTAX.md b/SYNTAX.md
index c37234e6..ed3ee84a 100644
--- a/SYNTAX.md
+++ b/SYNTAX.md
@@ -187,7 +187,6 @@ RustyLR supports rich regular expression patterns on the right-hand side of prod
 - **`P?`** : Matches zero or one occurrence of pattern `P` (binds as an `Option<P>`).
 - **`$sep(P, P_separator, repetition)`** : Matches repetitions of `P` separated by `P_separator`. The `repetition` argument can be `*` (zero or more) or `+` (one or more). Binds as a `Vec<P>`.
 - **`(P1 P2 | P3)`** : Grouping and alternation.
-- **`P / term`** or **`P / [term1 term2]`** : Lookahead assertion. Matches `P` only if followed by the lookahead symbol(s), without consuming them.
 - **`'a'` / `b'a'`** : Character/byte literals (only valid if `%tokentype` is `char` or `u8`).
 - **`"abcd"` / `b"abcd"`** : String/byte string literals (only valid if `%tokentype` is `char` or `u8`).
 - **`P - TerminalSet`** : Matches pattern `P` but excludes any terminal in the `TerminalSet`.
diff --git a/rusty_lr_core/src/builder/grammar.rs b/rusty_lr_core/src/builder/grammar.rs
index 615b9e8e..a7e3846f 100644
--- a/rusty_lr_core/src/builder/grammar.rs
+++ b/rusty_lr_core/src/builder/grammar.rs
@@ -26,7 +26,6 @@ struct ExpandCache<Term> {
 #[derive(Debug, Clone)]
 pub struct Rule<Term, NonTerm> {
     pub rule: ProductionRule<Term, NonTerm>,
-    pub lookaheads: Option<BTreeSet<Term>>,
     /// for reduce/reduce conflict resolving
     pub priority: usize,
 }
@@ -71,7 +70,6 @@ impl<Term, NonTerm> Grammar<TerminalSymbol<Term>, NonTerm> {
         &mut self,
         name: NonTerm,
         rule: Vec<Token<TerminalSymbol<Term>, NonTerm>>,
-        lookaheads: Option<BTreeSet<TerminalSymbol<Term>>>,
         precedence: Option<Precedence>,
         priority: usize,
     ) -> usize
@@ -86,7 +84,6 @@ impl<Term, NonTerm> Grammar<TerminalSymbol<Term>, NonTerm> {
                 rule,
                 precedence,
             },
-            lookaheads,
             priority,
         };
         self.rules.push(rule);
@@ -324,14 +321,6 @@ impl<Term, NonTerm> Grammar<TerminalSymbol<Term>, NonTerm> {
                     } else {
                         c.lookaheads.clone()
                     };
-                    // check for force lookahead
-                    let lookaheads =
-                        if let Some(force_lookaheads) = self.rules[c.rule].lookaheads.as_ref() {
-                            lookaheads.intersection(force_lookaheads).copied().collect()
-                        } else {
-                            lookaheads
-                        };
-
                     new_rules.push((
                         ShiftedRuleRef {
                             rule: c.rule,
diff --git a/rusty_lr_core/src/parser/nonterminal.rs b/rusty_lr_core/src/parser/nonterminal.rs
index 7760a2cf..64045ff5 100644
--- a/rusty_lr_core/src/parser/nonterminal.rs
+++ b/rusty_lr_core/src/parser/nonterminal.rs
@@ -40,8 +40,6 @@ pub enum NonTerminalType {
 
     /// terminal set enclosed in brackets ( [a-zA-Z0-9] )
     TerminalSet,
-    /// rule with explicit lookaheads
-    Lookahead,
 
     /// sequence of tokens enclosed in parentheses ( a B c ... )
     Group,
diff --git a/rusty_lr_core/src/tree.rs b/rusty_lr_core/src/tree.rs
index 64a5175b..0f97fd4d 100644
--- a/rusty_lr_core/src/tree.rs
+++ b/rusty_lr_core/src/tree.rs
@@ -53,7 +53,7 @@ impl<Term, NonTerm> TreeNonTerminal<Term, NonTerm> {
             }
 
             // remove parent, directly add children
-            Some(NonTerminalType::Lookahead) | Some(NonTerminalType::TerminalSet) => self
+            Some(NonTerminalType::TerminalSet) => self
                 .tokens
                 .iter()
                 .flat_map(|token| token.to_term_tree(term_to_display, nonterm_to_display))
diff --git a/rusty_lr_executable/README.md b/rusty_lr_executable/README.md
index 61e527d2..053cbf95 100644
--- a/rusty_lr_executable/README.md
+++ b/rusty_lr_executable/README.md
@@ -162,7 +162,6 @@ Reduce on Terminals: {
     question => { Pattern -> TerminalSet }
     minus => { Pattern -> TerminalSet }
     exclamation => { Pattern -> TerminalSet }
-    slash => { Pattern -> TerminalSet }
      dot => { Pattern -> TerminalSet }
     dollar => { Pattern -> TerminalSet }
     comma => { Pattern -> TerminalSet }
diff --git a/rusty_lr_parser/src/grammar.rs b/rusty_lr_parser/src/grammar.rs
index e35566ed..312526b1 100644
--- a/rusty_lr_parser/src/grammar.rs
+++ b/rusty_lr_parser/src/grammar.rs
@@ -1545,7 +1545,6 @@ impl Grammar {
                     tokens,
                     reduce_action,
                     separator_location: rule.separator_location,
-                    lookaheads: None,
                     prec,
                     dprec,
                     is_used: true,
@@ -1759,7 +1758,6 @@ impl Grammar {
                 ],
                 reduce_action: None,
                 separator_location: Location::CallSite,
-                lookaheads: None,
                 prec: None,
                 dprec: None,
                 is_used: true,
@@ -1814,11 +1812,6 @@ impl Grammar {
         // check other, error terminals used
         for nonterm in &grammar.nonterminals {
             for rule in &nonterm.rules {
-                if let Some(lookaheads) = &rule.lookaheads {
-                    if lookaheads.contains(&grammar.other_terminal_index) {
-                        grammar.other_used = true;
-                    }
-                }
                 for token in &rule.tokens {
                     if token.token
                         == Token::Term(TerminalSymbol::Term(grammar.other_terminal_index))
@@ -1895,7 +1888,6 @@ impl Grammar {
                             .map(|token| (token.token, &token.reduce_action_chains))
                             .collect::<Vec<_>>();
                         let reduce_chains = &term_mapped.reduce_action_chains;
-                        let lookaheads = &rule.lookaheads;
                         let prec = rule.prec.map(Located::into_value);
                         let dprec = rule.dprec.map_or(0, Located::into_value);
                         let reduce_action_token_index =
@@ -1911,7 +1903,6 @@ impl Grammar {
                                 prefix,
                                 suffix,
                                 reduce_chains,
-                                lookaheads,
                                 prec,
                                 dprec,
                                 reduce_action_token_index,
@@ -2056,20 +2047,6 @@ impl Grammar {
                             token.token = Token::Term(TerminalSymbol::Term(new_class));
                         }
                     }
-                    //  - lookaheads in the rule
-                    if let Some(lookaheads) = &mut rule.lookaheads {
-                        let new_lookaheads = std::mem::take(lookaheads)
-                            .into_iter()
-                            .map(|old_class| {
-                                let new_class = old_class_to_new_class[old_class];
-                                if new_class == self.other_terminal_class_id {
-                                    other_was_used = true;
-                                }
-                                new_class
-                            })
-                            .collect();
-                        *lookaheads = new_lookaheads;
-                    }
                     new_rules.push(rule);
                 }
                 nonterm.rules = new_rules;
@@ -2530,12 +2507,6 @@ impl Grammar {
                 grammar.add_rule(
                     nonterm_id,
                     tokens,
-                    rule.lookaheads.as_ref().map(|lookaheads| {
-                        lookaheads
-                            .iter()
-                            .map(|&t| TerminalSymbol::Term(t))
-                            .collect()
-                    }),
                     rule.prec.map(Located::into_value),
                     rule.dprec.map_or(0, Located::into_value),
                 );
diff --git a/rusty_lr_parser/src/nonterminal_info.rs b/rusty_lr_parser/src/nonterminal_info.rs
index 6cad950f..2cd83e12 100644
--- a/rusty_lr_parser/src/nonterminal_info.rs
+++ b/rusty_lr_parser/src/nonterminal_info.rs
@@ -60,8 +60,6 @@ pub struct Rule {
     pub reduce_action: Option<ReduceAction>,
     /// span of '|' or ':' before this production rule
     pub separator_location: Location,
-    /// force lookahead tokens for this pattern.
-    pub lookaheads: Option<BTreeSet<usize>>,
     /// %prec definition
     pub prec: Option<Located<rusty_lr_core::rule::Precedence>>,
     /// %dprec definition
diff --git a/rusty_lr_parser/src/parser/args.rs b/rusty_lr_parser/src/parser/args.rs
index 27a1cd59..fcab2387 100644
--- a/rusty_lr_parser/src/parser/args.rs
+++ b/rusty_lr_parser/src/parser/args.rs
@@ -103,13 +103,6 @@ pub enum PatternArgs {
     /// a group delimited by '[' and ']' containing terminal set
     TerminalSet(TerminalSet),
 
-    /// force lookahead tokens for this pattern.
-    /// lookaheads will not be consumed.
-    Lookaheads {
-        pattern: Box<PatternArgs>,
-        lookaheads: Box<PatternArgs>,
-    },
-
     /// ( Pattern+ )
     /// alternatives is a list of alternatives (separated by '|'),
     /// each alternative is a list of patterns.
@@ -153,12 +146,6 @@ impl std::fmt::Display for PatternArgs {
             PatternArgs::Question { base, .. } => write!(f, "{}?", base),
             PatternArgs::Exclamation { base, .. } => write!(f, "{}", base),
             PatternArgs::TerminalSet(terminal_set) => write!(f, "{}", terminal_set),
-            PatternArgs::Lookaheads {
-                pattern,
-                lookaheads,
-            } => {
-                write!(f, "{}/{}", pattern, lookaheads)
-            }
             PatternArgs::Group { alternatives, .. } => {
                 write!(
                     f,
@@ -266,21 +253,6 @@ impl PatternArgs {
                     Ok(pattern)
                 }
             }
-            PatternArgs::Lookaheads {
-                pattern,
-                lookaheads,
-            } => {
-                let (negate, terminal_set) = lookaheads.to_terminal_set(grammar)?;
-                let pattern = Pattern {
-                    internal: PatternInternal::Lookaheads(
-                        Box::new(pattern.into_pattern(grammar, put_exclamation)?),
-                        negate,
-                        terminal_set,
-                    ),
-                    pretty_name,
-                };
-                Ok(pattern)
-            }
             PatternArgs::Group { alternatives, .. } => {
                 if alternatives.len() == 1 && alternatives[0].len() == 1 {
                     let line = alternatives.into_iter().next().unwrap();
@@ -429,9 +401,6 @@ impl PatternArgs {
             PatternArgs::Star { .. } => Err(ParseError::OnlyTerminalSet(self.location())),
             PatternArgs::Question { .. } => Err(ParseError::OnlyTerminalSet(self.location())),
             PatternArgs::Exclamation { base, .. } => base.to_terminal_set(grammar),
-            PatternArgs::Lookaheads { pattern, .. } => {
-                Err(ParseError::OnlyTerminalSet(pattern.location()))
-            }
             PatternArgs::Group { alternatives, .. } => {
                 if alternatives.len() == 1 && alternatives[0].len() == 1 {
                     alternatives[0][0].to_terminal_set(grammar)
@@ -503,10 +472,6 @@ impl PatternArgs {
                 op_location: op_span,
             } => base.location().merge(op_span),
             PatternArgs::TerminalSet(terminal_set) => terminal_set.location(),
-            PatternArgs::Lookaheads {
-                pattern,
-                lookaheads,
-            } => pattern.location().merge(&lookaheads.location()),
             PatternArgs::Group {
                 open_location: open_span,
                 close_location: close_span,
@@ -529,14 +494,6 @@ impl PatternArgs {
             PatternArgs::Question { base, .. } => base.range_resolve(grammar),
             PatternArgs::Exclamation { base, .. } => base.range_resolve(grammar),
             PatternArgs::TerminalSet(terminal_set) => terminal_set.range_resolve(grammar),
-            PatternArgs::Lookaheads {
-                pattern,
-                lookaheads,
-            } => {
-                pattern.range_resolve(grammar)?;
-                lookaheads.range_resolve(grammar)?;
-                Ok(())
-            }
             PatternArgs::Group { alternatives, .. } => {
                 for line in alternatives {
                     for pattern in line {
diff --git a/rusty_lr_parser/src/parser/lexer.rs b/rusty_lr_parser/src/parser/lexer.rs
index 76ced4e2..3c7f692e 100644
--- a/rusty_lr_parser/src/parser/lexer.rs
+++ b/rusty_lr_parser/src/parser/lexer.rs
@@ -27,7 +27,6 @@ pub enum Lexed {
     Caret(Punct),
     Minus(Punct),
     Exclamation(Punct),
-    Slash(Punct),
     Dot(Punct),
     Dollar(Punct),
     Comma(Punct),
@@ -83,7 +82,6 @@ impl Lexed {
             Lexed::Caret(punct) => stream.append(punct),
             Lexed::Minus(punct) => stream.append(punct),
             Lexed::Exclamation(punct) => stream.append(punct),
-            Lexed::Slash(punct) => stream.append(punct),
             Lexed::Dot(punct) => stream.append(punct),
             Lexed::Dollar(punct) => stream.append(punct),
             Lexed::Comma(punct) => stream.append(punct),
@@ -180,7 +178,6 @@ impl std::fmt::Display for Lexed {
             Lexed::Caret(_) => write!(f, "'^'"),
             Lexed::Minus(_) => write!(f, "'-'"),
             Lexed::Exclamation(_) => write!(f, "'!'"),
-            Lexed::Slash(_) => write!(f, "'/'"),
             Lexed::Dot(_) => write!(f, "'.'"),
             Lexed::Dollar(_) => write!(f, "'$'"),
             Lexed::Comma(_) => write!(f, "','"),
@@ -280,7 +277,6 @@ pub fn feed_recursive(
                     '-' => context.feed_location(Lexed::Minus(punct), location)?,
                     '=' => context.feed_location(Lexed::Equal(punct), location)?,
                     '!' => context.feed_location(Lexed::Exclamation(punct), location)?,
-                    '/' => context.feed_location(Lexed::Slash(punct), location)?,
                     '.' => context.feed_location(Lexed::Dot(punct), location)?,
                     '%' => context.feed_location(Lexed::Percent(punct), location)?,
                     '$' => context.feed_location(Lexed::Dollar(punct), location)?,
diff --git a/rusty_lr_parser/src/parser/parser.rs b/rusty_lr_parser/src/parser/parser.rs
index dcd1fd4e..3dfbf037 100644
--- a/rusty_lr_parser/src/parser/parser.rs
+++ b/rusty_lr_parser/src/parser/parser.rs
@@ -44,7 +44,6 @@ use rusty_lr_core::rule::ReduceType;
 %token caret Lexed::Caret(_);
 %token minus Lexed::Minus(_);
 %token exclamation Lexed::Exclamation(_);
-%token slash Lexed::Slash(_);
 %token dot Lexed::Dot(_);
 %token dollar Lexed::Dollar(_);
 %token comma Lexed::Comma(_);
@@ -270,7 +269,6 @@ TerminalSet(TerminalSet): lbracket caret? TerminalSetItem* rbracket {
 ;
 
 %left minus;
-%left slash;
 %left star plus question exclamation;
 
 Pattern(PatternArgs): ident {
@@ -297,9 +295,6 @@ Pattern(PatternArgs): ident {
 | TerminalSet {
     PatternArgs::TerminalSet( TerminalSet )
 }
-| p1=Pattern slash lh=Pattern {
-    PatternArgs::Lookaheads { pattern: Box::new(p1), lookaheads: Box::new(lh) }
-}
 | lparen $sep( Pattern*, pipe, + ) rparen {
     PatternArgs::Group { alternatives: Pattern, open_location: @lparen, close_location: @rparen }
 }
@@ -658,4 +653,4 @@ GrammarLine : Rule { data.rules.push(Rule); }
     | Directive
     ;
 
-Grammar: GrammarLine+;
\ No newline at end of file
+Grammar: GrammarLine+;
diff --git a/rusty_lr_parser/src/parser/parser_expanded.rs b/rusty_lr_parser/src/parser/parser_expanded.rs
index 8bb21b84..3f98442d 100644
--- a/rusty_lr_parser/src/parser/parser_expanded.rs
+++ b/rusty_lr_parser/src/parser/parser_expanded.rs
@@ -25,8 +25,8 @@ use std::boxed::Box;
 /*
 ====================================Grammar=====================================
 
-# of terminal classes: 44
-# of states: 173
+# of terminal classes: 43
+# of states: 171
 
 0: Rule -> ident RuleType colon RuleLines semicolon
 1: RuleType -> parengroup
@@ -58,129 +58,127 @@ use std::boxed::Box;
 27: Pattern -> Pattern question
 28: Pattern -> Pattern exclamation
 29: Pattern -> TerminalSet
-30: Pattern -> Pattern slash Pattern
-31: Pattern -> lparen $sep(Pattern*, pipe, +) rparen
-32: Pattern -> lparen error rparen
-33: Pattern -> byte_literal
-34: Pattern -> byte_str_literal
-35: Pattern -> char_literal
-36: Pattern -> str_literal
-37: Pattern -> Pattern minus Pattern
-38: Pattern -> dollar ident lparen Pattern comma Pattern comma? rparen
-39: Pattern -> dollar ident lparen Pattern comma Pattern comma plus rparen
-40: Pattern -> dollar ident lparen Pattern comma Pattern comma star rparen
-41: Pattern -> dollar ident lparen Pattern comma Pattern error rparen
-42: Pattern -> dollar ident lparen Pattern comma Pattern comma error rparen
-43: Action -> bracegroup
-44: Action ->
-45: IdentOrLiteral -> ident
-46: IdentOrLiteral -> byte_literal
-47: IdentOrLiteral -> char_literal
-48: Directive -> percent token ident [^semicolon]+ semicolon
-49: Directive -> percent token ident semicolon
-50: Directive -> percent token error semicolon
-51: Directive -> percent start ident semicolon
-52: Directive -> percent start error semicolon
-53: Directive -> percent tokentype [^semicolon]+ semicolon
-54: Directive -> percent tokentype semicolon
-55: Directive -> percent userdata [^semicolon]+ semicolon
-56: Directive -> percent userdata semicolon
-57: Directive -> percent left IdentOrLiteral+ semicolon
-58: Directive -> percent left error semicolon
-59: Directive -> percent right IdentOrLiteral+ semicolon
-60: Directive -> percent right error semicolon
-61: Directive -> percent precedence IdentOrLiteral+ semicolon
-62: Directive -> percent precedence error semicolon
-63: Directive -> percent errortype [^semicolon]+ semicolon
-64: Directive -> percent errortype semicolon
-65: Directive -> percent moduleprefix [^semicolon]+ semicolon
-66: Directive -> percent moduleprefix semicolon
-67: Directive -> percent glr semicolon
-68: Directive -> percent glr error semicolon
-69: Directive -> percent lalr semicolon
-70: Directive -> percent lalr error semicolon
-71: Directive -> percent nooptim semicolon
-72: Directive -> percent nooptim error semicolon
-73: Directive -> percent dense semicolon
-74: Directive -> percent dense error semicolon
-75: Directive -> percent location [^semicolon]+ semicolon
-76: Directive -> percent location semicolon
-77: Directive -> percent error semicolon
-78: GrammarLine -> Rule
-79: GrammarLine -> Directive
-80: Grammar -> GrammarLine+
-81: TokenMapped+ -> TokenMapped
-82: TokenMapped+ -> TokenMapped+ TokenMapped
-83: TokenMapped* -> TokenMapped+
-84: TokenMapped* ->
-85: PrecDef+ -> PrecDef
-86: PrecDef+ -> PrecDef+ PrecDef
-87: PrecDef* -> PrecDef+
-88: PrecDef* ->
-89: caret? -> caret
-90: caret? ->
-91: TerminalSetItem+ -> TerminalSetItem
-92: TerminalSetItem+ -> TerminalSetItem+ TerminalSetItem
-93: TerminalSetItem* -> TerminalSetItem+
-94: TerminalSetItem* ->
-95: Pattern+ -> Pattern
-96: Pattern+ -> Pattern+ Pattern
-97: Pattern* -> Pattern+
-98: Pattern* ->
-99: $sep(Pattern*, pipe, +) -> Pattern*
-100: $sep(Pattern*, pipe, +) -> $sep(Pattern*, pipe, +) pipe Pattern*
-101: comma? -> comma
-102: comma? ->
-103: [^semicolon] -> ident
-104: [^semicolon] -> colon
-105: [^semicolon] -> pipe
-106: [^semicolon] -> percent
-107: [^semicolon] -> equal
-108: [^semicolon] -> plus
-109: [^semicolon] -> star
-110: [^semicolon] -> question
-111: [^semicolon] -> caret
-112: [^semicolon] -> minus
-113: [^semicolon] -> exclamation
-114: [^semicolon] -> slash
-115: [^semicolon] -> dot
-116: [^semicolon] -> dollar
-117: [^semicolon] -> comma
-118: [^semicolon] -> int_literal
-119: [^semicolon] -> byte_literal
-120: [^semicolon] -> byte_str_literal
-121: [^semicolon] -> char_literal
-122: [^semicolon] -> str_literal
-123: [^semicolon] -> [other_literal, <Others>]
-124: [^semicolon] -> parengroup
-125: [^semicolon] -> bracegroup
-126: [^semicolon] -> lparen
-127: [^semicolon] -> rparen
-128: [^semicolon] -> lbracket
-129: [^semicolon] -> rbracket
-130: [^semicolon] -> left
-131: [^semicolon] -> right
-132: [^semicolon] -> token
-133: [^semicolon] -> start
-134: [^semicolon] -> tokentype
-135: [^semicolon] -> userdata
-136: [^semicolon] -> errortype
-137: [^semicolon] -> moduleprefix
-138: [^semicolon] -> lalr
-139: [^semicolon] -> glr
-140: [^semicolon] -> prec
-141: [^semicolon] -> precedence
-142: [^semicolon] -> nooptim
-143: [^semicolon] -> dense
-144: [^semicolon] -> dprec
-145: [^semicolon] -> location
-146: [^semicolon]+ -> [^semicolon]
-147: [^semicolon]+ -> [^semicolon]+ [^semicolon]
-148: IdentOrLiteral+ -> IdentOrLiteral
-149: IdentOrLiteral+ -> IdentOrLiteral+ IdentOrLiteral
-150: GrammarLine+ -> GrammarLine
-151: GrammarLine+ -> GrammarLine GrammarLine+
-152: Augmented -> Grammar eof
+30: Pattern -> lparen $sep(Pattern*, pipe, +) rparen
+31: Pattern -> lparen error rparen
+32: Pattern -> byte_literal
+33: Pattern -> byte_str_literal
+34: Pattern -> char_literal
+35: Pattern -> str_literal
+36: Pattern -> Pattern minus Pattern
+37: Pattern -> dollar ident lparen Pattern comma Pattern comma? rparen
+38: Pattern -> dollar ident lparen Pattern comma Pattern comma plus rparen
+39: Pattern -> dollar ident lparen Pattern comma Pattern comma star rparen
+40: Pattern -> dollar ident lparen Pattern comma Pattern error rparen
+41: Pattern -> dollar ident lparen Pattern comma Pattern comma error rparen
+42: Action -> bracegroup
+43: Action ->
+44: IdentOrLiteral -> ident
+45: IdentOrLiteral -> byte_literal
+46: IdentOrLiteral -> char_literal
+47: Directive -> percent token ident [^semicolon]+ semicolon
+48: Directive -> percent token ident semicolon
+49: Directive -> percent token error semicolon
+50: Directive -> percent start ident semicolon
+51: Directive -> percent start error semicolon
+52: Directive -> percent tokentype [^semicolon]+ semicolon
+53: Directive -> percent tokentype semicolon
+54: Directive -> percent userdata [^semicolon]+ semicolon
+55: Directive -> percent userdata semicolon
+56: Directive -> percent left IdentOrLiteral+ semicolon
+57: Directive -> percent left error semicolon
+58: Directive -> percent right IdentOrLiteral+ semicolon
+59: Directive -> percent right error semicolon
+60: Directive -> percent precedence IdentOrLiteral+ semicolon
+61: Directive -> percent precedence error semicolon
+62: Directive -> percent errortype [^semicolon]+ semicolon
+63: Directive -> percent errortype semicolon
+64: Directive -> percent moduleprefix [^semicolon]+ semicolon
+65: Directive -> percent moduleprefix semicolon
+66: Directive -> percent glr semicolon
+67: Directive -> percent glr error semicolon
+68: Directive -> percent lalr semicolon
+69: Directive -> percent lalr error semicolon
+70: Directive -> percent nooptim semicolon
+71: Directive -> percent nooptim error semicolon
+72: Directive -> percent dense semicolon
+73: Directive -> percent dense error semicolon
+74: Directive -> percent location [^semicolon]+ semicolon
+75: Directive -> percent location semicolon
+76: Directive -> percent error semicolon
+77: GrammarLine -> Rule
+78: GrammarLine -> Directive
+79: Grammar -> GrammarLine+
+80: TokenMapped+ -> TokenMapped
+81: TokenMapped+ -> TokenMapped+ TokenMapped
+82: TokenMapped* -> TokenMapped+
+83: TokenMapped* ->
+84: PrecDef+ -> PrecDef
+85: PrecDef+ -> PrecDef+ PrecDef
+86: PrecDef* -> PrecDef+
+87: PrecDef* ->
+88: caret? -> caret
+89: caret? ->
+90: TerminalSetItem+ -> TerminalSetItem
+91: TerminalSetItem+ -> TerminalSetItem+ TerminalSetItem
+92: TerminalSetItem* -> TerminalSetItem+
+93: TerminalSetItem* ->
+94: Pattern+ -> Pattern
+95: Pattern+ -> Pattern+ Pattern
+96: Pattern* -> Pattern+
+97: Pattern* ->
+98: $sep(Pattern*, pipe, +) -> Pattern*
+99: $sep(Pattern*, pipe, +) -> $sep(Pattern*, pipe, +) pipe Pattern*
+100: comma? -> comma
+101: comma? ->
+102: [^semicolon] -> ident
+103: [^semicolon] -> colon
+104: [^semicolon] -> pipe
+105: [^semicolon] -> percent
+106: [^semicolon] -> equal
+107: [^semicolon] -> plus
+108: [^semicolon] -> star
+109: [^semicolon] -> question
+110: [^semicolon] -> caret
+111: [^semicolon] -> minus
+112: [^semicolon] -> exclamation
+113: [^semicolon] -> dot
+114: [^semicolon] -> dollar
+115: [^semicolon] -> comma
+116: [^semicolon] -> int_literal
+117: [^semicolon] -> byte_literal
+118: [^semicolon] -> byte_str_literal
+119: [^semicolon] -> char_literal
+120: [^semicolon] -> str_literal
+121: [^semicolon] -> [other_literal, <Others>]
+122: [^semicolon] -> parengroup
+123: [^semicolon] -> bracegroup
+124: [^semicolon] -> lparen
+125: [^semicolon] -> rparen
+126: [^semicolon] -> lbracket
+127: [^semicolon] -> rbracket
+128: [^semicolon] -> left
+129: [^semicolon] -> right
+130: [^semicolon] -> token
+131: [^semicolon] -> start
+132: [^semicolon] -> tokentype
+133: [^semicolon] -> userdata
+134: [^semicolon] -> errortype
+135: [^semicolon] -> moduleprefix
+136: [^semicolon] -> lalr
+137: [^semicolon] -> glr
+138: [^semicolon] -> prec
+139: [^semicolon] -> precedence
+140: [^semicolon] -> nooptim
+141: [^semicolon] -> dense
+142: [^semicolon] -> dprec
+143: [^semicolon] -> location
+144: [^semicolon]+ -> [^semicolon]
+145: [^semicolon]+ -> [^semicolon]+ [^semicolon]
+146: IdentOrLiteral+ -> IdentOrLiteral
+147: IdentOrLiteral+ -> IdentOrLiteral+ IdentOrLiteral
+148: GrammarLine+ -> GrammarLine
+149: GrammarLine+ -> GrammarLine GrammarLine+
+150: Augmented -> Grammar eof
 
 */
 // =============================Generated Codes Begin==============================
@@ -263,7 +261,6 @@ pub enum GrammarTerminalClasses {
     question,
     exclamation,
     minus,
-    slash,
     error,
     eof,
 }
@@ -271,10 +268,10 @@ impl GrammarTerminalClasses {
     #[inline]
     pub fn from_usize(value: usize) -> Self {
         debug_assert!(
-            value < 46usize,
+            value < 45usize,
             "Terminal class index {} is out of bounds (max {})",
             value,
-            46usize
+            45usize
         );
         unsafe { ::std::mem::transmute(value) }
     }
@@ -328,7 +325,6 @@ impl ::rusty_lr_core::parser::terminalclass::TerminalClass for GrammarTerminalCl
             GrammarTerminalClasses::question => "question",
             GrammarTerminalClasses::exclamation => "exclamation",
             GrammarTerminalClasses::minus => "minus",
-            GrammarTerminalClasses::slash => "slash",
             GrammarTerminalClasses::error => "error",
             GrammarTerminalClasses::eof => "eof",
         }
@@ -339,11 +335,10 @@ impl ::rusty_lr_core::parser::terminalclass::TerminalClass for GrammarTerminalCl
     fn precedence(&self) -> ::rusty_lr_core::parser::Precedence {
         match self {
             GrammarTerminalClasses::minus => ::rusty_lr_core::parser::Precedence::new(0),
-            GrammarTerminalClasses::slash => ::rusty_lr_core::parser::Precedence::new(1),
             GrammarTerminalClasses::plus
             | GrammarTerminalClasses::star
             | GrammarTerminalClasses::question
-            | GrammarTerminalClasses::exclamation => ::rusty_lr_core::parser::Precedence::new(2),
+            | GrammarTerminalClasses::exclamation => ::rusty_lr_core::parser::Precedence::new(1),
             GrammarTerminalClasses::eof => {
                 unreachable!("eof token cannot be used in precedence levels")
             }
@@ -395,7 +390,6 @@ impl ::rusty_lr_core::parser::terminalclass::TerminalClass for GrammarTerminalCl
             Lexed::Question(_) => GrammarTerminalClasses::question,
             Lexed::Exclamation(_) => GrammarTerminalClasses::exclamation,
             Lexed::Minus(_) => GrammarTerminalClasses::minus,
-            Lexed::Slash(_) => GrammarTerminalClasses::slash,
             _ => GrammarTerminalClasses::TermClass1,
         }
     }
@@ -1986,58 +1980,9 @@ impl GrammarDataStack {
         }
         Ok(())
     }
-    ///Pattern -> Pattern slash Pattern
-    #[inline]
-    fn reduce_Pattern_6(
-        __data_stack: &mut Self,
-        __location_stack: &mut Vec<Location>,
-        __push_data: bool,
-        shift: &mut bool,
-        lookahead: &::rusty_lr_core::TerminalSymbol<Lexed>,
-        data: &mut GrammarArgs,
-        __rustylr_location0: &mut Location,
-    ) -> Result<(), ::rusty_lr_core::DefaultReduceActionError> {
-        #[cfg(debug_assertions)]
-        {
-            debug_assert!(
-                matches!(__data_stack.__stack.get(__data_stack.__stack.len() - 1 -
-                0usize), Some(& GrammarData::__variant9(_)))
-            );
-            debug_assert!(
-                matches!(__data_stack.__stack.get(__data_stack.__stack.len() - 1 -
-                1usize), Some(& GrammarData::__terminals(_)))
-            );
-            debug_assert!(
-                matches!(__data_stack.__stack.get(__data_stack.__stack.len() - 1 -
-                2usize), Some(& GrammarData::__variant9(_)))
-            );
-        }
-        __location_stack.truncate(__location_stack.len() - 3);
-        let mut lh = match __data_stack.__stack.pop().unwrap() {
-            GrammarData::__variant9(val) => val,
-            _ => unreachable!(),
-        };
-        __data_stack.__stack.pop();
-        let mut p1 = match __data_stack.__stack.pop().unwrap() {
-            GrammarData::__variant9(val) => val,
-            _ => unreachable!(),
-        };
-        let __res = {
-            PatternArgs::Lookaheads {
-                pattern: Box::new(p1),
-                lookaheads: Box::new(lh),
-            }
-        };
-        if __push_data {
-            __data_stack.__stack.push(GrammarData::__variant9(__res));
-        } else {
-            __data_stack.__stack.push(GrammarData::Empty);
-        }
-        Ok(())
-    }
     ///Pattern -> lparen $sep(Pattern*, pipe, +) rparen
     #[inline]
-    fn reduce_Pattern_7(
+    fn reduce_Pattern_6(
         __data_stack: &mut Self,
         __location_stack: &mut Vec<Location>,
         __push_data: bool,
@@ -2086,7 +2031,7 @@ impl GrammarDataStack {
     }
     ///Pattern -> lparen error rparen
     #[inline]
-    fn reduce_Pattern_8(
+    fn reduce_Pattern_7(
         __data_stack: &mut Self,
         __location_stack: &mut Vec<Location>,
         __push_data: bool,
@@ -2133,7 +2078,7 @@ impl GrammarDataStack {
     }
     ///Pattern -> byte_literal
     #[inline]
-    fn reduce_Pattern_9(
+    fn reduce_Pattern_8(
         __data_stack: &mut Self,
         __location_stack: &mut Vec<Location>,
         __push_data: bool,
@@ -2169,7 +2114,7 @@ impl GrammarDataStack {
     }
     ///Pattern -> byte_str_literal
     #[inline]
-    fn reduce_Pattern_10(
+    fn reduce_Pattern_9(
         __data_stack: &mut Self,
         __location_stack: &mut Vec<Location>,
         __push_data: bool,
@@ -2207,7 +2152,7 @@ impl GrammarDataStack {
     }
     ///Pattern -> char_literal
     #[inline]
-    fn reduce_Pattern_11(
+    fn reduce_Pattern_10(
         __data_stack: &mut Self,
         __location_stack: &mut Vec<Location>,
         __push_data: bool,
@@ -2243,7 +2188,7 @@ impl GrammarDataStack {
     }
     ///Pattern -> str_literal
     #[inline]
-    fn reduce_Pattern_12(
+    fn reduce_Pattern_11(
         __data_stack: &mut Self,
         __location_stack: &mut Vec<Location>,
         __push_data: bool,
@@ -2279,7 +2224,7 @@ impl GrammarDataStack {
     }
     ///Pattern -> Pattern minus Pattern
     #[inline]
-    fn reduce_Pattern_13(
+    fn reduce_Pattern_12(
         __data_stack: &mut Self,
         __location_stack: &mut Vec<Location>,
         __push_data: bool,
@@ -2328,7 +2273,7 @@ impl GrammarDataStack {
     }
     ///Pattern -> dollar ident lparen Pattern comma Pattern comma? rparen
     #[inline]
-    fn reduce_Pattern_14(
+    fn reduce_Pattern_13(
         __data_stack: &mut Self,
         __location_stack: &mut Vec<Location>,
         __push_data: bool,
@@ -2420,7 +2365,7 @@ impl GrammarDataStack {
     }
     ///Pattern -> dollar ident lparen Pattern comma Pattern comma plus rparen
     #[inline]
-    fn reduce_Pattern_15(
+    fn reduce_Pattern_14(
         __data_stack: &mut Self,
         __location_stack: &mut Vec<Location>,
         __push_data: bool,
@@ -2516,7 +2461,7 @@ impl GrammarDataStack {
     }
     ///Pattern -> dollar ident lparen Pattern comma Pattern comma star rparen
     #[inline]
-    fn reduce_Pattern_16(
+    fn reduce_Pattern_15(
         __data_stack: &mut Self,
         __location_stack: &mut Vec<Location>,
         __push_data: bool,
@@ -2612,7 +2557,7 @@ impl GrammarDataStack {
     }
     ///Pattern -> dollar ident lparen Pattern comma Pattern error rparen
     #[inline]
-    fn reduce_Pattern_17(
+    fn reduce_Pattern_16(
         __data_stack: &mut Self,
         __location_stack: &mut Vec<Location>,
         __push_data: bool,
@@ -2713,7 +2658,7 @@ impl GrammarDataStack {
     }
     ///Pattern -> dollar ident lparen Pattern comma Pattern comma error rparen
     #[inline]
-    fn reduce_Pattern_18(
+    fn reduce_Pattern_17(
         __data_stack: &mut Self,
         __location_stack: &mut Vec<Location>,
         __push_data: bool,
@@ -5776,17 +5721,6 @@ impl ::rusty_lr_core::parser::data_stack::DataStack for GrammarDataStack {
                 )
             }
             42usize => {
-                Self::reduce_Pattern_18(
-                    data_stack,
-                    location_stack,
-                    push_data,
-                    shift,
-                    lookahead,
-                    user_data,
-                    location0,
-                )
-            }
-            43usize => {
                 Self::reduce_Action_0(
                     data_stack,
                     location_stack,
@@ -5797,7 +5731,7 @@ impl ::rusty_lr_core::parser::data_stack::DataStack for GrammarDataStack {
                     location0,
                 )
             }
-            44usize => {
+            43usize => {
                 Self::reduce_Action_1(
                     data_stack,
                     location_stack,
@@ -5808,7 +5742,7 @@ impl ::rusty_lr_core::parser::data_stack::DataStack for GrammarDataStack {
                     location0,
                 )
             }
-            45usize => {
+            44usize => {
                 Self::reduce_IdentOrLiteral_0(
                     data_stack,
                     location_stack,
@@ -5819,7 +5753,7 @@ impl ::rusty_lr_core::parser::data_stack::DataStack for GrammarDataStack {
                     location0,
                 )
             }
-            46usize => {
+            45usize => {
                 Self::reduce_IdentOrLiteral_1(
                     data_stack,
                     location_stack,
@@ -5830,7 +5764,7 @@ impl ::rusty_lr_core::parser::data_stack::DataStack for GrammarDataStack {
                     location0,
                 )
             }
-            47usize => {
+            46usize => {
                 Self::reduce_IdentOrLiteral_2(
                     data_stack,
                     location_stack,
@@ -5841,7 +5775,7 @@ impl ::rusty_lr_core::parser::data_stack::DataStack for GrammarDataStack {
                     location0,
                 )
             }
-            48usize => {
+            47usize => {
                 Self::reduce_Directive_0(
                     data_stack,
                     location_stack,
@@ -5852,7 +5786,7 @@ impl ::rusty_lr_core::parser::data_stack::DataStack for GrammarDataStack {
                     location0,
                 )
             }
-            49usize => {
+            48usize => {
                 Self::reduce_Directive_1(
                     data_stack,
                     location_stack,
@@ -5863,7 +5797,7 @@ impl ::rusty_lr_core::parser::data_stack::DataStack for GrammarDataStack {
                     location0,
                 )
             }
-            50usize => {
+            49usize => {
                 Self::reduce_Directive_2(
                     data_stack,
                     location_stack,
@@ -5874,7 +5808,7 @@ impl ::rusty_lr_core::parser::data_stack::DataStack for GrammarDataStack {
                     location0,
                 )
             }
-            51usize => {
+            50usize => {
                 Self::reduce_Directive_3(
                     data_stack,
                     location_stack,
@@ -5885,7 +5819,7 @@ impl ::rusty_lr_core::parser::data_stack::DataStack for GrammarDataStack {
                     location0,
                 )
             }
-            52usize => {
+            51usize => {
                 Self::reduce_Directive_4(
                     data_stack,
                     location_stack,
@@ -5896,7 +5830,7 @@ impl ::rusty_lr_core::parser::data_stack::DataStack for GrammarDataStack {
                     location0,
                 )
             }
-            53usize => {
+            52usize => {
                 Self::reduce_Directive_5(
                     data_stack,
                     location_stack,
@@ -5907,7 +5841,7 @@ impl ::rusty_lr_core::parser::data_stack::DataStack for GrammarDataStack {
                     location0,
                 )
             }
-            54usize => {
+            53usize => {
                 Self::reduce_Directive_6(
                     data_stack,
                     location_stack,
@@ -5918,7 +5852,7 @@ impl ::rusty_lr_core::parser::data_stack::DataStack for GrammarDataStack {
                     location0,
                 )
             }
-            55usize => {
+            54usize => {
                 Self::reduce_Directive_7(
                     data_stack,
                     location_stack,
@@ -5929,7 +5863,7 @@ impl ::rusty_lr_core::parser::data_stack::DataStack for GrammarDataStack {
                     location0,
                 )
             }
-            56usize => {
+            55usize => {
                 Self::reduce_Directive_8(
                     data_stack,
                     location_stack,
@@ -5940,7 +5874,7 @@ impl ::rusty_lr_core::parser::data_stack::DataStack for GrammarDataStack {
                     location0,
                 )
             }
-            57usize => {
+            56usize => {
                 Self::reduce_Directive_9(
                     data_stack,
                     location_stack,
@@ -5951,7 +5885,7 @@ impl ::rusty_lr_core::parser::data_stack::DataStack for GrammarDataStack {
                     location0,
                 )
             }
-            58usize => {
+            57usize => {
                 Self::reduce_Directive_10(
                     data_stack,
                     location_stack,
@@ -5962,7 +5896,7 @@ impl ::rusty_lr_core::parser::data_stack::DataStack for GrammarDataStack {
                     location0,
                 )
             }
-            59usize => {
+            58usize => {
                 Self::reduce_Directive_11(
                     data_stack,
                     location_stack,
@@ -5973,7 +5907,7 @@ impl ::rusty_lr_core::parser::data_stack::DataStack for GrammarDataStack {
                     location0,
                 )
             }
-            60usize => {
+            59usize => {
                 Self::reduce_Directive_12(
                     data_stack,
                     location_stack,
@@ -5984,7 +5918,7 @@ impl ::rusty_lr_core::parser::data_stack::DataStack for GrammarDataStack {
                     location0,
                 )
             }
-            61usize => {
+            60usize => {
                 Self::reduce_Directive_13(
                     data_stack,
                     location_stack,
@@ -5995,7 +5929,7 @@ impl ::rusty_lr_core::parser::data_stack::DataStack for GrammarDataStack {
                     location0,
                 )
             }
-            62usize => {
+            61usize => {
                 Self::reduce_Directive_14(
                     data_stack,
                     location_stack,
@@ -6006,7 +5940,7 @@ impl ::rusty_lr_core::parser::data_stack::DataStack for GrammarDataStack {
                     location0,
                 )
             }
-            63usize => {
+            62usize => {
                 Self::reduce_Directive_15(
                     data_stack,
                     location_stack,
@@ -6017,7 +5951,7 @@ impl ::rusty_lr_core::parser::data_stack::DataStack for GrammarDataStack {
                     location0,
                 )
             }
-            64usize => {
+            63usize => {
                 Self::reduce_Directive_16(
                     data_stack,
                     location_stack,
@@ -6028,7 +5962,7 @@ impl ::rusty_lr_core::parser::data_stack::DataStack for GrammarDataStack {
                     location0,
                 )
             }
-            65usize => {
+            64usize => {
                 Self::reduce_Directive_17(
                     data_stack,
                     location_stack,
@@ -6039,7 +5973,7 @@ impl ::rusty_lr_core::parser::data_stack::DataStack for GrammarDataStack {
                     location0,
                 )
             }
-            66usize => {
+            65usize => {
                 Self::reduce_Directive_18(
                     data_stack,
                     location_stack,
@@ -6050,7 +5984,7 @@ impl ::rusty_lr_core::parser::data_stack::DataStack for GrammarDataStack {
                     location0,
                 )
             }
-            67usize => {
+            66usize => {
                 Self::reduce_Directive_19(
                     data_stack,
                     location_stack,
@@ -6061,7 +5995,7 @@ impl ::rusty_lr_core::parser::data_stack::DataStack for GrammarDataStack {
                     location0,
                 )
             }
-            68usize => {
+            67usize => {
                 Self::reduce_Directive_20(
                     data_stack,
                     location_stack,
@@ -6072,7 +6006,7 @@ impl ::rusty_lr_core::parser::data_stack::DataStack for GrammarDataStack {
                     location0,
                 )
             }
-            69usize => {
+            68usize => {
                 Self::reduce_Directive_21(
                     data_stack,
                     location_stack,
@@ -6083,7 +6017,7 @@ impl ::rusty_lr_core::parser::data_stack::DataStack for GrammarDataStack {
                     location0,
                 )
             }
-            70usize => {
+            69usize => {
                 Self::reduce_Directive_22(
                     data_stack,
                     location_stack,
@@ -6094,7 +6028,7 @@ impl ::rusty_lr_core::parser::data_stack::DataStack for GrammarDataStack {
                     location0,
                 )
             }
-            71usize => {
+            70usize => {
                 Self::reduce_Directive_23(
                     data_stack,
                     location_stack,
@@ -6105,7 +6039,7 @@ impl ::rusty_lr_core::parser::data_stack::DataStack for GrammarDataStack {
                     location0,
                 )
             }
-            72usize => {
+            71usize => {
                 Self::reduce_Directive_24(
                     data_stack,
                     location_stack,
@@ -6116,7 +6050,7 @@ impl ::rusty_lr_core::parser::data_stack::DataStack for GrammarDataStack {
                     location0,
                 )
             }
-            73usize => {
+            72usize => {
                 Self::reduce_Directive_25(
                     data_stack,
                     location_stack,
@@ -6127,7 +6061,7 @@ impl ::rusty_lr_core::parser::data_stack::DataStack for GrammarDataStack {
                     location0,
                 )
             }
-            74usize => {
+            73usize => {
                 Self::reduce_Directive_26(
                     data_stack,
                     location_stack,
@@ -6138,7 +6072,7 @@ impl ::rusty_lr_core::parser::data_stack::DataStack for GrammarDataStack {
                     location0,
                 )
             }
-            75usize => {
+            74usize => {
                 Self::reduce_Directive_27(
                     data_stack,
                     location_stack,
@@ -6149,7 +6083,7 @@ impl ::rusty_lr_core::parser::data_stack::DataStack for GrammarDataStack {
                     location0,
                 )
             }
-            76usize => {
+            75usize => {
                 Self::reduce_Directive_28(
                     data_stack,
                     location_stack,
@@ -6160,7 +6094,7 @@ impl ::rusty_lr_core::parser::data_stack::DataStack for GrammarDataStack {
                     location0,
                 )
             }
-            77usize => {
+            76usize => {
                 Self::reduce_Directive_29(
                     data_stack,
                     location_stack,
@@ -6171,7 +6105,7 @@ impl ::rusty_lr_core::parser::data_stack::DataStack for GrammarDataStack {
                     location0,
                 )
             }
-            78usize => {
+            77usize => {
                 Self::reduce_GrammarLine_0(
                     data_stack,
                     location_stack,
@@ -6182,7 +6116,7 @@ impl ::rusty_lr_core::parser::data_stack::DataStack for GrammarDataStack {
                     location0,
                 )
             }
-            81usize => {
+            80usize => {
                 Self::reduce__TokenMappedPlus15_0(
                     data_stack,
                     location_stack,
@@ -6193,7 +6127,7 @@ impl ::rusty_lr_core::parser::data_stack::DataStack for GrammarDataStack {
                     location0,
                 )
             }
-            82usize => {
+            81usize => {
                 Self::reduce__TokenMappedPlus15_1(
                     data_stack,
                     location_stack,
@@ -6204,7 +6138,7 @@ impl ::rusty_lr_core::parser::data_stack::DataStack for GrammarDataStack {
                     location0,
                 )
             }
-            83usize => {
+            82usize => {
                 Self::reduce__TokenMappedStar16_0(
                     data_stack,
                     location_stack,
@@ -6215,7 +6149,7 @@ impl ::rusty_lr_core::parser::data_stack::DataStack for GrammarDataStack {
                     location0,
                 )
             }
-            84usize => {
+            83usize => {
                 Self::reduce__TokenMappedStar16_1(
                     data_stack,
                     location_stack,
@@ -6226,7 +6160,7 @@ impl ::rusty_lr_core::parser::data_stack::DataStack for GrammarDataStack {
                     location0,
                 )
             }
-            85usize => {
+            84usize => {
                 Self::reduce__PrecDefPlus17_0(
                     data_stack,
                     location_stack,
@@ -6237,7 +6171,7 @@ impl ::rusty_lr_core::parser::data_stack::DataStack for GrammarDataStack {
                     location0,
                 )
             }
-            86usize => {
+            85usize => {
                 Self::reduce__PrecDefPlus17_1(
                     data_stack,
                     location_stack,
@@ -6248,7 +6182,7 @@ impl ::rusty_lr_core::parser::data_stack::DataStack for GrammarDataStack {
                     location0,
                 )
             }
-            87usize => {
+            86usize => {
                 Self::reduce__PrecDefStar18_0(
                     data_stack,
                     location_stack,
@@ -6259,7 +6193,7 @@ impl ::rusty_lr_core::parser::data_stack::DataStack for GrammarDataStack {
                     location0,
                 )
             }
-            88usize => {
+            87usize => {
                 Self::reduce__PrecDefStar18_1(
                     data_stack,
                     location_stack,
@@ -6270,7 +6204,7 @@ impl ::rusty_lr_core::parser::data_stack::DataStack for GrammarDataStack {
                     location0,
                 )
             }
-            89usize => {
+            88usize => {
                 Self::reduce__caretQuestion19_0(
                     data_stack,
                     location_stack,
@@ -6281,7 +6215,7 @@ impl ::rusty_lr_core::parser::data_stack::DataStack for GrammarDataStack {
                     location0,
                 )
             }
-            90usize => {
+            89usize => {
                 Self::reduce__caretQuestion19_1(
                     data_stack,
                     location_stack,
@@ -6292,7 +6226,7 @@ impl ::rusty_lr_core::parser::data_stack::DataStack for GrammarDataStack {
                     location0,
                 )
             }
-            91usize => {
+            90usize => {
                 Self::reduce__TerminalSetItemPlus20_0(
                     data_stack,
                     location_stack,
@@ -6303,7 +6237,7 @@ impl ::rusty_lr_core::parser::data_stack::DataStack for GrammarDataStack {
                     location0,
                 )
             }
-            92usize => {
+            91usize => {
                 Self::reduce__TerminalSetItemPlus20_1(
                     data_stack,
                     location_stack,
@@ -6314,7 +6248,7 @@ impl ::rusty_lr_core::parser::data_stack::DataStack for GrammarDataStack {
                     location0,
                 )
             }
-            93usize => {
+            92usize => {
                 Self::reduce__TerminalSetItemStar21_0(
                     data_stack,
                     location_stack,
@@ -6325,7 +6259,7 @@ impl ::rusty_lr_core::parser::data_stack::DataStack for GrammarDataStack {
                     location0,
                 )
             }
-            94usize => {
+            93usize => {
                 Self::reduce__TerminalSetItemStar21_1(
                     data_stack,
                     location_stack,
@@ -6336,7 +6270,7 @@ impl ::rusty_lr_core::parser::data_stack::DataStack for GrammarDataStack {
                     location0,
                 )
             }
-            95usize => {
+            94usize => {
                 Self::reduce__PatternPlus22_0(
                     data_stack,
                     location_stack,
@@ -6347,7 +6281,7 @@ impl ::rusty_lr_core::parser::data_stack::DataStack for GrammarDataStack {
                     location0,
                 )
             }
-            96usize => {
+            95usize => {
                 Self::reduce__PatternPlus22_1(
                     data_stack,
                     location_stack,
@@ -6358,7 +6292,7 @@ impl ::rusty_lr_core::parser::data_stack::DataStack for GrammarDataStack {
                     location0,
                 )
             }
-            97usize => {
+            96usize => {
                 Self::reduce__PatternStar23_0(
                     data_stack,
                     location_stack,
@@ -6369,7 +6303,7 @@ impl ::rusty_lr_core::parser::data_stack::DataStack for GrammarDataStack {
                     location0,
                 )
             }
-            98usize => {
+            97usize => {
                 Self::reduce__PatternStar23_1(
                     data_stack,
                     location_stack,
@@ -6380,7 +6314,7 @@ impl ::rusty_lr_core::parser::data_stack::DataStack for GrammarDataStack {
                     location0,
                 )
             }
-            99usize => {
+            98usize => {
                 Self::reduce___PatternStar23SepPlus24_0(
                     data_stack,
                     location_stack,
@@ -6391,7 +6325,7 @@ impl ::rusty_lr_core::parser::data_stack::DataStack for GrammarDataStack {
                     location0,
                 )
             }
-            100usize => {
+            99usize => {
                 Self::reduce___PatternStar23SepPlus24_1(
                     data_stack,
                     location_stack,
@@ -6402,7 +6336,7 @@ impl ::rusty_lr_core::parser::data_stack::DataStack for GrammarDataStack {
                     location0,
                 )
             }
-            101usize => {
+            100usize => {
                 Self::reduce__commaQuestion25_0(
                     data_stack,
                     location_stack,
@@ -6413,7 +6347,7 @@ impl ::rusty_lr_core::parser::data_stack::DataStack for GrammarDataStack {
                     location0,
                 )
             }
-            102usize => {
+            101usize => {
                 Self::reduce__commaQuestion25_1(
                     data_stack,
                     location_stack,
@@ -6424,7 +6358,7 @@ impl ::rusty_lr_core::parser::data_stack::DataStack for GrammarDataStack {
                     location0,
                 )
             }
-            146usize => {
+            144usize => {
                 Self::reduce___TermSet26Plus27_0(
                     data_stack,
                     location_stack,
@@ -6435,7 +6369,7 @@ impl ::rusty_lr_core::parser::data_stack::DataStack for GrammarDataStack {
                     location0,
                 )
             }
-            147usize => {
+            145usize => {
                 Self::reduce___TermSet26Plus27_1(
                     data_stack,
                     location_stack,
@@ -6446,7 +6380,7 @@ impl ::rusty_lr_core::parser::data_stack::DataStack for GrammarDataStack {
                     location0,
                 )
             }
-            148usize => {
+            146usize => {
                 Self::reduce__IdentOrLiteralPlus28_0(
                     data_stack,
                     location_stack,
@@ -6457,7 +6391,7 @@ impl ::rusty_lr_core::parser::data_stack::DataStack for GrammarDataStack {
                     location0,
                 )
             }
-            149usize => {
+            147usize => {
                 Self::reduce__IdentOrLiteralPlus28_1(
                     data_stack,
                     location_stack,
@@ -6468,7 +6402,7 @@ impl ::rusty_lr_core::parser::data_stack::DataStack for GrammarDataStack {
                     location0,
                 )
             }
-            150usize => {
+            148usize => {
                 Self::reduce__GrammarLinePlus29_0(
                     data_stack,
                     location_stack,
@@ -6479,7 +6413,7 @@ impl ::rusty_lr_core::parser::data_stack::DataStack for GrammarDataStack {
                     location0,
                 )
             }
-            151usize => {
+            149usize => {
                 Self::reduce__GrammarLinePlus29_1(
                     data_stack,
                     location_stack,
@@ -6521,7 +6455,7 @@ impl ::rusty_lr_core::parser::Parser for GrammarParser {
     fn precedence_types(level: u8) -> Option<::rusty_lr_core::rule::ReduceType> {
         #[allow(unreachable_patterns)]
         match level {
-            0..=2 => Some(::rusty_lr_core::rule::ReduceType::Left),
+            0..=1 => Some(::rusty_lr_core::rule::ReduceType::Left),
             _ => None,
         }
     }
@@ -6533,24 +6467,24 @@ impl ::rusty_lr_core::parser::Parser for GrammarParser {
                     0u32, 1u32, 1u32, 2u32, 2u32, 3u32, 4u32, 4u32, 4u32, 4u32, 4u32,
                     5u32, 5u32, 6u32, 6u32, 6u32, 6u32, 6u32, 6u32, 6u32, 6u32, 6u32,
                     7u32, 7u32, 8u32, 8u32, 8u32, 8u32, 8u32, 8u32, 8u32, 8u32, 8u32,
-                    8u32, 8u32, 8u32, 8u32, 8u32, 8u32, 8u32, 8u32, 8u32, 8u32, 9u32,
-                    9u32, 10u32, 10u32, 10u32, 11u32, 11u32, 11u32, 11u32, 11u32, 11u32,
+                    8u32, 8u32, 8u32, 8u32, 8u32, 8u32, 8u32, 8u32, 8u32, 9u32, 9u32,
+                    10u32, 10u32, 10u32, 11u32, 11u32, 11u32, 11u32, 11u32, 11u32, 11u32,
                     11u32, 11u32, 11u32, 11u32, 11u32, 11u32, 11u32, 11u32, 11u32, 11u32,
                     11u32, 11u32, 11u32, 11u32, 11u32, 11u32, 11u32, 11u32, 11u32, 11u32,
-                    11u32, 11u32, 11u32, 11u32, 12u32, 12u32, 13u32, 14u32, 14u32, 15u32,
-                    15u32, 16u32, 16u32, 17u32, 17u32, 18u32, 18u32, 19u32, 19u32, 20u32,
-                    20u32, 21u32, 21u32, 22u32, 22u32, 23u32, 23u32, 24u32, 24u32, 25u32,
+                    11u32, 11u32, 11u32, 12u32, 12u32, 13u32, 14u32, 14u32, 15u32, 15u32,
+                    16u32, 16u32, 17u32, 17u32, 18u32, 18u32, 19u32, 19u32, 20u32, 20u32,
+                    21u32, 21u32, 22u32, 22u32, 23u32, 23u32, 24u32, 24u32, 25u32, 25u32,
                     25u32, 25u32, 25u32, 25u32, 25u32, 25u32, 25u32, 25u32, 25u32, 25u32,
                     25u32, 25u32, 25u32, 25u32, 25u32, 25u32, 25u32, 25u32, 25u32, 25u32,
                     25u32, 25u32, 25u32, 25u32, 25u32, 25u32, 25u32, 25u32, 25u32, 25u32,
                     25u32, 25u32, 25u32, 25u32, 25u32, 25u32, 25u32, 25u32, 25u32, 25u32,
-                    25u32, 25u32, 26u32, 26u32, 27u32, 27u32, 28u32, 28u32, 29u32,
+                    26u32, 26u32, 27u32, 27u32, 28u32, 28u32, 29u32,
                 ];
                 static RULE_PRECEDENCES: &[u32] = &[
                     0u32, 0u32, 0u32, 0u32, 0u32, 0u32, 0u32, 0u32, 0u32, 0u32, 0u32,
                     0u32, 0u32, 0u32, 1u32, 1u32, 0u32, 1u32, 1u32, 0u32, 1u32, 1u32,
-                    0u32, 0u32, 0u32, 9u32, 9u32, 9u32, 9u32, 0u32, 5u32, 0u32, 0u32,
-                    0u32, 0u32, 0u32, 0u32, 1u32, 0u32, 9u32, 9u32, 0u32, 0u32, 0u32,
+                    0u32, 0u32, 0u32, 5u32, 5u32, 5u32, 5u32, 0u32, 0u32, 0u32, 0u32,
+                    0u32, 0u32, 0u32, 1u32, 0u32, 5u32, 5u32, 0u32, 0u32, 0u32, 0u32,
                     0u32, 0u32, 0u32, 0u32, 0u32, 0u32, 0u32, 0u32, 0u32, 0u32, 0u32,
                     0u32, 0u32, 0u32, 0u32, 0u32, 0u32, 0u32, 0u32, 0u32, 0u32, 0u32,
                     0u32, 0u32, 0u32, 0u32, 0u32, 0u32, 0u32, 0u32, 0u32, 0u32, 0u32,
@@ -6560,64 +6494,63 @@ impl ::rusty_lr_core::parser::Parser for GrammarParser {
                     0u32, 0u32, 0u32, 0u32, 0u32, 0u32, 0u32, 0u32, 0u32, 0u32, 0u32,
                     0u32, 0u32, 0u32, 0u32, 0u32, 0u32, 0u32, 0u32, 0u32, 0u32, 0u32,
                     0u32, 0u32, 0u32, 0u32, 0u32, 0u32, 0u32, 0u32, 0u32, 0u32, 0u32,
-                    0u32, 0u32, 0u32, 0u32, 0u32, 0u32, 0u32, 0u32, 0u32, 0u32,
+                    0u32, 0u32, 0u32, 0u32, 0u32, 0u32, 0u32, 0u32,
                 ];
                 static RULE_TOKENS_DATA: &[u32] = &[
                     0u32, 3u32, 4u32, 5u32, 74u32, 30u32, 5u32, 6u32, 7u32, 7u32, 31u32,
-                    35u32, 19u32, 8u32, 62u32, 21u32, 8u32, 62u32, 88u32, 8u32, 70u32,
-                    20u32, 8u32, 70u32, 88u32, 8u32, 88u32, 17u32, 0u32, 10u32, 17u32,
-                    0u32, 0u32, 84u32, 0u32, 0u32, 84u32, 88u32, 26u32, 26u32, 84u32,
-                    26u32, 26u32, 84u32, 88u32, 22u32, 22u32, 84u32, 22u32, 22u32, 84u32,
-                    88u32, 38u32, 37u32, 41u32, 40u32, 14u32, 0u32, 17u32, 76u32, 17u32,
-                    78u32, 17u32, 80u32, 17u32, 82u32, 15u32, 17u32, 86u32, 17u32, 34u32,
-                    47u32, 36u32, 34u32, 88u32, 36u32, 22u32, 24u32, 26u32, 28u32, 17u32,
-                    84u32, 17u32, 16u32, 0u32, 34u32, 17u32, 18u32, 17u32, 49u32, 36u32,
-                    16u32, 0u32, 34u32, 17u32, 18u32, 17u32, 18u32, 76u32, 36u32, 16u32,
-                    0u32, 34u32, 17u32, 18u32, 17u32, 18u32, 78u32, 36u32, 16u32, 0u32,
-                    34u32, 17u32, 18u32, 17u32, 88u32, 36u32, 16u32, 0u32, 34u32, 17u32,
-                    18u32, 17u32, 18u32, 88u32, 36u32, 32u32, 0u32, 22u32, 26u32, 8u32,
-                    46u32, 0u32, 53u32, 74u32, 8u32, 46u32, 0u32, 74u32, 8u32, 46u32,
-                    88u32, 74u32, 8u32, 48u32, 0u32, 74u32, 8u32, 48u32, 88u32, 74u32,
-                    8u32, 50u32, 53u32, 74u32, 8u32, 50u32, 74u32, 8u32, 52u32, 53u32,
-                    74u32, 8u32, 52u32, 74u32, 8u32, 42u32, 55u32, 74u32, 8u32, 42u32,
-                    88u32, 74u32, 8u32, 44u32, 55u32, 74u32, 8u32, 44u32, 88u32, 74u32,
-                    8u32, 64u32, 55u32, 74u32, 8u32, 64u32, 88u32, 74u32, 8u32, 54u32,
-                    53u32, 74u32, 8u32, 54u32, 74u32, 8u32, 56u32, 53u32, 74u32, 8u32,
-                    56u32, 74u32, 8u32, 60u32, 74u32, 8u32, 60u32, 88u32, 74u32, 8u32,
-                    58u32, 74u32, 8u32, 58u32, 88u32, 74u32, 8u32, 66u32, 74u32, 8u32,
-                    66u32, 88u32, 74u32, 8u32, 68u32, 74u32, 8u32, 68u32, 88u32, 74u32,
-                    8u32, 72u32, 53u32, 74u32, 8u32, 72u32, 74u32, 8u32, 88u32, 74u32,
-                    1u32, 23u32, 57u32, 11u32, 29u32, 11u32, 29u32, 9u32, 33u32, 9u32,
-                    33u32, 12u32, 13u32, 39u32, 13u32, 39u32, 17u32, 43u32, 17u32, 43u32,
-                    45u32, 47u32, 6u32, 45u32, 18u32, 0u32, 4u32, 6u32, 8u32, 10u32,
-                    76u32, 78u32, 80u32, 12u32, 84u32, 82u32, 86u32, 14u32, 16u32, 18u32,
-                    20u32, 22u32, 24u32, 26u32, 28u32, 2u32, 30u32, 32u32, 34u32, 36u32,
-                    38u32, 40u32, 42u32, 44u32, 46u32, 48u32, 50u32, 52u32, 54u32, 56u32,
-                    58u32, 60u32, 62u32, 64u32, 66u32, 68u32, 70u32, 72u32, 51u32, 53u32,
-                    51u32, 21u32, 55u32, 21u32, 25u32, 25u32, 57u32, 27u32, 90u32,
+                    35u32, 19u32, 8u32, 62u32, 21u32, 8u32, 62u32, 86u32, 8u32, 70u32,
+                    20u32, 8u32, 70u32, 86u32, 8u32, 86u32, 17u32, 0u32, 10u32, 17u32,
+                    0u32, 0u32, 84u32, 0u32, 0u32, 84u32, 86u32, 26u32, 26u32, 84u32,
+                    26u32, 26u32, 84u32, 86u32, 22u32, 22u32, 84u32, 22u32, 22u32, 84u32,
+                    86u32, 38u32, 37u32, 41u32, 40u32, 14u32, 0u32, 17u32, 76u32, 17u32,
+                    78u32, 17u32, 80u32, 17u32, 82u32, 15u32, 34u32, 47u32, 36u32, 34u32,
+                    86u32, 36u32, 22u32, 24u32, 26u32, 28u32, 17u32, 84u32, 17u32, 16u32,
+                    0u32, 34u32, 17u32, 18u32, 17u32, 49u32, 36u32, 16u32, 0u32, 34u32,
+                    17u32, 18u32, 17u32, 18u32, 76u32, 36u32, 16u32, 0u32, 34u32, 17u32,
+                    18u32, 17u32, 18u32, 78u32, 36u32, 16u32, 0u32, 34u32, 17u32, 18u32,
+                    17u32, 86u32, 36u32, 16u32, 0u32, 34u32, 17u32, 18u32, 17u32, 18u32,
+                    86u32, 36u32, 32u32, 0u32, 22u32, 26u32, 8u32, 46u32, 0u32, 53u32,
+                    74u32, 8u32, 46u32, 0u32, 74u32, 8u32, 46u32, 86u32, 74u32, 8u32,
+                    48u32, 0u32, 74u32, 8u32, 48u32, 86u32, 74u32, 8u32, 50u32, 53u32,
+                    74u32, 8u32, 50u32, 74u32, 8u32, 52u32, 53u32, 74u32, 8u32, 52u32,
+                    74u32, 8u32, 42u32, 55u32, 74u32, 8u32, 42u32, 86u32, 74u32, 8u32,
+                    44u32, 55u32, 74u32, 8u32, 44u32, 86u32, 74u32, 8u32, 64u32, 55u32,
+                    74u32, 8u32, 64u32, 86u32, 74u32, 8u32, 54u32, 53u32, 74u32, 8u32,
+                    54u32, 74u32, 8u32, 56u32, 53u32, 74u32, 8u32, 56u32, 74u32, 8u32,
+                    60u32, 74u32, 8u32, 60u32, 86u32, 74u32, 8u32, 58u32, 74u32, 8u32,
+                    58u32, 86u32, 74u32, 8u32, 66u32, 74u32, 8u32, 66u32, 86u32, 74u32,
+                    8u32, 68u32, 74u32, 8u32, 68u32, 86u32, 74u32, 8u32, 72u32, 53u32,
+                    74u32, 8u32, 72u32, 74u32, 8u32, 86u32, 74u32, 1u32, 23u32, 57u32,
+                    11u32, 29u32, 11u32, 29u32, 9u32, 33u32, 9u32, 33u32, 12u32, 13u32,
+                    39u32, 13u32, 39u32, 17u32, 43u32, 17u32, 43u32, 45u32, 47u32, 6u32,
+                    45u32, 18u32, 0u32, 4u32, 6u32, 8u32, 10u32, 76u32, 78u32, 80u32,
+                    12u32, 84u32, 82u32, 14u32, 16u32, 18u32, 20u32, 22u32, 24u32, 26u32,
+                    28u32, 2u32, 30u32, 32u32, 34u32, 36u32, 38u32, 40u32, 42u32, 44u32,
+                    46u32, 48u32, 50u32, 52u32, 54u32, 56u32, 58u32, 60u32, 62u32, 64u32,
+                    66u32, 68u32, 70u32, 72u32, 51u32, 53u32, 51u32, 21u32, 55u32, 21u32,
+                    25u32, 25u32, 57u32, 27u32, 88u32,
                 ];
                 static RULE_TOKENS_OFFSETS: &[u32] = &[
                     0u32, 5u32, 6u32, 6u32, 9u32, 10u32, 13u32, 16u32, 19u32, 22u32,
                     25u32, 27u32, 28u32, 31u32, 32u32, 35u32, 38u32, 39u32, 42u32, 45u32,
                     46u32, 49u32, 52u32, 56u32, 57u32, 58u32, 60u32, 62u32, 64u32, 66u32,
-                    67u32, 70u32, 73u32, 76u32, 77u32, 78u32, 79u32, 80u32, 83u32, 91u32,
-                    100u32, 109u32, 117u32, 126u32, 127u32, 127u32, 128u32, 129u32,
-                    130u32, 135u32, 139u32, 143u32, 147u32, 151u32, 155u32, 158u32,
-                    162u32, 165u32, 169u32, 173u32, 177u32, 181u32, 185u32, 189u32,
-                    193u32, 196u32, 200u32, 203u32, 206u32, 210u32, 213u32, 217u32,
-                    220u32, 224u32, 227u32, 231u32, 235u32, 238u32, 241u32, 242u32,
-                    243u32, 244u32, 245u32, 247u32, 248u32, 248u32, 249u32, 251u32,
-                    252u32, 252u32, 253u32, 253u32, 254u32, 256u32, 257u32, 257u32,
-                    258u32, 260u32, 261u32, 261u32, 262u32, 265u32, 266u32, 266u32,
-                    267u32, 268u32, 269u32, 270u32, 271u32, 272u32, 273u32, 274u32,
-                    275u32, 276u32, 277u32, 278u32, 279u32, 280u32, 281u32, 282u32,
-                    283u32, 284u32, 285u32, 286u32, 287u32, 288u32, 289u32, 290u32,
-                    291u32, 292u32, 293u32, 294u32, 295u32, 296u32, 297u32, 298u32,
-                    299u32, 300u32, 301u32, 302u32, 303u32, 304u32, 305u32, 306u32,
-                    307u32, 308u32, 309u32, 310u32, 312u32, 313u32, 315u32, 316u32,
-                    318u32, 320u32,
+                    67u32, 70u32, 73u32, 74u32, 75u32, 76u32, 77u32, 80u32, 88u32, 97u32,
+                    106u32, 114u32, 123u32, 124u32, 124u32, 125u32, 126u32, 127u32,
+                    132u32, 136u32, 140u32, 144u32, 148u32, 152u32, 155u32, 159u32,
+                    162u32, 166u32, 170u32, 174u32, 178u32, 182u32, 186u32, 190u32,
+                    193u32, 197u32, 200u32, 203u32, 207u32, 210u32, 214u32, 217u32,
+                    221u32, 224u32, 228u32, 232u32, 235u32, 238u32, 239u32, 240u32,
+                    241u32, 242u32, 244u32, 245u32, 245u32, 246u32, 248u32, 249u32,
+                    249u32, 250u32, 250u32, 251u32, 253u32, 254u32, 254u32, 255u32,
+                    257u32, 258u32, 258u32, 259u32, 262u32, 263u32, 263u32, 264u32,
+                    265u32, 266u32, 267u32, 268u32, 269u32, 270u32, 271u32, 272u32,
+                    273u32, 274u32, 275u32, 276u32, 277u32, 278u32, 279u32, 280u32,
+                    281u32, 282u32, 283u32, 284u32, 285u32, 286u32, 287u32, 288u32,
+                    289u32, 290u32, 291u32, 292u32, 293u32, 294u32, 295u32, 296u32,
+                    297u32, 298u32, 299u32, 300u32, 301u32, 302u32, 303u32, 304u32,
+                    305u32, 306u32, 308u32, 309u32, 311u32, 312u32, 314u32, 316u32,
                 ];
-                let num_rules = 153usize;
+                let num_rules = 151usize;
                 let mut rules = Vec::with_capacity(num_rules);
                 for i in 0..num_rules {
                     let name = GrammarNonTerminals::from_usize(RULE_NAMES[i] as usize);
@@ -6673,7 +6606,7 @@ impl ::rusty_lr_core::parser::Parser for GrammarParser {
         STATES
             .get_or_init(|| {
                 static SHIFT_TERM_DATA: &[u32] = &[
-                    2147516416u32, 2150694916u32, 2147549199u32, 2147614722u32,
+                    2147516416u32, 2150629380u32, 2147549199u32, 2147614722u32,
                     2147647488u32, 2147745799u32, 2147778568u32, 2147876875u32,
                     2147909644u32, 2147942413u32, 2147975182u32, 2148007953u32,
                     2148040723u32, 2147680261u32, 2147713024u32, 2147745799u32,
@@ -6683,239 +6616,230 @@ impl ::rusty_lr_core::parser::Parser for GrammarParser {
                     2147876875u32, 2147909644u32, 2147942413u32, 2147975182u32,
                     2148007953u32, 2148040723u32, 2147713024u32, 2147745799u32,
                     2147778568u32, 2147876875u32, 2147909644u32, 2147942413u32,
-                    2147975182u32, 2148007953u32, 2148040723u32, 2148794412u32,
+                    2147975182u32, 2148007953u32, 2148040723u32, 2148794411u32,
                     2148073478u32, 2148139008u32, 2148270091u32, 2148401165u32,
-                    2148171818u32, 2148204544u32, 2148237356u32, 2148302890u32,
-                    2148335627u32, 2148368428u32, 2148433962u32, 2148466701u32,
-                    2148499500u32, 2148139008u32, 2148270091u32, 2148401165u32,
+                    2148171818u32, 2148204544u32, 2148237355u32, 2148302890u32,
+                    2148335627u32, 2148368427u32, 2148433962u32, 2148466701u32,
+                    2148499499u32, 2148139008u32, 2148270091u32, 2148401165u32,
                     2148663316u32, 2148761609u32, 2148892710u32, 2148925479u32,
-                    2148958248u32, 2148991017u32, 2149023786u32, 2149089323u32,
-                    2147713024u32, 2147745799u32, 2147778568u32, 2147876875u32,
-                    2147909644u32, 2147942413u32, 2147975182u32, 2148007953u32,
-                    2148040723u32, 2148827154u32, 2148892710u32, 2148925479u32,
-                    2148958248u32, 2148991017u32, 2149023786u32, 2149089323u32,
-                    2147713024u32, 2147745799u32, 2147778568u32, 2147876875u32,
-                    2147909644u32, 2147942413u32, 2147975182u32, 2148007953u32,
-                    2148040723u32, 2148892710u32, 2148925479u32, 2148958248u32,
-                    2148991017u32, 2149089323u32, 2147713024u32, 2147745799u32,
+                    2148958248u32, 2148991017u32, 2149023786u32, 2147713024u32,
+                    2147745799u32, 2147778568u32, 2147876875u32, 2147909644u32,
+                    2147942413u32, 2147975182u32, 2148007953u32, 2148040723u32,
+                    2148827154u32, 2148892710u32, 2148925479u32, 2148958248u32,
+                    2148991017u32, 2149023786u32, 2147713024u32, 2147745799u32,
                     2147778568u32, 2147876875u32, 2147909644u32, 2147942413u32,
                     2147975182u32, 2148007953u32, 2148040723u32, 2148892710u32,
                     2148925479u32, 2148958248u32, 2148991017u32, 2147713024u32,
                     2147745799u32, 2147778568u32, 2147876875u32, 2147909644u32,
                     2147942413u32, 2147975182u32, 2148007953u32, 2148040723u32,
                     2148892710u32, 2148925479u32, 2148958248u32, 2148991017u32,
-                    2149023786u32, 2149089323u32, 2149285891u32, 2149351442u32,
-                    2147713024u32, 2147745799u32, 2147778568u32, 2147876875u32,
-                    2147909644u32, 2147942413u32, 2147975182u32, 2148007953u32,
-                    2148040723u32, 2149416969u32, 2148892710u32, 2148925479u32,
-                    2148958248u32, 2148991017u32, 2149023786u32, 2149089323u32,
-                    2149646380u32, 2149449766u32, 2149515303u32, 2149580844u32,
-                    2149482514u32, 2149548050u32, 2149613586u32, 2149679122u32,
-                    2149744658u32, 2148892710u32, 2148925479u32, 2148958248u32,
-                    2148991017u32, 2149023786u32, 2149089323u32, 2149842947u32,
-                    3145765u32, 2147647488u32, 2147745799u32, 2147778568u32,
-                    2147876875u32, 2147909644u32, 2147942413u32, 2147975182u32,
-                    2148007953u32, 2148040723u32, 2148892710u32, 2148925479u32,
-                    2148958248u32, 2148991017u32, 2149023786u32, 2149089323u32,
+                    2149023786u32, 2149220355u32, 2149285906u32, 2147713024u32,
+                    2147745799u32, 2147778568u32, 2147876875u32, 2147909644u32,
+                    2147942413u32, 2147975182u32, 2148007953u32, 2148040723u32,
+                    2149351433u32, 2148892710u32, 2148925479u32, 2148958248u32,
+                    2148991017u32, 2149023786u32, 2149580843u32, 2149384230u32,
+                    2149449767u32, 2149515307u32, 2149416978u32, 2149482514u32,
+                    2149548050u32, 2149613586u32, 2149679122u32, 2148892710u32,
+                    2148925479u32, 2148958248u32, 2148991017u32, 2149023786u32,
+                    2149777411u32, 3080229u32, 2147647488u32, 2147745799u32,
+                    2147778568u32, 2147876875u32, 2147909644u32, 2147942413u32,
+                    2147975182u32, 2148007953u32, 2148040723u32, 2148892710u32,
+                    2148925479u32, 2148958248u32, 2148991017u32, 2149023786u32,
                     2147647488u32, 2147745799u32, 2147778568u32, 2147876875u32,
                     2147909644u32, 2147942413u32, 2147975182u32, 2148007953u32,
-                    2148040723u32, 2150072324u32, 2150105119u32, 2150301731u32,
-                    2150400044u32, 2150137856u32, 2150170635u32, 2150203405u32,
-                    2150236204u32, 2150334474u32, 2150367276u32, 2150072324u32,
-                    2150563856u32, 2150727701u32, 2150957078u32, 2151120919u32,
-                    2151415832u32, 2151579673u32, 2151710746u32, 2151841819u32,
-                    2151972892u32, 2152103965u32, 2152235038u32, 2152366112u32,
-                    2152529953u32, 2152661026u32, 2152792100u32, 2152923180u32,
-                    2150137856u32, 2150170635u32, 2150203405u32, 2150760492u32,
-                    3309605u32, 2150137856u32, 2150170635u32, 2150203405u32, 3407909u32,
-                    2150137856u32, 2150170635u32, 2150203405u32, 2150989868u32,
-                    3538981u32, 2150137856u32, 2150170635u32, 2150203405u32, 3604517u32,
-                    2151153664u32, 2151350316u32, 2151219200u32, 2151219201u32,
-                    2151219202u32, 2151219203u32, 2151219204u32, 2151219205u32,
-                    2151219206u32, 2151219207u32, 2151219208u32, 2151219209u32,
-                    2151219210u32, 2151219211u32, 2151219212u32, 2151219213u32,
-                    2151219214u32, 2151219215u32, 2151219216u32, 2151219217u32,
-                    2151219218u32, 2151219219u32, 2151219220u32, 2151219221u32,
-                    2151219222u32, 2151219223u32, 2151219224u32, 2151219225u32,
-                    2151219226u32, 2151219227u32, 2151219228u32, 2151219229u32,
-                    2151219230u32, 2151219231u32, 2151219232u32, 2151219233u32,
-                    2151219234u32, 2151219235u32, 2151219236u32, 3702821u32,
-                    2151219238u32, 2151219239u32, 2151219240u32, 2151219241u32,
-                    2151219242u32, 2151219243u32, 2151317504u32, 2151317505u32,
-                    2151317506u32, 2151317507u32, 2151317508u32, 2151317509u32,
-                    2151317510u32, 2151317511u32, 2151317512u32, 2151317513u32,
-                    2151317514u32, 2151317515u32, 2151317516u32, 2151317517u32,
-                    2151317518u32, 2151317519u32, 2151317520u32, 2151317521u32,
-                    2151317522u32, 2151317523u32, 2151317524u32, 2151317525u32,
-                    2151317526u32, 2151317527u32, 2151317528u32, 2151317529u32,
-                    2151317530u32, 2151317531u32, 2151317532u32, 2151317533u32,
-                    2151317534u32, 2151317535u32, 2151317536u32, 2151317537u32,
-                    2151317538u32, 2151317539u32, 2151317540u32, 3801125u32,
-                    2151317542u32, 2151317543u32, 2151317544u32, 2151317545u32,
-                    2151317546u32, 2151317547u32, 3899429u32, 2151448576u32,
-                    2151514156u32, 3997733u32, 4063269u32, 2151219200u32, 2151219201u32,
-                    2151219202u32, 2151219203u32, 2151219204u32, 2151219205u32,
-                    2151219206u32, 2151219207u32, 2151219208u32, 2151219209u32,
-                    2151219210u32, 2151219211u32, 2151219212u32, 2151219213u32,
-                    2151219214u32, 2151219215u32, 2151219216u32, 2151219217u32,
-                    2151219218u32, 2151219219u32, 2151219220u32, 2151219221u32,
-                    2151219222u32, 2151219223u32, 2151219224u32, 2151219225u32,
-                    2151219226u32, 2151219227u32, 2151219228u32, 2151219229u32,
-                    2151219230u32, 2151219231u32, 2151219232u32, 2151219233u32,
-                    2151219234u32, 2151219235u32, 2151219236u32, 4128805u32,
-                    2151219238u32, 2151219239u32, 2151219240u32, 2151219241u32,
-                    2151219242u32, 2151219243u32, 2151317504u32, 2151317505u32,
-                    2151317506u32, 2151317507u32, 2151317508u32, 2151317509u32,
-                    2151317510u32, 2151317511u32, 2151317512u32, 2151317513u32,
-                    2151317514u32, 2151317515u32, 2151317516u32, 2151317517u32,
-                    2151317518u32, 2151317519u32, 2151317520u32, 2151317521u32,
-                    2151317522u32, 2151317523u32, 2151317524u32, 2151317525u32,
-                    2151317526u32, 2151317527u32, 2151317528u32, 2151317529u32,
-                    2151317530u32, 2151317531u32, 2151317532u32, 2151317533u32,
-                    2151317534u32, 2151317535u32, 2151317536u32, 2151317537u32,
-                    2151317538u32, 2151317539u32, 2151317540u32, 4194341u32,
-                    2151317542u32, 2151317543u32, 2151317544u32, 2151317545u32,
-                    2151317546u32, 2151317547u32, 2151219200u32, 2151219201u32,
-                    2151219202u32, 2151219203u32, 2151219204u32, 2151219205u32,
-                    2151219206u32, 2151219207u32, 2151219208u32, 2151219209u32,
-                    2151219210u32, 2151219211u32, 2151219212u32, 2151219213u32,
-                    2151219214u32, 2151219215u32, 2151219216u32, 2151219217u32,
-                    2151219218u32, 2151219219u32, 2151219220u32, 2151219221u32,
-                    2151219222u32, 2151219223u32, 2151219224u32, 2151219225u32,
-                    2151219226u32, 2151219227u32, 2151219228u32, 2151219229u32,
-                    2151219230u32, 2151219231u32, 2151219232u32, 2151219233u32,
-                    2151219234u32, 2151219235u32, 2151219236u32, 4259877u32,
-                    2151219238u32, 2151219239u32, 2151219240u32, 2151219241u32,
-                    2151219242u32, 2151219243u32, 2151317504u32, 2151317505u32,
-                    2151317506u32, 2151317507u32, 2151317508u32, 2151317509u32,
-                    2151317510u32, 2151317511u32, 2151317512u32, 2151317513u32,
-                    2151317514u32, 2151317515u32, 2151317516u32, 2151317517u32,
-                    2151317518u32, 2151317519u32, 2151317520u32, 2151317521u32,
-                    2151317522u32, 2151317523u32, 2151317524u32, 2151317525u32,
-                    2151317526u32, 2151317527u32, 2151317528u32, 2151317529u32,
-                    2151317530u32, 2151317531u32, 2151317532u32, 2151317533u32,
-                    2151317534u32, 2151317535u32, 2151317536u32, 2151317537u32,
-                    2151317538u32, 2151317539u32, 2151317540u32, 4325413u32,
-                    2151317542u32, 2151317543u32, 2151317544u32, 2151317545u32,
-                    2151317546u32, 2151317547u32, 2151219200u32, 2151219201u32,
-                    2151219202u32, 2151219203u32, 2151219204u32, 2151219205u32,
-                    2151219206u32, 2151219207u32, 2151219208u32, 2151219209u32,
-                    2151219210u32, 2151219211u32, 2151219212u32, 2151219213u32,
-                    2151219214u32, 2151219215u32, 2151219216u32, 2151219217u32,
-                    2151219218u32, 2151219219u32, 2151219220u32, 2151219221u32,
-                    2151219222u32, 2151219223u32, 2151219224u32, 2151219225u32,
-                    2151219226u32, 2151219227u32, 2151219228u32, 2151219229u32,
-                    2151219230u32, 2151219231u32, 2151219232u32, 2151219233u32,
-                    2151219234u32, 2151219235u32, 2151219236u32, 4390949u32,
-                    2151219238u32, 2151219239u32, 2151219240u32, 2151219241u32,
-                    2151219242u32, 2151219243u32, 2151317504u32, 2151317505u32,
-                    2151317506u32, 2151317507u32, 2151317508u32, 2151317509u32,
-                    2151317510u32, 2151317511u32, 2151317512u32, 2151317513u32,
-                    2151317514u32, 2151317515u32, 2151317516u32, 2151317517u32,
-                    2151317518u32, 2151317519u32, 2151317520u32, 2151317521u32,
-                    2151317522u32, 2151317523u32, 2151317524u32, 2151317525u32,
-                    2151317526u32, 2151317527u32, 2151317528u32, 2151317529u32,
-                    2151317530u32, 2151317531u32, 2151317532u32, 2151317533u32,
-                    2151317534u32, 2151317535u32, 2151317536u32, 2151317537u32,
-                    2151317538u32, 2151317539u32, 2151317540u32, 4456485u32,
-                    2151317542u32, 2151317543u32, 2151317544u32, 2151317545u32,
-                    2151317546u32, 2151317547u32, 2151219200u32, 2151219201u32,
-                    2151219202u32, 2151219203u32, 2151219204u32, 2151219205u32,
-                    2151219206u32, 2151219207u32, 2151219208u32, 2151219209u32,
-                    2151219210u32, 2151219211u32, 2151219212u32, 2151219213u32,
-                    2151219214u32, 2151219215u32, 2151219216u32, 2151219217u32,
-                    2151219218u32, 2151219219u32, 2151219220u32, 2151219221u32,
-                    2151219222u32, 2151219223u32, 2151219224u32, 2151219225u32,
-                    2151219226u32, 2151219227u32, 2151219228u32, 2151219229u32,
-                    2151219230u32, 2151219231u32, 2151219232u32, 2151219233u32,
-                    2151219234u32, 2151219235u32, 2151219236u32, 4522021u32,
-                    2151219238u32, 2151219239u32, 2151219240u32, 2151219241u32,
-                    2151219242u32, 2151219243u32, 2151317504u32, 2151317505u32,
-                    2151317506u32, 2151317507u32, 2151317508u32, 2151317509u32,
-                    2151317510u32, 2151317511u32, 2151317512u32, 2151317513u32,
-                    2151317514u32, 2151317515u32, 2151317516u32, 2151317517u32,
-                    2151317518u32, 2151317519u32, 2151317520u32, 2151317521u32,
-                    2151317522u32, 2151317523u32, 2151317524u32, 2151317525u32,
-                    2151317526u32, 2151317527u32, 2151317528u32, 2151317529u32,
-                    2151317530u32, 2151317531u32, 2151317532u32, 2151317533u32,
-                    2151317534u32, 2151317535u32, 2151317536u32, 2151317537u32,
-                    2151317538u32, 2151317539u32, 2151317540u32, 4587557u32,
-                    2151317542u32, 2151317543u32, 2151317544u32, 2151317545u32,
-                    2151317546u32, 2151317547u32, 4653093u32, 2152169516u32, 4718629u32,
-                    4784165u32, 2152300588u32, 4849701u32, 2150137856u32, 2150170635u32,
-                    2150203405u32, 2152398892u32, 4948005u32, 2150137856u32,
-                    2150170635u32, 2150203405u32, 5013541u32, 5079077u32, 2152595500u32,
-                    5144613u32, 5210149u32, 2152726572u32, 5275685u32, 2151219200u32,
-                    2151219201u32, 2151219202u32, 2151219203u32, 2151219204u32,
-                    2151219205u32, 2151219206u32, 2151219207u32, 2151219208u32,
-                    2151219209u32, 2151219210u32, 2151219211u32, 2151219212u32,
-                    2151219213u32, 2151219214u32, 2151219215u32, 2151219216u32,
-                    2151219217u32, 2151219218u32, 2151219219u32, 2151219220u32,
-                    2151219221u32, 2151219222u32, 2151219223u32, 2151219224u32,
-                    2151219225u32, 2151219226u32, 2151219227u32, 2151219228u32,
-                    2151219229u32, 2151219230u32, 2151219231u32, 2151219232u32,
-                    2151219233u32, 2151219234u32, 2151219235u32, 2151219236u32,
-                    5341221u32, 2151219238u32, 2151219239u32, 2151219240u32,
-                    2151219241u32, 2151219242u32, 2151219243u32, 2151317504u32,
-                    2151317505u32, 2151317506u32, 2151317507u32, 2151317508u32,
-                    2151317509u32, 2151317510u32, 2151317511u32, 2151317512u32,
-                    2151317513u32, 2151317514u32, 2151317515u32, 2151317516u32,
-                    2151317517u32, 2151317518u32, 2151317519u32, 2151317520u32,
-                    2151317521u32, 2151317522u32, 2151317523u32, 2151317524u32,
-                    2151317525u32, 2151317526u32, 2151317527u32, 2151317528u32,
-                    2151317529u32, 2151317530u32, 2151317531u32, 2151317532u32,
-                    2151317533u32, 2151317534u32, 2151317535u32, 2151317536u32,
-                    2151317537u32, 2151317538u32, 2151317539u32, 2151317540u32,
-                    5406757u32, 2151317542u32, 2151317543u32, 2151317544u32,
-                    2151317545u32, 2151317546u32, 2151317547u32, 5472293u32,
-                    2147516416u32, 2150694916u32, 2153119789u32,
+                    2148040723u32, 2150006788u32, 2150039583u32, 2150236195u32,
+                    2150334507u32, 2150072320u32, 2150105099u32, 2150137869u32,
+                    2150170667u32, 2150268938u32, 2150301739u32, 2150006788u32,
+                    2150498320u32, 2150662165u32, 2150891542u32, 2151055383u32,
+                    2151350296u32, 2151514137u32, 2151645210u32, 2151776283u32,
+                    2151907356u32, 2152038429u32, 2152169502u32, 2152300576u32,
+                    2152464417u32, 2152595490u32, 2152726564u32, 2152857643u32,
+                    2150072320u32, 2150105099u32, 2150137869u32, 2150694955u32,
+                    3244069u32, 2150072320u32, 2150105099u32, 2150137869u32, 3342373u32,
+                    2150072320u32, 2150105099u32, 2150137869u32, 2150924331u32,
+                    3473445u32, 2150072320u32, 2150105099u32, 2150137869u32, 3538981u32,
+                    2151088128u32, 2151284779u32, 2151153664u32, 2151153665u32,
+                    2151153666u32, 2151153667u32, 2151153668u32, 2151153669u32,
+                    2151153670u32, 2151153671u32, 2151153672u32, 2151153673u32,
+                    2151153674u32, 2151153675u32, 2151153676u32, 2151153677u32,
+                    2151153678u32, 2151153679u32, 2151153680u32, 2151153681u32,
+                    2151153682u32, 2151153683u32, 2151153684u32, 2151153685u32,
+                    2151153686u32, 2151153687u32, 2151153688u32, 2151153689u32,
+                    2151153690u32, 2151153691u32, 2151153692u32, 2151153693u32,
+                    2151153694u32, 2151153695u32, 2151153696u32, 2151153697u32,
+                    2151153698u32, 2151153699u32, 2151153700u32, 3637285u32,
+                    2151153702u32, 2151153703u32, 2151153704u32, 2151153705u32,
+                    2151153706u32, 2151251968u32, 2151251969u32, 2151251970u32,
+                    2151251971u32, 2151251972u32, 2151251973u32, 2151251974u32,
+                    2151251975u32, 2151251976u32, 2151251977u32, 2151251978u32,
+                    2151251979u32, 2151251980u32, 2151251981u32, 2151251982u32,
+                    2151251983u32, 2151251984u32, 2151251985u32, 2151251986u32,
+                    2151251987u32, 2151251988u32, 2151251989u32, 2151251990u32,
+                    2151251991u32, 2151251992u32, 2151251993u32, 2151251994u32,
+                    2151251995u32, 2151251996u32, 2151251997u32, 2151251998u32,
+                    2151251999u32, 2151252000u32, 2151252001u32, 2151252002u32,
+                    2151252003u32, 2151252004u32, 3735589u32, 2151252006u32,
+                    2151252007u32, 2151252008u32, 2151252009u32, 2151252010u32,
+                    3833893u32, 2151383040u32, 2151448619u32, 3932197u32, 3997733u32,
+                    2151153664u32, 2151153665u32, 2151153666u32, 2151153667u32,
+                    2151153668u32, 2151153669u32, 2151153670u32, 2151153671u32,
+                    2151153672u32, 2151153673u32, 2151153674u32, 2151153675u32,
+                    2151153676u32, 2151153677u32, 2151153678u32, 2151153679u32,
+                    2151153680u32, 2151153681u32, 2151153682u32, 2151153683u32,
+                    2151153684u32, 2151153685u32, 2151153686u32, 2151153687u32,
+                    2151153688u32, 2151153689u32, 2151153690u32, 2151153691u32,
+                    2151153692u32, 2151153693u32, 2151153694u32, 2151153695u32,
+                    2151153696u32, 2151153697u32, 2151153698u32, 2151153699u32,
+                    2151153700u32, 4063269u32, 2151153702u32, 2151153703u32,
+                    2151153704u32, 2151153705u32, 2151153706u32, 2151251968u32,
+                    2151251969u32, 2151251970u32, 2151251971u32, 2151251972u32,
+                    2151251973u32, 2151251974u32, 2151251975u32, 2151251976u32,
+                    2151251977u32, 2151251978u32, 2151251979u32, 2151251980u32,
+                    2151251981u32, 2151251982u32, 2151251983u32, 2151251984u32,
+                    2151251985u32, 2151251986u32, 2151251987u32, 2151251988u32,
+                    2151251989u32, 2151251990u32, 2151251991u32, 2151251992u32,
+                    2151251993u32, 2151251994u32, 2151251995u32, 2151251996u32,
+                    2151251997u32, 2151251998u32, 2151251999u32, 2151252000u32,
+                    2151252001u32, 2151252002u32, 2151252003u32, 2151252004u32,
+                    4128805u32, 2151252006u32, 2151252007u32, 2151252008u32,
+                    2151252009u32, 2151252010u32, 2151153664u32, 2151153665u32,
+                    2151153666u32, 2151153667u32, 2151153668u32, 2151153669u32,
+                    2151153670u32, 2151153671u32, 2151153672u32, 2151153673u32,
+                    2151153674u32, 2151153675u32, 2151153676u32, 2151153677u32,
+                    2151153678u32, 2151153679u32, 2151153680u32, 2151153681u32,
+                    2151153682u32, 2151153683u32, 2151153684u32, 2151153685u32,
+                    2151153686u32, 2151153687u32, 2151153688u32, 2151153689u32,
+                    2151153690u32, 2151153691u32, 2151153692u32, 2151153693u32,
+                    2151153694u32, 2151153695u32, 2151153696u32, 2151153697u32,
+                    2151153698u32, 2151153699u32, 2151153700u32, 4194341u32,
+                    2151153702u32, 2151153703u32, 2151153704u32, 2151153705u32,
+                    2151153706u32, 2151251968u32, 2151251969u32, 2151251970u32,
+                    2151251971u32, 2151251972u32, 2151251973u32, 2151251974u32,
+                    2151251975u32, 2151251976u32, 2151251977u32, 2151251978u32,
+                    2151251979u32, 2151251980u32, 2151251981u32, 2151251982u32,
+                    2151251983u32, 2151251984u32, 2151251985u32, 2151251986u32,
+                    2151251987u32, 2151251988u32, 2151251989u32, 2151251990u32,
+                    2151251991u32, 2151251992u32, 2151251993u32, 2151251994u32,
+                    2151251995u32, 2151251996u32, 2151251997u32, 2151251998u32,
+                    2151251999u32, 2151252000u32, 2151252001u32, 2151252002u32,
+                    2151252003u32, 2151252004u32, 4259877u32, 2151252006u32,
+                    2151252007u32, 2151252008u32, 2151252009u32, 2151252010u32,
+                    2151153664u32, 2151153665u32, 2151153666u32, 2151153667u32,
+                    2151153668u32, 2151153669u32, 2151153670u32, 2151153671u32,
+                    2151153672u32, 2151153673u32, 2151153674u32, 2151153675u32,
+                    2151153676u32, 2151153677u32, 2151153678u32, 2151153679u32,
+                    2151153680u32, 2151153681u32, 2151153682u32, 2151153683u32,
+                    2151153684u32, 2151153685u32, 2151153686u32, 2151153687u32,
+                    2151153688u32, 2151153689u32, 2151153690u32, 2151153691u32,
+                    2151153692u32, 2151153693u32, 2151153694u32, 2151153695u32,
+                    2151153696u32, 2151153697u32, 2151153698u32, 2151153699u32,
+                    2151153700u32, 4325413u32, 2151153702u32, 2151153703u32,
+                    2151153704u32, 2151153705u32, 2151153706u32, 2151251968u32,
+                    2151251969u32, 2151251970u32, 2151251971u32, 2151251972u32,
+                    2151251973u32, 2151251974u32, 2151251975u32, 2151251976u32,
+                    2151251977u32, 2151251978u32, 2151251979u32, 2151251980u32,
+                    2151251981u32, 2151251982u32, 2151251983u32, 2151251984u32,
+                    2151251985u32, 2151251986u32, 2151251987u32, 2151251988u32,
+                    2151251989u32, 2151251990u32, 2151251991u32, 2151251992u32,
+                    2151251993u32, 2151251994u32, 2151251995u32, 2151251996u32,
+                    2151251997u32, 2151251998u32, 2151251999u32, 2151252000u32,
+                    2151252001u32, 2151252002u32, 2151252003u32, 2151252004u32,
+                    4390949u32, 2151252006u32, 2151252007u32, 2151252008u32,
+                    2151252009u32, 2151252010u32, 2151153664u32, 2151153665u32,
+                    2151153666u32, 2151153667u32, 2151153668u32, 2151153669u32,
+                    2151153670u32, 2151153671u32, 2151153672u32, 2151153673u32,
+                    2151153674u32, 2151153675u32, 2151153676u32, 2151153677u32,
+                    2151153678u32, 2151153679u32, 2151153680u32, 2151153681u32,
+                    2151153682u32, 2151153683u32, 2151153684u32, 2151153685u32,
+                    2151153686u32, 2151153687u32, 2151153688u32, 2151153689u32,
+                    2151153690u32, 2151153691u32, 2151153692u32, 2151153693u32,
+                    2151153694u32, 2151153695u32, 2151153696u32, 2151153697u32,
+                    2151153698u32, 2151153699u32, 2151153700u32, 4456485u32,
+                    2151153702u32, 2151153703u32, 2151153704u32, 2151153705u32,
+                    2151153706u32, 2151251968u32, 2151251969u32, 2151251970u32,
+                    2151251971u32, 2151251972u32, 2151251973u32, 2151251974u32,
+                    2151251975u32, 2151251976u32, 2151251977u32, 2151251978u32,
+                    2151251979u32, 2151251980u32, 2151251981u32, 2151251982u32,
+                    2151251983u32, 2151251984u32, 2151251985u32, 2151251986u32,
+                    2151251987u32, 2151251988u32, 2151251989u32, 2151251990u32,
+                    2151251991u32, 2151251992u32, 2151251993u32, 2151251994u32,
+                    2151251995u32, 2151251996u32, 2151251997u32, 2151251998u32,
+                    2151251999u32, 2151252000u32, 2151252001u32, 2151252002u32,
+                    2151252003u32, 2151252004u32, 4522021u32, 2151252006u32,
+                    2151252007u32, 2151252008u32, 2151252009u32, 2151252010u32,
+                    4587557u32, 2152103979u32, 4653093u32, 4718629u32, 2152235051u32,
+                    4784165u32, 2150072320u32, 2150105099u32, 2150137869u32,
+                    2152333355u32, 4882469u32, 2150072320u32, 2150105099u32,
+                    2150137869u32, 4948005u32, 5013541u32, 2152529963u32, 5079077u32,
+                    5144613u32, 2152661035u32, 5210149u32, 2151153664u32, 2151153665u32,
+                    2151153666u32, 2151153667u32, 2151153668u32, 2151153669u32,
+                    2151153670u32, 2151153671u32, 2151153672u32, 2151153673u32,
+                    2151153674u32, 2151153675u32, 2151153676u32, 2151153677u32,
+                    2151153678u32, 2151153679u32, 2151153680u32, 2151153681u32,
+                    2151153682u32, 2151153683u32, 2151153684u32, 2151153685u32,
+                    2151153686u32, 2151153687u32, 2151153688u32, 2151153689u32,
+                    2151153690u32, 2151153691u32, 2151153692u32, 2151153693u32,
+                    2151153694u32, 2151153695u32, 2151153696u32, 2151153697u32,
+                    2151153698u32, 2151153699u32, 2151153700u32, 5275685u32,
+                    2151153702u32, 2151153703u32, 2151153704u32, 2151153705u32,
+                    2151153706u32, 2151251968u32, 2151251969u32, 2151251970u32,
+                    2151251971u32, 2151251972u32, 2151251973u32, 2151251974u32,
+                    2151251975u32, 2151251976u32, 2151251977u32, 2151251978u32,
+                    2151251979u32, 2151251980u32, 2151251981u32, 2151251982u32,
+                    2151251983u32, 2151251984u32, 2151251985u32, 2151251986u32,
+                    2151251987u32, 2151251988u32, 2151251989u32, 2151251990u32,
+                    2151251991u32, 2151251992u32, 2151251993u32, 2151251994u32,
+                    2151251995u32, 2151251996u32, 2151251997u32, 2151251998u32,
+                    2151251999u32, 2151252000u32, 2151252001u32, 2151252002u32,
+                    2151252003u32, 2151252004u32, 5341221u32, 2151252006u32,
+                    2151252007u32, 2151252008u32, 2151252009u32, 2151252010u32,
+                    5406757u32, 2147516416u32, 2150629380u32, 2153054252u32,
                 ];
                 static SHIFT_TERM_OFFSETS: &[u32] = &[
                     0u32, 2u32, 3u32, 3u32, 4u32, 13u32, 14u32, 23u32, 23u32, 23u32,
                     24u32, 25u32, 34u32, 34u32, 34u32, 34u32, 34u32, 44u32, 45u32, 45u32,
                     48u32, 49u32, 51u32, 51u32, 51u32, 52u32, 54u32, 54u32, 54u32, 55u32,
-                    57u32, 57u32, 57u32, 57u32, 60u32, 60u32, 61u32, 61u32, 61u32, 68u32,
-                    77u32, 78u32, 78u32, 84u32, 84u32, 84u32, 84u32, 84u32, 93u32, 98u32,
-                    107u32, 111u32, 120u32, 126u32, 126u32, 128u32, 137u32, 137u32,
-                    137u32, 145u32, 148u32, 149u32, 149u32, 150u32, 150u32, 151u32,
-                    151u32, 152u32, 152u32, 153u32, 153u32, 159u32, 161u32, 170u32,
-                    170u32, 170u32, 176u32, 185u32, 185u32, 186u32, 189u32, 193u32,
-                    193u32, 193u32, 193u32, 193u32, 193u32, 195u32, 195u32, 195u32,
-                    195u32, 195u32, 196u32, 196u32, 197u32, 197u32, 197u32, 197u32,
-                    197u32, 212u32, 216u32, 217u32, 217u32, 217u32, 221u32, 221u32,
-                    221u32, 225u32, 226u32, 226u32, 230u32, 230u32, 232u32, 276u32,
-                    276u32, 276u32, 320u32, 320u32, 320u32, 321u32, 321u32, 323u32,
-                    324u32, 324u32, 325u32, 325u32, 369u32, 369u32, 413u32, 413u32,
-                    457u32, 457u32, 501u32, 501u32, 545u32, 545u32, 589u32, 589u32,
-                    633u32, 633u32, 677u32, 677u32, 679u32, 679u32, 680u32, 680u32,
-                    682u32, 682u32, 683u32, 683u32, 687u32, 688u32, 688u32, 692u32,
-                    692u32, 694u32, 694u32, 695u32, 695u32, 697u32, 697u32, 698u32,
-                    698u32, 742u32, 742u32, 786u32, 786u32, 787u32, 787u32, 787u32,
-                    789u32, 789u32, 790u32, 790u32,
+                    57u32, 57u32, 57u32, 57u32, 60u32, 60u32, 61u32, 61u32, 61u32, 67u32,
+                    76u32, 77u32, 77u32, 82u32, 82u32, 82u32, 82u32, 82u32, 91u32, 95u32,
+                    104u32, 109u32, 109u32, 111u32, 120u32, 120u32, 120u32, 127u32,
+                    130u32, 131u32, 131u32, 132u32, 132u32, 133u32, 133u32, 134u32,
+                    134u32, 135u32, 135u32, 140u32, 142u32, 151u32, 151u32, 151u32,
+                    156u32, 165u32, 165u32, 166u32, 169u32, 173u32, 173u32, 173u32,
+                    173u32, 173u32, 173u32, 175u32, 175u32, 175u32, 175u32, 175u32,
+                    176u32, 176u32, 177u32, 177u32, 177u32, 177u32, 177u32, 192u32,
+                    196u32, 197u32, 197u32, 197u32, 201u32, 201u32, 201u32, 205u32,
+                    206u32, 206u32, 210u32, 210u32, 212u32, 255u32, 255u32, 255u32,
+                    298u32, 298u32, 298u32, 299u32, 299u32, 301u32, 302u32, 302u32,
+                    303u32, 303u32, 346u32, 346u32, 389u32, 389u32, 432u32, 432u32,
+                    475u32, 475u32, 518u32, 518u32, 561u32, 561u32, 604u32, 604u32,
+                    647u32, 647u32, 649u32, 649u32, 650u32, 650u32, 652u32, 652u32,
+                    653u32, 653u32, 657u32, 658u32, 658u32, 662u32, 662u32, 664u32,
+                    664u32, 665u32, 665u32, 667u32, 667u32, 668u32, 668u32, 711u32,
+                    711u32, 754u32, 754u32, 755u32, 755u32, 755u32, 757u32, 757u32,
+                    758u32, 758u32,
                 ];
                 static SHIFT_NONTERM_DATA: &[u32] = &[
-                    2152988672u32, 5537803u32, 2153021452u32, 2153086989u32, 5603356u32,
-                    2147581953u32, 2149810178u32, 2150662147u32, 2149908485u32,
-                    2148696071u32, 2149941256u32, 2149974030u32, 2150039567u32,
-                    2148696071u32, 2149777416u32, 2148696071u32, 2148728840u32,
-                    2148696071u32, 2148859912u32, 2149154837u32, 2149220374u32,
-                    2149253143u32, 2148106258u32, 2148532230u32, 2148565011u32,
-                    2148630548u32, 2148597766u32, 2148696071u32, 2149384200u32,
+                    2152923136u32, 5472267u32, 2152955916u32, 2153021453u32, 5537820u32,
+                    2147581953u32, 2149744642u32, 2150596611u32, 2149842949u32,
+                    2148696071u32, 2149875720u32, 2149908494u32, 2149974031u32,
+                    2148696071u32, 2149711880u32, 2148696071u32, 2148728840u32,
+                    2148696071u32, 2148859912u32, 2149089301u32, 2149154838u32,
+                    2149187607u32, 2148106258u32, 2148532230u32, 2148565011u32,
+                    2148630548u32, 2148597766u32, 2148696071u32, 2149318664u32,
                     2148696071u32, 2149056520u32, 2148696071u32, 2149122056u32,
-                    2148696071u32, 2149187592u32, 2148696071u32, 2148859912u32,
-                    2149154837u32, 2149318678u32, 2149711896u32, 2149875715u32,
-                    2149908485u32, 2148696071u32, 2149941256u32, 2149974030u32,
-                    2150039567u32, 2150006789u32, 2148696071u32, 2149941256u32,
-                    2150432772u32, 2150465552u32, 2150531089u32, 2150268938u32,
-                    2150498308u32, 2150596617u32, 2150825994u32, 2150858779u32,
-                    2150924298u32, 2150825994u32, 2151055387u32, 2150924298u32,
-                    2151219225u32, 2151251994u32, 2151317529u32, 2151219225u32,
-                    2151645210u32, 2151317529u32, 2151219225u32, 2151776282u32,
-                    2151317529u32, 2151219225u32, 2151907354u32, 2151317529u32,
-                    2151219225u32, 2152038426u32, 2151317529u32, 2150825994u32,
-                    2152464411u32, 2150924298u32, 2151219225u32, 2152857626u32,
-                    2151317529u32, 2152988672u32, 5537803u32, 2153021452u32,
-                    2153054236u32,
+                    2148696071u32, 2148859912u32, 2149089301u32, 2149253142u32,
+                    2149646360u32, 2149810179u32, 2149842949u32, 2148696071u32,
+                    2149875720u32, 2149908494u32, 2149974031u32, 2149941253u32,
+                    2148696071u32, 2149875720u32, 2150367236u32, 2150400016u32,
+                    2150465553u32, 2150203402u32, 2150432772u32, 2150531081u32,
+                    2150760458u32, 2150793243u32, 2150858762u32, 2150760458u32,
+                    2150989851u32, 2150858762u32, 2151153689u32, 2151186458u32,
+                    2151251993u32, 2151153689u32, 2151579674u32, 2151251993u32,
+                    2151153689u32, 2151710746u32, 2151251993u32, 2151153689u32,
+                    2151841818u32, 2151251993u32, 2151153689u32, 2151972890u32,
+                    2151251993u32, 2150760458u32, 2152398875u32, 2150858762u32,
+                    2151153689u32, 2152792090u32, 2151251993u32, 2152923136u32,
+                    5472267u32, 2152955916u32, 2152988700u32,
                 ];
                 static SHIFT_NONTERM_OFFSETS: &[u32] = &[
                     0u32, 5u32, 6u32, 6u32, 6u32, 13u32, 13u32, 15u32, 15u32, 15u32,
@@ -6923,513 +6847,493 @@ impl ::rusty_lr_core::parser::Parser for GrammarParser {
                     26u32, 26u32, 26u32, 26u32, 26u32, 26u32, 26u32, 26u32, 26u32, 26u32,
                     26u32, 26u32, 26u32, 26u32, 27u32, 27u32, 27u32, 27u32, 27u32, 27u32,
                     29u32, 29u32, 29u32, 29u32, 29u32, 29u32, 29u32, 29u32, 31u32, 31u32,
-                    33u32, 33u32, 35u32, 35u32, 35u32, 35u32, 39u32, 39u32, 39u32, 40u32,
-                    40u32, 40u32, 40u32, 40u32, 40u32, 40u32, 40u32, 40u32, 40u32, 40u32,
-                    40u32, 40u32, 40u32, 46u32, 46u32, 46u32, 46u32, 49u32, 49u32, 52u32,
-                    52u32, 53u32, 53u32, 53u32, 53u32, 53u32, 53u32, 53u32, 53u32, 53u32,
-                    53u32, 53u32, 54u32, 54u32, 55u32, 55u32, 55u32, 55u32, 55u32, 55u32,
-                    57u32, 57u32, 57u32, 57u32, 58u32, 58u32, 58u32, 60u32, 60u32, 60u32,
-                    61u32, 61u32, 61u32, 63u32, 63u32, 63u32, 64u32, 64u32, 64u32, 64u32,
-                    64u32, 64u32, 64u32, 64u32, 64u32, 64u32, 66u32, 66u32, 67u32, 67u32,
-                    69u32, 69u32, 70u32, 70u32, 72u32, 72u32, 73u32, 73u32, 75u32, 75u32,
-                    76u32, 76u32, 76u32, 76u32, 76u32, 76u32, 76u32, 76u32, 76u32, 76u32,
-                    78u32, 78u32, 78u32, 79u32, 79u32, 79u32, 79u32, 79u32, 79u32, 79u32,
-                    79u32, 79u32, 79u32, 81u32, 81u32, 82u32, 82u32, 82u32, 82u32, 82u32,
-                    86u32, 86u32, 86u32, 86u32,
+                    33u32, 33u32, 33u32, 33u32, 37u32, 37u32, 37u32, 38u32, 38u32, 38u32,
+                    38u32, 38u32, 38u32, 38u32, 38u32, 38u32, 38u32, 38u32, 38u32, 38u32,
+                    38u32, 44u32, 44u32, 44u32, 44u32, 47u32, 47u32, 50u32, 50u32, 51u32,
+                    51u32, 51u32, 51u32, 51u32, 51u32, 51u32, 51u32, 51u32, 51u32, 51u32,
+                    52u32, 52u32, 53u32, 53u32, 53u32, 53u32, 53u32, 53u32, 55u32, 55u32,
+                    55u32, 55u32, 56u32, 56u32, 56u32, 58u32, 58u32, 58u32, 59u32, 59u32,
+                    59u32, 61u32, 61u32, 61u32, 62u32, 62u32, 62u32, 62u32, 62u32, 62u32,
+                    62u32, 62u32, 62u32, 62u32, 64u32, 64u32, 65u32, 65u32, 67u32, 67u32,
+                    68u32, 68u32, 70u32, 70u32, 71u32, 71u32, 73u32, 73u32, 74u32, 74u32,
+                    74u32, 74u32, 74u32, 74u32, 74u32, 74u32, 74u32, 74u32, 76u32, 76u32,
+                    76u32, 77u32, 77u32, 77u32, 77u32, 77u32, 77u32, 77u32, 77u32, 77u32,
+                    77u32, 79u32, 79u32, 80u32, 80u32, 80u32, 80u32, 80u32, 84u32, 84u32,
+                    84u32, 84u32,
                 ];
                 static REDUCE_DATA: &[u32] = &[
-                    2u32, 1u32, 2u32, 2u32, 1u32, 1u32, 3u32, 1u32, 84u32, 4u32, 1u32,
-                    84u32, 16u32, 1u32, 84u32, 37u32, 1u32, 84u32, 0u32, 1u32, 24u32,
+                    2u32, 1u32, 2u32, 2u32, 1u32, 1u32, 3u32, 1u32, 83u32, 4u32, 1u32,
+                    83u32, 16u32, 1u32, 83u32, 37u32, 1u32, 83u32, 0u32, 1u32, 24u32,
                     3u32, 1u32, 24u32, 4u32, 1u32, 24u32, 7u32, 1u32, 24u32, 8u32, 1u32,
                     24u32, 11u32, 1u32, 24u32, 12u32, 1u32, 24u32, 13u32, 1u32, 24u32,
                     14u32, 1u32, 24u32, 16u32, 1u32, 24u32, 17u32, 1u32, 24u32, 19u32,
                     1u32, 24u32, 37u32, 1u32, 24u32, 38u32, 1u32, 24u32, 39u32, 1u32,
                     24u32, 40u32, 1u32, 24u32, 41u32, 1u32, 24u32, 42u32, 1u32, 24u32,
-                    43u32, 1u32, 24u32, 0u32, 1u32, 24u32, 3u32, 1u32, 24u32, 4u32, 1u32,
-                    24u32, 7u32, 1u32, 24u32, 8u32, 1u32, 24u32, 9u32, 1u32, 24u32,
-                    11u32, 1u32, 24u32, 12u32, 1u32, 24u32, 13u32, 1u32, 24u32, 14u32,
-                    1u32, 24u32, 16u32, 1u32, 24u32, 17u32, 1u32, 24u32, 18u32, 1u32,
-                    24u32, 19u32, 1u32, 24u32, 37u32, 1u32, 24u32, 38u32, 1u32, 24u32,
-                    39u32, 1u32, 24u32, 40u32, 1u32, 24u32, 41u32, 1u32, 24u32, 42u32,
-                    1u32, 24u32, 43u32, 1u32, 24u32, 44u32, 1u32, 24u32, 0u32, 1u32,
-                    23u32, 3u32, 1u32, 23u32, 4u32, 1u32, 23u32, 7u32, 1u32, 23u32, 8u32,
-                    1u32, 23u32, 9u32, 1u32, 23u32, 11u32, 1u32, 23u32, 12u32, 1u32,
-                    23u32, 13u32, 1u32, 23u32, 14u32, 1u32, 23u32, 16u32, 1u32, 23u32,
-                    17u32, 1u32, 23u32, 18u32, 1u32, 23u32, 19u32, 1u32, 23u32, 37u32,
-                    1u32, 23u32, 38u32, 1u32, 23u32, 39u32, 1u32, 23u32, 40u32, 1u32,
-                    23u32, 41u32, 1u32, 23u32, 42u32, 1u32, 23u32, 43u32, 1u32, 23u32,
-                    44u32, 1u32, 23u32, 0u32, 1u32, 33u32, 3u32, 1u32, 33u32, 4u32, 1u32,
-                    33u32, 7u32, 1u32, 33u32, 8u32, 1u32, 33u32, 9u32, 1u32, 33u32,
-                    11u32, 1u32, 33u32, 12u32, 1u32, 33u32, 13u32, 1u32, 33u32, 14u32,
-                    1u32, 33u32, 16u32, 1u32, 33u32, 17u32, 1u32, 33u32, 18u32, 1u32,
-                    33u32, 19u32, 1u32, 33u32, 37u32, 1u32, 33u32, 38u32, 1u32, 33u32,
-                    39u32, 1u32, 33u32, 40u32, 1u32, 33u32, 41u32, 1u32, 33u32, 42u32,
-                    1u32, 33u32, 43u32, 1u32, 33u32, 44u32, 1u32, 33u32, 0u32, 1u32,
-                    34u32, 3u32, 1u32, 34u32, 4u32, 1u32, 34u32, 7u32, 1u32, 34u32, 8u32,
-                    1u32, 34u32, 9u32, 1u32, 34u32, 11u32, 1u32, 34u32, 12u32, 1u32,
-                    34u32, 13u32, 1u32, 34u32, 14u32, 1u32, 34u32, 16u32, 1u32, 34u32,
-                    17u32, 1u32, 34u32, 18u32, 1u32, 34u32, 19u32, 1u32, 34u32, 37u32,
-                    1u32, 34u32, 38u32, 1u32, 34u32, 39u32, 1u32, 34u32, 40u32, 1u32,
-                    34u32, 41u32, 1u32, 34u32, 42u32, 1u32, 34u32, 43u32, 1u32, 34u32,
-                    44u32, 1u32, 34u32, 0u32, 1u32, 35u32, 3u32, 1u32, 35u32, 4u32, 1u32,
-                    35u32, 7u32, 1u32, 35u32, 8u32, 1u32, 35u32, 9u32, 1u32, 35u32,
-                    11u32, 1u32, 35u32, 12u32, 1u32, 35u32, 13u32, 1u32, 35u32, 14u32,
-                    1u32, 35u32, 16u32, 1u32, 35u32, 17u32, 1u32, 35u32, 18u32, 1u32,
-                    35u32, 19u32, 1u32, 35u32, 37u32, 1u32, 35u32, 38u32, 1u32, 35u32,
-                    39u32, 1u32, 35u32, 40u32, 1u32, 35u32, 41u32, 1u32, 35u32, 42u32,
-                    1u32, 35u32, 43u32, 1u32, 35u32, 44u32, 1u32, 35u32, 0u32, 1u32,
-                    36u32, 3u32, 1u32, 36u32, 4u32, 1u32, 36u32, 7u32, 1u32, 36u32, 8u32,
-                    1u32, 36u32, 9u32, 1u32, 36u32, 11u32, 1u32, 36u32, 12u32, 1u32,
-                    36u32, 13u32, 1u32, 36u32, 14u32, 1u32, 36u32, 16u32, 1u32, 36u32,
-                    17u32, 1u32, 36u32, 18u32, 1u32, 36u32, 19u32, 1u32, 36u32, 37u32,
-                    1u32, 36u32, 38u32, 1u32, 36u32, 39u32, 1u32, 36u32, 40u32, 1u32,
-                    36u32, 41u32, 1u32, 36u32, 42u32, 1u32, 36u32, 43u32, 1u32, 36u32,
-                    44u32, 1u32, 36u32, 3u32, 1u32, 98u32, 18u32, 1u32, 98u32, 0u32,
-                    1u32, 90u32, 11u32, 1u32, 90u32, 13u32, 1u32, 90u32, 20u32, 1u32,
-                    90u32, 0u32, 1u32, 89u32, 11u32, 1u32, 89u32, 13u32, 1u32, 89u32,
-                    20u32, 1u32, 89u32, 20u32, 1u32, 94u32, 0u32, 1u32, 13u32, 11u32,
-                    1u32, 13u32, 13u32, 1u32, 13u32, 20u32, 1u32, 13u32, 0u32, 1u32,
-                    14u32, 11u32, 1u32, 14u32, 13u32, 1u32, 14u32, 20u32, 1u32, 14u32,
-                    0u32, 1u32, 15u32, 11u32, 1u32, 15u32, 13u32, 1u32, 15u32, 20u32,
-                    1u32, 15u32, 0u32, 1u32, 19u32, 11u32, 1u32, 19u32, 13u32, 1u32,
-                    19u32, 20u32, 1u32, 19u32, 0u32, 1u32, 20u32, 11u32, 1u32, 20u32,
-                    13u32, 1u32, 20u32, 20u32, 1u32, 20u32, 0u32, 1u32, 21u32, 11u32,
-                    1u32, 21u32, 13u32, 1u32, 21u32, 20u32, 1u32, 21u32, 0u32, 1u32,
-                    16u32, 11u32, 1u32, 16u32, 13u32, 1u32, 16u32, 20u32, 1u32, 16u32,
-                    0u32, 1u32, 17u32, 11u32, 1u32, 17u32, 13u32, 1u32, 17u32, 20u32,
-                    1u32, 17u32, 0u32, 1u32, 18u32, 11u32, 1u32, 18u32, 13u32, 1u32,
-                    18u32, 20u32, 1u32, 18u32, 0u32, 1u32, 91u32, 11u32, 1u32, 91u32,
-                    13u32, 1u32, 91u32, 20u32, 1u32, 91u32, 20u32, 1u32, 93u32, 0u32,
-                    1u32, 92u32, 11u32, 1u32, 92u32, 13u32, 1u32, 92u32, 20u32, 1u32,
-                    92u32, 0u32, 1u32, 22u32, 3u32, 1u32, 22u32, 4u32, 1u32, 22u32, 7u32,
-                    1u32, 22u32, 8u32, 1u32, 22u32, 9u32, 1u32, 22u32, 11u32, 1u32,
-                    22u32, 12u32, 1u32, 22u32, 13u32, 1u32, 22u32, 14u32, 1u32, 22u32,
-                    16u32, 1u32, 22u32, 17u32, 1u32, 22u32, 18u32, 1u32, 22u32, 19u32,
-                    1u32, 22u32, 37u32, 1u32, 22u32, 38u32, 1u32, 22u32, 39u32, 1u32,
-                    22u32, 40u32, 1u32, 22u32, 41u32, 1u32, 22u32, 42u32, 1u32, 22u32,
-                    43u32, 1u32, 22u32, 44u32, 1u32, 22u32, 0u32, 1u32, 29u32, 3u32,
-                    1u32, 29u32, 4u32, 1u32, 29u32, 7u32, 1u32, 29u32, 8u32, 1u32, 29u32,
-                    9u32, 1u32, 29u32, 11u32, 1u32, 29u32, 12u32, 1u32, 29u32, 13u32,
-                    1u32, 29u32, 14u32, 1u32, 29u32, 16u32, 1u32, 29u32, 17u32, 1u32,
-                    29u32, 18u32, 1u32, 29u32, 19u32, 1u32, 29u32, 37u32, 1u32, 29u32,
-                    38u32, 1u32, 29u32, 39u32, 1u32, 29u32, 40u32, 1u32, 29u32, 41u32,
-                    1u32, 29u32, 42u32, 1u32, 29u32, 43u32, 1u32, 29u32, 44u32, 1u32,
-                    29u32, 0u32, 1u32, 32u32, 3u32, 1u32, 32u32, 4u32, 1u32, 32u32, 7u32,
-                    1u32, 32u32, 8u32, 1u32, 32u32, 9u32, 1u32, 32u32, 11u32, 1u32,
-                    32u32, 12u32, 1u32, 32u32, 13u32, 1u32, 32u32, 14u32, 1u32, 32u32,
-                    16u32, 1u32, 32u32, 17u32, 1u32, 32u32, 18u32, 1u32, 32u32, 19u32,
-                    1u32, 32u32, 37u32, 1u32, 32u32, 38u32, 1u32, 32u32, 39u32, 1u32,
-                    32u32, 40u32, 1u32, 32u32, 41u32, 1u32, 32u32, 42u32, 1u32, 32u32,
-                    43u32, 1u32, 32u32, 44u32, 1u32, 32u32, 0u32, 1u32, 95u32, 3u32,
-                    1u32, 95u32, 7u32, 1u32, 95u32, 8u32, 1u32, 95u32, 11u32, 1u32,
-                    95u32, 12u32, 1u32, 95u32, 13u32, 1u32, 95u32, 14u32, 1u32, 95u32,
-                    17u32, 1u32, 95u32, 18u32, 1u32, 95u32, 19u32, 1u32, 95u32, 0u32,
-                    1u32, 25u32, 3u32, 1u32, 25u32, 4u32, 1u32, 25u32, 7u32, 1u32, 25u32,
-                    8u32, 1u32, 25u32, 9u32, 1u32, 25u32, 11u32, 1u32, 25u32, 12u32,
-                    1u32, 25u32, 13u32, 1u32, 25u32, 14u32, 1u32, 25u32, 16u32, 1u32,
-                    25u32, 17u32, 1u32, 25u32, 18u32, 1u32, 25u32, 19u32, 1u32, 25u32,
-                    37u32, 1u32, 25u32, 38u32, 1u32, 25u32, 39u32, 1u32, 25u32, 40u32,
-                    1u32, 25u32, 41u32, 1u32, 25u32, 42u32, 1u32, 25u32, 43u32, 1u32,
-                    25u32, 44u32, 1u32, 25u32, 0u32, 1u32, 26u32, 3u32, 1u32, 26u32,
-                    4u32, 1u32, 26u32, 7u32, 1u32, 26u32, 8u32, 1u32, 26u32, 9u32, 1u32,
-                    26u32, 11u32, 1u32, 26u32, 12u32, 1u32, 26u32, 13u32, 1u32, 26u32,
-                    14u32, 1u32, 26u32, 16u32, 1u32, 26u32, 17u32, 1u32, 26u32, 18u32,
-                    1u32, 26u32, 19u32, 1u32, 26u32, 37u32, 1u32, 26u32, 38u32, 1u32,
-                    26u32, 39u32, 1u32, 26u32, 40u32, 1u32, 26u32, 41u32, 1u32, 26u32,
-                    42u32, 1u32, 26u32, 43u32, 1u32, 26u32, 44u32, 1u32, 26u32, 0u32,
-                    1u32, 27u32, 3u32, 1u32, 27u32, 4u32, 1u32, 27u32, 7u32, 1u32, 27u32,
-                    8u32, 1u32, 27u32, 9u32, 1u32, 27u32, 11u32, 1u32, 27u32, 12u32,
-                    1u32, 27u32, 13u32, 1u32, 27u32, 14u32, 1u32, 27u32, 16u32, 1u32,
-                    27u32, 17u32, 1u32, 27u32, 18u32, 1u32, 27u32, 19u32, 1u32, 27u32,
-                    37u32, 1u32, 27u32, 38u32, 1u32, 27u32, 39u32, 1u32, 27u32, 40u32,
-                    1u32, 27u32, 41u32, 1u32, 27u32, 42u32, 1u32, 27u32, 43u32, 1u32,
-                    27u32, 44u32, 1u32, 27u32, 0u32, 1u32, 28u32, 3u32, 1u32, 28u32,
-                    4u32, 1u32, 28u32, 7u32, 1u32, 28u32, 8u32, 1u32, 28u32, 9u32, 1u32,
-                    28u32, 11u32, 1u32, 28u32, 12u32, 1u32, 28u32, 13u32, 1u32, 28u32,
-                    14u32, 1u32, 28u32, 16u32, 1u32, 28u32, 17u32, 1u32, 28u32, 18u32,
-                    1u32, 28u32, 19u32, 1u32, 28u32, 37u32, 1u32, 28u32, 38u32, 1u32,
-                    28u32, 39u32, 1u32, 28u32, 40u32, 1u32, 28u32, 41u32, 1u32, 28u32,
-                    42u32, 1u32, 28u32, 43u32, 1u32, 28u32, 44u32, 1u32, 28u32, 0u32,
-                    1u32, 37u32, 3u32, 1u32, 37u32, 4u32, 1u32, 37u32, 7u32, 1u32, 37u32,
-                    8u32, 1u32, 37u32, 9u32, 1u32, 37u32, 11u32, 1u32, 37u32, 12u32,
-                    1u32, 37u32, 13u32, 1u32, 37u32, 14u32, 1u32, 37u32, 16u32, 1u32,
-                    37u32, 17u32, 1u32, 37u32, 18u32, 1u32, 37u32, 19u32, 1u32, 37u32,
-                    37u32, 1u32, 37u32, 42u32, 1u32, 37u32, 44u32, 1u32, 37u32, 0u32,
-                    1u32, 30u32, 3u32, 1u32, 30u32, 4u32, 1u32, 30u32, 7u32, 1u32, 30u32,
-                    8u32, 1u32, 30u32, 9u32, 1u32, 30u32, 11u32, 1u32, 30u32, 12u32,
-                    1u32, 30u32, 13u32, 1u32, 30u32, 14u32, 1u32, 30u32, 16u32, 1u32,
-                    30u32, 17u32, 1u32, 30u32, 18u32, 1u32, 30u32, 19u32, 1u32, 30u32,
-                    37u32, 1u32, 30u32, 42u32, 1u32, 30u32, 43u32, 1u32, 30u32, 44u32,
-                    1u32, 30u32, 3u32, 1u32, 97u32, 18u32, 1u32, 97u32, 0u32, 1u32,
-                    96u32, 3u32, 1u32, 96u32, 7u32, 1u32, 96u32, 8u32, 1u32, 96u32,
-                    11u32, 1u32, 96u32, 12u32, 1u32, 96u32, 13u32, 1u32, 96u32, 14u32,
-                    1u32, 96u32, 17u32, 1u32, 96u32, 18u32, 1u32, 96u32, 19u32, 1u32,
-                    96u32, 3u32, 1u32, 99u32, 18u32, 1u32, 99u32, 3u32, 1u32, 98u32,
-                    18u32, 1u32, 98u32, 3u32, 1u32, 100u32, 18u32, 1u32, 100u32, 0u32,
-                    1u32, 31u32, 3u32, 1u32, 31u32, 4u32, 1u32, 31u32, 7u32, 1u32, 31u32,
-                    8u32, 1u32, 31u32, 9u32, 1u32, 31u32, 11u32, 1u32, 31u32, 12u32,
-                    1u32, 31u32, 13u32, 1u32, 31u32, 14u32, 1u32, 31u32, 16u32, 1u32,
-                    31u32, 17u32, 1u32, 31u32, 18u32, 1u32, 31u32, 19u32, 1u32, 31u32,
-                    37u32, 1u32, 31u32, 38u32, 1u32, 31u32, 39u32, 1u32, 31u32, 40u32,
-                    1u32, 31u32, 41u32, 1u32, 31u32, 42u32, 1u32, 31u32, 43u32, 1u32,
-                    31u32, 44u32, 1u32, 31u32, 18u32, 1u32, 102u32, 18u32, 1u32, 101u32,
-                    0u32, 1u32, 39u32, 3u32, 1u32, 39u32, 4u32, 1u32, 39u32, 7u32, 1u32,
-                    39u32, 8u32, 1u32, 39u32, 9u32, 1u32, 39u32, 11u32, 1u32, 39u32,
-                    12u32, 1u32, 39u32, 13u32, 1u32, 39u32, 14u32, 1u32, 39u32, 16u32,
-                    1u32, 39u32, 17u32, 1u32, 39u32, 18u32, 1u32, 39u32, 19u32, 1u32,
-                    39u32, 37u32, 1u32, 39u32, 38u32, 1u32, 39u32, 39u32, 1u32, 39u32,
-                    40u32, 1u32, 39u32, 41u32, 1u32, 39u32, 42u32, 1u32, 39u32, 43u32,
-                    1u32, 39u32, 44u32, 1u32, 39u32, 0u32, 1u32, 40u32, 3u32, 1u32,
+                    0u32, 1u32, 24u32, 3u32, 1u32, 24u32, 4u32, 1u32, 24u32, 7u32, 1u32,
+                    24u32, 8u32, 1u32, 24u32, 9u32, 1u32, 24u32, 11u32, 1u32, 24u32,
+                    12u32, 1u32, 24u32, 13u32, 1u32, 24u32, 14u32, 1u32, 24u32, 16u32,
+                    1u32, 24u32, 17u32, 1u32, 24u32, 18u32, 1u32, 24u32, 19u32, 1u32,
+                    24u32, 37u32, 1u32, 24u32, 38u32, 1u32, 24u32, 39u32, 1u32, 24u32,
+                    40u32, 1u32, 24u32, 41u32, 1u32, 24u32, 42u32, 1u32, 24u32, 43u32,
+                    1u32, 24u32, 0u32, 1u32, 23u32, 3u32, 1u32, 23u32, 4u32, 1u32, 23u32,
+                    7u32, 1u32, 23u32, 8u32, 1u32, 23u32, 9u32, 1u32, 23u32, 11u32, 1u32,
+                    23u32, 12u32, 1u32, 23u32, 13u32, 1u32, 23u32, 14u32, 1u32, 23u32,
+                    16u32, 1u32, 23u32, 17u32, 1u32, 23u32, 18u32, 1u32, 23u32, 19u32,
+                    1u32, 23u32, 37u32, 1u32, 23u32, 38u32, 1u32, 23u32, 39u32, 1u32,
+                    23u32, 40u32, 1u32, 23u32, 41u32, 1u32, 23u32, 42u32, 1u32, 23u32,
+                    43u32, 1u32, 23u32, 0u32, 1u32, 32u32, 3u32, 1u32, 32u32, 4u32, 1u32,
+                    32u32, 7u32, 1u32, 32u32, 8u32, 1u32, 32u32, 9u32, 1u32, 32u32,
+                    11u32, 1u32, 32u32, 12u32, 1u32, 32u32, 13u32, 1u32, 32u32, 14u32,
+                    1u32, 32u32, 16u32, 1u32, 32u32, 17u32, 1u32, 32u32, 18u32, 1u32,
+                    32u32, 19u32, 1u32, 32u32, 37u32, 1u32, 32u32, 38u32, 1u32, 32u32,
+                    39u32, 1u32, 32u32, 40u32, 1u32, 32u32, 41u32, 1u32, 32u32, 42u32,
+                    1u32, 32u32, 43u32, 1u32, 32u32, 0u32, 1u32, 33u32, 3u32, 1u32,
+                    33u32, 4u32, 1u32, 33u32, 7u32, 1u32, 33u32, 8u32, 1u32, 33u32, 9u32,
+                    1u32, 33u32, 11u32, 1u32, 33u32, 12u32, 1u32, 33u32, 13u32, 1u32,
+                    33u32, 14u32, 1u32, 33u32, 16u32, 1u32, 33u32, 17u32, 1u32, 33u32,
+                    18u32, 1u32, 33u32, 19u32, 1u32, 33u32, 37u32, 1u32, 33u32, 38u32,
+                    1u32, 33u32, 39u32, 1u32, 33u32, 40u32, 1u32, 33u32, 41u32, 1u32,
+                    33u32, 42u32, 1u32, 33u32, 43u32, 1u32, 33u32, 0u32, 1u32, 34u32,
+                    3u32, 1u32, 34u32, 4u32, 1u32, 34u32, 7u32, 1u32, 34u32, 8u32, 1u32,
+                    34u32, 9u32, 1u32, 34u32, 11u32, 1u32, 34u32, 12u32, 1u32, 34u32,
+                    13u32, 1u32, 34u32, 14u32, 1u32, 34u32, 16u32, 1u32, 34u32, 17u32,
+                    1u32, 34u32, 18u32, 1u32, 34u32, 19u32, 1u32, 34u32, 37u32, 1u32,
+                    34u32, 38u32, 1u32, 34u32, 39u32, 1u32, 34u32, 40u32, 1u32, 34u32,
+                    41u32, 1u32, 34u32, 42u32, 1u32, 34u32, 43u32, 1u32, 34u32, 0u32,
+                    1u32, 35u32, 3u32, 1u32, 35u32, 4u32, 1u32, 35u32, 7u32, 1u32, 35u32,
+                    8u32, 1u32, 35u32, 9u32, 1u32, 35u32, 11u32, 1u32, 35u32, 12u32,
+                    1u32, 35u32, 13u32, 1u32, 35u32, 14u32, 1u32, 35u32, 16u32, 1u32,
+                    35u32, 17u32, 1u32, 35u32, 18u32, 1u32, 35u32, 19u32, 1u32, 35u32,
+                    37u32, 1u32, 35u32, 38u32, 1u32, 35u32, 39u32, 1u32, 35u32, 40u32,
+                    1u32, 35u32, 41u32, 1u32, 35u32, 42u32, 1u32, 35u32, 43u32, 1u32,
+                    35u32, 3u32, 1u32, 97u32, 18u32, 1u32, 97u32, 0u32, 1u32, 89u32,
+                    11u32, 1u32, 89u32, 13u32, 1u32, 89u32, 20u32, 1u32, 89u32, 0u32,
+                    1u32, 88u32, 11u32, 1u32, 88u32, 13u32, 1u32, 88u32, 20u32, 1u32,
+                    88u32, 20u32, 1u32, 93u32, 0u32, 1u32, 13u32, 11u32, 1u32, 13u32,
+                    13u32, 1u32, 13u32, 20u32, 1u32, 13u32, 0u32, 1u32, 14u32, 11u32,
+                    1u32, 14u32, 13u32, 1u32, 14u32, 20u32, 1u32, 14u32, 0u32, 1u32,
+                    15u32, 11u32, 1u32, 15u32, 13u32, 1u32, 15u32, 20u32, 1u32, 15u32,
+                    0u32, 1u32, 19u32, 11u32, 1u32, 19u32, 13u32, 1u32, 19u32, 20u32,
+                    1u32, 19u32, 0u32, 1u32, 20u32, 11u32, 1u32, 20u32, 13u32, 1u32,
+                    20u32, 20u32, 1u32, 20u32, 0u32, 1u32, 21u32, 11u32, 1u32, 21u32,
+                    13u32, 1u32, 21u32, 20u32, 1u32, 21u32, 0u32, 1u32, 16u32, 11u32,
+                    1u32, 16u32, 13u32, 1u32, 16u32, 20u32, 1u32, 16u32, 0u32, 1u32,
+                    17u32, 11u32, 1u32, 17u32, 13u32, 1u32, 17u32, 20u32, 1u32, 17u32,
+                    0u32, 1u32, 18u32, 11u32, 1u32, 18u32, 13u32, 1u32, 18u32, 20u32,
+                    1u32, 18u32, 0u32, 1u32, 90u32, 11u32, 1u32, 90u32, 13u32, 1u32,
+                    90u32, 20u32, 1u32, 90u32, 20u32, 1u32, 92u32, 0u32, 1u32, 91u32,
+                    11u32, 1u32, 91u32, 13u32, 1u32, 91u32, 20u32, 1u32, 91u32, 0u32,
+                    1u32, 22u32, 3u32, 1u32, 22u32, 4u32, 1u32, 22u32, 7u32, 1u32, 22u32,
+                    8u32, 1u32, 22u32, 9u32, 1u32, 22u32, 11u32, 1u32, 22u32, 12u32,
+                    1u32, 22u32, 13u32, 1u32, 22u32, 14u32, 1u32, 22u32, 16u32, 1u32,
+                    22u32, 17u32, 1u32, 22u32, 18u32, 1u32, 22u32, 19u32, 1u32, 22u32,
+                    37u32, 1u32, 22u32, 38u32, 1u32, 22u32, 39u32, 1u32, 22u32, 40u32,
+                    1u32, 22u32, 41u32, 1u32, 22u32, 42u32, 1u32, 22u32, 43u32, 1u32,
+                    22u32, 0u32, 1u32, 29u32, 3u32, 1u32, 29u32, 4u32, 1u32, 29u32, 7u32,
+                    1u32, 29u32, 8u32, 1u32, 29u32, 9u32, 1u32, 29u32, 11u32, 1u32,
+                    29u32, 12u32, 1u32, 29u32, 13u32, 1u32, 29u32, 14u32, 1u32, 29u32,
+                    16u32, 1u32, 29u32, 17u32, 1u32, 29u32, 18u32, 1u32, 29u32, 19u32,
+                    1u32, 29u32, 37u32, 1u32, 29u32, 38u32, 1u32, 29u32, 39u32, 1u32,
+                    29u32, 40u32, 1u32, 29u32, 41u32, 1u32, 29u32, 42u32, 1u32, 29u32,
+                    43u32, 1u32, 29u32, 0u32, 1u32, 31u32, 3u32, 1u32, 31u32, 4u32, 1u32,
+                    31u32, 7u32, 1u32, 31u32, 8u32, 1u32, 31u32, 9u32, 1u32, 31u32,
+                    11u32, 1u32, 31u32, 12u32, 1u32, 31u32, 13u32, 1u32, 31u32, 14u32,
+                    1u32, 31u32, 16u32, 1u32, 31u32, 17u32, 1u32, 31u32, 18u32, 1u32,
+                    31u32, 19u32, 1u32, 31u32, 37u32, 1u32, 31u32, 38u32, 1u32, 31u32,
+                    39u32, 1u32, 31u32, 40u32, 1u32, 31u32, 41u32, 1u32, 31u32, 42u32,
+                    1u32, 31u32, 43u32, 1u32, 31u32, 0u32, 1u32, 94u32, 3u32, 1u32,
+                    94u32, 7u32, 1u32, 94u32, 8u32, 1u32, 94u32, 11u32, 1u32, 94u32,
+                    12u32, 1u32, 94u32, 13u32, 1u32, 94u32, 14u32, 1u32, 94u32, 17u32,
+                    1u32, 94u32, 18u32, 1u32, 94u32, 19u32, 1u32, 94u32, 0u32, 1u32,
+                    25u32, 3u32, 1u32, 25u32, 4u32, 1u32, 25u32, 7u32, 1u32, 25u32, 8u32,
+                    1u32, 25u32, 9u32, 1u32, 25u32, 11u32, 1u32, 25u32, 12u32, 1u32,
+                    25u32, 13u32, 1u32, 25u32, 14u32, 1u32, 25u32, 16u32, 1u32, 25u32,
+                    17u32, 1u32, 25u32, 18u32, 1u32, 25u32, 19u32, 1u32, 25u32, 37u32,
+                    1u32, 25u32, 38u32, 1u32, 25u32, 39u32, 1u32, 25u32, 40u32, 1u32,
+                    25u32, 41u32, 1u32, 25u32, 42u32, 1u32, 25u32, 43u32, 1u32, 25u32,
+                    0u32, 1u32, 26u32, 3u32, 1u32, 26u32, 4u32, 1u32, 26u32, 7u32, 1u32,
+                    26u32, 8u32, 1u32, 26u32, 9u32, 1u32, 26u32, 11u32, 1u32, 26u32,
+                    12u32, 1u32, 26u32, 13u32, 1u32, 26u32, 14u32, 1u32, 26u32, 16u32,
+                    1u32, 26u32, 17u32, 1u32, 26u32, 18u32, 1u32, 26u32, 19u32, 1u32,
+                    26u32, 37u32, 1u32, 26u32, 38u32, 1u32, 26u32, 39u32, 1u32, 26u32,
+                    40u32, 1u32, 26u32, 41u32, 1u32, 26u32, 42u32, 1u32, 26u32, 43u32,
+                    1u32, 26u32, 0u32, 1u32, 27u32, 3u32, 1u32, 27u32, 4u32, 1u32, 27u32,
+                    7u32, 1u32, 27u32, 8u32, 1u32, 27u32, 9u32, 1u32, 27u32, 11u32, 1u32,
+                    27u32, 12u32, 1u32, 27u32, 13u32, 1u32, 27u32, 14u32, 1u32, 27u32,
+                    16u32, 1u32, 27u32, 17u32, 1u32, 27u32, 18u32, 1u32, 27u32, 19u32,
+                    1u32, 27u32, 37u32, 1u32, 27u32, 38u32, 1u32, 27u32, 39u32, 1u32,
+                    27u32, 40u32, 1u32, 27u32, 41u32, 1u32, 27u32, 42u32, 1u32, 27u32,
+                    43u32, 1u32, 27u32, 0u32, 1u32, 28u32, 3u32, 1u32, 28u32, 4u32, 1u32,
+                    28u32, 7u32, 1u32, 28u32, 8u32, 1u32, 28u32, 9u32, 1u32, 28u32,
+                    11u32, 1u32, 28u32, 12u32, 1u32, 28u32, 13u32, 1u32, 28u32, 14u32,
+                    1u32, 28u32, 16u32, 1u32, 28u32, 17u32, 1u32, 28u32, 18u32, 1u32,
+                    28u32, 19u32, 1u32, 28u32, 37u32, 1u32, 28u32, 38u32, 1u32, 28u32,
+                    39u32, 1u32, 28u32, 40u32, 1u32, 28u32, 41u32, 1u32, 28u32, 42u32,
+                    1u32, 28u32, 43u32, 1u32, 28u32, 0u32, 1u32, 36u32, 3u32, 1u32,
+                    36u32, 4u32, 1u32, 36u32, 7u32, 1u32, 36u32, 8u32, 1u32, 36u32, 9u32,
+                    1u32, 36u32, 11u32, 1u32, 36u32, 12u32, 1u32, 36u32, 13u32, 1u32,
+                    36u32, 14u32, 1u32, 36u32, 16u32, 1u32, 36u32, 17u32, 1u32, 36u32,
+                    18u32, 1u32, 36u32, 19u32, 1u32, 36u32, 37u32, 1u32, 36u32, 42u32,
+                    1u32, 36u32, 43u32, 1u32, 36u32, 3u32, 1u32, 96u32, 18u32, 1u32,
+                    96u32, 0u32, 1u32, 95u32, 3u32, 1u32, 95u32, 7u32, 1u32, 95u32, 8u32,
+                    1u32, 95u32, 11u32, 1u32, 95u32, 12u32, 1u32, 95u32, 13u32, 1u32,
+                    95u32, 14u32, 1u32, 95u32, 17u32, 1u32, 95u32, 18u32, 1u32, 95u32,
+                    19u32, 1u32, 95u32, 3u32, 1u32, 98u32, 18u32, 1u32, 98u32, 3u32,
+                    1u32, 97u32, 18u32, 1u32, 97u32, 3u32, 1u32, 99u32, 18u32, 1u32,
+                    99u32, 0u32, 1u32, 30u32, 3u32, 1u32, 30u32, 4u32, 1u32, 30u32, 7u32,
+                    1u32, 30u32, 8u32, 1u32, 30u32, 9u32, 1u32, 30u32, 11u32, 1u32,
+                    30u32, 12u32, 1u32, 30u32, 13u32, 1u32, 30u32, 14u32, 1u32, 30u32,
+                    16u32, 1u32, 30u32, 17u32, 1u32, 30u32, 18u32, 1u32, 30u32, 19u32,
+                    1u32, 30u32, 37u32, 1u32, 30u32, 38u32, 1u32, 30u32, 39u32, 1u32,
+                    30u32, 40u32, 1u32, 30u32, 41u32, 1u32, 30u32, 42u32, 1u32, 30u32,
+                    43u32, 1u32, 30u32, 18u32, 1u32, 101u32, 18u32, 1u32, 100u32, 0u32,
+                    1u32, 38u32, 3u32, 1u32, 38u32, 4u32, 1u32, 38u32, 7u32, 1u32, 38u32,
+                    8u32, 1u32, 38u32, 9u32, 1u32, 38u32, 11u32, 1u32, 38u32, 12u32,
+                    1u32, 38u32, 13u32, 1u32, 38u32, 14u32, 1u32, 38u32, 16u32, 1u32,
+                    38u32, 17u32, 1u32, 38u32, 18u32, 1u32, 38u32, 19u32, 1u32, 38u32,
+                    37u32, 1u32, 38u32, 38u32, 1u32, 38u32, 39u32, 1u32, 38u32, 40u32,
+                    1u32, 38u32, 41u32, 1u32, 38u32, 42u32, 1u32, 38u32, 43u32, 1u32,
+                    38u32, 0u32, 1u32, 39u32, 3u32, 1u32, 39u32, 4u32, 1u32, 39u32, 7u32,
+                    1u32, 39u32, 8u32, 1u32, 39u32, 9u32, 1u32, 39u32, 11u32, 1u32,
+                    39u32, 12u32, 1u32, 39u32, 13u32, 1u32, 39u32, 14u32, 1u32, 39u32,
+                    16u32, 1u32, 39u32, 17u32, 1u32, 39u32, 18u32, 1u32, 39u32, 19u32,
+                    1u32, 39u32, 37u32, 1u32, 39u32, 38u32, 1u32, 39u32, 39u32, 1u32,
+                    39u32, 40u32, 1u32, 39u32, 41u32, 1u32, 39u32, 42u32, 1u32, 39u32,
+                    43u32, 1u32, 39u32, 0u32, 1u32, 41u32, 3u32, 1u32, 41u32, 4u32, 1u32,
+                    41u32, 7u32, 1u32, 41u32, 8u32, 1u32, 41u32, 9u32, 1u32, 41u32,
+                    11u32, 1u32, 41u32, 12u32, 1u32, 41u32, 13u32, 1u32, 41u32, 14u32,
+                    1u32, 41u32, 16u32, 1u32, 41u32, 17u32, 1u32, 41u32, 18u32, 1u32,
+                    41u32, 19u32, 1u32, 41u32, 37u32, 1u32, 41u32, 38u32, 1u32, 41u32,
+                    39u32, 1u32, 41u32, 40u32, 1u32, 41u32, 41u32, 1u32, 41u32, 42u32,
+                    1u32, 41u32, 43u32, 1u32, 41u32, 0u32, 1u32, 40u32, 3u32, 1u32,
                     40u32, 4u32, 1u32, 40u32, 7u32, 1u32, 40u32, 8u32, 1u32, 40u32, 9u32,
                     1u32, 40u32, 11u32, 1u32, 40u32, 12u32, 1u32, 40u32, 13u32, 1u32,
                     40u32, 14u32, 1u32, 40u32, 16u32, 1u32, 40u32, 17u32, 1u32, 40u32,
                     18u32, 1u32, 40u32, 19u32, 1u32, 40u32, 37u32, 1u32, 40u32, 38u32,
                     1u32, 40u32, 39u32, 1u32, 40u32, 40u32, 1u32, 40u32, 41u32, 1u32,
-                    40u32, 42u32, 1u32, 40u32, 43u32, 1u32, 40u32, 44u32, 1u32, 40u32,
-                    0u32, 1u32, 42u32, 3u32, 1u32, 42u32, 4u32, 1u32, 42u32, 7u32, 1u32,
-                    42u32, 8u32, 1u32, 42u32, 9u32, 1u32, 42u32, 11u32, 1u32, 42u32,
-                    12u32, 1u32, 42u32, 13u32, 1u32, 42u32, 14u32, 1u32, 42u32, 16u32,
-                    1u32, 42u32, 17u32, 1u32, 42u32, 18u32, 1u32, 42u32, 19u32, 1u32,
-                    42u32, 37u32, 1u32, 42u32, 38u32, 1u32, 42u32, 39u32, 1u32, 42u32,
-                    40u32, 1u32, 42u32, 41u32, 1u32, 42u32, 42u32, 1u32, 42u32, 43u32,
-                    1u32, 42u32, 44u32, 1u32, 42u32, 0u32, 1u32, 41u32, 3u32, 1u32,
-                    41u32, 4u32, 1u32, 41u32, 7u32, 1u32, 41u32, 8u32, 1u32, 41u32, 9u32,
-                    1u32, 41u32, 11u32, 1u32, 41u32, 12u32, 1u32, 41u32, 13u32, 1u32,
-                    41u32, 14u32, 1u32, 41u32, 16u32, 1u32, 41u32, 17u32, 1u32, 41u32,
-                    18u32, 1u32, 41u32, 19u32, 1u32, 41u32, 37u32, 1u32, 41u32, 38u32,
-                    1u32, 41u32, 39u32, 1u32, 41u32, 40u32, 1u32, 41u32, 41u32, 1u32,
-                    41u32, 42u32, 1u32, 41u32, 43u32, 1u32, 41u32, 44u32, 1u32, 41u32,
-                    0u32, 1u32, 38u32, 3u32, 1u32, 38u32, 4u32, 1u32, 38u32, 7u32, 1u32,
-                    38u32, 8u32, 1u32, 38u32, 9u32, 1u32, 38u32, 11u32, 1u32, 38u32,
-                    12u32, 1u32, 38u32, 13u32, 1u32, 38u32, 14u32, 1u32, 38u32, 16u32,
-                    1u32, 38u32, 17u32, 1u32, 38u32, 18u32, 1u32, 38u32, 19u32, 1u32,
-                    38u32, 37u32, 1u32, 38u32, 38u32, 1u32, 38u32, 39u32, 1u32, 38u32,
-                    40u32, 1u32, 38u32, 41u32, 1u32, 38u32, 42u32, 1u32, 38u32, 43u32,
-                    1u32, 38u32, 44u32, 1u32, 38u32, 0u32, 1u32, 12u32, 3u32, 1u32,
-                    12u32, 4u32, 1u32, 12u32, 7u32, 1u32, 12u32, 8u32, 1u32, 12u32,
-                    11u32, 1u32, 12u32, 12u32, 1u32, 12u32, 13u32, 1u32, 12u32, 14u32,
-                    1u32, 12u32, 16u32, 1u32, 12u32, 17u32, 1u32, 12u32, 19u32, 1u32,
-                    12u32, 37u32, 1u32, 12u32, 3u32, 1u32, 84u32, 4u32, 1u32, 84u32,
-                    16u32, 1u32, 84u32, 37u32, 1u32, 84u32, 3u32, 1u32, 3u32, 37u32,
-                    1u32, 3u32, 0u32, 1u32, 81u32, 3u32, 1u32, 81u32, 4u32, 1u32, 81u32,
+                    40u32, 42u32, 1u32, 40u32, 43u32, 1u32, 40u32, 0u32, 1u32, 37u32,
+                    3u32, 1u32, 37u32, 4u32, 1u32, 37u32, 7u32, 1u32, 37u32, 8u32, 1u32,
+                    37u32, 9u32, 1u32, 37u32, 11u32, 1u32, 37u32, 12u32, 1u32, 37u32,
+                    13u32, 1u32, 37u32, 14u32, 1u32, 37u32, 16u32, 1u32, 37u32, 17u32,
+                    1u32, 37u32, 18u32, 1u32, 37u32, 19u32, 1u32, 37u32, 37u32, 1u32,
+                    37u32, 38u32, 1u32, 37u32, 39u32, 1u32, 37u32, 40u32, 1u32, 37u32,
+                    41u32, 1u32, 37u32, 42u32, 1u32, 37u32, 43u32, 1u32, 37u32, 0u32,
+                    1u32, 12u32, 3u32, 1u32, 12u32, 4u32, 1u32, 12u32, 7u32, 1u32, 12u32,
+                    8u32, 1u32, 12u32, 11u32, 1u32, 12u32, 12u32, 1u32, 12u32, 13u32,
+                    1u32, 12u32, 14u32, 1u32, 12u32, 16u32, 1u32, 12u32, 17u32, 1u32,
+                    12u32, 19u32, 1u32, 12u32, 37u32, 1u32, 12u32, 3u32, 1u32, 83u32,
+                    4u32, 1u32, 83u32, 16u32, 1u32, 83u32, 37u32, 1u32, 83u32, 3u32,
+                    1u32, 3u32, 37u32, 1u32, 3u32, 0u32, 1u32, 80u32, 3u32, 1u32, 80u32,
+                    4u32, 1u32, 80u32, 7u32, 1u32, 80u32, 8u32, 1u32, 80u32, 11u32, 1u32,
+                    80u32, 12u32, 1u32, 80u32, 13u32, 1u32, 80u32, 14u32, 1u32, 80u32,
+                    16u32, 1u32, 80u32, 17u32, 1u32, 80u32, 19u32, 1u32, 80u32, 37u32,
+                    1u32, 80u32, 0u32, 1u32, 11u32, 3u32, 1u32, 11u32, 4u32, 1u32, 11u32,
+                    7u32, 1u32, 11u32, 8u32, 1u32, 11u32, 11u32, 1u32, 11u32, 12u32,
+                    1u32, 11u32, 13u32, 1u32, 11u32, 14u32, 1u32, 11u32, 16u32, 1u32,
+                    11u32, 17u32, 1u32, 11u32, 19u32, 1u32, 11u32, 37u32, 1u32, 11u32,
+                    3u32, 1u32, 82u32, 4u32, 1u32, 82u32, 16u32, 1u32, 82u32, 37u32,
+                    1u32, 82u32, 0u32, 1u32, 81u32, 3u32, 1u32, 81u32, 4u32, 1u32, 81u32,
                     7u32, 1u32, 81u32, 8u32, 1u32, 81u32, 11u32, 1u32, 81u32, 12u32,
                     1u32, 81u32, 13u32, 1u32, 81u32, 14u32, 1u32, 81u32, 16u32, 1u32,
                     81u32, 17u32, 1u32, 81u32, 19u32, 1u32, 81u32, 37u32, 1u32, 81u32,
-                    0u32, 1u32, 11u32, 3u32, 1u32, 11u32, 4u32, 1u32, 11u32, 7u32, 1u32,
-                    11u32, 8u32, 1u32, 11u32, 11u32, 1u32, 11u32, 12u32, 1u32, 11u32,
-                    13u32, 1u32, 11u32, 14u32, 1u32, 11u32, 16u32, 1u32, 11u32, 17u32,
-                    1u32, 11u32, 19u32, 1u32, 11u32, 37u32, 1u32, 11u32, 3u32, 1u32,
-                    83u32, 4u32, 1u32, 83u32, 16u32, 1u32, 83u32, 37u32, 1u32, 83u32,
-                    0u32, 1u32, 82u32, 3u32, 1u32, 82u32, 4u32, 1u32, 82u32, 7u32, 1u32,
-                    82u32, 8u32, 1u32, 82u32, 11u32, 1u32, 82u32, 12u32, 1u32, 82u32,
-                    13u32, 1u32, 82u32, 14u32, 1u32, 82u32, 16u32, 1u32, 82u32, 17u32,
-                    1u32, 82u32, 19u32, 1u32, 82u32, 37u32, 1u32, 82u32, 3u32, 1u32,
-                    88u32, 16u32, 1u32, 88u32, 37u32, 1u32, 88u32, 0u32, 1u32, 45u32,
-                    3u32, 1u32, 45u32, 4u32, 1u32, 45u32, 11u32, 1u32, 45u32, 13u32,
-                    1u32, 45u32, 16u32, 1u32, 45u32, 37u32, 1u32, 45u32, 0u32, 1u32,
-                    46u32, 3u32, 1u32, 46u32, 4u32, 1u32, 46u32, 11u32, 1u32, 46u32,
-                    13u32, 1u32, 46u32, 16u32, 1u32, 46u32, 37u32, 1u32, 46u32, 0u32,
-                    1u32, 47u32, 3u32, 1u32, 47u32, 4u32, 1u32, 47u32, 11u32, 1u32,
-                    47u32, 13u32, 1u32, 47u32, 16u32, 1u32, 47u32, 37u32, 1u32, 47u32,
+                    3u32, 1u32, 87u32, 16u32, 1u32, 87u32, 37u32, 1u32, 87u32, 0u32,
+                    1u32, 44u32, 3u32, 1u32, 44u32, 4u32, 1u32, 44u32, 11u32, 1u32,
+                    44u32, 13u32, 1u32, 44u32, 16u32, 1u32, 44u32, 37u32, 1u32, 44u32,
+                    0u32, 1u32, 45u32, 3u32, 1u32, 45u32, 4u32, 1u32, 45u32, 11u32, 1u32,
+                    45u32, 13u32, 1u32, 45u32, 16u32, 1u32, 45u32, 37u32, 1u32, 45u32,
+                    0u32, 1u32, 46u32, 3u32, 1u32, 46u32, 4u32, 1u32, 46u32, 11u32, 1u32,
+                    46u32, 13u32, 1u32, 46u32, 16u32, 1u32, 46u32, 37u32, 1u32, 46u32,
                     3u32, 1u32, 7u32, 4u32, 1u32, 7u32, 16u32, 1u32, 7u32, 37u32, 1u32,
                     7u32, 3u32, 1u32, 6u32, 4u32, 1u32, 6u32, 16u32, 1u32, 6u32, 37u32,
                     1u32, 6u32, 3u32, 1u32, 8u32, 4u32, 1u32, 8u32, 16u32, 1u32, 8u32,
                     37u32, 1u32, 8u32, 3u32, 1u32, 9u32, 4u32, 1u32, 9u32, 16u32, 1u32,
                     9u32, 37u32, 1u32, 9u32, 3u32, 1u32, 10u32, 4u32, 1u32, 10u32, 16u32,
-                    1u32, 10u32, 37u32, 1u32, 10u32, 3u32, 1u32, 85u32, 4u32, 1u32,
-                    85u32, 16u32, 1u32, 85u32, 37u32, 1u32, 85u32, 3u32, 1u32, 87u32,
-                    16u32, 1u32, 87u32, 37u32, 1u32, 87u32, 3u32, 1u32, 86u32, 4u32,
-                    1u32, 86u32, 16u32, 1u32, 86u32, 37u32, 1u32, 86u32, 3u32, 1u32,
-                    44u32, 37u32, 1u32, 44u32, 3u32, 1u32, 43u32, 37u32, 1u32, 43u32,
+                    1u32, 10u32, 37u32, 1u32, 10u32, 3u32, 1u32, 84u32, 4u32, 1u32,
+                    84u32, 16u32, 1u32, 84u32, 37u32, 1u32, 84u32, 3u32, 1u32, 86u32,
+                    16u32, 1u32, 86u32, 37u32, 1u32, 86u32, 3u32, 1u32, 85u32, 4u32,
+                    1u32, 85u32, 16u32, 1u32, 85u32, 37u32, 1u32, 85u32, 3u32, 1u32,
+                    43u32, 37u32, 1u32, 43u32, 3u32, 1u32, 42u32, 37u32, 1u32, 42u32,
                     3u32, 1u32, 5u32, 37u32, 1u32, 5u32, 0u32, 1u32, 0u32, 4u32, 1u32,
-                    0u32, 45u32, 1u32, 0u32, 3u32, 1u32, 4u32, 37u32, 1u32, 4u32, 0u32,
-                    1u32, 58u32, 4u32, 1u32, 58u32, 45u32, 1u32, 58u32, 0u32, 1u32,
-                    148u32, 11u32, 1u32, 148u32, 13u32, 1u32, 148u32, 37u32, 1u32,
-                    148u32, 0u32, 1u32, 57u32, 4u32, 1u32, 57u32, 45u32, 1u32, 57u32,
-                    0u32, 1u32, 149u32, 11u32, 1u32, 149u32, 13u32, 1u32, 149u32, 37u32,
-                    1u32, 149u32, 0u32, 1u32, 60u32, 4u32, 1u32, 60u32, 45u32, 1u32,
-                    60u32, 0u32, 1u32, 59u32, 4u32, 1u32, 59u32, 45u32, 1u32, 59u32,
-                    0u32, 1u32, 49u32, 4u32, 1u32, 49u32, 45u32, 1u32, 49u32, 0u32, 1u32,
-                    146u32, 1u32, 1u32, 146u32, 2u32, 1u32, 146u32, 3u32, 1u32, 146u32,
-                    4u32, 1u32, 146u32, 5u32, 1u32, 146u32, 6u32, 1u32, 146u32, 7u32,
-                    1u32, 146u32, 8u32, 1u32, 146u32, 9u32, 1u32, 146u32, 10u32, 1u32,
-                    146u32, 11u32, 1u32, 146u32, 12u32, 1u32, 146u32, 13u32, 1u32,
-                    146u32, 14u32, 1u32, 146u32, 15u32, 1u32, 146u32, 16u32, 1u32,
-                    146u32, 17u32, 1u32, 146u32, 18u32, 1u32, 146u32, 19u32, 1u32,
-                    146u32, 20u32, 1u32, 146u32, 21u32, 1u32, 146u32, 22u32, 1u32,
-                    146u32, 23u32, 1u32, 146u32, 24u32, 1u32, 146u32, 25u32, 1u32,
-                    146u32, 26u32, 1u32, 146u32, 27u32, 1u32, 146u32, 28u32, 1u32,
-                    146u32, 29u32, 1u32, 146u32, 30u32, 1u32, 146u32, 31u32, 1u32,
-                    146u32, 32u32, 1u32, 146u32, 33u32, 1u32, 146u32, 34u32, 1u32,
-                    146u32, 35u32, 1u32, 146u32, 36u32, 1u32, 146u32, 37u32, 1u32,
-                    146u32, 38u32, 1u32, 146u32, 39u32, 1u32, 146u32, 40u32, 1u32,
-                    146u32, 41u32, 1u32, 146u32, 42u32, 1u32, 146u32, 43u32, 1u32,
-                    146u32, 0u32, 1u32, 48u32, 4u32, 1u32, 48u32, 45u32, 1u32, 48u32,
-                    0u32, 1u32, 147u32, 1u32, 1u32, 147u32, 2u32, 1u32, 147u32, 3u32,
-                    1u32, 147u32, 4u32, 1u32, 147u32, 5u32, 1u32, 147u32, 6u32, 1u32,
-                    147u32, 7u32, 1u32, 147u32, 8u32, 1u32, 147u32, 9u32, 1u32, 147u32,
-                    10u32, 1u32, 147u32, 11u32, 1u32, 147u32, 12u32, 1u32, 147u32, 13u32,
-                    1u32, 147u32, 14u32, 1u32, 147u32, 15u32, 1u32, 147u32, 16u32, 1u32,
-                    147u32, 17u32, 1u32, 147u32, 18u32, 1u32, 147u32, 19u32, 1u32,
-                    147u32, 20u32, 1u32, 147u32, 21u32, 1u32, 147u32, 22u32, 1u32,
-                    147u32, 23u32, 1u32, 147u32, 24u32, 1u32, 147u32, 25u32, 1u32,
-                    147u32, 26u32, 1u32, 147u32, 27u32, 1u32, 147u32, 28u32, 1u32,
-                    147u32, 29u32, 1u32, 147u32, 30u32, 1u32, 147u32, 31u32, 1u32,
-                    147u32, 32u32, 1u32, 147u32, 33u32, 1u32, 147u32, 34u32, 1u32,
-                    147u32, 35u32, 1u32, 147u32, 36u32, 1u32, 147u32, 37u32, 1u32,
-                    147u32, 38u32, 1u32, 147u32, 39u32, 1u32, 147u32, 40u32, 1u32,
-                    147u32, 41u32, 1u32, 147u32, 42u32, 1u32, 147u32, 43u32, 1u32,
-                    147u32, 0u32, 1u32, 50u32, 4u32, 1u32, 50u32, 45u32, 1u32, 50u32,
-                    0u32, 1u32, 51u32, 4u32, 1u32, 51u32, 45u32, 1u32, 51u32, 0u32, 1u32,
-                    52u32, 4u32, 1u32, 52u32, 45u32, 1u32, 52u32, 0u32, 1u32, 54u32,
-                    4u32, 1u32, 54u32, 45u32, 1u32, 54u32, 0u32, 1u32, 53u32, 4u32, 1u32,
-                    53u32, 45u32, 1u32, 53u32, 0u32, 1u32, 56u32, 4u32, 1u32, 56u32,
-                    45u32, 1u32, 56u32, 0u32, 1u32, 55u32, 4u32, 1u32, 55u32, 45u32,
-                    1u32, 55u32, 0u32, 1u32, 64u32, 4u32, 1u32, 64u32, 45u32, 1u32,
-                    64u32, 0u32, 1u32, 63u32, 4u32, 1u32, 63u32, 45u32, 1u32, 63u32,
-                    0u32, 1u32, 66u32, 4u32, 1u32, 66u32, 45u32, 1u32, 66u32, 0u32, 1u32,
-                    65u32, 4u32, 1u32, 65u32, 45u32, 1u32, 65u32, 0u32, 1u32, 69u32,
-                    4u32, 1u32, 69u32, 45u32, 1u32, 69u32, 0u32, 1u32, 70u32, 4u32, 1u32,
-                    70u32, 45u32, 1u32, 70u32, 0u32, 1u32, 67u32, 4u32, 1u32, 67u32,
-                    45u32, 1u32, 67u32, 0u32, 1u32, 68u32, 4u32, 1u32, 68u32, 45u32,
-                    1u32, 68u32, 0u32, 1u32, 62u32, 4u32, 1u32, 62u32, 45u32, 1u32,
-                    62u32, 0u32, 1u32, 61u32, 4u32, 1u32, 61u32, 45u32, 1u32, 61u32,
-                    0u32, 1u32, 71u32, 4u32, 1u32, 71u32, 45u32, 1u32, 71u32, 0u32, 1u32,
-                    72u32, 4u32, 1u32, 72u32, 45u32, 1u32, 72u32, 0u32, 1u32, 73u32,
-                    4u32, 1u32, 73u32, 45u32, 1u32, 73u32, 0u32, 1u32, 74u32, 4u32, 1u32,
-                    74u32, 45u32, 1u32, 74u32, 0u32, 1u32, 76u32, 4u32, 1u32, 76u32,
-                    45u32, 1u32, 76u32, 0u32, 1u32, 75u32, 4u32, 1u32, 75u32, 45u32,
-                    1u32, 75u32, 0u32, 1u32, 77u32, 4u32, 1u32, 77u32, 45u32, 1u32,
-                    77u32, 0u32, 1u32, 78u32, 4u32, 1u32, 78u32, 45u32, 1u32, 78u32,
-                    45u32, 1u32, 150u32, 45u32, 1u32, 151u32,
+                    0u32, 44u32, 1u32, 0u32, 3u32, 1u32, 4u32, 37u32, 1u32, 4u32, 0u32,
+                    1u32, 57u32, 4u32, 1u32, 57u32, 44u32, 1u32, 57u32, 0u32, 1u32,
+                    146u32, 11u32, 1u32, 146u32, 13u32, 1u32, 146u32, 37u32, 1u32,
+                    146u32, 0u32, 1u32, 56u32, 4u32, 1u32, 56u32, 44u32, 1u32, 56u32,
+                    0u32, 1u32, 147u32, 11u32, 1u32, 147u32, 13u32, 1u32, 147u32, 37u32,
+                    1u32, 147u32, 0u32, 1u32, 59u32, 4u32, 1u32, 59u32, 44u32, 1u32,
+                    59u32, 0u32, 1u32, 58u32, 4u32, 1u32, 58u32, 44u32, 1u32, 58u32,
+                    0u32, 1u32, 48u32, 4u32, 1u32, 48u32, 44u32, 1u32, 48u32, 0u32, 1u32,
+                    144u32, 1u32, 1u32, 144u32, 2u32, 1u32, 144u32, 3u32, 1u32, 144u32,
+                    4u32, 1u32, 144u32, 5u32, 1u32, 144u32, 6u32, 1u32, 144u32, 7u32,
+                    1u32, 144u32, 8u32, 1u32, 144u32, 9u32, 1u32, 144u32, 10u32, 1u32,
+                    144u32, 11u32, 1u32, 144u32, 12u32, 1u32, 144u32, 13u32, 1u32,
+                    144u32, 14u32, 1u32, 144u32, 15u32, 1u32, 144u32, 16u32, 1u32,
+                    144u32, 17u32, 1u32, 144u32, 18u32, 1u32, 144u32, 19u32, 1u32,
+                    144u32, 20u32, 1u32, 144u32, 21u32, 1u32, 144u32, 22u32, 1u32,
+                    144u32, 23u32, 1u32, 144u32, 24u32, 1u32, 144u32, 25u32, 1u32,
+                    144u32, 26u32, 1u32, 144u32, 27u32, 1u32, 144u32, 28u32, 1u32,
+                    144u32, 29u32, 1u32, 144u32, 30u32, 1u32, 144u32, 31u32, 1u32,
+                    144u32, 32u32, 1u32, 144u32, 33u32, 1u32, 144u32, 34u32, 1u32,
+                    144u32, 35u32, 1u32, 144u32, 36u32, 1u32, 144u32, 37u32, 1u32,
+                    144u32, 38u32, 1u32, 144u32, 39u32, 1u32, 144u32, 40u32, 1u32,
+                    144u32, 41u32, 1u32, 144u32, 42u32, 1u32, 144u32, 0u32, 1u32, 47u32,
+                    4u32, 1u32, 47u32, 44u32, 1u32, 47u32, 0u32, 1u32, 145u32, 1u32,
+                    1u32, 145u32, 2u32, 1u32, 145u32, 3u32, 1u32, 145u32, 4u32, 1u32,
+                    145u32, 5u32, 1u32, 145u32, 6u32, 1u32, 145u32, 7u32, 1u32, 145u32,
+                    8u32, 1u32, 145u32, 9u32, 1u32, 145u32, 10u32, 1u32, 145u32, 11u32,
+                    1u32, 145u32, 12u32, 1u32, 145u32, 13u32, 1u32, 145u32, 14u32, 1u32,
+                    145u32, 15u32, 1u32, 145u32, 16u32, 1u32, 145u32, 17u32, 1u32,
+                    145u32, 18u32, 1u32, 145u32, 19u32, 1u32, 145u32, 20u32, 1u32,
+                    145u32, 21u32, 1u32, 145u32, 22u32, 1u32, 145u32, 23u32, 1u32,
+                    145u32, 24u32, 1u32, 145u32, 25u32, 1u32, 145u32, 26u32, 1u32,
+                    145u32, 27u32, 1u32, 145u32, 28u32, 1u32, 145u32, 29u32, 1u32,
+                    145u32, 30u32, 1u32, 145u32, 31u32, 1u32, 145u32, 32u32, 1u32,
+                    145u32, 33u32, 1u32, 145u32, 34u32, 1u32, 145u32, 35u32, 1u32,
+                    145u32, 36u32, 1u32, 145u32, 37u32, 1u32, 145u32, 38u32, 1u32,
+                    145u32, 39u32, 1u32, 145u32, 40u32, 1u32, 145u32, 41u32, 1u32,
+                    145u32, 42u32, 1u32, 145u32, 0u32, 1u32, 49u32, 4u32, 1u32, 49u32,
+                    44u32, 1u32, 49u32, 0u32, 1u32, 50u32, 4u32, 1u32, 50u32, 44u32,
+                    1u32, 50u32, 0u32, 1u32, 51u32, 4u32, 1u32, 51u32, 44u32, 1u32,
+                    51u32, 0u32, 1u32, 53u32, 4u32, 1u32, 53u32, 44u32, 1u32, 53u32,
+                    0u32, 1u32, 52u32, 4u32, 1u32, 52u32, 44u32, 1u32, 52u32, 0u32, 1u32,
+                    55u32, 4u32, 1u32, 55u32, 44u32, 1u32, 55u32, 0u32, 1u32, 54u32,
+                    4u32, 1u32, 54u32, 44u32, 1u32, 54u32, 0u32, 1u32, 63u32, 4u32, 1u32,
+                    63u32, 44u32, 1u32, 63u32, 0u32, 1u32, 62u32, 4u32, 1u32, 62u32,
+                    44u32, 1u32, 62u32, 0u32, 1u32, 65u32, 4u32, 1u32, 65u32, 44u32,
+                    1u32, 65u32, 0u32, 1u32, 64u32, 4u32, 1u32, 64u32, 44u32, 1u32,
+                    64u32, 0u32, 1u32, 68u32, 4u32, 1u32, 68u32, 44u32, 1u32, 68u32,
+                    0u32, 1u32, 69u32, 4u32, 1u32, 69u32, 44u32, 1u32, 69u32, 0u32, 1u32,
+                    66u32, 4u32, 1u32, 66u32, 44u32, 1u32, 66u32, 0u32, 1u32, 67u32,
+                    4u32, 1u32, 67u32, 44u32, 1u32, 67u32, 0u32, 1u32, 61u32, 4u32, 1u32,
+                    61u32, 44u32, 1u32, 61u32, 0u32, 1u32, 60u32, 4u32, 1u32, 60u32,
+                    44u32, 1u32, 60u32, 0u32, 1u32, 70u32, 4u32, 1u32, 70u32, 44u32,
+                    1u32, 70u32, 0u32, 1u32, 71u32, 4u32, 1u32, 71u32, 44u32, 1u32,
+                    71u32, 0u32, 1u32, 72u32, 4u32, 1u32, 72u32, 44u32, 1u32, 72u32,
+                    0u32, 1u32, 73u32, 4u32, 1u32, 73u32, 44u32, 1u32, 73u32, 0u32, 1u32,
+                    75u32, 4u32, 1u32, 75u32, 44u32, 1u32, 75u32, 0u32, 1u32, 74u32,
+                    4u32, 1u32, 74u32, 44u32, 1u32, 74u32, 0u32, 1u32, 76u32, 4u32, 1u32,
+                    76u32, 44u32, 1u32, 76u32, 0u32, 1u32, 77u32, 4u32, 1u32, 77u32,
+                    44u32, 1u32, 77u32, 44u32, 1u32, 148u32, 44u32, 1u32, 149u32,
                 ];
                 static REDUCE_OFFSETS: &[u32] = &[
-                    0u32, 0u32, 3u32, 6u32, 6u32, 18u32, 75u32, 75u32, 141u32, 207u32,
-                    207u32, 207u32, 207u32, 273u32, 339u32, 405u32, 471u32, 477u32,
-                    489u32, 501u32, 504u32, 516u32, 516u32, 528u32, 540u32, 552u32,
-                    552u32, 564u32, 576u32, 588u32, 588u32, 600u32, 612u32, 624u32,
-                    627u32, 639u32, 639u32, 705u32, 771u32, 771u32, 771u32, 771u32,
-                    837u32, 870u32, 936u32, 1002u32, 1068u32, 1134u32, 1134u32, 1185u32,
-                    1185u32, 1239u32, 1245u32, 1278u32, 1284u32, 1284u32, 1290u32,
-                    1296u32, 1362u32, 1365u32, 1368u32, 1368u32, 1434u32, 1434u32,
-                    1500u32, 1500u32, 1566u32, 1566u32, 1632u32, 1632u32, 1698u32,
-                    1737u32, 1737u32, 1749u32, 1755u32, 1794u32, 1833u32, 1845u32,
-                    1884u32, 1893u32, 1893u32, 1893u32, 1914u32, 1935u32, 1956u32,
-                    1968u32, 1980u32, 1980u32, 1992u32, 2004u32, 2016u32, 2028u32,
-                    2037u32, 2049u32, 2055u32, 2061u32, 2067u32, 2076u32, 2082u32,
-                    2082u32, 2082u32, 2082u32, 2091u32, 2103u32, 2103u32, 2112u32,
-                    2124u32, 2124u32, 2124u32, 2133u32, 2133u32, 2142u32, 2142u32,
-                    2142u32, 2151u32, 2283u32, 2283u32, 2292u32, 2424u32, 2424u32,
-                    2433u32, 2433u32, 2433u32, 2442u32, 2442u32, 2451u32, 2451u32,
-                    2460u32, 2460u32, 2469u32, 2469u32, 2478u32, 2478u32, 2487u32,
-                    2487u32, 2496u32, 2496u32, 2505u32, 2505u32, 2514u32, 2514u32,
-                    2523u32, 2523u32, 2532u32, 2532u32, 2541u32, 2541u32, 2550u32,
-                    2550u32, 2559u32, 2559u32, 2559u32, 2568u32, 2568u32, 2577u32,
-                    2577u32, 2586u32, 2586u32, 2595u32, 2595u32, 2604u32, 2604u32,
-                    2613u32, 2613u32, 2622u32, 2622u32, 2631u32, 2631u32, 2640u32,
-                    2649u32, 2652u32, 2655u32, 2655u32, 2655u32,
+                    0u32, 0u32, 3u32, 6u32, 6u32, 18u32, 72u32, 72u32, 135u32, 198u32,
+                    198u32, 198u32, 198u32, 261u32, 324u32, 387u32, 450u32, 456u32,
+                    468u32, 480u32, 483u32, 495u32, 495u32, 507u32, 519u32, 531u32,
+                    531u32, 543u32, 555u32, 567u32, 567u32, 579u32, 591u32, 603u32,
+                    606u32, 618u32, 618u32, 681u32, 744u32, 744u32, 744u32, 744u32,
+                    807u32, 840u32, 903u32, 966u32, 1029u32, 1092u32, 1092u32, 1143u32,
+                    1149u32, 1182u32, 1188u32, 1188u32, 1194u32, 1200u32, 1263u32,
+                    1266u32, 1269u32, 1269u32, 1332u32, 1332u32, 1395u32, 1395u32,
+                    1458u32, 1458u32, 1521u32, 1521u32, 1584u32, 1623u32, 1623u32,
+                    1635u32, 1641u32, 1680u32, 1719u32, 1731u32, 1770u32, 1779u32,
+                    1779u32, 1779u32, 1800u32, 1821u32, 1842u32, 1854u32, 1866u32,
+                    1866u32, 1878u32, 1890u32, 1902u32, 1914u32, 1923u32, 1935u32,
+                    1941u32, 1947u32, 1953u32, 1962u32, 1968u32, 1968u32, 1968u32,
+                    1968u32, 1977u32, 1989u32, 1989u32, 1998u32, 2010u32, 2010u32,
+                    2010u32, 2019u32, 2019u32, 2028u32, 2028u32, 2028u32, 2037u32,
+                    2166u32, 2166u32, 2175u32, 2304u32, 2304u32, 2313u32, 2313u32,
+                    2313u32, 2322u32, 2322u32, 2331u32, 2331u32, 2340u32, 2340u32,
+                    2349u32, 2349u32, 2358u32, 2358u32, 2367u32, 2367u32, 2376u32,
+                    2376u32, 2385u32, 2385u32, 2394u32, 2394u32, 2403u32, 2403u32,
+                    2412u32, 2412u32, 2421u32, 2421u32, 2430u32, 2430u32, 2439u32,
+                    2439u32, 2439u32, 2448u32, 2448u32, 2457u32, 2457u32, 2466u32,
+                    2466u32, 2475u32, 2475u32, 2484u32, 2484u32, 2493u32, 2493u32,
+                    2502u32, 2502u32, 2511u32, 2511u32, 2520u32, 2529u32, 2532u32,
+                    2535u32, 2535u32, 2535u32,
                 ];
                 static RULESET_DATA: &[u32] = &[
-                    0u32, 48u32, 49u32, 50u32, 51u32, 52u32, 53u32, 54u32, 55u32, 56u32,
-                    57u32, 58u32, 59u32, 60u32, 61u32, 62u32, 63u32, 64u32, 65u32, 66u32,
-                    67u32, 68u32, 69u32, 70u32, 71u32, 72u32, 73u32, 74u32, 75u32, 76u32,
-                    77u32, 78u32, 79u32, 80u32, 150u32, 151u32, 152u32, 65536u32, 1u32,
+                    0u32, 47u32, 48u32, 49u32, 50u32, 51u32, 52u32, 53u32, 54u32, 55u32,
+                    56u32, 57u32, 58u32, 59u32, 60u32, 61u32, 62u32, 63u32, 64u32, 65u32,
+                    66u32, 67u32, 68u32, 69u32, 70u32, 71u32, 72u32, 73u32, 74u32, 75u32,
+                    76u32, 77u32, 78u32, 79u32, 148u32, 149u32, 150u32, 65536u32, 1u32,
                     2u32, 65537u32, 131072u32, 196608u32, 3u32, 4u32, 5u32, 11u32, 12u32,
                     22u32, 23u32, 24u32, 25u32, 26u32, 27u32, 28u32, 29u32, 30u32, 31u32,
                     32u32, 33u32, 34u32, 35u32, 36u32, 37u32, 38u32, 39u32, 40u32, 41u32,
-                    42u32, 81u32, 82u32, 83u32, 84u32, 65548u32, 65560u32, 131084u32,
-                    22u32, 23u32, 24u32, 25u32, 26u32, 27u32, 28u32, 29u32, 30u32, 31u32,
-                    32u32, 33u32, 34u32, 35u32, 36u32, 37u32, 38u32, 39u32, 40u32, 41u32,
-                    42u32, 65560u32, 65559u32, 65574u32, 65575u32, 65576u32, 65577u32,
-                    65578u32, 131110u32, 131111u32, 131112u32, 131113u32, 131114u32,
-                    22u32, 23u32, 24u32, 25u32, 26u32, 27u32, 28u32, 29u32, 30u32, 31u32,
-                    32u32, 33u32, 34u32, 35u32, 36u32, 37u32, 38u32, 196646u32, 39u32,
-                    196647u32, 40u32, 196648u32, 41u32, 196649u32, 42u32, 196650u32,
-                    65569u32, 65570u32, 65571u32, 65572u32, 22u32, 23u32, 24u32, 25u32,
-                    26u32, 27u32, 28u32, 29u32, 30u32, 31u32, 65567u32, 32u32, 65568u32,
-                    33u32, 34u32, 35u32, 36u32, 37u32, 38u32, 39u32, 40u32, 41u32, 42u32,
-                    95u32, 96u32, 97u32, 98u32, 99u32, 100u32, 65558u32, 89u32, 90u32,
-                    65625u32, 13u32, 14u32, 15u32, 16u32, 17u32, 18u32, 19u32, 20u32,
-                    21u32, 131094u32, 91u32, 92u32, 93u32, 94u32, 65549u32, 65550u32,
-                    65551u32, 131086u32, 131087u32, 196622u32, 196623u32, 65555u32,
-                    65556u32, 65557u32, 131092u32, 131093u32, 196628u32, 196629u32,
-                    65552u32, 65553u32, 65554u32, 131089u32, 131090u32, 196625u32,
-                    196626u32, 65627u32, 13u32, 14u32, 15u32, 16u32, 17u32, 18u32, 19u32,
-                    20u32, 21u32, 65628u32, 65629u32, 131164u32, 196630u32, 262166u32,
-                    65565u32, 65561u32, 65562u32, 65563u32, 65564u32, 65566u32, 65573u32,
-                    262182u32, 262183u32, 262184u32, 262185u32, 262186u32, 22u32, 23u32,
+                    80u32, 81u32, 82u32, 83u32, 65548u32, 65560u32, 131084u32, 22u32,
+                    23u32, 24u32, 25u32, 26u32, 27u32, 28u32, 29u32, 30u32, 31u32, 32u32,
+                    33u32, 34u32, 35u32, 36u32, 37u32, 38u32, 39u32, 40u32, 41u32,
+                    65560u32, 65559u32, 65573u32, 65574u32, 65575u32, 65576u32, 65577u32,
+                    131109u32, 131110u32, 131111u32, 131112u32, 131113u32, 22u32, 23u32,
                     24u32, 25u32, 26u32, 27u32, 28u32, 29u32, 30u32, 31u32, 32u32, 33u32,
-                    34u32, 35u32, 36u32, 37u32, 38u32, 327718u32, 39u32, 327719u32,
-                    40u32, 327720u32, 41u32, 327721u32, 42u32, 327722u32, 131104u32,
-                    196640u32, 65561u32, 65562u32, 65563u32, 65564u32, 65566u32,
-                    65573u32, 65631u32, 131097u32, 131098u32, 131099u32, 131100u32,
-                    22u32, 23u32, 24u32, 25u32, 26u32, 27u32, 28u32, 29u32, 30u32, 31u32,
-                    32u32, 33u32, 34u32, 35u32, 36u32, 37u32, 131109u32, 38u32, 39u32,
-                    40u32, 41u32, 42u32, 65561u32, 65562u32, 65563u32, 65564u32,
-                    65566u32, 196645u32, 22u32, 23u32, 24u32, 25u32, 26u32, 27u32, 28u32,
-                    29u32, 30u32, 131102u32, 31u32, 32u32, 33u32, 34u32, 35u32, 36u32,
-                    37u32, 38u32, 39u32, 40u32, 41u32, 42u32, 65561u32, 65562u32,
-                    65563u32, 65564u32, 196638u32, 22u32, 23u32, 24u32, 25u32, 26u32,
-                    27u32, 28u32, 29u32, 30u32, 31u32, 32u32, 33u32, 34u32, 35u32, 36u32,
-                    37u32, 38u32, 39u32, 40u32, 41u32, 42u32, 65632u32, 65633u32,
-                    65561u32, 65562u32, 65563u32, 65564u32, 65566u32, 65573u32,
-                    131168u32, 65635u32, 131103u32, 65636u32, 22u32, 23u32, 24u32, 25u32,
-                    26u32, 27u32, 28u32, 29u32, 30u32, 31u32, 32u32, 33u32, 34u32, 35u32,
-                    36u32, 37u32, 38u32, 39u32, 40u32, 41u32, 42u32, 95u32, 96u32, 97u32,
-                    98u32, 131172u32, 196708u32, 196639u32, 65561u32, 65562u32, 65563u32,
-                    65564u32, 65566u32, 65573u32, 393254u32, 393255u32, 393256u32,
-                    393257u32, 393258u32, 101u32, 102u32, 458791u32, 458792u32,
-                    458794u32, 65637u32, 524327u32, 589863u32, 524328u32, 589864u32,
-                    524330u32, 589866u32, 458793u32, 524329u32, 458790u32, 524326u32,
-                    196620u32, 65561u32, 65562u32, 65563u32, 65564u32, 65566u32,
-                    65573u32, 262144u32, 65539u32, 131075u32, 5u32, 11u32, 12u32, 22u32,
+                    34u32, 35u32, 36u32, 37u32, 196645u32, 38u32, 196646u32, 39u32,
+                    196647u32, 40u32, 196648u32, 41u32, 196649u32, 65568u32, 65569u32,
+                    65570u32, 65571u32, 22u32, 23u32, 24u32, 25u32, 26u32, 27u32, 28u32,
+                    29u32, 30u32, 65566u32, 31u32, 65567u32, 32u32, 33u32, 34u32, 35u32,
+                    36u32, 37u32, 38u32, 39u32, 40u32, 41u32, 94u32, 95u32, 96u32, 97u32,
+                    98u32, 99u32, 65558u32, 88u32, 89u32, 65624u32, 13u32, 14u32, 15u32,
+                    16u32, 17u32, 18u32, 19u32, 20u32, 21u32, 131094u32, 90u32, 91u32,
+                    92u32, 93u32, 65549u32, 65550u32, 65551u32, 131086u32, 131087u32,
+                    196622u32, 196623u32, 65555u32, 65556u32, 65557u32, 131092u32,
+                    131093u32, 196628u32, 196629u32, 65552u32, 65553u32, 65554u32,
+                    131089u32, 131090u32, 196625u32, 196626u32, 65626u32, 13u32, 14u32,
+                    15u32, 16u32, 17u32, 18u32, 19u32, 20u32, 21u32, 65627u32, 65628u32,
+                    131163u32, 196630u32, 262166u32, 65565u32, 65561u32, 65562u32,
+                    65563u32, 65564u32, 65572u32, 262181u32, 262182u32, 262183u32,
+                    262184u32, 262185u32, 22u32, 23u32, 24u32, 25u32, 26u32, 27u32,
+                    28u32, 29u32, 30u32, 31u32, 32u32, 33u32, 34u32, 35u32, 36u32, 37u32,
+                    327717u32, 38u32, 327718u32, 39u32, 327719u32, 40u32, 327720u32,
+                    41u32, 327721u32, 131103u32, 196639u32, 65561u32, 65562u32, 65563u32,
+                    65564u32, 65572u32, 65630u32, 131097u32, 131098u32, 131099u32,
+                    131100u32, 22u32, 23u32, 24u32, 25u32, 26u32, 27u32, 28u32, 29u32,
+                    30u32, 31u32, 32u32, 33u32, 34u32, 35u32, 36u32, 131108u32, 37u32,
+                    38u32, 39u32, 40u32, 41u32, 65561u32, 65562u32, 65563u32, 65564u32,
+                    196644u32, 22u32, 23u32, 24u32, 25u32, 26u32, 27u32, 28u32, 29u32,
+                    30u32, 31u32, 32u32, 33u32, 34u32, 35u32, 36u32, 37u32, 38u32, 39u32,
+                    40u32, 41u32, 65631u32, 65632u32, 65561u32, 65562u32, 65563u32,
+                    65564u32, 65572u32, 131167u32, 65634u32, 131102u32, 65635u32, 22u32,
                     23u32, 24u32, 25u32, 26u32, 27u32, 28u32, 29u32, 30u32, 31u32, 32u32,
-                    33u32, 34u32, 35u32, 36u32, 37u32, 38u32, 39u32, 40u32, 41u32, 42u32,
-                    81u32, 82u32, 83u32, 84u32, 196611u32, 65617u32, 65547u32, 65561u32,
-                    65562u32, 65563u32, 65564u32, 65566u32, 65573u32, 11u32, 12u32,
-                    22u32, 23u32, 24u32, 25u32, 26u32, 27u32, 28u32, 29u32, 30u32, 31u32,
-                    32u32, 33u32, 34u32, 35u32, 36u32, 37u32, 38u32, 39u32, 40u32, 41u32,
-                    42u32, 65618u32, 65619u32, 131154u32, 65541u32, 6u32, 7u32, 8u32,
-                    9u32, 10u32, 85u32, 86u32, 87u32, 88u32, 65542u32, 65543u32,
-                    65544u32, 65545u32, 65546u32, 131078u32, 131079u32, 45u32, 46u32,
-                    47u32, 65581u32, 65582u32, 65583u32, 196615u32, 196614u32, 131080u32,
-                    131081u32, 196616u32, 196617u32, 131082u32, 65621u32, 6u32, 7u32,
-                    8u32, 9u32, 10u32, 65622u32, 65623u32, 131158u32, 131077u32, 43u32,
-                    44u32, 65579u32, 196613u32, 327680u32, 65540u32, 65584u32, 65585u32,
-                    65586u32, 65587u32, 65588u32, 65589u32, 65590u32, 65591u32, 65592u32,
-                    65593u32, 65594u32, 65595u32, 65596u32, 65597u32, 65598u32, 65599u32,
-                    65600u32, 65601u32, 65602u32, 65603u32, 65604u32, 65605u32, 65606u32,
-                    65607u32, 65608u32, 65609u32, 65610u32, 65611u32, 65612u32, 65613u32,
-                    45u32, 46u32, 47u32, 131129u32, 131130u32, 148u32, 149u32, 196666u32,
-                    262202u32, 65684u32, 45u32, 46u32, 47u32, 196665u32, 65685u32,
-                    262201u32, 131221u32, 45u32, 46u32, 47u32, 131131u32, 131132u32,
-                    148u32, 149u32, 196668u32, 262204u32, 45u32, 46u32, 47u32, 196667u32,
-                    65685u32, 262203u32, 131120u32, 131121u32, 131122u32, 196656u32,
-                    196657u32, 103u32, 104u32, 105u32, 106u32, 107u32, 108u32, 109u32,
-                    110u32, 111u32, 112u32, 113u32, 114u32, 115u32, 116u32, 117u32,
-                    118u32, 119u32, 120u32, 121u32, 122u32, 123u32, 124u32, 125u32,
-                    126u32, 127u32, 128u32, 129u32, 130u32, 131u32, 132u32, 133u32,
-                    134u32, 135u32, 136u32, 137u32, 138u32, 139u32, 140u32, 141u32,
-                    142u32, 143u32, 144u32, 145u32, 146u32, 147u32, 262193u32, 65682u32,
-                    262192u32, 103u32, 104u32, 105u32, 106u32, 107u32, 108u32, 109u32,
-                    110u32, 111u32, 112u32, 113u32, 114u32, 115u32, 116u32, 117u32,
-                    118u32, 119u32, 120u32, 121u32, 122u32, 123u32, 124u32, 125u32,
-                    126u32, 127u32, 128u32, 129u32, 130u32, 131u32, 132u32, 133u32,
-                    134u32, 135u32, 136u32, 137u32, 138u32, 139u32, 140u32, 141u32,
-                    142u32, 143u32, 144u32, 145u32, 65683u32, 327728u32, 131219u32,
-                    196658u32, 262194u32, 131123u32, 131124u32, 196659u32, 262195u32,
-                    196660u32, 262196u32, 131125u32, 131126u32, 103u32, 104u32, 105u32,
+                    33u32, 34u32, 35u32, 36u32, 37u32, 38u32, 39u32, 40u32, 41u32, 94u32,
+                    95u32, 96u32, 97u32, 131171u32, 196707u32, 196638u32, 65561u32,
+                    65562u32, 65563u32, 65564u32, 65572u32, 393253u32, 393254u32,
+                    393255u32, 393256u32, 393257u32, 100u32, 101u32, 458790u32,
+                    458791u32, 458793u32, 65636u32, 524326u32, 589862u32, 524327u32,
+                    589863u32, 524329u32, 589865u32, 458792u32, 524328u32, 458789u32,
+                    524325u32, 196620u32, 65561u32, 65562u32, 65563u32, 65564u32,
+                    65572u32, 262144u32, 65539u32, 131075u32, 5u32, 11u32, 12u32, 22u32,
+                    23u32, 24u32, 25u32, 26u32, 27u32, 28u32, 29u32, 30u32, 31u32, 32u32,
+                    33u32, 34u32, 35u32, 36u32, 37u32, 38u32, 39u32, 40u32, 41u32, 80u32,
+                    81u32, 82u32, 83u32, 196611u32, 65616u32, 65547u32, 65561u32,
+                    65562u32, 65563u32, 65564u32, 65572u32, 11u32, 12u32, 22u32, 23u32,
+                    24u32, 25u32, 26u32, 27u32, 28u32, 29u32, 30u32, 31u32, 32u32, 33u32,
+                    34u32, 35u32, 36u32, 37u32, 38u32, 39u32, 40u32, 41u32, 65617u32,
+                    65618u32, 131153u32, 65541u32, 6u32, 7u32, 8u32, 9u32, 10u32, 84u32,
+                    85u32, 86u32, 87u32, 65542u32, 65543u32, 65544u32, 65545u32,
+                    65546u32, 131078u32, 131079u32, 44u32, 45u32, 46u32, 65580u32,
+                    65581u32, 65582u32, 196615u32, 196614u32, 131080u32, 131081u32,
+                    196616u32, 196617u32, 131082u32, 65620u32, 6u32, 7u32, 8u32, 9u32,
+                    10u32, 65621u32, 65622u32, 131157u32, 131077u32, 42u32, 43u32,
+                    65578u32, 196613u32, 327680u32, 65540u32, 65583u32, 65584u32,
+                    65585u32, 65586u32, 65587u32, 65588u32, 65589u32, 65590u32, 65591u32,
+                    65592u32, 65593u32, 65594u32, 65595u32, 65596u32, 65597u32, 65598u32,
+                    65599u32, 65600u32, 65601u32, 65602u32, 65603u32, 65604u32, 65605u32,
+                    65606u32, 65607u32, 65608u32, 65609u32, 65610u32, 65611u32, 65612u32,
+                    44u32, 45u32, 46u32, 131128u32, 131129u32, 146u32, 147u32, 196665u32,
+                    262201u32, 65682u32, 44u32, 45u32, 46u32, 196664u32, 65683u32,
+                    262200u32, 131219u32, 44u32, 45u32, 46u32, 131130u32, 131131u32,
+                    146u32, 147u32, 196667u32, 262203u32, 44u32, 45u32, 46u32, 196666u32,
+                    65683u32, 262202u32, 131119u32, 131120u32, 131121u32, 196655u32,
+                    196656u32, 102u32, 103u32, 104u32, 105u32, 106u32, 107u32, 108u32,
+                    109u32, 110u32, 111u32, 112u32, 113u32, 114u32, 115u32, 116u32,
+                    117u32, 118u32, 119u32, 120u32, 121u32, 122u32, 123u32, 124u32,
+                    125u32, 126u32, 127u32, 128u32, 129u32, 130u32, 131u32, 132u32,
+                    133u32, 134u32, 135u32, 136u32, 137u32, 138u32, 139u32, 140u32,
+                    141u32, 142u32, 143u32, 144u32, 145u32, 262192u32, 65680u32,
+                    262191u32, 102u32, 103u32, 104u32, 105u32, 106u32, 107u32, 108u32,
+                    109u32, 110u32, 111u32, 112u32, 113u32, 114u32, 115u32, 116u32,
+                    117u32, 118u32, 119u32, 120u32, 121u32, 122u32, 123u32, 124u32,
+                    125u32, 126u32, 127u32, 128u32, 129u32, 130u32, 131u32, 132u32,
+                    133u32, 134u32, 135u32, 136u32, 137u32, 138u32, 139u32, 140u32,
+                    141u32, 142u32, 143u32, 65681u32, 327727u32, 131217u32, 196657u32,
+                    262193u32, 131122u32, 131123u32, 196658u32, 262194u32, 196659u32,
+                    262195u32, 131124u32, 131125u32, 102u32, 103u32, 104u32, 105u32,
                     106u32, 107u32, 108u32, 109u32, 110u32, 111u32, 112u32, 113u32,
                     114u32, 115u32, 116u32, 117u32, 118u32, 119u32, 120u32, 121u32,
                     122u32, 123u32, 124u32, 125u32, 126u32, 127u32, 128u32, 129u32,
                     130u32, 131u32, 132u32, 133u32, 134u32, 135u32, 136u32, 137u32,
                     138u32, 139u32, 140u32, 141u32, 142u32, 143u32, 144u32, 145u32,
-                    146u32, 147u32, 196662u32, 196661u32, 103u32, 104u32, 105u32, 106u32,
-                    107u32, 108u32, 109u32, 110u32, 111u32, 112u32, 113u32, 114u32,
-                    115u32, 116u32, 117u32, 118u32, 119u32, 120u32, 121u32, 122u32,
-                    123u32, 124u32, 125u32, 126u32, 127u32, 128u32, 129u32, 130u32,
-                    131u32, 132u32, 133u32, 134u32, 135u32, 136u32, 137u32, 138u32,
-                    139u32, 140u32, 141u32, 142u32, 143u32, 144u32, 145u32, 65683u32,
-                    262197u32, 131127u32, 131128u32, 103u32, 104u32, 105u32, 106u32,
-                    107u32, 108u32, 109u32, 110u32, 111u32, 112u32, 113u32, 114u32,
-                    115u32, 116u32, 117u32, 118u32, 119u32, 120u32, 121u32, 122u32,
-                    123u32, 124u32, 125u32, 126u32, 127u32, 128u32, 129u32, 130u32,
-                    131u32, 132u32, 133u32, 134u32, 135u32, 136u32, 137u32, 138u32,
-                    139u32, 140u32, 141u32, 142u32, 143u32, 144u32, 145u32, 146u32,
-                    147u32, 196664u32, 196663u32, 103u32, 104u32, 105u32, 106u32, 107u32,
+                    196661u32, 196660u32, 102u32, 103u32, 104u32, 105u32, 106u32, 107u32,
                     108u32, 109u32, 110u32, 111u32, 112u32, 113u32, 114u32, 115u32,
                     116u32, 117u32, 118u32, 119u32, 120u32, 121u32, 122u32, 123u32,
                     124u32, 125u32, 126u32, 127u32, 128u32, 129u32, 130u32, 131u32,
                     132u32, 133u32, 134u32, 135u32, 136u32, 137u32, 138u32, 139u32,
-                    140u32, 141u32, 142u32, 143u32, 144u32, 145u32, 65683u32, 262199u32,
-                    131135u32, 131136u32, 103u32, 104u32, 105u32, 106u32, 107u32, 108u32,
+                    140u32, 141u32, 142u32, 143u32, 65681u32, 262196u32, 131126u32,
+                    131127u32, 102u32, 103u32, 104u32, 105u32, 106u32, 107u32, 108u32,
                     109u32, 110u32, 111u32, 112u32, 113u32, 114u32, 115u32, 116u32,
                     117u32, 118u32, 119u32, 120u32, 121u32, 122u32, 123u32, 124u32,
                     125u32, 126u32, 127u32, 128u32, 129u32, 130u32, 131u32, 132u32,
                     133u32, 134u32, 135u32, 136u32, 137u32, 138u32, 139u32, 140u32,
-                    141u32, 142u32, 143u32, 144u32, 145u32, 146u32, 147u32, 196672u32,
-                    196671u32, 103u32, 104u32, 105u32, 106u32, 107u32, 108u32, 109u32,
-                    110u32, 111u32, 112u32, 113u32, 114u32, 115u32, 116u32, 117u32,
-                    118u32, 119u32, 120u32, 121u32, 122u32, 123u32, 124u32, 125u32,
-                    126u32, 127u32, 128u32, 129u32, 130u32, 131u32, 132u32, 133u32,
-                    134u32, 135u32, 136u32, 137u32, 138u32, 139u32, 140u32, 141u32,
-                    142u32, 143u32, 144u32, 145u32, 65683u32, 262207u32, 131137u32,
-                    131138u32, 103u32, 104u32, 105u32, 106u32, 107u32, 108u32, 109u32,
-                    110u32, 111u32, 112u32, 113u32, 114u32, 115u32, 116u32, 117u32,
-                    118u32, 119u32, 120u32, 121u32, 122u32, 123u32, 124u32, 125u32,
-                    126u32, 127u32, 128u32, 129u32, 130u32, 131u32, 132u32, 133u32,
-                    134u32, 135u32, 136u32, 137u32, 138u32, 139u32, 140u32, 141u32,
-                    142u32, 143u32, 144u32, 145u32, 146u32, 147u32, 196674u32, 196673u32,
+                    141u32, 142u32, 143u32, 144u32, 145u32, 196663u32, 196662u32, 102u32,
                     103u32, 104u32, 105u32, 106u32, 107u32, 108u32, 109u32, 110u32,
                     111u32, 112u32, 113u32, 114u32, 115u32, 116u32, 117u32, 118u32,
                     119u32, 120u32, 121u32, 122u32, 123u32, 124u32, 125u32, 126u32,
                     127u32, 128u32, 129u32, 130u32, 131u32, 132u32, 133u32, 134u32,
                     135u32, 136u32, 137u32, 138u32, 139u32, 140u32, 141u32, 142u32,
-                    143u32, 144u32, 145u32, 65683u32, 262209u32, 131141u32, 131142u32,
-                    196677u32, 196678u32, 262214u32, 131139u32, 131140u32, 196675u32,
-                    196676u32, 262212u32, 45u32, 46u32, 47u32, 131133u32, 131134u32,
-                    148u32, 149u32, 196670u32, 262206u32, 45u32, 46u32, 47u32, 196669u32,
-                    65685u32, 262205u32, 131143u32, 131144u32, 196679u32, 196680u32,
-                    262216u32, 131145u32, 131146u32, 196681u32, 196682u32, 262218u32,
-                    131147u32, 131148u32, 103u32, 104u32, 105u32, 106u32, 107u32, 108u32,
-                    109u32, 110u32, 111u32, 112u32, 113u32, 114u32, 115u32, 116u32,
-                    117u32, 118u32, 119u32, 120u32, 121u32, 122u32, 123u32, 124u32,
-                    125u32, 126u32, 127u32, 128u32, 129u32, 130u32, 131u32, 132u32,
-                    133u32, 134u32, 135u32, 136u32, 137u32, 138u32, 139u32, 140u32,
-                    141u32, 142u32, 143u32, 144u32, 145u32, 146u32, 147u32, 196684u32,
-                    196683u32, 103u32, 104u32, 105u32, 106u32, 107u32, 108u32, 109u32,
+                    143u32, 65681u32, 262198u32, 131134u32, 131135u32, 102u32, 103u32,
+                    104u32, 105u32, 106u32, 107u32, 108u32, 109u32, 110u32, 111u32,
+                    112u32, 113u32, 114u32, 115u32, 116u32, 117u32, 118u32, 119u32,
+                    120u32, 121u32, 122u32, 123u32, 124u32, 125u32, 126u32, 127u32,
+                    128u32, 129u32, 130u32, 131u32, 132u32, 133u32, 134u32, 135u32,
+                    136u32, 137u32, 138u32, 139u32, 140u32, 141u32, 142u32, 143u32,
+                    144u32, 145u32, 196671u32, 196670u32, 102u32, 103u32, 104u32, 105u32,
+                    106u32, 107u32, 108u32, 109u32, 110u32, 111u32, 112u32, 113u32,
+                    114u32, 115u32, 116u32, 117u32, 118u32, 119u32, 120u32, 121u32,
+                    122u32, 123u32, 124u32, 125u32, 126u32, 127u32, 128u32, 129u32,
+                    130u32, 131u32, 132u32, 133u32, 134u32, 135u32, 136u32, 137u32,
+                    138u32, 139u32, 140u32, 141u32, 142u32, 143u32, 65681u32, 262206u32,
+                    131136u32, 131137u32, 102u32, 103u32, 104u32, 105u32, 106u32, 107u32,
+                    108u32, 109u32, 110u32, 111u32, 112u32, 113u32, 114u32, 115u32,
+                    116u32, 117u32, 118u32, 119u32, 120u32, 121u32, 122u32, 123u32,
+                    124u32, 125u32, 126u32, 127u32, 128u32, 129u32, 130u32, 131u32,
+                    132u32, 133u32, 134u32, 135u32, 136u32, 137u32, 138u32, 139u32,
+                    140u32, 141u32, 142u32, 143u32, 144u32, 145u32, 196673u32, 196672u32,
+                    102u32, 103u32, 104u32, 105u32, 106u32, 107u32, 108u32, 109u32,
                     110u32, 111u32, 112u32, 113u32, 114u32, 115u32, 116u32, 117u32,
                     118u32, 119u32, 120u32, 121u32, 122u32, 123u32, 124u32, 125u32,
                     126u32, 127u32, 128u32, 129u32, 130u32, 131u32, 132u32, 133u32,
                     134u32, 135u32, 136u32, 137u32, 138u32, 139u32, 140u32, 141u32,
-                    142u32, 143u32, 144u32, 145u32, 65683u32, 262219u32, 131149u32,
-                    196685u32, 65614u32, 0u32, 48u32, 49u32, 50u32, 51u32, 52u32, 53u32,
-                    54u32, 55u32, 56u32, 57u32, 58u32, 59u32, 60u32, 61u32, 62u32, 63u32,
-                    64u32, 65u32, 66u32, 67u32, 68u32, 69u32, 70u32, 71u32, 72u32, 73u32,
-                    74u32, 75u32, 76u32, 77u32, 78u32, 79u32, 150u32, 65686u32, 151u32,
-                    65687u32, 131223u32, 65688u32, 131224u32,
+                    142u32, 143u32, 65681u32, 262208u32, 131140u32, 131141u32, 196676u32,
+                    196677u32, 262213u32, 131138u32, 131139u32, 196674u32, 196675u32,
+                    262211u32, 44u32, 45u32, 46u32, 131132u32, 131133u32, 146u32, 147u32,
+                    196669u32, 262205u32, 44u32, 45u32, 46u32, 196668u32, 65683u32,
+                    262204u32, 131142u32, 131143u32, 196678u32, 196679u32, 262215u32,
+                    131144u32, 131145u32, 196680u32, 196681u32, 262217u32, 131146u32,
+                    131147u32, 102u32, 103u32, 104u32, 105u32, 106u32, 107u32, 108u32,
+                    109u32, 110u32, 111u32, 112u32, 113u32, 114u32, 115u32, 116u32,
+                    117u32, 118u32, 119u32, 120u32, 121u32, 122u32, 123u32, 124u32,
+                    125u32, 126u32, 127u32, 128u32, 129u32, 130u32, 131u32, 132u32,
+                    133u32, 134u32, 135u32, 136u32, 137u32, 138u32, 139u32, 140u32,
+                    141u32, 142u32, 143u32, 144u32, 145u32, 196683u32, 196682u32, 102u32,
+                    103u32, 104u32, 105u32, 106u32, 107u32, 108u32, 109u32, 110u32,
+                    111u32, 112u32, 113u32, 114u32, 115u32, 116u32, 117u32, 118u32,
+                    119u32, 120u32, 121u32, 122u32, 123u32, 124u32, 125u32, 126u32,
+                    127u32, 128u32, 129u32, 130u32, 131u32, 132u32, 133u32, 134u32,
+                    135u32, 136u32, 137u32, 138u32, 139u32, 140u32, 141u32, 142u32,
+                    143u32, 65681u32, 262218u32, 131148u32, 196684u32, 65613u32, 0u32,
+                    47u32, 48u32, 49u32, 50u32, 51u32, 52u32, 53u32, 54u32, 55u32, 56u32,
+                    57u32, 58u32, 59u32, 60u32, 61u32, 62u32, 63u32, 64u32, 65u32, 66u32,
+                    67u32, 68u32, 69u32, 70u32, 71u32, 72u32, 73u32, 74u32, 75u32, 76u32,
+                    77u32, 78u32, 148u32, 65684u32, 149u32, 65685u32, 131221u32,
+                    65686u32, 131222u32,
                 ];
                 static RULESET_OFFSETS: &[u32] = &[
-                    0u32, 37u32, 40u32, 41u32, 42u32, 73u32, 75u32, 97u32, 98u32, 99u32,
-                    104u32, 109u32, 135u32, 136u32, 137u32, 138u32, 139u32, 168u32,
-                    171u32, 172u32, 186u32, 189u32, 191u32, 192u32, 193u32, 196u32,
-                    198u32, 199u32, 200u32, 203u32, 205u32, 206u32, 207u32, 208u32,
-                    219u32, 220u32, 221u32, 222u32, 223u32, 234u32, 260u32, 261u32,
-                    262u32, 269u32, 270u32, 271u32, 272u32, 273u32, 295u32, 301u32,
-                    323u32, 328u32, 351u32, 358u32, 359u32, 361u32, 387u32, 388u32,
-                    389u32, 402u32, 406u32, 407u32, 408u32, 409u32, 410u32, 411u32,
-                    412u32, 413u32, 414u32, 415u32, 416u32, 423u32, 425u32, 454u32,
-                    455u32, 456u32, 463u32, 488u32, 489u32, 499u32, 504u32, 509u32,
-                    510u32, 511u32, 512u32, 513u32, 514u32, 516u32, 517u32, 518u32,
-                    519u32, 520u32, 527u32, 528u32, 531u32, 532u32, 533u32, 534u32,
-                    535u32, 565u32, 572u32, 573u32, 574u32, 575u32, 580u32, 581u32,
-                    582u32, 589u32, 590u32, 591u32, 596u32, 597u32, 600u32, 647u32,
-                    648u32, 649u32, 694u32, 695u32, 696u32, 697u32, 698u32, 700u32,
-                    701u32, 702u32, 703u32, 704u32, 751u32, 752u32, 797u32, 798u32,
-                    845u32, 846u32, 891u32, 892u32, 939u32, 940u32, 985u32, 986u32,
-                    1033u32, 1034u32, 1079u32, 1080u32, 1082u32, 1083u32, 1084u32,
-                    1085u32, 1087u32, 1088u32, 1089u32, 1090u32, 1097u32, 1098u32,
-                    1099u32, 1104u32, 1105u32, 1107u32, 1108u32, 1109u32, 1110u32,
-                    1112u32, 1113u32, 1114u32, 1115u32, 1162u32, 1163u32, 1208u32,
-                    1209u32, 1210u32, 1211u32, 1212u32, 1249u32, 1250u32, 1251u32,
-                    1252u32,
+                    0u32, 37u32, 40u32, 41u32, 42u32, 72u32, 74u32, 95u32, 96u32, 97u32,
+                    102u32, 107u32, 132u32, 133u32, 134u32, 135u32, 136u32, 164u32,
+                    167u32, 168u32, 182u32, 185u32, 187u32, 188u32, 189u32, 192u32,
+                    194u32, 195u32, 196u32, 199u32, 201u32, 202u32, 203u32, 204u32,
+                    215u32, 216u32, 217u32, 218u32, 219u32, 229u32, 254u32, 255u32,
+                    256u32, 262u32, 263u32, 264u32, 265u32, 266u32, 287u32, 292u32,
+                    314u32, 320u32, 321u32, 323u32, 348u32, 349u32, 350u32, 362u32,
+                    366u32, 367u32, 368u32, 369u32, 370u32, 371u32, 372u32, 373u32,
+                    374u32, 375u32, 376u32, 382u32, 384u32, 412u32, 413u32, 414u32,
+                    420u32, 444u32, 445u32, 455u32, 460u32, 465u32, 466u32, 467u32,
+                    468u32, 469u32, 470u32, 472u32, 473u32, 474u32, 475u32, 476u32,
+                    483u32, 484u32, 487u32, 488u32, 489u32, 490u32, 491u32, 521u32,
+                    528u32, 529u32, 530u32, 531u32, 536u32, 537u32, 538u32, 545u32,
+                    546u32, 547u32, 552u32, 553u32, 556u32, 602u32, 603u32, 604u32,
+                    648u32, 649u32, 650u32, 651u32, 652u32, 654u32, 655u32, 656u32,
+                    657u32, 658u32, 704u32, 705u32, 749u32, 750u32, 796u32, 797u32,
+                    841u32, 842u32, 888u32, 889u32, 933u32, 934u32, 980u32, 981u32,
+                    1025u32, 1026u32, 1028u32, 1029u32, 1030u32, 1031u32, 1033u32,
+                    1034u32, 1035u32, 1036u32, 1043u32, 1044u32, 1045u32, 1050u32,
+                    1051u32, 1053u32, 1054u32, 1055u32, 1056u32, 1058u32, 1059u32,
+                    1060u32, 1061u32, 1107u32, 1108u32, 1152u32, 1153u32, 1154u32,
+                    1155u32, 1156u32, 1193u32, 1194u32, 1195u32, 1196u32,
                 ];
                 static CAN_ACCEPT_ERROR: &[u8] = &[
                     0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 2u8, 2u8, 0u8, 0u8, 0u8, 2u8, 2u8,
                     2u8, 2u8, 1u8, 0u8, 0u8, 0u8, 0u8, 1u8, 0u8, 0u8, 0u8, 1u8, 0u8, 0u8,
                     0u8, 1u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 2u8, 2u8, 0u8, 0u8, 0u8, 2u8,
-                    0u8, 2u8, 2u8, 2u8, 2u8, 0u8, 2u8, 0u8, 2u8, 0u8, 0u8, 0u8, 0u8, 0u8,
-                    0u8, 2u8, 1u8, 1u8, 0u8, 2u8, 0u8, 2u8, 0u8, 2u8, 0u8, 2u8, 0u8, 2u8,
-                    0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 1u8, 1u8, 0u8, 0u8, 0u8,
+                    0u8, 2u8, 2u8, 2u8, 2u8, 0u8, 2u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 2u8,
+                    1u8, 1u8, 0u8, 2u8, 0u8, 2u8, 0u8, 2u8, 0u8, 2u8, 0u8, 2u8, 0u8, 0u8,
+                    0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 1u8, 1u8, 0u8, 0u8, 0u8, 0u8, 0u8,
+                    1u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 1u8, 1u8,
+                    0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 1u8, 0u8, 0u8, 0u8, 0u8, 1u8, 0u8, 0u8,
+                    0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 1u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8,
+                    0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 1u8,
+                    0u8, 0u8, 0u8, 1u8, 0u8, 0u8, 0u8, 1u8, 0u8, 0u8, 0u8, 0u8, 1u8, 0u8,
                     0u8, 0u8, 1u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8,
-                    1u8, 1u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 1u8, 0u8, 0u8, 0u8, 0u8, 1u8,
-                    0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 1u8, 0u8, 0u8, 0u8, 0u8, 0u8,
-                    0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8,
-                    0u8, 1u8, 0u8, 0u8, 0u8, 1u8, 0u8, 0u8, 0u8, 1u8, 0u8, 0u8, 0u8, 0u8,
-                    1u8, 0u8, 0u8, 0u8, 1u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8,
-                    0u8, 0u8, 0u8, 0u8, 0u8,
+                    0u8, 0u8, 0u8,
                 ];
-                let num_states = 173usize;
+                let num_states = 171usize;
                 let mut states = Vec::with_capacity(num_states);
                 for i in 0..num_states {
                     let term_start = SHIFT_TERM_OFFSETS[i] as usize;
diff --git a/rusty_lr_parser/src/pattern.rs b/rusty_lr_parser/src/pattern.rs
index 504b89f6..ca1ffebb 100644
--- a/rusty_lr_parser/src/pattern.rs
+++ b/rusty_lr_parser/src/pattern.rs
@@ -26,7 +26,6 @@ pub enum PatternInternal {
     Question(Box<Pattern>),
     Exclamation(Box<Pattern>),
     TerminalSet(bool, BTreeSet<usize>),
-    Lookaheads(Box<Pattern>, bool, BTreeSet<usize>),
     Group(Vec<Vec<Pattern>>),
     Byte(Located<u8>),
     ByteString(Located<Vec<u8>>),
@@ -162,7 +161,6 @@ impl Pattern {
                             { vec![A] }
                         })),
                         separator_location: Location::CallSite,
-                        lookaheads: None,
                         prec: None,
                         dprec: None,
                         is_used: true,
@@ -186,7 +184,6 @@ impl Pattern {
                             { Ap.push(A); Ap }
                         })),
                         separator_location: Location::CallSite,
-                        lookaheads: None,
                         prec: None,
                         dprec: None,
                         is_used: true,
@@ -226,7 +223,6 @@ impl Pattern {
                         }],
                         reduce_action: None,
                         separator_location: Location::CallSite,
-                        lookaheads: None,
                         prec: None,
                         dprec: None,
                         is_used: true,
@@ -248,7 +244,6 @@ impl Pattern {
                         ],
                         reduce_action: None,
                         separator_location: Location::CallSite,
-                        lookaheads: None,
                         prec: None,
                         dprec: None,
                         is_used: true,
@@ -305,7 +300,6 @@ impl Pattern {
                         }],
                         reduce_action: Some(ReduceAction::Identity(0)),
                         separator_location: Location::CallSite,
-                        lookaheads: None,
                         prec: None,
                         dprec: None,
                         is_used: true,
@@ -316,7 +310,6 @@ impl Pattern {
                             { vec![] }
                         })),
                         separator_location: Location::CallSite,
-                        lookaheads: None,
                         prec: None,
                         dprec: None,
                         is_used: true,
@@ -356,7 +349,6 @@ impl Pattern {
                         }],
                         reduce_action: None,
                         separator_location: Location::CallSite,
-                        lookaheads: None,
                         prec: None,
                         dprec: None,
                         is_used: true,
@@ -365,7 +357,6 @@ impl Pattern {
                         tokens: vec![],
                         reduce_action: None,
                         separator_location: Location::CallSite,
-                        lookaheads: None,
                         prec: None,
                         dprec: None,
                         is_used: true,
@@ -414,7 +405,6 @@ impl Pattern {
                         }],
                         reduce_action: Some(ReduceAction::new_custom(quote! { Some(A) })),
                         separator_location: Location::CallSite,
-                        lookaheads: None,
                         prec: None,
                         dprec: None,
                         is_used: true,
@@ -425,7 +415,6 @@ impl Pattern {
                             { None }
                         })),
                         separator_location: Location::CallSite,
-                        lookaheads: None,
                         prec: None,
                         dprec: None,
                         is_used: true,
@@ -465,7 +454,6 @@ impl Pattern {
                         }],
                         reduce_action: None,
                         separator_location: Location::CallSite,
-                        lookaheads: None,
                         prec: None,
                         dprec: None,
                         is_used: true,
@@ -474,7 +462,6 @@ impl Pattern {
                         tokens: vec![],
                         reduce_action: None,
                         separator_location: Location::CallSite,
-                        lookaheads: None,
                         prec: None,
                         dprec: None,
                         is_used: true,
@@ -540,7 +527,6 @@ impl Pattern {
                         }],
                         reduce_action: Some(ReduceAction::Identity(0)),
                         separator_location: Location::CallSite,
-                        lookaheads: None,
                         prec: None,
                         dprec: None,
                         is_used: true,
@@ -569,97 +555,6 @@ impl Pattern {
                     mapto: None,
                 })
             }
-            PatternInternal::Lookaheads(pattern, negate, lookaheads) => {
-                let lookaheads = if *negate {
-                    grammar.negate_terminal_set(lookaheads)
-                } else {
-                    lookaheads.clone()
-                };
-                let base_rule = pattern.to_token(grammar, pattern_cache, root_location)?;
-
-                let newrule_idx = grammar.nonterminals.len();
-                let newrule_name = Located::new(
-                    format!("_{}LH{}", base_rule.name.value(), newrule_idx),
-                    root_location,
-                );
-
-                if let Some(base_typename) = &base_rule.ruletype {
-                    let rule = Rule {
-                        tokens: vec![TokenMapped {
-                            token: base_rule.token,
-                            mapto: Some(Located::new("__token0".to_string(), Location::CallSite)),
-                            location: Location::CallSite,
-                            reduce_action_chains: Vec::new(),
-                        }],
-                        reduce_action: Some(ReduceAction::Identity(0)),
-                        separator_location: Location::CallSite,
-                        lookaheads: Some(lookaheads),
-                        prec: None,
-                        dprec: None,
-                        is_used: true,
-                    };
-
-                    let nonterm_info = NonTerminalInfo {
-                        ruletype_boxed: false,
-                        name: newrule_name.clone(),
-                        pretty_name: self.pretty_name.clone(),
-                        ruletype: Some(base_typename.clone()),
-                        rules: vec![rule],
-                        root_location: Some(root_location),
-                        protected: false,
-                        nonterm_type: Some(NonTerminalType::Lookahead),
-                    };
-                    grammar.nonterminals.push(nonterm_info);
-                    grammar
-                        .nonterminals_index
-                        .insert(newrule_name.value().clone(), newrule_idx);
-
-                    Ok(PatternToToken {
-                        name: newrule_name,
-                        token: Token::NonTerm(newrule_idx),
-                        ruletype: Some(base_typename.clone()),
-                        mapto: base_rule.mapto.clone(),
-                    })
-                } else {
-                    let rule = Rule {
-                        tokens: vec![TokenMapped {
-                            token: base_rule.token,
-                            mapto: None,
-                            location: Location::CallSite,
-                            reduce_action_chains: Vec::new(),
-                        }],
-                        reduce_action: None,
-                        separator_location: Location::CallSite,
-                        lookaheads: Some(lookaheads),
-                        prec: None,
-                        dprec: None,
-                        is_used: true,
-                    };
-
-                    let nonterm_info = NonTerminalInfo {
-                        ruletype_boxed: false,
-                        name: newrule_name.clone(),
-                        pretty_name: self.pretty_name.clone(),
-                        ruletype: None,
-                        rules: vec![rule],
-                        root_location: Some(root_location),
-                        protected: false,
-                        nonterm_type: Some(NonTerminalType::Lookahead),
-                    };
-                    grammar.nonterminals.push(nonterm_info);
-                    grammar
-                        .nonterminals_index
-                        .insert(newrule_name.value().clone(), newrule_idx);
-
-                    Ok(PatternToToken {
-                        name: newrule_name,
-                        token: Token::NonTerm(newrule_idx),
-                        ruletype: None,
-                        mapto: base_rule.mapto.clone(),
-                    })
-                }
-            }
-
             PatternInternal::Group(group) => {
                 debug_assert!(group.len() > 0);
 
@@ -701,7 +596,6 @@ impl Pattern {
                                 tokens,
                                 reduce_action: None,
                                 separator_location: Location::CallSite,
-                                lookaheads: None,
                                 prec: None,
                                 dprec: None,
                                 is_used: true,
@@ -717,7 +611,6 @@ impl Pattern {
                                 tokens,
                                 reduce_action: Some(ReduceAction::Identity(unique_child_idx)),
                                 separator_location: Location::CallSite,
-                                lookaheads: None,
                                 prec: None,
                                 dprec: None,
                                 is_used: true,
@@ -742,7 +635,6 @@ impl Pattern {
                                 tokens,
                                 reduce_action: Some(ReduceAction::new_custom(initializer)),
                                 separator_location: Location::CallSite,
-                                lookaheads: None,
                                 prec: None,
                                 dprec: None,
                                 is_used: true,
@@ -826,7 +718,6 @@ impl Pattern {
                         .collect(),
                     reduce_action: None,
                     separator_location: Location::CallSite,
-                    lookaheads: None,
                     prec: None,
                     dprec: None,
                     is_used: true,
@@ -889,7 +780,6 @@ impl Pattern {
                         .collect(),
                     reduce_action: None,
                     separator_location: Location::CallSite,
-                    lookaheads: None,
                     prec: None,
                     dprec: None,
                     is_used: true,
@@ -940,7 +830,6 @@ impl Pattern {
                             { vec![__token0] }
                         })),
                         separator_location: Location::CallSite,
-                        lookaheads: None,
                         prec: None,
                         dprec: None,
                         is_used: true,
@@ -979,7 +868,6 @@ impl Pattern {
                             }
                         })),
                         separator_location: Location::CallSite,
-                        lookaheads: None,
                         prec: None,
                         dprec: None,
                         is_used: true,
@@ -1016,7 +904,6 @@ impl Pattern {
                         }],
                         reduce_action: None,
                         separator_location: Location::CallSite,
-                        lookaheads: None,
                         prec: None,
                         dprec: None,
                         is_used: true,
@@ -1044,7 +931,6 @@ impl Pattern {
                         ],
                         reduce_action: None,
                         separator_location: Location::CallSite,
-                        lookaheads: None,
                         prec: None,
                         dprec: None,
                         is_used: true,
@@ -1102,7 +988,6 @@ impl Pattern {
                         }],
                         reduce_action: Some(ReduceAction::Identity(0)),
                         separator_location: Location::CallSite,
-                        lookaheads: None,
                         prec: None,
                         dprec: None,
                         is_used: true,
@@ -1113,7 +998,6 @@ impl Pattern {
                             { vec![] }
                         })),
                         separator_location: Location::CallSite,
-                        lookaheads: None,
                         prec: None,
                         dprec: None,
                         is_used: true,
@@ -1153,7 +1037,6 @@ impl Pattern {
                         }],
                         reduce_action: None,
                         separator_location: Location::CallSite,
-                        lookaheads: None,
                         prec: None,
                         dprec: None,
                         is_used: true,
@@ -1162,7 +1045,6 @@ impl Pattern {
                         tokens: vec![],
                         reduce_action: None,
                         separator_location: Location::CallSite,
-                        lookaheads: None,
                         prec: None,
                         dprec: None,
                         is_used: true,
