[393935] New: Parsing of <?import PI is wrong
diff --git a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/HTMLTokenizer/devel/XMLTokenizer.jflex b/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/HTMLTokenizer/devel/XMLTokenizer.jflex
index 020e3e7..a539e9e 100644
--- a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/HTMLTokenizer/devel/XMLTokenizer.jflex
+++ b/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/HTMLTokenizer/devel/XMLTokenizer.jflex
@@ -1,5 +1,5 @@
 /*******************************************************************************

- * Copyright (c) 2004, 2010 IBM Corporation and others.

+ * Copyright (c) 2004, 2012 IBM Corporation and others.

  * All rights reserved. This program and the accompanying materials

  * are made available under the terms of the Eclipse Public License v1.0

  * which accompanies this distribution, and is available at

@@ -503,10 +503,6 @@
 %state ST_XML_PI_EQUALS

 %state ST_XML_PI_ATTRIBUTE_VALUE

 %state ST_XML_PI_TAG_CLOSE

-%state ST_DHTML_ATTRIBUTE_NAME

-%state ST_DHTML_EQUALS

-%state ST_DHTML_ATTRIBUTE_VALUE

-%state ST_DHTML_TAG_CLOSE

 

 // normal tag states

 %state ST_XML_TAG_NAME

@@ -911,7 +907,7 @@
 

 

 /* white space within a tag */

-<ST_XML_EQUALS, ST_XML_ATTRIBUTE_NAME, ST_XML_ATTRIBUTE_VALUE, ST_PI, ST_XML_PI_EQUALS, ST_XML_PI_ATTRIBUTE_NAME, ST_XML_PI_ATTRIBUTE_VALUE, ST_XML_DECLARATION, ST_XML_DOCTYPE_DECLARATION, ST_XML_ELEMENT_DECLARATION, ST_XML_ATTLIST_DECLARATION, ST_XML_DECLARATION_CLOSE, ST_XML_DOCTYPE_ID_PUBLIC, ST_XML_DOCTYPE_ID_SYSTEM, ST_XML_DOCTYPE_EXTERNAL_ID,ST_DHTML_ATTRIBUTE_NAME,ST_DHTML_EQUALS,ST_DHTML_ATTRIBUTE_VALUE,ST_DHTML_TAG_CLOSE> {S}* {

+<ST_XML_EQUALS, ST_XML_ATTRIBUTE_NAME, ST_XML_ATTRIBUTE_VALUE, ST_PI, ST_XML_PI_EQUALS, ST_XML_PI_ATTRIBUTE_NAME, ST_XML_PI_ATTRIBUTE_VALUE, ST_XML_DECLARATION, ST_XML_DOCTYPE_DECLARATION, ST_XML_ELEMENT_DECLARATION, ST_XML_ATTLIST_DECLARATION, ST_XML_DECLARATION_CLOSE, ST_XML_DOCTYPE_ID_PUBLIC, ST_XML_DOCTYPE_ID_SYSTEM, ST_XML_DOCTYPE_EXTERNAL_ID> {S}* {

 	if(Debug.debugTokenizer)

 		dump("white space");//$NON-NLS-1$

         return WHITE_SPACE;

@@ -1068,12 +1064,6 @@
         yybegin(ST_XML_PI_ATTRIBUTE_NAME);

         return XML_TAG_NAME;

 }

-<ST_PI> ([iI][mM][pP][oO][rR][tT]{S}*) {

-	if(Debug.debugTokenizer)

-		dump("DHTML processing instruction target");//$NON-NLS-1$

-        yybegin(ST_DHTML_ATTRIBUTE_NAME);

-        return XML_TAG_NAME;

-}

 <ST_PI> xml-stylesheet {

 	if(Debug.debugTokenizer)

 		dump("XSL processing instruction target");//$NON-NLS-1$

@@ -1131,33 +1121,6 @@
         yybegin(YYINITIAL);

         return XML_PI_CLOSE;

 }

-// DHTML

-<ST_DHTML_ATTRIBUTE_NAME, ST_DHTML_EQUALS> {Name} {

-	if(Debug.debugTokenizer)

-		dump("DHTML processing instruction attribute name");//$NON-NLS-1$

-        yybegin(ST_DHTML_EQUALS);

-        return XML_TAG_ATTRIBUTE_NAME;

-}

-<ST_DHTML_EQUALS> {Eq} {

-	if(Debug.debugTokenizer)

-		dump("DHTML processing instruction '='");//$NON-NLS-1$

-        yybegin(ST_DHTML_ATTRIBUTE_VALUE);

-        return XML_TAG_ATTRIBUTE_EQUALS;

-}

-/* the value was found, look for the next name */

-<ST_DHTML_ATTRIBUTE_VALUE> {AttValue} | ([\'\"]([^\'\"\040\011\012\015<>/]|\/+[^\'\"\040\011\012\015<>/] )* ) {

-	if(Debug.debugTokenizer)

-		dump("DHTML processing instruction attribute value");//$NON-NLS-1$

-        yybegin(ST_DHTML_ATTRIBUTE_NAME);

-        return XML_TAG_ATTRIBUTE_VALUE;

-}

-/* The DHTML PI's close was found */

-<ST_DHTML_EQUALS, ST_DHTML_ATTRIBUTE_NAME, ST_DHTML_ATTRIBUTE_VALUE> [/]*> {

-	if(Debug.debugTokenizer)

-		dump("DHTML processing instruction end");//$NON-NLS-1$

-        yybegin(YYINITIAL);

-        return XML_PI_CLOSE;

-}

 

 // XML declarations

 

diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/XMLTokenizer.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/XMLTokenizer.java
index be32479..56e90eb 100644
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/XMLTokenizer.java
+++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/XMLTokenizer.java
@@ -1,7 +1,7 @@
-/* The following code was generated by JFlex 1.2.2 on 3/7/11 4:17 PM */
+/* The following code was generated by JFlex 1.2.2 on 11/8/12 6:04 PM */
 
 /*******************************************************************************
- * Copyright (c) 2004, 2010 IBM Corporation and others.
+ * Copyright (c) 2004, 2012 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -32,8 +32,8 @@
 /**
  * This class is a scanner generated by 
  * <a href="http://www.informatik.tu-muenchen.de/~kleing/jflex/">JFlex</a> 1.2.2
- * on 3/7/11 4:17 PM from the specification file
- * <tt>file:/C:/dev/workspaces/indigo/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/HTMLTokenizer/devel/XMLTokenizer.jflex</tt>
+ * on 11/8/12 6:04 PM from the specification file
+ * <tt>file:/Users/nsando/dev/git/wtp/kepler/webtools.sourceediting/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/HTMLTokenizer/devel/XMLTokenizer.jflex</tt>
  */
 public class XMLTokenizer implements BlockTokenizer, DOMRegionContext {
 
@@ -41,35 +41,31 @@
   final public static int YYEOF = -1;
 
   /** lexical states */
-  final public static int ST_XML_DOCTYPE_EXTERNAL_ID = 23;
-  final public static int ST_XML_ELEMENT_DECLARATION_CONTENT = 27;
-  final public static int ST_DHTML_ATTRIBUTE_NAME = 12;
+  final public static int ST_XML_DOCTYPE_EXTERNAL_ID = 19;
+  final public static int ST_XML_ELEMENT_DECLARATION_CONTENT = 23;
   final public static int ST_XML_PI_TAG_CLOSE = 11;
-  final public static int ST_XML_DECLARATION_CLOSE = 21;
+  final public static int ST_XML_DECLARATION_CLOSE = 17;
   final public static int ST_XML_PI_ATTRIBUTE_VALUE = 10;
-  final public static int ST_DHTML_EQUALS = 13;
-  final public static int ST_XML_TAG_NAME = 16;
-  final public static int ST_XML_ATTRIBUTE_VALUE = 19;
-  final public static int ST_DHTML_ATTRIBUTE_VALUE = 14;
-  final public static int ST_XML_DOCTYPE_ID_SYSTEM = 25;
-  final public static int ST_XML_ATTRIBUTE_NAME = 17;
-  final public static int ST_XML_ELEMENT_DECLARATION = 26;
-  final public static int ST_XML_DOCTYPE_DECLARATION = 22;
-  final public static int ST_XML_ATTLIST_DECLARATION = 28;
+  final public static int ST_XML_TAG_NAME = 12;
+  final public static int ST_XML_ATTRIBUTE_VALUE = 15;
+  final public static int ST_XML_DOCTYPE_ID_SYSTEM = 21;
+  final public static int ST_XML_ATTRIBUTE_NAME = 13;
+  final public static int ST_XML_ELEMENT_DECLARATION = 22;
+  final public static int ST_XML_DOCTYPE_DECLARATION = 18;
+  final public static int ST_XML_ATTLIST_DECLARATION = 24;
   final public static int ST_XML_COMMENT_END = 4;
   final public static int ST_CDATA_TEXT = 1;
-  final public static int ST_DHTML_TAG_CLOSE = 15;
   final public static int ST_XML_COMMENT = 3;
   final public static int ST_PI_CONTENT = 7;
   final public static int ST_PI_WS = 6;
   final public static int ST_CDATA_END = 2;
-  final public static int ST_XML_ATTLIST_DECLARATION_CONTENT = 29;
-  final public static int ST_BLOCK_TAG_SCAN = 30;
+  final public static int ST_XML_ATTLIST_DECLARATION_CONTENT = 25;
+  final public static int ST_BLOCK_TAG_SCAN = 26;
   final public static int ST_XML_PI_EQUALS = 9;
-  final public static int ST_XML_DECLARATION = 20;
+  final public static int ST_XML_DECLARATION = 16;
   final public static int YYINITIAL = 0;
-  final public static int ST_XML_DOCTYPE_ID_PUBLIC = 24;
-  final public static int ST_XML_EQUALS = 18;
+  final public static int ST_XML_DOCTYPE_ID_PUBLIC = 20;
+  final public static int ST_XML_EQUALS = 14;
   final public static int ST_PI = 5;
   final public static int ST_XML_PI_ATTRIBUTE_NAME = 8;
 
@@ -77,75 +73,75 @@
    * Translates characters to character classes
    */
   final private static String yycmap_packed = 
-    "\11\0\1\5\1\22\2\0\1\14\22\0\1\14\1\21\1\11\1\55"+
+    "\11\0\1\5\1\22\2\0\1\14\22\0\1\14\1\21\1\11\1\54"+
     "\1\16\1\17\1\12\1\13\1\16\1\16\1\16\1\16\1\16\1\7"+
-    "\1\6\1\3\12\15\1\10\1\61\1\1\1\45\1\2\1\4\1\16"+
-    "\1\34\1\62\1\32\1\33\1\50\1\57\1\36\1\36\1\42\1\36"+
-    "\1\36\1\27\1\25\1\44\1\43\1\47\1\36\1\40\1\56\1\35"+
-    "\1\60\2\36\1\23\1\46\1\36\1\31\1\0\1\20\1\0\1\10"+
-    "\1\0\1\52\1\62\1\63\1\53\1\37\1\57\1\36\1\66\1\42"+
-    "\2\36\1\30\1\26\1\44\1\43\1\47\1\36\1\40\1\41\1\51"+
-    "\1\60\1\36\1\36\1\24\1\54\1\36\1\0\1\0\72\0\1\65"+
-    "\10\0\27\64\1\0\37\64\1\0\72\64\2\0\13\64\2\0\10\64"+
-    "\1\0\65\64\1\0\104\64\11\0\44\64\3\0\2\64\4\0\36\64"+
-    "\70\0\131\64\22\0\7\64\16\0\2\65\56\0\106\65\32\0\2\65"+
-    "\44\0\1\64\1\65\3\64\1\0\1\64\1\0\24\64\1\0\54\64"+
-    "\1\0\7\64\3\0\1\64\1\0\1\64\1\0\1\64\1\0\1\64"+
-    "\1\0\22\64\15\0\14\64\1\0\102\64\1\0\14\64\1\0\44\64"+
-    "\1\0\4\65\11\0\65\64\2\0\2\64\2\0\2\64\3\0\34\64"+
-    "\2\0\10\64\2\0\2\64\67\0\46\64\2\0\1\64\7\0\46\64"+
-    "\12\0\21\65\1\0\27\65\1\0\3\65\1\0\1\65\1\0\2\65"+
-    "\1\0\1\65\13\0\33\64\5\0\3\64\56\0\32\64\5\0\1\65"+
-    "\12\64\10\65\15\0\12\65\6\0\1\65\107\64\2\0\5\64\1\0"+
-    "\17\64\1\0\4\64\1\0\1\64\17\65\2\64\2\65\1\0\4\65"+
-    "\2\0\12\65\u0207\0\3\65\1\0\65\64\2\0\1\65\1\64\20\65"+
-    "\3\0\4\65\3\0\12\64\2\65\2\0\12\65\21\0\3\65\1\0"+
-    "\10\64\2\0\2\64\2\0\26\64\1\0\7\64\1\0\1\64\3\0"+
-    "\4\64\2\0\1\65\1\0\7\65\2\0\2\65\2\0\3\65\11\0"+
-    "\1\65\4\0\2\64\1\0\3\64\2\65\2\0\12\65\2\64\20\0"+
-    "\1\65\2\0\6\64\4\0\2\64\2\0\26\64\1\0\7\64\1\0"+
-    "\2\64\1\0\2\64\1\0\2\64\2\0\1\65\1\0\5\65\4\0"+
-    "\2\65\2\0\3\65\13\0\4\64\1\0\1\64\7\0\12\65\2\65"+
-    "\3\64\14\0\3\65\1\0\7\64\1\0\1\64\1\0\3\64\1\0"+
-    "\26\64\1\0\7\64\1\0\2\64\1\0\5\64\2\0\1\65\1\64"+
-    "\10\65\1\0\3\65\1\0\3\65\22\0\1\64\5\0\12\65\21\0"+
-    "\3\65\1\0\10\64\2\0\2\64\2\0\26\64\1\0\7\64\1\0"+
-    "\2\64\2\0\4\64\2\0\1\65\1\64\6\65\3\0\2\65\2\0"+
-    "\3\65\10\0\2\65\4\0\2\64\1\0\3\64\4\0\12\65\22\0"+
-    "\2\65\1\0\6\64\3\0\3\64\1\0\4\64\3\0\2\64\1\0"+
-    "\1\64\1\0\2\64\3\0\2\64\3\0\3\64\3\0\10\64\1\0"+
-    "\3\64\4\0\5\65\3\0\3\65\1\0\4\65\11\0\1\65\17\0"+
-    "\11\65\21\0\3\65\1\0\10\64\1\0\3\64\1\0\27\64\1\0"+
-    "\12\64\1\0\5\64\4\0\7\65\1\0\3\65\1\0\4\65\7\0"+
-    "\2\65\11\0\2\64\4\0\12\65\22\0\2\65\1\0\10\64\1\0"+
-    "\3\64\1\0\27\64\1\0\12\64\1\0\5\64\4\0\7\65\1\0"+
-    "\3\65\1\0\4\65\7\0\2\65\7\0\1\64\1\0\2\64\4\0"+
-    "\12\65\22\0\2\65\1\0\10\64\1\0\3\64\1\0\27\64\1\0"+
-    "\20\64\4\0\6\65\2\0\3\65\1\0\4\65\11\0\1\65\10\0"+
-    "\2\64\4\0\12\65\221\0\56\64\1\0\1\64\1\65\2\64\7\65"+
-    "\5\0\6\64\1\65\10\65\1\0\12\65\47\0\2\64\1\0\1\64"+
-    "\2\0\2\64\1\0\1\64\2\0\1\64\6\0\4\64\1\0\7\64"+
-    "\1\0\3\64\1\0\1\64\1\0\1\64\2\0\2\64\1\0\2\64"+
-    "\1\0\1\64\1\65\2\64\6\65\1\0\2\65\1\64\2\0\5\64"+
-    "\1\0\1\65\1\0\6\65\2\0\12\65\76\0\2\65\6\0\12\65"+
-    "\13\0\1\65\1\0\1\65\1\0\1\65\4\0\2\65\10\64\1\0"+
-    "\41\64\7\0\24\65\1\0\6\65\4\0\6\65\1\0\1\65\1\0"+
-    "\25\65\3\0\7\65\1\0\1\65\346\0\46\64\12\0\47\64\11\0"+
-    "\1\64\1\0\2\64\1\0\3\64\1\0\1\64\1\0\2\64\1\0"+
-    "\5\64\51\0\1\64\1\0\1\64\1\0\1\64\13\0\1\64\1\0"+
-    "\1\64\1\0\1\64\3\0\2\64\3\0\1\64\5\0\3\64\1\0"+
-    "\1\64\1\0\1\64\1\0\1\64\1\0\1\64\3\0\2\64\3\0"+
-    "\2\64\1\0\1\64\50\0\1\64\11\0\1\64\2\0\1\64\2\0"+
-    "\2\64\7\0\2\64\1\0\1\64\1\0\7\64\50\0\1\64\4\0"+
-    "\1\64\10\0\1\64\u0c06\0\234\64\4\0\132\64\6\0\26\64\2\0"+
-    "\6\64\2\0\46\64\2\0\6\64\2\0\10\64\1\0\1\64\1\0"+
-    "\1\64\1\0\1\64\1\0\37\64\2\0\65\64\1\0\7\64\1\0"+
-    "\1\64\3\0\3\64\1\0\7\64\3\0\4\64\2\0\6\64\4\0"+
-    "\15\64\5\0\3\64\1\0\7\64\323\0\15\65\4\0\1\65\104\0"+
-    "\1\64\3\0\2\64\2\0\1\64\121\0\3\64\u0e82\0\1\65\1\0"+
-    "\1\64\31\0\11\64\6\65\1\0\5\65\13\0\124\64\4\0\2\65"+
-    "\2\0\2\65\2\0\132\64\1\0\3\65\6\0\50\64\u1cd3\0\u51a6\64"+
-    "\u0c5a\0\u2ba4\64\134\0\u0800\0\u1ffe\0\2\0";
+    "\1\6\1\3\12\15\1\10\1\60\1\1\1\44\1\2\1\4\1\16"+
+    "\1\34\1\61\1\32\1\33\1\47\1\56\1\36\1\36\1\41\1\36"+
+    "\1\36\1\27\1\25\1\43\1\42\1\46\1\36\1\36\1\55\1\35"+
+    "\1\57\2\36\1\23\1\45\1\36\1\31\1\0\1\20\1\0\1\10"+
+    "\1\0\1\51\1\61\1\62\1\52\1\37\1\56\1\36\1\65\1\41"+
+    "\2\36\1\30\1\26\1\43\1\42\1\46\1\36\1\36\1\40\1\50"+
+    "\1\57\1\36\1\36\1\24\1\53\1\36\1\0\1\0\72\0\1\64"+
+    "\10\0\27\63\1\0\37\63\1\0\72\63\2\0\13\63\2\0\10\63"+
+    "\1\0\65\63\1\0\104\63\11\0\44\63\3\0\2\63\4\0\36\63"+
+    "\70\0\131\63\22\0\7\63\16\0\2\64\56\0\106\64\32\0\2\64"+
+    "\44\0\1\63\1\64\3\63\1\0\1\63\1\0\24\63\1\0\54\63"+
+    "\1\0\7\63\3\0\1\63\1\0\1\63\1\0\1\63\1\0\1\63"+
+    "\1\0\22\63\15\0\14\63\1\0\102\63\1\0\14\63\1\0\44\63"+
+    "\1\0\4\64\11\0\65\63\2\0\2\63\2\0\2\63\3\0\34\63"+
+    "\2\0\10\63\2\0\2\63\67\0\46\63\2\0\1\63\7\0\46\63"+
+    "\12\0\21\64\1\0\27\64\1\0\3\64\1\0\1\64\1\0\2\64"+
+    "\1\0\1\64\13\0\33\63\5\0\3\63\56\0\32\63\5\0\1\64"+
+    "\12\63\10\64\15\0\12\64\6\0\1\64\107\63\2\0\5\63\1\0"+
+    "\17\63\1\0\4\63\1\0\1\63\17\64\2\63\2\64\1\0\4\64"+
+    "\2\0\12\64\u0207\0\3\64\1\0\65\63\2\0\1\64\1\63\20\64"+
+    "\3\0\4\64\3\0\12\63\2\64\2\0\12\64\21\0\3\64\1\0"+
+    "\10\63\2\0\2\63\2\0\26\63\1\0\7\63\1\0\1\63\3\0"+
+    "\4\63\2\0\1\64\1\0\7\64\2\0\2\64\2\0\3\64\11\0"+
+    "\1\64\4\0\2\63\1\0\3\63\2\64\2\0\12\64\2\63\20\0"+
+    "\1\64\2\0\6\63\4\0\2\63\2\0\26\63\1\0\7\63\1\0"+
+    "\2\63\1\0\2\63\1\0\2\63\2\0\1\64\1\0\5\64\4\0"+
+    "\2\64\2\0\3\64\13\0\4\63\1\0\1\63\7\0\12\64\2\64"+
+    "\3\63\14\0\3\64\1\0\7\63\1\0\1\63\1\0\3\63\1\0"+
+    "\26\63\1\0\7\63\1\0\2\63\1\0\5\63\2\0\1\64\1\63"+
+    "\10\64\1\0\3\64\1\0\3\64\22\0\1\63\5\0\12\64\21\0"+
+    "\3\64\1\0\10\63\2\0\2\63\2\0\26\63\1\0\7\63\1\0"+
+    "\2\63\2\0\4\63\2\0\1\64\1\63\6\64\3\0\2\64\2\0"+
+    "\3\64\10\0\2\64\4\0\2\63\1\0\3\63\4\0\12\64\22\0"+
+    "\2\64\1\0\6\63\3\0\3\63\1\0\4\63\3\0\2\63\1\0"+
+    "\1\63\1\0\2\63\3\0\2\63\3\0\3\63\3\0\10\63\1\0"+
+    "\3\63\4\0\5\64\3\0\3\64\1\0\4\64\11\0\1\64\17\0"+
+    "\11\64\21\0\3\64\1\0\10\63\1\0\3\63\1\0\27\63\1\0"+
+    "\12\63\1\0\5\63\4\0\7\64\1\0\3\64\1\0\4\64\7\0"+
+    "\2\64\11\0\2\63\4\0\12\64\22\0\2\64\1\0\10\63\1\0"+
+    "\3\63\1\0\27\63\1\0\12\63\1\0\5\63\4\0\7\64\1\0"+
+    "\3\64\1\0\4\64\7\0\2\64\7\0\1\63\1\0\2\63\4\0"+
+    "\12\64\22\0\2\64\1\0\10\63\1\0\3\63\1\0\27\63\1\0"+
+    "\20\63\4\0\6\64\2\0\3\64\1\0\4\64\11\0\1\64\10\0"+
+    "\2\63\4\0\12\64\221\0\56\63\1\0\1\63\1\64\2\63\7\64"+
+    "\5\0\6\63\1\64\10\64\1\0\12\64\47\0\2\63\1\0\1\63"+
+    "\2\0\2\63\1\0\1\63\2\0\1\63\6\0\4\63\1\0\7\63"+
+    "\1\0\3\63\1\0\1\63\1\0\1\63\2\0\2\63\1\0\2\63"+
+    "\1\0\1\63\1\64\2\63\6\64\1\0\2\64\1\63\2\0\5\63"+
+    "\1\0\1\64\1\0\6\64\2\0\12\64\76\0\2\64\6\0\12\64"+
+    "\13\0\1\64\1\0\1\64\1\0\1\64\4\0\2\64\10\63\1\0"+
+    "\41\63\7\0\24\64\1\0\6\64\4\0\6\64\1\0\1\64\1\0"+
+    "\25\64\3\0\7\64\1\0\1\64\346\0\46\63\12\0\47\63\11\0"+
+    "\1\63\1\0\2\63\1\0\3\63\1\0\1\63\1\0\2\63\1\0"+
+    "\5\63\51\0\1\63\1\0\1\63\1\0\1\63\13\0\1\63\1\0"+
+    "\1\63\1\0\1\63\3\0\2\63\3\0\1\63\5\0\3\63\1\0"+
+    "\1\63\1\0\1\63\1\0\1\63\1\0\1\63\3\0\2\63\3\0"+
+    "\2\63\1\0\1\63\50\0\1\63\11\0\1\63\2\0\1\63\2\0"+
+    "\2\63\7\0\2\63\1\0\1\63\1\0\7\63\50\0\1\63\4\0"+
+    "\1\63\10\0\1\63\u0c06\0\234\63\4\0\132\63\6\0\26\63\2\0"+
+    "\6\63\2\0\46\63\2\0\6\63\2\0\10\63\1\0\1\63\1\0"+
+    "\1\63\1\0\1\63\1\0\37\63\2\0\65\63\1\0\7\63\1\0"+
+    "\1\63\3\0\3\63\1\0\7\63\3\0\4\63\2\0\6\63\4\0"+
+    "\15\63\5\0\3\63\1\0\7\63\323\0\15\64\4\0\1\64\104\0"+
+    "\1\63\3\0\2\63\2\0\1\63\121\0\3\63\u0e82\0\1\64\1\0"+
+    "\1\63\31\0\11\63\6\64\1\0\5\64\13\0\124\63\4\0\2\64"+
+    "\2\0\2\64\2\0\132\63\1\0\3\64\6\0\50\63\u1cd3\0\u51a6\63"+
+    "\u0c5a\0\u2ba4\63\134\0\u0800\0\u1ffe\0\2\0";
 
   /** 
    * Translates characters to character classes
@@ -156,270 +152,236 @@
    * Translates a state to a row index in the transition table
    */
   final private static int yy_rowMap [] = { 
-        0,    55,   110,   165,   220,   275,   330,   385,   440,   495, 
-      550,   605,   660,   715,   770,   825,   880,   935,   990,  1045, 
-     1100,  1155,  1210,  1265,  1320,  1375,  1430,  1485,  1540,  1595, 
-     1650,  1705,  1760,  1815,  1870,  1925,  1980,  1925,  1980,  2035, 
-     1925,  1925,  1980,  2090,  2145,  2200,  2255,  2310,  2365,  2420, 
-     2475,  1925,  1980,  2530,  2585,  2640,  1925,  2695,  2695,  2750, 
-     2805,  2860,  2530,  1925,  2915,  2970,  1925,  3025,  3080,  3135, 
-     3190,  3245,  3300,  1925,  3355,  3410,  3465,  3520,  1925,  3575, 
-     3630,  3685,  3740,  3795,  1925,  3850,  3905,  3960,  4015,  4070, 
-     4125,  4180,  4235,  4235,  4290,  4345,  4400,  4455,  4455,  4510, 
-     4565,  4620,  4675,  4675,  4730,  4785,  4840,  4895,  1925,  4950, 
-     4950,  5005,  5060,  5115,  5170,  1925,  1925,  1980,  1925,  1925, 
-     5225,  5280,  5335,  5390,  5445,  5500,  5555,  5610,  5665,  1925, 
-     5720,  5775,  5830,  1925,  1925,  2695,  5885,  2805,  1925,  5940, 
-     2860,  2915,  3025,  3080,  5995,  3135,  1925,  6050,  3190,  1925, 
-     3575,  6105,  3685,  1925,  6160,  3740,  5225,  6215,  6270,  6325, 
-     4015,  1925,  6380,  6435,  4235,  6490,  4290,  1925,  6545,  6600, 
-     6655,  6655,  6710,  6765,  4400,  4235,  4455,  6820,  4510,  1925, 
-     6875,  4565,  4620,  4455,  4675,  6930,  4730,  1925,  6985,  7040, 
-     7095,  7095,  7150,  7205,  7260,  4950,  7315,  5005,  1925,  7370, 
-     7425,  7480,  7480,  7535,  7590,  7645,  7700,  7755,  7810,  7865, 
-     1925,  7920,  7975,  1925,  1925,  1925,  2255,  8030,  8085,  8140, 
-     8195,  8250,  8305,  8360,  6545,  8415,  8415,  6985,  8470,  8470, 
-     8525,  7370,  8580,  8580,  8635,  1925,  8690,  8745,  1925,  8800, 
-     8855,  8910,  8965,  9020,  9075,  9130,  9185,  6710,  7150,  9240, 
-     7535,  9295,  9350,  9405,  9460,  9515,  9570,  9625,  9680,  9735, 
-     9790,  9845,  9900,  9955, 10010, 10065, 10120, 10175,  1925,  1925, 
-    10230, 10285, 10340, 10395, 10450,  1925,  1925,  1925, 10505, 10560, 
-    10615, 10670, 10725, 10780,  1925, 10835,  4840,  5115, 10890, 10945, 
-    11000, 11055,  2255
+        0,    54,   108,   162,   216,   270,   324,   378,   432,   486, 
+      540,   594,   648,   702,   756,   810,   864,   918,   972,  1026, 
+     1080,  1134,  1188,  1242,  1296,  1350,  1404,  1458,  1512,  1566, 
+     1620,  1674,  1728,  1674,  1728,  1782,  1674,  1674,  1728,  1836, 
+     1890,  1944,  1998,  2052,  2106,  2160,  1674,  1728,  2214,  2268, 
+     2322,  1674,  2376,  2376,  2430,  2484,  2538,  2214,  2592,  2646, 
+     1674,  2700,  2754,  2808,  2862,  1674,  2916,  2970,  3024,  3078, 
+     3132,  1674,  3186,  3240,  3294,  3348,  3402,  3456,  3510,  3564, 
+     3564,  3618,  3672,  3726,  3780,  3780,  3834,  3888,  3942,  3996, 
+     3996,  4050,  4104,  4158,  4212,  1674,  4266,  4266,  4320,  4374, 
+     4428,  4482,  1674,  1674,  1728,  1674,  1674,  4536,  4590,  4644, 
+     4698,  4752,  4806,  4860,  4914,  4968,  1674,  5022,  5076,  1674, 
+     1674,  2376,  5130,  2484,  1674,  5184,  2538,  1674,  2916,  5238, 
+     3024,  1674,  5292,  3078,  4536,  5346,  5400,  5454,  3348,  1674, 
+     5508,  5562,  3564,  5616,  3618,  1674,  5670,  5724,  5778,  5778, 
+     5832,  5886,  3726,  3564,  3780,  5940,  3834,  1674,  5994,  3888, 
+     3942,  3780,  3996,  6048,  4050,  1674,  6102,  6156,  6210,  6210, 
+     6264,  6318,  6372,  4266,  6426,  4320,  1674,  6480,  6534,  6588, 
+     6588,  6642,  6696,  6750,  6804,  6858,  6912,  6966,  1674,  7020, 
+     7074,  1674,  1674,  1674,  1998,  7128,  7182,  7236,  7290,  7344, 
+     7398,  5670,  7452,  7452,  6102,  7506,  7506,  7560,  6480,  7614, 
+     7614,  7668,  1674,  7722,  7776,  1674,  7830,  7884,  7938,  7992, 
+     8046,  8100,  8154,  5832,  6264,  8208,  6642,  8262,  8316,  8370, 
+     8424,  8478,  8532,  8586,  8640,  8694,  8748,  8802,  8856,  8910, 
+     8964,  9018,  1674,  1674,  9072,  9126,  9180,  9234,  1674,  1674, 
+     1674,  9288,  9342,  9396,  9450,  9504,  9558,  1674,  9612,  4158, 
+     4428,  9666,  9720,  9774,  9828,  1998
   };
 
   /** 
    * The packed transition table of the DFA
    */
   final private static String yy_packed = 
-    "\1\40\1\41\10\40\1\42\4\40\1\43\47\40\1\44"+
-    "\1\45\65\44\1\46\1\47\16\46\1\50\1\46\1\51"+
-    "\44\46\1\52\1\53\65\52\1\46\1\47\5\46\1\54"+
-    "\12\46\1\51\45\46\1\47\2\46\1\55\1\56\2\46"+
-    "\1\57\3\46\1\56\5\46\1\56\1\60\1\61\4\57"+
-    "\1\46\10\57\1\62\2\57\1\46\7\57\1\46\3\57"+
-    "\1\46\3\57\1\46\1\57\1\46\1\47\2\46\1\55"+
-    "\1\63\6\46\1\63\5\46\1\63\44\46\1\64\1\65"+
-    "\2\64\1\66\15\64\1\51\44\64\1\46\1\47\2\46"+
-    "\1\67\1\56\2\46\1\70\3\46\1\56\5\46\1\56"+
-    "\6\70\1\46\13\70\1\46\7\70\1\46\3\70\1\46"+
-    "\3\70\1\46\1\70\1\46\1\47\2\46\1\67\1\56"+
-    "\2\46\1\70\3\46\1\56\5\46\1\56\6\70\1\46"+
-    "\13\70\1\71\7\70\1\46\3\70\1\46\3\70\1\46"+
-    "\1\70\1\72\1\47\1\46\1\73\1\74\1\56\3\72"+
-    "\1\75\1\72\1\76\1\56\5\72\1\56\44\72\1\46"+
-    "\1\47\2\46\1\77\15\46\1\51\45\46\1\47\1\100"+
-    "\1\101\1\46\1\56\2\46\1\102\3\46\1\56\5\46"+
-    "\1\56\6\102\1\46\13\102\1\46\7\102\1\46\3\102"+
-    "\1\46\3\102\1\46\1\102\1\46\1\47\1\100\1\101"+
-    "\1\46\1\56\2\46\1\102\3\46\1\56\5\46\1\56"+
-    "\6\102\1\46\13\102\1\103\7\102\1\46\3\102\1\46"+
-    "\3\102\1\46\1\102\1\104\1\47\1\100\1\105\1\104"+
-    "\1\56\3\104\1\106\1\104\1\107\1\56\5\104\1\56"+
-    "\44\104\1\46\1\47\3\46\1\56\6\46\1\56\5\46"+
-    "\1\56\44\46\1\110\1\111\1\112\1\113\4\110\1\114"+
-    "\12\110\6\115\1\110\13\115\1\110\7\115\1\110\3\115"+
-    "\1\110\3\115\1\110\1\115\1\46\1\111\1\112\1\113"+
-    "\1\46\1\56\2\46\1\116\3\46\1\56\5\46\1\56"+
-    "\6\116\1\46\13\116\1\46\7\116\1\46\3\116\1\46"+
-    "\3\116\1\46\1\116\1\46\1\111\1\112\1\113\1\46"+
-    "\1\56\2\46\1\116\3\46\1\56\5\46\1\56\6\116"+
-    "\1\46\13\116\1\117\7\116\1\46\3\116\1\46\3\116"+
-    "\1\46\1\116\1\120\1\111\1\112\1\121\1\120\1\56"+
-    "\3\120\1\122\1\120\1\123\1\56\5\120\1\56\44\120"+
-    "\1\46\1\124\1\125\2\46\1\56\6\46\1\56\5\46"+
-    "\1\56\10\46\1\126\1\127\2\46\1\130\10\46\1\130"+
-    "\1\46\1\127\1\126\14\46\1\47\1\125\2\46\1\56"+
-    "\6\46\1\56\5\46\1\56\6\46\1\131\36\46\1\47"+
-    "\1\125\2\46\1\56\2\46\1\132\3\46\1\56\5\46"+
-    "\1\56\6\132\1\131\13\132\1\46\7\132\1\46\3\132"+
-    "\1\46\3\132\1\46\1\132\1\46\1\47\1\125\2\46"+
-    "\1\56\6\46\1\56\5\46\1\56\6\46\1\131\7\46"+
-    "\1\133\5\46\1\134\6\46\1\133\10\46\1\135\1\47"+
-    "\1\125\1\136\1\135\1\56\3\135\1\137\1\135\1\140"+
-    "\1\56\5\135\1\56\6\135\1\141\35\135\1\142\1\47"+
-    "\1\125\1\143\1\142\1\56\3\142\1\144\1\142\1\145"+
-    "\1\56\5\142\1\56\6\142\1\146\35\142\1\147\1\47"+
-    "\1\125\1\150\1\147\1\56\3\147\1\151\1\147\1\152"+
-    "\1\56\5\147\1\56\44\147\1\153\1\154\1\155\64\153"+
-    "\1\156\1\47\1\125\1\157\1\156\1\56\3\156\1\160"+
-    "\1\156\1\161\1\56\5\156\1\56\44\156\1\162\1\163"+
-    "\1\164\64\162\1\165\1\166\65\165\1\40\1\0\10\40"+
-    "\1\0\4\40\1\0\47\40\3\0\1\167\1\170\14\0"+
-    "\1\171\52\0\1\172\2\0\1\173\3\0\1\172\5\0"+
-    "\1\172\6\173\1\0\13\173\1\0\7\173\1\174\3\173"+
-    "\1\0\3\173\1\0\1\173\5\0\1\172\2\0\1\175"+
-    "\3\0\1\172\2\0\1\176\2\0\1\172\6\175\1\0"+
-    "\13\175\1\0\7\175\1\0\3\175\1\0\3\175\1\0"+
-    "\1\175\110\0\1\177\65\0\1\200\55\0\1\201\61\0"+
-    "\1\202\71\0\1\56\6\0\1\56\5\0\1\56\52\0"+
-    "\3\57\4\0\1\57\5\0\6\57\1\0\13\57\1\0"+
-    "\7\57\1\0\3\57\1\0\5\57\6\0\3\57\4\0"+
-    "\1\57\5\0\2\57\2\203\2\57\1\0\13\57\1\0"+
-    "\7\57\1\0\3\57\1\0\5\57\6\0\3\57\4\0"+
-    "\1\57\5\0\2\57\1\203\1\204\2\57\1\0\13\57"+
-    "\1\0\7\57\1\0\3\57\1\0\5\57\6\0\3\57"+
-    "\4\0\1\57\5\0\2\57\2\205\2\57\1\0\13\57"+
-    "\1\0\7\57\1\0\3\57\1\0\5\57\5\0\1\63"+
-    "\6\0\1\63\5\0\1\63\46\0\1\206\66\0\1\207"+
-    "\72\0\3\70\4\0\1\70\5\0\6\70\1\0\13\70"+
-    "\1\0\7\70\1\0\3\70\1\0\5\70\1\72\2\0"+
-    "\1\210\1\72\1\0\3\72\1\0\1\72\2\0\5\72"+
-    "\1\0\45\72\1\0\1\207\1\210\1\72\1\0\3\72"+
-    "\1\0\1\72\2\0\5\72\1\0\44\72\1\75\2\211"+
-    "\1\212\1\75\1\211\3\75\1\213\1\75\2\211\5\75"+
-    "\1\211\44\75\1\76\2\214\1\215\1\76\1\214\3\76"+
-    "\1\214\1\76\1\213\1\214\5\76\1\214\44\76\2\0"+
-    "\1\100\1\216\71\0\3\102\4\0\1\102\5\0\6\102"+
-    "\1\0\13\102\1\0\7\102\1\0\3\102\1\0\5\102"+
-    "\1\104\2\0\1\217\1\104\1\0\3\104\1\0\1\104"+
-    "\2\0\5\104\1\0\45\104\1\0\1\100\1\220\1\104"+
-    "\1\0\3\104\1\0\1\104\2\0\5\104\1\0\44\104"+
-    "\1\106\2\221\1\222\1\106\1\221\3\106\1\223\1\106"+
-    "\2\221\5\106\1\221\44\106\1\107\2\224\1\225\1\107"+
-    "\1\224\3\107\1\224\1\107\1\223\1\224\5\107\1\224"+
-    "\44\107\1\110\3\0\17\110\6\0\1\110\13\0\1\110"+
-    "\7\0\1\110\3\0\1\110\3\0\1\110\4\0\1\167"+
-    "\15\0\1\171\47\0\1\226\64\0\1\110\3\0\2\110"+
-    "\3\114\4\110\1\114\5\110\6\115\1\110\13\115\1\110"+
-    "\7\115\1\110\3\115\1\110\3\115\1\114\1\115\6\0"+
-    "\3\115\4\0\1\115\5\0\6\115\1\0\13\115\1\0"+
-    "\7\115\1\0\3\115\1\0\5\115\6\0\3\116\4\0"+
-    "\1\116\5\0\6\116\1\0\13\116\1\0\7\116\1\0"+
-    "\3\116\1\0\5\116\1\120\2\0\1\227\1\120\1\0"+
-    "\3\120\1\0\1\120\2\0\5\120\1\0\45\120\1\0"+
-    "\1\226\1\227\1\120\1\0\3\120\1\0\1\120\2\0"+
-    "\5\120\1\0\44\120\1\122\2\230\1\231\1\122\1\230"+
-    "\3\122\1\232\1\122\2\230\5\122\1\230\44\122\1\123"+
-    "\2\233\1\234\1\123\1\233\3\123\1\233\1\123\1\232"+
-    "\1\233\5\123\1\233\44\123\3\0\1\167\15\0\1\235"+
-    "\110\0\1\236\60\0\1\237\13\0\1\237\44\0\2\240"+
-    "\36\0\20\241\1\242\46\241\6\0\3\132\4\0\1\132"+
-    "\5\0\6\132\1\0\13\132\1\0\7\132\1\0\3\132"+
-    "\1\0\5\132\46\0\1\243\5\0\1\243\72\0\1\244"+
-    "\6\0\1\135\2\0\1\245\1\135\1\0\3\135\1\0"+
-    "\1\135\2\0\5\135\1\0\44\135\1\137\2\246\1\247"+
-    "\1\137\1\246\3\137\1\250\1\137\2\246\5\137\1\246"+
-    "\44\137\1\251\2\252\1\253\1\254\1\252\3\254\1\252"+
-    "\1\251\1\255\1\256\3\254\1\251\1\254\1\256\6\254"+
-    "\1\251\32\254\2\251\1\254\1\141\2\241\1\257\1\141"+
-    "\1\241\3\141\1\241\1\141\2\241\3\141\1\260\1\141"+
-    "\1\241\44\141\1\142\2\0\1\261\1\142\1\0\3\142"+
-    "\1\0\1\142\2\0\5\142\1\0\44\142\1\144\2\262"+
-    "\1\263\1\144\1\262\3\144\1\264\1\144\2\262\5\144"+
-    "\1\262\44\144\1\145\2\265\1\266\1\145\1\265\3\145"+
-    "\1\265\1\145\1\264\1\265\5\145\1\265\44\145\1\146"+
-    "\2\241\1\267\1\146\1\241\3\146\1\241\1\146\2\241"+
-    "\3\146\1\270\1\146\1\241\44\146\1\147\2\0\1\271"+
-    "\1\147\1\0\3\147\1\0\1\147\2\0\5\147\1\0"+
-    "\44\147\1\151\2\272\1\273\1\151\1\272\3\151\1\274"+
-    "\1\151\2\272\5\151\1\272\44\151\1\275\2\276\1\277"+
-    "\1\300\1\276\3\300\1\276\1\275\1\301\1\302\3\300"+
-    "\1\275\1\300\1\302\6\300\1\275\32\300\2\275\1\300"+
-    "\2\153\1\0\66\153\1\0\16\153\1\303\45\153\1\156"+
-    "\2\0\1\304\1\156\1\0\3\156\1\0\1\156\2\0"+
-    "\5\156\1\0\44\156\1\160\2\305\1\306\1\160\1\305"+
-    "\3\160\1\307\1\160\2\305\5\160\1\305\44\160\1\310"+
-    "\2\311\1\312\1\313\1\311\3\313\1\311\1\310\1\314"+
-    "\1\315\3\313\1\310\1\313\1\315\6\313\1\310\32\313"+
-    "\2\310\1\313\2\162\1\0\66\162\1\0\16\162\1\316"+
-    "\45\162\7\0\1\317\21\0\1\320\42\0\1\172\2\0"+
-    "\1\40\3\0\1\172\5\0\1\172\6\40\1\0\13\40"+
-    "\1\0\7\40\1\0\3\40\1\0\3\40\1\0\1\40"+
-    "\1\321\1\0\3\321\1\322\3\173\1\321\1\0\1\321"+
-    "\1\322\1\173\1\321\1\0\2\321\1\322\6\173\1\321"+
-    "\13\173\1\321\7\173\1\321\3\173\1\323\5\173\15\0"+
-    "\1\324\6\0\1\325\42\0\1\321\1\0\3\321\1\322"+
-    "\3\175\1\321\1\0\1\321\1\322\1\175\1\321\1\0"+
-    "\2\321\1\322\6\175\1\321\13\175\1\321\7\175\1\321"+
-    "\3\175\1\326\5\175\17\0\1\176\100\0\1\320\37\0"+
-    "\1\327\66\0\1\330\72\0\3\57\4\0\1\57\5\0"+
-    "\4\57\2\331\1\0\13\57\1\0\7\57\1\0\3\57"+
-    "\1\0\5\57\6\0\3\57\4\0\1\57\5\0\4\57"+
-    "\1\331\1\332\1\0\13\57\1\0\7\57\1\0\3\57"+
-    "\1\0\5\57\6\0\3\57\4\0\1\57\5\0\6\57"+
-    "\1\0\13\57\1\0\1\57\1\333\5\57\1\0\3\57"+
-    "\1\0\5\57\11\211\1\213\55\211\13\214\1\213\53\214"+
-    "\11\221\1\223\55\221\13\224\1\223\53\224\11\230\1\232"+
-    "\55\230\13\233\1\232\53\233\32\0\1\334\30\0\1\334"+
-    "\40\0\1\335\13\0\1\335\54\0\1\336\10\0\1\336"+
-    "\57\0\1\337\14\0\1\337\72\0\1\340\4\0\11\246"+
-    "\1\250\55\246\1\251\2\252\1\341\1\251\1\252\3\251"+
-    "\1\252\1\251\1\250\1\252\5\251\1\252\44\251\13\252"+
-    "\1\250\53\252\1\251\2\252\1\341\1\251\1\252\3\251"+
-    "\1\252\1\251\1\342\1\252\5\251\1\252\44\251\13\0"+
-    "\1\343\53\0\13\252\1\342\53\252\11\262\1\264\55\262"+
-    "\13\265\1\264\53\265\11\272\1\274\55\272\1\275\2\276"+
-    "\1\344\1\275\1\276\3\275\1\276\1\275\1\274\1\276"+
-    "\5\275\1\276\44\275\13\276\1\274\53\276\1\275\2\276"+
-    "\1\344\1\275\1\276\3\275\1\276\1\275\1\345\1\276"+
-    "\5\275\1\276\44\275\13\0\1\346\53\0\13\276\1\345"+
-    "\53\276\2\153\1\0\26\153\1\347\35\153\11\305\1\307"+
-    "\55\305\1\310\2\311\1\350\1\310\1\311\3\310\1\311"+
-    "\1\310\1\307\1\311\5\310\1\311\44\310\13\311\1\307"+
-    "\53\311\1\310\2\311\1\350\1\310\1\311\3\310\1\311"+
-    "\1\310\1\351\1\311\5\310\1\311\44\310\13\0\1\352"+
-    "\53\0\13\311\1\351\53\311\2\162\1\0\26\162\1\353"+
-    "\35\162\7\0\1\354\111\0\1\355\34\0\1\321\1\0"+
-    "\10\321\1\0\4\321\1\0\41\321\1\0\6\321\1\0"+
-    "\3\321\1\322\4\321\1\0\1\321\1\322\2\321\1\0"+
-    "\2\321\1\322\36\321\1\356\5\321\15\0\1\324\43\0"+
-    "\1\357\22\0\1\360\14\0\3\360\2\0\1\360\10\0"+
-    "\1\360\1\0\2\360\3\0\1\360\2\0\2\360\11\0"+
-    "\1\57\1\361\1\57\4\0\1\57\5\0\6\57\1\0"+
-    "\13\57\1\0\7\57\1\0\3\57\1\0\5\57\6\0"+
-    "\3\57\4\0\1\57\5\0\6\57\1\0\11\57\1\362"+
-    "\1\57\1\0\7\57\1\0\3\57\1\0\5\57\35\0"+
-    "\1\363\13\0\1\363\44\0\2\364\63\0\2\365\75\0"+
-    "\1\366\13\0\1\366\44\0\2\367\41\0\2\370\1\0"+
-    "\3\370\2\0\1\255\4\370\1\0\10\370\1\0\32\370"+
-    "\2\0\1\370\3\0\2\371\1\0\3\371\2\0\1\301"+
-    "\4\371\1\0\10\371\1\0\32\371\2\0\1\371\2\153"+
-    "\1\0\27\153\1\372\34\153\3\0\2\373\1\0\3\373"+
-    "\2\0\1\314\4\373\1\0\10\373\1\0\32\373\2\0"+
-    "\1\373\2\162\1\0\27\162\1\374\34\162\33\0\1\375"+
-    "\114\0\1\356\22\0\1\360\14\0\3\360\2\0\1\360"+
-    "\10\0\1\360\1\0\2\360\3\0\1\360\1\0\1\357"+
-    "\2\360\11\0\3\57\4\0\1\57\5\0\6\57\1\0"+
-    "\7\57\1\376\3\57\1\0\7\57\1\0\3\57\1\0"+
-    "\5\57\6\0\3\57\4\0\1\57\5\0\6\57\1\0"+
-    "\6\57\1\377\4\57\1\0\7\57\1\0\3\57\1\0"+
-    "\5\57\46\0\1\u0100\5\0\1\u0100\54\0\1\u0101\63\0"+
-    "\1\u0102\10\0\1\u0102\55\0\1\u0103\10\0\1\u0103\60\0"+
-    "\1\u0104\24\0\2\153\1\0\30\153\1\u0105\33\153\2\162"+
-    "\1\0\30\162\1\u0106\33\162\34\0\1\u0107\40\0\3\57"+
-    "\4\0\1\57\5\0\6\57\1\0\13\57\1\0\3\57"+
-    "\1\u0108\3\57\1\0\3\57\1\0\5\57\6\0\3\57"+
-    "\4\0\1\57\5\0\6\57\1\0\3\57\1\u0109\7\57"+
-    "\1\0\3\57\1\u0109\3\57\1\0\3\57\1\0\5\57"+
-    "\47\0\1\u010a\60\0\1\u010b\14\0\1\u010b\54\0\1\u010c"+
-    "\47\0\2\u010d\72\0\1\u010e\30\0\1\u010e\3\0\2\153"+
-    "\1\0\31\153\1\u010f\32\153\2\162\1\0\31\162\1\u0110"+
-    "\32\162\35\0\1\u0111\37\0\3\57\4\0\1\57\5\0"+
-    "\6\57\1\0\13\57\1\0\6\57\1\u0112\1\0\3\57"+
-    "\1\0\5\57\5\0\1\u0113\3\57\3\0\1\u0113\1\57"+
-    "\4\0\1\u0113\6\57\1\0\13\57\1\0\7\57\1\0"+
-    "\3\57\1\0\5\57\37\0\1\u0114\10\0\1\u0114\53\0"+
-    "\1\u0115\13\0\1\u0115\52\0\1\u0116\13\0\1\u0116\15\0"+
-    "\2\153\1\0\32\153\1\u0117\31\153\2\162\1\0\32\162"+
-    "\1\u0118\31\162\34\0\1\u0119\40\0\3\57\4\0\1\57"+
-    "\5\0\5\57\1\u011a\1\0\13\57\1\0\7\57\1\0"+
-    "\3\57\1\0\5\57\5\0\1\u0113\6\0\1\u0113\5\0"+
-    "\1\u0113\44\0\2\153\1\0\31\153\1\u011b\32\153\2\162"+
-    "\1\0\31\162\1\u011c\32\162\31\0\1\u011d\43\0\3\57"+
-    "\4\0\1\57\5\0\6\57\1\0\5\57\1\u011e\5\57"+
-    "\1\0\7\57\1\0\3\57\1\0\5\57\2\153\1\0"+
-    "\26\153\1\u011f\35\153\2\162\1\0\26\162\1\u0120\35\162"+
-    "\6\0\3\57\4\0\1\57\5\0\6\57\1\0\7\57"+
-    "\1\u0121\3\57\1\0\7\57\1\0\3\57\1\0\5\57"+
-    "\6\0\3\57\4\0\1\57\5\0\6\57\1\0\13\57"+
-    "\1\0\7\57\1\0\3\57\1\0\4\57\1\u0122\6\0"+
-    "\3\57\4\0\1\57\5\0\6\57\1\0\5\57\1\u0123"+
-    "\5\57\1\0\7\57\1\0\3\57\1\0\5\57\6\0"+
-    "\3\57\4\0\1\57\5\0\6\57\1\0\5\57\1\u0124"+
-    "\5\57\1\0\7\57\1\0\3\57\1\0\5\57\6\0"+
-    "\3\57\4\0\1\57\5\0\6\57\1\0\13\57\1\0"+
-    "\3\57\1\u0125\3\57\1\0\3\57\1\0\5\57";
+    "\1\34\1\35\10\34\1\36\4\34\1\37\46\34\1\40"+
+    "\1\41\64\40\1\42\1\43\16\42\1\44\1\42\1\45"+
+    "\43\42\1\46\1\47\64\46\1\42\1\43\5\42\1\50"+
+    "\12\42\1\45\44\42\1\43\2\42\1\51\1\52\2\42"+
+    "\1\53\3\42\1\52\5\42\1\52\1\54\1\55\4\53"+
+    "\1\42\12\53\1\42\7\53\1\42\3\53\1\42\3\53"+
+    "\1\42\1\53\1\42\1\43\2\42\1\51\1\56\6\42"+
+    "\1\56\5\42\1\56\43\42\1\57\1\60\2\57\1\61"+
+    "\15\57\1\45\43\57\1\42\1\43\2\42\1\62\1\52"+
+    "\2\42\1\63\3\42\1\52\5\42\1\52\6\63\1\42"+
+    "\12\63\1\42\7\63\1\42\3\63\1\42\3\63\1\42"+
+    "\1\63\1\42\1\43\2\42\1\62\1\52\2\42\1\63"+
+    "\3\42\1\52\5\42\1\52\6\63\1\42\12\63\1\64"+
+    "\7\63\1\42\3\63\1\42\3\63\1\42\1\63\1\65"+
+    "\1\43\1\42\1\66\1\67\1\52\3\65\1\70\1\65"+
+    "\1\71\1\52\5\65\1\52\43\65\1\42\1\43\2\42"+
+    "\1\72\15\42\1\45\43\42\1\73\1\74\1\75\1\76"+
+    "\4\73\1\77\12\73\6\100\1\73\12\100\1\73\7\100"+
+    "\1\73\3\100\1\73\3\100\1\73\1\100\1\42\1\74"+
+    "\1\75\1\76\1\42\1\52\2\42\1\101\3\42\1\52"+
+    "\5\42\1\52\6\101\1\42\12\101\1\42\7\101\1\42"+
+    "\3\101\1\42\3\101\1\42\1\101\1\42\1\74\1\75"+
+    "\1\76\1\42\1\52\2\42\1\101\3\42\1\52\5\42"+
+    "\1\52\6\101\1\42\12\101\1\102\7\101\1\42\3\101"+
+    "\1\42\3\101\1\42\1\101\1\103\1\74\1\75\1\104"+
+    "\1\103\1\52\3\103\1\105\1\103\1\106\1\52\5\103"+
+    "\1\52\43\103\1\42\1\107\1\110\2\42\1\52\6\42"+
+    "\1\52\5\42\1\52\10\42\1\111\1\112\2\42\1\113"+
+    "\7\42\1\113\1\42\1\112\1\111\14\42\1\43\1\110"+
+    "\2\42\1\52\6\42\1\52\5\42\1\52\6\42\1\114"+
+    "\35\42\1\43\1\110\2\42\1\52\2\42\1\115\3\42"+
+    "\1\52\5\42\1\52\6\115\1\114\12\115\1\42\7\115"+
+    "\1\42\3\115\1\42\3\115\1\42\1\115\1\42\1\43"+
+    "\1\110\2\42\1\52\6\42\1\52\5\42\1\52\6\42"+
+    "\1\114\6\42\1\116\5\42\1\117\6\42\1\116\10\42"+
+    "\1\120\1\43\1\110\1\121\1\120\1\52\3\120\1\122"+
+    "\1\120\1\123\1\52\5\120\1\52\6\120\1\124\34\120"+
+    "\1\125\1\43\1\110\1\126\1\125\1\52\3\125\1\127"+
+    "\1\125\1\130\1\52\5\125\1\52\6\125\1\131\34\125"+
+    "\1\132\1\43\1\110\1\133\1\132\1\52\3\132\1\134"+
+    "\1\132\1\135\1\52\5\132\1\52\43\132\1\136\1\137"+
+    "\1\140\63\136\1\141\1\43\1\110\1\142\1\141\1\52"+
+    "\3\141\1\143\1\141\1\144\1\52\5\141\1\52\43\141"+
+    "\1\145\1\146\1\147\63\145\1\150\1\151\64\150\1\34"+
+    "\1\0\10\34\1\0\4\34\1\0\46\34\3\0\1\152"+
+    "\1\153\14\0\1\154\51\0\1\155\2\0\1\156\3\0"+
+    "\1\155\5\0\1\155\6\156\1\0\12\156\1\0\7\156"+
+    "\1\157\3\156\1\0\3\156\1\0\1\156\5\0\1\155"+
+    "\2\0\1\160\3\0\1\155\2\0\1\161\2\0\1\155"+
+    "\6\160\1\0\12\160\1\0\7\160\1\0\3\160\1\0"+
+    "\3\160\1\0\1\160\107\0\1\162\64\0\1\163\54\0"+
+    "\1\164\60\0\1\165\70\0\1\52\6\0\1\52\5\0"+
+    "\1\52\51\0\3\53\4\0\1\53\5\0\6\53\1\0"+
+    "\12\53\1\0\7\53\1\0\3\53\1\0\5\53\6\0"+
+    "\3\53\4\0\1\53\5\0\2\53\2\166\2\53\1\0"+
+    "\12\53\1\0\7\53\1\0\3\53\1\0\5\53\6\0"+
+    "\3\53\4\0\1\53\5\0\2\53\1\166\1\167\2\53"+
+    "\1\0\12\53\1\0\7\53\1\0\3\53\1\0\5\53"+
+    "\5\0\1\56\6\0\1\56\5\0\1\56\45\0\1\170"+
+    "\65\0\1\171\71\0\3\63\4\0\1\63\5\0\6\63"+
+    "\1\0\12\63\1\0\7\63\1\0\3\63\1\0\5\63"+
+    "\1\65\2\0\1\172\1\65\1\0\3\65\1\0\1\65"+
+    "\2\0\5\65\1\0\44\65\1\0\1\171\1\172\1\65"+
+    "\1\0\3\65\1\0\1\65\2\0\5\65\1\0\43\65"+
+    "\1\70\2\173\1\174\1\70\1\173\3\70\1\175\1\70"+
+    "\2\173\5\70\1\173\43\70\1\71\2\176\1\177\1\71"+
+    "\1\176\3\71\1\176\1\71\1\175\1\176\5\71\1\176"+
+    "\43\71\1\73\3\0\17\73\6\0\1\73\12\0\1\73"+
+    "\7\0\1\73\3\0\1\73\3\0\1\73\4\0\1\152"+
+    "\15\0\1\154\46\0\1\200\63\0\1\73\3\0\2\73"+
+    "\3\77\4\73\1\77\5\73\6\100\1\73\12\100\1\73"+
+    "\7\100\1\73\3\100\1\73\3\100\1\77\1\100\6\0"+
+    "\3\100\4\0\1\100\5\0\6\100\1\0\12\100\1\0"+
+    "\7\100\1\0\3\100\1\0\5\100\6\0\3\101\4\0"+
+    "\1\101\5\0\6\101\1\0\12\101\1\0\7\101\1\0"+
+    "\3\101\1\0\5\101\1\103\2\0\1\201\1\103\1\0"+
+    "\3\103\1\0\1\103\2\0\5\103\1\0\44\103\1\0"+
+    "\1\200\1\201\1\103\1\0\3\103\1\0\1\103\2\0"+
+    "\5\103\1\0\43\103\1\105\2\202\1\203\1\105\1\202"+
+    "\3\105\1\204\1\105\2\202\5\105\1\202\43\105\1\106"+
+    "\2\205\1\206\1\106\1\205\3\106\1\205\1\106\1\204"+
+    "\1\205\5\106\1\205\43\106\3\0\1\152\15\0\1\207"+
+    "\106\0\1\210\60\0\1\211\12\0\1\211\44\0\2\212"+
+    "\35\0\20\213\1\214\45\213\6\0\3\115\4\0\1\115"+
+    "\5\0\6\115\1\0\12\115\1\0\7\115\1\0\3\115"+
+    "\1\0\5\115\45\0\1\215\5\0\1\215\71\0\1\216"+
+    "\6\0\1\120\2\0\1\217\1\120\1\0\3\120\1\0"+
+    "\1\120\2\0\5\120\1\0\43\120\1\122\2\220\1\221"+
+    "\1\122\1\220\3\122\1\222\1\122\2\220\5\122\1\220"+
+    "\43\122\1\223\2\224\1\225\1\226\1\224\3\226\1\224"+
+    "\1\223\1\227\1\230\3\226\1\223\1\226\1\230\6\226"+
+    "\1\223\31\226\2\223\1\226\1\124\2\213\1\231\1\124"+
+    "\1\213\3\124\1\213\1\124\2\213\3\124\1\232\1\124"+
+    "\1\213\43\124\1\125\2\0\1\233\1\125\1\0\3\125"+
+    "\1\0\1\125\2\0\5\125\1\0\43\125\1\127\2\234"+
+    "\1\235\1\127\1\234\3\127\1\236\1\127\2\234\5\127"+
+    "\1\234\43\127\1\130\2\237\1\240\1\130\1\237\3\130"+
+    "\1\237\1\130\1\236\1\237\5\130\1\237\43\130\1\131"+
+    "\2\213\1\241\1\131\1\213\3\131\1\213\1\131\2\213"+
+    "\3\131\1\242\1\131\1\213\43\131\1\132\2\0\1\243"+
+    "\1\132\1\0\3\132\1\0\1\132\2\0\5\132\1\0"+
+    "\43\132\1\134\2\244\1\245\1\134\1\244\3\134\1\246"+
+    "\1\134\2\244\5\134\1\244\43\134\1\247\2\250\1\251"+
+    "\1\252\1\250\3\252\1\250\1\247\1\253\1\254\3\252"+
+    "\1\247\1\252\1\254\6\252\1\247\31\252\2\247\1\252"+
+    "\2\136\1\0\65\136\1\0\16\136\1\255\44\136\1\141"+
+    "\2\0\1\256\1\141\1\0\3\141\1\0\1\141\2\0"+
+    "\5\141\1\0\43\141\1\143\2\257\1\260\1\143\1\257"+
+    "\3\143\1\261\1\143\2\257\5\143\1\257\43\143\1\262"+
+    "\2\263\1\264\1\265\1\263\3\265\1\263\1\262\1\266"+
+    "\1\267\3\265\1\262\1\265\1\267\6\265\1\262\31\265"+
+    "\2\262\1\265\2\145\1\0\65\145\1\0\16\145\1\270"+
+    "\44\145\7\0\1\271\21\0\1\272\41\0\1\155\2\0"+
+    "\1\34\3\0\1\155\5\0\1\155\6\34\1\0\12\34"+
+    "\1\0\7\34\1\0\3\34\1\0\3\34\1\0\1\34"+
+    "\1\273\1\0\3\273\1\274\3\156\1\273\1\0\1\273"+
+    "\1\274\1\156\1\273\1\0\2\273\1\274\6\156\1\273"+
+    "\12\156\1\273\7\156\1\273\3\156\1\275\5\156\15\0"+
+    "\1\276\6\0\1\277\41\0\1\273\1\0\3\273\1\274"+
+    "\3\160\1\273\1\0\1\273\1\274\1\160\1\273\1\0"+
+    "\2\273\1\274\6\160\1\273\12\160\1\273\7\160\1\273"+
+    "\3\160\1\300\5\160\17\0\1\161\77\0\1\272\36\0"+
+    "\1\301\65\0\1\302\71\0\3\53\4\0\1\53\5\0"+
+    "\4\53\2\303\1\0\12\53\1\0\7\53\1\0\3\53"+
+    "\1\0\5\53\6\0\3\53\4\0\1\53\5\0\4\53"+
+    "\1\303\1\304\1\0\12\53\1\0\7\53\1\0\3\53"+
+    "\1\0\5\53\11\173\1\175\54\173\13\176\1\175\52\176"+
+    "\11\202\1\204\54\202\13\205\1\204\52\205\32\0\1\305"+
+    "\27\0\1\305\40\0\1\306\12\0\1\306\54\0\1\307"+
+    "\7\0\1\307\56\0\1\310\14\0\1\310\71\0\1\311"+
+    "\4\0\11\220\1\222\54\220\1\223\2\224\1\312\1\223"+
+    "\1\224\3\223\1\224\1\223\1\222\1\224\5\223\1\224"+
+    "\43\223\13\224\1\222\52\224\1\223\2\224\1\312\1\223"+
+    "\1\224\3\223\1\224\1\223\1\313\1\224\5\223\1\224"+
+    "\43\223\13\0\1\314\52\0\13\224\1\313\52\224\11\234"+
+    "\1\236\54\234\13\237\1\236\52\237\11\244\1\246\54\244"+
+    "\1\247\2\250\1\315\1\247\1\250\3\247\1\250\1\247"+
+    "\1\246\1\250\5\247\1\250\43\247\13\250\1\246\52\250"+
+    "\1\247\2\250\1\315\1\247\1\250\3\247\1\250\1\247"+
+    "\1\316\1\250\5\247\1\250\43\247\13\0\1\317\52\0"+
+    "\13\250\1\316\52\250\2\136\1\0\26\136\1\320\34\136"+
+    "\11\257\1\261\54\257\1\262\2\263\1\321\1\262\1\263"+
+    "\3\262\1\263\1\262\1\261\1\263\5\262\1\263\43\262"+
+    "\13\263\1\261\52\263\1\262\2\263\1\321\1\262\1\263"+
+    "\3\262\1\263\1\262\1\322\1\263\5\262\1\263\43\262"+
+    "\13\0\1\323\52\0\13\263\1\322\52\263\2\145\1\0"+
+    "\26\145\1\324\34\145\7\0\1\325\110\0\1\326\33\0"+
+    "\1\273\1\0\10\273\1\0\4\273\1\0\40\273\1\0"+
+    "\6\273\1\0\3\273\1\274\4\273\1\0\1\273\1\274"+
+    "\2\273\1\0\2\273\1\274\35\273\1\327\5\273\15\0"+
+    "\1\276\42\0\1\330\22\0\1\331\14\0\3\331\2\0"+
+    "\1\331\7\0\1\331\1\0\2\331\3\0\1\331\2\0"+
+    "\2\331\11\0\1\53\1\332\1\53\4\0\1\53\5\0"+
+    "\6\53\1\0\12\53\1\0\7\53\1\0\3\53\1\0"+
+    "\5\53\35\0\1\333\12\0\1\333\44\0\2\334\62\0"+
+    "\2\335\74\0\1\336\12\0\1\336\44\0\2\337\40\0"+
+    "\2\340\1\0\3\340\2\0\1\227\4\340\1\0\10\340"+
+    "\1\0\31\340\2\0\1\340\3\0\2\341\1\0\3\341"+
+    "\2\0\1\253\4\341\1\0\10\341\1\0\31\341\2\0"+
+    "\1\341\2\136\1\0\27\136\1\342\33\136\3\0\2\343"+
+    "\1\0\3\343\2\0\1\266\4\343\1\0\10\343\1\0"+
+    "\31\343\2\0\1\343\2\145\1\0\27\145\1\344\33\145"+
+    "\33\0\1\345\112\0\1\327\22\0\1\331\14\0\3\331"+
+    "\2\0\1\331\7\0\1\331\1\0\2\331\3\0\1\331"+
+    "\1\0\1\330\2\331\11\0\3\53\4\0\1\53\5\0"+
+    "\6\53\1\0\6\53\1\346\3\53\1\0\7\53\1\0"+
+    "\3\53\1\0\5\53\45\0\1\347\5\0\1\347\53\0"+
+    "\1\350\63\0\1\351\7\0\1\351\55\0\1\352\7\0"+
+    "\1\352\57\0\1\353\24\0\2\136\1\0\30\136\1\354"+
+    "\32\136\2\145\1\0\30\145\1\355\32\145\34\0\1\356"+
+    "\37\0\3\53\4\0\1\53\5\0\6\53\1\0\12\53"+
+    "\1\0\3\53\1\357\3\53\1\0\3\53\1\0\5\53"+
+    "\46\0\1\360\57\0\1\361\14\0\1\361\53\0\1\362"+
+    "\47\0\2\363\71\0\1\364\27\0\1\364\3\0\2\136"+
+    "\1\0\31\136\1\365\31\136\2\145\1\0\31\145\1\366"+
+    "\31\145\35\0\1\367\36\0\3\53\4\0\1\53\5\0"+
+    "\6\53\1\0\12\53\1\0\6\53\1\370\1\0\3\53"+
+    "\1\0\5\53\37\0\1\371\7\0\1\371\53\0\1\372"+
+    "\12\0\1\372\52\0\1\373\12\0\1\373\15\0\2\136"+
+    "\1\0\32\136\1\374\30\136\2\145\1\0\32\145\1\375"+
+    "\30\145\34\0\1\376\37\0\3\53\4\0\1\53\5\0"+
+    "\5\53\1\377\1\0\12\53\1\0\7\53\1\0\3\53"+
+    "\1\0\5\53\2\136\1\0\31\136\1\u0100\31\136\2\145"+
+    "\1\0\31\145\1\u0101\31\145\31\0\1\u0102\42\0\3\53"+
+    "\4\0\1\53\5\0\6\53\1\0\5\53\1\u0103\4\53"+
+    "\1\0\7\53\1\0\3\53\1\0\5\53\2\136\1\0"+
+    "\26\136\1\u0104\34\136\2\145\1\0\26\145\1\u0105\34\145"+
+    "\6\0\3\53\4\0\1\53\5\0\6\53\1\0\6\53"+
+    "\1\u0106\3\53\1\0\7\53\1\0\3\53\1\0\5\53"+
+    "\6\0\3\53\4\0\1\53\5\0\6\53\1\0\12\53"+
+    "\1\0\7\53\1\0\3\53\1\0\4\53\1\u0107\6\0"+
+    "\3\53\4\0\1\53\5\0\6\53\1\0\5\53\1\u0108"+
+    "\4\53\1\0\7\53\1\0\3\53\1\0\5\53\6\0"+
+    "\3\53\4\0\1\53\5\0\6\53\1\0\5\53\1\u0109"+
+    "\4\53\1\0\7\53\1\0\3\53\1\0\5\53\6\0"+
+    "\3\53\4\0\1\53\5\0\6\53\1\0\12\53\1\0"+
+    "\3\53\1\u010a\3\53\1\0\3\53\1\0\5\53";
 
   /** 
    * The transition table of the DFA
@@ -446,24 +408,22 @@
    */
   private final static byte YY_ATTRIBUTE[] = {
      1,  0,  0,  0,  0,  1,  0,  0,  1,  1,  1,  0,  1,  1,  1,  1, 
-     1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  0,  1, 
-     1,  1,  1,  9,  1,  9,  1,  1,  9,  9,  1,  1,  1,  1,  1,  1, 
-     1,  1,  1,  9,  1,  1,  1,  1,  9,  1,  1,  1,  1,  1,  1,  9, 
-     1,  1,  9,  1,  1,  1,  1,  1,  1,  9,  1,  1,  1,  1,  9,  1, 
-     1,  1,  1,  1,  9,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1, 
-     1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  9,  1,  1,  1, 
-     1,  1,  1,  9,  9,  1,  9,  9,  1,  0,  1,  0,  1,  1,  0,  0, 
-     0,  9,  1,  1,  1,  9,  9,  0,  0,  0,  9,  0,  0,  0,  0,  0, 
-     0,  0,  9,  0,  0,  9,  0,  0,  0,  9,  0,  0,  0,  0,  0,  0, 
-     0,  9,  0,  0,  0,  0,  0,  9,  1,  0,  0,  1,  1,  0,  0,  1, 
-     0,  0,  0,  9,  0,  0,  0,  1,  0,  0,  0,  9,  1,  0,  0,  1, 
-     1,  0,  1,  0,  0,  0,  9,  1,  0,  0,  1,  1,  0,  1,  0,  0, 
-     1,  1,  9,  0,  0,  9,  9,  9,  1,  1,  1,  0,  0,  0,  0,  0, 
-     0,  1,  0,  0,  1,  0,  1,  0,  1,  0,  1,  9,  0,  1,  9,  0, 
-     1,  1,  0,  0,  0,  0,  0,  0,  0,  1,  0,  1,  0,  1,  1,  0, 
-     0,  0,  0,  0,  1,  1,  0,  1,  1,  0,  0,  0,  9,  9,  1,  1, 
-     0,  1,  1,  9,  9,  9,  1,  1,  0,  1,  1,  1,  9,  1,  1,  1, 
-     1,  1,  1,  1,  1
+     1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  0,  1,  1,  1,  1,  9, 
+     1,  9,  1,  1,  9,  9,  1,  1,  1,  1,  1,  1,  1,  1,  9,  1, 
+     1,  1,  1,  9,  1,  1,  1,  1,  1,  1,  1,  1,  9,  1,  1,  1, 
+     1,  9,  1,  1,  1,  1,  1,  9,  1,  1,  1,  1,  1,  1,  1,  1, 
+     1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  9, 
+     1,  1,  1,  1,  1,  1,  9,  9,  1,  9,  9,  1,  0,  1,  0,  1, 
+     1,  0,  0,  0,  9,  1,  1,  9,  9,  0,  0,  0,  9,  0,  0,  9, 
+     0,  0,  0,  9,  0,  0,  0,  0,  0,  0,  0,  9,  0,  0,  0,  0, 
+     0,  9,  1,  0,  0,  1,  1,  0,  0,  1,  0,  0,  0,  9,  0,  0, 
+     0,  1,  0,  0,  0,  9,  1,  0,  0,  1,  1,  0,  1,  0,  0,  0, 
+     9,  1,  0,  0,  1,  1,  0,  1,  0,  0,  1,  1,  9,  0,  0,  9, 
+     9,  9,  1,  1,  0,  0,  0,  0,  0,  0,  1,  0,  0,  1,  0,  1, 
+     0,  1,  0,  1,  9,  0,  1,  9,  0,  1,  0,  0,  0,  0,  0,  0, 
+     0,  1,  0,  1,  0,  1,  0,  0,  0,  0,  0,  1,  1,  0,  1,  0, 
+     0,  0,  9,  9,  1,  1,  0,  1,  9,  9,  9,  1,  1,  0,  1,  1, 
+     1,  9,  1,  1,  1,  1,  1,  1,  1,  1
   };
 
   /** the input device */
@@ -996,10 +956,10 @@
    * @return         the unpacked transition table
    */
   private static int [] yy_unpack(String packed) {
-    int [] trans = new int[11110];
+    int [] trans = new int[9882];
     int i = 0;  /* index in packed string  */
     int j = 0;  /* index in unpacked array */
-    while (i < 3646) {
+    while (i < 3150) {
       int count = packed.charAt(i++);
       int value = packed.charAt(i++);
       value--;
@@ -1297,17 +1257,17 @@
 
       switch (yy_action) {    
 
-        case 292: 
+        case 265: 
           { 
 	if(Debug.debugTokenizer)
 		dump("XSL processing instruction target");//$NON-NLS-1$
         yybegin(ST_XML_PI_ATTRIBUTE_NAME);
         return XML_TAG_NAME;
  }
-        case 294: break;
-        case 284: 
-        case 286: 
-        case 287: 
+        case 267: break;
+        case 257: 
+        case 259: 
+        case 260: 
           { 
 	if(Debug.debugTokenizer)
 		dump("\nCDATA start");//$NON-NLS-1$
@@ -1315,259 +1275,212 @@
 	yybegin(ST_CDATA_TEXT);
 	return XML_CDATA_OPEN;
  }
-        case 295: break;
-        case 277: 
+        case 268: break;
+        case 250: 
           { 
 	if(Debug.debugTokenizer)
 		dump("element");//$NON-NLS-1$
 	yybegin(ST_XML_ELEMENT_DECLARATION);
 	return XML_ELEMENT_DECLARATION;
  }
-        case 296: break;
-        case 276: 
+        case 269: break;
+        case 249: 
           { 
 	if(Debug.debugTokenizer)
 		dump("attlist");//$NON-NLS-1$
 	yybegin(ST_XML_ATTLIST_DECLARATION);
 	return XML_ATTLIST_DECLARATION;
  }
-        case 297: break;
-        case 275: 
+        case 270: break;
+        case 248: 
           { 
 	if(Debug.debugTokenizer)
 		dump("doctype");//$NON-NLS-1$
 	yybegin(ST_XML_DOCTYPE_DECLARATION);
 	return XML_DOCTYPE_DECLARATION;
  }
-        case 298: break;
-        case 269: 
+        case 271: break;
+        case 243: 
           { 
 	if(Debug.debugTokenizer)
 		dump("doctype external id");//$NON-NLS-1$
 	yybegin(ST_XML_DOCTYPE_ID_PUBLIC);
 	return XML_DOCTYPE_EXTERNAL_ID_PUBLIC;
  }
-        case 299: break;
-        case 268: 
+        case 272: break;
+        case 242: 
           { 
 	if(Debug.debugTokenizer)
 		dump("doctype external id");//$NON-NLS-1$
 	yybegin(ST_XML_DOCTYPE_ID_SYSTEM);
 	return XML_DOCTYPE_EXTERNAL_ID_SYSTEM;
  }
-        case 300: break;
-        case 264: 
-        case 274: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("DHTML processing instruction target");//$NON-NLS-1$
-        yybegin(ST_DHTML_ATTRIBUTE_NAME);
-        return XML_TAG_NAME;
- }
-        case 301: break;
-        case 238: 
+        case 273: break;
+        case 215: 
           { 
 	if(Debug.debugTokenizer)
 		dump("\nCharRef");//$NON-NLS-1$
 	return XML_CHAR_REFERENCE;
  }
-        case 302: break;
-        case 235: 
+        case 274: break;
+        case 212: 
           { 
 	if(Debug.debugTokenizer)
 		dump("\ncomment start");//$NON-NLS-1$
 	yybegin(ST_XML_COMMENT);
 	return XML_COMMENT_OPEN;
  }
-        case 303: break;
-        case 216: 
-        case 217: 
+        case 275: break;
+        case 194: 
+        case 195: 
           { 
 	if(Debug.debugTokenizer)
 		dump("XML processing instruction target");//$NON-NLS-1$
         yybegin(ST_XML_PI_ATTRIBUTE_NAME);
         return XML_TAG_NAME;
  }
-        case 304: break;
-        case 215: 
+        case 276: break;
+        case 193: 
           { 
 	if(Debug.debugTokenizer)
 		dump("comment end");//$NON-NLS-1$
 	yybegin(YYINITIAL);
 	return XML_COMMENT_CLOSE;
  }
-        case 305: break;
-        case 214: 
+        case 277: break;
+        case 192: 
           { 
 	if(Debug.debugTokenizer)
 		dump("CDATA end");//$NON-NLS-1$
 	yybegin(fStateStack.pop());
 	return XML_CDATA_CLOSE;
  }
-        case 306: break;
-        case 213: 
+        case 278: break;
+        case 191: 
           { 
 	if(Debug.debugTokenizer)
 		dump("\nPEReference");//$NON-NLS-1$
 	return XML_PE_REFERENCE;
  }
-        case 307: break;
-        case 210: 
+        case 279: break;
+        case 188: 
           { 
 	if(Debug.debugTokenizer)
 		dump("\nEntityRef");//$NON-NLS-1$
 	return XML_ENTITY_REFERENCE;
  }
-        case 308: break;
+        case 280: break;
+        case 139: 
+        case 153: 
         case 161: 
-        case 175: 
-        case 183: 
           { 
 	return XML_DOCTYPE_INTERNAL_SUBSET;
  }
-        case 309: break;
-        case 149: 
+        case 281: break;
+        case 127: 
           { 
         yybegin(YYINITIAL);
 	if(Debug.debugTokenizer)
 		dump("empty tag close");//$NON-NLS-1$
         return XML_EMPTY_TAG_CLOSE;
  }
-        case 310: break;
-        case 134: 
+        case 282: break;
+        case 120: 
           { 
 	if(Debug.debugTokenizer)
 		dump("XML processing instruction end");//$NON-NLS-1$
         yybegin(YYINITIAL);
         return XML_PI_CLOSE;
  }
-        case 311: break;
-        case 133: 
+        case 283: break;
+        case 119: 
           { 
 		// ended with nothing inside
         yybegin(YYINITIAL);
         return XML_PI_CLOSE;
  }
-        case 312: break;
-        case 129: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("processing instruction end");//$NON-NLS-1$
-        yybegin(YYINITIAL);
-        return XML_PI_CLOSE;
- }
-        case 313: break;
-        case 120: 
-          { 
-	fStateStack.push(yystate());
-	if(Debug.debugTokenizer)
-		dump("\ndeclaration start");//$NON-NLS-1$
-        yybegin(ST_XML_DECLARATION);
-	return XML_DECLARATION_OPEN;
- }
-        case 314: break;
-        case 119: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("\nprocessing instruction start");//$NON-NLS-1$
-	yybegin(ST_PI);
-        return XML_PI_OPEN;
- }
-        case 315: break;
-        case 118: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("\nend tag open");//$NON-NLS-1$
-        yybegin(ST_XML_TAG_NAME);
-        return XML_END_TAG_OPEN;
- }
-        case 316: break;
-        case 57: 
-        case 59: 
-        case 60: 
-        case 61: 
-        case 138: 
+        case 284: break;
+        case 52: 
+        case 54: 
+        case 55: 
+        case 56: 
+        case 124: 
           { 
 	if(Debug.debugTokenizer)
 		dump("XML processing instruction attribute value");//$NON-NLS-1$
         yybegin(ST_XML_PI_ATTRIBUTE_NAME);
         return XML_TAG_ATTRIBUTE_VALUE;
  }
-        case 317: break;
-        case 56: 
+        case 285: break;
+        case 51: 
           { 
 	if(Debug.debugTokenizer)
 		dump("XML processing instruction '='");//$NON-NLS-1$
         yybegin(ST_XML_PI_ATTRIBUTE_VALUE);
         return XML_TAG_ATTRIBUTE_EQUALS;
  }
-        case 318: break;
-        case 55: 
+        case 286: break;
+        case 50: 
           { 
 	if(Debug.debugTokenizer)
 		dump("XML processing instruction attribute name");//$NON-NLS-1$
         yybegin(ST_XML_PI_EQUALS);
         return XML_TAG_ATTRIBUTE_NAME;
  }
-        case 319: break;
-        case 51: 
-        case 52: 
-        case 53: 
+        case 287: break;
+        case 46: 
+        case 47: 
+        case 48: 
           { 
 	// block scan until close is found
 	return doScan("?>", false, XML_PI_CONTENT, ST_XML_PI_TAG_CLOSE, ST_XML_PI_TAG_CLOSE);
  }
-        case 320: break;
-        case 50: 
+        case 288: break;
+        case 45: 
           { 
         yybegin(ST_PI_CONTENT);
         return WHITE_SPACE;
  }
-        case 321: break;
-        case 46: 
-        case 47: 
-        case 48: 
-        case 49: 
-        case 130: 
-        case 131: 
-        case 132: 
-        case 218: 
-        case 240: 
-        case 241: 
-        case 253: 
+        case 289: break;
+        case 42: 
+        case 43: 
+        case 44: 
+        case 117: 
+        case 118: 
+        case 217: 
+        case 229: 
+        case 238: 
+        case 247: 
         case 254: 
+        case 258: 
+        case 261: 
+        case 262: 
         case 263: 
-        case 273: 
-        case 281: 
-        case 285: 
-        case 288: 
-        case 289: 
-        case 290: 
-        case 291: 
+        case 264: 
           { 
 	if(Debug.debugTokenizer)
 		dump("processing instruction target");//$NON-NLS-1$
         yybegin(ST_PI_WS);
         return XML_TAG_NAME;
  }
-        case 322: break;
-        case 41: 
-        case 42: 
+        case 290: break;
+        case 37: 
+        case 38: 
           { 
 	if(Debug.debugTokenizer)
 		dump("comment content");//$NON-NLS-1$
 	return scanXMLCommentText();
  }
-        case 323: break;
-        case 40: 
+        case 291: break;
+        case 36: 
           { 
 	if(Debug.debugTokenizer)
 		dump("LINE FEED");//$NON-NLS-1$
 	return WHITE_SPACE;
  }
-        case 324: break;
-        case 35: 
-        case 36: 
+        case 292: break;
+        case 31: 
+        case 32: 
           { 
 	if(Debug.debugTokenizer)
 		dump("CDATA text");//$NON-NLS-1$
@@ -1576,171 +1489,130 @@
 		yybegin(ST_CDATA_END);
 	return blockContext;
  }
-        case 325: break;
+        case 293: break;
         case 0: 
-        case 31: 
-        case 122: 
-        case 124: 
-        case 208: 
-        case 209: 
-        case 237: 
+        case 27: 
+        case 109: 
+        case 111: 
+        case 186: 
+        case 187: 
+        case 214: 
           { 
 	if(Debug.debugTokenizer)
 		dump("\nXML content");//$NON-NLS-1$
 	return XML_CONTENT;
  }
-        case 326: break;
+        case 294: break;
         case 5: 
         case 8: 
         case 9: 
         case 10: 
-        case 12: 
         case 13: 
         case 14: 
         case 15: 
+        case 16: 
         case 17: 
         case 18: 
         case 19: 
         case 20: 
         case 21: 
         case 22: 
-        case 23: 
         case 24: 
-        case 25: 
-        case 26: 
-        case 28: 
-        case 45: 
+        case 41: 
           { 
 	if(Debug.debugTokenizer)
 		dump("white space");//$NON-NLS-1$
         return WHITE_SPACE;
  }
-        case 327: break;
-        case 16: 
-        case 71: 
+        case 295: break;
+        case 12: 
+        case 58: 
           { 
 	if(Debug.debugTokenizer)
 		dump("inappropriate tag name");//$NON-NLS-1$
 	yybegin(YYINITIAL);
         return XML_CONTENT;
  }
-        case 328: break;
-        case 27: 
-        case 106: 
-        case 107: 
-        case 194: 
-        case 230: 
-        case 249: 
-        case 260: 
-        case 270: 
-        case 278: 
-        case 282: 
+        case 296: break;
+        case 23: 
+        case 93: 
+        case 94: 
+        case 172: 
+        case 207: 
+        case 225: 
+        case 235: 
+        case 244: 
+        case 251: 
+        case 255: 
           { 
 	if(Debug.debugTokenizer)
 		dump("elementdecl contentspec");//$NON-NLS-1$
 	return XML_ELEMENT_DECL_CONTENT;
  }
-        case 329: break;
-        case 29: 
-        case 113: 
-        case 114: 
-        case 205: 
-        case 234: 
-        case 251: 
-        case 261: 
-        case 271: 
-        case 279: 
-        case 283: 
+        case 297: break;
+        case 25: 
+        case 100: 
+        case 101: 
+        case 183: 
+        case 211: 
+        case 227: 
+        case 236: 
+        case 245: 
+        case 252: 
+        case 256: 
           { 
 	if(Debug.debugTokenizer)
 		dump("attlist contentspec");//$NON-NLS-1$
 	return XML_ATTLIST_DECL_CONTENT;
  }
-        case 330: break;
-        case 32: 
-        case 72: 
-        case 83: 
+        case 298: break;
+        case 28: 
+        case 59: 
+        case 70: 
           { 
 	if(Debug.debugTokenizer)
 		dump("\nstart tag open");//$NON-NLS-1$
         yybegin(ST_XML_TAG_NAME);
         return XML_TAG_OPEN;
  }
-        case 331: break;
+        case 299: break;
+        case 29: 
         case 33: 
-        case 37: 
-        case 38: 
+        case 34: 
+        case 35: 
         case 39: 
-        case 43: 
-        case 44: 
-        case 54: 
-        case 58: 
-        case 62: 
-        case 64: 
-        case 68: 
+        case 40: 
+        case 49: 
+        case 53: 
+        case 57: 
+        case 61: 
+        case 67: 
+        case 72: 
+        case 73: 
         case 74: 
+        case 75: 
+        case 77: 
+        case 78: 
         case 80: 
         case 85: 
-        case 86: 
-        case 87: 
-        case 88: 
         case 90: 
-        case 91: 
-        case 93: 
-        case 98: 
-        case 103: 
-        case 110: 
+        case 97: 
           { 
 	if (Debug.debugTokenizer)
 		System.out.println("!!!unexpected!!!: \"" + yytext() + "\":" + //$NON-NLS-2$//$NON-NLS-1$
 			yychar + "-" + (yychar + yylength()));//$NON-NLS-1$
 	return UNDEFINED;
  }
-        case 332: break;
-        case 34: 
-        case 125: 
+        case 300: break;
+        case 30: 
+        case 112: 
           { 
 	if(Debug.debugTokenizer)
 		dump("non-reference %");//$NON-NLS-1$
 	return XML_CONTENT;
  }
-        case 333: break;
-        case 63: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("DHTML processing instruction end");//$NON-NLS-1$
-        yybegin(YYINITIAL);
-        return XML_PI_CLOSE;
- }
-        case 334: break;
-        case 65: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("DHTML processing instruction attribute name");//$NON-NLS-1$
-        yybegin(ST_DHTML_EQUALS);
-        return XML_TAG_ATTRIBUTE_NAME;
- }
-        case 335: break;
-        case 66: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("DHTML processing instruction '='");//$NON-NLS-1$
-        yybegin(ST_DHTML_ATTRIBUTE_VALUE);
-        return XML_TAG_ATTRIBUTE_EQUALS;
- }
-        case 336: break;
-        case 67: 
-        case 69: 
-        case 70: 
-        case 146: 
-          { 
-	if(Debug.debugTokenizer)
-		dump("DHTML processing instruction attribute value");//$NON-NLS-1$
-        yybegin(ST_DHTML_ATTRIBUTE_NAME);
-        return XML_TAG_ATTRIBUTE_VALUE;
- }
-        case 337: break;
-        case 73: 
+        case 301: break;
+        case 60: 
           { 
 	if(Debug.debugTokenizer)
 		dump("tag close");//$NON-NLS-1$
@@ -1751,44 +1623,44 @@
         	yybegin(YYINITIAL);
         return XML_TAG_CLOSE;
  }
-        case 338: break;
-        case 75: 
-        case 76: 
+        case 302: break;
+        case 62: 
+        case 63: 
           { 
 	if(Debug.debugTokenizer)
 		dump("tag name");//$NON-NLS-1$
         yybegin(ST_XML_ATTRIBUTE_NAME);
         return XML_TAG_NAME;
  }
-        case 339: break;
-        case 77: 
+        case 303: break;
+        case 64: 
           { 
 	if(Debug.debugTokenizer)
 		dump("attr name");//$NON-NLS-1$
         yybegin(ST_XML_EQUALS);
         return XML_TAG_ATTRIBUTE_NAME;
  }
-        case 340: break;
-        case 78: 
+        case 304: break;
+        case 65: 
           { 
 	if(Debug.debugTokenizer)
 		dump("equals");//$NON-NLS-1$
         yybegin(ST_XML_ATTRIBUTE_VALUE);
         return XML_TAG_ATTRIBUTE_EQUALS;
  }
-        case 341: break;
-        case 79: 
-        case 81: 
-        case 82: 
-        case 153: 
+        case 305: break;
+        case 66: 
+        case 68: 
+        case 69: 
+        case 131: 
           { 
 	if(Debug.debugTokenizer)
 		dump("attr value");//$NON-NLS-1$
         yybegin(ST_XML_ATTRIBUTE_NAME);
         return XML_TAG_ATTRIBUTE_VALUE;
  }
-        case 342: break;
-        case 84: 
+        case 306: break;
+        case 71: 
           { 
 	if(Debug.debugTokenizer)
 		dump("declaration end");//$NON-NLS-1$
@@ -1799,59 +1671,59 @@
 	yybegin(fStateStack.pop());
 	return XML_DECLARATION_CLOSE;
  }
-        case 343: break;
-        case 89: 
+        case 307: break;
+        case 76: 
           { 
 	if(Debug.debugTokenizer)
 		dump("doctype type");//$NON-NLS-1$
 	yybegin(ST_XML_DOCTYPE_EXTERNAL_ID);
 	return XML_DOCTYPE_NAME;
  }
-        case 344: break;
-        case 92: 
-        case 94: 
-        case 95: 
-        case 96: 
-        case 167: 
-        case 168: 
-        case 171: 
-        case 172: 
-        case 225: 
+        case 308: break;
+        case 79: 
+        case 81: 
+        case 82: 
+        case 83: 
+        case 145: 
+        case 146: 
+        case 149: 
+        case 150: 
+        case 202: 
           { 
 	if(Debug.debugTokenizer)
 		dump("doctype public reference");//$NON-NLS-1$
 	yybegin(ST_XML_DOCTYPE_ID_SYSTEM);
 	return XML_DOCTYPE_EXTERNAL_ID_PUBREF;
  }
-        case 345: break;
-        case 97: 
-        case 99: 
-        case 100: 
-        case 101: 
-        case 179: 
+        case 309: break;
+        case 84: 
+        case 86: 
+        case 87: 
+        case 88: 
+        case 157: 
           { 
 	if(Debug.debugTokenizer)
 		dump("doctype system reference");//$NON-NLS-1$
 	yybegin(ST_XML_DECLARATION_CLOSE);
 	return XML_DOCTYPE_EXTERNAL_ID_SYSREF;
  }
-        case 346: break;
-        case 102: 
-        case 104: 
-        case 105: 
-        case 187: 
-        case 188: 
-        case 191: 
-        case 192: 
-        case 228: 
+        case 310: break;
+        case 89: 
+        case 91: 
+        case 92: 
+        case 165: 
+        case 166: 
+        case 169: 
+        case 170: 
+        case 205: 
           { 
 	if(Debug.debugTokenizer)
 		dump("elementdecl name");//$NON-NLS-1$
 	yybegin(ST_XML_ELEMENT_DECLARATION_CONTENT);
 	return XML_ELEMENT_DECL_NAME;
  }
-        case 347: break;
-        case 108: 
+        case 311: break;
+        case 95: 
           { 
 	if(Debug.debugTokenizer)
 		dump("elementdecl close");//$NON-NLS-1$
@@ -1862,23 +1734,23 @@
 	yybegin(fStateStack.pop());
 	return XML_DECLARATION_CLOSE;
  }
-        case 348: break;
-        case 109: 
-        case 111: 
-        case 112: 
-        case 198: 
-        case 199: 
-        case 202: 
-        case 203: 
-        case 232: 
+        case 312: break;
+        case 96: 
+        case 98: 
+        case 99: 
+        case 176: 
+        case 177: 
+        case 180: 
+        case 181: 
+        case 209: 
           { 
 	if(Debug.debugTokenizer)
 		dump("attlist name");//$NON-NLS-1$
 	yybegin(ST_XML_ATTLIST_DECLARATION_CONTENT);
 	return XML_ATTLIST_DECL_NAME;
  }
-        case 349: break;
-        case 115: 
+        case 313: break;
+        case 102: 
           { 
 	if(Debug.debugTokenizer)
 		dump("attlist close");//$NON-NLS-1$
@@ -1889,13 +1761,46 @@
 	yybegin(fStateStack.pop());
 	return XML_DECLARATION_CLOSE;
  }
-        case 350: break;
+        case 314: break;
+        case 105: 
+          { 
+	if(Debug.debugTokenizer)
+		dump("\nend tag open");//$NON-NLS-1$
+        yybegin(ST_XML_TAG_NAME);
+        return XML_END_TAG_OPEN;
+ }
+        case 315: break;
+        case 106: 
+          { 
+	if(Debug.debugTokenizer)
+		dump("\nprocessing instruction start");//$NON-NLS-1$
+	yybegin(ST_PI);
+        return XML_PI_OPEN;
+ }
+        case 316: break;
+        case 107: 
+          { 
+	fStateStack.push(yystate());
+	if(Debug.debugTokenizer)
+		dump("\ndeclaration start");//$NON-NLS-1$
+        yybegin(ST_XML_DECLARATION);
+	return XML_DECLARATION_OPEN;
+ }
+        case 317: break;
         case 116: 
-        case 117: 
+          { 
+	if(Debug.debugTokenizer)
+		dump("processing instruction end");//$NON-NLS-1$
+        yybegin(YYINITIAL);
+        return XML_PI_CLOSE;
+ }
+        case 318: break;
+        case 103: 
+        case 104: 
           { 
 		return doBlockTagScan();
 	 }
-        case 351: break;
+        case 319: break;
         default: 
           if (yy_input == YYEOF && yy_startRead == yy_currentPos) {
             yy_atEOF = true;