/* * Copyright 2000-2017 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* The following code was generated by JFlex 1.7.0-SNAPSHOT tweaked for IntelliJ platform */ package org.jetbrains.plugins.groovy.lang.lexer; import com.intellij.lexer.FlexLexer; import com.intellij.psi.TokenType; import com.intellij.psi.tree.IElementType; import com.intellij.util.containers.Stack; import static org.jetbrains.plugins.groovy.lang.groovydoc.parser.GroovyDocElementTypes.*; import static org.jetbrains.plugins.groovy.lang.lexer.GroovyTokenTypes.*; /** * This class is a scanner generated by * <a href="http://www.jflex.de/">JFlex</a> 1.7.0-SNAPSHOT * from the specification file <tt>groovy.flex</tt> */ public class _GroovyLexer extends GroovyLexerBase implements FlexLexer { /** This character denotes the end of file */ public static final int YYEOF = -1; /** initial size of the lookahead buffer */ private static final int ZZ_BUFFERSIZE = 16384; /** lexical states */ public static final int YYINITIAL = 0; public static final int IN_INNER_BLOCK = 2; public static final int DIVISION_EXPECTED = 4; public static final int IN_SINGLE_GSTRING = 6; public static final int IN_TRIPLE_GSTRING = 8; public static final int IN_SLASHY_STRING = 10; public static final int IN_DOLLAR_SLASH_STRING = 12; public static final int IN_GSTRING_DOLLAR = 14; public static final int IN_GSTRING_DOT = 16; public static final int IN_GSTRING_DOT_IDENT = 18; public static final int NLS_AFTER_COMMENT = 20; public static final int NLS_AFTER_LBRACE = 22; public static final int NLS_AFTER_NLS = 24; /** * ZZ_LEXSTATE[l] is the state in the DFA for the lexical state l * ZZ_LEXSTATE[l+1] is the state in the DFA for the lexical state l * at the beginning of a line * l is of the form l = 2*k, k a non negative integer */ private static final int ZZ_LEXSTATE[] = { 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12 }; /** * Translates characters to character classes * Chosen bits are [11, 6, 4] * Total runtime size is 13568 bytes */ public static int ZZ_CMAP(int ch) { return ZZ_CMAP_A[(ZZ_CMAP_Y[(ZZ_CMAP_Z[ch>>10]<<6)|((ch>>4)&0x3f)]<<4)|(ch&0xf)]; } /* The ZZ_CMAP_Z table has 1088 entries */ static final char ZZ_CMAP_Z[] = zzUnpackCMap( "\1\0\1\1\1\2\1\3\1\4\1\5\1\6\1\7\1\10\2\11\1\12\1\13\6\14\1\15\23\14\1\16"+ "\1\14\1\17\1\20\12\14\1\21\10\11\1\22\1\23\1\24\1\25\1\26\1\27\1\30\1\31\1"+ "\32\1\11\1\33\1\34\2\11\1\14\1\35\3\11\1\36\10\11\1\37\1\40\20\11\1\41\2\11"+ "\1\42\5\11\1\43\4\11\1\44\1\45\4\11\51\14\1\46\3\14\1\47\1\50\4\14\1\51\12"+ "\11\1\52\u0381\11"); /* The ZZ_CMAP_Y table has 2752 entries */ static final char ZZ_CMAP_Y[] = zzUnpackCMap( "\1\0\1\1\1\2\1\3\1\4\1\5\1\6\1\7\1\10\1\1\1\11\1\12\1\13\1\14\1\13\1\14\34"+ "\13\1\15\1\16\1\17\10\1\1\20\1\21\1\13\1\22\4\13\1\23\10\13\1\24\12\13\1\25"+ "\1\13\1\26\1\25\1\13\1\27\4\1\1\13\1\30\1\31\2\1\2\13\1\30\1\1\1\32\1\25\5"+ "\13\1\33\1\34\1\35\1\1\1\36\1\13\1\1\1\37\5\13\1\40\1\41\1\42\1\13\1\30\1"+ "\43\1\13\1\44\1\45\1\1\1\13\1\46\4\1\1\13\1\47\4\1\1\50\2\13\1\51\1\1\1\52"+ "\1\16\1\25\1\53\1\54\1\55\1\56\1\57\1\60\2\16\1\61\1\54\1\55\1\62\1\1\1\63"+ "\1\1\1\64\1\65\1\22\1\55\1\66\1\1\1\67\1\16\1\70\1\71\1\54\1\55\1\66\1\1\1"+ "\60\1\16\1\41\1\72\1\73\1\74\1\75\1\1\1\67\2\1\1\76\1\36\1\55\1\51\1\1\1\77"+ "\1\16\1\1\1\76\1\36\1\55\1\100\1\1\1\57\1\16\1\101\1\76\1\36\1\13\1\102\1"+ "\57\1\103\1\16\1\42\1\104\1\105\1\13\1\106\1\107\3\1\1\25\2\13\1\110\1\107"+ "\3\1\1\111\1\112\1\113\1\114\1\115\1\116\2\1\1\67\3\1\1\117\1\13\1\120\1\1"+ "\1\121\7\1\2\13\1\30\1\103\1\1\1\122\1\123\1\124\1\125\1\1\2\13\1\126\2\13"+ "\1\127\24\13\1\130\1\131\2\13\1\130\2\13\1\132\1\133\1\14\3\13\1\133\3\13"+ "\1\30\2\1\1\13\1\1\5\13\1\134\1\25\45\13\1\135\1\13\1\25\1\30\4\13\1\30\1"+ "\136\1\137\1\16\1\13\1\16\1\13\1\16\1\137\1\67\3\13\1\140\1\1\1\141\4\1\5"+ "\13\1\27\2\13\1\142\4\13\1\40\1\13\1\143\3\1\1\13\1\144\1\47\2\13\1\145\1"+ "\13\1\75\3\1\1\13\1\107\3\13\1\47\4\1\1\146\5\1\1\104\2\13\1\140\1\147\3\1"+ "\1\150\1\13\1\151\1\42\2\13\1\40\1\1\2\13\1\140\1\1\1\37\1\42\1\13\1\144\6"+ "\1\1\152\1\153\14\13\4\1\21\13\1\134\2\13\1\134\1\154\1\13\1\144\3\13\1\155"+ "\1\156\1\157\1\120\1\156\2\1\1\160\4\1\1\161\1\1\1\120\6\1\1\162\1\163\1\164"+ "\1\165\1\166\3\1\1\167\147\1\2\13\1\143\2\13\1\143\10\13\1\170\1\171\2\13"+ "\1\126\3\13\1\172\1\1\1\13\1\107\4\173\4\1\1\103\35\1\1\174\2\1\1\175\1\25"+ "\4\13\1\176\1\25\4\13\1\127\1\104\1\13\1\144\1\25\4\13\1\143\1\1\1\13\1\30"+ "\3\1\1\13\40\1\133\13\1\40\4\1\135\13\1\40\2\1\10\13\1\120\4\1\2\13\1\144"+ "\20\13\1\120\1\13\1\177\1\1\2\13\1\143\1\103\1\13\1\144\4\13\1\40\2\1\1\200"+ "\1\201\5\13\1\202\1\13\1\144\1\27\3\1\1\200\1\203\1\13\1\31\1\1\3\13\1\140"+ "\1\201\2\13\1\140\3\1\1\204\1\42\1\13\1\40\1\13\1\107\1\1\1\13\1\120\1\50"+ "\2\13\1\31\1\103\1\1\1\205\1\206\2\13\1\46\1\1\1\207\1\1\1\13\1\210\3\13\1"+ "\211\1\212\1\213\1\30\1\64\1\214\1\215\1\173\2\13\1\127\1\40\7\13\1\31\1\1"+ "\72\13\1\140\1\13\1\216\2\13\1\145\20\1\26\13\1\144\6\13\1\75\2\1\1\107\1"+ "\217\1\55\1\220\1\221\6\13\1\16\1\1\1\150\25\13\1\144\1\1\4\13\1\201\2\13"+ "\1\27\2\1\1\145\7\1\1\205\7\13\1\120\2\1\1\25\1\30\1\25\1\30\1\222\4\13\1"+ "\143\1\223\1\224\2\1\1\225\1\13\1\14\1\226\2\144\2\1\7\13\1\30\30\1\1\13\1"+ "\120\3\13\1\67\2\1\2\13\1\1\1\13\1\227\2\13\1\40\1\13\1\144\2\13\1\230\3\1"+ "\11\13\1\144\6\1\2\13\1\27\3\13\1\140\11\1\23\13\1\107\1\13\1\40\1\27\11\1"+ "\1\231\2\13\1\232\1\13\1\40\1\13\1\107\1\13\1\143\4\1\1\13\1\233\1\13\1\40"+ "\1\13\1\75\4\1\3\13\1\234\4\1\1\67\1\235\1\13\1\140\2\1\1\13\1\120\1\13\1"+ "\120\2\1\1\117\1\13\1\47\1\1\3\13\1\40\1\13\1\40\1\13\1\31\1\13\1\16\6\1\4"+ "\13\1\46\3\1\3\13\1\31\3\13\1\31\60\1\1\150\2\13\1\27\4\1\1\150\2\13\2\1\1"+ "\13\1\46\1\1\1\150\1\13\1\107\2\1\2\13\1\236\1\150\2\13\1\31\1\237\1\240\2"+ "\1\1\13\1\22\1\145\5\1\1\241\1\242\1\46\2\13\1\143\2\1\1\71\1\54\1\55\1\66"+ "\1\1\1\243\1\16\21\1\3\13\1\1\1\244\13\1\2\13\1\143\2\1\1\245\2\1\3\13\1\1"+ "\1\246\3\1\2\13\1\30\5\1\1\13\1\75\30\1\4\13\1\1\1\103\34\1\3\13\1\46\20\1"+ "\71\13\1\75\16\1\14\13\1\140\53\1\2\13\1\143\75\1\44\13\1\107\33\1\43\13\1"+ "\46\1\13\1\143\7\1\1\13\1\144\1\1\3\13\1\1\1\140\1\1\1\150\1\247\1\13\67\1"+ "\4\13\1\47\1\67\3\1\1\150\6\1\1\16\77\1\6\13\1\30\1\120\1\46\1\75\66\1\5\13"+ "\1\205\3\13\1\137\1\250\1\251\1\252\3\13\1\253\1\254\1\13\1\255\1\256\1\36"+ "\24\13\1\257\1\13\1\36\1\127\1\13\1\127\1\13\1\205\1\13\1\205\1\143\1\13\1"+ "\143\1\13\1\55\1\13\1\55\1\13\1\207\3\1\14\13\1\47\123\1\1\252\1\13\1\260"+ "\1\261\1\262\1\263\1\264\1\265\1\266\1\145\1\267\1\145\24\1\55\13\1\107\2"+ "\1\103\13\1\47\15\13\1\144\150\13\1\16\25\1\41\13\1\144\36\1"); /* The ZZ_CMAP_A table has 2944 entries */ static final char ZZ_CMAP_A[] = zzUnpackCMap( "\11\0\1\4\1\2\1\1\1\5\1\3\22\0\1\4\1\12\1\46\1\11\1\44\1\104\1\107\1\45\1"+ "\73\1\74\1\10\1\31\1\100\1\32\1\42\1\7\1\34\1\37\10\14\1\77\1\110\1\101\1"+ "\71\1\102\1\72\1\111\1\13\1\36\1\13\1\26\1\30\1\20\1\16\1\43\1\24\2\43\1\22"+ "\13\43\1\41\2\43\1\75\1\6\1\76\1\105\1\33\1\0\1\51\1\35\1\52\1\25\1\27\1\17"+ "\1\15\1\65\1\23\1\43\1\53\1\21\1\57\1\61\1\60\1\50\1\43\1\56\1\54\1\55\1\62"+ "\1\63\1\67\1\40\1\64\1\66\1\70\1\106\1\47\1\103\6\0\1\1\24\0\1\43\12\0\1\43"+ "\4\0\1\43\5\0\27\43\1\0\12\43\4\0\14\43\16\0\5\43\7\0\1\43\1\0\1\43\1\0\5"+ "\43\1\0\2\43\2\0\4\43\1\0\1\43\6\0\1\43\1\0\3\43\1\0\1\43\1\0\4\43\1\0\23"+ "\43\1\0\13\43\10\0\6\43\1\0\26\43\2\0\1\43\6\0\10\43\10\0\13\43\5\0\3\43\33"+ "\0\6\43\1\0\1\43\17\0\2\43\7\0\2\43\12\0\3\43\2\0\2\43\1\0\16\43\15\0\11\43"+ "\13\0\1\43\30\0\6\43\4\0\2\43\4\0\1\43\5\0\6\43\4\0\1\43\11\0\1\43\3\0\1\43"+ "\7\0\11\43\7\0\5\43\17\0\26\43\3\0\1\43\2\0\1\43\7\0\11\43\4\0\10\43\2\0\2"+ "\43\2\0\26\43\1\0\7\43\1\0\1\43\3\0\4\43\3\0\1\43\20\0\1\43\15\0\2\43\1\0"+ "\1\43\5\0\6\43\4\0\2\43\1\0\2\43\1\0\2\43\1\0\2\43\17\0\4\43\1\0\1\43\3\0"+ "\3\43\20\0\11\43\1\0\2\43\1\0\2\43\1\0\5\43\3\0\1\43\2\0\1\43\30\0\1\43\13"+ "\0\10\43\2\0\1\43\3\0\1\43\1\0\6\43\3\0\3\43\1\0\4\43\3\0\2\43\1\0\1\43\1"+ "\0\2\43\3\0\2\43\3\0\3\43\3\0\14\43\13\0\10\43\1\0\2\43\10\0\3\43\5\0\4\43"+ "\1\0\5\43\3\0\1\43\3\0\2\43\15\0\13\43\2\0\1\43\21\0\1\43\5\0\22\43\3\0\10"+ "\43\1\0\11\43\1\0\1\43\2\0\7\43\11\0\1\43\1\0\2\43\15\0\2\43\1\0\1\43\2\0"+ "\2\43\1\0\1\43\2\0\1\43\6\0\4\43\1\0\7\43\1\0\3\43\1\0\1\43\1\0\1\43\2\0\2"+ "\43\1\0\4\43\1\0\2\43\11\0\1\43\2\0\5\43\1\0\1\43\25\0\14\43\1\0\24\43\13"+ "\0\5\43\3\0\6\43\4\0\4\43\3\0\1\43\3\0\2\43\7\0\3\43\4\0\15\43\14\0\1\43\1"+ "\0\6\43\1\0\1\43\5\0\1\43\2\0\13\43\1\0\15\43\1\0\4\43\2\0\7\43\1\0\1\43\1"+ "\0\4\43\2\0\1\43\1\0\4\43\2\0\7\43\1\0\1\43\1\0\4\43\2\0\16\43\2\0\6\43\2"+ "\0\15\43\2\0\1\43\1\0\10\43\7\0\15\43\1\0\6\43\23\0\1\43\4\0\1\43\3\0\11\43"+ "\1\0\1\43\5\0\17\43\1\0\16\43\2\0\14\43\13\0\1\43\15\0\7\43\7\0\16\43\15\0"+ "\2\43\11\0\4\43\1\0\4\43\3\0\2\43\11\0\10\43\1\0\1\43\1\0\1\43\1\0\1\43\1"+ "\0\6\43\1\0\7\43\1\0\1\43\3\0\3\43\1\0\7\43\3\0\4\43\2\0\6\43\14\0\2\1\7\0"+ "\1\43\15\0\1\43\2\0\1\43\4\0\1\43\2\0\12\43\1\0\1\43\3\0\5\43\6\0\1\43\1\0"+ "\1\43\1\0\1\43\1\0\4\43\1\0\13\43\2\0\4\43\5\0\5\43\4\0\1\43\4\0\2\43\13\0"+ "\5\43\6\0\4\43\3\0\2\43\14\0\10\43\7\0\10\43\1\0\7\43\6\0\2\43\12\0\5\43\5"+ "\0\2\43\3\0\7\43\6\0\3\43\12\0\2\43\13\0\11\43\2\0\27\43\2\0\7\43\1\0\3\43"+ "\1\0\4\43\1\0\4\43\2\0\6\43\3\0\1\43\1\0\1\43\2\0\5\43\1\0\12\43\12\0\5\43"+ "\1\0\3\43\1\0\10\43\4\0\7\43\3\0\1\43\3\0\2\43\1\0\1\43\3\0\2\43\2\0\5\43"+ "\2\0\1\43\1\0\1\43\30\0\3\43\3\0\6\43\2\0\6\43\2\0\6\43\11\0\7\43\4\0\5\43"+ "\3\0\5\43\5\0\1\43\1\0\10\43\1\0\5\43\1\0\1\43\1\0\2\43\1\0\2\43\1\0\12\43"+ "\6\0\12\43\2\0\6\43\2\0\6\43\2\0\6\43\2\0\3\43\3\0\14\43\1\0\16\43\1\0\2\43"+ "\1\0\2\43\1\0\10\43\6\0\4\43\4\0\16\43\2\0\1\43\1\0\14\43\1\0\2\43\3\0\1\43"+ "\2\0\4\43\1\0\2\43\12\0\10\43\6\0\6\43\1\0\3\43\1\0\12\43\3\0\1\43\12\0\4"+ "\43\25\0\1\43\1\0\1\43\3\0\7\43\1\0\1\43\1\0\4\43\1\0\17\43\1\0\2\43\14\0"+ "\3\43\4\0\2\43\1\0\1\43\20\0\4\43\10\0\1\43\13\0\10\43\5\0\3\43\2\0\1\43\2"+ "\0\2\43\2\0\4\43\1\0\14\43\1\0\1\43\1\0\7\43\1\0\21\43\1\0\4\43\2\0\10\43"+ "\1\0\7\43\1\0\14\43\1\0\4\43\1\0\5\43\1\0\1\43\3\0\14\43\2\0\10\43\1\0\2\43"+ "\1\0\1\43\2\0\1\43\1\0\12\43\1\0\4\43\1\0\1\43\1\0\1\43\6\0\1\43\4\0\1\43"+ "\1\0\1\43\1\0\1\43\1\0\3\43\1\0\2\43\1\0\1\43\2\0\1\43\1\0\1\43\1\0\1\43\1"+ "\0\1\43\1\0\1\43\1\0\2\43\1\0\1\43\2\0\4\43\1\0\7\43\1\0\4\43\1\0\4\43\1\0"+ "\1\43\1\0\12\43\1\0\5\43\1\0\3\43\1\0\5\43\1\0\5\43"); /** * Translates DFA states to action switch labels. */ private static final int [] ZZ_ACTION = zzUnpackAction(); private static final String ZZ_ACTION_PACKED_0 = "\15\0\1\1\1\2\2\3\1\1\1\4\1\5\1\1"+ "\1\6\1\7\1\10\5\7\1\11\1\12\1\10\1\7"+ "\1\13\1\7\1\14\1\15\1\16\11\7\1\17\1\20"+ "\1\21\1\22\1\23\1\24\1\25\1\26\1\27\1\30"+ "\1\31\1\32\1\33\1\34\1\35\1\36\1\37\1\40"+ "\1\41\4\42\2\43\1\44\1\43\1\45\1\46\2\43"+ "\2\47\1\50\1\45\2\51\1\45\1\52\20\53\1\54"+ "\2\55\1\56\1\57\1\3\2\57\2\60\2\61\1\0"+ "\1\3\1\62\1\63\1\64\1\65\1\66\1\67\1\70"+ "\1\71\1\72\1\73\1\74\1\10\1\75\3\0\5\7"+ "\1\76\1\7\1\77\1\7\1\100\3\7\1\101\1\102"+ "\1\103\1\104\1\105\2\0\3\7\1\106\1\107\1\110"+ "\1\14\1\0\1\14\2\0\1\111\4\7\1\112\21\7"+ "\1\113\1\114\1\115\1\116\1\117\1\0\1\120\1\0"+ "\1\121\1\122\1\123\1\124\1\125\1\126\1\127\1\130"+ "\1\0\2\43\1\47\1\131\1\132\1\133\1\51\5\53"+ "\1\76\1\53\1\77\1\53\1\100\12\53\1\112\21\53"+ "\1\134\1\0\1\135\1\136\1\63\1\137\1\140\1\71"+ "\1\141\1\0\1\141\3\7\1\142\3\7\1\143\1\144"+ "\4\7\2\10\3\7\1\145\1\146\4\14\1\111\2\0"+ "\1\147\23\7\1\150\3\7\1\151\5\7\1\113\1\152"+ "\1\153\1\154\1\155\1\0\1\156\3\53\1\142\3\53"+ "\1\143\1\144\32\53\1\150\3\53\1\151\5\53\1\136"+ "\1\157\1\63\2\137\1\141\1\0\3\7\1\160\6\7"+ "\1\161\1\7\1\162\2\0\2\7\1\163\3\0\2\14"+ "\6\0\7\7\1\164\2\7\1\165\10\7\1\166\1\167"+ "\3\7\1\170\1\7\1\171\1\7\1\172\3\53\1\160"+ "\6\53\1\161\1\53\1\162\2\53\1\163\7\53\1\164"+ "\2\53\1\165\10\53\1\166\1\167\3\53\1\170\1\53"+ "\1\171\1\53\1\136\2\157\1\63\1\0\1\137\1\173"+ "\1\174\1\175\7\7\1\176\1\7\1\14\1\0\1\14"+ "\3\0\6\7\1\177\1\200\3\7\1\201\1\7\1\202"+ "\1\7\1\203\1\7\1\204\3\7\1\205\1\173\1\174"+ "\1\175\7\53\1\176\7\53\1\177\1\200\3\53\1\201"+ "\1\53\1\202\1\53\1\203\1\53\1\204\3\53\1\205"+ "\1\136\1\0\1\157\1\0\2\7\1\206\3\7\1\207"+ "\5\7\1\210\1\7\1\211\1\7\1\212\2\7\1\213"+ "\1\7\1\214\1\215\1\216\1\7\2\53\1\206\3\53"+ "\1\207\5\53\1\210\1\53\1\211\1\53\1\212\2\53"+ "\1\213\1\53\1\214\1\215\1\216\1\53\1\0\1\217"+ "\3\7\1\220\1\221\1\222\1\223\1\224\7\7\1\217"+ "\3\53\1\220\1\221\1\222\1\223\1\224\7\53\4\7"+ "\1\225\1\226\1\227\2\7\1\230\4\53\1\225\1\226"+ "\1\227\2\53\1\230\2\7\1\231\1\232\1\7\1\233"+ "\2\53\1\231\1\232\1\53\1\233\1\234\1\235\1\7"+ "\1\234\1\235\1\53\1\7\1\53\2\236"; private static int [] zzUnpackAction() { int [] result = new int[686]; int offset = 0; offset = zzUnpackAction(ZZ_ACTION_PACKED_0, offset, result); return result; } private static int zzUnpackAction(String packed, int offset, int [] result) { int i = 0; /* index in packed string */ int j = offset; /* index in unpacked array */ int l = packed.length(); while (i < l) { int count = packed.charAt(i++); int value = packed.charAt(i++); do result[j++] = value; while (--count > 0); } return j; } /** * Translates a state to a row index in the transition table */ private static final int [] ZZ_ROWMAP = zzUnpackRowMap(); private static final String ZZ_ROWMAP_PACKED_0 = "\0\0\0\112\0\224\0\336\0\u0128\0\u0172\0\u01bc\0\u0206"+ "\0\u0250\0\u029a\0\u02e4\0\u032e\0\u0378\0\u03c2\0\u040c\0\u03c2"+ "\0\u040c\0\u0456\0\u04a0\0\u04ea\0\u0534\0\u057e\0\u05c8\0\u0612"+ "\0\u065c\0\u06a6\0\u06f0\0\u073a\0\u0784\0\u07ce\0\u0818\0\u0862"+ "\0\u08ac\0\u08f6\0\u0940\0\u098a\0\u09d4\0\u03c2\0\u0a1e\0\u0a68"+ "\0\u0ab2\0\u0afc\0\u0b46\0\u0b90\0\u0bda\0\u0c24\0\u0c6e\0\u03c2"+ "\0\u0cb8\0\u0d02\0\u03c2\0\u03c2\0\u03c2\0\u03c2\0\u03c2\0\u03c2"+ "\0\u0d4c\0\u0d96\0\u03c2\0\u0de0\0\u0e2a\0\u0e74\0\u0ebe\0\u03c2"+ "\0\u03c2\0\u03c2\0\u03c2\0\u0456\0\u0f08\0\u0f52\0\u0f9c\0\u0fe6"+ "\0\u1030\0\u107a\0\u03c2\0\u03c2\0\u10c4\0\u110e\0\u1158\0\u11a2"+ "\0\u03c2\0\u11ec\0\u1236\0\u1280\0\u12ca\0\u03c2\0\u1314\0\u135e"+ "\0\u13a8\0\u13f2\0\u143c\0\u1486\0\u14d0\0\u151a\0\u1564\0\u15ae"+ "\0\u15f8\0\u1642\0\u168c\0\u16d6\0\u1720\0\u176a\0\u03c2\0\u03c2"+ "\0\u17b4\0\u03c2\0\u03c2\0\u17fe\0\u1848\0\u1892\0\u03c2\0\u1848"+ "\0\u03c2\0\u1848\0\u18dc\0\u1926\0\u1970\0\u19ba\0\u03c2\0\u1a04"+ "\0\u03c2\0\u03c2\0\u1a4e\0\u1a98\0\u03c2\0\u03c2\0\u03c2\0\u03c2"+ "\0\u03c2\0\u1ae2\0\u1b2c\0\u1b76\0\u1bc0\0\u1c0a\0\u1c54\0\u1c9e"+ "\0\u1ce8\0\u05c8\0\u1d32\0\u1d7c\0\u1dc6\0\u1e10\0\u1e5a\0\u1ea4"+ "\0\u1eee\0\u03c2\0\u03c2\0\u03c2\0\u03c2\0\u03c2\0\u1f38\0\u1f82"+ "\0\u1fcc\0\u2016\0\u2060\0\u20aa\0\u03c2\0\u03c2\0\u20f4\0\u213e"+ "\0\u2188\0\u21d2\0\u221c\0\u2266\0\u22b0\0\u22fa\0\u2344\0\u238e"+ "\0\u23d8\0\u2422\0\u246c\0\u24b6\0\u2500\0\u254a\0\u2594\0\u25de"+ "\0\u2628\0\u2672\0\u26bc\0\u2706\0\u2750\0\u279a\0\u27e4\0\u282e"+ "\0\u2878\0\u28c2\0\u290c\0\u03c2\0\u03c2\0\u03c2\0\u2956\0\u29a0"+ "\0\u03c2\0\u29ea\0\u03c2\0\u03c2\0\u03c2\0\u03c2\0\u03c2\0\u03c2"+ "\0\u03c2\0\u03c2\0\u2a34\0\u03c2\0\u2a7e\0\u03c2\0\u03c2\0\u03c2"+ "\0\u03c2\0\u03c2\0\u2ac8\0\u2b12\0\u2b5c\0\u2ba6\0\u2bf0\0\u1314"+ "\0\u2c3a\0\u2c84\0\u2cce\0\u2d18\0\u2d62\0\u2dac\0\u2df6\0\u2e40"+ "\0\u2e8a\0\u2ed4\0\u2f1e\0\u2f68\0\u2fb2\0\u2ffc\0\u3046\0\u3090"+ "\0\u30da\0\u3124\0\u316e\0\u31b8\0\u3202\0\u324c\0\u3296\0\u32e0"+ "\0\u332a\0\u3374\0\u33be\0\u3408\0\u3452\0\u349c\0\u34e6\0\u3530"+ "\0\u357a\0\u1848\0\u35c4\0\u360e\0\u3658\0\u36a2\0\u03c2\0\u03c2"+ "\0\u36ec\0\u3736\0\u3780\0\u37ca\0\u3814\0\u385e\0\u05c8\0\u38a8"+ "\0\u38f2\0\u393c\0\u3986\0\u39d0\0\u3a1a\0\u3a64\0\u3aae\0\u3af8"+ "\0\u3b42\0\u3b8c\0\u3bd6\0\u3c20\0\u3c6a\0\u03c2\0\u03c2\0\u03c2"+ "\0\u3cb4\0\u3cfe\0\u3d48\0\u03c2\0\u3d92\0\u3ddc\0\u3e26\0\u3e70"+ "\0\u3eba\0\u3f04\0\u3f4e\0\u3f98\0\u3fe2\0\u402c\0\u4076\0\u40c0"+ "\0\u410a\0\u4154\0\u419e\0\u41e8\0\u4232\0\u427c\0\u42c6\0\u4310"+ "\0\u435a\0\u43a4\0\u05c8\0\u43ee\0\u4438\0\u4482\0\u05c8\0\u44cc"+ "\0\u4516\0\u4560\0\u45aa\0\u45f4\0\u03c2\0\u03c2\0\u03c2\0\u03c2"+ "\0\u03c2\0\u463e\0\u03c2\0\u4688\0\u46d2\0\u471c\0\u1314\0\u4766"+ "\0\u47b0\0\u47fa\0\u4844\0\u488e\0\u48d8\0\u4922\0\u496c\0\u49b6"+ "\0\u4a00\0\u4a4a\0\u4a94\0\u4ade\0\u4b28\0\u4b72\0\u4bbc\0\u4c06"+ "\0\u4c50\0\u4c9a\0\u4ce4\0\u4d2e\0\u4d78\0\u4dc2\0\u4e0c\0\u4e56"+ "\0\u4ea0\0\u4eea\0\u4f34\0\u4f7e\0\u4fc8\0\u5012\0\u1314\0\u505c"+ "\0\u50a6\0\u50f0\0\u1314\0\u513a\0\u5184\0\u51ce\0\u5218\0\u5262"+ "\0\u52ac\0\u52f6\0\u5340\0\u538a\0\u03c2\0\u03c2\0\u53d4\0\u541e"+ "\0\u5468\0\u54b2\0\u05c8\0\u54fc\0\u5546\0\u5590\0\u55da\0\u5624"+ "\0\u566e\0\u05c8\0\u56b8\0\u05c8\0\u5702\0\u574c\0\u5796\0\u57e0"+ "\0\u05c8\0\u582a\0\u5874\0\u58be\0\u5908\0\u5952\0\u599c\0\u59e6"+ "\0\u5a30\0\u3e26\0\u5a7a\0\u5ac4\0\u5b0e\0\u5b58\0\u5ba2\0\u5bec"+ "\0\u5c36\0\u5c80\0\u5cca\0\u05c8\0\u5d14\0\u5d5e\0\u05c8\0\u5da8"+ "\0\u5df2\0\u5e3c\0\u5e86\0\u5ed0\0\u5f1a\0\u5f64\0\u5fae\0\u05c8"+ "\0\u05c8\0\u5ff8\0\u6042\0\u608c\0\u05c8\0\u60d6\0\u05c8\0\u6120"+ "\0\u03c2\0\u616a\0\u61b4\0\u61fe\0\u1314\0\u6248\0\u6292\0\u62dc"+ "\0\u6326\0\u6370\0\u63ba\0\u1314\0\u6404\0\u1314\0\u644e\0\u6498"+ "\0\u1314\0\u64e2\0\u652c\0\u6576\0\u65c0\0\u660a\0\u6654\0\u669e"+ "\0\u1314\0\u66e8\0\u6732\0\u1314\0\u677c\0\u67c6\0\u6810\0\u685a"+ "\0\u68a4\0\u68ee\0\u6938\0\u6982\0\u1314\0\u1314\0\u69cc\0\u6a16"+ "\0\u6a60\0\u1314\0\u6aaa\0\u1314\0\u6af4\0\u6b3e\0\u6b88\0\u03c2"+ "\0\u03c2\0\u5340\0\u6bd2\0\u05c8\0\u6c1c\0\u05c8\0\u6c66\0\u6cb0"+ "\0\u6cfa\0\u6d44\0\u6d8e\0\u6dd8\0\u6e22\0\u05c8\0\u6e6c\0\u6eb6"+ "\0\u6f00\0\u6f4a\0\u6f94\0\u6fde\0\u7028\0\u7072\0\u70bc\0\u7106"+ "\0\u7150\0\u719a\0\u71e4\0\u05c8\0\u05c8\0\u722e\0\u7278\0\u72c2"+ "\0\u05c8\0\u730c\0\u05c8\0\u7356\0\u05c8\0\u73a0\0\u73ea\0\u7434"+ "\0\u747e\0\u74c8\0\u05c8\0\u1314\0\u7512\0\u1314\0\u755c\0\u75a6"+ "\0\u75f0\0\u763a\0\u7684\0\u76ce\0\u7718\0\u1314\0\u7762\0\u77ac"+ "\0\u77f6\0\u7840\0\u788a\0\u78d4\0\u791e\0\u1314\0\u1314\0\u7968"+ "\0\u79b2\0\u79fc\0\u1314\0\u7a46\0\u1314\0\u7a90\0\u1314\0\u7ada"+ "\0\u7b24\0\u7b6e\0\u7bb8\0\u7c02\0\u1314\0\u03c2\0\u6b3e\0\u7c4c"+ "\0\u6bd2\0\u7c96\0\u7ce0\0\u05c8\0\u7d2a\0\u7d74\0\u7dbe\0\u05c8"+ "\0\u7e08\0\u7e52\0\u7e9c\0\u7ee6\0\u7f30\0\u05c8\0\u7f7a\0\u05c8"+ "\0\u7fc4\0\u05c8\0\u800e\0\u8058\0\u05c8\0\u80a2\0\u05c8\0\u05c8"+ "\0\u05c8\0\u80ec\0\u8136\0\u8180\0\u1314\0\u81ca\0\u8214\0\u825e"+ "\0\u1314\0\u82a8\0\u82f2\0\u833c\0\u8386\0\u83d0\0\u1314\0\u841a"+ "\0\u1314\0\u8464\0\u1314\0\u84ae\0\u84f8\0\u1314\0\u8542\0\u1314"+ "\0\u1314\0\u1314\0\u858c\0\u7c4c\0\u05c8\0\u85d6\0\u8620\0\u866a"+ "\0\u05c8\0\u05c8\0\u05c8\0\u05c8\0\u05c8\0\u86b4\0\u86fe\0\u8748"+ "\0\u8792\0\u87dc\0\u8826\0\u8870\0\u1314\0\u88ba\0\u8904\0\u894e"+ "\0\u1314\0\u1314\0\u1314\0\u1314\0\u1314\0\u8998\0\u89e2\0\u8a2c"+ "\0\u8a76\0\u8ac0\0\u8b0a\0\u8b54\0\u8b9e\0\u8be8\0\u8c32\0\u8c7c"+ "\0\u05c8\0\u05c8\0\u05c8\0\u8cc6\0\u8d10\0\u05c8\0\u8d5a\0\u8da4"+ "\0\u8dee\0\u8e38\0\u1314\0\u1314\0\u1314\0\u8e82\0\u8ecc\0\u1314"+ "\0\u8f16\0\u8f60\0\u05c8\0\u05c8\0\u8faa\0\u05c8\0\u8ff4\0\u903e"+ "\0\u1314\0\u1314\0\u9088\0\u1314\0\u05c8\0\u05c8\0\u90d2\0\u1314"+ "\0\u1314\0\u911c\0\u9166\0\u91b0\0\u05c8\0\u1314"; private static int [] zzUnpackRowMap() { int [] result = new int[686]; int offset = 0; offset = zzUnpackRowMap(ZZ_ROWMAP_PACKED_0, offset, result); return result; } private static int zzUnpackRowMap(String packed, int offset, int [] result) { int i = 0; /* index in packed string */ int j = offset; /* index in unpacked array */ int l = packed.length(); while (i < l) { int high = packed.charAt(i++) << 16; result[j++] = high | packed.charAt(i++); } return j; } /** * The transition table of the DFA */ private static final int [] ZZ_TRANS = zzUnpackTrans(); private static final String ZZ_TRANS_PACKED_0 = "\1\16\3\17\1\20\1\21\1\22\1\23\1\24\1\25"+ "\1\26\1\27\1\30\2\27\1\31\1\27\1\32\1\27"+ "\1\33\1\27\1\34\1\27\1\35\1\27\1\36\1\37"+ "\1\27\1\40\1\41\1\27\1\30\2\27\1\42\1\27"+ "\1\43\1\44\1\45\1\46\1\47\1\50\1\51\1\27"+ "\1\52\1\53\1\54\2\27\1\55\1\27\1\56\3\27"+ "\1\57\1\60\1\61\1\62\1\63\1\64\1\65\1\66"+ "\1\67\1\70\1\71\1\72\1\73\1\74\1\75\1\76"+ "\1\77\1\100\1\101\1\16\3\17\1\20\1\21\1\22"+ "\1\23\1\24\1\25\1\26\1\27\1\30\2\27\1\31"+ "\1\27\1\32\1\27\1\33\1\27\1\34\1\27\1\35"+ "\1\27\1\36\1\37\1\27\1\40\1\41\1\27\1\30"+ "\2\27\1\42\1\27\1\43\1\44\1\45\1\102\1\47"+ "\1\50\1\51\1\27\1\52\1\53\1\54\2\27\1\55"+ "\1\27\1\56\3\27\1\57\1\60\1\61\1\62\1\63"+ "\1\64\1\65\1\66\1\67\1\70\1\71\1\72\1\73"+ "\1\74\1\75\1\76\1\77\1\100\1\101\4\103\2\20"+ "\1\104\1\105\34\103\1\106\45\103\1\107\1\110\2\111"+ "\1\107\1\110\1\112\35\107\1\113\1\107\1\114\43\107"+ "\6\115\1\112\35\115\1\113\1\115\1\116\43\115\6\117"+ "\1\120\1\121\34\117\1\122\45\117\7\123\1\124\34\123"+ "\1\125\45\123\13\126\1\127\1\126\2\127\1\130\1\127"+ "\1\131\1\127\1\132\1\127\1\133\1\127\1\134\1\127"+ "\2\126\1\127\1\126\1\135\1\127\1\126\2\127\1\126"+ "\1\127\4\126\1\136\1\137\1\140\1\127\1\141\1\142"+ "\1\143\2\127\1\144\1\127\1\145\3\127\1\146\1\147"+ "\21\126\42\150\1\151\47\150\13\152\1\127\1\152\14\127"+ "\2\152\1\127\1\152\2\127\1\152\2\127\1\152\1\127"+ "\4\152\20\127\22\152\1\153\5\154\1\155\1\156\102\153"+ "\1\157\5\154\1\160\103\157\1\161\5\154\1\162\103\161"+ "\113\0\5\17\1\163\104\0\2\20\1\164\1\0\1\20"+ "\113\0\1\165\1\166\60\0\1\167\30\0\1\170\31\0"+ "\1\171\26\0\1\172\32\0\1\173\170\0\1\174\33\0"+ "\16\27\2\0\7\27\1\0\2\27\3\0\20\27\36\0"+ "\1\30\2\175\2\176\2\177\2\200\2\201\2\202\2\0"+ "\1\203\1\30\2\0\1\30\2\0\1\204\62\0\6\27"+ "\1\205\1\27\1\206\5\27\2\0\7\27\1\0\2\27"+ "\3\0\1\27\1\207\6\27\1\210\7\27\35\0\16\27"+ "\2\0\7\27\1\0\2\27\3\0\10\27\1\211\7\27"+ "\35\0\4\27\1\212\11\27\2\0\7\27\1\0\2\27"+ "\3\0\7\27\1\213\1\27\1\214\6\27\35\0\14\27"+ "\1\215\1\27\2\0\7\27\1\0\2\27\3\0\10\27"+ "\1\216\7\27\35\0\6\27\1\217\7\27\2\0\5\27"+ "\1\220\1\27\1\0\2\27\3\0\11\27\1\221\6\27"+ "\53\0\1\222\37\0\1\223\52\0\1\224\36\0\1\225"+ "\10\0\1\226\23\0\1\30\2\175\2\176\2\177\2\200"+ "\2\201\2\202\2\0\1\203\1\30\2\227\1\30\2\230"+ "\1\204\62\0\16\27\2\0\7\27\1\0\2\27\3\0"+ "\6\27\1\231\1\27\1\232\3\27\1\233\3\27\64\0"+ "\1\234\44\0\1\235\11\0\1\236\3\0\16\27\2\0"+ "\7\27\1\0\2\27\3\0\20\27\22\0\2\237\2\0"+ "\2\237\1\240\36\237\1\241\44\237\2\242\2\0\2\242"+ "\1\243\35\242\1\0\1\242\1\244\43\242\13\0\16\27"+ "\2\0\7\27\1\0\2\27\3\0\1\27\1\245\4\27"+ "\1\246\3\27\1\247\5\27\35\0\16\27\2\0\2\27"+ "\1\250\4\27\1\0\2\27\3\0\4\27\1\251\13\27"+ "\35\0\6\27\1\252\7\27\2\0\7\27\1\0\2\27"+ "\3\0\1\27\1\253\6\27\1\254\4\27\1\255\2\27"+ "\35\0\16\27\2\0\7\27\1\0\2\27\3\0\5\27"+ "\1\256\4\27\1\257\1\27\1\260\1\261\1\27\1\262"+ "\35\0\16\27\2\0\7\27\1\0\2\27\3\0\6\27"+ "\1\263\6\27\1\264\2\27\35\0\14\27\1\265\1\27"+ "\2\0\7\27\1\0\2\27\3\0\20\27\35\0\14\27"+ "\1\266\1\27\2\0\7\27\1\0\2\27\3\0\1\27"+ "\1\267\10\27\1\270\5\27\35\0\16\27\2\0\7\27"+ "\1\0\2\27\3\0\10\27\1\271\7\27\35\0\16\27"+ "\2\0\7\27\1\0\2\27\3\0\15\27\1\272\2\27"+ "\113\0\1\273\11\0\1\274\50\0\1\275\34\0\1\276"+ "\103\0\1\277\7\0\1\300\101\0\1\301\10\0\1\302"+ "\100\0\1\303\111\0\1\304\111\0\1\305\14\0\1\306"+ "\74\0\1\307\15\0\1\310\2\0\7\311\2\0\60\311"+ "\1\0\20\311\7\0\1\312\102\0\2\107\2\0\2\107"+ "\1\0\35\107\1\0\1\107\1\0\44\107\1\110\2\111"+ "\2\110\1\313\35\107\1\0\1\107\1\0\43\107\1\0"+ "\5\111\1\313\103\0\1\314\3\0\1\314\1\0\104\314"+ "\6\115\1\0\35\115\1\0\1\115\1\0\43\115\46\0"+ "\1\315\43\0\6\117\2\0\34\117\1\0\45\117\7\0"+ "\1\316\102\0\13\317\1\0\1\317\14\0\2\317\1\0"+ "\1\317\2\0\1\317\2\0\1\317\1\0\4\317\21\0"+ "\21\317\7\123\1\0\34\123\1\0\45\123\44\0\1\320"+ "\45\0\7\321\1\322\3\321\1\0\1\321\14\0\2\321"+ "\1\0\1\321\2\0\1\321\2\0\1\321\1\0\1\322"+ "\3\321\21\0\21\321\13\0\16\127\2\0\7\127\1\0"+ "\1\127\4\0\20\127\35\0\6\127\1\323\1\127\1\324"+ "\5\127\2\0\7\127\1\0\1\127\4\0\1\127\1\325"+ "\6\127\1\326\7\127\35\0\16\127\2\0\7\127\1\0"+ "\1\127\4\0\10\127\1\327\7\127\35\0\4\127\1\330"+ "\11\127\2\0\7\127\1\0\1\127\4\0\7\127\1\331"+ "\1\127\1\332\6\127\35\0\14\127\1\333\1\127\2\0"+ "\7\127\1\0\1\127\4\0\10\127\1\334\7\127\35\0"+ "\6\127\1\335\7\127\2\0\5\127\1\336\1\127\1\0"+ "\1\127\4\0\11\127\1\337\6\127\35\0\16\127\2\0"+ "\7\127\1\0\1\127\4\0\6\127\1\340\1\127\1\341"+ "\3\127\1\342\3\127\35\0\16\127\2\0\7\127\1\0"+ "\1\127\4\0\1\127\1\343\4\127\1\344\3\127\1\345"+ "\5\127\35\0\16\127\2\0\2\127\1\346\4\127\1\0"+ "\1\127\4\0\4\127\1\347\13\127\35\0\6\127\1\350"+ "\7\127\2\0\7\127\1\0\1\127\4\0\1\127\1\351"+ "\6\127\1\352\4\127\1\353\2\127\35\0\16\127\2\0"+ "\7\127\1\0\1\127\4\0\5\127\1\354\4\127\1\355"+ "\1\127\1\356\1\357\1\127\1\360\35\0\16\127\2\0"+ "\7\127\1\0\1\127\4\0\6\127\1\361\6\127\1\362"+ "\2\127\35\0\14\127\1\363\1\127\2\0\7\127\1\0"+ "\1\127\4\0\20\127\35\0\14\127\1\364\1\127\2\0"+ "\7\127\1\0\1\127\4\0\1\127\1\365\10\127\1\366"+ "\5\127\35\0\16\127\2\0\7\127\1\0\1\127\4\0"+ "\10\127\1\367\7\127\35\0\16\127\2\0\7\127\1\0"+ "\1\127\4\0\15\127\1\370\2\127\35\0\1\371\1\0"+ "\14\371\2\0\1\371\1\0\2\371\1\0\2\371\1\0"+ "\1\371\4\0\20\371\23\0\5\154\1\372\104\0\3\154"+ "\1\0\1\154\113\0\1\373\1\374\102\0\3\17\1\0"+ "\1\17\106\0\1\20\107\0\2\165\2\0\106\165\10\375"+ "\1\376\101\375\71\0\1\377\20\0\2\173\2\0\106\173"+ "\71\0\1\u0100\34\0\1\u0101\14\0\2\u0102\1\0\1\u0101"+ "\2\0\1\u0101\66\0\1\30\16\0\1\203\1\30\2\0"+ "\1\30\66\0\1\u0103\17\0\1\u0103\2\0\1\u0103\65\0"+ "\16\27\2\0\7\27\1\0\2\27\3\0\10\27\1\u0104"+ "\7\27\35\0\16\27\2\0\7\27\1\0\2\27\3\0"+ "\11\27\1\u0105\6\27\35\0\6\27\1\u0106\7\27\2\0"+ "\7\27\1\0\2\27\3\0\20\27\35\0\16\27\2\0"+ "\7\27\1\0\2\27\3\0\6\27\1\u0107\11\27\35\0"+ "\16\27\2\0\7\27\1\0\2\27\3\0\11\27\1\u0108"+ "\6\27\35\0\16\27\2\0\7\27\1\0\2\27\3\0"+ "\1\u0109\17\27\35\0\16\27\2\0\7\27\1\0\2\27"+ "\3\0\4\27\1\u010a\1\u010b\12\27\35\0\4\27\1\u010c"+ "\11\27\2\0\7\27\1\0\2\27\3\0\20\27\35\0"+ "\16\27\2\0\7\27\1\0\2\27\3\0\12\27\1\u010d"+ "\5\27\35\0\16\27\2\0\7\27\1\0\2\27\3\0"+ "\4\27\1\u010e\13\27\35\0\16\27\2\0\7\27\1\0"+ "\2\27\3\0\5\27\1\u010f\12\27\35\0\16\27\2\0"+ "\7\27\1\0\2\27\3\0\12\27\1\u0110\5\27\56\0"+ "\1\u0111\2\0\1\u0111\65\0\2\u0112\2\0\2\u0112\4\0"+ "\4\u0112\3\0\4\u0112\11\0\2\u0112\52\0\14\27\1\u0113"+ "\1\27\2\0\7\27\1\0\2\27\3\0\20\27\35\0"+ "\16\27\2\0\7\27\1\0\2\27\3\0\10\27\1\u0114"+ "\7\27\35\0\16\27\2\0\7\27\1\0\2\27\3\0"+ "\5\27\1\u0115\12\27\64\0\1\u0116\36\0\1\u0117\10\0"+ "\2\237\2\0\2\237\1\240\36\237\1\u0118\50\237\2\u0119"+ "\1\u011a\103\237\45\0\1\u011b\44\0\2\242\2\0\2\242"+ "\1\243\35\242\1\0\1\242\1\u011c\47\242\2\u011d\1\u011e"+ "\103\242\46\0\1\u011f\56\0\16\27\2\0\7\27\1\0"+ "\2\27\3\0\2\27\1\u0120\15\27\35\0\10\27\1\u0121"+ "\5\27\2\0\7\27\1\0\2\27\3\0\10\27\1\u0122"+ "\7\27\35\0\16\27\2\0\2\27\1\u0123\4\27\1\0"+ "\2\27\3\0\20\27\35\0\16\27\2\0\7\27\1\0"+ "\2\27\3\0\4\27\1\u0124\13\27\35\0\16\27\2\0"+ "\7\27\1\0\2\27\3\0\4\27\1\u0125\13\27\35\0"+ "\16\27\2\0\7\27\1\0\2\27\3\0\1\27\1\u0126"+ "\16\27\35\0\16\27\2\0\7\27\1\0\2\27\3\0"+ "\4\27\1\u0127\1\u0128\12\27\35\0\16\27\2\0\7\27"+ "\1\0\2\27\3\0\11\27\1\u0129\6\27\35\0\16\27"+ "\2\0\7\27\1\0\2\27\3\0\1\27\1\u012a\16\27"+ "\35\0\16\27\2\0\7\27\1\0\2\27\3\0\1\27"+ "\1\u012b\4\27\1\u012c\11\27\35\0\16\27\2\0\7\27"+ "\1\0\2\27\3\0\1\u012d\17\27\35\0\16\27\2\0"+ "\7\27\1\0\2\27\3\0\11\27\1\u012e\6\27\35\0"+ "\16\27\2\0\7\27\1\0\2\27\3\0\10\27\1\u012f"+ "\7\27\35\0\10\27\1\u0130\5\27\2\0\7\27\1\0"+ "\2\27\3\0\20\27\35\0\16\27\2\0\7\27\1\0"+ "\2\27\3\0\1\27\1\u0131\10\27\1\u0132\1\27\1\u0133"+ "\3\27\35\0\10\27\1\u0134\5\27\2\0\7\27\1\0"+ "\2\27\3\0\6\27\1\u0135\11\27\35\0\16\27\2\0"+ "\7\27\1\0\2\27\3\0\5\27\1\u0136\12\27\35\0"+ "\16\27\2\0\7\27\1\0\2\27\3\0\17\27\1\u0137"+ "\35\0\16\27\2\0\7\27\1\0\2\27\3\0\5\27"+ "\1\u0138\12\27\35\0\6\27\1\u0139\7\27\2\0\7\27"+ "\1\0\2\27\3\0\20\27\35\0\6\27\1\u013a\1\27"+ "\1\u013b\5\27\2\0\7\27\1\0\2\27\3\0\20\27"+ "\35\0\10\27\1\u013c\5\27\2\0\7\27\1\0\2\27"+ "\3\0\20\27\113\0\1\u013d\11\0\1\u013e\110\0\1\u013f"+ "\100\0\1\u0140\111\0\1\u0141\10\0\1\u0142\10\0\3\111"+ "\1\0\1\111\152\0\1\u0143\56\0\16\127\2\0\7\127"+ "\1\0\1\127\4\0\10\127\1\u0144\7\127\35\0\16\127"+ "\2\0\7\127\1\0\1\127\4\0\11\127\1\u0145\6\127"+ "\35\0\6\127\1\u0146\7\127\2\0\7\127\1\0\1\127"+ "\4\0\20\127\35\0\16\127\2\0\7\127\1\0\1\127"+ "\4\0\6\127\1\u0147\11\127\35\0\16\127\2\0\7\127"+ "\1\0\1\127\4\0\11\127\1\u0148\6\127\35\0\16\127"+ "\2\0\7\127\1\0\1\127\4\0\1\u0149\17\127\35\0"+ "\16\127\2\0\7\127\1\0\1\127\4\0\4\127\1\u014a"+ "\1\u014b\12\127\35\0\4\127\1\u014c\11\127\2\0\7\127"+ "\1\0\1\127\4\0\20\127\35\0\16\127\2\0\7\127"+ "\1\0\1\127\4\0\12\127\1\u014d\5\127\35\0\16\127"+ "\2\0\7\127\1\0\1\127\4\0\4\127\1\u014e\13\127"+ "\35\0\16\127\2\0\7\127\1\0\1\127\4\0\5\127"+ "\1\u014f\12\127\35\0\16\127\2\0\7\127\1\0\1\127"+ "\4\0\12\127\1\u0150\5\127\35\0\14\127\1\u0151\1\127"+ "\2\0\7\127\1\0\1\127\4\0\20\127\35\0\16\127"+ "\2\0\7\127\1\0\1\127\4\0\10\127\1\u0152\7\127"+ "\35\0\16\127\2\0\7\127\1\0\1\127\4\0\5\127"+ "\1\u0153\12\127\35\0\16\127\2\0\7\127\1\0\1\127"+ "\4\0\2\127\1\u0154\15\127\35\0\10\127\1\u0155\5\127"+ "\2\0\7\127\1\0\1\127\4\0\10\127\1\u0156\7\127"+ "\35\0\16\127\2\0\2\127\1\u0157\4\127\1\0\1\127"+ "\4\0\20\127\35\0\16\127\2\0\7\127\1\0\1\127"+ "\4\0\4\127\1\u0158\13\127\35\0\16\127\2\0\7\127"+ "\1\0\1\127\4\0\4\127\1\u0159\13\127\35\0\16\127"+ "\2\0\7\127\1\0\1\127\4\0\1\127\1\u015a\16\127"+ "\35\0\16\127\2\0\7\127\1\0\1\127\4\0\4\127"+ "\1\u015b\1\u015c\12\127\35\0\16\127\2\0\7\127\1\0"+ "\1\127\4\0\11\127\1\u015d\6\127\35\0\16\127\2\0"+ "\7\127\1\0\1\127\4\0\1\127\1\u015e\16\127\35\0"+ "\16\127\2\0\7\127\1\0\1\127\4\0\1\127\1\u015f"+ "\4\127\1\u0160\11\127\35\0\16\127\2\0\7\127\1\0"+ "\1\127\4\0\1\u0161\17\127\35\0\16\127\2\0\7\127"+ "\1\0\1\127\4\0\11\127\1\u0162\6\127\35\0\16\127"+ "\2\0\7\127\1\0\1\127\4\0\10\127\1\u0163\7\127"+ "\35\0\10\127\1\u0164\5\127\2\0\7\127\1\0\1\127"+ "\4\0\20\127\35\0\16\127\2\0\7\127\1\0\1\127"+ "\4\0\1\127\1\u0165\10\127\1\u0166\1\127\1\u0167\3\127"+ "\35\0\10\127\1\u0168\5\127\2\0\7\127\1\0\1\127"+ "\4\0\6\127\1\u0169\11\127\35\0\16\127\2\0\7\127"+ "\1\0\1\127\4\0\5\127\1\u016a\12\127\35\0\16\127"+ "\2\0\7\127\1\0\1\127\4\0\17\127\1\u016b\35\0"+ "\16\127\2\0\7\127\1\0\1\127\4\0\5\127\1\u016c"+ "\12\127\35\0\6\127\1\u016d\7\127\2\0\7\127\1\0"+ "\1\127\4\0\20\127\35\0\6\127\1\u016e\1\127\1\u016f"+ "\5\127\2\0\7\127\1\0\1\127\4\0\20\127\35\0"+ "\10\127\1\u0170\5\127\2\0\7\127\1\0\1\127\4\0"+ "\20\127\35\0\16\371\2\0\7\371\1\0\1\371\4\0"+ "\20\371\22\0\2\373\2\0\106\373\10\u0171\1\u0172\101\u0171"+ "\10\375\1\u0173\101\375\7\u0174\1\u0175\1\376\101\u0174\14\0"+ "\1\u0101\2\u0176\2\176\4\0\2\201\4\0\1\u0102\1\u0101"+ "\2\0\1\u0101\66\0\1\u0101\17\0\1\u0101\2\0\1\u0101"+ "\66\0\1\u0103\2\u0176\2\176\4\0\2\201\2\202\2\0"+ "\1\u0177\1\u0103\2\0\1\u0103\65\0\16\27\2\0\7\27"+ "\1\0\2\27\3\0\1\27\1\u0178\16\27\35\0\16\27"+ "\2\0\7\27\1\0\2\27\3\0\1\27\1\u0179\16\27"+ "\35\0\16\27\2\0\7\27\1\0\2\27\3\0\4\27"+ "\1\u017a\13\27\35\0\2\27\1\u017b\13\27\2\0\7\27"+ "\1\0\2\27\3\0\20\27\35\0\6\27\1\u017c\7\27"+ "\2\0\7\27\1\0\2\27\3\0\10\27\1\u017d\7\27"+ "\35\0\16\27\2\0\7\27\1\0\2\27\3\0\5\27"+ "\1\u017e\12\27\35\0\14\27\1\u017f\1\27\2\0\7\27"+ "\1\0\2\27\3\0\20\27\35\0\16\27\2\0\7\27"+ "\1\0\2\27\3\0\1\27\1\u0180\16\27\35\0\16\27"+ "\2\0\2\27\1\u0181\4\27\1\0\2\27\3\0\20\27"+ "\35\0\14\27\1\u0182\1\27\2\0\7\27\1\0\2\27"+ "\3\0\20\27\35\0\14\27\1\u0183\1\27\2\0\7\27"+ "\1\0\2\27\3\0\20\27\35\0\16\27\2\0\7\27"+ "\1\0\2\27\3\0\7\27\1\u0184\10\27\37\0\2\175"+ "\2\0\2\177\2\200\6\0\1\u0185\1\u0111\2\0\1\u0111"+ "\65\0\2\u0112\2\175\2\u0112\2\177\2\200\4\u0112\2\0"+ "\1\u0186\4\u0112\11\0\2\u0112\52\0\16\27\2\0\7\27"+ "\1\0\2\27\3\0\1\27\1\u0187\16\27\35\0\6\27"+ "\1\u0188\7\27\2\0\7\27\1\0\2\27\3\0\20\27"+ "\35\0\14\27\1\u0189\1\27\2\0\7\27\1\0\2\27"+ "\3\0\20\27\22\0\4\237\2\u0119\1\u018a\36\237\1\u0118"+ "\45\237\1\u0119\1\u018b\1\u018c\1\237\1\u0119\1\240\36\237"+ "\1\u0118\44\237\6\u011b\1\u018d\36\u011b\1\u018e\44\u011b\4\242"+ "\2\u011d\1\u018f\35\242\1\0\1\242\1\u011c\44\242\1\u011d"+ "\1\u0190\1\u0191\1\242\1\u011d\1\243\35\242\1\0\1\242"+ "\1\u011c\43\242\6\u0192\1\u0193\35\u0192\1\0\1\u0192\1\u0194"+ "\43\u0192\13\0\16\27\2\0\7\27\1\0\2\27\3\0"+ "\3\27\1\u0195\14\27\35\0\16\27\2\0\7\27\1\0"+ "\2\27\3\0\13\27\1\u0196\4\27\35\0\16\27\2\0"+ "\7\27\1\0\2\27\3\0\5\27\1\u0197\12\27\35\0"+ "\6\27\1\u0198\7\27\2\0\7\27\1\0\2\27\3\0"+ "\20\27\35\0\16\27\2\0\7\27\1\0\2\27\3\0"+ "\5\27\1\u0199\12\27\35\0\14\27\1\u019a\1\27\2\0"+ "\7\27\1\0\2\27\3\0\20\27\35\0\16\27\2\0"+ "\7\27\1\0\2\27\3\0\4\27\1\u019b\13\27\35\0"+ "\14\27\1\u019c\1\27\2\0\7\27\1\0\2\27\3\0"+ "\20\27\35\0\16\27\2\0\7\27\1\0\2\27\3\0"+ "\2\27\1\u019d\15\27\35\0\16\27\2\0\7\27\1\0"+ "\2\27\3\0\5\27\1\u019e\12\27\35\0\16\27\2\0"+ "\7\27\1\0\2\27\3\0\6\27\1\u019f\11\27\35\0"+ "\16\27\2\0\7\27\1\0\2\27\3\0\5\27\1\u01a0"+ "\12\27\35\0\10\27\1\u01a1\5\27\2\0\7\27\1\0"+ "\2\27\3\0\20\27\35\0\14\27\1\u01a2\1\27\2\0"+ "\7\27\1\0\2\27\3\0\20\27\35\0\16\27\2\0"+ "\7\27\1\0\2\27\3\0\2\27\1\u01a3\15\27\35\0"+ "\16\27\2\0\7\27\1\0\2\27\3\0\6\27\1\u01a4"+ "\11\27\35\0\16\27\2\0\7\27\1\0\2\27\3\0"+ "\5\27\1\u01a5\12\27\35\0\10\27\1\u01a6\5\27\2\0"+ "\7\27\1\0\2\27\3\0\11\27\1\u01a7\6\27\35\0"+ "\14\27\1\u01a8\1\27\2\0\7\27\1\0\2\27\3\0"+ "\20\27\35\0\16\27\2\0\7\27\1\0\2\27\3\0"+ "\4\27\1\u01a9\13\27\35\0\16\27\2\0\7\27\1\0"+ "\2\27\3\0\10\27\1\u01aa\7\27\35\0\16\27\2\0"+ "\7\27\1\0\2\27\3\0\12\27\1\u01ab\5\27\35\0"+ "\10\27\1\u01ac\5\27\2\0\7\27\1\0\2\27\3\0"+ "\20\27\35\0\6\27\1\u01ad\7\27\2\0\7\27\1\0"+ "\2\27\3\0\20\27\35\0\16\27\2\0\7\27\1\0"+ "\2\27\3\0\1\27\1\u01ae\16\27\35\0\12\27\1\u01af"+ "\3\27\2\0\7\27\1\0\2\27\3\0\20\27\35\0"+ "\6\27\1\u01b0\7\27\2\0\7\27\1\0\2\27\3\0"+ "\20\27\113\0\1\u01b1\33\0\16\127\2\0\7\127\1\0"+ "\1\127\4\0\1\127\1\u01b2\16\127\35\0\16\127\2\0"+ "\7\127\1\0\1\127\4\0\1\127\1\u01b3\16\127\35\0"+ "\16\127\2\0\7\127\1\0\1\127\4\0\4\127\1\u01b4"+ "\13\127\35\0\2\127\1\u01b5\13\127\2\0\7\127\1\0"+ "\1\127\4\0\20\127\35\0\6\127\1\u01b6\7\127\2\0"+ "\7\127\1\0\1\127\4\0\10\127\1\u01b7\7\127\35\0"+ "\16\127\2\0\7\127\1\0\1\127\4\0\5\127\1\u01b8"+ "\12\127\35\0\14\127\1\u01b9\1\127\2\0\7\127\1\0"+ "\1\127\4\0\20\127\35\0\16\127\2\0\7\127\1\0"+ "\1\127\4\0\1\127\1\u01ba\16\127\35\0\16\127\2\0"+ "\2\127\1\u01bb\4\127\1\0\1\127\4\0\20\127\35\0"+ "\14\127\1\u01bc\1\127\2\0\7\127\1\0\1\127\4\0"+ "\20\127\35\0\14\127\1\u01bd\1\127\2\0\7\127\1\0"+ "\1\127\4\0\20\127\35\0\16\127\2\0\7\127\1\0"+ "\1\127\4\0\7\127\1\u01be\10\127\35\0\16\127\2\0"+ "\7\127\1\0\1\127\4\0\1\127\1\u01bf\16\127\35\0"+ "\6\127\1\u01c0\7\127\2\0\7\127\1\0\1\127\4\0"+ "\20\127\35\0\14\127\1\u01c1\1\127\2\0\7\127\1\0"+ "\1\127\4\0\20\127\35\0\16\127\2\0\7\127\1\0"+ "\1\127\4\0\3\127\1\u01c2\14\127\35\0\16\127\2\0"+ "\7\127\1\0\1\127\4\0\13\127\1\u01c3\4\127\35\0"+ "\16\127\2\0\7\127\1\0\1\127\4\0\5\127\1\u01c4"+ "\12\127\35\0\6\127\1\u01c5\7\127\2\0\7\127\1\0"+ "\1\127\4\0\20\127\35\0\16\127\2\0\7\127\1\0"+ "\1\127\4\0\5\127\1\u01c6\12\127\35\0\14\127\1\u01c7"+ "\1\127\2\0\7\127\1\0\1\127\4\0\20\127\35\0"+ "\16\127\2\0\7\127\1\0\1\127\4\0\4\127\1\u01c8"+ "\13\127\35\0\14\127\1\u01c9\1\127\2\0\7\127\1\0"+ "\1\127\4\0\20\127\35\0\16\127\2\0\7\127\1\0"+ "\1\127\4\0\2\127\1\u01ca\15\127\35\0\16\127\2\0"+ "\7\127\1\0\1\127\4\0\5\127\1\u01cb\12\127\35\0"+ "\16\127\2\0\7\127\1\0\1\127\4\0\6\127\1\u01cc"+ "\11\127\35\0\16\127\2\0\7\127\1\0\1\127\4\0"+ "\5\127\1\u01cd\12\127\35\0\10\127\1\u01ce\5\127\2\0"+ "\7\127\1\0\1\127\4\0\20\127\35\0\14\127\1\u01cf"+ "\1\127\2\0\7\127\1\0\1\127\4\0\20\127\35\0"+ "\16\127\2\0\7\127\1\0\1\127\4\0\2\127\1\u01d0"+ "\15\127\35\0\16\127\2\0\7\127\1\0\1\127\4\0"+ "\6\127\1\u01d1\11\127\35\0\16\127\2\0\7\127\1\0"+ "\1\127\4\0\5\127\1\u01d2\12\127\35\0\10\127\1\u01d3"+ "\5\127\2\0\7\127\1\0\1\127\4\0\11\127\1\u01d4"+ "\6\127\35\0\14\127\1\u01d5\1\127\2\0\7\127\1\0"+ "\1\127\4\0\20\127\35\0\16\127\2\0\7\127\1\0"+ "\1\127\4\0\4\127\1\u01d6\13\127\35\0\16\127\2\0"+ "\7\127\1\0\1\127\4\0\10\127\1\u01d7\7\127\35\0"+ "\16\127\2\0\7\127\1\0\1\127\4\0\12\127\1\u01d8"+ "\5\127\35\0\10\127\1\u01d9\5\127\2\0\7\127\1\0"+ "\1\127\4\0\20\127\35\0\6\127\1\u01da\7\127\2\0"+ "\7\127\1\0\1\127\4\0\20\127\35\0\16\127\2\0"+ "\7\127\1\0\1\127\4\0\1\127\1\u01db\16\127\35\0"+ "\12\127\1\u01dc\3\127\2\0\7\127\1\0\1\127\4\0"+ "\20\127\35\0\6\127\1\u01dd\7\127\2\0\7\127\1\0"+ "\1\127\4\0\20\127\22\0\10\u0171\1\u01de\101\u0171\7\u01df"+ "\1\u01e0\1\u0172\101\u01df\7\375\1\u01e1\1\u01e2\101\375\10\u0174"+ "\1\u01e3\101\u0174\14\0\1\u0103\16\0\1\u0177\1\u0103\2\0"+ "\1\u0103\65\0\16\27\2\0\7\27\1\0\2\27\3\0"+ "\5\27\1\u01e4\12\27\35\0\6\27\1\u01e5\7\27\2\0"+ "\7\27\1\0\2\27\3\0\20\27\35\0\14\27\1\u01e6"+ "\1\27\2\0\7\27\1\0\2\27\3\0\20\27\35\0"+ "\14\27\1\u01e7\1\27\2\0\7\27\1\0\2\27\3\0"+ "\20\27\35\0\16\27\2\0\7\27\1\0\2\27\3\0"+ "\6\27\1\u01e8\11\27\35\0\16\27\2\0\7\27\1\0"+ "\2\27\3\0\1\27\1\u01e9\16\27\35\0\16\27\2\0"+ "\7\27\1\0\2\27\3\0\6\27\1\u01ea\11\27\35\0"+ "\16\27\2\0\7\27\1\0\2\27\3\0\12\27\1\u01eb"+ "\5\27\35\0\6\27\1\u01ec\7\27\2\0\7\27\1\0"+ "\2\27\3\0\20\27\35\0\16\27\2\0\7\27\1\0"+ "\2\27\3\0\11\27\1\u01ed\6\27\55\0\1\u0185\1\u0111"+ "\2\0\1\u0111\65\0\2\u0112\2\0\2\u0112\4\0\4\u0112"+ "\2\0\1\u0186\4\u0112\11\0\2\u0112\52\0\16\27\2\0"+ "\7\27\1\0\2\27\3\0\3\27\1\u01ee\14\27\35\0"+ "\14\27\1\u01ef\1\27\2\0\7\27\1\0\2\27\3\0"+ "\20\27\22\0\1\237\2\u0119\1\u01f0\2\u0119\1\u011a\103\237"+ "\2\0\2\237\2\u018b\1\u01f1\105\0\1\u0119\1\237\2\u018b"+ "\1\u01f1\103\0\157\u011b\1\u01f2\44\u011b\1\242\2\u011d\1\u01f3"+ "\2\u011d\1\u011e\103\242\2\0\2\242\2\u0190\1\u01f4\105\0"+ "\1\u011d\1\242\2\u0190\1\u01f4\103\0\120\u0192\1\0\35\u0192"+ "\1\0\1\u0192\1\u01f5\43\u0192\13\0\16\27\2\0\7\27"+ "\1\0\2\27\3\0\1\27\1\u01f6\16\27\35\0\16\27"+ "\2\0\7\27\1\0\2\27\3\0\1\27\1\u01f7\16\27"+ "\35\0\14\27\1\u01f8\1\27\2\0\7\27\1\0\2\27"+ "\3\0\20\27\35\0\10\27\1\u01f9\5\27\2\0\7\27"+ "\1\0\2\27\3\0\20\27\35\0\16\27\2\0\7\27"+ "\1\0\2\27\3\0\6\27\1\u01fa\11\27\35\0\16\27"+ "\2\0\7\27\1\0\2\27\3\0\6\27\1\u01fb\11\27"+ "\35\0\16\27\2\0\7\27\1\0\2\27\3\0\4\27"+ "\1\u01fc\13\27\35\0\16\27\2\0\7\27\1\0\2\27"+ "\3\0\15\27\1\u01fd\2\27\35\0\10\27\1\u01fe\5\27"+ "\2\0\7\27\1\0\2\27\3\0\20\27\35\0\10\27"+ "\1\u01ff\5\27\2\0\7\27\1\0\2\27\3\0\20\27"+ "\35\0\16\27\2\0\7\27\1\0\2\27\3\0\2\27"+ "\1\u0200\15\27\35\0\16\27\2\0\7\27\1\0\2\27"+ "\3\0\6\27\1\u0201\11\27\35\0\16\27\2\0\7\27"+ "\1\0\2\27\3\0\15\27\1\u0202\2\27\35\0\16\27"+ "\2\0\7\27\1\0\2\27\3\0\5\27\1\u0203\12\27"+ "\35\0\16\27\2\0\7\27\1\0\2\27\3\0\2\27"+ "\1\u0204\15\27\35\0\16\27\2\0\7\27\1\0\2\27"+ "\3\0\5\27\1\u0205\12\27\35\0\16\27\2\0\7\27"+ "\1\0\2\27\3\0\4\27\1\u0206\13\27\35\0\16\27"+ "\2\0\7\27\1\0\2\27\3\0\17\27\1\u0207\35\0"+ "\16\27\2\0\7\27\1\0\2\27\3\0\6\27\1\u0208"+ "\11\27\35\0\16\27\2\0\7\27\1\0\2\27\3\0"+ "\13\27\1\u0209\4\27\35\0\16\27\2\0\7\27\1\0"+ "\2\27\3\0\5\27\1\u020a\12\27\35\0\14\27\1\u020b"+ "\1\27\2\0\7\27\1\0\2\27\3\0\20\27\35\0"+ "\16\127\2\0\7\127\1\0\1\127\4\0\5\127\1\u020c"+ "\12\127\35\0\6\127\1\u020d\7\127\2\0\7\127\1\0"+ "\1\127\4\0\20\127\35\0\14\127\1\u020e\1\127\2\0"+ "\7\127\1\0\1\127\4\0\20\127\35\0\14\127\1\u020f"+ "\1\127\2\0\7\127\1\0\1\127\4\0\20\127\35\0"+ "\16\127\2\0\7\127\1\0\1\127\4\0\6\127\1\u0210"+ "\11\127\35\0\16\127\2\0\7\127\1\0\1\127\4\0"+ "\1\127\1\u0211\16\127\35\0\16\127\2\0\7\127\1\0"+ "\1\127\4\0\6\127\1\u0212\11\127\35\0\16\127\2\0"+ "\7\127\1\0\1\127\4\0\12\127\1\u0213\5\127\35\0"+ "\6\127\1\u0214\7\127\2\0\7\127\1\0\1\127\4\0"+ "\20\127\35\0\16\127\2\0\7\127\1\0\1\127\4\0"+ "\11\127\1\u0215\6\127\35\0\16\127\2\0\7\127\1\0"+ "\1\127\4\0\3\127\1\u0216\14\127\35\0\14\127\1\u0217"+ "\1\127\2\0\7\127\1\0\1\127\4\0\20\127\35\0"+ "\16\127\2\0\7\127\1\0\1\127\4\0\1\127\1\u0218"+ "\16\127\35\0\16\127\2\0\7\127\1\0\1\127\4\0"+ "\1\127\1\u0219\16\127\35\0\14\127\1\u021a\1\127\2\0"+ "\7\127\1\0\1\127\4\0\20\127\35\0\10\127\1\u021b"+ "\5\127\2\0\7\127\1\0\1\127\4\0\20\127\35\0"+ "\16\127\2\0\7\127\1\0\1\127\4\0\6\127\1\u021c"+ "\11\127\35\0\16\127\2\0\7\127\1\0\1\127\4\0"+ "\6\127\1\u021d\11\127\35\0\16\127\2\0\7\127\1\0"+ "\1\127\4\0\4\127\1\u021e\13\127\35\0\16\127\2\0"+ "\7\127\1\0\1\127\4\0\15\127\1\u021f\2\127\35\0"+ "\10\127\1\u0220\5\127\2\0\7\127\1\0\1\127\4\0"+ "\20\127\35\0\10\127\1\u0221\5\127\2\0\7\127\1\0"+ "\1\127\4\0\20\127\35\0\16\127\2\0\7\127\1\0"+ "\1\127\4\0\2\127\1\u0222\15\127\35\0\16\127\2\0"+ "\7\127\1\0\1\127\4\0\6\127\1\u0223\11\127\35\0"+ "\16\127\2\0\7\127\1\0\1\127\4\0\15\127\1\u0224"+ "\2\127\35\0\16\127\2\0\7\127\1\0\1\127\4\0"+ "\5\127\1\u0225\12\127\35\0\16\127\2\0\7\127\1\0"+ "\1\127\4\0\2\127\1\u0226\15\127\35\0\16\127\2\0"+ "\7\127\1\0\1\127\4\0\5\127\1\u0227\12\127\35\0"+ "\16\127\2\0\7\127\1\0\1\127\4\0\4\127\1\u0228"+ "\13\127\35\0\16\127\2\0\7\127\1\0\1\127\4\0"+ "\17\127\1\u0229\35\0\16\127\2\0\7\127\1\0\1\127"+ "\4\0\6\127\1\u022a\11\127\35\0\16\127\2\0\7\127"+ "\1\0\1\127\4\0\13\127\1\u022b\4\127\35\0\16\127"+ "\2\0\7\127\1\0\1\127\4\0\5\127\1\u022c\12\127"+ "\35\0\14\127\1\u022d\1\127\2\0\7\127\1\0\1\127"+ "\4\0\20\127\22\0\7\u0171\1\u022e\1\u022f\101\u0171\10\u01df"+ "\1\u0230\101\u01df\7\u0174\1\u0175\1\u0231\101\u0174\13\0\6\27"+ "\1\u0232\7\27\2\0\7\27\1\0\2\27\3\0\20\27"+ "\35\0\16\27\2\0\7\27\1\0\2\27\3\0\7\27"+ "\1\u0233\10\27\35\0\16\27\2\0\7\27\1\0\2\27"+ "\3\0\5\27\1\u0234\12\27\35\0\16\27\2\0\7\27"+ "\1\0\2\27\3\0\11\27\1\u0235\6\27\35\0\4\27"+ "\1\u0236\11\27\2\0\7\27\1\0\2\27\3\0\20\27"+ "\35\0\6\27\1\u0237\7\27\2\0\7\27\1\0\2\27"+ "\3\0\20\27\35\0\14\27\1\u0238\1\27\2\0\7\27"+ "\1\0\2\27\3\0\20\27\35\0\12\27\1\u0239\3\27"+ "\2\0\7\27\1\0\2\27\3\0\20\27\35\0\16\27"+ "\2\0\7\27\1\0\2\27\3\0\1\27\1\u023a\16\27"+ "\22\0\2\237\1\u0119\1\237\2\u0119\1\u018a\36\237\1\u0118"+ "\44\237\1\0\2\u018b\1\u018c\1\0\1\u018b\104\0\45\u011b"+ "\1\u0118\44\u011b\2\242\1\u011d\1\242\2\u011d\1\u018f\35\242"+ "\1\0\1\242\1\u011c\43\242\1\0\2\u0190\1\u0191\1\0"+ "\1\u0190\104\0\6\u0192\1\0\35\u0192\1\0\1\u0192\1\u011c"+ "\43\u0192\13\0\2\27\1\u023b\13\27\2\0\7\27\1\0"+ "\2\27\3\0\20\27\35\0\16\27\2\0\7\27\1\0"+ "\2\27\3\0\5\27\1\u023c\12\27\35\0\16\27\2\0"+ "\7\27\1\0\2\27\3\0\2\27\1\u023d\15\27\35\0"+ "\16\27\2\0\7\27\1\0\2\27\3\0\2\27\1\u023e"+ "\15\27\35\0\16\27\2\0\7\27\1\0\2\27\3\0"+ "\1\27\1\u023f\16\27\35\0\16\27\2\0\7\27\1\0"+ "\2\27\3\0\5\27\1\u0240\12\27\35\0\16\27\2\0"+ "\7\27\1\0\2\27\3\0\11\27\1\u0241\6\27\35\0"+ "\16\27\2\0\7\27\1\0\2\27\3\0\2\27\1\u0242"+ "\15\27\35\0\16\27\2\0\7\27\1\0\2\27\3\0"+ "\5\27\1\u0243\12\27\35\0\16\27\2\0\7\27\1\0"+ "\2\27\3\0\6\27\1\u0244\11\27\35\0\16\27\2\0"+ "\7\27\1\0\2\27\3\0\15\27\1\u0245\2\27\35\0"+ "\10\27\1\u0246\5\27\2\0\7\27\1\0\2\27\3\0"+ "\20\27\35\0\16\27\2\0\7\27\1\0\2\27\3\0"+ "\4\27\1\u0247\13\27\35\0\16\27\2\0\7\27\1\0"+ "\2\27\3\0\11\27\1\u0248\6\27\35\0\14\27\1\u0249"+ "\1\27\2\0\7\27\1\0\2\27\3\0\20\27\35\0"+ "\10\27\1\u024a\5\27\2\0\7\27\1\0\2\27\3\0"+ "\20\27\35\0\6\127\1\u024b\7\127\2\0\7\127\1\0"+ "\1\127\4\0\20\127\35\0\16\127\2\0\7\127\1\0"+ "\1\127\4\0\7\127\1\u024c\10\127\35\0\16\127\2\0"+ "\7\127\1\0\1\127\4\0\5\127\1\u024d\12\127\35\0"+ "\16\127\2\0\7\127\1\0\1\127\4\0\11\127\1\u024e"+ "\6\127\35\0\4\127\1\u024f\11\127\2\0\7\127\1\0"+ "\1\127\4\0\20\127\35\0\6\127\1\u0250\7\127\2\0"+ "\7\127\1\0\1\127\4\0\20\127\35\0\14\127\1\u0251"+ "\1\127\2\0\7\127\1\0\1\127\4\0\20\127\35\0"+ "\12\127\1\u0252\3\127\2\0\7\127\1\0\1\127\4\0"+ "\20\127\35\0\16\127\2\0\7\127\1\0\1\127\4\0"+ "\1\127\1\u0253\16\127\35\0\2\127\1\u0254\13\127\2\0"+ "\7\127\1\0\1\127\4\0\20\127\35\0\16\127\2\0"+ "\7\127\1\0\1\127\4\0\5\127\1\u0255\12\127\35\0"+ "\16\127\2\0\7\127\1\0\1\127\4\0\2\127\1\u0256"+ "\15\127\35\0\16\127\2\0\7\127\1\0\1\127\4\0"+ "\2\127\1\u0257\15\127\35\0\16\127\2\0\7\127\1\0"+ "\1\127\4\0\1\127\1\u0258\16\127\35\0\16\127\2\0"+ "\7\127\1\0\1\127\4\0\5\127\1\u0259\12\127\35\0"+ "\16\127\2\0\7\127\1\0\1\127\4\0\11\127\1\u025a"+ "\6\127\35\0\16\127\2\0\7\127\1\0\1\127\4\0"+ "\2\127\1\u025b\15\127\35\0\16\127\2\0\7\127\1\0"+ "\1\127\4\0\5\127\1\u025c\12\127\35\0\16\127\2\0"+ "\7\127\1\0\1\127\4\0\6\127\1\u025d\11\127\35\0"+ "\16\127\2\0\7\127\1\0\1\127\4\0\15\127\1\u025e"+ "\2\127\35\0\10\127\1\u025f\5\127\2\0\7\127\1\0"+ "\1\127\4\0\20\127\35\0\16\127\2\0\7\127\1\0"+ "\1\127\4\0\4\127\1\u0260\13\127\35\0\16\127\2\0"+ "\7\127\1\0\1\127\4\0\11\127\1\u0261\6\127\35\0"+ "\14\127\1\u0262\1\127\2\0\7\127\1\0\1\127\4\0"+ "\20\127\35\0\10\127\1\u0263\5\127\2\0\7\127\1\0"+ "\1\127\4\0\20\127\22\0\7\u01df\1\u01e0\1\u0264\101\u01df"+ "\13\0\16\27\2\0\7\27\1\0\2\27\3\0\14\27"+ "\1\u0265\3\27\35\0\14\27\1\u0266\1\27\2\0\7\27"+ "\1\0\2\27\3\0\20\27\35\0\16\27\2\0\7\27"+ "\1\0\2\27\3\0\2\27\1\u0267\15\27\35\0\16\27"+ "\2\0\7\27\1\0\2\27\3\0\1\27\1\u0268\16\27"+ "\35\0\16\27\2\0\7\27\1\0\2\27\3\0\5\27"+ "\1\u0269\12\27\35\0\16\27\2\0\7\27\1\0\2\27"+ "\3\0\4\27\1\u026a\13\27\35\0\16\27\2\0\7\27"+ "\1\0\2\27\3\0\11\27\1\u026b\6\27\35\0\14\27"+ "\1\u026c\1\27\2\0\7\27\1\0\2\27\3\0\20\27"+ "\35\0\14\27\1\u026d\1\27\2\0\7\27\1\0\2\27"+ "\3\0\20\27\35\0\16\27\2\0\7\27\1\0\2\27"+ "\3\0\5\27\1\u026e\12\27\35\0\16\27\2\0\7\27"+ "\1\0\2\27\3\0\2\27\1\u026f\15\27\35\0\16\27"+ "\2\0\7\27\1\0\2\27\3\0\12\27\1\u0270\5\27"+ "\35\0\4\27\1\u0271\11\27\2\0\7\27\1\0\2\27"+ "\3\0\20\27\35\0\16\27\2\0\7\27\1\0\2\27"+ "\3\0\10\27\1\u0272\7\27\35\0\14\27\1\u0273\1\27"+ "\2\0\7\27\1\0\2\27\3\0\20\27\35\0\6\27"+ "\1\u0274\7\27\2\0\7\27\1\0\2\27\3\0\20\27"+ "\35\0\16\127\2\0\7\127\1\0\1\127\4\0\14\127"+ "\1\u0275\3\127\35\0\14\127\1\u0276\1\127\2\0\7\127"+ "\1\0\1\127\4\0\20\127\35\0\16\127\2\0\7\127"+ "\1\0\1\127\4\0\2\127\1\u0277\15\127\35\0\16\127"+ "\2\0\7\127\1\0\1\127\4\0\1\127\1\u0278\16\127"+ "\35\0\16\127\2\0\7\127\1\0\1\127\4\0\5\127"+ "\1\u0279\12\127\35\0\16\127\2\0\7\127\1\0\1\127"+ "\4\0\4\127\1\u027a\13\127\35\0\16\127\2\0\7\127"+ "\1\0\1\127\4\0\11\127\1\u027b\6\127\35\0\14\127"+ "\1\u027c\1\127\2\0\7\127\1\0\1\127\4\0\20\127"+ "\35\0\14\127\1\u027d\1\127\2\0\7\127\1\0\1\127"+ "\4\0\20\127\35\0\16\127\2\0\7\127\1\0\1\127"+ "\4\0\5\127\1\u027e\12\127\35\0\16\127\2\0\7\127"+ "\1\0\1\127\4\0\2\127\1\u027f\15\127\35\0\16\127"+ "\2\0\7\127\1\0\1\127\4\0\12\127\1\u0280\5\127"+ "\35\0\4\127\1\u0281\11\127\2\0\7\127\1\0\1\127"+ "\4\0\20\127\35\0\16\127\2\0\7\127\1\0\1\127"+ "\4\0\10\127\1\u0282\7\127\35\0\14\127\1\u0283\1\127"+ "\2\0\7\127\1\0\1\127\4\0\20\127\35\0\6\127"+ "\1\u0284\7\127\2\0\7\127\1\0\1\127\4\0\20\127"+ "\35\0\16\27\2\0\7\27\1\0\2\27\3\0\11\27"+ "\1\u0285\6\27\35\0\14\27\1\u0286\1\27\2\0\7\27"+ "\1\0\2\27\3\0\20\27\35\0\16\27\2\0\7\27"+ "\1\0\2\27\3\0\2\27\1\u0287\15\27\35\0\14\27"+ "\1\u0288\1\27\2\0\7\27\1\0\2\27\3\0\20\27"+ "\35\0\16\27\2\0\7\27\1\0\2\27\3\0\5\27"+ "\1\u0289\12\27\35\0\14\27\1\u028a\1\27\2\0\7\27"+ "\1\0\2\27\3\0\20\27\35\0\16\27\2\0\7\27"+ "\1\0\2\27\3\0\1\u028b\17\27\35\0\16\27\2\0"+ "\7\27\1\0\2\27\3\0\11\27\1\u028c\6\27\35\0"+ "\16\27\2\0\7\27\1\0\2\27\3\0\11\27\1\u028d"+ "\6\27\35\0\14\27\1\u028e\1\27\2\0\7\27\1\0"+ "\2\27\3\0\20\27\35\0\16\127\2\0\7\127\1\0"+ "\1\127\4\0\11\127\1\u028f\6\127\35\0\14\127\1\u0290"+ "\1\127\2\0\7\127\1\0\1\127\4\0\20\127\35\0"+ "\16\127\2\0\7\127\1\0\1\127\4\0\2\127\1\u0291"+ "\15\127\35\0\14\127\1\u0292\1\127\2\0\7\127\1\0"+ "\1\127\4\0\20\127\35\0\16\127\2\0\7\127\1\0"+ "\1\127\4\0\5\127\1\u0293\12\127\35\0\14\127\1\u0294"+ "\1\127\2\0\7\127\1\0\1\127\4\0\20\127\35\0"+ "\16\127\2\0\7\127\1\0\1\127\4\0\1\u0295\17\127"+ "\35\0\16\127\2\0\7\127\1\0\1\127\4\0\11\127"+ "\1\u0296\6\127\35\0\16\127\2\0\7\127\1\0\1\127"+ "\4\0\11\127\1\u0297\6\127\35\0\14\127\1\u0298\1\127"+ "\2\0\7\127\1\0\1\127\4\0\20\127\35\0\16\27"+ "\2\0\7\27\1\0\2\27\3\0\5\27\1\u0299\12\27"+ "\35\0\16\27\2\0\7\27\1\0\2\27\3\0\10\27"+ "\1\u029a\7\27\35\0\14\27\1\u029b\1\27\2\0\7\27"+ "\1\0\2\27\3\0\20\27\35\0\12\27\1\u029c\3\27"+ "\2\0\7\27\1\0\2\27\3\0\20\27\35\0\10\27"+ "\1\u029d\5\27\2\0\7\27\1\0\2\27\3\0\20\27"+ "\35\0\16\27\2\0\7\27\1\0\2\27\3\0\5\27"+ "\1\u029e\12\27\35\0\16\127\2\0\7\127\1\0\1\127"+ "\4\0\5\127\1\u029f\12\127\35\0\16\127\2\0\7\127"+ "\1\0\1\127\4\0\10\127\1\u02a0\7\127\35\0\14\127"+ "\1\u02a1\1\127\2\0\7\127\1\0\1\127\4\0\20\127"+ "\35\0\12\127\1\u02a2\3\127\2\0\7\127\1\0\1\127"+ "\4\0\20\127\35\0\10\127\1\u02a3\5\127\2\0\7\127"+ "\1\0\1\127\4\0\20\127\35\0\16\127\2\0\7\127"+ "\1\0\1\127\4\0\5\127\1\u02a4\12\127\35\0\16\27"+ "\2\0\7\27\1\0\2\27\3\0\4\27\1\u02a5\13\27"+ "\35\0\4\27\1\u02a6\11\27\2\0\7\27\1\0\2\27"+ "\3\0\20\27\35\0\16\27\2\0\7\27\1\0\2\27"+ "\3\0\16\27\1\u02a7\1\27\35\0\16\127\2\0\7\127"+ "\1\0\1\127\4\0\4\127\1\u02a8\13\127\35\0\4\127"+ "\1\u02a9\11\127\2\0\7\127\1\0\1\127\4\0\20\127"+ "\35\0\16\127\2\0\7\127\1\0\1\127\4\0\16\127"+ "\1\u02aa\1\127\35\0\14\27\1\u02ab\1\27\2\0\7\27"+ "\1\0\2\27\3\0\20\27\35\0\14\127\1\u02ac\1\127"+ "\2\0\7\127\1\0\1\127\4\0\20\127\35\0\12\27"+ "\1\u02ad\3\27\2\0\7\27\1\0\2\27\3\0\20\27"+ "\35\0\12\127\1\u02ae\3\127\2\0\7\127\1\0\1\127"+ "\4\0\20\127\22\0"; private static int [] zzUnpackTrans() { int [] result = new int[37370]; int offset = 0; offset = zzUnpackTrans(ZZ_TRANS_PACKED_0, offset, result); return result; } private static int zzUnpackTrans(String packed, int offset, int [] result) { int i = 0; /* index in packed string */ int j = offset; /* index in unpacked array */ int l = packed.length(); while (i < l) { int count = packed.charAt(i++); int value = packed.charAt(i++); value--; do result[j++] = value; while (--count > 0); } return j; } /* error codes */ private static final int ZZ_UNKNOWN_ERROR = 0; private static final int ZZ_NO_MATCH = 1; private static final int ZZ_PUSHBACK_2BIG = 2; /* error messages for the codes above */ private static final String[] ZZ_ERROR_MSG = { "Unknown internal scanner error", "Error: could not match input", "Error: pushback value was too large" }; /** * ZZ_ATTRIBUTE[aState] contains the attributes of state <code>aState</code> */ private static final int [] ZZ_ATTRIBUTE = zzUnpackAttribute(); private static final String ZZ_ATTRIBUTE_PACKED_0 = "\15\0\1\11\1\1\1\11\25\1\1\11\11\1\1\11"+ "\2\1\6\11\2\1\1\11\4\1\4\11\7\1\2\11"+ "\4\1\1\11\4\1\1\11\20\1\2\11\1\1\2\11"+ "\3\1\1\11\1\1\1\11\1\1\1\0\3\1\1\11"+ "\1\1\2\11\2\1\5\11\3\0\15\1\5\11\2\0"+ "\4\1\2\11\1\1\1\0\1\1\2\0\30\1\3\11"+ "\1\1\1\0\1\11\1\0\10\11\1\0\1\11\1\1"+ "\5\11\47\1\1\0\4\1\2\11\1\1\1\0\23\1"+ "\3\11\3\1\1\11\2\0\36\1\5\11\1\0\1\11"+ "\61\1\2\11\1\0\15\1\2\0\3\1\3\0\2\1"+ "\6\0\34\1\1\11\56\1\2\11\1\0\16\1\1\0"+ "\1\1\3\0\70\1\1\11\1\0\1\1\1\0\62\1"+ "\1\0\112\1"; private static int [] zzUnpackAttribute() { int [] result = new int[686]; int offset = 0; offset = zzUnpackAttribute(ZZ_ATTRIBUTE_PACKED_0, offset, result); return result; } private static int zzUnpackAttribute(String packed, int offset, int [] result) { int i = 0; /* index in packed string */ int j = offset; /* index in unpacked array */ int l = packed.length(); while (i < l) { int count = packed.charAt(i++); int value = packed.charAt(i++); do result[j++] = value; while (--count > 0); } return j; } /** the input device */ private java.io.Reader zzReader; /** the current state of the DFA */ private int zzState; /** the current lexical state */ private int zzLexicalState = YYINITIAL; /** this buffer contains the current text to be matched and is the source of the yytext() string */ private CharSequence zzBuffer = ""; /** the textposition at the last accepting state */ private int zzMarkedPos; /** the current text position in the buffer */ private int zzCurrentPos; /** startRead marks the beginning of the yytext() string in the buffer */ private int zzStartRead; /** endRead marks the last character in the buffer, that has been read from input */ private int zzEndRead; /** * zzAtBOL == true <=> the scanner is currently at the beginning of a line */ private boolean zzAtBOL = true; /** zzAtEOF == true <=> the scanner is at the EOF */ private boolean zzAtEOF; /** denotes if the user-EOF-code has already been executed */ private boolean zzEOFDone; /* user code: */ @Override protected int getInitialState() { return YYINITIAL; } @Override protected int getDivisionExpectedState() { return DIVISION_EXPECTED; } @Override protected int[] getDivisionStates() { return new int[] {YYINITIAL, IN_INNER_BLOCK}; } /** * Creates a new scanner * * @param in the java.io.Reader to read input from. */ public _GroovyLexer(java.io.Reader in) { this.zzReader = in; } /** * Unpacks the compressed character translation table. * * @param packed the packed character translation table * @return the unpacked character translation table */ private static char [] zzUnpackCMap(String packed) { int size = 0; for (int i = 0, length = packed.length(); i < length; i += 2) { size += packed.charAt(i); } char[] map = new char[size]; int i = 0; /* index in packed string */ int j = 0; /* index in unpacked array */ while (i < packed.length()) { int count = packed.charAt(i++); char value = packed.charAt(i++); do map[j++] = value; while (--count > 0); } return map; } public final int getTokenStart() { return zzStartRead; } public final int getTokenEnd() { return getTokenStart() + yylength(); } public void reset(CharSequence buffer, int start, int end, int initialState) { zzBuffer = buffer; zzCurrentPos = zzMarkedPos = zzStartRead = start; zzAtEOF = false; zzAtBOL = true; zzEndRead = end; resetState(); yybegin(initialState); } /** * Refills the input buffer. * * @return <code>false</code>, iff there was new input. * * @exception java.io.IOException if any I/O-Error occurs */ private boolean zzRefill() throws java.io.IOException { return true; } /** * Returns the current lexical state. */ public final int yystate() { return zzLexicalState; } /** * Enters a new lexical state * * @param newState the new lexical state */ public final void yybegin(int newState) { zzLexicalState = newState; } /** * Returns the text matched by the current regular expression. */ public final CharSequence yytext() { return zzBuffer.subSequence(zzStartRead, zzMarkedPos); } /** * Returns the character at position <tt>pos</tt> from the * matched text. * * It is equivalent to yytext().charAt(pos), but faster * * @param pos the position of the character to fetch. * A value from 0 to yylength()-1. * * @return the character at position pos */ public final char yycharat(int pos) { return zzBuffer.charAt(zzStartRead+pos); } /** * Returns the length of the matched text region. */ public final int yylength() { return zzMarkedPos-zzStartRead; } /** * Reports an error that occured while scanning. * * In a wellformed scanner (no or only correct usage of * yypushback(int) and a match-all fallback rule) this method * will only be called with things that "Can't Possibly Happen". * If this method is called, something is seriously wrong * (e.g. a JFlex bug producing a faulty scanner etc.). * * Usual syntax/scanner level error handling should be done * in error fallback rules. * * @param errorCode the code of the errormessage to display */ private void zzScanError(int errorCode) { String message; try { message = ZZ_ERROR_MSG[errorCode]; } catch (ArrayIndexOutOfBoundsException e) { message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR]; } throw new Error(message); } /** * Pushes the specified amount of characters back into the input stream. * * They will be read again by then next call of the scanning method * * @param number the number of characters to be read again. * This number must not be greater than yylength()! */ public void yypushback(int number) { if ( number > yylength() ) zzScanError(ZZ_PUSHBACK_2BIG); zzMarkedPos -= number; } /** * Resumes scanning until the next regular expression is matched, * the end of input is encountered or an I/O-Error occurs. * * @return the next token * @exception java.io.IOException if any I/O-Error occurs */ public IElementType advance() throws java.io.IOException { int zzInput; int zzAction; // cached fields: int zzCurrentPosL; int zzMarkedPosL; int zzEndReadL = zzEndRead; CharSequence zzBufferL = zzBuffer; int [] zzTransL = ZZ_TRANS; int [] zzRowMapL = ZZ_ROWMAP; int [] zzAttrL = ZZ_ATTRIBUTE; while (true) { zzMarkedPosL = zzMarkedPos; zzAction = -1; zzCurrentPosL = zzCurrentPos = zzStartRead = zzMarkedPosL; zzState = ZZ_LEXSTATE[zzLexicalState]; // set up zzAction for empty match case: int zzAttributes = zzAttrL[zzState]; if ( (zzAttributes & 1) == 1 ) { zzAction = zzState; } zzForAction: { while (true) { if (zzCurrentPosL < zzEndReadL) { zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL/*, zzEndReadL*/); zzCurrentPosL += Character.charCount(zzInput); } else if (zzAtEOF) { zzInput = YYEOF; break zzForAction; } else { // store back cached positions zzCurrentPos = zzCurrentPosL; zzMarkedPos = zzMarkedPosL; boolean eof = zzRefill(); // get translated positions and possibly new buffer zzCurrentPosL = zzCurrentPos; zzMarkedPosL = zzMarkedPos; zzBufferL = zzBuffer; zzEndReadL = zzEndRead; if (eof) { zzInput = YYEOF; break zzForAction; } else { zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL/*, zzEndReadL*/); zzCurrentPosL += Character.charCount(zzInput); } } int zzNext = zzTransL[ zzRowMapL[zzState] + ZZ_CMAP(zzInput) ]; if (zzNext == -1) break zzForAction; zzState = zzNext; zzAttributes = zzAttrL[zzState]; if ( (zzAttributes & 1) == 1 ) { zzAction = zzState; zzMarkedPosL = zzCurrentPosL; if ( (zzAttributes & 8) == 8 ) break zzForAction; } } } // store back cached position zzMarkedPos = zzMarkedPosL; if (zzInput == YYEOF && zzStartRead == zzCurrentPos) { zzAtEOF = true; return null; } else { switch (zzAction < 0 ? zzAction : ZZ_ACTION[zzAction]) { case 1: { return mWRONG; } case 159: break; case 2: { yybeginstate(NLS_AFTER_NLS); return isWithinBraces() ? TokenType.WHITE_SPACE : storeToken(mNLS); } case 160: break; case 3: { return TokenType.WHITE_SPACE; } case 161: break; case 4: { yybeginstate(IN_SLASHY_STRING); return storeToken(mREGEX_BEGIN); } case 162: break; case 5: { return storeToken(mSTAR); } case 163: break; case 6: { return storeToken(mLNOT); } case 164: break; case 7: { return storeToken(mIDENT); } case 165: break; case 8: { return storeToken(mNUM_INT); } case 166: break; case 9: { return storeToken(mPLUS); } case 167: break; case 10: { return storeToken(mMINUS); } case 168: break; case 11: { return storeToken(mDOT); } case 169: break; case 12: { return storeToken(mSTRING_LITERAL); } case 170: break; case 13: { yybeginstate(IN_SINGLE_GSTRING); return storeToken(mGSTRING_BEGIN); } case 171: break; case 14: { yyendstate(YYINITIAL); return storeToken(mRCURLY); } case 172: break; case 15: { yybeginstate(YYINITIAL, NLS_AFTER_LBRACE); return storeToken(mLCURLY); } case 173: break; case 16: { return storeToken(mASSIGN); } case 174: break; case 17: { return storeToken(mQUESTION); } case 175: break; case 18: { return storeToken(mLPAREN); } case 176: break; case 19: { return storeToken(mRPAREN); } case 177: break; case 20: { return storeToken(mLBRACK); } case 178: break; case 21: { return storeToken(mRBRACK); } case 179: break; case 22: { return storeToken(mCOLON); } case 180: break; case 23: { return storeToken(mCOMMA); } case 181: break; case 24: { return storeToken(mLT); } case 182: break; case 25: { return storeToken(mGT); } case 183: break; case 26: { return storeToken(mBNOT); } case 184: break; case 27: { return storeToken(mMOD); } case 185: break; case 28: { return storeToken(mBXOR); } case 186: break; case 29: { return storeToken(mBOR); } case 187: break; case 30: { return storeToken(mBAND); } case 188: break; case 31: { return storeToken(mSEMI); } case 189: break; case 32: { return storeToken(mAT); } case 190: break; case 33: { yyendstate(IN_INNER_BLOCK, IN_GSTRING_DOLLAR); return storeToken(mRCURLY); } case 191: break; case 34: { yypushback(1); yyendstate(DIVISION_EXPECTED); } case 192: break; case 35: { return storeToken(mGSTRING_CONTENT); } case 193: break; case 36: { resetState(); yybeginstate(NLS_AFTER_NLS); return storeToken(mNLS); } case 194: break; case 37: { yybeginstate(IN_GSTRING_DOLLAR); return storeToken(mDOLLAR); } case 195: break; case 38: { yyendstate(IN_SINGLE_GSTRING); return storeToken(mGSTRING_END); } case 196: break; case 39: { return storeToken(mREGEX_CONTENT); } case 197: break; case 40: { yyendstate(IN_SLASHY_STRING); return storeToken(mREGEX_END); } case 198: break; case 41: { return storeToken(mDOLLAR_SLASH_REGEX_CONTENT); } case 199: break; case 42: { yypushback(1); yyendstate(IN_GSTRING_DOLLAR); } case 200: break; case 43: { yybeginstate(IN_GSTRING_DOT); return storeToken(mIDENT); } case 201: break; case 44: { yybeginstate(IN_INNER_BLOCK, NLS_AFTER_LBRACE); return storeToken(mLCURLY); } case 202: break; case 45: { yypushback(1); yyendstate(IN_GSTRING_DOT); } case 203: break; case 46: { yypushback(1); yyendstate(IN_GSTRING_DOT_IDENT); } case 204: break; case 47: { yypushback(1); yyendstate(NLS_AFTER_COMMENT); } case 205: break; case 48: { yypushback(1); yyendstate(NLS_AFTER_LBRACE); } case 206: break; case 49: { yypushback(1); yyendstate(NLS_AFTER_NLS); yybeginstate(NLS_AFTER_COMMENT); } case 207: break; case 50: { return storeToken(mSL_COMMENT); } case 208: break; case 51: { return storeToken(mML_COMMENT); } case 209: break; case 52: { return storeToken(mDIV_ASSIGN); } case 210: break; case 53: { return storeToken(mSTAR_STAR); } case 211: break; case 54: { return storeToken(mSPREAD_DOT); } case 212: break; case 55: { return storeToken(mSTAR_ASSIGN); } case 213: break; case 56: { return storeToken(mSH_COMMENT); } case 214: break; case 57: { return storeToken(mNOT_EQUAL); } case 215: break; case 58: { return storeToken(mNUM_BIG_INT); } case 216: break; case 59: { return storeToken(mNUM_FLOAT); } case 217: break; case 60: { return storeToken(mNUM_LONG); } case 218: break; case 61: { return storeToken(mNUM_DOUBLE); } case 219: break; case 62: { return storeToken(kIF); } case 220: break; case 63: { return storeToken(kIN); } case 221: break; case 64: { return storeToken(kDO); } case 222: break; case 65: { return storeToken(mINC); } case 223: break; case 66: { return storeToken(mPLUS_ASSIGN); } case 224: break; case 67: { return storeToken(mDEC); } case 225: break; case 68: { return storeToken(mMINUS_ASSIGN); } case 226: break; case 69: { return storeToken(mCLOSABLE_BLOCK_OP); } case 227: break; case 70: { return storeToken(mRANGE_INCLUSIVE); } case 228: break; case 71: { return storeToken(mMEMBER_POINTER); } case 229: break; case 72: { yybeginstate(IN_DOLLAR_SLASH_STRING); return storeToken(mDOLLAR_SLASH_REGEX_BEGIN); } case 230: break; case 73: { return storeToken(mGSTRING_LITERAL); } case 231: break; case 74: { return storeToken(kAS); } case 232: break; case 75: { return storeToken(mEQUAL); } case 233: break; case 76: { return storeToken(mREGEX_FIND); } case 234: break; case 77: { return storeToken(mOPTIONAL_DOT); } case 235: break; case 78: { return storeToken(mELVIS); } case 236: break; case 79: { return storeToken(mLE); } case 237: break; case 80: { return storeToken(mGE); } case 238: break; case 81: { return storeToken(mMOD_ASSIGN); } case 239: break; case 82: { return storeToken(mBXOR_ASSIGN); } case 240: break; case 83: { return storeToken(mBOR_ASSIGN); } case 241: break; case 84: { return storeToken(mLOR); } case 242: break; case 85: { return storeToken(mBAND_ASSIGN); } case 243: break; case 86: { return storeToken(mLAND); } case 244: break; case 87: // lookahead expression with fixed base length zzMarkedPos = Character.offsetByCodePoints (zzBufferL/*, zzStartRead, zzEndRead - zzStartRead*/, zzStartRead, 1); { yyendstate(DIVISION_EXPECTED); return storeToken(mDIV); } case 245: break; case 88: { yypushback(1); yyendstate(DIVISION_EXPECTED); return storeToken(mDOLLAR); } case 246: break; case 89: // lookahead expression with fixed base length zzMarkedPos = Character.offsetByCodePoints (zzBufferL/*, zzStartRead, zzEndRead - zzStartRead*/, zzStartRead, 1); { return storeToken(mREGEX_CONTENT); } case 247: break; case 90: { yyendstate(IN_DOLLAR_SLASH_STRING); return storeToken(mDOLLAR_SLASH_REGEX_END); } case 248: break; case 91: // lookahead expression with fixed base length zzMarkedPos = Character.offsetByCodePoints (zzBufferL/*, zzStartRead, zzEndRead - zzStartRead*/, zzStartRead, 1); { return storeToken(mDOLLAR_SLASH_REGEX_CONTENT); } case 249: break; case 92: // lookahead expression with fixed base length zzMarkedPos = Character.offsetByCodePoints (zzBufferL/*, zzStartRead, zzEndRead - zzStartRead*/, zzStartRead, 1); { yybeginstate(IN_GSTRING_DOT_IDENT); return storeToken(mDOT); } case 250: break; case 93: { return mSL_COMMENT; } case 251: break; case 94: { return mML_COMMENT; } case 252: break; case 95: { return storeToken(GROOVY_DOC_COMMENT); } case 253: break; case 96: { return storeToken(mSTAR_STAR_ASSIGN); } case 254: break; case 97: { return storeToken(mNUM_BIG_DECIMAL); } case 255: break; case 98: { return storeToken(kFOR); } case 256: break; case 99: { return storeToken(kINT); } case 257: break; case 100: { return storeToken(kDEF); } case 258: break; case 101: { return storeToken(mTRIPLE_DOT); } case 259: break; case 102: { return storeToken(mRANGE_EXCLUSIVE); } case 260: break; case 103: { yybeginstate(IN_TRIPLE_GSTRING); return storeToken(mGSTRING_BEGIN); } case 261: break; case 104: { return storeToken(kTRY); } case 262: break; case 105: { return storeToken(kNEW); } case 263: break; case 106: { return storeToken(mREGEX_MATCH); } case 264: break; case 107: { return storeToken(mCOMPARE_TO); } case 265: break; case 108: { return storeToken(mSL_ASSIGN); } case 266: break; case 109: { return storeToken(mSR_ASSIGN); } case 267: break; case 110: { yyendstate(IN_TRIPLE_GSTRING); return storeToken(mGSTRING_END); } case 268: break; case 111: { return GROOVY_DOC_COMMENT; } case 269: break; case 112: { return storeToken(kLONG); } case 270: break; case 113: { return storeToken(kELSE); } case 271: break; case 114: { return storeToken(kENUM); } case 272: break; case 115: { return storeToken(kBYTE); } case 273: break; case 116: { return storeToken(kCASE); } case 274: break; case 117: { return storeToken(kCHAR); } case 275: break; case 118: { return storeToken(kTRUE); } case 276: break; case 119: { return storeToken(kTHIS); } case 277: break; case 120: { return storeToken(kNULL); } case 278: break; case 121: { return storeToken(kVOID); } case 279: break; case 122: { return storeToken(mBSR_ASSIGN); } case 280: break; case 123: { return storeToken(kFLOAT); } case 281: break; case 124: { return storeToken(kFINAL); } case 282: break; case 125: { return storeToken(kFALSE); } case 283: break; case 126: { return storeToken(kBREAK); } case 284: break; case 127: { return storeToken(kCLASS); } case 285: break; case 128: { return storeToken(kCATCH); } case 286: break; case 129: { return storeToken(kSUPER); } case 287: break; case 130: { return storeToken(kSHORT); } case 288: break; case 131: { return storeToken(kTRAIT); } case 289: break; case 132: { return storeToken(kTHROW); } case 290: break; case 133: { return storeToken(kWHILE); } case 291: break; case 134: { return storeToken(kIMPORT); } case 292: break; case 135: { return storeToken(kDOUBLE); } case 293: break; case 136: { return storeToken(kPUBLIC); } case 294: break; case 137: { return storeToken(kASSERT); } case 295: break; case 138: { return storeToken(kSTATIC); } case 296: break; case 139: { return storeToken(kSWITCH); } case 297: break; case 140: { return storeToken(kTHROWS); } case 298: break; case 141: { return storeToken(kRETURN); } case 299: break; case 142: { return storeToken(kNATIVE); } case 300: break; case 143: { return storeToken(kFINALLY); } case 301: break; case 144: { return storeToken(kDEFAULT); } case 302: break; case 145: { return storeToken(kEXTENDS); } case 303: break; case 146: { return storeToken(kBOOLEAN); } case 304: break; case 147: { return storeToken(kPACKAGE); } case 305: break; case 148: { return storeToken(kPRIVATE); } case 306: break; case 149: { return storeToken(kABSTRACT); } case 307: break; case 150: { return storeToken(kCONTINUE); } case 308: break; case 151: { return storeToken(kSTRICTFP); } case 309: break; case 152: { return storeToken(kVOLATILE); } case 310: break; case 153: { return storeToken(kINTERFACE); } case 311: break; case 154: { return storeToken(kPROTECTED); } case 312: break; case 155: { return storeToken(kTRANSIENT); } case 313: break; case 156: { return storeToken(kIMPLEMENTS); } case 314: break; case 157: { return storeToken(kINSTANCEOF); } case 315: break; case 158: { return storeToken(kSYNCHRONIZED); } case 316: break; default: zzScanError(ZZ_NO_MATCH); } } } } }