diff --git a/CMark.hsc b/CMark.hsc
--- a/CMark.hsc
+++ b/CMark.hsc
@@ -6,6 +6,7 @@
   , commonmarkToXml
   , commonmarkToMan
   , commonmarkToNode
+  , nodeToCommonmark
   , optSourcePos
   , optNormalize
   , optHardBreaks
@@ -25,16 +26,62 @@
 
 import Foreign
 import Foreign.C.Types
-import Foreign.C.String (CString)
+import Foreign.C.String (CString, withCString)
 import qualified System.IO.Unsafe as Unsafe
 import GHC.Generics (Generic)
 import Data.Data (Data)
 import Data.Typeable (Typeable)
-import Data.Text (Text, empty)
+import Data.Text (Text, empty, unpack)
 import qualified Data.Text.Foreign as TF
+import Control.Applicative ((<$>), (<*>))
 
 #include <cmark.h>
 
+-- | Convert CommonMark formatted text to Html, using cmark's
+-- built-in renderer.
+commonmarkToHtml :: [CMarkOption] -> Text -> Text
+commonmarkToHtml = commonmarkToX c_cmark_render_html
+
+-- | Convert CommonMark formatted text to CommonMark XML, using cmark's
+-- built-in renderer.
+commonmarkToXml :: [CMarkOption] -> Text -> Text
+commonmarkToXml = commonmarkToX c_cmark_render_xml
+
+-- | Convert CommonMark formatted text to groff man, using cmark's
+-- built-in renderer.
+commonmarkToMan :: [CMarkOption] -> Text -> Text
+commonmarkToMan = commonmarkToX c_cmark_render_man
+
+-- | Convert CommonMark formatted text to a structured 'Node' tree,
+-- which can be transformed or rendered using Haskell code.
+commonmarkToNode :: [CMarkOption] -> Text -> Node
+commonmarkToNode opts s = io $ do
+  nptr <- TF.withCStringLen s $! \(ptr, len) ->
+             c_cmark_parse_document ptr len (combineOptions opts)
+  fptr <- newForeignPtr c_cmark_node_free nptr
+  withForeignPtr fptr toNode
+
+nodeToCommonmark :: [CMarkOption] -> Int -> Node -> Text
+nodeToCommonmark opts width node = io $ do
+  nptr <- fromNode node
+  fptr <- newForeignPtr c_cmark_node_free nptr
+  withForeignPtr fptr $ \ptr -> do
+    cstr <- c_cmark_render_commonmark ptr (combineOptions opts) width
+    TF.peekCStringLen (cstr, c_strlen cstr)
+
+commonmarkToX :: (NodePtr -> CInt -> IO CString)
+              -> [CMarkOption]
+              -> Text
+              -> Text
+commonmarkToX renderer opts s = io $ TF.withCStringLen s $ \(ptr, len) -> do
+  let opts' = combineOptions opts
+  nptr <- c_cmark_parse_document ptr len opts'
+  fptr <- newForeignPtr c_cmark_node_free nptr
+  withForeignPtr fptr $ \p -> do
+    str <- renderer p opts'
+    t <- TF.peekCStringLen $! (str, c_strlen str)
+    return t
+
 type NodePtr = Ptr ()
 
 data Node = Node (Maybe PosInfo) NodeType [Node]
@@ -115,187 +162,268 @@
 optSmart :: CMarkOption
 optSmart = CMarkOption #const CMARK_OPT_SMART
 
-ptrToNodeType :: NodePtr -> NodeType
-ptrToNodeType ptr =
-  case (c_cmark_node_get_type ptr) of
-             #const CMARK_NODE_DOCUMENT
-               -> DOCUMENT
-             #const CMARK_NODE_HRULE
-               -> HRULE
-             #const CMARK_NODE_PARAGRAPH
-               -> PARAGRAPH
-             #const CMARK_NODE_BLOCK_QUOTE
-               -> BLOCK_QUOTE
-             #const CMARK_NODE_HTML
-               -> HTML literal
-             #const CMARK_NODE_CODE_BLOCK
-               -> CODE_BLOCK info literal
-             #const CMARK_NODE_LIST
-               -> LIST listAttr
-             #const CMARK_NODE_ITEM
-               -> ITEM
-             #const CMARK_NODE_HEADER
-               -> HEADER level
-             #const CMARK_NODE_EMPH
-               -> EMPH
-             #const CMARK_NODE_STRONG
-               -> STRONG
-             #const CMARK_NODE_LINK
-               -> LINK url title
-             #const CMARK_NODE_IMAGE
-               -> IMAGE url title
-             #const CMARK_NODE_TEXT
-               -> TEXT literal
-             #const CMARK_NODE_CODE
-               -> CODE literal
-             #const CMARK_NODE_INLINE_HTML
-               -> INLINE_HTML literal
-             #const CMARK_NODE_SOFTBREAK
-               -> SOFTBREAK
-             #const CMARK_NODE_LINEBREAK
-               -> LINEBREAK
-             _ -> error "Unknown node type"
-  where literal   = peekCString $ c_cmark_node_get_literal ptr
+ptrToNodeType :: NodePtr -> IO NodeType
+ptrToNodeType ptr = do
+  nodeType <- c_cmark_node_get_type ptr
+  case nodeType of
+       #const CMARK_NODE_DOCUMENT
+         -> return DOCUMENT
+       #const CMARK_NODE_HRULE
+         -> return HRULE
+       #const CMARK_NODE_PARAGRAPH
+         -> return PARAGRAPH
+       #const CMARK_NODE_BLOCK_QUOTE
+         -> return BLOCK_QUOTE
+       #const CMARK_NODE_HTML
+         -> HTML <$> literal
+       #const CMARK_NODE_CODE_BLOCK
+         -> CODE_BLOCK <$> info
+                       <*> literal
+       #const CMARK_NODE_LIST
+         -> LIST <$> listAttr
+       #const CMARK_NODE_ITEM
+         -> return ITEM
+       #const CMARK_NODE_HEADER
+         -> HEADER <$> level
+       #const CMARK_NODE_EMPH
+         -> return EMPH
+       #const CMARK_NODE_STRONG
+         -> return STRONG
+       #const CMARK_NODE_LINK
+         -> LINK <$> url <*> title
+       #const CMARK_NODE_IMAGE
+         -> IMAGE <$> url <*> title
+       #const CMARK_NODE_TEXT
+         -> TEXT <$> literal
+       #const CMARK_NODE_CODE
+         -> CODE <$> literal
+       #const CMARK_NODE_INLINE_HTML
+         -> INLINE_HTML <$> literal
+       #const CMARK_NODE_SOFTBREAK
+         -> return SOFTBREAK
+       #const CMARK_NODE_LINEBREAK
+         -> return LINEBREAK
+       _ -> error "Unknown node type"
+  where literal   = c_cmark_node_get_literal ptr >>= totext
         level     = c_cmark_node_get_header_level ptr
-        listAttr  = ListAttributes{
-            listType  = case c_cmark_node_get_list_type ptr of
+        listAttr  = do
+          listtype <- c_cmark_node_get_list_type ptr
+          listdelim <- c_cmark_node_get_list_delim ptr
+          tight <- c_cmark_node_get_list_tight ptr
+          start <- c_cmark_node_get_list_start ptr
+          return ListAttributes{
+            listType  = case listtype of
                              (#const CMARK_ORDERED_LIST) -> ORDERED_LIST
                              (#const CMARK_BULLET_LIST)  -> BULLET_LIST
                              _                           -> BULLET_LIST
-          , listDelim  = case c_cmark_node_get_list_delim ptr of
+          , listDelim  = case listdelim of
                              (#const CMARK_PERIOD_DELIM) -> PERIOD_DELIM
                              (#const CMARK_PAREN_DELIM)  -> PAREN_DELIM
                              _                           -> PERIOD_DELIM
-          , listTight  = c_cmark_node_get_list_tight ptr == 1
-          , listStart  = c_cmark_node_get_list_start ptr
+          , listTight  = tight
+          , listStart  = start
           }
-        url       = peekCString $ c_cmark_node_get_url ptr
-        title     = peekCString $ c_cmark_node_get_title ptr
-        info      = peekCString $ c_cmark_node_get_fence_info ptr
+        url       = c_cmark_node_get_url ptr >>= totext
+        title     = c_cmark_node_get_title ptr >>= totext
+        info      = c_cmark_node_get_fence_info ptr >>= totext
 
-getPosInfo :: NodePtr -> Maybe PosInfo
-getPosInfo ptr =
-   case (c_cmark_node_get_start_line ptr,
-         c_cmark_node_get_start_column ptr,
-         c_cmark_node_get_end_line ptr,
-         c_cmark_node_get_end_column ptr) of
-       (0, 0, 0, 0) -> Nothing
-       (sl, sc, el, ec) -> Just PosInfo{ startLine = sl
-                                       , startColumn = sc
-                                       , endLine = el
-                                       , endColumn = ec }
+getPosInfo :: NodePtr -> IO (Maybe PosInfo)
+getPosInfo ptr = do
+  startline <- c_cmark_node_get_start_line ptr
+  endline <- c_cmark_node_get_end_line ptr
+  startcol <- c_cmark_node_get_start_column ptr
+  endcol <- c_cmark_node_get_end_column ptr
+  if startline + endline + startcol + endcol == 0
+     then return Nothing
+     else return $ Just PosInfo{ startLine = startline
+                               , startColumn = startcol
+                               , endLine = endline
+                               , endColumn = endcol }
 
-handleNode :: (Maybe PosInfo -> NodeType -> [a] -> a) -> NodePtr -> a
-handleNode f ptr = f posinfo (ptrToNodeType ptr) children
-   where children = handleNodes f $ c_cmark_node_first_child ptr
-         posinfo  = getPosInfo ptr
-         handleNodes f' ptr' =
-           if ptr' == nullPtr
-              then []
-              else handleNode f' ptr' : handleNodes f' (c_cmark_node_next ptr')
+toNode :: NodePtr -> IO Node
+toNode ptr = do
+  let handleNodes ptr' =
+        if ptr' == nullPtr
+           then return []
+           else do
+              x  <- toNode ptr'
+              xs <- c_cmark_node_next ptr' >>= handleNodes
+              return $! (x:xs)
+  nodeType <- ptrToNodeType ptr
+  children <- c_cmark_node_first_child ptr >>= handleNodes
+  posinfo <- getPosInfo ptr
+  return $! Node posinfo nodeType children
 
-toNode :: NodePtr -> Node
-toNode = handleNode Node
+fromNode :: Node -> IO NodePtr
+fromNode (Node _ nodeType children) = do
+  node <- case nodeType of
+            DOCUMENT    -> c_cmark_node_new (#const CMARK_NODE_DOCUMENT)
+            HRULE       -> c_cmark_node_new (#const CMARK_NODE_HRULE)
+            PARAGRAPH   -> c_cmark_node_new (#const CMARK_NODE_PARAGRAPH)
+            BLOCK_QUOTE -> c_cmark_node_new (#const CMARK_NODE_BLOCK_QUOTE)
+            HTML literal -> do
+                     n <- c_cmark_node_new (#const CMARK_NODE_HTML)
+                     c_cmark_node_set_literal n (fromtext literal)
+                     return n
+            CODE_BLOCK info literal -> do
+                     n <- c_cmark_node_new (#const CMARK_NODE_CODE_BLOCK)
+                     c_cmark_node_set_literal n (fromtext literal)
+                     c_cmark_node_set_fence_info n (fromtext info)
+                     return n
+            LIST attr   -> do
+                     n <- c_cmark_node_new (#const CMARK_NODE_LIST)
+                     c_cmark_node_set_list_type n $ case listType attr of
+                         ORDERED_LIST -> #const CMARK_ORDERED_LIST
+                         BULLET_LIST  -> #const CMARK_BULLET_LIST
+                     c_cmark_node_set_list_delim n $ case listDelim attr of
+                         PERIOD_DELIM -> #const CMARK_PERIOD_DELIM
+                         PAREN_DELIM  -> #const CMARK_PAREN_DELIM
+                     c_cmark_node_set_list_tight n $ listTight attr
+                     c_cmark_node_set_list_start n $ listStart attr
+                     return n
+            ITEM        -> c_cmark_node_new (#const CMARK_NODE_ITEM)
+            HEADER lev  -> do
+                     n <- c_cmark_node_new (#const CMARK_NODE_HEADER)
+                     c_cmark_node_set_header_level n lev
+                     return n
+            EMPH        -> c_cmark_node_new (#const CMARK_NODE_EMPH)
+            STRONG      -> c_cmark_node_new (#const CMARK_NODE_STRONG)
+            LINK url title -> do
+                     n <- c_cmark_node_new (#const CMARK_NODE_LINK)
+                     c_cmark_node_set_url n (fromtext url)
+                     c_cmark_node_set_title n (fromtext title)
+                     return n
+            IMAGE url title -> do
+                     n <- c_cmark_node_new (#const CMARK_NODE_IMAGE)
+                     c_cmark_node_set_url n (fromtext url)
+                     c_cmark_node_set_title n (fromtext title)
+                     return n
+            TEXT literal -> do
+                     n <- c_cmark_node_new (#const CMARK_NODE_TEXT)
+                     c_cmark_node_set_literal n (fromtext literal)
+                     return n
+            CODE literal -> do
+                     n <- c_cmark_node_new (#const CMARK_NODE_CODE)
+                     c_cmark_node_set_literal n (fromtext literal)
+                     return n
+            INLINE_HTML literal -> do
+                     n <- c_cmark_node_new (#const CMARK_NODE_INLINE_HTML)
+                     c_cmark_node_set_literal n (fromtext literal)
+                     return n
+            SOFTBREAK   -> c_cmark_node_new (#const CMARK_NODE_SOFTBREAK)
+            LINEBREAK   -> c_cmark_node_new (#const CMARK_NODE_LINEBREAK)
+  mapM_ (\child -> fromNode child >>= c_cmark_node_append_child node) children
+  return node
 
+io :: IO a -> a
+io = Unsafe.unsafePerformIO
+
+totext :: CString -> IO Text
+totext str
+  | str == nullPtr = return empty
+  | otherwise      = TF.peekCStringLen (str, c_strlen str)
+
+fromtext :: Text -> CString
+fromtext t = io $! withCString (unpack t) return
+
 foreign import ccall "string.h strlen"
     c_strlen :: CString -> Int
 
-foreign import ccall "cmark.h cmark_markdown_to_html"
-    c_cmark_markdown_to_html :: CString -> Int -> CInt -> CString
+foreign import ccall "cmark.h cmark_node_new"
+    c_cmark_node_new :: Int -> IO NodePtr
 
+foreign import ccall "cmark.h cmark_render_html"
+    c_cmark_render_html :: NodePtr -> CInt -> IO CString
+
 foreign import ccall "cmark.h cmark_render_xml"
-    c_cmark_render_xml :: NodePtr -> CInt -> CString
+    c_cmark_render_xml :: NodePtr -> CInt -> IO CString
 
 foreign import ccall "cmark.h cmark_render_man"
-    c_cmark_render_man :: NodePtr -> CInt -> CString
+    c_cmark_render_man :: NodePtr -> CInt -> IO CString
 
+foreign import ccall "cmark.h cmark_render_commonmark"
+    c_cmark_render_commonmark :: NodePtr -> CInt -> Int -> IO CString
+
 foreign import ccall "cmark.h cmark_parse_document"
-    c_cmark_parse_document :: CString -> Int -> CInt -> NodePtr
+    c_cmark_parse_document :: CString -> Int -> CInt -> IO NodePtr
 
 foreign import ccall "cmark.h cmark_node_get_type"
-    c_cmark_node_get_type :: NodePtr -> Int
+    c_cmark_node_get_type :: NodePtr -> IO Int
 
 foreign import ccall "cmark.h cmark_node_first_child"
-    c_cmark_node_first_child :: NodePtr -> NodePtr
+    c_cmark_node_first_child :: NodePtr -> IO NodePtr
 
 foreign import ccall "cmark.h cmark_node_next"
-    c_cmark_node_next :: NodePtr -> NodePtr
+    c_cmark_node_next :: NodePtr -> IO NodePtr
 
 foreign import ccall "cmark.h cmark_node_get_literal"
-    c_cmark_node_get_literal :: NodePtr -> CString
+    c_cmark_node_get_literal :: NodePtr -> IO CString
 
 foreign import ccall "cmark.h cmark_node_get_url"
-    c_cmark_node_get_url :: NodePtr -> CString
+    c_cmark_node_get_url :: NodePtr -> IO CString
 
 foreign import ccall "cmark.h cmark_node_get_title"
-    c_cmark_node_get_title :: NodePtr -> CString
+    c_cmark_node_get_title :: NodePtr -> IO CString
 
 foreign import ccall "cmark.h cmark_node_get_header_level"
-    c_cmark_node_get_header_level :: NodePtr -> Int
+    c_cmark_node_get_header_level :: NodePtr -> IO Int
 
 foreign import ccall "cmark.h cmark_node_get_list_type"
-    c_cmark_node_get_list_type :: NodePtr -> Int
+    c_cmark_node_get_list_type :: NodePtr -> IO Int
 
 foreign import ccall "cmark.h cmark_node_get_list_tight"
-    c_cmark_node_get_list_tight :: NodePtr -> Int
+    c_cmark_node_get_list_tight :: NodePtr -> IO Bool
 
 foreign import ccall "cmark.h cmark_node_get_list_start"
-    c_cmark_node_get_list_start :: NodePtr -> Int
+    c_cmark_node_get_list_start :: NodePtr -> IO Int
 
 foreign import ccall "cmark.h cmark_node_get_list_delim"
-    c_cmark_node_get_list_delim :: NodePtr -> Int
+    c_cmark_node_get_list_delim :: NodePtr -> IO Int
 
 foreign import ccall "cmark.h cmark_node_get_fence_info"
-    c_cmark_node_get_fence_info :: NodePtr -> CString
+    c_cmark_node_get_fence_info :: NodePtr -> IO CString
 
 foreign import ccall "cmark.h cmark_node_get_start_line"
-    c_cmark_node_get_start_line :: NodePtr -> Int
+    c_cmark_node_get_start_line :: NodePtr -> IO Int
 
 foreign import ccall "cmark.h cmark_node_get_start_column"
-    c_cmark_node_get_start_column :: NodePtr -> Int
+    c_cmark_node_get_start_column :: NodePtr -> IO Int
 
 foreign import ccall "cmark.h cmark_node_get_end_line"
-    c_cmark_node_get_end_line :: NodePtr -> Int
+    c_cmark_node_get_end_line :: NodePtr -> IO Int
 
 foreign import ccall "cmark.h cmark_node_get_end_column"
-    c_cmark_node_get_end_column :: NodePtr -> Int
+    c_cmark_node_get_end_column :: NodePtr -> IO Int
 
--- | Convert CommonMark formatted text to Html, using cmark's
--- built-in renderer.
-commonmarkToHtml :: [CMarkOption] -> Text -> Text
-commonmarkToHtml opts s = io $
-  TF.withCStringLen s $ \(ptr, len) ->
-    return (peekCString $ c_cmark_markdown_to_html ptr len (combineOptions opts))
+foreign import ccall "cmark.h cmark_node_append_child"
+    c_cmark_node_append_child :: NodePtr -> NodePtr -> IO Int
 
--- | Convert CommonMark formatted text to CommonMark XML, using cmark's
--- built-in renderer.
-commonmarkToXml :: [CMarkOption] -> Text -> Text
-commonmarkToXml opts s = io $
-  TF.withCStringLen s $ \(ptr, len) -> do
-    let opts' = combineOptions opts
-    let doc = c_cmark_parse_document ptr len opts'
-    return (peekCString $ c_cmark_render_xml doc opts')
+foreign import ccall "cmark.h cmark_node_set_literal"
+    c_cmark_node_set_literal :: NodePtr -> CString -> IO Int
 
--- | Convert CommonMark formatted text to groff man, using cmark's
--- built-in renderer.
-commonmarkToMan :: [CMarkOption] -> Text -> Text
-commonmarkToMan opts s = io $
-  TF.withCStringLen s $ \(ptr, len) -> do
-    let opts' = combineOptions opts
-    let doc = c_cmark_parse_document ptr len opts'
-    return (peekCString $ c_cmark_render_man doc opts')
+foreign import ccall "cmark.h cmark_node_set_url"
+    c_cmark_node_set_url :: NodePtr -> CString -> IO Int
 
--- | Convert CommonMark formatted text to a structured 'Node' tree,
--- which can be transformed or rendered using Haskell code.
-commonmarkToNode :: [CMarkOption] -> Text -> Node
-commonmarkToNode opts s = io $
-      TF.withCStringLen s $ \(ptr, len) ->
-        return $ toNode $ c_cmark_parse_document ptr len (combineOptions opts)
+foreign import ccall "cmark.h cmark_node_set_title"
+    c_cmark_node_set_title :: NodePtr -> CString -> IO Int
 
-io :: IO a -> a
-io = Unsafe.unsafePerformIO
+foreign import ccall "cmark.h cmark_node_set_header_level"
+    c_cmark_node_set_header_level :: NodePtr -> Int -> IO Int
 
-peekCString :: CString -> Text
-peekCString str
-  | str == nullPtr = empty
-  | otherwise      = io $ TF.peekCStringLen (str, c_strlen str)
+foreign import ccall "cmark.h cmark_node_set_list_type"
+    c_cmark_node_set_list_type :: NodePtr -> Int -> IO Int
+
+foreign import ccall "cmark.h cmark_node_set_list_tight"
+    c_cmark_node_set_list_tight :: NodePtr -> Bool -> IO Int
+
+foreign import ccall "cmark.h cmark_node_set_list_start"
+    c_cmark_node_set_list_start :: NodePtr -> Int -> IO Int
+
+foreign import ccall "cmark.h cmark_node_set_list_delim"
+    c_cmark_node_set_list_delim :: NodePtr -> Int -> IO Int
+
+foreign import ccall "cmark.h cmark_node_set_fence_info"
+    c_cmark_node_set_fence_info :: NodePtr -> CString -> IO Int
+
+foreign import ccall "cmark.h &cmark_node_free"
+    c_cmark_node_free :: FunPtr (NodePtr -> IO ())
diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -3,8 +3,9 @@
 
 This package provides Haskell bindings for [libcmark], the reference
 parser for [CommonMark], a fully specified variant of Markdown.
-It includes sources for [libcmark] (version 0.18.1) and does not
-require prior installation of the C library.
+It includes sources for [libcmark] (as of commit f40e098, implementing
+version 0.18 of the spec) and does not require prior installation of
+the C library.
 
 cmark provides the following advantages over existing Markdown
 libraries for Haskell:
diff --git a/cbits/blocks.c b/cbits/blocks.c
--- a/cbits/blocks.c
+++ b/cbits/blocks.c
@@ -348,7 +348,7 @@
 	startpos = pos;
 	c = peek_at(input, pos);
 
-	if ((c == '*' || c == '-' || c == '+') && !scan_hrule(input, pos)) {
+	if (c == '*' || c == '-' || c == '+') {
 		pos++;
 		if (!cmark_isspace(peek_at(input, pos))) {
 			return 0;
diff --git a/cbits/buffer.c b/cbits/buffer.c
--- a/cbits/buffer.c
+++ b/cbits/buffer.c
@@ -372,7 +372,7 @@
 
 	for (r = 0, w = 0; r < buf->size; ++r) {
 		if (buf->ptr[r] == '\\' && cmark_ispunct(buf->ptr[r + 1]))
-			continue;
+			r++;
 
 		buf->ptr[w++] = buf->ptr[r];
 	}
diff --git a/cbits/cmark.h b/cbits/cmark.h
--- a/cbits/cmark.h
+++ b/cbits/cmark.h
@@ -481,6 +481,11 @@
 CMARK_EXPORT
 char *cmark_render_man(cmark_node *root, int options);
 
+/** Render a 'node' tree as a commonmark document.
+ */
+CMARK_EXPORT
+char *cmark_render_commonmark(cmark_node *root, int options, int width);
+
 /** Default writer options.
  */
 #define CMARK_OPT_DEFAULT 0
diff --git a/cbits/cmark_export.h b/cbits/cmark_export.h
--- a/cbits/cmark_export.h
+++ b/cbits/cmark_export.h
@@ -23,8 +23,14 @@
 
 #ifndef CMARK_DEPRECATED
 #  define CMARK_DEPRECATED __attribute__ ((__deprecated__))
-#  define CMARK_DEPRECATED_EXPORT CMARK_EXPORT __attribute__ ((__deprecated__))
-#  define CMARK_DEPRECATED_NO_EXPORT CMARK_NO_EXPORT __attribute__ ((__deprecated__))
+#endif
+
+#ifndef CMARK_DEPRECATED_EXPORT
+#  define CMARK_DEPRECATED_EXPORT CMARK_EXPORT CMARK_DEPRECATED
+#endif
+
+#ifndef CMARK_DEPRECATED_NO_EXPORT
+#  define CMARK_DEPRECATED_NO_EXPORT CMARK_NO_EXPORT CMARK_DEPRECATED
 #endif
 
 #define DEFINE_NO_DEPRECATED 0
diff --git a/cbits/commonmark.c b/cbits/commonmark.c
new file mode 100644
--- /dev/null
+++ b/cbits/commonmark.c
@@ -0,0 +1,601 @@
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+#include <assert.h>
+#include <ctype.h>
+
+#include "config.h"
+#include "cmark.h"
+#include "node.h"
+#include "buffer.h"
+#include "utf8.h"
+#include "scanners.h"
+
+// Functions to convert cmark_nodes to commonmark strings.
+
+struct render_state {
+	int options;
+	cmark_strbuf* buffer;
+	cmark_strbuf* prefix;
+	int column;
+	int width;
+	int need_cr;
+	int last_breakable;
+	bool begin_line;
+	bool no_wrap;
+	bool in_tight_list_item;
+};
+
+static inline void cr(struct render_state *state)
+{
+	if (state->need_cr < 1) {
+		state->need_cr = 1;
+	}
+}
+
+static inline void blankline(struct render_state *state)
+{
+	if (state->need_cr < 2) {
+		state->need_cr = 2;
+	}
+}
+
+typedef enum  {
+	LITERAL,
+	NORMAL,
+	TITLE,
+	URL
+} escaping;
+
+static inline bool
+needs_escaping(escaping escape,
+	       int32_t c,
+	       unsigned char next_c,
+	       struct render_state *state)
+{
+	if (escape == NORMAL) {
+		return (c == '*' || c == '_' || c == '[' || c == ']' ||
+			c == '<' || c == '>' || c == '\\' || c == '`' ||
+			(c == '&' && isalpha(next_c)) ||
+			(c == '!' && next_c == '[') ||
+			(state->begin_line &&
+			 (c == '-' || c == '+' || c == '#' || c == '=')) ||
+			(c == '#' && (isspace(next_c) || next_c == '\0')) ||
+			((c == '.' || c == ')') &&
+			 isdigit(state->buffer->ptr[state->buffer->size - 1])));
+	} else if (escape == TITLE) {
+		return (c == '`' || c == '<' || c == '>' || c == '"' ||
+			c == '\\');
+	} else if (escape == URL) {
+		return (c == '`' || c == '<' || c == '>' || isspace(c) ||
+			c == '\\' || c == ')' || c == '(');
+	} else {
+		return false;
+	}
+}
+
+static inline void out(struct render_state *state,
+		       cmark_chunk str,
+		       bool wrap,
+		       escaping escape)
+{
+	unsigned char* source = str.data;
+	int length = str.len;
+	unsigned char nextc;
+	int32_t c;
+	int i = 0;
+	int len;
+	cmark_chunk remainder = cmark_chunk_literal("");
+	int k = state->buffer->size - 1;
+
+	wrap = wrap && !state->no_wrap;
+
+	if (state->in_tight_list_item && state->need_cr > 1) {
+		state->need_cr = 1;
+	}
+	while (state->need_cr) {
+		if (k < 0 || state->buffer->ptr[k] == '\n') {
+			k -= 1;
+		} else {
+			cmark_strbuf_putc(state->buffer, '\n');
+			if (state->need_cr > 1) {
+				cmark_strbuf_put(state->buffer, state->prefix->ptr,
+						 state->prefix->size);
+			}
+		}
+		state->column = 0;
+		state->begin_line = true;
+		state->need_cr -= 1;
+	}
+
+	while (i < length) {
+		if (state->begin_line) {
+			cmark_strbuf_put(state->buffer, state->prefix->ptr,
+					 state->prefix->size);
+			// note: this assumes prefix is ascii:
+			state->column = state->prefix->size;
+		}
+
+		len = utf8proc_iterate(source + i, length - i, &c);
+		nextc = source[i + len];
+		if (c == 32 && wrap) {
+			if (!state->begin_line) {
+				cmark_strbuf_putc(state->buffer, ' ');
+				state->column += 1;
+				state->begin_line = false;
+				state->last_breakable = state->buffer->size -
+					1;
+				// skip following spaces
+				while (source[i + 1] == ' ') {
+					i++;
+				}
+			}
+
+		} else if (c == 10) {
+			cmark_strbuf_putc(state->buffer, '\n');
+			state->column = 0;
+			state->begin_line = true;
+			state->last_breakable = 0;
+		} else if (needs_escaping(escape, c, nextc, state)) {
+			if (isspace(c)) {
+				// use percent encoding for spaces
+				cmark_strbuf_printf(state->buffer, "%%%2x", c);
+				state->column += 3;
+			} else {
+				cmark_strbuf_putc(state->buffer, '\\');
+				utf8proc_encode_char(c, state->buffer);
+				state->column += 2;
+			}
+			state->begin_line = false;
+		} else {
+			utf8proc_encode_char(c, state->buffer);
+			state->column += 1;
+			state->begin_line = false;
+		}
+
+		// If adding the character went beyond width, look for an
+		// earlier place where the line could be broken:
+		if (state->width > 0 &&
+		    state->column > state->width &&
+		    !state->begin_line &&
+		    state->last_breakable > 0) {
+
+			// copy from last_breakable to remainder
+			cmark_chunk_set_cstr(&remainder, (char *) state->buffer->ptr + state->last_breakable + 1);
+			// truncate at last_breakable
+			cmark_strbuf_truncate(state->buffer, state->last_breakable);
+			// add newline, prefix, and remainder
+			cmark_strbuf_putc(state->buffer, '\n');
+			cmark_strbuf_put(state->buffer, state->prefix->ptr,
+					 state->prefix->size);
+			cmark_strbuf_put(state->buffer, remainder.data, remainder.len);
+			state->column = state->prefix->size + remainder.len;
+			cmark_chunk_free(&remainder);
+			state->last_breakable = 0;
+			state->begin_line = false;
+		}
+
+		i += len;
+	}
+}
+
+static void lit(struct render_state *state, char *s, bool wrap)
+{
+	cmark_chunk str = cmark_chunk_literal(s);
+	out(state, str, wrap, LITERAL);
+}
+
+static int
+longest_backtick_sequence(cmark_chunk *code)
+{
+	int longest = 0;
+	int current = 0;
+	int i = 0;
+	while (i <= code->len) {
+		if (code->data[i] == '`') {
+			current++;
+		} else {
+			if (current > longest) {
+				longest = current;
+			}
+			current = 0;
+		}
+		i++;
+	}
+	return longest;
+}
+
+static int
+shortest_unused_backtick_sequence(cmark_chunk *code)
+{
+	int32_t used = 1;
+	int current = 0;
+	int i = 0;
+	while (i <= code->len) {
+		if (code->data[i] == '`') {
+			current++;
+		} else {
+			if (current) {
+				used |= (1 << current);
+			}
+			current = 0;
+		}
+		i++;
+	}
+	// return number of first bit that is 0:
+	i = 0;
+	while (used & 1) {
+		used = used >> 1;
+		i++;
+	}
+	return i;
+}
+
+static bool
+is_autolink(cmark_node *node)
+{
+	const char *title;
+	const char *url;
+
+	if (node->type != CMARK_NODE_LINK) {
+		return false;
+	}
+
+	url = cmark_node_get_url(node);
+	if (url == NULL ||
+	    _scan_scheme((unsigned char *)url) == 0) {
+		return false;
+	}
+
+	title = cmark_node_get_title(node);
+	// if it has a title, we can't treat it as an autolink:
+	if (title != NULL && strlen(title) > 0) {
+		return false;
+	}
+	cmark_consolidate_text_nodes(node);
+	return (strncmp(url,
+			(char*)node->as.literal.data,
+			node->as.literal.len) == 0);
+}
+
+// if node is a block node, returns node.
+// otherwise returns first block-level node that is an ancestor of node.
+static cmark_node*
+get_containing_block(cmark_node *node)
+{
+	while (node &&
+	       (node->type < CMARK_NODE_FIRST_BLOCK ||
+		node->type > CMARK_NODE_LAST_BLOCK)) {
+		node = node->parent;
+	}
+	return node;
+}
+
+static int
+S_render_node(cmark_node *node, cmark_event_type ev_type,
+              struct render_state *state)
+{
+	cmark_node *tmp;
+	cmark_chunk *code;
+	int list_number;
+	cmark_delim_type list_delim;
+	int numticks;
+	int i;
+	bool entering = (ev_type == CMARK_EVENT_ENTER);
+	const char *info;
+	const char *title;
+	char listmarker[64];
+	char *emph_delim;
+	int marker_width;
+
+	// Don't adjust tight list status til we've started the list.
+	// Otherwise we loose the blank line between a paragraph and
+	// a following list.
+	if (!(node->type == CMARK_NODE_ITEM && node->prev == NULL &&
+	      entering)) {
+			tmp = get_containing_block(node);
+			state->in_tight_list_item =
+				(tmp->type == CMARK_NODE_ITEM &&
+				 cmark_node_get_list_tight(tmp->parent)) ||
+				(tmp &&
+				 tmp->parent &&
+				 tmp->parent->type == CMARK_NODE_ITEM &&
+				 cmark_node_get_list_tight(tmp->parent->parent));
+	}
+
+	switch (node->type) {
+	case CMARK_NODE_DOCUMENT:
+		if (!entering) {
+			cmark_strbuf_putc(state->buffer, '\n');
+		}
+		break;
+
+	case CMARK_NODE_BLOCK_QUOTE:
+		if (entering) {
+			lit(state, "> ", false);
+			cmark_strbuf_puts(state->prefix, "> ");
+		} else {
+			cmark_strbuf_truncate(state->prefix,
+					      state->prefix->size - 2);
+			blankline(state);
+		}
+		break;
+
+	case CMARK_NODE_LIST:
+		if (!entering && node->next &&
+		    (node->next->type == CMARK_NODE_CODE_BLOCK ||
+		     node->next->type == CMARK_NODE_LIST)) {
+			// this ensures 2 blank lines after list,
+			// if before code block or list:
+			lit(state, "\n", false);
+			state->need_cr = 0;
+		}
+		break;
+
+	case CMARK_NODE_ITEM:
+		if (cmark_node_get_list_type(node->parent) ==
+		    CMARK_BULLET_LIST) {
+			marker_width = 2;
+		} else {
+			list_number = cmark_node_get_list_start(node->parent);
+			list_delim = cmark_node_get_list_delim(node->parent);
+			tmp = node;
+			while (tmp->prev) {
+				tmp = tmp->prev;
+				list_number += 1;
+			}
+			// we ensure a width of at least 4 so
+			// we get nice transition from single digits
+			// to double
+			snprintf(listmarker, 63, "%d%s%s", list_number,
+				 list_delim == CMARK_PAREN_DELIM ?
+				 ")" : ".",
+				 list_number < 10 ? "  " : " ");
+			marker_width = strlen(listmarker);
+		}
+		if (entering) {
+			if (cmark_node_get_list_type(node->parent) ==
+			    CMARK_BULLET_LIST) {
+				lit(state, "* ", false);
+				cmark_strbuf_puts(state->prefix, "  ");
+			} else {
+				lit(state, listmarker, false);
+				for (i=marker_width; i--;) {
+					cmark_strbuf_putc(state->prefix, ' ');
+				}
+			}
+		} else {
+			cmark_strbuf_truncate(state->prefix,
+					      state->prefix->size -
+					      marker_width);
+			cr(state);
+		}
+		break;
+
+	case CMARK_NODE_HEADER:
+		if (entering) {
+			for (int i = cmark_node_get_header_level(node); i > 0; i--) {
+				lit(state, "#", false);
+			}
+			lit(state, " ", false);
+			state->no_wrap = true;
+		} else {
+			state->no_wrap = false;
+			blankline(state);
+		}
+		break;
+
+	case CMARK_NODE_CODE_BLOCK:
+		blankline(state);
+		info = cmark_node_get_fence_info(node);
+		code = &node->as.code.literal;
+		// use indented form if no info, and code doesn't
+		// begin or end with a blank line, and code isn't
+		// first thing in a list item
+		if ((info == NULL || strlen(info) == 0) &&
+		    (code->len > 2 &&
+		     !isspace(code->data[0]) &&
+		     !(isspace(code->data[code->len - 1]) &&
+		       isspace(code->data[code->len - 2]))) &&
+		    !(node->prev == NULL && node->parent &&
+		      node->parent->type == CMARK_NODE_ITEM)) {
+			lit(state, "    ", false);
+			cmark_strbuf_puts(state->prefix, "    ");
+			out(state, node->as.code.literal, false, LITERAL);
+			cmark_strbuf_truncate(state->prefix,
+					      state->prefix->size - 4);
+		} else {
+			numticks = longest_backtick_sequence(code) + 1;
+			if (numticks < 3) {
+				numticks = 3;
+			}
+			for (i = 0; i < numticks; i++) {
+				lit(state, "`", false);
+			}
+			lit(state, " ", false);
+			out(state, cmark_chunk_literal(info), false, LITERAL);
+			cr(state);
+			out(state, node->as.code.literal, false, LITERAL);
+			cr(state);
+			for (i = 0; i < numticks; i++) {
+				lit(state, "`", false);
+			}
+		}
+		blankline(state);
+		break;
+
+	case CMARK_NODE_HTML:
+		blankline(state);
+		out(state, node->as.literal, false, LITERAL);
+		blankline(state);
+		break;
+
+	case CMARK_NODE_HRULE:
+		blankline(state);
+		lit(state, "-----", false);
+		blankline(state);
+		break;
+
+	case CMARK_NODE_PARAGRAPH:
+		if (!entering) {
+			blankline(state);
+		}
+		break;
+
+	case CMARK_NODE_TEXT:
+		out(state, node->as.literal, true, NORMAL);
+		break;
+
+	case CMARK_NODE_LINEBREAK:
+		if (!(CMARK_OPT_HARDBREAKS & state->options)) {
+			lit(state, "\\", false);
+		}
+		cr(state);
+		break;
+
+	case CMARK_NODE_SOFTBREAK:
+		if (state->width == 0) {
+			cr(state);
+		} else {
+			lit(state, " ", true);
+		}
+		break;
+
+	case CMARK_NODE_CODE:
+		code = &node->as.literal;
+		numticks = shortest_unused_backtick_sequence(code);
+		for (i = 0; i < numticks; i++) {
+			lit(state, "`", false);
+		}
+		if (code->len == 0 || code->data[0] == '`') {
+			lit(state, " ", false);
+		}
+		out(state, node->as.literal, true, LITERAL);
+		if (code->len == 0 || code->data[code->len - 1] == '`') {
+			lit(state, " ", false);
+		}
+		for (i = 0; i < numticks; i++) {
+			lit(state, "`", false);
+		}
+		break;
+
+	case CMARK_NODE_INLINE_HTML:
+		out(state, node->as.literal, false, LITERAL);
+		break;
+
+	case CMARK_NODE_STRONG:
+		if (entering) {
+			lit(state, "**", false);
+		} else {
+			lit(state, "**", false);
+		}
+		break;
+
+	case CMARK_NODE_EMPH:
+		// If we have EMPH(EMPH(x)), we need to use *_x_*
+		// because **x** is STRONG(x):
+		if (node->parent && node->parent->type == CMARK_NODE_EMPH &&
+		    node->next == NULL && node->prev == NULL) {
+			emph_delim = "_";
+		} else {
+			emph_delim = "*";
+		}
+		if (entering) {
+			lit(state, emph_delim, false);
+		} else {
+			lit(state, emph_delim, false);
+		}
+		break;
+
+	case CMARK_NODE_LINK:
+		if (is_autolink(node)) {
+			if (entering) {
+				lit(state, "<", false);
+				if (strncmp(cmark_node_get_url(node),
+					    "mailto:", 7) == 0) {
+					lit(state,
+					    (char *)cmark_node_get_url(node) + 7,
+					    false);
+				} else {
+					lit(state,
+					    (char *)cmark_node_get_url(node),
+					    false);
+				}
+				lit(state, ">", false);
+				// return signal to skip contents of node...
+				return 0;
+			}
+		} else {
+			if (entering) {
+				lit(state, "[", false);
+			} else {
+				lit(state, "](", false);
+				out(state,
+				    cmark_chunk_literal(cmark_node_get_url(node)),
+				    false, URL);
+				title = cmark_node_get_title(node);
+				if (title && strlen(title) > 0) {
+					lit(state, " \"", true);
+					out(state, cmark_chunk_literal(title),
+					    false, TITLE);
+					lit(state, "\"", false);
+				}
+				lit(state, ")", false);
+			}
+		}
+		break;
+
+	case CMARK_NODE_IMAGE:
+		if (entering) {
+			lit(state, "![", false);
+		} else {
+			lit(state, "](", false);
+			out(state, cmark_chunk_literal(cmark_node_get_url(node)), false, URL);
+			title = cmark_node_get_title(node);
+			if (title && strlen(title) > 0) {
+				lit(state, " \"", true);
+				out(state, cmark_chunk_literal(title), false, TITLE);
+				lit(state, "\"", false);
+			}
+			lit(state, ")", false);
+		}
+		break;
+
+	default:
+		assert(false);
+		break;
+	}
+
+	return 1;
+}
+
+char *cmark_render_commonmark(cmark_node *root, int options, int width)
+{
+	char *result;
+	cmark_strbuf commonmark = GH_BUF_INIT;
+	cmark_strbuf prefix = GH_BUF_INIT;
+	if (CMARK_OPT_HARDBREAKS & options) {
+		width = 0;
+	}
+	struct render_state state =
+		{ options, &commonmark, &prefix, 0, width,
+		  0, 0, true, false, false};
+	cmark_node *cur;
+	cmark_event_type ev_type;
+	cmark_iter *iter = cmark_iter_new(root);
+
+	while ((ev_type = cmark_iter_next(iter)) != CMARK_EVENT_DONE) {
+		cur = cmark_iter_get_node(iter);
+		if (!S_render_node(cur, ev_type, &state)) {
+			// a false value causes us to skip processing
+			// the node's contents.  this is used for
+			// autolinks.
+			cmark_iter_reset(iter, cur, CMARK_EVENT_EXIT);
+		}
+	}
+	result = (char *)cmark_strbuf_detach(&commonmark);
+
+	cmark_strbuf_free(&prefix);
+	cmark_iter_free(iter);
+	return result;
+}
diff --git a/cbits/config.h b/cbits/config.h
--- a/cbits/config.h
+++ b/cbits/config.h
@@ -6,7 +6,7 @@
   typedef char bool;
 #endif
 
-/* #undef HAVE___BUILTIN_EXPECT */
+#define HAVE___BUILTIN_EXPECT
 
 #define HAVE___ATTRIBUTE__
 
diff --git a/cbits/scanners.c b/cbits/scanners.c
--- a/cbits/scanners.c
+++ b/cbits/scanners.c
@@ -18,12373 +18,15272 @@
 
 
 
-// Try to match URI autolink after first <, returning number of chars matched.
-int _scan_autolink_uri(const unsigned char *p)
-{
-  const unsigned char *marker = NULL;
-  const unsigned char *start = p;
-
-{
-	unsigned char yych;
-	static const unsigned char yybm[] = {
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0, 128, 128, 128, 128, 128, 128, 128, 
-		128, 128, 128, 128, 128, 128, 128, 128, 
-		128, 128, 128, 128, 128, 128, 128, 128, 
-		128, 128, 128, 128,   0, 128,   0, 128, 
-		128, 128, 128, 128, 128, 128, 128, 128, 
-		128, 128, 128, 128, 128, 128, 128, 128, 
-		128, 128, 128, 128, 128, 128, 128, 128, 
-		128, 128, 128, 128, 128, 128, 128, 128, 
-		128, 128, 128, 128, 128, 128, 128, 128, 
-		128, 128, 128, 128, 128, 128, 128, 128, 
-		128, 128, 128, 128, 128, 128, 128, 128, 
-		128, 128, 128, 128, 128, 128, 128, 128, 
-		128, 128, 128, 128, 128, 128, 128, 128, 
-		128, 128, 128, 128, 128, 128, 128, 128, 
-		128, 128, 128, 128, 128, 128, 128, 128, 
-		128, 128, 128, 128, 128, 128, 128, 128, 
-		128, 128, 128, 128, 128, 128, 128, 128, 
-		128, 128, 128, 128, 128, 128, 128, 128, 
-		128, 128, 128, 128, 128, 128, 128, 128, 
-		128, 128, 128, 128, 128, 128, 128, 128, 
-		128, 128, 128, 128, 128, 128, 128, 128, 
-		128, 128, 128, 128, 128, 128, 128, 128, 
-		128, 128, 128, 128, 128, 128, 128, 128, 
-		128, 128, 128, 128, 128, 128, 128, 128, 
-		128, 128, 128, 128, 128, 128, 128, 128, 
-		128, 128, 128, 128, 128, 128, 128, 128, 
-		128, 128, 128, 128, 128, 128, 128, 128, 
-		128, 128, 128, 128, 128, 128, 128, 128, 
-	};
-
-	yych = *p;
-	switch (yych) {
-	case '\n':	goto yy2;
-	case 'A':
-	case 'a':	goto yy6;
-	case 'B':
-	case 'b':	goto yy24;
-	case 'C':
-	case 'c':	goto yy3;
-	case 'D':
-	case 'd':	goto yy4;
-	case 'E':
-	case 'e':	goto yy25;
-	case 'F':
-	case 'f':	goto yy7;
-	case 'G':
-	case 'g':	goto yy8;
-	case 'H':
-	case 'h':	goto yy9;
-	case 'I':
-	case 'i':	goto yy10;
-	case 'J':
-	case 'j':	goto yy5;
-	case 'K':
-	case 'k':	goto yy26;
-	case 'L':
-	case 'l':	goto yy11;
-	case 'M':
-	case 'm':	goto yy12;
-	case 'N':
-	case 'n':	goto yy13;
-	case 'O':
-	case 'o':	goto yy14;
-	case 'P':
-	case 'p':	goto yy15;
-	case 'Q':
-	case 'q':	goto yy27;
-	case 'R':
-	case 'r':	goto yy16;
-	case 'S':
-	case 's':	goto yy17;
-	case 'T':
-	case 't':	goto yy18;
-	case 'U':
-	case 'u':	goto yy19;
-	case 'V':
-	case 'v':	goto yy20;
-	case 'W':
-	case 'w':	goto yy21;
-	case 'X':
-	case 'x':	goto yy22;
-	case 'Y':
-	case 'y':	goto yy28;
-	case 'Z':
-	case 'z':	goto yy23;
-	default:	goto yy29;
-	}
-yy2:
-	{ return 0; }
-yy3:
-	yych = *(marker = ++p);
-	switch (yych) {
-	case 'A':
-	case 'a':	goto yy442;
-	case 'H':
-	case 'h':	goto yy441;
-	case 'I':
-	case 'i':	goto yy444;
-	case 'O':
-	case 'o':	goto yy440;
-	case 'R':
-	case 'r':	goto yy443;
-	case 'V':
-	case 'v':	goto yy439;
-	default:	goto yy2;
-	}
-yy4:
-	yych = *(marker = ++p);
-	switch (yych) {
-	case 'A':
-	case 'a':	goto yy415;
-	case 'I':
-	case 'i':	goto yy414;
-	case 'L':
-	case 'l':	goto yy412;
-	case 'N':
-	case 'n':	goto yy413;
-	case 'O':
-	case 'o':	goto yy416;
-	case 'T':
-	case 't':	goto yy411;
-	case 'V':
-	case 'v':	goto yy410;
-	default:	goto yy2;
-	}
-yy5:
-	yych = *(marker = ++p);
-	if (yych <= 'M') {
-		if (yych == 'A') goto yy402;
-		if (yych <= 'L') goto yy2;
-		goto yy401;
-	} else {
-		if (yych <= 'a') {
-			if (yych <= '`') goto yy2;
-			goto yy402;
-		} else {
-			if (yych == 'm') goto yy401;
-			goto yy2;
-		}
-	}
-yy6:
-	yych = *(marker = ++p);
-	switch (yych) {
-	case 'A':
-	case 'a':	goto yy383;
-	case 'B':
-	case 'b':	goto yy382;
-	case 'C':
-	case 'c':	goto yy381;
-	case 'D':
-	case 'd':	goto yy380;
-	case 'F':
-	case 'f':	goto yy379;
-	case 'I':
-	case 'i':	goto yy378;
-	case 'P':
-	case 'p':	goto yy377;
-	case 'T':
-	case 't':	goto yy376;
-	case 'W':
-	case 'w':	goto yy34;
-	default:	goto yy2;
-	}
-yy7:
-	yych = *(marker = ++p);
-	if (yych <= 'T') {
-		if (yych <= 'E') {
-			if (yych == 'A') goto yy363;
-			if (yych <= 'D') goto yy2;
-			goto yy362;
-		} else {
-			if (yych == 'I') goto yy361;
-			if (yych <= 'S') goto yy2;
-			goto yy364;
-		}
-	} else {
-		if (yych <= 'e') {
-			if (yych == 'a') goto yy363;
-			if (yych <= 'd') goto yy2;
-			goto yy362;
-		} else {
-			if (yych <= 'i') {
-				if (yych <= 'h') goto yy2;
-				goto yy361;
-			} else {
-				if (yych == 't') goto yy364;
-				goto yy2;
-			}
-		}
-	}
-yy8:
-	yych = *(marker = ++p);
-	switch (yych) {
-	case 'E':
-	case 'e':	goto yy346;
-	case 'G':
-	case 'g':	goto yy34;
-	case 'I':
-	case 'i':	goto yy344;
-	case 'O':
-	case 'o':	goto yy345;
-	case 'T':
-	case 't':	goto yy343;
-	default:	goto yy2;
-	}
-yy9:
-	yych = *(marker = ++p);
-	if (yych <= 'S') {
-		if (yych <= '3') {
-			if (yych <= '2') goto yy2;
-			goto yy339;
-		} else {
-			if (yych == 'C') goto yy337;
-			goto yy2;
-		}
-	} else {
-		if (yych <= 'c') {
-			if (yych <= 'T') goto yy338;
-			if (yych <= 'b') goto yy2;
-			goto yy337;
-		} else {
-			if (yych == 't') goto yy338;
-			goto yy2;
-		}
-	}
-yy10:
-	yych = *(marker = ++p);
-	switch (yych) {
-	case 'A':
-	case 'a':	goto yy319;
-	case 'C':
-	case 'c':	goto yy316;
-	case 'M':
-	case 'm':	goto yy318;
-	case 'N':
-	case 'n':	goto yy317;
-	case 'P':
-	case 'p':	goto yy315;
-	case 'R':
-	case 'r':	goto yy314;
-	case 'T':
-	case 't':	goto yy313;
-	default:	goto yy2;
-	}
-yy11:
-	yych = *(marker = ++p);
-	if (yych <= 'D') {
-		if (yych == 'A') goto yy307;
-		if (yych <= 'C') goto yy2;
-		goto yy306;
-	} else {
-		if (yych <= 'a') {
-			if (yych <= '`') goto yy2;
-			goto yy307;
-		} else {
-			if (yych == 'd') goto yy306;
-			goto yy2;
-		}
-	}
-yy12:
-	yych = *(marker = ++p);
-	switch (yych) {
-	case 'A':
-	case 'a':	goto yy273;
-	case 'E':
-	case 'e':	goto yy272;
-	case 'I':
-	case 'i':	goto yy275;
-	case 'M':
-	case 'm':	goto yy271;
-	case 'S':
-	case 's':	goto yy270;
-	case 'T':
-	case 't':	goto yy274;
-	case 'U':
-	case 'u':	goto yy269;
-	case 'V':
-	case 'v':	goto yy268;
-	default:	goto yy2;
-	}
-yy13:
-	yych = *(marker = ++p);
-	switch (yych) {
-	case 'E':
-	case 'e':	goto yy263;
-	case 'F':
-	case 'f':	goto yy262;
-	case 'I':
-	case 'i':	goto yy261;
-	case 'N':
-	case 'n':	goto yy260;
-	case 'O':
-	case 'o':	goto yy259;
-	default:	goto yy2;
-	}
-yy14:
-	yych = *(marker = ++p);
-	if (yych <= 'P') {
-		if (yych == 'I') goto yy245;
-		if (yych <= 'O') goto yy2;
-		goto yy246;
-	} else {
-		if (yych <= 'i') {
-			if (yych <= 'h') goto yy2;
-			goto yy245;
-		} else {
-			if (yych == 'p') goto yy246;
-			goto yy2;
-		}
-	}
-yy15:
-	yych = *(marker = ++p);
-	if (yych <= 'S') {
-		if (yych <= 'L') {
-			if (yych == 'A') goto yy227;
-			if (yych <= 'K') goto yy2;
-			goto yy226;
-		} else {
-			if (yych <= 'O') {
-				if (yych <= 'N') goto yy2;
-				goto yy228;
-			} else {
-				if (yych <= 'Q') goto yy2;
-				if (yych <= 'R') goto yy225;
-				goto yy224;
-			}
-		}
-	} else {
-		if (yych <= 'n') {
-			if (yych <= 'a') {
-				if (yych <= '`') goto yy2;
-				goto yy227;
-			} else {
-				if (yych == 'l') goto yy226;
-				goto yy2;
-			}
-		} else {
-			if (yych <= 'q') {
-				if (yych <= 'o') goto yy228;
-				goto yy2;
-			} else {
-				if (yych <= 'r') goto yy225;
-				if (yych <= 's') goto yy224;
-				goto yy2;
-			}
-		}
-	}
-yy16:
-	yych = *(marker = ++p);
-	if (yych <= 'T') {
-		if (yych <= 'L') {
-			if (yych == 'E') goto yy214;
-			goto yy2;
-		} else {
-			if (yych <= 'M') goto yy213;
-			if (yych <= 'R') goto yy2;
-			if (yych <= 'S') goto yy212;
-			goto yy211;
-		}
-	} else {
-		if (yych <= 'm') {
-			if (yych == 'e') goto yy214;
-			if (yych <= 'l') goto yy2;
-			goto yy213;
-		} else {
-			if (yych <= 'r') goto yy2;
-			if (yych <= 's') goto yy212;
-			if (yych <= 't') goto yy211;
-			goto yy2;
-		}
-	}
-yy17:
-	yych = *(marker = ++p);
-	switch (yych) {
-	case 'E':
-	case 'e':	goto yy167;
-	case 'F':
-	case 'f':	goto yy166;
-	case 'G':
-	case 'g':	goto yy165;
-	case 'H':
-	case 'h':	goto yy170;
-	case 'I':
-	case 'i':	goto yy169;
-	case 'K':
-	case 'k':	goto yy164;
-	case 'M':
-	case 'm':	goto yy163;
-	case 'N':
-	case 'n':	goto yy168;
-	case 'O':
-	case 'o':	goto yy162;
-	case 'P':
-	case 'p':	goto yy161;
-	case 'S':
-	case 's':	goto yy160;
-	case 'T':
-	case 't':	goto yy159;
-	case 'V':
-	case 'v':	goto yy158;
-	default:	goto yy2;
-	}
-yy18:
-	yych = *(marker = ++p);
-	switch (yych) {
-	case 'A':
-	case 'a':	goto yy134;
-	case 'E':
-	case 'e':	goto yy130;
-	case 'F':
-	case 'f':	goto yy133;
-	case 'H':
-	case 'h':	goto yy129;
-	case 'I':
-	case 'i':	goto yy131;
-	case 'N':
-	case 'n':	goto yy132;
-	case 'V':
-	case 'v':	goto yy34;
-	default:	goto yy2;
-	}
-yy19:
-	yych = *(marker = ++p);
-	if (yych <= 'T') {
-		if (yych <= 'N') {
-			if (yych == 'D') goto yy121;
-			if (yych <= 'M') goto yy2;
-			goto yy120;
-		} else {
-			if (yych == 'R') goto yy122;
-			if (yych <= 'S') goto yy2;
-			goto yy119;
-		}
-	} else {
-		if (yych <= 'n') {
-			if (yych == 'd') goto yy121;
-			if (yych <= 'm') goto yy2;
-			goto yy120;
-		} else {
-			if (yych <= 'r') {
-				if (yych <= 'q') goto yy2;
-				goto yy122;
-			} else {
-				if (yych == 't') goto yy119;
-				goto yy2;
-			}
-		}
-	}
-yy20:
-	yych = *(marker = ++p);
-	if (yych <= 'I') {
-		if (yych == 'E') goto yy103;
-		if (yych <= 'H') goto yy2;
-		goto yy102;
-	} else {
-		if (yych <= 'e') {
-			if (yych <= 'd') goto yy2;
-			goto yy103;
-		} else {
-			if (yych == 'i') goto yy102;
-			goto yy2;
-		}
-	}
-yy21:
-	yych = *(marker = ++p);
-	if (yych <= 'Y') {
-		if (yych <= 'R') {
-			if (yych == 'E') goto yy92;
-			goto yy2;
-		} else {
-			if (yych <= 'S') goto yy93;
-			if (yych <= 'T') goto yy91;
-			if (yych <= 'X') goto yy2;
-			goto yy90;
-		}
-	} else {
-		if (yych <= 's') {
-			if (yych == 'e') goto yy92;
-			if (yych <= 'r') goto yy2;
-			goto yy93;
-		} else {
-			if (yych <= 't') goto yy91;
-			if (yych == 'y') goto yy90;
-			goto yy2;
-		}
-	}
-yy22:
-	yych = *(marker = ++p);
-	if (yych <= 'R') {
-		if (yych <= 'F') {
-			if (yych == 'C') goto yy69;
-			if (yych <= 'E') goto yy2;
-			goto yy67;
-		} else {
-			if (yych == 'M') goto yy68;
-			if (yych <= 'Q') goto yy2;
-			goto yy66;
-		}
-	} else {
-		if (yych <= 'f') {
-			if (yych == 'c') goto yy69;
-			if (yych <= 'e') goto yy2;
-			goto yy67;
-		} else {
-			if (yych <= 'm') {
-				if (yych <= 'l') goto yy2;
-				goto yy68;
-			} else {
-				if (yych == 'r') goto yy66;
-				goto yy2;
-			}
-		}
-	}
-yy23:
-	yych = *(marker = ++p);
-	if (yych == '3') goto yy61;
-	goto yy2;
-yy24:
-	yych = *(marker = ++p);
-	if (yych <= 'O') {
-		if (yych <= 'H') {
-			if (yych == 'E') goto yy51;
-			goto yy2;
-		} else {
-			if (yych <= 'I') goto yy50;
-			if (yych <= 'N') goto yy2;
-			goto yy49;
-		}
-	} else {
-		if (yych <= 'h') {
-			if (yych == 'e') goto yy51;
-			goto yy2;
-		} else {
-			if (yych <= 'i') goto yy50;
-			if (yych == 'o') goto yy49;
-			goto yy2;
-		}
-	}
-yy25:
-	yych = *(marker = ++p);
-	if (yych == 'D') goto yy47;
-	if (yych == 'd') goto yy47;
-	goto yy2;
-yy26:
-	yych = *(marker = ++p);
-	if (yych == 'E') goto yy42;
-	if (yych == 'e') goto yy42;
-	goto yy2;
-yy27:
-	yych = *(marker = ++p);
-	if (yych == 'U') goto yy39;
-	if (yych == 'u') goto yy39;
-	goto yy2;
-yy28:
-	yych = *(marker = ++p);
-	if (yych == 'M') goto yy30;
-	if (yych == 'm') goto yy30;
-	goto yy2;
-yy29:
-	yych = *++p;
-	goto yy2;
-yy30:
-	yych = *++p;
-	if (yych == 'S') goto yy32;
-	if (yych == 's') goto yy32;
-yy31:
-	p = marker;
-	goto yy2;
-yy32:
-	yych = *++p;
-	if (yych == 'G') goto yy33;
-	if (yych != 'g') goto yy31;
-yy33:
-	yych = *++p;
-	if (yych == 'R') goto yy34;
-	if (yych != 'r') goto yy31;
-yy34:
-	yych = *++p;
-	if (yych != ':') goto yy31;
-yy35:
-	++p;
-	yych = *p;
-	if (yybm[0+yych] & 128) {
-		goto yy35;
-	}
-	if (yych <= '=') goto yy31;
-	++p;
-	{ return (p - start); }
-yy39:
-	yych = *++p;
-	if (yych == 'E') goto yy40;
-	if (yych != 'e') goto yy31;
-yy40:
-	yych = *++p;
-	if (yych == 'R') goto yy41;
-	if (yych != 'r') goto yy31;
-yy41:
-	yych = *++p;
-	if (yych == 'Y') goto yy34;
-	if (yych == 'y') goto yy34;
-	goto yy31;
-yy42:
-	yych = *++p;
-	if (yych == 'Y') goto yy43;
-	if (yych != 'y') goto yy31;
-yy43:
-	yych = *++p;
-	if (yych == 'P') goto yy44;
-	if (yych != 'p') goto yy31;
-yy44:
-	yych = *++p;
-	if (yych == 'A') goto yy45;
-	if (yych != 'a') goto yy31;
-yy45:
-	yych = *++p;
-	if (yych == 'R') goto yy46;
-	if (yych != 'r') goto yy31;
-yy46:
-	yych = *++p;
-	if (yych == 'C') goto yy34;
-	if (yych == 'c') goto yy34;
-	goto yy31;
-yy47:
-	yych = *++p;
-	if (yych != '2') goto yy31;
-	yych = *++p;
-	if (yych == 'K') goto yy34;
-	if (yych == 'k') goto yy34;
-	goto yy31;
-yy49:
-	yych = *++p;
-	if (yych == 'L') goto yy60;
-	if (yych == 'l') goto yy60;
-	goto yy31;
-yy50:
-	yych = *++p;
-	if (yych == 'T') goto yy56;
-	if (yych == 't') goto yy56;
-	goto yy31;
-yy51:
-	yych = *++p;
-	if (yych == 'S') goto yy52;
-	if (yych != 's') goto yy31;
-yy52:
-	yych = *++p;
-	if (yych == 'H') goto yy53;
-	if (yych != 'h') goto yy31;
-yy53:
-	yych = *++p;
-	if (yych == 'A') goto yy54;
-	if (yych != 'a') goto yy31;
-yy54:
-	yych = *++p;
-	if (yych == 'R') goto yy55;
-	if (yych != 'r') goto yy31;
-yy55:
-	yych = *++p;
-	if (yych == 'E') goto yy34;
-	if (yych == 'e') goto yy34;
-	goto yy31;
-yy56:
-	yych = *++p;
-	if (yych == 'C') goto yy57;
-	if (yych != 'c') goto yy31;
-yy57:
-	yych = *++p;
-	if (yych == 'O') goto yy58;
-	if (yych != 'o') goto yy31;
-yy58:
-	yych = *++p;
-	if (yych == 'I') goto yy59;
-	if (yych != 'i') goto yy31;
-yy59:
-	yych = *++p;
-	if (yych == 'N') goto yy34;
-	if (yych == 'n') goto yy34;
-	goto yy31;
-yy60:
-	yych = *++p;
-	if (yych == 'O') goto yy34;
-	if (yych == 'o') goto yy34;
-	goto yy31;
-yy61:
-	yych = *++p;
-	if (yych != '9') goto yy31;
-	yych = *++p;
-	if (yych != '.') goto yy31;
-	yych = *++p;
-	if (yych != '5') goto yy31;
-	yych = *++p;
-	if (yych != '0') goto yy31;
-	yych = *++p;
-	if (yych <= 'Q') goto yy31;
-	if (yych <= 'S') goto yy34;
-	if (yych <= 'q') goto yy31;
-	if (yych <= 's') goto yy34;
-	goto yy31;
-yy66:
-	yych = *++p;
-	if (yych == 'I') goto yy34;
-	if (yych == 'i') goto yy34;
-	goto yy31;
-yy67:
-	yych = *++p;
-	if (yych == 'I') goto yy88;
-	if (yych == 'i') goto yy88;
-	goto yy31;
-yy68:
-	yych = *++p;
-	if (yych <= 'P') {
-		if (yych == 'L') goto yy78;
-		if (yych <= 'O') goto yy31;
-		goto yy79;
-	} else {
-		if (yych <= 'l') {
-			if (yych <= 'k') goto yy31;
-			goto yy78;
-		} else {
-			if (yych == 'p') goto yy79;
-			goto yy31;
-		}
-	}
-yy69:
-	yych = *++p;
-	if (yych == 'O') goto yy70;
-	if (yych != 'o') goto yy31;
-yy70:
-	yych = *++p;
-	if (yych == 'N') goto yy71;
-	if (yych != 'n') goto yy31;
-yy71:
-	yych = *++p;
-	if (yych == '-') goto yy72;
-	if (yych == ':') goto yy35;
-	goto yy31;
-yy72:
-	yych = *++p;
-	if (yych == 'U') goto yy73;
-	if (yych != 'u') goto yy31;
-yy73:
-	yych = *++p;
-	if (yych == 'S') goto yy74;
-	if (yych != 's') goto yy31;
-yy74:
-	yych = *++p;
-	if (yych == 'E') goto yy75;
-	if (yych != 'e') goto yy31;
-yy75:
-	yych = *++p;
-	if (yych == 'R') goto yy76;
-	if (yych != 'r') goto yy31;
-yy76:
-	yych = *++p;
-	if (yych == 'I') goto yy77;
-	if (yych != 'i') goto yy31;
-yy77:
-	yych = *++p;
-	if (yych == 'D') goto yy34;
-	if (yych == 'd') goto yy34;
-	goto yy31;
-yy78:
-	yych = *++p;
-	if (yych == 'R') goto yy80;
-	if (yych == 'r') goto yy80;
-	goto yy31;
-yy79:
-	yych = *++p;
-	if (yych == 'P') goto yy34;
-	if (yych == 'p') goto yy34;
-	goto yy31;
-yy80:
-	yych = *++p;
-	if (yych == 'P') goto yy81;
-	if (yych != 'p') goto yy31;
-yy81:
-	yych = *++p;
-	if (yych == 'C') goto yy82;
-	if (yych != 'c') goto yy31;
-yy82:
-	yych = *++p;
-	if (yych != '.') goto yy31;
-	yych = *++p;
-	if (yych == 'B') goto yy84;
-	if (yych != 'b') goto yy31;
-yy84:
-	yych = *++p;
-	if (yych == 'E') goto yy85;
-	if (yych != 'e') goto yy31;
-yy85:
-	yych = *++p;
-	if (yych == 'E') goto yy86;
-	if (yych != 'e') goto yy31;
-yy86:
-	yych = *++p;
-	if (yych == 'P') goto yy87;
-	if (yych != 'p') goto yy31;
-yy87:
-	yych = *++p;
-	if (yych <= 'R') {
-		if (yych == ':') goto yy35;
-		goto yy31;
-	} else {
-		if (yych <= 'S') goto yy34;
-		if (yych == 's') goto yy34;
-		goto yy31;
-	}
-yy88:
-	yych = *++p;
-	if (yych == 'R') goto yy89;
-	if (yych != 'r') goto yy31;
-yy89:
-	yych = *++p;
-	if (yych == 'E') goto yy34;
-	if (yych == 'e') goto yy34;
-	goto yy31;
-yy90:
-	yych = *++p;
-	if (yych == 'C') goto yy98;
-	if (yych == 'c') goto yy98;
-	goto yy31;
-yy91:
-	yych = *++p;
-	if (yych == 'A') goto yy97;
-	if (yych == 'a') goto yy97;
-	goto yy31;
-yy92:
-	yych = *++p;
-	if (yych == 'B') goto yy94;
-	if (yych == 'b') goto yy94;
-	goto yy31;
-yy93:
-	yych = *++p;
-	if (yych <= 'R') {
-		if (yych == ':') goto yy35;
-		goto yy31;
-	} else {
-		if (yych <= 'S') goto yy34;
-		if (yych == 's') goto yy34;
-		goto yy31;
-	}
-yy94:
-	yych = *++p;
-	if (yych == 'C') goto yy95;
-	if (yych != 'c') goto yy31;
-yy95:
-	yych = *++p;
-	if (yych == 'A') goto yy96;
-	if (yych != 'a') goto yy31;
-yy96:
-	yych = *++p;
-	if (yych == 'L') goto yy34;
-	if (yych == 'l') goto yy34;
-	goto yy31;
-yy97:
-	yych = *++p;
-	if (yych == 'I') goto yy34;
-	if (yych == 'i') goto yy34;
-	goto yy31;
-yy98:
-	yych = *++p;
-	if (yych == 'I') goto yy99;
-	if (yych != 'i') goto yy31;
-yy99:
-	yych = *++p;
-	if (yych == 'W') goto yy100;
-	if (yych != 'w') goto yy31;
-yy100:
-	yych = *++p;
-	if (yych == 'Y') goto yy101;
-	if (yych != 'y') goto yy31;
-yy101:
-	yych = *++p;
-	if (yych == 'G') goto yy34;
-	if (yych == 'g') goto yy34;
-	goto yy31;
-yy102:
-	yych = *++p;
-	if (yych == 'E') goto yy111;
-	if (yych == 'e') goto yy111;
-	goto yy31;
-yy103:
-	yych = *++p;
-	if (yych <= 'N') {
-		if (yych <= 'L') goto yy31;
-		if (yych >= 'N') goto yy105;
-	} else {
-		if (yych <= 'l') goto yy31;
-		if (yych <= 'm') goto yy104;
-		if (yych <= 'n') goto yy105;
-		goto yy31;
-	}
-yy104:
-	yych = *++p;
-	if (yych == 'M') goto yy110;
-	if (yych == 'm') goto yy110;
-	goto yy31;
-yy105:
-	yych = *++p;
-	if (yych == 'T') goto yy106;
-	if (yych != 't') goto yy31;
-yy106:
-	yych = *++p;
-	if (yych == 'R') goto yy107;
-	if (yych != 'r') goto yy31;
-yy107:
-	yych = *++p;
-	if (yych == 'I') goto yy108;
-	if (yych != 'i') goto yy31;
-yy108:
-	yych = *++p;
-	if (yych == 'L') goto yy109;
-	if (yych != 'l') goto yy31;
-yy109:
-	yych = *++p;
-	if (yych == 'O') goto yy34;
-	if (yych == 'o') goto yy34;
-	goto yy31;
-yy110:
-	yych = *++p;
-	if (yych == 'I') goto yy34;
-	if (yych == 'i') goto yy34;
-	goto yy31;
-yy111:
-	yych = *++p;
-	if (yych == 'W') goto yy112;
-	if (yych != 'w') goto yy31;
-yy112:
-	yych = *++p;
-	if (yych != '-') goto yy31;
-	yych = *++p;
-	if (yych == 'S') goto yy114;
-	if (yych != 's') goto yy31;
-yy114:
-	yych = *++p;
-	if (yych == 'O') goto yy115;
-	if (yych != 'o') goto yy31;
-yy115:
-	yych = *++p;
-	if (yych == 'U') goto yy116;
-	if (yych != 'u') goto yy31;
-yy116:
-	yych = *++p;
-	if (yych == 'R') goto yy117;
-	if (yych != 'r') goto yy31;
-yy117:
-	yych = *++p;
-	if (yych == 'C') goto yy118;
-	if (yych != 'c') goto yy31;
-yy118:
-	yych = *++p;
-	if (yych == 'E') goto yy34;
-	if (yych == 'e') goto yy34;
-	goto yy31;
-yy119:
-	yych = *++p;
-	if (yych == '2') goto yy126;
-	goto yy31;
-yy120:
-	yych = *++p;
-	if (yych == 'R') goto yy123;
-	if (yych == 'r') goto yy123;
-	goto yy31;
-yy121:
-	yych = *++p;
-	if (yych == 'P') goto yy34;
-	if (yych == 'p') goto yy34;
-	goto yy31;
-yy122:
-	yych = *++p;
-	if (yych == 'N') goto yy34;
-	if (yych == 'n') goto yy34;
-	goto yy31;
-yy123:
-	yych = *++p;
-	if (yych == 'E') goto yy124;
-	if (yych != 'e') goto yy31;
-yy124:
-	yych = *++p;
-	if (yych == 'A') goto yy125;
-	if (yych != 'a') goto yy31;
-yy125:
-	yych = *++p;
-	if (yych == 'L') goto yy34;
-	if (yych == 'l') goto yy34;
-	goto yy31;
-yy126:
-	yych = *++p;
-	if (yych != '0') goto yy31;
-	yych = *++p;
-	if (yych != '0') goto yy31;
-	yych = *++p;
-	if (yych == '4') goto yy34;
-	goto yy31;
-yy129:
-	yych = *++p;
-	if (yych == 'I') goto yy148;
-	if (yych == 'i') goto yy148;
-	goto yy31;
-yy130:
-	yych = *++p;
-	if (yych <= 'L') {
-		if (yych == 'A') goto yy140;
-		if (yych <= 'K') goto yy31;
-		goto yy139;
-	} else {
-		if (yych <= 'a') {
-			if (yych <= '`') goto yy31;
-			goto yy140;
-		} else {
-			if (yych == 'l') goto yy139;
-			goto yy31;
-		}
-	}
-yy131:
-	yych = *++p;
-	if (yych == 'P') goto yy34;
-	if (yych == 'p') goto yy34;
-	goto yy31;
-yy132:
-	yych = *++p;
-	if (yych == '3') goto yy136;
-	goto yy31;
-yy133:
-	yych = *++p;
-	if (yych == 'T') goto yy135;
-	if (yych == 't') goto yy135;
-	goto yy31;
-yy134:
-	yych = *++p;
-	if (yych == 'G') goto yy34;
-	if (yych == 'g') goto yy34;
-	goto yy31;
-yy135:
-	yych = *++p;
-	if (yych == 'P') goto yy34;
-	if (yych == 'p') goto yy34;
-	goto yy31;
-yy136:
-	yych = *++p;
-	if (yych != '2') goto yy31;
-	yych = *++p;
-	if (yych != '7') goto yy31;
-	yych = *++p;
-	if (yych == '0') goto yy34;
-	goto yy31;
-yy139:
-	yych = *++p;
-	if (yych <= 'M') {
-		if (yych == ':') goto yy35;
-		goto yy31;
-	} else {
-		if (yych <= 'N') goto yy146;
-		if (yych == 'n') goto yy146;
-		goto yy31;
-	}
-yy140:
-	yych = *++p;
-	if (yych == 'M') goto yy141;
-	if (yych != 'm') goto yy31;
-yy141:
-	yych = *++p;
-	if (yych == 'S') goto yy142;
-	if (yych != 's') goto yy31;
-yy142:
-	yych = *++p;
-	if (yych == 'P') goto yy143;
-	if (yych != 'p') goto yy31;
-yy143:
-	yych = *++p;
-	if (yych == 'E') goto yy144;
-	if (yych != 'e') goto yy31;
-yy144:
-	yych = *++p;
-	if (yych == 'A') goto yy145;
-	if (yych != 'a') goto yy31;
-yy145:
-	yych = *++p;
-	if (yych == 'K') goto yy34;
-	if (yych == 'k') goto yy34;
-	goto yy31;
-yy146:
-	yych = *++p;
-	if (yych == 'E') goto yy147;
-	if (yych != 'e') goto yy31;
-yy147:
-	yych = *++p;
-	if (yych == 'T') goto yy34;
-	if (yych == 't') goto yy34;
-	goto yy31;
-yy148:
-	yych = *++p;
-	if (yych <= 'S') {
-		if (yych == 'N') goto yy149;
-		if (yych <= 'R') goto yy31;
-		goto yy150;
-	} else {
-		if (yych <= 'n') {
-			if (yych <= 'm') goto yy31;
-		} else {
-			if (yych == 's') goto yy150;
-			goto yy31;
-		}
-	}
-yy149:
-	yych = *++p;
-	if (yych == 'G') goto yy157;
-	if (yych == 'g') goto yy157;
-	goto yy31;
-yy150:
-	yych = *++p;
-	if (yych == 'M') goto yy151;
-	if (yych != 'm') goto yy31;
-yy151:
-	yych = *++p;
-	if (yych == 'E') goto yy152;
-	if (yych != 'e') goto yy31;
-yy152:
-	yych = *++p;
-	if (yych == 'S') goto yy153;
-	if (yych != 's') goto yy31;
-yy153:
-	yych = *++p;
-	if (yych == 'S') goto yy154;
-	if (yych != 's') goto yy31;
-yy154:
-	yych = *++p;
-	if (yych == 'A') goto yy155;
-	if (yych != 'a') goto yy31;
-yy155:
-	yych = *++p;
-	if (yych == 'G') goto yy156;
-	if (yych != 'g') goto yy31;
-yy156:
-	yych = *++p;
-	if (yych == 'E') goto yy34;
-	if (yych == 'e') goto yy34;
-	goto yy31;
-yy157:
-	yych = *++p;
-	if (yych == 'S') goto yy34;
-	if (yych == 's') goto yy34;
-	goto yy31;
-yy158:
-	yych = *++p;
-	if (yych == 'N') goto yy34;
-	if (yych == 'n') goto yy34;
-	goto yy31;
-yy159:
-	yych = *++p;
-	if (yych == 'E') goto yy209;
-	if (yych == 'e') goto yy209;
-	goto yy31;
-yy160:
-	yych = *++p;
-	if (yych == 'H') goto yy34;
-	if (yych == 'h') goto yy34;
-	goto yy31;
-yy161:
-	yych = *++p;
-	if (yych == 'O') goto yy205;
-	if (yych == 'o') goto yy205;
-	goto yy31;
-yy162:
-	yych = *++p;
-	if (yych <= 'L') {
-		if (yych == 'A') goto yy195;
-		if (yych <= 'K') goto yy31;
-		goto yy196;
-	} else {
-		if (yych <= 'a') {
-			if (yych <= '`') goto yy31;
-			goto yy195;
-		} else {
-			if (yych == 'l') goto yy196;
-			goto yy31;
-		}
-	}
-yy163:
-	yych = *++p;
-	if (yych <= 'S') {
-		if (yych == 'B') goto yy34;
-		if (yych <= 'R') goto yy31;
-		goto yy34;
-	} else {
-		if (yych <= 'b') {
-			if (yych <= 'a') goto yy31;
-			goto yy34;
-		} else {
-			if (yych == 's') goto yy34;
-			goto yy31;
-		}
-	}
-yy164:
-	yych = *++p;
-	if (yych == 'Y') goto yy193;
-	if (yych == 'y') goto yy193;
-	goto yy31;
-yy165:
-	yych = *++p;
-	if (yych == 'N') goto yy34;
-	if (yych == 'n') goto yy34;
-	goto yy31;
-yy166:
-	yych = *++p;
-	if (yych == 'T') goto yy192;
-	if (yych == 't') goto yy192;
-	goto yy31;
-yy167:
-	yych = *++p;
-	if (yych <= 'S') {
-		if (yych <= 'C') {
-			if (yych <= 'B') goto yy31;
-			goto yy179;
-		} else {
-			if (yych <= 'Q') goto yy31;
-			if (yych <= 'R') goto yy177;
-			goto yy178;
-		}
-	} else {
-		if (yych <= 'q') {
-			if (yych == 'c') goto yy179;
-			goto yy31;
-		} else {
-			if (yych <= 'r') goto yy177;
-			if (yych <= 's') goto yy178;
-			goto yy31;
-		}
-	}
-yy168:
-	yych = *++p;
-	if (yych == 'M') goto yy176;
-	if (yych == 'm') goto yy176;
-	goto yy31;
-yy169:
-	yych = *++p;
-	if (yych <= 'P') {
-		if (yych == 'E') goto yy173;
-		if (yych <= 'O') goto yy31;
-		goto yy174;
-	} else {
-		if (yych <= 'e') {
-			if (yych <= 'd') goto yy31;
-			goto yy173;
-		} else {
-			if (yych == 'p') goto yy174;
-			goto yy31;
-		}
-	}
-yy170:
-	yych = *++p;
-	if (yych == 'T') goto yy171;
-	if (yych != 't') goto yy31;
-yy171:
-	yych = *++p;
-	if (yych == 'T') goto yy172;
-	if (yych != 't') goto yy31;
-yy172:
-	yych = *++p;
-	if (yych == 'P') goto yy34;
-	if (yych == 'p') goto yy34;
-	goto yy31;
-yy173:
-	yych = *++p;
-	if (yych == 'V') goto yy175;
-	if (yych == 'v') goto yy175;
-	goto yy31;
-yy174:
-	yych = *++p;
-	if (yych <= 'R') {
-		if (yych == ':') goto yy35;
-		goto yy31;
-	} else {
-		if (yych <= 'S') goto yy34;
-		if (yych == 's') goto yy34;
-		goto yy31;
-	}
-yy175:
-	yych = *++p;
-	if (yych == 'E') goto yy34;
-	if (yych == 'e') goto yy34;
-	goto yy31;
-yy176:
-	yych = *++p;
-	if (yych == 'P') goto yy34;
-	if (yych == 'p') goto yy34;
-	goto yy31;
-yy177:
-	yych = *++p;
-	if (yych == 'V') goto yy189;
-	if (yych == 'v') goto yy189;
-	goto yy31;
-yy178:
-	yych = *++p;
-	if (yych == 'S') goto yy186;
-	if (yych == 's') goto yy186;
-	goto yy31;
-yy179:
-	yych = *++p;
-	if (yych == 'O') goto yy180;
-	if (yych != 'o') goto yy31;
-yy180:
-	yych = *++p;
-	if (yych == 'N') goto yy181;
-	if (yych != 'n') goto yy31;
-yy181:
-	yych = *++p;
-	if (yych == 'D') goto yy182;
-	if (yych != 'd') goto yy31;
-yy182:
-	yych = *++p;
-	if (yych == 'L') goto yy183;
-	if (yych != 'l') goto yy31;
-yy183:
-	yych = *++p;
-	if (yych == 'I') goto yy184;
-	if (yych != 'i') goto yy31;
-yy184:
-	yych = *++p;
-	if (yych == 'F') goto yy185;
-	if (yych != 'f') goto yy31;
-yy185:
-	yych = *++p;
-	if (yych == 'E') goto yy34;
-	if (yych == 'e') goto yy34;
-	goto yy31;
-yy186:
-	yych = *++p;
-	if (yych == 'I') goto yy187;
-	if (yych != 'i') goto yy31;
-yy187:
-	yych = *++p;
-	if (yych == 'O') goto yy188;
-	if (yych != 'o') goto yy31;
-yy188:
-	yych = *++p;
-	if (yych == 'N') goto yy34;
-	if (yych == 'n') goto yy34;
-	goto yy31;
-yy189:
-	yych = *++p;
-	if (yych == 'I') goto yy190;
-	if (yych != 'i') goto yy31;
-yy190:
-	yych = *++p;
-	if (yych == 'C') goto yy191;
-	if (yych != 'c') goto yy31;
-yy191:
-	yych = *++p;
-	if (yych == 'E') goto yy34;
-	if (yych == 'e') goto yy34;
-	goto yy31;
-yy192:
-	yych = *++p;
-	if (yych == 'P') goto yy34;
-	if (yych == 'p') goto yy34;
-	goto yy31;
-yy193:
-	yych = *++p;
-	if (yych == 'P') goto yy194;
-	if (yych != 'p') goto yy31;
-yy194:
-	yych = *++p;
-	if (yych == 'E') goto yy34;
-	if (yych == 'e') goto yy34;
-	goto yy31;
-yy195:
-	yych = *++p;
-	if (yych == 'P') goto yy199;
-	if (yych == 'p') goto yy199;
-	goto yy31;
-yy196:
-	yych = *++p;
-	if (yych == 'D') goto yy197;
-	if (yych != 'd') goto yy31;
-yy197:
-	yych = *++p;
-	if (yych == 'A') goto yy198;
-	if (yych != 'a') goto yy31;
-yy198:
-	yych = *++p;
-	if (yych == 'T') goto yy34;
-	if (yych == 't') goto yy34;
-	goto yy31;
-yy199:
-	yych = *++p;
-	if (yych != '.') goto yy31;
-	yych = *++p;
-	if (yych == 'B') goto yy201;
-	if (yych != 'b') goto yy31;
-yy201:
-	yych = *++p;
-	if (yych == 'E') goto yy202;
-	if (yych != 'e') goto yy31;
-yy202:
-	yych = *++p;
-	if (yych == 'E') goto yy203;
-	if (yych != 'e') goto yy31;
-yy203:
-	yych = *++p;
-	if (yych == 'P') goto yy204;
-	if (yych != 'p') goto yy31;
-yy204:
-	yych = *++p;
-	if (yych <= 'R') {
-		if (yych == ':') goto yy35;
-		goto yy31;
-	} else {
-		if (yych <= 'S') goto yy34;
-		if (yych == 's') goto yy34;
-		goto yy31;
-	}
-yy205:
-	yych = *++p;
-	if (yych == 'T') goto yy206;
-	if (yych != 't') goto yy31;
-yy206:
-	yych = *++p;
-	if (yych == 'I') goto yy207;
-	if (yych != 'i') goto yy31;
-yy207:
-	yych = *++p;
-	if (yych == 'F') goto yy208;
-	if (yych != 'f') goto yy31;
-yy208:
-	yych = *++p;
-	if (yych == 'Y') goto yy34;
-	if (yych == 'y') goto yy34;
-	goto yy31;
-yy209:
-	yych = *++p;
-	if (yych == 'A') goto yy210;
-	if (yych != 'a') goto yy31;
-yy210:
-	yych = *++p;
-	if (yych == 'M') goto yy34;
-	if (yych == 'm') goto yy34;
-	goto yy31;
-yy211:
-	yych = *++p;
-	if (yych <= 'S') {
-		if (yych == 'M') goto yy223;
-		if (yych <= 'R') goto yy31;
-		goto yy222;
-	} else {
-		if (yych <= 'm') {
-			if (yych <= 'l') goto yy31;
-			goto yy223;
-		} else {
-			if (yych == 's') goto yy222;
-			goto yy31;
-		}
-	}
-yy212:
-	yych = *++p;
-	if (yych == 'Y') goto yy220;
-	if (yych == 'y') goto yy220;
-	goto yy31;
-yy213:
-	yych = *++p;
-	if (yych == 'I') goto yy34;
-	if (yych == 'i') goto yy34;
-	goto yy31;
-yy214:
-	yych = *++p;
-	if (yych == 'S') goto yy215;
-	if (yych != 's') goto yy31;
-yy215:
-	yych = *++p;
-	if (yych <= 'N') {
-		if (yych == ':') goto yy35;
-		goto yy31;
-	} else {
-		if (yych <= 'O') goto yy216;
-		if (yych != 'o') goto yy31;
-	}
-yy216:
-	yych = *++p;
-	if (yych == 'U') goto yy217;
-	if (yych != 'u') goto yy31;
-yy217:
-	yych = *++p;
-	if (yych == 'R') goto yy218;
-	if (yych != 'r') goto yy31;
-yy218:
-	yych = *++p;
-	if (yych == 'C') goto yy219;
-	if (yych != 'c') goto yy31;
-yy219:
-	yych = *++p;
-	if (yych == 'E') goto yy34;
-	if (yych == 'e') goto yy34;
-	goto yy31;
-yy220:
-	yych = *++p;
-	if (yych == 'N') goto yy221;
-	if (yych != 'n') goto yy31;
-yy221:
-	yych = *++p;
-	if (yych == 'C') goto yy34;
-	if (yych == 'c') goto yy34;
-	goto yy31;
-yy222:
-	yych = *++p;
-	if (yych == 'P') goto yy34;
-	if (yych == 'p') goto yy34;
-	goto yy31;
-yy223:
-	yych = *++p;
-	if (yych == 'P') goto yy34;
-	if (yych == 'p') goto yy34;
-	goto yy31;
-yy224:
-	yych = *++p;
-	if (yych == 'Y') goto yy244;
-	if (yych == 'y') goto yy244;
-	goto yy31;
-yy225:
-	yych = *++p;
-	if (yych <= 'O') {
-		if (yych == 'E') goto yy241;
-		if (yych <= 'N') goto yy31;
-		goto yy242;
-	} else {
-		if (yych <= 'e') {
-			if (yych <= 'd') goto yy31;
-			goto yy241;
-		} else {
-			if (yych == 'o') goto yy242;
-			goto yy31;
-		}
-	}
-yy226:
-	yych = *++p;
-	if (yych == 'A') goto yy236;
-	if (yych == 'a') goto yy236;
-	goto yy31;
-yy227:
-	yych = *++p;
-	if (yych <= 'P') {
-		if (yych == 'L') goto yy229;
-		if (yych <= 'O') goto yy31;
-		goto yy230;
-	} else {
-		if (yych <= 'l') {
-			if (yych <= 'k') goto yy31;
-			goto yy229;
-		} else {
-			if (yych == 'p') goto yy230;
-			goto yy31;
-		}
-	}
-yy228:
-	yych = *++p;
-	if (yych == 'P') goto yy34;
-	if (yych == 'p') goto yy34;
-	goto yy31;
-yy229:
-	yych = *++p;
-	if (yych == 'M') goto yy34;
-	if (yych == 'm') goto yy34;
-	goto yy31;
-yy230:
-	yych = *++p;
-	if (yych == 'A') goto yy231;
-	if (yych != 'a') goto yy31;
-yy231:
-	yych = *++p;
-	if (yych == 'R') goto yy232;
-	if (yych != 'r') goto yy31;
-yy232:
-	yych = *++p;
-	if (yych == 'A') goto yy233;
-	if (yych != 'a') goto yy31;
-yy233:
-	yych = *++p;
-	if (yych == 'Z') goto yy234;
-	if (yych != 'z') goto yy31;
-yy234:
-	yych = *++p;
-	if (yych == 'Z') goto yy235;
-	if (yych != 'z') goto yy31;
-yy235:
-	yych = *++p;
-	if (yych == 'I') goto yy34;
-	if (yych == 'i') goto yy34;
-	goto yy31;
-yy236:
-	yych = *++p;
-	if (yych == 'T') goto yy237;
-	if (yych != 't') goto yy31;
-yy237:
-	yych = *++p;
-	if (yych == 'F') goto yy238;
-	if (yych != 'f') goto yy31;
-yy238:
-	yych = *++p;
-	if (yych == 'O') goto yy239;
-	if (yych != 'o') goto yy31;
-yy239:
-	yych = *++p;
-	if (yych == 'R') goto yy240;
-	if (yych != 'r') goto yy31;
-yy240:
-	yych = *++p;
-	if (yych == 'M') goto yy34;
-	if (yych == 'm') goto yy34;
-	goto yy31;
-yy241:
-	yych = *++p;
-	if (yych == 'S') goto yy34;
-	if (yych == 's') goto yy34;
-	goto yy31;
-yy242:
-	yych = *++p;
-	if (yych == 'X') goto yy243;
-	if (yych != 'x') goto yy31;
-yy243:
-	yych = *++p;
-	if (yych == 'Y') goto yy34;
-	if (yych == 'y') goto yy34;
-	goto yy31;
-yy244:
-	yych = *++p;
-	if (yych == 'C') goto yy34;
-	if (yych == 'c') goto yy34;
-	goto yy31;
-yy245:
-	yych = *++p;
-	if (yych == 'D') goto yy34;
-	if (yych == 'd') goto yy34;
-	goto yy31;
-yy246:
-	yych = *++p;
-	if (yych == 'A') goto yy247;
-	if (yych != 'a') goto yy31;
-yy247:
-	yych = *++p;
-	if (yych == 'Q') goto yy248;
-	if (yych != 'q') goto yy31;
-yy248:
-	yych = *++p;
-	if (yych == 'U') goto yy249;
-	if (yych != 'u') goto yy31;
-yy249:
-	yych = *++p;
-	if (yych == 'E') goto yy250;
-	if (yych != 'e') goto yy31;
-yy250:
-	yych = *++p;
-	if (yych == 'L') goto yy251;
-	if (yych != 'l') goto yy31;
-yy251:
-	yych = *++p;
-	if (yych == 'O') goto yy252;
-	if (yych != 'o') goto yy31;
-yy252:
-	yych = *++p;
-	if (yych == 'C') goto yy253;
-	if (yych != 'c') goto yy31;
-yy253:
-	yych = *++p;
-	if (yych == 'K') goto yy254;
-	if (yych != 'k') goto yy31;
-yy254:
-	yych = *++p;
-	if (yych == 'T') goto yy255;
-	if (yych != 't') goto yy31;
-yy255:
-	yych = *++p;
-	if (yych == 'O') goto yy256;
-	if (yych != 'o') goto yy31;
-yy256:
-	yych = *++p;
-	if (yych == 'K') goto yy257;
-	if (yych != 'k') goto yy31;
-yy257:
-	yych = *++p;
-	if (yych == 'E') goto yy258;
-	if (yych != 'e') goto yy31;
-yy258:
-	yych = *++p;
-	if (yych == 'N') goto yy34;
-	if (yych == 'n') goto yy34;
-	goto yy31;
-yy259:
-	yych = *++p;
-	if (yych == 'T') goto yy266;
-	if (yych == 't') goto yy266;
-	goto yy31;
-yy260:
-	yych = *++p;
-	if (yych == 'T') goto yy265;
-	if (yych == 't') goto yy265;
-	goto yy31;
-yy261:
-	yych = *++p;
-	if (yych <= 'G') {
-		if (yych == ':') goto yy35;
-		goto yy31;
-	} else {
-		if (yych <= 'H') goto yy34;
-		if (yych == 'h') goto yy34;
-		goto yy31;
-	}
-yy262:
-	yych = *++p;
-	if (yych == 'S') goto yy34;
-	if (yych == 's') goto yy34;
-	goto yy31;
-yy263:
-	yych = *++p;
-	if (yych == 'W') goto yy264;
-	if (yych != 'w') goto yy31;
-yy264:
-	yych = *++p;
-	if (yych == 'S') goto yy34;
-	if (yych == 's') goto yy34;
-	goto yy31;
-yy265:
-	yych = *++p;
-	if (yych == 'P') goto yy34;
-	if (yych == 'p') goto yy34;
-	goto yy31;
-yy266:
-	yych = *++p;
-	if (yych == 'E') goto yy267;
-	if (yych != 'e') goto yy31;
-yy267:
-	yych = *++p;
-	if (yych == 'S') goto yy34;
-	if (yych == 's') goto yy34;
-	goto yy31;
-yy268:
-	yych = *++p;
-	if (yych == 'N') goto yy34;
-	if (yych == 'n') goto yy34;
-	goto yy31;
-yy269:
-	yych = *++p;
-	if (yych <= 'P') {
-		if (yych == 'M') goto yy300;
-		if (yych <= 'O') goto yy31;
-		goto yy299;
-	} else {
-		if (yych <= 'm') {
-			if (yych <= 'l') goto yy31;
-			goto yy300;
-		} else {
-			if (yych == 'p') goto yy299;
-			goto yy31;
-		}
-	}
-yy270:
-	yych = *++p;
-	if (yych <= 'Q') {
-		if (yych <= '-') {
-			if (yych <= ',') goto yy31;
-			goto yy292;
-		} else {
-			if (yych == 'N') goto yy293;
-			goto yy31;
-		}
-	} else {
-		if (yych <= 'n') {
-			if (yych <= 'R') goto yy291;
-			if (yych <= 'm') goto yy31;
-			goto yy293;
-		} else {
-			if (yych == 'r') goto yy291;
-			goto yy31;
-		}
-	}
-yy271:
-	yych = *++p;
-	if (yych == 'S') goto yy34;
-	if (yych == 's') goto yy34;
-	goto yy31;
-yy272:
-	yych = *++p;
-	if (yych == 'S') goto yy287;
-	if (yych == 's') goto yy287;
-	goto yy31;
-yy273:
-	yych = *++p;
-	switch (yych) {
-	case 'G':
-	case 'g':	goto yy278;
-	case 'I':
-	case 'i':	goto yy277;
-	case 'P':
-	case 'p':	goto yy279;
-	case 'R':
-	case 'r':	goto yy280;
-	default:	goto yy31;
-	}
-yy274:
-	yych = *++p;
-	if (yych == 'Q') goto yy276;
-	if (yych == 'q') goto yy276;
-	goto yy31;
-yy275:
-	yych = *++p;
-	if (yych == 'D') goto yy34;
-	if (yych == 'd') goto yy34;
-	goto yy31;
-yy276:
-	yych = *++p;
-	if (yych == 'P') goto yy34;
-	if (yych == 'p') goto yy34;
-	goto yy31;
-yy277:
-	yych = *++p;
-	if (yych == 'L') goto yy285;
-	if (yych == 'l') goto yy285;
-	goto yy31;
-yy278:
-	yych = *++p;
-	if (yych == 'N') goto yy283;
-	if (yych == 'n') goto yy283;
-	goto yy31;
-yy279:
-	yych = *++p;
-	if (yych == 'S') goto yy34;
-	if (yych == 's') goto yy34;
-	goto yy31;
-yy280:
-	yych = *++p;
-	if (yych == 'K') goto yy281;
-	if (yych != 'k') goto yy31;
-yy281:
-	yych = *++p;
-	if (yych == 'E') goto yy282;
-	if (yych != 'e') goto yy31;
-yy282:
-	yych = *++p;
-	if (yych == 'T') goto yy34;
-	if (yych == 't') goto yy34;
-	goto yy31;
-yy283:
-	yych = *++p;
-	if (yych == 'E') goto yy284;
-	if (yych != 'e') goto yy31;
-yy284:
-	yych = *++p;
-	if (yych == 'T') goto yy34;
-	if (yych == 't') goto yy34;
-	goto yy31;
-yy285:
-	yych = *++p;
-	if (yych == 'T') goto yy286;
-	if (yych != 't') goto yy31;
-yy286:
-	yych = *++p;
-	if (yych == 'O') goto yy34;
-	if (yych == 'o') goto yy34;
-	goto yy31;
-yy287:
-	yych = *++p;
-	if (yych == 'S') goto yy288;
-	if (yych != 's') goto yy31;
-yy288:
-	yych = *++p;
-	if (yych == 'A') goto yy289;
-	if (yych != 'a') goto yy31;
-yy289:
-	yych = *++p;
-	if (yych == 'G') goto yy290;
-	if (yych != 'g') goto yy31;
-yy290:
-	yych = *++p;
-	if (yych == 'E') goto yy34;
-	if (yych == 'e') goto yy34;
-	goto yy31;
-yy291:
-	yych = *++p;
-	if (yych == 'P') goto yy298;
-	if (yych == 'p') goto yy298;
-	goto yy31;
-yy292:
-	yych = *++p;
-	if (yych == 'H') goto yy295;
-	if (yych == 'h') goto yy295;
-	goto yy31;
-yy293:
-	yych = *++p;
-	if (yych == 'I') goto yy294;
-	if (yych != 'i') goto yy31;
-yy294:
-	yych = *++p;
-	if (yych == 'M') goto yy34;
-	if (yych == 'm') goto yy34;
-	goto yy31;
-yy295:
-	yych = *++p;
-	if (yych == 'E') goto yy296;
-	if (yych != 'e') goto yy31;
-yy296:
-	yych = *++p;
-	if (yych == 'L') goto yy297;
-	if (yych != 'l') goto yy31;
-yy297:
-	yych = *++p;
-	if (yych == 'P') goto yy34;
-	if (yych == 'p') goto yy34;
-	goto yy31;
-yy298:
-	yych = *++p;
-	if (yych <= 'R') {
-		if (yych == ':') goto yy35;
-		goto yy31;
-	} else {
-		if (yych <= 'S') goto yy34;
-		if (yych == 's') goto yy34;
-		goto yy31;
-	}
-yy299:
-	yych = *++p;
-	if (yych == 'D') goto yy303;
-	if (yych == 'd') goto yy303;
-	goto yy31;
-yy300:
-	yych = *++p;
-	if (yych == 'B') goto yy301;
-	if (yych != 'b') goto yy31;
-yy301:
-	yych = *++p;
-	if (yych == 'L') goto yy302;
-	if (yych != 'l') goto yy31;
-yy302:
-	yych = *++p;
-	if (yych == 'E') goto yy34;
-	if (yych == 'e') goto yy34;
-	goto yy31;
-yy303:
-	yych = *++p;
-	if (yych == 'A') goto yy304;
-	if (yych != 'a') goto yy31;
-yy304:
-	yych = *++p;
-	if (yych == 'T') goto yy305;
-	if (yych != 't') goto yy31;
-yy305:
-	yych = *++p;
-	if (yych == 'E') goto yy34;
-	if (yych == 'e') goto yy34;
-	goto yy31;
-yy306:
-	yych = *++p;
-	if (yych == 'A') goto yy311;
-	if (yych == 'a') goto yy311;
-	goto yy31;
-yy307:
-	yych = *++p;
-	if (yych == 'S') goto yy308;
-	if (yych != 's') goto yy31;
-yy308:
-	yych = *++p;
-	if (yych == 'T') goto yy309;
-	if (yych != 't') goto yy31;
-yy309:
-	yych = *++p;
-	if (yych == 'F') goto yy310;
-	if (yych != 'f') goto yy31;
-yy310:
-	yych = *++p;
-	if (yych == 'M') goto yy34;
-	if (yych == 'm') goto yy34;
-	goto yy31;
-yy311:
-	yych = *++p;
-	if (yych == 'P') goto yy312;
-	if (yych != 'p') goto yy31;
-yy312:
-	yych = *++p;
-	if (yych <= 'R') {
-		if (yych == ':') goto yy35;
-		goto yy31;
-	} else {
-		if (yych <= 'S') goto yy34;
-		if (yych == 's') goto yy34;
-		goto yy31;
-	}
-yy313:
-	yych = *++p;
-	if (yych == 'M') goto yy336;
-	if (yych == 'm') goto yy336;
-	goto yy31;
-yy314:
-	yych = *++p;
-	if (yych <= 'I') {
-		if (yych == 'C') goto yy325;
-		if (yych <= 'H') goto yy31;
-		goto yy324;
-	} else {
-		if (yych <= 'c') {
-			if (yych <= 'b') goto yy31;
-			goto yy325;
-		} else {
-			if (yych == 'i') goto yy324;
-			goto yy31;
-		}
-	}
-yy315:
-	yych = *++p;
-	if (yych <= 'P') {
-		if (yych == 'N') goto yy34;
-		if (yych <= 'O') goto yy31;
-		goto yy34;
-	} else {
-		if (yych <= 'n') {
-			if (yych <= 'm') goto yy31;
-			goto yy34;
-		} else {
-			if (yych == 'p') goto yy34;
-			goto yy31;
-		}
-	}
-yy316:
-	yych = *++p;
-	if (yych <= 'O') {
-		if (yych == 'A') goto yy322;
-		if (yych <= 'N') goto yy31;
-		goto yy323;
-	} else {
-		if (yych <= 'a') {
-			if (yych <= '`') goto yy31;
-			goto yy322;
-		} else {
-			if (yych == 'o') goto yy323;
-			goto yy31;
-		}
-	}
-yy317:
-	yych = *++p;
-	if (yych == 'F') goto yy321;
-	if (yych == 'f') goto yy321;
-	goto yy31;
-yy318:
-	yych = *++p;
-	if (yych <= '@') {
-		if (yych == ':') goto yy35;
-		goto yy31;
-	} else {
-		if (yych <= 'A') goto yy320;
-		if (yych == 'a') goto yy320;
-		goto yy31;
-	}
-yy319:
-	yych = *++p;
-	if (yych == 'X') goto yy34;
-	if (yych == 'x') goto yy34;
-	goto yy31;
-yy320:
-	yych = *++p;
-	if (yych == 'P') goto yy34;
-	if (yych == 'p') goto yy34;
-	goto yy31;
-yy321:
-	yych = *++p;
-	if (yych == 'O') goto yy34;
-	if (yych == 'o') goto yy34;
-	goto yy31;
-yy322:
-	yych = *++p;
-	if (yych == 'P') goto yy34;
-	if (yych == 'p') goto yy34;
-	goto yy31;
-yy323:
-	yych = *++p;
-	if (yych == 'N') goto yy34;
-	if (yych == 'n') goto yy34;
-	goto yy31;
-yy324:
-	yych = *++p;
-	if (yych == 'S') goto yy326;
-	if (yych == 's') goto yy326;
-	goto yy31;
-yy325:
-	yych = *++p;
-	if (yych <= ':') {
-		if (yych == '6') goto yy34;
-		if (yych <= '9') goto yy31;
-		goto yy35;
-	} else {
-		if (yych <= 'S') {
-			if (yych <= 'R') goto yy31;
-			goto yy34;
-		} else {
-			if (yych == 's') goto yy34;
-			goto yy31;
-		}
-	}
-yy326:
-	yych = *++p;
-	if (yych == '.') goto yy327;
-	if (yych == ':') goto yy35;
-	goto yy31;
-yy327:
-	yych = *++p;
-	if (yych <= 'X') {
-		if (yych <= 'K') {
-			if (yych == 'B') goto yy330;
-			goto yy31;
-		} else {
-			if (yych <= 'L') goto yy328;
-			if (yych <= 'W') goto yy31;
-			goto yy329;
-		}
-	} else {
-		if (yych <= 'k') {
-			if (yych == 'b') goto yy330;
-			goto yy31;
-		} else {
-			if (yych <= 'l') goto yy328;
-			if (yych == 'x') goto yy329;
-			goto yy31;
-		}
-	}
-yy328:
-	yych = *++p;
-	if (yych == 'W') goto yy335;
-	if (yych == 'w') goto yy335;
-	goto yy31;
-yy329:
-	yych = *++p;
-	if (yych == 'P') goto yy333;
-	if (yych == 'p') goto yy333;
-	goto yy31;
-yy330:
-	yych = *++p;
-	if (yych == 'E') goto yy331;
-	if (yych != 'e') goto yy31;
-yy331:
-	yych = *++p;
-	if (yych == 'E') goto yy332;
-	if (yych != 'e') goto yy31;
-yy332:
-	yych = *++p;
-	if (yych == 'P') goto yy34;
-	if (yych == 'p') goto yy34;
-	goto yy31;
-yy333:
-	yych = *++p;
-	if (yych == 'C') goto yy334;
-	if (yych != 'c') goto yy31;
-yy334:
-	yych = *++p;
-	if (yych <= 'R') {
-		if (yych == ':') goto yy35;
-		goto yy31;
-	} else {
-		if (yych <= 'S') goto yy34;
-		if (yych == 's') goto yy34;
-		goto yy31;
-	}
-yy335:
-	yych = *++p;
-	if (yych == 'Z') goto yy34;
-	if (yych == 'z') goto yy34;
-	goto yy31;
-yy336:
-	yych = *++p;
-	if (yych == 'S') goto yy34;
-	if (yych == 's') goto yy34;
-	goto yy31;
-yy337:
-	yych = *++p;
-	if (yych == 'P') goto yy34;
-	if (yych == 'p') goto yy34;
-	goto yy31;
-yy338:
-	yych = *++p;
-	if (yych == 'T') goto yy341;
-	if (yych == 't') goto yy341;
-	goto yy31;
-yy339:
-	yych = *++p;
-	if (yych != '2') goto yy31;
-	yych = *++p;
-	if (yych == '3') goto yy34;
-	goto yy31;
-yy341:
-	yych = *++p;
-	if (yych == 'P') goto yy342;
-	if (yych != 'p') goto yy31;
-yy342:
-	yych = *++p;
-	if (yych <= 'R') {
-		if (yych == ':') goto yy35;
-		goto yy31;
-	} else {
-		if (yych <= 'S') goto yy34;
-		if (yych == 's') goto yy34;
-		goto yy31;
-	}
-yy343:
-	yych = *++p;
-	if (yych == 'A') goto yy359;
-	if (yych == 'a') goto yy359;
-	goto yy31;
-yy344:
-	yych = *++p;
-	if (yych <= 'Z') {
-		if (yych == 'T') goto yy34;
-		if (yych <= 'Y') goto yy31;
-		goto yy350;
-	} else {
-		if (yych <= 't') {
-			if (yych <= 's') goto yy31;
-			goto yy34;
-		} else {
-			if (yych == 'z') goto yy350;
-			goto yy31;
-		}
-	}
-yy345:
-	yych = *++p;
-	if (yych <= 'O') {
-		if (yych == ':') goto yy35;
-		goto yy31;
-	} else {
-		if (yych <= 'P') goto yy347;
-		if (yych == 'p') goto yy347;
-		goto yy31;
-	}
-yy346:
-	yych = *++p;
-	if (yych == 'O') goto yy34;
-	if (yych == 'o') goto yy34;
-	goto yy31;
-yy347:
-	yych = *++p;
-	if (yych == 'H') goto yy348;
-	if (yych != 'h') goto yy31;
-yy348:
-	yych = *++p;
-	if (yych == 'E') goto yy349;
-	if (yych != 'e') goto yy31;
-yy349:
-	yych = *++p;
-	if (yych == 'R') goto yy34;
-	if (yych == 'r') goto yy34;
-	goto yy31;
-yy350:
-	yych = *++p;
-	if (yych == 'M') goto yy351;
-	if (yych != 'm') goto yy31;
-yy351:
-	yych = *++p;
-	if (yych == 'O') goto yy352;
-	if (yych != 'o') goto yy31;
-yy352:
-	yych = *++p;
-	if (yych == 'P') goto yy353;
-	if (yych != 'p') goto yy31;
-yy353:
-	yych = *++p;
-	if (yych == 'R') goto yy354;
-	if (yych != 'r') goto yy31;
-yy354:
-	yych = *++p;
-	if (yych == 'O') goto yy355;
-	if (yych != 'o') goto yy31;
-yy355:
-	yych = *++p;
-	if (yych == 'J') goto yy356;
-	if (yych != 'j') goto yy31;
-yy356:
-	yych = *++p;
-	if (yych == 'E') goto yy357;
-	if (yych != 'e') goto yy31;
-yy357:
-	yych = *++p;
-	if (yych == 'C') goto yy358;
-	if (yych != 'c') goto yy31;
-yy358:
-	yych = *++p;
-	if (yych == 'T') goto yy34;
-	if (yych == 't') goto yy34;
-	goto yy31;
-yy359:
-	yych = *++p;
-	if (yych == 'L') goto yy360;
-	if (yych != 'l') goto yy31;
-yy360:
-	yych = *++p;
-	if (yych == 'K') goto yy34;
-	if (yych == 'k') goto yy34;
-	goto yy31;
-yy361:
-	yych = *++p;
-	if (yych <= 'S') {
-		if (yych <= 'M') {
-			if (yych == 'L') goto yy371;
-			goto yy31;
-		} else {
-			if (yych <= 'N') goto yy372;
-			if (yych <= 'R') goto yy31;
-			goto yy373;
-		}
-	} else {
-		if (yych <= 'm') {
-			if (yych == 'l') goto yy371;
-			goto yy31;
-		} else {
-			if (yych <= 'n') goto yy372;
-			if (yych == 's') goto yy373;
-			goto yy31;
-		}
-	}
-yy362:
-	yych = *++p;
-	if (yych == 'E') goto yy370;
-	if (yych == 'e') goto yy370;
-	goto yy31;
-yy363:
-	yych = *++p;
-	if (yych == 'C') goto yy365;
-	if (yych == 'c') goto yy365;
-	goto yy31;
-yy364:
-	yych = *++p;
-	if (yych == 'P') goto yy34;
-	if (yych == 'p') goto yy34;
-	goto yy31;
-yy365:
-	yych = *++p;
-	if (yych == 'E') goto yy366;
-	if (yych != 'e') goto yy31;
-yy366:
-	yych = *++p;
-	if (yych == 'T') goto yy367;
-	if (yych != 't') goto yy31;
-yy367:
-	yych = *++p;
-	if (yych == 'I') goto yy368;
-	if (yych != 'i') goto yy31;
-yy368:
-	yych = *++p;
-	if (yych == 'M') goto yy369;
-	if (yych != 'm') goto yy31;
-yy369:
-	yych = *++p;
-	if (yych == 'E') goto yy34;
-	if (yych == 'e') goto yy34;
-	goto yy31;
-yy370:
-	yych = *++p;
-	if (yych == 'D') goto yy34;
-	if (yych == 'd') goto yy34;
-	goto yy31;
-yy371:
-	yych = *++p;
-	if (yych == 'E') goto yy34;
-	if (yych == 'e') goto yy34;
-	goto yy31;
-yy372:
-	yych = *++p;
-	if (yych == 'G') goto yy374;
-	if (yych == 'g') goto yy374;
-	goto yy31;
-yy373:
-	yych = *++p;
-	if (yych == 'H') goto yy34;
-	if (yych == 'h') goto yy34;
-	goto yy31;
-yy374:
-	yych = *++p;
-	if (yych == 'E') goto yy375;
-	if (yych != 'e') goto yy31;
-yy375:
-	yych = *++p;
-	if (yych == 'R') goto yy34;
-	if (yych == 'r') goto yy34;
-	goto yy31;
-yy376:
-	yych = *++p;
-	if (yych == 'T') goto yy394;
-	if (yych == 't') goto yy394;
-	goto yy31;
-yy377:
-	yych = *++p;
-	if (yych == 'T') goto yy34;
-	if (yych == 't') goto yy34;
-	goto yy31;
-yy378:
-	yych = *++p;
-	if (yych == 'M') goto yy34;
-	if (yych == 'm') goto yy34;
-	goto yy31;
-yy379:
-	yych = *++p;
-	if (yych <= 'S') {
-		if (yych == 'P') goto yy34;
-		if (yych <= 'R') goto yy31;
-		goto yy34;
-	} else {
-		if (yych <= 'p') {
-			if (yych <= 'o') goto yy31;
-			goto yy34;
-		} else {
-			if (yych == 's') goto yy34;
-			goto yy31;
-		}
-	}
-yy380:
-	yych = *++p;
-	if (yych == 'I') goto yy388;
-	if (yych == 'i') goto yy388;
-	goto yy31;
-yy381:
-	yych = *++p;
-	if (yych == 'A') goto yy387;
-	if (yych == 'a') goto yy387;
-	goto yy31;
-yy382:
-	yych = *++p;
-	if (yych == 'O') goto yy385;
-	if (yych == 'o') goto yy385;
-	goto yy31;
-yy383:
-	yych = *++p;
-	if (yych == 'A') goto yy384;
-	if (yych != 'a') goto yy31;
-yy384:
-	yych = *++p;
-	if (yych <= 'R') {
-		if (yych == ':') goto yy35;
-		goto yy31;
-	} else {
-		if (yych <= 'S') goto yy34;
-		if (yych == 's') goto yy34;
-		goto yy31;
-	}
-yy385:
-	yych = *++p;
-	if (yych == 'U') goto yy386;
-	if (yych != 'u') goto yy31;
-yy386:
-	yych = *++p;
-	if (yych == 'T') goto yy34;
-	if (yych == 't') goto yy34;
-	goto yy31;
-yy387:
-	yych = *++p;
-	if (yych == 'P') goto yy34;
-	if (yych == 'p') goto yy34;
-	goto yy31;
-yy388:
-	yych = *++p;
-	if (yych == 'U') goto yy389;
-	if (yych != 'u') goto yy31;
-yy389:
-	yych = *++p;
-	if (yych == 'M') goto yy390;
-	if (yych != 'm') goto yy31;
-yy390:
-	yych = *++p;
-	if (yych == 'X') goto yy391;
-	if (yych != 'x') goto yy31;
-yy391:
-	yych = *++p;
-	if (yych == 'T') goto yy392;
-	if (yych != 't') goto yy31;
-yy392:
-	yych = *++p;
-	if (yych == 'R') goto yy393;
-	if (yych != 'r') goto yy31;
-yy393:
-	yych = *++p;
-	if (yych == 'A') goto yy34;
-	if (yych == 'a') goto yy34;
-	goto yy31;
-yy394:
-	yych = *++p;
-	if (yych == 'A') goto yy395;
-	if (yych != 'a') goto yy31;
-yy395:
-	yych = *++p;
-	if (yych == 'C') goto yy396;
-	if (yych != 'c') goto yy31;
-yy396:
-	yych = *++p;
-	if (yych == 'H') goto yy397;
-	if (yych != 'h') goto yy31;
-yy397:
-	yych = *++p;
-	if (yych == 'M') goto yy398;
-	if (yych != 'm') goto yy31;
-yy398:
-	yych = *++p;
-	if (yych == 'E') goto yy399;
-	if (yych != 'e') goto yy31;
-yy399:
-	yych = *++p;
-	if (yych == 'N') goto yy400;
-	if (yych != 'n') goto yy31;
-yy400:
-	yych = *++p;
-	if (yych == 'T') goto yy34;
-	if (yych == 't') goto yy34;
-	goto yy31;
-yy401:
-	yych = *++p;
-	if (yych == 'S') goto yy34;
-	if (yych == 's') goto yy34;
-	goto yy31;
-yy402:
-	yych = *++p;
-	if (yych <= 'V') {
-		if (yych == 'R') goto yy34;
-		if (yych <= 'U') goto yy31;
-	} else {
-		if (yych <= 'r') {
-			if (yych <= 'q') goto yy31;
-			goto yy34;
-		} else {
-			if (yych != 'v') goto yy31;
-		}
-	}
-	yych = *++p;
-	if (yych == 'A') goto yy404;
-	if (yych != 'a') goto yy31;
-yy404:
-	yych = *++p;
-	if (yych == 'S') goto yy405;
-	if (yych != 's') goto yy31;
-yy405:
-	yych = *++p;
-	if (yych == 'C') goto yy406;
-	if (yych != 'c') goto yy31;
-yy406:
-	yych = *++p;
-	if (yych == 'R') goto yy407;
-	if (yych != 'r') goto yy31;
-yy407:
-	yych = *++p;
-	if (yych == 'I') goto yy408;
-	if (yych != 'i') goto yy31;
-yy408:
-	yych = *++p;
-	if (yych == 'P') goto yy409;
-	if (yych != 'p') goto yy31;
-yy409:
-	yych = *++p;
-	if (yych == 'T') goto yy34;
-	if (yych == 't') goto yy34;
-	goto yy31;
-yy410:
-	yych = *++p;
-	if (yych == 'B') goto yy34;
-	if (yych == 'b') goto yy34;
-	goto yy31;
-yy411:
-	yych = *++p;
-	if (yych == 'N') goto yy34;
-	if (yych == 'n') goto yy34;
-	goto yy31;
-yy412:
-	yych = *++p;
-	if (yych == 'N') goto yy419;
-	if (yych == 'n') goto yy419;
-	goto yy31;
-yy413:
-	yych = *++p;
-	if (yych == 'S') goto yy34;
-	if (yych == 's') goto yy34;
-	goto yy31;
-yy414:
-	yych = *++p;
-	if (yych == 'C') goto yy418;
-	if (yych == 'c') goto yy418;
-	goto yy31;
-yy415:
-	yych = *++p;
-	if (yych <= 'V') {
-		if (yych == 'T') goto yy417;
-		if (yych <= 'U') goto yy31;
-		goto yy34;
-	} else {
-		if (yych <= 't') {
-			if (yych <= 's') goto yy31;
-			goto yy417;
-		} else {
-			if (yych == 'v') goto yy34;
-			goto yy31;
-		}
-	}
-yy416:
-	yych = *++p;
-	if (yych == 'I') goto yy34;
-	if (yych == 'i') goto yy34;
-	goto yy31;
-yy417:
-	yych = *++p;
-	if (yych == 'A') goto yy34;
-	if (yych == 'a') goto yy34;
-	goto yy31;
-yy418:
-	yych = *++p;
-	if (yych == 'T') goto yy34;
-	if (yych == 't') goto yy34;
-	goto yy31;
-yy419:
-	yych = *++p;
-	if (yych == 'A') goto yy420;
-	if (yych != 'a') goto yy31;
-yy420:
-	yych = *++p;
-	if (yych != '-') goto yy31;
-	yych = *++p;
-	if (yych == 'P') goto yy422;
-	if (yych != 'p') goto yy31;
-yy422:
-	yych = *++p;
-	if (yych == 'L') goto yy423;
-	if (yych != 'l') goto yy31;
-yy423:
-	yych = *++p;
-	if (yych == 'A') goto yy424;
-	if (yych != 'a') goto yy31;
-yy424:
-	yych = *++p;
-	if (yych == 'Y') goto yy425;
-	if (yych != 'y') goto yy31;
-yy425:
-	yych = *++p;
-	if (yych <= 'S') {
-		if (yych == 'C') goto yy426;
-		if (yych <= 'R') goto yy31;
-		goto yy427;
-	} else {
-		if (yych <= 'c') {
-			if (yych <= 'b') goto yy31;
-		} else {
-			if (yych == 's') goto yy427;
-			goto yy31;
-		}
-	}
-yy426:
-	yych = *++p;
-	if (yych == 'O') goto yy432;
-	if (yych == 'o') goto yy432;
-	goto yy31;
-yy427:
-	yych = *++p;
-	if (yych == 'I') goto yy428;
-	if (yych != 'i') goto yy31;
-yy428:
-	yych = *++p;
-	if (yych == 'N') goto yy429;
-	if (yych != 'n') goto yy31;
-yy429:
-	yych = *++p;
-	if (yych == 'G') goto yy430;
-	if (yych != 'g') goto yy31;
-yy430:
-	yych = *++p;
-	if (yych == 'L') goto yy431;
-	if (yych != 'l') goto yy31;
-yy431:
-	yych = *++p;
-	if (yych == 'E') goto yy34;
-	if (yych == 'e') goto yy34;
-	goto yy31;
-yy432:
-	yych = *++p;
-	if (yych == 'N') goto yy433;
-	if (yych != 'n') goto yy31;
-yy433:
-	yych = *++p;
-	if (yych == 'T') goto yy434;
-	if (yych != 't') goto yy31;
-yy434:
-	yych = *++p;
-	if (yych == 'A') goto yy435;
-	if (yych != 'a') goto yy31;
-yy435:
-	yych = *++p;
-	if (yych == 'I') goto yy436;
-	if (yych != 'i') goto yy31;
-yy436:
-	yych = *++p;
-	if (yych == 'N') goto yy437;
-	if (yych != 'n') goto yy31;
-yy437:
-	yych = *++p;
-	if (yych == 'E') goto yy438;
-	if (yych != 'e') goto yy31;
-yy438:
-	yych = *++p;
-	if (yych == 'R') goto yy34;
-	if (yych == 'r') goto yy34;
-	goto yy31;
-yy439:
-	yych = *++p;
-	if (yych == 'S') goto yy34;
-	if (yych == 's') goto yy34;
-	goto yy31;
-yy440:
-	yych = *++p;
-	if (yych <= 'N') {
-		if (yych <= 'A') {
-			if (yych <= '@') goto yy31;
-			goto yy462;
-		} else {
-			if (yych <= 'L') goto yy31;
-			if (yych <= 'M') goto yy463;
-			goto yy464;
-		}
-	} else {
-		if (yych <= 'l') {
-			if (yych == 'a') goto yy462;
-			goto yy31;
-		} else {
-			if (yych <= 'm') goto yy463;
-			if (yych <= 'n') goto yy464;
-			goto yy31;
-		}
-	}
-yy441:
-	yych = *++p;
-	if (yych == 'R') goto yy449;
-	if (yych == 'r') goto yy449;
-	goto yy31;
-yy442:
-	yych = *++p;
-	if (yych <= 'P') {
-		if (yych == 'L') goto yy446;
-		if (yych <= 'O') goto yy31;
-		goto yy34;
-	} else {
-		if (yych <= 'l') {
-			if (yych <= 'k') goto yy31;
-			goto yy446;
-		} else {
-			if (yych == 'p') goto yy34;
-			goto yy31;
-		}
-	}
-yy443:
-	yych = *++p;
-	if (yych == 'I') goto yy445;
-	if (yych == 'i') goto yy445;
-	goto yy31;
-yy444:
-	yych = *++p;
-	if (yych == 'D') goto yy34;
-	if (yych == 'd') goto yy34;
-	goto yy31;
-yy445:
-	yych = *++p;
-	if (yych == 'D') goto yy34;
-	if (yych == 'd') goto yy34;
-	goto yy31;
-yy446:
-	yych = *++p;
-	if (yych == 'L') goto yy447;
-	if (yych != 'l') goto yy31;
-yy447:
-	yych = *++p;
-	if (yych == 'T') goto yy448;
-	if (yych != 't') goto yy31;
-yy448:
-	yych = *++p;
-	if (yych == 'O') goto yy34;
-	if (yych == 'o') goto yy34;
-	goto yy31;
-yy449:
-	yych = *++p;
-	if (yych == 'O') goto yy450;
-	if (yych != 'o') goto yy31;
-yy450:
-	yych = *++p;
-	if (yych == 'M') goto yy451;
-	if (yych != 'm') goto yy31;
-yy451:
-	yych = *++p;
-	if (yych == 'E') goto yy452;
-	if (yych != 'e') goto yy31;
-yy452:
-	yych = *++p;
-	if (yych == '-') goto yy453;
-	if (yych == ':') goto yy35;
-	goto yy31;
-yy453:
-	yych = *++p;
-	if (yych == 'E') goto yy454;
-	if (yych != 'e') goto yy31;
-yy454:
-	yych = *++p;
-	if (yych == 'X') goto yy455;
-	if (yych != 'x') goto yy31;
-yy455:
-	yych = *++p;
-	if (yych == 'T') goto yy456;
-	if (yych != 't') goto yy31;
-yy456:
-	yych = *++p;
-	if (yych == 'E') goto yy457;
-	if (yych != 'e') goto yy31;
-yy457:
-	yych = *++p;
-	if (yych == 'N') goto yy458;
-	if (yych != 'n') goto yy31;
-yy458:
-	yych = *++p;
-	if (yych == 'S') goto yy459;
-	if (yych != 's') goto yy31;
-yy459:
-	yych = *++p;
-	if (yych == 'I') goto yy460;
-	if (yych != 'i') goto yy31;
-yy460:
-	yych = *++p;
-	if (yych == 'O') goto yy461;
-	if (yych != 'o') goto yy31;
-yy461:
-	yych = *++p;
-	if (yych == 'N') goto yy34;
-	if (yych == 'n') goto yy34;
-	goto yy31;
-yy462:
-	yych = *++p;
-	if (yych == 'P') goto yy34;
-	if (yych == 'p') goto yy34;
-	goto yy31;
-yy463:
-	yych = *++p;
-	if (yych == '-') goto yy468;
-	goto yy31;
-yy464:
-	yych = *++p;
-	if (yych == 'T') goto yy465;
-	if (yych != 't') goto yy31;
-yy465:
-	yych = *++p;
-	if (yych == 'E') goto yy466;
-	if (yych != 'e') goto yy31;
-yy466:
-	yych = *++p;
-	if (yych == 'N') goto yy467;
-	if (yych != 'n') goto yy31;
-yy467:
-	yych = *++p;
-	if (yych == 'T') goto yy34;
-	if (yych == 't') goto yy34;
-	goto yy31;
-yy468:
-	yych = *++p;
-	if (yych == 'E') goto yy469;
-	if (yych != 'e') goto yy31;
-yy469:
-	yych = *++p;
-	if (yych == 'V') goto yy470;
-	if (yych != 'v') goto yy31;
-yy470:
-	yych = *++p;
-	if (yych == 'E') goto yy471;
-	if (yych != 'e') goto yy31;
-yy471:
-	yych = *++p;
-	if (yych == 'N') goto yy472;
-	if (yych != 'n') goto yy31;
-yy472:
-	yych = *++p;
-	if (yych == 'T') goto yy473;
-	if (yych != 't') goto yy31;
-yy473:
-	yych = *++p;
-	if (yych == 'B') goto yy474;
-	if (yych != 'b') goto yy31;
-yy474:
-	yych = *++p;
-	if (yych == 'R') goto yy475;
-	if (yych != 'r') goto yy31;
-yy475:
-	yych = *++p;
-	if (yych == 'I') goto yy476;
-	if (yych != 'i') goto yy31;
-yy476:
-	yych = *++p;
-	if (yych == 'T') goto yy477;
-	if (yych != 't') goto yy31;
-yy477:
-	yych = *++p;
-	if (yych == 'E') goto yy478;
-	if (yych != 'e') goto yy31;
-yy478:
-	yych = *++p;
-	if (yych != '-') goto yy31;
-	yych = *++p;
-	if (yych == 'A') goto yy480;
-	if (yych != 'a') goto yy31;
-yy480:
-	yych = *++p;
-	if (yych == 'T') goto yy481;
-	if (yych != 't') goto yy31;
-yy481:
-	yych = *++p;
-	if (yych == 'T') goto yy482;
-	if (yych != 't') goto yy31;
-yy482:
-	yych = *++p;
-	if (yych == 'E') goto yy483;
-	if (yych != 'e') goto yy31;
-yy483:
-	yych = *++p;
-	if (yych == 'N') goto yy484;
-	if (yych != 'n') goto yy31;
-yy484:
-	yych = *++p;
-	if (yych == 'D') goto yy485;
-	if (yych != 'd') goto yy31;
-yy485:
-	yych = *++p;
-	if (yych == 'E') goto yy486;
-	if (yych != 'e') goto yy31;
-yy486:
-	++p;
-	if ((yych = *p) == 'E') goto yy34;
-	if (yych == 'e') goto yy34;
-	goto yy31;
-}
-
-}
-
-// Try to match email autolink after first <, returning num of chars matched.
-int _scan_autolink_email(const unsigned char *p)
-{
-  const unsigned char *marker = NULL;
-  const unsigned char *start = p;
-
-{
-	unsigned char yych;
-	static const unsigned char yybm[] = {
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0, 128,   0, 128, 128, 128, 128, 128, 
-		  0,   0, 128, 128,   0, 128, 128, 128, 
-		128, 128, 128, 128, 128, 128, 128, 128, 
-		128, 128,   0,   0,   0, 128,   0, 128, 
-		  0, 128, 128, 128, 128, 128, 128, 128, 
-		128, 128, 128, 128, 128, 128, 128, 128, 
-		128, 128, 128, 128, 128, 128, 128, 128, 
-		128, 128, 128,   0,   0,   0, 128, 128, 
-		128, 128, 128, 128, 128, 128, 128, 128, 
-		128, 128, 128, 128, 128, 128, 128, 128, 
-		128, 128, 128, 128, 128, 128, 128, 128, 
-		128, 128, 128, 128, 128, 128, 128,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-	};
-	yych = *p;
-	if (yych <= ',') {
-		if (yych <= '!') {
-			if (yych == '\n') goto yy489;
-			if (yych <= ' ') goto yy491;
-			goto yy490;
-		} else {
-			if (yych <= '\'') {
-				if (yych <= '"') goto yy491;
-				goto yy490;
-			} else {
-				if (yych <= ')') goto yy491;
-				if (yych <= '+') goto yy490;
-				goto yy491;
-			}
-		}
-	} else {
-		if (yych <= '?') {
-			if (yych <= '<') {
-				if (yych <= '9') goto yy490;
-				goto yy491;
-			} else {
-				if (yych == '>') goto yy491;
-				goto yy490;
-			}
-		} else {
-			if (yych <= 'Z') {
-				if (yych <= '@') goto yy491;
-				goto yy490;
-			} else {
-				if (yych <= ']') goto yy491;
-				if (yych <= '~') goto yy490;
-				goto yy491;
-			}
-		}
-	}
-yy489:
-	{ return 0; }
-yy490:
-	yych = *(marker = ++p);
-	if (yych <= ',') {
-		if (yych <= '"') {
-			if (yych == '!') goto yy495;
-			goto yy489;
-		} else {
-			if (yych <= '\'') goto yy495;
-			if (yych <= ')') goto yy489;
-			if (yych <= '+') goto yy495;
-			goto yy489;
-		}
-	} else {
-		if (yych <= '>') {
-			if (yych <= '9') goto yy495;
-			if (yych == '=') goto yy495;
-			goto yy489;
-		} else {
-			if (yych <= 'Z') goto yy495;
-			if (yych <= ']') goto yy489;
-			if (yych <= '~') goto yy495;
-			goto yy489;
-		}
-	}
-yy491:
-	yych = *++p;
-	goto yy489;
-yy492:
-	yych = *++p;
-	if (yych <= '@') {
-		if (yych <= '/') goto yy493;
-		if (yych <= '9') goto yy496;
-	} else {
-		if (yych <= 'Z') goto yy496;
-		if (yych <= '`') goto yy493;
-		if (yych <= 'z') goto yy496;
-	}
-yy493:
-	p = marker;
-	goto yy489;
-yy494:
-	++p;
-	yych = *p;
-yy495:
-	if (yybm[0+yych] & 128) {
-		goto yy494;
-	}
-	if (yych == '@') goto yy492;
-	goto yy493;
-yy496:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy493;
-			if (yych >= '.') goto yy499;
-		} else {
-			if (yych <= '/') goto yy493;
-			if (yych <= '9') goto yy498;
-			goto yy493;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy500;
-			if (yych <= '@') goto yy493;
-			goto yy498;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy498;
-			goto yy493;
-		}
-	}
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy626;
-		if (yych <= '/') goto yy493;
-		goto yy627;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy493;
-			goto yy627;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy627;
-			goto yy493;
-		}
-	}
-yy498:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy493;
-			if (yych <= '-') goto yy626;
-		} else {
-			if (yych <= '/') goto yy493;
-			if (yych <= '9') goto yy627;
-			goto yy493;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy500;
-			if (yych <= '@') goto yy493;
-			goto yy627;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy627;
-			goto yy493;
-		}
-	}
-yy499:
-	++p;
-	yych = *p;
-	if (yych <= '@') {
-		if (yych <= '/') goto yy493;
-		if (yych <= '9') goto yy502;
-		goto yy493;
-	} else {
-		if (yych <= 'Z') goto yy502;
-		if (yych <= '`') goto yy493;
-		if (yych <= 'z') goto yy502;
-		goto yy493;
-	}
-yy500:
-	++p;
-	{ return (p - start); }
-yy502:
-	++p;
-	yych = *p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy493;
-			if (yych >= '.') goto yy499;
-		} else {
-			if (yych <= '/') goto yy493;
-			if (yych <= '9') goto yy504;
-			goto yy493;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy500;
-			if (yych <= '@') goto yy493;
-			goto yy504;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy504;
-			goto yy493;
-		}
-	}
-	++p;
-	yych = *p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy505;
-		if (yych <= '/') goto yy493;
-		goto yy506;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy493;
-			goto yy506;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy506;
-			goto yy493;
-		}
-	}
-yy504:
-	++p;
-	yych = *p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy493;
-			if (yych >= '.') goto yy499;
-		} else {
-			if (yych <= '/') goto yy493;
-			if (yych <= '9') goto yy506;
-			goto yy493;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy500;
-			if (yych <= '@') goto yy493;
-			goto yy506;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy506;
-			goto yy493;
-		}
-	}
-yy505:
-	++p;
-	yych = *p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy507;
-		if (yych <= '/') goto yy493;
-		goto yy508;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy493;
-			goto yy508;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy508;
-			goto yy493;
-		}
-	}
-yy506:
-	++p;
-	yych = *p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy493;
-			if (yych >= '.') goto yy499;
-		} else {
-			if (yych <= '/') goto yy493;
-			if (yych <= '9') goto yy508;
-			goto yy493;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy500;
-			if (yych <= '@') goto yy493;
-			goto yy508;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy508;
-			goto yy493;
-		}
-	}
-yy507:
-	++p;
-	yych = *p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy509;
-		if (yych <= '/') goto yy493;
-		goto yy510;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy493;
-			goto yy510;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy510;
-			goto yy493;
-		}
-	}
-yy508:
-	++p;
-	yych = *p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy493;
-			if (yych >= '.') goto yy499;
-		} else {
-			if (yych <= '/') goto yy493;
-			if (yych <= '9') goto yy510;
-			goto yy493;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy500;
-			if (yych <= '@') goto yy493;
-			goto yy510;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy510;
-			goto yy493;
-		}
-	}
-yy509:
-	++p;
-	yych = *p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy511;
-		if (yych <= '/') goto yy493;
-		goto yy512;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy493;
-			goto yy512;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy512;
-			goto yy493;
-		}
-	}
-yy510:
-	++p;
-	yych = *p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy493;
-			if (yych >= '.') goto yy499;
-		} else {
-			if (yych <= '/') goto yy493;
-			if (yych <= '9') goto yy512;
-			goto yy493;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy500;
-			if (yych <= '@') goto yy493;
-			goto yy512;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy512;
-			goto yy493;
-		}
-	}
-yy511:
-	++p;
-	yych = *p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy513;
-		if (yych <= '/') goto yy493;
-		goto yy514;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy493;
-			goto yy514;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy514;
-			goto yy493;
-		}
-	}
-yy512:
-	++p;
-	yych = *p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy493;
-			if (yych >= '.') goto yy499;
-		} else {
-			if (yych <= '/') goto yy493;
-			if (yych <= '9') goto yy514;
-			goto yy493;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy500;
-			if (yych <= '@') goto yy493;
-			goto yy514;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy514;
-			goto yy493;
-		}
-	}
-yy513:
-	++p;
-	yych = *p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy515;
-		if (yych <= '/') goto yy493;
-		goto yy516;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy493;
-			goto yy516;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy516;
-			goto yy493;
-		}
-	}
-yy514:
-	++p;
-	yych = *p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy493;
-			if (yych >= '.') goto yy499;
-		} else {
-			if (yych <= '/') goto yy493;
-			if (yych <= '9') goto yy516;
-			goto yy493;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy500;
-			if (yych <= '@') goto yy493;
-			goto yy516;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy516;
-			goto yy493;
-		}
-	}
-yy515:
-	++p;
-	yych = *p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy517;
-		if (yych <= '/') goto yy493;
-		goto yy518;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy493;
-			goto yy518;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy518;
-			goto yy493;
-		}
-	}
-yy516:
-	++p;
-	yych = *p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy493;
-			if (yych >= '.') goto yy499;
-		} else {
-			if (yych <= '/') goto yy493;
-			if (yych <= '9') goto yy518;
-			goto yy493;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy500;
-			if (yych <= '@') goto yy493;
-			goto yy518;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy518;
-			goto yy493;
-		}
-	}
-yy517:
-	++p;
-	yych = *p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy519;
-		if (yych <= '/') goto yy493;
-		goto yy520;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy493;
-			goto yy520;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy520;
-			goto yy493;
-		}
-	}
-yy518:
-	++p;
-	yych = *p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy493;
-			if (yych >= '.') goto yy499;
-		} else {
-			if (yych <= '/') goto yy493;
-			if (yych <= '9') goto yy520;
-			goto yy493;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy500;
-			if (yych <= '@') goto yy493;
-			goto yy520;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy520;
-			goto yy493;
-		}
-	}
-yy519:
-	++p;
-	yych = *p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy521;
-		if (yych <= '/') goto yy493;
-		goto yy522;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy493;
-			goto yy522;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy522;
-			goto yy493;
-		}
-	}
-yy520:
-	++p;
-	yych = *p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy493;
-			if (yych >= '.') goto yy499;
-		} else {
-			if (yych <= '/') goto yy493;
-			if (yych <= '9') goto yy522;
-			goto yy493;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy500;
-			if (yych <= '@') goto yy493;
-			goto yy522;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy522;
-			goto yy493;
-		}
-	}
-yy521:
-	++p;
-	yych = *p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy523;
-		if (yych <= '/') goto yy493;
-		goto yy524;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy493;
-			goto yy524;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy524;
-			goto yy493;
-		}
-	}
-yy522:
-	++p;
-	yych = *p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy493;
-			if (yych >= '.') goto yy499;
-		} else {
-			if (yych <= '/') goto yy493;
-			if (yych <= '9') goto yy524;
-			goto yy493;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy500;
-			if (yych <= '@') goto yy493;
-			goto yy524;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy524;
-			goto yy493;
-		}
-	}
-yy523:
-	++p;
-	yych = *p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy525;
-		if (yych <= '/') goto yy493;
-		goto yy526;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy493;
-			goto yy526;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy526;
-			goto yy493;
-		}
-	}
-yy524:
-	++p;
-	yych = *p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy493;
-			if (yych >= '.') goto yy499;
-		} else {
-			if (yych <= '/') goto yy493;
-			if (yych <= '9') goto yy526;
-			goto yy493;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy500;
-			if (yych <= '@') goto yy493;
-			goto yy526;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy526;
-			goto yy493;
-		}
-	}
-yy525:
-	++p;
-	yych = *p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy527;
-		if (yych <= '/') goto yy493;
-		goto yy528;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy493;
-			goto yy528;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy528;
-			goto yy493;
-		}
-	}
-yy526:
-	++p;
-	yych = *p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy493;
-			if (yych >= '.') goto yy499;
-		} else {
-			if (yych <= '/') goto yy493;
-			if (yych <= '9') goto yy528;
-			goto yy493;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy500;
-			if (yych <= '@') goto yy493;
-			goto yy528;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy528;
-			goto yy493;
-		}
-	}
-yy527:
-	++p;
-	yych = *p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy529;
-		if (yych <= '/') goto yy493;
-		goto yy530;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy493;
-			goto yy530;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy530;
-			goto yy493;
-		}
-	}
-yy528:
-	++p;
-	yych = *p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy493;
-			if (yych >= '.') goto yy499;
-		} else {
-			if (yych <= '/') goto yy493;
-			if (yych <= '9') goto yy530;
-			goto yy493;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy500;
-			if (yych <= '@') goto yy493;
-			goto yy530;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy530;
-			goto yy493;
-		}
-	}
-yy529:
-	++p;
-	yych = *p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy531;
-		if (yych <= '/') goto yy493;
-		goto yy532;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy493;
-			goto yy532;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy532;
-			goto yy493;
-		}
-	}
-yy530:
-	++p;
-	yych = *p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy493;
-			if (yych >= '.') goto yy499;
-		} else {
-			if (yych <= '/') goto yy493;
-			if (yych <= '9') goto yy532;
-			goto yy493;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy500;
-			if (yych <= '@') goto yy493;
-			goto yy532;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy532;
-			goto yy493;
-		}
-	}
-yy531:
-	++p;
-	yych = *p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy533;
-		if (yych <= '/') goto yy493;
-		goto yy534;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy493;
-			goto yy534;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy534;
-			goto yy493;
-		}
-	}
-yy532:
-	++p;
-	yych = *p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy493;
-			if (yych >= '.') goto yy499;
-		} else {
-			if (yych <= '/') goto yy493;
-			if (yych <= '9') goto yy534;
-			goto yy493;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy500;
-			if (yych <= '@') goto yy493;
-			goto yy534;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy534;
-			goto yy493;
-		}
-	}
-yy533:
-	++p;
-	yych = *p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy535;
-		if (yych <= '/') goto yy493;
-		goto yy536;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy493;
-			goto yy536;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy536;
-			goto yy493;
-		}
-	}
-yy534:
-	++p;
-	yych = *p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy493;
-			if (yych >= '.') goto yy499;
-		} else {
-			if (yych <= '/') goto yy493;
-			if (yych <= '9') goto yy536;
-			goto yy493;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy500;
-			if (yych <= '@') goto yy493;
-			goto yy536;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy536;
-			goto yy493;
-		}
-	}
-yy535:
-	++p;
-	yych = *p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy537;
-		if (yych <= '/') goto yy493;
-		goto yy538;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy493;
-			goto yy538;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy538;
-			goto yy493;
-		}
-	}
-yy536:
-	++p;
-	yych = *p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy493;
-			if (yych >= '.') goto yy499;
-		} else {
-			if (yych <= '/') goto yy493;
-			if (yych <= '9') goto yy538;
-			goto yy493;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy500;
-			if (yych <= '@') goto yy493;
-			goto yy538;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy538;
-			goto yy493;
-		}
-	}
-yy537:
-	++p;
-	yych = *p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy539;
-		if (yych <= '/') goto yy493;
-		goto yy540;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy493;
-			goto yy540;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy540;
-			goto yy493;
-		}
-	}
-yy538:
-	++p;
-	yych = *p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy493;
-			if (yych >= '.') goto yy499;
-		} else {
-			if (yych <= '/') goto yy493;
-			if (yych <= '9') goto yy540;
-			goto yy493;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy500;
-			if (yych <= '@') goto yy493;
-			goto yy540;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy540;
-			goto yy493;
-		}
-	}
-yy539:
-	++p;
-	yych = *p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy541;
-		if (yych <= '/') goto yy493;
-		goto yy542;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy493;
-			goto yy542;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy542;
-			goto yy493;
-		}
-	}
-yy540:
-	++p;
-	yych = *p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy493;
-			if (yych >= '.') goto yy499;
-		} else {
-			if (yych <= '/') goto yy493;
-			if (yych <= '9') goto yy542;
-			goto yy493;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy500;
-			if (yych <= '@') goto yy493;
-			goto yy542;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy542;
-			goto yy493;
-		}
-	}
-yy541:
-	++p;
-	yych = *p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy543;
-		if (yych <= '/') goto yy493;
-		goto yy544;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy493;
-			goto yy544;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy544;
-			goto yy493;
-		}
-	}
-yy542:
-	++p;
-	yych = *p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy493;
-			if (yych >= '.') goto yy499;
-		} else {
-			if (yych <= '/') goto yy493;
-			if (yych <= '9') goto yy544;
-			goto yy493;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy500;
-			if (yych <= '@') goto yy493;
-			goto yy544;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy544;
-			goto yy493;
-		}
-	}
-yy543:
-	++p;
-	yych = *p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy545;
-		if (yych <= '/') goto yy493;
-		goto yy546;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy493;
-			goto yy546;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy546;
-			goto yy493;
-		}
-	}
-yy544:
-	++p;
-	yych = *p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy493;
-			if (yych >= '.') goto yy499;
-		} else {
-			if (yych <= '/') goto yy493;
-			if (yych <= '9') goto yy546;
-			goto yy493;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy500;
-			if (yych <= '@') goto yy493;
-			goto yy546;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy546;
-			goto yy493;
-		}
-	}
-yy545:
-	++p;
-	yych = *p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy547;
-		if (yych <= '/') goto yy493;
-		goto yy548;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy493;
-			goto yy548;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy548;
-			goto yy493;
-		}
-	}
-yy546:
-	++p;
-	yych = *p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy493;
-			if (yych >= '.') goto yy499;
-		} else {
-			if (yych <= '/') goto yy493;
-			if (yych <= '9') goto yy548;
-			goto yy493;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy500;
-			if (yych <= '@') goto yy493;
-			goto yy548;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy548;
-			goto yy493;
-		}
-	}
-yy547:
-	++p;
-	yych = *p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy549;
-		if (yych <= '/') goto yy493;
-		goto yy550;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy493;
-			goto yy550;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy550;
-			goto yy493;
-		}
-	}
-yy548:
-	++p;
-	yych = *p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy493;
-			if (yych >= '.') goto yy499;
-		} else {
-			if (yych <= '/') goto yy493;
-			if (yych <= '9') goto yy550;
-			goto yy493;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy500;
-			if (yych <= '@') goto yy493;
-			goto yy550;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy550;
-			goto yy493;
-		}
-	}
-yy549:
-	++p;
-	yych = *p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy551;
-		if (yych <= '/') goto yy493;
-		goto yy552;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy493;
-			goto yy552;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy552;
-			goto yy493;
-		}
-	}
-yy550:
-	++p;
-	yych = *p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy493;
-			if (yych >= '.') goto yy499;
-		} else {
-			if (yych <= '/') goto yy493;
-			if (yych <= '9') goto yy552;
-			goto yy493;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy500;
-			if (yych <= '@') goto yy493;
-			goto yy552;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy552;
-			goto yy493;
-		}
-	}
-yy551:
-	++p;
-	yych = *p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy553;
-		if (yych <= '/') goto yy493;
-		goto yy554;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy493;
-			goto yy554;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy554;
-			goto yy493;
-		}
-	}
-yy552:
-	++p;
-	yych = *p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy493;
-			if (yych >= '.') goto yy499;
-		} else {
-			if (yych <= '/') goto yy493;
-			if (yych <= '9') goto yy554;
-			goto yy493;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy500;
-			if (yych <= '@') goto yy493;
-			goto yy554;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy554;
-			goto yy493;
-		}
-	}
-yy553:
-	++p;
-	yych = *p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy555;
-		if (yych <= '/') goto yy493;
-		goto yy556;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy493;
-			goto yy556;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy556;
-			goto yy493;
-		}
-	}
-yy554:
-	++p;
-	yych = *p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy493;
-			if (yych >= '.') goto yy499;
-		} else {
-			if (yych <= '/') goto yy493;
-			if (yych <= '9') goto yy556;
-			goto yy493;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy500;
-			if (yych <= '@') goto yy493;
-			goto yy556;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy556;
-			goto yy493;
-		}
-	}
-yy555:
-	++p;
-	yych = *p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy557;
-		if (yych <= '/') goto yy493;
-		goto yy558;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy493;
-			goto yy558;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy558;
-			goto yy493;
-		}
-	}
-yy556:
-	++p;
-	yych = *p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy493;
-			if (yych >= '.') goto yy499;
-		} else {
-			if (yych <= '/') goto yy493;
-			if (yych <= '9') goto yy558;
-			goto yy493;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy500;
-			if (yych <= '@') goto yy493;
-			goto yy558;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy558;
-			goto yy493;
-		}
-	}
-yy557:
-	++p;
-	yych = *p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy559;
-		if (yych <= '/') goto yy493;
-		goto yy560;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy493;
-			goto yy560;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy560;
-			goto yy493;
-		}
-	}
-yy558:
-	++p;
-	yych = *p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy493;
-			if (yych >= '.') goto yy499;
-		} else {
-			if (yych <= '/') goto yy493;
-			if (yych <= '9') goto yy560;
-			goto yy493;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy500;
-			if (yych <= '@') goto yy493;
-			goto yy560;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy560;
-			goto yy493;
-		}
-	}
-yy559:
-	++p;
-	yych = *p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy561;
-		if (yych <= '/') goto yy493;
-		goto yy562;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy493;
-			goto yy562;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy562;
-			goto yy493;
-		}
-	}
-yy560:
-	++p;
-	yych = *p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy493;
-			if (yych >= '.') goto yy499;
-		} else {
-			if (yych <= '/') goto yy493;
-			if (yych <= '9') goto yy562;
-			goto yy493;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy500;
-			if (yych <= '@') goto yy493;
-			goto yy562;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy562;
-			goto yy493;
-		}
-	}
-yy561:
-	++p;
-	yych = *p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy563;
-		if (yych <= '/') goto yy493;
-		goto yy564;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy493;
-			goto yy564;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy564;
-			goto yy493;
-		}
-	}
-yy562:
-	++p;
-	yych = *p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy493;
-			if (yych >= '.') goto yy499;
-		} else {
-			if (yych <= '/') goto yy493;
-			if (yych <= '9') goto yy564;
-			goto yy493;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy500;
-			if (yych <= '@') goto yy493;
-			goto yy564;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy564;
-			goto yy493;
-		}
-	}
-yy563:
-	++p;
-	yych = *p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy565;
-		if (yych <= '/') goto yy493;
-		goto yy566;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy493;
-			goto yy566;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy566;
-			goto yy493;
-		}
-	}
-yy564:
-	++p;
-	yych = *p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy493;
-			if (yych >= '.') goto yy499;
-		} else {
-			if (yych <= '/') goto yy493;
-			if (yych <= '9') goto yy566;
-			goto yy493;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy500;
-			if (yych <= '@') goto yy493;
-			goto yy566;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy566;
-			goto yy493;
-		}
-	}
-yy565:
-	++p;
-	yych = *p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy567;
-		if (yych <= '/') goto yy493;
-		goto yy568;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy493;
-			goto yy568;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy568;
-			goto yy493;
-		}
-	}
-yy566:
-	++p;
-	yych = *p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy493;
-			if (yych >= '.') goto yy499;
-		} else {
-			if (yych <= '/') goto yy493;
-			if (yych <= '9') goto yy568;
-			goto yy493;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy500;
-			if (yych <= '@') goto yy493;
-			goto yy568;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy568;
-			goto yy493;
-		}
-	}
-yy567:
-	++p;
-	yych = *p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy569;
-		if (yych <= '/') goto yy493;
-		goto yy570;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy493;
-			goto yy570;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy570;
-			goto yy493;
-		}
-	}
-yy568:
-	++p;
-	yych = *p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy493;
-			if (yych >= '.') goto yy499;
-		} else {
-			if (yych <= '/') goto yy493;
-			if (yych <= '9') goto yy570;
-			goto yy493;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy500;
-			if (yych <= '@') goto yy493;
-			goto yy570;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy570;
-			goto yy493;
-		}
-	}
-yy569:
-	++p;
-	yych = *p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy571;
-		if (yych <= '/') goto yy493;
-		goto yy572;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy493;
-			goto yy572;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy572;
-			goto yy493;
-		}
-	}
-yy570:
-	++p;
-	yych = *p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy493;
-			if (yych >= '.') goto yy499;
-		} else {
-			if (yych <= '/') goto yy493;
-			if (yych <= '9') goto yy572;
-			goto yy493;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy500;
-			if (yych <= '@') goto yy493;
-			goto yy572;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy572;
-			goto yy493;
-		}
-	}
-yy571:
-	++p;
-	yych = *p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy573;
-		if (yych <= '/') goto yy493;
-		goto yy574;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy493;
-			goto yy574;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy574;
-			goto yy493;
-		}
-	}
-yy572:
-	++p;
-	yych = *p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy493;
-			if (yych >= '.') goto yy499;
-		} else {
-			if (yych <= '/') goto yy493;
-			if (yych <= '9') goto yy574;
-			goto yy493;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy500;
-			if (yych <= '@') goto yy493;
-			goto yy574;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy574;
-			goto yy493;
-		}
-	}
-yy573:
-	++p;
-	yych = *p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy575;
-		if (yych <= '/') goto yy493;
-		goto yy576;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy493;
-			goto yy576;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy576;
-			goto yy493;
-		}
-	}
-yy574:
-	++p;
-	yych = *p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy493;
-			if (yych >= '.') goto yy499;
-		} else {
-			if (yych <= '/') goto yy493;
-			if (yych <= '9') goto yy576;
-			goto yy493;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy500;
-			if (yych <= '@') goto yy493;
-			goto yy576;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy576;
-			goto yy493;
-		}
-	}
-yy575:
-	++p;
-	yych = *p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy577;
-		if (yych <= '/') goto yy493;
-		goto yy578;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy493;
-			goto yy578;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy578;
-			goto yy493;
-		}
-	}
-yy576:
-	++p;
-	yych = *p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy493;
-			if (yych >= '.') goto yy499;
-		} else {
-			if (yych <= '/') goto yy493;
-			if (yych <= '9') goto yy578;
-			goto yy493;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy500;
-			if (yych <= '@') goto yy493;
-			goto yy578;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy578;
-			goto yy493;
-		}
-	}
-yy577:
-	++p;
-	yych = *p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy579;
-		if (yych <= '/') goto yy493;
-		goto yy580;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy493;
-			goto yy580;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy580;
-			goto yy493;
-		}
-	}
-yy578:
-	++p;
-	yych = *p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy493;
-			if (yych >= '.') goto yy499;
-		} else {
-			if (yych <= '/') goto yy493;
-			if (yych <= '9') goto yy580;
-			goto yy493;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy500;
-			if (yych <= '@') goto yy493;
-			goto yy580;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy580;
-			goto yy493;
-		}
-	}
-yy579:
-	++p;
-	yych = *p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy581;
-		if (yych <= '/') goto yy493;
-		goto yy582;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy493;
-			goto yy582;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy582;
-			goto yy493;
-		}
-	}
-yy580:
-	++p;
-	yych = *p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy493;
-			if (yych >= '.') goto yy499;
-		} else {
-			if (yych <= '/') goto yy493;
-			if (yych <= '9') goto yy582;
-			goto yy493;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy500;
-			if (yych <= '@') goto yy493;
-			goto yy582;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy582;
-			goto yy493;
-		}
-	}
-yy581:
-	++p;
-	yych = *p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy583;
-		if (yych <= '/') goto yy493;
-		goto yy584;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy493;
-			goto yy584;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy584;
-			goto yy493;
-		}
-	}
-yy582:
-	++p;
-	yych = *p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy493;
-			if (yych >= '.') goto yy499;
-		} else {
-			if (yych <= '/') goto yy493;
-			if (yych <= '9') goto yy584;
-			goto yy493;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy500;
-			if (yych <= '@') goto yy493;
-			goto yy584;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy584;
-			goto yy493;
-		}
-	}
-yy583:
-	++p;
-	yych = *p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy585;
-		if (yych <= '/') goto yy493;
-		goto yy586;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy493;
-			goto yy586;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy586;
-			goto yy493;
-		}
-	}
-yy584:
-	++p;
-	yych = *p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy493;
-			if (yych >= '.') goto yy499;
-		} else {
-			if (yych <= '/') goto yy493;
-			if (yych <= '9') goto yy586;
-			goto yy493;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy500;
-			if (yych <= '@') goto yy493;
-			goto yy586;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy586;
-			goto yy493;
-		}
-	}
-yy585:
-	++p;
-	yych = *p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy587;
-		if (yych <= '/') goto yy493;
-		goto yy588;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy493;
-			goto yy588;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy588;
-			goto yy493;
-		}
-	}
-yy586:
-	++p;
-	yych = *p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy493;
-			if (yych >= '.') goto yy499;
-		} else {
-			if (yych <= '/') goto yy493;
-			if (yych <= '9') goto yy588;
-			goto yy493;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy500;
-			if (yych <= '@') goto yy493;
-			goto yy588;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy588;
-			goto yy493;
-		}
-	}
-yy587:
-	++p;
-	yych = *p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy589;
-		if (yych <= '/') goto yy493;
-		goto yy590;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy493;
-			goto yy590;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy590;
-			goto yy493;
-		}
-	}
-yy588:
-	++p;
-	yych = *p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy493;
-			if (yych >= '.') goto yy499;
-		} else {
-			if (yych <= '/') goto yy493;
-			if (yych <= '9') goto yy590;
-			goto yy493;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy500;
-			if (yych <= '@') goto yy493;
-			goto yy590;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy590;
-			goto yy493;
-		}
-	}
-yy589:
-	++p;
-	yych = *p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy591;
-		if (yych <= '/') goto yy493;
-		goto yy592;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy493;
-			goto yy592;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy592;
-			goto yy493;
-		}
-	}
-yy590:
-	++p;
-	yych = *p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy493;
-			if (yych >= '.') goto yy499;
-		} else {
-			if (yych <= '/') goto yy493;
-			if (yych <= '9') goto yy592;
-			goto yy493;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy500;
-			if (yych <= '@') goto yy493;
-			goto yy592;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy592;
-			goto yy493;
-		}
-	}
-yy591:
-	++p;
-	yych = *p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy593;
-		if (yych <= '/') goto yy493;
-		goto yy594;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy493;
-			goto yy594;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy594;
-			goto yy493;
-		}
-	}
-yy592:
-	++p;
-	yych = *p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy493;
-			if (yych >= '.') goto yy499;
-		} else {
-			if (yych <= '/') goto yy493;
-			if (yych <= '9') goto yy594;
-			goto yy493;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy500;
-			if (yych <= '@') goto yy493;
-			goto yy594;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy594;
-			goto yy493;
-		}
-	}
-yy593:
-	++p;
-	yych = *p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy595;
-		if (yych <= '/') goto yy493;
-		goto yy596;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy493;
-			goto yy596;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy596;
-			goto yy493;
-		}
-	}
-yy594:
-	++p;
-	yych = *p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy493;
-			if (yych >= '.') goto yy499;
-		} else {
-			if (yych <= '/') goto yy493;
-			if (yych <= '9') goto yy596;
-			goto yy493;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy500;
-			if (yych <= '@') goto yy493;
-			goto yy596;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy596;
-			goto yy493;
-		}
-	}
-yy595:
-	++p;
-	yych = *p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy597;
-		if (yych <= '/') goto yy493;
-		goto yy598;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy493;
-			goto yy598;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy598;
-			goto yy493;
-		}
-	}
-yy596:
-	++p;
-	yych = *p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy493;
-			if (yych >= '.') goto yy499;
-		} else {
-			if (yych <= '/') goto yy493;
-			if (yych <= '9') goto yy598;
-			goto yy493;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy500;
-			if (yych <= '@') goto yy493;
-			goto yy598;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy598;
-			goto yy493;
-		}
-	}
-yy597:
-	++p;
-	yych = *p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy599;
-		if (yych <= '/') goto yy493;
-		goto yy600;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy493;
-			goto yy600;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy600;
-			goto yy493;
-		}
-	}
-yy598:
-	++p;
-	yych = *p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy493;
-			if (yych >= '.') goto yy499;
-		} else {
-			if (yych <= '/') goto yy493;
-			if (yych <= '9') goto yy600;
-			goto yy493;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy500;
-			if (yych <= '@') goto yy493;
-			goto yy600;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy600;
-			goto yy493;
-		}
-	}
-yy599:
-	++p;
-	yych = *p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy601;
-		if (yych <= '/') goto yy493;
-		goto yy602;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy493;
-			goto yy602;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy602;
-			goto yy493;
-		}
-	}
-yy600:
-	++p;
-	yych = *p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy493;
-			if (yych >= '.') goto yy499;
-		} else {
-			if (yych <= '/') goto yy493;
-			if (yych <= '9') goto yy602;
-			goto yy493;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy500;
-			if (yych <= '@') goto yy493;
-			goto yy602;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy602;
-			goto yy493;
-		}
-	}
-yy601:
-	++p;
-	yych = *p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy603;
-		if (yych <= '/') goto yy493;
-		goto yy604;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy493;
-			goto yy604;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy604;
-			goto yy493;
-		}
-	}
-yy602:
-	++p;
-	yych = *p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy493;
-			if (yych >= '.') goto yy499;
-		} else {
-			if (yych <= '/') goto yy493;
-			if (yych <= '9') goto yy604;
-			goto yy493;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy500;
-			if (yych <= '@') goto yy493;
-			goto yy604;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy604;
-			goto yy493;
-		}
-	}
-yy603:
-	++p;
-	yych = *p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy605;
-		if (yych <= '/') goto yy493;
-		goto yy606;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy493;
-			goto yy606;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy606;
-			goto yy493;
-		}
-	}
-yy604:
-	++p;
-	yych = *p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy493;
-			if (yych >= '.') goto yy499;
-		} else {
-			if (yych <= '/') goto yy493;
-			if (yych <= '9') goto yy606;
-			goto yy493;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy500;
-			if (yych <= '@') goto yy493;
-			goto yy606;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy606;
-			goto yy493;
-		}
-	}
-yy605:
-	++p;
-	yych = *p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy607;
-		if (yych <= '/') goto yy493;
-		goto yy608;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy493;
-			goto yy608;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy608;
-			goto yy493;
-		}
-	}
-yy606:
-	++p;
-	yych = *p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy493;
-			if (yych >= '.') goto yy499;
-		} else {
-			if (yych <= '/') goto yy493;
-			if (yych <= '9') goto yy608;
-			goto yy493;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy500;
-			if (yych <= '@') goto yy493;
-			goto yy608;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy608;
-			goto yy493;
-		}
-	}
-yy607:
-	++p;
-	yych = *p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy609;
-		if (yych <= '/') goto yy493;
-		goto yy610;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy493;
-			goto yy610;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy610;
-			goto yy493;
-		}
-	}
-yy608:
-	++p;
-	yych = *p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy493;
-			if (yych >= '.') goto yy499;
-		} else {
-			if (yych <= '/') goto yy493;
-			if (yych <= '9') goto yy610;
-			goto yy493;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy500;
-			if (yych <= '@') goto yy493;
-			goto yy610;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy610;
-			goto yy493;
-		}
-	}
-yy609:
-	++p;
-	yych = *p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy611;
-		if (yych <= '/') goto yy493;
-		goto yy612;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy493;
-			goto yy612;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy612;
-			goto yy493;
-		}
-	}
-yy610:
-	++p;
-	yych = *p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy493;
-			if (yych >= '.') goto yy499;
-		} else {
-			if (yych <= '/') goto yy493;
-			if (yych <= '9') goto yy612;
-			goto yy493;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy500;
-			if (yych <= '@') goto yy493;
-			goto yy612;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy612;
-			goto yy493;
-		}
-	}
-yy611:
-	++p;
-	yych = *p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy613;
-		if (yych <= '/') goto yy493;
-		goto yy614;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy493;
-			goto yy614;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy614;
-			goto yy493;
-		}
-	}
-yy612:
-	++p;
-	yych = *p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy493;
-			if (yych >= '.') goto yy499;
-		} else {
-			if (yych <= '/') goto yy493;
-			if (yych <= '9') goto yy614;
-			goto yy493;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy500;
-			if (yych <= '@') goto yy493;
-			goto yy614;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy614;
-			goto yy493;
-		}
-	}
-yy613:
-	++p;
-	yych = *p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy615;
-		if (yych <= '/') goto yy493;
-		goto yy616;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy493;
-			goto yy616;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy616;
-			goto yy493;
-		}
-	}
-yy614:
-	++p;
-	yych = *p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy493;
-			if (yych >= '.') goto yy499;
-		} else {
-			if (yych <= '/') goto yy493;
-			if (yych <= '9') goto yy616;
-			goto yy493;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy500;
-			if (yych <= '@') goto yy493;
-			goto yy616;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy616;
-			goto yy493;
-		}
-	}
-yy615:
-	++p;
-	yych = *p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy617;
-		if (yych <= '/') goto yy493;
-		goto yy618;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy493;
-			goto yy618;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy618;
-			goto yy493;
-		}
-	}
-yy616:
-	++p;
-	yych = *p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy493;
-			if (yych >= '.') goto yy499;
-		} else {
-			if (yych <= '/') goto yy493;
-			if (yych <= '9') goto yy618;
-			goto yy493;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy500;
-			if (yych <= '@') goto yy493;
-			goto yy618;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy618;
-			goto yy493;
-		}
-	}
-yy617:
-	++p;
-	yych = *p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy619;
-		if (yych <= '/') goto yy493;
-		goto yy620;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy493;
-			goto yy620;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy620;
-			goto yy493;
-		}
-	}
-yy618:
-	++p;
-	yych = *p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy493;
-			if (yych >= '.') goto yy499;
-		} else {
-			if (yych <= '/') goto yy493;
-			if (yych <= '9') goto yy620;
-			goto yy493;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy500;
-			if (yych <= '@') goto yy493;
-			goto yy620;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy620;
-			goto yy493;
-		}
-	}
-yy619:
-	++p;
-	yych = *p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy621;
-		if (yych <= '/') goto yy493;
-		goto yy622;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy493;
-			goto yy622;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy622;
-			goto yy493;
-		}
-	}
-yy620:
-	++p;
-	yych = *p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy493;
-			if (yych >= '.') goto yy499;
-		} else {
-			if (yych <= '/') goto yy493;
-			if (yych <= '9') goto yy622;
-			goto yy493;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy500;
-			if (yych <= '@') goto yy493;
-			goto yy622;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy622;
-			goto yy493;
-		}
-	}
-yy621:
-	++p;
-	yych = *p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy623;
-		if (yych <= '/') goto yy493;
-		goto yy624;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy493;
-			goto yy624;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy624;
-			goto yy493;
-		}
-	}
-yy622:
-	++p;
-	yych = *p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy493;
-			if (yych >= '.') goto yy499;
-		} else {
-			if (yych <= '/') goto yy493;
-			if (yych <= '9') goto yy624;
-			goto yy493;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy500;
-			if (yych <= '@') goto yy493;
-			goto yy624;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy624;
-			goto yy493;
-		}
-	}
-yy623:
-	++p;
-	yych = *p;
-	if (yych <= '@') {
-		if (yych <= '/') goto yy493;
-		if (yych <= '9') goto yy625;
-		goto yy493;
-	} else {
-		if (yych <= 'Z') goto yy625;
-		if (yych <= '`') goto yy493;
-		if (yych <= 'z') goto yy625;
-		goto yy493;
-	}
-yy624:
-	++p;
-	yych = *p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= '-') goto yy493;
-			goto yy499;
-		} else {
-			if (yych <= '/') goto yy493;
-			if (yych >= ':') goto yy493;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy500;
-			if (yych <= '@') goto yy493;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych >= '{') goto yy493;
-		}
-	}
-yy625:
-	++p;
-	yych = *p;
-	if (yych == '.') goto yy499;
-	if (yych == '>') goto yy500;
-	goto yy493;
-yy626:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy628;
-		if (yych <= '/') goto yy493;
-		goto yy629;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy493;
-			goto yy629;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy629;
-			goto yy493;
-		}
-	}
-yy627:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy493;
-			if (yych >= '.') goto yy499;
-		} else {
-			if (yych <= '/') goto yy493;
-			if (yych <= '9') goto yy629;
-			goto yy493;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy500;
-			if (yych <= '@') goto yy493;
-			goto yy629;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy629;
-			goto yy493;
-		}
-	}
-yy628:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy630;
-		if (yych <= '/') goto yy493;
-		goto yy631;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy493;
-			goto yy631;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy631;
-			goto yy493;
-		}
-	}
-yy629:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy493;
-			if (yych >= '.') goto yy499;
-		} else {
-			if (yych <= '/') goto yy493;
-			if (yych <= '9') goto yy631;
-			goto yy493;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy500;
-			if (yych <= '@') goto yy493;
-			goto yy631;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy631;
-			goto yy493;
-		}
-	}
-yy630:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy632;
-		if (yych <= '/') goto yy493;
-		goto yy633;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy493;
-			goto yy633;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy633;
-			goto yy493;
-		}
-	}
-yy631:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy493;
-			if (yych >= '.') goto yy499;
-		} else {
-			if (yych <= '/') goto yy493;
-			if (yych <= '9') goto yy633;
-			goto yy493;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy500;
-			if (yych <= '@') goto yy493;
-			goto yy633;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy633;
-			goto yy493;
-		}
-	}
-yy632:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy634;
-		if (yych <= '/') goto yy493;
-		goto yy635;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy493;
-			goto yy635;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy635;
-			goto yy493;
-		}
-	}
-yy633:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy493;
-			if (yych >= '.') goto yy499;
-		} else {
-			if (yych <= '/') goto yy493;
-			if (yych <= '9') goto yy635;
-			goto yy493;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy500;
-			if (yych <= '@') goto yy493;
-			goto yy635;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy635;
-			goto yy493;
-		}
-	}
-yy634:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy636;
-		if (yych <= '/') goto yy493;
-		goto yy637;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy493;
-			goto yy637;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy637;
-			goto yy493;
-		}
-	}
-yy635:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy493;
-			if (yych >= '.') goto yy499;
-		} else {
-			if (yych <= '/') goto yy493;
-			if (yych <= '9') goto yy637;
-			goto yy493;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy500;
-			if (yych <= '@') goto yy493;
-			goto yy637;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy637;
-			goto yy493;
-		}
-	}
-yy636:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy638;
-		if (yych <= '/') goto yy493;
-		goto yy639;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy493;
-			goto yy639;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy639;
-			goto yy493;
-		}
-	}
-yy637:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy493;
-			if (yych >= '.') goto yy499;
-		} else {
-			if (yych <= '/') goto yy493;
-			if (yych <= '9') goto yy639;
-			goto yy493;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy500;
-			if (yych <= '@') goto yy493;
-			goto yy639;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy639;
-			goto yy493;
-		}
-	}
-yy638:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy640;
-		if (yych <= '/') goto yy493;
-		goto yy641;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy493;
-			goto yy641;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy641;
-			goto yy493;
-		}
-	}
-yy639:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy493;
-			if (yych >= '.') goto yy499;
-		} else {
-			if (yych <= '/') goto yy493;
-			if (yych <= '9') goto yy641;
-			goto yy493;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy500;
-			if (yych <= '@') goto yy493;
-			goto yy641;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy641;
-			goto yy493;
-		}
-	}
-yy640:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy642;
-		if (yych <= '/') goto yy493;
-		goto yy643;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy493;
-			goto yy643;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy643;
-			goto yy493;
-		}
-	}
-yy641:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy493;
-			if (yych >= '.') goto yy499;
-		} else {
-			if (yych <= '/') goto yy493;
-			if (yych <= '9') goto yy643;
-			goto yy493;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy500;
-			if (yych <= '@') goto yy493;
-			goto yy643;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy643;
-			goto yy493;
-		}
-	}
-yy642:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy644;
-		if (yych <= '/') goto yy493;
-		goto yy645;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy493;
-			goto yy645;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy645;
-			goto yy493;
-		}
-	}
-yy643:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy493;
-			if (yych >= '.') goto yy499;
-		} else {
-			if (yych <= '/') goto yy493;
-			if (yych <= '9') goto yy645;
-			goto yy493;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy500;
-			if (yych <= '@') goto yy493;
-			goto yy645;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy645;
-			goto yy493;
-		}
-	}
-yy644:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy646;
-		if (yych <= '/') goto yy493;
-		goto yy647;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy493;
-			goto yy647;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy647;
-			goto yy493;
-		}
-	}
-yy645:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy493;
-			if (yych >= '.') goto yy499;
-		} else {
-			if (yych <= '/') goto yy493;
-			if (yych <= '9') goto yy647;
-			goto yy493;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy500;
-			if (yych <= '@') goto yy493;
-			goto yy647;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy647;
-			goto yy493;
-		}
-	}
-yy646:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy648;
-		if (yych <= '/') goto yy493;
-		goto yy649;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy493;
-			goto yy649;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy649;
-			goto yy493;
-		}
-	}
-yy647:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy493;
-			if (yych >= '.') goto yy499;
-		} else {
-			if (yych <= '/') goto yy493;
-			if (yych <= '9') goto yy649;
-			goto yy493;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy500;
-			if (yych <= '@') goto yy493;
-			goto yy649;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy649;
-			goto yy493;
-		}
-	}
-yy648:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy650;
-		if (yych <= '/') goto yy493;
-		goto yy651;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy493;
-			goto yy651;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy651;
-			goto yy493;
-		}
-	}
-yy649:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy493;
-			if (yych >= '.') goto yy499;
-		} else {
-			if (yych <= '/') goto yy493;
-			if (yych <= '9') goto yy651;
-			goto yy493;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy500;
-			if (yych <= '@') goto yy493;
-			goto yy651;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy651;
-			goto yy493;
-		}
-	}
-yy650:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy652;
-		if (yych <= '/') goto yy493;
-		goto yy653;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy493;
-			goto yy653;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy653;
-			goto yy493;
-		}
-	}
-yy651:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy493;
-			if (yych >= '.') goto yy499;
-		} else {
-			if (yych <= '/') goto yy493;
-			if (yych <= '9') goto yy653;
-			goto yy493;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy500;
-			if (yych <= '@') goto yy493;
-			goto yy653;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy653;
-			goto yy493;
-		}
-	}
-yy652:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy654;
-		if (yych <= '/') goto yy493;
-		goto yy655;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy493;
-			goto yy655;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy655;
-			goto yy493;
-		}
-	}
-yy653:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy493;
-			if (yych >= '.') goto yy499;
-		} else {
-			if (yych <= '/') goto yy493;
-			if (yych <= '9') goto yy655;
-			goto yy493;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy500;
-			if (yych <= '@') goto yy493;
-			goto yy655;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy655;
-			goto yy493;
-		}
-	}
-yy654:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy656;
-		if (yych <= '/') goto yy493;
-		goto yy657;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy493;
-			goto yy657;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy657;
-			goto yy493;
-		}
-	}
-yy655:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy493;
-			if (yych >= '.') goto yy499;
-		} else {
-			if (yych <= '/') goto yy493;
-			if (yych <= '9') goto yy657;
-			goto yy493;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy500;
-			if (yych <= '@') goto yy493;
-			goto yy657;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy657;
-			goto yy493;
-		}
-	}
-yy656:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy658;
-		if (yych <= '/') goto yy493;
-		goto yy659;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy493;
-			goto yy659;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy659;
-			goto yy493;
-		}
-	}
-yy657:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy493;
-			if (yych >= '.') goto yy499;
-		} else {
-			if (yych <= '/') goto yy493;
-			if (yych <= '9') goto yy659;
-			goto yy493;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy500;
-			if (yych <= '@') goto yy493;
-			goto yy659;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy659;
-			goto yy493;
-		}
-	}
-yy658:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy660;
-		if (yych <= '/') goto yy493;
-		goto yy661;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy493;
-			goto yy661;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy661;
-			goto yy493;
-		}
-	}
-yy659:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy493;
-			if (yych >= '.') goto yy499;
-		} else {
-			if (yych <= '/') goto yy493;
-			if (yych <= '9') goto yy661;
-			goto yy493;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy500;
-			if (yych <= '@') goto yy493;
-			goto yy661;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy661;
-			goto yy493;
-		}
-	}
-yy660:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy662;
-		if (yych <= '/') goto yy493;
-		goto yy663;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy493;
-			goto yy663;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy663;
-			goto yy493;
-		}
-	}
-yy661:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy493;
-			if (yych >= '.') goto yy499;
-		} else {
-			if (yych <= '/') goto yy493;
-			if (yych <= '9') goto yy663;
-			goto yy493;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy500;
-			if (yych <= '@') goto yy493;
-			goto yy663;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy663;
-			goto yy493;
-		}
-	}
-yy662:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy664;
-		if (yych <= '/') goto yy493;
-		goto yy665;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy493;
-			goto yy665;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy665;
-			goto yy493;
-		}
-	}
-yy663:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy493;
-			if (yych >= '.') goto yy499;
-		} else {
-			if (yych <= '/') goto yy493;
-			if (yych <= '9') goto yy665;
-			goto yy493;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy500;
-			if (yych <= '@') goto yy493;
-			goto yy665;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy665;
-			goto yy493;
-		}
-	}
-yy664:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy666;
-		if (yych <= '/') goto yy493;
-		goto yy667;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy493;
-			goto yy667;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy667;
-			goto yy493;
-		}
-	}
-yy665:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy493;
-			if (yych >= '.') goto yy499;
-		} else {
-			if (yych <= '/') goto yy493;
-			if (yych <= '9') goto yy667;
-			goto yy493;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy500;
-			if (yych <= '@') goto yy493;
-			goto yy667;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy667;
-			goto yy493;
-		}
-	}
-yy666:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy668;
-		if (yych <= '/') goto yy493;
-		goto yy669;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy493;
-			goto yy669;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy669;
-			goto yy493;
-		}
-	}
-yy667:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy493;
-			if (yych >= '.') goto yy499;
-		} else {
-			if (yych <= '/') goto yy493;
-			if (yych <= '9') goto yy669;
-			goto yy493;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy500;
-			if (yych <= '@') goto yy493;
-			goto yy669;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy669;
-			goto yy493;
-		}
-	}
-yy668:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy670;
-		if (yych <= '/') goto yy493;
-		goto yy671;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy493;
-			goto yy671;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy671;
-			goto yy493;
-		}
-	}
-yy669:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy493;
-			if (yych >= '.') goto yy499;
-		} else {
-			if (yych <= '/') goto yy493;
-			if (yych <= '9') goto yy671;
-			goto yy493;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy500;
-			if (yych <= '@') goto yy493;
-			goto yy671;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy671;
-			goto yy493;
-		}
-	}
-yy670:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy672;
-		if (yych <= '/') goto yy493;
-		goto yy673;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy493;
-			goto yy673;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy673;
-			goto yy493;
-		}
-	}
-yy671:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy493;
-			if (yych >= '.') goto yy499;
-		} else {
-			if (yych <= '/') goto yy493;
-			if (yych <= '9') goto yy673;
-			goto yy493;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy500;
-			if (yych <= '@') goto yy493;
-			goto yy673;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy673;
-			goto yy493;
-		}
-	}
-yy672:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy674;
-		if (yych <= '/') goto yy493;
-		goto yy675;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy493;
-			goto yy675;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy675;
-			goto yy493;
-		}
-	}
-yy673:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy493;
-			if (yych >= '.') goto yy499;
-		} else {
-			if (yych <= '/') goto yy493;
-			if (yych <= '9') goto yy675;
-			goto yy493;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy500;
-			if (yych <= '@') goto yy493;
-			goto yy675;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy675;
-			goto yy493;
-		}
-	}
-yy674:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy676;
-		if (yych <= '/') goto yy493;
-		goto yy677;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy493;
-			goto yy677;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy677;
-			goto yy493;
-		}
-	}
-yy675:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy493;
-			if (yych >= '.') goto yy499;
-		} else {
-			if (yych <= '/') goto yy493;
-			if (yych <= '9') goto yy677;
-			goto yy493;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy500;
-			if (yych <= '@') goto yy493;
-			goto yy677;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy677;
-			goto yy493;
-		}
-	}
-yy676:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy678;
-		if (yych <= '/') goto yy493;
-		goto yy679;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy493;
-			goto yy679;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy679;
-			goto yy493;
-		}
-	}
-yy677:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy493;
-			if (yych >= '.') goto yy499;
-		} else {
-			if (yych <= '/') goto yy493;
-			if (yych <= '9') goto yy679;
-			goto yy493;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy500;
-			if (yych <= '@') goto yy493;
-			goto yy679;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy679;
-			goto yy493;
-		}
-	}
-yy678:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy680;
-		if (yych <= '/') goto yy493;
-		goto yy681;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy493;
-			goto yy681;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy681;
-			goto yy493;
-		}
-	}
-yy679:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy493;
-			if (yych >= '.') goto yy499;
-		} else {
-			if (yych <= '/') goto yy493;
-			if (yych <= '9') goto yy681;
-			goto yy493;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy500;
-			if (yych <= '@') goto yy493;
-			goto yy681;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy681;
-			goto yy493;
-		}
-	}
-yy680:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy682;
-		if (yych <= '/') goto yy493;
-		goto yy683;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy493;
-			goto yy683;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy683;
-			goto yy493;
-		}
-	}
-yy681:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy493;
-			if (yych >= '.') goto yy499;
-		} else {
-			if (yych <= '/') goto yy493;
-			if (yych <= '9') goto yy683;
-			goto yy493;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy500;
-			if (yych <= '@') goto yy493;
-			goto yy683;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy683;
-			goto yy493;
-		}
-	}
-yy682:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy684;
-		if (yych <= '/') goto yy493;
-		goto yy685;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy493;
-			goto yy685;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy685;
-			goto yy493;
-		}
-	}
-yy683:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy493;
-			if (yych >= '.') goto yy499;
-		} else {
-			if (yych <= '/') goto yy493;
-			if (yych <= '9') goto yy685;
-			goto yy493;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy500;
-			if (yych <= '@') goto yy493;
-			goto yy685;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy685;
-			goto yy493;
-		}
-	}
-yy684:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy686;
-		if (yych <= '/') goto yy493;
-		goto yy687;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy493;
-			goto yy687;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy687;
-			goto yy493;
-		}
-	}
-yy685:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy493;
-			if (yych >= '.') goto yy499;
-		} else {
-			if (yych <= '/') goto yy493;
-			if (yych <= '9') goto yy687;
-			goto yy493;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy500;
-			if (yych <= '@') goto yy493;
-			goto yy687;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy687;
-			goto yy493;
-		}
-	}
-yy686:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy688;
-		if (yych <= '/') goto yy493;
-		goto yy689;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy493;
-			goto yy689;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy689;
-			goto yy493;
-		}
-	}
-yy687:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy493;
-			if (yych >= '.') goto yy499;
-		} else {
-			if (yych <= '/') goto yy493;
-			if (yych <= '9') goto yy689;
-			goto yy493;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy500;
-			if (yych <= '@') goto yy493;
-			goto yy689;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy689;
-			goto yy493;
-		}
-	}
-yy688:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy690;
-		if (yych <= '/') goto yy493;
-		goto yy691;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy493;
-			goto yy691;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy691;
-			goto yy493;
-		}
-	}
-yy689:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy493;
-			if (yych >= '.') goto yy499;
-		} else {
-			if (yych <= '/') goto yy493;
-			if (yych <= '9') goto yy691;
-			goto yy493;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy500;
-			if (yych <= '@') goto yy493;
-			goto yy691;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy691;
-			goto yy493;
-		}
-	}
-yy690:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy692;
-		if (yych <= '/') goto yy493;
-		goto yy693;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy493;
-			goto yy693;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy693;
-			goto yy493;
-		}
-	}
-yy691:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy493;
-			if (yych >= '.') goto yy499;
-		} else {
-			if (yych <= '/') goto yy493;
-			if (yych <= '9') goto yy693;
-			goto yy493;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy500;
-			if (yych <= '@') goto yy493;
-			goto yy693;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy693;
-			goto yy493;
-		}
-	}
-yy692:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy694;
-		if (yych <= '/') goto yy493;
-		goto yy695;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy493;
-			goto yy695;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy695;
-			goto yy493;
-		}
-	}
-yy693:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy493;
-			if (yych >= '.') goto yy499;
-		} else {
-			if (yych <= '/') goto yy493;
-			if (yych <= '9') goto yy695;
-			goto yy493;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy500;
-			if (yych <= '@') goto yy493;
-			goto yy695;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy695;
-			goto yy493;
-		}
-	}
-yy694:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy696;
-		if (yych <= '/') goto yy493;
-		goto yy697;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy493;
-			goto yy697;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy697;
-			goto yy493;
-		}
-	}
-yy695:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy493;
-			if (yych >= '.') goto yy499;
-		} else {
-			if (yych <= '/') goto yy493;
-			if (yych <= '9') goto yy697;
-			goto yy493;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy500;
-			if (yych <= '@') goto yy493;
-			goto yy697;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy697;
-			goto yy493;
-		}
-	}
-yy696:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy698;
-		if (yych <= '/') goto yy493;
-		goto yy699;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy493;
-			goto yy699;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy699;
-			goto yy493;
-		}
-	}
-yy697:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy493;
-			if (yych >= '.') goto yy499;
-		} else {
-			if (yych <= '/') goto yy493;
-			if (yych <= '9') goto yy699;
-			goto yy493;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy500;
-			if (yych <= '@') goto yy493;
-			goto yy699;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy699;
-			goto yy493;
-		}
-	}
-yy698:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy700;
-		if (yych <= '/') goto yy493;
-		goto yy701;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy493;
-			goto yy701;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy701;
-			goto yy493;
-		}
-	}
-yy699:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy493;
-			if (yych >= '.') goto yy499;
-		} else {
-			if (yych <= '/') goto yy493;
-			if (yych <= '9') goto yy701;
-			goto yy493;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy500;
-			if (yych <= '@') goto yy493;
-			goto yy701;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy701;
-			goto yy493;
-		}
-	}
-yy700:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy702;
-		if (yych <= '/') goto yy493;
-		goto yy703;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy493;
-			goto yy703;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy703;
-			goto yy493;
-		}
-	}
-yy701:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy493;
-			if (yych >= '.') goto yy499;
-		} else {
-			if (yych <= '/') goto yy493;
-			if (yych <= '9') goto yy703;
-			goto yy493;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy500;
-			if (yych <= '@') goto yy493;
-			goto yy703;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy703;
-			goto yy493;
-		}
-	}
-yy702:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy704;
-		if (yych <= '/') goto yy493;
-		goto yy705;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy493;
-			goto yy705;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy705;
-			goto yy493;
-		}
-	}
-yy703:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy493;
-			if (yych >= '.') goto yy499;
-		} else {
-			if (yych <= '/') goto yy493;
-			if (yych <= '9') goto yy705;
-			goto yy493;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy500;
-			if (yych <= '@') goto yy493;
-			goto yy705;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy705;
-			goto yy493;
-		}
-	}
-yy704:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy706;
-		if (yych <= '/') goto yy493;
-		goto yy707;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy493;
-			goto yy707;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy707;
-			goto yy493;
-		}
-	}
-yy705:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy493;
-			if (yych >= '.') goto yy499;
-		} else {
-			if (yych <= '/') goto yy493;
-			if (yych <= '9') goto yy707;
-			goto yy493;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy500;
-			if (yych <= '@') goto yy493;
-			goto yy707;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy707;
-			goto yy493;
-		}
-	}
-yy706:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy708;
-		if (yych <= '/') goto yy493;
-		goto yy709;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy493;
-			goto yy709;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy709;
-			goto yy493;
-		}
-	}
-yy707:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy493;
-			if (yych >= '.') goto yy499;
-		} else {
-			if (yych <= '/') goto yy493;
-			if (yych <= '9') goto yy709;
-			goto yy493;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy500;
-			if (yych <= '@') goto yy493;
-			goto yy709;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy709;
-			goto yy493;
-		}
-	}
-yy708:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy710;
-		if (yych <= '/') goto yy493;
-		goto yy711;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy493;
-			goto yy711;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy711;
-			goto yy493;
-		}
-	}
-yy709:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy493;
-			if (yych >= '.') goto yy499;
-		} else {
-			if (yych <= '/') goto yy493;
-			if (yych <= '9') goto yy711;
-			goto yy493;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy500;
-			if (yych <= '@') goto yy493;
-			goto yy711;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy711;
-			goto yy493;
-		}
-	}
-yy710:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy712;
-		if (yych <= '/') goto yy493;
-		goto yy713;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy493;
-			goto yy713;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy713;
-			goto yy493;
-		}
-	}
-yy711:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy493;
-			if (yych >= '.') goto yy499;
-		} else {
-			if (yych <= '/') goto yy493;
-			if (yych <= '9') goto yy713;
-			goto yy493;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy500;
-			if (yych <= '@') goto yy493;
-			goto yy713;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy713;
-			goto yy493;
-		}
-	}
-yy712:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy714;
-		if (yych <= '/') goto yy493;
-		goto yy715;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy493;
-			goto yy715;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy715;
-			goto yy493;
-		}
-	}
-yy713:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy493;
-			if (yych >= '.') goto yy499;
-		} else {
-			if (yych <= '/') goto yy493;
-			if (yych <= '9') goto yy715;
-			goto yy493;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy500;
-			if (yych <= '@') goto yy493;
-			goto yy715;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy715;
-			goto yy493;
-		}
-	}
-yy714:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy716;
-		if (yych <= '/') goto yy493;
-		goto yy717;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy493;
-			goto yy717;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy717;
-			goto yy493;
-		}
-	}
-yy715:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy493;
-			if (yych >= '.') goto yy499;
-		} else {
-			if (yych <= '/') goto yy493;
-			if (yych <= '9') goto yy717;
-			goto yy493;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy500;
-			if (yych <= '@') goto yy493;
-			goto yy717;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy717;
-			goto yy493;
-		}
-	}
-yy716:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy718;
-		if (yych <= '/') goto yy493;
-		goto yy719;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy493;
-			goto yy719;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy719;
-			goto yy493;
-		}
-	}
-yy717:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy493;
-			if (yych >= '.') goto yy499;
-		} else {
-			if (yych <= '/') goto yy493;
-			if (yych <= '9') goto yy719;
-			goto yy493;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy500;
-			if (yych <= '@') goto yy493;
-			goto yy719;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy719;
-			goto yy493;
-		}
-	}
-yy718:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy720;
-		if (yych <= '/') goto yy493;
-		goto yy721;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy493;
-			goto yy721;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy721;
-			goto yy493;
-		}
-	}
-yy719:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy493;
-			if (yych >= '.') goto yy499;
-		} else {
-			if (yych <= '/') goto yy493;
-			if (yych <= '9') goto yy721;
-			goto yy493;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy500;
-			if (yych <= '@') goto yy493;
-			goto yy721;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy721;
-			goto yy493;
-		}
-	}
-yy720:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy722;
-		if (yych <= '/') goto yy493;
-		goto yy723;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy493;
-			goto yy723;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy723;
-			goto yy493;
-		}
-	}
-yy721:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy493;
-			if (yych >= '.') goto yy499;
-		} else {
-			if (yych <= '/') goto yy493;
-			if (yych <= '9') goto yy723;
-			goto yy493;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy500;
-			if (yych <= '@') goto yy493;
-			goto yy723;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy723;
-			goto yy493;
-		}
-	}
-yy722:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy724;
-		if (yych <= '/') goto yy493;
-		goto yy725;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy493;
-			goto yy725;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy725;
-			goto yy493;
-		}
-	}
-yy723:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy493;
-			if (yych >= '.') goto yy499;
-		} else {
-			if (yych <= '/') goto yy493;
-			if (yych <= '9') goto yy725;
-			goto yy493;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy500;
-			if (yych <= '@') goto yy493;
-			goto yy725;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy725;
-			goto yy493;
-		}
-	}
-yy724:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy726;
-		if (yych <= '/') goto yy493;
-		goto yy727;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy493;
-			goto yy727;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy727;
-			goto yy493;
-		}
-	}
-yy725:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy493;
-			if (yych >= '.') goto yy499;
-		} else {
-			if (yych <= '/') goto yy493;
-			if (yych <= '9') goto yy727;
-			goto yy493;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy500;
-			if (yych <= '@') goto yy493;
-			goto yy727;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy727;
-			goto yy493;
-		}
-	}
-yy726:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy728;
-		if (yych <= '/') goto yy493;
-		goto yy729;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy493;
-			goto yy729;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy729;
-			goto yy493;
-		}
-	}
-yy727:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy493;
-			if (yych >= '.') goto yy499;
-		} else {
-			if (yych <= '/') goto yy493;
-			if (yych <= '9') goto yy729;
-			goto yy493;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy500;
-			if (yych <= '@') goto yy493;
-			goto yy729;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy729;
-			goto yy493;
-		}
-	}
-yy728:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy730;
-		if (yych <= '/') goto yy493;
-		goto yy731;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy493;
-			goto yy731;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy731;
-			goto yy493;
-		}
-	}
-yy729:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy493;
-			if (yych >= '.') goto yy499;
-		} else {
-			if (yych <= '/') goto yy493;
-			if (yych <= '9') goto yy731;
-			goto yy493;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy500;
-			if (yych <= '@') goto yy493;
-			goto yy731;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy731;
-			goto yy493;
-		}
-	}
-yy730:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy732;
-		if (yych <= '/') goto yy493;
-		goto yy733;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy493;
-			goto yy733;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy733;
-			goto yy493;
-		}
-	}
-yy731:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy493;
-			if (yych >= '.') goto yy499;
-		} else {
-			if (yych <= '/') goto yy493;
-			if (yych <= '9') goto yy733;
-			goto yy493;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy500;
-			if (yych <= '@') goto yy493;
-			goto yy733;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy733;
-			goto yy493;
-		}
-	}
-yy732:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy734;
-		if (yych <= '/') goto yy493;
-		goto yy735;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy493;
-			goto yy735;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy735;
-			goto yy493;
-		}
-	}
-yy733:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy493;
-			if (yych >= '.') goto yy499;
-		} else {
-			if (yych <= '/') goto yy493;
-			if (yych <= '9') goto yy735;
-			goto yy493;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy500;
-			if (yych <= '@') goto yy493;
-			goto yy735;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy735;
-			goto yy493;
-		}
-	}
-yy734:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy736;
-		if (yych <= '/') goto yy493;
-		goto yy737;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy493;
-			goto yy737;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy737;
-			goto yy493;
-		}
-	}
-yy735:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy493;
-			if (yych >= '.') goto yy499;
-		} else {
-			if (yych <= '/') goto yy493;
-			if (yych <= '9') goto yy737;
-			goto yy493;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy500;
-			if (yych <= '@') goto yy493;
-			goto yy737;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy737;
-			goto yy493;
-		}
-	}
-yy736:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy738;
-		if (yych <= '/') goto yy493;
-		goto yy739;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy493;
-			goto yy739;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy739;
-			goto yy493;
-		}
-	}
-yy737:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy493;
-			if (yych >= '.') goto yy499;
-		} else {
-			if (yych <= '/') goto yy493;
-			if (yych <= '9') goto yy739;
-			goto yy493;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy500;
-			if (yych <= '@') goto yy493;
-			goto yy739;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy739;
-			goto yy493;
-		}
-	}
-yy738:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy740;
-		if (yych <= '/') goto yy493;
-		goto yy741;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy493;
-			goto yy741;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy741;
-			goto yy493;
-		}
-	}
-yy739:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy493;
-			if (yych >= '.') goto yy499;
-		} else {
-			if (yych <= '/') goto yy493;
-			if (yych <= '9') goto yy741;
-			goto yy493;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy500;
-			if (yych <= '@') goto yy493;
-			goto yy741;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy741;
-			goto yy493;
-		}
-	}
-yy740:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy742;
-		if (yych <= '/') goto yy493;
-		goto yy743;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy493;
-			goto yy743;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy743;
-			goto yy493;
-		}
-	}
-yy741:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy493;
-			if (yych >= '.') goto yy499;
-		} else {
-			if (yych <= '/') goto yy493;
-			if (yych <= '9') goto yy743;
-			goto yy493;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy500;
-			if (yych <= '@') goto yy493;
-			goto yy743;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy743;
-			goto yy493;
-		}
-	}
-yy742:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy744;
-		if (yych <= '/') goto yy493;
-		goto yy745;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy493;
-			goto yy745;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy745;
-			goto yy493;
-		}
-	}
-yy743:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy493;
-			if (yych >= '.') goto yy499;
-		} else {
-			if (yych <= '/') goto yy493;
-			if (yych <= '9') goto yy745;
-			goto yy493;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy500;
-			if (yych <= '@') goto yy493;
-			goto yy745;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy745;
-			goto yy493;
-		}
-	}
-yy744:
-	yych = *++p;
-	if (yych <= '@') {
-		if (yych <= '/') goto yy493;
-		if (yych <= '9') goto yy625;
-		goto yy493;
-	} else {
-		if (yych <= 'Z') goto yy625;
-		if (yych <= '`') goto yy493;
-		if (yych <= 'z') goto yy625;
-		goto yy493;
-	}
-yy745:
-	++p;
-	if ((yych = *p) <= '=') {
-		if (yych <= '.') {
-			if (yych <= '-') goto yy493;
-			goto yy499;
-		} else {
-			if (yych <= '/') goto yy493;
-			if (yych <= '9') goto yy625;
-			goto yy493;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy500;
-			if (yych <= '@') goto yy493;
-			goto yy625;
-		} else {
-			if (yych <= '`') goto yy493;
-			if (yych <= 'z') goto yy625;
-			goto yy493;
-		}
-	}
-}
-
-}
-
-// Try to match an HTML tag after first <, returning num of chars matched.
-int _scan_html_tag(const unsigned char *p)
-{
-  const unsigned char *marker = NULL;
-  const unsigned char *start = p;
-
-{
-	unsigned char yych;
-	static const unsigned char yybm[] = {
-		/* table 1 .. 8: 0 */
-		  0, 230, 230, 230, 230, 230, 230, 230, 
-		230, 199, 199, 199, 199, 199, 230, 230, 
-		230, 230, 230, 230, 230, 230, 230, 230, 
-		230, 230, 230, 230, 230, 230, 230, 230, 
-		199, 230,  70, 230, 230, 230, 230, 134, 
-		230, 230, 230, 230, 230, 246, 246, 230, 
-		254, 254, 254, 254, 254, 254, 254, 254, 
-		254, 254, 246, 230, 198, 198, 196, 230, 
-		230, 254, 254, 254, 254, 254, 254, 254, 
-		254, 254, 254, 254, 254, 254, 254, 254, 
-		254, 254, 254, 254, 254, 254, 254, 254, 
-		254, 254, 254, 230, 230, 226, 230, 246, 
-		198, 254, 254, 254, 254, 254, 254, 254, 
-		254, 254, 254, 254, 254, 254, 254, 254, 
-		254, 254, 254, 254, 254, 254, 254, 254, 
-		254, 254, 254, 230, 230, 230, 230, 230, 
-		230, 230, 230, 230, 230, 230, 230, 230, 
-		230, 230, 230, 230, 230, 230, 230, 230, 
-		230, 230, 230, 230, 230, 230, 230, 230, 
-		230, 230, 230, 230, 230, 230, 230, 230, 
-		230, 230, 230, 230, 230, 230, 230, 230, 
-		230, 230, 230, 230, 230, 230, 230, 230, 
-		230, 230, 230, 230, 230, 230, 230, 230, 
-		230, 230, 230, 230, 230, 230, 230, 230, 
-		230, 230, 230, 230, 230, 230, 230, 230, 
-		230, 230, 230, 230, 230, 230, 230, 230, 
-		230, 230, 230, 230, 230, 230, 230, 230, 
-		230, 230, 230, 230, 230, 230, 230, 230, 
-		230, 230, 230, 230, 230, 230, 230, 230, 
-		230, 230, 230, 230, 230, 230, 230, 230, 
-		230, 230, 230, 230, 230, 230, 230, 230, 
-		230, 230, 230, 230, 230, 230, 230, 230, 
-		/* table 9 .. 11: 256 */
-		  0, 160, 160, 160, 160, 160, 160, 160, 
-		160, 160, 160, 160, 160, 160, 160, 160, 
-		160, 160, 160, 160, 160, 160, 160, 160, 
-		160, 160, 160, 160, 160, 160, 160, 160, 
-		160, 160, 160, 160, 160, 160, 160, 160, 
-		160, 160, 160, 160, 160,  32, 160, 160, 
-		160, 160, 160, 160, 160, 160, 160, 160, 
-		160, 160, 160, 160, 160, 160, 160, 128, 
-		160, 224, 224, 224, 224, 224, 224, 224, 
-		224, 224, 224, 224, 224, 224, 224, 224, 
-		224, 224, 224, 224, 224, 224, 224, 224, 
-		224, 224, 224, 160, 160, 160, 160, 160, 
-		160, 160, 160, 160, 160, 160, 160, 160, 
-		160, 160, 160, 160, 160, 160, 160, 160, 
-		160, 160, 160, 160, 160, 160, 160, 160, 
-		160, 160, 160, 160, 160, 160, 160, 160, 
-		160, 160, 160, 160, 160, 160, 160, 160, 
-		160, 160, 160, 160, 160, 160, 160, 160, 
-		160, 160, 160, 160, 160, 160, 160, 160, 
-		160, 160, 160, 160, 160, 160, 160, 160, 
-		160, 160, 160, 160, 160, 160, 160, 160, 
-		160, 160, 160, 160, 160, 160, 160, 160, 
-		160, 160, 160, 160, 160, 160, 160, 160, 
-		160, 160, 160, 160, 160, 160, 160, 160, 
-		160, 160, 160, 160, 160, 160, 160, 160, 
-		160, 160, 160, 160, 160, 160, 160, 160, 
-		160, 160, 160, 160, 160, 160, 160, 160, 
-		160, 160, 160, 160, 160, 160, 160, 160, 
-		160, 160, 160, 160, 160, 160, 160, 160, 
-		160, 160, 160, 160, 160, 160, 160, 160, 
-		160, 160, 160, 160, 160, 160, 160, 160, 
-		160, 160, 160, 160, 160, 160, 160, 160, 
-	};
-	yych = *p;
-	if (yych <= '/') {
-		if (yych <= ' ') {
-			if (yych != '\n') goto yy753;
-		} else {
-			if (yych <= '!') goto yy751;
-			if (yych <= '.') goto yy753;
-			goto yy750;
-		}
-	} else {
-		if (yych <= '@') {
-			if (yych == '?') goto yy752;
-			goto yy753;
-		} else {
-			if (yych <= 'Z') goto yy749;
-			if (yych <= '`') goto yy753;
-			if (yych <= 'z') goto yy749;
-			goto yy753;
-		}
-	}
-yy748:
-	{ return 0; }
-yy749:
-	yych = *(marker = ++p);
-	if (yych <= '9') {
-		if (yych <= 0x1F) {
-			if (yych <= 0x08) goto yy748;
-			if (yych <= '\r') goto yy790;
-			goto yy748;
-		} else {
-			if (yych <= ' ') goto yy790;
-			if (yych <= '.') goto yy748;
-			if (yych <= '/') goto yy792;
-			goto yy788;
-		}
-	} else {
-		if (yych <= '@') {
-			if (yych == '>') goto yy758;
-			goto yy748;
-		} else {
-			if (yych <= 'Z') goto yy788;
-			if (yych <= '`') goto yy748;
-			if (yych <= 'z') goto yy788;
-			goto yy748;
-		}
-	}
-yy750:
-	yych = *(marker = ++p);
-	if (yych <= '@') goto yy748;
-	if (yych <= 'Z') goto yy784;
-	if (yych <= '`') goto yy748;
-	if (yych <= 'z') goto yy784;
-	goto yy748;
-yy751:
-	yych = *(marker = ++p);
-	if (yybm[256+yych] & 64) {
-		goto yy761;
-	}
-	if (yych == '-') goto yy763;
-	if (yych == '[') goto yy760;
-	goto yy748;
-yy752:
-	yych = *(marker = ++p);
-	if (yych <= 0x00) goto yy748;
-	goto yy755;
-yy753:
-	yych = *++p;
-	goto yy748;
-yy754:
-	++p;
-	yych = *p;
-yy755:
-	if (yybm[256+yych] & 32) {
-		goto yy754;
-	}
-	if (yych >= 0x01) goto yy757;
-yy756:
-	p = marker;
-	goto yy748;
-yy757:
-	++p;
-	yych = *p;
-	if (yych <= 0x00) goto yy756;
-	if (yych != '>') goto yy754;
-yy758:
-	++p;
-	{ return (p - start); }
-yy760:
-	yych = *++p;
-	if (yych == 'C') goto yy775;
-	if (yych == 'c') goto yy775;
-	goto yy756;
-yy761:
-	++p;
-	yych = *p;
-	if (yybm[0+yych] & 1) {
-		goto yy771;
-	}
-	if (yych <= '@') goto yy756;
-	if (yych <= 'Z') goto yy761;
-	goto yy756;
-yy763:
-	yych = *++p;
-	if (yych != '-') goto yy756;
-	yych = *++p;
-	if (yych == '-') goto yy765;
-	if (yych == '>') goto yy756;
-	goto yy767;
-yy765:
-	yych = *++p;
-	if (yych == '-') goto yy770;
-	if (yych == '>') goto yy756;
-	goto yy767;
-yy766:
-	++p;
-	yych = *p;
-yy767:
-	if (yybm[256+yych] & 128) {
-		goto yy766;
-	}
-	if (yych <= 0x00) goto yy756;
-	++p;
-	yych = *p;
-	if (yybm[256+yych] & 128) {
-		goto yy766;
-	}
-	if (yych <= 0x00) goto yy756;
-	yych = *++p;
-	if (yych == '>') goto yy758;
-	goto yy756;
-yy770:
-	yych = *++p;
-	if (yych == '>') goto yy758;
-	goto yy756;
-yy771:
-	++p;
-	yych = *p;
-	if (yybm[0+yych] & 1) {
-		goto yy771;
-	}
-	if (yych <= 0x00) goto yy756;
-	if (yych == '>') goto yy758;
-yy773:
-	++p;
-	yych = *p;
-	if (yybm[0+yych] & 2) {
-		goto yy773;
-	}
-	if (yych <= 0x00) goto yy756;
-	goto yy758;
-yy775:
-	yych = *++p;
-	if (yych == 'D') goto yy776;
-	if (yych != 'd') goto yy756;
-yy776:
-	yych = *++p;
-	if (yych == 'A') goto yy777;
-	if (yych != 'a') goto yy756;
-yy777:
-	yych = *++p;
-	if (yych == 'T') goto yy778;
-	if (yych != 't') goto yy756;
-yy778:
-	yych = *++p;
-	if (yych == 'A') goto yy779;
-	if (yych != 'a') goto yy756;
-yy779:
-	yych = *++p;
-	if (yych != '[') goto yy756;
-yy780:
-	++p;
-	yych = *p;
-	if (yybm[0+yych] & 4) {
-		goto yy780;
-	}
-	if (yych <= 0x00) goto yy756;
-	++p;
-	yych = *p;
-	if (yybm[0+yych] & 4) {
-		goto yy780;
-	}
-	if (yych <= 0x00) goto yy756;
-	++p;
-	yych = *p;
-	if (yych <= 0x00) goto yy756;
-	if (yych == '>') goto yy758;
-	goto yy780;
-yy784:
-	++p;
-	yych = *p;
-	if (yybm[0+yych] & 8) {
-		goto yy784;
-	}
-	if (yych <= 0x1F) {
-		if (yych <= 0x08) goto yy756;
-		if (yych >= 0x0E) goto yy756;
-	} else {
-		if (yych <= ' ') goto yy786;
-		if (yych == '>') goto yy758;
-		goto yy756;
-	}
-yy786:
-	++p;
-	yych = *p;
-	if (yych <= 0x1F) {
-		if (yych <= 0x08) goto yy756;
-		if (yych <= '\r') goto yy786;
-		goto yy756;
-	} else {
-		if (yych <= ' ') goto yy786;
-		if (yych == '>') goto yy758;
-		goto yy756;
-	}
-yy788:
-	++p;
-	yych = *p;
-	if (yych <= '9') {
-		if (yych <= 0x1F) {
-			if (yych <= 0x08) goto yy756;
-			if (yych >= 0x0E) goto yy756;
-		} else {
-			if (yych <= ' ') goto yy790;
-			if (yych <= '.') goto yy756;
-			if (yych <= '/') goto yy792;
-			goto yy788;
-		}
-	} else {
-		if (yych <= '@') {
-			if (yych == '>') goto yy758;
-			goto yy756;
-		} else {
-			if (yych <= 'Z') goto yy788;
-			if (yych <= '`') goto yy756;
-			if (yych <= 'z') goto yy788;
-			goto yy756;
-		}
-	}
-yy790:
-	++p;
-	yych = *p;
-	if (yych <= ':') {
-		if (yych <= ' ') {
-			if (yych <= 0x08) goto yy756;
-			if (yych <= '\r') goto yy790;
-			if (yych <= 0x1F) goto yy756;
-			goto yy790;
-		} else {
-			if (yych == '/') goto yy792;
-			if (yych <= '9') goto yy756;
-			goto yy793;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych == '>') goto yy758;
-			if (yych <= '@') goto yy756;
-			goto yy793;
-		} else {
-			if (yych <= '_') {
-				if (yych <= '^') goto yy756;
-				goto yy793;
-			} else {
-				if (yych <= '`') goto yy756;
-				if (yych <= 'z') goto yy793;
-				goto yy756;
-			}
-		}
-	}
-yy792:
-	yych = *++p;
-	if (yych == '>') goto yy758;
-	goto yy756;
-yy793:
-	++p;
-	yych = *p;
-	if (yybm[0+yych] & 16) {
-		goto yy793;
-	}
-	if (yych <= '.') {
-		if (yych <= '\r') {
-			if (yych <= 0x08) goto yy756;
-		} else {
-			if (yych != ' ') goto yy756;
-		}
-	} else {
-		if (yych <= '<') {
-			if (yych <= '/') goto yy792;
-			goto yy756;
-		} else {
-			if (yych <= '=') goto yy797;
-			if (yych <= '>') goto yy758;
-			goto yy756;
-		}
-	}
-yy795:
-	++p;
-	yych = *p;
-	if (yych <= '<') {
-		if (yych <= ' ') {
-			if (yych <= 0x08) goto yy756;
-			if (yych <= '\r') goto yy795;
-			if (yych <= 0x1F) goto yy756;
-			goto yy795;
-		} else {
-			if (yych <= '/') {
-				if (yych <= '.') goto yy756;
-				goto yy792;
-			} else {
-				if (yych == ':') goto yy793;
-				goto yy756;
-			}
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '=') goto yy797;
-			if (yych <= '>') goto yy758;
-			if (yych <= '@') goto yy756;
-			goto yy793;
-		} else {
-			if (yych <= '_') {
-				if (yych <= '^') goto yy756;
-				goto yy793;
-			} else {
-				if (yych <= '`') goto yy756;
-				if (yych <= 'z') goto yy793;
-				goto yy756;
-			}
-		}
-	}
-yy797:
-	++p;
-	yych = *p;
-	if (yybm[0+yych] & 32) {
-		goto yy799;
-	}
-	if (yych <= 0x00) goto yy756;
-	if (yych <= '!') goto yy798;
-	if (yych <= '"') goto yy803;
-	if (yych <= ';') goto yy801;
-	goto yy756;
-yy798:
-	++p;
-	yych = *p;
-	if (yybm[0+yych] & 32) {
-		goto yy799;
-	}
-	if (yych <= '"') {
-		if (yych <= 0x00) goto yy756;
-		if (yych <= '!') goto yy812;
-		goto yy803;
-	} else {
-		if (yych <= ';') goto yy801;
-		if (yych == '>') goto yy758;
-		goto yy756;
-	}
-yy799:
-	++p;
-	yych = *p;
-	if (yybm[0+yych] & 32) {
-		goto yy799;
-	}
-	if (yych <= 0x00) goto yy756;
-	if (yych <= '!') goto yy806;
-	if (yych == '>') goto yy758;
-	goto yy756;
-yy801:
-	++p;
-	yych = *p;
-	if (yybm[0+yych] & 64) {
-		goto yy801;
-	}
-	if (yych <= 0x00) goto yy756;
-	goto yy805;
-yy803:
-	++p;
-	yych = *p;
-	if (yybm[0+yych] & 128) {
-		goto yy803;
-	}
-	if (yych <= 0x00) goto yy756;
-yy805:
-	++p;
-	yych = *p;
-	if (yych <= ' ') {
-		if (yych <= 0x08) goto yy756;
-		if (yych <= '\r') goto yy790;
-		if (yych <= 0x1F) goto yy756;
-		goto yy790;
-	} else {
-		if (yych <= '/') {
-			if (yych <= '.') goto yy756;
-			goto yy792;
-		} else {
-			if (yych == '>') goto yy758;
-			goto yy756;
-		}
-	}
-yy806:
-	++p;
-	yych = *p;
-	if (yych <= '9') {
-		if (yych <= ' ') {
-			if (yych <= 0x08) {
-				if (yych <= 0x00) goto yy756;
-				goto yy799;
-			} else {
-				if (yych <= '\r') goto yy806;
-				if (yych <= 0x1F) goto yy799;
-				goto yy806;
-			}
-		} else {
-			if (yych <= '"') {
-				if (yych <= '!') goto yy799;
-				goto yy756;
-			} else {
-				if (yych == '\'') goto yy756;
-				goto yy799;
-			}
-		}
-	} else {
-		if (yych <= '@') {
-			if (yych <= ';') {
-				if (yych >= ';') goto yy799;
-			} else {
-				if (yych <= '=') goto yy756;
-				if (yych <= '>') goto yy758;
-				goto yy799;
-			}
-		} else {
-			if (yych <= '_') {
-				if (yych <= 'Z') goto yy808;
-				if (yych <= '^') goto yy799;
-			} else {
-				if (yych <= '`') goto yy756;
-				if (yych >= '{') goto yy799;
-			}
-		}
-	}
-yy808:
-	++p;
-	yych = *p;
-	if (yych <= '/') {
-		if (yych <= '!') {
-			if (yych <= '\r') {
-				if (yych <= 0x00) goto yy756;
-				if (yych <= 0x08) goto yy799;
-			} else {
-				if (yych != ' ') goto yy799;
-			}
-		} else {
-			if (yych <= '\'') {
-				if (yych <= '"') goto yy756;
-				if (yych <= '&') goto yy799;
-				goto yy756;
-			} else {
-				if (yych <= ',') goto yy799;
-				if (yych <= '.') goto yy808;
-				goto yy799;
-			}
-		}
-	} else {
-		if (yych <= '@') {
-			if (yych <= '<') {
-				if (yych <= ':') goto yy808;
-				if (yych <= ';') goto yy799;
-				goto yy756;
-			} else {
-				if (yych <= '=') goto yy797;
-				if (yych <= '>') goto yy758;
-				goto yy799;
-			}
-		} else {
-			if (yych <= '_') {
-				if (yych <= 'Z') goto yy808;
-				if (yych <= '^') goto yy799;
-				goto yy808;
-			} else {
-				if (yych <= '`') goto yy756;
-				if (yych <= 'z') goto yy808;
-				goto yy799;
-			}
-		}
-	}
-yy810:
-	++p;
-	yych = *p;
-	if (yych <= ':') {
-		if (yych <= ' ') {
-			if (yych <= 0x08) {
-				if (yych <= 0x00) goto yy756;
-				goto yy799;
-			} else {
-				if (yych <= '\r') goto yy810;
-				if (yych <= 0x1F) goto yy799;
-				goto yy810;
-			}
-		} else {
-			if (yych <= '&') {
-				if (yych == '"') goto yy756;
-				goto yy799;
-			} else {
-				if (yych <= '\'') goto yy756;
-				if (yych <= '9') goto yy799;
-				goto yy808;
-			}
-		}
-	} else {
-		if (yych <= '@') {
-			if (yych <= '<') {
-				if (yych <= ';') goto yy799;
-				goto yy756;
-			} else {
-				if (yych <= '=') goto yy797;
-				if (yych <= '>') goto yy758;
-				goto yy799;
-			}
-		} else {
-			if (yych <= '_') {
-				if (yych <= 'Z') goto yy808;
-				if (yych <= '^') goto yy799;
-				goto yy808;
-			} else {
-				if (yych <= '`') goto yy756;
-				if (yych <= 'z') goto yy808;
-				goto yy799;
-			}
-		}
-	}
-yy812:
-	++p;
-	yych = *p;
-	if (yych <= '9') {
-		if (yych <= ' ') {
-			if (yych <= 0x08) {
-				if (yych <= 0x00) goto yy756;
-				goto yy799;
-			} else {
-				if (yych <= '\r') goto yy812;
-				if (yych <= 0x1F) goto yy799;
-				goto yy812;
-			}
-		} else {
-			if (yych <= '"') {
-				if (yych <= '!') goto yy799;
-				goto yy803;
-			} else {
-				if (yych == '\'') goto yy801;
-				goto yy799;
-			}
-		}
-	} else {
-		if (yych <= '@') {
-			if (yych <= ';') {
-				if (yych <= ':') goto yy808;
-				goto yy799;
-			} else {
-				if (yych <= '=') goto yy756;
-				if (yych <= '>') goto yy758;
-				goto yy799;
-			}
-		} else {
-			if (yych <= '_') {
-				if (yych <= 'Z') goto yy808;
-				if (yych <= '^') goto yy799;
-				goto yy808;
-			} else {
-				if (yych <= '`') goto yy756;
-				if (yych <= 'z') goto yy808;
-				goto yy799;
-			}
-		}
-	}
-}
-
-}
-
-// Try to match an HTML block tag including first <,
-// returning num of chars matched.
-int _scan_html_block_tag(const unsigned char *p)
-{
-  const unsigned char *marker = NULL;
-  const unsigned char *start = p;
-
-{
-	unsigned char yych;
-	yych = *p;
-	if (yych == '\n') goto yy816;
-	if (yych == '<') goto yy817;
-	goto yy818;
-yy816:
-	{ return 0; }
-yy817:
-	yych = *(marker = ++p);
-	switch (yych) {
-	case '!':
-	case '?':	goto yy819;
-	case '/':	goto yy838;
-	case 'A':
-	case 'a':	goto yy823;
-	case 'B':
-	case 'b':	goto yy826;
-	case 'C':
-	case 'c':	goto yy830;
-	case 'D':
-	case 'd':	goto yy831;
-	case 'E':
-	case 'e':	goto yy834;
-	case 'F':
-	case 'f':	goto yy835;
-	case 'H':
-	case 'h':	goto yy824;
-	case 'I':
-	case 'i':	goto yy825;
-	case 'L':
-	case 'l':	goto yy827;
-	case 'M':
-	case 'm':	goto yy828;
-	case 'O':
-	case 'o':	goto yy829;
-	case 'P':
-	case 'p':	goto yy821;
-	case 'S':
-	case 's':	goto yy832;
-	case 'T':
-	case 't':	goto yy833;
-	case 'U':
-	case 'u':	goto yy836;
-	case 'V':
-	case 'v':	goto yy837;
-	default:	goto yy816;
-	}
-yy818:
-	yych = *++p;
-	goto yy816;
-yy819:
-	++p;
-	{ return (p - start); }
-yy821:
-	yych = *++p;
-	if (yych <= '/') {
-		if (yych <= 0x1F) {
-			if (yych <= 0x08) goto yy822;
-			if (yych <= '\r') goto yy982;
-		} else {
-			if (yych <= ' ') goto yy982;
-			if (yych >= '/') goto yy982;
-		}
-	} else {
-		if (yych <= 'Q') {
-			if (yych == '>') goto yy982;
-		} else {
-			if (yych <= 'R') goto yy1095;
-			if (yych == 'r') goto yy1095;
-		}
-	}
-yy822:
-	p = marker;
-	goto yy816;
-yy823:
-	yych = *++p;
-	if (yych <= 'S') {
-		if (yych <= 'Q') goto yy822;
-		if (yych <= 'R') goto yy1088;
-		goto yy1087;
-	} else {
-		if (yych <= 'q') goto yy822;
-		if (yych <= 'r') goto yy1088;
-		if (yych <= 's') goto yy1087;
-		goto yy822;
-	}
-yy824:
-	yych = *++p;
-	if (yych <= 'Q') {
-		if (yych <= 'D') {
-			if (yych <= '0') goto yy822;
-			if (yych <= '6') goto yy981;
-			goto yy822;
-		} else {
-			if (yych <= 'E') goto yy1080;
-			if (yych == 'G') goto yy1079;
-			goto yy822;
-		}
-	} else {
-		if (yych <= 'f') {
-			if (yych <= 'R') goto yy981;
-			if (yych == 'e') goto yy1080;
-			goto yy822;
-		} else {
-			if (yych <= 'g') goto yy1079;
-			if (yych == 'r') goto yy981;
-			goto yy822;
-		}
-	}
-yy825:
-	yych = *++p;
-	if (yych == 'F') goto yy1075;
-	if (yych == 'f') goto yy1075;
-	goto yy822;
-yy826:
-	yych = *++p;
-	if (yych <= 'U') {
-		if (yych <= 'N') {
-			if (yych == 'L') goto yy1063;
-			goto yy822;
-		} else {
-			if (yych <= 'O') goto yy1062;
-			if (yych <= 'T') goto yy822;
-			goto yy1061;
-		}
-	} else {
-		if (yych <= 'n') {
-			if (yych == 'l') goto yy1063;
-			goto yy822;
-		} else {
-			if (yych <= 'o') goto yy1062;
-			if (yych == 'u') goto yy1061;
-			goto yy822;
-		}
-	}
-yy827:
-	yych = *++p;
-	if (yych == 'I') goto yy981;
-	if (yych == 'i') goto yy981;
-	goto yy822;
-yy828:
-	yych = *++p;
-	if (yych == 'A') goto yy1060;
-	if (yych == 'a') goto yy1060;
-	goto yy822;
-yy829:
-	yych = *++p;
-	if (yych <= 'U') {
-		if (yych <= 'K') {
-			if (yych == 'B') goto yy1053;
-			goto yy822;
-		} else {
-			if (yych <= 'L') goto yy981;
-			if (yych <= 'T') goto yy822;
-			goto yy1052;
-		}
-	} else {
-		if (yych <= 'k') {
-			if (yych == 'b') goto yy1053;
-			goto yy822;
-		} else {
-			if (yych <= 'l') goto yy981;
-			if (yych == 'u') goto yy1052;
-			goto yy822;
-		}
-	}
-yy830:
-	yych = *++p;
-	if (yych <= 'O') {
-		if (yych == 'A') goto yy1039;
-		if (yych <= 'N') goto yy822;
-		goto yy1038;
-	} else {
-		if (yych <= 'a') {
-			if (yych <= '`') goto yy822;
-			goto yy1039;
-		} else {
-			if (yych == 'o') goto yy1038;
-			goto yy822;
-		}
-	}
-yy831:
-	yych = *++p;
-	if (yych <= 'T') {
-		if (yych <= 'I') {
-			if (yych == 'D') goto yy981;
-			if (yych <= 'H') goto yy822;
-			goto yy1037;
-		} else {
-			if (yych == 'L') goto yy981;
-			if (yych <= 'S') goto yy822;
-			goto yy981;
-		}
-	} else {
-		if (yych <= 'i') {
-			if (yych == 'd') goto yy981;
-			if (yych <= 'h') goto yy822;
-			goto yy1037;
-		} else {
-			if (yych <= 'l') {
-				if (yych <= 'k') goto yy822;
-				goto yy981;
-			} else {
-				if (yych == 't') goto yy981;
-				goto yy822;
-			}
-		}
-	}
-yy832:
-	yych = *++p;
-	if (yych <= 'T') {
-		if (yych <= 'D') {
-			if (yych == 'C') goto yy1026;
-			goto yy822;
-		} else {
-			if (yych <= 'E') goto yy1027;
-			if (yych <= 'S') goto yy822;
-			goto yy1025;
-		}
-	} else {
-		if (yych <= 'd') {
-			if (yych == 'c') goto yy1026;
-			goto yy822;
-		} else {
-			if (yych <= 'e') goto yy1027;
-			if (yych == 't') goto yy1025;
-			goto yy822;
-		}
-	}
-yy833:
-	yych = *++p;
-	switch (yych) {
-	case 'A':
-	case 'a':	goto yy1011;
-	case 'B':
-	case 'b':	goto yy1010;
-	case 'D':
-	case 'R':
-	case 'd':
-	case 'r':	goto yy981;
-	case 'E':
-	case 'e':	goto yy1009;
-	case 'F':
-	case 'f':	goto yy1008;
-	case 'H':
-	case 'h':	goto yy1007;
-	default:	goto yy822;
-	}
-yy834:
-	yych = *++p;
-	if (yych == 'M') goto yy1004;
-	if (yych == 'm') goto yy1004;
-	goto yy822;
-yy835:
-	yych = *++p;
-	if (yych <= 'O') {
-		if (yych == 'I') goto yy985;
-		if (yych <= 'N') goto yy822;
-		goto yy984;
-	} else {
-		if (yych <= 'i') {
-			if (yych <= 'h') goto yy822;
-			goto yy985;
-		} else {
-			if (yych == 'o') goto yy984;
-			goto yy822;
-		}
-	}
-yy836:
-	yych = *++p;
-	if (yych == 'L') goto yy981;
-	if (yych == 'l') goto yy981;
-	goto yy822;
-yy837:
-	yych = *++p;
-	if (yych == 'I') goto yy978;
-	if (yych == 'i') goto yy978;
-	goto yy822;
-yy838:
-	yych = *++p;
-	switch (yych) {
-	case 'A':
-	case 'a':	goto yy840;
-	case 'B':
-	case 'b':	goto yy843;
-	case 'C':
-	case 'c':	goto yy847;
-	case 'D':
-	case 'd':	goto yy848;
-	case 'E':
-	case 'e':	goto yy851;
-	case 'F':
-	case 'f':	goto yy852;
-	case 'H':
-	case 'h':	goto yy841;
-	case 'I':
-	case 'i':	goto yy842;
-	case 'L':
-	case 'l':	goto yy844;
-	case 'M':
-	case 'm':	goto yy845;
-	case 'O':
-	case 'o':	goto yy846;
-	case 'P':
-	case 'p':	goto yy839;
-	case 'S':
-	case 's':	goto yy849;
-	case 'T':
-	case 't':	goto yy850;
-	case 'U':
-	case 'u':	goto yy853;
-	case 'V':
-	case 'v':	goto yy854;
-	default:	goto yy822;
-	}
-yy839:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '\r') {
-			if (yych <= 0x08) goto yy822;
-			goto yy859;
-		} else {
-			if (yych == ' ') goto yy859;
-			goto yy822;
-		}
-	} else {
-		if (yych <= 'R') {
-			if (yych <= '>') goto yy859;
-			if (yych <= 'Q') goto yy822;
-			goto yy972;
-		} else {
-			if (yych == 'r') goto yy972;
-			goto yy822;
-		}
-	}
-yy840:
-	yych = *++p;
-	if (yych <= 'S') {
-		if (yych <= 'Q') goto yy822;
-		if (yych <= 'R') goto yy965;
-		goto yy964;
-	} else {
-		if (yych <= 'q') goto yy822;
-		if (yych <= 'r') goto yy965;
-		if (yych <= 's') goto yy964;
-		goto yy822;
-	}
-yy841:
-	yych = *++p;
-	if (yych <= 'Q') {
-		if (yych <= 'D') {
-			if (yych <= '0') goto yy822;
-			if (yych <= '6') goto yy858;
-			goto yy822;
-		} else {
-			if (yych <= 'E') goto yy957;
-			if (yych == 'G') goto yy956;
-			goto yy822;
-		}
-	} else {
-		if (yych <= 'f') {
-			if (yych <= 'R') goto yy858;
-			if (yych == 'e') goto yy957;
-			goto yy822;
-		} else {
-			if (yych <= 'g') goto yy956;
-			if (yych == 'r') goto yy858;
-			goto yy822;
-		}
-	}
-yy842:
-	yych = *++p;
-	if (yych == 'F') goto yy952;
-	if (yych == 'f') goto yy952;
-	goto yy822;
-yy843:
-	yych = *++p;
-	if (yych <= 'U') {
-		if (yych <= 'N') {
-			if (yych == 'L') goto yy940;
-			goto yy822;
-		} else {
-			if (yych <= 'O') goto yy939;
-			if (yych <= 'T') goto yy822;
-			goto yy938;
-		}
-	} else {
-		if (yych <= 'n') {
-			if (yych == 'l') goto yy940;
-			goto yy822;
-		} else {
-			if (yych <= 'o') goto yy939;
-			if (yych == 'u') goto yy938;
-			goto yy822;
-		}
-	}
-yy844:
-	yych = *++p;
-	if (yych == 'I') goto yy858;
-	if (yych == 'i') goto yy858;
-	goto yy822;
-yy845:
-	yych = *++p;
-	if (yych == 'A') goto yy937;
-	if (yych == 'a') goto yy937;
-	goto yy822;
-yy846:
-	yych = *++p;
-	if (yych <= 'U') {
-		if (yych <= 'K') {
-			if (yych == 'B') goto yy930;
-			goto yy822;
-		} else {
-			if (yych <= 'L') goto yy858;
-			if (yych <= 'T') goto yy822;
-			goto yy929;
-		}
-	} else {
-		if (yych <= 'k') {
-			if (yych == 'b') goto yy930;
-			goto yy822;
-		} else {
-			if (yych <= 'l') goto yy858;
-			if (yych == 'u') goto yy929;
-			goto yy822;
-		}
-	}
-yy847:
-	yych = *++p;
-	if (yych <= 'O') {
-		if (yych == 'A') goto yy916;
-		if (yych <= 'N') goto yy822;
-		goto yy915;
-	} else {
-		if (yych <= 'a') {
-			if (yych <= '`') goto yy822;
-			goto yy916;
-		} else {
-			if (yych == 'o') goto yy915;
-			goto yy822;
-		}
-	}
-yy848:
-	yych = *++p;
-	if (yych <= 'T') {
-		if (yych <= 'I') {
-			if (yych == 'D') goto yy858;
-			if (yych <= 'H') goto yy822;
-			goto yy914;
-		} else {
-			if (yych == 'L') goto yy858;
-			if (yych <= 'S') goto yy822;
-			goto yy858;
-		}
-	} else {
-		if (yych <= 'i') {
-			if (yych == 'd') goto yy858;
-			if (yych <= 'h') goto yy822;
-			goto yy914;
-		} else {
-			if (yych <= 'l') {
-				if (yych <= 'k') goto yy822;
-				goto yy858;
-			} else {
-				if (yych == 't') goto yy858;
-				goto yy822;
-			}
-		}
-	}
-yy849:
-	yych = *++p;
-	if (yych <= 'T') {
-		if (yych <= 'D') {
-			if (yych == 'C') goto yy903;
-			goto yy822;
-		} else {
-			if (yych <= 'E') goto yy904;
-			if (yych <= 'S') goto yy822;
-			goto yy902;
-		}
-	} else {
-		if (yych <= 'd') {
-			if (yych == 'c') goto yy903;
-			goto yy822;
-		} else {
-			if (yych <= 'e') goto yy904;
-			if (yych == 't') goto yy902;
-			goto yy822;
-		}
-	}
-yy850:
-	yych = *++p;
-	switch (yych) {
-	case 'A':
-	case 'a':	goto yy888;
-	case 'B':
-	case 'b':	goto yy887;
-	case 'D':
-	case 'R':
-	case 'd':
-	case 'r':	goto yy858;
-	case 'E':
-	case 'e':	goto yy886;
-	case 'F':
-	case 'f':	goto yy885;
-	case 'H':
-	case 'h':	goto yy884;
-	default:	goto yy822;
-	}
-yy851:
-	yych = *++p;
-	if (yych == 'M') goto yy881;
-	if (yych == 'm') goto yy881;
-	goto yy822;
-yy852:
-	yych = *++p;
-	if (yych <= 'O') {
-		if (yych == 'I') goto yy862;
-		if (yych <= 'N') goto yy822;
-		goto yy861;
-	} else {
-		if (yych <= 'i') {
-			if (yych <= 'h') goto yy822;
-			goto yy862;
-		} else {
-			if (yych == 'o') goto yy861;
-			goto yy822;
-		}
-	}
-yy853:
-	yych = *++p;
-	if (yych == 'L') goto yy858;
-	if (yych == 'l') goto yy858;
-	goto yy822;
-yy854:
-	yych = *++p;
-	if (yych == 'I') goto yy855;
-	if (yych != 'i') goto yy822;
-yy855:
-	yych = *++p;
-	if (yych == 'D') goto yy856;
-	if (yych != 'd') goto yy822;
-yy856:
-	yych = *++p;
-	if (yych == 'E') goto yy857;
-	if (yych != 'e') goto yy822;
-yy857:
-	yych = *++p;
-	if (yych == 'O') goto yy858;
-	if (yych != 'o') goto yy822;
-yy858:
-	yych = *++p;
-	if (yych <= 0x1F) {
-		if (yych <= 0x08) goto yy822;
-		if (yych >= 0x0E) goto yy822;
-	} else {
-		if (yych <= ' ') goto yy859;
-		if (yych != '>') goto yy822;
-	}
-yy859:
-	++p;
-	{ return (p - start); }
-yy861:
-	yych = *++p;
-	if (yych <= 'R') {
-		if (yych == 'O') goto yy877;
-		if (yych <= 'Q') goto yy822;
-		goto yy878;
-	} else {
-		if (yych <= 'o') {
-			if (yych <= 'n') goto yy822;
-			goto yy877;
-		} else {
-			if (yych == 'r') goto yy878;
-			goto yy822;
-		}
-	}
-yy862:
-	yych = *++p;
-	if (yych <= 'G') {
-		if (yych == 'E') goto yy863;
-		if (yych <= 'F') goto yy822;
-		goto yy864;
-	} else {
-		if (yych <= 'e') {
-			if (yych <= 'd') goto yy822;
-		} else {
-			if (yych == 'g') goto yy864;
-			goto yy822;
-		}
-	}
-yy863:
-	yych = *++p;
-	if (yych == 'L') goto yy873;
-	if (yych == 'l') goto yy873;
-	goto yy822;
-yy864:
-	yych = *++p;
-	if (yych <= 'U') {
-		if (yych == 'C') goto yy866;
-		if (yych <= 'T') goto yy822;
-	} else {
-		if (yych <= 'c') {
-			if (yych <= 'b') goto yy822;
-			goto yy866;
-		} else {
-			if (yych != 'u') goto yy822;
-		}
-	}
-	yych = *++p;
-	if (yych == 'R') goto yy872;
-	if (yych == 'r') goto yy872;
-	goto yy822;
-yy866:
-	yych = *++p;
-	if (yych == 'A') goto yy867;
-	if (yych != 'a') goto yy822;
-yy867:
-	yych = *++p;
-	if (yych == 'P') goto yy868;
-	if (yych != 'p') goto yy822;
-yy868:
-	yych = *++p;
-	if (yych == 'T') goto yy869;
-	if (yych != 't') goto yy822;
-yy869:
-	yych = *++p;
-	if (yych == 'I') goto yy870;
-	if (yych != 'i') goto yy822;
-yy870:
-	yych = *++p;
-	if (yych == 'O') goto yy871;
-	if (yych != 'o') goto yy822;
-yy871:
-	yych = *++p;
-	if (yych == 'N') goto yy858;
-	if (yych == 'n') goto yy858;
-	goto yy822;
-yy872:
-	yych = *++p;
-	if (yych == 'E') goto yy858;
-	if (yych == 'e') goto yy858;
-	goto yy822;
-yy873:
-	yych = *++p;
-	if (yych == 'D') goto yy874;
-	if (yych != 'd') goto yy822;
-yy874:
-	yych = *++p;
-	if (yych == 'S') goto yy875;
-	if (yych != 's') goto yy822;
-yy875:
-	yych = *++p;
-	if (yych == 'E') goto yy876;
-	if (yych != 'e') goto yy822;
-yy876:
-	yych = *++p;
-	if (yych == 'T') goto yy858;
-	if (yych == 't') goto yy858;
-	goto yy822;
-yy877:
-	yych = *++p;
-	if (yych == 'T') goto yy879;
-	if (yych == 't') goto yy879;
-	goto yy822;
-yy878:
-	yych = *++p;
-	if (yych == 'M') goto yy858;
-	if (yych == 'm') goto yy858;
-	goto yy822;
-yy879:
-	yych = *++p;
-	if (yych == 'E') goto yy880;
-	if (yych != 'e') goto yy822;
-yy880:
-	yych = *++p;
-	if (yych == 'R') goto yy858;
-	if (yych == 'r') goto yy858;
-	goto yy822;
-yy881:
-	yych = *++p;
-	if (yych == 'B') goto yy882;
-	if (yych != 'b') goto yy822;
-yy882:
-	yych = *++p;
-	if (yych == 'E') goto yy883;
-	if (yych != 'e') goto yy822;
-yy883:
-	yych = *++p;
-	if (yych == 'D') goto yy858;
-	if (yych == 'd') goto yy858;
-	goto yy822;
-yy884:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '\r') {
-			if (yych <= 0x08) goto yy822;
-			goto yy859;
-		} else {
-			if (yych == ' ') goto yy859;
-			goto yy822;
-		}
-	} else {
-		if (yych <= 'E') {
-			if (yych <= '>') goto yy859;
-			if (yych <= 'D') goto yy822;
-			goto yy900;
-		} else {
-			if (yych == 'e') goto yy900;
-			goto yy822;
-		}
-	}
-yy885:
-	yych = *++p;
-	if (yych == 'O') goto yy898;
-	if (yych == 'o') goto yy898;
-	goto yy822;
-yy886:
-	yych = *++p;
-	if (yych == 'X') goto yy893;
-	if (yych == 'x') goto yy893;
-	goto yy822;
-yy887:
-	yych = *++p;
-	if (yych == 'O') goto yy891;
-	if (yych == 'o') goto yy891;
-	goto yy822;
-yy888:
-	yych = *++p;
-	if (yych == 'B') goto yy889;
-	if (yych != 'b') goto yy822;
-yy889:
-	yych = *++p;
-	if (yych == 'L') goto yy890;
-	if (yych != 'l') goto yy822;
-yy890:
-	yych = *++p;
-	if (yych == 'E') goto yy858;
-	if (yych == 'e') goto yy858;
-	goto yy822;
-yy891:
-	yych = *++p;
-	if (yych == 'D') goto yy892;
-	if (yych != 'd') goto yy822;
-yy892:
-	yych = *++p;
-	if (yych == 'Y') goto yy858;
-	if (yych == 'y') goto yy858;
-	goto yy822;
-yy893:
-	yych = *++p;
-	if (yych == 'T') goto yy894;
-	if (yych != 't') goto yy822;
-yy894:
-	yych = *++p;
-	if (yych == 'A') goto yy895;
-	if (yych != 'a') goto yy822;
-yy895:
-	yych = *++p;
-	if (yych == 'R') goto yy896;
-	if (yych != 'r') goto yy822;
-yy896:
-	yych = *++p;
-	if (yych == 'E') goto yy897;
-	if (yych != 'e') goto yy822;
-yy897:
-	yych = *++p;
-	if (yych == 'A') goto yy858;
-	if (yych == 'a') goto yy858;
-	goto yy822;
-yy898:
-	yych = *++p;
-	if (yych == 'O') goto yy899;
-	if (yych != 'o') goto yy822;
-yy899:
-	yych = *++p;
-	if (yych == 'T') goto yy858;
-	if (yych == 't') goto yy858;
-	goto yy822;
-yy900:
-	yych = *++p;
-	if (yych == 'A') goto yy901;
-	if (yych != 'a') goto yy822;
-yy901:
-	yych = *++p;
-	if (yych == 'D') goto yy858;
-	if (yych == 'd') goto yy858;
-	goto yy822;
-yy902:
-	yych = *++p;
-	if (yych == 'Y') goto yy912;
-	if (yych == 'y') goto yy912;
-	goto yy822;
-yy903:
-	yych = *++p;
-	if (yych == 'R') goto yy909;
-	if (yych == 'r') goto yy909;
-	goto yy822;
-yy904:
-	yych = *++p;
-	if (yych == 'C') goto yy905;
-	if (yych != 'c') goto yy822;
-yy905:
-	yych = *++p;
-	if (yych == 'T') goto yy906;
-	if (yych != 't') goto yy822;
-yy906:
-	yych = *++p;
-	if (yych == 'I') goto yy907;
-	if (yych != 'i') goto yy822;
-yy907:
-	yych = *++p;
-	if (yych == 'O') goto yy908;
-	if (yych != 'o') goto yy822;
-yy908:
-	yych = *++p;
-	if (yych == 'N') goto yy858;
-	if (yych == 'n') goto yy858;
-	goto yy822;
-yy909:
-	yych = *++p;
-	if (yych == 'I') goto yy910;
-	if (yych != 'i') goto yy822;
-yy910:
-	yych = *++p;
-	if (yych == 'P') goto yy911;
-	if (yych != 'p') goto yy822;
-yy911:
-	yych = *++p;
-	if (yych == 'T') goto yy858;
-	if (yych == 't') goto yy858;
-	goto yy822;
-yy912:
-	yych = *++p;
-	if (yych == 'L') goto yy913;
-	if (yych != 'l') goto yy822;
-yy913:
-	yych = *++p;
-	if (yych == 'E') goto yy858;
-	if (yych == 'e') goto yy858;
-	goto yy822;
-yy914:
-	yych = *++p;
-	if (yych == 'V') goto yy858;
-	if (yych == 'v') goto yy858;
-	goto yy822;
-yy915:
-	yych = *++p;
-	if (yych == 'L') goto yy924;
-	if (yych == 'l') goto yy924;
-	goto yy822;
-yy916:
-	yych = *++p;
-	if (yych <= 'P') {
-		if (yych == 'N') goto yy917;
-		if (yych <= 'O') goto yy822;
-		goto yy918;
-	} else {
-		if (yych <= 'n') {
-			if (yych <= 'm') goto yy822;
-		} else {
-			if (yych == 'p') goto yy918;
-			goto yy822;
-		}
-	}
-yy917:
-	yych = *++p;
-	if (yych == 'V') goto yy922;
-	if (yych == 'v') goto yy922;
-	goto yy822;
-yy918:
-	yych = *++p;
-	if (yych == 'T') goto yy919;
-	if (yych != 't') goto yy822;
-yy919:
-	yych = *++p;
-	if (yych == 'I') goto yy920;
-	if (yych != 'i') goto yy822;
-yy920:
-	yych = *++p;
-	if (yych == 'O') goto yy921;
-	if (yych != 'o') goto yy822;
-yy921:
-	yych = *++p;
-	if (yych == 'N') goto yy858;
-	if (yych == 'n') goto yy858;
-	goto yy822;
-yy922:
-	yych = *++p;
-	if (yych == 'A') goto yy923;
-	if (yych != 'a') goto yy822;
-yy923:
-	yych = *++p;
-	if (yych == 'S') goto yy858;
-	if (yych == 's') goto yy858;
-	goto yy822;
-yy924:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '\r') {
-			if (yych <= 0x08) goto yy822;
-			goto yy859;
-		} else {
-			if (yych == ' ') goto yy859;
-			goto yy822;
-		}
-	} else {
-		if (yych <= 'G') {
-			if (yych <= '>') goto yy859;
-			if (yych <= 'F') goto yy822;
-		} else {
-			if (yych != 'g') goto yy822;
-		}
-	}
-	yych = *++p;
-	if (yych == 'R') goto yy926;
-	if (yych != 'r') goto yy822;
-yy926:
-	yych = *++p;
-	if (yych == 'O') goto yy927;
-	if (yych != 'o') goto yy822;
-yy927:
-	yych = *++p;
-	if (yych == 'U') goto yy928;
-	if (yych != 'u') goto yy822;
-yy928:
-	yych = *++p;
-	if (yych == 'P') goto yy858;
-	if (yych == 'p') goto yy858;
-	goto yy822;
-yy929:
-	yych = *++p;
-	if (yych == 'T') goto yy934;
-	if (yych == 't') goto yy934;
-	goto yy822;
-yy930:
-	yych = *++p;
-	if (yych == 'J') goto yy931;
-	if (yych != 'j') goto yy822;
-yy931:
-	yych = *++p;
-	if (yych == 'E') goto yy932;
-	if (yych != 'e') goto yy822;
-yy932:
-	yych = *++p;
-	if (yych == 'C') goto yy933;
-	if (yych != 'c') goto yy822;
-yy933:
-	yych = *++p;
-	if (yych == 'T') goto yy858;
-	if (yych == 't') goto yy858;
-	goto yy822;
-yy934:
-	yych = *++p;
-	if (yych == 'P') goto yy935;
-	if (yych != 'p') goto yy822;
-yy935:
-	yych = *++p;
-	if (yych == 'U') goto yy936;
-	if (yych != 'u') goto yy822;
-yy936:
-	yych = *++p;
-	if (yych == 'T') goto yy858;
-	if (yych == 't') goto yy858;
-	goto yy822;
-yy937:
-	yych = *++p;
-	if (yych == 'P') goto yy858;
-	if (yych == 'p') goto yy858;
-	goto yy822;
-yy938:
-	yych = *++p;
-	if (yych == 'T') goto yy949;
-	if (yych == 't') goto yy949;
-	goto yy822;
-yy939:
-	yych = *++p;
-	if (yych == 'D') goto yy948;
-	if (yych == 'd') goto yy948;
-	goto yy822;
-yy940:
-	yych = *++p;
-	if (yych == 'O') goto yy941;
-	if (yych != 'o') goto yy822;
-yy941:
-	yych = *++p;
-	if (yych == 'C') goto yy942;
-	if (yych != 'c') goto yy822;
-yy942:
-	yych = *++p;
-	if (yych == 'K') goto yy943;
-	if (yych != 'k') goto yy822;
-yy943:
-	yych = *++p;
-	if (yych == 'Q') goto yy944;
-	if (yych != 'q') goto yy822;
-yy944:
-	yych = *++p;
-	if (yych == 'U') goto yy945;
-	if (yych != 'u') goto yy822;
-yy945:
-	yych = *++p;
-	if (yych == 'O') goto yy946;
-	if (yych != 'o') goto yy822;
-yy946:
-	yych = *++p;
-	if (yych == 'T') goto yy947;
-	if (yych != 't') goto yy822;
-yy947:
-	yych = *++p;
-	if (yych == 'E') goto yy858;
-	if (yych == 'e') goto yy858;
-	goto yy822;
-yy948:
-	yych = *++p;
-	if (yych == 'Y') goto yy858;
-	if (yych == 'y') goto yy858;
-	goto yy822;
-yy949:
-	yych = *++p;
-	if (yych == 'T') goto yy950;
-	if (yych != 't') goto yy822;
-yy950:
-	yych = *++p;
-	if (yych == 'O') goto yy951;
-	if (yych != 'o') goto yy822;
-yy951:
-	yych = *++p;
-	if (yych == 'N') goto yy858;
-	if (yych == 'n') goto yy858;
-	goto yy822;
-yy952:
-	yych = *++p;
-	if (yych == 'R') goto yy953;
-	if (yych != 'r') goto yy822;
-yy953:
-	yych = *++p;
-	if (yych == 'A') goto yy954;
-	if (yych != 'a') goto yy822;
-yy954:
-	yych = *++p;
-	if (yych == 'M') goto yy955;
-	if (yych != 'm') goto yy822;
-yy955:
-	yych = *++p;
-	if (yych == 'E') goto yy858;
-	if (yych == 'e') goto yy858;
-	goto yy822;
-yy956:
-	yych = *++p;
-	if (yych == 'R') goto yy961;
-	if (yych == 'r') goto yy961;
-	goto yy822;
-yy957:
-	yych = *++p;
-	if (yych == 'A') goto yy958;
-	if (yych != 'a') goto yy822;
-yy958:
-	yych = *++p;
-	if (yych == 'D') goto yy959;
-	if (yych != 'd') goto yy822;
-yy959:
-	yych = *++p;
-	if (yych == 'E') goto yy960;
-	if (yych != 'e') goto yy822;
-yy960:
-	yych = *++p;
-	if (yych == 'R') goto yy858;
-	if (yych == 'r') goto yy858;
-	goto yy822;
-yy961:
-	yych = *++p;
-	if (yych == 'O') goto yy962;
-	if (yych != 'o') goto yy822;
-yy962:
-	yych = *++p;
-	if (yych == 'U') goto yy963;
-	if (yych != 'u') goto yy822;
-yy963:
-	yych = *++p;
-	if (yych == 'P') goto yy858;
-	if (yych == 'p') goto yy858;
-	goto yy822;
-yy964:
-	yych = *++p;
-	if (yych == 'I') goto yy970;
-	if (yych == 'i') goto yy970;
-	goto yy822;
-yy965:
-	yych = *++p;
-	if (yych == 'T') goto yy966;
-	if (yych != 't') goto yy822;
-yy966:
-	yych = *++p;
-	if (yych == 'I') goto yy967;
-	if (yych != 'i') goto yy822;
-yy967:
-	yych = *++p;
-	if (yych == 'C') goto yy968;
-	if (yych != 'c') goto yy822;
-yy968:
-	yych = *++p;
-	if (yych == 'L') goto yy969;
-	if (yych != 'l') goto yy822;
-yy969:
-	yych = *++p;
-	if (yych == 'E') goto yy858;
-	if (yych == 'e') goto yy858;
-	goto yy822;
-yy970:
-	yych = *++p;
-	if (yych == 'D') goto yy971;
-	if (yych != 'd') goto yy822;
-yy971:
-	yych = *++p;
-	if (yych == 'E') goto yy858;
-	if (yych == 'e') goto yy858;
-	goto yy822;
-yy972:
-	yych = *++p;
-	if (yych <= 'O') {
-		if (yych == 'E') goto yy858;
-		if (yych <= 'N') goto yy822;
-	} else {
-		if (yych <= 'e') {
-			if (yych <= 'd') goto yy822;
-			goto yy858;
-		} else {
-			if (yych != 'o') goto yy822;
-		}
-	}
-	yych = *++p;
-	if (yych == 'G') goto yy974;
-	if (yych != 'g') goto yy822;
-yy974:
-	yych = *++p;
-	if (yych == 'R') goto yy975;
-	if (yych != 'r') goto yy822;
-yy975:
-	yych = *++p;
-	if (yych == 'E') goto yy976;
-	if (yych != 'e') goto yy822;
-yy976:
-	yych = *++p;
-	if (yych == 'S') goto yy977;
-	if (yych != 's') goto yy822;
-yy977:
-	yych = *++p;
-	if (yych == 'S') goto yy858;
-	if (yych == 's') goto yy858;
-	goto yy822;
-yy978:
-	yych = *++p;
-	if (yych == 'D') goto yy979;
-	if (yych != 'd') goto yy822;
-yy979:
-	yych = *++p;
-	if (yych == 'E') goto yy980;
-	if (yych != 'e') goto yy822;
-yy980:
-	yych = *++p;
-	if (yych == 'O') goto yy981;
-	if (yych != 'o') goto yy822;
-yy981:
-	yych = *++p;
-	if (yych <= ' ') {
-		if (yych <= 0x08) goto yy822;
-		if (yych <= '\r') goto yy982;
-		if (yych <= 0x1F) goto yy822;
-	} else {
-		if (yych <= '/') {
-			if (yych <= '.') goto yy822;
-		} else {
-			if (yych != '>') goto yy822;
-		}
-	}
-yy982:
-	++p;
-	{ return (p - start); }
-yy984:
-	yych = *++p;
-	if (yych <= 'R') {
-		if (yych == 'O') goto yy1000;
-		if (yych <= 'Q') goto yy822;
-		goto yy1001;
-	} else {
-		if (yych <= 'o') {
-			if (yych <= 'n') goto yy822;
-			goto yy1000;
-		} else {
-			if (yych == 'r') goto yy1001;
-			goto yy822;
-		}
-	}
-yy985:
-	yych = *++p;
-	if (yych <= 'G') {
-		if (yych == 'E') goto yy986;
-		if (yych <= 'F') goto yy822;
-		goto yy987;
-	} else {
-		if (yych <= 'e') {
-			if (yych <= 'd') goto yy822;
-		} else {
-			if (yych == 'g') goto yy987;
-			goto yy822;
-		}
-	}
-yy986:
-	yych = *++p;
-	if (yych == 'L') goto yy996;
-	if (yych == 'l') goto yy996;
-	goto yy822;
-yy987:
-	yych = *++p;
-	if (yych <= 'U') {
-		if (yych == 'C') goto yy989;
-		if (yych <= 'T') goto yy822;
-	} else {
-		if (yych <= 'c') {
-			if (yych <= 'b') goto yy822;
-			goto yy989;
-		} else {
-			if (yych != 'u') goto yy822;
-		}
-	}
-	yych = *++p;
-	if (yych == 'R') goto yy995;
-	if (yych == 'r') goto yy995;
-	goto yy822;
-yy989:
-	yych = *++p;
-	if (yych == 'A') goto yy990;
-	if (yych != 'a') goto yy822;
-yy990:
-	yych = *++p;
-	if (yych == 'P') goto yy991;
-	if (yych != 'p') goto yy822;
-yy991:
-	yych = *++p;
-	if (yych == 'T') goto yy992;
-	if (yych != 't') goto yy822;
-yy992:
-	yych = *++p;
-	if (yych == 'I') goto yy993;
-	if (yych != 'i') goto yy822;
-yy993:
-	yych = *++p;
-	if (yych == 'O') goto yy994;
-	if (yych != 'o') goto yy822;
-yy994:
-	yych = *++p;
-	if (yych == 'N') goto yy981;
-	if (yych == 'n') goto yy981;
-	goto yy822;
-yy995:
-	yych = *++p;
-	if (yych == 'E') goto yy981;
-	if (yych == 'e') goto yy981;
-	goto yy822;
-yy996:
-	yych = *++p;
-	if (yych == 'D') goto yy997;
-	if (yych != 'd') goto yy822;
-yy997:
-	yych = *++p;
-	if (yych == 'S') goto yy998;
-	if (yych != 's') goto yy822;
-yy998:
-	yych = *++p;
-	if (yych == 'E') goto yy999;
-	if (yych != 'e') goto yy822;
-yy999:
-	yych = *++p;
-	if (yych == 'T') goto yy981;
-	if (yych == 't') goto yy981;
-	goto yy822;
-yy1000:
-	yych = *++p;
-	if (yych == 'T') goto yy1002;
-	if (yych == 't') goto yy1002;
-	goto yy822;
-yy1001:
-	yych = *++p;
-	if (yych == 'M') goto yy981;
-	if (yych == 'm') goto yy981;
-	goto yy822;
-yy1002:
-	yych = *++p;
-	if (yych == 'E') goto yy1003;
-	if (yych != 'e') goto yy822;
-yy1003:
-	yych = *++p;
-	if (yych == 'R') goto yy981;
-	if (yych == 'r') goto yy981;
-	goto yy822;
-yy1004:
-	yych = *++p;
-	if (yych == 'B') goto yy1005;
-	if (yych != 'b') goto yy822;
-yy1005:
-	yych = *++p;
-	if (yych == 'E') goto yy1006;
-	if (yych != 'e') goto yy822;
-yy1006:
-	yych = *++p;
-	if (yych == 'D') goto yy981;
-	if (yych == 'd') goto yy981;
-	goto yy822;
-yy1007:
-	yych = *++p;
-	if (yych <= '/') {
-		if (yych <= 0x1F) {
-			if (yych <= 0x08) goto yy822;
-			if (yych <= '\r') goto yy982;
-			goto yy822;
-		} else {
-			if (yych <= ' ') goto yy982;
-			if (yych <= '.') goto yy822;
-			goto yy982;
-		}
-	} else {
-		if (yych <= 'D') {
-			if (yych == '>') goto yy982;
-			goto yy822;
-		} else {
-			if (yych <= 'E') goto yy1023;
-			if (yych == 'e') goto yy1023;
-			goto yy822;
-		}
-	}
-yy1008:
-	yych = *++p;
-	if (yych == 'O') goto yy1021;
-	if (yych == 'o') goto yy1021;
-	goto yy822;
-yy1009:
-	yych = *++p;
-	if (yych == 'X') goto yy1016;
-	if (yych == 'x') goto yy1016;
-	goto yy822;
-yy1010:
-	yych = *++p;
-	if (yych == 'O') goto yy1014;
-	if (yych == 'o') goto yy1014;
-	goto yy822;
-yy1011:
-	yych = *++p;
-	if (yych == 'B') goto yy1012;
-	if (yych != 'b') goto yy822;
-yy1012:
-	yych = *++p;
-	if (yych == 'L') goto yy1013;
-	if (yych != 'l') goto yy822;
-yy1013:
-	yych = *++p;
-	if (yych == 'E') goto yy981;
-	if (yych == 'e') goto yy981;
-	goto yy822;
-yy1014:
-	yych = *++p;
-	if (yych == 'D') goto yy1015;
-	if (yych != 'd') goto yy822;
-yy1015:
-	yych = *++p;
-	if (yych == 'Y') goto yy981;
-	if (yych == 'y') goto yy981;
-	goto yy822;
-yy1016:
-	yych = *++p;
-	if (yych == 'T') goto yy1017;
-	if (yych != 't') goto yy822;
-yy1017:
-	yych = *++p;
-	if (yych == 'A') goto yy1018;
-	if (yych != 'a') goto yy822;
-yy1018:
-	yych = *++p;
-	if (yych == 'R') goto yy1019;
-	if (yych != 'r') goto yy822;
-yy1019:
-	yych = *++p;
-	if (yych == 'E') goto yy1020;
-	if (yych != 'e') goto yy822;
-yy1020:
-	yych = *++p;
-	if (yych == 'A') goto yy981;
-	if (yych == 'a') goto yy981;
-	goto yy822;
-yy1021:
-	yych = *++p;
-	if (yych == 'O') goto yy1022;
-	if (yych != 'o') goto yy822;
-yy1022:
-	yych = *++p;
-	if (yych == 'T') goto yy981;
-	if (yych == 't') goto yy981;
-	goto yy822;
-yy1023:
-	yych = *++p;
-	if (yych == 'A') goto yy1024;
-	if (yych != 'a') goto yy822;
-yy1024:
-	yych = *++p;
-	if (yych == 'D') goto yy981;
-	if (yych == 'd') goto yy981;
-	goto yy822;
-yy1025:
-	yych = *++p;
-	if (yych == 'Y') goto yy1035;
-	if (yych == 'y') goto yy1035;
-	goto yy822;
-yy1026:
-	yych = *++p;
-	if (yych == 'R') goto yy1032;
-	if (yych == 'r') goto yy1032;
-	goto yy822;
-yy1027:
-	yych = *++p;
-	if (yych == 'C') goto yy1028;
-	if (yych != 'c') goto yy822;
-yy1028:
-	yych = *++p;
-	if (yych == 'T') goto yy1029;
-	if (yych != 't') goto yy822;
-yy1029:
-	yych = *++p;
-	if (yych == 'I') goto yy1030;
-	if (yych != 'i') goto yy822;
-yy1030:
-	yych = *++p;
-	if (yych == 'O') goto yy1031;
-	if (yych != 'o') goto yy822;
-yy1031:
-	yych = *++p;
-	if (yych == 'N') goto yy981;
-	if (yych == 'n') goto yy981;
-	goto yy822;
-yy1032:
-	yych = *++p;
-	if (yych == 'I') goto yy1033;
-	if (yych != 'i') goto yy822;
-yy1033:
-	yych = *++p;
-	if (yych == 'P') goto yy1034;
-	if (yych != 'p') goto yy822;
-yy1034:
-	yych = *++p;
-	if (yych == 'T') goto yy981;
-	if (yych == 't') goto yy981;
-	goto yy822;
-yy1035:
-	yych = *++p;
-	if (yych == 'L') goto yy1036;
-	if (yych != 'l') goto yy822;
-yy1036:
-	yych = *++p;
-	if (yych == 'E') goto yy981;
-	if (yych == 'e') goto yy981;
-	goto yy822;
-yy1037:
-	yych = *++p;
-	if (yych == 'V') goto yy981;
-	if (yych == 'v') goto yy981;
-	goto yy822;
-yy1038:
-	yych = *++p;
-	if (yych == 'L') goto yy1047;
-	if (yych == 'l') goto yy1047;
-	goto yy822;
-yy1039:
-	yych = *++p;
-	if (yych <= 'P') {
-		if (yych == 'N') goto yy1040;
-		if (yych <= 'O') goto yy822;
-		goto yy1041;
-	} else {
-		if (yych <= 'n') {
-			if (yych <= 'm') goto yy822;
-		} else {
-			if (yych == 'p') goto yy1041;
-			goto yy822;
-		}
-	}
-yy1040:
-	yych = *++p;
-	if (yych == 'V') goto yy1045;
-	if (yych == 'v') goto yy1045;
-	goto yy822;
-yy1041:
-	yych = *++p;
-	if (yych == 'T') goto yy1042;
-	if (yych != 't') goto yy822;
-yy1042:
-	yych = *++p;
-	if (yych == 'I') goto yy1043;
-	if (yych != 'i') goto yy822;
-yy1043:
-	yych = *++p;
-	if (yych == 'O') goto yy1044;
-	if (yych != 'o') goto yy822;
-yy1044:
-	yych = *++p;
-	if (yych == 'N') goto yy981;
-	if (yych == 'n') goto yy981;
-	goto yy822;
-yy1045:
-	yych = *++p;
-	if (yych == 'A') goto yy1046;
-	if (yych != 'a') goto yy822;
-yy1046:
-	yych = *++p;
-	if (yych == 'S') goto yy981;
-	if (yych == 's') goto yy981;
-	goto yy822;
-yy1047:
-	yych = *++p;
-	if (yych <= '/') {
-		if (yych <= 0x1F) {
-			if (yych <= 0x08) goto yy822;
-			if (yych <= '\r') goto yy982;
-			goto yy822;
-		} else {
-			if (yych <= ' ') goto yy982;
-			if (yych <= '.') goto yy822;
-			goto yy982;
-		}
-	} else {
-		if (yych <= 'F') {
-			if (yych == '>') goto yy982;
-			goto yy822;
-		} else {
-			if (yych <= 'G') goto yy1048;
-			if (yych != 'g') goto yy822;
-		}
-	}
-yy1048:
-	yych = *++p;
-	if (yych == 'R') goto yy1049;
-	if (yych != 'r') goto yy822;
-yy1049:
-	yych = *++p;
-	if (yych == 'O') goto yy1050;
-	if (yych != 'o') goto yy822;
-yy1050:
-	yych = *++p;
-	if (yych == 'U') goto yy1051;
-	if (yych != 'u') goto yy822;
-yy1051:
-	yych = *++p;
-	if (yych == 'P') goto yy981;
-	if (yych == 'p') goto yy981;
-	goto yy822;
-yy1052:
-	yych = *++p;
-	if (yych == 'T') goto yy1057;
-	if (yych == 't') goto yy1057;
-	goto yy822;
-yy1053:
-	yych = *++p;
-	if (yych == 'J') goto yy1054;
-	if (yych != 'j') goto yy822;
-yy1054:
-	yych = *++p;
-	if (yych == 'E') goto yy1055;
-	if (yych != 'e') goto yy822;
-yy1055:
-	yych = *++p;
-	if (yych == 'C') goto yy1056;
-	if (yych != 'c') goto yy822;
-yy1056:
-	yych = *++p;
-	if (yych == 'T') goto yy981;
-	if (yych == 't') goto yy981;
-	goto yy822;
-yy1057:
-	yych = *++p;
-	if (yych == 'P') goto yy1058;
-	if (yych != 'p') goto yy822;
-yy1058:
-	yych = *++p;
-	if (yych == 'U') goto yy1059;
-	if (yych != 'u') goto yy822;
-yy1059:
-	yych = *++p;
-	if (yych == 'T') goto yy981;
-	if (yych == 't') goto yy981;
-	goto yy822;
-yy1060:
-	yych = *++p;
-	if (yych == 'P') goto yy981;
-	if (yych == 'p') goto yy981;
-	goto yy822;
-yy1061:
-	yych = *++p;
-	if (yych == 'T') goto yy1072;
-	if (yych == 't') goto yy1072;
-	goto yy822;
-yy1062:
-	yych = *++p;
-	if (yych == 'D') goto yy1071;
-	if (yych == 'd') goto yy1071;
-	goto yy822;
-yy1063:
-	yych = *++p;
-	if (yych == 'O') goto yy1064;
-	if (yych != 'o') goto yy822;
-yy1064:
-	yych = *++p;
-	if (yych == 'C') goto yy1065;
-	if (yych != 'c') goto yy822;
-yy1065:
-	yych = *++p;
-	if (yych == 'K') goto yy1066;
-	if (yych != 'k') goto yy822;
-yy1066:
-	yych = *++p;
-	if (yych == 'Q') goto yy1067;
-	if (yych != 'q') goto yy822;
-yy1067:
-	yych = *++p;
-	if (yych == 'U') goto yy1068;
-	if (yych != 'u') goto yy822;
-yy1068:
-	yych = *++p;
-	if (yych == 'O') goto yy1069;
-	if (yych != 'o') goto yy822;
-yy1069:
-	yych = *++p;
-	if (yych == 'T') goto yy1070;
-	if (yych != 't') goto yy822;
-yy1070:
-	yych = *++p;
-	if (yych == 'E') goto yy981;
-	if (yych == 'e') goto yy981;
-	goto yy822;
-yy1071:
-	yych = *++p;
-	if (yych == 'Y') goto yy981;
-	if (yych == 'y') goto yy981;
-	goto yy822;
-yy1072:
-	yych = *++p;
-	if (yych == 'T') goto yy1073;
-	if (yych != 't') goto yy822;
-yy1073:
-	yych = *++p;
-	if (yych == 'O') goto yy1074;
-	if (yych != 'o') goto yy822;
-yy1074:
-	yych = *++p;
-	if (yych == 'N') goto yy981;
-	if (yych == 'n') goto yy981;
-	goto yy822;
-yy1075:
-	yych = *++p;
-	if (yych == 'R') goto yy1076;
-	if (yych != 'r') goto yy822;
-yy1076:
-	yych = *++p;
-	if (yych == 'A') goto yy1077;
-	if (yych != 'a') goto yy822;
-yy1077:
-	yych = *++p;
-	if (yych == 'M') goto yy1078;
-	if (yych != 'm') goto yy822;
-yy1078:
-	yych = *++p;
-	if (yych == 'E') goto yy981;
-	if (yych == 'e') goto yy981;
-	goto yy822;
-yy1079:
-	yych = *++p;
-	if (yych == 'R') goto yy1084;
-	if (yych == 'r') goto yy1084;
-	goto yy822;
-yy1080:
-	yych = *++p;
-	if (yych == 'A') goto yy1081;
-	if (yych != 'a') goto yy822;
-yy1081:
-	yych = *++p;
-	if (yych == 'D') goto yy1082;
-	if (yych != 'd') goto yy822;
-yy1082:
-	yych = *++p;
-	if (yych == 'E') goto yy1083;
-	if (yych != 'e') goto yy822;
-yy1083:
-	yych = *++p;
-	if (yych == 'R') goto yy981;
-	if (yych == 'r') goto yy981;
-	goto yy822;
-yy1084:
-	yych = *++p;
-	if (yych == 'O') goto yy1085;
-	if (yych != 'o') goto yy822;
-yy1085:
-	yych = *++p;
-	if (yych == 'U') goto yy1086;
-	if (yych != 'u') goto yy822;
-yy1086:
-	yych = *++p;
-	if (yych == 'P') goto yy981;
-	if (yych == 'p') goto yy981;
-	goto yy822;
-yy1087:
-	yych = *++p;
-	if (yych == 'I') goto yy1093;
-	if (yych == 'i') goto yy1093;
-	goto yy822;
-yy1088:
-	yych = *++p;
-	if (yych == 'T') goto yy1089;
-	if (yych != 't') goto yy822;
-yy1089:
-	yych = *++p;
-	if (yych == 'I') goto yy1090;
-	if (yych != 'i') goto yy822;
-yy1090:
-	yych = *++p;
-	if (yych == 'C') goto yy1091;
-	if (yych != 'c') goto yy822;
-yy1091:
-	yych = *++p;
-	if (yych == 'L') goto yy1092;
-	if (yych != 'l') goto yy822;
-yy1092:
-	yych = *++p;
-	if (yych == 'E') goto yy981;
-	if (yych == 'e') goto yy981;
-	goto yy822;
-yy1093:
-	yych = *++p;
-	if (yych == 'D') goto yy1094;
-	if (yych != 'd') goto yy822;
-yy1094:
-	yych = *++p;
-	if (yych == 'E') goto yy981;
-	if (yych == 'e') goto yy981;
-	goto yy822;
-yy1095:
-	yych = *++p;
-	if (yych <= 'O') {
-		if (yych == 'E') goto yy981;
-		if (yych <= 'N') goto yy822;
-	} else {
-		if (yych <= 'e') {
-			if (yych <= 'd') goto yy822;
-			goto yy981;
-		} else {
-			if (yych != 'o') goto yy822;
-		}
-	}
-	yych = *++p;
-	if (yych == 'G') goto yy1097;
-	if (yych != 'g') goto yy822;
-yy1097:
-	yych = *++p;
-	if (yych == 'R') goto yy1098;
-	if (yych != 'r') goto yy822;
-yy1098:
-	yych = *++p;
-	if (yych == 'E') goto yy1099;
-	if (yych != 'e') goto yy822;
-yy1099:
-	yych = *++p;
-	if (yych == 'S') goto yy1100;
-	if (yych != 's') goto yy822;
-yy1100:
-	++p;
-	if ((yych = *p) == 'S') goto yy981;
-	if (yych == 's') goto yy981;
-	goto yy822;
-}
-
-}
-
-// Try to match a URL in a link or reference, return number of chars matched.
-// This may optionally be contained in <..>; otherwise
-// whitespace and unbalanced right parentheses aren't allowed.
-// Newlines aren't ever allowed.
-int _scan_link_url(const unsigned char *p)
-{
-  const unsigned char *marker = NULL;
-  const unsigned char *start = p;
-
-{
-	unsigned char yych;
-	unsigned int yyaccept = 0;
-	static const unsigned char yybm[] = {
-		  0,  64,  64,  64,  64,  64,  64,  64, 
-		 64,  64,   8,  64,  64,  64,  64,  64, 
-		 64,  64,  64,  64,  64,  64,  64,  64, 
-		 64,  64,  64,  64,  64,  64,  64,  64, 
-		 72, 112, 112, 112, 112, 112, 112, 112, 
-		 64,  64, 112, 112, 112, 112, 112, 112, 
-		112, 112, 112, 112, 112, 112, 112, 112, 
-		112, 112, 112, 112,  16, 112,  16, 112, 
-		112, 112, 112, 112, 112, 112, 112, 112, 
-		112, 112, 112, 112, 112, 112, 112, 112, 
-		112, 112, 112, 112, 112, 112, 112, 112, 
-		112, 112, 112, 112, 128, 112, 112, 112, 
-		112, 112, 112, 112, 112, 112, 112, 112, 
-		112, 112, 112, 112, 112, 112, 112, 112, 
-		112, 112, 112, 112, 112, 112, 112, 112, 
-		112, 112, 112, 112, 112, 112, 112, 112, 
-		112, 112, 112, 112, 112, 112, 112, 112, 
-		112, 112, 112, 112, 112, 112, 112, 112, 
-		112, 112, 112, 112, 112, 112, 112, 112, 
-		112, 112, 112, 112, 112, 112, 112, 112, 
-		112, 112, 112, 112, 112, 112, 112, 112, 
-		112, 112, 112, 112, 112, 112, 112, 112, 
-		112, 112, 112, 112, 112, 112, 112, 112, 
-		112, 112, 112, 112, 112, 112, 112, 112, 
-		112, 112, 112, 112, 112, 112, 112, 112, 
-		112, 112, 112, 112, 112, 112, 112, 112, 
-		112, 112, 112, 112, 112, 112, 112, 112, 
-		112, 112, 112, 112, 112, 112, 112, 112, 
-		112, 112, 112, 112, 112, 112, 112, 112, 
-		112, 112, 112, 112, 112, 112, 112, 112, 
-		112, 112, 112, 112, 112, 112, 112, 112, 
-		112, 112, 112, 112, 112, 112, 112, 112, 
-	};
-	yych = *p;
-	if (yych <= '(') {
-		if (yych <= 0x1F) {
-			if (yych == '\n') goto yy1104;
-			goto yy1112;
-		} else {
-			if (yych <= ' ') goto yy1106;
-			if (yych <= '\'') goto yy1108;
-			goto yy1111;
-		}
-	} else {
-		if (yych <= '<') {
-			if (yych <= ')') goto yy1112;
-			if (yych <= ';') goto yy1108;
-			goto yy1107;
-		} else {
-			if (yych == '\\') goto yy1109;
-			goto yy1108;
-		}
-	}
-yy1103:
-	{ return (p - start); }
-yy1104:
-	yyaccept = 0;
-	marker = ++p;
-	yych = *p;
-yy1105:
-	if (yybm[0+yych] & 8) {
-		goto yy1104;
-	}
-	if (yych <= ')') {
-		if (yych <= ' ') goto yy1103;
-		if (yych <= '\'') goto yy1117;
-		if (yych <= '(') goto yy1113;
-		goto yy1103;
-	} else {
-		if (yych <= '<') {
-			if (yych <= ';') goto yy1117;
-			goto yy1120;
-		} else {
-			if (yych == '\\') goto yy1119;
-			goto yy1117;
-		}
-	}
-yy1106:
-	yyaccept = 0;
-	yych = *(marker = ++p);
-	goto yy1105;
-yy1107:
-	yyaccept = 0;
-	yych = *(marker = ++p);
-	if (yybm[0+yych] & 32) {
-		goto yy1120;
-	}
-	if (yych <= '\'') {
-		if (yych <= 0x00) goto yy1103;
-		if (yych == '\n') goto yy1103;
-		goto yy1127;
-	} else {
-		if (yych <= ')') {
-			if (yych <= '(') goto yy1125;
-			goto yy1127;
-		} else {
-			if (yych <= '=') goto yy1117;
-			if (yych <= '>') goto yy1122;
-			goto yy1124;
-		}
-	}
-yy1108:
-	yyaccept = 0;
-	yych = *(marker = ++p);
-	goto yy1118;
-yy1109:
-	++p;
-	if ((yych = *p) <= '@') {
-		if (yych <= ' ') goto yy1110;
-		if (yych <= '/') goto yy1117;
-		if (yych >= ':') goto yy1117;
-	} else {
-		if (yych <= '`') {
-			if (yych >= '[') goto yy1117;
-		} else {
-			if (yych <= 'z') goto yy1110;
-			if (yych <= '~') goto yy1117;
-		}
-	}
-yy1110:
-	{ return 0; }
-yy1111:
-	yyaccept = 1;
-	yych = *(marker = ++p);
-	if (yych <= ' ') goto yy1110;
-	if (yych == '(') goto yy1110;
-	goto yy1114;
-yy1112:
-	yych = *++p;
-	goto yy1110;
-yy1113:
-	++p;
-	yych = *p;
-yy1114:
-	if (yybm[0+yych] & 16) {
-		goto yy1113;
-	}
-	if (yych <= '(') goto yy1115;
-	if (yych <= ')') goto yy1117;
-	goto yy1116;
-yy1115:
-	p = marker;
-	if (yyaccept <= 1) {
-		if (yyaccept == 0) {
-			goto yy1103;
-		} else {
-			goto yy1110;
-		}
-	} else {
-		goto yy1123;
-	}
-yy1116:
-	++p;
-	yych = *p;
-	if (yych <= '@') {
-		if (yych <= ' ') goto yy1115;
-		if (yych <= '/') goto yy1113;
-		if (yych <= '9') goto yy1115;
-		goto yy1113;
-	} else {
-		if (yych <= '`') {
-			if (yych <= 'Z') goto yy1115;
-			goto yy1113;
-		} else {
-			if (yych <= 'z') goto yy1115;
-			if (yych <= '~') goto yy1113;
-			goto yy1115;
-		}
-	}
-yy1117:
-	yyaccept = 0;
-	marker = ++p;
-	yych = *p;
-yy1118:
-	if (yych <= '(') {
-		if (yych <= ' ') goto yy1103;
-		if (yych <= '\'') goto yy1117;
-		goto yy1113;
-	} else {
-		if (yych <= ')') goto yy1103;
-		if (yych != '\\') goto yy1117;
-	}
-yy1119:
-	++p;
-	yych = *p;
-	if (yych <= '@') {
-		if (yych <= ' ') goto yy1115;
-		if (yych <= '/') goto yy1117;
-		if (yych <= '9') goto yy1115;
-		goto yy1117;
-	} else {
-		if (yych <= '`') {
-			if (yych <= 'Z') goto yy1115;
-			goto yy1117;
-		} else {
-			if (yych <= 'z') goto yy1115;
-			if (yych <= '~') goto yy1117;
-			goto yy1115;
-		}
-	}
-yy1120:
-	yyaccept = 0;
-	marker = ++p;
-	yych = *p;
-	if (yybm[0+yych] & 32) {
-		goto yy1120;
-	}
-	if (yych <= '\'') {
-		if (yych <= 0x00) goto yy1103;
-		if (yych == '\n') goto yy1103;
-		goto yy1127;
-	} else {
-		if (yych <= ')') {
-			if (yych <= '(') goto yy1125;
-			goto yy1127;
-		} else {
-			if (yych <= '=') goto yy1117;
-			if (yych >= '?') goto yy1124;
-		}
-	}
-yy1122:
-	yyaccept = 2;
-	yych = *(marker = ++p);
-	if (yych <= ' ') goto yy1123;
-	if (yych != ')') goto yy1118;
-yy1123:
-	{ return (p - start); }
-yy1124:
-	++p;
-	yych = *p;
-	if (yych <= '>') {
-		if (yych <= ' ') {
-			if (yych <= 0x00) goto yy1115;
-			if (yych == '\n') goto yy1115;
-			goto yy1127;
-		} else {
-			if (yych <= '/') goto yy1120;
-			if (yych <= '9') goto yy1127;
-			if (yych <= '=') goto yy1120;
-			goto yy1137;
-		}
-	} else {
-		if (yych <= '\\') {
-			if (yych <= '@') goto yy1120;
-			if (yych <= 'Z') goto yy1127;
-			if (yych <= '[') goto yy1120;
-			goto yy1138;
-		} else {
-			if (yych <= '`') goto yy1120;
-			if (yych <= 'z') goto yy1127;
-			if (yych <= '~') goto yy1120;
-			goto yy1127;
-		}
-	}
-yy1125:
-	++p;
-	yych = *p;
-	if (yych <= ')') {
-		if (yych <= '\n') {
-			if (yych <= 0x00) goto yy1115;
-			if (yych >= '\n') goto yy1115;
-		} else {
-			if (yych <= ' ') goto yy1127;
-			if (yych <= '\'') goto yy1125;
-			if (yych >= ')') goto yy1120;
-		}
-	} else {
-		if (yych <= '=') {
-			if (yych == '<') goto yy1113;
-			goto yy1125;
-		} else {
-			if (yych <= '>') goto yy1133;
-			if (yych == '\\') goto yy1134;
-			goto yy1125;
-		}
-	}
-yy1127:
-	++p;
-	yych = *p;
-	if (yybm[0+yych] & 64) {
-		goto yy1127;
-	}
-	if (yych <= '=') goto yy1115;
-	if (yych >= '?') goto yy1130;
-yy1129:
-	yych = *++p;
-	goto yy1123;
-yy1130:
-	++p;
-	yych = *p;
-	if (yybm[0+yych] & 128) {
-		goto yy1130;
-	}
-	if (yych <= '\n') {
-		if (yych <= 0x00) goto yy1115;
-		if (yych <= '\t') goto yy1127;
-		goto yy1115;
-	} else {
-		if (yych != '>') goto yy1127;
-	}
-	yyaccept = 2;
-	marker = ++p;
-	yych = *p;
-	if (yybm[0+yych] & 64) {
-		goto yy1127;
-	}
-	if (yych <= '=') goto yy1123;
-	if (yych <= '>') goto yy1129;
-	goto yy1130;
-yy1133:
-	yyaccept = 2;
-	yych = *(marker = ++p);
-	if (yych <= ' ') goto yy1123;
-	if (yych == '(') goto yy1123;
-	goto yy1114;
-yy1134:
-	++p;
-	yych = *p;
-	if (yych <= '>') {
-		if (yych <= ' ') {
-			if (yych <= 0x00) goto yy1115;
-			if (yych == '\n') goto yy1115;
-			goto yy1127;
-		} else {
-			if (yych <= '/') goto yy1125;
-			if (yych <= '9') goto yy1127;
-			if (yych <= '=') goto yy1125;
-		}
-	} else {
-		if (yych <= '\\') {
-			if (yych <= '@') goto yy1125;
-			if (yych <= 'Z') goto yy1127;
-			if (yych <= '[') goto yy1125;
-			goto yy1136;
-		} else {
-			if (yych <= '`') goto yy1125;
-			if (yych <= 'z') goto yy1127;
-			if (yych <= '~') goto yy1125;
-			goto yy1127;
-		}
-	}
-yy1135:
-	yyaccept = 2;
-	marker = ++p;
-	yych = *p;
-	if (yych <= ')') {
-		if (yych <= '\n') {
-			if (yych <= 0x00) goto yy1123;
-			if (yych <= '\t') goto yy1127;
-			goto yy1123;
-		} else {
-			if (yych <= ' ') goto yy1127;
-			if (yych <= '\'') goto yy1125;
-			if (yych <= '(') goto yy1127;
-			goto yy1120;
-		}
-	} else {
-		if (yych <= '=') {
-			if (yych == '<') goto yy1113;
-			goto yy1125;
-		} else {
-			if (yych <= '>') goto yy1133;
-			if (yych == '\\') goto yy1134;
-			goto yy1125;
-		}
-	}
-yy1136:
-	++p;
-	yych = *p;
-	if (yych <= '(') {
-		if (yych <= '\n') {
-			if (yych <= 0x00) goto yy1115;
-			if (yych <= '\t') goto yy1127;
-			goto yy1115;
-		} else {
-			if (yych <= ' ') goto yy1127;
-			if (yych <= '\'') goto yy1125;
-			goto yy1127;
-		}
-	} else {
-		if (yych <= '>') {
-			if (yych <= ')') goto yy1120;
-			if (yych <= '=') goto yy1125;
-			goto yy1135;
-		} else {
-			if (yych == '\\') goto yy1134;
-			goto yy1125;
-		}
-	}
-yy1137:
-	yyaccept = 2;
-	marker = ++p;
-	yych = *p;
-	if (yybm[0+yych] & 32) {
-		goto yy1120;
-	}
-	if (yych <= '\'') {
-		if (yych <= 0x00) goto yy1123;
-		if (yych == '\n') goto yy1123;
-		goto yy1127;
-	} else {
-		if (yych <= ')') {
-			if (yych <= '(') goto yy1125;
-			goto yy1127;
-		} else {
-			if (yych <= '=') goto yy1117;
-			if (yych <= '>') goto yy1122;
-			goto yy1124;
-		}
-	}
-yy1138:
-	yyaccept = 0;
-	marker = ++p;
-	yych = *p;
-	if (yych <= '(') {
-		if (yych <= '\n') {
-			if (yych <= 0x00) goto yy1103;
-			if (yych <= '\t') goto yy1127;
-			goto yy1103;
-		} else {
-			if (yych <= ' ') goto yy1127;
-			if (yych <= '\'') goto yy1120;
-			goto yy1125;
-		}
-	} else {
-		if (yych <= '>') {
-			if (yych <= ')') goto yy1127;
-			if (yych <= '=') goto yy1120;
-			goto yy1137;
-		} else {
-			if (yych == '\\') goto yy1124;
-			goto yy1120;
-		}
-	}
-}
-
-}
-
-// Try to match a link title (in single quotes, in double quotes, or
-// in parentheses), returning number of chars matched.  Allow one
-// level of internal nesting (quotes within quotes).
-int _scan_link_title(const unsigned char *p)
-{
-  const unsigned char *marker = NULL;
-  const unsigned char *start = p;
-
-{
-	unsigned char yych;
-	unsigned int yyaccept = 0;
-	static const unsigned char yybm[] = {
-		  0, 208, 208, 208, 208, 208, 208, 208, 
-		208, 208, 208, 208, 208, 208, 208, 208, 
-		208, 208, 208, 208, 208, 208, 208, 208, 
-		208, 208, 208, 208, 208, 208, 208, 208, 
-		208, 208,  80, 208, 208, 208, 208, 144, 
-		208, 192, 208, 208, 208, 208, 208, 208, 
-		208, 208, 208, 208, 208, 208, 208, 208, 
-		208, 208, 208, 208, 208, 208, 208, 208, 
-		208, 208, 208, 208, 208, 208, 208, 208, 
-		208, 208, 208, 208, 208, 208, 208, 208, 
-		208, 208, 208, 208, 208, 208, 208, 208, 
-		208, 208, 208, 208,  32, 208, 208, 208, 
-		208, 208, 208, 208, 208, 208, 208, 208, 
-		208, 208, 208, 208, 208, 208, 208, 208, 
-		208, 208, 208, 208, 208, 208, 208, 208, 
-		208, 208, 208, 208, 208, 208, 208, 208, 
-		208, 208, 208, 208, 208, 208, 208, 208, 
-		208, 208, 208, 208, 208, 208, 208, 208, 
-		208, 208, 208, 208, 208, 208, 208, 208, 
-		208, 208, 208, 208, 208, 208, 208, 208, 
-		208, 208, 208, 208, 208, 208, 208, 208, 
-		208, 208, 208, 208, 208, 208, 208, 208, 
-		208, 208, 208, 208, 208, 208, 208, 208, 
-		208, 208, 208, 208, 208, 208, 208, 208, 
-		208, 208, 208, 208, 208, 208, 208, 208, 
-		208, 208, 208, 208, 208, 208, 208, 208, 
-		208, 208, 208, 208, 208, 208, 208, 208, 
-		208, 208, 208, 208, 208, 208, 208, 208, 
-		208, 208, 208, 208, 208, 208, 208, 208, 
-		208, 208, 208, 208, 208, 208, 208, 208, 
-		208, 208, 208, 208, 208, 208, 208, 208, 
-		208, 208, 208, 208, 208, 208, 208, 208, 
-	};
-	yych = *p;
-	if (yych <= '"') {
-		if (yych == '\n') goto yy1141;
-		if (yych <= '!') goto yy1145;
-		goto yy1142;
-	} else {
-		if (yych <= '&') goto yy1145;
-		if (yych <= '\'') goto yy1143;
-		if (yych <= '(') goto yy1144;
-		goto yy1145;
-	}
-yy1141:
-	{ return 0; }
-yy1142:
-	yyaccept = 0;
-	yych = *(marker = ++p);
-	if (yych <= 0x00) goto yy1141;
-	goto yy1162;
-yy1143:
-	yyaccept = 0;
-	yych = *(marker = ++p);
-	if (yych <= 0x00) goto yy1141;
-	goto yy1155;
-yy1144:
-	yyaccept = 0;
-	yych = *(marker = ++p);
-	if (yych <= 0x00) goto yy1141;
-	goto yy1147;
-yy1145:
-	yych = *++p;
-	goto yy1141;
-yy1146:
-	++p;
-	yych = *p;
-yy1147:
-	if (yybm[0+yych] & 16) {
-		goto yy1146;
-	}
-	if (yych <= 0x00) goto yy1148;
-	if (yych <= '[') goto yy1151;
-	goto yy1149;
-yy1148:
-	p = marker;
-	if (yyaccept <= 1) {
-		if (yyaccept == 0) {
-			goto yy1141;
-		} else {
-			goto yy1152;
-		}
-	} else {
-		if (yyaccept == 2) {
-			goto yy1159;
-		} else {
-			goto yy1166;
-		}
-	}
-yy1149:
-	++p;
-	yych = *p;
-	if (yybm[0+yych] & 16) {
-		goto yy1146;
-	}
-	if (yych <= 0x00) goto yy1148;
-	if (yych <= '[') goto yy1153;
-	goto yy1149;
-yy1151:
-	++p;
-yy1152:
-	{ return (p - start); }
-yy1153:
-	yyaccept = 1;
-	marker = ++p;
-	yych = *p;
-	if (yybm[0+yych] & 16) {
-		goto yy1146;
-	}
-	if (yych <= 0x00) goto yy1152;
-	if (yych <= '[') goto yy1151;
-	goto yy1149;
-yy1154:
-	++p;
-	yych = *p;
-yy1155:
-	if (yybm[0+yych] & 64) {
-		goto yy1154;
-	}
-	if (yych <= 0x00) goto yy1148;
-	if (yych <= '[') goto yy1158;
-yy1156:
-	++p;
-	yych = *p;
-	if (yybm[0+yych] & 64) {
-		goto yy1154;
-	}
-	if (yych <= 0x00) goto yy1148;
-	if (yych <= '[') goto yy1160;
-	goto yy1156;
-yy1158:
-	++p;
-yy1159:
-	{ return (p - start); }
-yy1160:
-	yyaccept = 2;
-	marker = ++p;
-	yych = *p;
-	if (yybm[0+yych] & 64) {
-		goto yy1154;
-	}
-	if (yych <= 0x00) goto yy1159;
-	if (yych <= '[') goto yy1158;
-	goto yy1156;
-yy1161:
-	++p;
-	yych = *p;
-yy1162:
-	if (yybm[0+yych] & 128) {
-		goto yy1161;
-	}
-	if (yych <= 0x00) goto yy1148;
-	if (yych <= '[') goto yy1165;
-yy1163:
-	++p;
-	yych = *p;
-	if (yybm[0+yych] & 128) {
-		goto yy1161;
-	}
-	if (yych <= 0x00) goto yy1148;
-	if (yych <= '[') goto yy1167;
-	goto yy1163;
-yy1165:
-	++p;
-yy1166:
-	{ return (p - start); }
-yy1167:
-	yyaccept = 3;
-	marker = ++p;
-	yych = *p;
-	if (yybm[0+yych] & 128) {
-		goto yy1161;
-	}
-	if (yych <= 0x00) goto yy1166;
-	if (yych <= '[') goto yy1165;
-	goto yy1163;
-}
-
-}
-
-// Match space characters, including newlines.
-int _scan_spacechars(const unsigned char *p)
-{
-  const unsigned char *start = p; \
-
-{
-	unsigned char yych;
-	static const unsigned char yybm[] = {
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0, 128, 128, 128, 128, 128,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		128,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-	};
-	yych = *p;
-	if (yych <= '\n') {
-		if (yych <= 0x08) goto yy1174;
-		if (yych <= '\t') goto yy1171;
-		goto yy1172;
-	} else {
-		if (yych <= '\r') goto yy1171;
-		if (yych == ' ') goto yy1171;
-		goto yy1174;
-	}
-yy1170:
-	{ return (p - start); }
-yy1171:
-	yych = *++p;
-	goto yy1173;
-yy1172:
-	++p;
-	yych = *p;
-yy1173:
-	if (yybm[0+yych] & 128) {
-		goto yy1172;
-	}
-	goto yy1170;
-yy1174:
-	++p;
-	{ return 0; }
-}
-
-}
-
-// Match ATX header start.
-int _scan_atx_header_start(const unsigned char *p)
-{
-  const unsigned char *marker = NULL;
-  const unsigned char *start = p;
-
-{
-	unsigned char yych;
-	static const unsigned char yybm[] = {
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		128,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-	};
-	yych = *p;
-	if (yych == '\n') goto yy1178;
-	if (yych == '#') goto yy1179;
-	goto yy1180;
-yy1178:
-	{ return 0; }
-yy1179:
-	yych = *(marker = ++p);
-	if (yybm[0+yych] & 128) {
-		goto yy1183;
-	}
-	if (yych == '\n') goto yy1181;
-	if (yych == '#') goto yy1185;
-	goto yy1178;
-yy1180:
-	yych = *++p;
-	goto yy1178;
-yy1181:
-	++p;
-yy1182:
-	{ return (p - start); }
-yy1183:
-	++p;
-	yych = *p;
-	if (yybm[0+yych] & 128) {
-		goto yy1183;
-	}
-	goto yy1182;
-yy1185:
-	yych = *++p;
-	if (yybm[0+yych] & 128) {
-		goto yy1183;
-	}
-	if (yych == '\n') goto yy1181;
-	if (yych == '#') goto yy1187;
-yy1186:
-	p = marker;
-	goto yy1178;
-yy1187:
-	yych = *++p;
-	if (yybm[0+yych] & 128) {
-		goto yy1183;
-	}
-	if (yych == '\n') goto yy1181;
-	if (yych != '#') goto yy1186;
-	yych = *++p;
-	if (yybm[0+yych] & 128) {
-		goto yy1183;
-	}
-	if (yych == '\n') goto yy1181;
-	if (yych != '#') goto yy1186;
-	yych = *++p;
-	if (yybm[0+yych] & 128) {
-		goto yy1183;
-	}
-	if (yych == '\n') goto yy1181;
-	if (yych != '#') goto yy1186;
-	++p;
-	if (yybm[0+(yych = *p)] & 128) {
-		goto yy1183;
-	}
-	if (yych == '\n') goto yy1181;
-	goto yy1186;
-}
-
-}
-
-// Match sexext header line.  Return 1 for level-1 header,
-// 2 for level-2, 0 for no match.
-int _scan_setext_header_line(const unsigned char *p)
-{
-  const unsigned char *marker = NULL;
-
-{
-	unsigned char yych;
-	static const unsigned char yybm[] = {
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		 32,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,  64,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0, 128,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-	};
-	yych = *p;
-	if (yych <= ',') {
-		if (yych != '\n') goto yy1196;
-	} else {
-		if (yych <= '-') goto yy1195;
-		if (yych == '=') goto yy1194;
-		goto yy1196;
-	}
-yy1193:
-	{ return 0; }
-yy1194:
-	yych = *(marker = ++p);
-	if (yybm[0+yych] & 128) {
-		goto yy1208;
-	}
-	if (yych == '\n') goto yy1206;
-	if (yych == ' ') goto yy1204;
-	goto yy1193;
-yy1195:
-	yych = *(marker = ++p);
-	if (yybm[0+yych] & 32) {
-		goto yy1197;
-	}
-	if (yych == '\n') goto yy1200;
-	if (yych == '-') goto yy1202;
-	goto yy1193;
-yy1196:
-	yych = *++p;
-	goto yy1193;
-yy1197:
-	++p;
-	yych = *p;
-	if (yybm[0+yych] & 32) {
-		goto yy1197;
-	}
-	if (yych == '\n') goto yy1200;
-yy1199:
-	p = marker;
-	goto yy1193;
-yy1200:
-	++p;
-	{ return 2; }
-yy1202:
-	++p;
-	yych = *p;
-	if (yybm[0+yych] & 32) {
-		goto yy1197;
-	}
-	if (yych == '\n') goto yy1200;
-	if (yych == '-') goto yy1202;
-	goto yy1199;
-yy1204:
-	++p;
-	yych = *p;
-	if (yych == '\n') goto yy1206;
-	if (yych == ' ') goto yy1204;
-	goto yy1199;
-yy1206:
-	++p;
-	{ return 1; }
-yy1208:
-	++p;
-	yych = *p;
-	if (yybm[0+yych] & 128) {
-		goto yy1208;
-	}
-	if (yych == '\n') goto yy1206;
-	if (yych == ' ') goto yy1204;
-	goto yy1199;
-}
-
-}
-
-// Scan a horizontal rule line: "...three or more hyphens, asterisks,
-// or underscores on a line by themselves. If you wish, you may use
-// spaces between the hyphens or asterisks."
-int _scan_hrule(const unsigned char *p)
-{
-  const unsigned char *marker = NULL;
-  const unsigned char *start = p;
-
-{
-	unsigned char yych;
-	static const unsigned char yybm[] = {
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,  32,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		248,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0, 128,   0,   0,  16,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,  64, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-	};
-	yych = *p;
-	if (yych <= '*') {
-		if (yych == '\n') goto yy1212;
-		if (yych <= ')') goto yy1216;
-		goto yy1213;
-	} else {
-		if (yych <= '-') {
-			if (yych <= ',') goto yy1216;
-			goto yy1215;
-		} else {
-			if (yych == '_') goto yy1214;
-			goto yy1216;
-		}
-	}
-yy1212:
-	{ return 0; }
-yy1213:
-	yych = *(marker = ++p);
-	if (yych == ' ') goto yy1238;
-	if (yych == '*') goto yy1240;
-	goto yy1212;
-yy1214:
-	yych = *(marker = ++p);
-	if (yych == ' ') goto yy1228;
-	if (yych == '_') goto yy1230;
-	goto yy1212;
-yy1215:
-	yych = *(marker = ++p);
-	if (yybm[0+yych] & 8) {
-		goto yy1217;
-	}
-	if (yych == '-') goto yy1220;
-	goto yy1212;
-yy1216:
-	yych = *++p;
-	goto yy1212;
-yy1217:
-	++p;
-	yych = *p;
-	if (yybm[0+yych] & 8) {
-		goto yy1217;
-	}
-	if (yych == '-') goto yy1220;
-yy1219:
-	p = marker;
-	goto yy1212;
-yy1220:
-	++p;
-	yych = *p;
-	if (yych == ' ') goto yy1220;
-	if (yych != '-') goto yy1219;
-yy1222:
-	++p;
-	yych = *p;
-	if (yybm[0+yych] & 16) {
-		goto yy1222;
-	}
-	if (yych <= 0x08) goto yy1219;
-	if (yych <= '\t') goto yy1224;
-	if (yych <= '\n') goto yy1226;
-	goto yy1219;
-yy1224:
-	++p;
-	yych = *p;
-	if (yybm[0+yych] & 32) {
-		goto yy1224;
-	}
-	if (yych != '\n') goto yy1219;
-yy1226:
-	++p;
-	{ return (p - start); }
-yy1228:
-	++p;
-	yych = *p;
-	if (yych == ' ') goto yy1228;
-	if (yych != '_') goto yy1219;
-yy1230:
-	++p;
-	yych = *p;
-	if (yych == ' ') goto yy1230;
-	if (yych != '_') goto yy1219;
-yy1232:
-	++p;
-	yych = *p;
-	if (yybm[0+yych] & 64) {
-		goto yy1232;
-	}
-	if (yych <= 0x08) goto yy1219;
-	if (yych <= '\t') goto yy1234;
-	if (yych <= '\n') goto yy1236;
-	goto yy1219;
-yy1234:
-	++p;
-	yych = *p;
-	if (yych <= '\n') {
-		if (yych <= 0x08) goto yy1219;
-		if (yych <= '\t') goto yy1234;
-	} else {
-		if (yych == ' ') goto yy1234;
-		goto yy1219;
-	}
-yy1236:
-	++p;
-	{ return (p - start); }
-yy1238:
-	++p;
-	yych = *p;
-	if (yych == ' ') goto yy1238;
-	if (yych != '*') goto yy1219;
-yy1240:
-	++p;
-	yych = *p;
-	if (yych == ' ') goto yy1240;
-	if (yych != '*') goto yy1219;
-yy1242:
-	++p;
-	yych = *p;
-	if (yybm[0+yych] & 128) {
-		goto yy1242;
-	}
-	if (yych <= 0x08) goto yy1219;
-	if (yych <= '\t') goto yy1244;
-	if (yych <= '\n') goto yy1246;
-	goto yy1219;
-yy1244:
-	++p;
-	yych = *p;
-	if (yych <= '\n') {
-		if (yych <= 0x08) goto yy1219;
-		if (yych <= '\t') goto yy1244;
-	} else {
-		if (yych == ' ') goto yy1244;
-		goto yy1219;
-	}
-yy1246:
-	++p;
-	{ return (p - start); }
-}
-
-}
-
-// Scan an opening code fence.
-int _scan_open_code_fence(const unsigned char *p)
-{
-  const unsigned char *marker = NULL;
-  const unsigned char *start = p;
-
-{
-	unsigned char yych;
-	static const unsigned char yybm[] = {
-		  0, 160, 160, 160, 160, 160, 160, 160, 
-		160, 160,   0, 160, 160, 160, 160, 160, 
-		160, 160, 160, 160, 160, 160, 160, 160, 
-		160, 160, 160, 160, 160, 160, 160, 160, 
-		160, 160, 160, 160, 160, 160, 160, 160, 
-		160, 160, 160, 160, 160, 160, 160, 160, 
-		160, 160, 160, 160, 160, 160, 160, 160, 
-		160, 160, 160, 160, 160, 160, 160, 160, 
-		160, 160, 160, 160, 160, 160, 160, 160, 
-		160, 160, 160, 160, 160, 160, 160, 160, 
-		160, 160, 160, 160, 160, 160, 160, 160, 
-		160, 160, 160, 160, 160, 160, 160, 160, 
-		 96, 160, 160, 160, 160, 160, 160, 160, 
-		160, 160, 160, 160, 160, 160, 160, 160, 
-		160, 160, 160, 160, 160, 160, 160, 160, 
-		160, 160, 160, 160, 160, 160, 144, 160, 
-		160, 160, 160, 160, 160, 160, 160, 160, 
-		160, 160, 160, 160, 160, 160, 160, 160, 
-		160, 160, 160, 160, 160, 160, 160, 160, 
-		160, 160, 160, 160, 160, 160, 160, 160, 
-		160, 160, 160, 160, 160, 160, 160, 160, 
-		160, 160, 160, 160, 160, 160, 160, 160, 
-		160, 160, 160, 160, 160, 160, 160, 160, 
-		160, 160, 160, 160, 160, 160, 160, 160, 
-		160, 160, 160, 160, 160, 160, 160, 160, 
-		160, 160, 160, 160, 160, 160, 160, 160, 
-		160, 160, 160, 160, 160, 160, 160, 160, 
-		160, 160, 160, 160, 160, 160, 160, 160, 
-		160, 160, 160, 160, 160, 160, 160, 160, 
-		160, 160, 160, 160, 160, 160, 160, 160, 
-		160, 160, 160, 160, 160, 160, 160, 160, 
-		160, 160, 160, 160, 160, 160, 160, 160, 
-	};
-	yych = *p;
-	if (yych <= '_') {
-		if (yych != '\n') goto yy1253;
-	} else {
-		if (yych <= '`') goto yy1251;
-		if (yych == '~') goto yy1252;
-		goto yy1253;
-	}
-yy1250:
-	{ return 0; }
-yy1251:
-	yych = *(marker = ++p);
-	if (yych == '`') goto yy1262;
-	goto yy1250;
-yy1252:
-	yych = *(marker = ++p);
-	if (yych == '~') goto yy1254;
-	goto yy1250;
-yy1253:
-	yych = *++p;
-	goto yy1250;
-yy1254:
-	yych = *++p;
-	if (yybm[0+yych] & 16) {
-		goto yy1256;
-	}
-yy1255:
-	p = marker;
-	goto yy1250;
-yy1256:
-	marker = p + 1;
-	++p;
-	yych = *p;
-	if (yybm[0+yych] & 32) {
-		goto yy1258;
-	}
-	if (yych <= 0x00) goto yy1255;
-	if (yych <= '}') goto yy1260;
-	goto yy1256;
-yy1258:
-	++p;
-	yych = *p;
-	if (yybm[0+yych] & 32) {
-		goto yy1258;
-	}
-	if (yych <= 0x00) goto yy1255;
-	if (yych >= '~') goto yy1255;
-yy1260:
-	++p;
-	p = marker;
-	{ return (p - start); }
-yy1262:
-	yych = *++p;
-	if (yybm[0+yych] & 64) {
-		goto yy1263;
-	}
-	goto yy1255;
-yy1263:
-	marker = p + 1;
-	++p;
-	yych = *p;
-	if (yybm[0+yych] & 128) {
-		goto yy1265;
-	}
-	if (yych <= 0x00) goto yy1255;
-	if (yych <= '_') goto yy1267;
-	goto yy1263;
-yy1265:
-	++p;
-	yych = *p;
-	if (yybm[0+yych] & 128) {
-		goto yy1265;
-	}
-	if (yych <= 0x00) goto yy1255;
-	if (yych >= '`') goto yy1255;
-yy1267:
-	++p;
-	p = marker;
-	{ return (p - start); }
-}
-
-}
-
-// Scan a closing code fence with length at least len.
-int _scan_close_code_fence(const unsigned char *p)
-{
-  const unsigned char *marker = NULL;
-  const unsigned char *start = p;
-
-{
-	unsigned char yych;
-	static const unsigned char yybm[] = {
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,  64,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		 64,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		128,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,  32,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-	};
-	yych = *p;
-	if (yych <= '_') {
-		if (yych != '\n') goto yy1274;
-	} else {
-		if (yych <= '`') goto yy1272;
-		if (yych == '~') goto yy1273;
-		goto yy1274;
-	}
-yy1271:
-	{ return 0; }
-yy1272:
-	yych = *(marker = ++p);
-	if (yych == '`') goto yy1283;
-	goto yy1271;
-yy1273:
-	yych = *(marker = ++p);
-	if (yych == '~') goto yy1275;
-	goto yy1271;
-yy1274:
-	yych = *++p;
-	goto yy1271;
-yy1275:
-	yych = *++p;
-	if (yybm[0+yych] & 32) {
-		goto yy1277;
-	}
-yy1276:
-	p = marker;
-	goto yy1271;
-yy1277:
-	marker = p + 1;
-	++p;
-	yych = *p;
-	if (yybm[0+yych] & 64) {
-		goto yy1279;
-	}
-	if (yych == '\n') goto yy1281;
-	if (yych == '~') goto yy1277;
-	goto yy1276;
-yy1279:
-	++p;
-	yych = *p;
-	if (yybm[0+yych] & 64) {
-		goto yy1279;
-	}
-	if (yych != '\n') goto yy1276;
-yy1281:
-	++p;
-	p = marker;
-	{ return (p - start); }
-yy1283:
-	yych = *++p;
-	if (yybm[0+yych] & 128) {
-		goto yy1284;
-	}
-	goto yy1276;
-yy1284:
-	marker = p + 1;
-	++p;
-	yych = *p;
-	if (yybm[0+yych] & 128) {
-		goto yy1284;
-	}
-	if (yych <= '\n') {
-		if (yych <= 0x08) goto yy1276;
-		if (yych >= '\n') goto yy1288;
-	} else {
-		if (yych != ' ') goto yy1276;
-	}
-yy1286:
-	++p;
-	yych = *p;
-	if (yych <= '\n') {
-		if (yych <= 0x08) goto yy1276;
-		if (yych <= '\t') goto yy1286;
-	} else {
-		if (yych == ' ') goto yy1286;
-		goto yy1276;
-	}
-yy1288:
-	++p;
-	p = marker;
-	{ return (p - start); }
-}
-
-}
-
-// Scans an entity.
-// Returns number of chars matched.
-int _scan_entity(const unsigned char *p)
-{
-  const unsigned char *marker = NULL;
-  const unsigned char *start = p;
-
-{
-	unsigned char yych;
-	yych = *p;
-	if (yych == '\n') goto yy1292;
-	if (yych == '&') goto yy1293;
-	goto yy1294;
-yy1292:
-	{ return 0; }
-yy1293:
-	yych = *(marker = ++p);
-	if (yych <= '@') {
-		if (yych == '#') goto yy1295;
-		goto yy1292;
-	} else {
-		if (yych <= 'Z') goto yy1297;
-		if (yych <= '`') goto yy1292;
-		if (yych <= 'z') goto yy1297;
-		goto yy1292;
-	}
-yy1294:
-	yych = *++p;
-	goto yy1292;
-yy1295:
-	yych = *++p;
-	if (yych <= 'W') {
-		if (yych <= '/') goto yy1296;
-		if (yych <= '9') goto yy1332;
-	} else {
-		if (yych <= 'X') goto yy1331;
-		if (yych == 'x') goto yy1331;
-	}
-yy1296:
-	p = marker;
-	goto yy1292;
-yy1297:
-	yych = *++p;
-	if (yych <= '@') {
-		if (yych <= '/') goto yy1296;
-		if (yych >= ':') goto yy1296;
-	} else {
-		if (yych <= 'Z') goto yy1298;
-		if (yych <= '`') goto yy1296;
-		if (yych >= '{') goto yy1296;
-	}
-yy1298:
-	yych = *++p;
-	if (yych <= ';') {
-		if (yych <= '/') goto yy1296;
-		if (yych <= '9') goto yy1301;
-		if (yych <= ':') goto yy1296;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy1296;
-			goto yy1301;
-		} else {
-			if (yych <= '`') goto yy1296;
-			if (yych <= 'z') goto yy1301;
-			goto yy1296;
-		}
-	}
-yy1299:
-	++p;
-	{ return (p - start); }
-yy1301:
-	yych = *++p;
-	if (yych <= ';') {
-		if (yych <= '/') goto yy1296;
-		if (yych <= '9') goto yy1302;
-		if (yych <= ':') goto yy1296;
-		goto yy1299;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy1296;
-		} else {
-			if (yych <= '`') goto yy1296;
-			if (yych >= '{') goto yy1296;
-		}
-	}
-yy1302:
-	yych = *++p;
-	if (yych <= ';') {
-		if (yych <= '/') goto yy1296;
-		if (yych <= '9') goto yy1303;
-		if (yych <= ':') goto yy1296;
-		goto yy1299;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy1296;
-		} else {
-			if (yych <= '`') goto yy1296;
-			if (yych >= '{') goto yy1296;
-		}
-	}
-yy1303:
-	yych = *++p;
-	if (yych <= ';') {
-		if (yych <= '/') goto yy1296;
-		if (yych <= '9') goto yy1304;
-		if (yych <= ':') goto yy1296;
-		goto yy1299;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy1296;
-		} else {
-			if (yych <= '`') goto yy1296;
-			if (yych >= '{') goto yy1296;
-		}
-	}
-yy1304:
-	yych = *++p;
-	if (yych <= ';') {
-		if (yych <= '/') goto yy1296;
-		if (yych <= '9') goto yy1305;
-		if (yych <= ':') goto yy1296;
-		goto yy1299;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy1296;
-		} else {
-			if (yych <= '`') goto yy1296;
-			if (yych >= '{') goto yy1296;
-		}
-	}
-yy1305:
-	yych = *++p;
-	if (yych <= ';') {
-		if (yych <= '/') goto yy1296;
-		if (yych <= '9') goto yy1306;
-		if (yych <= ':') goto yy1296;
-		goto yy1299;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy1296;
-		} else {
-			if (yych <= '`') goto yy1296;
-			if (yych >= '{') goto yy1296;
-		}
-	}
-yy1306:
-	yych = *++p;
-	if (yych <= ';') {
-		if (yych <= '/') goto yy1296;
-		if (yych <= '9') goto yy1307;
-		if (yych <= ':') goto yy1296;
-		goto yy1299;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy1296;
-		} else {
-			if (yych <= '`') goto yy1296;
-			if (yych >= '{') goto yy1296;
-		}
-	}
-yy1307:
-	yych = *++p;
-	if (yych <= ';') {
-		if (yych <= '/') goto yy1296;
-		if (yych <= '9') goto yy1308;
-		if (yych <= ':') goto yy1296;
-		goto yy1299;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy1296;
-		} else {
-			if (yych <= '`') goto yy1296;
-			if (yych >= '{') goto yy1296;
-		}
-	}
-yy1308:
-	yych = *++p;
-	if (yych <= ';') {
-		if (yych <= '/') goto yy1296;
-		if (yych <= '9') goto yy1309;
-		if (yych <= ':') goto yy1296;
-		goto yy1299;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy1296;
-		} else {
-			if (yych <= '`') goto yy1296;
-			if (yych >= '{') goto yy1296;
-		}
-	}
-yy1309:
-	yych = *++p;
-	if (yych <= ';') {
-		if (yych <= '/') goto yy1296;
-		if (yych <= '9') goto yy1310;
-		if (yych <= ':') goto yy1296;
-		goto yy1299;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy1296;
-		} else {
-			if (yych <= '`') goto yy1296;
-			if (yych >= '{') goto yy1296;
-		}
-	}
-yy1310:
-	yych = *++p;
-	if (yych <= ';') {
-		if (yych <= '/') goto yy1296;
-		if (yych <= '9') goto yy1311;
-		if (yych <= ':') goto yy1296;
-		goto yy1299;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy1296;
-		} else {
-			if (yych <= '`') goto yy1296;
-			if (yych >= '{') goto yy1296;
-		}
-	}
-yy1311:
-	yych = *++p;
-	if (yych <= ';') {
-		if (yych <= '/') goto yy1296;
-		if (yych <= '9') goto yy1312;
-		if (yych <= ':') goto yy1296;
-		goto yy1299;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy1296;
-		} else {
-			if (yych <= '`') goto yy1296;
-			if (yych >= '{') goto yy1296;
-		}
-	}
-yy1312:
-	yych = *++p;
-	if (yych <= ';') {
-		if (yych <= '/') goto yy1296;
-		if (yych <= '9') goto yy1313;
-		if (yych <= ':') goto yy1296;
-		goto yy1299;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy1296;
-		} else {
-			if (yych <= '`') goto yy1296;
-			if (yych >= '{') goto yy1296;
-		}
-	}
-yy1313:
-	yych = *++p;
-	if (yych <= ';') {
-		if (yych <= '/') goto yy1296;
-		if (yych <= '9') goto yy1314;
-		if (yych <= ':') goto yy1296;
-		goto yy1299;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy1296;
-		} else {
-			if (yych <= '`') goto yy1296;
-			if (yych >= '{') goto yy1296;
-		}
-	}
-yy1314:
-	yych = *++p;
-	if (yych <= ';') {
-		if (yych <= '/') goto yy1296;
-		if (yych <= '9') goto yy1315;
-		if (yych <= ':') goto yy1296;
-		goto yy1299;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy1296;
-		} else {
-			if (yych <= '`') goto yy1296;
-			if (yych >= '{') goto yy1296;
-		}
-	}
-yy1315:
-	yych = *++p;
-	if (yych <= ';') {
-		if (yych <= '/') goto yy1296;
-		if (yych <= '9') goto yy1316;
-		if (yych <= ':') goto yy1296;
-		goto yy1299;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy1296;
-		} else {
-			if (yych <= '`') goto yy1296;
-			if (yych >= '{') goto yy1296;
-		}
-	}
-yy1316:
-	yych = *++p;
-	if (yych <= ';') {
-		if (yych <= '/') goto yy1296;
-		if (yych <= '9') goto yy1317;
-		if (yych <= ':') goto yy1296;
-		goto yy1299;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy1296;
-		} else {
-			if (yych <= '`') goto yy1296;
-			if (yych >= '{') goto yy1296;
-		}
-	}
-yy1317:
-	yych = *++p;
-	if (yych <= ';') {
-		if (yych <= '/') goto yy1296;
-		if (yych <= '9') goto yy1318;
-		if (yych <= ':') goto yy1296;
-		goto yy1299;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy1296;
-		} else {
-			if (yych <= '`') goto yy1296;
-			if (yych >= '{') goto yy1296;
-		}
-	}
-yy1318:
-	yych = *++p;
-	if (yych <= ';') {
-		if (yych <= '/') goto yy1296;
-		if (yych <= '9') goto yy1319;
-		if (yych <= ':') goto yy1296;
-		goto yy1299;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy1296;
-		} else {
-			if (yych <= '`') goto yy1296;
-			if (yych >= '{') goto yy1296;
-		}
-	}
-yy1319:
-	yych = *++p;
-	if (yych <= ';') {
-		if (yych <= '/') goto yy1296;
-		if (yych <= '9') goto yy1320;
-		if (yych <= ':') goto yy1296;
-		goto yy1299;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy1296;
-		} else {
-			if (yych <= '`') goto yy1296;
-			if (yych >= '{') goto yy1296;
-		}
-	}
-yy1320:
-	yych = *++p;
-	if (yych <= ';') {
-		if (yych <= '/') goto yy1296;
-		if (yych <= '9') goto yy1321;
-		if (yych <= ':') goto yy1296;
-		goto yy1299;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy1296;
-		} else {
-			if (yych <= '`') goto yy1296;
-			if (yych >= '{') goto yy1296;
-		}
-	}
-yy1321:
-	yych = *++p;
-	if (yych <= ';') {
-		if (yych <= '/') goto yy1296;
-		if (yych <= '9') goto yy1322;
-		if (yych <= ':') goto yy1296;
-		goto yy1299;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy1296;
-		} else {
-			if (yych <= '`') goto yy1296;
-			if (yych >= '{') goto yy1296;
-		}
-	}
-yy1322:
-	yych = *++p;
-	if (yych <= ';') {
-		if (yych <= '/') goto yy1296;
-		if (yych <= '9') goto yy1323;
-		if (yych <= ':') goto yy1296;
-		goto yy1299;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy1296;
-		} else {
-			if (yych <= '`') goto yy1296;
-			if (yych >= '{') goto yy1296;
-		}
-	}
-yy1323:
-	yych = *++p;
-	if (yych <= ';') {
-		if (yych <= '/') goto yy1296;
-		if (yych <= '9') goto yy1324;
-		if (yych <= ':') goto yy1296;
-		goto yy1299;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy1296;
-		} else {
-			if (yych <= '`') goto yy1296;
-			if (yych >= '{') goto yy1296;
-		}
-	}
-yy1324:
-	yych = *++p;
-	if (yych <= ';') {
-		if (yych <= '/') goto yy1296;
-		if (yych <= '9') goto yy1325;
-		if (yych <= ':') goto yy1296;
-		goto yy1299;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy1296;
-		} else {
-			if (yych <= '`') goto yy1296;
-			if (yych >= '{') goto yy1296;
-		}
-	}
-yy1325:
-	yych = *++p;
-	if (yych <= ';') {
-		if (yych <= '/') goto yy1296;
-		if (yych <= '9') goto yy1326;
-		if (yych <= ':') goto yy1296;
-		goto yy1299;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy1296;
-		} else {
-			if (yych <= '`') goto yy1296;
-			if (yych >= '{') goto yy1296;
-		}
-	}
-yy1326:
-	yych = *++p;
-	if (yych <= ';') {
-		if (yych <= '/') goto yy1296;
-		if (yych <= '9') goto yy1327;
-		if (yych <= ':') goto yy1296;
-		goto yy1299;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy1296;
-		} else {
-			if (yych <= '`') goto yy1296;
-			if (yych >= '{') goto yy1296;
-		}
-	}
-yy1327:
-	yych = *++p;
-	if (yych <= ';') {
-		if (yych <= '/') goto yy1296;
-		if (yych <= '9') goto yy1328;
-		if (yych <= ':') goto yy1296;
-		goto yy1299;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy1296;
-		} else {
-			if (yych <= '`') goto yy1296;
-			if (yych >= '{') goto yy1296;
-		}
-	}
-yy1328:
-	yych = *++p;
-	if (yych <= ';') {
-		if (yych <= '/') goto yy1296;
-		if (yych <= '9') goto yy1329;
-		if (yych <= ':') goto yy1296;
-		goto yy1299;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy1296;
-		} else {
-			if (yych <= '`') goto yy1296;
-			if (yych >= '{') goto yy1296;
-		}
-	}
-yy1329:
-	yych = *++p;
-	if (yych <= ';') {
-		if (yych <= '/') goto yy1296;
-		if (yych <= '9') goto yy1330;
-		if (yych <= ':') goto yy1296;
-		goto yy1299;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy1296;
-		} else {
-			if (yych <= '`') goto yy1296;
-			if (yych >= '{') goto yy1296;
-		}
-	}
-yy1330:
-	yych = *++p;
-	if (yych == ';') goto yy1299;
-	goto yy1296;
-yy1331:
-	yych = *++p;
-	if (yych <= '@') {
-		if (yych <= '/') goto yy1296;
-		if (yych <= '9') goto yy1339;
-		goto yy1296;
-	} else {
-		if (yych <= 'F') goto yy1339;
-		if (yych <= '`') goto yy1296;
-		if (yych <= 'f') goto yy1339;
-		goto yy1296;
-	}
-yy1332:
-	yych = *++p;
-	if (yych <= '/') goto yy1296;
-	if (yych <= '9') goto yy1333;
-	if (yych == ';') goto yy1299;
-	goto yy1296;
-yy1333:
-	yych = *++p;
-	if (yych <= '/') goto yy1296;
-	if (yych <= '9') goto yy1334;
-	if (yych == ';') goto yy1299;
-	goto yy1296;
-yy1334:
-	yych = *++p;
-	if (yych <= '/') goto yy1296;
-	if (yych <= '9') goto yy1335;
-	if (yych == ';') goto yy1299;
-	goto yy1296;
-yy1335:
-	yych = *++p;
-	if (yych <= '/') goto yy1296;
-	if (yych <= '9') goto yy1336;
-	if (yych == ';') goto yy1299;
-	goto yy1296;
-yy1336:
-	yych = *++p;
-	if (yych <= '/') goto yy1296;
-	if (yych <= '9') goto yy1337;
-	if (yych == ';') goto yy1299;
-	goto yy1296;
-yy1337:
-	yych = *++p;
-	if (yych <= '/') goto yy1296;
-	if (yych <= '9') goto yy1338;
-	if (yych == ';') goto yy1299;
-	goto yy1296;
-yy1338:
-	yych = *++p;
-	if (yych <= '/') goto yy1296;
-	if (yych <= '9') goto yy1330;
-	if (yych == ';') goto yy1299;
-	goto yy1296;
-yy1339:
-	yych = *++p;
-	if (yych <= ';') {
-		if (yych <= '/') goto yy1296;
-		if (yych <= '9') goto yy1340;
-		if (yych <= ':') goto yy1296;
-		goto yy1299;
-	} else {
-		if (yych <= 'F') {
-			if (yych <= '@') goto yy1296;
-		} else {
-			if (yych <= '`') goto yy1296;
-			if (yych >= 'g') goto yy1296;
-		}
-	}
-yy1340:
-	yych = *++p;
-	if (yych <= ';') {
-		if (yych <= '/') goto yy1296;
-		if (yych <= '9') goto yy1341;
-		if (yych <= ':') goto yy1296;
-		goto yy1299;
-	} else {
-		if (yych <= 'F') {
-			if (yych <= '@') goto yy1296;
-		} else {
-			if (yych <= '`') goto yy1296;
-			if (yych >= 'g') goto yy1296;
-		}
-	}
-yy1341:
-	yych = *++p;
-	if (yych <= ';') {
-		if (yych <= '/') goto yy1296;
-		if (yych <= '9') goto yy1342;
-		if (yych <= ':') goto yy1296;
-		goto yy1299;
-	} else {
-		if (yych <= 'F') {
-			if (yych <= '@') goto yy1296;
-		} else {
-			if (yych <= '`') goto yy1296;
-			if (yych >= 'g') goto yy1296;
-		}
-	}
-yy1342:
-	yych = *++p;
-	if (yych <= ';') {
-		if (yych <= '/') goto yy1296;
-		if (yych <= '9') goto yy1343;
-		if (yych <= ':') goto yy1296;
-		goto yy1299;
-	} else {
-		if (yych <= 'F') {
-			if (yych <= '@') goto yy1296;
-		} else {
-			if (yych <= '`') goto yy1296;
-			if (yych >= 'g') goto yy1296;
-		}
-	}
-yy1343:
-	yych = *++p;
-	if (yych <= ';') {
-		if (yych <= '/') goto yy1296;
-		if (yych <= '9') goto yy1344;
-		if (yych <= ':') goto yy1296;
-		goto yy1299;
-	} else {
-		if (yych <= 'F') {
-			if (yych <= '@') goto yy1296;
-		} else {
-			if (yych <= '`') goto yy1296;
-			if (yych >= 'g') goto yy1296;
-		}
-	}
-yy1344:
-	yych = *++p;
-	if (yych <= ';') {
-		if (yych <= '/') goto yy1296;
-		if (yych <= '9') goto yy1345;
-		if (yych <= ':') goto yy1296;
-		goto yy1299;
-	} else {
-		if (yych <= 'F') {
-			if (yych <= '@') goto yy1296;
-		} else {
-			if (yych <= '`') goto yy1296;
-			if (yych >= 'g') goto yy1296;
-		}
-	}
-yy1345:
-	++p;
-	if ((yych = *p) <= ';') {
-		if (yych <= '/') goto yy1296;
-		if (yych <= '9') goto yy1330;
-		if (yych <= ':') goto yy1296;
-		goto yy1299;
-	} else {
-		if (yych <= 'F') {
-			if (yych <= '@') goto yy1296;
-			goto yy1330;
-		} else {
-			if (yych <= '`') goto yy1296;
-			if (yych <= 'f') goto yy1330;
-			goto yy1296;
+// Try to match a scheme including colon.
+int _scan_scheme(const unsigned char *p)
+{
+  const unsigned char *marker = NULL;
+  const unsigned char *start = p;
+
+{
+	unsigned char yych;
+
+	yych = *p;
+	switch (yych) {
+	case '\n':	goto yy2;
+	case 'A':
+	case 'a':	goto yy6;
+	case 'B':
+	case 'b':	goto yy24;
+	case 'C':
+	case 'c':	goto yy3;
+	case 'D':
+	case 'd':	goto yy4;
+	case 'E':
+	case 'e':	goto yy25;
+	case 'F':
+	case 'f':	goto yy7;
+	case 'G':
+	case 'g':	goto yy8;
+	case 'H':
+	case 'h':	goto yy9;
+	case 'I':
+	case 'i':	goto yy10;
+	case 'J':
+	case 'j':	goto yy5;
+	case 'K':
+	case 'k':	goto yy26;
+	case 'L':
+	case 'l':	goto yy11;
+	case 'M':
+	case 'm':	goto yy12;
+	case 'N':
+	case 'n':	goto yy13;
+	case 'O':
+	case 'o':	goto yy14;
+	case 'P':
+	case 'p':	goto yy15;
+	case 'Q':
+	case 'q':	goto yy27;
+	case 'R':
+	case 'r':	goto yy16;
+	case 'S':
+	case 's':	goto yy17;
+	case 'T':
+	case 't':	goto yy18;
+	case 'U':
+	case 'u':	goto yy19;
+	case 'V':
+	case 'v':	goto yy20;
+	case 'W':
+	case 'w':	goto yy21;
+	case 'X':
+	case 'x':	goto yy22;
+	case 'Y':
+	case 'y':	goto yy28;
+	case 'Z':
+	case 'z':	goto yy23;
+	default:	goto yy29;
+	}
+yy2:
+	{ return 0; }
+yy3:
+	yych = *(marker = ++p);
+	switch (yych) {
+	case 'A':
+	case 'a':	goto yy440;
+	case 'H':
+	case 'h':	goto yy439;
+	case 'I':
+	case 'i':	goto yy442;
+	case 'O':
+	case 'o':	goto yy438;
+	case 'R':
+	case 'r':	goto yy441;
+	case 'V':
+	case 'v':	goto yy437;
+	default:	goto yy2;
+	}
+yy4:
+	yych = *(marker = ++p);
+	switch (yych) {
+	case 'A':
+	case 'a':	goto yy413;
+	case 'I':
+	case 'i':	goto yy412;
+	case 'L':
+	case 'l':	goto yy410;
+	case 'N':
+	case 'n':	goto yy411;
+	case 'O':
+	case 'o':	goto yy414;
+	case 'T':
+	case 't':	goto yy409;
+	case 'V':
+	case 'v':	goto yy408;
+	default:	goto yy2;
+	}
+yy5:
+	yych = *(marker = ++p);
+	if (yych <= 'M') {
+		if (yych == 'A') goto yy400;
+		if (yych <= 'L') goto yy2;
+		goto yy399;
+	} else {
+		if (yych <= 'a') {
+			if (yych <= '`') goto yy2;
+			goto yy400;
+		} else {
+			if (yych == 'm') goto yy399;
+			goto yy2;
+		}
+	}
+yy6:
+	yych = *(marker = ++p);
+	switch (yych) {
+	case 'A':
+	case 'a':	goto yy381;
+	case 'B':
+	case 'b':	goto yy380;
+	case 'C':
+	case 'c':	goto yy379;
+	case 'D':
+	case 'd':	goto yy378;
+	case 'F':
+	case 'f':	goto yy377;
+	case 'I':
+	case 'i':	goto yy376;
+	case 'P':
+	case 'p':	goto yy375;
+	case 'T':
+	case 't':	goto yy374;
+	case 'W':
+	case 'w':	goto yy34;
+	default:	goto yy2;
+	}
+yy7:
+	yych = *(marker = ++p);
+	if (yych <= 'T') {
+		if (yych <= 'E') {
+			if (yych == 'A') goto yy361;
+			if (yych <= 'D') goto yy2;
+			goto yy360;
+		} else {
+			if (yych == 'I') goto yy359;
+			if (yych <= 'S') goto yy2;
+			goto yy362;
+		}
+	} else {
+		if (yych <= 'e') {
+			if (yych == 'a') goto yy361;
+			if (yych <= 'd') goto yy2;
+			goto yy360;
+		} else {
+			if (yych <= 'i') {
+				if (yych <= 'h') goto yy2;
+				goto yy359;
+			} else {
+				if (yych == 't') goto yy362;
+				goto yy2;
+			}
+		}
+	}
+yy8:
+	yych = *(marker = ++p);
+	switch (yych) {
+	case 'E':
+	case 'e':	goto yy344;
+	case 'G':
+	case 'g':	goto yy34;
+	case 'I':
+	case 'i':	goto yy342;
+	case 'O':
+	case 'o':	goto yy343;
+	case 'T':
+	case 't':	goto yy341;
+	default:	goto yy2;
+	}
+yy9:
+	yych = *(marker = ++p);
+	if (yych <= 'S') {
+		if (yych <= '3') {
+			if (yych <= '2') goto yy2;
+			goto yy337;
+		} else {
+			if (yych == 'C') goto yy335;
+			goto yy2;
+		}
+	} else {
+		if (yych <= 'c') {
+			if (yych <= 'T') goto yy336;
+			if (yych <= 'b') goto yy2;
+			goto yy335;
+		} else {
+			if (yych == 't') goto yy336;
+			goto yy2;
+		}
+	}
+yy10:
+	yych = *(marker = ++p);
+	switch (yych) {
+	case 'A':
+	case 'a':	goto yy317;
+	case 'C':
+	case 'c':	goto yy314;
+	case 'M':
+	case 'm':	goto yy316;
+	case 'N':
+	case 'n':	goto yy315;
+	case 'P':
+	case 'p':	goto yy313;
+	case 'R':
+	case 'r':	goto yy312;
+	case 'T':
+	case 't':	goto yy311;
+	default:	goto yy2;
+	}
+yy11:
+	yych = *(marker = ++p);
+	if (yych <= 'D') {
+		if (yych == 'A') goto yy305;
+		if (yych <= 'C') goto yy2;
+		goto yy304;
+	} else {
+		if (yych <= 'a') {
+			if (yych <= '`') goto yy2;
+			goto yy305;
+		} else {
+			if (yych == 'd') goto yy304;
+			goto yy2;
+		}
+	}
+yy12:
+	yych = *(marker = ++p);
+	switch (yych) {
+	case 'A':
+	case 'a':	goto yy271;
+	case 'E':
+	case 'e':	goto yy270;
+	case 'I':
+	case 'i':	goto yy273;
+	case 'M':
+	case 'm':	goto yy269;
+	case 'S':
+	case 's':	goto yy268;
+	case 'T':
+	case 't':	goto yy272;
+	case 'U':
+	case 'u':	goto yy267;
+	case 'V':
+	case 'v':	goto yy266;
+	default:	goto yy2;
+	}
+yy13:
+	yych = *(marker = ++p);
+	switch (yych) {
+	case 'E':
+	case 'e':	goto yy261;
+	case 'F':
+	case 'f':	goto yy260;
+	case 'I':
+	case 'i':	goto yy259;
+	case 'N':
+	case 'n':	goto yy258;
+	case 'O':
+	case 'o':	goto yy257;
+	default:	goto yy2;
+	}
+yy14:
+	yych = *(marker = ++p);
+	if (yych <= 'P') {
+		if (yych == 'I') goto yy243;
+		if (yych <= 'O') goto yy2;
+		goto yy244;
+	} else {
+		if (yych <= 'i') {
+			if (yych <= 'h') goto yy2;
+			goto yy243;
+		} else {
+			if (yych == 'p') goto yy244;
+			goto yy2;
+		}
+	}
+yy15:
+	yych = *(marker = ++p);
+	if (yych <= 'S') {
+		if (yych <= 'L') {
+			if (yych == 'A') goto yy225;
+			if (yych <= 'K') goto yy2;
+			goto yy224;
+		} else {
+			if (yych <= 'O') {
+				if (yych <= 'N') goto yy2;
+				goto yy226;
+			} else {
+				if (yych <= 'Q') goto yy2;
+				if (yych <= 'R') goto yy223;
+				goto yy222;
+			}
+		}
+	} else {
+		if (yych <= 'n') {
+			if (yych <= 'a') {
+				if (yych <= '`') goto yy2;
+				goto yy225;
+			} else {
+				if (yych == 'l') goto yy224;
+				goto yy2;
+			}
+		} else {
+			if (yych <= 'q') {
+				if (yych <= 'o') goto yy226;
+				goto yy2;
+			} else {
+				if (yych <= 'r') goto yy223;
+				if (yych <= 's') goto yy222;
+				goto yy2;
+			}
+		}
+	}
+yy16:
+	yych = *(marker = ++p);
+	if (yych <= 'T') {
+		if (yych <= 'L') {
+			if (yych == 'E') goto yy212;
+			goto yy2;
+		} else {
+			if (yych <= 'M') goto yy211;
+			if (yych <= 'R') goto yy2;
+			if (yych <= 'S') goto yy210;
+			goto yy209;
+		}
+	} else {
+		if (yych <= 'm') {
+			if (yych == 'e') goto yy212;
+			if (yych <= 'l') goto yy2;
+			goto yy211;
+		} else {
+			if (yych <= 'r') goto yy2;
+			if (yych <= 's') goto yy210;
+			if (yych <= 't') goto yy209;
+			goto yy2;
+		}
+	}
+yy17:
+	yych = *(marker = ++p);
+	switch (yych) {
+	case 'E':
+	case 'e':	goto yy165;
+	case 'F':
+	case 'f':	goto yy164;
+	case 'G':
+	case 'g':	goto yy163;
+	case 'H':
+	case 'h':	goto yy168;
+	case 'I':
+	case 'i':	goto yy167;
+	case 'K':
+	case 'k':	goto yy162;
+	case 'M':
+	case 'm':	goto yy161;
+	case 'N':
+	case 'n':	goto yy166;
+	case 'O':
+	case 'o':	goto yy160;
+	case 'P':
+	case 'p':	goto yy159;
+	case 'S':
+	case 's':	goto yy158;
+	case 'T':
+	case 't':	goto yy157;
+	case 'V':
+	case 'v':	goto yy156;
+	default:	goto yy2;
+	}
+yy18:
+	yych = *(marker = ++p);
+	switch (yych) {
+	case 'A':
+	case 'a':	goto yy132;
+	case 'E':
+	case 'e':	goto yy128;
+	case 'F':
+	case 'f':	goto yy131;
+	case 'H':
+	case 'h':	goto yy127;
+	case 'I':
+	case 'i':	goto yy129;
+	case 'N':
+	case 'n':	goto yy130;
+	case 'V':
+	case 'v':	goto yy34;
+	default:	goto yy2;
+	}
+yy19:
+	yych = *(marker = ++p);
+	if (yych <= 'T') {
+		if (yych <= 'N') {
+			if (yych == 'D') goto yy119;
+			if (yych <= 'M') goto yy2;
+			goto yy118;
+		} else {
+			if (yych == 'R') goto yy120;
+			if (yych <= 'S') goto yy2;
+			goto yy117;
+		}
+	} else {
+		if (yych <= 'n') {
+			if (yych == 'd') goto yy119;
+			if (yych <= 'm') goto yy2;
+			goto yy118;
+		} else {
+			if (yych <= 'r') {
+				if (yych <= 'q') goto yy2;
+				goto yy120;
+			} else {
+				if (yych == 't') goto yy117;
+				goto yy2;
+			}
+		}
+	}
+yy20:
+	yych = *(marker = ++p);
+	if (yych <= 'I') {
+		if (yych == 'E') goto yy101;
+		if (yych <= 'H') goto yy2;
+		goto yy100;
+	} else {
+		if (yych <= 'e') {
+			if (yych <= 'd') goto yy2;
+			goto yy101;
+		} else {
+			if (yych == 'i') goto yy100;
+			goto yy2;
+		}
+	}
+yy21:
+	yych = *(marker = ++p);
+	if (yych <= 'Y') {
+		if (yych <= 'R') {
+			if (yych == 'E') goto yy90;
+			goto yy2;
+		} else {
+			if (yych <= 'S') goto yy91;
+			if (yych <= 'T') goto yy89;
+			if (yych <= 'X') goto yy2;
+			goto yy88;
+		}
+	} else {
+		if (yych <= 's') {
+			if (yych == 'e') goto yy90;
+			if (yych <= 'r') goto yy2;
+			goto yy91;
+		} else {
+			if (yych <= 't') goto yy89;
+			if (yych == 'y') goto yy88;
+			goto yy2;
+		}
+	}
+yy22:
+	yych = *(marker = ++p);
+	if (yych <= 'R') {
+		if (yych <= 'F') {
+			if (yych == 'C') goto yy67;
+			if (yych <= 'E') goto yy2;
+			goto yy65;
+		} else {
+			if (yych == 'M') goto yy66;
+			if (yych <= 'Q') goto yy2;
+			goto yy64;
+		}
+	} else {
+		if (yych <= 'f') {
+			if (yych == 'c') goto yy67;
+			if (yych <= 'e') goto yy2;
+			goto yy65;
+		} else {
+			if (yych <= 'm') {
+				if (yych <= 'l') goto yy2;
+				goto yy66;
+			} else {
+				if (yych == 'r') goto yy64;
+				goto yy2;
+			}
+		}
+	}
+yy23:
+	yych = *(marker = ++p);
+	if (yych == '3') goto yy59;
+	goto yy2;
+yy24:
+	yych = *(marker = ++p);
+	if (yych <= 'O') {
+		if (yych <= 'H') {
+			if (yych == 'E') goto yy49;
+			goto yy2;
+		} else {
+			if (yych <= 'I') goto yy48;
+			if (yych <= 'N') goto yy2;
+			goto yy47;
+		}
+	} else {
+		if (yych <= 'h') {
+			if (yych == 'e') goto yy49;
+			goto yy2;
+		} else {
+			if (yych <= 'i') goto yy48;
+			if (yych == 'o') goto yy47;
+			goto yy2;
+		}
+	}
+yy25:
+	yych = *(marker = ++p);
+	if (yych == 'D') goto yy45;
+	if (yych == 'd') goto yy45;
+	goto yy2;
+yy26:
+	yych = *(marker = ++p);
+	if (yych == 'E') goto yy40;
+	if (yych == 'e') goto yy40;
+	goto yy2;
+yy27:
+	yych = *(marker = ++p);
+	if (yych == 'U') goto yy37;
+	if (yych == 'u') goto yy37;
+	goto yy2;
+yy28:
+	yych = *(marker = ++p);
+	if (yych == 'M') goto yy30;
+	if (yych == 'm') goto yy30;
+	goto yy2;
+yy29:
+	yych = *++p;
+	goto yy2;
+yy30:
+	yych = *++p;
+	if (yych == 'S') goto yy32;
+	if (yych == 's') goto yy32;
+yy31:
+	p = marker;
+	goto yy2;
+yy32:
+	yych = *++p;
+	if (yych == 'G') goto yy33;
+	if (yych != 'g') goto yy31;
+yy33:
+	yych = *++p;
+	if (yych == 'R') goto yy34;
+	if (yych != 'r') goto yy31;
+yy34:
+	yych = *++p;
+	if (yych != ':') goto yy31;
+yy35:
+	++p;
+	{ return (p - start); }
+yy37:
+	yych = *++p;
+	if (yych == 'E') goto yy38;
+	if (yych != 'e') goto yy31;
+yy38:
+	yych = *++p;
+	if (yych == 'R') goto yy39;
+	if (yych != 'r') goto yy31;
+yy39:
+	yych = *++p;
+	if (yych == 'Y') goto yy34;
+	if (yych == 'y') goto yy34;
+	goto yy31;
+yy40:
+	yych = *++p;
+	if (yych == 'Y') goto yy41;
+	if (yych != 'y') goto yy31;
+yy41:
+	yych = *++p;
+	if (yych == 'P') goto yy42;
+	if (yych != 'p') goto yy31;
+yy42:
+	yych = *++p;
+	if (yych == 'A') goto yy43;
+	if (yych != 'a') goto yy31;
+yy43:
+	yych = *++p;
+	if (yych == 'R') goto yy44;
+	if (yych != 'r') goto yy31;
+yy44:
+	yych = *++p;
+	if (yych == 'C') goto yy34;
+	if (yych == 'c') goto yy34;
+	goto yy31;
+yy45:
+	yych = *++p;
+	if (yych != '2') goto yy31;
+	yych = *++p;
+	if (yych == 'K') goto yy34;
+	if (yych == 'k') goto yy34;
+	goto yy31;
+yy47:
+	yych = *++p;
+	if (yych == 'L') goto yy58;
+	if (yych == 'l') goto yy58;
+	goto yy31;
+yy48:
+	yych = *++p;
+	if (yych == 'T') goto yy54;
+	if (yych == 't') goto yy54;
+	goto yy31;
+yy49:
+	yych = *++p;
+	if (yych == 'S') goto yy50;
+	if (yych != 's') goto yy31;
+yy50:
+	yych = *++p;
+	if (yych == 'H') goto yy51;
+	if (yych != 'h') goto yy31;
+yy51:
+	yych = *++p;
+	if (yych == 'A') goto yy52;
+	if (yych != 'a') goto yy31;
+yy52:
+	yych = *++p;
+	if (yych == 'R') goto yy53;
+	if (yych != 'r') goto yy31;
+yy53:
+	yych = *++p;
+	if (yych == 'E') goto yy34;
+	if (yych == 'e') goto yy34;
+	goto yy31;
+yy54:
+	yych = *++p;
+	if (yych == 'C') goto yy55;
+	if (yych != 'c') goto yy31;
+yy55:
+	yych = *++p;
+	if (yych == 'O') goto yy56;
+	if (yych != 'o') goto yy31;
+yy56:
+	yych = *++p;
+	if (yych == 'I') goto yy57;
+	if (yych != 'i') goto yy31;
+yy57:
+	yych = *++p;
+	if (yych == 'N') goto yy34;
+	if (yych == 'n') goto yy34;
+	goto yy31;
+yy58:
+	yych = *++p;
+	if (yych == 'O') goto yy34;
+	if (yych == 'o') goto yy34;
+	goto yy31;
+yy59:
+	yych = *++p;
+	if (yych != '9') goto yy31;
+	yych = *++p;
+	if (yych != '.') goto yy31;
+	yych = *++p;
+	if (yych != '5') goto yy31;
+	yych = *++p;
+	if (yych != '0') goto yy31;
+	yych = *++p;
+	if (yych <= 'Q') goto yy31;
+	if (yych <= 'S') goto yy34;
+	if (yych <= 'q') goto yy31;
+	if (yych <= 's') goto yy34;
+	goto yy31;
+yy64:
+	yych = *++p;
+	if (yych == 'I') goto yy34;
+	if (yych == 'i') goto yy34;
+	goto yy31;
+yy65:
+	yych = *++p;
+	if (yych == 'I') goto yy86;
+	if (yych == 'i') goto yy86;
+	goto yy31;
+yy66:
+	yych = *++p;
+	if (yych <= 'P') {
+		if (yych == 'L') goto yy76;
+		if (yych <= 'O') goto yy31;
+		goto yy77;
+	} else {
+		if (yych <= 'l') {
+			if (yych <= 'k') goto yy31;
+			goto yy76;
+		} else {
+			if (yych == 'p') goto yy77;
+			goto yy31;
+		}
+	}
+yy67:
+	yych = *++p;
+	if (yych == 'O') goto yy68;
+	if (yych != 'o') goto yy31;
+yy68:
+	yych = *++p;
+	if (yych == 'N') goto yy69;
+	if (yych != 'n') goto yy31;
+yy69:
+	yych = *++p;
+	if (yych == '-') goto yy70;
+	if (yych == ':') goto yy35;
+	goto yy31;
+yy70:
+	yych = *++p;
+	if (yych == 'U') goto yy71;
+	if (yych != 'u') goto yy31;
+yy71:
+	yych = *++p;
+	if (yych == 'S') goto yy72;
+	if (yych != 's') goto yy31;
+yy72:
+	yych = *++p;
+	if (yych == 'E') goto yy73;
+	if (yych != 'e') goto yy31;
+yy73:
+	yych = *++p;
+	if (yych == 'R') goto yy74;
+	if (yych != 'r') goto yy31;
+yy74:
+	yych = *++p;
+	if (yych == 'I') goto yy75;
+	if (yych != 'i') goto yy31;
+yy75:
+	yych = *++p;
+	if (yych == 'D') goto yy34;
+	if (yych == 'd') goto yy34;
+	goto yy31;
+yy76:
+	yych = *++p;
+	if (yych == 'R') goto yy78;
+	if (yych == 'r') goto yy78;
+	goto yy31;
+yy77:
+	yych = *++p;
+	if (yych == 'P') goto yy34;
+	if (yych == 'p') goto yy34;
+	goto yy31;
+yy78:
+	yych = *++p;
+	if (yych == 'P') goto yy79;
+	if (yych != 'p') goto yy31;
+yy79:
+	yych = *++p;
+	if (yych == 'C') goto yy80;
+	if (yych != 'c') goto yy31;
+yy80:
+	yych = *++p;
+	if (yych != '.') goto yy31;
+	yych = *++p;
+	if (yych == 'B') goto yy82;
+	if (yych != 'b') goto yy31;
+yy82:
+	yych = *++p;
+	if (yych == 'E') goto yy83;
+	if (yych != 'e') goto yy31;
+yy83:
+	yych = *++p;
+	if (yych == 'E') goto yy84;
+	if (yych != 'e') goto yy31;
+yy84:
+	yych = *++p;
+	if (yych == 'P') goto yy85;
+	if (yych != 'p') goto yy31;
+yy85:
+	yych = *++p;
+	if (yych <= 'R') {
+		if (yych == ':') goto yy35;
+		goto yy31;
+	} else {
+		if (yych <= 'S') goto yy34;
+		if (yych == 's') goto yy34;
+		goto yy31;
+	}
+yy86:
+	yych = *++p;
+	if (yych == 'R') goto yy87;
+	if (yych != 'r') goto yy31;
+yy87:
+	yych = *++p;
+	if (yych == 'E') goto yy34;
+	if (yych == 'e') goto yy34;
+	goto yy31;
+yy88:
+	yych = *++p;
+	if (yych == 'C') goto yy96;
+	if (yych == 'c') goto yy96;
+	goto yy31;
+yy89:
+	yych = *++p;
+	if (yych == 'A') goto yy95;
+	if (yych == 'a') goto yy95;
+	goto yy31;
+yy90:
+	yych = *++p;
+	if (yych == 'B') goto yy92;
+	if (yych == 'b') goto yy92;
+	goto yy31;
+yy91:
+	yych = *++p;
+	if (yych <= 'R') {
+		if (yych == ':') goto yy35;
+		goto yy31;
+	} else {
+		if (yych <= 'S') goto yy34;
+		if (yych == 's') goto yy34;
+		goto yy31;
+	}
+yy92:
+	yych = *++p;
+	if (yych == 'C') goto yy93;
+	if (yych != 'c') goto yy31;
+yy93:
+	yych = *++p;
+	if (yych == 'A') goto yy94;
+	if (yych != 'a') goto yy31;
+yy94:
+	yych = *++p;
+	if (yych == 'L') goto yy34;
+	if (yych == 'l') goto yy34;
+	goto yy31;
+yy95:
+	yych = *++p;
+	if (yych == 'I') goto yy34;
+	if (yych == 'i') goto yy34;
+	goto yy31;
+yy96:
+	yych = *++p;
+	if (yych == 'I') goto yy97;
+	if (yych != 'i') goto yy31;
+yy97:
+	yych = *++p;
+	if (yych == 'W') goto yy98;
+	if (yych != 'w') goto yy31;
+yy98:
+	yych = *++p;
+	if (yych == 'Y') goto yy99;
+	if (yych != 'y') goto yy31;
+yy99:
+	yych = *++p;
+	if (yych == 'G') goto yy34;
+	if (yych == 'g') goto yy34;
+	goto yy31;
+yy100:
+	yych = *++p;
+	if (yych == 'E') goto yy109;
+	if (yych == 'e') goto yy109;
+	goto yy31;
+yy101:
+	yych = *++p;
+	if (yych <= 'N') {
+		if (yych <= 'L') goto yy31;
+		if (yych >= 'N') goto yy103;
+	} else {
+		if (yych <= 'l') goto yy31;
+		if (yych <= 'm') goto yy102;
+		if (yych <= 'n') goto yy103;
+		goto yy31;
+	}
+yy102:
+	yych = *++p;
+	if (yych == 'M') goto yy108;
+	if (yych == 'm') goto yy108;
+	goto yy31;
+yy103:
+	yych = *++p;
+	if (yych == 'T') goto yy104;
+	if (yych != 't') goto yy31;
+yy104:
+	yych = *++p;
+	if (yych == 'R') goto yy105;
+	if (yych != 'r') goto yy31;
+yy105:
+	yych = *++p;
+	if (yych == 'I') goto yy106;
+	if (yych != 'i') goto yy31;
+yy106:
+	yych = *++p;
+	if (yych == 'L') goto yy107;
+	if (yych != 'l') goto yy31;
+yy107:
+	yych = *++p;
+	if (yych == 'O') goto yy34;
+	if (yych == 'o') goto yy34;
+	goto yy31;
+yy108:
+	yych = *++p;
+	if (yych == 'I') goto yy34;
+	if (yych == 'i') goto yy34;
+	goto yy31;
+yy109:
+	yych = *++p;
+	if (yych == 'W') goto yy110;
+	if (yych != 'w') goto yy31;
+yy110:
+	yych = *++p;
+	if (yych != '-') goto yy31;
+	yych = *++p;
+	if (yych == 'S') goto yy112;
+	if (yych != 's') goto yy31;
+yy112:
+	yych = *++p;
+	if (yych == 'O') goto yy113;
+	if (yych != 'o') goto yy31;
+yy113:
+	yych = *++p;
+	if (yych == 'U') goto yy114;
+	if (yych != 'u') goto yy31;
+yy114:
+	yych = *++p;
+	if (yych == 'R') goto yy115;
+	if (yych != 'r') goto yy31;
+yy115:
+	yych = *++p;
+	if (yych == 'C') goto yy116;
+	if (yych != 'c') goto yy31;
+yy116:
+	yych = *++p;
+	if (yych == 'E') goto yy34;
+	if (yych == 'e') goto yy34;
+	goto yy31;
+yy117:
+	yych = *++p;
+	if (yych == '2') goto yy124;
+	goto yy31;
+yy118:
+	yych = *++p;
+	if (yych == 'R') goto yy121;
+	if (yych == 'r') goto yy121;
+	goto yy31;
+yy119:
+	yych = *++p;
+	if (yych == 'P') goto yy34;
+	if (yych == 'p') goto yy34;
+	goto yy31;
+yy120:
+	yych = *++p;
+	if (yych == 'N') goto yy34;
+	if (yych == 'n') goto yy34;
+	goto yy31;
+yy121:
+	yych = *++p;
+	if (yych == 'E') goto yy122;
+	if (yych != 'e') goto yy31;
+yy122:
+	yych = *++p;
+	if (yych == 'A') goto yy123;
+	if (yych != 'a') goto yy31;
+yy123:
+	yych = *++p;
+	if (yych == 'L') goto yy34;
+	if (yych == 'l') goto yy34;
+	goto yy31;
+yy124:
+	yych = *++p;
+	if (yych != '0') goto yy31;
+	yych = *++p;
+	if (yych != '0') goto yy31;
+	yych = *++p;
+	if (yych == '4') goto yy34;
+	goto yy31;
+yy127:
+	yych = *++p;
+	if (yych == 'I') goto yy146;
+	if (yych == 'i') goto yy146;
+	goto yy31;
+yy128:
+	yych = *++p;
+	if (yych <= 'L') {
+		if (yych == 'A') goto yy138;
+		if (yych <= 'K') goto yy31;
+		goto yy137;
+	} else {
+		if (yych <= 'a') {
+			if (yych <= '`') goto yy31;
+			goto yy138;
+		} else {
+			if (yych == 'l') goto yy137;
+			goto yy31;
+		}
+	}
+yy129:
+	yych = *++p;
+	if (yych == 'P') goto yy34;
+	if (yych == 'p') goto yy34;
+	goto yy31;
+yy130:
+	yych = *++p;
+	if (yych == '3') goto yy134;
+	goto yy31;
+yy131:
+	yych = *++p;
+	if (yych == 'T') goto yy133;
+	if (yych == 't') goto yy133;
+	goto yy31;
+yy132:
+	yych = *++p;
+	if (yych == 'G') goto yy34;
+	if (yych == 'g') goto yy34;
+	goto yy31;
+yy133:
+	yych = *++p;
+	if (yych == 'P') goto yy34;
+	if (yych == 'p') goto yy34;
+	goto yy31;
+yy134:
+	yych = *++p;
+	if (yych != '2') goto yy31;
+	yych = *++p;
+	if (yych != '7') goto yy31;
+	yych = *++p;
+	if (yych == '0') goto yy34;
+	goto yy31;
+yy137:
+	yych = *++p;
+	if (yych <= 'M') {
+		if (yych == ':') goto yy35;
+		goto yy31;
+	} else {
+		if (yych <= 'N') goto yy144;
+		if (yych == 'n') goto yy144;
+		goto yy31;
+	}
+yy138:
+	yych = *++p;
+	if (yych == 'M') goto yy139;
+	if (yych != 'm') goto yy31;
+yy139:
+	yych = *++p;
+	if (yych == 'S') goto yy140;
+	if (yych != 's') goto yy31;
+yy140:
+	yych = *++p;
+	if (yych == 'P') goto yy141;
+	if (yych != 'p') goto yy31;
+yy141:
+	yych = *++p;
+	if (yych == 'E') goto yy142;
+	if (yych != 'e') goto yy31;
+yy142:
+	yych = *++p;
+	if (yych == 'A') goto yy143;
+	if (yych != 'a') goto yy31;
+yy143:
+	yych = *++p;
+	if (yych == 'K') goto yy34;
+	if (yych == 'k') goto yy34;
+	goto yy31;
+yy144:
+	yych = *++p;
+	if (yych == 'E') goto yy145;
+	if (yych != 'e') goto yy31;
+yy145:
+	yych = *++p;
+	if (yych == 'T') goto yy34;
+	if (yych == 't') goto yy34;
+	goto yy31;
+yy146:
+	yych = *++p;
+	if (yych <= 'S') {
+		if (yych == 'N') goto yy147;
+		if (yych <= 'R') goto yy31;
+		goto yy148;
+	} else {
+		if (yych <= 'n') {
+			if (yych <= 'm') goto yy31;
+		} else {
+			if (yych == 's') goto yy148;
+			goto yy31;
+		}
+	}
+yy147:
+	yych = *++p;
+	if (yych == 'G') goto yy155;
+	if (yych == 'g') goto yy155;
+	goto yy31;
+yy148:
+	yych = *++p;
+	if (yych == 'M') goto yy149;
+	if (yych != 'm') goto yy31;
+yy149:
+	yych = *++p;
+	if (yych == 'E') goto yy150;
+	if (yych != 'e') goto yy31;
+yy150:
+	yych = *++p;
+	if (yych == 'S') goto yy151;
+	if (yych != 's') goto yy31;
+yy151:
+	yych = *++p;
+	if (yych == 'S') goto yy152;
+	if (yych != 's') goto yy31;
+yy152:
+	yych = *++p;
+	if (yych == 'A') goto yy153;
+	if (yych != 'a') goto yy31;
+yy153:
+	yych = *++p;
+	if (yych == 'G') goto yy154;
+	if (yych != 'g') goto yy31;
+yy154:
+	yych = *++p;
+	if (yych == 'E') goto yy34;
+	if (yych == 'e') goto yy34;
+	goto yy31;
+yy155:
+	yych = *++p;
+	if (yych == 'S') goto yy34;
+	if (yych == 's') goto yy34;
+	goto yy31;
+yy156:
+	yych = *++p;
+	if (yych == 'N') goto yy34;
+	if (yych == 'n') goto yy34;
+	goto yy31;
+yy157:
+	yych = *++p;
+	if (yych == 'E') goto yy207;
+	if (yych == 'e') goto yy207;
+	goto yy31;
+yy158:
+	yych = *++p;
+	if (yych == 'H') goto yy34;
+	if (yych == 'h') goto yy34;
+	goto yy31;
+yy159:
+	yych = *++p;
+	if (yych == 'O') goto yy203;
+	if (yych == 'o') goto yy203;
+	goto yy31;
+yy160:
+	yych = *++p;
+	if (yych <= 'L') {
+		if (yych == 'A') goto yy193;
+		if (yych <= 'K') goto yy31;
+		goto yy194;
+	} else {
+		if (yych <= 'a') {
+			if (yych <= '`') goto yy31;
+			goto yy193;
+		} else {
+			if (yych == 'l') goto yy194;
+			goto yy31;
+		}
+	}
+yy161:
+	yych = *++p;
+	if (yych <= 'S') {
+		if (yych == 'B') goto yy34;
+		if (yych <= 'R') goto yy31;
+		goto yy34;
+	} else {
+		if (yych <= 'b') {
+			if (yych <= 'a') goto yy31;
+			goto yy34;
+		} else {
+			if (yych == 's') goto yy34;
+			goto yy31;
+		}
+	}
+yy162:
+	yych = *++p;
+	if (yych == 'Y') goto yy191;
+	if (yych == 'y') goto yy191;
+	goto yy31;
+yy163:
+	yych = *++p;
+	if (yych == 'N') goto yy34;
+	if (yych == 'n') goto yy34;
+	goto yy31;
+yy164:
+	yych = *++p;
+	if (yych == 'T') goto yy190;
+	if (yych == 't') goto yy190;
+	goto yy31;
+yy165:
+	yych = *++p;
+	if (yych <= 'S') {
+		if (yych <= 'C') {
+			if (yych <= 'B') goto yy31;
+			goto yy177;
+		} else {
+			if (yych <= 'Q') goto yy31;
+			if (yych <= 'R') goto yy175;
+			goto yy176;
+		}
+	} else {
+		if (yych <= 'q') {
+			if (yych == 'c') goto yy177;
+			goto yy31;
+		} else {
+			if (yych <= 'r') goto yy175;
+			if (yych <= 's') goto yy176;
+			goto yy31;
+		}
+	}
+yy166:
+	yych = *++p;
+	if (yych == 'M') goto yy174;
+	if (yych == 'm') goto yy174;
+	goto yy31;
+yy167:
+	yych = *++p;
+	if (yych <= 'P') {
+		if (yych == 'E') goto yy171;
+		if (yych <= 'O') goto yy31;
+		goto yy172;
+	} else {
+		if (yych <= 'e') {
+			if (yych <= 'd') goto yy31;
+			goto yy171;
+		} else {
+			if (yych == 'p') goto yy172;
+			goto yy31;
+		}
+	}
+yy168:
+	yych = *++p;
+	if (yych == 'T') goto yy169;
+	if (yych != 't') goto yy31;
+yy169:
+	yych = *++p;
+	if (yych == 'T') goto yy170;
+	if (yych != 't') goto yy31;
+yy170:
+	yych = *++p;
+	if (yych == 'P') goto yy34;
+	if (yych == 'p') goto yy34;
+	goto yy31;
+yy171:
+	yych = *++p;
+	if (yych == 'V') goto yy173;
+	if (yych == 'v') goto yy173;
+	goto yy31;
+yy172:
+	yych = *++p;
+	if (yych <= 'R') {
+		if (yych == ':') goto yy35;
+		goto yy31;
+	} else {
+		if (yych <= 'S') goto yy34;
+		if (yych == 's') goto yy34;
+		goto yy31;
+	}
+yy173:
+	yych = *++p;
+	if (yych == 'E') goto yy34;
+	if (yych == 'e') goto yy34;
+	goto yy31;
+yy174:
+	yych = *++p;
+	if (yych == 'P') goto yy34;
+	if (yych == 'p') goto yy34;
+	goto yy31;
+yy175:
+	yych = *++p;
+	if (yych == 'V') goto yy187;
+	if (yych == 'v') goto yy187;
+	goto yy31;
+yy176:
+	yych = *++p;
+	if (yych == 'S') goto yy184;
+	if (yych == 's') goto yy184;
+	goto yy31;
+yy177:
+	yych = *++p;
+	if (yych == 'O') goto yy178;
+	if (yych != 'o') goto yy31;
+yy178:
+	yych = *++p;
+	if (yych == 'N') goto yy179;
+	if (yych != 'n') goto yy31;
+yy179:
+	yych = *++p;
+	if (yych == 'D') goto yy180;
+	if (yych != 'd') goto yy31;
+yy180:
+	yych = *++p;
+	if (yych == 'L') goto yy181;
+	if (yych != 'l') goto yy31;
+yy181:
+	yych = *++p;
+	if (yych == 'I') goto yy182;
+	if (yych != 'i') goto yy31;
+yy182:
+	yych = *++p;
+	if (yych == 'F') goto yy183;
+	if (yych != 'f') goto yy31;
+yy183:
+	yych = *++p;
+	if (yych == 'E') goto yy34;
+	if (yych == 'e') goto yy34;
+	goto yy31;
+yy184:
+	yych = *++p;
+	if (yych == 'I') goto yy185;
+	if (yych != 'i') goto yy31;
+yy185:
+	yych = *++p;
+	if (yych == 'O') goto yy186;
+	if (yych != 'o') goto yy31;
+yy186:
+	yych = *++p;
+	if (yych == 'N') goto yy34;
+	if (yych == 'n') goto yy34;
+	goto yy31;
+yy187:
+	yych = *++p;
+	if (yych == 'I') goto yy188;
+	if (yych != 'i') goto yy31;
+yy188:
+	yych = *++p;
+	if (yych == 'C') goto yy189;
+	if (yych != 'c') goto yy31;
+yy189:
+	yych = *++p;
+	if (yych == 'E') goto yy34;
+	if (yych == 'e') goto yy34;
+	goto yy31;
+yy190:
+	yych = *++p;
+	if (yych == 'P') goto yy34;
+	if (yych == 'p') goto yy34;
+	goto yy31;
+yy191:
+	yych = *++p;
+	if (yych == 'P') goto yy192;
+	if (yych != 'p') goto yy31;
+yy192:
+	yych = *++p;
+	if (yych == 'E') goto yy34;
+	if (yych == 'e') goto yy34;
+	goto yy31;
+yy193:
+	yych = *++p;
+	if (yych == 'P') goto yy197;
+	if (yych == 'p') goto yy197;
+	goto yy31;
+yy194:
+	yych = *++p;
+	if (yych == 'D') goto yy195;
+	if (yych != 'd') goto yy31;
+yy195:
+	yych = *++p;
+	if (yych == 'A') goto yy196;
+	if (yych != 'a') goto yy31;
+yy196:
+	yych = *++p;
+	if (yych == 'T') goto yy34;
+	if (yych == 't') goto yy34;
+	goto yy31;
+yy197:
+	yych = *++p;
+	if (yych != '.') goto yy31;
+	yych = *++p;
+	if (yych == 'B') goto yy199;
+	if (yych != 'b') goto yy31;
+yy199:
+	yych = *++p;
+	if (yych == 'E') goto yy200;
+	if (yych != 'e') goto yy31;
+yy200:
+	yych = *++p;
+	if (yych == 'E') goto yy201;
+	if (yych != 'e') goto yy31;
+yy201:
+	yych = *++p;
+	if (yych == 'P') goto yy202;
+	if (yych != 'p') goto yy31;
+yy202:
+	yych = *++p;
+	if (yych <= 'R') {
+		if (yych == ':') goto yy35;
+		goto yy31;
+	} else {
+		if (yych <= 'S') goto yy34;
+		if (yych == 's') goto yy34;
+		goto yy31;
+	}
+yy203:
+	yych = *++p;
+	if (yych == 'T') goto yy204;
+	if (yych != 't') goto yy31;
+yy204:
+	yych = *++p;
+	if (yych == 'I') goto yy205;
+	if (yych != 'i') goto yy31;
+yy205:
+	yych = *++p;
+	if (yych == 'F') goto yy206;
+	if (yych != 'f') goto yy31;
+yy206:
+	yych = *++p;
+	if (yych == 'Y') goto yy34;
+	if (yych == 'y') goto yy34;
+	goto yy31;
+yy207:
+	yych = *++p;
+	if (yych == 'A') goto yy208;
+	if (yych != 'a') goto yy31;
+yy208:
+	yych = *++p;
+	if (yych == 'M') goto yy34;
+	if (yych == 'm') goto yy34;
+	goto yy31;
+yy209:
+	yych = *++p;
+	if (yych <= 'S') {
+		if (yych == 'M') goto yy221;
+		if (yych <= 'R') goto yy31;
+		goto yy220;
+	} else {
+		if (yych <= 'm') {
+			if (yych <= 'l') goto yy31;
+			goto yy221;
+		} else {
+			if (yych == 's') goto yy220;
+			goto yy31;
+		}
+	}
+yy210:
+	yych = *++p;
+	if (yych == 'Y') goto yy218;
+	if (yych == 'y') goto yy218;
+	goto yy31;
+yy211:
+	yych = *++p;
+	if (yych == 'I') goto yy34;
+	if (yych == 'i') goto yy34;
+	goto yy31;
+yy212:
+	yych = *++p;
+	if (yych == 'S') goto yy213;
+	if (yych != 's') goto yy31;
+yy213:
+	yych = *++p;
+	if (yych <= 'N') {
+		if (yych == ':') goto yy35;
+		goto yy31;
+	} else {
+		if (yych <= 'O') goto yy214;
+		if (yych != 'o') goto yy31;
+	}
+yy214:
+	yych = *++p;
+	if (yych == 'U') goto yy215;
+	if (yych != 'u') goto yy31;
+yy215:
+	yych = *++p;
+	if (yych == 'R') goto yy216;
+	if (yych != 'r') goto yy31;
+yy216:
+	yych = *++p;
+	if (yych == 'C') goto yy217;
+	if (yych != 'c') goto yy31;
+yy217:
+	yych = *++p;
+	if (yych == 'E') goto yy34;
+	if (yych == 'e') goto yy34;
+	goto yy31;
+yy218:
+	yych = *++p;
+	if (yych == 'N') goto yy219;
+	if (yych != 'n') goto yy31;
+yy219:
+	yych = *++p;
+	if (yych == 'C') goto yy34;
+	if (yych == 'c') goto yy34;
+	goto yy31;
+yy220:
+	yych = *++p;
+	if (yych == 'P') goto yy34;
+	if (yych == 'p') goto yy34;
+	goto yy31;
+yy221:
+	yych = *++p;
+	if (yych == 'P') goto yy34;
+	if (yych == 'p') goto yy34;
+	goto yy31;
+yy222:
+	yych = *++p;
+	if (yych == 'Y') goto yy242;
+	if (yych == 'y') goto yy242;
+	goto yy31;
+yy223:
+	yych = *++p;
+	if (yych <= 'O') {
+		if (yych == 'E') goto yy239;
+		if (yych <= 'N') goto yy31;
+		goto yy240;
+	} else {
+		if (yych <= 'e') {
+			if (yych <= 'd') goto yy31;
+			goto yy239;
+		} else {
+			if (yych == 'o') goto yy240;
+			goto yy31;
+		}
+	}
+yy224:
+	yych = *++p;
+	if (yych == 'A') goto yy234;
+	if (yych == 'a') goto yy234;
+	goto yy31;
+yy225:
+	yych = *++p;
+	if (yych <= 'P') {
+		if (yych == 'L') goto yy227;
+		if (yych <= 'O') goto yy31;
+		goto yy228;
+	} else {
+		if (yych <= 'l') {
+			if (yych <= 'k') goto yy31;
+			goto yy227;
+		} else {
+			if (yych == 'p') goto yy228;
+			goto yy31;
+		}
+	}
+yy226:
+	yych = *++p;
+	if (yych == 'P') goto yy34;
+	if (yych == 'p') goto yy34;
+	goto yy31;
+yy227:
+	yych = *++p;
+	if (yych == 'M') goto yy34;
+	if (yych == 'm') goto yy34;
+	goto yy31;
+yy228:
+	yych = *++p;
+	if (yych == 'A') goto yy229;
+	if (yych != 'a') goto yy31;
+yy229:
+	yych = *++p;
+	if (yych == 'R') goto yy230;
+	if (yych != 'r') goto yy31;
+yy230:
+	yych = *++p;
+	if (yych == 'A') goto yy231;
+	if (yych != 'a') goto yy31;
+yy231:
+	yych = *++p;
+	if (yych == 'Z') goto yy232;
+	if (yych != 'z') goto yy31;
+yy232:
+	yych = *++p;
+	if (yych == 'Z') goto yy233;
+	if (yych != 'z') goto yy31;
+yy233:
+	yych = *++p;
+	if (yych == 'I') goto yy34;
+	if (yych == 'i') goto yy34;
+	goto yy31;
+yy234:
+	yych = *++p;
+	if (yych == 'T') goto yy235;
+	if (yych != 't') goto yy31;
+yy235:
+	yych = *++p;
+	if (yych == 'F') goto yy236;
+	if (yych != 'f') goto yy31;
+yy236:
+	yych = *++p;
+	if (yych == 'O') goto yy237;
+	if (yych != 'o') goto yy31;
+yy237:
+	yych = *++p;
+	if (yych == 'R') goto yy238;
+	if (yych != 'r') goto yy31;
+yy238:
+	yych = *++p;
+	if (yych == 'M') goto yy34;
+	if (yych == 'm') goto yy34;
+	goto yy31;
+yy239:
+	yych = *++p;
+	if (yych == 'S') goto yy34;
+	if (yych == 's') goto yy34;
+	goto yy31;
+yy240:
+	yych = *++p;
+	if (yych == 'X') goto yy241;
+	if (yych != 'x') goto yy31;
+yy241:
+	yych = *++p;
+	if (yych == 'Y') goto yy34;
+	if (yych == 'y') goto yy34;
+	goto yy31;
+yy242:
+	yych = *++p;
+	if (yych == 'C') goto yy34;
+	if (yych == 'c') goto yy34;
+	goto yy31;
+yy243:
+	yych = *++p;
+	if (yych == 'D') goto yy34;
+	if (yych == 'd') goto yy34;
+	goto yy31;
+yy244:
+	yych = *++p;
+	if (yych == 'A') goto yy245;
+	if (yych != 'a') goto yy31;
+yy245:
+	yych = *++p;
+	if (yych == 'Q') goto yy246;
+	if (yych != 'q') goto yy31;
+yy246:
+	yych = *++p;
+	if (yych == 'U') goto yy247;
+	if (yych != 'u') goto yy31;
+yy247:
+	yych = *++p;
+	if (yych == 'E') goto yy248;
+	if (yych != 'e') goto yy31;
+yy248:
+	yych = *++p;
+	if (yych == 'L') goto yy249;
+	if (yych != 'l') goto yy31;
+yy249:
+	yych = *++p;
+	if (yych == 'O') goto yy250;
+	if (yych != 'o') goto yy31;
+yy250:
+	yych = *++p;
+	if (yych == 'C') goto yy251;
+	if (yych != 'c') goto yy31;
+yy251:
+	yych = *++p;
+	if (yych == 'K') goto yy252;
+	if (yych != 'k') goto yy31;
+yy252:
+	yych = *++p;
+	if (yych == 'T') goto yy253;
+	if (yych != 't') goto yy31;
+yy253:
+	yych = *++p;
+	if (yych == 'O') goto yy254;
+	if (yych != 'o') goto yy31;
+yy254:
+	yych = *++p;
+	if (yych == 'K') goto yy255;
+	if (yych != 'k') goto yy31;
+yy255:
+	yych = *++p;
+	if (yych == 'E') goto yy256;
+	if (yych != 'e') goto yy31;
+yy256:
+	yych = *++p;
+	if (yych == 'N') goto yy34;
+	if (yych == 'n') goto yy34;
+	goto yy31;
+yy257:
+	yych = *++p;
+	if (yych == 'T') goto yy264;
+	if (yych == 't') goto yy264;
+	goto yy31;
+yy258:
+	yych = *++p;
+	if (yych == 'T') goto yy263;
+	if (yych == 't') goto yy263;
+	goto yy31;
+yy259:
+	yych = *++p;
+	if (yych <= 'G') {
+		if (yych == ':') goto yy35;
+		goto yy31;
+	} else {
+		if (yych <= 'H') goto yy34;
+		if (yych == 'h') goto yy34;
+		goto yy31;
+	}
+yy260:
+	yych = *++p;
+	if (yych == 'S') goto yy34;
+	if (yych == 's') goto yy34;
+	goto yy31;
+yy261:
+	yych = *++p;
+	if (yych == 'W') goto yy262;
+	if (yych != 'w') goto yy31;
+yy262:
+	yych = *++p;
+	if (yych == 'S') goto yy34;
+	if (yych == 's') goto yy34;
+	goto yy31;
+yy263:
+	yych = *++p;
+	if (yych == 'P') goto yy34;
+	if (yych == 'p') goto yy34;
+	goto yy31;
+yy264:
+	yych = *++p;
+	if (yych == 'E') goto yy265;
+	if (yych != 'e') goto yy31;
+yy265:
+	yych = *++p;
+	if (yych == 'S') goto yy34;
+	if (yych == 's') goto yy34;
+	goto yy31;
+yy266:
+	yych = *++p;
+	if (yych == 'N') goto yy34;
+	if (yych == 'n') goto yy34;
+	goto yy31;
+yy267:
+	yych = *++p;
+	if (yych <= 'P') {
+		if (yych == 'M') goto yy298;
+		if (yych <= 'O') goto yy31;
+		goto yy297;
+	} else {
+		if (yych <= 'm') {
+			if (yych <= 'l') goto yy31;
+			goto yy298;
+		} else {
+			if (yych == 'p') goto yy297;
+			goto yy31;
+		}
+	}
+yy268:
+	yych = *++p;
+	if (yych <= 'Q') {
+		if (yych <= '-') {
+			if (yych <= ',') goto yy31;
+			goto yy290;
+		} else {
+			if (yych == 'N') goto yy291;
+			goto yy31;
+		}
+	} else {
+		if (yych <= 'n') {
+			if (yych <= 'R') goto yy289;
+			if (yych <= 'm') goto yy31;
+			goto yy291;
+		} else {
+			if (yych == 'r') goto yy289;
+			goto yy31;
+		}
+	}
+yy269:
+	yych = *++p;
+	if (yych == 'S') goto yy34;
+	if (yych == 's') goto yy34;
+	goto yy31;
+yy270:
+	yych = *++p;
+	if (yych == 'S') goto yy285;
+	if (yych == 's') goto yy285;
+	goto yy31;
+yy271:
+	yych = *++p;
+	switch (yych) {
+	case 'G':
+	case 'g':	goto yy276;
+	case 'I':
+	case 'i':	goto yy275;
+	case 'P':
+	case 'p':	goto yy277;
+	case 'R':
+	case 'r':	goto yy278;
+	default:	goto yy31;
+	}
+yy272:
+	yych = *++p;
+	if (yych == 'Q') goto yy274;
+	if (yych == 'q') goto yy274;
+	goto yy31;
+yy273:
+	yych = *++p;
+	if (yych == 'D') goto yy34;
+	if (yych == 'd') goto yy34;
+	goto yy31;
+yy274:
+	yych = *++p;
+	if (yych == 'P') goto yy34;
+	if (yych == 'p') goto yy34;
+	goto yy31;
+yy275:
+	yych = *++p;
+	if (yych == 'L') goto yy283;
+	if (yych == 'l') goto yy283;
+	goto yy31;
+yy276:
+	yych = *++p;
+	if (yych == 'N') goto yy281;
+	if (yych == 'n') goto yy281;
+	goto yy31;
+yy277:
+	yych = *++p;
+	if (yych == 'S') goto yy34;
+	if (yych == 's') goto yy34;
+	goto yy31;
+yy278:
+	yych = *++p;
+	if (yych == 'K') goto yy279;
+	if (yych != 'k') goto yy31;
+yy279:
+	yych = *++p;
+	if (yych == 'E') goto yy280;
+	if (yych != 'e') goto yy31;
+yy280:
+	yych = *++p;
+	if (yych == 'T') goto yy34;
+	if (yych == 't') goto yy34;
+	goto yy31;
+yy281:
+	yych = *++p;
+	if (yych == 'E') goto yy282;
+	if (yych != 'e') goto yy31;
+yy282:
+	yych = *++p;
+	if (yych == 'T') goto yy34;
+	if (yych == 't') goto yy34;
+	goto yy31;
+yy283:
+	yych = *++p;
+	if (yych == 'T') goto yy284;
+	if (yych != 't') goto yy31;
+yy284:
+	yych = *++p;
+	if (yych == 'O') goto yy34;
+	if (yych == 'o') goto yy34;
+	goto yy31;
+yy285:
+	yych = *++p;
+	if (yych == 'S') goto yy286;
+	if (yych != 's') goto yy31;
+yy286:
+	yych = *++p;
+	if (yych == 'A') goto yy287;
+	if (yych != 'a') goto yy31;
+yy287:
+	yych = *++p;
+	if (yych == 'G') goto yy288;
+	if (yych != 'g') goto yy31;
+yy288:
+	yych = *++p;
+	if (yych == 'E') goto yy34;
+	if (yych == 'e') goto yy34;
+	goto yy31;
+yy289:
+	yych = *++p;
+	if (yych == 'P') goto yy296;
+	if (yych == 'p') goto yy296;
+	goto yy31;
+yy290:
+	yych = *++p;
+	if (yych == 'H') goto yy293;
+	if (yych == 'h') goto yy293;
+	goto yy31;
+yy291:
+	yych = *++p;
+	if (yych == 'I') goto yy292;
+	if (yych != 'i') goto yy31;
+yy292:
+	yych = *++p;
+	if (yych == 'M') goto yy34;
+	if (yych == 'm') goto yy34;
+	goto yy31;
+yy293:
+	yych = *++p;
+	if (yych == 'E') goto yy294;
+	if (yych != 'e') goto yy31;
+yy294:
+	yych = *++p;
+	if (yych == 'L') goto yy295;
+	if (yych != 'l') goto yy31;
+yy295:
+	yych = *++p;
+	if (yych == 'P') goto yy34;
+	if (yych == 'p') goto yy34;
+	goto yy31;
+yy296:
+	yych = *++p;
+	if (yych <= 'R') {
+		if (yych == ':') goto yy35;
+		goto yy31;
+	} else {
+		if (yych <= 'S') goto yy34;
+		if (yych == 's') goto yy34;
+		goto yy31;
+	}
+yy297:
+	yych = *++p;
+	if (yych == 'D') goto yy301;
+	if (yych == 'd') goto yy301;
+	goto yy31;
+yy298:
+	yych = *++p;
+	if (yych == 'B') goto yy299;
+	if (yych != 'b') goto yy31;
+yy299:
+	yych = *++p;
+	if (yych == 'L') goto yy300;
+	if (yych != 'l') goto yy31;
+yy300:
+	yych = *++p;
+	if (yych == 'E') goto yy34;
+	if (yych == 'e') goto yy34;
+	goto yy31;
+yy301:
+	yych = *++p;
+	if (yych == 'A') goto yy302;
+	if (yych != 'a') goto yy31;
+yy302:
+	yych = *++p;
+	if (yych == 'T') goto yy303;
+	if (yych != 't') goto yy31;
+yy303:
+	yych = *++p;
+	if (yych == 'E') goto yy34;
+	if (yych == 'e') goto yy34;
+	goto yy31;
+yy304:
+	yych = *++p;
+	if (yych == 'A') goto yy309;
+	if (yych == 'a') goto yy309;
+	goto yy31;
+yy305:
+	yych = *++p;
+	if (yych == 'S') goto yy306;
+	if (yych != 's') goto yy31;
+yy306:
+	yych = *++p;
+	if (yych == 'T') goto yy307;
+	if (yych != 't') goto yy31;
+yy307:
+	yych = *++p;
+	if (yych == 'F') goto yy308;
+	if (yych != 'f') goto yy31;
+yy308:
+	yych = *++p;
+	if (yych == 'M') goto yy34;
+	if (yych == 'm') goto yy34;
+	goto yy31;
+yy309:
+	yych = *++p;
+	if (yych == 'P') goto yy310;
+	if (yych != 'p') goto yy31;
+yy310:
+	yych = *++p;
+	if (yych <= 'R') {
+		if (yych == ':') goto yy35;
+		goto yy31;
+	} else {
+		if (yych <= 'S') goto yy34;
+		if (yych == 's') goto yy34;
+		goto yy31;
+	}
+yy311:
+	yych = *++p;
+	if (yych == 'M') goto yy334;
+	if (yych == 'm') goto yy334;
+	goto yy31;
+yy312:
+	yych = *++p;
+	if (yych <= 'I') {
+		if (yych == 'C') goto yy323;
+		if (yych <= 'H') goto yy31;
+		goto yy322;
+	} else {
+		if (yych <= 'c') {
+			if (yych <= 'b') goto yy31;
+			goto yy323;
+		} else {
+			if (yych == 'i') goto yy322;
+			goto yy31;
+		}
+	}
+yy313:
+	yych = *++p;
+	if (yych <= 'P') {
+		if (yych == 'N') goto yy34;
+		if (yych <= 'O') goto yy31;
+		goto yy34;
+	} else {
+		if (yych <= 'n') {
+			if (yych <= 'm') goto yy31;
+			goto yy34;
+		} else {
+			if (yych == 'p') goto yy34;
+			goto yy31;
+		}
+	}
+yy314:
+	yych = *++p;
+	if (yych <= 'O') {
+		if (yych == 'A') goto yy320;
+		if (yych <= 'N') goto yy31;
+		goto yy321;
+	} else {
+		if (yych <= 'a') {
+			if (yych <= '`') goto yy31;
+			goto yy320;
+		} else {
+			if (yych == 'o') goto yy321;
+			goto yy31;
+		}
+	}
+yy315:
+	yych = *++p;
+	if (yych == 'F') goto yy319;
+	if (yych == 'f') goto yy319;
+	goto yy31;
+yy316:
+	yych = *++p;
+	if (yych <= '@') {
+		if (yych == ':') goto yy35;
+		goto yy31;
+	} else {
+		if (yych <= 'A') goto yy318;
+		if (yych == 'a') goto yy318;
+		goto yy31;
+	}
+yy317:
+	yych = *++p;
+	if (yych == 'X') goto yy34;
+	if (yych == 'x') goto yy34;
+	goto yy31;
+yy318:
+	yych = *++p;
+	if (yych == 'P') goto yy34;
+	if (yych == 'p') goto yy34;
+	goto yy31;
+yy319:
+	yych = *++p;
+	if (yych == 'O') goto yy34;
+	if (yych == 'o') goto yy34;
+	goto yy31;
+yy320:
+	yych = *++p;
+	if (yych == 'P') goto yy34;
+	if (yych == 'p') goto yy34;
+	goto yy31;
+yy321:
+	yych = *++p;
+	if (yych == 'N') goto yy34;
+	if (yych == 'n') goto yy34;
+	goto yy31;
+yy322:
+	yych = *++p;
+	if (yych == 'S') goto yy324;
+	if (yych == 's') goto yy324;
+	goto yy31;
+yy323:
+	yych = *++p;
+	if (yych <= ':') {
+		if (yych == '6') goto yy34;
+		if (yych <= '9') goto yy31;
+		goto yy35;
+	} else {
+		if (yych <= 'S') {
+			if (yych <= 'R') goto yy31;
+			goto yy34;
+		} else {
+			if (yych == 's') goto yy34;
+			goto yy31;
+		}
+	}
+yy324:
+	yych = *++p;
+	if (yych == '.') goto yy325;
+	if (yych == ':') goto yy35;
+	goto yy31;
+yy325:
+	yych = *++p;
+	if (yych <= 'X') {
+		if (yych <= 'K') {
+			if (yych == 'B') goto yy328;
+			goto yy31;
+		} else {
+			if (yych <= 'L') goto yy326;
+			if (yych <= 'W') goto yy31;
+			goto yy327;
+		}
+	} else {
+		if (yych <= 'k') {
+			if (yych == 'b') goto yy328;
+			goto yy31;
+		} else {
+			if (yych <= 'l') goto yy326;
+			if (yych == 'x') goto yy327;
+			goto yy31;
+		}
+	}
+yy326:
+	yych = *++p;
+	if (yych == 'W') goto yy333;
+	if (yych == 'w') goto yy333;
+	goto yy31;
+yy327:
+	yych = *++p;
+	if (yych == 'P') goto yy331;
+	if (yych == 'p') goto yy331;
+	goto yy31;
+yy328:
+	yych = *++p;
+	if (yych == 'E') goto yy329;
+	if (yych != 'e') goto yy31;
+yy329:
+	yych = *++p;
+	if (yych == 'E') goto yy330;
+	if (yych != 'e') goto yy31;
+yy330:
+	yych = *++p;
+	if (yych == 'P') goto yy34;
+	if (yych == 'p') goto yy34;
+	goto yy31;
+yy331:
+	yych = *++p;
+	if (yych == 'C') goto yy332;
+	if (yych != 'c') goto yy31;
+yy332:
+	yych = *++p;
+	if (yych <= 'R') {
+		if (yych == ':') goto yy35;
+		goto yy31;
+	} else {
+		if (yych <= 'S') goto yy34;
+		if (yych == 's') goto yy34;
+		goto yy31;
+	}
+yy333:
+	yych = *++p;
+	if (yych == 'Z') goto yy34;
+	if (yych == 'z') goto yy34;
+	goto yy31;
+yy334:
+	yych = *++p;
+	if (yych == 'S') goto yy34;
+	if (yych == 's') goto yy34;
+	goto yy31;
+yy335:
+	yych = *++p;
+	if (yych == 'P') goto yy34;
+	if (yych == 'p') goto yy34;
+	goto yy31;
+yy336:
+	yych = *++p;
+	if (yych == 'T') goto yy339;
+	if (yych == 't') goto yy339;
+	goto yy31;
+yy337:
+	yych = *++p;
+	if (yych != '2') goto yy31;
+	yych = *++p;
+	if (yych == '3') goto yy34;
+	goto yy31;
+yy339:
+	yych = *++p;
+	if (yych == 'P') goto yy340;
+	if (yych != 'p') goto yy31;
+yy340:
+	yych = *++p;
+	if (yych <= 'R') {
+		if (yych == ':') goto yy35;
+		goto yy31;
+	} else {
+		if (yych <= 'S') goto yy34;
+		if (yych == 's') goto yy34;
+		goto yy31;
+	}
+yy341:
+	yych = *++p;
+	if (yych == 'A') goto yy357;
+	if (yych == 'a') goto yy357;
+	goto yy31;
+yy342:
+	yych = *++p;
+	if (yych <= 'Z') {
+		if (yych == 'T') goto yy34;
+		if (yych <= 'Y') goto yy31;
+		goto yy348;
+	} else {
+		if (yych <= 't') {
+			if (yych <= 's') goto yy31;
+			goto yy34;
+		} else {
+			if (yych == 'z') goto yy348;
+			goto yy31;
+		}
+	}
+yy343:
+	yych = *++p;
+	if (yych <= 'O') {
+		if (yych == ':') goto yy35;
+		goto yy31;
+	} else {
+		if (yych <= 'P') goto yy345;
+		if (yych == 'p') goto yy345;
+		goto yy31;
+	}
+yy344:
+	yych = *++p;
+	if (yych == 'O') goto yy34;
+	if (yych == 'o') goto yy34;
+	goto yy31;
+yy345:
+	yych = *++p;
+	if (yych == 'H') goto yy346;
+	if (yych != 'h') goto yy31;
+yy346:
+	yych = *++p;
+	if (yych == 'E') goto yy347;
+	if (yych != 'e') goto yy31;
+yy347:
+	yych = *++p;
+	if (yych == 'R') goto yy34;
+	if (yych == 'r') goto yy34;
+	goto yy31;
+yy348:
+	yych = *++p;
+	if (yych == 'M') goto yy349;
+	if (yych != 'm') goto yy31;
+yy349:
+	yych = *++p;
+	if (yych == 'O') goto yy350;
+	if (yych != 'o') goto yy31;
+yy350:
+	yych = *++p;
+	if (yych == 'P') goto yy351;
+	if (yych != 'p') goto yy31;
+yy351:
+	yych = *++p;
+	if (yych == 'R') goto yy352;
+	if (yych != 'r') goto yy31;
+yy352:
+	yych = *++p;
+	if (yych == 'O') goto yy353;
+	if (yych != 'o') goto yy31;
+yy353:
+	yych = *++p;
+	if (yych == 'J') goto yy354;
+	if (yych != 'j') goto yy31;
+yy354:
+	yych = *++p;
+	if (yych == 'E') goto yy355;
+	if (yych != 'e') goto yy31;
+yy355:
+	yych = *++p;
+	if (yych == 'C') goto yy356;
+	if (yych != 'c') goto yy31;
+yy356:
+	yych = *++p;
+	if (yych == 'T') goto yy34;
+	if (yych == 't') goto yy34;
+	goto yy31;
+yy357:
+	yych = *++p;
+	if (yych == 'L') goto yy358;
+	if (yych != 'l') goto yy31;
+yy358:
+	yych = *++p;
+	if (yych == 'K') goto yy34;
+	if (yych == 'k') goto yy34;
+	goto yy31;
+yy359:
+	yych = *++p;
+	if (yych <= 'S') {
+		if (yych <= 'M') {
+			if (yych == 'L') goto yy369;
+			goto yy31;
+		} else {
+			if (yych <= 'N') goto yy370;
+			if (yych <= 'R') goto yy31;
+			goto yy371;
+		}
+	} else {
+		if (yych <= 'm') {
+			if (yych == 'l') goto yy369;
+			goto yy31;
+		} else {
+			if (yych <= 'n') goto yy370;
+			if (yych == 's') goto yy371;
+			goto yy31;
+		}
+	}
+yy360:
+	yych = *++p;
+	if (yych == 'E') goto yy368;
+	if (yych == 'e') goto yy368;
+	goto yy31;
+yy361:
+	yych = *++p;
+	if (yych == 'C') goto yy363;
+	if (yych == 'c') goto yy363;
+	goto yy31;
+yy362:
+	yych = *++p;
+	if (yych == 'P') goto yy34;
+	if (yych == 'p') goto yy34;
+	goto yy31;
+yy363:
+	yych = *++p;
+	if (yych == 'E') goto yy364;
+	if (yych != 'e') goto yy31;
+yy364:
+	yych = *++p;
+	if (yych == 'T') goto yy365;
+	if (yych != 't') goto yy31;
+yy365:
+	yych = *++p;
+	if (yych == 'I') goto yy366;
+	if (yych != 'i') goto yy31;
+yy366:
+	yych = *++p;
+	if (yych == 'M') goto yy367;
+	if (yych != 'm') goto yy31;
+yy367:
+	yych = *++p;
+	if (yych == 'E') goto yy34;
+	if (yych == 'e') goto yy34;
+	goto yy31;
+yy368:
+	yych = *++p;
+	if (yych == 'D') goto yy34;
+	if (yych == 'd') goto yy34;
+	goto yy31;
+yy369:
+	yych = *++p;
+	if (yych == 'E') goto yy34;
+	if (yych == 'e') goto yy34;
+	goto yy31;
+yy370:
+	yych = *++p;
+	if (yych == 'G') goto yy372;
+	if (yych == 'g') goto yy372;
+	goto yy31;
+yy371:
+	yych = *++p;
+	if (yych == 'H') goto yy34;
+	if (yych == 'h') goto yy34;
+	goto yy31;
+yy372:
+	yych = *++p;
+	if (yych == 'E') goto yy373;
+	if (yych != 'e') goto yy31;
+yy373:
+	yych = *++p;
+	if (yych == 'R') goto yy34;
+	if (yych == 'r') goto yy34;
+	goto yy31;
+yy374:
+	yych = *++p;
+	if (yych == 'T') goto yy392;
+	if (yych == 't') goto yy392;
+	goto yy31;
+yy375:
+	yych = *++p;
+	if (yych == 'T') goto yy34;
+	if (yych == 't') goto yy34;
+	goto yy31;
+yy376:
+	yych = *++p;
+	if (yych == 'M') goto yy34;
+	if (yych == 'm') goto yy34;
+	goto yy31;
+yy377:
+	yych = *++p;
+	if (yych <= 'S') {
+		if (yych == 'P') goto yy34;
+		if (yych <= 'R') goto yy31;
+		goto yy34;
+	} else {
+		if (yych <= 'p') {
+			if (yych <= 'o') goto yy31;
+			goto yy34;
+		} else {
+			if (yych == 's') goto yy34;
+			goto yy31;
+		}
+	}
+yy378:
+	yych = *++p;
+	if (yych == 'I') goto yy386;
+	if (yych == 'i') goto yy386;
+	goto yy31;
+yy379:
+	yych = *++p;
+	if (yych == 'A') goto yy385;
+	if (yych == 'a') goto yy385;
+	goto yy31;
+yy380:
+	yych = *++p;
+	if (yych == 'O') goto yy383;
+	if (yych == 'o') goto yy383;
+	goto yy31;
+yy381:
+	yych = *++p;
+	if (yych == 'A') goto yy382;
+	if (yych != 'a') goto yy31;
+yy382:
+	yych = *++p;
+	if (yych <= 'R') {
+		if (yych == ':') goto yy35;
+		goto yy31;
+	} else {
+		if (yych <= 'S') goto yy34;
+		if (yych == 's') goto yy34;
+		goto yy31;
+	}
+yy383:
+	yych = *++p;
+	if (yych == 'U') goto yy384;
+	if (yych != 'u') goto yy31;
+yy384:
+	yych = *++p;
+	if (yych == 'T') goto yy34;
+	if (yych == 't') goto yy34;
+	goto yy31;
+yy385:
+	yych = *++p;
+	if (yych == 'P') goto yy34;
+	if (yych == 'p') goto yy34;
+	goto yy31;
+yy386:
+	yych = *++p;
+	if (yych == 'U') goto yy387;
+	if (yych != 'u') goto yy31;
+yy387:
+	yych = *++p;
+	if (yych == 'M') goto yy388;
+	if (yych != 'm') goto yy31;
+yy388:
+	yych = *++p;
+	if (yych == 'X') goto yy389;
+	if (yych != 'x') goto yy31;
+yy389:
+	yych = *++p;
+	if (yych == 'T') goto yy390;
+	if (yych != 't') goto yy31;
+yy390:
+	yych = *++p;
+	if (yych == 'R') goto yy391;
+	if (yych != 'r') goto yy31;
+yy391:
+	yych = *++p;
+	if (yych == 'A') goto yy34;
+	if (yych == 'a') goto yy34;
+	goto yy31;
+yy392:
+	yych = *++p;
+	if (yych == 'A') goto yy393;
+	if (yych != 'a') goto yy31;
+yy393:
+	yych = *++p;
+	if (yych == 'C') goto yy394;
+	if (yych != 'c') goto yy31;
+yy394:
+	yych = *++p;
+	if (yych == 'H') goto yy395;
+	if (yych != 'h') goto yy31;
+yy395:
+	yych = *++p;
+	if (yych == 'M') goto yy396;
+	if (yych != 'm') goto yy31;
+yy396:
+	yych = *++p;
+	if (yych == 'E') goto yy397;
+	if (yych != 'e') goto yy31;
+yy397:
+	yych = *++p;
+	if (yych == 'N') goto yy398;
+	if (yych != 'n') goto yy31;
+yy398:
+	yych = *++p;
+	if (yych == 'T') goto yy34;
+	if (yych == 't') goto yy34;
+	goto yy31;
+yy399:
+	yych = *++p;
+	if (yych == 'S') goto yy34;
+	if (yych == 's') goto yy34;
+	goto yy31;
+yy400:
+	yych = *++p;
+	if (yych <= 'V') {
+		if (yych == 'R') goto yy34;
+		if (yych <= 'U') goto yy31;
+	} else {
+		if (yych <= 'r') {
+			if (yych <= 'q') goto yy31;
+			goto yy34;
+		} else {
+			if (yych != 'v') goto yy31;
+		}
+	}
+	yych = *++p;
+	if (yych == 'A') goto yy402;
+	if (yych != 'a') goto yy31;
+yy402:
+	yych = *++p;
+	if (yych == 'S') goto yy403;
+	if (yych != 's') goto yy31;
+yy403:
+	yych = *++p;
+	if (yych == 'C') goto yy404;
+	if (yych != 'c') goto yy31;
+yy404:
+	yych = *++p;
+	if (yych == 'R') goto yy405;
+	if (yych != 'r') goto yy31;
+yy405:
+	yych = *++p;
+	if (yych == 'I') goto yy406;
+	if (yych != 'i') goto yy31;
+yy406:
+	yych = *++p;
+	if (yych == 'P') goto yy407;
+	if (yych != 'p') goto yy31;
+yy407:
+	yych = *++p;
+	if (yych == 'T') goto yy34;
+	if (yych == 't') goto yy34;
+	goto yy31;
+yy408:
+	yych = *++p;
+	if (yych == 'B') goto yy34;
+	if (yych == 'b') goto yy34;
+	goto yy31;
+yy409:
+	yych = *++p;
+	if (yych == 'N') goto yy34;
+	if (yych == 'n') goto yy34;
+	goto yy31;
+yy410:
+	yych = *++p;
+	if (yych == 'N') goto yy417;
+	if (yych == 'n') goto yy417;
+	goto yy31;
+yy411:
+	yych = *++p;
+	if (yych == 'S') goto yy34;
+	if (yych == 's') goto yy34;
+	goto yy31;
+yy412:
+	yych = *++p;
+	if (yych == 'C') goto yy416;
+	if (yych == 'c') goto yy416;
+	goto yy31;
+yy413:
+	yych = *++p;
+	if (yych <= 'V') {
+		if (yych == 'T') goto yy415;
+		if (yych <= 'U') goto yy31;
+		goto yy34;
+	} else {
+		if (yych <= 't') {
+			if (yych <= 's') goto yy31;
+			goto yy415;
+		} else {
+			if (yych == 'v') goto yy34;
+			goto yy31;
+		}
+	}
+yy414:
+	yych = *++p;
+	if (yych == 'I') goto yy34;
+	if (yych == 'i') goto yy34;
+	goto yy31;
+yy415:
+	yych = *++p;
+	if (yych == 'A') goto yy34;
+	if (yych == 'a') goto yy34;
+	goto yy31;
+yy416:
+	yych = *++p;
+	if (yych == 'T') goto yy34;
+	if (yych == 't') goto yy34;
+	goto yy31;
+yy417:
+	yych = *++p;
+	if (yych == 'A') goto yy418;
+	if (yych != 'a') goto yy31;
+yy418:
+	yych = *++p;
+	if (yych != '-') goto yy31;
+	yych = *++p;
+	if (yych == 'P') goto yy420;
+	if (yych != 'p') goto yy31;
+yy420:
+	yych = *++p;
+	if (yych == 'L') goto yy421;
+	if (yych != 'l') goto yy31;
+yy421:
+	yych = *++p;
+	if (yych == 'A') goto yy422;
+	if (yych != 'a') goto yy31;
+yy422:
+	yych = *++p;
+	if (yych == 'Y') goto yy423;
+	if (yych != 'y') goto yy31;
+yy423:
+	yych = *++p;
+	if (yych <= 'S') {
+		if (yych == 'C') goto yy424;
+		if (yych <= 'R') goto yy31;
+		goto yy425;
+	} else {
+		if (yych <= 'c') {
+			if (yych <= 'b') goto yy31;
+		} else {
+			if (yych == 's') goto yy425;
+			goto yy31;
+		}
+	}
+yy424:
+	yych = *++p;
+	if (yych == 'O') goto yy430;
+	if (yych == 'o') goto yy430;
+	goto yy31;
+yy425:
+	yych = *++p;
+	if (yych == 'I') goto yy426;
+	if (yych != 'i') goto yy31;
+yy426:
+	yych = *++p;
+	if (yych == 'N') goto yy427;
+	if (yych != 'n') goto yy31;
+yy427:
+	yych = *++p;
+	if (yych == 'G') goto yy428;
+	if (yych != 'g') goto yy31;
+yy428:
+	yych = *++p;
+	if (yych == 'L') goto yy429;
+	if (yych != 'l') goto yy31;
+yy429:
+	yych = *++p;
+	if (yych == 'E') goto yy34;
+	if (yych == 'e') goto yy34;
+	goto yy31;
+yy430:
+	yych = *++p;
+	if (yych == 'N') goto yy431;
+	if (yych != 'n') goto yy31;
+yy431:
+	yych = *++p;
+	if (yych == 'T') goto yy432;
+	if (yych != 't') goto yy31;
+yy432:
+	yych = *++p;
+	if (yych == 'A') goto yy433;
+	if (yych != 'a') goto yy31;
+yy433:
+	yych = *++p;
+	if (yych == 'I') goto yy434;
+	if (yych != 'i') goto yy31;
+yy434:
+	yych = *++p;
+	if (yych == 'N') goto yy435;
+	if (yych != 'n') goto yy31;
+yy435:
+	yych = *++p;
+	if (yych == 'E') goto yy436;
+	if (yych != 'e') goto yy31;
+yy436:
+	yych = *++p;
+	if (yych == 'R') goto yy34;
+	if (yych == 'r') goto yy34;
+	goto yy31;
+yy437:
+	yych = *++p;
+	if (yych == 'S') goto yy34;
+	if (yych == 's') goto yy34;
+	goto yy31;
+yy438:
+	yych = *++p;
+	if (yych <= 'N') {
+		if (yych <= 'A') {
+			if (yych <= '@') goto yy31;
+			goto yy460;
+		} else {
+			if (yych <= 'L') goto yy31;
+			if (yych <= 'M') goto yy461;
+			goto yy462;
+		}
+	} else {
+		if (yych <= 'l') {
+			if (yych == 'a') goto yy460;
+			goto yy31;
+		} else {
+			if (yych <= 'm') goto yy461;
+			if (yych <= 'n') goto yy462;
+			goto yy31;
+		}
+	}
+yy439:
+	yych = *++p;
+	if (yych == 'R') goto yy447;
+	if (yych == 'r') goto yy447;
+	goto yy31;
+yy440:
+	yych = *++p;
+	if (yych <= 'P') {
+		if (yych == 'L') goto yy444;
+		if (yych <= 'O') goto yy31;
+		goto yy34;
+	} else {
+		if (yych <= 'l') {
+			if (yych <= 'k') goto yy31;
+			goto yy444;
+		} else {
+			if (yych == 'p') goto yy34;
+			goto yy31;
+		}
+	}
+yy441:
+	yych = *++p;
+	if (yych == 'I') goto yy443;
+	if (yych == 'i') goto yy443;
+	goto yy31;
+yy442:
+	yych = *++p;
+	if (yych == 'D') goto yy34;
+	if (yych == 'd') goto yy34;
+	goto yy31;
+yy443:
+	yych = *++p;
+	if (yych == 'D') goto yy34;
+	if (yych == 'd') goto yy34;
+	goto yy31;
+yy444:
+	yych = *++p;
+	if (yych == 'L') goto yy445;
+	if (yych != 'l') goto yy31;
+yy445:
+	yych = *++p;
+	if (yych == 'T') goto yy446;
+	if (yych != 't') goto yy31;
+yy446:
+	yych = *++p;
+	if (yych == 'O') goto yy34;
+	if (yych == 'o') goto yy34;
+	goto yy31;
+yy447:
+	yych = *++p;
+	if (yych == 'O') goto yy448;
+	if (yych != 'o') goto yy31;
+yy448:
+	yych = *++p;
+	if (yych == 'M') goto yy449;
+	if (yych != 'm') goto yy31;
+yy449:
+	yych = *++p;
+	if (yych == 'E') goto yy450;
+	if (yych != 'e') goto yy31;
+yy450:
+	yych = *++p;
+	if (yych == '-') goto yy451;
+	if (yych == ':') goto yy35;
+	goto yy31;
+yy451:
+	yych = *++p;
+	if (yych == 'E') goto yy452;
+	if (yych != 'e') goto yy31;
+yy452:
+	yych = *++p;
+	if (yych == 'X') goto yy453;
+	if (yych != 'x') goto yy31;
+yy453:
+	yych = *++p;
+	if (yych == 'T') goto yy454;
+	if (yych != 't') goto yy31;
+yy454:
+	yych = *++p;
+	if (yych == 'E') goto yy455;
+	if (yych != 'e') goto yy31;
+yy455:
+	yych = *++p;
+	if (yych == 'N') goto yy456;
+	if (yych != 'n') goto yy31;
+yy456:
+	yych = *++p;
+	if (yych == 'S') goto yy457;
+	if (yych != 's') goto yy31;
+yy457:
+	yych = *++p;
+	if (yych == 'I') goto yy458;
+	if (yych != 'i') goto yy31;
+yy458:
+	yych = *++p;
+	if (yych == 'O') goto yy459;
+	if (yych != 'o') goto yy31;
+yy459:
+	yych = *++p;
+	if (yych == 'N') goto yy34;
+	if (yych == 'n') goto yy34;
+	goto yy31;
+yy460:
+	yych = *++p;
+	if (yych == 'P') goto yy34;
+	if (yych == 'p') goto yy34;
+	goto yy31;
+yy461:
+	yych = *++p;
+	if (yych == '-') goto yy466;
+	goto yy31;
+yy462:
+	yych = *++p;
+	if (yych == 'T') goto yy463;
+	if (yych != 't') goto yy31;
+yy463:
+	yych = *++p;
+	if (yych == 'E') goto yy464;
+	if (yych != 'e') goto yy31;
+yy464:
+	yych = *++p;
+	if (yych == 'N') goto yy465;
+	if (yych != 'n') goto yy31;
+yy465:
+	yych = *++p;
+	if (yych == 'T') goto yy34;
+	if (yych == 't') goto yy34;
+	goto yy31;
+yy466:
+	yych = *++p;
+	if (yych == 'E') goto yy467;
+	if (yych != 'e') goto yy31;
+yy467:
+	yych = *++p;
+	if (yych == 'V') goto yy468;
+	if (yych != 'v') goto yy31;
+yy468:
+	yych = *++p;
+	if (yych == 'E') goto yy469;
+	if (yych != 'e') goto yy31;
+yy469:
+	yych = *++p;
+	if (yych == 'N') goto yy470;
+	if (yych != 'n') goto yy31;
+yy470:
+	yych = *++p;
+	if (yych == 'T') goto yy471;
+	if (yych != 't') goto yy31;
+yy471:
+	yych = *++p;
+	if (yych == 'B') goto yy472;
+	if (yych != 'b') goto yy31;
+yy472:
+	yych = *++p;
+	if (yych == 'R') goto yy473;
+	if (yych != 'r') goto yy31;
+yy473:
+	yych = *++p;
+	if (yych == 'I') goto yy474;
+	if (yych != 'i') goto yy31;
+yy474:
+	yych = *++p;
+	if (yych == 'T') goto yy475;
+	if (yych != 't') goto yy31;
+yy475:
+	yych = *++p;
+	if (yych == 'E') goto yy476;
+	if (yych != 'e') goto yy31;
+yy476:
+	yych = *++p;
+	if (yych != '-') goto yy31;
+	yych = *++p;
+	if (yych == 'A') goto yy478;
+	if (yych != 'a') goto yy31;
+yy478:
+	yych = *++p;
+	if (yych == 'T') goto yy479;
+	if (yych != 't') goto yy31;
+yy479:
+	yych = *++p;
+	if (yych == 'T') goto yy480;
+	if (yych != 't') goto yy31;
+yy480:
+	yych = *++p;
+	if (yych == 'E') goto yy481;
+	if (yych != 'e') goto yy31;
+yy481:
+	yych = *++p;
+	if (yych == 'N') goto yy482;
+	if (yych != 'n') goto yy31;
+yy482:
+	yych = *++p;
+	if (yych == 'D') goto yy483;
+	if (yych != 'd') goto yy31;
+yy483:
+	yych = *++p;
+	if (yych == 'E') goto yy484;
+	if (yych != 'e') goto yy31;
+yy484:
+	++p;
+	if ((yych = *p) == 'E') goto yy34;
+	if (yych == 'e') goto yy34;
+	goto yy31;
+}
+
+}
+
+// Try to match URI autolink after first <, returning number of chars matched.
+int _scan_autolink_uri(const unsigned char *p)
+{
+  const unsigned char *marker = NULL;
+  const unsigned char *start = p;
+
+{
+	unsigned char yych;
+	static const unsigned char yybm[] = {
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0, 128, 128, 128, 128, 128, 128, 128, 
+		128, 128, 128, 128, 128, 128, 128, 128, 
+		128, 128, 128, 128, 128, 128, 128, 128, 
+		128, 128, 128, 128,   0, 128,   0, 128, 
+		128, 128, 128, 128, 128, 128, 128, 128, 
+		128, 128, 128, 128, 128, 128, 128, 128, 
+		128, 128, 128, 128, 128, 128, 128, 128, 
+		128, 128, 128, 128, 128, 128, 128, 128, 
+		128, 128, 128, 128, 128, 128, 128, 128, 
+		128, 128, 128, 128, 128, 128, 128, 128, 
+		128, 128, 128, 128, 128, 128, 128, 128, 
+		128, 128, 128, 128, 128, 128, 128, 128, 
+		128, 128, 128, 128, 128, 128, 128, 128, 
+		128, 128, 128, 128, 128, 128, 128, 128, 
+		128, 128, 128, 128, 128, 128, 128, 128, 
+		128, 128, 128, 128, 128, 128, 128, 128, 
+		128, 128, 128, 128, 128, 128, 128, 128, 
+		128, 128, 128, 128, 128, 128, 128, 128, 
+		128, 128, 128, 128, 128, 128, 128, 128, 
+		128, 128, 128, 128, 128, 128, 128, 128, 
+		128, 128, 128, 128, 128, 128, 128, 128, 
+		128, 128, 128, 128, 128, 128, 128, 128, 
+		128, 128, 128, 128, 128, 128, 128, 128, 
+		128, 128, 128, 128, 128, 128, 128, 128, 
+		128, 128, 128, 128, 128, 128, 128, 128, 
+		128, 128, 128, 128, 128, 128, 128, 128, 
+		128, 128, 128, 128, 128, 128, 128, 128, 
+		128, 128, 128, 128, 128, 128, 128, 128, 
+	};
+	yych = *p;
+	switch (yych) {
+	case '\n':	goto yy487;
+	case 'A':
+	case 'a':	goto yy491;
+	case 'B':
+	case 'b':	goto yy509;
+	case 'C':
+	case 'c':	goto yy488;
+	case 'D':
+	case 'd':	goto yy489;
+	case 'E':
+	case 'e':	goto yy510;
+	case 'F':
+	case 'f':	goto yy492;
+	case 'G':
+	case 'g':	goto yy493;
+	case 'H':
+	case 'h':	goto yy494;
+	case 'I':
+	case 'i':	goto yy495;
+	case 'J':
+	case 'j':	goto yy490;
+	case 'K':
+	case 'k':	goto yy511;
+	case 'L':
+	case 'l':	goto yy496;
+	case 'M':
+	case 'm':	goto yy497;
+	case 'N':
+	case 'n':	goto yy498;
+	case 'O':
+	case 'o':	goto yy499;
+	case 'P':
+	case 'p':	goto yy500;
+	case 'Q':
+	case 'q':	goto yy512;
+	case 'R':
+	case 'r':	goto yy501;
+	case 'S':
+	case 's':	goto yy502;
+	case 'T':
+	case 't':	goto yy503;
+	case 'U':
+	case 'u':	goto yy504;
+	case 'V':
+	case 'v':	goto yy505;
+	case 'W':
+	case 'w':	goto yy506;
+	case 'X':
+	case 'x':	goto yy507;
+	case 'Y':
+	case 'y':	goto yy513;
+	case 'Z':
+	case 'z':	goto yy508;
+	default:	goto yy514;
+	}
+yy487:
+	{ return 0; }
+yy488:
+	yych = *(marker = ++p);
+	switch (yych) {
+	case 'A':
+	case 'a':	goto yy927;
+	case 'H':
+	case 'h':	goto yy926;
+	case 'I':
+	case 'i':	goto yy929;
+	case 'O':
+	case 'o':	goto yy925;
+	case 'R':
+	case 'r':	goto yy928;
+	case 'V':
+	case 'v':	goto yy924;
+	default:	goto yy487;
+	}
+yy489:
+	yych = *(marker = ++p);
+	switch (yych) {
+	case 'A':
+	case 'a':	goto yy900;
+	case 'I':
+	case 'i':	goto yy899;
+	case 'L':
+	case 'l':	goto yy897;
+	case 'N':
+	case 'n':	goto yy898;
+	case 'O':
+	case 'o':	goto yy901;
+	case 'T':
+	case 't':	goto yy896;
+	case 'V':
+	case 'v':	goto yy895;
+	default:	goto yy487;
+	}
+yy490:
+	yych = *(marker = ++p);
+	if (yych <= 'M') {
+		if (yych == 'A') goto yy887;
+		if (yych <= 'L') goto yy487;
+		goto yy886;
+	} else {
+		if (yych <= 'a') {
+			if (yych <= '`') goto yy487;
+			goto yy887;
+		} else {
+			if (yych == 'm') goto yy886;
+			goto yy487;
+		}
+	}
+yy491:
+	yych = *(marker = ++p);
+	switch (yych) {
+	case 'A':
+	case 'a':	goto yy868;
+	case 'B':
+	case 'b':	goto yy867;
+	case 'C':
+	case 'c':	goto yy866;
+	case 'D':
+	case 'd':	goto yy865;
+	case 'F':
+	case 'f':	goto yy864;
+	case 'I':
+	case 'i':	goto yy863;
+	case 'P':
+	case 'p':	goto yy862;
+	case 'T':
+	case 't':	goto yy861;
+	case 'W':
+	case 'w':	goto yy519;
+	default:	goto yy487;
+	}
+yy492:
+	yych = *(marker = ++p);
+	if (yych <= 'T') {
+		if (yych <= 'E') {
+			if (yych == 'A') goto yy848;
+			if (yych <= 'D') goto yy487;
+			goto yy847;
+		} else {
+			if (yych == 'I') goto yy846;
+			if (yych <= 'S') goto yy487;
+			goto yy849;
+		}
+	} else {
+		if (yych <= 'e') {
+			if (yych == 'a') goto yy848;
+			if (yych <= 'd') goto yy487;
+			goto yy847;
+		} else {
+			if (yych <= 'i') {
+				if (yych <= 'h') goto yy487;
+				goto yy846;
+			} else {
+				if (yych == 't') goto yy849;
+				goto yy487;
+			}
+		}
+	}
+yy493:
+	yych = *(marker = ++p);
+	switch (yych) {
+	case 'E':
+	case 'e':	goto yy831;
+	case 'G':
+	case 'g':	goto yy519;
+	case 'I':
+	case 'i':	goto yy829;
+	case 'O':
+	case 'o':	goto yy830;
+	case 'T':
+	case 't':	goto yy828;
+	default:	goto yy487;
+	}
+yy494:
+	yych = *(marker = ++p);
+	if (yych <= 'S') {
+		if (yych <= '3') {
+			if (yych <= '2') goto yy487;
+			goto yy824;
+		} else {
+			if (yych == 'C') goto yy822;
+			goto yy487;
+		}
+	} else {
+		if (yych <= 'c') {
+			if (yych <= 'T') goto yy823;
+			if (yych <= 'b') goto yy487;
+			goto yy822;
+		} else {
+			if (yych == 't') goto yy823;
+			goto yy487;
+		}
+	}
+yy495:
+	yych = *(marker = ++p);
+	switch (yych) {
+	case 'A':
+	case 'a':	goto yy804;
+	case 'C':
+	case 'c':	goto yy801;
+	case 'M':
+	case 'm':	goto yy803;
+	case 'N':
+	case 'n':	goto yy802;
+	case 'P':
+	case 'p':	goto yy800;
+	case 'R':
+	case 'r':	goto yy799;
+	case 'T':
+	case 't':	goto yy798;
+	default:	goto yy487;
+	}
+yy496:
+	yych = *(marker = ++p);
+	if (yych <= 'D') {
+		if (yych == 'A') goto yy792;
+		if (yych <= 'C') goto yy487;
+		goto yy791;
+	} else {
+		if (yych <= 'a') {
+			if (yych <= '`') goto yy487;
+			goto yy792;
+		} else {
+			if (yych == 'd') goto yy791;
+			goto yy487;
+		}
+	}
+yy497:
+	yych = *(marker = ++p);
+	switch (yych) {
+	case 'A':
+	case 'a':	goto yy758;
+	case 'E':
+	case 'e':	goto yy757;
+	case 'I':
+	case 'i':	goto yy760;
+	case 'M':
+	case 'm':	goto yy756;
+	case 'S':
+	case 's':	goto yy755;
+	case 'T':
+	case 't':	goto yy759;
+	case 'U':
+	case 'u':	goto yy754;
+	case 'V':
+	case 'v':	goto yy753;
+	default:	goto yy487;
+	}
+yy498:
+	yych = *(marker = ++p);
+	switch (yych) {
+	case 'E':
+	case 'e':	goto yy748;
+	case 'F':
+	case 'f':	goto yy747;
+	case 'I':
+	case 'i':	goto yy746;
+	case 'N':
+	case 'n':	goto yy745;
+	case 'O':
+	case 'o':	goto yy744;
+	default:	goto yy487;
+	}
+yy499:
+	yych = *(marker = ++p);
+	if (yych <= 'P') {
+		if (yych == 'I') goto yy730;
+		if (yych <= 'O') goto yy487;
+		goto yy731;
+	} else {
+		if (yych <= 'i') {
+			if (yych <= 'h') goto yy487;
+			goto yy730;
+		} else {
+			if (yych == 'p') goto yy731;
+			goto yy487;
+		}
+	}
+yy500:
+	yych = *(marker = ++p);
+	if (yych <= 'S') {
+		if (yych <= 'L') {
+			if (yych == 'A') goto yy712;
+			if (yych <= 'K') goto yy487;
+			goto yy711;
+		} else {
+			if (yych <= 'O') {
+				if (yych <= 'N') goto yy487;
+				goto yy713;
+			} else {
+				if (yych <= 'Q') goto yy487;
+				if (yych <= 'R') goto yy710;
+				goto yy709;
+			}
+		}
+	} else {
+		if (yych <= 'n') {
+			if (yych <= 'a') {
+				if (yych <= '`') goto yy487;
+				goto yy712;
+			} else {
+				if (yych == 'l') goto yy711;
+				goto yy487;
+			}
+		} else {
+			if (yych <= 'q') {
+				if (yych <= 'o') goto yy713;
+				goto yy487;
+			} else {
+				if (yych <= 'r') goto yy710;
+				if (yych <= 's') goto yy709;
+				goto yy487;
+			}
+		}
+	}
+yy501:
+	yych = *(marker = ++p);
+	if (yych <= 'T') {
+		if (yych <= 'L') {
+			if (yych == 'E') goto yy699;
+			goto yy487;
+		} else {
+			if (yych <= 'M') goto yy698;
+			if (yych <= 'R') goto yy487;
+			if (yych <= 'S') goto yy697;
+			goto yy696;
+		}
+	} else {
+		if (yych <= 'm') {
+			if (yych == 'e') goto yy699;
+			if (yych <= 'l') goto yy487;
+			goto yy698;
+		} else {
+			if (yych <= 'r') goto yy487;
+			if (yych <= 's') goto yy697;
+			if (yych <= 't') goto yy696;
+			goto yy487;
+		}
+	}
+yy502:
+	yych = *(marker = ++p);
+	switch (yych) {
+	case 'E':
+	case 'e':	goto yy652;
+	case 'F':
+	case 'f':	goto yy651;
+	case 'G':
+	case 'g':	goto yy650;
+	case 'H':
+	case 'h':	goto yy655;
+	case 'I':
+	case 'i':	goto yy654;
+	case 'K':
+	case 'k':	goto yy649;
+	case 'M':
+	case 'm':	goto yy648;
+	case 'N':
+	case 'n':	goto yy653;
+	case 'O':
+	case 'o':	goto yy647;
+	case 'P':
+	case 'p':	goto yy646;
+	case 'S':
+	case 's':	goto yy645;
+	case 'T':
+	case 't':	goto yy644;
+	case 'V':
+	case 'v':	goto yy643;
+	default:	goto yy487;
+	}
+yy503:
+	yych = *(marker = ++p);
+	switch (yych) {
+	case 'A':
+	case 'a':	goto yy619;
+	case 'E':
+	case 'e':	goto yy615;
+	case 'F':
+	case 'f':	goto yy618;
+	case 'H':
+	case 'h':	goto yy614;
+	case 'I':
+	case 'i':	goto yy616;
+	case 'N':
+	case 'n':	goto yy617;
+	case 'V':
+	case 'v':	goto yy519;
+	default:	goto yy487;
+	}
+yy504:
+	yych = *(marker = ++p);
+	if (yych <= 'T') {
+		if (yych <= 'N') {
+			if (yych == 'D') goto yy606;
+			if (yych <= 'M') goto yy487;
+			goto yy605;
+		} else {
+			if (yych == 'R') goto yy607;
+			if (yych <= 'S') goto yy487;
+			goto yy604;
+		}
+	} else {
+		if (yych <= 'n') {
+			if (yych == 'd') goto yy606;
+			if (yych <= 'm') goto yy487;
+			goto yy605;
+		} else {
+			if (yych <= 'r') {
+				if (yych <= 'q') goto yy487;
+				goto yy607;
+			} else {
+				if (yych == 't') goto yy604;
+				goto yy487;
+			}
+		}
+	}
+yy505:
+	yych = *(marker = ++p);
+	if (yych <= 'I') {
+		if (yych == 'E') goto yy588;
+		if (yych <= 'H') goto yy487;
+		goto yy587;
+	} else {
+		if (yych <= 'e') {
+			if (yych <= 'd') goto yy487;
+			goto yy588;
+		} else {
+			if (yych == 'i') goto yy587;
+			goto yy487;
+		}
+	}
+yy506:
+	yych = *(marker = ++p);
+	if (yych <= 'Y') {
+		if (yych <= 'R') {
+			if (yych == 'E') goto yy577;
+			goto yy487;
+		} else {
+			if (yych <= 'S') goto yy578;
+			if (yych <= 'T') goto yy576;
+			if (yych <= 'X') goto yy487;
+			goto yy575;
+		}
+	} else {
+		if (yych <= 's') {
+			if (yych == 'e') goto yy577;
+			if (yych <= 'r') goto yy487;
+			goto yy578;
+		} else {
+			if (yych <= 't') goto yy576;
+			if (yych == 'y') goto yy575;
+			goto yy487;
+		}
+	}
+yy507:
+	yych = *(marker = ++p);
+	if (yych <= 'R') {
+		if (yych <= 'F') {
+			if (yych == 'C') goto yy554;
+			if (yych <= 'E') goto yy487;
+			goto yy552;
+		} else {
+			if (yych == 'M') goto yy553;
+			if (yych <= 'Q') goto yy487;
+			goto yy551;
+		}
+	} else {
+		if (yych <= 'f') {
+			if (yych == 'c') goto yy554;
+			if (yych <= 'e') goto yy487;
+			goto yy552;
+		} else {
+			if (yych <= 'm') {
+				if (yych <= 'l') goto yy487;
+				goto yy553;
+			} else {
+				if (yych == 'r') goto yy551;
+				goto yy487;
+			}
+		}
+	}
+yy508:
+	yych = *(marker = ++p);
+	if (yych == '3') goto yy546;
+	goto yy487;
+yy509:
+	yych = *(marker = ++p);
+	if (yych <= 'O') {
+		if (yych <= 'H') {
+			if (yych == 'E') goto yy536;
+			goto yy487;
+		} else {
+			if (yych <= 'I') goto yy535;
+			if (yych <= 'N') goto yy487;
+			goto yy534;
+		}
+	} else {
+		if (yych <= 'h') {
+			if (yych == 'e') goto yy536;
+			goto yy487;
+		} else {
+			if (yych <= 'i') goto yy535;
+			if (yych == 'o') goto yy534;
+			goto yy487;
+		}
+	}
+yy510:
+	yych = *(marker = ++p);
+	if (yych == 'D') goto yy532;
+	if (yych == 'd') goto yy532;
+	goto yy487;
+yy511:
+	yych = *(marker = ++p);
+	if (yych == 'E') goto yy527;
+	if (yych == 'e') goto yy527;
+	goto yy487;
+yy512:
+	yych = *(marker = ++p);
+	if (yych == 'U') goto yy524;
+	if (yych == 'u') goto yy524;
+	goto yy487;
+yy513:
+	yych = *(marker = ++p);
+	if (yych == 'M') goto yy515;
+	if (yych == 'm') goto yy515;
+	goto yy487;
+yy514:
+	yych = *++p;
+	goto yy487;
+yy515:
+	yych = *++p;
+	if (yych == 'S') goto yy517;
+	if (yych == 's') goto yy517;
+yy516:
+	p = marker;
+	goto yy487;
+yy517:
+	yych = *++p;
+	if (yych == 'G') goto yy518;
+	if (yych != 'g') goto yy516;
+yy518:
+	yych = *++p;
+	if (yych == 'R') goto yy519;
+	if (yych != 'r') goto yy516;
+yy519:
+	yych = *++p;
+	if (yych != ':') goto yy516;
+yy520:
+	++p;
+	yych = *p;
+	if (yybm[0+yych] & 128) {
+		goto yy520;
+	}
+	if (yych <= '=') goto yy516;
+	++p;
+	{ return (p - start); }
+yy524:
+	yych = *++p;
+	if (yych == 'E') goto yy525;
+	if (yych != 'e') goto yy516;
+yy525:
+	yych = *++p;
+	if (yych == 'R') goto yy526;
+	if (yych != 'r') goto yy516;
+yy526:
+	yych = *++p;
+	if (yych == 'Y') goto yy519;
+	if (yych == 'y') goto yy519;
+	goto yy516;
+yy527:
+	yych = *++p;
+	if (yych == 'Y') goto yy528;
+	if (yych != 'y') goto yy516;
+yy528:
+	yych = *++p;
+	if (yych == 'P') goto yy529;
+	if (yych != 'p') goto yy516;
+yy529:
+	yych = *++p;
+	if (yych == 'A') goto yy530;
+	if (yych != 'a') goto yy516;
+yy530:
+	yych = *++p;
+	if (yych == 'R') goto yy531;
+	if (yych != 'r') goto yy516;
+yy531:
+	yych = *++p;
+	if (yych == 'C') goto yy519;
+	if (yych == 'c') goto yy519;
+	goto yy516;
+yy532:
+	yych = *++p;
+	if (yych != '2') goto yy516;
+	yych = *++p;
+	if (yych == 'K') goto yy519;
+	if (yych == 'k') goto yy519;
+	goto yy516;
+yy534:
+	yych = *++p;
+	if (yych == 'L') goto yy545;
+	if (yych == 'l') goto yy545;
+	goto yy516;
+yy535:
+	yych = *++p;
+	if (yych == 'T') goto yy541;
+	if (yych == 't') goto yy541;
+	goto yy516;
+yy536:
+	yych = *++p;
+	if (yych == 'S') goto yy537;
+	if (yych != 's') goto yy516;
+yy537:
+	yych = *++p;
+	if (yych == 'H') goto yy538;
+	if (yych != 'h') goto yy516;
+yy538:
+	yych = *++p;
+	if (yych == 'A') goto yy539;
+	if (yych != 'a') goto yy516;
+yy539:
+	yych = *++p;
+	if (yych == 'R') goto yy540;
+	if (yych != 'r') goto yy516;
+yy540:
+	yych = *++p;
+	if (yych == 'E') goto yy519;
+	if (yych == 'e') goto yy519;
+	goto yy516;
+yy541:
+	yych = *++p;
+	if (yych == 'C') goto yy542;
+	if (yych != 'c') goto yy516;
+yy542:
+	yych = *++p;
+	if (yych == 'O') goto yy543;
+	if (yych != 'o') goto yy516;
+yy543:
+	yych = *++p;
+	if (yych == 'I') goto yy544;
+	if (yych != 'i') goto yy516;
+yy544:
+	yych = *++p;
+	if (yych == 'N') goto yy519;
+	if (yych == 'n') goto yy519;
+	goto yy516;
+yy545:
+	yych = *++p;
+	if (yych == 'O') goto yy519;
+	if (yych == 'o') goto yy519;
+	goto yy516;
+yy546:
+	yych = *++p;
+	if (yych != '9') goto yy516;
+	yych = *++p;
+	if (yych != '.') goto yy516;
+	yych = *++p;
+	if (yych != '5') goto yy516;
+	yych = *++p;
+	if (yych != '0') goto yy516;
+	yych = *++p;
+	if (yych <= 'Q') goto yy516;
+	if (yych <= 'S') goto yy519;
+	if (yych <= 'q') goto yy516;
+	if (yych <= 's') goto yy519;
+	goto yy516;
+yy551:
+	yych = *++p;
+	if (yych == 'I') goto yy519;
+	if (yych == 'i') goto yy519;
+	goto yy516;
+yy552:
+	yych = *++p;
+	if (yych == 'I') goto yy573;
+	if (yych == 'i') goto yy573;
+	goto yy516;
+yy553:
+	yych = *++p;
+	if (yych <= 'P') {
+		if (yych == 'L') goto yy563;
+		if (yych <= 'O') goto yy516;
+		goto yy564;
+	} else {
+		if (yych <= 'l') {
+			if (yych <= 'k') goto yy516;
+			goto yy563;
+		} else {
+			if (yych == 'p') goto yy564;
+			goto yy516;
+		}
+	}
+yy554:
+	yych = *++p;
+	if (yych == 'O') goto yy555;
+	if (yych != 'o') goto yy516;
+yy555:
+	yych = *++p;
+	if (yych == 'N') goto yy556;
+	if (yych != 'n') goto yy516;
+yy556:
+	yych = *++p;
+	if (yych == '-') goto yy557;
+	if (yych == ':') goto yy520;
+	goto yy516;
+yy557:
+	yych = *++p;
+	if (yych == 'U') goto yy558;
+	if (yych != 'u') goto yy516;
+yy558:
+	yych = *++p;
+	if (yych == 'S') goto yy559;
+	if (yych != 's') goto yy516;
+yy559:
+	yych = *++p;
+	if (yych == 'E') goto yy560;
+	if (yych != 'e') goto yy516;
+yy560:
+	yych = *++p;
+	if (yych == 'R') goto yy561;
+	if (yych != 'r') goto yy516;
+yy561:
+	yych = *++p;
+	if (yych == 'I') goto yy562;
+	if (yych != 'i') goto yy516;
+yy562:
+	yych = *++p;
+	if (yych == 'D') goto yy519;
+	if (yych == 'd') goto yy519;
+	goto yy516;
+yy563:
+	yych = *++p;
+	if (yych == 'R') goto yy565;
+	if (yych == 'r') goto yy565;
+	goto yy516;
+yy564:
+	yych = *++p;
+	if (yych == 'P') goto yy519;
+	if (yych == 'p') goto yy519;
+	goto yy516;
+yy565:
+	yych = *++p;
+	if (yych == 'P') goto yy566;
+	if (yych != 'p') goto yy516;
+yy566:
+	yych = *++p;
+	if (yych == 'C') goto yy567;
+	if (yych != 'c') goto yy516;
+yy567:
+	yych = *++p;
+	if (yych != '.') goto yy516;
+	yych = *++p;
+	if (yych == 'B') goto yy569;
+	if (yych != 'b') goto yy516;
+yy569:
+	yych = *++p;
+	if (yych == 'E') goto yy570;
+	if (yych != 'e') goto yy516;
+yy570:
+	yych = *++p;
+	if (yych == 'E') goto yy571;
+	if (yych != 'e') goto yy516;
+yy571:
+	yych = *++p;
+	if (yych == 'P') goto yy572;
+	if (yych != 'p') goto yy516;
+yy572:
+	yych = *++p;
+	if (yych <= 'R') {
+		if (yych == ':') goto yy520;
+		goto yy516;
+	} else {
+		if (yych <= 'S') goto yy519;
+		if (yych == 's') goto yy519;
+		goto yy516;
+	}
+yy573:
+	yych = *++p;
+	if (yych == 'R') goto yy574;
+	if (yych != 'r') goto yy516;
+yy574:
+	yych = *++p;
+	if (yych == 'E') goto yy519;
+	if (yych == 'e') goto yy519;
+	goto yy516;
+yy575:
+	yych = *++p;
+	if (yych == 'C') goto yy583;
+	if (yych == 'c') goto yy583;
+	goto yy516;
+yy576:
+	yych = *++p;
+	if (yych == 'A') goto yy582;
+	if (yych == 'a') goto yy582;
+	goto yy516;
+yy577:
+	yych = *++p;
+	if (yych == 'B') goto yy579;
+	if (yych == 'b') goto yy579;
+	goto yy516;
+yy578:
+	yych = *++p;
+	if (yych <= 'R') {
+		if (yych == ':') goto yy520;
+		goto yy516;
+	} else {
+		if (yych <= 'S') goto yy519;
+		if (yych == 's') goto yy519;
+		goto yy516;
+	}
+yy579:
+	yych = *++p;
+	if (yych == 'C') goto yy580;
+	if (yych != 'c') goto yy516;
+yy580:
+	yych = *++p;
+	if (yych == 'A') goto yy581;
+	if (yych != 'a') goto yy516;
+yy581:
+	yych = *++p;
+	if (yych == 'L') goto yy519;
+	if (yych == 'l') goto yy519;
+	goto yy516;
+yy582:
+	yych = *++p;
+	if (yych == 'I') goto yy519;
+	if (yych == 'i') goto yy519;
+	goto yy516;
+yy583:
+	yych = *++p;
+	if (yych == 'I') goto yy584;
+	if (yych != 'i') goto yy516;
+yy584:
+	yych = *++p;
+	if (yych == 'W') goto yy585;
+	if (yych != 'w') goto yy516;
+yy585:
+	yych = *++p;
+	if (yych == 'Y') goto yy586;
+	if (yych != 'y') goto yy516;
+yy586:
+	yych = *++p;
+	if (yych == 'G') goto yy519;
+	if (yych == 'g') goto yy519;
+	goto yy516;
+yy587:
+	yych = *++p;
+	if (yych == 'E') goto yy596;
+	if (yych == 'e') goto yy596;
+	goto yy516;
+yy588:
+	yych = *++p;
+	if (yych <= 'N') {
+		if (yych <= 'L') goto yy516;
+		if (yych >= 'N') goto yy590;
+	} else {
+		if (yych <= 'l') goto yy516;
+		if (yych <= 'm') goto yy589;
+		if (yych <= 'n') goto yy590;
+		goto yy516;
+	}
+yy589:
+	yych = *++p;
+	if (yych == 'M') goto yy595;
+	if (yych == 'm') goto yy595;
+	goto yy516;
+yy590:
+	yych = *++p;
+	if (yych == 'T') goto yy591;
+	if (yych != 't') goto yy516;
+yy591:
+	yych = *++p;
+	if (yych == 'R') goto yy592;
+	if (yych != 'r') goto yy516;
+yy592:
+	yych = *++p;
+	if (yych == 'I') goto yy593;
+	if (yych != 'i') goto yy516;
+yy593:
+	yych = *++p;
+	if (yych == 'L') goto yy594;
+	if (yych != 'l') goto yy516;
+yy594:
+	yych = *++p;
+	if (yych == 'O') goto yy519;
+	if (yych == 'o') goto yy519;
+	goto yy516;
+yy595:
+	yych = *++p;
+	if (yych == 'I') goto yy519;
+	if (yych == 'i') goto yy519;
+	goto yy516;
+yy596:
+	yych = *++p;
+	if (yych == 'W') goto yy597;
+	if (yych != 'w') goto yy516;
+yy597:
+	yych = *++p;
+	if (yych != '-') goto yy516;
+	yych = *++p;
+	if (yych == 'S') goto yy599;
+	if (yych != 's') goto yy516;
+yy599:
+	yych = *++p;
+	if (yych == 'O') goto yy600;
+	if (yych != 'o') goto yy516;
+yy600:
+	yych = *++p;
+	if (yych == 'U') goto yy601;
+	if (yych != 'u') goto yy516;
+yy601:
+	yych = *++p;
+	if (yych == 'R') goto yy602;
+	if (yych != 'r') goto yy516;
+yy602:
+	yych = *++p;
+	if (yych == 'C') goto yy603;
+	if (yych != 'c') goto yy516;
+yy603:
+	yych = *++p;
+	if (yych == 'E') goto yy519;
+	if (yych == 'e') goto yy519;
+	goto yy516;
+yy604:
+	yych = *++p;
+	if (yych == '2') goto yy611;
+	goto yy516;
+yy605:
+	yych = *++p;
+	if (yych == 'R') goto yy608;
+	if (yych == 'r') goto yy608;
+	goto yy516;
+yy606:
+	yych = *++p;
+	if (yych == 'P') goto yy519;
+	if (yych == 'p') goto yy519;
+	goto yy516;
+yy607:
+	yych = *++p;
+	if (yych == 'N') goto yy519;
+	if (yych == 'n') goto yy519;
+	goto yy516;
+yy608:
+	yych = *++p;
+	if (yych == 'E') goto yy609;
+	if (yych != 'e') goto yy516;
+yy609:
+	yych = *++p;
+	if (yych == 'A') goto yy610;
+	if (yych != 'a') goto yy516;
+yy610:
+	yych = *++p;
+	if (yych == 'L') goto yy519;
+	if (yych == 'l') goto yy519;
+	goto yy516;
+yy611:
+	yych = *++p;
+	if (yych != '0') goto yy516;
+	yych = *++p;
+	if (yych != '0') goto yy516;
+	yych = *++p;
+	if (yych == '4') goto yy519;
+	goto yy516;
+yy614:
+	yych = *++p;
+	if (yych == 'I') goto yy633;
+	if (yych == 'i') goto yy633;
+	goto yy516;
+yy615:
+	yych = *++p;
+	if (yych <= 'L') {
+		if (yych == 'A') goto yy625;
+		if (yych <= 'K') goto yy516;
+		goto yy624;
+	} else {
+		if (yych <= 'a') {
+			if (yych <= '`') goto yy516;
+			goto yy625;
+		} else {
+			if (yych == 'l') goto yy624;
+			goto yy516;
+		}
+	}
+yy616:
+	yych = *++p;
+	if (yych == 'P') goto yy519;
+	if (yych == 'p') goto yy519;
+	goto yy516;
+yy617:
+	yych = *++p;
+	if (yych == '3') goto yy621;
+	goto yy516;
+yy618:
+	yych = *++p;
+	if (yych == 'T') goto yy620;
+	if (yych == 't') goto yy620;
+	goto yy516;
+yy619:
+	yych = *++p;
+	if (yych == 'G') goto yy519;
+	if (yych == 'g') goto yy519;
+	goto yy516;
+yy620:
+	yych = *++p;
+	if (yych == 'P') goto yy519;
+	if (yych == 'p') goto yy519;
+	goto yy516;
+yy621:
+	yych = *++p;
+	if (yych != '2') goto yy516;
+	yych = *++p;
+	if (yych != '7') goto yy516;
+	yych = *++p;
+	if (yych == '0') goto yy519;
+	goto yy516;
+yy624:
+	yych = *++p;
+	if (yych <= 'M') {
+		if (yych == ':') goto yy520;
+		goto yy516;
+	} else {
+		if (yych <= 'N') goto yy631;
+		if (yych == 'n') goto yy631;
+		goto yy516;
+	}
+yy625:
+	yych = *++p;
+	if (yych == 'M') goto yy626;
+	if (yych != 'm') goto yy516;
+yy626:
+	yych = *++p;
+	if (yych == 'S') goto yy627;
+	if (yych != 's') goto yy516;
+yy627:
+	yych = *++p;
+	if (yych == 'P') goto yy628;
+	if (yych != 'p') goto yy516;
+yy628:
+	yych = *++p;
+	if (yych == 'E') goto yy629;
+	if (yych != 'e') goto yy516;
+yy629:
+	yych = *++p;
+	if (yych == 'A') goto yy630;
+	if (yych != 'a') goto yy516;
+yy630:
+	yych = *++p;
+	if (yych == 'K') goto yy519;
+	if (yych == 'k') goto yy519;
+	goto yy516;
+yy631:
+	yych = *++p;
+	if (yych == 'E') goto yy632;
+	if (yych != 'e') goto yy516;
+yy632:
+	yych = *++p;
+	if (yych == 'T') goto yy519;
+	if (yych == 't') goto yy519;
+	goto yy516;
+yy633:
+	yych = *++p;
+	if (yych <= 'S') {
+		if (yych == 'N') goto yy634;
+		if (yych <= 'R') goto yy516;
+		goto yy635;
+	} else {
+		if (yych <= 'n') {
+			if (yych <= 'm') goto yy516;
+		} else {
+			if (yych == 's') goto yy635;
+			goto yy516;
+		}
+	}
+yy634:
+	yych = *++p;
+	if (yych == 'G') goto yy642;
+	if (yych == 'g') goto yy642;
+	goto yy516;
+yy635:
+	yych = *++p;
+	if (yych == 'M') goto yy636;
+	if (yych != 'm') goto yy516;
+yy636:
+	yych = *++p;
+	if (yych == 'E') goto yy637;
+	if (yych != 'e') goto yy516;
+yy637:
+	yych = *++p;
+	if (yych == 'S') goto yy638;
+	if (yych != 's') goto yy516;
+yy638:
+	yych = *++p;
+	if (yych == 'S') goto yy639;
+	if (yych != 's') goto yy516;
+yy639:
+	yych = *++p;
+	if (yych == 'A') goto yy640;
+	if (yych != 'a') goto yy516;
+yy640:
+	yych = *++p;
+	if (yych == 'G') goto yy641;
+	if (yych != 'g') goto yy516;
+yy641:
+	yych = *++p;
+	if (yych == 'E') goto yy519;
+	if (yych == 'e') goto yy519;
+	goto yy516;
+yy642:
+	yych = *++p;
+	if (yych == 'S') goto yy519;
+	if (yych == 's') goto yy519;
+	goto yy516;
+yy643:
+	yych = *++p;
+	if (yych == 'N') goto yy519;
+	if (yych == 'n') goto yy519;
+	goto yy516;
+yy644:
+	yych = *++p;
+	if (yych == 'E') goto yy694;
+	if (yych == 'e') goto yy694;
+	goto yy516;
+yy645:
+	yych = *++p;
+	if (yych == 'H') goto yy519;
+	if (yych == 'h') goto yy519;
+	goto yy516;
+yy646:
+	yych = *++p;
+	if (yych == 'O') goto yy690;
+	if (yych == 'o') goto yy690;
+	goto yy516;
+yy647:
+	yych = *++p;
+	if (yych <= 'L') {
+		if (yych == 'A') goto yy680;
+		if (yych <= 'K') goto yy516;
+		goto yy681;
+	} else {
+		if (yych <= 'a') {
+			if (yych <= '`') goto yy516;
+			goto yy680;
+		} else {
+			if (yych == 'l') goto yy681;
+			goto yy516;
+		}
+	}
+yy648:
+	yych = *++p;
+	if (yych <= 'S') {
+		if (yych == 'B') goto yy519;
+		if (yych <= 'R') goto yy516;
+		goto yy519;
+	} else {
+		if (yych <= 'b') {
+			if (yych <= 'a') goto yy516;
+			goto yy519;
+		} else {
+			if (yych == 's') goto yy519;
+			goto yy516;
+		}
+	}
+yy649:
+	yych = *++p;
+	if (yych == 'Y') goto yy678;
+	if (yych == 'y') goto yy678;
+	goto yy516;
+yy650:
+	yych = *++p;
+	if (yych == 'N') goto yy519;
+	if (yych == 'n') goto yy519;
+	goto yy516;
+yy651:
+	yych = *++p;
+	if (yych == 'T') goto yy677;
+	if (yych == 't') goto yy677;
+	goto yy516;
+yy652:
+	yych = *++p;
+	if (yych <= 'S') {
+		if (yych <= 'C') {
+			if (yych <= 'B') goto yy516;
+			goto yy664;
+		} else {
+			if (yych <= 'Q') goto yy516;
+			if (yych <= 'R') goto yy662;
+			goto yy663;
+		}
+	} else {
+		if (yych <= 'q') {
+			if (yych == 'c') goto yy664;
+			goto yy516;
+		} else {
+			if (yych <= 'r') goto yy662;
+			if (yych <= 's') goto yy663;
+			goto yy516;
+		}
+	}
+yy653:
+	yych = *++p;
+	if (yych == 'M') goto yy661;
+	if (yych == 'm') goto yy661;
+	goto yy516;
+yy654:
+	yych = *++p;
+	if (yych <= 'P') {
+		if (yych == 'E') goto yy658;
+		if (yych <= 'O') goto yy516;
+		goto yy659;
+	} else {
+		if (yych <= 'e') {
+			if (yych <= 'd') goto yy516;
+			goto yy658;
+		} else {
+			if (yych == 'p') goto yy659;
+			goto yy516;
+		}
+	}
+yy655:
+	yych = *++p;
+	if (yych == 'T') goto yy656;
+	if (yych != 't') goto yy516;
+yy656:
+	yych = *++p;
+	if (yych == 'T') goto yy657;
+	if (yych != 't') goto yy516;
+yy657:
+	yych = *++p;
+	if (yych == 'P') goto yy519;
+	if (yych == 'p') goto yy519;
+	goto yy516;
+yy658:
+	yych = *++p;
+	if (yych == 'V') goto yy660;
+	if (yych == 'v') goto yy660;
+	goto yy516;
+yy659:
+	yych = *++p;
+	if (yych <= 'R') {
+		if (yych == ':') goto yy520;
+		goto yy516;
+	} else {
+		if (yych <= 'S') goto yy519;
+		if (yych == 's') goto yy519;
+		goto yy516;
+	}
+yy660:
+	yych = *++p;
+	if (yych == 'E') goto yy519;
+	if (yych == 'e') goto yy519;
+	goto yy516;
+yy661:
+	yych = *++p;
+	if (yych == 'P') goto yy519;
+	if (yych == 'p') goto yy519;
+	goto yy516;
+yy662:
+	yych = *++p;
+	if (yych == 'V') goto yy674;
+	if (yych == 'v') goto yy674;
+	goto yy516;
+yy663:
+	yych = *++p;
+	if (yych == 'S') goto yy671;
+	if (yych == 's') goto yy671;
+	goto yy516;
+yy664:
+	yych = *++p;
+	if (yych == 'O') goto yy665;
+	if (yych != 'o') goto yy516;
+yy665:
+	yych = *++p;
+	if (yych == 'N') goto yy666;
+	if (yych != 'n') goto yy516;
+yy666:
+	yych = *++p;
+	if (yych == 'D') goto yy667;
+	if (yych != 'd') goto yy516;
+yy667:
+	yych = *++p;
+	if (yych == 'L') goto yy668;
+	if (yych != 'l') goto yy516;
+yy668:
+	yych = *++p;
+	if (yych == 'I') goto yy669;
+	if (yych != 'i') goto yy516;
+yy669:
+	yych = *++p;
+	if (yych == 'F') goto yy670;
+	if (yych != 'f') goto yy516;
+yy670:
+	yych = *++p;
+	if (yych == 'E') goto yy519;
+	if (yych == 'e') goto yy519;
+	goto yy516;
+yy671:
+	yych = *++p;
+	if (yych == 'I') goto yy672;
+	if (yych != 'i') goto yy516;
+yy672:
+	yych = *++p;
+	if (yych == 'O') goto yy673;
+	if (yych != 'o') goto yy516;
+yy673:
+	yych = *++p;
+	if (yych == 'N') goto yy519;
+	if (yych == 'n') goto yy519;
+	goto yy516;
+yy674:
+	yych = *++p;
+	if (yych == 'I') goto yy675;
+	if (yych != 'i') goto yy516;
+yy675:
+	yych = *++p;
+	if (yych == 'C') goto yy676;
+	if (yych != 'c') goto yy516;
+yy676:
+	yych = *++p;
+	if (yych == 'E') goto yy519;
+	if (yych == 'e') goto yy519;
+	goto yy516;
+yy677:
+	yych = *++p;
+	if (yych == 'P') goto yy519;
+	if (yych == 'p') goto yy519;
+	goto yy516;
+yy678:
+	yych = *++p;
+	if (yych == 'P') goto yy679;
+	if (yych != 'p') goto yy516;
+yy679:
+	yych = *++p;
+	if (yych == 'E') goto yy519;
+	if (yych == 'e') goto yy519;
+	goto yy516;
+yy680:
+	yych = *++p;
+	if (yych == 'P') goto yy684;
+	if (yych == 'p') goto yy684;
+	goto yy516;
+yy681:
+	yych = *++p;
+	if (yych == 'D') goto yy682;
+	if (yych != 'd') goto yy516;
+yy682:
+	yych = *++p;
+	if (yych == 'A') goto yy683;
+	if (yych != 'a') goto yy516;
+yy683:
+	yych = *++p;
+	if (yych == 'T') goto yy519;
+	if (yych == 't') goto yy519;
+	goto yy516;
+yy684:
+	yych = *++p;
+	if (yych != '.') goto yy516;
+	yych = *++p;
+	if (yych == 'B') goto yy686;
+	if (yych != 'b') goto yy516;
+yy686:
+	yych = *++p;
+	if (yych == 'E') goto yy687;
+	if (yych != 'e') goto yy516;
+yy687:
+	yych = *++p;
+	if (yych == 'E') goto yy688;
+	if (yych != 'e') goto yy516;
+yy688:
+	yych = *++p;
+	if (yych == 'P') goto yy689;
+	if (yych != 'p') goto yy516;
+yy689:
+	yych = *++p;
+	if (yych <= 'R') {
+		if (yych == ':') goto yy520;
+		goto yy516;
+	} else {
+		if (yych <= 'S') goto yy519;
+		if (yych == 's') goto yy519;
+		goto yy516;
+	}
+yy690:
+	yych = *++p;
+	if (yych == 'T') goto yy691;
+	if (yych != 't') goto yy516;
+yy691:
+	yych = *++p;
+	if (yych == 'I') goto yy692;
+	if (yych != 'i') goto yy516;
+yy692:
+	yych = *++p;
+	if (yych == 'F') goto yy693;
+	if (yych != 'f') goto yy516;
+yy693:
+	yych = *++p;
+	if (yych == 'Y') goto yy519;
+	if (yych == 'y') goto yy519;
+	goto yy516;
+yy694:
+	yych = *++p;
+	if (yych == 'A') goto yy695;
+	if (yych != 'a') goto yy516;
+yy695:
+	yych = *++p;
+	if (yych == 'M') goto yy519;
+	if (yych == 'm') goto yy519;
+	goto yy516;
+yy696:
+	yych = *++p;
+	if (yych <= 'S') {
+		if (yych == 'M') goto yy708;
+		if (yych <= 'R') goto yy516;
+		goto yy707;
+	} else {
+		if (yych <= 'm') {
+			if (yych <= 'l') goto yy516;
+			goto yy708;
+		} else {
+			if (yych == 's') goto yy707;
+			goto yy516;
+		}
+	}
+yy697:
+	yych = *++p;
+	if (yych == 'Y') goto yy705;
+	if (yych == 'y') goto yy705;
+	goto yy516;
+yy698:
+	yych = *++p;
+	if (yych == 'I') goto yy519;
+	if (yych == 'i') goto yy519;
+	goto yy516;
+yy699:
+	yych = *++p;
+	if (yych == 'S') goto yy700;
+	if (yych != 's') goto yy516;
+yy700:
+	yych = *++p;
+	if (yych <= 'N') {
+		if (yych == ':') goto yy520;
+		goto yy516;
+	} else {
+		if (yych <= 'O') goto yy701;
+		if (yych != 'o') goto yy516;
+	}
+yy701:
+	yych = *++p;
+	if (yych == 'U') goto yy702;
+	if (yych != 'u') goto yy516;
+yy702:
+	yych = *++p;
+	if (yych == 'R') goto yy703;
+	if (yych != 'r') goto yy516;
+yy703:
+	yych = *++p;
+	if (yych == 'C') goto yy704;
+	if (yych != 'c') goto yy516;
+yy704:
+	yych = *++p;
+	if (yych == 'E') goto yy519;
+	if (yych == 'e') goto yy519;
+	goto yy516;
+yy705:
+	yych = *++p;
+	if (yych == 'N') goto yy706;
+	if (yych != 'n') goto yy516;
+yy706:
+	yych = *++p;
+	if (yych == 'C') goto yy519;
+	if (yych == 'c') goto yy519;
+	goto yy516;
+yy707:
+	yych = *++p;
+	if (yych == 'P') goto yy519;
+	if (yych == 'p') goto yy519;
+	goto yy516;
+yy708:
+	yych = *++p;
+	if (yych == 'P') goto yy519;
+	if (yych == 'p') goto yy519;
+	goto yy516;
+yy709:
+	yych = *++p;
+	if (yych == 'Y') goto yy729;
+	if (yych == 'y') goto yy729;
+	goto yy516;
+yy710:
+	yych = *++p;
+	if (yych <= 'O') {
+		if (yych == 'E') goto yy726;
+		if (yych <= 'N') goto yy516;
+		goto yy727;
+	} else {
+		if (yych <= 'e') {
+			if (yych <= 'd') goto yy516;
+			goto yy726;
+		} else {
+			if (yych == 'o') goto yy727;
+			goto yy516;
+		}
+	}
+yy711:
+	yych = *++p;
+	if (yych == 'A') goto yy721;
+	if (yych == 'a') goto yy721;
+	goto yy516;
+yy712:
+	yych = *++p;
+	if (yych <= 'P') {
+		if (yych == 'L') goto yy714;
+		if (yych <= 'O') goto yy516;
+		goto yy715;
+	} else {
+		if (yych <= 'l') {
+			if (yych <= 'k') goto yy516;
+			goto yy714;
+		} else {
+			if (yych == 'p') goto yy715;
+			goto yy516;
+		}
+	}
+yy713:
+	yych = *++p;
+	if (yych == 'P') goto yy519;
+	if (yych == 'p') goto yy519;
+	goto yy516;
+yy714:
+	yych = *++p;
+	if (yych == 'M') goto yy519;
+	if (yych == 'm') goto yy519;
+	goto yy516;
+yy715:
+	yych = *++p;
+	if (yych == 'A') goto yy716;
+	if (yych != 'a') goto yy516;
+yy716:
+	yych = *++p;
+	if (yych == 'R') goto yy717;
+	if (yych != 'r') goto yy516;
+yy717:
+	yych = *++p;
+	if (yych == 'A') goto yy718;
+	if (yych != 'a') goto yy516;
+yy718:
+	yych = *++p;
+	if (yych == 'Z') goto yy719;
+	if (yych != 'z') goto yy516;
+yy719:
+	yych = *++p;
+	if (yych == 'Z') goto yy720;
+	if (yych != 'z') goto yy516;
+yy720:
+	yych = *++p;
+	if (yych == 'I') goto yy519;
+	if (yych == 'i') goto yy519;
+	goto yy516;
+yy721:
+	yych = *++p;
+	if (yych == 'T') goto yy722;
+	if (yych != 't') goto yy516;
+yy722:
+	yych = *++p;
+	if (yych == 'F') goto yy723;
+	if (yych != 'f') goto yy516;
+yy723:
+	yych = *++p;
+	if (yych == 'O') goto yy724;
+	if (yych != 'o') goto yy516;
+yy724:
+	yych = *++p;
+	if (yych == 'R') goto yy725;
+	if (yych != 'r') goto yy516;
+yy725:
+	yych = *++p;
+	if (yych == 'M') goto yy519;
+	if (yych == 'm') goto yy519;
+	goto yy516;
+yy726:
+	yych = *++p;
+	if (yych == 'S') goto yy519;
+	if (yych == 's') goto yy519;
+	goto yy516;
+yy727:
+	yych = *++p;
+	if (yych == 'X') goto yy728;
+	if (yych != 'x') goto yy516;
+yy728:
+	yych = *++p;
+	if (yych == 'Y') goto yy519;
+	if (yych == 'y') goto yy519;
+	goto yy516;
+yy729:
+	yych = *++p;
+	if (yych == 'C') goto yy519;
+	if (yych == 'c') goto yy519;
+	goto yy516;
+yy730:
+	yych = *++p;
+	if (yych == 'D') goto yy519;
+	if (yych == 'd') goto yy519;
+	goto yy516;
+yy731:
+	yych = *++p;
+	if (yych == 'A') goto yy732;
+	if (yych != 'a') goto yy516;
+yy732:
+	yych = *++p;
+	if (yych == 'Q') goto yy733;
+	if (yych != 'q') goto yy516;
+yy733:
+	yych = *++p;
+	if (yych == 'U') goto yy734;
+	if (yych != 'u') goto yy516;
+yy734:
+	yych = *++p;
+	if (yych == 'E') goto yy735;
+	if (yych != 'e') goto yy516;
+yy735:
+	yych = *++p;
+	if (yych == 'L') goto yy736;
+	if (yych != 'l') goto yy516;
+yy736:
+	yych = *++p;
+	if (yych == 'O') goto yy737;
+	if (yych != 'o') goto yy516;
+yy737:
+	yych = *++p;
+	if (yych == 'C') goto yy738;
+	if (yych != 'c') goto yy516;
+yy738:
+	yych = *++p;
+	if (yych == 'K') goto yy739;
+	if (yych != 'k') goto yy516;
+yy739:
+	yych = *++p;
+	if (yych == 'T') goto yy740;
+	if (yych != 't') goto yy516;
+yy740:
+	yych = *++p;
+	if (yych == 'O') goto yy741;
+	if (yych != 'o') goto yy516;
+yy741:
+	yych = *++p;
+	if (yych == 'K') goto yy742;
+	if (yych != 'k') goto yy516;
+yy742:
+	yych = *++p;
+	if (yych == 'E') goto yy743;
+	if (yych != 'e') goto yy516;
+yy743:
+	yych = *++p;
+	if (yych == 'N') goto yy519;
+	if (yych == 'n') goto yy519;
+	goto yy516;
+yy744:
+	yych = *++p;
+	if (yych == 'T') goto yy751;
+	if (yych == 't') goto yy751;
+	goto yy516;
+yy745:
+	yych = *++p;
+	if (yych == 'T') goto yy750;
+	if (yych == 't') goto yy750;
+	goto yy516;
+yy746:
+	yych = *++p;
+	if (yych <= 'G') {
+		if (yych == ':') goto yy520;
+		goto yy516;
+	} else {
+		if (yych <= 'H') goto yy519;
+		if (yych == 'h') goto yy519;
+		goto yy516;
+	}
+yy747:
+	yych = *++p;
+	if (yych == 'S') goto yy519;
+	if (yych == 's') goto yy519;
+	goto yy516;
+yy748:
+	yych = *++p;
+	if (yych == 'W') goto yy749;
+	if (yych != 'w') goto yy516;
+yy749:
+	yych = *++p;
+	if (yych == 'S') goto yy519;
+	if (yych == 's') goto yy519;
+	goto yy516;
+yy750:
+	yych = *++p;
+	if (yych == 'P') goto yy519;
+	if (yych == 'p') goto yy519;
+	goto yy516;
+yy751:
+	yych = *++p;
+	if (yych == 'E') goto yy752;
+	if (yych != 'e') goto yy516;
+yy752:
+	yych = *++p;
+	if (yych == 'S') goto yy519;
+	if (yych == 's') goto yy519;
+	goto yy516;
+yy753:
+	yych = *++p;
+	if (yych == 'N') goto yy519;
+	if (yych == 'n') goto yy519;
+	goto yy516;
+yy754:
+	yych = *++p;
+	if (yych <= 'P') {
+		if (yych == 'M') goto yy785;
+		if (yych <= 'O') goto yy516;
+		goto yy784;
+	} else {
+		if (yych <= 'm') {
+			if (yych <= 'l') goto yy516;
+			goto yy785;
+		} else {
+			if (yych == 'p') goto yy784;
+			goto yy516;
+		}
+	}
+yy755:
+	yych = *++p;
+	if (yych <= 'Q') {
+		if (yych <= '-') {
+			if (yych <= ',') goto yy516;
+			goto yy777;
+		} else {
+			if (yych == 'N') goto yy778;
+			goto yy516;
+		}
+	} else {
+		if (yych <= 'n') {
+			if (yych <= 'R') goto yy776;
+			if (yych <= 'm') goto yy516;
+			goto yy778;
+		} else {
+			if (yych == 'r') goto yy776;
+			goto yy516;
+		}
+	}
+yy756:
+	yych = *++p;
+	if (yych == 'S') goto yy519;
+	if (yych == 's') goto yy519;
+	goto yy516;
+yy757:
+	yych = *++p;
+	if (yych == 'S') goto yy772;
+	if (yych == 's') goto yy772;
+	goto yy516;
+yy758:
+	yych = *++p;
+	switch (yych) {
+	case 'G':
+	case 'g':	goto yy763;
+	case 'I':
+	case 'i':	goto yy762;
+	case 'P':
+	case 'p':	goto yy764;
+	case 'R':
+	case 'r':	goto yy765;
+	default:	goto yy516;
+	}
+yy759:
+	yych = *++p;
+	if (yych == 'Q') goto yy761;
+	if (yych == 'q') goto yy761;
+	goto yy516;
+yy760:
+	yych = *++p;
+	if (yych == 'D') goto yy519;
+	if (yych == 'd') goto yy519;
+	goto yy516;
+yy761:
+	yych = *++p;
+	if (yych == 'P') goto yy519;
+	if (yych == 'p') goto yy519;
+	goto yy516;
+yy762:
+	yych = *++p;
+	if (yych == 'L') goto yy770;
+	if (yych == 'l') goto yy770;
+	goto yy516;
+yy763:
+	yych = *++p;
+	if (yych == 'N') goto yy768;
+	if (yych == 'n') goto yy768;
+	goto yy516;
+yy764:
+	yych = *++p;
+	if (yych == 'S') goto yy519;
+	if (yych == 's') goto yy519;
+	goto yy516;
+yy765:
+	yych = *++p;
+	if (yych == 'K') goto yy766;
+	if (yych != 'k') goto yy516;
+yy766:
+	yych = *++p;
+	if (yych == 'E') goto yy767;
+	if (yych != 'e') goto yy516;
+yy767:
+	yych = *++p;
+	if (yych == 'T') goto yy519;
+	if (yych == 't') goto yy519;
+	goto yy516;
+yy768:
+	yych = *++p;
+	if (yych == 'E') goto yy769;
+	if (yych != 'e') goto yy516;
+yy769:
+	yych = *++p;
+	if (yych == 'T') goto yy519;
+	if (yych == 't') goto yy519;
+	goto yy516;
+yy770:
+	yych = *++p;
+	if (yych == 'T') goto yy771;
+	if (yych != 't') goto yy516;
+yy771:
+	yych = *++p;
+	if (yych == 'O') goto yy519;
+	if (yych == 'o') goto yy519;
+	goto yy516;
+yy772:
+	yych = *++p;
+	if (yych == 'S') goto yy773;
+	if (yych != 's') goto yy516;
+yy773:
+	yych = *++p;
+	if (yych == 'A') goto yy774;
+	if (yych != 'a') goto yy516;
+yy774:
+	yych = *++p;
+	if (yych == 'G') goto yy775;
+	if (yych != 'g') goto yy516;
+yy775:
+	yych = *++p;
+	if (yych == 'E') goto yy519;
+	if (yych == 'e') goto yy519;
+	goto yy516;
+yy776:
+	yych = *++p;
+	if (yych == 'P') goto yy783;
+	if (yych == 'p') goto yy783;
+	goto yy516;
+yy777:
+	yych = *++p;
+	if (yych == 'H') goto yy780;
+	if (yych == 'h') goto yy780;
+	goto yy516;
+yy778:
+	yych = *++p;
+	if (yych == 'I') goto yy779;
+	if (yych != 'i') goto yy516;
+yy779:
+	yych = *++p;
+	if (yych == 'M') goto yy519;
+	if (yych == 'm') goto yy519;
+	goto yy516;
+yy780:
+	yych = *++p;
+	if (yych == 'E') goto yy781;
+	if (yych != 'e') goto yy516;
+yy781:
+	yych = *++p;
+	if (yych == 'L') goto yy782;
+	if (yych != 'l') goto yy516;
+yy782:
+	yych = *++p;
+	if (yych == 'P') goto yy519;
+	if (yych == 'p') goto yy519;
+	goto yy516;
+yy783:
+	yych = *++p;
+	if (yych <= 'R') {
+		if (yych == ':') goto yy520;
+		goto yy516;
+	} else {
+		if (yych <= 'S') goto yy519;
+		if (yych == 's') goto yy519;
+		goto yy516;
+	}
+yy784:
+	yych = *++p;
+	if (yych == 'D') goto yy788;
+	if (yych == 'd') goto yy788;
+	goto yy516;
+yy785:
+	yych = *++p;
+	if (yych == 'B') goto yy786;
+	if (yych != 'b') goto yy516;
+yy786:
+	yych = *++p;
+	if (yych == 'L') goto yy787;
+	if (yych != 'l') goto yy516;
+yy787:
+	yych = *++p;
+	if (yych == 'E') goto yy519;
+	if (yych == 'e') goto yy519;
+	goto yy516;
+yy788:
+	yych = *++p;
+	if (yych == 'A') goto yy789;
+	if (yych != 'a') goto yy516;
+yy789:
+	yych = *++p;
+	if (yych == 'T') goto yy790;
+	if (yych != 't') goto yy516;
+yy790:
+	yych = *++p;
+	if (yych == 'E') goto yy519;
+	if (yych == 'e') goto yy519;
+	goto yy516;
+yy791:
+	yych = *++p;
+	if (yych == 'A') goto yy796;
+	if (yych == 'a') goto yy796;
+	goto yy516;
+yy792:
+	yych = *++p;
+	if (yych == 'S') goto yy793;
+	if (yych != 's') goto yy516;
+yy793:
+	yych = *++p;
+	if (yych == 'T') goto yy794;
+	if (yych != 't') goto yy516;
+yy794:
+	yych = *++p;
+	if (yych == 'F') goto yy795;
+	if (yych != 'f') goto yy516;
+yy795:
+	yych = *++p;
+	if (yych == 'M') goto yy519;
+	if (yych == 'm') goto yy519;
+	goto yy516;
+yy796:
+	yych = *++p;
+	if (yych == 'P') goto yy797;
+	if (yych != 'p') goto yy516;
+yy797:
+	yych = *++p;
+	if (yych <= 'R') {
+		if (yych == ':') goto yy520;
+		goto yy516;
+	} else {
+		if (yych <= 'S') goto yy519;
+		if (yych == 's') goto yy519;
+		goto yy516;
+	}
+yy798:
+	yych = *++p;
+	if (yych == 'M') goto yy821;
+	if (yych == 'm') goto yy821;
+	goto yy516;
+yy799:
+	yych = *++p;
+	if (yych <= 'I') {
+		if (yych == 'C') goto yy810;
+		if (yych <= 'H') goto yy516;
+		goto yy809;
+	} else {
+		if (yych <= 'c') {
+			if (yych <= 'b') goto yy516;
+			goto yy810;
+		} else {
+			if (yych == 'i') goto yy809;
+			goto yy516;
+		}
+	}
+yy800:
+	yych = *++p;
+	if (yych <= 'P') {
+		if (yych == 'N') goto yy519;
+		if (yych <= 'O') goto yy516;
+		goto yy519;
+	} else {
+		if (yych <= 'n') {
+			if (yych <= 'm') goto yy516;
+			goto yy519;
+		} else {
+			if (yych == 'p') goto yy519;
+			goto yy516;
+		}
+	}
+yy801:
+	yych = *++p;
+	if (yych <= 'O') {
+		if (yych == 'A') goto yy807;
+		if (yych <= 'N') goto yy516;
+		goto yy808;
+	} else {
+		if (yych <= 'a') {
+			if (yych <= '`') goto yy516;
+			goto yy807;
+		} else {
+			if (yych == 'o') goto yy808;
+			goto yy516;
+		}
+	}
+yy802:
+	yych = *++p;
+	if (yych == 'F') goto yy806;
+	if (yych == 'f') goto yy806;
+	goto yy516;
+yy803:
+	yych = *++p;
+	if (yych <= '@') {
+		if (yych == ':') goto yy520;
+		goto yy516;
+	} else {
+		if (yych <= 'A') goto yy805;
+		if (yych == 'a') goto yy805;
+		goto yy516;
+	}
+yy804:
+	yych = *++p;
+	if (yych == 'X') goto yy519;
+	if (yych == 'x') goto yy519;
+	goto yy516;
+yy805:
+	yych = *++p;
+	if (yych == 'P') goto yy519;
+	if (yych == 'p') goto yy519;
+	goto yy516;
+yy806:
+	yych = *++p;
+	if (yych == 'O') goto yy519;
+	if (yych == 'o') goto yy519;
+	goto yy516;
+yy807:
+	yych = *++p;
+	if (yych == 'P') goto yy519;
+	if (yych == 'p') goto yy519;
+	goto yy516;
+yy808:
+	yych = *++p;
+	if (yych == 'N') goto yy519;
+	if (yych == 'n') goto yy519;
+	goto yy516;
+yy809:
+	yych = *++p;
+	if (yych == 'S') goto yy811;
+	if (yych == 's') goto yy811;
+	goto yy516;
+yy810:
+	yych = *++p;
+	if (yych <= ':') {
+		if (yych == '6') goto yy519;
+		if (yych <= '9') goto yy516;
+		goto yy520;
+	} else {
+		if (yych <= 'S') {
+			if (yych <= 'R') goto yy516;
+			goto yy519;
+		} else {
+			if (yych == 's') goto yy519;
+			goto yy516;
+		}
+	}
+yy811:
+	yych = *++p;
+	if (yych == '.') goto yy812;
+	if (yych == ':') goto yy520;
+	goto yy516;
+yy812:
+	yych = *++p;
+	if (yych <= 'X') {
+		if (yych <= 'K') {
+			if (yych == 'B') goto yy815;
+			goto yy516;
+		} else {
+			if (yych <= 'L') goto yy813;
+			if (yych <= 'W') goto yy516;
+			goto yy814;
+		}
+	} else {
+		if (yych <= 'k') {
+			if (yych == 'b') goto yy815;
+			goto yy516;
+		} else {
+			if (yych <= 'l') goto yy813;
+			if (yych == 'x') goto yy814;
+			goto yy516;
+		}
+	}
+yy813:
+	yych = *++p;
+	if (yych == 'W') goto yy820;
+	if (yych == 'w') goto yy820;
+	goto yy516;
+yy814:
+	yych = *++p;
+	if (yych == 'P') goto yy818;
+	if (yych == 'p') goto yy818;
+	goto yy516;
+yy815:
+	yych = *++p;
+	if (yych == 'E') goto yy816;
+	if (yych != 'e') goto yy516;
+yy816:
+	yych = *++p;
+	if (yych == 'E') goto yy817;
+	if (yych != 'e') goto yy516;
+yy817:
+	yych = *++p;
+	if (yych == 'P') goto yy519;
+	if (yych == 'p') goto yy519;
+	goto yy516;
+yy818:
+	yych = *++p;
+	if (yych == 'C') goto yy819;
+	if (yych != 'c') goto yy516;
+yy819:
+	yych = *++p;
+	if (yych <= 'R') {
+		if (yych == ':') goto yy520;
+		goto yy516;
+	} else {
+		if (yych <= 'S') goto yy519;
+		if (yych == 's') goto yy519;
+		goto yy516;
+	}
+yy820:
+	yych = *++p;
+	if (yych == 'Z') goto yy519;
+	if (yych == 'z') goto yy519;
+	goto yy516;
+yy821:
+	yych = *++p;
+	if (yych == 'S') goto yy519;
+	if (yych == 's') goto yy519;
+	goto yy516;
+yy822:
+	yych = *++p;
+	if (yych == 'P') goto yy519;
+	if (yych == 'p') goto yy519;
+	goto yy516;
+yy823:
+	yych = *++p;
+	if (yych == 'T') goto yy826;
+	if (yych == 't') goto yy826;
+	goto yy516;
+yy824:
+	yych = *++p;
+	if (yych != '2') goto yy516;
+	yych = *++p;
+	if (yych == '3') goto yy519;
+	goto yy516;
+yy826:
+	yych = *++p;
+	if (yych == 'P') goto yy827;
+	if (yych != 'p') goto yy516;
+yy827:
+	yych = *++p;
+	if (yych <= 'R') {
+		if (yych == ':') goto yy520;
+		goto yy516;
+	} else {
+		if (yych <= 'S') goto yy519;
+		if (yych == 's') goto yy519;
+		goto yy516;
+	}
+yy828:
+	yych = *++p;
+	if (yych == 'A') goto yy844;
+	if (yych == 'a') goto yy844;
+	goto yy516;
+yy829:
+	yych = *++p;
+	if (yych <= 'Z') {
+		if (yych == 'T') goto yy519;
+		if (yych <= 'Y') goto yy516;
+		goto yy835;
+	} else {
+		if (yych <= 't') {
+			if (yych <= 's') goto yy516;
+			goto yy519;
+		} else {
+			if (yych == 'z') goto yy835;
+			goto yy516;
+		}
+	}
+yy830:
+	yych = *++p;
+	if (yych <= 'O') {
+		if (yych == ':') goto yy520;
+		goto yy516;
+	} else {
+		if (yych <= 'P') goto yy832;
+		if (yych == 'p') goto yy832;
+		goto yy516;
+	}
+yy831:
+	yych = *++p;
+	if (yych == 'O') goto yy519;
+	if (yych == 'o') goto yy519;
+	goto yy516;
+yy832:
+	yych = *++p;
+	if (yych == 'H') goto yy833;
+	if (yych != 'h') goto yy516;
+yy833:
+	yych = *++p;
+	if (yych == 'E') goto yy834;
+	if (yych != 'e') goto yy516;
+yy834:
+	yych = *++p;
+	if (yych == 'R') goto yy519;
+	if (yych == 'r') goto yy519;
+	goto yy516;
+yy835:
+	yych = *++p;
+	if (yych == 'M') goto yy836;
+	if (yych != 'm') goto yy516;
+yy836:
+	yych = *++p;
+	if (yych == 'O') goto yy837;
+	if (yych != 'o') goto yy516;
+yy837:
+	yych = *++p;
+	if (yych == 'P') goto yy838;
+	if (yych != 'p') goto yy516;
+yy838:
+	yych = *++p;
+	if (yych == 'R') goto yy839;
+	if (yych != 'r') goto yy516;
+yy839:
+	yych = *++p;
+	if (yych == 'O') goto yy840;
+	if (yych != 'o') goto yy516;
+yy840:
+	yych = *++p;
+	if (yych == 'J') goto yy841;
+	if (yych != 'j') goto yy516;
+yy841:
+	yych = *++p;
+	if (yych == 'E') goto yy842;
+	if (yych != 'e') goto yy516;
+yy842:
+	yych = *++p;
+	if (yych == 'C') goto yy843;
+	if (yych != 'c') goto yy516;
+yy843:
+	yych = *++p;
+	if (yych == 'T') goto yy519;
+	if (yych == 't') goto yy519;
+	goto yy516;
+yy844:
+	yych = *++p;
+	if (yych == 'L') goto yy845;
+	if (yych != 'l') goto yy516;
+yy845:
+	yych = *++p;
+	if (yych == 'K') goto yy519;
+	if (yych == 'k') goto yy519;
+	goto yy516;
+yy846:
+	yych = *++p;
+	if (yych <= 'S') {
+		if (yych <= 'M') {
+			if (yych == 'L') goto yy856;
+			goto yy516;
+		} else {
+			if (yych <= 'N') goto yy857;
+			if (yych <= 'R') goto yy516;
+			goto yy858;
+		}
+	} else {
+		if (yych <= 'm') {
+			if (yych == 'l') goto yy856;
+			goto yy516;
+		} else {
+			if (yych <= 'n') goto yy857;
+			if (yych == 's') goto yy858;
+			goto yy516;
+		}
+	}
+yy847:
+	yych = *++p;
+	if (yych == 'E') goto yy855;
+	if (yych == 'e') goto yy855;
+	goto yy516;
+yy848:
+	yych = *++p;
+	if (yych == 'C') goto yy850;
+	if (yych == 'c') goto yy850;
+	goto yy516;
+yy849:
+	yych = *++p;
+	if (yych == 'P') goto yy519;
+	if (yych == 'p') goto yy519;
+	goto yy516;
+yy850:
+	yych = *++p;
+	if (yych == 'E') goto yy851;
+	if (yych != 'e') goto yy516;
+yy851:
+	yych = *++p;
+	if (yych == 'T') goto yy852;
+	if (yych != 't') goto yy516;
+yy852:
+	yych = *++p;
+	if (yych == 'I') goto yy853;
+	if (yych != 'i') goto yy516;
+yy853:
+	yych = *++p;
+	if (yych == 'M') goto yy854;
+	if (yych != 'm') goto yy516;
+yy854:
+	yych = *++p;
+	if (yych == 'E') goto yy519;
+	if (yych == 'e') goto yy519;
+	goto yy516;
+yy855:
+	yych = *++p;
+	if (yych == 'D') goto yy519;
+	if (yych == 'd') goto yy519;
+	goto yy516;
+yy856:
+	yych = *++p;
+	if (yych == 'E') goto yy519;
+	if (yych == 'e') goto yy519;
+	goto yy516;
+yy857:
+	yych = *++p;
+	if (yych == 'G') goto yy859;
+	if (yych == 'g') goto yy859;
+	goto yy516;
+yy858:
+	yych = *++p;
+	if (yych == 'H') goto yy519;
+	if (yych == 'h') goto yy519;
+	goto yy516;
+yy859:
+	yych = *++p;
+	if (yych == 'E') goto yy860;
+	if (yych != 'e') goto yy516;
+yy860:
+	yych = *++p;
+	if (yych == 'R') goto yy519;
+	if (yych == 'r') goto yy519;
+	goto yy516;
+yy861:
+	yych = *++p;
+	if (yych == 'T') goto yy879;
+	if (yych == 't') goto yy879;
+	goto yy516;
+yy862:
+	yych = *++p;
+	if (yych == 'T') goto yy519;
+	if (yych == 't') goto yy519;
+	goto yy516;
+yy863:
+	yych = *++p;
+	if (yych == 'M') goto yy519;
+	if (yych == 'm') goto yy519;
+	goto yy516;
+yy864:
+	yych = *++p;
+	if (yych <= 'S') {
+		if (yych == 'P') goto yy519;
+		if (yych <= 'R') goto yy516;
+		goto yy519;
+	} else {
+		if (yych <= 'p') {
+			if (yych <= 'o') goto yy516;
+			goto yy519;
+		} else {
+			if (yych == 's') goto yy519;
+			goto yy516;
+		}
+	}
+yy865:
+	yych = *++p;
+	if (yych == 'I') goto yy873;
+	if (yych == 'i') goto yy873;
+	goto yy516;
+yy866:
+	yych = *++p;
+	if (yych == 'A') goto yy872;
+	if (yych == 'a') goto yy872;
+	goto yy516;
+yy867:
+	yych = *++p;
+	if (yych == 'O') goto yy870;
+	if (yych == 'o') goto yy870;
+	goto yy516;
+yy868:
+	yych = *++p;
+	if (yych == 'A') goto yy869;
+	if (yych != 'a') goto yy516;
+yy869:
+	yych = *++p;
+	if (yych <= 'R') {
+		if (yych == ':') goto yy520;
+		goto yy516;
+	} else {
+		if (yych <= 'S') goto yy519;
+		if (yych == 's') goto yy519;
+		goto yy516;
+	}
+yy870:
+	yych = *++p;
+	if (yych == 'U') goto yy871;
+	if (yych != 'u') goto yy516;
+yy871:
+	yych = *++p;
+	if (yych == 'T') goto yy519;
+	if (yych == 't') goto yy519;
+	goto yy516;
+yy872:
+	yych = *++p;
+	if (yych == 'P') goto yy519;
+	if (yych == 'p') goto yy519;
+	goto yy516;
+yy873:
+	yych = *++p;
+	if (yych == 'U') goto yy874;
+	if (yych != 'u') goto yy516;
+yy874:
+	yych = *++p;
+	if (yych == 'M') goto yy875;
+	if (yych != 'm') goto yy516;
+yy875:
+	yych = *++p;
+	if (yych == 'X') goto yy876;
+	if (yych != 'x') goto yy516;
+yy876:
+	yych = *++p;
+	if (yych == 'T') goto yy877;
+	if (yych != 't') goto yy516;
+yy877:
+	yych = *++p;
+	if (yych == 'R') goto yy878;
+	if (yych != 'r') goto yy516;
+yy878:
+	yych = *++p;
+	if (yych == 'A') goto yy519;
+	if (yych == 'a') goto yy519;
+	goto yy516;
+yy879:
+	yych = *++p;
+	if (yych == 'A') goto yy880;
+	if (yych != 'a') goto yy516;
+yy880:
+	yych = *++p;
+	if (yych == 'C') goto yy881;
+	if (yych != 'c') goto yy516;
+yy881:
+	yych = *++p;
+	if (yych == 'H') goto yy882;
+	if (yych != 'h') goto yy516;
+yy882:
+	yych = *++p;
+	if (yych == 'M') goto yy883;
+	if (yych != 'm') goto yy516;
+yy883:
+	yych = *++p;
+	if (yych == 'E') goto yy884;
+	if (yych != 'e') goto yy516;
+yy884:
+	yych = *++p;
+	if (yych == 'N') goto yy885;
+	if (yych != 'n') goto yy516;
+yy885:
+	yych = *++p;
+	if (yych == 'T') goto yy519;
+	if (yych == 't') goto yy519;
+	goto yy516;
+yy886:
+	yych = *++p;
+	if (yych == 'S') goto yy519;
+	if (yych == 's') goto yy519;
+	goto yy516;
+yy887:
+	yych = *++p;
+	if (yych <= 'V') {
+		if (yych == 'R') goto yy519;
+		if (yych <= 'U') goto yy516;
+	} else {
+		if (yych <= 'r') {
+			if (yych <= 'q') goto yy516;
+			goto yy519;
+		} else {
+			if (yych != 'v') goto yy516;
+		}
+	}
+	yych = *++p;
+	if (yych == 'A') goto yy889;
+	if (yych != 'a') goto yy516;
+yy889:
+	yych = *++p;
+	if (yych == 'S') goto yy890;
+	if (yych != 's') goto yy516;
+yy890:
+	yych = *++p;
+	if (yych == 'C') goto yy891;
+	if (yych != 'c') goto yy516;
+yy891:
+	yych = *++p;
+	if (yych == 'R') goto yy892;
+	if (yych != 'r') goto yy516;
+yy892:
+	yych = *++p;
+	if (yych == 'I') goto yy893;
+	if (yych != 'i') goto yy516;
+yy893:
+	yych = *++p;
+	if (yych == 'P') goto yy894;
+	if (yych != 'p') goto yy516;
+yy894:
+	yych = *++p;
+	if (yych == 'T') goto yy519;
+	if (yych == 't') goto yy519;
+	goto yy516;
+yy895:
+	yych = *++p;
+	if (yych == 'B') goto yy519;
+	if (yych == 'b') goto yy519;
+	goto yy516;
+yy896:
+	yych = *++p;
+	if (yych == 'N') goto yy519;
+	if (yych == 'n') goto yy519;
+	goto yy516;
+yy897:
+	yych = *++p;
+	if (yych == 'N') goto yy904;
+	if (yych == 'n') goto yy904;
+	goto yy516;
+yy898:
+	yych = *++p;
+	if (yych == 'S') goto yy519;
+	if (yych == 's') goto yy519;
+	goto yy516;
+yy899:
+	yych = *++p;
+	if (yych == 'C') goto yy903;
+	if (yych == 'c') goto yy903;
+	goto yy516;
+yy900:
+	yych = *++p;
+	if (yych <= 'V') {
+		if (yych == 'T') goto yy902;
+		if (yych <= 'U') goto yy516;
+		goto yy519;
+	} else {
+		if (yych <= 't') {
+			if (yych <= 's') goto yy516;
+			goto yy902;
+		} else {
+			if (yych == 'v') goto yy519;
+			goto yy516;
+		}
+	}
+yy901:
+	yych = *++p;
+	if (yych == 'I') goto yy519;
+	if (yych == 'i') goto yy519;
+	goto yy516;
+yy902:
+	yych = *++p;
+	if (yych == 'A') goto yy519;
+	if (yych == 'a') goto yy519;
+	goto yy516;
+yy903:
+	yych = *++p;
+	if (yych == 'T') goto yy519;
+	if (yych == 't') goto yy519;
+	goto yy516;
+yy904:
+	yych = *++p;
+	if (yych == 'A') goto yy905;
+	if (yych != 'a') goto yy516;
+yy905:
+	yych = *++p;
+	if (yych != '-') goto yy516;
+	yych = *++p;
+	if (yych == 'P') goto yy907;
+	if (yych != 'p') goto yy516;
+yy907:
+	yych = *++p;
+	if (yych == 'L') goto yy908;
+	if (yych != 'l') goto yy516;
+yy908:
+	yych = *++p;
+	if (yych == 'A') goto yy909;
+	if (yych != 'a') goto yy516;
+yy909:
+	yych = *++p;
+	if (yych == 'Y') goto yy910;
+	if (yych != 'y') goto yy516;
+yy910:
+	yych = *++p;
+	if (yych <= 'S') {
+		if (yych == 'C') goto yy911;
+		if (yych <= 'R') goto yy516;
+		goto yy912;
+	} else {
+		if (yych <= 'c') {
+			if (yych <= 'b') goto yy516;
+		} else {
+			if (yych == 's') goto yy912;
+			goto yy516;
+		}
+	}
+yy911:
+	yych = *++p;
+	if (yych == 'O') goto yy917;
+	if (yych == 'o') goto yy917;
+	goto yy516;
+yy912:
+	yych = *++p;
+	if (yych == 'I') goto yy913;
+	if (yych != 'i') goto yy516;
+yy913:
+	yych = *++p;
+	if (yych == 'N') goto yy914;
+	if (yych != 'n') goto yy516;
+yy914:
+	yych = *++p;
+	if (yych == 'G') goto yy915;
+	if (yych != 'g') goto yy516;
+yy915:
+	yych = *++p;
+	if (yych == 'L') goto yy916;
+	if (yych != 'l') goto yy516;
+yy916:
+	yych = *++p;
+	if (yych == 'E') goto yy519;
+	if (yych == 'e') goto yy519;
+	goto yy516;
+yy917:
+	yych = *++p;
+	if (yych == 'N') goto yy918;
+	if (yych != 'n') goto yy516;
+yy918:
+	yych = *++p;
+	if (yych == 'T') goto yy919;
+	if (yych != 't') goto yy516;
+yy919:
+	yych = *++p;
+	if (yych == 'A') goto yy920;
+	if (yych != 'a') goto yy516;
+yy920:
+	yych = *++p;
+	if (yych == 'I') goto yy921;
+	if (yych != 'i') goto yy516;
+yy921:
+	yych = *++p;
+	if (yych == 'N') goto yy922;
+	if (yych != 'n') goto yy516;
+yy922:
+	yych = *++p;
+	if (yych == 'E') goto yy923;
+	if (yych != 'e') goto yy516;
+yy923:
+	yych = *++p;
+	if (yych == 'R') goto yy519;
+	if (yych == 'r') goto yy519;
+	goto yy516;
+yy924:
+	yych = *++p;
+	if (yych == 'S') goto yy519;
+	if (yych == 's') goto yy519;
+	goto yy516;
+yy925:
+	yych = *++p;
+	if (yych <= 'N') {
+		if (yych <= 'A') {
+			if (yych <= '@') goto yy516;
+			goto yy947;
+		} else {
+			if (yych <= 'L') goto yy516;
+			if (yych <= 'M') goto yy948;
+			goto yy949;
+		}
+	} else {
+		if (yych <= 'l') {
+			if (yych == 'a') goto yy947;
+			goto yy516;
+		} else {
+			if (yych <= 'm') goto yy948;
+			if (yych <= 'n') goto yy949;
+			goto yy516;
+		}
+	}
+yy926:
+	yych = *++p;
+	if (yych == 'R') goto yy934;
+	if (yych == 'r') goto yy934;
+	goto yy516;
+yy927:
+	yych = *++p;
+	if (yych <= 'P') {
+		if (yych == 'L') goto yy931;
+		if (yych <= 'O') goto yy516;
+		goto yy519;
+	} else {
+		if (yych <= 'l') {
+			if (yych <= 'k') goto yy516;
+			goto yy931;
+		} else {
+			if (yych == 'p') goto yy519;
+			goto yy516;
+		}
+	}
+yy928:
+	yych = *++p;
+	if (yych == 'I') goto yy930;
+	if (yych == 'i') goto yy930;
+	goto yy516;
+yy929:
+	yych = *++p;
+	if (yych == 'D') goto yy519;
+	if (yych == 'd') goto yy519;
+	goto yy516;
+yy930:
+	yych = *++p;
+	if (yych == 'D') goto yy519;
+	if (yych == 'd') goto yy519;
+	goto yy516;
+yy931:
+	yych = *++p;
+	if (yych == 'L') goto yy932;
+	if (yych != 'l') goto yy516;
+yy932:
+	yych = *++p;
+	if (yych == 'T') goto yy933;
+	if (yych != 't') goto yy516;
+yy933:
+	yych = *++p;
+	if (yych == 'O') goto yy519;
+	if (yych == 'o') goto yy519;
+	goto yy516;
+yy934:
+	yych = *++p;
+	if (yych == 'O') goto yy935;
+	if (yych != 'o') goto yy516;
+yy935:
+	yych = *++p;
+	if (yych == 'M') goto yy936;
+	if (yych != 'm') goto yy516;
+yy936:
+	yych = *++p;
+	if (yych == 'E') goto yy937;
+	if (yych != 'e') goto yy516;
+yy937:
+	yych = *++p;
+	if (yych == '-') goto yy938;
+	if (yych == ':') goto yy520;
+	goto yy516;
+yy938:
+	yych = *++p;
+	if (yych == 'E') goto yy939;
+	if (yych != 'e') goto yy516;
+yy939:
+	yych = *++p;
+	if (yych == 'X') goto yy940;
+	if (yych != 'x') goto yy516;
+yy940:
+	yych = *++p;
+	if (yych == 'T') goto yy941;
+	if (yych != 't') goto yy516;
+yy941:
+	yych = *++p;
+	if (yych == 'E') goto yy942;
+	if (yych != 'e') goto yy516;
+yy942:
+	yych = *++p;
+	if (yych == 'N') goto yy943;
+	if (yych != 'n') goto yy516;
+yy943:
+	yych = *++p;
+	if (yych == 'S') goto yy944;
+	if (yych != 's') goto yy516;
+yy944:
+	yych = *++p;
+	if (yych == 'I') goto yy945;
+	if (yych != 'i') goto yy516;
+yy945:
+	yych = *++p;
+	if (yych == 'O') goto yy946;
+	if (yych != 'o') goto yy516;
+yy946:
+	yych = *++p;
+	if (yych == 'N') goto yy519;
+	if (yych == 'n') goto yy519;
+	goto yy516;
+yy947:
+	yych = *++p;
+	if (yych == 'P') goto yy519;
+	if (yych == 'p') goto yy519;
+	goto yy516;
+yy948:
+	yych = *++p;
+	if (yych == '-') goto yy953;
+	goto yy516;
+yy949:
+	yych = *++p;
+	if (yych == 'T') goto yy950;
+	if (yych != 't') goto yy516;
+yy950:
+	yych = *++p;
+	if (yych == 'E') goto yy951;
+	if (yych != 'e') goto yy516;
+yy951:
+	yych = *++p;
+	if (yych == 'N') goto yy952;
+	if (yych != 'n') goto yy516;
+yy952:
+	yych = *++p;
+	if (yych == 'T') goto yy519;
+	if (yych == 't') goto yy519;
+	goto yy516;
+yy953:
+	yych = *++p;
+	if (yych == 'E') goto yy954;
+	if (yych != 'e') goto yy516;
+yy954:
+	yych = *++p;
+	if (yych == 'V') goto yy955;
+	if (yych != 'v') goto yy516;
+yy955:
+	yych = *++p;
+	if (yych == 'E') goto yy956;
+	if (yych != 'e') goto yy516;
+yy956:
+	yych = *++p;
+	if (yych == 'N') goto yy957;
+	if (yych != 'n') goto yy516;
+yy957:
+	yych = *++p;
+	if (yych == 'T') goto yy958;
+	if (yych != 't') goto yy516;
+yy958:
+	yych = *++p;
+	if (yych == 'B') goto yy959;
+	if (yych != 'b') goto yy516;
+yy959:
+	yych = *++p;
+	if (yych == 'R') goto yy960;
+	if (yych != 'r') goto yy516;
+yy960:
+	yych = *++p;
+	if (yych == 'I') goto yy961;
+	if (yych != 'i') goto yy516;
+yy961:
+	yych = *++p;
+	if (yych == 'T') goto yy962;
+	if (yych != 't') goto yy516;
+yy962:
+	yych = *++p;
+	if (yych == 'E') goto yy963;
+	if (yych != 'e') goto yy516;
+yy963:
+	yych = *++p;
+	if (yych != '-') goto yy516;
+	yych = *++p;
+	if (yych == 'A') goto yy965;
+	if (yych != 'a') goto yy516;
+yy965:
+	yych = *++p;
+	if (yych == 'T') goto yy966;
+	if (yych != 't') goto yy516;
+yy966:
+	yych = *++p;
+	if (yych == 'T') goto yy967;
+	if (yych != 't') goto yy516;
+yy967:
+	yych = *++p;
+	if (yych == 'E') goto yy968;
+	if (yych != 'e') goto yy516;
+yy968:
+	yych = *++p;
+	if (yych == 'N') goto yy969;
+	if (yych != 'n') goto yy516;
+yy969:
+	yych = *++p;
+	if (yych == 'D') goto yy970;
+	if (yych != 'd') goto yy516;
+yy970:
+	yych = *++p;
+	if (yych == 'E') goto yy971;
+	if (yych != 'e') goto yy516;
+yy971:
+	++p;
+	if ((yych = *p) == 'E') goto yy519;
+	if (yych == 'e') goto yy519;
+	goto yy516;
+}
+
+}
+
+// Try to match email autolink after first <, returning num of chars matched.
+int _scan_autolink_email(const unsigned char *p)
+{
+  const unsigned char *marker = NULL;
+  const unsigned char *start = p;
+
+{
+	unsigned char yych;
+	static const unsigned char yybm[] = {
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0, 128,   0, 128, 128, 128, 128, 128, 
+		  0,   0, 128, 128,   0, 128, 128, 128, 
+		128, 128, 128, 128, 128, 128, 128, 128, 
+		128, 128,   0,   0,   0, 128,   0, 128, 
+		  0, 128, 128, 128, 128, 128, 128, 128, 
+		128, 128, 128, 128, 128, 128, 128, 128, 
+		128, 128, 128, 128, 128, 128, 128, 128, 
+		128, 128, 128,   0,   0,   0, 128, 128, 
+		128, 128, 128, 128, 128, 128, 128, 128, 
+		128, 128, 128, 128, 128, 128, 128, 128, 
+		128, 128, 128, 128, 128, 128, 128, 128, 
+		128, 128, 128, 128, 128, 128, 128,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+	};
+	yych = *p;
+	if (yych <= ',') {
+		if (yych <= '!') {
+			if (yych == '\n') goto yy974;
+			if (yych <= ' ') goto yy976;
+			goto yy975;
+		} else {
+			if (yych <= '\'') {
+				if (yych <= '"') goto yy976;
+				goto yy975;
+			} else {
+				if (yych <= ')') goto yy976;
+				if (yych <= '+') goto yy975;
+				goto yy976;
+			}
+		}
+	} else {
+		if (yych <= '?') {
+			if (yych <= '<') {
+				if (yych <= '9') goto yy975;
+				goto yy976;
+			} else {
+				if (yych == '>') goto yy976;
+				goto yy975;
+			}
+		} else {
+			if (yych <= 'Z') {
+				if (yych <= '@') goto yy976;
+				goto yy975;
+			} else {
+				if (yych <= ']') goto yy976;
+				if (yych <= '~') goto yy975;
+				goto yy976;
+			}
+		}
+	}
+yy974:
+	{ return 0; }
+yy975:
+	yych = *(marker = ++p);
+	if (yych <= ',') {
+		if (yych <= '"') {
+			if (yych == '!') goto yy980;
+			goto yy974;
+		} else {
+			if (yych <= '\'') goto yy980;
+			if (yych <= ')') goto yy974;
+			if (yych <= '+') goto yy980;
+			goto yy974;
+		}
+	} else {
+		if (yych <= '>') {
+			if (yych <= '9') goto yy980;
+			if (yych == '=') goto yy980;
+			goto yy974;
+		} else {
+			if (yych <= 'Z') goto yy980;
+			if (yych <= ']') goto yy974;
+			if (yych <= '~') goto yy980;
+			goto yy974;
+		}
+	}
+yy976:
+	yych = *++p;
+	goto yy974;
+yy977:
+	yych = *++p;
+	if (yych <= '@') {
+		if (yych <= '/') goto yy978;
+		if (yych <= '9') goto yy981;
+	} else {
+		if (yych <= 'Z') goto yy981;
+		if (yych <= '`') goto yy978;
+		if (yych <= 'z') goto yy981;
+	}
+yy978:
+	p = marker;
+	goto yy974;
+yy979:
+	++p;
+	yych = *p;
+yy980:
+	if (yybm[0+yych] & 128) {
+		goto yy979;
+	}
+	if (yych == '@') goto yy977;
+	goto yy978;
+yy981:
+	yych = *++p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy978;
+			if (yych >= '.') goto yy984;
+		} else {
+			if (yych <= '/') goto yy978;
+			if (yych <= '9') goto yy983;
+			goto yy978;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy985;
+			if (yych <= '@') goto yy978;
+			goto yy983;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy983;
+			goto yy978;
+		}
+	}
+	yych = *++p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1111;
+		if (yych <= '/') goto yy978;
+		goto yy1112;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy978;
+			goto yy1112;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1112;
+			goto yy978;
+		}
+	}
+yy983:
+	yych = *++p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy978;
+			if (yych <= '-') goto yy1111;
+		} else {
+			if (yych <= '/') goto yy978;
+			if (yych <= '9') goto yy1112;
+			goto yy978;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy985;
+			if (yych <= '@') goto yy978;
+			goto yy1112;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1112;
+			goto yy978;
+		}
+	}
+yy984:
+	++p;
+	yych = *p;
+	if (yych <= '@') {
+		if (yych <= '/') goto yy978;
+		if (yych <= '9') goto yy987;
+		goto yy978;
+	} else {
+		if (yych <= 'Z') goto yy987;
+		if (yych <= '`') goto yy978;
+		if (yych <= 'z') goto yy987;
+		goto yy978;
+	}
+yy985:
+	++p;
+	{ return (p - start); }
+yy987:
+	++p;
+	yych = *p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy978;
+			if (yych >= '.') goto yy984;
+		} else {
+			if (yych <= '/') goto yy978;
+			if (yych <= '9') goto yy989;
+			goto yy978;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy985;
+			if (yych <= '@') goto yy978;
+			goto yy989;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy989;
+			goto yy978;
+		}
+	}
+	++p;
+	yych = *p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy990;
+		if (yych <= '/') goto yy978;
+		goto yy991;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy978;
+			goto yy991;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy991;
+			goto yy978;
+		}
+	}
+yy989:
+	++p;
+	yych = *p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy978;
+			if (yych >= '.') goto yy984;
+		} else {
+			if (yych <= '/') goto yy978;
+			if (yych <= '9') goto yy991;
+			goto yy978;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy985;
+			if (yych <= '@') goto yy978;
+			goto yy991;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy991;
+			goto yy978;
+		}
+	}
+yy990:
+	++p;
+	yych = *p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy992;
+		if (yych <= '/') goto yy978;
+		goto yy993;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy978;
+			goto yy993;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy993;
+			goto yy978;
+		}
+	}
+yy991:
+	++p;
+	yych = *p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy978;
+			if (yych >= '.') goto yy984;
+		} else {
+			if (yych <= '/') goto yy978;
+			if (yych <= '9') goto yy993;
+			goto yy978;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy985;
+			if (yych <= '@') goto yy978;
+			goto yy993;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy993;
+			goto yy978;
+		}
+	}
+yy992:
+	++p;
+	yych = *p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy994;
+		if (yych <= '/') goto yy978;
+		goto yy995;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy978;
+			goto yy995;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy995;
+			goto yy978;
+		}
+	}
+yy993:
+	++p;
+	yych = *p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy978;
+			if (yych >= '.') goto yy984;
+		} else {
+			if (yych <= '/') goto yy978;
+			if (yych <= '9') goto yy995;
+			goto yy978;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy985;
+			if (yych <= '@') goto yy978;
+			goto yy995;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy995;
+			goto yy978;
+		}
+	}
+yy994:
+	++p;
+	yych = *p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy996;
+		if (yych <= '/') goto yy978;
+		goto yy997;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy978;
+			goto yy997;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy997;
+			goto yy978;
+		}
+	}
+yy995:
+	++p;
+	yych = *p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy978;
+			if (yych >= '.') goto yy984;
+		} else {
+			if (yych <= '/') goto yy978;
+			if (yych <= '9') goto yy997;
+			goto yy978;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy985;
+			if (yych <= '@') goto yy978;
+			goto yy997;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy997;
+			goto yy978;
+		}
+	}
+yy996:
+	++p;
+	yych = *p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy998;
+		if (yych <= '/') goto yy978;
+		goto yy999;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy978;
+			goto yy999;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy999;
+			goto yy978;
+		}
+	}
+yy997:
+	++p;
+	yych = *p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy978;
+			if (yych >= '.') goto yy984;
+		} else {
+			if (yych <= '/') goto yy978;
+			if (yych <= '9') goto yy999;
+			goto yy978;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy985;
+			if (yych <= '@') goto yy978;
+			goto yy999;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy999;
+			goto yy978;
+		}
+	}
+yy998:
+	++p;
+	yych = *p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1000;
+		if (yych <= '/') goto yy978;
+		goto yy1001;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy978;
+			goto yy1001;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1001;
+			goto yy978;
+		}
+	}
+yy999:
+	++p;
+	yych = *p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy978;
+			if (yych >= '.') goto yy984;
+		} else {
+			if (yych <= '/') goto yy978;
+			if (yych <= '9') goto yy1001;
+			goto yy978;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy985;
+			if (yych <= '@') goto yy978;
+			goto yy1001;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1001;
+			goto yy978;
+		}
+	}
+yy1000:
+	++p;
+	yych = *p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1002;
+		if (yych <= '/') goto yy978;
+		goto yy1003;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy978;
+			goto yy1003;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1003;
+			goto yy978;
+		}
+	}
+yy1001:
+	++p;
+	yych = *p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy978;
+			if (yych >= '.') goto yy984;
+		} else {
+			if (yych <= '/') goto yy978;
+			if (yych <= '9') goto yy1003;
+			goto yy978;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy985;
+			if (yych <= '@') goto yy978;
+			goto yy1003;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1003;
+			goto yy978;
+		}
+	}
+yy1002:
+	++p;
+	yych = *p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1004;
+		if (yych <= '/') goto yy978;
+		goto yy1005;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy978;
+			goto yy1005;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1005;
+			goto yy978;
+		}
+	}
+yy1003:
+	++p;
+	yych = *p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy978;
+			if (yych >= '.') goto yy984;
+		} else {
+			if (yych <= '/') goto yy978;
+			if (yych <= '9') goto yy1005;
+			goto yy978;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy985;
+			if (yych <= '@') goto yy978;
+			goto yy1005;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1005;
+			goto yy978;
+		}
+	}
+yy1004:
+	++p;
+	yych = *p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1006;
+		if (yych <= '/') goto yy978;
+		goto yy1007;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy978;
+			goto yy1007;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1007;
+			goto yy978;
+		}
+	}
+yy1005:
+	++p;
+	yych = *p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy978;
+			if (yych >= '.') goto yy984;
+		} else {
+			if (yych <= '/') goto yy978;
+			if (yych <= '9') goto yy1007;
+			goto yy978;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy985;
+			if (yych <= '@') goto yy978;
+			goto yy1007;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1007;
+			goto yy978;
+		}
+	}
+yy1006:
+	++p;
+	yych = *p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1008;
+		if (yych <= '/') goto yy978;
+		goto yy1009;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy978;
+			goto yy1009;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1009;
+			goto yy978;
+		}
+	}
+yy1007:
+	++p;
+	yych = *p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy978;
+			if (yych >= '.') goto yy984;
+		} else {
+			if (yych <= '/') goto yy978;
+			if (yych <= '9') goto yy1009;
+			goto yy978;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy985;
+			if (yych <= '@') goto yy978;
+			goto yy1009;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1009;
+			goto yy978;
+		}
+	}
+yy1008:
+	++p;
+	yych = *p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1010;
+		if (yych <= '/') goto yy978;
+		goto yy1011;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy978;
+			goto yy1011;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1011;
+			goto yy978;
+		}
+	}
+yy1009:
+	++p;
+	yych = *p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy978;
+			if (yych >= '.') goto yy984;
+		} else {
+			if (yych <= '/') goto yy978;
+			if (yych <= '9') goto yy1011;
+			goto yy978;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy985;
+			if (yych <= '@') goto yy978;
+			goto yy1011;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1011;
+			goto yy978;
+		}
+	}
+yy1010:
+	++p;
+	yych = *p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1012;
+		if (yych <= '/') goto yy978;
+		goto yy1013;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy978;
+			goto yy1013;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1013;
+			goto yy978;
+		}
+	}
+yy1011:
+	++p;
+	yych = *p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy978;
+			if (yych >= '.') goto yy984;
+		} else {
+			if (yych <= '/') goto yy978;
+			if (yych <= '9') goto yy1013;
+			goto yy978;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy985;
+			if (yych <= '@') goto yy978;
+			goto yy1013;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1013;
+			goto yy978;
+		}
+	}
+yy1012:
+	++p;
+	yych = *p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1014;
+		if (yych <= '/') goto yy978;
+		goto yy1015;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy978;
+			goto yy1015;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1015;
+			goto yy978;
+		}
+	}
+yy1013:
+	++p;
+	yych = *p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy978;
+			if (yych >= '.') goto yy984;
+		} else {
+			if (yych <= '/') goto yy978;
+			if (yych <= '9') goto yy1015;
+			goto yy978;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy985;
+			if (yych <= '@') goto yy978;
+			goto yy1015;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1015;
+			goto yy978;
+		}
+	}
+yy1014:
+	++p;
+	yych = *p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1016;
+		if (yych <= '/') goto yy978;
+		goto yy1017;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy978;
+			goto yy1017;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1017;
+			goto yy978;
+		}
+	}
+yy1015:
+	++p;
+	yych = *p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy978;
+			if (yych >= '.') goto yy984;
+		} else {
+			if (yych <= '/') goto yy978;
+			if (yych <= '9') goto yy1017;
+			goto yy978;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy985;
+			if (yych <= '@') goto yy978;
+			goto yy1017;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1017;
+			goto yy978;
+		}
+	}
+yy1016:
+	++p;
+	yych = *p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1018;
+		if (yych <= '/') goto yy978;
+		goto yy1019;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy978;
+			goto yy1019;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1019;
+			goto yy978;
+		}
+	}
+yy1017:
+	++p;
+	yych = *p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy978;
+			if (yych >= '.') goto yy984;
+		} else {
+			if (yych <= '/') goto yy978;
+			if (yych <= '9') goto yy1019;
+			goto yy978;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy985;
+			if (yych <= '@') goto yy978;
+			goto yy1019;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1019;
+			goto yy978;
+		}
+	}
+yy1018:
+	++p;
+	yych = *p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1020;
+		if (yych <= '/') goto yy978;
+		goto yy1021;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy978;
+			goto yy1021;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1021;
+			goto yy978;
+		}
+	}
+yy1019:
+	++p;
+	yych = *p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy978;
+			if (yych >= '.') goto yy984;
+		} else {
+			if (yych <= '/') goto yy978;
+			if (yych <= '9') goto yy1021;
+			goto yy978;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy985;
+			if (yych <= '@') goto yy978;
+			goto yy1021;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1021;
+			goto yy978;
+		}
+	}
+yy1020:
+	++p;
+	yych = *p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1022;
+		if (yych <= '/') goto yy978;
+		goto yy1023;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy978;
+			goto yy1023;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1023;
+			goto yy978;
+		}
+	}
+yy1021:
+	++p;
+	yych = *p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy978;
+			if (yych >= '.') goto yy984;
+		} else {
+			if (yych <= '/') goto yy978;
+			if (yych <= '9') goto yy1023;
+			goto yy978;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy985;
+			if (yych <= '@') goto yy978;
+			goto yy1023;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1023;
+			goto yy978;
+		}
+	}
+yy1022:
+	++p;
+	yych = *p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1024;
+		if (yych <= '/') goto yy978;
+		goto yy1025;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy978;
+			goto yy1025;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1025;
+			goto yy978;
+		}
+	}
+yy1023:
+	++p;
+	yych = *p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy978;
+			if (yych >= '.') goto yy984;
+		} else {
+			if (yych <= '/') goto yy978;
+			if (yych <= '9') goto yy1025;
+			goto yy978;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy985;
+			if (yych <= '@') goto yy978;
+			goto yy1025;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1025;
+			goto yy978;
+		}
+	}
+yy1024:
+	++p;
+	yych = *p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1026;
+		if (yych <= '/') goto yy978;
+		goto yy1027;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy978;
+			goto yy1027;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1027;
+			goto yy978;
+		}
+	}
+yy1025:
+	++p;
+	yych = *p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy978;
+			if (yych >= '.') goto yy984;
+		} else {
+			if (yych <= '/') goto yy978;
+			if (yych <= '9') goto yy1027;
+			goto yy978;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy985;
+			if (yych <= '@') goto yy978;
+			goto yy1027;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1027;
+			goto yy978;
+		}
+	}
+yy1026:
+	++p;
+	yych = *p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1028;
+		if (yych <= '/') goto yy978;
+		goto yy1029;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy978;
+			goto yy1029;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1029;
+			goto yy978;
+		}
+	}
+yy1027:
+	++p;
+	yych = *p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy978;
+			if (yych >= '.') goto yy984;
+		} else {
+			if (yych <= '/') goto yy978;
+			if (yych <= '9') goto yy1029;
+			goto yy978;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy985;
+			if (yych <= '@') goto yy978;
+			goto yy1029;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1029;
+			goto yy978;
+		}
+	}
+yy1028:
+	++p;
+	yych = *p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1030;
+		if (yych <= '/') goto yy978;
+		goto yy1031;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy978;
+			goto yy1031;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1031;
+			goto yy978;
+		}
+	}
+yy1029:
+	++p;
+	yych = *p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy978;
+			if (yych >= '.') goto yy984;
+		} else {
+			if (yych <= '/') goto yy978;
+			if (yych <= '9') goto yy1031;
+			goto yy978;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy985;
+			if (yych <= '@') goto yy978;
+			goto yy1031;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1031;
+			goto yy978;
+		}
+	}
+yy1030:
+	++p;
+	yych = *p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1032;
+		if (yych <= '/') goto yy978;
+		goto yy1033;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy978;
+			goto yy1033;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1033;
+			goto yy978;
+		}
+	}
+yy1031:
+	++p;
+	yych = *p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy978;
+			if (yych >= '.') goto yy984;
+		} else {
+			if (yych <= '/') goto yy978;
+			if (yych <= '9') goto yy1033;
+			goto yy978;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy985;
+			if (yych <= '@') goto yy978;
+			goto yy1033;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1033;
+			goto yy978;
+		}
+	}
+yy1032:
+	++p;
+	yych = *p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1034;
+		if (yych <= '/') goto yy978;
+		goto yy1035;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy978;
+			goto yy1035;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1035;
+			goto yy978;
+		}
+	}
+yy1033:
+	++p;
+	yych = *p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy978;
+			if (yych >= '.') goto yy984;
+		} else {
+			if (yych <= '/') goto yy978;
+			if (yych <= '9') goto yy1035;
+			goto yy978;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy985;
+			if (yych <= '@') goto yy978;
+			goto yy1035;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1035;
+			goto yy978;
+		}
+	}
+yy1034:
+	++p;
+	yych = *p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1036;
+		if (yych <= '/') goto yy978;
+		goto yy1037;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy978;
+			goto yy1037;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1037;
+			goto yy978;
+		}
+	}
+yy1035:
+	++p;
+	yych = *p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy978;
+			if (yych >= '.') goto yy984;
+		} else {
+			if (yych <= '/') goto yy978;
+			if (yych <= '9') goto yy1037;
+			goto yy978;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy985;
+			if (yych <= '@') goto yy978;
+			goto yy1037;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1037;
+			goto yy978;
+		}
+	}
+yy1036:
+	++p;
+	yych = *p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1038;
+		if (yych <= '/') goto yy978;
+		goto yy1039;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy978;
+			goto yy1039;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1039;
+			goto yy978;
+		}
+	}
+yy1037:
+	++p;
+	yych = *p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy978;
+			if (yych >= '.') goto yy984;
+		} else {
+			if (yych <= '/') goto yy978;
+			if (yych <= '9') goto yy1039;
+			goto yy978;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy985;
+			if (yych <= '@') goto yy978;
+			goto yy1039;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1039;
+			goto yy978;
+		}
+	}
+yy1038:
+	++p;
+	yych = *p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1040;
+		if (yych <= '/') goto yy978;
+		goto yy1041;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy978;
+			goto yy1041;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1041;
+			goto yy978;
+		}
+	}
+yy1039:
+	++p;
+	yych = *p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy978;
+			if (yych >= '.') goto yy984;
+		} else {
+			if (yych <= '/') goto yy978;
+			if (yych <= '9') goto yy1041;
+			goto yy978;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy985;
+			if (yych <= '@') goto yy978;
+			goto yy1041;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1041;
+			goto yy978;
+		}
+	}
+yy1040:
+	++p;
+	yych = *p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1042;
+		if (yych <= '/') goto yy978;
+		goto yy1043;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy978;
+			goto yy1043;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1043;
+			goto yy978;
+		}
+	}
+yy1041:
+	++p;
+	yych = *p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy978;
+			if (yych >= '.') goto yy984;
+		} else {
+			if (yych <= '/') goto yy978;
+			if (yych <= '9') goto yy1043;
+			goto yy978;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy985;
+			if (yych <= '@') goto yy978;
+			goto yy1043;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1043;
+			goto yy978;
+		}
+	}
+yy1042:
+	++p;
+	yych = *p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1044;
+		if (yych <= '/') goto yy978;
+		goto yy1045;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy978;
+			goto yy1045;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1045;
+			goto yy978;
+		}
+	}
+yy1043:
+	++p;
+	yych = *p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy978;
+			if (yych >= '.') goto yy984;
+		} else {
+			if (yych <= '/') goto yy978;
+			if (yych <= '9') goto yy1045;
+			goto yy978;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy985;
+			if (yych <= '@') goto yy978;
+			goto yy1045;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1045;
+			goto yy978;
+		}
+	}
+yy1044:
+	++p;
+	yych = *p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1046;
+		if (yych <= '/') goto yy978;
+		goto yy1047;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy978;
+			goto yy1047;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1047;
+			goto yy978;
+		}
+	}
+yy1045:
+	++p;
+	yych = *p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy978;
+			if (yych >= '.') goto yy984;
+		} else {
+			if (yych <= '/') goto yy978;
+			if (yych <= '9') goto yy1047;
+			goto yy978;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy985;
+			if (yych <= '@') goto yy978;
+			goto yy1047;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1047;
+			goto yy978;
+		}
+	}
+yy1046:
+	++p;
+	yych = *p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1048;
+		if (yych <= '/') goto yy978;
+		goto yy1049;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy978;
+			goto yy1049;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1049;
+			goto yy978;
+		}
+	}
+yy1047:
+	++p;
+	yych = *p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy978;
+			if (yych >= '.') goto yy984;
+		} else {
+			if (yych <= '/') goto yy978;
+			if (yych <= '9') goto yy1049;
+			goto yy978;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy985;
+			if (yych <= '@') goto yy978;
+			goto yy1049;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1049;
+			goto yy978;
+		}
+	}
+yy1048:
+	++p;
+	yych = *p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1050;
+		if (yych <= '/') goto yy978;
+		goto yy1051;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy978;
+			goto yy1051;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1051;
+			goto yy978;
+		}
+	}
+yy1049:
+	++p;
+	yych = *p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy978;
+			if (yych >= '.') goto yy984;
+		} else {
+			if (yych <= '/') goto yy978;
+			if (yych <= '9') goto yy1051;
+			goto yy978;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy985;
+			if (yych <= '@') goto yy978;
+			goto yy1051;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1051;
+			goto yy978;
+		}
+	}
+yy1050:
+	++p;
+	yych = *p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1052;
+		if (yych <= '/') goto yy978;
+		goto yy1053;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy978;
+			goto yy1053;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1053;
+			goto yy978;
+		}
+	}
+yy1051:
+	++p;
+	yych = *p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy978;
+			if (yych >= '.') goto yy984;
+		} else {
+			if (yych <= '/') goto yy978;
+			if (yych <= '9') goto yy1053;
+			goto yy978;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy985;
+			if (yych <= '@') goto yy978;
+			goto yy1053;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1053;
+			goto yy978;
+		}
+	}
+yy1052:
+	++p;
+	yych = *p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1054;
+		if (yych <= '/') goto yy978;
+		goto yy1055;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy978;
+			goto yy1055;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1055;
+			goto yy978;
+		}
+	}
+yy1053:
+	++p;
+	yych = *p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy978;
+			if (yych >= '.') goto yy984;
+		} else {
+			if (yych <= '/') goto yy978;
+			if (yych <= '9') goto yy1055;
+			goto yy978;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy985;
+			if (yych <= '@') goto yy978;
+			goto yy1055;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1055;
+			goto yy978;
+		}
+	}
+yy1054:
+	++p;
+	yych = *p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1056;
+		if (yych <= '/') goto yy978;
+		goto yy1057;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy978;
+			goto yy1057;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1057;
+			goto yy978;
+		}
+	}
+yy1055:
+	++p;
+	yych = *p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy978;
+			if (yych >= '.') goto yy984;
+		} else {
+			if (yych <= '/') goto yy978;
+			if (yych <= '9') goto yy1057;
+			goto yy978;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy985;
+			if (yych <= '@') goto yy978;
+			goto yy1057;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1057;
+			goto yy978;
+		}
+	}
+yy1056:
+	++p;
+	yych = *p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1058;
+		if (yych <= '/') goto yy978;
+		goto yy1059;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy978;
+			goto yy1059;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1059;
+			goto yy978;
+		}
+	}
+yy1057:
+	++p;
+	yych = *p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy978;
+			if (yych >= '.') goto yy984;
+		} else {
+			if (yych <= '/') goto yy978;
+			if (yych <= '9') goto yy1059;
+			goto yy978;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy985;
+			if (yych <= '@') goto yy978;
+			goto yy1059;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1059;
+			goto yy978;
+		}
+	}
+yy1058:
+	++p;
+	yych = *p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1060;
+		if (yych <= '/') goto yy978;
+		goto yy1061;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy978;
+			goto yy1061;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1061;
+			goto yy978;
+		}
+	}
+yy1059:
+	++p;
+	yych = *p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy978;
+			if (yych >= '.') goto yy984;
+		} else {
+			if (yych <= '/') goto yy978;
+			if (yych <= '9') goto yy1061;
+			goto yy978;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy985;
+			if (yych <= '@') goto yy978;
+			goto yy1061;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1061;
+			goto yy978;
+		}
+	}
+yy1060:
+	++p;
+	yych = *p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1062;
+		if (yych <= '/') goto yy978;
+		goto yy1063;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy978;
+			goto yy1063;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1063;
+			goto yy978;
+		}
+	}
+yy1061:
+	++p;
+	yych = *p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy978;
+			if (yych >= '.') goto yy984;
+		} else {
+			if (yych <= '/') goto yy978;
+			if (yych <= '9') goto yy1063;
+			goto yy978;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy985;
+			if (yych <= '@') goto yy978;
+			goto yy1063;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1063;
+			goto yy978;
+		}
+	}
+yy1062:
+	++p;
+	yych = *p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1064;
+		if (yych <= '/') goto yy978;
+		goto yy1065;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy978;
+			goto yy1065;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1065;
+			goto yy978;
+		}
+	}
+yy1063:
+	++p;
+	yych = *p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy978;
+			if (yych >= '.') goto yy984;
+		} else {
+			if (yych <= '/') goto yy978;
+			if (yych <= '9') goto yy1065;
+			goto yy978;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy985;
+			if (yych <= '@') goto yy978;
+			goto yy1065;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1065;
+			goto yy978;
+		}
+	}
+yy1064:
+	++p;
+	yych = *p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1066;
+		if (yych <= '/') goto yy978;
+		goto yy1067;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy978;
+			goto yy1067;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1067;
+			goto yy978;
+		}
+	}
+yy1065:
+	++p;
+	yych = *p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy978;
+			if (yych >= '.') goto yy984;
+		} else {
+			if (yych <= '/') goto yy978;
+			if (yych <= '9') goto yy1067;
+			goto yy978;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy985;
+			if (yych <= '@') goto yy978;
+			goto yy1067;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1067;
+			goto yy978;
+		}
+	}
+yy1066:
+	++p;
+	yych = *p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1068;
+		if (yych <= '/') goto yy978;
+		goto yy1069;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy978;
+			goto yy1069;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1069;
+			goto yy978;
+		}
+	}
+yy1067:
+	++p;
+	yych = *p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy978;
+			if (yych >= '.') goto yy984;
+		} else {
+			if (yych <= '/') goto yy978;
+			if (yych <= '9') goto yy1069;
+			goto yy978;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy985;
+			if (yych <= '@') goto yy978;
+			goto yy1069;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1069;
+			goto yy978;
+		}
+	}
+yy1068:
+	++p;
+	yych = *p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1070;
+		if (yych <= '/') goto yy978;
+		goto yy1071;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy978;
+			goto yy1071;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1071;
+			goto yy978;
+		}
+	}
+yy1069:
+	++p;
+	yych = *p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy978;
+			if (yych >= '.') goto yy984;
+		} else {
+			if (yych <= '/') goto yy978;
+			if (yych <= '9') goto yy1071;
+			goto yy978;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy985;
+			if (yych <= '@') goto yy978;
+			goto yy1071;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1071;
+			goto yy978;
+		}
+	}
+yy1070:
+	++p;
+	yych = *p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1072;
+		if (yych <= '/') goto yy978;
+		goto yy1073;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy978;
+			goto yy1073;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1073;
+			goto yy978;
+		}
+	}
+yy1071:
+	++p;
+	yych = *p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy978;
+			if (yych >= '.') goto yy984;
+		} else {
+			if (yych <= '/') goto yy978;
+			if (yych <= '9') goto yy1073;
+			goto yy978;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy985;
+			if (yych <= '@') goto yy978;
+			goto yy1073;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1073;
+			goto yy978;
+		}
+	}
+yy1072:
+	++p;
+	yych = *p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1074;
+		if (yych <= '/') goto yy978;
+		goto yy1075;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy978;
+			goto yy1075;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1075;
+			goto yy978;
+		}
+	}
+yy1073:
+	++p;
+	yych = *p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy978;
+			if (yych >= '.') goto yy984;
+		} else {
+			if (yych <= '/') goto yy978;
+			if (yych <= '9') goto yy1075;
+			goto yy978;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy985;
+			if (yych <= '@') goto yy978;
+			goto yy1075;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1075;
+			goto yy978;
+		}
+	}
+yy1074:
+	++p;
+	yych = *p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1076;
+		if (yych <= '/') goto yy978;
+		goto yy1077;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy978;
+			goto yy1077;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1077;
+			goto yy978;
+		}
+	}
+yy1075:
+	++p;
+	yych = *p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy978;
+			if (yych >= '.') goto yy984;
+		} else {
+			if (yych <= '/') goto yy978;
+			if (yych <= '9') goto yy1077;
+			goto yy978;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy985;
+			if (yych <= '@') goto yy978;
+			goto yy1077;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1077;
+			goto yy978;
+		}
+	}
+yy1076:
+	++p;
+	yych = *p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1078;
+		if (yych <= '/') goto yy978;
+		goto yy1079;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy978;
+			goto yy1079;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1079;
+			goto yy978;
+		}
+	}
+yy1077:
+	++p;
+	yych = *p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy978;
+			if (yych >= '.') goto yy984;
+		} else {
+			if (yych <= '/') goto yy978;
+			if (yych <= '9') goto yy1079;
+			goto yy978;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy985;
+			if (yych <= '@') goto yy978;
+			goto yy1079;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1079;
+			goto yy978;
+		}
+	}
+yy1078:
+	++p;
+	yych = *p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1080;
+		if (yych <= '/') goto yy978;
+		goto yy1081;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy978;
+			goto yy1081;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1081;
+			goto yy978;
+		}
+	}
+yy1079:
+	++p;
+	yych = *p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy978;
+			if (yych >= '.') goto yy984;
+		} else {
+			if (yych <= '/') goto yy978;
+			if (yych <= '9') goto yy1081;
+			goto yy978;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy985;
+			if (yych <= '@') goto yy978;
+			goto yy1081;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1081;
+			goto yy978;
+		}
+	}
+yy1080:
+	++p;
+	yych = *p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1082;
+		if (yych <= '/') goto yy978;
+		goto yy1083;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy978;
+			goto yy1083;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1083;
+			goto yy978;
+		}
+	}
+yy1081:
+	++p;
+	yych = *p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy978;
+			if (yych >= '.') goto yy984;
+		} else {
+			if (yych <= '/') goto yy978;
+			if (yych <= '9') goto yy1083;
+			goto yy978;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy985;
+			if (yych <= '@') goto yy978;
+			goto yy1083;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1083;
+			goto yy978;
+		}
+	}
+yy1082:
+	++p;
+	yych = *p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1084;
+		if (yych <= '/') goto yy978;
+		goto yy1085;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy978;
+			goto yy1085;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1085;
+			goto yy978;
+		}
+	}
+yy1083:
+	++p;
+	yych = *p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy978;
+			if (yych >= '.') goto yy984;
+		} else {
+			if (yych <= '/') goto yy978;
+			if (yych <= '9') goto yy1085;
+			goto yy978;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy985;
+			if (yych <= '@') goto yy978;
+			goto yy1085;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1085;
+			goto yy978;
+		}
+	}
+yy1084:
+	++p;
+	yych = *p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1086;
+		if (yych <= '/') goto yy978;
+		goto yy1087;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy978;
+			goto yy1087;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1087;
+			goto yy978;
+		}
+	}
+yy1085:
+	++p;
+	yych = *p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy978;
+			if (yych >= '.') goto yy984;
+		} else {
+			if (yych <= '/') goto yy978;
+			if (yych <= '9') goto yy1087;
+			goto yy978;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy985;
+			if (yych <= '@') goto yy978;
+			goto yy1087;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1087;
+			goto yy978;
+		}
+	}
+yy1086:
+	++p;
+	yych = *p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1088;
+		if (yych <= '/') goto yy978;
+		goto yy1089;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy978;
+			goto yy1089;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1089;
+			goto yy978;
+		}
+	}
+yy1087:
+	++p;
+	yych = *p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy978;
+			if (yych >= '.') goto yy984;
+		} else {
+			if (yych <= '/') goto yy978;
+			if (yych <= '9') goto yy1089;
+			goto yy978;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy985;
+			if (yych <= '@') goto yy978;
+			goto yy1089;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1089;
+			goto yy978;
+		}
+	}
+yy1088:
+	++p;
+	yych = *p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1090;
+		if (yych <= '/') goto yy978;
+		goto yy1091;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy978;
+			goto yy1091;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1091;
+			goto yy978;
+		}
+	}
+yy1089:
+	++p;
+	yych = *p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy978;
+			if (yych >= '.') goto yy984;
+		} else {
+			if (yych <= '/') goto yy978;
+			if (yych <= '9') goto yy1091;
+			goto yy978;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy985;
+			if (yych <= '@') goto yy978;
+			goto yy1091;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1091;
+			goto yy978;
+		}
+	}
+yy1090:
+	++p;
+	yych = *p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1092;
+		if (yych <= '/') goto yy978;
+		goto yy1093;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy978;
+			goto yy1093;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1093;
+			goto yy978;
+		}
+	}
+yy1091:
+	++p;
+	yych = *p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy978;
+			if (yych >= '.') goto yy984;
+		} else {
+			if (yych <= '/') goto yy978;
+			if (yych <= '9') goto yy1093;
+			goto yy978;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy985;
+			if (yych <= '@') goto yy978;
+			goto yy1093;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1093;
+			goto yy978;
+		}
+	}
+yy1092:
+	++p;
+	yych = *p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1094;
+		if (yych <= '/') goto yy978;
+		goto yy1095;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy978;
+			goto yy1095;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1095;
+			goto yy978;
+		}
+	}
+yy1093:
+	++p;
+	yych = *p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy978;
+			if (yych >= '.') goto yy984;
+		} else {
+			if (yych <= '/') goto yy978;
+			if (yych <= '9') goto yy1095;
+			goto yy978;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy985;
+			if (yych <= '@') goto yy978;
+			goto yy1095;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1095;
+			goto yy978;
+		}
+	}
+yy1094:
+	++p;
+	yych = *p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1096;
+		if (yych <= '/') goto yy978;
+		goto yy1097;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy978;
+			goto yy1097;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1097;
+			goto yy978;
+		}
+	}
+yy1095:
+	++p;
+	yych = *p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy978;
+			if (yych >= '.') goto yy984;
+		} else {
+			if (yych <= '/') goto yy978;
+			if (yych <= '9') goto yy1097;
+			goto yy978;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy985;
+			if (yych <= '@') goto yy978;
+			goto yy1097;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1097;
+			goto yy978;
+		}
+	}
+yy1096:
+	++p;
+	yych = *p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1098;
+		if (yych <= '/') goto yy978;
+		goto yy1099;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy978;
+			goto yy1099;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1099;
+			goto yy978;
+		}
+	}
+yy1097:
+	++p;
+	yych = *p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy978;
+			if (yych >= '.') goto yy984;
+		} else {
+			if (yych <= '/') goto yy978;
+			if (yych <= '9') goto yy1099;
+			goto yy978;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy985;
+			if (yych <= '@') goto yy978;
+			goto yy1099;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1099;
+			goto yy978;
+		}
+	}
+yy1098:
+	++p;
+	yych = *p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1100;
+		if (yych <= '/') goto yy978;
+		goto yy1101;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy978;
+			goto yy1101;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1101;
+			goto yy978;
+		}
+	}
+yy1099:
+	++p;
+	yych = *p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy978;
+			if (yych >= '.') goto yy984;
+		} else {
+			if (yych <= '/') goto yy978;
+			if (yych <= '9') goto yy1101;
+			goto yy978;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy985;
+			if (yych <= '@') goto yy978;
+			goto yy1101;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1101;
+			goto yy978;
+		}
+	}
+yy1100:
+	++p;
+	yych = *p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1102;
+		if (yych <= '/') goto yy978;
+		goto yy1103;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy978;
+			goto yy1103;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1103;
+			goto yy978;
+		}
+	}
+yy1101:
+	++p;
+	yych = *p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy978;
+			if (yych >= '.') goto yy984;
+		} else {
+			if (yych <= '/') goto yy978;
+			if (yych <= '9') goto yy1103;
+			goto yy978;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy985;
+			if (yych <= '@') goto yy978;
+			goto yy1103;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1103;
+			goto yy978;
+		}
+	}
+yy1102:
+	++p;
+	yych = *p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1104;
+		if (yych <= '/') goto yy978;
+		goto yy1105;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy978;
+			goto yy1105;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1105;
+			goto yy978;
+		}
+	}
+yy1103:
+	++p;
+	yych = *p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy978;
+			if (yych >= '.') goto yy984;
+		} else {
+			if (yych <= '/') goto yy978;
+			if (yych <= '9') goto yy1105;
+			goto yy978;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy985;
+			if (yych <= '@') goto yy978;
+			goto yy1105;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1105;
+			goto yy978;
+		}
+	}
+yy1104:
+	++p;
+	yych = *p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1106;
+		if (yych <= '/') goto yy978;
+		goto yy1107;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy978;
+			goto yy1107;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1107;
+			goto yy978;
+		}
+	}
+yy1105:
+	++p;
+	yych = *p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy978;
+			if (yych >= '.') goto yy984;
+		} else {
+			if (yych <= '/') goto yy978;
+			if (yych <= '9') goto yy1107;
+			goto yy978;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy985;
+			if (yych <= '@') goto yy978;
+			goto yy1107;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1107;
+			goto yy978;
+		}
+	}
+yy1106:
+	++p;
+	yych = *p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1108;
+		if (yych <= '/') goto yy978;
+		goto yy1109;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy978;
+			goto yy1109;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1109;
+			goto yy978;
+		}
+	}
+yy1107:
+	++p;
+	yych = *p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy978;
+			if (yych >= '.') goto yy984;
+		} else {
+			if (yych <= '/') goto yy978;
+			if (yych <= '9') goto yy1109;
+			goto yy978;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy985;
+			if (yych <= '@') goto yy978;
+			goto yy1109;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1109;
+			goto yy978;
+		}
+	}
+yy1108:
+	++p;
+	yych = *p;
+	if (yych <= '@') {
+		if (yych <= '/') goto yy978;
+		if (yych <= '9') goto yy1110;
+		goto yy978;
+	} else {
+		if (yych <= 'Z') goto yy1110;
+		if (yych <= '`') goto yy978;
+		if (yych <= 'z') goto yy1110;
+		goto yy978;
+	}
+yy1109:
+	++p;
+	yych = *p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= '-') goto yy978;
+			goto yy984;
+		} else {
+			if (yych <= '/') goto yy978;
+			if (yych >= ':') goto yy978;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy985;
+			if (yych <= '@') goto yy978;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych >= '{') goto yy978;
+		}
+	}
+yy1110:
+	++p;
+	yych = *p;
+	if (yych == '.') goto yy984;
+	if (yych == '>') goto yy985;
+	goto yy978;
+yy1111:
+	yych = *++p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1113;
+		if (yych <= '/') goto yy978;
+		goto yy1114;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy978;
+			goto yy1114;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1114;
+			goto yy978;
+		}
+	}
+yy1112:
+	yych = *++p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy978;
+			if (yych >= '.') goto yy984;
+		} else {
+			if (yych <= '/') goto yy978;
+			if (yych <= '9') goto yy1114;
+			goto yy978;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy985;
+			if (yych <= '@') goto yy978;
+			goto yy1114;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1114;
+			goto yy978;
+		}
+	}
+yy1113:
+	yych = *++p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1115;
+		if (yych <= '/') goto yy978;
+		goto yy1116;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy978;
+			goto yy1116;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1116;
+			goto yy978;
+		}
+	}
+yy1114:
+	yych = *++p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy978;
+			if (yych >= '.') goto yy984;
+		} else {
+			if (yych <= '/') goto yy978;
+			if (yych <= '9') goto yy1116;
+			goto yy978;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy985;
+			if (yych <= '@') goto yy978;
+			goto yy1116;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1116;
+			goto yy978;
+		}
+	}
+yy1115:
+	yych = *++p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1117;
+		if (yych <= '/') goto yy978;
+		goto yy1118;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy978;
+			goto yy1118;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1118;
+			goto yy978;
+		}
+	}
+yy1116:
+	yych = *++p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy978;
+			if (yych >= '.') goto yy984;
+		} else {
+			if (yych <= '/') goto yy978;
+			if (yych <= '9') goto yy1118;
+			goto yy978;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy985;
+			if (yych <= '@') goto yy978;
+			goto yy1118;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1118;
+			goto yy978;
+		}
+	}
+yy1117:
+	yych = *++p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1119;
+		if (yych <= '/') goto yy978;
+		goto yy1120;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy978;
+			goto yy1120;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1120;
+			goto yy978;
+		}
+	}
+yy1118:
+	yych = *++p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy978;
+			if (yych >= '.') goto yy984;
+		} else {
+			if (yych <= '/') goto yy978;
+			if (yych <= '9') goto yy1120;
+			goto yy978;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy985;
+			if (yych <= '@') goto yy978;
+			goto yy1120;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1120;
+			goto yy978;
+		}
+	}
+yy1119:
+	yych = *++p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1121;
+		if (yych <= '/') goto yy978;
+		goto yy1122;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy978;
+			goto yy1122;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1122;
+			goto yy978;
+		}
+	}
+yy1120:
+	yych = *++p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy978;
+			if (yych >= '.') goto yy984;
+		} else {
+			if (yych <= '/') goto yy978;
+			if (yych <= '9') goto yy1122;
+			goto yy978;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy985;
+			if (yych <= '@') goto yy978;
+			goto yy1122;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1122;
+			goto yy978;
+		}
+	}
+yy1121:
+	yych = *++p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1123;
+		if (yych <= '/') goto yy978;
+		goto yy1124;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy978;
+			goto yy1124;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1124;
+			goto yy978;
+		}
+	}
+yy1122:
+	yych = *++p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy978;
+			if (yych >= '.') goto yy984;
+		} else {
+			if (yych <= '/') goto yy978;
+			if (yych <= '9') goto yy1124;
+			goto yy978;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy985;
+			if (yych <= '@') goto yy978;
+			goto yy1124;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1124;
+			goto yy978;
+		}
+	}
+yy1123:
+	yych = *++p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1125;
+		if (yych <= '/') goto yy978;
+		goto yy1126;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy978;
+			goto yy1126;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1126;
+			goto yy978;
+		}
+	}
+yy1124:
+	yych = *++p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy978;
+			if (yych >= '.') goto yy984;
+		} else {
+			if (yych <= '/') goto yy978;
+			if (yych <= '9') goto yy1126;
+			goto yy978;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy985;
+			if (yych <= '@') goto yy978;
+			goto yy1126;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1126;
+			goto yy978;
+		}
+	}
+yy1125:
+	yych = *++p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1127;
+		if (yych <= '/') goto yy978;
+		goto yy1128;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy978;
+			goto yy1128;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1128;
+			goto yy978;
+		}
+	}
+yy1126:
+	yych = *++p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy978;
+			if (yych >= '.') goto yy984;
+		} else {
+			if (yych <= '/') goto yy978;
+			if (yych <= '9') goto yy1128;
+			goto yy978;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy985;
+			if (yych <= '@') goto yy978;
+			goto yy1128;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1128;
+			goto yy978;
+		}
+	}
+yy1127:
+	yych = *++p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1129;
+		if (yych <= '/') goto yy978;
+		goto yy1130;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy978;
+			goto yy1130;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1130;
+			goto yy978;
+		}
+	}
+yy1128:
+	yych = *++p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy978;
+			if (yych >= '.') goto yy984;
+		} else {
+			if (yych <= '/') goto yy978;
+			if (yych <= '9') goto yy1130;
+			goto yy978;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy985;
+			if (yych <= '@') goto yy978;
+			goto yy1130;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1130;
+			goto yy978;
+		}
+	}
+yy1129:
+	yych = *++p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1131;
+		if (yych <= '/') goto yy978;
+		goto yy1132;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy978;
+			goto yy1132;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1132;
+			goto yy978;
+		}
+	}
+yy1130:
+	yych = *++p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy978;
+			if (yych >= '.') goto yy984;
+		} else {
+			if (yych <= '/') goto yy978;
+			if (yych <= '9') goto yy1132;
+			goto yy978;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy985;
+			if (yych <= '@') goto yy978;
+			goto yy1132;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1132;
+			goto yy978;
+		}
+	}
+yy1131:
+	yych = *++p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1133;
+		if (yych <= '/') goto yy978;
+		goto yy1134;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy978;
+			goto yy1134;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1134;
+			goto yy978;
+		}
+	}
+yy1132:
+	yych = *++p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy978;
+			if (yych >= '.') goto yy984;
+		} else {
+			if (yych <= '/') goto yy978;
+			if (yych <= '9') goto yy1134;
+			goto yy978;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy985;
+			if (yych <= '@') goto yy978;
+			goto yy1134;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1134;
+			goto yy978;
+		}
+	}
+yy1133:
+	yych = *++p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1135;
+		if (yych <= '/') goto yy978;
+		goto yy1136;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy978;
+			goto yy1136;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1136;
+			goto yy978;
+		}
+	}
+yy1134:
+	yych = *++p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy978;
+			if (yych >= '.') goto yy984;
+		} else {
+			if (yych <= '/') goto yy978;
+			if (yych <= '9') goto yy1136;
+			goto yy978;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy985;
+			if (yych <= '@') goto yy978;
+			goto yy1136;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1136;
+			goto yy978;
+		}
+	}
+yy1135:
+	yych = *++p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1137;
+		if (yych <= '/') goto yy978;
+		goto yy1138;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy978;
+			goto yy1138;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1138;
+			goto yy978;
+		}
+	}
+yy1136:
+	yych = *++p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy978;
+			if (yych >= '.') goto yy984;
+		} else {
+			if (yych <= '/') goto yy978;
+			if (yych <= '9') goto yy1138;
+			goto yy978;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy985;
+			if (yych <= '@') goto yy978;
+			goto yy1138;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1138;
+			goto yy978;
+		}
+	}
+yy1137:
+	yych = *++p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1139;
+		if (yych <= '/') goto yy978;
+		goto yy1140;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy978;
+			goto yy1140;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1140;
+			goto yy978;
+		}
+	}
+yy1138:
+	yych = *++p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy978;
+			if (yych >= '.') goto yy984;
+		} else {
+			if (yych <= '/') goto yy978;
+			if (yych <= '9') goto yy1140;
+			goto yy978;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy985;
+			if (yych <= '@') goto yy978;
+			goto yy1140;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1140;
+			goto yy978;
+		}
+	}
+yy1139:
+	yych = *++p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1141;
+		if (yych <= '/') goto yy978;
+		goto yy1142;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy978;
+			goto yy1142;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1142;
+			goto yy978;
+		}
+	}
+yy1140:
+	yych = *++p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy978;
+			if (yych >= '.') goto yy984;
+		} else {
+			if (yych <= '/') goto yy978;
+			if (yych <= '9') goto yy1142;
+			goto yy978;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy985;
+			if (yych <= '@') goto yy978;
+			goto yy1142;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1142;
+			goto yy978;
+		}
+	}
+yy1141:
+	yych = *++p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1143;
+		if (yych <= '/') goto yy978;
+		goto yy1144;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy978;
+			goto yy1144;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1144;
+			goto yy978;
+		}
+	}
+yy1142:
+	yych = *++p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy978;
+			if (yych >= '.') goto yy984;
+		} else {
+			if (yych <= '/') goto yy978;
+			if (yych <= '9') goto yy1144;
+			goto yy978;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy985;
+			if (yych <= '@') goto yy978;
+			goto yy1144;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1144;
+			goto yy978;
+		}
+	}
+yy1143:
+	yych = *++p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1145;
+		if (yych <= '/') goto yy978;
+		goto yy1146;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy978;
+			goto yy1146;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1146;
+			goto yy978;
+		}
+	}
+yy1144:
+	yych = *++p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy978;
+			if (yych >= '.') goto yy984;
+		} else {
+			if (yych <= '/') goto yy978;
+			if (yych <= '9') goto yy1146;
+			goto yy978;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy985;
+			if (yych <= '@') goto yy978;
+			goto yy1146;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1146;
+			goto yy978;
+		}
+	}
+yy1145:
+	yych = *++p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1147;
+		if (yych <= '/') goto yy978;
+		goto yy1148;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy978;
+			goto yy1148;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1148;
+			goto yy978;
+		}
+	}
+yy1146:
+	yych = *++p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy978;
+			if (yych >= '.') goto yy984;
+		} else {
+			if (yych <= '/') goto yy978;
+			if (yych <= '9') goto yy1148;
+			goto yy978;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy985;
+			if (yych <= '@') goto yy978;
+			goto yy1148;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1148;
+			goto yy978;
+		}
+	}
+yy1147:
+	yych = *++p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1149;
+		if (yych <= '/') goto yy978;
+		goto yy1150;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy978;
+			goto yy1150;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1150;
+			goto yy978;
+		}
+	}
+yy1148:
+	yych = *++p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy978;
+			if (yych >= '.') goto yy984;
+		} else {
+			if (yych <= '/') goto yy978;
+			if (yych <= '9') goto yy1150;
+			goto yy978;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy985;
+			if (yych <= '@') goto yy978;
+			goto yy1150;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1150;
+			goto yy978;
+		}
+	}
+yy1149:
+	yych = *++p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1151;
+		if (yych <= '/') goto yy978;
+		goto yy1152;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy978;
+			goto yy1152;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1152;
+			goto yy978;
+		}
+	}
+yy1150:
+	yych = *++p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy978;
+			if (yych >= '.') goto yy984;
+		} else {
+			if (yych <= '/') goto yy978;
+			if (yych <= '9') goto yy1152;
+			goto yy978;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy985;
+			if (yych <= '@') goto yy978;
+			goto yy1152;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1152;
+			goto yy978;
+		}
+	}
+yy1151:
+	yych = *++p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1153;
+		if (yych <= '/') goto yy978;
+		goto yy1154;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy978;
+			goto yy1154;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1154;
+			goto yy978;
+		}
+	}
+yy1152:
+	yych = *++p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy978;
+			if (yych >= '.') goto yy984;
+		} else {
+			if (yych <= '/') goto yy978;
+			if (yych <= '9') goto yy1154;
+			goto yy978;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy985;
+			if (yych <= '@') goto yy978;
+			goto yy1154;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1154;
+			goto yy978;
+		}
+	}
+yy1153:
+	yych = *++p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1155;
+		if (yych <= '/') goto yy978;
+		goto yy1156;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy978;
+			goto yy1156;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1156;
+			goto yy978;
+		}
+	}
+yy1154:
+	yych = *++p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy978;
+			if (yych >= '.') goto yy984;
+		} else {
+			if (yych <= '/') goto yy978;
+			if (yych <= '9') goto yy1156;
+			goto yy978;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy985;
+			if (yych <= '@') goto yy978;
+			goto yy1156;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1156;
+			goto yy978;
+		}
+	}
+yy1155:
+	yych = *++p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1157;
+		if (yych <= '/') goto yy978;
+		goto yy1158;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy978;
+			goto yy1158;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1158;
+			goto yy978;
+		}
+	}
+yy1156:
+	yych = *++p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy978;
+			if (yych >= '.') goto yy984;
+		} else {
+			if (yych <= '/') goto yy978;
+			if (yych <= '9') goto yy1158;
+			goto yy978;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy985;
+			if (yych <= '@') goto yy978;
+			goto yy1158;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1158;
+			goto yy978;
+		}
+	}
+yy1157:
+	yych = *++p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1159;
+		if (yych <= '/') goto yy978;
+		goto yy1160;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy978;
+			goto yy1160;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1160;
+			goto yy978;
+		}
+	}
+yy1158:
+	yych = *++p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy978;
+			if (yych >= '.') goto yy984;
+		} else {
+			if (yych <= '/') goto yy978;
+			if (yych <= '9') goto yy1160;
+			goto yy978;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy985;
+			if (yych <= '@') goto yy978;
+			goto yy1160;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1160;
+			goto yy978;
+		}
+	}
+yy1159:
+	yych = *++p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1161;
+		if (yych <= '/') goto yy978;
+		goto yy1162;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy978;
+			goto yy1162;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1162;
+			goto yy978;
+		}
+	}
+yy1160:
+	yych = *++p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy978;
+			if (yych >= '.') goto yy984;
+		} else {
+			if (yych <= '/') goto yy978;
+			if (yych <= '9') goto yy1162;
+			goto yy978;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy985;
+			if (yych <= '@') goto yy978;
+			goto yy1162;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1162;
+			goto yy978;
+		}
+	}
+yy1161:
+	yych = *++p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1163;
+		if (yych <= '/') goto yy978;
+		goto yy1164;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy978;
+			goto yy1164;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1164;
+			goto yy978;
+		}
+	}
+yy1162:
+	yych = *++p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy978;
+			if (yych >= '.') goto yy984;
+		} else {
+			if (yych <= '/') goto yy978;
+			if (yych <= '9') goto yy1164;
+			goto yy978;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy985;
+			if (yych <= '@') goto yy978;
+			goto yy1164;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1164;
+			goto yy978;
+		}
+	}
+yy1163:
+	yych = *++p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1165;
+		if (yych <= '/') goto yy978;
+		goto yy1166;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy978;
+			goto yy1166;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1166;
+			goto yy978;
+		}
+	}
+yy1164:
+	yych = *++p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy978;
+			if (yych >= '.') goto yy984;
+		} else {
+			if (yych <= '/') goto yy978;
+			if (yych <= '9') goto yy1166;
+			goto yy978;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy985;
+			if (yych <= '@') goto yy978;
+			goto yy1166;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1166;
+			goto yy978;
+		}
+	}
+yy1165:
+	yych = *++p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1167;
+		if (yych <= '/') goto yy978;
+		goto yy1168;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy978;
+			goto yy1168;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1168;
+			goto yy978;
+		}
+	}
+yy1166:
+	yych = *++p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy978;
+			if (yych >= '.') goto yy984;
+		} else {
+			if (yych <= '/') goto yy978;
+			if (yych <= '9') goto yy1168;
+			goto yy978;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy985;
+			if (yych <= '@') goto yy978;
+			goto yy1168;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1168;
+			goto yy978;
+		}
+	}
+yy1167:
+	yych = *++p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1169;
+		if (yych <= '/') goto yy978;
+		goto yy1170;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy978;
+			goto yy1170;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1170;
+			goto yy978;
+		}
+	}
+yy1168:
+	yych = *++p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy978;
+			if (yych >= '.') goto yy984;
+		} else {
+			if (yych <= '/') goto yy978;
+			if (yych <= '9') goto yy1170;
+			goto yy978;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy985;
+			if (yych <= '@') goto yy978;
+			goto yy1170;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1170;
+			goto yy978;
+		}
+	}
+yy1169:
+	yych = *++p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1171;
+		if (yych <= '/') goto yy978;
+		goto yy1172;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy978;
+			goto yy1172;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1172;
+			goto yy978;
+		}
+	}
+yy1170:
+	yych = *++p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy978;
+			if (yych >= '.') goto yy984;
+		} else {
+			if (yych <= '/') goto yy978;
+			if (yych <= '9') goto yy1172;
+			goto yy978;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy985;
+			if (yych <= '@') goto yy978;
+			goto yy1172;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1172;
+			goto yy978;
+		}
+	}
+yy1171:
+	yych = *++p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1173;
+		if (yych <= '/') goto yy978;
+		goto yy1174;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy978;
+			goto yy1174;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1174;
+			goto yy978;
+		}
+	}
+yy1172:
+	yych = *++p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy978;
+			if (yych >= '.') goto yy984;
+		} else {
+			if (yych <= '/') goto yy978;
+			if (yych <= '9') goto yy1174;
+			goto yy978;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy985;
+			if (yych <= '@') goto yy978;
+			goto yy1174;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1174;
+			goto yy978;
+		}
+	}
+yy1173:
+	yych = *++p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1175;
+		if (yych <= '/') goto yy978;
+		goto yy1176;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy978;
+			goto yy1176;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1176;
+			goto yy978;
+		}
+	}
+yy1174:
+	yych = *++p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy978;
+			if (yych >= '.') goto yy984;
+		} else {
+			if (yych <= '/') goto yy978;
+			if (yych <= '9') goto yy1176;
+			goto yy978;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy985;
+			if (yych <= '@') goto yy978;
+			goto yy1176;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1176;
+			goto yy978;
+		}
+	}
+yy1175:
+	yych = *++p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1177;
+		if (yych <= '/') goto yy978;
+		goto yy1178;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy978;
+			goto yy1178;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1178;
+			goto yy978;
+		}
+	}
+yy1176:
+	yych = *++p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy978;
+			if (yych >= '.') goto yy984;
+		} else {
+			if (yych <= '/') goto yy978;
+			if (yych <= '9') goto yy1178;
+			goto yy978;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy985;
+			if (yych <= '@') goto yy978;
+			goto yy1178;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1178;
+			goto yy978;
+		}
+	}
+yy1177:
+	yych = *++p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1179;
+		if (yych <= '/') goto yy978;
+		goto yy1180;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy978;
+			goto yy1180;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1180;
+			goto yy978;
+		}
+	}
+yy1178:
+	yych = *++p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy978;
+			if (yych >= '.') goto yy984;
+		} else {
+			if (yych <= '/') goto yy978;
+			if (yych <= '9') goto yy1180;
+			goto yy978;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy985;
+			if (yych <= '@') goto yy978;
+			goto yy1180;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1180;
+			goto yy978;
+		}
+	}
+yy1179:
+	yych = *++p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1181;
+		if (yych <= '/') goto yy978;
+		goto yy1182;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy978;
+			goto yy1182;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1182;
+			goto yy978;
+		}
+	}
+yy1180:
+	yych = *++p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy978;
+			if (yych >= '.') goto yy984;
+		} else {
+			if (yych <= '/') goto yy978;
+			if (yych <= '9') goto yy1182;
+			goto yy978;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy985;
+			if (yych <= '@') goto yy978;
+			goto yy1182;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1182;
+			goto yy978;
+		}
+	}
+yy1181:
+	yych = *++p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1183;
+		if (yych <= '/') goto yy978;
+		goto yy1184;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy978;
+			goto yy1184;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1184;
+			goto yy978;
+		}
+	}
+yy1182:
+	yych = *++p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy978;
+			if (yych >= '.') goto yy984;
+		} else {
+			if (yych <= '/') goto yy978;
+			if (yych <= '9') goto yy1184;
+			goto yy978;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy985;
+			if (yych <= '@') goto yy978;
+			goto yy1184;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1184;
+			goto yy978;
+		}
+	}
+yy1183:
+	yych = *++p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1185;
+		if (yych <= '/') goto yy978;
+		goto yy1186;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy978;
+			goto yy1186;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1186;
+			goto yy978;
+		}
+	}
+yy1184:
+	yych = *++p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy978;
+			if (yych >= '.') goto yy984;
+		} else {
+			if (yych <= '/') goto yy978;
+			if (yych <= '9') goto yy1186;
+			goto yy978;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy985;
+			if (yych <= '@') goto yy978;
+			goto yy1186;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1186;
+			goto yy978;
+		}
+	}
+yy1185:
+	yych = *++p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1187;
+		if (yych <= '/') goto yy978;
+		goto yy1188;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy978;
+			goto yy1188;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1188;
+			goto yy978;
+		}
+	}
+yy1186:
+	yych = *++p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy978;
+			if (yych >= '.') goto yy984;
+		} else {
+			if (yych <= '/') goto yy978;
+			if (yych <= '9') goto yy1188;
+			goto yy978;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy985;
+			if (yych <= '@') goto yy978;
+			goto yy1188;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1188;
+			goto yy978;
+		}
+	}
+yy1187:
+	yych = *++p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1189;
+		if (yych <= '/') goto yy978;
+		goto yy1190;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy978;
+			goto yy1190;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1190;
+			goto yy978;
+		}
+	}
+yy1188:
+	yych = *++p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy978;
+			if (yych >= '.') goto yy984;
+		} else {
+			if (yych <= '/') goto yy978;
+			if (yych <= '9') goto yy1190;
+			goto yy978;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy985;
+			if (yych <= '@') goto yy978;
+			goto yy1190;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1190;
+			goto yy978;
+		}
+	}
+yy1189:
+	yych = *++p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1191;
+		if (yych <= '/') goto yy978;
+		goto yy1192;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy978;
+			goto yy1192;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1192;
+			goto yy978;
+		}
+	}
+yy1190:
+	yych = *++p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy978;
+			if (yych >= '.') goto yy984;
+		} else {
+			if (yych <= '/') goto yy978;
+			if (yych <= '9') goto yy1192;
+			goto yy978;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy985;
+			if (yych <= '@') goto yy978;
+			goto yy1192;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1192;
+			goto yy978;
+		}
+	}
+yy1191:
+	yych = *++p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1193;
+		if (yych <= '/') goto yy978;
+		goto yy1194;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy978;
+			goto yy1194;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1194;
+			goto yy978;
+		}
+	}
+yy1192:
+	yych = *++p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy978;
+			if (yych >= '.') goto yy984;
+		} else {
+			if (yych <= '/') goto yy978;
+			if (yych <= '9') goto yy1194;
+			goto yy978;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy985;
+			if (yych <= '@') goto yy978;
+			goto yy1194;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1194;
+			goto yy978;
+		}
+	}
+yy1193:
+	yych = *++p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1195;
+		if (yych <= '/') goto yy978;
+		goto yy1196;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy978;
+			goto yy1196;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1196;
+			goto yy978;
+		}
+	}
+yy1194:
+	yych = *++p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy978;
+			if (yych >= '.') goto yy984;
+		} else {
+			if (yych <= '/') goto yy978;
+			if (yych <= '9') goto yy1196;
+			goto yy978;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy985;
+			if (yych <= '@') goto yy978;
+			goto yy1196;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1196;
+			goto yy978;
+		}
+	}
+yy1195:
+	yych = *++p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1197;
+		if (yych <= '/') goto yy978;
+		goto yy1198;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy978;
+			goto yy1198;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1198;
+			goto yy978;
+		}
+	}
+yy1196:
+	yych = *++p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy978;
+			if (yych >= '.') goto yy984;
+		} else {
+			if (yych <= '/') goto yy978;
+			if (yych <= '9') goto yy1198;
+			goto yy978;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy985;
+			if (yych <= '@') goto yy978;
+			goto yy1198;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1198;
+			goto yy978;
+		}
+	}
+yy1197:
+	yych = *++p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1199;
+		if (yych <= '/') goto yy978;
+		goto yy1200;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy978;
+			goto yy1200;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1200;
+			goto yy978;
+		}
+	}
+yy1198:
+	yych = *++p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy978;
+			if (yych >= '.') goto yy984;
+		} else {
+			if (yych <= '/') goto yy978;
+			if (yych <= '9') goto yy1200;
+			goto yy978;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy985;
+			if (yych <= '@') goto yy978;
+			goto yy1200;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1200;
+			goto yy978;
+		}
+	}
+yy1199:
+	yych = *++p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1201;
+		if (yych <= '/') goto yy978;
+		goto yy1202;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy978;
+			goto yy1202;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1202;
+			goto yy978;
+		}
+	}
+yy1200:
+	yych = *++p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy978;
+			if (yych >= '.') goto yy984;
+		} else {
+			if (yych <= '/') goto yy978;
+			if (yych <= '9') goto yy1202;
+			goto yy978;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy985;
+			if (yych <= '@') goto yy978;
+			goto yy1202;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1202;
+			goto yy978;
+		}
+	}
+yy1201:
+	yych = *++p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1203;
+		if (yych <= '/') goto yy978;
+		goto yy1204;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy978;
+			goto yy1204;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1204;
+			goto yy978;
+		}
+	}
+yy1202:
+	yych = *++p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy978;
+			if (yych >= '.') goto yy984;
+		} else {
+			if (yych <= '/') goto yy978;
+			if (yych <= '9') goto yy1204;
+			goto yy978;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy985;
+			if (yych <= '@') goto yy978;
+			goto yy1204;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1204;
+			goto yy978;
+		}
+	}
+yy1203:
+	yych = *++p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1205;
+		if (yych <= '/') goto yy978;
+		goto yy1206;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy978;
+			goto yy1206;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1206;
+			goto yy978;
+		}
+	}
+yy1204:
+	yych = *++p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy978;
+			if (yych >= '.') goto yy984;
+		} else {
+			if (yych <= '/') goto yy978;
+			if (yych <= '9') goto yy1206;
+			goto yy978;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy985;
+			if (yych <= '@') goto yy978;
+			goto yy1206;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1206;
+			goto yy978;
+		}
+	}
+yy1205:
+	yych = *++p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1207;
+		if (yych <= '/') goto yy978;
+		goto yy1208;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy978;
+			goto yy1208;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1208;
+			goto yy978;
+		}
+	}
+yy1206:
+	yych = *++p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy978;
+			if (yych >= '.') goto yy984;
+		} else {
+			if (yych <= '/') goto yy978;
+			if (yych <= '9') goto yy1208;
+			goto yy978;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy985;
+			if (yych <= '@') goto yy978;
+			goto yy1208;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1208;
+			goto yy978;
+		}
+	}
+yy1207:
+	yych = *++p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1209;
+		if (yych <= '/') goto yy978;
+		goto yy1210;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy978;
+			goto yy1210;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1210;
+			goto yy978;
+		}
+	}
+yy1208:
+	yych = *++p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy978;
+			if (yych >= '.') goto yy984;
+		} else {
+			if (yych <= '/') goto yy978;
+			if (yych <= '9') goto yy1210;
+			goto yy978;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy985;
+			if (yych <= '@') goto yy978;
+			goto yy1210;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1210;
+			goto yy978;
+		}
+	}
+yy1209:
+	yych = *++p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1211;
+		if (yych <= '/') goto yy978;
+		goto yy1212;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy978;
+			goto yy1212;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1212;
+			goto yy978;
+		}
+	}
+yy1210:
+	yych = *++p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy978;
+			if (yych >= '.') goto yy984;
+		} else {
+			if (yych <= '/') goto yy978;
+			if (yych <= '9') goto yy1212;
+			goto yy978;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy985;
+			if (yych <= '@') goto yy978;
+			goto yy1212;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1212;
+			goto yy978;
+		}
+	}
+yy1211:
+	yych = *++p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1213;
+		if (yych <= '/') goto yy978;
+		goto yy1214;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy978;
+			goto yy1214;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1214;
+			goto yy978;
+		}
+	}
+yy1212:
+	yych = *++p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy978;
+			if (yych >= '.') goto yy984;
+		} else {
+			if (yych <= '/') goto yy978;
+			if (yych <= '9') goto yy1214;
+			goto yy978;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy985;
+			if (yych <= '@') goto yy978;
+			goto yy1214;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1214;
+			goto yy978;
+		}
+	}
+yy1213:
+	yych = *++p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1215;
+		if (yych <= '/') goto yy978;
+		goto yy1216;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy978;
+			goto yy1216;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1216;
+			goto yy978;
+		}
+	}
+yy1214:
+	yych = *++p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy978;
+			if (yych >= '.') goto yy984;
+		} else {
+			if (yych <= '/') goto yy978;
+			if (yych <= '9') goto yy1216;
+			goto yy978;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy985;
+			if (yych <= '@') goto yy978;
+			goto yy1216;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1216;
+			goto yy978;
+		}
+	}
+yy1215:
+	yych = *++p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1217;
+		if (yych <= '/') goto yy978;
+		goto yy1218;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy978;
+			goto yy1218;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1218;
+			goto yy978;
+		}
+	}
+yy1216:
+	yych = *++p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy978;
+			if (yych >= '.') goto yy984;
+		} else {
+			if (yych <= '/') goto yy978;
+			if (yych <= '9') goto yy1218;
+			goto yy978;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy985;
+			if (yych <= '@') goto yy978;
+			goto yy1218;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1218;
+			goto yy978;
+		}
+	}
+yy1217:
+	yych = *++p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1219;
+		if (yych <= '/') goto yy978;
+		goto yy1220;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy978;
+			goto yy1220;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1220;
+			goto yy978;
+		}
+	}
+yy1218:
+	yych = *++p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy978;
+			if (yych >= '.') goto yy984;
+		} else {
+			if (yych <= '/') goto yy978;
+			if (yych <= '9') goto yy1220;
+			goto yy978;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy985;
+			if (yych <= '@') goto yy978;
+			goto yy1220;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1220;
+			goto yy978;
+		}
+	}
+yy1219:
+	yych = *++p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1221;
+		if (yych <= '/') goto yy978;
+		goto yy1222;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy978;
+			goto yy1222;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1222;
+			goto yy978;
+		}
+	}
+yy1220:
+	yych = *++p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy978;
+			if (yych >= '.') goto yy984;
+		} else {
+			if (yych <= '/') goto yy978;
+			if (yych <= '9') goto yy1222;
+			goto yy978;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy985;
+			if (yych <= '@') goto yy978;
+			goto yy1222;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1222;
+			goto yy978;
+		}
+	}
+yy1221:
+	yych = *++p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1223;
+		if (yych <= '/') goto yy978;
+		goto yy1224;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy978;
+			goto yy1224;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1224;
+			goto yy978;
+		}
+	}
+yy1222:
+	yych = *++p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy978;
+			if (yych >= '.') goto yy984;
+		} else {
+			if (yych <= '/') goto yy978;
+			if (yych <= '9') goto yy1224;
+			goto yy978;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy985;
+			if (yych <= '@') goto yy978;
+			goto yy1224;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1224;
+			goto yy978;
+		}
+	}
+yy1223:
+	yych = *++p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1225;
+		if (yych <= '/') goto yy978;
+		goto yy1226;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy978;
+			goto yy1226;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1226;
+			goto yy978;
+		}
+	}
+yy1224:
+	yych = *++p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy978;
+			if (yych >= '.') goto yy984;
+		} else {
+			if (yych <= '/') goto yy978;
+			if (yych <= '9') goto yy1226;
+			goto yy978;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy985;
+			if (yych <= '@') goto yy978;
+			goto yy1226;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1226;
+			goto yy978;
+		}
+	}
+yy1225:
+	yych = *++p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1227;
+		if (yych <= '/') goto yy978;
+		goto yy1228;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy978;
+			goto yy1228;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1228;
+			goto yy978;
+		}
+	}
+yy1226:
+	yych = *++p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy978;
+			if (yych >= '.') goto yy984;
+		} else {
+			if (yych <= '/') goto yy978;
+			if (yych <= '9') goto yy1228;
+			goto yy978;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy985;
+			if (yych <= '@') goto yy978;
+			goto yy1228;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1228;
+			goto yy978;
+		}
+	}
+yy1227:
+	yych = *++p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1229;
+		if (yych <= '/') goto yy978;
+		goto yy1230;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy978;
+			goto yy1230;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1230;
+			goto yy978;
+		}
+	}
+yy1228:
+	yych = *++p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy978;
+			if (yych >= '.') goto yy984;
+		} else {
+			if (yych <= '/') goto yy978;
+			if (yych <= '9') goto yy1230;
+			goto yy978;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy985;
+			if (yych <= '@') goto yy978;
+			goto yy1230;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1230;
+			goto yy978;
+		}
+	}
+yy1229:
+	yych = *++p;
+	if (yych <= '@') {
+		if (yych <= '/') goto yy978;
+		if (yych <= '9') goto yy1110;
+		goto yy978;
+	} else {
+		if (yych <= 'Z') goto yy1110;
+		if (yych <= '`') goto yy978;
+		if (yych <= 'z') goto yy1110;
+		goto yy978;
+	}
+yy1230:
+	++p;
+	if ((yych = *p) <= '=') {
+		if (yych <= '.') {
+			if (yych <= '-') goto yy978;
+			goto yy984;
+		} else {
+			if (yych <= '/') goto yy978;
+			if (yych <= '9') goto yy1110;
+			goto yy978;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy985;
+			if (yych <= '@') goto yy978;
+			goto yy1110;
+		} else {
+			if (yych <= '`') goto yy978;
+			if (yych <= 'z') goto yy1110;
+			goto yy978;
+		}
+	}
+}
+
+}
+
+// Try to match an HTML tag after first <, returning num of chars matched.
+int _scan_html_tag(const unsigned char *p)
+{
+  const unsigned char *marker = NULL;
+  const unsigned char *start = p;
+
+{
+	unsigned char yych;
+	static const unsigned char yybm[] = {
+		/* table 1 .. 8: 0 */
+		  0, 230, 230, 230, 230, 230, 230, 230, 
+		230, 199, 199, 199, 199, 199, 230, 230, 
+		230, 230, 230, 230, 230, 230, 230, 230, 
+		230, 230, 230, 230, 230, 230, 230, 230, 
+		199, 230,  70, 230, 230, 230, 230, 134, 
+		230, 230, 230, 230, 230, 246, 246, 230, 
+		254, 254, 254, 254, 254, 254, 254, 254, 
+		254, 254, 246, 230, 198, 198, 196, 230, 
+		230, 254, 254, 254, 254, 254, 254, 254, 
+		254, 254, 254, 254, 254, 254, 254, 254, 
+		254, 254, 254, 254, 254, 254, 254, 254, 
+		254, 254, 254, 230, 230, 226, 230, 246, 
+		198, 254, 254, 254, 254, 254, 254, 254, 
+		254, 254, 254, 254, 254, 254, 254, 254, 
+		254, 254, 254, 254, 254, 254, 254, 254, 
+		254, 254, 254, 230, 230, 230, 230, 230, 
+		230, 230, 230, 230, 230, 230, 230, 230, 
+		230, 230, 230, 230, 230, 230, 230, 230, 
+		230, 230, 230, 230, 230, 230, 230, 230, 
+		230, 230, 230, 230, 230, 230, 230, 230, 
+		230, 230, 230, 230, 230, 230, 230, 230, 
+		230, 230, 230, 230, 230, 230, 230, 230, 
+		230, 230, 230, 230, 230, 230, 230, 230, 
+		230, 230, 230, 230, 230, 230, 230, 230, 
+		230, 230, 230, 230, 230, 230, 230, 230, 
+		230, 230, 230, 230, 230, 230, 230, 230, 
+		230, 230, 230, 230, 230, 230, 230, 230, 
+		230, 230, 230, 230, 230, 230, 230, 230, 
+		230, 230, 230, 230, 230, 230, 230, 230, 
+		230, 230, 230, 230, 230, 230, 230, 230, 
+		230, 230, 230, 230, 230, 230, 230, 230, 
+		230, 230, 230, 230, 230, 230, 230, 230, 
+		/* table 9 .. 11: 256 */
+		  0, 160, 160, 160, 160, 160, 160, 160, 
+		160, 160, 160, 160, 160, 160, 160, 160, 
+		160, 160, 160, 160, 160, 160, 160, 160, 
+		160, 160, 160, 160, 160, 160, 160, 160, 
+		160, 160, 160, 160, 160, 160, 160, 160, 
+		160, 160, 160, 160, 160,  32, 160, 160, 
+		160, 160, 160, 160, 160, 160, 160, 160, 
+		160, 160, 160, 160, 160, 160, 160, 128, 
+		160, 224, 224, 224, 224, 224, 224, 224, 
+		224, 224, 224, 224, 224, 224, 224, 224, 
+		224, 224, 224, 224, 224, 224, 224, 224, 
+		224, 224, 224, 160, 160, 160, 160, 160, 
+		160, 160, 160, 160, 160, 160, 160, 160, 
+		160, 160, 160, 160, 160, 160, 160, 160, 
+		160, 160, 160, 160, 160, 160, 160, 160, 
+		160, 160, 160, 160, 160, 160, 160, 160, 
+		160, 160, 160, 160, 160, 160, 160, 160, 
+		160, 160, 160, 160, 160, 160, 160, 160, 
+		160, 160, 160, 160, 160, 160, 160, 160, 
+		160, 160, 160, 160, 160, 160, 160, 160, 
+		160, 160, 160, 160, 160, 160, 160, 160, 
+		160, 160, 160, 160, 160, 160, 160, 160, 
+		160, 160, 160, 160, 160, 160, 160, 160, 
+		160, 160, 160, 160, 160, 160, 160, 160, 
+		160, 160, 160, 160, 160, 160, 160, 160, 
+		160, 160, 160, 160, 160, 160, 160, 160, 
+		160, 160, 160, 160, 160, 160, 160, 160, 
+		160, 160, 160, 160, 160, 160, 160, 160, 
+		160, 160, 160, 160, 160, 160, 160, 160, 
+		160, 160, 160, 160, 160, 160, 160, 160, 
+		160, 160, 160, 160, 160, 160, 160, 160, 
+		160, 160, 160, 160, 160, 160, 160, 160, 
+	};
+	yych = *p;
+	if (yych <= '/') {
+		if (yych <= ' ') {
+			if (yych != '\n') goto yy1238;
+		} else {
+			if (yych <= '!') goto yy1236;
+			if (yych <= '.') goto yy1238;
+			goto yy1235;
+		}
+	} else {
+		if (yych <= '@') {
+			if (yych == '?') goto yy1237;
+			goto yy1238;
+		} else {
+			if (yych <= 'Z') goto yy1234;
+			if (yych <= '`') goto yy1238;
+			if (yych <= 'z') goto yy1234;
+			goto yy1238;
+		}
+	}
+yy1233:
+	{ return 0; }
+yy1234:
+	yych = *(marker = ++p);
+	if (yych <= '9') {
+		if (yych <= 0x1F) {
+			if (yych <= 0x08) goto yy1233;
+			if (yych <= '\r') goto yy1275;
+			goto yy1233;
+		} else {
+			if (yych <= ' ') goto yy1275;
+			if (yych <= '.') goto yy1233;
+			if (yych <= '/') goto yy1277;
+			goto yy1273;
+		}
+	} else {
+		if (yych <= '@') {
+			if (yych == '>') goto yy1243;
+			goto yy1233;
+		} else {
+			if (yych <= 'Z') goto yy1273;
+			if (yych <= '`') goto yy1233;
+			if (yych <= 'z') goto yy1273;
+			goto yy1233;
+		}
+	}
+yy1235:
+	yych = *(marker = ++p);
+	if (yych <= '@') goto yy1233;
+	if (yych <= 'Z') goto yy1269;
+	if (yych <= '`') goto yy1233;
+	if (yych <= 'z') goto yy1269;
+	goto yy1233;
+yy1236:
+	yych = *(marker = ++p);
+	if (yybm[256+yych] & 64) {
+		goto yy1246;
+	}
+	if (yych == '-') goto yy1248;
+	if (yych == '[') goto yy1245;
+	goto yy1233;
+yy1237:
+	yych = *(marker = ++p);
+	if (yych <= 0x00) goto yy1233;
+	goto yy1240;
+yy1238:
+	yych = *++p;
+	goto yy1233;
+yy1239:
+	++p;
+	yych = *p;
+yy1240:
+	if (yybm[256+yych] & 32) {
+		goto yy1239;
+	}
+	if (yych >= 0x01) goto yy1242;
+yy1241:
+	p = marker;
+	goto yy1233;
+yy1242:
+	++p;
+	yych = *p;
+	if (yych <= 0x00) goto yy1241;
+	if (yych != '>') goto yy1239;
+yy1243:
+	++p;
+	{ return (p - start); }
+yy1245:
+	yych = *++p;
+	if (yych == 'C') goto yy1260;
+	if (yych == 'c') goto yy1260;
+	goto yy1241;
+yy1246:
+	++p;
+	yych = *p;
+	if (yybm[0+yych] & 1) {
+		goto yy1256;
+	}
+	if (yych <= '@') goto yy1241;
+	if (yych <= 'Z') goto yy1246;
+	goto yy1241;
+yy1248:
+	yych = *++p;
+	if (yych != '-') goto yy1241;
+	yych = *++p;
+	if (yych == '-') goto yy1250;
+	if (yych == '>') goto yy1241;
+	goto yy1252;
+yy1250:
+	yych = *++p;
+	if (yych == '-') goto yy1255;
+	if (yych == '>') goto yy1241;
+	goto yy1252;
+yy1251:
+	++p;
+	yych = *p;
+yy1252:
+	if (yybm[256+yych] & 128) {
+		goto yy1251;
+	}
+	if (yych <= 0x00) goto yy1241;
+	++p;
+	yych = *p;
+	if (yybm[256+yych] & 128) {
+		goto yy1251;
+	}
+	if (yych <= 0x00) goto yy1241;
+	yych = *++p;
+	if (yych == '>') goto yy1243;
+	goto yy1241;
+yy1255:
+	yych = *++p;
+	if (yych == '>') goto yy1243;
+	goto yy1241;
+yy1256:
+	++p;
+	yych = *p;
+	if (yybm[0+yych] & 1) {
+		goto yy1256;
+	}
+	if (yych <= 0x00) goto yy1241;
+	if (yych == '>') goto yy1243;
+yy1258:
+	++p;
+	yych = *p;
+	if (yybm[0+yych] & 2) {
+		goto yy1258;
+	}
+	if (yych <= 0x00) goto yy1241;
+	goto yy1243;
+yy1260:
+	yych = *++p;
+	if (yych == 'D') goto yy1261;
+	if (yych != 'd') goto yy1241;
+yy1261:
+	yych = *++p;
+	if (yych == 'A') goto yy1262;
+	if (yych != 'a') goto yy1241;
+yy1262:
+	yych = *++p;
+	if (yych == 'T') goto yy1263;
+	if (yych != 't') goto yy1241;
+yy1263:
+	yych = *++p;
+	if (yych == 'A') goto yy1264;
+	if (yych != 'a') goto yy1241;
+yy1264:
+	yych = *++p;
+	if (yych != '[') goto yy1241;
+yy1265:
+	++p;
+	yych = *p;
+	if (yybm[0+yych] & 4) {
+		goto yy1265;
+	}
+	if (yych <= 0x00) goto yy1241;
+	++p;
+	yych = *p;
+	if (yybm[0+yych] & 4) {
+		goto yy1265;
+	}
+	if (yych <= 0x00) goto yy1241;
+	++p;
+	yych = *p;
+	if (yych <= 0x00) goto yy1241;
+	if (yych == '>') goto yy1243;
+	goto yy1265;
+yy1269:
+	++p;
+	yych = *p;
+	if (yybm[0+yych] & 8) {
+		goto yy1269;
+	}
+	if (yych <= 0x1F) {
+		if (yych <= 0x08) goto yy1241;
+		if (yych >= 0x0E) goto yy1241;
+	} else {
+		if (yych <= ' ') goto yy1271;
+		if (yych == '>') goto yy1243;
+		goto yy1241;
+	}
+yy1271:
+	++p;
+	yych = *p;
+	if (yych <= 0x1F) {
+		if (yych <= 0x08) goto yy1241;
+		if (yych <= '\r') goto yy1271;
+		goto yy1241;
+	} else {
+		if (yych <= ' ') goto yy1271;
+		if (yych == '>') goto yy1243;
+		goto yy1241;
+	}
+yy1273:
+	++p;
+	yych = *p;
+	if (yych <= '9') {
+		if (yych <= 0x1F) {
+			if (yych <= 0x08) goto yy1241;
+			if (yych >= 0x0E) goto yy1241;
+		} else {
+			if (yych <= ' ') goto yy1275;
+			if (yych <= '.') goto yy1241;
+			if (yych <= '/') goto yy1277;
+			goto yy1273;
+		}
+	} else {
+		if (yych <= '@') {
+			if (yych == '>') goto yy1243;
+			goto yy1241;
+		} else {
+			if (yych <= 'Z') goto yy1273;
+			if (yych <= '`') goto yy1241;
+			if (yych <= 'z') goto yy1273;
+			goto yy1241;
+		}
+	}
+yy1275:
+	++p;
+	yych = *p;
+	if (yych <= ':') {
+		if (yych <= ' ') {
+			if (yych <= 0x08) goto yy1241;
+			if (yych <= '\r') goto yy1275;
+			if (yych <= 0x1F) goto yy1241;
+			goto yy1275;
+		} else {
+			if (yych == '/') goto yy1277;
+			if (yych <= '9') goto yy1241;
+			goto yy1278;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych == '>') goto yy1243;
+			if (yych <= '@') goto yy1241;
+			goto yy1278;
+		} else {
+			if (yych <= '_') {
+				if (yych <= '^') goto yy1241;
+				goto yy1278;
+			} else {
+				if (yych <= '`') goto yy1241;
+				if (yych <= 'z') goto yy1278;
+				goto yy1241;
+			}
+		}
+	}
+yy1277:
+	yych = *++p;
+	if (yych == '>') goto yy1243;
+	goto yy1241;
+yy1278:
+	++p;
+	yych = *p;
+	if (yybm[0+yych] & 16) {
+		goto yy1278;
+	}
+	if (yych <= '.') {
+		if (yych <= '\r') {
+			if (yych <= 0x08) goto yy1241;
+		} else {
+			if (yych != ' ') goto yy1241;
+		}
+	} else {
+		if (yych <= '<') {
+			if (yych <= '/') goto yy1277;
+			goto yy1241;
+		} else {
+			if (yych <= '=') goto yy1282;
+			if (yych <= '>') goto yy1243;
+			goto yy1241;
+		}
+	}
+yy1280:
+	++p;
+	yych = *p;
+	if (yych <= '<') {
+		if (yych <= ' ') {
+			if (yych <= 0x08) goto yy1241;
+			if (yych <= '\r') goto yy1280;
+			if (yych <= 0x1F) goto yy1241;
+			goto yy1280;
+		} else {
+			if (yych <= '/') {
+				if (yych <= '.') goto yy1241;
+				goto yy1277;
+			} else {
+				if (yych == ':') goto yy1278;
+				goto yy1241;
+			}
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '=') goto yy1282;
+			if (yych <= '>') goto yy1243;
+			if (yych <= '@') goto yy1241;
+			goto yy1278;
+		} else {
+			if (yych <= '_') {
+				if (yych <= '^') goto yy1241;
+				goto yy1278;
+			} else {
+				if (yych <= '`') goto yy1241;
+				if (yych <= 'z') goto yy1278;
+				goto yy1241;
+			}
+		}
+	}
+yy1282:
+	++p;
+	yych = *p;
+	if (yybm[0+yych] & 32) {
+		goto yy1284;
+	}
+	if (yych <= 0x00) goto yy1241;
+	if (yych <= '!') goto yy1283;
+	if (yych <= '"') goto yy1288;
+	if (yych <= ';') goto yy1286;
+	goto yy1241;
+yy1283:
+	++p;
+	yych = *p;
+	if (yybm[0+yych] & 32) {
+		goto yy1284;
+	}
+	if (yych <= '"') {
+		if (yych <= 0x00) goto yy1241;
+		if (yych <= '!') goto yy1297;
+		goto yy1288;
+	} else {
+		if (yych <= ';') goto yy1286;
+		if (yych == '>') goto yy1243;
+		goto yy1241;
+	}
+yy1284:
+	++p;
+	yych = *p;
+	if (yybm[0+yych] & 32) {
+		goto yy1284;
+	}
+	if (yych <= 0x00) goto yy1241;
+	if (yych <= '!') goto yy1291;
+	if (yych == '>') goto yy1243;
+	goto yy1241;
+yy1286:
+	++p;
+	yych = *p;
+	if (yybm[0+yych] & 64) {
+		goto yy1286;
+	}
+	if (yych <= 0x00) goto yy1241;
+	goto yy1290;
+yy1288:
+	++p;
+	yych = *p;
+	if (yybm[0+yych] & 128) {
+		goto yy1288;
+	}
+	if (yych <= 0x00) goto yy1241;
+yy1290:
+	++p;
+	yych = *p;
+	if (yych <= ' ') {
+		if (yych <= 0x08) goto yy1241;
+		if (yych <= '\r') goto yy1275;
+		if (yych <= 0x1F) goto yy1241;
+		goto yy1275;
+	} else {
+		if (yych <= '/') {
+			if (yych <= '.') goto yy1241;
+			goto yy1277;
+		} else {
+			if (yych == '>') goto yy1243;
+			goto yy1241;
+		}
+	}
+yy1291:
+	++p;
+	yych = *p;
+	if (yych <= '9') {
+		if (yych <= ' ') {
+			if (yych <= 0x08) {
+				if (yych <= 0x00) goto yy1241;
+				goto yy1284;
+			} else {
+				if (yych <= '\r') goto yy1291;
+				if (yych <= 0x1F) goto yy1284;
+				goto yy1291;
+			}
+		} else {
+			if (yych <= '"') {
+				if (yych <= '!') goto yy1284;
+				goto yy1241;
+			} else {
+				if (yych == '\'') goto yy1241;
+				goto yy1284;
+			}
+		}
+	} else {
+		if (yych <= '@') {
+			if (yych <= ';') {
+				if (yych >= ';') goto yy1284;
+			} else {
+				if (yych <= '=') goto yy1241;
+				if (yych <= '>') goto yy1243;
+				goto yy1284;
+			}
+		} else {
+			if (yych <= '_') {
+				if (yych <= 'Z') goto yy1293;
+				if (yych <= '^') goto yy1284;
+			} else {
+				if (yych <= '`') goto yy1241;
+				if (yych >= '{') goto yy1284;
+			}
+		}
+	}
+yy1293:
+	++p;
+	yych = *p;
+	if (yych <= '/') {
+		if (yych <= '!') {
+			if (yych <= '\r') {
+				if (yych <= 0x00) goto yy1241;
+				if (yych <= 0x08) goto yy1284;
+			} else {
+				if (yych != ' ') goto yy1284;
+			}
+		} else {
+			if (yych <= '\'') {
+				if (yych <= '"') goto yy1241;
+				if (yych <= '&') goto yy1284;
+				goto yy1241;
+			} else {
+				if (yych <= ',') goto yy1284;
+				if (yych <= '.') goto yy1293;
+				goto yy1284;
+			}
+		}
+	} else {
+		if (yych <= '@') {
+			if (yych <= '<') {
+				if (yych <= ':') goto yy1293;
+				if (yych <= ';') goto yy1284;
+				goto yy1241;
+			} else {
+				if (yych <= '=') goto yy1282;
+				if (yych <= '>') goto yy1243;
+				goto yy1284;
+			}
+		} else {
+			if (yych <= '_') {
+				if (yych <= 'Z') goto yy1293;
+				if (yych <= '^') goto yy1284;
+				goto yy1293;
+			} else {
+				if (yych <= '`') goto yy1241;
+				if (yych <= 'z') goto yy1293;
+				goto yy1284;
+			}
+		}
+	}
+yy1295:
+	++p;
+	yych = *p;
+	if (yych <= ':') {
+		if (yych <= ' ') {
+			if (yych <= 0x08) {
+				if (yych <= 0x00) goto yy1241;
+				goto yy1284;
+			} else {
+				if (yych <= '\r') goto yy1295;
+				if (yych <= 0x1F) goto yy1284;
+				goto yy1295;
+			}
+		} else {
+			if (yych <= '&') {
+				if (yych == '"') goto yy1241;
+				goto yy1284;
+			} else {
+				if (yych <= '\'') goto yy1241;
+				if (yych <= '9') goto yy1284;
+				goto yy1293;
+			}
+		}
+	} else {
+		if (yych <= '@') {
+			if (yych <= '<') {
+				if (yych <= ';') goto yy1284;
+				goto yy1241;
+			} else {
+				if (yych <= '=') goto yy1282;
+				if (yych <= '>') goto yy1243;
+				goto yy1284;
+			}
+		} else {
+			if (yych <= '_') {
+				if (yych <= 'Z') goto yy1293;
+				if (yych <= '^') goto yy1284;
+				goto yy1293;
+			} else {
+				if (yych <= '`') goto yy1241;
+				if (yych <= 'z') goto yy1293;
+				goto yy1284;
+			}
+		}
+	}
+yy1297:
+	++p;
+	yych = *p;
+	if (yych <= '9') {
+		if (yych <= ' ') {
+			if (yych <= 0x08) {
+				if (yych <= 0x00) goto yy1241;
+				goto yy1284;
+			} else {
+				if (yych <= '\r') goto yy1297;
+				if (yych <= 0x1F) goto yy1284;
+				goto yy1297;
+			}
+		} else {
+			if (yych <= '"') {
+				if (yych <= '!') goto yy1284;
+				goto yy1288;
+			} else {
+				if (yych == '\'') goto yy1286;
+				goto yy1284;
+			}
+		}
+	} else {
+		if (yych <= '@') {
+			if (yych <= ';') {
+				if (yych <= ':') goto yy1293;
+				goto yy1284;
+			} else {
+				if (yych <= '=') goto yy1241;
+				if (yych <= '>') goto yy1243;
+				goto yy1284;
+			}
+		} else {
+			if (yych <= '_') {
+				if (yych <= 'Z') goto yy1293;
+				if (yych <= '^') goto yy1284;
+				goto yy1293;
+			} else {
+				if (yych <= '`') goto yy1241;
+				if (yych <= 'z') goto yy1293;
+				goto yy1284;
+			}
+		}
+	}
+}
+
+}
+
+// Try to match an HTML block tag including first <,
+// returning num of chars matched.
+int _scan_html_block_tag(const unsigned char *p)
+{
+  const unsigned char *marker = NULL;
+  const unsigned char *start = p;
+
+{
+	unsigned char yych;
+	yych = *p;
+	if (yych == '\n') goto yy1301;
+	if (yych == '<') goto yy1302;
+	goto yy1303;
+yy1301:
+	{ return 0; }
+yy1302:
+	yych = *(marker = ++p);
+	switch (yych) {
+	case '!':
+	case '?':	goto yy1304;
+	case '/':	goto yy1323;
+	case 'A':
+	case 'a':	goto yy1308;
+	case 'B':
+	case 'b':	goto yy1311;
+	case 'C':
+	case 'c':	goto yy1315;
+	case 'D':
+	case 'd':	goto yy1316;
+	case 'E':
+	case 'e':	goto yy1319;
+	case 'F':
+	case 'f':	goto yy1320;
+	case 'H':
+	case 'h':	goto yy1309;
+	case 'I':
+	case 'i':	goto yy1310;
+	case 'L':
+	case 'l':	goto yy1312;
+	case 'M':
+	case 'm':	goto yy1313;
+	case 'O':
+	case 'o':	goto yy1314;
+	case 'P':
+	case 'p':	goto yy1306;
+	case 'S':
+	case 's':	goto yy1317;
+	case 'T':
+	case 't':	goto yy1318;
+	case 'U':
+	case 'u':	goto yy1321;
+	case 'V':
+	case 'v':	goto yy1322;
+	default:	goto yy1301;
+	}
+yy1303:
+	yych = *++p;
+	goto yy1301;
+yy1304:
+	++p;
+	{ return (p - start); }
+yy1306:
+	yych = *++p;
+	if (yych <= '/') {
+		if (yych <= 0x1F) {
+			if (yych <= 0x08) goto yy1307;
+			if (yych <= '\r') goto yy1467;
+		} else {
+			if (yych <= ' ') goto yy1467;
+			if (yych >= '/') goto yy1467;
+		}
+	} else {
+		if (yych <= 'Q') {
+			if (yych == '>') goto yy1467;
+		} else {
+			if (yych <= 'R') goto yy1580;
+			if (yych == 'r') goto yy1580;
+		}
+	}
+yy1307:
+	p = marker;
+	goto yy1301;
+yy1308:
+	yych = *++p;
+	if (yych <= 'S') {
+		if (yych <= 'Q') goto yy1307;
+		if (yych <= 'R') goto yy1573;
+		goto yy1572;
+	} else {
+		if (yych <= 'q') goto yy1307;
+		if (yych <= 'r') goto yy1573;
+		if (yych <= 's') goto yy1572;
+		goto yy1307;
+	}
+yy1309:
+	yych = *++p;
+	if (yych <= 'Q') {
+		if (yych <= 'D') {
+			if (yych <= '0') goto yy1307;
+			if (yych <= '6') goto yy1466;
+			goto yy1307;
+		} else {
+			if (yych <= 'E') goto yy1565;
+			if (yych == 'G') goto yy1564;
+			goto yy1307;
+		}
+	} else {
+		if (yych <= 'f') {
+			if (yych <= 'R') goto yy1466;
+			if (yych == 'e') goto yy1565;
+			goto yy1307;
+		} else {
+			if (yych <= 'g') goto yy1564;
+			if (yych == 'r') goto yy1466;
+			goto yy1307;
+		}
+	}
+yy1310:
+	yych = *++p;
+	if (yych == 'F') goto yy1560;
+	if (yych == 'f') goto yy1560;
+	goto yy1307;
+yy1311:
+	yych = *++p;
+	if (yych <= 'U') {
+		if (yych <= 'N') {
+			if (yych == 'L') goto yy1548;
+			goto yy1307;
+		} else {
+			if (yych <= 'O') goto yy1547;
+			if (yych <= 'T') goto yy1307;
+			goto yy1546;
+		}
+	} else {
+		if (yych <= 'n') {
+			if (yych == 'l') goto yy1548;
+			goto yy1307;
+		} else {
+			if (yych <= 'o') goto yy1547;
+			if (yych == 'u') goto yy1546;
+			goto yy1307;
+		}
+	}
+yy1312:
+	yych = *++p;
+	if (yych == 'I') goto yy1466;
+	if (yych == 'i') goto yy1466;
+	goto yy1307;
+yy1313:
+	yych = *++p;
+	if (yych == 'A') goto yy1545;
+	if (yych == 'a') goto yy1545;
+	goto yy1307;
+yy1314:
+	yych = *++p;
+	if (yych <= 'U') {
+		if (yych <= 'K') {
+			if (yych == 'B') goto yy1538;
+			goto yy1307;
+		} else {
+			if (yych <= 'L') goto yy1466;
+			if (yych <= 'T') goto yy1307;
+			goto yy1537;
+		}
+	} else {
+		if (yych <= 'k') {
+			if (yych == 'b') goto yy1538;
+			goto yy1307;
+		} else {
+			if (yych <= 'l') goto yy1466;
+			if (yych == 'u') goto yy1537;
+			goto yy1307;
+		}
+	}
+yy1315:
+	yych = *++p;
+	if (yych <= 'O') {
+		if (yych == 'A') goto yy1524;
+		if (yych <= 'N') goto yy1307;
+		goto yy1523;
+	} else {
+		if (yych <= 'a') {
+			if (yych <= '`') goto yy1307;
+			goto yy1524;
+		} else {
+			if (yych == 'o') goto yy1523;
+			goto yy1307;
+		}
+	}
+yy1316:
+	yych = *++p;
+	if (yych <= 'T') {
+		if (yych <= 'I') {
+			if (yych == 'D') goto yy1466;
+			if (yych <= 'H') goto yy1307;
+			goto yy1522;
+		} else {
+			if (yych == 'L') goto yy1466;
+			if (yych <= 'S') goto yy1307;
+			goto yy1466;
+		}
+	} else {
+		if (yych <= 'i') {
+			if (yych == 'd') goto yy1466;
+			if (yych <= 'h') goto yy1307;
+			goto yy1522;
+		} else {
+			if (yych <= 'l') {
+				if (yych <= 'k') goto yy1307;
+				goto yy1466;
+			} else {
+				if (yych == 't') goto yy1466;
+				goto yy1307;
+			}
+		}
+	}
+yy1317:
+	yych = *++p;
+	if (yych <= 'T') {
+		if (yych <= 'D') {
+			if (yych == 'C') goto yy1511;
+			goto yy1307;
+		} else {
+			if (yych <= 'E') goto yy1512;
+			if (yych <= 'S') goto yy1307;
+			goto yy1510;
+		}
+	} else {
+		if (yych <= 'd') {
+			if (yych == 'c') goto yy1511;
+			goto yy1307;
+		} else {
+			if (yych <= 'e') goto yy1512;
+			if (yych == 't') goto yy1510;
+			goto yy1307;
+		}
+	}
+yy1318:
+	yych = *++p;
+	switch (yych) {
+	case 'A':
+	case 'a':	goto yy1496;
+	case 'B':
+	case 'b':	goto yy1495;
+	case 'D':
+	case 'R':
+	case 'd':
+	case 'r':	goto yy1466;
+	case 'E':
+	case 'e':	goto yy1494;
+	case 'F':
+	case 'f':	goto yy1493;
+	case 'H':
+	case 'h':	goto yy1492;
+	default:	goto yy1307;
+	}
+yy1319:
+	yych = *++p;
+	if (yych == 'M') goto yy1489;
+	if (yych == 'm') goto yy1489;
+	goto yy1307;
+yy1320:
+	yych = *++p;
+	if (yych <= 'O') {
+		if (yych == 'I') goto yy1470;
+		if (yych <= 'N') goto yy1307;
+		goto yy1469;
+	} else {
+		if (yych <= 'i') {
+			if (yych <= 'h') goto yy1307;
+			goto yy1470;
+		} else {
+			if (yych == 'o') goto yy1469;
+			goto yy1307;
+		}
+	}
+yy1321:
+	yych = *++p;
+	if (yych == 'L') goto yy1466;
+	if (yych == 'l') goto yy1466;
+	goto yy1307;
+yy1322:
+	yych = *++p;
+	if (yych == 'I') goto yy1463;
+	if (yych == 'i') goto yy1463;
+	goto yy1307;
+yy1323:
+	yych = *++p;
+	switch (yych) {
+	case 'A':
+	case 'a':	goto yy1325;
+	case 'B':
+	case 'b':	goto yy1328;
+	case 'C':
+	case 'c':	goto yy1332;
+	case 'D':
+	case 'd':	goto yy1333;
+	case 'E':
+	case 'e':	goto yy1336;
+	case 'F':
+	case 'f':	goto yy1337;
+	case 'H':
+	case 'h':	goto yy1326;
+	case 'I':
+	case 'i':	goto yy1327;
+	case 'L':
+	case 'l':	goto yy1329;
+	case 'M':
+	case 'm':	goto yy1330;
+	case 'O':
+	case 'o':	goto yy1331;
+	case 'P':
+	case 'p':	goto yy1324;
+	case 'S':
+	case 's':	goto yy1334;
+	case 'T':
+	case 't':	goto yy1335;
+	case 'U':
+	case 'u':	goto yy1338;
+	case 'V':
+	case 'v':	goto yy1339;
+	default:	goto yy1307;
+	}
+yy1324:
+	yych = *++p;
+	if (yych <= '=') {
+		if (yych <= '\r') {
+			if (yych <= 0x08) goto yy1307;
+			goto yy1344;
+		} else {
+			if (yych == ' ') goto yy1344;
+			goto yy1307;
+		}
+	} else {
+		if (yych <= 'R') {
+			if (yych <= '>') goto yy1344;
+			if (yych <= 'Q') goto yy1307;
+			goto yy1457;
+		} else {
+			if (yych == 'r') goto yy1457;
+			goto yy1307;
+		}
+	}
+yy1325:
+	yych = *++p;
+	if (yych <= 'S') {
+		if (yych <= 'Q') goto yy1307;
+		if (yych <= 'R') goto yy1450;
+		goto yy1449;
+	} else {
+		if (yych <= 'q') goto yy1307;
+		if (yych <= 'r') goto yy1450;
+		if (yych <= 's') goto yy1449;
+		goto yy1307;
+	}
+yy1326:
+	yych = *++p;
+	if (yych <= 'Q') {
+		if (yych <= 'D') {
+			if (yych <= '0') goto yy1307;
+			if (yych <= '6') goto yy1343;
+			goto yy1307;
+		} else {
+			if (yych <= 'E') goto yy1442;
+			if (yych == 'G') goto yy1441;
+			goto yy1307;
+		}
+	} else {
+		if (yych <= 'f') {
+			if (yych <= 'R') goto yy1343;
+			if (yych == 'e') goto yy1442;
+			goto yy1307;
+		} else {
+			if (yych <= 'g') goto yy1441;
+			if (yych == 'r') goto yy1343;
+			goto yy1307;
+		}
+	}
+yy1327:
+	yych = *++p;
+	if (yych == 'F') goto yy1437;
+	if (yych == 'f') goto yy1437;
+	goto yy1307;
+yy1328:
+	yych = *++p;
+	if (yych <= 'U') {
+		if (yych <= 'N') {
+			if (yych == 'L') goto yy1425;
+			goto yy1307;
+		} else {
+			if (yych <= 'O') goto yy1424;
+			if (yych <= 'T') goto yy1307;
+			goto yy1423;
+		}
+	} else {
+		if (yych <= 'n') {
+			if (yych == 'l') goto yy1425;
+			goto yy1307;
+		} else {
+			if (yych <= 'o') goto yy1424;
+			if (yych == 'u') goto yy1423;
+			goto yy1307;
+		}
+	}
+yy1329:
+	yych = *++p;
+	if (yych == 'I') goto yy1343;
+	if (yych == 'i') goto yy1343;
+	goto yy1307;
+yy1330:
+	yych = *++p;
+	if (yych == 'A') goto yy1422;
+	if (yych == 'a') goto yy1422;
+	goto yy1307;
+yy1331:
+	yych = *++p;
+	if (yych <= 'U') {
+		if (yych <= 'K') {
+			if (yych == 'B') goto yy1415;
+			goto yy1307;
+		} else {
+			if (yych <= 'L') goto yy1343;
+			if (yych <= 'T') goto yy1307;
+			goto yy1414;
+		}
+	} else {
+		if (yych <= 'k') {
+			if (yych == 'b') goto yy1415;
+			goto yy1307;
+		} else {
+			if (yych <= 'l') goto yy1343;
+			if (yych == 'u') goto yy1414;
+			goto yy1307;
+		}
+	}
+yy1332:
+	yych = *++p;
+	if (yych <= 'O') {
+		if (yych == 'A') goto yy1401;
+		if (yych <= 'N') goto yy1307;
+		goto yy1400;
+	} else {
+		if (yych <= 'a') {
+			if (yych <= '`') goto yy1307;
+			goto yy1401;
+		} else {
+			if (yych == 'o') goto yy1400;
+			goto yy1307;
+		}
+	}
+yy1333:
+	yych = *++p;
+	if (yych <= 'T') {
+		if (yych <= 'I') {
+			if (yych == 'D') goto yy1343;
+			if (yych <= 'H') goto yy1307;
+			goto yy1399;
+		} else {
+			if (yych == 'L') goto yy1343;
+			if (yych <= 'S') goto yy1307;
+			goto yy1343;
+		}
+	} else {
+		if (yych <= 'i') {
+			if (yych == 'd') goto yy1343;
+			if (yych <= 'h') goto yy1307;
+			goto yy1399;
+		} else {
+			if (yych <= 'l') {
+				if (yych <= 'k') goto yy1307;
+				goto yy1343;
+			} else {
+				if (yych == 't') goto yy1343;
+				goto yy1307;
+			}
+		}
+	}
+yy1334:
+	yych = *++p;
+	if (yych <= 'T') {
+		if (yych <= 'D') {
+			if (yych == 'C') goto yy1388;
+			goto yy1307;
+		} else {
+			if (yych <= 'E') goto yy1389;
+			if (yych <= 'S') goto yy1307;
+			goto yy1387;
+		}
+	} else {
+		if (yych <= 'd') {
+			if (yych == 'c') goto yy1388;
+			goto yy1307;
+		} else {
+			if (yych <= 'e') goto yy1389;
+			if (yych == 't') goto yy1387;
+			goto yy1307;
+		}
+	}
+yy1335:
+	yych = *++p;
+	switch (yych) {
+	case 'A':
+	case 'a':	goto yy1373;
+	case 'B':
+	case 'b':	goto yy1372;
+	case 'D':
+	case 'R':
+	case 'd':
+	case 'r':	goto yy1343;
+	case 'E':
+	case 'e':	goto yy1371;
+	case 'F':
+	case 'f':	goto yy1370;
+	case 'H':
+	case 'h':	goto yy1369;
+	default:	goto yy1307;
+	}
+yy1336:
+	yych = *++p;
+	if (yych == 'M') goto yy1366;
+	if (yych == 'm') goto yy1366;
+	goto yy1307;
+yy1337:
+	yych = *++p;
+	if (yych <= 'O') {
+		if (yych == 'I') goto yy1347;
+		if (yych <= 'N') goto yy1307;
+		goto yy1346;
+	} else {
+		if (yych <= 'i') {
+			if (yych <= 'h') goto yy1307;
+			goto yy1347;
+		} else {
+			if (yych == 'o') goto yy1346;
+			goto yy1307;
+		}
+	}
+yy1338:
+	yych = *++p;
+	if (yych == 'L') goto yy1343;
+	if (yych == 'l') goto yy1343;
+	goto yy1307;
+yy1339:
+	yych = *++p;
+	if (yych == 'I') goto yy1340;
+	if (yych != 'i') goto yy1307;
+yy1340:
+	yych = *++p;
+	if (yych == 'D') goto yy1341;
+	if (yych != 'd') goto yy1307;
+yy1341:
+	yych = *++p;
+	if (yych == 'E') goto yy1342;
+	if (yych != 'e') goto yy1307;
+yy1342:
+	yych = *++p;
+	if (yych == 'O') goto yy1343;
+	if (yych != 'o') goto yy1307;
+yy1343:
+	yych = *++p;
+	if (yych <= 0x1F) {
+		if (yych <= 0x08) goto yy1307;
+		if (yych >= 0x0E) goto yy1307;
+	} else {
+		if (yych <= ' ') goto yy1344;
+		if (yych != '>') goto yy1307;
+	}
+yy1344:
+	++p;
+	{ return (p - start); }
+yy1346:
+	yych = *++p;
+	if (yych <= 'R') {
+		if (yych == 'O') goto yy1362;
+		if (yych <= 'Q') goto yy1307;
+		goto yy1363;
+	} else {
+		if (yych <= 'o') {
+			if (yych <= 'n') goto yy1307;
+			goto yy1362;
+		} else {
+			if (yych == 'r') goto yy1363;
+			goto yy1307;
+		}
+	}
+yy1347:
+	yych = *++p;
+	if (yych <= 'G') {
+		if (yych == 'E') goto yy1348;
+		if (yych <= 'F') goto yy1307;
+		goto yy1349;
+	} else {
+		if (yych <= 'e') {
+			if (yych <= 'd') goto yy1307;
+		} else {
+			if (yych == 'g') goto yy1349;
+			goto yy1307;
+		}
+	}
+yy1348:
+	yych = *++p;
+	if (yych == 'L') goto yy1358;
+	if (yych == 'l') goto yy1358;
+	goto yy1307;
+yy1349:
+	yych = *++p;
+	if (yych <= 'U') {
+		if (yych == 'C') goto yy1351;
+		if (yych <= 'T') goto yy1307;
+	} else {
+		if (yych <= 'c') {
+			if (yych <= 'b') goto yy1307;
+			goto yy1351;
+		} else {
+			if (yych != 'u') goto yy1307;
+		}
+	}
+	yych = *++p;
+	if (yych == 'R') goto yy1357;
+	if (yych == 'r') goto yy1357;
+	goto yy1307;
+yy1351:
+	yych = *++p;
+	if (yych == 'A') goto yy1352;
+	if (yych != 'a') goto yy1307;
+yy1352:
+	yych = *++p;
+	if (yych == 'P') goto yy1353;
+	if (yych != 'p') goto yy1307;
+yy1353:
+	yych = *++p;
+	if (yych == 'T') goto yy1354;
+	if (yych != 't') goto yy1307;
+yy1354:
+	yych = *++p;
+	if (yych == 'I') goto yy1355;
+	if (yych != 'i') goto yy1307;
+yy1355:
+	yych = *++p;
+	if (yych == 'O') goto yy1356;
+	if (yych != 'o') goto yy1307;
+yy1356:
+	yych = *++p;
+	if (yych == 'N') goto yy1343;
+	if (yych == 'n') goto yy1343;
+	goto yy1307;
+yy1357:
+	yych = *++p;
+	if (yych == 'E') goto yy1343;
+	if (yych == 'e') goto yy1343;
+	goto yy1307;
+yy1358:
+	yych = *++p;
+	if (yych == 'D') goto yy1359;
+	if (yych != 'd') goto yy1307;
+yy1359:
+	yych = *++p;
+	if (yych == 'S') goto yy1360;
+	if (yych != 's') goto yy1307;
+yy1360:
+	yych = *++p;
+	if (yych == 'E') goto yy1361;
+	if (yych != 'e') goto yy1307;
+yy1361:
+	yych = *++p;
+	if (yych == 'T') goto yy1343;
+	if (yych == 't') goto yy1343;
+	goto yy1307;
+yy1362:
+	yych = *++p;
+	if (yych == 'T') goto yy1364;
+	if (yych == 't') goto yy1364;
+	goto yy1307;
+yy1363:
+	yych = *++p;
+	if (yych == 'M') goto yy1343;
+	if (yych == 'm') goto yy1343;
+	goto yy1307;
+yy1364:
+	yych = *++p;
+	if (yych == 'E') goto yy1365;
+	if (yych != 'e') goto yy1307;
+yy1365:
+	yych = *++p;
+	if (yych == 'R') goto yy1343;
+	if (yych == 'r') goto yy1343;
+	goto yy1307;
+yy1366:
+	yych = *++p;
+	if (yych == 'B') goto yy1367;
+	if (yych != 'b') goto yy1307;
+yy1367:
+	yych = *++p;
+	if (yych == 'E') goto yy1368;
+	if (yych != 'e') goto yy1307;
+yy1368:
+	yych = *++p;
+	if (yych == 'D') goto yy1343;
+	if (yych == 'd') goto yy1343;
+	goto yy1307;
+yy1369:
+	yych = *++p;
+	if (yych <= '=') {
+		if (yych <= '\r') {
+			if (yych <= 0x08) goto yy1307;
+			goto yy1344;
+		} else {
+			if (yych == ' ') goto yy1344;
+			goto yy1307;
+		}
+	} else {
+		if (yych <= 'E') {
+			if (yych <= '>') goto yy1344;
+			if (yych <= 'D') goto yy1307;
+			goto yy1385;
+		} else {
+			if (yych == 'e') goto yy1385;
+			goto yy1307;
+		}
+	}
+yy1370:
+	yych = *++p;
+	if (yych == 'O') goto yy1383;
+	if (yych == 'o') goto yy1383;
+	goto yy1307;
+yy1371:
+	yych = *++p;
+	if (yych == 'X') goto yy1378;
+	if (yych == 'x') goto yy1378;
+	goto yy1307;
+yy1372:
+	yych = *++p;
+	if (yych == 'O') goto yy1376;
+	if (yych == 'o') goto yy1376;
+	goto yy1307;
+yy1373:
+	yych = *++p;
+	if (yych == 'B') goto yy1374;
+	if (yych != 'b') goto yy1307;
+yy1374:
+	yych = *++p;
+	if (yych == 'L') goto yy1375;
+	if (yych != 'l') goto yy1307;
+yy1375:
+	yych = *++p;
+	if (yych == 'E') goto yy1343;
+	if (yych == 'e') goto yy1343;
+	goto yy1307;
+yy1376:
+	yych = *++p;
+	if (yych == 'D') goto yy1377;
+	if (yych != 'd') goto yy1307;
+yy1377:
+	yych = *++p;
+	if (yych == 'Y') goto yy1343;
+	if (yych == 'y') goto yy1343;
+	goto yy1307;
+yy1378:
+	yych = *++p;
+	if (yych == 'T') goto yy1379;
+	if (yych != 't') goto yy1307;
+yy1379:
+	yych = *++p;
+	if (yych == 'A') goto yy1380;
+	if (yych != 'a') goto yy1307;
+yy1380:
+	yych = *++p;
+	if (yych == 'R') goto yy1381;
+	if (yych != 'r') goto yy1307;
+yy1381:
+	yych = *++p;
+	if (yych == 'E') goto yy1382;
+	if (yych != 'e') goto yy1307;
+yy1382:
+	yych = *++p;
+	if (yych == 'A') goto yy1343;
+	if (yych == 'a') goto yy1343;
+	goto yy1307;
+yy1383:
+	yych = *++p;
+	if (yych == 'O') goto yy1384;
+	if (yych != 'o') goto yy1307;
+yy1384:
+	yych = *++p;
+	if (yych == 'T') goto yy1343;
+	if (yych == 't') goto yy1343;
+	goto yy1307;
+yy1385:
+	yych = *++p;
+	if (yych == 'A') goto yy1386;
+	if (yych != 'a') goto yy1307;
+yy1386:
+	yych = *++p;
+	if (yych == 'D') goto yy1343;
+	if (yych == 'd') goto yy1343;
+	goto yy1307;
+yy1387:
+	yych = *++p;
+	if (yych == 'Y') goto yy1397;
+	if (yych == 'y') goto yy1397;
+	goto yy1307;
+yy1388:
+	yych = *++p;
+	if (yych == 'R') goto yy1394;
+	if (yych == 'r') goto yy1394;
+	goto yy1307;
+yy1389:
+	yych = *++p;
+	if (yych == 'C') goto yy1390;
+	if (yych != 'c') goto yy1307;
+yy1390:
+	yych = *++p;
+	if (yych == 'T') goto yy1391;
+	if (yych != 't') goto yy1307;
+yy1391:
+	yych = *++p;
+	if (yych == 'I') goto yy1392;
+	if (yych != 'i') goto yy1307;
+yy1392:
+	yych = *++p;
+	if (yych == 'O') goto yy1393;
+	if (yych != 'o') goto yy1307;
+yy1393:
+	yych = *++p;
+	if (yych == 'N') goto yy1343;
+	if (yych == 'n') goto yy1343;
+	goto yy1307;
+yy1394:
+	yych = *++p;
+	if (yych == 'I') goto yy1395;
+	if (yych != 'i') goto yy1307;
+yy1395:
+	yych = *++p;
+	if (yych == 'P') goto yy1396;
+	if (yych != 'p') goto yy1307;
+yy1396:
+	yych = *++p;
+	if (yych == 'T') goto yy1343;
+	if (yych == 't') goto yy1343;
+	goto yy1307;
+yy1397:
+	yych = *++p;
+	if (yych == 'L') goto yy1398;
+	if (yych != 'l') goto yy1307;
+yy1398:
+	yych = *++p;
+	if (yych == 'E') goto yy1343;
+	if (yych == 'e') goto yy1343;
+	goto yy1307;
+yy1399:
+	yych = *++p;
+	if (yych == 'V') goto yy1343;
+	if (yych == 'v') goto yy1343;
+	goto yy1307;
+yy1400:
+	yych = *++p;
+	if (yych == 'L') goto yy1409;
+	if (yych == 'l') goto yy1409;
+	goto yy1307;
+yy1401:
+	yych = *++p;
+	if (yych <= 'P') {
+		if (yych == 'N') goto yy1402;
+		if (yych <= 'O') goto yy1307;
+		goto yy1403;
+	} else {
+		if (yych <= 'n') {
+			if (yych <= 'm') goto yy1307;
+		} else {
+			if (yych == 'p') goto yy1403;
+			goto yy1307;
+		}
+	}
+yy1402:
+	yych = *++p;
+	if (yych == 'V') goto yy1407;
+	if (yych == 'v') goto yy1407;
+	goto yy1307;
+yy1403:
+	yych = *++p;
+	if (yych == 'T') goto yy1404;
+	if (yych != 't') goto yy1307;
+yy1404:
+	yych = *++p;
+	if (yych == 'I') goto yy1405;
+	if (yych != 'i') goto yy1307;
+yy1405:
+	yych = *++p;
+	if (yych == 'O') goto yy1406;
+	if (yych != 'o') goto yy1307;
+yy1406:
+	yych = *++p;
+	if (yych == 'N') goto yy1343;
+	if (yych == 'n') goto yy1343;
+	goto yy1307;
+yy1407:
+	yych = *++p;
+	if (yych == 'A') goto yy1408;
+	if (yych != 'a') goto yy1307;
+yy1408:
+	yych = *++p;
+	if (yych == 'S') goto yy1343;
+	if (yych == 's') goto yy1343;
+	goto yy1307;
+yy1409:
+	yych = *++p;
+	if (yych <= '=') {
+		if (yych <= '\r') {
+			if (yych <= 0x08) goto yy1307;
+			goto yy1344;
+		} else {
+			if (yych == ' ') goto yy1344;
+			goto yy1307;
+		}
+	} else {
+		if (yych <= 'G') {
+			if (yych <= '>') goto yy1344;
+			if (yych <= 'F') goto yy1307;
+		} else {
+			if (yych != 'g') goto yy1307;
+		}
+	}
+	yych = *++p;
+	if (yych == 'R') goto yy1411;
+	if (yych != 'r') goto yy1307;
+yy1411:
+	yych = *++p;
+	if (yych == 'O') goto yy1412;
+	if (yych != 'o') goto yy1307;
+yy1412:
+	yych = *++p;
+	if (yych == 'U') goto yy1413;
+	if (yych != 'u') goto yy1307;
+yy1413:
+	yych = *++p;
+	if (yych == 'P') goto yy1343;
+	if (yych == 'p') goto yy1343;
+	goto yy1307;
+yy1414:
+	yych = *++p;
+	if (yych == 'T') goto yy1419;
+	if (yych == 't') goto yy1419;
+	goto yy1307;
+yy1415:
+	yych = *++p;
+	if (yych == 'J') goto yy1416;
+	if (yych != 'j') goto yy1307;
+yy1416:
+	yych = *++p;
+	if (yych == 'E') goto yy1417;
+	if (yych != 'e') goto yy1307;
+yy1417:
+	yych = *++p;
+	if (yych == 'C') goto yy1418;
+	if (yych != 'c') goto yy1307;
+yy1418:
+	yych = *++p;
+	if (yych == 'T') goto yy1343;
+	if (yych == 't') goto yy1343;
+	goto yy1307;
+yy1419:
+	yych = *++p;
+	if (yych == 'P') goto yy1420;
+	if (yych != 'p') goto yy1307;
+yy1420:
+	yych = *++p;
+	if (yych == 'U') goto yy1421;
+	if (yych != 'u') goto yy1307;
+yy1421:
+	yych = *++p;
+	if (yych == 'T') goto yy1343;
+	if (yych == 't') goto yy1343;
+	goto yy1307;
+yy1422:
+	yych = *++p;
+	if (yych == 'P') goto yy1343;
+	if (yych == 'p') goto yy1343;
+	goto yy1307;
+yy1423:
+	yych = *++p;
+	if (yych == 'T') goto yy1434;
+	if (yych == 't') goto yy1434;
+	goto yy1307;
+yy1424:
+	yych = *++p;
+	if (yych == 'D') goto yy1433;
+	if (yych == 'd') goto yy1433;
+	goto yy1307;
+yy1425:
+	yych = *++p;
+	if (yych == 'O') goto yy1426;
+	if (yych != 'o') goto yy1307;
+yy1426:
+	yych = *++p;
+	if (yych == 'C') goto yy1427;
+	if (yych != 'c') goto yy1307;
+yy1427:
+	yych = *++p;
+	if (yych == 'K') goto yy1428;
+	if (yych != 'k') goto yy1307;
+yy1428:
+	yych = *++p;
+	if (yych == 'Q') goto yy1429;
+	if (yych != 'q') goto yy1307;
+yy1429:
+	yych = *++p;
+	if (yych == 'U') goto yy1430;
+	if (yych != 'u') goto yy1307;
+yy1430:
+	yych = *++p;
+	if (yych == 'O') goto yy1431;
+	if (yych != 'o') goto yy1307;
+yy1431:
+	yych = *++p;
+	if (yych == 'T') goto yy1432;
+	if (yych != 't') goto yy1307;
+yy1432:
+	yych = *++p;
+	if (yych == 'E') goto yy1343;
+	if (yych == 'e') goto yy1343;
+	goto yy1307;
+yy1433:
+	yych = *++p;
+	if (yych == 'Y') goto yy1343;
+	if (yych == 'y') goto yy1343;
+	goto yy1307;
+yy1434:
+	yych = *++p;
+	if (yych == 'T') goto yy1435;
+	if (yych != 't') goto yy1307;
+yy1435:
+	yych = *++p;
+	if (yych == 'O') goto yy1436;
+	if (yych != 'o') goto yy1307;
+yy1436:
+	yych = *++p;
+	if (yych == 'N') goto yy1343;
+	if (yych == 'n') goto yy1343;
+	goto yy1307;
+yy1437:
+	yych = *++p;
+	if (yych == 'R') goto yy1438;
+	if (yych != 'r') goto yy1307;
+yy1438:
+	yych = *++p;
+	if (yych == 'A') goto yy1439;
+	if (yych != 'a') goto yy1307;
+yy1439:
+	yych = *++p;
+	if (yych == 'M') goto yy1440;
+	if (yych != 'm') goto yy1307;
+yy1440:
+	yych = *++p;
+	if (yych == 'E') goto yy1343;
+	if (yych == 'e') goto yy1343;
+	goto yy1307;
+yy1441:
+	yych = *++p;
+	if (yych == 'R') goto yy1446;
+	if (yych == 'r') goto yy1446;
+	goto yy1307;
+yy1442:
+	yych = *++p;
+	if (yych == 'A') goto yy1443;
+	if (yych != 'a') goto yy1307;
+yy1443:
+	yych = *++p;
+	if (yych == 'D') goto yy1444;
+	if (yych != 'd') goto yy1307;
+yy1444:
+	yych = *++p;
+	if (yych == 'E') goto yy1445;
+	if (yych != 'e') goto yy1307;
+yy1445:
+	yych = *++p;
+	if (yych == 'R') goto yy1343;
+	if (yych == 'r') goto yy1343;
+	goto yy1307;
+yy1446:
+	yych = *++p;
+	if (yych == 'O') goto yy1447;
+	if (yych != 'o') goto yy1307;
+yy1447:
+	yych = *++p;
+	if (yych == 'U') goto yy1448;
+	if (yych != 'u') goto yy1307;
+yy1448:
+	yych = *++p;
+	if (yych == 'P') goto yy1343;
+	if (yych == 'p') goto yy1343;
+	goto yy1307;
+yy1449:
+	yych = *++p;
+	if (yych == 'I') goto yy1455;
+	if (yych == 'i') goto yy1455;
+	goto yy1307;
+yy1450:
+	yych = *++p;
+	if (yych == 'T') goto yy1451;
+	if (yych != 't') goto yy1307;
+yy1451:
+	yych = *++p;
+	if (yych == 'I') goto yy1452;
+	if (yych != 'i') goto yy1307;
+yy1452:
+	yych = *++p;
+	if (yych == 'C') goto yy1453;
+	if (yych != 'c') goto yy1307;
+yy1453:
+	yych = *++p;
+	if (yych == 'L') goto yy1454;
+	if (yych != 'l') goto yy1307;
+yy1454:
+	yych = *++p;
+	if (yych == 'E') goto yy1343;
+	if (yych == 'e') goto yy1343;
+	goto yy1307;
+yy1455:
+	yych = *++p;
+	if (yych == 'D') goto yy1456;
+	if (yych != 'd') goto yy1307;
+yy1456:
+	yych = *++p;
+	if (yych == 'E') goto yy1343;
+	if (yych == 'e') goto yy1343;
+	goto yy1307;
+yy1457:
+	yych = *++p;
+	if (yych <= 'O') {
+		if (yych == 'E') goto yy1343;
+		if (yych <= 'N') goto yy1307;
+	} else {
+		if (yych <= 'e') {
+			if (yych <= 'd') goto yy1307;
+			goto yy1343;
+		} else {
+			if (yych != 'o') goto yy1307;
+		}
+	}
+	yych = *++p;
+	if (yych == 'G') goto yy1459;
+	if (yych != 'g') goto yy1307;
+yy1459:
+	yych = *++p;
+	if (yych == 'R') goto yy1460;
+	if (yych != 'r') goto yy1307;
+yy1460:
+	yych = *++p;
+	if (yych == 'E') goto yy1461;
+	if (yych != 'e') goto yy1307;
+yy1461:
+	yych = *++p;
+	if (yych == 'S') goto yy1462;
+	if (yych != 's') goto yy1307;
+yy1462:
+	yych = *++p;
+	if (yych == 'S') goto yy1343;
+	if (yych == 's') goto yy1343;
+	goto yy1307;
+yy1463:
+	yych = *++p;
+	if (yych == 'D') goto yy1464;
+	if (yych != 'd') goto yy1307;
+yy1464:
+	yych = *++p;
+	if (yych == 'E') goto yy1465;
+	if (yych != 'e') goto yy1307;
+yy1465:
+	yych = *++p;
+	if (yych == 'O') goto yy1466;
+	if (yych != 'o') goto yy1307;
+yy1466:
+	yych = *++p;
+	if (yych <= ' ') {
+		if (yych <= 0x08) goto yy1307;
+		if (yych <= '\r') goto yy1467;
+		if (yych <= 0x1F) goto yy1307;
+	} else {
+		if (yych <= '/') {
+			if (yych <= '.') goto yy1307;
+		} else {
+			if (yych != '>') goto yy1307;
+		}
+	}
+yy1467:
+	++p;
+	{ return (p - start); }
+yy1469:
+	yych = *++p;
+	if (yych <= 'R') {
+		if (yych == 'O') goto yy1485;
+		if (yych <= 'Q') goto yy1307;
+		goto yy1486;
+	} else {
+		if (yych <= 'o') {
+			if (yych <= 'n') goto yy1307;
+			goto yy1485;
+		} else {
+			if (yych == 'r') goto yy1486;
+			goto yy1307;
+		}
+	}
+yy1470:
+	yych = *++p;
+	if (yych <= 'G') {
+		if (yych == 'E') goto yy1471;
+		if (yych <= 'F') goto yy1307;
+		goto yy1472;
+	} else {
+		if (yych <= 'e') {
+			if (yych <= 'd') goto yy1307;
+		} else {
+			if (yych == 'g') goto yy1472;
+			goto yy1307;
+		}
+	}
+yy1471:
+	yych = *++p;
+	if (yych == 'L') goto yy1481;
+	if (yych == 'l') goto yy1481;
+	goto yy1307;
+yy1472:
+	yych = *++p;
+	if (yych <= 'U') {
+		if (yych == 'C') goto yy1474;
+		if (yych <= 'T') goto yy1307;
+	} else {
+		if (yych <= 'c') {
+			if (yych <= 'b') goto yy1307;
+			goto yy1474;
+		} else {
+			if (yych != 'u') goto yy1307;
+		}
+	}
+	yych = *++p;
+	if (yych == 'R') goto yy1480;
+	if (yych == 'r') goto yy1480;
+	goto yy1307;
+yy1474:
+	yych = *++p;
+	if (yych == 'A') goto yy1475;
+	if (yych != 'a') goto yy1307;
+yy1475:
+	yych = *++p;
+	if (yych == 'P') goto yy1476;
+	if (yych != 'p') goto yy1307;
+yy1476:
+	yych = *++p;
+	if (yych == 'T') goto yy1477;
+	if (yych != 't') goto yy1307;
+yy1477:
+	yych = *++p;
+	if (yych == 'I') goto yy1478;
+	if (yych != 'i') goto yy1307;
+yy1478:
+	yych = *++p;
+	if (yych == 'O') goto yy1479;
+	if (yych != 'o') goto yy1307;
+yy1479:
+	yych = *++p;
+	if (yych == 'N') goto yy1466;
+	if (yych == 'n') goto yy1466;
+	goto yy1307;
+yy1480:
+	yych = *++p;
+	if (yych == 'E') goto yy1466;
+	if (yych == 'e') goto yy1466;
+	goto yy1307;
+yy1481:
+	yych = *++p;
+	if (yych == 'D') goto yy1482;
+	if (yych != 'd') goto yy1307;
+yy1482:
+	yych = *++p;
+	if (yych == 'S') goto yy1483;
+	if (yych != 's') goto yy1307;
+yy1483:
+	yych = *++p;
+	if (yych == 'E') goto yy1484;
+	if (yych != 'e') goto yy1307;
+yy1484:
+	yych = *++p;
+	if (yych == 'T') goto yy1466;
+	if (yych == 't') goto yy1466;
+	goto yy1307;
+yy1485:
+	yych = *++p;
+	if (yych == 'T') goto yy1487;
+	if (yych == 't') goto yy1487;
+	goto yy1307;
+yy1486:
+	yych = *++p;
+	if (yych == 'M') goto yy1466;
+	if (yych == 'm') goto yy1466;
+	goto yy1307;
+yy1487:
+	yych = *++p;
+	if (yych == 'E') goto yy1488;
+	if (yych != 'e') goto yy1307;
+yy1488:
+	yych = *++p;
+	if (yych == 'R') goto yy1466;
+	if (yych == 'r') goto yy1466;
+	goto yy1307;
+yy1489:
+	yych = *++p;
+	if (yych == 'B') goto yy1490;
+	if (yych != 'b') goto yy1307;
+yy1490:
+	yych = *++p;
+	if (yych == 'E') goto yy1491;
+	if (yych != 'e') goto yy1307;
+yy1491:
+	yych = *++p;
+	if (yych == 'D') goto yy1466;
+	if (yych == 'd') goto yy1466;
+	goto yy1307;
+yy1492:
+	yych = *++p;
+	if (yych <= '/') {
+		if (yych <= 0x1F) {
+			if (yych <= 0x08) goto yy1307;
+			if (yych <= '\r') goto yy1467;
+			goto yy1307;
+		} else {
+			if (yych <= ' ') goto yy1467;
+			if (yych <= '.') goto yy1307;
+			goto yy1467;
+		}
+	} else {
+		if (yych <= 'D') {
+			if (yych == '>') goto yy1467;
+			goto yy1307;
+		} else {
+			if (yych <= 'E') goto yy1508;
+			if (yych == 'e') goto yy1508;
+			goto yy1307;
+		}
+	}
+yy1493:
+	yych = *++p;
+	if (yych == 'O') goto yy1506;
+	if (yych == 'o') goto yy1506;
+	goto yy1307;
+yy1494:
+	yych = *++p;
+	if (yych == 'X') goto yy1501;
+	if (yych == 'x') goto yy1501;
+	goto yy1307;
+yy1495:
+	yych = *++p;
+	if (yych == 'O') goto yy1499;
+	if (yych == 'o') goto yy1499;
+	goto yy1307;
+yy1496:
+	yych = *++p;
+	if (yych == 'B') goto yy1497;
+	if (yych != 'b') goto yy1307;
+yy1497:
+	yych = *++p;
+	if (yych == 'L') goto yy1498;
+	if (yych != 'l') goto yy1307;
+yy1498:
+	yych = *++p;
+	if (yych == 'E') goto yy1466;
+	if (yych == 'e') goto yy1466;
+	goto yy1307;
+yy1499:
+	yych = *++p;
+	if (yych == 'D') goto yy1500;
+	if (yych != 'd') goto yy1307;
+yy1500:
+	yych = *++p;
+	if (yych == 'Y') goto yy1466;
+	if (yych == 'y') goto yy1466;
+	goto yy1307;
+yy1501:
+	yych = *++p;
+	if (yych == 'T') goto yy1502;
+	if (yych != 't') goto yy1307;
+yy1502:
+	yych = *++p;
+	if (yych == 'A') goto yy1503;
+	if (yych != 'a') goto yy1307;
+yy1503:
+	yych = *++p;
+	if (yych == 'R') goto yy1504;
+	if (yych != 'r') goto yy1307;
+yy1504:
+	yych = *++p;
+	if (yych == 'E') goto yy1505;
+	if (yych != 'e') goto yy1307;
+yy1505:
+	yych = *++p;
+	if (yych == 'A') goto yy1466;
+	if (yych == 'a') goto yy1466;
+	goto yy1307;
+yy1506:
+	yych = *++p;
+	if (yych == 'O') goto yy1507;
+	if (yych != 'o') goto yy1307;
+yy1507:
+	yych = *++p;
+	if (yych == 'T') goto yy1466;
+	if (yych == 't') goto yy1466;
+	goto yy1307;
+yy1508:
+	yych = *++p;
+	if (yych == 'A') goto yy1509;
+	if (yych != 'a') goto yy1307;
+yy1509:
+	yych = *++p;
+	if (yych == 'D') goto yy1466;
+	if (yych == 'd') goto yy1466;
+	goto yy1307;
+yy1510:
+	yych = *++p;
+	if (yych == 'Y') goto yy1520;
+	if (yych == 'y') goto yy1520;
+	goto yy1307;
+yy1511:
+	yych = *++p;
+	if (yych == 'R') goto yy1517;
+	if (yych == 'r') goto yy1517;
+	goto yy1307;
+yy1512:
+	yych = *++p;
+	if (yych == 'C') goto yy1513;
+	if (yych != 'c') goto yy1307;
+yy1513:
+	yych = *++p;
+	if (yych == 'T') goto yy1514;
+	if (yych != 't') goto yy1307;
+yy1514:
+	yych = *++p;
+	if (yych == 'I') goto yy1515;
+	if (yych != 'i') goto yy1307;
+yy1515:
+	yych = *++p;
+	if (yych == 'O') goto yy1516;
+	if (yych != 'o') goto yy1307;
+yy1516:
+	yych = *++p;
+	if (yych == 'N') goto yy1466;
+	if (yych == 'n') goto yy1466;
+	goto yy1307;
+yy1517:
+	yych = *++p;
+	if (yych == 'I') goto yy1518;
+	if (yych != 'i') goto yy1307;
+yy1518:
+	yych = *++p;
+	if (yych == 'P') goto yy1519;
+	if (yych != 'p') goto yy1307;
+yy1519:
+	yych = *++p;
+	if (yych == 'T') goto yy1466;
+	if (yych == 't') goto yy1466;
+	goto yy1307;
+yy1520:
+	yych = *++p;
+	if (yych == 'L') goto yy1521;
+	if (yych != 'l') goto yy1307;
+yy1521:
+	yych = *++p;
+	if (yych == 'E') goto yy1466;
+	if (yych == 'e') goto yy1466;
+	goto yy1307;
+yy1522:
+	yych = *++p;
+	if (yych == 'V') goto yy1466;
+	if (yych == 'v') goto yy1466;
+	goto yy1307;
+yy1523:
+	yych = *++p;
+	if (yych == 'L') goto yy1532;
+	if (yych == 'l') goto yy1532;
+	goto yy1307;
+yy1524:
+	yych = *++p;
+	if (yych <= 'P') {
+		if (yych == 'N') goto yy1525;
+		if (yych <= 'O') goto yy1307;
+		goto yy1526;
+	} else {
+		if (yych <= 'n') {
+			if (yych <= 'm') goto yy1307;
+		} else {
+			if (yych == 'p') goto yy1526;
+			goto yy1307;
+		}
+	}
+yy1525:
+	yych = *++p;
+	if (yych == 'V') goto yy1530;
+	if (yych == 'v') goto yy1530;
+	goto yy1307;
+yy1526:
+	yych = *++p;
+	if (yych == 'T') goto yy1527;
+	if (yych != 't') goto yy1307;
+yy1527:
+	yych = *++p;
+	if (yych == 'I') goto yy1528;
+	if (yych != 'i') goto yy1307;
+yy1528:
+	yych = *++p;
+	if (yych == 'O') goto yy1529;
+	if (yych != 'o') goto yy1307;
+yy1529:
+	yych = *++p;
+	if (yych == 'N') goto yy1466;
+	if (yych == 'n') goto yy1466;
+	goto yy1307;
+yy1530:
+	yych = *++p;
+	if (yych == 'A') goto yy1531;
+	if (yych != 'a') goto yy1307;
+yy1531:
+	yych = *++p;
+	if (yych == 'S') goto yy1466;
+	if (yych == 's') goto yy1466;
+	goto yy1307;
+yy1532:
+	yych = *++p;
+	if (yych <= '/') {
+		if (yych <= 0x1F) {
+			if (yych <= 0x08) goto yy1307;
+			if (yych <= '\r') goto yy1467;
+			goto yy1307;
+		} else {
+			if (yych <= ' ') goto yy1467;
+			if (yych <= '.') goto yy1307;
+			goto yy1467;
+		}
+	} else {
+		if (yych <= 'F') {
+			if (yych == '>') goto yy1467;
+			goto yy1307;
+		} else {
+			if (yych <= 'G') goto yy1533;
+			if (yych != 'g') goto yy1307;
+		}
+	}
+yy1533:
+	yych = *++p;
+	if (yych == 'R') goto yy1534;
+	if (yych != 'r') goto yy1307;
+yy1534:
+	yych = *++p;
+	if (yych == 'O') goto yy1535;
+	if (yych != 'o') goto yy1307;
+yy1535:
+	yych = *++p;
+	if (yych == 'U') goto yy1536;
+	if (yych != 'u') goto yy1307;
+yy1536:
+	yych = *++p;
+	if (yych == 'P') goto yy1466;
+	if (yych == 'p') goto yy1466;
+	goto yy1307;
+yy1537:
+	yych = *++p;
+	if (yych == 'T') goto yy1542;
+	if (yych == 't') goto yy1542;
+	goto yy1307;
+yy1538:
+	yych = *++p;
+	if (yych == 'J') goto yy1539;
+	if (yych != 'j') goto yy1307;
+yy1539:
+	yych = *++p;
+	if (yych == 'E') goto yy1540;
+	if (yych != 'e') goto yy1307;
+yy1540:
+	yych = *++p;
+	if (yych == 'C') goto yy1541;
+	if (yych != 'c') goto yy1307;
+yy1541:
+	yych = *++p;
+	if (yych == 'T') goto yy1466;
+	if (yych == 't') goto yy1466;
+	goto yy1307;
+yy1542:
+	yych = *++p;
+	if (yych == 'P') goto yy1543;
+	if (yych != 'p') goto yy1307;
+yy1543:
+	yych = *++p;
+	if (yych == 'U') goto yy1544;
+	if (yych != 'u') goto yy1307;
+yy1544:
+	yych = *++p;
+	if (yych == 'T') goto yy1466;
+	if (yych == 't') goto yy1466;
+	goto yy1307;
+yy1545:
+	yych = *++p;
+	if (yych == 'P') goto yy1466;
+	if (yych == 'p') goto yy1466;
+	goto yy1307;
+yy1546:
+	yych = *++p;
+	if (yych == 'T') goto yy1557;
+	if (yych == 't') goto yy1557;
+	goto yy1307;
+yy1547:
+	yych = *++p;
+	if (yych == 'D') goto yy1556;
+	if (yych == 'd') goto yy1556;
+	goto yy1307;
+yy1548:
+	yych = *++p;
+	if (yych == 'O') goto yy1549;
+	if (yych != 'o') goto yy1307;
+yy1549:
+	yych = *++p;
+	if (yych == 'C') goto yy1550;
+	if (yych != 'c') goto yy1307;
+yy1550:
+	yych = *++p;
+	if (yych == 'K') goto yy1551;
+	if (yych != 'k') goto yy1307;
+yy1551:
+	yych = *++p;
+	if (yych == 'Q') goto yy1552;
+	if (yych != 'q') goto yy1307;
+yy1552:
+	yych = *++p;
+	if (yych == 'U') goto yy1553;
+	if (yych != 'u') goto yy1307;
+yy1553:
+	yych = *++p;
+	if (yych == 'O') goto yy1554;
+	if (yych != 'o') goto yy1307;
+yy1554:
+	yych = *++p;
+	if (yych == 'T') goto yy1555;
+	if (yych != 't') goto yy1307;
+yy1555:
+	yych = *++p;
+	if (yych == 'E') goto yy1466;
+	if (yych == 'e') goto yy1466;
+	goto yy1307;
+yy1556:
+	yych = *++p;
+	if (yych == 'Y') goto yy1466;
+	if (yych == 'y') goto yy1466;
+	goto yy1307;
+yy1557:
+	yych = *++p;
+	if (yych == 'T') goto yy1558;
+	if (yych != 't') goto yy1307;
+yy1558:
+	yych = *++p;
+	if (yych == 'O') goto yy1559;
+	if (yych != 'o') goto yy1307;
+yy1559:
+	yych = *++p;
+	if (yych == 'N') goto yy1466;
+	if (yych == 'n') goto yy1466;
+	goto yy1307;
+yy1560:
+	yych = *++p;
+	if (yych == 'R') goto yy1561;
+	if (yych != 'r') goto yy1307;
+yy1561:
+	yych = *++p;
+	if (yych == 'A') goto yy1562;
+	if (yych != 'a') goto yy1307;
+yy1562:
+	yych = *++p;
+	if (yych == 'M') goto yy1563;
+	if (yych != 'm') goto yy1307;
+yy1563:
+	yych = *++p;
+	if (yych == 'E') goto yy1466;
+	if (yych == 'e') goto yy1466;
+	goto yy1307;
+yy1564:
+	yych = *++p;
+	if (yych == 'R') goto yy1569;
+	if (yych == 'r') goto yy1569;
+	goto yy1307;
+yy1565:
+	yych = *++p;
+	if (yych == 'A') goto yy1566;
+	if (yych != 'a') goto yy1307;
+yy1566:
+	yych = *++p;
+	if (yych == 'D') goto yy1567;
+	if (yych != 'd') goto yy1307;
+yy1567:
+	yych = *++p;
+	if (yych == 'E') goto yy1568;
+	if (yych != 'e') goto yy1307;
+yy1568:
+	yych = *++p;
+	if (yych == 'R') goto yy1466;
+	if (yych == 'r') goto yy1466;
+	goto yy1307;
+yy1569:
+	yych = *++p;
+	if (yych == 'O') goto yy1570;
+	if (yych != 'o') goto yy1307;
+yy1570:
+	yych = *++p;
+	if (yych == 'U') goto yy1571;
+	if (yych != 'u') goto yy1307;
+yy1571:
+	yych = *++p;
+	if (yych == 'P') goto yy1466;
+	if (yych == 'p') goto yy1466;
+	goto yy1307;
+yy1572:
+	yych = *++p;
+	if (yych == 'I') goto yy1578;
+	if (yych == 'i') goto yy1578;
+	goto yy1307;
+yy1573:
+	yych = *++p;
+	if (yych == 'T') goto yy1574;
+	if (yych != 't') goto yy1307;
+yy1574:
+	yych = *++p;
+	if (yych == 'I') goto yy1575;
+	if (yych != 'i') goto yy1307;
+yy1575:
+	yych = *++p;
+	if (yych == 'C') goto yy1576;
+	if (yych != 'c') goto yy1307;
+yy1576:
+	yych = *++p;
+	if (yych == 'L') goto yy1577;
+	if (yych != 'l') goto yy1307;
+yy1577:
+	yych = *++p;
+	if (yych == 'E') goto yy1466;
+	if (yych == 'e') goto yy1466;
+	goto yy1307;
+yy1578:
+	yych = *++p;
+	if (yych == 'D') goto yy1579;
+	if (yych != 'd') goto yy1307;
+yy1579:
+	yych = *++p;
+	if (yych == 'E') goto yy1466;
+	if (yych == 'e') goto yy1466;
+	goto yy1307;
+yy1580:
+	yych = *++p;
+	if (yych <= 'O') {
+		if (yych == 'E') goto yy1466;
+		if (yych <= 'N') goto yy1307;
+	} else {
+		if (yych <= 'e') {
+			if (yych <= 'd') goto yy1307;
+			goto yy1466;
+		} else {
+			if (yych != 'o') goto yy1307;
+		}
+	}
+	yych = *++p;
+	if (yych == 'G') goto yy1582;
+	if (yych != 'g') goto yy1307;
+yy1582:
+	yych = *++p;
+	if (yych == 'R') goto yy1583;
+	if (yych != 'r') goto yy1307;
+yy1583:
+	yych = *++p;
+	if (yych == 'E') goto yy1584;
+	if (yych != 'e') goto yy1307;
+yy1584:
+	yych = *++p;
+	if (yych == 'S') goto yy1585;
+	if (yych != 's') goto yy1307;
+yy1585:
+	++p;
+	if ((yych = *p) == 'S') goto yy1466;
+	if (yych == 's') goto yy1466;
+	goto yy1307;
+}
+
+}
+
+// Try to match a URL in a link or reference, return number of chars matched.
+// This may optionally be contained in <..>; otherwise
+// whitespace and unbalanced right parentheses aren't allowed.
+// Newlines aren't ever allowed.
+int _scan_link_url(const unsigned char *p)
+{
+  const unsigned char *marker = NULL;
+  const unsigned char *start = p;
+
+{
+	unsigned char yych;
+	unsigned int yyaccept = 0;
+	static const unsigned char yybm[] = {
+		  0,  64,  64,  64,  64,  64,  64,  64, 
+		 64,  64,   8,  64,  64,  64,  64,  64, 
+		 64,  64,  64,  64,  64,  64,  64,  64, 
+		 64,  64,  64,  64,  64,  64,  64,  64, 
+		 72, 112, 112, 112, 112, 112, 112, 112, 
+		 64,  64, 112, 112, 112, 112, 112, 112, 
+		112, 112, 112, 112, 112, 112, 112, 112, 
+		112, 112, 112, 112,  16, 112,  16, 112, 
+		112, 112, 112, 112, 112, 112, 112, 112, 
+		112, 112, 112, 112, 112, 112, 112, 112, 
+		112, 112, 112, 112, 112, 112, 112, 112, 
+		112, 112, 112, 112, 128, 112, 112, 112, 
+		112, 112, 112, 112, 112, 112, 112, 112, 
+		112, 112, 112, 112, 112, 112, 112, 112, 
+		112, 112, 112, 112, 112, 112, 112, 112, 
+		112, 112, 112, 112, 112, 112, 112, 112, 
+		112, 112, 112, 112, 112, 112, 112, 112, 
+		112, 112, 112, 112, 112, 112, 112, 112, 
+		112, 112, 112, 112, 112, 112, 112, 112, 
+		112, 112, 112, 112, 112, 112, 112, 112, 
+		112, 112, 112, 112, 112, 112, 112, 112, 
+		112, 112, 112, 112, 112, 112, 112, 112, 
+		112, 112, 112, 112, 112, 112, 112, 112, 
+		112, 112, 112, 112, 112, 112, 112, 112, 
+		112, 112, 112, 112, 112, 112, 112, 112, 
+		112, 112, 112, 112, 112, 112, 112, 112, 
+		112, 112, 112, 112, 112, 112, 112, 112, 
+		112, 112, 112, 112, 112, 112, 112, 112, 
+		112, 112, 112, 112, 112, 112, 112, 112, 
+		112, 112, 112, 112, 112, 112, 112, 112, 
+		112, 112, 112, 112, 112, 112, 112, 112, 
+		112, 112, 112, 112, 112, 112, 112, 112, 
+	};
+	yych = *p;
+	if (yych <= '(') {
+		if (yych <= 0x1F) {
+			if (yych == '\n') goto yy1589;
+			goto yy1597;
+		} else {
+			if (yych <= ' ') goto yy1591;
+			if (yych <= '\'') goto yy1593;
+			goto yy1596;
+		}
+	} else {
+		if (yych <= '<') {
+			if (yych <= ')') goto yy1597;
+			if (yych <= ';') goto yy1593;
+			goto yy1592;
+		} else {
+			if (yych == '\\') goto yy1594;
+			goto yy1593;
+		}
+	}
+yy1588:
+	{ return (p - start); }
+yy1589:
+	yyaccept = 0;
+	marker = ++p;
+	yych = *p;
+yy1590:
+	if (yybm[0+yych] & 8) {
+		goto yy1589;
+	}
+	if (yych <= ')') {
+		if (yych <= ' ') goto yy1588;
+		if (yych <= '\'') goto yy1602;
+		if (yych <= '(') goto yy1598;
+		goto yy1588;
+	} else {
+		if (yych <= '<') {
+			if (yych <= ';') goto yy1602;
+			goto yy1605;
+		} else {
+			if (yych == '\\') goto yy1604;
+			goto yy1602;
+		}
+	}
+yy1591:
+	yyaccept = 0;
+	yych = *(marker = ++p);
+	goto yy1590;
+yy1592:
+	yyaccept = 0;
+	yych = *(marker = ++p);
+	if (yybm[0+yych] & 32) {
+		goto yy1605;
+	}
+	if (yych <= '\'') {
+		if (yych <= 0x00) goto yy1588;
+		if (yych == '\n') goto yy1588;
+		goto yy1612;
+	} else {
+		if (yych <= ')') {
+			if (yych <= '(') goto yy1610;
+			goto yy1612;
+		} else {
+			if (yych <= '=') goto yy1602;
+			if (yych <= '>') goto yy1607;
+			goto yy1609;
+		}
+	}
+yy1593:
+	yyaccept = 0;
+	yych = *(marker = ++p);
+	goto yy1603;
+yy1594:
+	++p;
+	if ((yych = *p) <= '@') {
+		if (yych <= ' ') goto yy1595;
+		if (yych <= '/') goto yy1602;
+		if (yych >= ':') goto yy1602;
+	} else {
+		if (yych <= '`') {
+			if (yych >= '[') goto yy1602;
+		} else {
+			if (yych <= 'z') goto yy1595;
+			if (yych <= '~') goto yy1602;
+		}
+	}
+yy1595:
+	{ return 0; }
+yy1596:
+	yyaccept = 1;
+	yych = *(marker = ++p);
+	if (yych <= ' ') goto yy1595;
+	if (yych == '(') goto yy1595;
+	goto yy1599;
+yy1597:
+	yych = *++p;
+	goto yy1595;
+yy1598:
+	++p;
+	yych = *p;
+yy1599:
+	if (yybm[0+yych] & 16) {
+		goto yy1598;
+	}
+	if (yych <= '(') goto yy1600;
+	if (yych <= ')') goto yy1602;
+	goto yy1601;
+yy1600:
+	p = marker;
+	if (yyaccept <= 1) {
+		if (yyaccept == 0) {
+			goto yy1588;
+		} else {
+			goto yy1595;
+		}
+	} else {
+		goto yy1608;
+	}
+yy1601:
+	++p;
+	yych = *p;
+	if (yych <= '@') {
+		if (yych <= ' ') goto yy1600;
+		if (yych <= '/') goto yy1598;
+		if (yych <= '9') goto yy1600;
+		goto yy1598;
+	} else {
+		if (yych <= '`') {
+			if (yych <= 'Z') goto yy1600;
+			goto yy1598;
+		} else {
+			if (yych <= 'z') goto yy1600;
+			if (yych <= '~') goto yy1598;
+			goto yy1600;
+		}
+	}
+yy1602:
+	yyaccept = 0;
+	marker = ++p;
+	yych = *p;
+yy1603:
+	if (yych <= '(') {
+		if (yych <= ' ') goto yy1588;
+		if (yych <= '\'') goto yy1602;
+		goto yy1598;
+	} else {
+		if (yych <= ')') goto yy1588;
+		if (yych != '\\') goto yy1602;
+	}
+yy1604:
+	++p;
+	yych = *p;
+	if (yych <= '@') {
+		if (yych <= ' ') goto yy1600;
+		if (yych <= '/') goto yy1602;
+		if (yych <= '9') goto yy1600;
+		goto yy1602;
+	} else {
+		if (yych <= '`') {
+			if (yych <= 'Z') goto yy1600;
+			goto yy1602;
+		} else {
+			if (yych <= 'z') goto yy1600;
+			if (yych <= '~') goto yy1602;
+			goto yy1600;
+		}
+	}
+yy1605:
+	yyaccept = 0;
+	marker = ++p;
+	yych = *p;
+	if (yybm[0+yych] & 32) {
+		goto yy1605;
+	}
+	if (yych <= '\'') {
+		if (yych <= 0x00) goto yy1588;
+		if (yych == '\n') goto yy1588;
+		goto yy1612;
+	} else {
+		if (yych <= ')') {
+			if (yych <= '(') goto yy1610;
+			goto yy1612;
+		} else {
+			if (yych <= '=') goto yy1602;
+			if (yych >= '?') goto yy1609;
+		}
+	}
+yy1607:
+	yyaccept = 2;
+	yych = *(marker = ++p);
+	if (yych <= ' ') goto yy1608;
+	if (yych != ')') goto yy1603;
+yy1608:
+	{ return (p - start); }
+yy1609:
+	++p;
+	yych = *p;
+	if (yych <= '>') {
+		if (yych <= ' ') {
+			if (yych <= 0x00) goto yy1600;
+			if (yych == '\n') goto yy1600;
+			goto yy1612;
+		} else {
+			if (yych <= '/') goto yy1605;
+			if (yych <= '9') goto yy1612;
+			if (yych <= '=') goto yy1605;
+			goto yy1622;
+		}
+	} else {
+		if (yych <= '\\') {
+			if (yych <= '@') goto yy1605;
+			if (yych <= 'Z') goto yy1612;
+			if (yych <= '[') goto yy1605;
+			goto yy1623;
+		} else {
+			if (yych <= '`') goto yy1605;
+			if (yych <= 'z') goto yy1612;
+			if (yych <= '~') goto yy1605;
+			goto yy1612;
+		}
+	}
+yy1610:
+	++p;
+	yych = *p;
+	if (yych <= ')') {
+		if (yych <= '\n') {
+			if (yych <= 0x00) goto yy1600;
+			if (yych >= '\n') goto yy1600;
+		} else {
+			if (yych <= ' ') goto yy1612;
+			if (yych <= '\'') goto yy1610;
+			if (yych >= ')') goto yy1605;
+		}
+	} else {
+		if (yych <= '=') {
+			if (yych == '<') goto yy1598;
+			goto yy1610;
+		} else {
+			if (yych <= '>') goto yy1618;
+			if (yych == '\\') goto yy1619;
+			goto yy1610;
+		}
+	}
+yy1612:
+	++p;
+	yych = *p;
+	if (yybm[0+yych] & 64) {
+		goto yy1612;
+	}
+	if (yych <= '=') goto yy1600;
+	if (yych >= '?') goto yy1615;
+yy1614:
+	yych = *++p;
+	goto yy1608;
+yy1615:
+	++p;
+	yych = *p;
+	if (yybm[0+yych] & 128) {
+		goto yy1615;
+	}
+	if (yych <= '\n') {
+		if (yych <= 0x00) goto yy1600;
+		if (yych <= '\t') goto yy1612;
+		goto yy1600;
+	} else {
+		if (yych != '>') goto yy1612;
+	}
+	yyaccept = 2;
+	marker = ++p;
+	yych = *p;
+	if (yybm[0+yych] & 64) {
+		goto yy1612;
+	}
+	if (yych <= '=') goto yy1608;
+	if (yych <= '>') goto yy1614;
+	goto yy1615;
+yy1618:
+	yyaccept = 2;
+	yych = *(marker = ++p);
+	if (yych <= ' ') goto yy1608;
+	if (yych == '(') goto yy1608;
+	goto yy1599;
+yy1619:
+	++p;
+	yych = *p;
+	if (yych <= '>') {
+		if (yych <= ' ') {
+			if (yych <= 0x00) goto yy1600;
+			if (yych == '\n') goto yy1600;
+			goto yy1612;
+		} else {
+			if (yych <= '/') goto yy1610;
+			if (yych <= '9') goto yy1612;
+			if (yych <= '=') goto yy1610;
+		}
+	} else {
+		if (yych <= '\\') {
+			if (yych <= '@') goto yy1610;
+			if (yych <= 'Z') goto yy1612;
+			if (yych <= '[') goto yy1610;
+			goto yy1621;
+		} else {
+			if (yych <= '`') goto yy1610;
+			if (yych <= 'z') goto yy1612;
+			if (yych <= '~') goto yy1610;
+			goto yy1612;
+		}
+	}
+yy1620:
+	yyaccept = 2;
+	marker = ++p;
+	yych = *p;
+	if (yych <= ')') {
+		if (yych <= '\n') {
+			if (yych <= 0x00) goto yy1608;
+			if (yych <= '\t') goto yy1612;
+			goto yy1608;
+		} else {
+			if (yych <= ' ') goto yy1612;
+			if (yych <= '\'') goto yy1610;
+			if (yych <= '(') goto yy1612;
+			goto yy1605;
+		}
+	} else {
+		if (yych <= '=') {
+			if (yych == '<') goto yy1598;
+			goto yy1610;
+		} else {
+			if (yych <= '>') goto yy1618;
+			if (yych == '\\') goto yy1619;
+			goto yy1610;
+		}
+	}
+yy1621:
+	++p;
+	yych = *p;
+	if (yych <= '(') {
+		if (yych <= '\n') {
+			if (yych <= 0x00) goto yy1600;
+			if (yych <= '\t') goto yy1612;
+			goto yy1600;
+		} else {
+			if (yych <= ' ') goto yy1612;
+			if (yych <= '\'') goto yy1610;
+			goto yy1612;
+		}
+	} else {
+		if (yych <= '>') {
+			if (yych <= ')') goto yy1605;
+			if (yych <= '=') goto yy1610;
+			goto yy1620;
+		} else {
+			if (yych == '\\') goto yy1619;
+			goto yy1610;
+		}
+	}
+yy1622:
+	yyaccept = 2;
+	marker = ++p;
+	yych = *p;
+	if (yybm[0+yych] & 32) {
+		goto yy1605;
+	}
+	if (yych <= '\'') {
+		if (yych <= 0x00) goto yy1608;
+		if (yych == '\n') goto yy1608;
+		goto yy1612;
+	} else {
+		if (yych <= ')') {
+			if (yych <= '(') goto yy1610;
+			goto yy1612;
+		} else {
+			if (yych <= '=') goto yy1602;
+			if (yych <= '>') goto yy1607;
+			goto yy1609;
+		}
+	}
+yy1623:
+	yyaccept = 0;
+	marker = ++p;
+	yych = *p;
+	if (yych <= '(') {
+		if (yych <= '\n') {
+			if (yych <= 0x00) goto yy1588;
+			if (yych <= '\t') goto yy1612;
+			goto yy1588;
+		} else {
+			if (yych <= ' ') goto yy1612;
+			if (yych <= '\'') goto yy1605;
+			goto yy1610;
+		}
+	} else {
+		if (yych <= '>') {
+			if (yych <= ')') goto yy1612;
+			if (yych <= '=') goto yy1605;
+			goto yy1622;
+		} else {
+			if (yych == '\\') goto yy1609;
+			goto yy1605;
+		}
+	}
+}
+
+}
+
+// Try to match a link title (in single quotes, in double quotes, or
+// in parentheses), returning number of chars matched.  Allow one
+// level of internal nesting (quotes within quotes).
+int _scan_link_title(const unsigned char *p)
+{
+  const unsigned char *marker = NULL;
+  const unsigned char *start = p;
+
+{
+	unsigned char yych;
+	unsigned int yyaccept = 0;
+	static const unsigned char yybm[] = {
+		  0, 208, 208, 208, 208, 208, 208, 208, 
+		208, 208, 208, 208, 208, 208, 208, 208, 
+		208, 208, 208, 208, 208, 208, 208, 208, 
+		208, 208, 208, 208, 208, 208, 208, 208, 
+		208, 208,  80, 208, 208, 208, 208, 144, 
+		208, 192, 208, 208, 208, 208, 208, 208, 
+		208, 208, 208, 208, 208, 208, 208, 208, 
+		208, 208, 208, 208, 208, 208, 208, 208, 
+		208, 208, 208, 208, 208, 208, 208, 208, 
+		208, 208, 208, 208, 208, 208, 208, 208, 
+		208, 208, 208, 208, 208, 208, 208, 208, 
+		208, 208, 208, 208,  32, 208, 208, 208, 
+		208, 208, 208, 208, 208, 208, 208, 208, 
+		208, 208, 208, 208, 208, 208, 208, 208, 
+		208, 208, 208, 208, 208, 208, 208, 208, 
+		208, 208, 208, 208, 208, 208, 208, 208, 
+		208, 208, 208, 208, 208, 208, 208, 208, 
+		208, 208, 208, 208, 208, 208, 208, 208, 
+		208, 208, 208, 208, 208, 208, 208, 208, 
+		208, 208, 208, 208, 208, 208, 208, 208, 
+		208, 208, 208, 208, 208, 208, 208, 208, 
+		208, 208, 208, 208, 208, 208, 208, 208, 
+		208, 208, 208, 208, 208, 208, 208, 208, 
+		208, 208, 208, 208, 208, 208, 208, 208, 
+		208, 208, 208, 208, 208, 208, 208, 208, 
+		208, 208, 208, 208, 208, 208, 208, 208, 
+		208, 208, 208, 208, 208, 208, 208, 208, 
+		208, 208, 208, 208, 208, 208, 208, 208, 
+		208, 208, 208, 208, 208, 208, 208, 208, 
+		208, 208, 208, 208, 208, 208, 208, 208, 
+		208, 208, 208, 208, 208, 208, 208, 208, 
+		208, 208, 208, 208, 208, 208, 208, 208, 
+	};
+	yych = *p;
+	if (yych <= '"') {
+		if (yych == '\n') goto yy1626;
+		if (yych <= '!') goto yy1630;
+		goto yy1627;
+	} else {
+		if (yych <= '&') goto yy1630;
+		if (yych <= '\'') goto yy1628;
+		if (yych <= '(') goto yy1629;
+		goto yy1630;
+	}
+yy1626:
+	{ return 0; }
+yy1627:
+	yyaccept = 0;
+	yych = *(marker = ++p);
+	if (yych <= 0x00) goto yy1626;
+	goto yy1647;
+yy1628:
+	yyaccept = 0;
+	yych = *(marker = ++p);
+	if (yych <= 0x00) goto yy1626;
+	goto yy1640;
+yy1629:
+	yyaccept = 0;
+	yych = *(marker = ++p);
+	if (yych <= 0x00) goto yy1626;
+	goto yy1632;
+yy1630:
+	yych = *++p;
+	goto yy1626;
+yy1631:
+	++p;
+	yych = *p;
+yy1632:
+	if (yybm[0+yych] & 16) {
+		goto yy1631;
+	}
+	if (yych <= 0x00) goto yy1633;
+	if (yych <= '[') goto yy1636;
+	goto yy1634;
+yy1633:
+	p = marker;
+	if (yyaccept <= 1) {
+		if (yyaccept == 0) {
+			goto yy1626;
+		} else {
+			goto yy1637;
+		}
+	} else {
+		if (yyaccept == 2) {
+			goto yy1644;
+		} else {
+			goto yy1651;
+		}
+	}
+yy1634:
+	++p;
+	yych = *p;
+	if (yybm[0+yych] & 16) {
+		goto yy1631;
+	}
+	if (yych <= 0x00) goto yy1633;
+	if (yych <= '[') goto yy1638;
+	goto yy1634;
+yy1636:
+	++p;
+yy1637:
+	{ return (p - start); }
+yy1638:
+	yyaccept = 1;
+	marker = ++p;
+	yych = *p;
+	if (yybm[0+yych] & 16) {
+		goto yy1631;
+	}
+	if (yych <= 0x00) goto yy1637;
+	if (yych <= '[') goto yy1636;
+	goto yy1634;
+yy1639:
+	++p;
+	yych = *p;
+yy1640:
+	if (yybm[0+yych] & 64) {
+		goto yy1639;
+	}
+	if (yych <= 0x00) goto yy1633;
+	if (yych <= '[') goto yy1643;
+yy1641:
+	++p;
+	yych = *p;
+	if (yybm[0+yych] & 64) {
+		goto yy1639;
+	}
+	if (yych <= 0x00) goto yy1633;
+	if (yych <= '[') goto yy1645;
+	goto yy1641;
+yy1643:
+	++p;
+yy1644:
+	{ return (p - start); }
+yy1645:
+	yyaccept = 2;
+	marker = ++p;
+	yych = *p;
+	if (yybm[0+yych] & 64) {
+		goto yy1639;
+	}
+	if (yych <= 0x00) goto yy1644;
+	if (yych <= '[') goto yy1643;
+	goto yy1641;
+yy1646:
+	++p;
+	yych = *p;
+yy1647:
+	if (yybm[0+yych] & 128) {
+		goto yy1646;
+	}
+	if (yych <= 0x00) goto yy1633;
+	if (yych <= '[') goto yy1650;
+yy1648:
+	++p;
+	yych = *p;
+	if (yybm[0+yych] & 128) {
+		goto yy1646;
+	}
+	if (yych <= 0x00) goto yy1633;
+	if (yych <= '[') goto yy1652;
+	goto yy1648;
+yy1650:
+	++p;
+yy1651:
+	{ return (p - start); }
+yy1652:
+	yyaccept = 3;
+	marker = ++p;
+	yych = *p;
+	if (yybm[0+yych] & 128) {
+		goto yy1646;
+	}
+	if (yych <= 0x00) goto yy1651;
+	if (yych <= '[') goto yy1650;
+	goto yy1648;
+}
+
+}
+
+// Match space characters, including newlines.
+int _scan_spacechars(const unsigned char *p)
+{
+  const unsigned char *start = p; \
+
+{
+	unsigned char yych;
+	static const unsigned char yybm[] = {
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0, 128, 128, 128, 128, 128,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		128,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+	};
+	yych = *p;
+	if (yych <= '\n') {
+		if (yych <= 0x08) goto yy1659;
+		if (yych <= '\t') goto yy1656;
+		goto yy1657;
+	} else {
+		if (yych <= '\r') goto yy1656;
+		if (yych == ' ') goto yy1656;
+		goto yy1659;
+	}
+yy1655:
+	{ return (p - start); }
+yy1656:
+	yych = *++p;
+	goto yy1658;
+yy1657:
+	++p;
+	yych = *p;
+yy1658:
+	if (yybm[0+yych] & 128) {
+		goto yy1657;
+	}
+	goto yy1655;
+yy1659:
+	++p;
+	{ return 0; }
+}
+
+}
+
+// Match ATX header start.
+int _scan_atx_header_start(const unsigned char *p)
+{
+  const unsigned char *marker = NULL;
+  const unsigned char *start = p;
+
+{
+	unsigned char yych;
+	static const unsigned char yybm[] = {
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		128,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+	};
+	yych = *p;
+	if (yych == '\n') goto yy1663;
+	if (yych == '#') goto yy1664;
+	goto yy1665;
+yy1663:
+	{ return 0; }
+yy1664:
+	yych = *(marker = ++p);
+	if (yybm[0+yych] & 128) {
+		goto yy1668;
+	}
+	if (yych == '\n') goto yy1666;
+	if (yych == '#') goto yy1670;
+	goto yy1663;
+yy1665:
+	yych = *++p;
+	goto yy1663;
+yy1666:
+	++p;
+yy1667:
+	{ return (p - start); }
+yy1668:
+	++p;
+	yych = *p;
+	if (yybm[0+yych] & 128) {
+		goto yy1668;
+	}
+	goto yy1667;
+yy1670:
+	yych = *++p;
+	if (yybm[0+yych] & 128) {
+		goto yy1668;
+	}
+	if (yych == '\n') goto yy1666;
+	if (yych == '#') goto yy1672;
+yy1671:
+	p = marker;
+	goto yy1663;
+yy1672:
+	yych = *++p;
+	if (yybm[0+yych] & 128) {
+		goto yy1668;
+	}
+	if (yych == '\n') goto yy1666;
+	if (yych != '#') goto yy1671;
+	yych = *++p;
+	if (yybm[0+yych] & 128) {
+		goto yy1668;
+	}
+	if (yych == '\n') goto yy1666;
+	if (yych != '#') goto yy1671;
+	yych = *++p;
+	if (yybm[0+yych] & 128) {
+		goto yy1668;
+	}
+	if (yych == '\n') goto yy1666;
+	if (yych != '#') goto yy1671;
+	++p;
+	if (yybm[0+(yych = *p)] & 128) {
+		goto yy1668;
+	}
+	if (yych == '\n') goto yy1666;
+	goto yy1671;
+}
+
+}
+
+// Match sexext header line.  Return 1 for level-1 header,
+// 2 for level-2, 0 for no match.
+int _scan_setext_header_line(const unsigned char *p)
+{
+  const unsigned char *marker = NULL;
+
+{
+	unsigned char yych;
+	static const unsigned char yybm[] = {
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		 32,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,  64,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0, 128,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+	};
+	yych = *p;
+	if (yych <= ',') {
+		if (yych != '\n') goto yy1681;
+	} else {
+		if (yych <= '-') goto yy1680;
+		if (yych == '=') goto yy1679;
+		goto yy1681;
+	}
+yy1678:
+	{ return 0; }
+yy1679:
+	yych = *(marker = ++p);
+	if (yybm[0+yych] & 128) {
+		goto yy1693;
+	}
+	if (yych == '\n') goto yy1691;
+	if (yych == ' ') goto yy1689;
+	goto yy1678;
+yy1680:
+	yych = *(marker = ++p);
+	if (yybm[0+yych] & 32) {
+		goto yy1682;
+	}
+	if (yych == '\n') goto yy1685;
+	if (yych == '-') goto yy1687;
+	goto yy1678;
+yy1681:
+	yych = *++p;
+	goto yy1678;
+yy1682:
+	++p;
+	yych = *p;
+	if (yybm[0+yych] & 32) {
+		goto yy1682;
+	}
+	if (yych == '\n') goto yy1685;
+yy1684:
+	p = marker;
+	goto yy1678;
+yy1685:
+	++p;
+	{ return 2; }
+yy1687:
+	++p;
+	yych = *p;
+	if (yybm[0+yych] & 32) {
+		goto yy1682;
+	}
+	if (yych == '\n') goto yy1685;
+	if (yych == '-') goto yy1687;
+	goto yy1684;
+yy1689:
+	++p;
+	yych = *p;
+	if (yych == '\n') goto yy1691;
+	if (yych == ' ') goto yy1689;
+	goto yy1684;
+yy1691:
+	++p;
+	{ return 1; }
+yy1693:
+	++p;
+	yych = *p;
+	if (yybm[0+yych] & 128) {
+		goto yy1693;
+	}
+	if (yych == '\n') goto yy1691;
+	if (yych == ' ') goto yy1689;
+	goto yy1684;
+}
+
+}
+
+// Scan a horizontal rule line: "...three or more hyphens, asterisks,
+// or underscores on a line by themselves. If you wish, you may use
+// spaces between the hyphens or asterisks."
+int _scan_hrule(const unsigned char *p)
+{
+  const unsigned char *marker = NULL;
+  const unsigned char *start = p;
+
+{
+	unsigned char yych;
+	static const unsigned char yybm[] = {
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,  32,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		248,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0, 128,   0,   0,  16,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,  64, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+	};
+	yych = *p;
+	if (yych <= '*') {
+		if (yych == '\n') goto yy1697;
+		if (yych <= ')') goto yy1701;
+		goto yy1698;
+	} else {
+		if (yych <= '-') {
+			if (yych <= ',') goto yy1701;
+			goto yy1700;
+		} else {
+			if (yych == '_') goto yy1699;
+			goto yy1701;
+		}
+	}
+yy1697:
+	{ return 0; }
+yy1698:
+	yych = *(marker = ++p);
+	if (yych == ' ') goto yy1723;
+	if (yych == '*') goto yy1725;
+	goto yy1697;
+yy1699:
+	yych = *(marker = ++p);
+	if (yych == ' ') goto yy1713;
+	if (yych == '_') goto yy1715;
+	goto yy1697;
+yy1700:
+	yych = *(marker = ++p);
+	if (yybm[0+yych] & 8) {
+		goto yy1702;
+	}
+	if (yych == '-') goto yy1705;
+	goto yy1697;
+yy1701:
+	yych = *++p;
+	goto yy1697;
+yy1702:
+	++p;
+	yych = *p;
+	if (yybm[0+yych] & 8) {
+		goto yy1702;
+	}
+	if (yych == '-') goto yy1705;
+yy1704:
+	p = marker;
+	goto yy1697;
+yy1705:
+	++p;
+	yych = *p;
+	if (yych == ' ') goto yy1705;
+	if (yych != '-') goto yy1704;
+yy1707:
+	++p;
+	yych = *p;
+	if (yybm[0+yych] & 16) {
+		goto yy1707;
+	}
+	if (yych <= 0x08) goto yy1704;
+	if (yych <= '\t') goto yy1709;
+	if (yych <= '\n') goto yy1711;
+	goto yy1704;
+yy1709:
+	++p;
+	yych = *p;
+	if (yybm[0+yych] & 32) {
+		goto yy1709;
+	}
+	if (yych != '\n') goto yy1704;
+yy1711:
+	++p;
+	{ return (p - start); }
+yy1713:
+	++p;
+	yych = *p;
+	if (yych == ' ') goto yy1713;
+	if (yych != '_') goto yy1704;
+yy1715:
+	++p;
+	yych = *p;
+	if (yych == ' ') goto yy1715;
+	if (yych != '_') goto yy1704;
+yy1717:
+	++p;
+	yych = *p;
+	if (yybm[0+yych] & 64) {
+		goto yy1717;
+	}
+	if (yych <= 0x08) goto yy1704;
+	if (yych <= '\t') goto yy1719;
+	if (yych <= '\n') goto yy1721;
+	goto yy1704;
+yy1719:
+	++p;
+	yych = *p;
+	if (yych <= '\n') {
+		if (yych <= 0x08) goto yy1704;
+		if (yych <= '\t') goto yy1719;
+	} else {
+		if (yych == ' ') goto yy1719;
+		goto yy1704;
+	}
+yy1721:
+	++p;
+	{ return (p - start); }
+yy1723:
+	++p;
+	yych = *p;
+	if (yych == ' ') goto yy1723;
+	if (yych != '*') goto yy1704;
+yy1725:
+	++p;
+	yych = *p;
+	if (yych == ' ') goto yy1725;
+	if (yych != '*') goto yy1704;
+yy1727:
+	++p;
+	yych = *p;
+	if (yybm[0+yych] & 128) {
+		goto yy1727;
+	}
+	if (yych <= 0x08) goto yy1704;
+	if (yych <= '\t') goto yy1729;
+	if (yych <= '\n') goto yy1731;
+	goto yy1704;
+yy1729:
+	++p;
+	yych = *p;
+	if (yych <= '\n') {
+		if (yych <= 0x08) goto yy1704;
+		if (yych <= '\t') goto yy1729;
+	} else {
+		if (yych == ' ') goto yy1729;
+		goto yy1704;
+	}
+yy1731:
+	++p;
+	{ return (p - start); }
+}
+
+}
+
+// Scan an opening code fence.
+int _scan_open_code_fence(const unsigned char *p)
+{
+  const unsigned char *marker = NULL;
+  const unsigned char *start = p;
+
+{
+	unsigned char yych;
+	static const unsigned char yybm[] = {
+		  0, 160, 160, 160, 160, 160, 160, 160, 
+		160, 160,   0, 160, 160, 160, 160, 160, 
+		160, 160, 160, 160, 160, 160, 160, 160, 
+		160, 160, 160, 160, 160, 160, 160, 160, 
+		160, 160, 160, 160, 160, 160, 160, 160, 
+		160, 160, 160, 160, 160, 160, 160, 160, 
+		160, 160, 160, 160, 160, 160, 160, 160, 
+		160, 160, 160, 160, 160, 160, 160, 160, 
+		160, 160, 160, 160, 160, 160, 160, 160, 
+		160, 160, 160, 160, 160, 160, 160, 160, 
+		160, 160, 160, 160, 160, 160, 160, 160, 
+		160, 160, 160, 160, 160, 160, 160, 160, 
+		 96, 160, 160, 160, 160, 160, 160, 160, 
+		160, 160, 160, 160, 160, 160, 160, 160, 
+		160, 160, 160, 160, 160, 160, 160, 160, 
+		160, 160, 160, 160, 160, 160, 144, 160, 
+		160, 160, 160, 160, 160, 160, 160, 160, 
+		160, 160, 160, 160, 160, 160, 160, 160, 
+		160, 160, 160, 160, 160, 160, 160, 160, 
+		160, 160, 160, 160, 160, 160, 160, 160, 
+		160, 160, 160, 160, 160, 160, 160, 160, 
+		160, 160, 160, 160, 160, 160, 160, 160, 
+		160, 160, 160, 160, 160, 160, 160, 160, 
+		160, 160, 160, 160, 160, 160, 160, 160, 
+		160, 160, 160, 160, 160, 160, 160, 160, 
+		160, 160, 160, 160, 160, 160, 160, 160, 
+		160, 160, 160, 160, 160, 160, 160, 160, 
+		160, 160, 160, 160, 160, 160, 160, 160, 
+		160, 160, 160, 160, 160, 160, 160, 160, 
+		160, 160, 160, 160, 160, 160, 160, 160, 
+		160, 160, 160, 160, 160, 160, 160, 160, 
+		160, 160, 160, 160, 160, 160, 160, 160, 
+	};
+	yych = *p;
+	if (yych <= '_') {
+		if (yych != '\n') goto yy1738;
+	} else {
+		if (yych <= '`') goto yy1736;
+		if (yych == '~') goto yy1737;
+		goto yy1738;
+	}
+yy1735:
+	{ return 0; }
+yy1736:
+	yych = *(marker = ++p);
+	if (yych == '`') goto yy1747;
+	goto yy1735;
+yy1737:
+	yych = *(marker = ++p);
+	if (yych == '~') goto yy1739;
+	goto yy1735;
+yy1738:
+	yych = *++p;
+	goto yy1735;
+yy1739:
+	yych = *++p;
+	if (yybm[0+yych] & 16) {
+		goto yy1741;
+	}
+yy1740:
+	p = marker;
+	goto yy1735;
+yy1741:
+	marker = p + 1;
+	++p;
+	yych = *p;
+	if (yybm[0+yych] & 32) {
+		goto yy1743;
+	}
+	if (yych <= 0x00) goto yy1740;
+	if (yych <= '}') goto yy1745;
+	goto yy1741;
+yy1743:
+	++p;
+	yych = *p;
+	if (yybm[0+yych] & 32) {
+		goto yy1743;
+	}
+	if (yych <= 0x00) goto yy1740;
+	if (yych >= '~') goto yy1740;
+yy1745:
+	++p;
+	p = marker;
+	{ return (p - start); }
+yy1747:
+	yych = *++p;
+	if (yybm[0+yych] & 64) {
+		goto yy1748;
+	}
+	goto yy1740;
+yy1748:
+	marker = p + 1;
+	++p;
+	yych = *p;
+	if (yybm[0+yych] & 128) {
+		goto yy1750;
+	}
+	if (yych <= 0x00) goto yy1740;
+	if (yych <= '_') goto yy1752;
+	goto yy1748;
+yy1750:
+	++p;
+	yych = *p;
+	if (yybm[0+yych] & 128) {
+		goto yy1750;
+	}
+	if (yych <= 0x00) goto yy1740;
+	if (yych >= '`') goto yy1740;
+yy1752:
+	++p;
+	p = marker;
+	{ return (p - start); }
+}
+
+}
+
+// Scan a closing code fence with length at least len.
+int _scan_close_code_fence(const unsigned char *p)
+{
+  const unsigned char *marker = NULL;
+  const unsigned char *start = p;
+
+{
+	unsigned char yych;
+	static const unsigned char yybm[] = {
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,  64,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		 64,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		128,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,  32,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+	};
+	yych = *p;
+	if (yych <= '_') {
+		if (yych != '\n') goto yy1759;
+	} else {
+		if (yych <= '`') goto yy1757;
+		if (yych == '~') goto yy1758;
+		goto yy1759;
+	}
+yy1756:
+	{ return 0; }
+yy1757:
+	yych = *(marker = ++p);
+	if (yych == '`') goto yy1768;
+	goto yy1756;
+yy1758:
+	yych = *(marker = ++p);
+	if (yych == '~') goto yy1760;
+	goto yy1756;
+yy1759:
+	yych = *++p;
+	goto yy1756;
+yy1760:
+	yych = *++p;
+	if (yybm[0+yych] & 32) {
+		goto yy1762;
+	}
+yy1761:
+	p = marker;
+	goto yy1756;
+yy1762:
+	marker = p + 1;
+	++p;
+	yych = *p;
+	if (yybm[0+yych] & 64) {
+		goto yy1764;
+	}
+	if (yych == '\n') goto yy1766;
+	if (yych == '~') goto yy1762;
+	goto yy1761;
+yy1764:
+	++p;
+	yych = *p;
+	if (yybm[0+yych] & 64) {
+		goto yy1764;
+	}
+	if (yych != '\n') goto yy1761;
+yy1766:
+	++p;
+	p = marker;
+	{ return (p - start); }
+yy1768:
+	yych = *++p;
+	if (yybm[0+yych] & 128) {
+		goto yy1769;
+	}
+	goto yy1761;
+yy1769:
+	marker = p + 1;
+	++p;
+	yych = *p;
+	if (yybm[0+yych] & 128) {
+		goto yy1769;
+	}
+	if (yych <= '\n') {
+		if (yych <= 0x08) goto yy1761;
+		if (yych >= '\n') goto yy1773;
+	} else {
+		if (yych != ' ') goto yy1761;
+	}
+yy1771:
+	++p;
+	yych = *p;
+	if (yych <= '\n') {
+		if (yych <= 0x08) goto yy1761;
+		if (yych <= '\t') goto yy1771;
+	} else {
+		if (yych == ' ') goto yy1771;
+		goto yy1761;
+	}
+yy1773:
+	++p;
+	p = marker;
+	{ return (p - start); }
+}
+
+}
+
+// Scans an entity.
+// Returns number of chars matched.
+int _scan_entity(const unsigned char *p)
+{
+  const unsigned char *marker = NULL;
+  const unsigned char *start = p;
+
+{
+	unsigned char yych;
+	yych = *p;
+	if (yych == '\n') goto yy1777;
+	if (yych == '&') goto yy1778;
+	goto yy1779;
+yy1777:
+	{ return 0; }
+yy1778:
+	yych = *(marker = ++p);
+	if (yych <= '@') {
+		if (yych == '#') goto yy1780;
+		goto yy1777;
+	} else {
+		if (yych <= 'Z') goto yy1782;
+		if (yych <= '`') goto yy1777;
+		if (yych <= 'z') goto yy1782;
+		goto yy1777;
+	}
+yy1779:
+	yych = *++p;
+	goto yy1777;
+yy1780:
+	yych = *++p;
+	if (yych <= 'W') {
+		if (yych <= '/') goto yy1781;
+		if (yych <= '9') goto yy1817;
+	} else {
+		if (yych <= 'X') goto yy1816;
+		if (yych == 'x') goto yy1816;
+	}
+yy1781:
+	p = marker;
+	goto yy1777;
+yy1782:
+	yych = *++p;
+	if (yych <= '@') {
+		if (yych <= '/') goto yy1781;
+		if (yych >= ':') goto yy1781;
+	} else {
+		if (yych <= 'Z') goto yy1783;
+		if (yych <= '`') goto yy1781;
+		if (yych >= '{') goto yy1781;
+	}
+yy1783:
+	yych = *++p;
+	if (yych <= ';') {
+		if (yych <= '/') goto yy1781;
+		if (yych <= '9') goto yy1786;
+		if (yych <= ':') goto yy1781;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy1781;
+			goto yy1786;
+		} else {
+			if (yych <= '`') goto yy1781;
+			if (yych <= 'z') goto yy1786;
+			goto yy1781;
+		}
+	}
+yy1784:
+	++p;
+	{ return (p - start); }
+yy1786:
+	yych = *++p;
+	if (yych <= ';') {
+		if (yych <= '/') goto yy1781;
+		if (yych <= '9') goto yy1787;
+		if (yych <= ':') goto yy1781;
+		goto yy1784;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy1781;
+		} else {
+			if (yych <= '`') goto yy1781;
+			if (yych >= '{') goto yy1781;
+		}
+	}
+yy1787:
+	yych = *++p;
+	if (yych <= ';') {
+		if (yych <= '/') goto yy1781;
+		if (yych <= '9') goto yy1788;
+		if (yych <= ':') goto yy1781;
+		goto yy1784;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy1781;
+		} else {
+			if (yych <= '`') goto yy1781;
+			if (yych >= '{') goto yy1781;
+		}
+	}
+yy1788:
+	yych = *++p;
+	if (yych <= ';') {
+		if (yych <= '/') goto yy1781;
+		if (yych <= '9') goto yy1789;
+		if (yych <= ':') goto yy1781;
+		goto yy1784;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy1781;
+		} else {
+			if (yych <= '`') goto yy1781;
+			if (yych >= '{') goto yy1781;
+		}
+	}
+yy1789:
+	yych = *++p;
+	if (yych <= ';') {
+		if (yych <= '/') goto yy1781;
+		if (yych <= '9') goto yy1790;
+		if (yych <= ':') goto yy1781;
+		goto yy1784;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy1781;
+		} else {
+			if (yych <= '`') goto yy1781;
+			if (yych >= '{') goto yy1781;
+		}
+	}
+yy1790:
+	yych = *++p;
+	if (yych <= ';') {
+		if (yych <= '/') goto yy1781;
+		if (yych <= '9') goto yy1791;
+		if (yych <= ':') goto yy1781;
+		goto yy1784;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy1781;
+		} else {
+			if (yych <= '`') goto yy1781;
+			if (yych >= '{') goto yy1781;
+		}
+	}
+yy1791:
+	yych = *++p;
+	if (yych <= ';') {
+		if (yych <= '/') goto yy1781;
+		if (yych <= '9') goto yy1792;
+		if (yych <= ':') goto yy1781;
+		goto yy1784;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy1781;
+		} else {
+			if (yych <= '`') goto yy1781;
+			if (yych >= '{') goto yy1781;
+		}
+	}
+yy1792:
+	yych = *++p;
+	if (yych <= ';') {
+		if (yych <= '/') goto yy1781;
+		if (yych <= '9') goto yy1793;
+		if (yych <= ':') goto yy1781;
+		goto yy1784;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy1781;
+		} else {
+			if (yych <= '`') goto yy1781;
+			if (yych >= '{') goto yy1781;
+		}
+	}
+yy1793:
+	yych = *++p;
+	if (yych <= ';') {
+		if (yych <= '/') goto yy1781;
+		if (yych <= '9') goto yy1794;
+		if (yych <= ':') goto yy1781;
+		goto yy1784;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy1781;
+		} else {
+			if (yych <= '`') goto yy1781;
+			if (yych >= '{') goto yy1781;
+		}
+	}
+yy1794:
+	yych = *++p;
+	if (yych <= ';') {
+		if (yych <= '/') goto yy1781;
+		if (yych <= '9') goto yy1795;
+		if (yych <= ':') goto yy1781;
+		goto yy1784;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy1781;
+		} else {
+			if (yych <= '`') goto yy1781;
+			if (yych >= '{') goto yy1781;
+		}
+	}
+yy1795:
+	yych = *++p;
+	if (yych <= ';') {
+		if (yych <= '/') goto yy1781;
+		if (yych <= '9') goto yy1796;
+		if (yych <= ':') goto yy1781;
+		goto yy1784;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy1781;
+		} else {
+			if (yych <= '`') goto yy1781;
+			if (yych >= '{') goto yy1781;
+		}
+	}
+yy1796:
+	yych = *++p;
+	if (yych <= ';') {
+		if (yych <= '/') goto yy1781;
+		if (yych <= '9') goto yy1797;
+		if (yych <= ':') goto yy1781;
+		goto yy1784;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy1781;
+		} else {
+			if (yych <= '`') goto yy1781;
+			if (yych >= '{') goto yy1781;
+		}
+	}
+yy1797:
+	yych = *++p;
+	if (yych <= ';') {
+		if (yych <= '/') goto yy1781;
+		if (yych <= '9') goto yy1798;
+		if (yych <= ':') goto yy1781;
+		goto yy1784;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy1781;
+		} else {
+			if (yych <= '`') goto yy1781;
+			if (yych >= '{') goto yy1781;
+		}
+	}
+yy1798:
+	yych = *++p;
+	if (yych <= ';') {
+		if (yych <= '/') goto yy1781;
+		if (yych <= '9') goto yy1799;
+		if (yych <= ':') goto yy1781;
+		goto yy1784;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy1781;
+		} else {
+			if (yych <= '`') goto yy1781;
+			if (yych >= '{') goto yy1781;
+		}
+	}
+yy1799:
+	yych = *++p;
+	if (yych <= ';') {
+		if (yych <= '/') goto yy1781;
+		if (yych <= '9') goto yy1800;
+		if (yych <= ':') goto yy1781;
+		goto yy1784;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy1781;
+		} else {
+			if (yych <= '`') goto yy1781;
+			if (yych >= '{') goto yy1781;
+		}
+	}
+yy1800:
+	yych = *++p;
+	if (yych <= ';') {
+		if (yych <= '/') goto yy1781;
+		if (yych <= '9') goto yy1801;
+		if (yych <= ':') goto yy1781;
+		goto yy1784;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy1781;
+		} else {
+			if (yych <= '`') goto yy1781;
+			if (yych >= '{') goto yy1781;
+		}
+	}
+yy1801:
+	yych = *++p;
+	if (yych <= ';') {
+		if (yych <= '/') goto yy1781;
+		if (yych <= '9') goto yy1802;
+		if (yych <= ':') goto yy1781;
+		goto yy1784;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy1781;
+		} else {
+			if (yych <= '`') goto yy1781;
+			if (yych >= '{') goto yy1781;
+		}
+	}
+yy1802:
+	yych = *++p;
+	if (yych <= ';') {
+		if (yych <= '/') goto yy1781;
+		if (yych <= '9') goto yy1803;
+		if (yych <= ':') goto yy1781;
+		goto yy1784;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy1781;
+		} else {
+			if (yych <= '`') goto yy1781;
+			if (yych >= '{') goto yy1781;
+		}
+	}
+yy1803:
+	yych = *++p;
+	if (yych <= ';') {
+		if (yych <= '/') goto yy1781;
+		if (yych <= '9') goto yy1804;
+		if (yych <= ':') goto yy1781;
+		goto yy1784;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy1781;
+		} else {
+			if (yych <= '`') goto yy1781;
+			if (yych >= '{') goto yy1781;
+		}
+	}
+yy1804:
+	yych = *++p;
+	if (yych <= ';') {
+		if (yych <= '/') goto yy1781;
+		if (yych <= '9') goto yy1805;
+		if (yych <= ':') goto yy1781;
+		goto yy1784;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy1781;
+		} else {
+			if (yych <= '`') goto yy1781;
+			if (yych >= '{') goto yy1781;
+		}
+	}
+yy1805:
+	yych = *++p;
+	if (yych <= ';') {
+		if (yych <= '/') goto yy1781;
+		if (yych <= '9') goto yy1806;
+		if (yych <= ':') goto yy1781;
+		goto yy1784;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy1781;
+		} else {
+			if (yych <= '`') goto yy1781;
+			if (yych >= '{') goto yy1781;
+		}
+	}
+yy1806:
+	yych = *++p;
+	if (yych <= ';') {
+		if (yych <= '/') goto yy1781;
+		if (yych <= '9') goto yy1807;
+		if (yych <= ':') goto yy1781;
+		goto yy1784;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy1781;
+		} else {
+			if (yych <= '`') goto yy1781;
+			if (yych >= '{') goto yy1781;
+		}
+	}
+yy1807:
+	yych = *++p;
+	if (yych <= ';') {
+		if (yych <= '/') goto yy1781;
+		if (yych <= '9') goto yy1808;
+		if (yych <= ':') goto yy1781;
+		goto yy1784;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy1781;
+		} else {
+			if (yych <= '`') goto yy1781;
+			if (yych >= '{') goto yy1781;
+		}
+	}
+yy1808:
+	yych = *++p;
+	if (yych <= ';') {
+		if (yych <= '/') goto yy1781;
+		if (yych <= '9') goto yy1809;
+		if (yych <= ':') goto yy1781;
+		goto yy1784;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy1781;
+		} else {
+			if (yych <= '`') goto yy1781;
+			if (yych >= '{') goto yy1781;
+		}
+	}
+yy1809:
+	yych = *++p;
+	if (yych <= ';') {
+		if (yych <= '/') goto yy1781;
+		if (yych <= '9') goto yy1810;
+		if (yych <= ':') goto yy1781;
+		goto yy1784;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy1781;
+		} else {
+			if (yych <= '`') goto yy1781;
+			if (yych >= '{') goto yy1781;
+		}
+	}
+yy1810:
+	yych = *++p;
+	if (yych <= ';') {
+		if (yych <= '/') goto yy1781;
+		if (yych <= '9') goto yy1811;
+		if (yych <= ':') goto yy1781;
+		goto yy1784;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy1781;
+		} else {
+			if (yych <= '`') goto yy1781;
+			if (yych >= '{') goto yy1781;
+		}
+	}
+yy1811:
+	yych = *++p;
+	if (yych <= ';') {
+		if (yych <= '/') goto yy1781;
+		if (yych <= '9') goto yy1812;
+		if (yych <= ':') goto yy1781;
+		goto yy1784;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy1781;
+		} else {
+			if (yych <= '`') goto yy1781;
+			if (yych >= '{') goto yy1781;
+		}
+	}
+yy1812:
+	yych = *++p;
+	if (yych <= ';') {
+		if (yych <= '/') goto yy1781;
+		if (yych <= '9') goto yy1813;
+		if (yych <= ':') goto yy1781;
+		goto yy1784;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy1781;
+		} else {
+			if (yych <= '`') goto yy1781;
+			if (yych >= '{') goto yy1781;
+		}
+	}
+yy1813:
+	yych = *++p;
+	if (yych <= ';') {
+		if (yych <= '/') goto yy1781;
+		if (yych <= '9') goto yy1814;
+		if (yych <= ':') goto yy1781;
+		goto yy1784;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy1781;
+		} else {
+			if (yych <= '`') goto yy1781;
+			if (yych >= '{') goto yy1781;
+		}
+	}
+yy1814:
+	yych = *++p;
+	if (yych <= ';') {
+		if (yych <= '/') goto yy1781;
+		if (yych <= '9') goto yy1815;
+		if (yych <= ':') goto yy1781;
+		goto yy1784;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy1781;
+		} else {
+			if (yych <= '`') goto yy1781;
+			if (yych >= '{') goto yy1781;
+		}
+	}
+yy1815:
+	yych = *++p;
+	if (yych == ';') goto yy1784;
+	goto yy1781;
+yy1816:
+	yych = *++p;
+	if (yych <= '@') {
+		if (yych <= '/') goto yy1781;
+		if (yych <= '9') goto yy1824;
+		goto yy1781;
+	} else {
+		if (yych <= 'F') goto yy1824;
+		if (yych <= '`') goto yy1781;
+		if (yych <= 'f') goto yy1824;
+		goto yy1781;
+	}
+yy1817:
+	yych = *++p;
+	if (yych <= '/') goto yy1781;
+	if (yych <= '9') goto yy1818;
+	if (yych == ';') goto yy1784;
+	goto yy1781;
+yy1818:
+	yych = *++p;
+	if (yych <= '/') goto yy1781;
+	if (yych <= '9') goto yy1819;
+	if (yych == ';') goto yy1784;
+	goto yy1781;
+yy1819:
+	yych = *++p;
+	if (yych <= '/') goto yy1781;
+	if (yych <= '9') goto yy1820;
+	if (yych == ';') goto yy1784;
+	goto yy1781;
+yy1820:
+	yych = *++p;
+	if (yych <= '/') goto yy1781;
+	if (yych <= '9') goto yy1821;
+	if (yych == ';') goto yy1784;
+	goto yy1781;
+yy1821:
+	yych = *++p;
+	if (yych <= '/') goto yy1781;
+	if (yych <= '9') goto yy1822;
+	if (yych == ';') goto yy1784;
+	goto yy1781;
+yy1822:
+	yych = *++p;
+	if (yych <= '/') goto yy1781;
+	if (yych <= '9') goto yy1823;
+	if (yych == ';') goto yy1784;
+	goto yy1781;
+yy1823:
+	yych = *++p;
+	if (yych <= '/') goto yy1781;
+	if (yych <= '9') goto yy1815;
+	if (yych == ';') goto yy1784;
+	goto yy1781;
+yy1824:
+	yych = *++p;
+	if (yych <= ';') {
+		if (yych <= '/') goto yy1781;
+		if (yych <= '9') goto yy1825;
+		if (yych <= ':') goto yy1781;
+		goto yy1784;
+	} else {
+		if (yych <= 'F') {
+			if (yych <= '@') goto yy1781;
+		} else {
+			if (yych <= '`') goto yy1781;
+			if (yych >= 'g') goto yy1781;
+		}
+	}
+yy1825:
+	yych = *++p;
+	if (yych <= ';') {
+		if (yych <= '/') goto yy1781;
+		if (yych <= '9') goto yy1826;
+		if (yych <= ':') goto yy1781;
+		goto yy1784;
+	} else {
+		if (yych <= 'F') {
+			if (yych <= '@') goto yy1781;
+		} else {
+			if (yych <= '`') goto yy1781;
+			if (yych >= 'g') goto yy1781;
+		}
+	}
+yy1826:
+	yych = *++p;
+	if (yych <= ';') {
+		if (yych <= '/') goto yy1781;
+		if (yych <= '9') goto yy1827;
+		if (yych <= ':') goto yy1781;
+		goto yy1784;
+	} else {
+		if (yych <= 'F') {
+			if (yych <= '@') goto yy1781;
+		} else {
+			if (yych <= '`') goto yy1781;
+			if (yych >= 'g') goto yy1781;
+		}
+	}
+yy1827:
+	yych = *++p;
+	if (yych <= ';') {
+		if (yych <= '/') goto yy1781;
+		if (yych <= '9') goto yy1828;
+		if (yych <= ':') goto yy1781;
+		goto yy1784;
+	} else {
+		if (yych <= 'F') {
+			if (yych <= '@') goto yy1781;
+		} else {
+			if (yych <= '`') goto yy1781;
+			if (yych >= 'g') goto yy1781;
+		}
+	}
+yy1828:
+	yych = *++p;
+	if (yych <= ';') {
+		if (yych <= '/') goto yy1781;
+		if (yych <= '9') goto yy1829;
+		if (yych <= ':') goto yy1781;
+		goto yy1784;
+	} else {
+		if (yych <= 'F') {
+			if (yych <= '@') goto yy1781;
+		} else {
+			if (yych <= '`') goto yy1781;
+			if (yych >= 'g') goto yy1781;
+		}
+	}
+yy1829:
+	yych = *++p;
+	if (yych <= ';') {
+		if (yych <= '/') goto yy1781;
+		if (yych <= '9') goto yy1830;
+		if (yych <= ':') goto yy1781;
+		goto yy1784;
+	} else {
+		if (yych <= 'F') {
+			if (yych <= '@') goto yy1781;
+		} else {
+			if (yych <= '`') goto yy1781;
+			if (yych >= 'g') goto yy1781;
+		}
+	}
+yy1830:
+	++p;
+	if ((yych = *p) <= ';') {
+		if (yych <= '/') goto yy1781;
+		if (yych <= '9') goto yy1815;
+		if (yych <= ':') goto yy1781;
+		goto yy1784;
+	} else {
+		if (yych <= 'F') {
+			if (yych <= '@') goto yy1781;
+			goto yy1815;
+		} else {
+			if (yych <= '`') goto yy1781;
+			if (yych <= 'f') goto yy1815;
+			goto yy1781;
 		}
 	}
 }
diff --git a/cbits/scanners.h b/cbits/scanners.h
--- a/cbits/scanners.h
+++ b/cbits/scanners.h
@@ -6,6 +6,7 @@
 #endif
 
 int _scan_at(int (*scanner)(const unsigned char *), cmark_chunk *c, int offset);
+int _scan_scheme(const unsigned char *p);
 int _scan_autolink_uri(const unsigned char *p);
 int _scan_autolink_email(const unsigned char *p);
 int _scan_html_tag(const unsigned char *p);
@@ -20,6 +21,7 @@
 int _scan_close_code_fence(const unsigned char *p);
 int _scan_entity(const unsigned char *p);
 
+#define scan_scheme(c, n) _scan_at(&_scan_scheme, c, n)
 #define scan_autolink_uri(c, n) _scan_at(&_scan_autolink_uri, c, n)
 #define scan_autolink_email(c, n) _scan_at(&_scan_autolink_email, c, n)
 #define scan_html_tag(c, n) _scan_at(&_scan_html_tag, c, n)
diff --git a/changelog b/changelog
new file mode 100644
--- /dev/null
+++ b/changelog
@@ -0,0 +1,13 @@
+cmark 0.3.1 (29 Mar 2015)
+
+  * Added nodeToCommonmark.
+  * Removed mtl from build-depends.
+  * Updated source info in README, cabal.
+  * Updated C sources.
+  * Put all the C functions in the IO monad, and ensure
+    that memory allocated by the C library is freed
+    at the right time.
+  * Added a rudimentary test suite.
+  * Properly free c-allocated resources.
+  * Removed bindings to nonexistent setters for source pos
+    attributes.
diff --git a/cmark.cabal b/cmark.cabal
--- a/cmark.cabal
+++ b/cmark.cabal
@@ -1,19 +1,19 @@
 name:                cmark
-version:             0.3.0.1
+version:             0.3.1
 synopsis:            Fast, accurate CommonMark (Markdown) parser and renderer
 description:
   This package provides Haskell bindings for
-  <http://github.com/jgm/cmark libcmark>, the reference
+  <https://github.com/jgm/cmark libcmark>, the reference
   parser for <http://commonmark.org CommonMark>, a fully
   specified variant of Markdown. It includes sources for
-  <http://github.com/jgm/cmark libcmark> (version 0.18.1)
-  and does not require prior installation of the C
-  library.
+  libcmark (as of commit f40e098, implementing version 0.18
+  of the CommonMark spec) and does not require prior
+  installation of the C library.
   .
   cmark provides the following advantages over existing
   Markdown libraries for Haskell:
   .
-  -   __Speed:__ Conversion speed is on par with the
+  -   Speed: Conversion speed is on par with the
       <https://hackage.haskell.org/package/sundown sundown>
       library. We were unable to measure precisely
       against
@@ -29,17 +29,15 @@
       and 2.8 times faster than
       <https://hackage.haskell.org/package/discount discount>.
   .
-  -   __Memory footprint:__ Memory footprint is on par
-      with
+  -   Memory footprint: Memory footprint is on par with
       <https://hackage.haskell.org/package/sundown sundown>.
-      On one sample, the library uses a fourth the memory
-      that
+      On one sample, the library uses a fourth the memory that
       <https://hackage.haskell.org/package/markdown markdown>
       uses, and less than a tenth the memory that
       <https://hackage.haskell.org/package/pandoc pandoc>
       uses.
   .
-  -   __Robustness:__ cmark can handle whatever is thrown
+  -   Robustness: cmark can handle whatever is thrown
       at it, without the exponential blowups in parsing
       time one can sometimes get with other libraries.
       (The input @bench\/full-sample.md@, for example,
@@ -49,10 +47,10 @@
       <https://hackage.haskell.org/package/markdown markdown>
       to grind to a halt.)
   .
-  -   __Accuracy:__ cmark passes the CommonMark spec\'s
+  -   Accuracy: cmark passes the CommonMark spec\'s
       suite of over 500 conformance tests.
   .
-  -   __Standardization:__ Since there is a spec and a
+  -   Standardization: Since there is a spec and a
       comprehensive suite of tests, we can have a high
       degree of confidence that any two CommonMark
       implementations will behave the same. Thus, for
@@ -61,7 +59,7 @@
       <http://github.com/jgm/commonmark.js commonmark.js>
       for client-side previewing.
   .
-  -   __Ease of installation:__ cmark is portable and has
+  -   Ease of installation: cmark is portable and has
       minimal dependencies.
   .
   cmark does not provide Haskell versions of the whole
@@ -72,12 +70,12 @@
   CommonMark to a @Node@ tree that can be processed
   further using Haskell.
   .
-  __A note on security:__ This library does not attempt
+  A note on security: This library does not attempt
   to sanitize HTML output. We recommend using
   <https://hackage.haskell.org/package/xss-sanitize xss-sanitize>
   to filter the output.
   .
-  __A note on stability:__ There is a good chance the API
+  A note on stability: There is a good chance the API
   will change significantly after this early release.
 
 homepage:            https://github.com/jgm/commonmark-hs
@@ -90,6 +88,7 @@
 tested-with:         GHC == 7.4.2, GHC == 7.6.3, GHC == 7.8.2
 build-type:          Simple
 extra-source-files:  README.md
+                     changelog
                      cbits/bench.h
                      cbits/chunk.h
                      cbits/cmark_export.h
@@ -119,29 +118,31 @@
 
 library
   exposed-modules:     CMark
-  build-depends:       base >=4.5 && < 4.9, mtl, text
+  build-depends:       base >=4.5 && < 4.9, text
   if impl(ghc < 7.6)
     build-depends:     ghc-prim >= 0.2
   default-language:    Haskell2010
-  ghc-options:         -Wall
+  ghc-options:         -Wall -fno-warn-unused-do-bind
+  cc-options:          -Wall -std=c99
   Include-dirs:        cbits
   Includes:            cmark.h
   c-sources:           cbits/houdini_html_u.c
-                       cbits/man.c
                        cbits/references.c
                        cbits/utf8.c
+                       cbits/inlines.c
                        cbits/blocks.c
                        cbits/cmark.c
-                       cbits/html.c
                        cbits/iterator.c
                        cbits/node.c
                        cbits/buffer.c
                        cbits/cmark_ctype.c
+                       cbits/houdini_html_e.c
                        cbits/houdini_href_e.c
                        cbits/scanners.c
+                       cbits/html.c
+                       cbits/man.c
+                       cbits/commonmark.c
                        cbits/xml.c
-                       cbits/houdini_html_e.c
-                       cbits/inlines.c
 
 benchmark bench-cmark
   type:             exitcode-stdio-1.0
@@ -156,3 +157,11 @@
                     blaze-html >= 0.7 && < 0.8
   ghc-options:      -O2
   default-language: Haskell2010
+
+Test-Suite test-cmark
+  type:           exitcode-stdio-1.0
+  main-is:        test-cmark.hs
+  hs-source-dirs: test
+  build-depends:  base, cmark, text, HUnit >= 1.2 && < 1.3
+  ghc-options:    -Wall -fno-warn-unused-do-bind -threaded
+  default-language: Haskell98
diff --git a/test/test-cmark.hs b/test/test-cmark.hs
new file mode 100644
--- /dev/null
+++ b/test/test-cmark.hs
@@ -0,0 +1,25 @@
+{-# LANGUAGE OverloadedStrings #-}
+
+import CMark
+import Test.HUnit
+import System.Exit
+import Data.Text ()
+
+main :: IO ()
+main = do
+  counts' <- runTestTT tests
+  case (errors counts' + failures counts') of
+       0 -> exitWith ExitSuccess
+       n -> exitWith (ExitFailure n)
+
+-- The C library has its own extensive tests.
+-- Here we just make sure it's basically working.
+tests :: Test
+tests = TestList [
+    "<h1>Hi</h1>\n" ~=? commonmarkToHtml [] "# Hi"
+  , "<p>dog’s</p>\n" ~=? commonmarkToHtml [optSmart] "dog's"
+  , ".RS\n.PP\nquote\n.RE\n" ~=? commonmarkToMan [] "> quote"
+  , (Node (Just (PosInfo {startLine = 1, startColumn = 1, endLine = 1, endColumn = 13})) DOCUMENT [Node (Just (PosInfo {startLine = 1, startColumn = 1, endLine = 1, endColumn = 13})) PARAGRAPH [Node Nothing (TEXT "Hello ") [],Node Nothing EMPH [Node Nothing (TEXT "world") []]]]) ~=? commonmarkToNode [] "Hello *world*"
+  , "> Hello\n> *world*\n" ~=? nodeToCommonmark [] 12 (Node Nothing DOCUMENT [Node Nothing BLOCK_QUOTE [Node Nothing PARAGRAPH [Node Nothing (TEXT "Hello ") [],Node Nothing EMPH [Node Nothing (TEXT "world") []]]]])
+  ]
+
