Index: trunk/vendor/github.com/Depado/bfchroma/v2/.drone.yml
===================================================================
--- trunk/vendor/github.com/Depado/bfchroma/v2/.drone.yml	(revision 67)
+++ 	(revision )
@@ -1,52 +1,0 @@
----
-kind: pipeline
-name: default
-type: docker
-
-steps:
-- name: test
-  image: golang:latest
-  volumes:
-  - name: deps
-    path: /go
-  commands:
-  - go test -race -coverprofile=coverage.txt -covermode=atomic
-
-- name: linter
-  image: golang:latest
-  volumes:
-    - name: deps
-      path: /go
-  commands:
-    - curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s
-    - ./bin/golangci-lint run --timeout 5m
-    - rm -r ./bin/
-
-- name: coverage
-  image: plugins/codecov
-  settings:
-    token:
-      from_secret: codecov_token
-    files:
-     - coverage.txt
-
-- name: telegram
-  image: appleboy/drone-telegram
-  settings:
-    to: 790376882
-    format: markdown
-    token:
-      from_secret: telegram_token
-    message: >
-      *{{repo.name}}*
-      [Build {{build.number}}]({{build.link}}) by {{commit.author}} {{#success build.status}}succeeded{{else}}failed{{/success}} in {{buildtime build.started}}
-      `{{truncate commit.sha 8}}`: "{{commit.message}}"
-  when:
-    status:
-    - success
-    - failure
-
-volumes:
-- name: deps
-  host:
-    path: /var/lib/cache/godeps/
Index: trunk/vendor/github.com/Depado/bfchroma/v2/.gitignore
===================================================================
--- trunk/vendor/github.com/Depado/bfchroma/v2/.gitignore	(revision 67)
+++ 	(revision )
@@ -1,17 +1,0 @@
-# Binaries for programs and plugins
-*.exe
-*.dll
-*.so
-*.dylib
-
-# Test binary, build with `go test -c`
-*.test
-
-# Output of the go coverage tool, specifically when used with LiteIDE
-*.out
-
-# Project-local glide cache, RE: https://github.com/Masterminds/glide/issues/736
-.glide/
-vendor/
-coverage.txt
-
Index: trunk/vendor/github.com/Depado/bfchroma/v2/LICENSE
===================================================================
--- trunk/vendor/github.com/Depado/bfchroma/v2/LICENSE	(revision 67)
+++ 	(revision )
@@ -1,21 +1,0 @@
-MIT License
-
-Copyright (c) 2017 
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
Index: trunk/vendor/github.com/Depado/bfchroma/v2/README.md
===================================================================
--- trunk/vendor/github.com/Depado/bfchroma/v2/README.md	(revision 67)
+++ 	(revision )
@@ -1,206 +1,0 @@
-# bfchroma
-
-[![forthebadge](https://forthebadge.com/images/badges/made-with-go.svg)](https://forthebadge.com)[![forthebadge](https://forthebadge.com/images/badges/built-with-love.svg)](https://forthebadge.com)
-
-[![Go Report Card](https://goreportcard.com/badge/github.com/Depado/bfchroma)](https://goreportcard.com/report/github.com/Depado/bfchroma)
-[![Build Status](https://drone.depa.do/api/badges/Depado/bfchroma/status.svg)](https://drone.depa.do/Depado/bfchroma)
-[![codecov](https://codecov.io/gh/Depado/bfchroma/branch/master/graph/badge.svg)](https://codecov.io/gh/Depado/bfchroma)
-[![License](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/Depado/bfchroma/blob/master/LICENSE)
-[![Godoc](https://godoc.org/github.com/Depado/bfchroma?status.svg)](https://godoc.org/github.com/Depado/bfchroma)
-[![Sourcegraph](https://sourcegraph.com/github.com/Depado/bfchroma/-/badge.svg)](https://sourcegraph.com/github.com/Depado/bfchroma?badge)
-[![Say Thanks!](https://img.shields.io/badge/Say%20Thanks-!-1EAEDB.svg)](https://saythanks.io/to/Depado)
-
-
-Integrating [Chroma](https://github.com/alecthomas/chroma) syntax highlighter as
-a [Blackfriday](https://github.com/russross/blackfriday) renderer.
-
-## Install and prerequisites
-
-This project requires and uses the `v2` version of 
-[Blackfriday](https://github.com/russross/blackfriday/tree/v2).
-
-```
-$ go get github.com/Depado/bfchroma
-```
-
-## Features
-
-This renderer integrates chroma to highlight code with triple backtick notation.
-It will try to use the given language when available otherwise it will try to
-detect the language. If none of these two method works it will fallback to sane
-defaults.
-
-## Usage
-
-bfchroma uses the functional options approach so you can customize the behavior
-of the renderer. It uses sane defaults when no option is passed so you can use
-the renderer simply by doing so :
-
-```go
-html := bf.Run([]byte(md), bf.WithRenderer(bfchroma.NewRenderer()))
-```
-
-### Options
-
-- `Style(s string)`  
-Define the style used by chroma for the rendering. The full list can be found [here](https://github.com/alecthomas/chroma/tree/master/styles)
-- `ChromaStyle(*chroma.Style)`  
-This option can be used to passe directly a `*chroma.Style` instead of the 
-string representing the style as with the `Style(string)` option. 
-- `WithoutAutodetect()`  
-By default when no language information is written in the code block, this 
-renderer will try to auto-detect the used language. This option disables
-this behavior and will fallback to a sane default when no language
-information is available.
-- `EmbedCSS()` 
-This option will embed CSS needed for chroma's `html.WithClasses()` at the beginning of blackfriday document. 
-CSS can also be extracted separately by calling `Renderer`'s.`ChromaCSS(w)` method, which will return styleshet for currently set style 
-- `Extend(bf.Renderer)`  
-This option allows to define the base blackfriday that will be extended.
-- `ChromaOptions(...html.Option)`  
-This option allows you to pass Chroma's html options in the renderer. Such
-options can be found [here](https://github.com/alecthomas/chroma#the-html-formatter).
-
-### Option examples
-
-Disabling language auto-detection and displaying line numbers
-
-```go
-r := bfchroma.NewRenderer(
-	bfchroma.WithoutAutodetect(),
-	bfchroma.ChromaOptions(html.WithLineNumbers()),
-)
-```
-
-Extend a blackfriday renderer
-
-```go
-b := bf.NewHTMLRenderer(bf.HTMLRendererParameters{
-	Flags: bf.CommonHTMLFlags,
-})
-
-r := bfchroma.NewRenderer(bfchroma.Extend(b))
-```
-
-Use a different style
-
-```go
-r := bfchroma.NewRenderer(bfchroma.Style("dracula"))
-// Or
-r = bfchroma.NewRenderer(bfchroma.ChromaStyle(styles.Dracula))
-```
-
-
-
-## Examples
-
-```go
-package main
-
-import (
-	"fmt"
-
-	"github.com/Depado/bfchroma"
-
-	bf "github.com/russross/blackfriday/v2"
-)
-
-var md = "This is some sample code.\n\n```go\n" +
-	`func main() {
-	fmt.Println("Hi")
-}
-` + "```"
-
-func main() {
-	html := bf.Run([]byte(md), bf.WithRenderer(bfchroma.NewRenderer()))
-	fmt.Println(string(html))
-}
-```
-
-
-Will output :
-
-```html
-<p>This is some sample code.</p>
-<pre style="color:#f8f8f2;background-color:#272822"><span style="color:#66d9ef">func</span> <span style="color:#a6e22e">main</span>() {
-<span style="color:#a6e22e">fmt</span>.<span style="color:#a6e22e">Println</span>(<span style="color:#e6db74">&#34;Hi&#34;</span>)
-}
-</pre>
-```
-
-## Real-life example
-
-In [smallblog](https://github.com/Depado/smallblog) I'm using bfchroma to render
-my articles. It's using a combination of both bfchroma's options and blackfriday
-extensions and flags.
-
-```go
-package main
-
-import (
-	"github.com/Depado/bfchroma"
-	"github.com/alecthomas/chroma/formatters/html"
-	bf "github.com/russross/blackfriday/v2"
-)
-
-// Defines the extensions that are used
-var exts = bf.NoIntraEmphasis | bf.Tables | bf.FencedCode | bf.Autolink |
-	bf.Strikethrough | bf.SpaceHeadings | bf.BackslashLineBreak |
-	bf.DefinitionLists | bf.Footnotes
-
-// Defines the HTML rendering flags that are used
-var flags = bf.UseXHTML | bf.Smartypants | bf.SmartypantsFractions |
-	bf.SmartypantsDashes | bf.SmartypantsLatexDashes | bf.TOC
-
-// render will take a []byte input and will render it using a new renderer each
-// time because reusing the same can mess with TOC and header IDs
-func render(input []byte) []byte {
-	return bf.Run(
-		input,
-		bf.WithRenderer(
-			bfchroma.NewRenderer(
-				bfchroma.WithoutAutodetect(),
-				bfchroma.ChromaOptions(
-					html.WithLineNumbers(),
-				),
-				bfchroma.Extend(
-					bf.NewHTMLRenderer(bf.HTMLRendererParameters{
-						Flags: flags,
-					}),
-				),
-			),
-		),
-		bf.WithExtensions(exts),
-	)
-}
-```
-
-## Classes
-
-If you have loads of code in your markdown, you might want to consider using
-`html.WithClasses()` in your `bfchroma.ChromaOptions()`. The CSS of the style
-you chose can then be accessed like this :
-
-```go
-r := bfchroma.NewRenderer(
-	bfchroma.WithoutAutodetect(),
-	bfchroma.Extend(
-		bf.NewHTMLRenderer(bf.HTMLRendererParameters{Flags: flags}),
-	),
-	bfchroma.Style("monokai"),
-	bfchroma.ChromaOptions(html.WithClasses()),
-)
-
-var css template.CSS
-
-b := new(bytes.Buffer)
-if err := r.ChromaCSS(b); err != nil {
-	logrus.WithError(err).Warning("Couldn't write CSS")
-}
-css = template.CSS(b.String())
-
-bf.Run(input, bf.WithRenderer(r), bf.WithExtensions(exts))
-```
-
-This way, you can pass your `css` var to any template and render it along the
-rendered markdown.
Index: trunk/vendor/github.com/Depado/bfchroma/v2/renderer.go
===================================================================
--- trunk/vendor/github.com/Depado/bfchroma/v2/renderer.go	(revision 67)
+++ 	(revision )
@@ -1,147 +1,0 @@
-// Package bfchroma provides an easy and extensible blackfriday renderer that
-// uses the chroma syntax highlighter to render code blocks.
-package bfchroma
-
-import (
-	"io"
-
-	"github.com/alecthomas/chroma/v2"
-	"github.com/alecthomas/chroma/v2/formatters/html"
-	"github.com/alecthomas/chroma/v2/lexers"
-	"github.com/alecthomas/chroma/v2/styles"
-	bf "github.com/russross/blackfriday/v2"
-)
-
-// Option defines the functional option type
-type Option func(r *Renderer)
-
-// Style is a function option allowing to set the style used by chroma
-// Default : "monokai"
-func Style(s string) Option {
-	return func(r *Renderer) {
-		r.Style = styles.Get(s)
-	}
-}
-
-// ChromaStyle is an option to directly set the style of the renderer using a
-// chroma style instead of a string
-func ChromaStyle(s *chroma.Style) Option {
-	return func(r *Renderer) {
-		r.Style = s
-	}
-}
-
-// WithoutAutodetect disables chroma's language detection when no codeblock
-// extra information is given. It will fallback to a sane default instead of
-// trying to detect the language.
-func WithoutAutodetect() Option {
-	return func(r *Renderer) {
-		r.Autodetect = false
-	}
-}
-
-// EmbedCSS will embed CSS needed for html.WithClasses() in beginning of the document
-func EmbedCSS() Option {
-	return func(r *Renderer) {
-		r.embedCSS = true
-	}
-}
-
-// ChromaOptions allows to pass Chroma html.Option such as Standalone()
-// WithClasses(), ClassPrefix(prefix)...
-func ChromaOptions(options ...html.Option) Option {
-	return func(r *Renderer) {
-		r.ChromaOptions = options
-	}
-}
-
-// Extend allows to specify the blackfriday renderer which is extended
-func Extend(br bf.Renderer) Option {
-	return func(r *Renderer) {
-		r.Base = br
-	}
-}
-
-// NewRenderer will return a new bfchroma renderer with sane defaults
-func NewRenderer(options ...Option) *Renderer {
-	r := &Renderer{
-		Base: bf.NewHTMLRenderer(bf.HTMLRendererParameters{
-			Flags: bf.CommonHTMLFlags,
-		}),
-		Style:      styles.Monokai,
-		Autodetect: true,
-	}
-	for _, option := range options {
-		option(r)
-	}
-	r.Formatter = html.New(r.ChromaOptions...)
-	return r
-}
-
-// RenderWithChroma will render the given text to the w io.Writer
-func (r *Renderer) RenderWithChroma(w io.Writer, text []byte, data bf.CodeBlockData) error {
-	var lexer chroma.Lexer
-
-	// Determining the lexer to use
-	if len(data.Info) > 0 {
-		lexer = lexers.Get(string(data.Info))
-	} else if r.Autodetect {
-		lexer = lexers.Analyse(string(text))
-	}
-	if lexer == nil {
-		lexer = lexers.Fallback
-	}
-
-	// Tokenize the code
-	iterator, err := lexer.Tokenise(nil, string(text))
-	if err != nil {
-		return err
-	}
-	return r.Formatter.Format(w, r.Style, iterator)
-}
-
-// Renderer is a custom Blackfriday renderer that uses the capabilities of
-// chroma to highlight code with triple backtick notation
-type Renderer struct {
-	Base          bf.Renderer
-	Autodetect    bool
-	ChromaOptions []html.Option
-	Style         *chroma.Style
-	Formatter     *html.Formatter
-	embedCSS      bool
-}
-
-// RenderNode satisfies the Renderer interface
-func (r *Renderer) RenderNode(w io.Writer, node *bf.Node, entering bool) bf.WalkStatus {
-	switch node.Type {
-	case bf.Document:
-		if entering && r.embedCSS {
-			w.Write([]byte("<style>"))       // nolint: errcheck
-			r.Formatter.WriteCSS(w, r.Style) // nolint: errcheck
-			w.Write([]byte("</style>"))      // nolint: errcheck
-		}
-		return r.Base.RenderNode(w, node, entering)
-	case bf.CodeBlock:
-		if err := r.RenderWithChroma(w, node.Literal, node.CodeBlockData); err != nil {
-			return r.Base.RenderNode(w, node, entering)
-		}
-		return bf.SkipChildren
-	default:
-		return r.Base.RenderNode(w, node, entering)
-	}
-}
-
-// RenderHeader satisfies the Renderer interface
-func (r *Renderer) RenderHeader(w io.Writer, ast *bf.Node) {
-	r.Base.RenderHeader(w, ast)
-}
-
-// RenderFooter satisfies the Renderer interface
-func (r *Renderer) RenderFooter(w io.Writer, ast *bf.Node) {
-	r.Base.RenderFooter(w, ast)
-}
-
-// ChromaCSS returns CSS used with chroma's html.WithClasses() option
-func (r *Renderer) ChromaCSS(w io.Writer) error {
-	return r.Formatter.WriteCSS(w, r.Style)
-}
Index: trunk/vendor/github.com/alecthomas/chroma/v2/.gitignore
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/.gitignore	(revision 67)
+++ 	(revision )
@@ -1,19 +1,0 @@
-# Binaries for programs and plugins
-*.exe
-*.dll
-*.so
-*.dylib
-/cmd/chroma/chroma
-
-# Test binary, build with `go test -c`
-*.test
-
-# Output of the go coverage tool, specifically when used with LiteIDE
-*.out
-
-# Project-local glide cache, RE: https://github.com/Masterminds/glide/issues/736
-.glide/
-
-_models/
-
-_examples/
Index: trunk/vendor/github.com/alecthomas/chroma/v2/.golangci.yml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/.golangci.yml	(revision 67)
+++ 	(revision )
@@ -1,78 +1,0 @@
-run:
-  tests: true
-  skip-dirs:
-    - _examples
-
-output:
-  print-issued-lines: false
-
-linters:
-  enable-all: true
-  disable:
-    - maligned
-    - megacheck
-    - lll
-    - gocyclo
-    - dupl
-    - gochecknoglobals
-    - funlen
-    - godox
-    - wsl
-    - gomnd
-    - gocognit
-    - goerr113
-    - nolintlint
-    - testpackage
-    - godot
-    - nestif
-    - paralleltest
-    - nlreturn
-    - cyclop
-    - exhaustivestruct
-    - gci
-    - gofumpt
-    - errorlint
-    - exhaustive
-    - ifshort
-    - wrapcheck
-    - stylecheck
-    - thelper
-
-linters-settings:
-  govet:
-    check-shadowing: true
-  gocyclo:
-    min-complexity: 10
-  dupl:
-    threshold: 100
-  goconst:
-    min-len: 8
-    min-occurrences: 3
-  forbidigo:
-    #forbid:
-    #  - (Must)?NewLexer$
-    exclude_godoc_examples: false
-
-
-issues:
-  max-per-linter: 0
-  max-same: 0
-  exclude-use-default: false
-  exclude:
-    # Captured by errcheck.
-    - '^(G104|G204):'
-    # Very commonly not checked.
-    - 'Error return value of .(.*\.Help|.*\.MarkFlagRequired|(os\.)?std(out|err)\..*|.*Close|.*Flush|os\.Remove(All)?|.*printf?|os\.(Un)?Setenv). is not checked'
-    - 'exported method (.*\.MarshalJSON|.*\.UnmarshalJSON|.*\.EntityURN|.*\.GoString|.*\.Pos) should have comment or be unexported'
-    - 'composite literal uses unkeyed fields'
-    - 'declaration of "err" shadows declaration'
-    - 'should not use dot imports'
-    - 'Potential file inclusion via variable'
-    - 'should have comment or be unexported'
-    - 'comment on exported var .* should be of the form'
-    - 'at least one file in a package should have a package comment'
-    - 'string literal contains the Unicode'
-    - 'methods on the same type should have the same receiver name'
-    - '_TokenType_name should be _TokenTypeName'
-    - '`_TokenType_map` should be `_TokenTypeMap`'
-    - 'rewrite if-else to switch statement'
Index: trunk/vendor/github.com/alecthomas/chroma/v2/.goreleaser.yml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/.goreleaser.yml	(revision 67)
+++ 	(revision )
@@ -1,37 +1,0 @@
-project_name: chroma
-release:
-  github:
-    owner: alecthomas
-    name: chroma
-brews:
-  -
-    install: bin.install "chroma"
-env:
-  - CGO_ENABLED=0
-builds:
-- goos:
-    - linux
-    - darwin
-    - windows
-  goarch:
-    - arm64
-    - amd64
-    - "386"
-  goarm:
-    - "6"
-  dir: ./cmd/chroma
-  main: .
-  ldflags: -s -w -X main.version={{.Version}} -X main.commit={{.Commit}} -X main.date={{.Date}}
-  binary: chroma
-archives:
-  -
-    format: tar.gz
-    name_template: '{{ .Binary }}-{{ .Version }}-{{ .Os }}-{{ .Arch }}{{ if .Arm }}v{{
-    .Arm }}{{ end }}'
-    files:
-      - COPYING
-      - README*
-snapshot:
-  name_template: SNAPSHOT-{{ .Commit }}
-checksum:
-  name_template: '{{ .ProjectName }}-{{ .Version }}-checksums.txt'
Index: trunk/vendor/github.com/alecthomas/chroma/v2/COPYING
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/COPYING	(revision 67)
+++ 	(revision )
@@ -1,19 +1,0 @@
-Copyright (C) 2017 Alec Thomas
-
-Permission is hereby granted, free of charge, to any person obtaining a copy of
-this software and associated documentation files (the "Software"), to deal in
-the Software without restriction, including without limitation the rights to
-use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
-of the Software, and to permit persons to whom the Software is furnished to do
-so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
Index: trunk/vendor/github.com/alecthomas/chroma/v2/Makefile
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/Makefile	(revision 67)
+++ 	(revision )
@@ -1,19 +1,0 @@
-.PHONY: chromad upload all
-
-VERSION ?= $(shell git describe --tags --dirty  --always)
-
-all: README.md tokentype_string.go
-
-README.md: lexers/*/*.go
-	./table.py
-
-tokentype_string.go: types.go
-	go generate
-
-chromad:
-	rm -f chromad
-	(export CGOENABLED=0 GOOS=linux GOARCH=amd64; cd ./cmd/chromad && go build -ldflags="-X 'main.version=$(VERSION)'" -o ../../chromad .)
-
-upload: chromad
-	scp chromad root@swapoff.org: && \
-		ssh root@swapoff.org 'install -m755 ./chromad /srv/http/swapoff.org/bin && service chromad restart'
Index: trunk/vendor/github.com/alecthomas/chroma/v2/README.md
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/README.md	(revision 67)
+++ 	(revision )
@@ -1,285 +1,0 @@
-# Chroma — A general purpose syntax highlighter in pure Go
-[![Golang Documentation](https://godoc.org/github.com/alecthomas/chroma?status.svg)](https://godoc.org/github.com/alecthomas/chroma) [![CI](https://github.com/alecthomas/chroma/actions/workflows/ci.yml/badge.svg)](https://github.com/alecthomas/chroma/actions/workflows/ci.yml) [![Slack chat](https://img.shields.io/static/v1?logo=slack&style=flat&label=slack&color=green&message=gophers)](https://invite.slack.golangbridge.org/)
-
-> **NOTE:** As Chroma has just been released, its API is still in flux. That said, the high-level interface should not change significantly.
-
-Chroma takes source code and other structured text and converts it into syntax
-highlighted HTML, ANSI-coloured text, etc.
-
-Chroma is based heavily on [Pygments](http://pygments.org/), and includes
-translators for Pygments lexers and styles.
-
-<a id="markdown-table-of-contents" name="table-of-contents"></a>
-## Table of Contents
-
-<!-- TOC -->
-
-1. [Table of Contents](#table-of-contents)
-2. [Supported languages](#supported-languages)
-3. [Try it](#try-it)
-4. [Using the library](#using-the-library)
-    1. [Quick start](#quick-start)
-    2. [Identifying the language](#identifying-the-language)
-    3. [Formatting the output](#formatting-the-output)
-    4. [The HTML formatter](#the-html-formatter)
-5. [More detail](#more-detail)
-    1. [Lexers](#lexers)
-    2. [Formatters](#formatters)
-    3. [Styles](#styles)
-6. [Command-line interface](#command-line-interface)
-7. [What's missing compared to Pygments?](#whats-missing-compared-to-pygments)
-
-<!-- /TOC -->
-
-<a id="markdown-supported-languages" name="supported-languages"></a>
-## Supported languages
-
-Prefix | Language
-:----: | --------
-A | ABAP, ABNF, ActionScript, ActionScript 3, Ada, Angular2, ANTLR, ApacheConf, APL, AppleScript, Arduino, Awk
-B | Ballerina, Base Makefile, Bash, Batchfile, BibTeX, Bicep, BlitzBasic, BNF, Brainfuck
-C | C, C#, C++, Caddyfile, Caddyfile Directives, Cap'n Proto, Cassandra CQL, Ceylon, CFEngine3, cfstatement, ChaiScript, Chapel, Cheetah, Clojure, CMake, COBOL, CoffeeScript, Common Lisp, Coq, Crystal, CSS, Cython
-D | D, Dart, Diff, Django/Jinja, Docker, DTD, Dylan
-E | EBNF, Elixir, Elm, EmacsLisp, Erlang
-F | Factor, Fish, Forth, Fortran, FSharp
-G | GAS, GDScript, Genshi, Genshi HTML, Genshi Text, Gherkin, GLSL, Gnuplot, Go, Go HTML Template, Go Text Template, GraphQL, Groff, Groovy
-H | Handlebars, Haskell, Haxe, HCL, Hexdump, HLB, HTML, HTTP, Hy
-I | Idris, Igor, INI, Io
-J | J, Java, JavaScript, JSON, Julia, Jungle
-K | Kotlin
-L | Lighttpd configuration file, LLVM, Lua
-M | Mako, markdown, Mason, Mathematica, Matlab, MiniZinc, MLIR, Modula-2, MonkeyC, MorrowindScript, Myghty, MySQL
-N | NASM, Newspeak, Nginx configuration file, Nim, Nix
-O | Objective-C, OCaml, Octave, OnesEnterprise, OpenEdge ABL, OpenSCAD, Org Mode
-P | PacmanConf, Perl, PHP, PHTML, Pig, PkgConfig, PL/pgSQL, plaintext, Pony, PostgreSQL SQL dialect, PostScript, POVRay, PowerShell, Prolog, PromQL, Properties, Protocol Buffer, Puppet, Python 2, Python
-Q | QBasic
-R | R, Racket, Ragel, Raku, react, ReasonML, reg, reStructuredText, Rexx, Ruby, Rust
-S | SAS, Sass, Scala, Scheme, Scilab, SCSS, Smalltalk, Smarty, Snobol, Solidity, SPARQL, SQL, SquidConf, Standard ML, Stylus, Svelte, Swift, SYSTEMD, systemverilog
-T | TableGen, TASM, Tcl, Tcsh, Termcap, Terminfo, Terraform, TeX, Thrift, TOML, TradingView, Transact-SQL, Turing, Turtle, Twig, TypeScript, TypoScript, TypoScriptCssData, TypoScriptHtmlData
-V | VB.net, verilog, VHDL, VimL, vue
-W | WDTE
-X | XML, Xorg
-Y | YAML, YANG
-Z | Zig
-
-
-_I will attempt to keep this section up to date, but an authoritative list can be
-displayed with `chroma --list`._
-
-<a id="markdown-try-it" name="try-it"></a>
-## Try it
-
-Try out various languages and styles on the [Chroma Playground](https://swapoff.org/chroma/playground/).
-
-<a id="markdown-using-the-library" name="using-the-library"></a>
-## Using the library
-
-Chroma, like Pygments, has the concepts of
-[lexers](https://github.com/alecthomas/chroma/tree/master/lexers),
-[formatters](https://github.com/alecthomas/chroma/tree/master/formatters) and
-[styles](https://github.com/alecthomas/chroma/tree/master/styles).
-
-Lexers convert source text into a stream of tokens, styles specify how token
-types are mapped to colours, and formatters convert tokens and styles into
-formatted output.
-
-A package exists for each of these, containing a global `Registry` variable
-with all of the registered implementations. There are also helper functions
-for using the registry in each package, such as looking up lexers by name or
-matching filenames, etc.
-
-In all cases, if a lexer, formatter or style can not be determined, `nil` will
-be returned. In this situation you may want to default to the `Fallback`
-value in each respective package, which provides sane defaults.
-
-<a id="markdown-quick-start" name="quick-start"></a>
-### Quick start
-
-A convenience function exists that can be used to simply format some source
-text, without any effort:
-
-```go
-err := quick.Highlight(os.Stdout, someSourceCode, "go", "html", "monokai")
-```
-
-<a id="markdown-identifying-the-language" name="identifying-the-language"></a>
-### Identifying the language
-
-To highlight code, you'll first have to identify what language the code is
-written in. There are three primary ways to do that:
-
-1. Detect the language from its filename.
-
-    ```go
-    lexer := lexers.Match("foo.go")
-    ```
-
-3. Explicitly specify the language by its Chroma syntax ID (a full list is available from `lexers.Names()`).
-
-    ```go
-    lexer := lexers.Get("go")
-    ```
-
-3. Detect the language from its content.
-
-    ```go
-    lexer := lexers.Analyse("package main\n\nfunc main()\n{\n}\n")
-    ```
-
-In all cases, `nil` will be returned if the language can not be identified.
-
-```go
-if lexer == nil {
-  lexer = lexers.Fallback
-}
-```
-
-At this point, it should be noted that some lexers can be extremely chatty. To
-mitigate this, you can use the coalescing lexer to coalesce runs of identical
-token types into a single token:
-
-```go
-lexer = chroma.Coalesce(lexer)
-```
-
-<a id="markdown-formatting-the-output" name="formatting-the-output"></a>
-### Formatting the output
-
-Once a language is identified you will need to pick a formatter and a style (theme).
-
-```go
-style := styles.Get("swapoff")
-if style == nil {
-  style = styles.Fallback
-}
-formatter := formatters.Get("html")
-if formatter == nil {
-  formatter = formatters.Fallback
-}
-```
-
-Then obtain an iterator over the tokens:
-
-```go
-contents, err := ioutil.ReadAll(r)
-iterator, err := lexer.Tokenise(nil, string(contents))
-```
-
-And finally, format the tokens from the iterator:
-
-```go
-err := formatter.Format(w, style, iterator)
-```
-
-<a id="markdown-the-html-formatter" name="the-html-formatter"></a>
-### The HTML formatter
-
-By default the `html` registered formatter generates standalone HTML with
-embedded CSS. More flexibility is available through the `formatters/html` package.
-
-Firstly, the output generated by the formatter can be customised with the
-following constructor options:
-
-- `Standalone()` - generate standalone HTML with embedded CSS.
-- `WithClasses()` - use classes rather than inlined style attributes.
-- `ClassPrefix(prefix)` - prefix each generated CSS class.
-- `TabWidth(width)` - Set the rendered tab width, in characters.
-- `WithLineNumbers()` - Render line numbers (style with `LineNumbers`).
-- `LinkableLineNumbers()` - Make the line numbers linkable and be a link to themselves.
-- `HighlightLines(ranges)` - Highlight lines in these ranges (style with `LineHighlight`).
-- `LineNumbersInTable()` - Use a table for formatting line numbers and code, rather than spans.
-
-If `WithClasses()` is used, the corresponding CSS can be obtained from the formatter with:
-
-```go
-formatter := html.New(html.WithClasses(true))
-err := formatter.WriteCSS(w, style)
-```
-
-<a id="markdown-more-detail" name="more-detail"></a>
-## More detail
-
-<a id="markdown-lexers" name="lexers"></a>
-### Lexers
-
-See the [Pygments documentation](http://pygments.org/docs/lexerdevelopment/)
-for details on implementing lexers. Most concepts apply directly to Chroma,
-but see existing lexer implementations for real examples.
-
-In many cases lexers can be automatically converted directly from Pygments by
-using the included Python 3 script `pygments2chroma.py`. I use something like
-the following:
-
-```sh
-python3 _tools/pygments2chroma.py \
-  pygments.lexers.jvm.KotlinLexer \
-  > lexers/k/kotlin.go \
-  && gofmt -s -w lexers/k/kotlin.go
-```
-
-See notes in [pygments-lexers.txt](https://github.com/alecthomas/chroma/blob/master/pygments-lexers.txt)
-for a list of lexers, and notes on some of the issues importing them.
-
-<a id="markdown-formatters" name="formatters"></a>
-### Formatters
-
-Chroma supports HTML output, as well as terminal output in 8 colour, 256 colour, and true-colour.
-
-A `noop` formatter is included that outputs the token text only, and a `tokens`
-formatter outputs raw tokens. The latter is useful for debugging lexers.
-
-<a id="markdown-styles" name="styles"></a>
-### Styles
-
-Chroma styles use the [same syntax](http://pygments.org/docs/styles/) as Pygments.
-
-All Pygments styles have been converted to Chroma using the `_tools/style.py` script.
-
-When you work with one of [Chroma's styles](https://github.com/alecthomas/chroma/tree/master/styles), know that the `chroma.Background` token type provides the default style for tokens. It does so by defining a foreground color and background color.
-
-For example, this gives each token name not defined in the style a default color of `#f8f8f8` and uses `#000000` for the highlighted code block's background:
-
-~~~go
-chroma.Background: "#f8f8f2 bg:#000000",
-~~~
-
-Also, token types in a style file are hierarchical. For instance, when `CommentSpecial` is not defined, Chroma uses the token style from `Comment`. So when several comment tokens use the same color, you'll only need to define `Comment` and override the one that has a different color.
-
-For a quick overview of the available styles and how they look, check out the [Chroma Style Gallery](https://xyproto.github.io/splash/docs/).
-
-<a id="markdown-command-line-interface" name="command-line-interface"></a>
-## Command-line interface
-
-A command-line interface to Chroma is included.
-
-Binaries are available to install from [the releases page](https://github.com/alecthomas/chroma/releases).
-
-The CLI can be used as a preprocessor to colorise output of `less(1)`,
-see documentation for the `LESSOPEN` environment variable.
-
-The `--fail` flag can be used to suppress output and return with exit status
-1 to facilitate falling back to some other preprocessor in case chroma
-does not resolve a specific lexer to use for the given file. For example:
-
-```shell
-export LESSOPEN='| p() { chroma --fail "$1" || cat "$1"; }; p "%s"'
-```
-
-Replace `cat` with your favourite fallback preprocessor.
-
-When invoked as `.lessfilter`, the `--fail` flag is automatically turned
-on under the hood for easy integration with [lesspipe shipping with
-Debian and derivatives](https://manpages.debian.org/lesspipe#USER_DEFINED_FILTERS);
-for that setup the `chroma` executable can be just symlinked to `~/.lessfilter`.
-
-<a id="markdown-whats-missing-compared-to-pygments" name="whats-missing-compared-to-pygments"></a>
-## What's missing compared to Pygments?
-
-- Quite a few lexers, for various reasons (pull-requests welcome):
-    - Pygments lexers for complex languages often include custom code to
-      handle certain aspects, such as Raku's ability to nest code inside
-      regular expressions. These require time and effort to convert.
-    - I mostly only converted languages I had heard of, to reduce the porting cost.
-- Some more esoteric features of Pygments are omitted for simplicity.
-- Though the Chroma API supports content detection, very few languages support them.
-  I have plans to implement a statistical analyser at some point, but not enough time.
Index: trunk/vendor/github.com/alecthomas/chroma/v2/coalesce.go
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/coalesce.go	(revision 67)
+++ 	(revision )
@@ -1,35 +1,0 @@
-package chroma
-
-// Coalesce is a Lexer interceptor that collapses runs of common types into a single token.
-func Coalesce(lexer Lexer) Lexer { return &coalescer{lexer} }
-
-type coalescer struct{ Lexer }
-
-func (d *coalescer) Tokenise(options *TokeniseOptions, text string) (Iterator, error) {
-	var prev Token
-	it, err := d.Lexer.Tokenise(options, text)
-	if err != nil {
-		return nil, err
-	}
-	return func() Token {
-		for token := it(); token != (EOF); token = it() {
-			if len(token.Value) == 0 {
-				continue
-			}
-			if prev == EOF {
-				prev = token
-			} else {
-				if prev.Type == token.Type && len(prev.Value) < 8192 {
-					prev.Value += token.Value
-				} else {
-					out := prev
-					prev = token
-					return out
-				}
-			}
-		}
-		out := prev
-		prev = EOF
-		return out
-	}, nil
-}
Index: trunk/vendor/github.com/alecthomas/chroma/v2/colour.go
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/colour.go	(revision 67)
+++ 	(revision )
@@ -1,192 +1,0 @@
-package chroma
-
-import (
-	"fmt"
-	"math"
-	"strconv"
-	"strings"
-)
-
-// ANSI2RGB maps ANSI colour names, as supported by Chroma, to hex RGB values.
-var ANSI2RGB = map[string]string{
-	"#ansiblack":     "000000",
-	"#ansidarkred":   "7f0000",
-	"#ansidarkgreen": "007f00",
-	"#ansibrown":     "7f7fe0",
-	"#ansidarkblue":  "00007f",
-	"#ansipurple":    "7f007f",
-	"#ansiteal":      "007f7f",
-	"#ansilightgray": "e5e5e5",
-	// Normal
-	"#ansidarkgray":  "555555",
-	"#ansired":       "ff0000",
-	"#ansigreen":     "00ff00",
-	"#ansiyellow":    "ffff00",
-	"#ansiblue":      "0000ff",
-	"#ansifuchsia":   "ff00ff",
-	"#ansiturquoise": "00ffff",
-	"#ansiwhite":     "ffffff",
-
-	// Aliases without the "ansi" prefix, because...why?
-	"#black":     "000000",
-	"#darkred":   "7f0000",
-	"#darkgreen": "007f00",
-	"#brown":     "7f7fe0",
-	"#darkblue":  "00007f",
-	"#purple":    "7f007f",
-	"#teal":      "007f7f",
-	"#lightgray": "e5e5e5",
-	// Normal
-	"#darkgray":  "555555",
-	"#red":       "ff0000",
-	"#green":     "00ff00",
-	"#yellow":    "ffff00",
-	"#blue":      "0000ff",
-	"#fuchsia":   "ff00ff",
-	"#turquoise": "00ffff",
-	"#white":     "ffffff",
-}
-
-// Colour represents an RGB colour.
-type Colour int32
-
-// NewColour creates a Colour directly from RGB values.
-func NewColour(r, g, b uint8) Colour {
-	return ParseColour(fmt.Sprintf("%02x%02x%02x", r, g, b))
-}
-
-// Distance between this colour and another.
-//
-// This uses the approach described here (https://www.compuphase.com/cmetric.htm).
-// This is not as accurate as LAB, et. al. but is *vastly* simpler and sufficient for our needs.
-func (c Colour) Distance(e2 Colour) float64 {
-	ar, ag, ab := int64(c.Red()), int64(c.Green()), int64(c.Blue())
-	br, bg, bb := int64(e2.Red()), int64(e2.Green()), int64(e2.Blue())
-	rmean := (ar + br) / 2
-	r := ar - br
-	g := ag - bg
-	b := ab - bb
-	return math.Sqrt(float64((((512 + rmean) * r * r) >> 8) + 4*g*g + (((767 - rmean) * b * b) >> 8)))
-}
-
-// Brighten returns a copy of this colour with its brightness adjusted.
-//
-// If factor is negative, the colour is darkened.
-//
-// Uses approach described here (http://www.pvladov.com/2012/09/make-color-lighter-or-darker.html).
-func (c Colour) Brighten(factor float64) Colour {
-	r := float64(c.Red())
-	g := float64(c.Green())
-	b := float64(c.Blue())
-
-	if factor < 0 {
-		factor++
-		r *= factor
-		g *= factor
-		b *= factor
-	} else {
-		r = (255-r)*factor + r
-		g = (255-g)*factor + g
-		b = (255-b)*factor + b
-	}
-	return NewColour(uint8(r), uint8(g), uint8(b))
-}
-
-// BrightenOrDarken brightens a colour if it is < 0.5 brightness or darkens if > 0.5 brightness.
-func (c Colour) BrightenOrDarken(factor float64) Colour {
-	if c.Brightness() < 0.5 {
-		return c.Brighten(factor)
-	}
-	return c.Brighten(-factor)
-}
-
-// ClampBrightness returns a copy of this colour with its brightness adjusted such that
-// it falls within the range [min, max] (or very close to it due to rounding errors).
-// The supplied values use the same [0.0, 1.0] range as Brightness.
-func (c Colour) ClampBrightness(min, max float64) Colour {
-	if !c.IsSet() {
-		return c
-	}
-
-	min = math.Max(min, 0)
-	max = math.Min(max, 1)
-	current := c.Brightness()
-	target := math.Min(math.Max(current, min), max)
-	if current == target {
-		return c
-	}
-
-	r := float64(c.Red())
-	g := float64(c.Green())
-	b := float64(c.Blue())
-	rgb := r + g + b
-	if target > current {
-		// Solve for x: target == ((255-r)*x + r + (255-g)*x + g + (255-b)*x + b) / 255 / 3
-		return c.Brighten((target*255*3 - rgb) / (255*3 - rgb))
-	}
-	// Solve for x: target == (r*(x+1) + g*(x+1) + b*(x+1)) / 255 / 3
-	return c.Brighten((target*255*3)/rgb - 1)
-}
-
-// Brightness of the colour (roughly) in the range 0.0 to 1.0.
-func (c Colour) Brightness() float64 {
-	return (float64(c.Red()) + float64(c.Green()) + float64(c.Blue())) / 255.0 / 3.0
-}
-
-// ParseColour in the forms #rgb, #rrggbb, #ansi<colour>, or #<colour>.
-// Will return an "unset" colour if invalid.
-func ParseColour(colour string) Colour {
-	colour = normaliseColour(colour)
-	n, err := strconv.ParseUint(colour, 16, 32)
-	if err != nil {
-		return 0
-	}
-	return Colour(n + 1)
-}
-
-// MustParseColour is like ParseColour except it panics if the colour is invalid.
-//
-// Will panic if colour is in an invalid format.
-func MustParseColour(colour string) Colour {
-	parsed := ParseColour(colour)
-	if !parsed.IsSet() {
-		panic(fmt.Errorf("invalid colour %q", colour))
-	}
-	return parsed
-}
-
-// IsSet returns true if the colour is set.
-func (c Colour) IsSet() bool { return c != 0 }
-
-func (c Colour) String() string   { return fmt.Sprintf("#%06x", int(c-1)) }
-func (c Colour) GoString() string { return fmt.Sprintf("Colour(0x%06x)", int(c-1)) }
-
-// Red component of colour.
-func (c Colour) Red() uint8 { return uint8(((c - 1) >> 16) & 0xff) }
-
-// Green component of colour.
-func (c Colour) Green() uint8 { return uint8(((c - 1) >> 8) & 0xff) }
-
-// Blue component of colour.
-func (c Colour) Blue() uint8 { return uint8((c - 1) & 0xff) }
-
-// Colours is an orderable set of colours.
-type Colours []Colour
-
-func (c Colours) Len() int           { return len(c) }
-func (c Colours) Swap(i, j int)      { c[i], c[j] = c[j], c[i] }
-func (c Colours) Less(i, j int) bool { return c[i] < c[j] }
-
-// Convert colours to #rrggbb.
-func normaliseColour(colour string) string {
-	if ansi, ok := ANSI2RGB[colour]; ok {
-		return ansi
-	}
-	if strings.HasPrefix(colour, "#") {
-		colour = colour[1:]
-		if len(colour) == 3 {
-			return colour[0:1] + colour[0:1] + colour[1:2] + colour[1:2] + colour[2:3] + colour[2:3]
-		}
-	}
-	return colour
-}
Index: trunk/vendor/github.com/alecthomas/chroma/v2/delegate.go
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/delegate.go	(revision 67)
+++ 	(revision )
@@ -1,152 +1,0 @@
-package chroma
-
-import (
-	"bytes"
-)
-
-type delegatingLexer struct {
-	root     Lexer
-	language Lexer
-}
-
-// DelegatingLexer combines two lexers to handle the common case of a language embedded inside another, such as PHP
-// inside HTML or PHP inside plain text.
-//
-// It takes two lexer as arguments: a root lexer and a language lexer.  First everything is scanned using the language
-// lexer, which must return "Other" for unrecognised tokens. Then all "Other" tokens are lexed using the root lexer.
-// Finally, these two sets of tokens are merged.
-//
-// The lexers from the template lexer package use this base lexer.
-func DelegatingLexer(root Lexer, language Lexer) Lexer {
-	return &delegatingLexer{
-		root:     root,
-		language: language,
-	}
-}
-
-func (d *delegatingLexer) AnalyseText(text string) float32 {
-	return d.root.AnalyseText(text)
-}
-
-func (d *delegatingLexer) SetAnalyser(analyser func(text string) float32) Lexer {
-	d.root.SetAnalyser(analyser)
-	return d
-}
-
-func (d *delegatingLexer) SetRegistry(r *LexerRegistry) Lexer {
-	d.root.SetRegistry(r)
-	d.language.SetRegistry(r)
-	return d
-}
-
-func (d *delegatingLexer) Config() *Config {
-	return d.language.Config()
-}
-
-// An insertion is the character range where language tokens should be inserted.
-type insertion struct {
-	start, end int
-	tokens     []Token
-}
-
-func (d *delegatingLexer) Tokenise(options *TokeniseOptions, text string) (Iterator, error) { // nolint: gocognit
-	tokens, err := Tokenise(Coalesce(d.language), options, text)
-	if err != nil {
-		return nil, err
-	}
-	// Compute insertions and gather "Other" tokens.
-	others := &bytes.Buffer{}
-	insertions := []*insertion{}
-	var insert *insertion
-	offset := 0
-	var last Token
-	for _, t := range tokens {
-		if t.Type == Other {
-			if last != EOF && insert != nil && last.Type != Other {
-				insert.end = offset
-			}
-			others.WriteString(t.Value)
-		} else {
-			if last == EOF || last.Type == Other {
-				insert = &insertion{start: offset}
-				insertions = append(insertions, insert)
-			}
-			insert.tokens = append(insert.tokens, t)
-		}
-		last = t
-		offset += len(t.Value)
-	}
-
-	if len(insertions) == 0 {
-		return d.root.Tokenise(options, text)
-	}
-
-	// Lex the other tokens.
-	rootTokens, err := Tokenise(Coalesce(d.root), options, others.String())
-	if err != nil {
-		return nil, err
-	}
-
-	// Interleave the two sets of tokens.
-	var out []Token
-	offset = 0 // Offset into text.
-	tokenIndex := 0
-	nextToken := func() Token {
-		if tokenIndex >= len(rootTokens) {
-			return EOF
-		}
-		t := rootTokens[tokenIndex]
-		tokenIndex++
-		return t
-	}
-	insertionIndex := 0
-	nextInsertion := func() *insertion {
-		if insertionIndex >= len(insertions) {
-			return nil
-		}
-		i := insertions[insertionIndex]
-		insertionIndex++
-		return i
-	}
-	t := nextToken()
-	i := nextInsertion()
-	for t != EOF || i != nil {
-		// fmt.Printf("%d->%d:%q   %d->%d:%q\n", offset, offset+len(t.Value), t.Value, i.start, i.end, Stringify(i.tokens...))
-		if t == EOF || (i != nil && i.start < offset+len(t.Value)) {
-			var l Token
-			l, t = splitToken(t, i.start-offset)
-			if l != EOF {
-				out = append(out, l)
-				offset += len(l.Value)
-			}
-			out = append(out, i.tokens...)
-			offset += i.end - i.start
-			if t == EOF {
-				t = nextToken()
-			}
-			i = nextInsertion()
-		} else {
-			out = append(out, t)
-			offset += len(t.Value)
-			t = nextToken()
-		}
-	}
-	return Literator(out...), nil
-}
-
-func splitToken(t Token, offset int) (l Token, r Token) {
-	if t == EOF {
-		return EOF, EOF
-	}
-	if offset == 0 {
-		return EOF, t
-	}
-	if offset == len(t.Value) {
-		return t, EOF
-	}
-	l = t.Clone()
-	r = t.Clone()
-	l.Value = l.Value[:offset]
-	r.Value = r.Value[offset:]
-	return
-}
Index: trunk/vendor/github.com/alecthomas/chroma/v2/doc.go
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/doc.go	(revision 67)
+++ 	(revision )
@@ -1,7 +1,0 @@
-// Package chroma takes source code and other structured text and converts it into syntax highlighted HTML, ANSI-
-// coloured text, etc.
-//
-// Chroma is based heavily on Pygments, and includes translators for Pygments lexers and styles.
-//
-// For more information, go here: https://github.com/alecthomas/chroma
-package chroma
Index: trunk/vendor/github.com/alecthomas/chroma/v2/emitters.go
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/emitters.go	(revision 67)
+++ 	(revision )
@@ -1,221 +1,0 @@
-package chroma
-
-import (
-	"fmt"
-)
-
-// An Emitter takes group matches and returns tokens.
-type Emitter interface {
-	// Emit tokens for the given regex groups.
-	Emit(groups []string, state *LexerState) Iterator
-}
-
-// SerialisableEmitter is an Emitter that can be serialised and deserialised to/from JSON.
-type SerialisableEmitter interface {
-	Emitter
-	EmitterKind() string
-}
-
-// EmitterFunc is a function that is an Emitter.
-type EmitterFunc func(groups []string, state *LexerState) Iterator
-
-// Emit tokens for groups.
-func (e EmitterFunc) Emit(groups []string, state *LexerState) Iterator {
-	return e(groups, state)
-}
-
-type Emitters []Emitter
-
-type byGroupsEmitter struct {
-	Emitters
-}
-
-// ByGroups emits a token for each matching group in the rule's regex.
-func ByGroups(emitters ...Emitter) Emitter {
-	return &byGroupsEmitter{Emitters: emitters}
-}
-
-func (b *byGroupsEmitter) EmitterKind() string { return "bygroups" }
-
-func (b *byGroupsEmitter) Emit(groups []string, state *LexerState) Iterator {
-	iterators := make([]Iterator, 0, len(groups)-1)
-	if len(b.Emitters) != len(groups)-1 {
-		iterators = append(iterators, Error.Emit(groups, state))
-		// panic(errors.Errorf("number of groups %q does not match number of emitters %v", groups, emitters))
-	} else {
-		for i, group := range groups[1:] {
-			if b.Emitters[i] != nil {
-				iterators = append(iterators, b.Emitters[i].Emit([]string{group}, state))
-			}
-		}
-	}
-	return Concaterator(iterators...)
-}
-
-// ByGroupNames emits a token for each named matching group in the rule's regex.
-func ByGroupNames(emitters map[string]Emitter) Emitter {
-	return EmitterFunc(func(groups []string, state *LexerState) Iterator {
-		iterators := make([]Iterator, 0, len(state.NamedGroups)-1)
-		if len(state.NamedGroups)-1 == 0 {
-			if emitter, ok := emitters[`0`]; ok {
-				iterators = append(iterators, emitter.Emit(groups, state))
-			} else {
-				iterators = append(iterators, Error.Emit(groups, state))
-			}
-		} else {
-			ruleRegex := state.Rules[state.State][state.Rule].Regexp
-			for i := 1; i < len(state.NamedGroups); i++ {
-				groupName := ruleRegex.GroupNameFromNumber(i)
-				group := state.NamedGroups[groupName]
-				if emitter, ok := emitters[groupName]; ok {
-					if emitter != nil {
-						iterators = append(iterators, emitter.Emit([]string{group}, state))
-					}
-				} else {
-					iterators = append(iterators, Error.Emit([]string{group}, state))
-				}
-			}
-		}
-		return Concaterator(iterators...)
-	})
-}
-
-// UsingByGroup emits tokens for the matched groups in the regex using a
-// "sublexer". Used when lexing code blocks where the name of a sublexer is
-// contained within the block, for example on a Markdown text block or SQL
-// language block.
-//
-// The sublexer will be retrieved using sublexerGetFunc (typically
-// internal.Get), using the captured value from the matched sublexerNameGroup.
-//
-// If sublexerGetFunc returns a non-nil lexer for the captured sublexerNameGroup,
-// then tokens for the matched codeGroup will be emitted using the retrieved
-// lexer. Otherwise, if the sublexer is nil, then tokens will be emitted from
-// the passed emitter.
-//
-// Example:
-//
-// 	var Markdown = internal.Register(MustNewLexer(
-// 		&Config{
-// 			Name:      "markdown",
-// 			Aliases:   []string{"md", "mkd"},
-// 			Filenames: []string{"*.md", "*.mkd", "*.markdown"},
-// 			MimeTypes: []string{"text/x-markdown"},
-// 		},
-// 		Rules{
-// 			"root": {
-// 				{"^(```)(\\w+)(\\n)([\\w\\W]*?)(^```$)",
-// 					UsingByGroup(
-// 						internal.Get,
-// 						2, 4,
-// 						String, String, String, Text, String,
-// 					),
-// 					nil,
-// 				},
-// 			},
-// 		},
-// 	))
-//
-// See the lexers/m/markdown.go for the complete example.
-//
-// Note: panic's if the number of emitters does not equal the number of matched
-// groups in the regex.
-func UsingByGroup(sublexerNameGroup, codeGroup int, emitters ...Emitter) Emitter {
-	return &usingByGroup{
-		SublexerNameGroup: sublexerNameGroup,
-		CodeGroup:         codeGroup,
-		Emitters:          emitters,
-	}
-}
-
-type usingByGroup struct {
-	SublexerNameGroup int      `xml:"sublexer_name_group"`
-	CodeGroup         int      `xml:"code_group"`
-	Emitters          Emitters `xml:"emitters"`
-}
-
-func (u *usingByGroup) EmitterKind() string { return "usingbygroup" }
-func (u *usingByGroup) Emit(groups []string, state *LexerState) Iterator {
-	// bounds check
-	if len(u.Emitters) != len(groups)-1 {
-		panic("UsingByGroup expects number of emitters to be the same as len(groups)-1")
-	}
-
-	// grab sublexer
-	sublexer := state.Registry.Get(groups[u.SublexerNameGroup])
-
-	// build iterators
-	iterators := make([]Iterator, len(groups)-1)
-	for i, group := range groups[1:] {
-		if i == u.CodeGroup-1 && sublexer != nil {
-			var err error
-			iterators[i], err = sublexer.Tokenise(nil, groups[u.CodeGroup])
-			if err != nil {
-				panic(err)
-			}
-		} else if u.Emitters[i] != nil {
-			iterators[i] = u.Emitters[i].Emit([]string{group}, state)
-		}
-	}
-	return Concaterator(iterators...)
-}
-
-// UsingLexer returns an Emitter that uses a given Lexer for parsing and emitting.
-//
-// This Emitter is not serialisable.
-func UsingLexer(lexer Lexer) Emitter {
-	return EmitterFunc(func(groups []string, _ *LexerState) Iterator {
-		it, err := lexer.Tokenise(&TokeniseOptions{State: "root", Nested: true}, groups[0])
-		if err != nil {
-			panic(err)
-		}
-		return it
-	})
-}
-
-type usingEmitter struct {
-	Lexer string `xml:"lexer,attr"`
-}
-
-func (u *usingEmitter) EmitterKind() string { return "using" }
-
-func (u *usingEmitter) Emit(groups []string, state *LexerState) Iterator {
-	if state.Registry == nil {
-		panic(fmt.Sprintf("no LexerRegistry available for Using(%q)", u.Lexer))
-	}
-	lexer := state.Registry.Get(u.Lexer)
-	if lexer == nil {
-		panic(fmt.Sprintf("no such lexer %q", u.Lexer))
-	}
-	it, err := lexer.Tokenise(&TokeniseOptions{State: "root", Nested: true}, groups[0])
-	if err != nil {
-		panic(err)
-	}
-	return it
-}
-
-// Using returns an Emitter that uses a given Lexer reference for parsing and emitting.
-//
-// The referenced lexer must be stored in the same LexerRegistry.
-func Using(lexer string) Emitter {
-	return &usingEmitter{Lexer: lexer}
-}
-
-type usingSelfEmitter struct {
-	State string `xml:"state,attr"`
-}
-
-func (u *usingSelfEmitter) EmitterKind() string { return "usingself" }
-
-func (u *usingSelfEmitter) Emit(groups []string, state *LexerState) Iterator {
-	it, err := state.Lexer.Tokenise(&TokeniseOptions{State: u.State, Nested: true}, groups[0])
-	if err != nil {
-		panic(err)
-	}
-	return it
-}
-
-// UsingSelf is like Using, but uses the current Lexer.
-func UsingSelf(stateName string) Emitter {
-	return &usingSelfEmitter{stateName}
-}
Index: trunk/vendor/github.com/alecthomas/chroma/v2/formatter.go
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/formatter.go	(revision 67)
+++ 	(revision )
@@ -1,43 +1,0 @@
-package chroma
-
-import (
-	"io"
-)
-
-// A Formatter for Chroma lexers.
-type Formatter interface {
-	// Format returns a formatting function for tokens.
-	//
-	// If the iterator panics, the Formatter should recover.
-	Format(w io.Writer, style *Style, iterator Iterator) error
-}
-
-// A FormatterFunc is a Formatter implemented as a function.
-//
-// Guards against iterator panics.
-type FormatterFunc func(w io.Writer, style *Style, iterator Iterator) error
-
-func (f FormatterFunc) Format(w io.Writer, s *Style, it Iterator) (err error) { // nolint
-	defer func() {
-		if perr := recover(); perr != nil {
-			err = perr.(error)
-		}
-	}()
-	return f(w, s, it)
-}
-
-type recoveringFormatter struct {
-	Formatter
-}
-
-func (r recoveringFormatter) Format(w io.Writer, s *Style, it Iterator) (err error) {
-	defer func() {
-		if perr := recover(); perr != nil {
-			err = perr.(error)
-		}
-	}()
-	return r.Formatter.Format(w, s, it)
-}
-
-// RecoveringFormatter wraps a formatter with panic recovery.
-func RecoveringFormatter(formatter Formatter) Formatter { return recoveringFormatter{formatter} }
Index: trunk/vendor/github.com/alecthomas/chroma/v2/formatters/html/html.go
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/formatters/html/html.go	(revision 67)
+++ 	(revision )
@@ -1,563 +1,0 @@
-package html
-
-import (
-	"fmt"
-	"html"
-	"io"
-	"sort"
-	"strings"
-
-	"github.com/alecthomas/chroma/v2"
-)
-
-// Option sets an option of the HTML formatter.
-type Option func(f *Formatter)
-
-// Standalone configures the HTML formatter for generating a standalone HTML document.
-func Standalone(b bool) Option { return func(f *Formatter) { f.standalone = b } }
-
-// ClassPrefix sets the CSS class prefix.
-func ClassPrefix(prefix string) Option { return func(f *Formatter) { f.prefix = prefix } }
-
-// WithClasses emits HTML using CSS classes, rather than inline styles.
-func WithClasses(b bool) Option { return func(f *Formatter) { f.Classes = b } }
-
-// WithAllClasses disables an optimisation that omits redundant CSS classes.
-func WithAllClasses(b bool) Option { return func(f *Formatter) { f.allClasses = b } }
-
-// WithCustomCSS sets user's custom CSS styles.
-func WithCustomCSS(css map[chroma.TokenType]string) Option {
-	return func(f *Formatter) {
-		f.customCSS = css
-	}
-}
-
-// TabWidth sets the number of characters for a tab. Defaults to 8.
-func TabWidth(width int) Option { return func(f *Formatter) { f.tabWidth = width } }
-
-// PreventSurroundingPre prevents the surrounding pre tags around the generated code.
-func PreventSurroundingPre(b bool) Option {
-	return func(f *Formatter) {
-		f.preventSurroundingPre = b
-
-		if b {
-			f.preWrapper = nopPreWrapper
-		} else {
-			f.preWrapper = defaultPreWrapper
-		}
-	}
-}
-
-// InlineCode creates inline code wrapped in a code tag.
-func InlineCode(b bool) Option {
-	return func(f *Formatter) {
-		f.inlineCode = b
-		f.preWrapper = preWrapper{
-			start: func(code bool, styleAttr string) string {
-				if code {
-					return fmt.Sprintf(`<code%s>`, styleAttr)
-				}
-
-				return ``
-			},
-			end: func(code bool) string {
-				if code {
-					return `</code>`
-				}
-
-				return ``
-			},
-		}
-	}
-}
-
-// WithPreWrapper allows control of the surrounding pre tags.
-func WithPreWrapper(wrapper PreWrapper) Option {
-	return func(f *Formatter) {
-		f.preWrapper = wrapper
-	}
-}
-
-// WrapLongLines wraps long lines.
-func WrapLongLines(b bool) Option {
-	return func(f *Formatter) {
-		f.wrapLongLines = b
-	}
-}
-
-// WithLineNumbers formats output with line numbers.
-func WithLineNumbers(b bool) Option {
-	return func(f *Formatter) {
-		f.lineNumbers = b
-	}
-}
-
-// LineNumbersInTable will, when combined with WithLineNumbers, separate the line numbers
-// and code in table td's, which make them copy-and-paste friendly.
-func LineNumbersInTable(b bool) Option {
-	return func(f *Formatter) {
-		f.lineNumbersInTable = b
-	}
-}
-
-// LinkableLineNumbers decorates the line numbers HTML elements with an "id"
-// attribute so they can be linked.
-func LinkableLineNumbers(b bool, prefix string) Option {
-	return func(f *Formatter) {
-		f.linkableLineNumbers = b
-		f.lineNumbersIDPrefix = prefix
-	}
-}
-
-// HighlightLines higlights the given line ranges with the Highlight style.
-//
-// A range is the beginning and ending of a range as 1-based line numbers, inclusive.
-func HighlightLines(ranges [][2]int) Option {
-	return func(f *Formatter) {
-		f.highlightRanges = ranges
-		sort.Sort(f.highlightRanges)
-	}
-}
-
-// BaseLineNumber sets the initial number to start line numbering at. Defaults to 1.
-func BaseLineNumber(n int) Option {
-	return func(f *Formatter) {
-		f.baseLineNumber = n
-	}
-}
-
-// New HTML formatter.
-func New(options ...Option) *Formatter {
-	f := &Formatter{
-		baseLineNumber: 1,
-		preWrapper:     defaultPreWrapper,
-	}
-	for _, option := range options {
-		option(f)
-	}
-	return f
-}
-
-// PreWrapper defines the operations supported in WithPreWrapper.
-type PreWrapper interface {
-	// Start is called to write a start <pre> element.
-	// The code flag tells whether this block surrounds
-	// highlighted code. This will be false when surrounding
-	// line numbers.
-	Start(code bool, styleAttr string) string
-
-	// End is called to write the end </pre> element.
-	End(code bool) string
-}
-
-type preWrapper struct {
-	start func(code bool, styleAttr string) string
-	end   func(code bool) string
-}
-
-func (p preWrapper) Start(code bool, styleAttr string) string {
-	return p.start(code, styleAttr)
-}
-
-func (p preWrapper) End(code bool) string {
-	return p.end(code)
-}
-
-var (
-	nopPreWrapper = preWrapper{
-		start: func(code bool, styleAttr string) string { return "" },
-		end:   func(code bool) string { return "" },
-	}
-	defaultPreWrapper = preWrapper{
-		start: func(code bool, styleAttr string) string {
-			if code {
-				return fmt.Sprintf(`<pre tabindex="0"%s><code>`, styleAttr)
-			}
-
-			return fmt.Sprintf(`<pre tabindex="0"%s>`, styleAttr)
-		},
-		end: func(code bool) string {
-			if code {
-				return `</code></pre>`
-			}
-
-			return `</pre>`
-		},
-	}
-)
-
-// Formatter that generates HTML.
-type Formatter struct {
-	standalone            bool
-	prefix                string
-	Classes               bool // Exported field to detect when classes are being used
-	allClasses            bool
-	customCSS             map[chroma.TokenType]string
-	preWrapper            PreWrapper
-	inlineCode            bool
-	preventSurroundingPre bool
-	tabWidth              int
-	wrapLongLines         bool
-	lineNumbers           bool
-	lineNumbersInTable    bool
-	linkableLineNumbers   bool
-	lineNumbersIDPrefix   string
-	highlightRanges       highlightRanges
-	baseLineNumber        int
-}
-
-type highlightRanges [][2]int
-
-func (h highlightRanges) Len() int           { return len(h) }
-func (h highlightRanges) Swap(i, j int)      { h[i], h[j] = h[j], h[i] }
-func (h highlightRanges) Less(i, j int) bool { return h[i][0] < h[j][0] }
-
-func (f *Formatter) Format(w io.Writer, style *chroma.Style, iterator chroma.Iterator) (err error) {
-	return f.writeHTML(w, style, iterator.Tokens())
-}
-
-// We deliberately don't use html/template here because it is two orders of magnitude slower (benchmarked).
-//
-// OTOH we need to be super careful about correct escaping...
-func (f *Formatter) writeHTML(w io.Writer, style *chroma.Style, tokens []chroma.Token) (err error) { // nolint: gocyclo
-	css := f.styleToCSS(style)
-	if !f.Classes {
-		for t, style := range css {
-			css[t] = compressStyle(style)
-		}
-	}
-	if f.standalone {
-		fmt.Fprint(w, "<html>\n")
-		if f.Classes {
-			fmt.Fprint(w, "<style type=\"text/css\">\n")
-			err = f.WriteCSS(w, style)
-			if err != nil {
-				return err
-			}
-			fmt.Fprintf(w, "body { %s; }\n", css[chroma.Background])
-			fmt.Fprint(w, "</style>")
-		}
-		fmt.Fprintf(w, "<body%s>\n", f.styleAttr(css, chroma.Background))
-	}
-
-	wrapInTable := f.lineNumbers && f.lineNumbersInTable
-
-	lines := chroma.SplitTokensIntoLines(tokens)
-	lineDigits := len(fmt.Sprintf("%d", f.baseLineNumber+len(lines)-1))
-	highlightIndex := 0
-
-	if wrapInTable {
-		// List line numbers in its own <td>
-		fmt.Fprintf(w, "<div%s>\n", f.styleAttr(css, chroma.PreWrapper))
-		fmt.Fprintf(w, "<table%s><tr>", f.styleAttr(css, chroma.LineTable))
-		fmt.Fprintf(w, "<td%s>\n", f.styleAttr(css, chroma.LineTableTD))
-		fmt.Fprintf(w, f.preWrapper.Start(false, f.styleAttr(css, chroma.PreWrapper)))
-		for index := range lines {
-			line := f.baseLineNumber + index
-			highlight, next := f.shouldHighlight(highlightIndex, line)
-			if next {
-				highlightIndex++
-			}
-			if highlight {
-				fmt.Fprintf(w, "<span%s>", f.styleAttr(css, chroma.LineHighlight))
-			}
-
-			fmt.Fprintf(w, "<span%s%s>%s\n</span>", f.styleAttr(css, chroma.LineNumbersTable), f.lineIDAttribute(line), f.lineTitleWithLinkIfNeeded(lineDigits, line))
-
-			if highlight {
-				fmt.Fprintf(w, "</span>")
-			}
-		}
-		fmt.Fprint(w, f.preWrapper.End(false))
-		fmt.Fprint(w, "</td>\n")
-		fmt.Fprintf(w, "<td%s>\n", f.styleAttr(css, chroma.LineTableTD, "width:100%"))
-	}
-
-	fmt.Fprintf(w, f.preWrapper.Start(true, f.styleAttr(css, chroma.PreWrapper)))
-
-	highlightIndex = 0
-	for index, tokens := range lines {
-		// 1-based line number.
-		line := f.baseLineNumber + index
-		highlight, next := f.shouldHighlight(highlightIndex, line)
-		if next {
-			highlightIndex++
-		}
-
-		if !(f.preventSurroundingPre || f.inlineCode) {
-			// Start of Line
-			fmt.Fprint(w, `<span`)
-
-			if highlight {
-				// Line + LineHighlight
-				if f.Classes {
-					fmt.Fprintf(w, ` class="%s %s"`, f.class(chroma.Line), f.class(chroma.LineHighlight))
-				} else {
-					fmt.Fprintf(w, ` style="%s %s"`, css[chroma.Line], css[chroma.LineHighlight])
-				}
-				fmt.Fprint(w, `>`)
-			} else {
-				fmt.Fprintf(w, "%s>", f.styleAttr(css, chroma.Line))
-			}
-
-			// Line number
-			if f.lineNumbers && !wrapInTable {
-				fmt.Fprintf(w, "<span%s%s>%s</span>", f.styleAttr(css, chroma.LineNumbers), f.lineIDAttribute(line), f.lineTitleWithLinkIfNeeded(lineDigits, line))
-			}
-
-			fmt.Fprintf(w, `<span%s>`, f.styleAttr(css, chroma.CodeLine))
-		}
-
-		for _, token := range tokens {
-			html := html.EscapeString(token.String())
-			attr := f.styleAttr(css, token.Type)
-			if attr != "" {
-				html = fmt.Sprintf("<span%s>%s</span>", attr, html)
-			}
-			fmt.Fprint(w, html)
-		}
-
-		if !(f.preventSurroundingPre || f.inlineCode) {
-			fmt.Fprint(w, `</span>`) // End of CodeLine
-
-			fmt.Fprint(w, `</span>`) // End of Line
-		}
-	}
-	fmt.Fprintf(w, f.preWrapper.End(true))
-
-	if wrapInTable {
-		fmt.Fprint(w, "</td></tr></table>\n")
-		fmt.Fprint(w, "</div>\n")
-	}
-
-	if f.standalone {
-		fmt.Fprint(w, "\n</body>\n")
-		fmt.Fprint(w, "</html>\n")
-	}
-
-	return nil
-}
-
-func (f *Formatter) lineIDAttribute(line int) string {
-	if !f.linkableLineNumbers {
-		return ""
-	}
-	return fmt.Sprintf(" id=\"%s\"", f.lineID(line))
-}
-
-func (f *Formatter) lineTitleWithLinkIfNeeded(lineDigits, line int) string {
-	title := fmt.Sprintf("%*d", lineDigits, line)
-	if !f.linkableLineNumbers {
-		return title
-	}
-	return fmt.Sprintf("<a style=\"outline: none; text-decoration:none; color:inherit\" href=\"#%s\">%s</a>", f.lineID(line), title)
-}
-
-func (f *Formatter) lineID(line int) string {
-	return fmt.Sprintf("%s%d", f.lineNumbersIDPrefix, line)
-}
-
-func (f *Formatter) shouldHighlight(highlightIndex, line int) (bool, bool) {
-	next := false
-	for highlightIndex < len(f.highlightRanges) && line > f.highlightRanges[highlightIndex][1] {
-		highlightIndex++
-		next = true
-	}
-	if highlightIndex < len(f.highlightRanges) {
-		hrange := f.highlightRanges[highlightIndex]
-		if line >= hrange[0] && line <= hrange[1] {
-			return true, next
-		}
-	}
-	return false, next
-}
-
-func (f *Formatter) class(t chroma.TokenType) string {
-	for t != 0 {
-		if cls, ok := chroma.StandardTypes[t]; ok {
-			if cls != "" {
-				return f.prefix + cls
-			}
-			return ""
-		}
-		t = t.Parent()
-	}
-	if cls := chroma.StandardTypes[t]; cls != "" {
-		return f.prefix + cls
-	}
-	return ""
-}
-
-func (f *Formatter) styleAttr(styles map[chroma.TokenType]string, tt chroma.TokenType, extraCSS ...string) string {
-	if f.Classes {
-		cls := f.class(tt)
-		if cls == "" {
-			return ""
-		}
-		return fmt.Sprintf(` class="%s"`, cls)
-	}
-	if _, ok := styles[tt]; !ok {
-		tt = tt.SubCategory()
-		if _, ok := styles[tt]; !ok {
-			tt = tt.Category()
-			if _, ok := styles[tt]; !ok {
-				return ""
-			}
-		}
-	}
-	css := []string{styles[tt]}
-	css = append(css, extraCSS...)
-	return fmt.Sprintf(` style="%s"`, strings.Join(css, ";"))
-}
-
-func (f *Formatter) tabWidthStyle() string {
-	if f.tabWidth != 0 && f.tabWidth != 8 {
-		return fmt.Sprintf("-moz-tab-size: %[1]d; -o-tab-size: %[1]d; tab-size: %[1]d;", f.tabWidth)
-	}
-	return ""
-}
-
-// WriteCSS writes CSS style definitions (without any surrounding HTML).
-func (f *Formatter) WriteCSS(w io.Writer, style *chroma.Style) error {
-	css := f.styleToCSS(style)
-	// Special-case background as it is mapped to the outer ".chroma" class.
-	if _, err := fmt.Fprintf(w, "/* %s */ .%sbg { %s }\n", chroma.Background, f.prefix, css[chroma.Background]); err != nil {
-		return err
-	}
-	// Special-case PreWrapper as it is the ".chroma" class.
-	if _, err := fmt.Fprintf(w, "/* %s */ .%schroma { %s }\n", chroma.PreWrapper, f.prefix, css[chroma.PreWrapper]); err != nil {
-		return err
-	}
-	// Special-case code column of table to expand width.
-	if f.lineNumbers && f.lineNumbersInTable {
-		if _, err := fmt.Fprintf(w, "/* %s */ .%schroma .%s:last-child { width: 100%%; }",
-			chroma.LineTableTD, f.prefix, f.class(chroma.LineTableTD)); err != nil {
-			return err
-		}
-	}
-	// Special-case line number highlighting when targeted.
-	if f.lineNumbers || f.lineNumbersInTable {
-		targetedLineCSS := StyleEntryToCSS(style.Get(chroma.LineHighlight))
-		for _, tt := range []chroma.TokenType{chroma.LineNumbers, chroma.LineNumbersTable} {
-			fmt.Fprintf(w, "/* %s targeted by URL anchor */ .%schroma .%s:target { %s }\n", tt, f.prefix, f.class(tt), targetedLineCSS)
-		}
-	}
-	tts := []int{}
-	for tt := range css {
-		tts = append(tts, int(tt))
-	}
-	sort.Ints(tts)
-	for _, ti := range tts {
-		tt := chroma.TokenType(ti)
-		switch tt {
-		case chroma.Background, chroma.PreWrapper:
-			continue
-		}
-		class := f.class(tt)
-		if class == "" {
-			continue
-		}
-		styles := css[tt]
-		if _, err := fmt.Fprintf(w, "/* %s */ .%schroma .%s { %s }\n", tt, f.prefix, class, styles); err != nil {
-			return err
-		}
-	}
-	return nil
-}
-
-func (f *Formatter) styleToCSS(style *chroma.Style) map[chroma.TokenType]string {
-	classes := map[chroma.TokenType]string{}
-	bg := style.Get(chroma.Background)
-	// Convert the style.
-	for t := range chroma.StandardTypes {
-		entry := style.Get(t)
-		if t != chroma.Background {
-			entry = entry.Sub(bg)
-		}
-
-		// Inherit from custom CSS provided by user
-		tokenCategory := t.Category()
-		tokenSubCategory := t.SubCategory()
-		if t != tokenCategory {
-			if css, ok := f.customCSS[tokenCategory]; ok {
-				classes[t] = css
-			}
-		}
-		if tokenCategory != tokenSubCategory {
-			if css, ok := f.customCSS[tokenSubCategory]; ok {
-				classes[t] += css
-			}
-		}
-		// Add custom CSS provided by user
-		if css, ok := f.customCSS[t]; ok {
-			classes[t] += css
-		}
-
-		if !f.allClasses && entry.IsZero() && classes[t] == `` {
-			continue
-		}
-
-		styleEntryCSS := StyleEntryToCSS(entry)
-		if styleEntryCSS != `` && classes[t] != `` {
-			styleEntryCSS += `;`
-		}
-		classes[t] = styleEntryCSS + classes[t]
-	}
-	classes[chroma.Background] += `;` + f.tabWidthStyle()
-	classes[chroma.PreWrapper] += classes[chroma.Background]
-	// Make PreWrapper a grid to show highlight style with full width.
-	if len(f.highlightRanges) > 0 && f.customCSS[chroma.PreWrapper] == `` {
-		classes[chroma.PreWrapper] += `display: grid;`
-	}
-	// Make PreWrapper wrap long lines.
-	if f.wrapLongLines {
-		classes[chroma.PreWrapper] += `white-space: pre-wrap; word-break: break-word;`
-	}
-	lineNumbersStyle := `white-space: pre; user-select: none; margin-right: 0.4em; padding: 0 0.4em 0 0.4em;`
-	// All rules begin with default rules followed by user provided rules
-	classes[chroma.Line] = `display: flex;` + classes[chroma.Line]
-	classes[chroma.LineNumbers] = lineNumbersStyle + classes[chroma.LineNumbers]
-	classes[chroma.LineNumbersTable] = lineNumbersStyle + classes[chroma.LineNumbersTable]
-	classes[chroma.LineTable] = "border-spacing: 0; padding: 0; margin: 0; border: 0;" + classes[chroma.LineTable]
-	classes[chroma.LineTableTD] = "vertical-align: top; padding: 0; margin: 0; border: 0;" + classes[chroma.LineTableTD]
-	return classes
-}
-
-// StyleEntryToCSS converts a chroma.StyleEntry to CSS attributes.
-func StyleEntryToCSS(e chroma.StyleEntry) string {
-	styles := []string{}
-	if e.Colour.IsSet() {
-		styles = append(styles, "color: "+e.Colour.String())
-	}
-	if e.Background.IsSet() {
-		styles = append(styles, "background-color: "+e.Background.String())
-	}
-	if e.Bold == chroma.Yes {
-		styles = append(styles, "font-weight: bold")
-	}
-	if e.Italic == chroma.Yes {
-		styles = append(styles, "font-style: italic")
-	}
-	if e.Underline == chroma.Yes {
-		styles = append(styles, "text-decoration: underline")
-	}
-	return strings.Join(styles, "; ")
-}
-
-// Compress CSS attributes - remove spaces, transform 6-digit colours to 3.
-func compressStyle(s string) string {
-	parts := strings.Split(s, ";")
-	out := []string{}
-	for _, p := range parts {
-		p = strings.Join(strings.Fields(p), " ")
-		p = strings.Replace(p, ": ", ":", 1)
-		if strings.Contains(p, "#") {
-			c := p[len(p)-6:]
-			if c[0] == c[1] && c[2] == c[3] && c[4] == c[5] {
-				p = p[:len(p)-6] + c[0:1] + c[2:3] + c[4:5]
-			}
-		}
-		out = append(out, p)
-	}
-	return strings.Join(out, ";")
-}
Index: trunk/vendor/github.com/alecthomas/chroma/v2/iterator.go
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/iterator.go	(revision 67)
+++ 	(revision )
@@ -1,76 +1,0 @@
-package chroma
-
-import "strings"
-
-// An Iterator across tokens.
-//
-// EOF will be returned at the end of the Token stream.
-//
-// If an error occurs within an Iterator, it may propagate this in a panic. Formatters should recover.
-type Iterator func() Token
-
-// Tokens consumes all tokens from the iterator and returns them as a slice.
-func (i Iterator) Tokens() []Token {
-	var out []Token
-	for t := i(); t != EOF; t = i() {
-		out = append(out, t)
-	}
-	return out
-}
-
-// Concaterator concatenates tokens from a series of iterators.
-func Concaterator(iterators ...Iterator) Iterator {
-	return func() Token {
-		for len(iterators) > 0 {
-			t := iterators[0]()
-			if t != EOF {
-				return t
-			}
-			iterators = iterators[1:]
-		}
-		return EOF
-	}
-}
-
-// Literator converts a sequence of literal Tokens into an Iterator.
-func Literator(tokens ...Token) Iterator {
-	return func() Token {
-		if len(tokens) == 0 {
-			return EOF
-		}
-		token := tokens[0]
-		tokens = tokens[1:]
-		return token
-	}
-}
-
-// SplitTokensIntoLines splits tokens containing newlines in two.
-func SplitTokensIntoLines(tokens []Token) (out [][]Token) {
-	var line []Token // nolint: prealloc
-	for _, token := range tokens {
-		for strings.Contains(token.Value, "\n") {
-			parts := strings.SplitAfterN(token.Value, "\n", 2)
-			// Token becomes the tail.
-			token.Value = parts[1]
-
-			// Append the head to the line and flush the line.
-			clone := token.Clone()
-			clone.Value = parts[0]
-			line = append(line, clone)
-			out = append(out, line)
-			line = nil
-		}
-		line = append(line, token)
-	}
-	if len(line) > 0 {
-		out = append(out, line)
-	}
-	// Strip empty trailing token line.
-	if len(out) > 0 {
-		last := out[len(out)-1]
-		if len(last) == 1 && last[0].Value == "" {
-			out = out[:len(out)-1]
-		}
-	}
-	return
-}
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexer.go
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexer.go	(revision 67)
+++ 	(revision )
@@ -1,142 +1,0 @@
-package chroma
-
-import (
-	"fmt"
-	"strings"
-)
-
-var (
-	defaultOptions = &TokeniseOptions{
-		State:    "root",
-		EnsureLF: true,
-	}
-)
-
-// Config for a lexer.
-type Config struct {
-	// Name of the lexer.
-	Name string `xml:"name,omitempty"`
-
-	// Shortcuts for the lexer
-	Aliases []string `xml:"alias,omitempty"`
-
-	// File name globs
-	Filenames []string `xml:"filename,omitempty"`
-
-	// Secondary file name globs
-	AliasFilenames []string `xml:"alias_filename,omitempty"`
-
-	// MIME types
-	MimeTypes []string `xml:"mime_type,omitempty"`
-
-	// Regex matching is case-insensitive.
-	CaseInsensitive bool `xml:"case_insensitive,omitempty"`
-
-	// Regex matches all characters.
-	DotAll bool `xml:"dot_all,omitempty"`
-
-	// Regex does not match across lines ($ matches EOL).
-	//
-	// Defaults to multiline.
-	NotMultiline bool `xml:"not_multiline,omitempty"`
-
-	// Don't strip leading and trailing newlines from the input.
-	// DontStripNL bool
-
-	// Strip all leading and trailing whitespace from the input
-	// StripAll bool
-
-	// Make sure that the input ends with a newline. This
-	// is required for some lexers that consume input linewise.
-	EnsureNL bool `xml:"ensure_nl,omitempty"`
-
-	// If given and greater than 0, expand tabs in the input.
-	// TabSize int
-
-	// Priority of lexer.
-	//
-	// If this is 0 it will be treated as a default of 1.
-	Priority float32 `xml:"priority,omitempty"`
-}
-
-// Token output to formatter.
-type Token struct {
-	Type  TokenType `json:"type"`
-	Value string    `json:"value"`
-}
-
-func (t *Token) String() string   { return t.Value }
-func (t *Token) GoString() string { return fmt.Sprintf("&Token{%s, %q}", t.Type, t.Value) }
-
-// Clone returns a clone of the Token.
-func (t *Token) Clone() Token {
-	return *t
-}
-
-// EOF is returned by lexers at the end of input.
-var EOF Token
-
-// TokeniseOptions contains options for tokenisers.
-type TokeniseOptions struct {
-	// State to start tokenisation in. Defaults to "root".
-	State string
-	// Nested tokenisation.
-	Nested bool
-
-	// If true, all EOLs are converted into LF
-	// by replacing CRLF and CR
-	EnsureLF bool
-}
-
-// A Lexer for tokenising source code.
-type Lexer interface {
-	// Config describing the features of the Lexer.
-	Config() *Config
-	// Tokenise returns an Iterator over tokens in text.
-	Tokenise(options *TokeniseOptions, text string) (Iterator, error)
-	// SetRegistry sets the registry this Lexer is associated with.
-	//
-	// The registry should be used by the Lexer if it needs to look up other
-	// lexers.
-	SetRegistry(registry *LexerRegistry) Lexer
-	// SetAnalyser sets a function the Lexer should use for scoring how
-	// likely a fragment of text is to match this lexer, between 0.0 and 1.0.
-	// A value of 1 indicates high confidence.
-	//
-	// Lexers may ignore this if they implement their own analysers.
-	SetAnalyser(analyser func(text string) float32) Lexer
-	// AnalyseText scores how likely a fragment of text is to match
-	// this lexer, between 0.0 and 1.0. A value of 1 indicates high confidence.
-	AnalyseText(text string) float32
-}
-
-// Lexers is a slice of lexers sortable by name.
-type Lexers []Lexer
-
-func (l Lexers) Len() int      { return len(l) }
-func (l Lexers) Swap(i, j int) { l[i], l[j] = l[j], l[i] }
-func (l Lexers) Less(i, j int) bool {
-	return strings.ToLower(l[i].Config().Name) < strings.ToLower(l[j].Config().Name)
-}
-
-// PrioritisedLexers is a slice of lexers sortable by priority.
-type PrioritisedLexers []Lexer
-
-func (l PrioritisedLexers) Len() int      { return len(l) }
-func (l PrioritisedLexers) Swap(i, j int) { l[i], l[j] = l[j], l[i] }
-func (l PrioritisedLexers) Less(i, j int) bool {
-	ip := l[i].Config().Priority
-	if ip == 0 {
-		ip = 1
-	}
-	jp := l[j].Config().Priority
-	if jp == 0 {
-		jp = 1
-	}
-	return ip > jp
-}
-
-// Analyser determines how appropriate this lexer is for the given text.
-type Analyser interface {
-	AnalyseText(text string) float32
-}
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/README.md
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/README.md	(revision 67)
+++ 	(revision )
@@ -1,40 +1,0 @@
-# Lexer tests
-
-The tests in this directory feed a known input `testdata/<name>.actual` into the parser for `<name>` and check
-that its output matches `<name>.exported`.
-
-It is also possible to perform several tests on a same parser `<name>`, by placing know inputs `*.actual` into a
-directory `testdata/<name>/`.
-
-## Running the tests
-
-Run the tests as normal:
-```go
-go test ./lexers
-```
-
-## Update existing tests
-When you add a new test data file (`*.actual`), you need to regenerate all tests. That's how Chroma creates the `*.expected` test file based on the corresponding lexer.
-
-To regenerate all tests, type in your terminal:
-
-```go
-RECORD=true go test ./lexers
-```
-
-This first sets the `RECORD` environment variable to `true`. Then it runs `go test` on the `./lexers` directory of the Chroma project.
-
-(That environment variable tells Chroma it needs to output test data. After running `go test ./lexers` you can remove or reset that variable.)
-
-### Windows users
-Windows users will find that the `RECORD=true go test ./lexers` command fails in both the standard command prompt terminal and in PowerShell.
-
-Instead we have to perform both steps separately:
-
-- Set the `RECORD` environment variable to `true`.
-	+ In the regular command prompt window, the `set` command sets an environment variable for the current session: `set RECORD=true`. See [this page](https://superuser.com/questions/212150/how-to-set-env-variable-in-windows-cmd-line) for more.
-	+ In PowerShell, you can use the `$env:RECORD = 'true'` command for that. See [this article](https://mcpmag.com/articles/2019/03/28/environment-variables-in-powershell.aspx) for more.
-	+ You can also make a persistent environment variable by hand in the Windows computer settings. See [this article](https://www.computerhope.com/issues/ch000549.htm) for how.
-- When the environment variable is set, run `go tests ./lexers`.
-
-Chroma will now regenerate the test files and print its results to the console window.
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/bash.go
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/bash.go	(revision 67)
+++ 	(revision )
@@ -1,17 +1,0 @@
-package lexers
-
-import (
-	"regexp"
-)
-
-// TODO(moorereason): can this be factored away?
-var bashAnalyserRe = regexp.MustCompile(`(?m)^#!.*/bin/(?:env |)(?:bash|zsh|sh|ksh)`)
-
-func init() { // nolint: gochecknoinits
-	Get("bash").SetAnalyser(func(text string) float32 {
-		if bashAnalyserRe.FindString(text) != "" {
-			return 1.0
-		}
-		return 0.0
-	})
-}
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/bashsession.go
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/bashsession.go	(revision 67)
+++ 	(revision )
@@ -1,26 +1,0 @@
-package lexers
-
-import (
-	. "github.com/alecthomas/chroma/v2" // nolint
-)
-
-// BashSession lexer.
-var BashSession = Register(MustNewLexer(
-	&Config{
-		Name:      "BashSession",
-		Aliases:   []string{"bash-session", "console", "shell-session"},
-		Filenames: []string{".sh-session"},
-		MimeTypes: []string{"text/x-sh"},
-		EnsureNL:  true,
-	},
-	bashsessionRules,
-))
-
-func bashsessionRules() Rules {
-	return Rules{
-		"root": {
-			{`^((?:\[[^]]+@[^]]+\]\s?)?[#$%>])(\s*)(.*\n?)`, ByGroups(GenericPrompt, Text, Using("Bash")), nil},
-			{`^.+\n?`, GenericOutput, nil},
-		},
-	}
-}
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/caddyfile.go
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/caddyfile.go	(revision 67)
+++ 	(revision )
@@ -1,215 +1,0 @@
-package lexers
-
-import (
-	. "github.com/alecthomas/chroma/v2" // nolint
-)
-
-// caddyfileCommon are the rules common to both of the lexer variants
-func caddyfileCommonRules() Rules {
-	return Rules{
-		"site_block_common": {
-			// Import keyword
-			{`(import)(\s+)([^\s]+)`, ByGroups(Keyword, Text, NameVariableMagic), nil},
-			// Matcher definition
-			{`@[^\s]+(?=\s)`, NameDecorator, Push("matcher")},
-			// Matcher token stub for docs
-			{`\[\<matcher\>\]`, NameDecorator, Push("matcher")},
-			// These cannot have matchers but may have things that look like
-			// matchers in their arguments, so we just parse as a subdirective.
-			{`try_files`, Keyword, Push("subdirective")},
-			// These are special, they can nest more directives
-			{`handle_errors|handle|route|handle_path|not`, Keyword, Push("nested_directive")},
-			// Any other directive
-			{`[^\s#]+`, Keyword, Push("directive")},
-			Include("base"),
-		},
-		"matcher": {
-			{`\{`, Punctuation, Push("block")},
-			// Not can be one-liner
-			{`not`, Keyword, Push("deep_not_matcher")},
-			// Any other same-line matcher
-			{`[^\s#]+`, Keyword, Push("arguments")},
-			// Terminators
-			{`\n`, Text, Pop(1)},
-			{`\}`, Punctuation, Pop(1)},
-			Include("base"),
-		},
-		"block": {
-			{`\}`, Punctuation, Pop(2)},
-			// Not can be one-liner
-			{`not`, Keyword, Push("not_matcher")},
-			// Any other subdirective
-			{`[^\s#]+`, Keyword, Push("subdirective")},
-			Include("base"),
-		},
-		"nested_block": {
-			{`\}`, Punctuation, Pop(2)},
-			// Matcher definition
-			{`@[^\s]+(?=\s)`, NameDecorator, Push("matcher")},
-			// Something that starts with literally < is probably a docs stub
-			{`\<[^#]+\>`, Keyword, Push("nested_directive")},
-			// Any other directive
-			{`[^\s#]+`, Keyword, Push("nested_directive")},
-			Include("base"),
-		},
-		"not_matcher": {
-			{`\}`, Punctuation, Pop(2)},
-			{`\{(?=\s)`, Punctuation, Push("block")},
-			{`[^\s#]+`, Keyword, Push("arguments")},
-			{`\s+`, Text, nil},
-		},
-		"deep_not_matcher": {
-			{`\}`, Punctuation, Pop(2)},
-			{`\{(?=\s)`, Punctuation, Push("block")},
-			{`[^\s#]+`, Keyword, Push("deep_subdirective")},
-			{`\s+`, Text, nil},
-		},
-		"directive": {
-			{`\{(?=\s)`, Punctuation, Push("block")},
-			Include("matcher_token"),
-			Include("comments_pop_1"),
-			{`\n`, Text, Pop(1)},
-			Include("base"),
-		},
-		"nested_directive": {
-			{`\{(?=\s)`, Punctuation, Push("nested_block")},
-			Include("matcher_token"),
-			Include("comments_pop_1"),
-			{`\n`, Text, Pop(1)},
-			Include("base"),
-		},
-		"subdirective": {
-			{`\{(?=\s)`, Punctuation, Push("block")},
-			Include("comments_pop_1"),
-			{`\n`, Text, Pop(1)},
-			Include("base"),
-		},
-		"arguments": {
-			{`\{(?=\s)`, Punctuation, Push("block")},
-			Include("comments_pop_2"),
-			{`\\\n`, Text, nil}, // Skip escaped newlines
-			{`\n`, Text, Pop(2)},
-			Include("base"),
-		},
-		"deep_subdirective": {
-			{`\{(?=\s)`, Punctuation, Push("block")},
-			Include("comments_pop_3"),
-			{`\n`, Text, Pop(3)},
-			Include("base"),
-		},
-		"matcher_token": {
-			{`@[^\s]+`, NameDecorator, Push("arguments")},         // Named matcher
-			{`/[^\s]+`, NameDecorator, Push("arguments")},         // Path matcher
-			{`\*`, NameDecorator, Push("arguments")},              // Wildcard path matcher
-			{`\[\<matcher\>\]`, NameDecorator, Push("arguments")}, // Matcher token stub for docs
-		},
-		"comments": {
-			{`^#.*\n`, CommentSingle, nil},   // Comment at start of line
-			{`\s+#.*\n`, CommentSingle, nil}, // Comment preceded by whitespace
-		},
-		"comments_pop_1": {
-			{`^#.*\n`, CommentSingle, Pop(1)},   // Comment at start of line
-			{`\s+#.*\n`, CommentSingle, Pop(1)}, // Comment preceded by whitespace
-		},
-		"comments_pop_2": {
-			{`^#.*\n`, CommentSingle, Pop(2)},   // Comment at start of line
-			{`\s+#.*\n`, CommentSingle, Pop(2)}, // Comment preceded by whitespace
-		},
-		"comments_pop_3": {
-			{`^#.*\n`, CommentSingle, Pop(3)},   // Comment at start of line
-			{`\s+#.*\n`, CommentSingle, Pop(3)}, // Comment preceded by whitespace
-		},
-		"base": {
-			Include("comments"),
-			{`(on|off|first|last|before|after|internal|strip_prefix|strip_suffix|replace)\b`, NameConstant, nil},
-			{`(https?://)?([a-z0-9.-]+)(:)([0-9]+)`, ByGroups(Name, Name, Punctuation, LiteralNumberInteger), nil},
-			{`[a-z-]+/[a-z-+]+`, LiteralString, nil},
-			{`[0-9]+[km]?\b`, LiteralNumberInteger, nil},
-			{`\{[\w+.\$-]+\}`, LiteralStringEscape, nil}, // Placeholder
-			{`\[(?=[^#{}$]+\])`, Punctuation, nil},
-			{`\]|\|`, Punctuation, nil},
-			{`[^\s#{}$\]]+`, LiteralString, nil},
-			{`/[^\s#]*`, Name, nil},
-			{`\s+`, Text, nil},
-		},
-	}
-}
-
-// Caddyfile lexer.
-var Caddyfile = Register(MustNewLexer(
-	&Config{
-		Name:      "Caddyfile",
-		Aliases:   []string{"caddyfile", "caddy"},
-		Filenames: []string{"Caddyfile*"},
-		MimeTypes: []string{},
-	},
-	caddyfileRules,
-))
-
-func caddyfileRules() Rules {
-	return Rules{
-		"root": {
-			Include("comments"),
-			// Global options block
-			{`^\s*(\{)\s*$`, ByGroups(Punctuation), Push("globals")},
-			// Snippets
-			{`(\([^\s#]+\))(\s*)(\{)`, ByGroups(NameVariableAnonymous, Text, Punctuation), Push("snippet")},
-			// Site label
-			{`[^#{(\s,]+`, GenericHeading, Push("label")},
-			// Site label with placeholder
-			{`\{[\w+.\$-]+\}`, LiteralStringEscape, Push("label")},
-			{`\s+`, Text, nil},
-		},
-		"globals": {
-			{`\}`, Punctuation, Pop(1)},
-			{`[^\s#]+`, Keyword, Push("directive")},
-			Include("base"),
-		},
-		"snippet": {
-			{`\}`, Punctuation, Pop(1)},
-			// Matcher definition
-			{`@[^\s]+(?=\s)`, NameDecorator, Push("matcher")},
-			// Any directive
-			{`[^\s#]+`, Keyword, Push("directive")},
-			Include("base"),
-		},
-		"label": {
-			// Allow multiple labels, comma separated, newlines after
-			// a comma means another label is coming
-			{`,\s*\n?`, Text, nil},
-			{` `, Text, nil},
-			// Site label with placeholder
-			{`\{[\w+.\$-]+\}`, LiteralStringEscape, nil},
-			// Site label
-			{`[^#{(\s,]+`, GenericHeading, nil},
-			// Comment after non-block label (hack because comments end in \n)
-			{`#.*\n`, CommentSingle, Push("site_block")},
-			// Note: if \n, we'll never pop out of the site_block, it's valid
-			{`\{(?=\s)|\n`, Punctuation, Push("site_block")},
-		},
-		"site_block": {
-			{`\}`, Punctuation, Pop(2)},
-			Include("site_block_common"),
-		},
-	}.Merge(caddyfileCommonRules())
-}
-
-// Caddyfile directive-only lexer.
-var CaddyfileDirectives = Register(MustNewLexer(
-	&Config{
-		Name:      "Caddyfile Directives",
-		Aliases:   []string{"caddyfile-directives", "caddyfile-d", "caddy-d"},
-		Filenames: []string{},
-		MimeTypes: []string{},
-	},
-	caddyfileDirectivesRules,
-))
-
-func caddyfileDirectivesRules() Rules {
-	return Rules{
-		// Same as "site_block" in Caddyfile
-		"root": {
-			Include("site_block_common"),
-		},
-	}.Merge(caddyfileCommonRules())
-}
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/chapel.go
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/chapel.go	(revision 67)
+++ 	(revision )
@@ -1,62 +1,0 @@
-package lexers
-
-import (
-	. "github.com/alecthomas/chroma/v2" // nolint
-)
-
-// Chapel lexer.
-var Chapel = Register(MustNewLexer(
-	&Config{
-		Name:      "Chapel",
-		Aliases:   []string{"chapel", "chpl"},
-		Filenames: []string{"*.chpl"},
-		MimeTypes: []string{},
-	},
-	func() Rules {
-		return Rules{
-			"root": {
-				{`\n`, TextWhitespace, nil},
-				{`\s+`, TextWhitespace, nil},
-				{`\\\n`, Text, nil},
-				{`//(.*?)\n`, CommentSingle, nil},
-				{`/(\\\n)?[*](.|\n)*?[*](\\\n)?/`, CommentMultiline, nil},
-				{Words(``, `\b`, `config`, `const`, `in`, `inout`, `out`, `param`, `ref`, `type`, `var`), KeywordDeclaration, nil},
-				{Words(``, `\b`, `false`, `nil`, `none`, `true`), KeywordConstant, nil},
-				{Words(``, `\b`, `bool`, `bytes`, `complex`, `imag`, `int`, `locale`, `nothing`, `opaque`, `range`, `real`, `string`, `uint`, `void`), KeywordType, nil},
-				{Words(``, `\b`, `atomic`, `single`, `sync`, `borrowed`, `owned`, `shared`, `unmanaged`, `align`, `as`, `begin`, `break`, `by`, `catch`, `cobegin`, `coforall`, `continue`, `defer`, `delete`, `dmapped`, `do`, `domain`, `else`, `enum`, `except`, `export`, `extern`, `for`, `forall`, `foreach`, `forwarding`, `if`, `implements`, `import`, `index`, `init`, `inline`, `label`, `lambda`, `let`, `lifetime`, `local`, `new`, `noinit`, `on`, `only`, `otherwise`, `override`, `pragma`, `primitive`, `private`, `prototype`, `public`, `reduce`, `require`, `return`, `scan`, `select`, `serial`, `sparse`, `subdomain`, `then`, `this`, `throw`, `throws`, `try`, `use`, `when`, `where`, `while`, `with`, `yield`, `zip`), Keyword, nil},
-				{`(iter)(\s+)`, ByGroups(Keyword, TextWhitespace), Push("procname")},
-				{`(proc)(\s+)`, ByGroups(Keyword, TextWhitespace), Push("procname")},
-				{`(operator)(\s+)`, ByGroups(Keyword, TextWhitespace), Push("procname")},
-				{`(class|interface|module|record|union)(\s+)`, ByGroups(Keyword, TextWhitespace), Push("classname")},
-				{`\d+i`, LiteralNumber, nil},
-				{`\d+\.\d*([Ee][-+]\d+)?i`, LiteralNumber, nil},
-				{`\.\d+([Ee][-+]\d+)?i`, LiteralNumber, nil},
-				{`\d+[Ee][-+]\d+i`, LiteralNumber, nil},
-				{`(\d*\.\d+)([eE][+-]?[0-9]+)?i?`, LiteralNumberFloat, nil},
-				{`\d+[eE][+-]?[0-9]+i?`, LiteralNumberFloat, nil},
-				{`0[bB][01]+`, LiteralNumberBin, nil},
-				{`0[xX][0-9a-fA-F]+`, LiteralNumberHex, nil},
-				{`0[oO][0-7]+`, LiteralNumberOct, nil},
-				{`[0-9]+`, LiteralNumberInteger, nil},
-				{`"(\\\\|\\"|[^"])*"`, LiteralString, nil},
-				{`'(\\\\|\\'|[^'])*'`, LiteralString, nil},
-				{`(=|\+=|-=|\*=|/=|\*\*=|%=|&=|\|=|\^=|&&=|\|\|=|<<=|>>=|<=>|<~>|\.\.|by|#|\.\.\.|&&|\|\||!|&|\||\^|~|<<|>>|==|!=|<=|>=|<|>|[+\-*/%]|\*\*)`, Operator, nil},
-				{`[:;,.?()\[\]{}]`, Punctuation, nil},
-				{`[a-zA-Z_][\w$]*`, NameOther, nil},
-			},
-			"classname": {
-				{`[a-zA-Z_][\w$]*`, NameClass, Pop(1)},
-			},
-			"procname": {
-				{`([a-zA-Z_][.\w$]*|\~[a-zA-Z_][.\w$]*|[+*/!~%<>=&^|\-:]{1,2})`, NameFunction, Pop(1)},
-				{`\(`, Punctuation, Push("receivertype")},
-				{`\)+\.`, Punctuation, nil},
-			},
-			"receivertype": {
-				{Words(``, `\b`, `atomic`, `single`, `sync`, `borrowed`, `owned`, `shared`, `unmanaged`), Keyword, nil},
-				{Words(``, `\b`, `bool`, `bytes`, `complex`, `imag`, `int`, `locale`, `nothing`, `opaque`, `range`, `real`, `string`, `uint`, `void`), KeywordType, nil},
-				{`[^()]*`, NameOther, Pop(1)},
-			},
-		}
-	},
-))
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/cheetah.go
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/cheetah.go	(revision 67)
+++ 	(revision )
@@ -1,39 +1,0 @@
-package lexers
-
-import (
-	. "github.com/alecthomas/chroma/v2" // nolint
-)
-
-// Cheetah lexer.
-var Cheetah = Register(MustNewLexer(
-	&Config{
-		Name:      "Cheetah",
-		Aliases:   []string{"cheetah", "spitfire"},
-		Filenames: []string{"*.tmpl", "*.spt"},
-		MimeTypes: []string{"application/x-cheetah", "application/x-spitfire"},
-	},
-	cheetahRules,
-))
-
-func cheetahRules() Rules {
-	return Rules{
-		"root": {
-			{`(##[^\n]*)$`, ByGroups(Comment), nil},
-			{`#[*](.|\n)*?[*]#`, Comment, nil},
-			{`#end[^#\n]*(?:#|$)`, CommentPreproc, nil},
-			{`#slurp$`, CommentPreproc, nil},
-			{`(#[a-zA-Z]+)([^#\n]*)(#|$)`, ByGroups(CommentPreproc, Using("Python"), CommentPreproc), nil},
-			{`(\$)([a-zA-Z_][\w.]*\w)`, ByGroups(CommentPreproc, Using("Python")), nil},
-			{`(\$\{!?)(.*?)(\})(?s)`, ByGroups(CommentPreproc, Using("Python"), CommentPreproc), nil},
-			{`(?sx)
-                (.+?)               # anything, followed by:
-                (?:
-                 (?=\#[#a-zA-Z]*) | # an eval comment
-                 (?=\$[a-zA-Z_{]) | # a substitution
-                 \Z                 # end of string
-                )
-            `, Other, nil},
-			{`\s+`, Text, nil},
-		},
-	}
-}
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/cl.go
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/cl.go	(revision 67)
+++ 	(revision )
@@ -1,243 +1,0 @@
-package lexers
-
-import (
-	. "github.com/alecthomas/chroma/v2" // nolint
-)
-
-var (
-	clBuiltinFunctions = []string{
-		"<", "<=", "=", ">", ">=", "-", "/", "/=", "*", "+", "1-", "1+",
-		"abort", "abs", "acons", "acos", "acosh", "add-method", "adjoin",
-		"adjustable-array-p", "adjust-array", "allocate-instance",
-		"alpha-char-p", "alphanumericp", "append", "apply", "apropos",
-		"apropos-list", "aref", "arithmetic-error-operands",
-		"arithmetic-error-operation", "array-dimension", "array-dimensions",
-		"array-displacement", "array-element-type", "array-has-fill-pointer-p",
-		"array-in-bounds-p", "arrayp", "array-rank", "array-row-major-index",
-		"array-total-size", "ash", "asin", "asinh", "assoc", "assoc-if",
-		"assoc-if-not", "atan", "atanh", "atom", "bit", "bit-and", "bit-andc1",
-		"bit-andc2", "bit-eqv", "bit-ior", "bit-nand", "bit-nor", "bit-not",
-		"bit-orc1", "bit-orc2", "bit-vector-p", "bit-xor", "boole",
-		"both-case-p", "boundp", "break", "broadcast-stream-streams",
-		"butlast", "byte", "byte-position", "byte-size", "caaaar", "caaadr",
-		"caaar", "caadar", "caaddr", "caadr", "caar", "cadaar", "cadadr",
-		"cadar", "caddar", "cadddr", "caddr", "cadr", "call-next-method", "car",
-		"cdaaar", "cdaadr", "cdaar", "cdadar", "cdaddr", "cdadr", "cdar",
-		"cddaar", "cddadr", "cddar", "cdddar", "cddddr", "cdddr", "cddr", "cdr",
-		"ceiling", "cell-error-name", "cerror", "change-class", "char", "char<",
-		"char<=", "char=", "char>", "char>=", "char/=", "character",
-		"characterp", "char-code", "char-downcase", "char-equal",
-		"char-greaterp", "char-int", "char-lessp", "char-name",
-		"char-not-equal", "char-not-greaterp", "char-not-lessp", "char-upcase",
-		"cis", "class-name", "class-of", "clear-input", "clear-output",
-		"close", "clrhash", "code-char", "coerce", "compile",
-		"compiled-function-p", "compile-file", "compile-file-pathname",
-		"compiler-macro-function", "complement", "complex", "complexp",
-		"compute-applicable-methods", "compute-restarts", "concatenate",
-		"concatenated-stream-streams", "conjugate", "cons", "consp",
-		"constantly", "constantp", "continue", "copy-alist", "copy-list",
-		"copy-pprint-dispatch", "copy-readtable", "copy-seq", "copy-structure",
-		"copy-symbol", "copy-tree", "cos", "cosh", "count", "count-if",
-		"count-if-not", "decode-float", "decode-universal-time", "delete",
-		"delete-duplicates", "delete-file", "delete-if", "delete-if-not",
-		"delete-package", "denominator", "deposit-field", "describe",
-		"describe-object", "digit-char", "digit-char-p", "directory",
-		"directory-namestring", "disassemble", "documentation", "dpb",
-		"dribble", "echo-stream-input-stream", "echo-stream-output-stream",
-		"ed", "eighth", "elt", "encode-universal-time", "endp",
-		"enough-namestring", "ensure-directories-exist",
-		"ensure-generic-function", "eq", "eql", "equal", "equalp", "error",
-		"eval", "evenp", "every", "exp", "export", "expt", "fboundp",
-		"fceiling", "fdefinition", "ffloor", "fifth", "file-author",
-		"file-error-pathname", "file-length", "file-namestring",
-		"file-position", "file-string-length", "file-write-date",
-		"fill", "fill-pointer", "find", "find-all-symbols", "find-class",
-		"find-if", "find-if-not", "find-method", "find-package", "find-restart",
-		"find-symbol", "finish-output", "first", "float", "float-digits",
-		"floatp", "float-precision", "float-radix", "float-sign", "floor",
-		"fmakunbound", "force-output", "format", "fourth", "fresh-line",
-		"fround", "ftruncate", "funcall", "function-keywords",
-		"function-lambda-expression", "functionp", "gcd", "gensym", "gentemp",
-		"get", "get-decoded-time", "get-dispatch-macro-character", "getf",
-		"gethash", "get-internal-real-time", "get-internal-run-time",
-		"get-macro-character", "get-output-stream-string", "get-properties",
-		"get-setf-expansion", "get-universal-time", "graphic-char-p",
-		"hash-table-count", "hash-table-p", "hash-table-rehash-size",
-		"hash-table-rehash-threshold", "hash-table-size", "hash-table-test",
-		"host-namestring", "identity", "imagpart", "import",
-		"initialize-instance", "input-stream-p", "inspect",
-		"integer-decode-float", "integer-length", "integerp",
-		"interactive-stream-p", "intern", "intersection",
-		"invalid-method-error", "invoke-debugger", "invoke-restart",
-		"invoke-restart-interactively", "isqrt", "keywordp", "last", "lcm",
-		"ldb", "ldb-test", "ldiff", "length", "lisp-implementation-type",
-		"lisp-implementation-version", "list", "list*", "list-all-packages",
-		"listen", "list-length", "listp", "load",
-		"load-logical-pathname-translations", "log", "logand", "logandc1",
-		"logandc2", "logbitp", "logcount", "logeqv", "logical-pathname",
-		"logical-pathname-translations", "logior", "lognand", "lognor",
-		"lognot", "logorc1", "logorc2", "logtest", "logxor", "long-site-name",
-		"lower-case-p", "machine-instance", "machine-type", "machine-version",
-		"macroexpand", "macroexpand-1", "macro-function", "make-array",
-		"make-broadcast-stream", "make-concatenated-stream", "make-condition",
-		"make-dispatch-macro-character", "make-echo-stream", "make-hash-table",
-		"make-instance", "make-instances-obsolete", "make-list",
-		"make-load-form", "make-load-form-saving-slots", "make-package",
-		"make-pathname", "make-random-state", "make-sequence", "make-string",
-		"make-string-input-stream", "make-string-output-stream", "make-symbol",
-		"make-synonym-stream", "make-two-way-stream", "makunbound", "map",
-		"mapc", "mapcan", "mapcar", "mapcon", "maphash", "map-into", "mapl",
-		"maplist", "mask-field", "max", "member", "member-if", "member-if-not",
-		"merge", "merge-pathnames", "method-combination-error",
-		"method-qualifiers", "min", "minusp", "mismatch", "mod",
-		"muffle-warning", "name-char", "namestring", "nbutlast", "nconc",
-		"next-method-p", "nintersection", "ninth", "no-applicable-method",
-		"no-next-method", "not", "notany", "notevery", "nreconc", "nreverse",
-		"nset-difference", "nset-exclusive-or", "nstring-capitalize",
-		"nstring-downcase", "nstring-upcase", "nsublis", "nsubst", "nsubst-if",
-		"nsubst-if-not", "nsubstitute", "nsubstitute-if", "nsubstitute-if-not",
-		"nth", "nthcdr", "null", "numberp", "numerator", "nunion", "oddp",
-		"open", "open-stream-p", "output-stream-p", "package-error-package",
-		"package-name", "package-nicknames", "packagep",
-		"package-shadowing-symbols", "package-used-by-list", "package-use-list",
-		"pairlis", "parse-integer", "parse-namestring", "pathname",
-		"pathname-device", "pathname-directory", "pathname-host",
-		"pathname-match-p", "pathname-name", "pathnamep", "pathname-type",
-		"pathname-version", "peek-char", "phase", "plusp", "position",
-		"position-if", "position-if-not", "pprint", "pprint-dispatch",
-		"pprint-fill", "pprint-indent", "pprint-linear", "pprint-newline",
-		"pprint-tab", "pprint-tabular", "prin1", "prin1-to-string", "princ",
-		"princ-to-string", "print", "print-object", "probe-file", "proclaim",
-		"provide", "random", "random-state-p", "rassoc", "rassoc-if",
-		"rassoc-if-not", "rational", "rationalize", "rationalp", "read",
-		"read-byte", "read-char", "read-char-no-hang", "read-delimited-list",
-		"read-from-string", "read-line", "read-preserving-whitespace",
-		"read-sequence", "readtable-case", "readtablep", "realp", "realpart",
-		"reduce", "reinitialize-instance", "rem", "remhash", "remove",
-		"remove-duplicates", "remove-if", "remove-if-not", "remove-method",
-		"remprop", "rename-file", "rename-package", "replace", "require",
-		"rest", "restart-name", "revappend", "reverse", "room", "round",
-		"row-major-aref", "rplaca", "rplacd", "sbit", "scale-float", "schar",
-		"search", "second", "set", "set-difference",
-		"set-dispatch-macro-character", "set-exclusive-or",
-		"set-macro-character", "set-pprint-dispatch", "set-syntax-from-char",
-		"seventh", "shadow", "shadowing-import", "shared-initialize",
-		"short-site-name", "signal", "signum", "simple-bit-vector-p",
-		"simple-condition-format-arguments", "simple-condition-format-control",
-		"simple-string-p", "simple-vector-p", "sin", "sinh", "sixth", "sleep",
-		"slot-boundp", "slot-exists-p", "slot-makunbound", "slot-missing",
-		"slot-unbound", "slot-value", "software-type", "software-version",
-		"some", "sort", "special-operator-p", "sqrt", "stable-sort",
-		"standard-char-p", "store-value", "stream-element-type",
-		"stream-error-stream", "stream-external-format", "streamp", "string",
-		"string<", "string<=", "string=", "string>", "string>=", "string/=",
-		"string-capitalize", "string-downcase", "string-equal",
-		"string-greaterp", "string-left-trim", "string-lessp",
-		"string-not-equal", "string-not-greaterp", "string-not-lessp",
-		"stringp", "string-right-trim", "string-trim", "string-upcase",
-		"sublis", "subseq", "subsetp", "subst", "subst-if", "subst-if-not",
-		"substitute", "substitute-if", "substitute-if-not", "subtypep", "svref",
-		"sxhash", "symbol-function", "symbol-name", "symbolp", "symbol-package",
-		"symbol-plist", "symbol-value", "synonym-stream-symbol", "syntax:",
-		"tailp", "tan", "tanh", "tenth", "terpri", "third",
-		"translate-logical-pathname", "translate-pathname", "tree-equal",
-		"truename", "truncate", "two-way-stream-input-stream",
-		"two-way-stream-output-stream", "type-error-datum",
-		"type-error-expected-type", "type-of", "typep", "unbound-slot-instance",
-		"unexport", "unintern", "union", "unread-char", "unuse-package",
-		"update-instance-for-different-class",
-		"update-instance-for-redefined-class", "upgraded-array-element-type",
-		"upgraded-complex-part-type", "upper-case-p", "use-package",
-		"user-homedir-pathname", "use-value", "values", "values-list", "vector",
-		"vectorp", "vector-pop", "vector-push", "vector-push-extend", "warn",
-		"wild-pathname-p", "write", "write-byte", "write-char", "write-line",
-		"write-sequence", "write-string", "write-to-string", "yes-or-no-p",
-		"y-or-n-p", "zerop",
-	}
-
-	clSpecialForms = []string{
-		"block", "catch", "declare", "eval-when", "flet", "function", "go", "if",
-		"labels", "lambda", "let", "let*", "load-time-value", "locally", "macrolet",
-		"multiple-value-call", "multiple-value-prog1", "progn", "progv", "quote",
-		"return-from", "setq", "symbol-macrolet", "tagbody", "the", "throw",
-		"unwind-protect",
-	}
-
-	clMacros = []string{
-		"and", "assert", "call-method", "case", "ccase", "check-type", "cond",
-		"ctypecase", "decf", "declaim", "defclass", "defconstant", "defgeneric",
-		"define-compiler-macro", "define-condition", "define-method-combination",
-		"define-modify-macro", "define-setf-expander", "define-symbol-macro",
-		"defmacro", "defmethod", "defpackage", "defparameter", "defsetf",
-		"defstruct", "deftype", "defun", "defvar", "destructuring-bind", "do",
-		"do*", "do-all-symbols", "do-external-symbols", "dolist", "do-symbols",
-		"dotimes", "ecase", "etypecase", "formatter", "handler-bind",
-		"handler-case", "ignore-errors", "incf", "in-package", "lambda", "loop",
-		"loop-finish", "make-method", "multiple-value-bind", "multiple-value-list",
-		"multiple-value-setq", "nth-value", "or", "pop",
-		"pprint-exit-if-list-exhausted", "pprint-logical-block", "pprint-pop",
-		"print-unreadable-object", "prog", "prog*", "prog1", "prog2", "psetf",
-		"psetq", "push", "pushnew", "remf", "restart-bind", "restart-case",
-		"return", "rotatef", "setf", "shiftf", "step", "time", "trace", "typecase",
-		"unless", "untrace", "when", "with-accessors", "with-compilation-unit",
-		"with-condition-restarts", "with-hash-table-iterator",
-		"with-input-from-string", "with-open-file", "with-open-stream",
-		"with-output-to-string", "with-package-iterator", "with-simple-restart",
-		"with-slots", "with-standard-io-syntax",
-	}
-
-	clLambdaListKeywords = []string{
-		"&allow-other-keys", "&aux", "&body", "&environment", "&key", "&optional",
-		"&rest", "&whole",
-	}
-
-	clDeclarations = []string{
-		"dynamic-extent", "ignore", "optimize", "ftype", "inline", "special",
-		"ignorable", "notinline", "type",
-	}
-
-	clBuiltinTypes = []string{
-		"atom", "boolean", "base-char", "base-string", "bignum", "bit",
-		"compiled-function", "extended-char", "fixnum", "keyword", "nil",
-		"signed-byte", "short-float", "single-float", "double-float", "long-float",
-		"simple-array", "simple-base-string", "simple-bit-vector", "simple-string",
-		"simple-vector", "standard-char", "unsigned-byte",
-
-		// Condition Types
-		"arithmetic-error", "cell-error", "condition", "control-error",
-		"division-by-zero", "end-of-file", "error", "file-error",
-		"floating-point-inexact", "floating-point-overflow",
-		"floating-point-underflow", "floating-point-invalid-operation",
-		"parse-error", "package-error", "print-not-readable", "program-error",
-		"reader-error", "serious-condition", "simple-condition", "simple-error",
-		"simple-type-error", "simple-warning", "stream-error", "storage-condition",
-		"style-warning", "type-error", "unbound-variable", "unbound-slot",
-		"undefined-function", "warning",
-	}
-
-	clBuiltinClasses = []string{
-		"array", "broadcast-stream", "bit-vector", "built-in-class", "character",
-		"class", "complex", "concatenated-stream", "cons", "echo-stream",
-		"file-stream", "float", "function", "generic-function", "hash-table",
-		"integer", "list", "logical-pathname", "method-combination", "method",
-		"null", "number", "package", "pathname", "ratio", "rational", "readtable",
-		"real", "random-state", "restart", "sequence", "standard-class",
-		"standard-generic-function", "standard-method", "standard-object",
-		"string-stream", "stream", "string", "structure-class", "structure-object",
-		"symbol", "synonym-stream", "t", "two-way-stream", "vector",
-	}
-)
-
-// Common Lisp lexer.
-var CommonLisp = Register(TypeRemappingLexer(MustNewXMLLexer(
-	embedded,
-	"embedded/common_lisp.xml",
-), TypeMapping{
-	{NameVariable, NameFunction, clBuiltinFunctions},
-	{NameVariable, Keyword, clSpecialForms},
-	{NameVariable, NameBuiltin, clMacros},
-	{NameVariable, Keyword, clLambdaListKeywords},
-	{NameVariable, Keyword, clDeclarations},
-	{NameVariable, KeywordType, clBuiltinTypes},
-	{NameVariable, NameClass, clBuiltinClasses},
-}))
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/cql.go
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/cql.go	(revision 67)
+++ 	(revision )
@@ -1,70 +1,0 @@
-package lexers
-
-import (
-	. "github.com/alecthomas/chroma/v2" // nolint
-)
-
-// CassandraCQL lexer.
-var CassandraCQL = Register(MustNewLexer(
-	&Config{
-		Name:            "Cassandra CQL",
-		Aliases:         []string{"cassandra", "cql"},
-		Filenames:       []string{"*.cql"},
-		MimeTypes:       []string{"text/x-cql"},
-		NotMultiline:    true,
-		CaseInsensitive: true,
-	},
-	cassandraCQLRules,
-))
-
-func cassandraCQLRules() Rules {
-	return Rules{
-		"root": {
-			{`\s+`, TextWhitespace, nil},
-			{`(--|\/\/).*\n?`, CommentSingle, nil},
-			{`/\*`, CommentMultiline, Push("multiline-comments")},
-			{`(ascii|bigint|blob|boolean|counter|date|decimal|double|float|frozen|inet|int|list|map|set|smallint|text|time|timestamp|timeuuid|tinyint|tuple|uuid|varchar|varint)\b`, NameBuiltin, nil},
-			{Words(``, `\b`, `ADD`, `AGGREGATE`, `ALL`, `ALLOW`, `ALTER`, `AND`, `ANY`, `APPLY`, `AS`, `ASC`, `AUTHORIZE`, `BATCH`, `BEGIN`, `BY`, `CLUSTERING`, `COLUMNFAMILY`, `COMPACT`, `CONSISTENCY`, `COUNT`, `CREATE`, `CUSTOM`, `DELETE`, `DESC`, `DISTINCT`, `DROP`, `EACH_QUORUM`, `ENTRIES`, `EXISTS`, `FILTERING`, `FROM`, `FULL`, `GRANT`, `IF`, `IN`, `INDEX`, `INFINITY`, `INSERT`, `INTO`, `KEY`, `KEYS`, `KEYSPACE`, `KEYSPACES`, `LEVEL`, `LIMIT`, `LOCAL_ONE`, `LOCAL_QUORUM`, `MATERIALIZED`, `MODIFY`, `NAN`, `NORECURSIVE`, `NOSUPERUSER`, `NOT`, `OF`, `ON`, `ONE`, `ORDER`, `PARTITION`, `PASSWORD`, `PER`, `PERMISSION`, `PERMISSIONS`, `PRIMARY`, `QUORUM`, `RENAME`, `REVOKE`, `SCHEMA`, `SELECT`, `STATIC`, `STORAGE`, `SUPERUSER`, `TABLE`, `THREE`, `TO`, `TOKEN`, `TRUNCATE`, `TTL`, `TWO`, `TYPE`, `UNLOGGED`, `UPDATE`, `USE`, `USER`, `USERS`, `USING`, `VALUES`, `VIEW`, `WHERE`, `WITH`, `WRITETIME`, `REPLICATION`, `OR`, `REPLACE`, `FUNCTION`, `CALLED`, `INPUT`, `RETURNS`, `LANGUAGE`, `ROLE`, `ROLES`, `TRIGGER`, `DURABLE_WRITES`, `LOGIN`, `OPTIONS`, `LOGGED`, `SFUNC`, `STYPE`, `FINALFUNC`, `INITCOND`, `IS`, `CONTAINS`, `JSON`, `PAGING`, `OFF`), Keyword, nil},
-			{"[+*/<>=~!@#%^&|`?-]+", Operator, nil},
-			{
-				`(?s)(java|javascript)(\s+)(AS)(\s+)('|\$\$)(.*?)(\5)`,
-				UsingByGroup(1, 6,
-					NameBuiltin, TextWhitespace, Keyword, TextWhitespace,
-					LiteralStringHeredoc, LiteralStringHeredoc, LiteralStringHeredoc),
-				nil,
-			},
-			{`(true|false|null)\b`, KeywordConstant, nil},
-			{`0x[0-9a-f]+`, LiteralNumberHex, nil},
-			{`[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}`, LiteralNumberHex, nil},
-			{`\.[0-9]+(e[+-]?[0-9]+)?`, Error, nil},
-			{`-?[0-9]+(\.[0-9])?(e[+-]?[0-9]+)?`, LiteralNumberFloat, nil},
-			{`[0-9]+`, LiteralNumberInteger, nil},
-			{`'`, LiteralStringSingle, Push("string")},
-			{`"`, LiteralStringName, Push("quoted-ident")},
-			{`\$\$`, LiteralStringHeredoc, Push("dollar-string")},
-			{`[a-z_]\w*`, Name, nil},
-			{`:(['"]?)[a-z]\w*\b\1`, NameVariable, nil},
-			{`[;:()\[\]\{\},.]`, Punctuation, nil},
-		},
-		"multiline-comments": {
-			{`/\*`, CommentMultiline, Push("multiline-comments")},
-			{`\*/`, CommentMultiline, Pop(1)},
-			{`[^/*]+`, CommentMultiline, nil},
-			{`[/*]`, CommentMultiline, nil},
-		},
-		"string": {
-			{`[^']+`, LiteralStringSingle, nil},
-			{`''`, LiteralStringSingle, nil},
-			{`'`, LiteralStringSingle, Pop(1)},
-		},
-		"quoted-ident": {
-			{`[^"]+`, LiteralStringName, nil},
-			{`""`, LiteralStringName, nil},
-			{`"`, LiteralStringName, Pop(1)},
-		},
-		"dollar-string": {
-			{`[^\$]+`, LiteralStringHeredoc, nil},
-			{`\$\$`, LiteralStringHeredoc, Pop(1)},
-		},
-	}
-}
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/dns.go
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/dns.go	(revision 67)
+++ 	(revision )
@@ -1,17 +1,0 @@
-package lexers
-
-import (
-	"regexp"
-)
-
-// TODO(moorereason): can this be factored away?
-var zoneAnalyserRe = regexp.MustCompile(`(?m)^@\s+IN\s+SOA\s+`)
-
-func init() { // nolint: gochecknoinits
-	Get("dns").SetAnalyser(func(text string) float32 {
-		if zoneAnalyserRe.FindString(text) != "" {
-			return 1.0
-		}
-		return 0.0
-	})
-}
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/docker.go
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/docker.go	(revision 67)
+++ 	(revision )
@@ -1,32 +1,0 @@
-package lexers
-
-import (
-	. "github.com/alecthomas/chroma/v2" // nolint
-)
-
-// Docker lexer.
-var Docker = Register(MustNewLexer(
-	&Config{
-		Name:            "Docker",
-		Aliases:         []string{"docker", "dockerfile"},
-		Filenames:       []string{"Dockerfile", "Dockerfile.*", "*.docker"},
-		MimeTypes:       []string{"text/x-dockerfile-config"},
-		CaseInsensitive: true,
-	},
-	dockerRules,
-))
-
-func dockerRules() Rules {
-	return Rules{
-		"root": {
-			{`#.*`, Comment, nil},
-			{`(ONBUILD)((?:\s*\\?\s*))`, ByGroups(Keyword, Using("Bash")), nil},
-			{`(HEALTHCHECK)(((?:\s*\\?\s*)--\w+=\w+(?:\s*\\?\s*))*)`, ByGroups(Keyword, Using("Bash")), nil},
-			{`(VOLUME|ENTRYPOINT|CMD|SHELL)((?:\s*\\?\s*))(\[.*?\])`, ByGroups(Keyword, Using("Bash"), Using("JSON")), nil},
-			{`(LABEL|ENV|ARG)((?:(?:\s*\\?\s*)\w+=\w+(?:\s*\\?\s*))*)`, ByGroups(Keyword, Using("Bash")), nil},
-			{`((?:FROM|MAINTAINER|EXPOSE|WORKDIR|USER|STOPSIGNAL)|VOLUME)\b(.*)`, ByGroups(Keyword, LiteralString), nil},
-			{`((?:RUN|CMD|ENTRYPOINT|ENV|ARG|LABEL|ADD|COPY))`, Keyword, nil},
-			{`(.*\\\n)*.+`, Using("Bash"), nil},
-		},
-	}
-}
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/emacs.go
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/emacs.go	(revision 67)
+++ 	(revision )
@@ -1,533 +1,0 @@
-package lexers
-
-import (
-	. "github.com/alecthomas/chroma/v2" // nolint
-)
-
-var (
-	emacsMacros = []string{
-		"atomic-change-group", "case", "block", "cl-block", "cl-callf", "cl-callf2",
-		"cl-case", "cl-decf", "cl-declaim", "cl-declare",
-		"cl-define-compiler-macro", "cl-defmacro", "cl-defstruct",
-		"cl-defsubst", "cl-deftype", "cl-defun", "cl-destructuring-bind",
-		"cl-do", "cl-do*", "cl-do-all-symbols", "cl-do-symbols", "cl-dolist",
-		"cl-dotimes", "cl-ecase", "cl-etypecase", "eval-when", "cl-eval-when", "cl-flet",
-		"cl-flet*", "cl-function", "cl-incf", "cl-labels", "cl-letf",
-		"cl-letf*", "cl-load-time-value", "cl-locally", "cl-loop",
-		"cl-macrolet", "cl-multiple-value-bind", "cl-multiple-value-setq",
-		"cl-progv", "cl-psetf", "cl-psetq", "cl-pushnew", "cl-remf",
-		"cl-return", "cl-return-from", "cl-rotatef", "cl-shiftf",
-		"cl-symbol-macrolet", "cl-tagbody", "cl-the", "cl-typecase",
-		"combine-after-change-calls", "condition-case-unless-debug", "decf",
-		"declaim", "declare", "declare-function", "def-edebug-spec",
-		"defadvice", "defclass", "defcustom", "defface", "defgeneric",
-		"defgroup", "define-advice", "define-alternatives",
-		"define-compiler-macro", "define-derived-mode", "define-generic-mode",
-		"define-global-minor-mode", "define-globalized-minor-mode",
-		"define-minor-mode", "define-modify-macro",
-		"define-obsolete-face-alias", "define-obsolete-function-alias",
-		"define-obsolete-variable-alias", "define-setf-expander",
-		"define-skeleton", "defmacro", "defmethod", "defsetf", "defstruct",
-		"defsubst", "deftheme", "deftype", "defun", "defvar-local",
-		"delay-mode-hooks", "destructuring-bind", "do", "do*",
-		"do-all-symbols", "do-symbols", "dolist", "dont-compile", "dotimes",
-		"dotimes-with-progress-reporter", "ecase", "ert-deftest", "etypecase",
-		"eval-and-compile", "eval-when-compile", "flet", "ignore-errors",
-		"incf", "labels", "lambda", "letrec", "lexical-let", "lexical-let*",
-		"loop", "multiple-value-bind", "multiple-value-setq", "noreturn",
-		"oref", "oref-default", "oset", "oset-default", "pcase",
-		"pcase-defmacro", "pcase-dolist", "pcase-exhaustive", "pcase-let",
-		"pcase-let*", "pop", "psetf", "psetq", "push", "pushnew", "remf",
-		"return", "rotatef", "rx", "save-match-data", "save-selected-window",
-		"save-window-excursion", "setf", "setq-local", "shiftf",
-		"track-mouse", "typecase", "unless", "use-package", "when",
-		"while-no-input", "with-case-table", "with-category-table",
-		"with-coding-priority", "with-current-buffer", "with-demoted-errors",
-		"with-eval-after-load", "with-file-modes", "with-local-quit",
-		"with-output-to-string", "with-output-to-temp-buffer",
-		"with-parsed-tramp-file-name", "with-selected-frame",
-		"with-selected-window", "with-silent-modifications", "with-slots",
-		"with-syntax-table", "with-temp-buffer", "with-temp-file",
-		"with-temp-message", "with-timeout", "with-tramp-connection-property",
-		"with-tramp-file-property", "with-tramp-progress-reporter",
-		"with-wrapper-hook", "load-time-value", "locally", "macrolet", "progv",
-		"return-from",
-	}
-
-	emacsSpecialForms = []string{
-		"and", "catch", "cond", "condition-case", "defconst", "defvar",
-		"function", "if", "interactive", "let", "let*", "or", "prog1",
-		"prog2", "progn", "quote", "save-current-buffer", "save-excursion",
-		"save-restriction", "setq", "setq-default", "subr-arity",
-		"unwind-protect", "while",
-	}
-
-	emacsBuiltinFunction = []string{
-		"%", "*", "+", "-", "/", "/=", "1+", "1-", "<", "<=", "=", ">", ">=",
-		"Snarf-documentation", "abort-recursive-edit", "abs",
-		"accept-process-output", "access-file", "accessible-keymaps", "acos",
-		"active-minibuffer-window", "add-face-text-property",
-		"add-name-to-file", "add-text-properties", "all-completions",
-		"append", "apply", "apropos-internal", "aref", "arrayp", "aset",
-		"ash", "asin", "assoc", "assoc-string", "assq", "atan", "atom",
-		"autoload", "autoload-do-load", "backtrace", "backtrace--locals",
-		"backtrace-debug", "backtrace-eval", "backtrace-frame",
-		"backward-char", "backward-prefix-chars", "barf-if-buffer-read-only",
-		"base64-decode-region", "base64-decode-string",
-		"base64-encode-region", "base64-encode-string", "beginning-of-line",
-		"bidi-find-overridden-directionality", "bidi-resolved-levels",
-		"bitmap-spec-p", "bobp", "bolp", "bool-vector",
-		"bool-vector-count-consecutive", "bool-vector-count-population",
-		"bool-vector-exclusive-or", "bool-vector-intersection",
-		"bool-vector-not", "bool-vector-p", "bool-vector-set-difference",
-		"bool-vector-subsetp", "bool-vector-union", "boundp",
-		"buffer-base-buffer", "buffer-chars-modified-tick",
-		"buffer-enable-undo", "buffer-file-name", "buffer-has-markers-at",
-		"buffer-list", "buffer-live-p", "buffer-local-value",
-		"buffer-local-variables", "buffer-modified-p", "buffer-modified-tick",
-		"buffer-name", "buffer-size", "buffer-string", "buffer-substring",
-		"buffer-substring-no-properties", "buffer-swap-text", "bufferp",
-		"bury-buffer-internal", "byte-code", "byte-code-function-p",
-		"byte-to-position", "byte-to-string", "byteorder",
-		"call-interactively", "call-last-kbd-macro", "call-process",
-		"call-process-region", "cancel-kbd-macro-events", "capitalize",
-		"capitalize-region", "capitalize-word", "car", "car-less-than-car",
-		"car-safe", "case-table-p", "category-docstring",
-		"category-set-mnemonics", "category-table", "category-table-p",
-		"ccl-execute", "ccl-execute-on-string", "ccl-program-p", "cdr",
-		"cdr-safe", "ceiling", "char-after", "char-before",
-		"char-category-set", "char-charset", "char-equal", "char-or-string-p",
-		"char-resolve-modifiers", "char-syntax", "char-table-extra-slot",
-		"char-table-p", "char-table-parent", "char-table-range",
-		"char-table-subtype", "char-to-string", "char-width", "characterp",
-		"charset-after", "charset-id-internal", "charset-plist",
-		"charset-priority-list", "charsetp", "check-coding-system",
-		"check-coding-systems-region", "clear-buffer-auto-save-failure",
-		"clear-charset-maps", "clear-face-cache", "clear-font-cache",
-		"clear-image-cache", "clear-string", "clear-this-command-keys",
-		"close-font", "clrhash", "coding-system-aliases",
-		"coding-system-base", "coding-system-eol-type", "coding-system-p",
-		"coding-system-plist", "coding-system-priority-list",
-		"coding-system-put", "color-distance", "color-gray-p",
-		"color-supported-p", "combine-after-change-execute",
-		"command-error-default-function", "command-remapping", "commandp",
-		"compare-buffer-substrings", "compare-strings",
-		"compare-window-configurations", "completing-read",
-		"compose-region-internal", "compose-string-internal",
-		"composition-get-gstring", "compute-motion", "concat", "cons",
-		"consp", "constrain-to-field", "continue-process",
-		"controlling-tty-p", "coordinates-in-window-p", "copy-alist",
-		"copy-category-table", "copy-file", "copy-hash-table", "copy-keymap",
-		"copy-marker", "copy-sequence", "copy-syntax-table", "copysign",
-		"cos", "current-active-maps", "current-bidi-paragraph-direction",
-		"current-buffer", "current-case-table", "current-column",
-		"current-global-map", "current-idle-time", "current-indentation",
-		"current-input-mode", "current-local-map", "current-message",
-		"current-minor-mode-maps", "current-time", "current-time-string",
-		"current-time-zone", "current-window-configuration",
-		"cygwin-convert-file-name-from-windows",
-		"cygwin-convert-file-name-to-windows", "daemon-initialized",
-		"daemonp", "dbus--init-bus", "dbus-get-unique-name",
-		"dbus-message-internal", "debug-timer-check", "declare-equiv-charset",
-		"decode-big5-char", "decode-char", "decode-coding-region",
-		"decode-coding-string", "decode-sjis-char", "decode-time",
-		"default-boundp", "default-file-modes", "default-printer-name",
-		"default-toplevel-value", "default-value", "define-category",
-		"define-charset-alias", "define-charset-internal",
-		"define-coding-system-alias", "define-coding-system-internal",
-		"define-fringe-bitmap", "define-hash-table-test", "define-key",
-		"define-prefix-command", "delete",
-		"delete-all-overlays", "delete-and-extract-region", "delete-char",
-		"delete-directory-internal", "delete-field", "delete-file",
-		"delete-frame", "delete-other-windows-internal", "delete-overlay",
-		"delete-process", "delete-region", "delete-terminal",
-		"delete-window-internal", "delq", "describe-buffer-bindings",
-		"describe-vector", "destroy-fringe-bitmap", "detect-coding-region",
-		"detect-coding-string", "ding", "directory-file-name",
-		"directory-files", "directory-files-and-attributes", "discard-input",
-		"display-supports-face-attributes-p", "do-auto-save", "documentation",
-		"documentation-property", "downcase", "downcase-region",
-		"downcase-word", "draw-string", "dump-colors", "dump-emacs",
-		"dump-face", "dump-frame-glyph-matrix", "dump-glyph-matrix",
-		"dump-glyph-row", "dump-redisplay-history", "dump-tool-bar-row",
-		"elt", "emacs-pid", "encode-big5-char", "encode-char",
-		"encode-coding-region", "encode-coding-string", "encode-sjis-char",
-		"encode-time", "end-kbd-macro", "end-of-line", "eobp", "eolp", "eq",
-		"eql", "equal", "equal-including-properties", "erase-buffer",
-		"error-message-string", "eval", "eval-buffer", "eval-region",
-		"event-convert-list", "execute-kbd-macro", "exit-recursive-edit",
-		"exp", "expand-file-name", "expt", "external-debugging-output",
-		"face-attribute-relative-p", "face-attributes-as-vector", "face-font",
-		"fboundp", "fceiling", "fetch-bytecode", "ffloor",
-		"field-beginning", "field-end", "field-string",
-		"field-string-no-properties", "file-accessible-directory-p",
-		"file-acl", "file-attributes", "file-attributes-lessp",
-		"file-directory-p", "file-executable-p", "file-exists-p",
-		"file-locked-p", "file-modes", "file-name-absolute-p",
-		"file-name-all-completions", "file-name-as-directory",
-		"file-name-completion", "file-name-directory",
-		"file-name-nondirectory", "file-newer-than-file-p", "file-readable-p",
-		"file-regular-p", "file-selinux-context", "file-symlink-p",
-		"file-system-info", "file-system-info", "file-writable-p",
-		"fillarray", "find-charset-region", "find-charset-string",
-		"find-coding-systems-region-internal", "find-composition-internal",
-		"find-file-name-handler", "find-font", "find-operation-coding-system",
-		"float", "float-time", "floatp", "floor", "fmakunbound",
-		"following-char", "font-at", "font-drive-otf", "font-face-attributes",
-		"font-family-list", "font-get", "font-get-glyphs",
-		"font-get-system-font", "font-get-system-normal-font", "font-info",
-		"font-match-p", "font-otf-alternates", "font-put",
-		"font-shape-gstring", "font-spec", "font-variation-glyphs",
-		"font-xlfd-name", "fontp", "fontset-font", "fontset-info",
-		"fontset-list", "fontset-list-all", "force-mode-line-update",
-		"force-window-update", "format", "format-mode-line",
-		"format-network-address", "format-time-string", "forward-char",
-		"forward-comment", "forward-line", "forward-word",
-		"frame-border-width", "frame-bottom-divider-width",
-		"frame-can-run-window-configuration-change-hook", "frame-char-height",
-		"frame-char-width", "frame-face-alist", "frame-first-window",
-		"frame-focus", "frame-font-cache", "frame-fringe-width", "frame-list",
-		"frame-live-p", "frame-or-buffer-changed-p", "frame-parameter",
-		"frame-parameters", "frame-pixel-height", "frame-pixel-width",
-		"frame-pointer-visible-p", "frame-right-divider-width",
-		"frame-root-window", "frame-scroll-bar-height",
-		"frame-scroll-bar-width", "frame-selected-window", "frame-terminal",
-		"frame-text-cols", "frame-text-height", "frame-text-lines",
-		"frame-text-width", "frame-total-cols", "frame-total-lines",
-		"frame-visible-p", "framep", "frexp", "fringe-bitmaps-at-pos",
-		"fround", "fset", "ftruncate", "funcall", "funcall-interactively",
-		"function-equal", "functionp", "gap-position", "gap-size",
-		"garbage-collect", "gc-status", "generate-new-buffer-name", "get",
-		"get-buffer", "get-buffer-create", "get-buffer-process",
-		"get-buffer-window", "get-byte", "get-char-property",
-		"get-char-property-and-overlay", "get-file-buffer", "get-file-char",
-		"get-internal-run-time", "get-load-suffixes", "get-pos-property",
-		"get-process", "get-screen-color", "get-text-property",
-		"get-unicode-property-internal", "get-unused-category",
-		"get-unused-iso-final-char", "getenv-internal", "gethash",
-		"gfile-add-watch", "gfile-rm-watch", "global-key-binding",
-		"gnutls-available-p", "gnutls-boot", "gnutls-bye", "gnutls-deinit",
-		"gnutls-error-fatalp", "gnutls-error-string", "gnutls-errorp",
-		"gnutls-get-initstage", "gnutls-peer-status",
-		"gnutls-peer-status-warning-describe", "goto-char", "gpm-mouse-start",
-		"gpm-mouse-stop", "group-gid", "group-real-gid",
-		"handle-save-session", "handle-switch-frame", "hash-table-count",
-		"hash-table-p", "hash-table-rehash-size",
-		"hash-table-rehash-threshold", "hash-table-size", "hash-table-test",
-		"hash-table-weakness", "iconify-frame", "identity", "image-flush",
-		"image-mask-p", "image-metadata", "image-size", "imagemagick-types",
-		"imagep", "indent-to", "indirect-function", "indirect-variable",
-		"init-image-library", "inotify-add-watch", "inotify-rm-watch",
-		"input-pending-p", "insert", "insert-and-inherit",
-		"insert-before-markers", "insert-before-markers-and-inherit",
-		"insert-buffer-substring", "insert-byte", "insert-char",
-		"insert-file-contents", "insert-startup-screen", "int86",
-		"integer-or-marker-p", "integerp", "interactive-form", "intern",
-		"intern-soft", "internal--track-mouse", "internal-char-font",
-		"internal-complete-buffer", "internal-copy-lisp-face",
-		"internal-default-process-filter",
-		"internal-default-process-sentinel", "internal-describe-syntax-value",
-		"internal-event-symbol-parse-modifiers",
-		"internal-face-x-get-resource", "internal-get-lisp-face-attribute",
-		"internal-lisp-face-attribute-values", "internal-lisp-face-empty-p",
-		"internal-lisp-face-equal-p", "internal-lisp-face-p",
-		"internal-make-lisp-face", "internal-make-var-non-special",
-		"internal-merge-in-global-face",
-		"internal-set-alternative-font-family-alist",
-		"internal-set-alternative-font-registry-alist",
-		"internal-set-font-selection-order",
-		"internal-set-lisp-face-attribute",
-		"internal-set-lisp-face-attribute-from-resource",
-		"internal-show-cursor", "internal-show-cursor-p", "interrupt-process",
-		"invisible-p", "invocation-directory", "invocation-name", "isnan",
-		"iso-charset", "key-binding", "key-description",
-		"keyboard-coding-system", "keymap-parent", "keymap-prompt", "keymapp",
-		"keywordp", "kill-all-local-variables", "kill-buffer", "kill-emacs",
-		"kill-local-variable", "kill-process", "last-nonminibuffer-frame",
-		"lax-plist-get", "lax-plist-put", "ldexp", "length",
-		"libxml-parse-html-region", "libxml-parse-xml-region",
-		"line-beginning-position", "line-end-position", "line-pixel-height",
-		"list", "list-fonts", "list-system-processes", "listp", "load",
-		"load-average", "local-key-binding", "local-variable-if-set-p",
-		"local-variable-p", "locale-info", "locate-file-internal",
-		"lock-buffer", "log", "logand", "logb", "logior", "lognot", "logxor",
-		"looking-at", "lookup-image", "lookup-image-map", "lookup-key",
-		"lower-frame", "lsh", "macroexpand", "make-bool-vector",
-		"make-byte-code", "make-category-set", "make-category-table",
-		"make-char", "make-char-table", "make-directory-internal",
-		"make-frame-invisible", "make-frame-visible", "make-hash-table",
-		"make-indirect-buffer", "make-keymap", "make-list",
-		"make-local-variable", "make-marker", "make-network-process",
-		"make-overlay", "make-serial-process", "make-sparse-keymap",
-		"make-string", "make-symbol", "make-symbolic-link", "make-temp-name",
-		"make-terminal-frame", "make-variable-buffer-local",
-		"make-variable-frame-local", "make-vector", "makunbound",
-		"map-char-table", "map-charset-chars", "map-keymap",
-		"map-keymap-internal", "mapatoms", "mapc", "mapcar", "mapconcat",
-		"maphash", "mark-marker", "marker-buffer", "marker-insertion-type",
-		"marker-position", "markerp", "match-beginning", "match-data",
-		"match-end", "matching-paren", "max", "max-char", "md5", "member",
-		"memory-info", "memory-limit", "memory-use-counts", "memq", "memql",
-		"menu-bar-menu-at-x-y", "menu-or-popup-active-p",
-		"menu-or-popup-active-p", "merge-face-attribute", "message",
-		"message-box", "message-or-box", "min",
-		"minibuffer-completion-contents", "minibuffer-contents",
-		"minibuffer-contents-no-properties", "minibuffer-depth",
-		"minibuffer-prompt", "minibuffer-prompt-end",
-		"minibuffer-selected-window", "minibuffer-window", "minibufferp",
-		"minor-mode-key-binding", "mod", "modify-category-entry",
-		"modify-frame-parameters", "modify-syntax-entry",
-		"mouse-pixel-position", "mouse-position", "move-overlay",
-		"move-point-visually", "move-to-column", "move-to-window-line",
-		"msdos-downcase-filename", "msdos-long-file-names", "msdos-memget",
-		"msdos-memput", "msdos-mouse-disable", "msdos-mouse-enable",
-		"msdos-mouse-init", "msdos-mouse-p", "msdos-remember-default-colors",
-		"msdos-set-keyboard", "msdos-set-mouse-buttons",
-		"multibyte-char-to-unibyte", "multibyte-string-p", "narrow-to-region",
-		"natnump", "nconc", "network-interface-info",
-		"network-interface-list", "new-fontset", "newline-cache-check",
-		"next-char-property-change", "next-frame", "next-overlay-change",
-		"next-property-change", "next-read-file-uses-dialog-p",
-		"next-single-char-property-change", "next-single-property-change",
-		"next-window", "nlistp", "nreverse", "nth", "nthcdr", "null",
-		"number-or-marker-p", "number-to-string", "numberp",
-		"open-dribble-file", "open-font", "open-termscript",
-		"optimize-char-table", "other-buffer", "other-window-for-scrolling",
-		"overlay-buffer", "overlay-end", "overlay-get", "overlay-lists",
-		"overlay-properties", "overlay-put", "overlay-recenter",
-		"overlay-start", "overlayp", "overlays-at", "overlays-in",
-		"parse-partial-sexp", "play-sound-internal", "plist-get",
-		"plist-member", "plist-put", "point", "point-marker", "point-max",
-		"point-max-marker", "point-min", "point-min-marker",
-		"pos-visible-in-window-p", "position-bytes", "posix-looking-at",
-		"posix-search-backward", "posix-search-forward", "posix-string-match",
-		"posn-at-point", "posn-at-x-y", "preceding-char",
-		"prefix-numeric-value", "previous-char-property-change",
-		"previous-frame", "previous-overlay-change",
-		"previous-property-change", "previous-single-char-property-change",
-		"previous-single-property-change", "previous-window", "prin1",
-		"prin1-to-string", "princ", "print", "process-attributes",
-		"process-buffer", "process-coding-system", "process-command",
-		"process-connection", "process-contact", "process-datagram-address",
-		"process-exit-status", "process-filter", "process-filter-multibyte-p",
-		"process-id", "process-inherit-coding-system-flag", "process-list",
-		"process-mark", "process-name", "process-plist",
-		"process-query-on-exit-flag", "process-running-child-p",
-		"process-send-eof", "process-send-region", "process-send-string",
-		"process-sentinel", "process-status", "process-tty-name",
-		"process-type", "processp", "profiler-cpu-log",
-		"profiler-cpu-running-p", "profiler-cpu-start", "profiler-cpu-stop",
-		"profiler-memory-log", "profiler-memory-running-p",
-		"profiler-memory-start", "profiler-memory-stop", "propertize",
-		"purecopy", "put", "put-text-property",
-		"put-unicode-property-internal", "puthash", "query-font",
-		"query-fontset", "quit-process", "raise-frame", "random", "rassoc",
-		"rassq", "re-search-backward", "re-search-forward", "read",
-		"read-buffer", "read-char", "read-char-exclusive",
-		"read-coding-system", "read-command", "read-event",
-		"read-from-minibuffer", "read-from-string", "read-function",
-		"read-key-sequence", "read-key-sequence-vector",
-		"read-no-blanks-input", "read-non-nil-coding-system", "read-string",
-		"read-variable", "recent-auto-save-p", "recent-doskeys",
-		"recent-keys", "recenter", "recursion-depth", "recursive-edit",
-		"redirect-debugging-output", "redirect-frame-focus", "redisplay",
-		"redraw-display", "redraw-frame", "regexp-quote", "region-beginning",
-		"region-end", "register-ccl-program", "register-code-conversion-map",
-		"remhash", "remove-list-of-text-properties", "remove-text-properties",
-		"rename-buffer", "rename-file", "replace-match",
-		"reset-this-command-lengths", "resize-mini-window-internal",
-		"restore-buffer-modified-p", "resume-tty", "reverse", "round",
-		"run-hook-with-args", "run-hook-with-args-until-failure",
-		"run-hook-with-args-until-success", "run-hook-wrapped", "run-hooks",
-		"run-window-configuration-change-hook", "run-window-scroll-functions",
-		"safe-length", "scan-lists", "scan-sexps", "scroll-down",
-		"scroll-left", "scroll-other-window", "scroll-right", "scroll-up",
-		"search-backward", "search-forward", "secure-hash", "select-frame",
-		"select-window", "selected-frame", "selected-window",
-		"self-insert-command", "send-string-to-terminal", "sequencep",
-		"serial-process-configure", "set", "set-buffer",
-		"set-buffer-auto-saved", "set-buffer-major-mode",
-		"set-buffer-modified-p", "set-buffer-multibyte", "set-case-table",
-		"set-category-table", "set-char-table-extra-slot",
-		"set-char-table-parent", "set-char-table-range", "set-charset-plist",
-		"set-charset-priority", "set-coding-system-priority",
-		"set-cursor-size", "set-default", "set-default-file-modes",
-		"set-default-toplevel-value", "set-file-acl", "set-file-modes",
-		"set-file-selinux-context", "set-file-times", "set-fontset-font",
-		"set-frame-height", "set-frame-position", "set-frame-selected-window",
-		"set-frame-size", "set-frame-width", "set-fringe-bitmap-face",
-		"set-input-interrupt-mode", "set-input-meta-mode", "set-input-mode",
-		"set-keyboard-coding-system-internal", "set-keymap-parent",
-		"set-marker", "set-marker-insertion-type", "set-match-data",
-		"set-message-beep", "set-minibuffer-window",
-		"set-mouse-pixel-position", "set-mouse-position",
-		"set-network-process-option", "set-output-flow-control",
-		"set-process-buffer", "set-process-coding-system",
-		"set-process-datagram-address", "set-process-filter",
-		"set-process-filter-multibyte",
-		"set-process-inherit-coding-system-flag", "set-process-plist",
-		"set-process-query-on-exit-flag", "set-process-sentinel",
-		"set-process-window-size", "set-quit-char",
-		"set-safe-terminal-coding-system-internal", "set-screen-color",
-		"set-standard-case-table", "set-syntax-table",
-		"set-terminal-coding-system-internal", "set-terminal-local-value",
-		"set-terminal-parameter", "set-text-properties", "set-time-zone-rule",
-		"set-visited-file-modtime", "set-window-buffer",
-		"set-window-combination-limit", "set-window-configuration",
-		"set-window-dedicated-p", "set-window-display-table",
-		"set-window-fringes", "set-window-hscroll", "set-window-margins",
-		"set-window-new-normal", "set-window-new-pixel",
-		"set-window-new-total", "set-window-next-buffers",
-		"set-window-parameter", "set-window-point", "set-window-prev-buffers",
-		"set-window-redisplay-end-trigger", "set-window-scroll-bars",
-		"set-window-start", "set-window-vscroll", "setcar", "setcdr",
-		"setplist", "show-face-resources", "signal", "signal-process", "sin",
-		"single-key-description", "skip-chars-backward", "skip-chars-forward",
-		"skip-syntax-backward", "skip-syntax-forward", "sleep-for", "sort",
-		"sort-charsets", "special-variable-p", "split-char",
-		"split-window-internal", "sqrt", "standard-case-table",
-		"standard-category-table", "standard-syntax-table", "start-kbd-macro",
-		"start-process", "stop-process", "store-kbd-macro-event", "string",
-		"string-as-multibyte", "string-as-unibyte", "string-bytes",
-		"string-collate-equalp", "string-collate-lessp", "string-equal",
-		"string-lessp", "string-make-multibyte", "string-make-unibyte",
-		"string-match", "string-to-char", "string-to-multibyte",
-		"string-to-number", "string-to-syntax", "string-to-unibyte",
-		"string-width", "stringp", "subr-name", "subrp",
-		"subst-char-in-region", "substitute-command-keys",
-		"substitute-in-file-name", "substring", "substring-no-properties",
-		"suspend-emacs", "suspend-tty", "suspicious-object", "sxhash",
-		"symbol-function", "symbol-name", "symbol-plist", "symbol-value",
-		"symbolp", "syntax-table", "syntax-table-p", "system-groups",
-		"system-move-file-to-trash", "system-name", "system-users", "tan",
-		"terminal-coding-system", "terminal-list", "terminal-live-p",
-		"terminal-local-value", "terminal-name", "terminal-parameter",
-		"terminal-parameters", "terpri", "test-completion",
-		"text-char-description", "text-properties-at", "text-property-any",
-		"text-property-not-all", "this-command-keys",
-		"this-command-keys-vector", "this-single-command-keys",
-		"this-single-command-raw-keys", "time-add", "time-less-p",
-		"time-subtract", "tool-bar-get-system-style", "tool-bar-height",
-		"tool-bar-pixel-width", "top-level", "trace-redisplay",
-		"trace-to-stderr", "translate-region-internal", "transpose-regions",
-		"truncate", "try-completion", "tty-display-color-cells",
-		"tty-display-color-p", "tty-no-underline",
-		"tty-suppress-bold-inverse-default-colors", "tty-top-frame",
-		"tty-type", "type-of", "undo-boundary", "unencodable-char-position",
-		"unhandled-file-name-directory", "unibyte-char-to-multibyte",
-		"unibyte-string", "unicode-property-table-internal", "unify-charset",
-		"unintern", "unix-sync", "unlock-buffer", "upcase", "upcase-initials",
-		"upcase-initials-region", "upcase-region", "upcase-word",
-		"use-global-map", "use-local-map", "user-full-name",
-		"user-login-name", "user-real-login-name", "user-real-uid",
-		"user-uid", "variable-binding-locus", "vconcat", "vector",
-		"vector-or-char-table-p", "vectorp", "verify-visited-file-modtime",
-		"vertical-motion", "visible-frame-list", "visited-file-modtime",
-		"w16-get-clipboard-data", "w16-selection-exists-p",
-		"w16-set-clipboard-data", "w32-battery-status",
-		"w32-default-color-map", "w32-define-rgb-color",
-		"w32-display-monitor-attributes-list", "w32-frame-menu-bar-size",
-		"w32-frame-rect", "w32-get-clipboard-data",
-		"w32-get-codepage-charset", "w32-get-console-codepage",
-		"w32-get-console-output-codepage", "w32-get-current-locale-id",
-		"w32-get-default-locale-id", "w32-get-keyboard-layout",
-		"w32-get-locale-info", "w32-get-valid-codepages",
-		"w32-get-valid-keyboard-layouts", "w32-get-valid-locale-ids",
-		"w32-has-winsock", "w32-long-file-name", "w32-reconstruct-hot-key",
-		"w32-register-hot-key", "w32-registered-hot-keys",
-		"w32-selection-exists-p", "w32-send-sys-command",
-		"w32-set-clipboard-data", "w32-set-console-codepage",
-		"w32-set-console-output-codepage", "w32-set-current-locale",
-		"w32-set-keyboard-layout", "w32-set-process-priority",
-		"w32-shell-execute", "w32-short-file-name", "w32-toggle-lock-key",
-		"w32-unload-winsock", "w32-unregister-hot-key", "w32-window-exists-p",
-		"w32notify-add-watch", "w32notify-rm-watch",
-		"waiting-for-user-input-p", "where-is-internal", "widen",
-		"widget-apply", "widget-get", "widget-put",
-		"window-absolute-pixel-edges", "window-at", "window-body-height",
-		"window-body-width", "window-bottom-divider-width", "window-buffer",
-		"window-combination-limit", "window-configuration-frame",
-		"window-configuration-p", "window-dedicated-p",
-		"window-display-table", "window-edges", "window-end", "window-frame",
-		"window-fringes", "window-header-line-height", "window-hscroll",
-		"window-inside-absolute-pixel-edges", "window-inside-edges",
-		"window-inside-pixel-edges", "window-left-child",
-		"window-left-column", "window-line-height", "window-list",
-		"window-list-1", "window-live-p", "window-margins",
-		"window-minibuffer-p", "window-mode-line-height", "window-new-normal",
-		"window-new-pixel", "window-new-total", "window-next-buffers",
-		"window-next-sibling", "window-normal-size", "window-old-point",
-		"window-parameter", "window-parameters", "window-parent",
-		"window-pixel-edges", "window-pixel-height", "window-pixel-left",
-		"window-pixel-top", "window-pixel-width", "window-point",
-		"window-prev-buffers", "window-prev-sibling",
-		"window-redisplay-end-trigger", "window-resize-apply",
-		"window-resize-apply-total", "window-right-divider-width",
-		"window-scroll-bar-height", "window-scroll-bar-width",
-		"window-scroll-bars", "window-start", "window-system",
-		"window-text-height", "window-text-pixel-size", "window-text-width",
-		"window-top-child", "window-top-line", "window-total-height",
-		"window-total-width", "window-use-time", "window-valid-p",
-		"window-vscroll", "windowp", "write-char", "write-region",
-		"x-backspace-delete-keys-p", "x-change-window-property",
-		"x-change-window-property", "x-close-connection",
-		"x-close-connection", "x-create-frame", "x-create-frame",
-		"x-delete-window-property", "x-delete-window-property",
-		"x-disown-selection-internal", "x-display-backing-store",
-		"x-display-backing-store", "x-display-color-cells",
-		"x-display-color-cells", "x-display-grayscale-p",
-		"x-display-grayscale-p", "x-display-list", "x-display-list",
-		"x-display-mm-height", "x-display-mm-height", "x-display-mm-width",
-		"x-display-mm-width", "x-display-monitor-attributes-list",
-		"x-display-pixel-height", "x-display-pixel-height",
-		"x-display-pixel-width", "x-display-pixel-width", "x-display-planes",
-		"x-display-planes", "x-display-save-under", "x-display-save-under",
-		"x-display-screens", "x-display-screens", "x-display-visual-class",
-		"x-display-visual-class", "x-family-fonts", "x-file-dialog",
-		"x-file-dialog", "x-file-dialog", "x-focus-frame", "x-frame-geometry",
-		"x-frame-geometry", "x-get-atom-name", "x-get-resource",
-		"x-get-selection-internal", "x-hide-tip", "x-hide-tip",
-		"x-list-fonts", "x-load-color-file", "x-menu-bar-open-internal",
-		"x-menu-bar-open-internal", "x-open-connection", "x-open-connection",
-		"x-own-selection-internal", "x-parse-geometry", "x-popup-dialog",
-		"x-popup-menu", "x-register-dnd-atom", "x-select-font",
-		"x-select-font", "x-selection-exists-p", "x-selection-owner-p",
-		"x-send-client-message", "x-server-max-request-size",
-		"x-server-max-request-size", "x-server-vendor", "x-server-vendor",
-		"x-server-version", "x-server-version", "x-show-tip", "x-show-tip",
-		"x-synchronize", "x-synchronize", "x-uses-old-gtk-dialog",
-		"x-window-property", "x-window-property", "x-wm-set-size-hint",
-		"xw-color-defined-p", "xw-color-defined-p", "xw-color-values",
-		"xw-color-values", "xw-display-color-p", "xw-display-color-p",
-		"yes-or-no-p", "zlib-available-p", "zlib-decompress-region",
-		"forward-point",
-	}
-
-	emacsBuiltinFunctionHighlighted = []string{
-		"defvaralias", "provide", "require",
-		"with-no-warnings", "define-widget", "with-electric-help",
-		"throw", "defalias", "featurep",
-	}
-
-	emacsLambdaListKeywords = []string{
-		"&allow-other-keys", "&aux", "&body", "&environment", "&key", "&optional",
-		"&rest", "&whole",
-	}
-
-	emacsErrorKeywords = []string{
-		"cl-assert", "cl-check-type", "error", "signal",
-		"user-error", "warn",
-	}
-)
-
-// EmacsLisp lexer.
-var EmacsLisp = Register(TypeRemappingLexer(MustNewXMLLexer(
-	embedded,
-	"embedded/emacslisp.xml",
-), TypeMapping{
-	{NameVariable, NameFunction, emacsBuiltinFunction},
-	{NameVariable, NameBuiltin, emacsSpecialForms},
-	{NameVariable, NameException, emacsErrorKeywords},
-	{NameVariable, NameBuiltin, append(emacsBuiltinFunctionHighlighted, emacsMacros...)},
-	{NameVariable, KeywordPseudo, emacsLambdaListKeywords},
-}))
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/abap.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/abap.xml	(revision 67)
+++ 	(revision )
@@ -1,154 +1,0 @@
-<lexer>
-  <config>
-    <name>ABAP</name>
-    <alias>abap</alias>
-    <filename>*.abap</filename>
-    <filename>*.ABAP</filename>
-    <mime_type>text/x-abap</mime_type>
-    <case_insensitive>true</case_insensitive>
-  </config>
-  <rules>
-    <state name="common">
-      <rule pattern="\s+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="^\*.*$">
-        <token type="CommentSingle"/>
-      </rule>
-      <rule pattern="\&#34;.*?\n">
-        <token type="CommentSingle"/>
-      </rule>
-      <rule pattern="##\w+">
-        <token type="CommentSpecial"/>
-      </rule>
-    </state>
-    <state name="variable-names">
-      <rule pattern="&lt;\S+&gt;">
-        <token type="NameVariable"/>
-      </rule>
-      <rule pattern="\w[\w~]*(?:(\[\])|-&gt;\*)?">
-        <token type="NameVariable"/>
-      </rule>
-    </state>
-    <state name="root">
-      <rule>
-        <include state="common"/>
-      </rule>
-      <rule pattern="CALL\s+(?:BADI|CUSTOMER-FUNCTION|FUNCTION)">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="(CALL\s+(?:DIALOG|SCREEN|SUBSCREEN|SELECTION-SCREEN|TRANSACTION|TRANSFORMATION))\b">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="(FORM|PERFORM)(\s+)(\w+)">
-        <bygroups>
-          <token type="Keyword"/>
-          <token type="Text"/>
-          <token type="NameFunction"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(PERFORM)(\s+)(\()(\w+)(\))">
-        <bygroups>
-          <token type="Keyword"/>
-          <token type="Text"/>
-          <token type="Punctuation"/>
-          <token type="NameVariable"/>
-          <token type="Punctuation"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(MODULE)(\s+)(\S+)(\s+)(INPUT|OUTPUT)">
-        <bygroups>
-          <token type="Keyword"/>
-          <token type="Text"/>
-          <token type="NameFunction"/>
-          <token type="Text"/>
-          <token type="Keyword"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(METHOD)(\s+)([\w~]+)">
-        <bygroups>
-          <token type="Keyword"/>
-          <token type="Text"/>
-          <token type="NameFunction"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(\s+)([\w\-]+)([=\-]&gt;)([\w\-~]+)">
-        <bygroups>
-          <token type="Text"/>
-          <token type="NameVariable"/>
-          <token type="Operator"/>
-          <token type="NameFunction"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(?&lt;=(=|-)&gt;)([\w\-~]+)(?=\()">
-        <token type="NameFunction"/>
-      </rule>
-      <rule pattern="(TEXT)(-)(\d{3})">
-        <bygroups>
-          <token type="Keyword"/>
-          <token type="Punctuation"/>
-          <token type="LiteralNumberInteger"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(TEXT)(-)(\w{3})">
-        <bygroups>
-          <token type="Keyword"/>
-          <token type="Punctuation"/>
-          <token type="NameVariable"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(ADD-CORRESPONDING|AUTHORITY-CHECK|CLASS-DATA|CLASS-EVENTS|CLASS-METHODS|CLASS-POOL|DELETE-ADJACENT|DIVIDE-CORRESPONDING|EDITOR-CALL|ENHANCEMENT-POINT|ENHANCEMENT-SECTION|EXIT-COMMAND|FIELD-GROUPS|FIELD-SYMBOLS|FUNCTION-POOL|INTERFACE-POOL|INVERTED-DATE|LOAD-OF-PROGRAM|LOG-POINT|MESSAGE-ID|MOVE-CORRESPONDING|MULTIPLY-CORRESPONDING|NEW-LINE|NEW-PAGE|NEW-SECTION|NO-EXTENSION|OUTPUT-LENGTH|PRINT-CONTROL|SELECT-OPTIONS|START-OF-SELECTION|SUBTRACT-CORRESPONDING|SYNTAX-CHECK|SYSTEM-EXCEPTIONS|TYPE-POOL|TYPE-POOLS|NO-DISPLAY)\b">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="(?&lt;![-\&gt;])(CREATE\s+(PUBLIC|PRIVATE|DATA|OBJECT)|(PUBLIC|PRIVATE|PROTECTED)\s+SECTION|(TYPE|LIKE)\s+((LINE\s+OF|REF\s+TO|(SORTED|STANDARD|HASHED)\s+TABLE\s+OF))?|FROM\s+(DATABASE|MEMORY)|CALL\s+METHOD|(GROUP|ORDER) BY|HAVING|SEPARATED BY|GET\s+(BADI|BIT|CURSOR|DATASET|LOCALE|PARAMETER|PF-STATUS|(PROPERTY|REFERENCE)\s+OF|RUN\s+TIME|TIME\s+(STAMP)?)?|SET\s+(BIT|BLANK\s+LINES|COUNTRY|CURSOR|DATASET|EXTENDED\s+CHECK|HANDLER|HOLD\s+DATA|LANGUAGE|LEFT\s+SCROLL-BOUNDARY|LOCALE|MARGIN|PARAMETER|PF-STATUS|PROPERTY\s+OF|RUN\s+TIME\s+(ANALYZER|CLOCK\s+RESOLUTION)|SCREEN|TITLEBAR|UPADTE\s+TASK\s+LOCAL|USER-COMMAND)|CONVERT\s+((INVERTED-)?DATE|TIME|TIME\s+STAMP|TEXT)|(CLOSE|OPEN)\s+(DATASET|CURSOR)|(TO|FROM)\s+(DATA BUFFER|INTERNAL TABLE|MEMORY ID|DATABASE|SHARED\s+(MEMORY|BUFFER))|DESCRIBE\s+(DISTANCE\s+BETWEEN|FIELD|LIST|TABLE)|FREE\s(MEMORY|OBJECT)?|PROCESS\s+(BEFORE\s+OUTPUT|AFTER\s+INPUT|ON\s+(VALUE-REQUEST|HELP-REQUEST))|AT\s+(LINE-SELECTION|USER-COMMAND|END\s+OF|NEW)|AT\s+SELECTION-SCREEN(\s+(ON(\s+(BLOCK|(HELP|VALUE)-REQUEST\s+FOR|END\s+OF|RADIOBUTTON\s+GROUP))?|OUTPUT))?|SELECTION-SCREEN:?\s+((BEGIN|END)\s+OF\s+((TABBED\s+)?BLOCK|LINE|SCREEN)|COMMENT|FUNCTION\s+KEY|INCLUDE\s+BLOCKS|POSITION|PUSHBUTTON|SKIP|ULINE)|LEAVE\s+(LIST-PROCESSING|PROGRAM|SCREEN|TO LIST-PROCESSING|TO TRANSACTION)(ENDING|STARTING)\s+AT|FORMAT\s+(COLOR|INTENSIFIED|INVERSE|HOTSPOT|INPUT|FRAMES|RESET)|AS\s+(CHECKBOX|SUBSCREEN|WINDOW)|WITH\s+(((NON-)?UNIQUE)?\s+KEY|FRAME)|(BEGIN|END)\s+OF|DELETE(\s+ADJACENT\s+DUPLICATES\sFROM)?|COMPARING(\s+ALL\s+FIELDS)?|(INSERT|APPEND)(\s+INITIAL\s+LINE\s+(IN)?TO|\s+LINES\s+OF)?|IN\s+((BYTE|CHARACTER)\s+MODE|PROGRAM)|END-OF-(DEFINITION|PAGE|SELECTION)|WITH\s+FRAME(\s+TITLE)|(REPLACE|FIND)\s+((FIRST|ALL)\s+OCCURRENCES?\s+OF\s+)?(SUBSTRING|REGEX)?|MATCH\s+(LENGTH|COUNT|LINE|OFFSET)|(RESPECTING|IGNORING)\s+CASE|IN\s+UPDATE\s+TASK|(SOURCE|RESULT)\s+(XML)?|REFERENCE\s+INTO|AND\s+(MARK|RETURN)|CLIENT\s+SPECIFIED|CORRESPONDING\s+FIELDS\s+OF|IF\s+FOUND|FOR\s+EVENT|INHERITING\s+FROM|LEAVE\s+TO\s+SCREEN|LOOP\s+AT\s+(SCREEN)?|LOWER\s+CASE|MATCHCODE\s+OBJECT|MODIF\s+ID|MODIFY\s+SCREEN|NESTING\s+LEVEL|NO\s+INTERVALS|OF\s+STRUCTURE|RADIOBUTTON\s+GROUP|RANGE\s+OF|REF\s+TO|SUPPRESS DIALOG|TABLE\s+OF|UPPER\s+CASE|TRANSPORTING\s+NO\s+FIELDS|VALUE\s+CHECK|VISIBLE\s+LENGTH|HEADER\s+LINE|COMMON\s+PART)\b">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="(^|(?&lt;=(\s|\.)))(ABBREVIATED|ABSTRACT|ADD|ALIASES|ALIGN|ALPHA|ASSERT|AS|ASSIGN(ING)?|AT(\s+FIRST)?|BACK|BLOCK|BREAK-POINT|CASE|CATCH|CHANGING|CHECK|CLASS|CLEAR|COLLECT|COLOR|COMMIT|CREATE|COMMUNICATION|COMPONENTS?|COMPUTE|CONCATENATE|CONDENSE|CONSTANTS|CONTEXTS|CONTINUE|CONTROLS|COUNTRY|CURRENCY|DATA|DATE|DECIMALS|DEFAULT|DEFINE|DEFINITION|DEFERRED|DEMAND|DETAIL|DIRECTORY|DIVIDE|DO|DUMMY|ELSE(IF)?|ENDAT|ENDCASE|ENDCATCH|ENDCLASS|ENDDO|ENDFORM|ENDFUNCTION|ENDIF|ENDINTERFACE|ENDLOOP|ENDMETHOD|ENDMODULE|ENDSELECT|ENDTRY|ENDWHILE|ENHANCEMENT|EVENTS|EXACT|EXCEPTIONS?|EXIT|EXPONENT|EXPORT|EXPORTING|EXTRACT|FETCH|FIELDS?|FOR|FORM|FORMAT|FREE|FROM|FUNCTION|HIDE|ID|IF|IMPORT|IMPLEMENTATION|IMPORTING|IN|INCLUDE|INCLUDING|INDEX|INFOTYPES|INITIALIZATION|INTERFACE|INTERFACES|INTO|LANGUAGE|LEAVE|LENGTH|LINES|LOAD|LOCAL|JOIN|KEY|NEXT|MAXIMUM|MESSAGE|METHOD[S]?|MINIMUM|MODULE|MODIFIER|MODIFY|MOVE|MULTIPLY|NODES|NUMBER|OBLIGATORY|OBJECT|OF|OFF|ON|OTHERS|OVERLAY|PACK|PAD|PARAMETERS|PERCENTAGE|POSITION|PROGRAM|PROVIDE|PUBLIC|PUT|PF\d\d|RAISE|RAISING|RANGES?|READ|RECEIVE|REDEFINITION|REFRESH|REJECT|REPORT|RESERVE|RESUME|RETRY|RETURN|RETURNING|RIGHT|ROLLBACK|REPLACE|SCROLL|SEARCH|SELECT|SHIFT|SIGN|SINGLE|SIZE|SKIP|SORT|SPLIT|STATICS|STOP|STYLE|SUBMATCHES|SUBMIT|SUBTRACT|SUM(?!\()|SUMMARY|SUMMING|SUPPLY|TABLE|TABLES|TIMESTAMP|TIMES?|TIMEZONE|TITLE|\??TO|TOP-OF-PAGE|TRANSFER|TRANSLATE|TRY|TYPES|ULINE|UNDER|UNPACK|UPDATE|USING|VALUE|VALUES|VIA|VARYING|VARY|WAIT|WHEN|WHERE|WIDTH|WHILE|WITH|WINDOW|WRITE|XSD|ZERO)\b">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="(abs|acos|asin|atan|boolc|boolx|bit_set|char_off|charlen|ceil|cmax|cmin|condense|contains|contains_any_of|contains_any_not_of|concat_lines_of|cos|cosh|count|count_any_of|count_any_not_of|dbmaxlen|distance|escape|exp|find|find_end|find_any_of|find_any_not_of|floor|frac|from_mixed|insert|lines|log|log10|match|matches|nmax|nmin|numofchar|repeat|replace|rescale|reverse|round|segment|shift_left|shift_right|sign|sin|sinh|sqrt|strlen|substring|substring_after|substring_from|substring_before|substring_to|tan|tanh|to_upper|to_lower|to_mixed|translate|trunc|xstrlen)(\()\b">
-        <bygroups>
-          <token type="NameBuiltin"/>
-          <token type="Punctuation"/>
-        </bygroups>
-      </rule>
-      <rule pattern="&amp;[0-9]">
-        <token type="Name"/>
-      </rule>
-      <rule pattern="[0-9]+">
-        <token type="LiteralNumberInteger"/>
-      </rule>
-      <rule pattern="(?&lt;=(\s|.))(AND|OR|EQ|NE|GT|LT|GE|LE|CO|CN|CA|NA|CS|NOT|NS|CP|NP|BYTE-CO|BYTE-CN|BYTE-CA|BYTE-NA|BYTE-CS|BYTE-NS|IS\s+(NOT\s+)?(INITIAL|ASSIGNED|REQUESTED|BOUND))\b">
-        <token type="OperatorWord"/>
-      </rule>
-      <rule>
-        <include state="variable-names"/>
-      </rule>
-      <rule pattern="[?*&lt;&gt;=\-+&amp;]">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="&#39;(&#39;&#39;|[^&#39;])*&#39;">
-        <token type="LiteralStringSingle"/>
-      </rule>
-      <rule pattern="`([^`])*`">
-        <token type="LiteralStringSingle"/>
-      </rule>
-      <rule pattern="([|}])([^{}|]*?)([|{])">
-        <bygroups>
-          <token type="Punctuation"/>
-          <token type="LiteralStringSingle"/>
-          <token type="Punctuation"/>
-        </bygroups>
-      </rule>
-      <rule pattern="[/;:()\[\],.]">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="(!)(\w+)">
-        <bygroups>
-          <token type="Operator"/>
-          <token type="Name"/>
-        </bygroups>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/abnf.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/abnf.xml	(revision 67)
+++ 	(revision )
@@ -1,66 +1,0 @@
-<lexer>
-  <config>
-    <name>ABNF</name>
-    <alias>abnf</alias>
-    <filename>*.abnf</filename>
-    <mime_type>text/x-abnf</mime_type>
-  </config>
-  <rules>
-    <state name="root">
-      <rule pattern=";.*$">
-        <token type="CommentSingle"/>
-      </rule>
-      <rule pattern="(%[si])?&#34;[^&#34;]*&#34;">
-        <token type="Literal"/>
-      </rule>
-      <rule pattern="%b[01]+\-[01]+\b">
-        <token type="Literal"/>
-      </rule>
-      <rule pattern="%b[01]+(\.[01]+)*\b">
-        <token type="Literal"/>
-      </rule>
-      <rule pattern="%d[0-9]+\-[0-9]+\b">
-        <token type="Literal"/>
-      </rule>
-      <rule pattern="%d[0-9]+(\.[0-9]+)*\b">
-        <token type="Literal"/>
-      </rule>
-      <rule pattern="%x[0-9a-fA-F]+\-[0-9a-fA-F]+\b">
-        <token type="Literal"/>
-      </rule>
-      <rule pattern="%x[0-9a-fA-F]+(\.[0-9a-fA-F]+)*\b">
-        <token type="Literal"/>
-      </rule>
-      <rule pattern="\b[0-9]+\*[0-9]+">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="\b[0-9]+\*">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="\b[0-9]+">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="\*">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="(HEXDIG|DQUOTE|DIGIT|VCHAR|OCTET|ALPHA|CHAR|CRLF|HTAB|LWSP|BIT|CTL|WSP|LF|SP|CR)\b">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="[a-zA-Z][a-zA-Z0-9-]+\b">
-        <token type="NameClass"/>
-      </rule>
-      <rule pattern="(=/|=|/)">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="[\[\]()]">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="\s+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern=".">
-        <token type="Text"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/actionscript.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/actionscript.xml	(revision 67)
+++ 	(revision )
@@ -1,68 +1,0 @@
-<lexer>
-  <config>
-    <name>ActionScript</name>
-    <alias>as</alias>
-    <alias>actionscript</alias>
-    <filename>*.as</filename>
-    <mime_type>application/x-actionscript</mime_type>
-    <mime_type>text/x-actionscript</mime_type>
-    <mime_type>text/actionscript</mime_type>
-    <dot_all>true</dot_all>
-    <not_multiline>true</not_multiline>
-  </config>
-  <rules>
-    <state name="root">
-      <rule pattern="\s+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="//.*?\n">
-        <token type="CommentSingle"/>
-      </rule>
-      <rule pattern="/\*.*?\*/">
-        <token type="CommentMultiline"/>
-      </rule>
-      <rule pattern="/(\\\\|\\/|[^/\n])*/[gim]*">
-        <token type="LiteralStringRegex"/>
-      </rule>
-      <rule pattern="[~^*!%&amp;&lt;&gt;|+=:;,/?\\-]+">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="[{}\[\]();.]+">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="(instanceof|arguments|continue|default|typeof|switch|return|catch|break|while|throw|each|this|with|else|case|var|new|for|try|if|do|in)\b">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="(implements|protected|namespace|interface|intrinsic|override|function|internal|private|package|extends|dynamic|import|native|return|public|static|class|const|super|final|get|set)\b">
-        <token type="KeywordDeclaration"/>
-      </rule>
-      <rule pattern="(true|false|null|NaN|Infinity|-Infinity|undefined|Void)\b">
-        <token type="KeywordConstant"/>
-      </rule>
-      <rule pattern="(IDynamicPropertyOutputIDynamicPropertyWriter|DisplacmentMapFilterMode|AccessibilityProperties|ContextMenuBuiltInItems|SharedObjectFlushStatus|DisplayObjectContainer|IllegalOperationError|DisplacmentMapFilter|InterpolationMethod|URLLoaderDataFormat|PrintJobOrientation|ActionScriptVersion|BitmapFilterQuality|GradientBevelFilter|GradientGlowFilter|DeleteObjectSample|StackOverflowError|SoundLoaderContext|ScriptTimeoutError|SecurityErrorEvent|InteractiveObject|StageDisplayState|FileReferenceList|TextFieldAutoSize|ApplicationDomain|BitmapDataChannel|ColorMatrixFilter|ExternalInterface|IMEConversionMode|DropShadowFilter|URLRequestHeader|ContextMenuEvent|ConvultionFilter|URLRequestMethod|BitmapFilterType|IEventDispatcher|ContextMenuItem|LocalConnection|InvalidSWFError|AsyncErrorEvent|MovieClipLoader|IBitmapDrawable|PrintJobOptions|EventDispatcher|NewObjectSample|HTTPStatusEvent|TextFormatAlign|IExternalizable|FullScreenEvent|DefinitionError|TextLineMetrics|NetStatusEvent|ColorTransform|ObjectEncoding|SecurityDomain|StageScaleMode|FocusDirection|ReferenceError|SoundTransform|KeyboardEvent|DisplayObject|PixelSnapping|LoaderContext|NetConnection|SecurityPanel|SecurityError|FileReference|AsBroadcaster|LineScaleMode|AntiAliasType|Accessibility|TextFieldType|URLVariabeles|ActivityEvent|ProgressEvent|TextColorType|StageQuality|TextSnapshot|Capabilities|BitmapFilter|SpreadMethod|GradientType|TextRenderer|SoundChannel|SharedObject|IOErrorEvent|SimpleButton|ContextMenu|InvokeEvent|CSMSettings|SyntaxError|StatusEvent|KeyLocation|IDataOutput|VerifyError|XMLDocument|XMLNodeType|MemoryError|GridFitType|BevelFilter|ErrorEvent|FrameLabel|GlowFilter|LoaderInfo|Microphone|MorphShape|BlurFilter|MouseEvent|FocusEvent|SoundMixer|FileFilter|TimerEvent|JointStyle|EventPhase|StageAlign|Dictionary|URLRequest|StyleSheet|SWFVersion|IDataInput|StaticText|RangeError|BitmapData|TextFormat|StackFrame|Namespace|SyncEvent|Rectangle|URLLoader|TypeError|Responder|NetStream|BlendMode|CapsStyle|DataEvent|ByteArray|MovieClip|Transform|TextField|Selection|AVM1Movie|XMLSocket|URLStream|FontStyle|EvalError|FontType|LoadVars|Graphics|Security|IMEEvent|URIError|Keyboard|Function|EOFError|PrintJob|IOError|XMLList|Boolean|ID3Info|XMLNode|Bitmap|String|RegExp|Sample|Object|Sprite|System|Endian|Matrix|Camera|Locale|Number|Loader|Socket|QName|Class|Timer|Sound|Shape|XMLUI|Mouse|Scene|Stage|Color|Point|Video|Error|Event|Proxy|Array|Date|uint|Math|Font|int|Key|IME|XML)\b">
-        <token type="NameBuiltin"/>
-      </rule>
-      <rule pattern="(decodeURIComponent|updateAfterEvent|clearInterval|setInterval|getVersion|parseFloat|fscommand|isXMLName|encodeURI|decodeURI|getTimer|unescape|isFinite|parseInt|getURL|escape|trace|isNaN|eval)\b">
-        <token type="NameFunction"/>
-      </rule>
-      <rule pattern="[$a-zA-Z_]\w*">
-        <token type="NameOther"/>
-      </rule>
-      <rule pattern="[0-9][0-9]*\.[0-9]+([eE][0-9]+)?[fd]?">
-        <token type="LiteralNumberFloat"/>
-      </rule>
-      <rule pattern="0x[0-9a-f]+">
-        <token type="LiteralNumberHex"/>
-      </rule>
-      <rule pattern="[0-9]+">
-        <token type="LiteralNumberInteger"/>
-      </rule>
-      <rule pattern="&#34;(\\\\|\\&#34;|[^&#34;])*&#34;">
-        <token type="LiteralStringDouble"/>
-      </rule>
-      <rule pattern="&#39;(\\\\|\\&#39;|[^&#39;])*&#39;">
-        <token type="LiteralStringSingle"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/actionscript_3.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/actionscript_3.xml	(revision 67)
+++ 	(revision )
@@ -1,163 +1,0 @@
-<lexer>
-  <config>
-    <name>ActionScript 3</name>
-    <alias>as3</alias>
-    <alias>actionscript3</alias>
-    <filename>*.as</filename>
-    <mime_type>application/x-actionscript3</mime_type>
-    <mime_type>text/x-actionscript3</mime_type>
-    <mime_type>text/actionscript3</mime_type>
-    <dot_all>true</dot_all>
-  </config>
-  <rules>
-    <state name="funcparams">
-      <rule pattern="\s+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="(\s*)(\.\.\.)?([$a-zA-Z_]\w*)(\s*)(:)(\s*)([$a-zA-Z_]\w*(?:\.&lt;\w+&gt;)?|\*)(\s*)">
-        <bygroups>
-          <token type="Text"/>
-          <token type="Punctuation"/>
-          <token type="Name"/>
-          <token type="Text"/>
-          <token type="Operator"/>
-          <token type="Text"/>
-          <token type="KeywordType"/>
-          <token type="Text"/>
-        </bygroups>
-        <push state="defval"/>
-      </rule>
-      <rule pattern="\)">
-        <token type="Operator"/>
-        <push state="type"/>
-      </rule>
-    </state>
-    <state name="type">
-      <rule pattern="(\s*)(:)(\s*)([$a-zA-Z_]\w*(?:\.&lt;\w+&gt;)?|\*)">
-        <bygroups>
-          <token type="Text"/>
-          <token type="Operator"/>
-          <token type="Text"/>
-          <token type="KeywordType"/>
-        </bygroups>
-        <pop depth="2"/>
-      </rule>
-      <rule pattern="\s+">
-        <token type="Text"/>
-        <pop depth="2"/>
-      </rule>
-      <rule>
-        <pop depth="2"/>
-      </rule>
-    </state>
-    <state name="defval">
-      <rule pattern="(=)(\s*)([^(),]+)(\s*)(,?)">
-        <bygroups>
-          <token type="Operator"/>
-          <token type="Text"/>
-          <usingself state="root"/>
-          <token type="Text"/>
-          <token type="Operator"/>
-        </bygroups>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern=",">
-        <token type="Operator"/>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="root">
-      <rule pattern="\s+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="(function\s+)([$a-zA-Z_]\w*)(\s*)(\()">
-        <bygroups>
-          <token type="KeywordDeclaration"/>
-          <token type="NameFunction"/>
-          <token type="Text"/>
-          <token type="Operator"/>
-        </bygroups>
-        <push state="funcparams"/>
-      </rule>
-      <rule pattern="(var|const)(\s+)([$a-zA-Z_]\w*)(\s*)(:)(\s*)([$a-zA-Z_]\w*(?:\.&lt;\w+&gt;)?)">
-        <bygroups>
-          <token type="KeywordDeclaration"/>
-          <token type="Text"/>
-          <token type="Name"/>
-          <token type="Text"/>
-          <token type="Punctuation"/>
-          <token type="Text"/>
-          <token type="KeywordType"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(import|package)(\s+)((?:[$a-zA-Z_]\w*|\.)+)(\s*)">
-        <bygroups>
-          <token type="Keyword"/>
-          <token type="Text"/>
-          <token type="NameNamespace"/>
-          <token type="Text"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(new)(\s+)([$a-zA-Z_]\w*(?:\.&lt;\w+&gt;)?)(\s*)(\()">
-        <bygroups>
-          <token type="Keyword"/>
-          <token type="Text"/>
-          <token type="KeywordType"/>
-          <token type="Text"/>
-          <token type="Operator"/>
-        </bygroups>
-      </rule>
-      <rule pattern="//.*?\n">
-        <token type="CommentSingle"/>
-      </rule>
-      <rule pattern="/\*.*?\*/">
-        <token type="CommentMultiline"/>
-      </rule>
-      <rule pattern="/(\\\\|\\/|[^\n])*/[gisx]*">
-        <token type="LiteralStringRegex"/>
-      </rule>
-      <rule pattern="(\.)([$a-zA-Z_]\w*)">
-        <bygroups>
-          <token type="Operator"/>
-          <token type="NameAttribute"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(case|default|for|each|in|while|do|break|return|continue|if|else|throw|try|catch|with|new|typeof|arguments|instanceof|this|switch|import|include|as|is)\b">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="(class|public|final|internal|native|override|private|protected|static|import|extends|implements|interface|intrinsic|return|super|dynamic|function|const|get|namespace|package|set)\b">
-        <token type="KeywordDeclaration"/>
-      </rule>
-      <rule pattern="(true|false|null|NaN|Infinity|-Infinity|undefined|void)\b">
-        <token type="KeywordConstant"/>
-      </rule>
-      <rule pattern="(decodeURI|decodeURIComponent|encodeURI|escape|eval|isFinite|isNaN|isXMLName|clearInterval|fscommand|getTimer|getURL|getVersion|isFinite|parseFloat|parseInt|setInterval|trace|updateAfterEvent|unescape)\b">
-        <token type="NameFunction"/>
-      </rule>
-      <rule pattern="[$a-zA-Z_]\w*">
-        <token type="Name"/>
-      </rule>
-      <rule pattern="[0-9][0-9]*\.[0-9]+([eE][0-9]+)?[fd]?">
-        <token type="LiteralNumberFloat"/>
-      </rule>
-      <rule pattern="0x[0-9a-f]+">
-        <token type="LiteralNumberHex"/>
-      </rule>
-      <rule pattern="[0-9]+">
-        <token type="LiteralNumberInteger"/>
-      </rule>
-      <rule pattern="&#34;(\\\\|\\&#34;|[^&#34;])*&#34;">
-        <token type="LiteralStringDouble"/>
-      </rule>
-      <rule pattern="&#39;(\\\\|\\&#39;|[^&#39;])*&#39;">
-        <token type="LiteralStringSingle"/>
-      </rule>
-      <rule pattern="[~^*!%&amp;&lt;&gt;|+=:;,/?\\{}\[\]().-]+">
-        <token type="Operator"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/ada.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/ada.xml	(revision 67)
+++ 	(revision )
@@ -1,321 +1,0 @@
-<lexer>
-  <config>
-    <name>Ada</name>
-    <alias>ada</alias>
-    <alias>ada95</alias>
-    <alias>ada2005</alias>
-    <filename>*.adb</filename>
-    <filename>*.ads</filename>
-    <filename>*.ada</filename>
-    <mime_type>text/x-ada</mime_type>
-    <case_insensitive>true</case_insensitive>
-  </config>
-  <rules>
-    <state name="end">
-      <rule pattern="(if|case|record|loop|select)">
-        <token type="KeywordReserved"/>
-      </rule>
-      <rule pattern="&#34;[^&#34;]+&#34;|[\w.]+">
-        <token type="NameFunction"/>
-      </rule>
-      <rule pattern="\s+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern=";">
-        <token type="Punctuation"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="array_def">
-      <rule pattern=";">
-        <token type="Punctuation"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="(\w+)(\s+)(range)">
-        <bygroups>
-          <token type="KeywordType"/>
-          <token type="Text"/>
-          <token type="KeywordReserved"/>
-        </bygroups>
-      </rule>
-      <rule>
-        <include state="root"/>
-      </rule>
-    </state>
-    <state name="package_instantiation">
-      <rule pattern="(&#34;[^&#34;]+&#34;|\w+)(\s+)(=&gt;)">
-        <bygroups>
-          <token type="NameVariable"/>
-          <token type="Text"/>
-          <token type="Punctuation"/>
-        </bygroups>
-      </rule>
-      <rule pattern="[\w.\&#39;&#34;]">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="\)">
-        <token type="Punctuation"/>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <include state="root"/>
-      </rule>
-    </state>
-    <state name="subprogram">
-      <rule pattern="\(">
-        <token type="Punctuation"/>
-        <push state="#pop" state="formal_part"/>
-      </rule>
-      <rule pattern=";">
-        <token type="Punctuation"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="is\b">
-        <token type="KeywordReserved"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="&#34;[^&#34;]+&#34;|\w+">
-        <token type="NameFunction"/>
-      </rule>
-      <rule>
-        <include state="root"/>
-      </rule>
-    </state>
-    <state name="type_def">
-      <rule pattern=";">
-        <token type="Punctuation"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="\(">
-        <token type="Punctuation"/>
-        <push state="formal_part"/>
-      </rule>
-      <rule pattern="with|and|use">
-        <token type="KeywordReserved"/>
-      </rule>
-      <rule pattern="array\b">
-        <token type="KeywordReserved"/>
-        <push state="#pop" state="array_def"/>
-      </rule>
-      <rule pattern="record\b">
-        <token type="KeywordReserved"/>
-        <push state="record_def"/>
-      </rule>
-      <rule pattern="(null record)(;)">
-        <bygroups>
-          <token type="KeywordReserved"/>
-          <token type="Punctuation"/>
-        </bygroups>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <include state="root"/>
-      </rule>
-    </state>
-    <state name="import">
-      <rule pattern="[\w.]+">
-        <token type="NameNamespace"/>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="formal_part">
-      <rule pattern="\)">
-        <token type="Punctuation"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="\w+">
-        <token type="NameVariable"/>
-      </rule>
-      <rule pattern=",|:[^=]">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="(in|not|null|out|access)\b">
-        <token type="KeywordReserved"/>
-      </rule>
-      <rule>
-        <include state="root"/>
-      </rule>
-    </state>
-    <state name="package">
-      <rule pattern="body">
-        <token type="KeywordDeclaration"/>
-      </rule>
-      <rule pattern="is\s+new|renames">
-        <token type="KeywordReserved"/>
-      </rule>
-      <rule pattern="is">
-        <token type="KeywordReserved"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern=";">
-        <token type="Punctuation"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="\(">
-        <token type="Punctuation"/>
-        <push state="package_instantiation"/>
-      </rule>
-      <rule pattern="([\w.]+)">
-        <token type="NameClass"/>
-      </rule>
-      <rule>
-        <include state="root"/>
-      </rule>
-    </state>
-    <state name="attribute">
-      <rule pattern="(&#39;)(\w+)">
-        <bygroups>
-          <token type="Punctuation"/>
-          <token type="NameAttribute"/>
-        </bygroups>
-      </rule>
-    </state>
-    <state name="record_def">
-      <rule pattern="end record">
-        <token type="KeywordReserved"/>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <include state="root"/>
-      </rule>
-    </state>
-    <state name="root">
-      <rule pattern="[^\S\n]+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="--.*?\n">
-        <token type="CommentSingle"/>
-      </rule>
-      <rule pattern="[^\S\n]+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="function|procedure|entry">
-        <token type="KeywordDeclaration"/>
-        <push state="subprogram"/>
-      </rule>
-      <rule pattern="(subtype|type)(\s+)(\w+)">
-        <bygroups>
-          <token type="KeywordDeclaration"/>
-          <token type="Text"/>
-          <token type="KeywordType"/>
-        </bygroups>
-        <push state="type_def"/>
-      </rule>
-      <rule pattern="task|protected">
-        <token type="KeywordDeclaration"/>
-      </rule>
-      <rule pattern="(subtype)(\s+)">
-        <bygroups>
-          <token type="KeywordDeclaration"/>
-          <token type="Text"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(end)(\s+)">
-        <bygroups>
-          <token type="KeywordReserved"/>
-          <token type="Text"/>
-        </bygroups>
-        <push state="end"/>
-      </rule>
-      <rule pattern="(pragma)(\s+)(\w+)">
-        <bygroups>
-          <token type="KeywordReserved"/>
-          <token type="Text"/>
-          <token type="CommentPreproc"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(true|false|null)\b">
-        <token type="KeywordConstant"/>
-      </rule>
-      <rule pattern="(Short_Short_Integer|Short_Short_Float|Long_Long_Integer|Long_Long_Float|Wide_Character|Reference_Type|Short_Integer|Long_Integer|Wide_String|Short_Float|Controlled|Long_Float|Character|Generator|File_Type|File_Mode|Positive|Duration|Boolean|Natural|Integer|Address|Cursor|String|Count|Float|Byte)\b">
-        <token type="KeywordType"/>
-      </rule>
-      <rule pattern="(and(\s+then)?|in|mod|not|or(\s+else)|rem)\b">
-        <token type="OperatorWord"/>
-      </rule>
-      <rule pattern="generic|private">
-        <token type="KeywordDeclaration"/>
-      </rule>
-      <rule pattern="package">
-        <token type="KeywordDeclaration"/>
-        <push state="package"/>
-      </rule>
-      <rule pattern="array\b">
-        <token type="KeywordReserved"/>
-        <push state="array_def"/>
-      </rule>
-      <rule pattern="(with|use)(\s+)">
-        <bygroups>
-          <token type="KeywordNamespace"/>
-          <token type="Text"/>
-        </bygroups>
-        <push state="import"/>
-      </rule>
-      <rule pattern="(\w+)(\s*)(:)(\s*)(constant)">
-        <bygroups>
-          <token type="NameConstant"/>
-          <token type="Text"/>
-          <token type="Punctuation"/>
-          <token type="Text"/>
-          <token type="KeywordReserved"/>
-        </bygroups>
-      </rule>
-      <rule pattern="&lt;&lt;\w+&gt;&gt;">
-        <token type="NameLabel"/>
-      </rule>
-      <rule pattern="(\w+)(\s*)(:)(\s*)(declare|begin|loop|for|while)">
-        <bygroups>
-          <token type="NameLabel"/>
-          <token type="Text"/>
-          <token type="Punctuation"/>
-          <token type="Text"/>
-          <token type="KeywordReserved"/>
-        </bygroups>
-      </rule>
-      <rule pattern="\b(synchronized|overriding|terminate|interface|exception|protected|separate|constant|abstract|renames|reverse|subtype|aliased|declare|requeue|limited|return|tagged|access|record|select|accept|digits|others|pragma|entry|elsif|delta|delay|array|until|range|raise|while|begin|abort|else|loop|when|type|null|then|body|task|goto|case|exit|end|for|abs|xor|all|new|out|is|of|if|or|do|at)\b">
-        <token type="KeywordReserved"/>
-      </rule>
-      <rule pattern="&#34;[^&#34;]*&#34;">
-        <token type="LiteralString"/>
-      </rule>
-      <rule>
-        <include state="attribute"/>
-      </rule>
-      <rule>
-        <include state="numbers"/>
-      </rule>
-      <rule pattern="&#39;[^&#39;]&#39;">
-        <token type="LiteralStringChar"/>
-      </rule>
-      <rule pattern="(\w+)(\s*|[(,])">
-        <bygroups>
-          <token type="Name"/>
-          <usingself state="root"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(&lt;&gt;|=&gt;|:=|[()|:;,.&#39;])">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="[*&lt;&gt;+=/&amp;-]">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="\n+">
-        <token type="Text"/>
-      </rule>
-    </state>
-    <state name="numbers">
-      <rule pattern="[0-9_]+#[0-9a-f]+#">
-        <token type="LiteralNumberHex"/>
-      </rule>
-      <rule pattern="[0-9_]+\.[0-9_]*">
-        <token type="LiteralNumberFloat"/>
-      </rule>
-      <rule pattern="[0-9_]+">
-        <token type="LiteralNumberInteger"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/al.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/al.xml	(revision 67)
+++ 	(revision )
@@ -1,75 +1,0 @@
-<lexer>
-  <config>
-    <name>AL</name>
-    <alias>al</alias>
-    <filename>*.al</filename>
-    <filename>*.dal</filename>
-    <mime_type>text/x-al</mime_type>
-    <case_insensitive>true</case_insensitive>
-    <dot_all>true</dot_all>
-  </config>
-  <rules>
-    <state name="root">
-      <rule pattern="\s+">
-        <token type="TextWhitespace"/>
-      </rule>
-      <rule pattern="(?s)\/\*.*?\\*\*\/">
-        <token type="CommentMultiline"/>
-      </rule>
-      <rule pattern="(?s)//.*?\n">
-        <token type="CommentSingle"/>
-      </rule>
-      <rule pattern="\&#34;([^\&#34;])*\&#34;">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="&#39;([^&#39;])*&#39;">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="\b(?i:(ARRAY|ASSERTERROR|BEGIN|BREAK|CASE|DO|DOWNTO|ELSE|END|EVENT|EXIT|FOR|FOREACH|FUNCTION|IF|IMPLEMENTS|IN|INDATASET|INTERFACE|INTERNAL|LOCAL|OF|PROCEDURE|PROGRAM|PROTECTED|REPEAT|RUNONCLIENT|SECURITYFILTERING|SUPPRESSDISPOSE|TEMPORARY|THEN|TO|TRIGGER|UNTIL|VAR|WHILE|WITH|WITHEVENTS))\b">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="\b(?i:(AND|DIV|MOD|NOT|OR|XOR))\b">
-        <token type="OperatorWord"/>
-      </rule>
-      <rule pattern="\b(?i:(AVERAGE|CONST|COUNT|EXIST|FIELD|FILTER|LOOKUP|MAX|MIN|ORDER|SORTING|SUM|TABLEDATA|UPPERLIMIT|WHERE|ASCENDING|DESCENDING))\b">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="\b(?i:(CODEUNIT|PAGE|PAGEEXTENSION|PAGECUSTOMIZATION|DOTNET|ENUM|ENUMEXTENSION|VALUE|QUERY|REPORT|TABLE|TABLEEXTENSION|XMLPORT|PROFILE|CONTROLADDIN|REPORTEXTENSION|INTERFACE|PERMISSIONSET|PERMISSIONSETEXTENSION|ENTITLEMENT))\b">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="\b(?i:(Action|Array|Automation|BigInteger|BigText|Blob|Boolean|Byte|Char|ClientType|Code|Codeunit|CompletionTriggerErrorLevel|ConnectionType|Database|DataClassification|DataScope|Date|DateFormula|DateTime|Decimal|DefaultLayout|Dialog|Dictionary|DotNet|DotNetAssembly|DotNetTypeDeclaration|Duration|Enum|ErrorInfo|ErrorType|ExecutionContext|ExecutionMode|FieldClass|FieldRef|FieldType|File|FilterPageBuilder|Guid|InStream|Integer|Joker|KeyRef|List|ModuleDependencyInfo|ModuleInfo|None|Notification|NotificationScope|ObjectType|Option|OutStream|Page|PageResult|Query|Record|RecordId|RecordRef|Report|ReportFormat|SecurityFilter|SecurityFiltering|Table|TableConnectionType|TableFilter|TestAction|TestField|TestFilterField|TestPage|TestPermissions|TestRequestPage|Text|TextBuilder|TextConst|TextEncoding|Time|TransactionModel|TransactionType|Variant|Verbosity|Version|XmlPort|HttpContent|HttpHeaders|HttpClient|HttpRequestMessage|HttpResponseMessage|JsonToken|JsonValue|JsonArray|JsonObject|View|Views|XmlAttribute|XmlAttributeCollection|XmlComment|XmlCData|XmlDeclaration|XmlDocument|XmlDocumentType|XmlElement|XmlNamespaceManager|XmlNameTable|XmlNode|XmlNodeList|XmlProcessingInstruction|XmlReadOptions|XmlText|XmlWriteOptions|WebServiceActionContext|WebServiceActionResultCode|SessionSettings))\b">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="\b([&lt;&gt;]=|&lt;&gt;|&lt;|&gt;)\b?">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="\b(\-|\+|\/|\*)\b">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="\s*(\:=|\+=|-=|\/=|\*=)\s*?">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="\b(?i:(ADD|ADDFIRST|ADDLAST|ADDAFTER|ADDBEFORE|ACTION|ACTIONS|AREA|ASSEMBLY|CHARTPART|CUEGROUP|CUSTOMIZES|COLUMN|DATAITEM|DATASET|ELEMENTS|EXTENDS|FIELD|FIELDGROUP|FIELDATTRIBUTE|FIELDELEMENT|FIELDGROUPS|FIELDS|FILTER|FIXED|GRID|GROUP|MOVEAFTER|MOVEBEFORE|KEY|KEYS|LABEL|LABELS|LAYOUT|MODIFY|MOVEFIRST|MOVELAST|MOVEBEFORE|MOVEAFTER|PART|REPEATER|USERCONTROL|REQUESTPAGE|SCHEMA|SEPARATOR|SYSTEMPART|TABLEELEMENT|TEXTATTRIBUTE|TEXTELEMENT|TYPE))\b">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="\s*[(\.\.)&amp;\|]\s*">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="\b((0(x|X)[0-9a-fA-F]*)|(([0-9]+\.?[0-9]*)|(\.[0-9]+))((e|E)(\+|-)?[0-9]+)?)(L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?\b">
-        <token type="LiteralNumber"/>
-      </rule>
-      <rule pattern="[;:,]">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="#[ \t]*(if|else|elif|endif|define|undef|region|endregion|pragma)\b.*?\n">
-        <token type="CommentPreproc"/>
-      </rule>
-      <rule pattern="\w+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern=".">
-        <token type="Text"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/angular2.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/angular2.xml	(revision 67)
+++ 	(revision )
@@ -1,108 +1,0 @@
-<lexer>
-  <config>
-    <name>Angular2</name>
-    <alias>ng2</alias>
-  </config>
-  <rules>
-    <state name="attr">
-      <rule pattern="&#34;.*?&#34;">
-        <token type="LiteralString"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="&#39;.*?&#39;">
-        <token type="LiteralString"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="[^\s&gt;]+">
-        <token type="LiteralString"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="root">
-      <rule pattern="[^{([*#]+">
-        <token type="Other"/>
-      </rule>
-      <rule pattern="(\{\{)(\s*)">
-        <bygroups>
-          <token type="CommentPreproc"/>
-          <token type="Text"/>
-        </bygroups>
-        <push state="ngExpression"/>
-      </rule>
-      <rule pattern="([([]+)([\w:.-]+)([\])]+)(\s*)(=)(\s*)">
-        <bygroups>
-          <token type="Punctuation"/>
-          <token type="NameAttribute"/>
-          <token type="Punctuation"/>
-          <token type="Text"/>
-          <token type="Operator"/>
-          <token type="Text"/>
-        </bygroups>
-        <push state="attr"/>
-      </rule>
-      <rule pattern="([([]+)([\w:.-]+)([\])]+)(\s*)">
-        <bygroups>
-          <token type="Punctuation"/>
-          <token type="NameAttribute"/>
-          <token type="Punctuation"/>
-          <token type="Text"/>
-        </bygroups>
-      </rule>
-      <rule pattern="([*#])([\w:.-]+)(\s*)(=)(\s*)">
-        <bygroups>
-          <token type="Punctuation"/>
-          <token type="NameAttribute"/>
-          <token type="Punctuation"/>
-          <token type="Operator"/>
-        </bygroups>
-        <push state="attr"/>
-      </rule>
-      <rule pattern="([*#])([\w:.-]+)(\s*)">
-        <bygroups>
-          <token type="Punctuation"/>
-          <token type="NameAttribute"/>
-          <token type="Punctuation"/>
-        </bygroups>
-      </rule>
-    </state>
-    <state name="ngExpression">
-      <rule pattern="\s+(\|\s+)?">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="\}\}">
-        <token type="CommentPreproc"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern=":?(true|false)">
-        <token type="LiteralStringBoolean"/>
-      </rule>
-      <rule pattern=":?&#34;(\\\\|\\&#34;|[^&#34;])*&#34;">
-        <token type="LiteralStringDouble"/>
-      </rule>
-      <rule pattern=":?&#39;(\\\\|\\&#39;|[^&#39;])*&#39;">
-        <token type="LiteralStringSingle"/>
-      </rule>
-      <rule pattern="[0-9](\.[0-9]*)?(eE[+-][0-9])?[flFLdD]?|0[xX][0-9a-fA-F]+[Ll]?">
-        <token type="LiteralNumber"/>
-      </rule>
-      <rule pattern="[a-zA-Z][\w-]*(\(.*\))?">
-        <token type="NameVariable"/>
-      </rule>
-      <rule pattern="\.[\w-]+(\(.*\))?">
-        <token type="NameVariable"/>
-      </rule>
-      <rule pattern="(\?)(\s*)([^}\s]+)(\s*)(:)(\s*)([^}\s]+)(\s*)">
-        <bygroups>
-          <token type="Operator"/>
-          <token type="Text"/>
-          <token type="LiteralString"/>
-          <token type="Text"/>
-          <token type="Operator"/>
-          <token type="Text"/>
-          <token type="LiteralString"/>
-          <token type="Text"/>
-        </bygroups>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/antlr.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/antlr.xml	(revision 67)
+++ 	(revision )
@@ -1,317 +1,0 @@
-<lexer>
-  <config>
-    <name>ANTLR</name>
-    <alias>antlr</alias>
-  </config>
-  <rules>
-    <state name="nested-arg-action">
-      <rule pattern="([^$\[\]\&#39;&#34;/]+|&#34;(\\\\|\\&#34;|[^&#34;])*&#34;|&#39;(\\\\|\\&#39;|[^&#39;])*&#39;|//.*$\n?|/\*(.|\n)*?\*/|/(?!\*)(\\\\|\\/|[^/])*/|/)+">
-        <token type="Other"/>
-      </rule>
-      <rule pattern="\[">
-        <token type="Punctuation"/>
-        <push/>
-      </rule>
-      <rule pattern="\]">
-        <token type="Punctuation"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="(\$[a-zA-Z]+)(\.?)(text|value)?">
-        <bygroups>
-          <token type="NameVariable"/>
-          <token type="Punctuation"/>
-          <token type="NameProperty"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(\\\\|\\\]|\\\[|[^\[\]])+">
-        <token type="Other"/>
-      </rule>
-    </state>
-    <state name="exception">
-      <rule pattern="\n">
-        <token type="TextWhitespace"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="\s">
-        <token type="TextWhitespace"/>
-      </rule>
-      <rule>
-        <include state="comments"/>
-      </rule>
-      <rule pattern="\[">
-        <token type="Punctuation"/>
-        <push state="nested-arg-action"/>
-      </rule>
-      <rule pattern="\{">
-        <token type="Punctuation"/>
-        <push state="action"/>
-      </rule>
-    </state>
-    <state name="whitespace">
-      <rule pattern="\s+">
-        <token type="TextWhitespace"/>
-      </rule>
-    </state>
-    <state name="root">
-      <rule>
-        <include state="whitespace"/>
-      </rule>
-      <rule>
-        <include state="comments"/>
-      </rule>
-      <rule pattern="(lexer|parser|tree)?(\s*)(grammar\b)(\s*)([A-Za-z]\w*)(;)">
-        <bygroups>
-          <token type="Keyword"/>
-          <token type="TextWhitespace"/>
-          <token type="Keyword"/>
-          <token type="TextWhitespace"/>
-          <token type="NameClass"/>
-          <token type="Punctuation"/>
-        </bygroups>
-      </rule>
-      <rule pattern="options\b">
-        <token type="Keyword"/>
-        <push state="options"/>
-      </rule>
-      <rule pattern="tokens\b">
-        <token type="Keyword"/>
-        <push state="tokens"/>
-      </rule>
-      <rule pattern="(scope)(\s*)([A-Za-z]\w*)(\s*)(\{)">
-        <bygroups>
-          <token type="Keyword"/>
-          <token type="TextWhitespace"/>
-          <token type="NameVariable"/>
-          <token type="TextWhitespace"/>
-          <token type="Punctuation"/>
-        </bygroups>
-        <push state="action"/>
-      </rule>
-      <rule pattern="(catch|finally)\b">
-        <token type="Keyword"/>
-        <push state="exception"/>
-      </rule>
-      <rule pattern="(@[A-Za-z]\w*)(\s*)(::)?(\s*)([A-Za-z]\w*)(\s*)(\{)">
-        <bygroups>
-          <token type="NameLabel"/>
-          <token type="TextWhitespace"/>
-          <token type="Punctuation"/>
-          <token type="TextWhitespace"/>
-          <token type="NameLabel"/>
-          <token type="TextWhitespace"/>
-          <token type="Punctuation"/>
-        </bygroups>
-        <push state="action"/>
-      </rule>
-      <rule pattern="((?:protected|private|public|fragment)\b)?(\s*)([A-Za-z]\w*)(!)?">
-        <bygroups>
-          <token type="Keyword"/>
-          <token type="TextWhitespace"/>
-          <token type="NameLabel"/>
-          <token type="Punctuation"/>
-        </bygroups>
-        <push state="rule-alts" state="rule-prelims"/>
-      </rule>
-    </state>
-    <state name="tokens">
-      <rule>
-        <include state="whitespace"/>
-      </rule>
-      <rule>
-        <include state="comments"/>
-      </rule>
-      <rule pattern="\{">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="([A-Z]\w*)(\s*)(=)?(\s*)(\&#39;(?:\\\\|\\\&#39;|[^\&#39;]*)\&#39;)?(\s*)(;)">
-        <bygroups>
-          <token type="NameLabel"/>
-          <token type="TextWhitespace"/>
-          <token type="Punctuation"/>
-          <token type="TextWhitespace"/>
-          <token type="LiteralString"/>
-          <token type="TextWhitespace"/>
-          <token type="Punctuation"/>
-        </bygroups>
-      </rule>
-      <rule pattern="\}">
-        <token type="Punctuation"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="options">
-      <rule>
-        <include state="whitespace"/>
-      </rule>
-      <rule>
-        <include state="comments"/>
-      </rule>
-      <rule pattern="\{">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="([A-Za-z]\w*)(\s*)(=)(\s*)([A-Za-z]\w*|\&#39;(?:\\\\|\\\&#39;|[^\&#39;]*)\&#39;|[0-9]+|\*)(\s*)(;)">
-        <bygroups>
-          <token type="NameVariable"/>
-          <token type="TextWhitespace"/>
-          <token type="Punctuation"/>
-          <token type="TextWhitespace"/>
-          <token type="Text"/>
-          <token type="TextWhitespace"/>
-          <token type="Punctuation"/>
-        </bygroups>
-      </rule>
-      <rule pattern="\}">
-        <token type="Punctuation"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="rule-alts">
-      <rule>
-        <include state="whitespace"/>
-      </rule>
-      <rule>
-        <include state="comments"/>
-      </rule>
-      <rule pattern="options\b">
-        <token type="Keyword"/>
-        <push state="options"/>
-      </rule>
-      <rule pattern=":">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="&#39;(\\\\|\\&#39;|[^&#39;])*&#39;">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="&#34;(\\\\|\\&#34;|[^&#34;])*&#34;">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="&lt;&lt;([^&gt;]|&gt;[^&gt;])&gt;&gt;">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="\$?[A-Z_]\w*">
-        <token type="NameConstant"/>
-      </rule>
-      <rule pattern="\$?[a-z_]\w*">
-        <token type="NameVariable"/>
-      </rule>
-      <rule pattern="(\+|\||-&gt;|=&gt;|=|\(|\)|\.\.|\.|\?|\*|\^|!|\#|~)">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern=",">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="\[">
-        <token type="Punctuation"/>
-        <push state="nested-arg-action"/>
-      </rule>
-      <rule pattern="\{">
-        <token type="Punctuation"/>
-        <push state="action"/>
-      </rule>
-      <rule pattern=";">
-        <token type="Punctuation"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="rule-prelims">
-      <rule>
-        <include state="whitespace"/>
-      </rule>
-      <rule>
-        <include state="comments"/>
-      </rule>
-      <rule pattern="returns\b">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="\[">
-        <token type="Punctuation"/>
-        <push state="nested-arg-action"/>
-      </rule>
-      <rule pattern="\{">
-        <token type="Punctuation"/>
-        <push state="action"/>
-      </rule>
-      <rule pattern="(throws)(\s+)([A-Za-z]\w*)">
-        <bygroups>
-          <token type="Keyword"/>
-          <token type="TextWhitespace"/>
-          <token type="NameLabel"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(,)(\s*)([A-Za-z]\w*)">
-        <bygroups>
-          <token type="Punctuation"/>
-          <token type="TextWhitespace"/>
-          <token type="NameLabel"/>
-        </bygroups>
-      </rule>
-      <rule pattern="options\b">
-        <token type="Keyword"/>
-        <push state="options"/>
-      </rule>
-      <rule pattern="(scope)(\s+)(\{)">
-        <bygroups>
-          <token type="Keyword"/>
-          <token type="TextWhitespace"/>
-          <token type="Punctuation"/>
-        </bygroups>
-        <push state="action"/>
-      </rule>
-      <rule pattern="(scope)(\s+)([A-Za-z]\w*)(\s*)(;)">
-        <bygroups>
-          <token type="Keyword"/>
-          <token type="TextWhitespace"/>
-          <token type="NameLabel"/>
-          <token type="TextWhitespace"/>
-          <token type="Punctuation"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(@[A-Za-z]\w*)(\s*)(\{)">
-        <bygroups>
-          <token type="NameLabel"/>
-          <token type="TextWhitespace"/>
-          <token type="Punctuation"/>
-        </bygroups>
-        <push state="action"/>
-      </rule>
-      <rule pattern=":">
-        <token type="Punctuation"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="action">
-      <rule pattern="([^${}\&#39;&#34;/\\]+|&#34;(\\\\|\\&#34;|[^&#34;])*&#34;|&#39;(\\\\|\\&#39;|[^&#39;])*&#39;|//.*$\n?|/\*(.|\n)*?\*/|/(?!\*)(\\\\|\\/|[^/])*/|\\(?!%)|/)+">
-        <token type="Other"/>
-      </rule>
-      <rule pattern="(\\)(%)">
-        <bygroups>
-          <token type="Punctuation"/>
-          <token type="Other"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(\$[a-zA-Z]+)(\.?)(text|value)?">
-        <bygroups>
-          <token type="NameVariable"/>
-          <token type="Punctuation"/>
-          <token type="NameProperty"/>
-        </bygroups>
-      </rule>
-      <rule pattern="\{">
-        <token type="Punctuation"/>
-        <push/>
-      </rule>
-      <rule pattern="\}">
-        <token type="Punctuation"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="comments">
-      <rule pattern="//.*$">
-        <token type="Comment"/>
-      </rule>
-      <rule pattern="/\*(.|\n)*?\*/">
-        <token type="Comment"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/apacheconf.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/apacheconf.xml	(revision 67)
+++ 	(revision )
@@ -1,74 +1,0 @@
-<lexer>
-  <config>
-    <name>ApacheConf</name>
-    <alias>apacheconf</alias>
-    <alias>aconf</alias>
-    <alias>apache</alias>
-    <filename>.htaccess</filename>
-    <filename>apache.conf</filename>
-    <filename>apache2.conf</filename>
-    <mime_type>text/x-apacheconf</mime_type>
-    <case_insensitive>true</case_insensitive>
-  </config>
-  <rules>
-    <state name="root">
-      <rule pattern="\s+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="(#.*?)$">
-        <token type="Comment"/>
-      </rule>
-      <rule pattern="(&lt;[^\s&gt;]+)(?:(\s+)(.*?))?(&gt;)">
-        <bygroups>
-          <token type="NameTag"/>
-          <token type="Text"/>
-          <token type="LiteralString"/>
-          <token type="NameTag"/>
-        </bygroups>
-      </rule>
-      <rule pattern="([a-z]\w*)(\s+)">
-        <bygroups>
-          <token type="NameBuiltin"/>
-          <token type="Text"/>
-        </bygroups>
-        <push state="value"/>
-      </rule>
-      <rule pattern="\.+">
-        <token type="Text"/>
-      </rule>
-    </state>
-    <state name="value">
-      <rule pattern="\\\n">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="$">
-        <token type="Text"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="\\">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="[^\S\n]+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="\d+\.\d+\.\d+\.\d+(?:/\d+)?">
-        <token type="LiteralNumber"/>
-      </rule>
-      <rule pattern="\d+">
-        <token type="LiteralNumber"/>
-      </rule>
-      <rule pattern="/([a-z0-9][\w./-]+)">
-        <token type="LiteralStringOther"/>
-      </rule>
-      <rule pattern="(on|off|none|any|all|double|email|dns|min|minimal|os|productonly|full|emerg|alert|crit|error|warn|notice|info|debug|registry|script|inetd|standalone|user|group)\b">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="&#34;([^&#34;\\]*(?:\\.[^&#34;\\]*)*)&#34;">
-        <token type="LiteralStringDouble"/>
-      </rule>
-      <rule pattern="[^\s&#34;\\]+">
-        <token type="Text"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/apl.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/apl.xml	(revision 67)
+++ 	(revision )
@@ -1,59 +1,0 @@
-<lexer>
-  <config>
-    <name>APL</name>
-    <alias>apl</alias>
-    <filename>*.apl</filename>
-  </config>
-  <rules>
-    <state name="root">
-      <rule pattern="\s+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="[⍝#].*$">
-        <token type="CommentSingle"/>
-      </rule>
-      <rule pattern="\&#39;((\&#39;\&#39;)|[^\&#39;])*\&#39;">
-        <token type="LiteralStringSingle"/>
-      </rule>
-      <rule pattern="&#34;((&#34;&#34;)|[^&#34;])*&#34;">
-        <token type="LiteralStringDouble"/>
-      </rule>
-      <rule pattern="[⋄◇()]">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="[\[\];]">
-        <token type="LiteralStringRegex"/>
-      </rule>
-      <rule pattern="⎕[A-Za-zΔ∆⍙][A-Za-zΔ∆⍙_¯0-9]*">
-        <token type="NameFunction"/>
-      </rule>
-      <rule pattern="[A-Za-zΔ∆⍙_][A-Za-zΔ∆⍙_¯0-9]*">
-        <token type="NameVariable"/>
-      </rule>
-      <rule pattern="¯?(0[Xx][0-9A-Fa-f]+|[0-9]*\.?[0-9]+([Ee][+¯]?[0-9]+)?|¯|∞)([Jj]¯?(0[Xx][0-9A-Fa-f]+|[0-9]*\.?[0-9]+([Ee][+¯]?[0-9]+)?|¯|∞))?">
-        <token type="LiteralNumber"/>
-      </rule>
-      <rule pattern="[\.\\/⌿⍀¨⍣⍨⍠⍤∘⍥@⌺⌶⍢]">
-        <token type="NameAttribute"/>
-      </rule>
-      <rule pattern="[+\-×÷⌈⌊∣|⍳?*⍟○!⌹&lt;≤=&gt;≥≠≡≢∊⍷∪∩~∨∧⍱⍲⍴,⍪⌽⊖⍉↑↓⊂⊃⌷⍋⍒⊤⊥⍕⍎⊣⊢⍁⍂≈⌸⍯↗⊆⍸]">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="⍬">
-        <token type="NameConstant"/>
-      </rule>
-      <rule pattern="[⎕⍞]">
-        <token type="NameVariableGlobal"/>
-      </rule>
-      <rule pattern="[←→]">
-        <token type="KeywordDeclaration"/>
-      </rule>
-      <rule pattern="[⍺⍵⍶⍹∇:]">
-        <token type="NameBuiltinPseudo"/>
-      </rule>
-      <rule pattern="[{}]">
-        <token type="KeywordType"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/applescript.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/applescript.xml	(revision 67)
+++ 	(revision )
@@ -1,130 +1,0 @@
-<lexer>
-  <config>
-    <name>AppleScript</name>
-    <alias>applescript</alias>
-    <filename>*.applescript</filename>
-    <dot_all>true</dot_all>
-  </config>
-  <rules>
-    <state name="root">
-      <rule pattern="\s+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="¬\n">
-        <token type="LiteralStringEscape"/>
-      </rule>
-      <rule pattern="&#39;s\s+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="(--|#).*?$">
-        <token type="Comment"/>
-      </rule>
-      <rule pattern="\(\*">
-        <token type="CommentMultiline"/>
-        <push state="comment"/>
-      </rule>
-      <rule pattern="[(){}!,.:]">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="(«)([^»]+)(»)">
-        <bygroups>
-          <token type="Text"/>
-          <token type="NameBuiltin"/>
-          <token type="Text"/>
-        </bygroups>
-      </rule>
-      <rule pattern="\b((?:considering|ignoring)\s*)(application responses|case|diacriticals|hyphens|numeric strings|punctuation|white space)">
-        <bygroups>
-          <token type="Keyword"/>
-          <token type="NameBuiltin"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(-|\*|\+|&amp;|≠|&gt;=?|&lt;=?|=|≥|≤|/|÷|\^)">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="\b(and|or|is equal|equals|(is )?equal to|is not|isn&#39;t|isn&#39;t equal( to)?|is not equal( to)?|doesn&#39;t equal|does not equal|(is )?greater than|comes after|is not less than or equal( to)?|isn&#39;t less than or equal( to)?|(is )?less than|comes before|is not greater than or equal( to)?|isn&#39;t greater than or equal( to)?|(is  )?greater than or equal( to)?|is not less than|isn&#39;t less than|does not come before|doesn&#39;t come before|(is )?less than or equal( to)?|is not greater than|isn&#39;t greater than|does not come after|doesn&#39;t come after|starts? with|begins? with|ends? with|contains?|does not contain|doesn&#39;t contain|is in|is contained by|is not in|is not contained by|isn&#39;t contained by|div|mod|not|(a  )?(ref( to)?|reference to)|is|does)\b">
-        <token type="OperatorWord"/>
-      </rule>
-      <rule pattern="^(\s*(?:on|end)\s+)(zoomed|write to file|will zoom|will show|will select tab view item|will resize( sub views)?|will resign active|will quit|will pop up|will open|will move|will miniaturize|will hide|will finish launching|will display outline cell|will display item cell|will display cell|will display browser cell|will dismiss|will close|will become active|was miniaturized|was hidden|update toolbar item|update parameters|update menu item|shown|should zoom|should selection change|should select tab view item|should select row|should select item|should select column|should quit( after last window closed)?|should open( untitled)?|should expand item|should end editing|should collapse item|should close|should begin editing|selection changing|selection changed|selected tab view item|scroll wheel|rows changed|right mouse up|right mouse dragged|right mouse down|resized( sub views)?|resigned main|resigned key|resigned active|read from file|prepare table drop|prepare table drag|prepare outline drop|prepare outline drag|prepare drop|plugin loaded|parameters updated|panel ended|opened|open untitled|number of rows|number of items|number of browser rows|moved|mouse up|mouse moved|mouse exited|mouse entered|mouse dragged|mouse down|miniaturized|load data representation|launched|keyboard up|keyboard down|items changed|item value changed|item value|item expandable|idle|exposed|end editing|drop|drag( (entered|exited|updated))?|double clicked|document nib name|dialog ended|deminiaturized|data representation|conclude drop|column resized|column moved|column clicked|closed|clicked toolbar item|clicked|choose menu item|child of item|changed|change item value|change cell value|cell value changed|cell value|bounds changed|begin editing|became main|became key|awake from nib|alert ended|activated|action|accept table drop|accept outline drop)">
-        <bygroups>
-          <token type="Keyword"/>
-          <token type="NameFunction"/>
-        </bygroups>
-      </rule>
-      <rule pattern="^(\s*)(in|on|script|to)(\s+)">
-        <bygroups>
-          <token type="Text"/>
-          <token type="Keyword"/>
-          <token type="Text"/>
-        </bygroups>
-      </rule>
-      <rule pattern="\b(as )(alias |application |boolean |class |constant |date |file |integer |list |number |POSIX file |real |record |reference |RGB color |script |text |unit types|(?:Unicode )?text|string)\b">
-        <bygroups>
-          <token type="Keyword"/>
-          <token type="NameClass"/>
-        </bygroups>
-      </rule>
-      <rule pattern="\b(AppleScript|current application|false|linefeed|missing value|pi|quote|result|return|space|tab|text item delimiters|true|version)\b">
-        <token type="NameConstant"/>
-      </rule>
-      <rule pattern="\b(ASCII (character|number)|activate|beep|choose URL|choose application|choose color|choose file( name)?|choose folder|choose from list|choose remote application|clipboard info|close( access)?|copy|count|current date|delay|delete|display (alert|dialog)|do shell script|duplicate|exists|get eof|get volume settings|info for|launch|list (disks|folder)|load script|log|make|mount volume|new|offset|open( (for access|location))?|path to|print|quit|random number|read|round|run( script)?|say|scripting components|set (eof|the clipboard to|volume)|store script|summarize|system attribute|system info|the clipboard|time to GMT|write|quoted form)\b">
-        <token type="NameBuiltin"/>
-      </rule>
-      <rule pattern="\b(considering|else|error|exit|from|if|ignoring|in|repeat|tell|then|times|to|try|until|using terms from|while|with|with timeout( of)?|with transaction|by|continue|end|its?|me|my|return|of|as)\b">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="\b(global|local|prop(erty)?|set|get)\b">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="\b(but|put|returning|the)\b">
-        <token type="NameBuiltin"/>
-      </rule>
-      <rule pattern="\b(attachment|attribute run|character|day|month|paragraph|word|year)s?\b">
-        <token type="NameBuiltin"/>
-      </rule>
-      <rule pattern="\b(about|above|against|apart from|around|aside from|at|below|beneath|beside|between|for|given|instead of|on|onto|out of|over|since)\b">
-        <token type="NameBuiltin"/>
-      </rule>
-      <rule pattern="\b(accepts arrow key|action method|active|alignment|allowed identifiers|allows branch selection|allows column reordering|allows column resizing|allows column selection|allows customization|allows editing text attributes|allows empty selection|allows mixed state|allows multiple selection|allows reordering|allows undo|alpha( value)?|alternate image|alternate increment value|alternate title|animation delay|associated file name|associated object|auto completes|auto display|auto enables items|auto repeat|auto resizes( outline column)?|auto save expanded items|auto save name|auto save table columns|auto saves configuration|auto scroll|auto sizes all columns to fit|auto sizes cells|background color|bezel state|bezel style|bezeled|border rect|border type|bordered|bounds( rotation)?|box type|button returned|button type|can choose directories|can choose files|can draw|can hide|cell( (background color|size|type))?|characters|class|click count|clicked( data)? column|clicked data item|clicked( data)? row|closeable|collating|color( (mode|panel))|command key down|configuration|content(s| (size|view( margins)?))?|context|continuous|control key down|control size|control tint|control view|controller visible|coordinate system|copies( on scroll)?|corner view|current cell|current column|current( field)?  editor|current( menu)? item|current row|current tab view item|data source|default identifiers|delta (x|y|z)|destination window|directory|display mode|displayed cell|document( (edited|rect|view))?|double value|dragged column|dragged distance|dragged items|draws( cell)? background|draws grid|dynamically scrolls|echos bullets|edge|editable|edited( data)? column|edited data item|edited( data)? row|enabled|enclosing scroll view|ending page|error handling|event number|event type|excluded from windows menu|executable path|expanded|fax number|field editor|file kind|file name|file type|first responder|first visible column|flipped|floating|font( panel)?|formatter|frameworks path|frontmost|gave up|grid color|has data items|has horizontal ruler|has horizontal scroller|has parent data item|has resize indicator|has shadow|has sub menu|has vertical ruler|has vertical scroller|header cell|header view|hidden|hides when deactivated|highlights by|horizontal line scroll|horizontal page scroll|horizontal ruler view|horizontally resizable|icon image|id|identifier|ignores multiple clicks|image( (alignment|dims when disabled|frame style|scaling))?|imports graphics|increment value|indentation per level|indeterminate|index|integer value|intercell spacing|item height|key( (code|equivalent( modifier)?|window))?|knob thickness|label|last( visible)? column|leading offset|leaf|level|line scroll|loaded|localized sort|location|loop mode|main( (bunde|menu|window))?|marker follows cell|matrix mode|maximum( content)? size|maximum visible columns|menu( form representation)?|miniaturizable|miniaturized|minimized image|minimized title|minimum column width|minimum( content)? size|modal|modified|mouse down state|movie( (controller|file|rect))?|muted|name|needs display|next state|next text|number of tick marks|only tick mark values|opaque|open panel|option key down|outline table column|page scroll|pages across|pages down|palette label|pane splitter|parent data item|parent window|pasteboard|path( (names|separator))?|playing|plays every frame|plays selection only|position|preferred edge|preferred type|pressure|previous text|prompt|properties|prototype cell|pulls down|rate|released when closed|repeated|requested print time|required file type|resizable|resized column|resource path|returns records|reuses columns|rich text|roll over|row height|rulers visible|save panel|scripts path|scrollable|selectable( identifiers)?|selected cell|selected( data)? columns?|selected data items?|selected( data)? rows?|selected item identifier|selection by rect|send action on arrow key|sends action when done editing|separates columns|separator item|sequence number|services menu|shared frameworks path|shared support path|sheet|shift key down|shows alpha|shows state by|size( mode)?|smart insert delete enabled|sort case sensitivity|sort column|sort order|sort type|sorted( data rows)?|sound|source( mask)?|spell checking enabled|starting page|state|string value|sub menu|super menu|super view|tab key traverses cells|tab state|tab type|tab view|table view|tag|target( printer)?|text color|text container insert|text container origin|text returned|tick mark position|time stamp|title(d| (cell|font|height|position|rect))?|tool tip|toolbar|trailing offset|transparent|treat packages as directories|truncated labels|types|unmodified characters|update views|use sort indicator|user defaults|uses data source|uses ruler|uses threaded animation|uses title from previous column|value wraps|version|vertical( (line scroll|page scroll|ruler view))?|vertically resizable|view|visible( document rect)?|volume|width|window|windows menu|wraps|zoomable|zoomed)\b">
-        <token type="NameAttribute"/>
-      </rule>
-      <rule pattern="\b(action cell|alert reply|application|box|browser( cell)?|bundle|button( cell)?|cell|clip view|color well|color-panel|combo box( item)?|control|data( (cell|column|item|row|source))?|default entry|dialog reply|document|drag info|drawer|event|font(-panel)?|formatter|image( (cell|view))?|matrix|menu( item)?|item|movie( view)?|open-panel|outline view|panel|pasteboard|plugin|popup button|progress indicator|responder|save-panel|scroll view|secure text field( cell)?|slider|sound|split view|stepper|tab view( item)?|table( (column|header cell|header view|view))|text( (field( cell)?|view))?|toolbar( item)?|user-defaults|view|window)s?\b">
-        <token type="NameBuiltin"/>
-      </rule>
-      <rule pattern="\b(animate|append|call method|center|close drawer|close panel|display|display alert|display dialog|display panel|go|hide|highlight|increment|item for|load image|load movie|load nib|load panel|load sound|localized string|lock focus|log|open drawer|path for|pause|perform action|play|register|resume|scroll|select( all)?|show|size to fit|start|step back|step forward|stop|synchronize|unlock focus|update)\b">
-        <token type="NameBuiltin"/>
-      </rule>
-      <rule pattern="\b((in )?back of|(in )?front of|[0-9]+(st|nd|rd|th)|first|second|third|fourth|fifth|sixth|seventh|eighth|ninth|tenth|after|back|before|behind|every|front|index|last|middle|some|that|through|thru|where|whose)\b">
-        <token type="NameBuiltin"/>
-      </rule>
-      <rule pattern="&#34;(\\\\|\\&#34;|[^&#34;])*&#34;">
-        <token type="LiteralStringDouble"/>
-      </rule>
-      <rule pattern="\b([a-zA-Z]\w*)\b">
-        <token type="NameVariable"/>
-      </rule>
-      <rule pattern="[-+]?(\d+\.\d*|\d*\.\d+)(E[-+][0-9]+)?">
-        <token type="LiteralNumberFloat"/>
-      </rule>
-      <rule pattern="[-+]?\d+">
-        <token type="LiteralNumberInteger"/>
-      </rule>
-    </state>
-    <state name="comment">
-      <rule pattern="\(\*">
-        <token type="CommentMultiline"/>
-        <push/>
-      </rule>
-      <rule pattern="\*\)">
-        <token type="CommentMultiline"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="[^*(]+">
-        <token type="CommentMultiline"/>
-      </rule>
-      <rule pattern="[*(]">
-        <token type="CommentMultiline"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/arduino.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/arduino.xml	(revision 67)
+++ 	(revision )
@@ -1,309 +1,0 @@
-<lexer>
-  <config>
-    <name>Arduino</name>
-    <alias>arduino</alias>
-    <filename>*.ino</filename>
-    <mime_type>text/x-arduino</mime_type>
-    <ensure_nl>true</ensure_nl>
-  </config>
-  <rules>
-    <state name="whitespace">
-      <rule pattern="^#if\s+0">
-        <token type="CommentPreproc"/>
-        <push state="if0"/>
-      </rule>
-      <rule pattern="^#">
-        <token type="CommentPreproc"/>
-        <push state="macro"/>
-      </rule>
-      <rule pattern="^(\s*(?:/[*].*?[*]/\s*)?)(#if\s+0)">
-        <bygroups>
-          <usingself state="root"/>
-          <token type="CommentPreproc"/>
-        </bygroups>
-        <push state="if0"/>
-      </rule>
-      <rule pattern="^(\s*(?:/[*].*?[*]/\s*)?)(#)">
-        <bygroups>
-          <usingself state="root"/>
-          <token type="CommentPreproc"/>
-        </bygroups>
-        <push state="macro"/>
-      </rule>
-      <rule pattern="\n">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="\s+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="\\\n">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="//(\n|[\w\W]*?[^\\]\n)">
-        <token type="CommentSingle"/>
-      </rule>
-      <rule pattern="/(\\\n)?[*][\w\W]*?[*](\\\n)?/">
-        <token type="CommentMultiline"/>
-      </rule>
-      <rule pattern="/(\\\n)?[*][\w\W]*">
-        <token type="CommentMultiline"/>
-      </rule>
-    </state>
-    <state name="string">
-      <rule pattern="&#34;">
-        <token type="LiteralString"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="\\([\\abfnrtv&#34;\&#39;]|x[a-fA-F0-9]{2,4}|u[a-fA-F0-9]{4}|U[a-fA-F0-9]{8}|[0-7]{1,3})">
-        <token type="LiteralStringEscape"/>
-      </rule>
-      <rule pattern="[^\\&#34;\n]+">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="\\\n">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="\\">
-        <token type="LiteralString"/>
-      </rule>
-    </state>
-    <state name="macro">
-      <rule pattern="(include)(\s*(?:/[*].*?[*]/\s*)?)([^\n]+)">
-        <bygroups>
-          <token type="CommentPreproc"/>
-          <token type="Text"/>
-          <token type="CommentPreprocFile"/>
-        </bygroups>
-      </rule>
-      <rule pattern="[^/\n]+">
-        <token type="CommentPreproc"/>
-      </rule>
-      <rule pattern="/[*](.|\n)*?[*]/">
-        <token type="CommentMultiline"/>
-      </rule>
-      <rule pattern="//.*?\n">
-        <token type="CommentSingle"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="/">
-        <token type="CommentPreproc"/>
-      </rule>
-      <rule pattern="(?&lt;=\\)\n">
-        <token type="CommentPreproc"/>
-      </rule>
-      <rule pattern="\n">
-        <token type="CommentPreproc"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="statements">
-      <rule pattern="(reinterpret_cast|static_assert|dynamic_cast|thread_local|static_cast|const_cast|protected|constexpr|namespace|restrict|noexcept|override|operator|typename|template|explicit|decltype|nullptr|private|alignof|virtual|mutable|alignas|typeid|friend|throws|export|public|delete|final|using|throw|catch|this|try|new)\b">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="char(16_t|32_t)\b">
-        <token type="KeywordType"/>
-      </rule>
-      <rule pattern="(class)\b">
-        <bygroups>
-          <token type="Keyword"/>
-          <token type="Text"/>
-        </bygroups>
-        <push state="classname"/>
-      </rule>
-      <rule pattern="(R)(&#34;)([^\\()\s]{,16})(\()((?:.|\n)*?)(\)\3)(&#34;)">
-        <bygroups>
-          <token type="LiteralStringAffix"/>
-          <token type="LiteralString"/>
-          <token type="LiteralStringDelimiter"/>
-          <token type="LiteralStringDelimiter"/>
-          <token type="LiteralString"/>
-          <token type="LiteralStringDelimiter"/>
-          <token type="LiteralString"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(u8|u|U)(&#34;)">
-        <bygroups>
-          <token type="LiteralStringAffix"/>
-          <token type="LiteralString"/>
-        </bygroups>
-        <push state="string"/>
-      </rule>
-      <rule pattern="(L?)(&#34;)">
-        <bygroups>
-          <token type="LiteralStringAffix"/>
-          <token type="LiteralString"/>
-        </bygroups>
-        <push state="string"/>
-      </rule>
-      <rule pattern="(L?)(&#39;)(\\.|\\[0-7]{1,3}|\\x[a-fA-F0-9]{1,2}|[^\\\&#39;\n])(&#39;)">
-        <bygroups>
-          <token type="LiteralStringAffix"/>
-          <token type="LiteralStringChar"/>
-          <token type="LiteralStringChar"/>
-          <token type="LiteralStringChar"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(\d+\.\d*|\.\d+|\d+)[eE][+-]?\d+[LlUu]*">
-        <token type="LiteralNumberFloat"/>
-      </rule>
-      <rule pattern="(\d+\.\d*|\.\d+|\d+[fF])[fF]?">
-        <token type="LiteralNumberFloat"/>
-      </rule>
-      <rule pattern="0x[0-9a-fA-F]+[LlUu]*">
-        <token type="LiteralNumberHex"/>
-      </rule>
-      <rule pattern="0[0-7]+[LlUu]*">
-        <token type="LiteralNumberOct"/>
-      </rule>
-      <rule pattern="\d+[LlUu]*">
-        <token type="LiteralNumberInteger"/>
-      </rule>
-      <rule pattern="\*/">
-        <token type="Error"/>
-      </rule>
-      <rule pattern="[~!%^&amp;*+=|?:&lt;&gt;/-]">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="[()\[\],.]">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="(restricted|volatile|continue|register|default|typedef|struct|extern|switch|sizeof|static|return|union|while|const|break|goto|enum|else|case|auto|for|asm|if|do)\b">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="(_Bool|_Complex|_Imaginary|array|atomic_bool|atomic_char|atomic_int|atomic_llong|atomic_long|atomic_schar|atomic_short|atomic_uchar|atomic_uint|atomic_ullong|atomic_ulong|atomic_ushort|auto|bool|boolean|BooleanVariables|Byte|byte|Char|char|char16_t|char32_t|class|complex|Const|const|const_cast|delete|double|dynamic_cast|enum|explicit|extern|Float|float|friend|inline|Int|int|int16_t|int32_t|int64_t|int8_t|Long|long|new|NULL|null|operator|private|PROGMEM|protected|public|register|reinterpret_cast|short|signed|sizeof|Static|static|static_cast|String|struct|typedef|uint16_t|uint32_t|uint64_t|uint8_t|union|unsigned|virtual|Void|void|Volatile|volatile|word)\b">
-        <token type="KeywordType"/>
-      </rule>
-      <rule pattern="(and|final|If|Loop|loop|not|or|override|setup|Setup|throw|try|xor)\b">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="(ANALOG_MESSAGE|BIN|CHANGE|DEC|DEFAULT|DIGITAL_MESSAGE|EXTERNAL|FALLING|FIRMATA_STRING|HALF_PI|HEX|HIGH|INPUT|INPUT_PULLUP|INTERNAL|INTERNAL1V1|INTERNAL1V1|INTERNAL2V56|INTERNAL2V56|LED_BUILTIN|LED_BUILTIN_RX|LED_BUILTIN_TX|LOW|LSBFIRST|MSBFIRST|OCT|OUTPUT|PI|REPORT_ANALOG|REPORT_DIGITAL|RISING|SET_PIN_MODE|SYSEX_START|SYSTEM_RESET|TWO_PI)\b">
-        <token type="KeywordConstant"/>
-      </rule>
-      <rule pattern="(boolean|const|byte|word|string|String|array)\b">
-        <token type="NameVariable"/>
-      </rule>
-      <rule pattern="(Keyboard|KeyboardController|MouseController|SoftwareSerial|EthernetServer|EthernetClient|LiquidCrystal|RobotControl|GSMVoiceCall|EthernetUDP|EsploraTFT|HttpClient|RobotMotor|WiFiClient|GSMScanner|FileSystem|Scheduler|GSMServer|YunClient|YunServer|IPAddress|GSMClient|GSMModem|Keyboard|Ethernet|Console|GSMBand|Esplora|Stepper|Process|WiFiUDP|GSM_SMS|Mailbox|USBHost|Firmata|PImage|Client|Server|GSMPIN|FileIO|Bridge|Serial|EEPROM|Stream|Mouse|Audio|Servo|File|Task|GPRS|WiFi|Wire|TFT|GSM|SPI|SD)\b">
-        <token type="NameClass"/>
-      </rule>
-      <rule pattern="(abs|Abs|accept|ACos|acos|acosf|addParameter|analogRead|AnalogRead|analogReadResolution|AnalogReadResolution|analogReference|AnalogReference|analogWrite|AnalogWrite|analogWriteResolution|AnalogWriteResolution|answerCall|asin|ASin|asinf|atan|ATan|atan2|ATan2|atan2f|atanf|attach|attached|attachGPRS|attachInterrupt|AttachInterrupt|autoscroll|available|availableForWrite|background|beep|begin|beginPacket|beginSD|beginSMS|beginSpeaker|beginTFT|beginTransmission|beginWrite|bit|Bit|BitClear|bitClear|bitRead|BitRead|bitSet|BitSet|BitWrite|bitWrite|blink|blinkVersion|BSSID|buffer|byte|cbrt|cbrtf|Ceil|ceil|ceilf|changePIN|char|charAt|checkPIN|checkPUK|checkReg|circle|cityNameRead|cityNameWrite|clear|clearScreen|click|close|compareTo|compassRead|concat|config|connect|connected|constrain|Constrain|copysign|copysignf|cos|Cos|cosf|cosh|coshf|countryNameRead|countryNameWrite|createChar|cursor|debugPrint|degrees|Delay|delay|DelayMicroseconds|delayMicroseconds|detach|DetachInterrupt|detachInterrupt|DigitalPinToInterrupt|digitalPinToInterrupt|DigitalRead|digitalRead|DigitalWrite|digitalWrite|disconnect|display|displayLogos|drawBMP|drawCompass|encryptionType|end|endPacket|endSMS|endsWith|endTransmission|endWrite|equals|equalsIgnoreCase|exists|exitValue|Exp|exp|expf|fabs|fabsf|fdim|fdimf|fill|find|findUntil|float|floor|Floor|floorf|flush|fma|fmaf|fmax|fmaxf|fmin|fminf|fmod|fmodf|gatewayIP|get|getAsynchronously|getBand|getButton|getBytes|getCurrentCarrier|getIMEI|getKey|getModifiers|getOemKey|getPINUsed|getResult|getSignalStrength|getSocket|getVoiceCallStatus|getXChange|getYChange|hangCall|height|highByte|HighByte|home|hypot|hypotf|image|indexOf|int|interrupts|IPAddress|IRread|isActionDone|isAlpha|isAlphaNumeric|isAscii|isControl|isDigit|isDirectory|isfinite|isGraph|isHexadecimalDigit|isinf|isListening|isLowerCase|isnan|isPIN|isPressed|isPrintable|isPunct|isSpace|isUpperCase|isValid|isWhitespace|keyboardRead|keyPressed|keyReleased|knobRead|lastIndexOf|ldexp|ldexpf|leftToRight|length|line|lineFollowConfig|listen|listenOnLocalhost|loadImage|localIP|log|Log|log10|log10f|logf|long|lowByte|LowByte|lrint|lrintf|lround|lroundf|macAddress|maintain|map|Map|Max|max|messageAvailable|Micros|micros|millis|Millis|Min|min|mkdir|motorsStop|motorsWrite|mouseDragged|mouseMoved|mousePressed|mouseReleased|move|noAutoscroll|noBlink|noBuffer|noCursor|noDisplay|noFill|noInterrupts|NoInterrupts|noListenOnLocalhost|noStroke|noTone|NoTone|onReceive|onRequest|open|openNextFile|overflow|parseCommand|parseFloat|parseInt|parsePacket|pauseMode|peek|PinMode|pinMode|playFile|playMelody|point|pointTo|position|Pow|pow|powf|prepare|press|print|printFirmwareVersion|println|printVersion|process|processInput|PulseIn|pulseIn|pulseInLong|PulseInLong|put|radians|random|Random|randomSeed|RandomSeed|read|readAccelerometer|readBlue|readButton|readBytes|readBytesUntil|readGreen|readJoystickButton|readJoystickSwitch|readJoystickX|readJoystickY|readLightSensor|readMessage|readMicrophone|readNetworks|readRed|readSlider|readString|readStringUntil|readTemperature|ready|rect|release|releaseAll|remoteIP|remoteNumber|remotePort|remove|replace|requestFrom|retrieveCallingNumber|rewindDirectory|rightToLeft|rmdir|robotNameRead|robotNameWrite|round|roundf|RSSI|run|runAsynchronously|running|runShellCommand|runShellCommandAsynchronously|scanNetworks|scrollDisplayLeft|scrollDisplayRight|seek|sendAnalog|sendDigitalPortPair|sendDigitalPorts|sendString|sendSysex|Serial_Available|Serial_Begin|Serial_End|Serial_Flush|Serial_Peek|Serial_Print|Serial_Println|Serial_Read|serialEvent|setBand|setBitOrder|setCharAt|setClockDivider|setCursor|setDataMode|setDNS|setFirmwareVersion|setMode|setPINUsed|setSpeed|setTextSize|setTimeout|ShiftIn|shiftIn|ShiftOut|shiftOut|shutdown|signbit|sin|Sin|sinf|sinh|sinhf|size|sizeof|Sq|sq|Sqrt|sqrt|sqrtf|SSID|startLoop|startsWith|step|stop|stroke|subnetMask|substring|switchPIN|tan|Tan|tanf|tanh|tanhf|tempoWrite|text|toCharArray|toInt|toLowerCase|tone|Tone|toUpperCase|transfer|trim|trunc|truncf|tuneWrite|turn|updateIR|userNameRead|userNameWrite|voiceCall|waitContinue|width|WiFiServer|word|write|writeBlue|writeGreen|writeJSON|writeMessage|writeMicroseconds|writeRed|writeRGB|yield|Yield)\b">
-        <token type="NameFunction"/>
-      </rule>
-      <rule pattern="(typename|__inline|restrict|_inline|thread|inline|naked)\b">
-        <token type="KeywordReserved"/>
-      </rule>
-      <rule pattern="(__m(128i|128d|128|64))\b">
-        <token type="KeywordReserved"/>
-      </rule>
-      <rule pattern="__(forceinline|identifier|unaligned|declspec|fastcall|finally|stdcall|wchar_t|assume|except|int32|cdecl|int16|leave|based|raise|int64|noop|int8|w64|try|asm)\b">
-        <token type="KeywordReserved"/>
-      </rule>
-      <rule pattern="(true|false|NULL)\b">
-        <token type="NameBuiltin"/>
-      </rule>
-      <rule pattern="([a-zA-Z_]\w*)(\s*)(:)(?!:)">
-        <bygroups>
-          <token type="NameLabel"/>
-          <token type="Text"/>
-          <token type="Punctuation"/>
-        </bygroups>
-      </rule>
-      <rule pattern="[a-zA-Z_]\w*">
-        <token type="Name"/>
-      </rule>
-    </state>
-    <state name="function">
-      <rule>
-        <include state="whitespace"/>
-      </rule>
-      <rule>
-        <include state="statements"/>
-      </rule>
-      <rule pattern=";">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="\{">
-        <token type="Punctuation"/>
-        <push/>
-      </rule>
-      <rule pattern="\}">
-        <token type="Punctuation"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="if0">
-      <rule pattern="^\s*#if.*?(?&lt;!\\)\n">
-        <token type="CommentPreproc"/>
-        <push/>
-      </rule>
-      <rule pattern="^\s*#el(?:se|if).*\n">
-        <token type="CommentPreproc"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="^\s*#endif.*?(?&lt;!\\)\n">
-        <token type="CommentPreproc"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern=".*?\n">
-        <token type="Comment"/>
-      </rule>
-    </state>
-    <state name="classname">
-      <rule pattern="[a-zA-Z_]\w*">
-        <token type="NameClass"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="\s*(?=&gt;)">
-        <token type="Text"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="statement">
-      <rule>
-        <include state="whitespace"/>
-      </rule>
-      <rule>
-        <include state="statements"/>
-      </rule>
-      <rule pattern="[{}]">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern=";">
-        <token type="Punctuation"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="root">
-      <rule>
-        <include state="whitespace"/>
-      </rule>
-      <rule pattern="((?:[\w*\s])+?(?:\s|[*]))([a-zA-Z_]\w*)(\s*\([^;]*?\))([^;{]*)(\{)">
-        <bygroups>
-          <usingself state="root"/>
-          <token type="NameFunction"/>
-          <usingself state="root"/>
-          <usingself state="root"/>
-          <token type="Punctuation"/>
-        </bygroups>
-        <push state="function"/>
-      </rule>
-      <rule pattern="((?:[\w*\s])+?(?:\s|[*]))([a-zA-Z_]\w*)(\s*\([^;]*?\))([^;]*)(;)">
-        <bygroups>
-          <usingself state="root"/>
-          <token type="NameFunction"/>
-          <usingself state="root"/>
-          <usingself state="root"/>
-          <token type="Punctuation"/>
-        </bygroups>
-      </rule>
-      <rule>
-        <push state="statement"/>
-      </rule>
-      <rule pattern="__(multiple_inheritance|virtual_inheritance|single_inheritance|interface|uuidof|super|event)\b">
-        <token type="KeywordReserved"/>
-      </rule>
-      <rule pattern="__(offload|blockingoffload|outer)\b">
-        <token type="KeywordPseudo"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/armasm.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/armasm.xml	(revision 67)
+++ 	(revision )
@@ -1,126 +1,0 @@
-<lexer>
-  <config>
-    <name>ArmAsm</name>
-    <alias>armasm</alias>
-    <filename>*.s</filename>
-    <filename>*.S</filename>
-    <mime_type>text/x-armasm</mime_type>
-    <mime_type>text/x-asm</mime_type>
-    <ensure_nl>true</ensure_nl>
-  </config>
-  <rules>
-    <state name="root">
-      <rule>
-        <include state="commentsandwhitespace"/>
-      </rule>
-      <rule pattern="(\.\w+)([ \t]+\w+\s+?)?">
-        <bygroups>
-          <token type="KeywordNamespace"/>
-          <token type="NameLabel"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(\w+)(:)(\s+\.\w+\s+)">
-        <bygroups>
-          <token type="NameLabel"/>
-          <token type="Punctuation"/>
-          <token type="KeywordNamespace"/>
-        </bygroups>
-        <push state="literal"/>
-      </rule>
-      <rule pattern="(\w+)(:)">
-        <bygroups>
-          <token type="NameLabel"/>
-          <token type="Punctuation"/>
-        </bygroups>
-      </rule>
-      <rule pattern="svc\s+\w+">
-        <token type="NameNamespace"/>
-      </rule>
-      <rule pattern="[a-zA-Z]+">
-        <token type="Text"/>
-        <push state="opcode"/>
-      </rule>
-    </state>
-    <state name="commentsandwhitespace">
-      <rule pattern="\s+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="[@;].*?\n">
-        <token type="CommentSingle"/>
-      </rule>
-      <rule pattern="/\*.*?\*/">
-        <token type="CommentMultiline"/>
-      </rule>
-    </state>
-    <state name="literal">
-      <rule pattern="0b[01]+">
-        <token type="LiteralNumberBin"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="0x\w{1,8}">
-        <token type="LiteralNumberHex"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="0\d+">
-        <token type="LiteralNumberOct"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="\d+?\.\d+?">
-        <token type="LiteralNumberFloat"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="\d+">
-        <token type="LiteralNumberInteger"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="(&#34;)(.+)(&#34;)">
-        <bygroups>
-          <token type="Punctuation"/>
-          <token type="LiteralStringDouble"/>
-          <token type="Punctuation"/>
-        </bygroups>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="(&#39;)(.{1}|\\.{1})(&#39;)">
-        <bygroups>
-          <token type="Punctuation"/>
-          <token type="LiteralStringChar"/>
-          <token type="Punctuation"/>
-        </bygroups>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="opcode">
-      <rule pattern="\n">
-        <token type="Text"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="(@|;).*\n">
-        <token type="CommentSingle"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="(\s+|,)">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="[rapcfxwbhsdqv]\d{1,2}">
-        <token type="NameClass"/>
-      </rule>
-      <rule pattern="=0x\w+">
-        <bygroups>
-          <token type="Text"/>
-          <token type="NameLabel"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(=)(\w+)">
-        <bygroups>
-          <token type="Text"/>
-          <token type="NameLabel"/>
-        </bygroups>
-      </rule>
-      <rule pattern="#">
-        <token type="Text"/>
-        <push state="literal"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/awk.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/awk.xml	(revision 67)
+++ 	(revision )
@@ -1,95 +1,0 @@
-<lexer>
-  <config>
-    <name>Awk</name>
-    <alias>awk</alias>
-    <alias>gawk</alias>
-    <alias>mawk</alias>
-    <alias>nawk</alias>
-    <filename>*.awk</filename>
-    <mime_type>application/x-awk</mime_type>
-  </config>
-  <rules>
-    <state name="root">
-      <rule pattern="^(?=\s|/)">
-        <token type="Text"/>
-        <push state="slashstartsregex"/>
-      </rule>
-      <rule>
-        <include state="commentsandwhitespace"/>
-      </rule>
-      <rule pattern="\+\+|--|\|\||&amp;&amp;|in\b|\$|!?~|\|&amp;|(\*\*|[-&lt;&gt;+*%\^/!=|])=?">
-        <token type="Operator"/>
-        <push state="slashstartsregex"/>
-      </rule>
-      <rule pattern="[{(\[;,]">
-        <token type="Punctuation"/>
-        <push state="slashstartsregex"/>
-      </rule>
-      <rule pattern="[})\].]">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="(break|continue|do|while|exit|for|if|else|return|switch|case|default)\b">
-        <token type="Keyword"/>
-        <push state="slashstartsregex"/>
-      </rule>
-      <rule pattern="function\b">
-        <token type="KeywordDeclaration"/>
-        <push state="slashstartsregex"/>
-      </rule>
-      <rule pattern="(atan2|cos|exp|int|log|rand|sin|sqrt|srand|gensub|gsub|index|length|match|split|patsplit|sprintf|sub|substr|tolower|toupper|close|fflush|getline|next(file)|print|printf|strftime|systime|mktime|delete|system|strtonum|and|compl|lshift|or|rshift|asorti?|isarray|bindtextdomain|dcn?gettext|@(include|load|namespace))\b">
-        <token type="KeywordReserved"/>
-      </rule>
-      <rule pattern="(ARGC|ARGIND|ARGV|BEGIN(FILE)?|BINMODE|CONVFMT|ENVIRON|END(FILE)?|ERRNO|FIELDWIDTHS|FILENAME|FNR|FPAT|FS|IGNORECASE|LINT|NF|NR|OFMT|OFS|ORS|PROCINFO|RLENGTH|RS|RSTART|RT|SUBSEP|TEXTDOMAIN)\b">
-        <token type="NameBuiltin"/>
-      </rule>
-      <rule pattern="[@$a-zA-Z_]\w*">
-        <token type="NameOther"/>
-      </rule>
-      <rule pattern="[0-9][0-9]*\.[0-9]+([eE][0-9]+)?[fd]?">
-        <token type="LiteralNumberFloat"/>
-      </rule>
-      <rule pattern="0x[0-9a-fA-F]+">
-        <token type="LiteralNumberHex"/>
-      </rule>
-      <rule pattern="[0-9]+">
-        <token type="LiteralNumberInteger"/>
-      </rule>
-      <rule pattern="&#34;(\\\\|\\&#34;|[^&#34;])*&#34;">
-        <token type="LiteralStringDouble"/>
-      </rule>
-      <rule pattern="&#39;(\\\\|\\&#39;|[^&#39;])*&#39;">
-        <token type="LiteralStringSingle"/>
-      </rule>
-    </state>
-    <state name="commentsandwhitespace">
-      <rule pattern="\s+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="#.*$">
-        <token type="CommentSingle"/>
-      </rule>
-    </state>
-    <state name="slashstartsregex">
-      <rule>
-        <include state="commentsandwhitespace"/>
-      </rule>
-      <rule pattern="/(\\.|[^[/\\\n]|\[(\\.|[^\]\\\n])*])+/\B">
-        <token type="LiteralStringRegex"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="(?=/)">
-        <token type="Text"/>
-        <push state="#pop" state="badregex"/>
-      </rule>
-      <rule>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="badregex">
-      <rule pattern="\n">
-        <token type="Text"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/ballerina.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/ballerina.xml	(revision 67)
+++ 	(revision )
@@ -1,97 +1,0 @@
-<lexer>
-  <config>
-    <name>Ballerina</name>
-    <alias>ballerina</alias>
-    <filename>*.bal</filename>
-    <mime_type>text/x-ballerina</mime_type>
-    <dot_all>true</dot_all>
-  </config>
-  <rules>
-    <state name="root">
-      <rule pattern="[^\S\n]+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="//.*?\n">
-        <token type="CommentSingle"/>
-      </rule>
-      <rule pattern="/\*.*?\*/">
-        <token type="CommentMultiline"/>
-      </rule>
-      <rule pattern="(break|catch|continue|done|else|finally|foreach|forever|fork|if|lock|match|return|throw|transaction|try|while)\b">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="((?:(?:[^\W\d]|\$)[\w.\[\]$&lt;&gt;]*\s+)+?)((?:[^\W\d]|\$)[\w$]*)(\s*)(\()">
-        <bygroups>
-          <usingself state="root"/>
-          <token type="NameFunction"/>
-          <token type="Text"/>
-          <token type="Operator"/>
-        </bygroups>
-      </rule>
-      <rule pattern="@[^\W\d][\w.]*">
-        <token type="NameDecorator"/>
-      </rule>
-      <rule pattern="(annotation|bind|but|endpoint|error|function|object|private|public|returns|service|type|var|with|worker)\b">
-        <token type="KeywordDeclaration"/>
-      </rule>
-      <rule pattern="(boolean|byte|decimal|float|int|json|map|nil|record|string|table|xml)\b">
-        <token type="KeywordType"/>
-      </rule>
-      <rule pattern="(true|false|null)\b">
-        <token type="KeywordConstant"/>
-      </rule>
-      <rule pattern="(import)(\s+)">
-        <bygroups>
-          <token type="KeywordNamespace"/>
-          <token type="Text"/>
-        </bygroups>
-        <push state="import"/>
-      </rule>
-      <rule pattern="&#34;(\\\\|\\&#34;|[^&#34;])*&#34;">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="&#39;\\.&#39;|&#39;[^\\]&#39;|&#39;\\u[0-9a-fA-F]{4}&#39;">
-        <token type="LiteralStringChar"/>
-      </rule>
-      <rule pattern="(\.)((?:[^\W\d]|\$)[\w$]*)">
-        <bygroups>
-          <token type="Operator"/>
-          <token type="NameAttribute"/>
-        </bygroups>
-      </rule>
-      <rule pattern="^\s*([^\W\d]|\$)[\w$]*:">
-        <token type="NameLabel"/>
-      </rule>
-      <rule pattern="([^\W\d]|\$)[\w$]*">
-        <token type="Name"/>
-      </rule>
-      <rule pattern="([0-9][0-9_]*\.([0-9][0-9_]*)?|\.[0-9][0-9_]*)([eE][+\-]?[0-9][0-9_]*)?[fFdD]?|[0-9][eE][+\-]?[0-9][0-9_]*[fFdD]?|[0-9]([eE][+\-]?[0-9][0-9_]*)?[fFdD]|0[xX]([0-9a-fA-F][0-9a-fA-F_]*\.?|([0-9a-fA-F][0-9a-fA-F_]*)?\.[0-9a-fA-F][0-9a-fA-F_]*)[pP][+\-]?[0-9][0-9_]*[fFdD]?">
-        <token type="LiteralNumberFloat"/>
-      </rule>
-      <rule pattern="0[xX][0-9a-fA-F][0-9a-fA-F_]*[lL]?">
-        <token type="LiteralNumberHex"/>
-      </rule>
-      <rule pattern="0[bB][01][01_]*[lL]?">
-        <token type="LiteralNumberBin"/>
-      </rule>
-      <rule pattern="0[0-7_]+[lL]?">
-        <token type="LiteralNumberOct"/>
-      </rule>
-      <rule pattern="0|[1-9][0-9_]*[lL]?">
-        <token type="LiteralNumberInteger"/>
-      </rule>
-      <rule pattern="[~^*!%&amp;\[\](){}&lt;&gt;|+=:;,./?-]">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="\n">
-        <token type="Text"/>
-      </rule>
-    </state>
-    <state name="import">
-      <rule pattern="[\w.]+">
-        <token type="NameNamespace"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/bash.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/bash.xml	(revision 67)
+++ 	(revision )
@@ -1,217 +1,0 @@
-<lexer>
-  <config>
-    <name>Bash</name>
-    <alias>bash</alias>
-    <alias>sh</alias>
-    <alias>ksh</alias>
-    <alias>zsh</alias>
-    <alias>shell</alias>
-    <filename>*.sh</filename>
-    <filename>*.ksh</filename>
-    <filename>*.bash</filename>
-    <filename>*.ebuild</filename>
-    <filename>*.eclass</filename>
-    <filename>.env</filename>
-    <filename>*.env</filename>
-    <filename>*.exheres-0</filename>
-    <filename>*.exlib</filename>
-    <filename>*.zsh</filename>
-    <filename>*.zshrc</filename>
-    <filename>.bashrc</filename>
-    <filename>bashrc</filename>
-    <filename>.bash_*</filename>
-    <filename>bash_*</filename>
-    <filename>zshrc</filename>
-    <filename>.zshrc</filename>
-    <filename>PKGBUILD</filename>
-    <mime_type>application/x-sh</mime_type>
-    <mime_type>application/x-shellscript</mime_type>
-  </config>
-  <rules>
-    <state name="data">
-      <rule pattern="(?s)\$?&#34;(\\\\|\\[0-7]+|\\.|[^&#34;\\$])*&#34;">
-        <token type="LiteralStringDouble"/>
-      </rule>
-      <rule pattern="&#34;">
-        <token type="LiteralStringDouble"/>
-        <push state="string"/>
-      </rule>
-      <rule pattern="(?s)\$&#39;(\\\\|\\[0-7]+|\\.|[^&#39;\\])*&#39;">
-        <token type="LiteralStringSingle"/>
-      </rule>
-      <rule pattern="(?s)&#39;.*?&#39;">
-        <token type="LiteralStringSingle"/>
-      </rule>
-      <rule pattern=";">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="&amp;">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="\|">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="\s+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="\d+(?= |$)">
-        <token type="LiteralNumber"/>
-      </rule>
-      <rule pattern="[^=\s\[\]{}()$&#34;\&#39;`\\&lt;&amp;|;]+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="&lt;">
-        <token type="Text"/>
-      </rule>
-    </state>
-    <state name="string">
-      <rule pattern="&#34;">
-        <token type="LiteralStringDouble"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="(?s)(\\\\|\\[0-7]+|\\.|[^&#34;\\$])+">
-        <token type="LiteralStringDouble"/>
-      </rule>
-      <rule>
-        <include state="interp"/>
-      </rule>
-    </state>
-    <state name="interp">
-      <rule pattern="\$\(\(">
-        <token type="Keyword"/>
-        <push state="math"/>
-      </rule>
-      <rule pattern="\$\(">
-        <token type="Keyword"/>
-        <push state="paren"/>
-      </rule>
-      <rule pattern="\$\{#?">
-        <token type="LiteralStringInterpol"/>
-        <push state="curly"/>
-      </rule>
-      <rule pattern="\$[a-zA-Z_]\w*">
-        <token type="NameVariable"/>
-      </rule>
-      <rule pattern="\$(?:\d+|[#$?!_*@-])">
-        <token type="NameVariable"/>
-      </rule>
-      <rule pattern="\$">
-        <token type="Text"/>
-      </rule>
-    </state>
-    <state name="paren">
-      <rule pattern="\)">
-        <token type="Keyword"/>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <include state="root"/>
-      </rule>
-    </state>
-    <state name="math">
-      <rule pattern="\)\)">
-        <token type="Keyword"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="[-+*/%^|&amp;]|\*\*|\|\|">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="\d+#\d+">
-        <token type="LiteralNumber"/>
-      </rule>
-      <rule pattern="\d+#(?! )">
-        <token type="LiteralNumber"/>
-      </rule>
-      <rule pattern="\d+">
-        <token type="LiteralNumber"/>
-      </rule>
-      <rule>
-        <include state="root"/>
-      </rule>
-    </state>
-    <state name="backticks">
-      <rule pattern="`">
-        <token type="LiteralStringBacktick"/>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <include state="root"/>
-      </rule>
-    </state>
-    <state name="root">
-      <rule>
-        <include state="basic"/>
-      </rule>
-      <rule pattern="`">
-        <token type="LiteralStringBacktick"/>
-        <push state="backticks"/>
-      </rule>
-      <rule>
-        <include state="data"/>
-      </rule>
-      <rule>
-        <include state="interp"/>
-      </rule>
-    </state>
-    <state name="basic">
-      <rule pattern="\b(if|fi|else|while|do|done|for|then|return|function|case|select|continue|until|esac|elif)(\s*)\b">
-        <bygroups>
-          <token type="Keyword"/>
-          <token type="Text"/>
-        </bygroups>
-      </rule>
-      <rule pattern="\b(alias|bg|bind|break|builtin|caller|cd|command|compgen|complete|declare|dirs|disown|echo|enable|eval|exec|exit|export|false|fc|fg|getopts|hash|help|history|jobs|kill|let|local|logout|popd|printf|pushd|pwd|read|readonly|set|shift|shopt|source|suspend|test|time|times|trap|true|type|typeset|ulimit|umask|unalias|unset|wait)(?=[\s)`])">
-        <token type="NameBuiltin"/>
-      </rule>
-      <rule pattern="\A#!.+\n">
-        <token type="CommentPreproc"/>
-      </rule>
-      <rule pattern="#.*(\S|$)">
-        <token type="CommentSingle"/>
-      </rule>
-      <rule pattern="\\[\w\W]">
-        <token type="LiteralStringEscape"/>
-      </rule>
-      <rule pattern="(\b\w+)(\s*)(\+?=)">
-        <bygroups>
-          <token type="NameVariable"/>
-          <token type="Text"/>
-          <token type="Operator"/>
-        </bygroups>
-      </rule>
-      <rule pattern="[\[\]{}()=]">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="&lt;&lt;&lt;">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="&lt;&lt;-?\s*(\&#39;?)\\?(\w+)[\w\W]+?\2">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="&amp;&amp;|\|\|">
-        <token type="Operator"/>
-      </rule>
-    </state>
-    <state name="curly">
-      <rule pattern="\}">
-        <token type="LiteralStringInterpol"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern=":-">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="\w+">
-        <token type="NameVariable"/>
-      </rule>
-      <rule pattern="[^}:&#34;\&#39;`$\\]+">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern=":">
-        <token type="Punctuation"/>
-      </rule>
-      <rule>
-        <include state="root"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/batchfile.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/batchfile.xml	(revision 67)
+++ 	(revision )
@@ -1,660 +1,0 @@
-<lexer>
-  <config>
-    <name>Batchfile</name>
-    <alias>bat</alias>
-    <alias>batch</alias>
-    <alias>dosbatch</alias>
-    <alias>winbatch</alias>
-    <filename>*.bat</filename>
-    <filename>*.cmd</filename>
-    <mime_type>application/x-dos-batch</mime_type>
-    <case_insensitive>true</case_insensitive>
-  </config>
-  <rules>
-    <state name="arithmetic">
-      <rule pattern="0[0-7]+">
-        <token type="LiteralNumberOct"/>
-      </rule>
-      <rule pattern="0x[\da-f]+">
-        <token type="LiteralNumberHex"/>
-      </rule>
-      <rule pattern="\d+">
-        <token type="LiteralNumberInteger"/>
-      </rule>
-      <rule pattern="[(),]+">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="([=+\-*/!~]|%|\^\^)+">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="((?:&#34;[^\n\x1a&#34;]*(?:&#34;|(?=[\n\x1a])))|(?:(?:%(?:\*|(?:~[a-z]*(?:\$[^:]+:)?)?\d|[^%:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^%\n\x1a^]|\^[^%\n\x1a])[^=\n\x1a]*=(?:[^%\n\x1a^]|\^[^%\n\x1a])*)?)?%))|(?:\^?![^!:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^!\n\x1a^]|\^[^!\n\x1a])[^=\n\x1a]*=(?:[^!\n\x1a^]|\^[^!\n\x1a])*)?)?\^?!))|(\^[\n\x1a]?)?[^()=+\-*/!~%^&#34;\n\x1a&amp;&lt;&gt;|\t\v\f\r ,;=\xa0]|\^[\n\x1a\t\v\f\r ,;=\xa0]?[\w\W])+">
-        <usingself state="variable"/>
-      </rule>
-      <rule pattern="(?=[\x00|&amp;])">
-        <token type="Text"/>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <include state="follow"/>
-      </rule>
-    </state>
-    <state name="else?">
-      <rule pattern="(?:(?:(?:\^[\n\x1a])?[\t\v\f\r ,;=\xa0])+)">
-        <usingself state="text"/>
-      </rule>
-      <rule pattern="else(?=\^?[\t\v\f\r ,;=\xa0]|[&amp;&lt;&gt;|\n\x1a])">
-        <token type="Keyword"/>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="sqstring">
-      <rule>
-        <include state="variable-or-escape"/>
-      </rule>
-      <rule pattern="[^%]+|%">
-        <token type="LiteralStringSingle"/>
-      </rule>
-    </state>
-    <state name="root">
-      <rule pattern="\)((?=\()|(?=\^?[\t\v\f\r ,;=\xa0]|[&amp;&lt;&gt;|\n\x1a]))(?:(?:[^\n\x1a^]|\^[\n\x1a]?[\w\W])*)">
-        <token type="CommentSingle"/>
-      </rule>
-      <rule pattern="(?=((?:(?&lt;=^[^:])|^[^:]?)[\t\v\f\r ,;=\xa0]*)(:))">
-        <token type="Text"/>
-        <push state="follow"/>
-      </rule>
-      <rule pattern="(?:(?:(?:\^[\n\x1a])?[\t\v\f\r ,;=\xa0])+)">
-        <usingself state="text"/>
-      </rule>
-      <rule>
-        <include state="redirect"/>
-      </rule>
-      <rule pattern="[\n\x1a]+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="\(">
-        <token type="Punctuation"/>
-        <push state="root/compound"/>
-      </rule>
-      <rule pattern="@+">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="((?:for|if|rem)(?:(?=(?:\^[\n\x1a]?)?/)|(?:(?!\^)|(?&lt;=m))(?:(?=\()|(?=\^?[\t\v\f\r ,;=\xa0]|[&amp;&lt;&gt;|\n\x1a]))))((?:(?:(?:\^[\n\x1a])?[\t\v\f\r ,;=\xa0])+)?(?:(?:(?:\^[\n\x1a]?)?[^&#34;\n\x1a&amp;&lt;&gt;|\t\v\f\r ,;=\xa0])+)?(?:\^[\n\x1a]?)?/(?:\^[\n\x1a]?)?\?)">
-        <bygroups>
-          <token type="Keyword"/>
-          <usingself state="text"/>
-        </bygroups>
-        <push state="follow"/>
-      </rule>
-      <rule pattern="(goto(?=(?:\^[\n\x1a]?)?[\t\v\f\r ,;=\xa0+./:[\\\]]|[\n\x1a&amp;&lt;&gt;|(]))((?:(?:&#34;[^\n\x1a&#34;]*(?:&#34;|(?=[\n\x1a])))|(?:(?:%(?:\*|(?:~[a-z]*(?:\$[^:]+:)?)?\d|[^%:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^%\n\x1a^]|\^[^%\n\x1a])[^=\n\x1a]*=(?:[^%\n\x1a^]|\^[^%\n\x1a])*)?)?%))|(?:\^?![^!:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^!\n\x1a^]|\^[^!\n\x1a])[^=\n\x1a]*=(?:[^!\n\x1a^]|\^[^!\n\x1a])*)?)?\^?!))|[^&#34;%\n\x1a&amp;&lt;&gt;|])*(?:\^[\n\x1a]?)?/(?:\^[\n\x1a]?)?\?(?:(?:&#34;[^\n\x1a&#34;]*(?:&#34;|(?=[\n\x1a])))|(?:(?:%(?:\*|(?:~[a-z]*(?:\$[^:]+:)?)?\d|[^%:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^%\n\x1a^]|\^[^%\n\x1a])[^=\n\x1a]*=(?:[^%\n\x1a^]|\^[^%\n\x1a])*)?)?%))|(?:\^?![^!:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^!\n\x1a^]|\^[^!\n\x1a])[^=\n\x1a]*=(?:[^!\n\x1a^]|\^[^!\n\x1a])*)?)?\^?!))|[^&#34;%\n\x1a&amp;&lt;&gt;|])*)">
-        <bygroups>
-          <token type="Keyword"/>
-          <usingself state="text"/>
-        </bygroups>
-        <push state="follow"/>
-      </rule>
-      <rule pattern="(setlocal|endlocal|prompt|verify|rename|mklink|rmdir|shift|start|color|dpath|title|chdir|erase|pushd|ftype|break|pause|mkdir|assoc|date|path|time|popd|keys|exit|type|copy|echo|move|dir|del|ren|ver|cls|vol|rd|md|cd)(?=(?:\^[\n\x1a]?)?[\t\v\f\r ,;=\xa0+./:[\\\]]|[\n\x1a&amp;&lt;&gt;|(])">
-        <token type="Keyword"/>
-        <push state="follow"/>
-      </rule>
-      <rule pattern="(call)((?:(?:(?:\^[\n\x1a])?[\t\v\f\r ,;=\xa0])+)?)(:)">
-        <bygroups>
-          <token type="Keyword"/>
-          <usingself state="text"/>
-          <token type="Punctuation"/>
-        </bygroups>
-        <push state="call"/>
-      </rule>
-      <rule pattern="call(?=(?:\^[\n\x1a]?)?[\t\v\f\r ,;=\xa0+./:[\\\]]|[\n\x1a&amp;&lt;&gt;|(])">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="(for(?=\^?[\t\v\f\r ,;=\xa0]|[&amp;&lt;&gt;|\n\x1a])(?!\^))((?:(?:(?:\^[\n\x1a])?[\t\v\f\r ,;=\xa0])+))(/f(?=\^?[\t\v\f\r ,;=\xa0]|[&amp;&lt;&gt;|\n\x1a]))">
-        <bygroups>
-          <token type="Keyword"/>
-          <usingself state="text"/>
-          <token type="Keyword"/>
-        </bygroups>
-        <push state="for/f" state="for"/>
-      </rule>
-      <rule pattern="(for(?=\^?[\t\v\f\r ,;=\xa0]|[&amp;&lt;&gt;|\n\x1a])(?!\^))((?:(?:(?:\^[\n\x1a])?[\t\v\f\r ,;=\xa0])+))(/l(?=\^?[\t\v\f\r ,;=\xa0]|[&amp;&lt;&gt;|\n\x1a]))">
-        <bygroups>
-          <token type="Keyword"/>
-          <usingself state="text"/>
-          <token type="Keyword"/>
-        </bygroups>
-        <push state="for/l" state="for"/>
-      </rule>
-      <rule pattern="for(?=\^?[\t\v\f\r ,;=\xa0]|[&amp;&lt;&gt;|\n\x1a])(?!\^)">
-        <token type="Keyword"/>
-        <push state="for2" state="for"/>
-      </rule>
-      <rule pattern="(goto(?=(?:\^[\n\x1a]?)?[\t\v\f\r ,;=\xa0+./:[\\\]]|[\n\x1a&amp;&lt;&gt;|(]))((?:(?:(?:\^[\n\x1a])?[\t\v\f\r ,;=\xa0])+)?)(:?)">
-        <bygroups>
-          <token type="Keyword"/>
-          <usingself state="text"/>
-          <token type="Punctuation"/>
-        </bygroups>
-        <push state="label"/>
-      </rule>
-      <rule pattern="(if(?:(?=\()|(?=\^?[\t\v\f\r ,;=\xa0]|[&amp;&lt;&gt;|\n\x1a]))(?!\^))((?:(?:(?:\^[\n\x1a])?[\t\v\f\r ,;=\xa0])+)?)((?:/i(?=\^?[\t\v\f\r ,;=\xa0]|[&amp;&lt;&gt;|\n\x1a]))?)((?:(?:(?:\^[\n\x1a])?[\t\v\f\r ,;=\xa0])+)?)((?:not(?=\^?[\t\v\f\r ,;=\xa0]|[&amp;&lt;&gt;|\n\x1a]))?)((?:(?:(?:\^[\n\x1a])?[\t\v\f\r ,;=\xa0])+)?)">
-        <bygroups>
-          <token type="Keyword"/>
-          <usingself state="text"/>
-          <token type="Keyword"/>
-          <usingself state="text"/>
-          <token type="Keyword"/>
-          <usingself state="text"/>
-        </bygroups>
-        <push state="(?" state="if"/>
-      </rule>
-      <rule pattern="rem(((?=\()|(?=\^?[\t\v\f\r ,;=\xa0]|[&amp;&lt;&gt;|\n\x1a]))(?:(?:(?:\^[\n\x1a])?[\t\v\f\r ,;=\xa0])+)?(?:[&amp;&lt;&gt;|]+|(?:(?:&#34;[^\n\x1a&#34;]*(?:&#34;|(?=[\n\x1a])))|(?:(?:%(?:\*|(?:~[a-z]*(?:\$[^:]+:)?)?\d|[^%:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^%\n\x1a^]|\^[^%\n\x1a])[^=\n\x1a]*=(?:[^%\n\x1a^]|\^[^%\n\x1a])*)?)?%))|(?:\^?![^!:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^!\n\x1a^]|\^[^!\n\x1a])[^=\n\x1a]*=(?:[^!\n\x1a^]|\^[^!\n\x1a])*)?)?\^?!))|(?:(?:(?:\^[\n\x1a]?)?[^&#34;\n\x1a&amp;&lt;&gt;|\t\v\f\r ,;=\xa0])+))+)?.*|(?=(?:\^[\n\x1a]?)?[\t\v\f\r ,;=\xa0+./:[\\\]]|[\n\x1a&amp;&lt;&gt;|(])(?:(?:[^\n\x1a^]|\^[\n\x1a]?[\w\W])*))">
-        <token type="CommentSingle"/>
-        <push state="follow"/>
-      </rule>
-      <rule pattern="(set(?=(?:\^[\n\x1a]?)?[\t\v\f\r ,;=\xa0+./:[\\\]]|[\n\x1a&amp;&lt;&gt;|(]))((?:(?:\^[\n\x1a]?)?[^\S\n])*)(/a)">
-        <bygroups>
-          <token type="Keyword"/>
-          <usingself state="text"/>
-          <token type="Keyword"/>
-        </bygroups>
-        <push state="arithmetic"/>
-      </rule>
-      <rule pattern="(set(?=(?:\^[\n\x1a]?)?[\t\v\f\r ,;=\xa0+./:[\\\]]|[\n\x1a&amp;&lt;&gt;|(]))((?:(?:\^[\n\x1a]?)?[^\S\n])*)((?:/p)?)((?:(?:\^[\n\x1a]?)?[^\S\n])*)((?:(?:(?:\^[\n\x1a]?)?[^&#34;\n\x1a&amp;&lt;&gt;|^=]|\^[\n\x1a]?[^&#34;=])+)?)((?:(?:\^[\n\x1a]?)?=)?)">
-        <bygroups>
-          <token type="Keyword"/>
-          <usingself state="text"/>
-          <token type="Keyword"/>
-          <usingself state="text"/>
-          <usingself state="variable"/>
-          <token type="Punctuation"/>
-        </bygroups>
-        <push state="follow"/>
-      </rule>
-      <rule>
-        <push state="follow"/>
-      </rule>
-    </state>
-    <state name="follow">
-      <rule pattern="((?:(?&lt;=^[^:])|^[^:]?)[\t\v\f\r ,;=\xa0]*)(:)([\t\v\f\r ,;=\xa0]*)((?:(?:[^\n\x1a&amp;&lt;&gt;|\t\v\f\r ,;=\xa0+:^]|\^[\n\x1a]?[\w\W])*))(.*)">
-        <bygroups>
-          <token type="Text"/>
-          <token type="Punctuation"/>
-          <token type="Text"/>
-          <token type="NameLabel"/>
-          <token type="CommentSingle"/>
-        </bygroups>
-      </rule>
-      <rule>
-        <include state="redirect"/>
-      </rule>
-      <rule pattern="(?=[\n\x1a])">
-        <token type="Text"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="\|\|?|&amp;&amp;?">
-        <token type="Punctuation"/>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <include state="text"/>
-      </rule>
-    </state>
-    <state name="bqstring">
-      <rule>
-        <include state="variable-or-escape"/>
-      </rule>
-      <rule pattern="[^%]+|%">
-        <token type="LiteralStringBacktick"/>
-      </rule>
-    </state>
-    <state name="for2">
-      <rule pattern="\)">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="((?:(?:(?:\^[\n\x1a])?[\t\v\f\r ,;=\xa0])+))(do(?=\^?[\t\v\f\r ,;=\xa0]|[&amp;&lt;&gt;|\n\x1a]))">
-        <bygroups>
-          <usingself state="text"/>
-          <token type="Keyword"/>
-        </bygroups>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="[\n\x1a]+">
-        <token type="Text"/>
-      </rule>
-      <rule>
-        <include state="follow"/>
-      </rule>
-    </state>
-    <state name="label/compound">
-      <rule pattern="(?=\))">
-        <token type="Text"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="((?:(?:[^\n\x1a&amp;&lt;&gt;|\t\v\f\r ,;=\xa0+:^)]|\^[\n\x1a]?[^)])*)?)((?:(?:&#34;[^\n\x1a&#34;]*(?:&#34;|(?=[\n\x1a])))|(?:(?:%(?:\*|(?:~[a-z]*(?:\$[^:]+:)?)?\d|[^%:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^%\n\x1a^]|\^[^%\n\x1a])[^=\n\x1a]*=(?:[^%\n\x1a^]|\^[^%\n\x1a])*)?)?%))|(?:\^?![^!:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^!\n\x1a^]|\^[^!\n\x1a])[^=\n\x1a]*=(?:[^!\n\x1a^]|\^[^!\n\x1a])*)?)?\^?!))|\^[\n\x1a]?[^)]|[^&#34;%^\n\x1a&amp;&lt;&gt;|)])*)">
-        <bygroups>
-          <token type="NameLabel"/>
-          <token type="CommentSingle"/>
-        </bygroups>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="for">
-      <rule pattern="((?:(?:(?:\^[\n\x1a])?[\t\v\f\r ,;=\xa0])+))(in)((?:(?:(?:\^[\n\x1a])?[\t\v\f\r ,;=\xa0])+))(\()">
-        <bygroups>
-          <usingself state="text"/>
-          <token type="Keyword"/>
-          <usingself state="text"/>
-          <token type="Punctuation"/>
-        </bygroups>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <include state="follow"/>
-      </rule>
-    </state>
-    <state name="redirect/compound">
-      <rule pattern="((?:(?&lt;=[\n\x1a\t\v\f\r ,;=\xa0])\d)?)(&gt;&gt;?&amp;|&lt;&amp;)([\n\x1a\t\v\f\r ,;=\xa0]*)(\d)">
-        <bygroups>
-          <token type="LiteralNumberInteger"/>
-          <token type="Punctuation"/>
-          <token type="Text"/>
-          <token type="LiteralNumberInteger"/>
-        </bygroups>
-      </rule>
-      <rule pattern="((?:(?&lt;=[\n\x1a\t\v\f\r ,;=\xa0])(?&lt;!\^[\n\x1a])\d)?)(&gt;&gt;?|&lt;)((?:(?:(?:\^[\n\x1a])?[\t\v\f\r ,;=\xa0])+)?(?:[&amp;&lt;&gt;|]+|(?:(?:&#34;[^\n\x1a&#34;]*(?:&#34;|(?=[\n\x1a])))|(?:(?:%(?:\*|(?:~[a-z]*(?:\$[^:]+:)?)?\d|[^%:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^%\n\x1a^]|\^[^%\n\x1a])[^=\n\x1a]*=(?:[^%\n\x1a^]|\^[^%\n\x1a])*)?)?%))|(?:\^?![^!:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^!\n\x1a^]|\^[^!\n\x1a])[^=\n\x1a]*=(?:[^!\n\x1a^]|\^[^!\n\x1a])*)?)?\^?!))|(?:(?:(?:\^[\n\x1a]?)?[^&#34;\n\x1a&amp;&lt;&gt;|\t\v\f\r ,;=\xa0)])+))+))">
-        <bygroups>
-          <token type="LiteralNumberInteger"/>
-          <token type="Punctuation"/>
-          <usingself state="text"/>
-        </bygroups>
-      </rule>
-    </state>
-    <state name="if">
-      <rule pattern="((?:cmdextversion|errorlevel)(?=\^?[\t\v\f\r ,;=\xa0]|[&amp;&lt;&gt;|\n\x1a]))((?:(?:(?:\^[\n\x1a])?[\t\v\f\r ,;=\xa0])+))(\d+)">
-        <bygroups>
-          <token type="Keyword"/>
-          <usingself state="text"/>
-          <token type="LiteralNumberInteger"/>
-        </bygroups>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="(defined(?=\^?[\t\v\f\r ,;=\xa0]|[&amp;&lt;&gt;|\n\x1a]))((?:(?:(?:\^[\n\x1a])?[\t\v\f\r ,;=\xa0])+))((?:[&amp;&lt;&gt;|]+|(?:(?:&#34;[^\n\x1a&#34;]*(?:&#34;|(?=[\n\x1a])))|(?:(?:%(?:\*|(?:~[a-z]*(?:\$[^:]+:)?)?\d|[^%:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^%\n\x1a^]|\^[^%\n\x1a])[^=\n\x1a]*=(?:[^%\n\x1a^]|\^[^%\n\x1a])*)?)?%))|(?:\^?![^!:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^!\n\x1a^]|\^[^!\n\x1a])[^=\n\x1a]*=(?:[^!\n\x1a^]|\^[^!\n\x1a])*)?)?\^?!))|(?:(?:(?:\^[\n\x1a]?)?[^&#34;\n\x1a&amp;&lt;&gt;|\t\v\f\r ,;=\xa0])+))+))">
-        <bygroups>
-          <token type="Keyword"/>
-          <usingself state="text"/>
-          <usingself state="variable"/>
-        </bygroups>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="(exist(?=\^?[\t\v\f\r ,;=\xa0]|[&amp;&lt;&gt;|\n\x1a]))((?:(?:(?:\^[\n\x1a])?[\t\v\f\r ,;=\xa0])+)(?:[&amp;&lt;&gt;|]+|(?:(?:&#34;[^\n\x1a&#34;]*(?:&#34;|(?=[\n\x1a])))|(?:(?:%(?:\*|(?:~[a-z]*(?:\$[^:]+:)?)?\d|[^%:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^%\n\x1a^]|\^[^%\n\x1a])[^=\n\x1a]*=(?:[^%\n\x1a^]|\^[^%\n\x1a])*)?)?%))|(?:\^?![^!:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^!\n\x1a^]|\^[^!\n\x1a])[^=\n\x1a]*=(?:[^!\n\x1a^]|\^[^!\n\x1a])*)?)?\^?!))|(?:(?:(?:\^[\n\x1a]?)?[^&#34;\n\x1a&amp;&lt;&gt;|\t\v\f\r ,;=\xa0])+))+))">
-        <bygroups>
-          <token type="Keyword"/>
-          <usingself state="text"/>
-        </bygroups>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="((?:-?(?:0[0-7]+|0x[\da-f]+|\d+)(?=\^?[\t\v\f\r ,;=\xa0]|[&amp;&lt;&gt;|\n\x1a]))(?:(?:(?:\^[\n\x1a])?[\t\v\f\r ,;=\xa0])+))((?:equ|geq|gtr|leq|lss|neq))((?:(?:(?:\^[\n\x1a])?[\t\v\f\r ,;=\xa0])+)(?:-?(?:0[0-7]+|0x[\da-f]+|\d+)(?=\^?[\t\v\f\r ,;=\xa0]|[&amp;&lt;&gt;|\n\x1a])))">
-        <bygroups>
-          <usingself state="arithmetic"/>
-          <token type="OperatorWord"/>
-          <usingself state="arithmetic"/>
-        </bygroups>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="(?:[&amp;&lt;&gt;|]+|(?:(?:&#34;[^\n\x1a&#34;]*(?:&#34;|(?=[\n\x1a])))|(?:(?:%(?:\*|(?:~[a-z]*(?:\$[^:]+:)?)?\d|[^%:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^%\n\x1a^]|\^[^%\n\x1a])[^=\n\x1a]*=(?:[^%\n\x1a^]|\^[^%\n\x1a])*)?)?%))|(?:\^?![^!:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^!\n\x1a^]|\^[^!\n\x1a])[^=\n\x1a]*=(?:[^!\n\x1a^]|\^[^!\n\x1a])*)?)?\^?!))|(?:(?:(?:\^[\n\x1a]?)?[^&#34;\n\x1a&amp;&lt;&gt;|\t\v\f\r ,;=\xa0])+))+)">
-        <usingself state="text"/>
-        <push state="#pop" state="if2"/>
-      </rule>
-    </state>
-    <state name="root/compound">
-      <rule pattern="\)">
-        <token type="Punctuation"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="(?=((?:(?&lt;=^[^:])|^[^:]?)[\t\v\f\r ,;=\xa0]*)(:))">
-        <token type="Text"/>
-        <push state="follow/compound"/>
-      </rule>
-      <rule pattern="(?:(?:(?:\^[\n\x1a])?[\t\v\f\r ,;=\xa0])+)">
-        <usingself state="text"/>
-      </rule>
-      <rule>
-        <include state="redirect/compound"/>
-      </rule>
-      <rule pattern="[\n\x1a]+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="\(">
-        <token type="Punctuation"/>
-        <push state="root/compound"/>
-      </rule>
-      <rule pattern="@+">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="((?:for|if|rem)(?:(?=(?:\^[\n\x1a]?)?/)|(?:(?!\^)|(?&lt;=m))(?:(?=\()|(?:(?=\))|(?=\^?[\t\v\f\r ,;=\xa0]|[&amp;&lt;&gt;|\n\x1a])))))((?:(?:(?:\^[\n\x1a])?[\t\v\f\r ,;=\xa0])+)?(?:(?:(?:\^[\n\x1a]?)?[^&#34;\n\x1a&amp;&lt;&gt;|\t\v\f\r ,;=\xa0)])+)?(?:\^[\n\x1a]?)?/(?:\^[\n\x1a]?)?\?)">
-        <bygroups>
-          <token type="Keyword"/>
-          <usingself state="text"/>
-        </bygroups>
-        <push state="follow/compound"/>
-      </rule>
-      <rule pattern="(goto(?:(?=\))|(?=(?:\^[\n\x1a]?)?[\t\v\f\r ,;=\xa0+./:[\\\]]|[\n\x1a&amp;&lt;&gt;|(])))((?:(?:&#34;[^\n\x1a&#34;]*(?:&#34;|(?=[\n\x1a])))|(?:(?:%(?:\*|(?:~[a-z]*(?:\$[^:]+:)?)?\d|[^%:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^%\n\x1a^]|\^[^%\n\x1a])[^=\n\x1a]*=(?:[^%\n\x1a^]|\^[^%\n\x1a])*)?)?%))|(?:\^?![^!:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^!\n\x1a^]|\^[^!\n\x1a])[^=\n\x1a]*=(?:[^!\n\x1a^]|\^[^!\n\x1a])*)?)?\^?!))|[^&#34;%\n\x1a&amp;&lt;&gt;|)])*(?:\^[\n\x1a]?)?/(?:\^[\n\x1a]?)?\?(?:(?:&#34;[^\n\x1a&#34;]*(?:&#34;|(?=[\n\x1a])))|(?:(?:%(?:\*|(?:~[a-z]*(?:\$[^:]+:)?)?\d|[^%:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^%\n\x1a^]|\^[^%\n\x1a])[^=\n\x1a]*=(?:[^%\n\x1a^]|\^[^%\n\x1a])*)?)?%))|(?:\^?![^!:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^!\n\x1a^]|\^[^!\n\x1a])[^=\n\x1a]*=(?:[^!\n\x1a^]|\^[^!\n\x1a])*)?)?\^?!))|[^&#34;%\n\x1a&amp;&lt;&gt;|)])*)">
-        <bygroups>
-          <token type="Keyword"/>
-          <usingself state="text"/>
-        </bygroups>
-        <push state="follow/compound"/>
-      </rule>
-      <rule pattern="(setlocal|endlocal|prompt|verify|rename|mklink|rmdir|shift|start|color|dpath|title|chdir|erase|pushd|ftype|break|pause|mkdir|assoc|date|path|time|popd|keys|exit|type|copy|echo|move|dir|del|ren|ver|cls|vol|rd|md|cd)(?:(?=\))|(?=(?:\^[\n\x1a]?)?[\t\v\f\r ,;=\xa0+./:[\\\]]|[\n\x1a&amp;&lt;&gt;|(]))">
-        <token type="Keyword"/>
-        <push state="follow/compound"/>
-      </rule>
-      <rule pattern="(call)((?:(?:(?:\^[\n\x1a])?[\t\v\f\r ,;=\xa0])+)?)(:)">
-        <bygroups>
-          <token type="Keyword"/>
-          <usingself state="text"/>
-          <token type="Punctuation"/>
-        </bygroups>
-        <push state="call/compound"/>
-      </rule>
-      <rule pattern="call(?:(?=\))|(?=(?:\^[\n\x1a]?)?[\t\v\f\r ,;=\xa0+./:[\\\]]|[\n\x1a&amp;&lt;&gt;|(]))">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="(for(?:(?=\))|(?=\^?[\t\v\f\r ,;=\xa0]|[&amp;&lt;&gt;|\n\x1a]))(?!\^))((?:(?:(?:\^[\n\x1a])?[\t\v\f\r ,;=\xa0])+))(/f(?:(?=\))|(?=\^?[\t\v\f\r ,;=\xa0]|[&amp;&lt;&gt;|\n\x1a])))">
-        <bygroups>
-          <token type="Keyword"/>
-          <usingself state="text"/>
-          <token type="Keyword"/>
-        </bygroups>
-        <push state="for/f" state="for"/>
-      </rule>
-      <rule pattern="(for(?:(?=\))|(?=\^?[\t\v\f\r ,;=\xa0]|[&amp;&lt;&gt;|\n\x1a]))(?!\^))((?:(?:(?:\^[\n\x1a])?[\t\v\f\r ,;=\xa0])+))(/l(?:(?=\))|(?=\^?[\t\v\f\r ,;=\xa0]|[&amp;&lt;&gt;|\n\x1a])))">
-        <bygroups>
-          <token type="Keyword"/>
-          <usingself state="text"/>
-          <token type="Keyword"/>
-        </bygroups>
-        <push state="for/l" state="for"/>
-      </rule>
-      <rule pattern="for(?:(?=\))|(?=\^?[\t\v\f\r ,;=\xa0]|[&amp;&lt;&gt;|\n\x1a]))(?!\^)">
-        <token type="Keyword"/>
-        <push state="for2" state="for"/>
-      </rule>
-      <rule pattern="(goto(?:(?=\))|(?=(?:\^[\n\x1a]?)?[\t\v\f\r ,;=\xa0+./:[\\\]]|[\n\x1a&amp;&lt;&gt;|(])))((?:(?:(?:\^[\n\x1a])?[\t\v\f\r ,;=\xa0])+)?)(:?)">
-        <bygroups>
-          <token type="Keyword"/>
-          <usingself state="text"/>
-          <token type="Punctuation"/>
-        </bygroups>
-        <push state="label/compound"/>
-      </rule>
-      <rule pattern="(if(?:(?=\()|(?:(?=\))|(?=\^?[\t\v\f\r ,;=\xa0]|[&amp;&lt;&gt;|\n\x1a])))(?!\^))((?:(?:(?:\^[\n\x1a])?[\t\v\f\r ,;=\xa0])+)?)((?:/i(?:(?=\))|(?=\^?[\t\v\f\r ,;=\xa0]|[&amp;&lt;&gt;|\n\x1a])))?)((?:(?:(?:\^[\n\x1a])?[\t\v\f\r ,;=\xa0])+)?)((?:not(?:(?=\))|(?=\^?[\t\v\f\r ,;=\xa0]|[&amp;&lt;&gt;|\n\x1a])))?)((?:(?:(?:\^[\n\x1a])?[\t\v\f\r ,;=\xa0])+)?)">
-        <bygroups>
-          <token type="Keyword"/>
-          <usingself state="text"/>
-          <token type="Keyword"/>
-          <usingself state="text"/>
-          <token type="Keyword"/>
-          <usingself state="text"/>
-        </bygroups>
-        <push state="(?" state="if"/>
-      </rule>
-      <rule pattern="rem(((?=\()|(?:(?=\))|(?=\^?[\t\v\f\r ,;=\xa0]|[&amp;&lt;&gt;|\n\x1a])))(?:(?:(?:\^[\n\x1a])?[\t\v\f\r ,;=\xa0])+)?(?:[&amp;&lt;&gt;|]+|(?:(?:&#34;[^\n\x1a&#34;]*(?:&#34;|(?=[\n\x1a])))|(?:(?:%(?:\*|(?:~[a-z]*(?:\$[^:]+:)?)?\d|[^%:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^%\n\x1a^]|\^[^%\n\x1a])[^=\n\x1a]*=(?:[^%\n\x1a^]|\^[^%\n\x1a])*)?)?%))|(?:\^?![^!:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^!\n\x1a^]|\^[^!\n\x1a])[^=\n\x1a]*=(?:[^!\n\x1a^]|\^[^!\n\x1a])*)?)?\^?!))|(?:(?:(?:\^[\n\x1a]?)?[^&#34;\n\x1a&amp;&lt;&gt;|\t\v\f\r ,;=\xa0])+))+)?.*|(?:(?=\))|(?=(?:\^[\n\x1a]?)?[\t\v\f\r ,;=\xa0+./:[\\\]]|[\n\x1a&amp;&lt;&gt;|(]))(?:(?:[^\n\x1a^)]|\^[\n\x1a]?[^)])*))">
-        <token type="CommentSingle"/>
-        <push state="follow/compound"/>
-      </rule>
-      <rule pattern="(set(?:(?=\))|(?=(?:\^[\n\x1a]?)?[\t\v\f\r ,;=\xa0+./:[\\\]]|[\n\x1a&amp;&lt;&gt;|(])))((?:(?:\^[\n\x1a]?)?[^\S\n])*)(/a)">
-        <bygroups>
-          <token type="Keyword"/>
-          <usingself state="text"/>
-          <token type="Keyword"/>
-        </bygroups>
-        <push state="arithmetic/compound"/>
-      </rule>
-      <rule pattern="(set(?:(?=\))|(?=(?:\^[\n\x1a]?)?[\t\v\f\r ,;=\xa0+./:[\\\]]|[\n\x1a&amp;&lt;&gt;|(])))((?:(?:\^[\n\x1a]?)?[^\S\n])*)((?:/p)?)((?:(?:\^[\n\x1a]?)?[^\S\n])*)((?:(?:(?:\^[\n\x1a]?)?[^&#34;\n\x1a&amp;&lt;&gt;|^=)]|\^[\n\x1a]?[^&#34;=])+)?)((?:(?:\^[\n\x1a]?)?=)?)">
-        <bygroups>
-          <token type="Keyword"/>
-          <usingself state="text"/>
-          <token type="Keyword"/>
-          <usingself state="text"/>
-          <usingself state="variable"/>
-          <token type="Punctuation"/>
-        </bygroups>
-        <push state="follow/compound"/>
-      </rule>
-      <rule>
-        <push state="follow/compound"/>
-      </rule>
-    </state>
-    <state name="follow/compound">
-      <rule pattern="(?=\))">
-        <token type="Text"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="((?:(?&lt;=^[^:])|^[^:]?)[\t\v\f\r ,;=\xa0]*)(:)([\t\v\f\r ,;=\xa0]*)((?:(?:[^\n\x1a&amp;&lt;&gt;|\t\v\f\r ,;=\xa0+:^)]|\^[\n\x1a]?[^)])*))(.*)">
-        <bygroups>
-          <token type="Text"/>
-          <token type="Punctuation"/>
-          <token type="Text"/>
-          <token type="NameLabel"/>
-          <token type="CommentSingle"/>
-        </bygroups>
-      </rule>
-      <rule>
-        <include state="redirect/compound"/>
-      </rule>
-      <rule pattern="(?=[\n\x1a])">
-        <token type="Text"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="\|\|?|&amp;&amp;?">
-        <token type="Punctuation"/>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <include state="text"/>
-      </rule>
-    </state>
-    <state name="text">
-      <rule pattern="&#34;">
-        <token type="LiteralStringDouble"/>
-        <push state="string"/>
-      </rule>
-      <rule>
-        <include state="variable-or-escape"/>
-      </rule>
-      <rule pattern="[^&#34;%^\n\x1a&amp;&lt;&gt;|\t\v\f\r ,;=\xa0\d)]+|.">
-        <token type="Text"/>
-      </rule>
-    </state>
-    <state name="redirect">
-      <rule pattern="((?:(?&lt;=[\n\x1a\t\v\f\r ,;=\xa0])\d)?)(&gt;&gt;?&amp;|&lt;&amp;)([\n\x1a\t\v\f\r ,;=\xa0]*)(\d)">
-        <bygroups>
-          <token type="LiteralNumberInteger"/>
-          <token type="Punctuation"/>
-          <token type="Text"/>
-          <token type="LiteralNumberInteger"/>
-        </bygroups>
-      </rule>
-      <rule pattern="((?:(?&lt;=[\n\x1a\t\v\f\r ,;=\xa0])(?&lt;!\^[\n\x1a])\d)?)(&gt;&gt;?|&lt;)((?:(?:(?:\^[\n\x1a])?[\t\v\f\r ,;=\xa0])+)?(?:[&amp;&lt;&gt;|]+|(?:(?:&#34;[^\n\x1a&#34;]*(?:&#34;|(?=[\n\x1a])))|(?:(?:%(?:\*|(?:~[a-z]*(?:\$[^:]+:)?)?\d|[^%:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^%\n\x1a^]|\^[^%\n\x1a])[^=\n\x1a]*=(?:[^%\n\x1a^]|\^[^%\n\x1a])*)?)?%))|(?:\^?![^!:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^!\n\x1a^]|\^[^!\n\x1a])[^=\n\x1a]*=(?:[^!\n\x1a^]|\^[^!\n\x1a])*)?)?\^?!))|(?:(?:(?:\^[\n\x1a]?)?[^&#34;\n\x1a&amp;&lt;&gt;|\t\v\f\r ,;=\xa0])+))+))">
-        <bygroups>
-          <token type="LiteralNumberInteger"/>
-          <token type="Punctuation"/>
-          <usingself state="text"/>
-        </bygroups>
-      </rule>
-    </state>
-    <state name="label">
-      <rule pattern="((?:(?:[^\n\x1a&amp;&lt;&gt;|\t\v\f\r ,;=\xa0+:^]|\^[\n\x1a]?[\w\W])*)?)((?:(?:&#34;[^\n\x1a&#34;]*(?:&#34;|(?=[\n\x1a])))|(?:(?:%(?:\*|(?:~[a-z]*(?:\$[^:]+:)?)?\d|[^%:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^%\n\x1a^]|\^[^%\n\x1a])[^=\n\x1a]*=(?:[^%\n\x1a^]|\^[^%\n\x1a])*)?)?%))|(?:\^?![^!:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^!\n\x1a^]|\^[^!\n\x1a])[^=\n\x1a]*=(?:[^!\n\x1a^]|\^[^!\n\x1a])*)?)?\^?!))|\^[\n\x1a]?[\w\W]|[^&#34;%^\n\x1a&amp;&lt;&gt;|])*)">
-        <bygroups>
-          <token type="NameLabel"/>
-          <token type="CommentSingle"/>
-        </bygroups>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="arithmetic/compound">
-      <rule pattern="(?=\))">
-        <token type="Text"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="0[0-7]+">
-        <token type="LiteralNumberOct"/>
-      </rule>
-      <rule pattern="0x[\da-f]+">
-        <token type="LiteralNumberHex"/>
-      </rule>
-      <rule pattern="\d+">
-        <token type="LiteralNumberInteger"/>
-      </rule>
-      <rule pattern="[(),]+">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="([=+\-*/!~]|%|\^\^)+">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="((?:&#34;[^\n\x1a&#34;]*(?:&#34;|(?=[\n\x1a])))|(?:(?:%(?:\*|(?:~[a-z]*(?:\$[^:]+:)?)?\d|[^%:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^%\n\x1a^]|\^[^%\n\x1a])[^=\n\x1a]*=(?:[^%\n\x1a^]|\^[^%\n\x1a])*)?)?%))|(?:\^?![^!:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^!\n\x1a^]|\^[^!\n\x1a])[^=\n\x1a]*=(?:[^!\n\x1a^]|\^[^!\n\x1a])*)?)?\^?!))|(\^[\n\x1a]?)?[^()=+\-*/!~%^&#34;\n\x1a&amp;&lt;&gt;|\t\v\f\r ,;=\xa0]|\^[\n\x1a\t\v\f\r ,;=\xa0]?[^)])+">
-        <usingself state="variable"/>
-      </rule>
-      <rule pattern="(?=[\x00|&amp;])">
-        <token type="Text"/>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <include state="follow"/>
-      </rule>
-    </state>
-    <state name="string">
-      <rule pattern="&#34;">
-        <token type="LiteralStringDouble"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="(?:(?:%(?:\*|(?:~[a-z]*(?:\$[^:]+:)?)?\d|[^%:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^%\n\x1a^]|\^[^%\n\x1a])[^=\n\x1a]*=(?:[^%\n\x1a^]|\^[^%\n\x1a])*)?)?%))|(?:\^?![^!:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^!\n\x1a^]|\^[^!\n\x1a])[^=\n\x1a]*=(?:[^!\n\x1a^]|\^[^!\n\x1a])*)?)?\^?!))">
-        <token type="NameVariable"/>
-      </rule>
-      <rule pattern="\^!|%%">
-        <token type="LiteralStringEscape"/>
-      </rule>
-      <rule pattern="[^&#34;%^\n\x1a]+|[%^]">
-        <token type="LiteralStringDouble"/>
-      </rule>
-      <rule>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="variable">
-      <rule pattern="&#34;">
-        <token type="LiteralStringDouble"/>
-        <push state="string"/>
-      </rule>
-      <rule>
-        <include state="variable-or-escape"/>
-      </rule>
-      <rule pattern="[^&#34;%^\n\x1a]+|.">
-        <token type="NameVariable"/>
-      </rule>
-    </state>
-    <state name="call/compound">
-      <rule pattern="(?=\))">
-        <token type="Text"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="(:?)((?:(?:[^\n\x1a&amp;&lt;&gt;|\t\v\f\r ,;=\xa0+:^)]|\^[\n\x1a]?[^)])*))">
-        <bygroups>
-          <token type="Punctuation"/>
-          <token type="NameLabel"/>
-        </bygroups>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="for/f">
-      <rule pattern="(&#34;)((?:(?:(?:%(?:\*|(?:~[a-z]*(?:\$[^:]+:)?)?\d|[^%:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^%\n\x1a^]|\^[^%\n\x1a])[^=\n\x1a]*=(?:[^%\n\x1a^]|\^[^%\n\x1a])*)?)?%))|(?:\^?![^!:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^!\n\x1a^]|\^[^!\n\x1a])[^=\n\x1a]*=(?:[^!\n\x1a^]|\^[^!\n\x1a])*)?)?\^?!))|[^&#34;])*?&#34;)([\n\x1a\t\v\f\r ,;=\xa0]*)(\))">
-        <bygroups>
-          <token type="LiteralStringDouble"/>
-          <usingself state="string"/>
-          <token type="Text"/>
-          <token type="Punctuation"/>
-        </bygroups>
-      </rule>
-      <rule pattern="&#34;">
-        <token type="LiteralStringDouble"/>
-        <push state="#pop" state="for2" state="string"/>
-      </rule>
-      <rule pattern="(&#39;(?:%%|(?:(?:%(?:\*|(?:~[a-z]*(?:\$[^:]+:)?)?\d|[^%:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^%\n\x1a^]|\^[^%\n\x1a])[^=\n\x1a]*=(?:[^%\n\x1a^]|\^[^%\n\x1a])*)?)?%))|(?:\^?![^!:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^!\n\x1a^]|\^[^!\n\x1a])[^=\n\x1a]*=(?:[^!\n\x1a^]|\^[^!\n\x1a])*)?)?\^?!))|[\w\W])*?&#39;)([\n\x1a\t\v\f\r ,;=\xa0]*)(\))">
-        <bygroups>
-          <usingself state="sqstring"/>
-          <token type="Text"/>
-          <token type="Punctuation"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(`(?:%%|(?:(?:%(?:\*|(?:~[a-z]*(?:\$[^:]+:)?)?\d|[^%:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^%\n\x1a^]|\^[^%\n\x1a])[^=\n\x1a]*=(?:[^%\n\x1a^]|\^[^%\n\x1a])*)?)?%))|(?:\^?![^!:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^!\n\x1a^]|\^[^!\n\x1a])[^=\n\x1a]*=(?:[^!\n\x1a^]|\^[^!\n\x1a])*)?)?\^?!))|[\w\W])*?`)([\n\x1a\t\v\f\r ,;=\xa0]*)(\))">
-        <bygroups>
-          <usingself state="bqstring"/>
-          <token type="Text"/>
-          <token type="Punctuation"/>
-        </bygroups>
-      </rule>
-      <rule>
-        <include state="for2"/>
-      </rule>
-    </state>
-    <state name="for/l">
-      <rule pattern="-?\d+">
-        <token type="LiteralNumberInteger"/>
-      </rule>
-      <rule>
-        <include state="for2"/>
-      </rule>
-    </state>
-    <state name="if2">
-      <rule pattern="((?:(?:(?:\^[\n\x1a])?[\t\v\f\r ,;=\xa0])+)?)(==)((?:(?:(?:\^[\n\x1a])?[\t\v\f\r ,;=\xa0])+)?(?:[&amp;&lt;&gt;|]+|(?:(?:&#34;[^\n\x1a&#34;]*(?:&#34;|(?=[\n\x1a])))|(?:(?:%(?:\*|(?:~[a-z]*(?:\$[^:]+:)?)?\d|[^%:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^%\n\x1a^]|\^[^%\n\x1a])[^=\n\x1a]*=(?:[^%\n\x1a^]|\^[^%\n\x1a])*)?)?%))|(?:\^?![^!:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^!\n\x1a^]|\^[^!\n\x1a])[^=\n\x1a]*=(?:[^!\n\x1a^]|\^[^!\n\x1a])*)?)?\^?!))|(?:(?:(?:\^[\n\x1a]?)?[^&#34;\n\x1a&amp;&lt;&gt;|\t\v\f\r ,;=\xa0])+))+))">
-        <bygroups>
-          <usingself state="text"/>
-          <token type="Operator"/>
-          <usingself state="text"/>
-        </bygroups>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="((?:(?:(?:\^[\n\x1a])?[\t\v\f\r ,;=\xa0])+))((?:equ|geq|gtr|leq|lss|neq))((?:(?:(?:\^[\n\x1a])?[\t\v\f\r ,;=\xa0])+)(?:[&amp;&lt;&gt;|]+|(?:(?:&#34;[^\n\x1a&#34;]*(?:&#34;|(?=[\n\x1a])))|(?:(?:%(?:\*|(?:~[a-z]*(?:\$[^:]+:)?)?\d|[^%:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^%\n\x1a^]|\^[^%\n\x1a])[^=\n\x1a]*=(?:[^%\n\x1a^]|\^[^%\n\x1a])*)?)?%))|(?:\^?![^!:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^!\n\x1a^]|\^[^!\n\x1a])[^=\n\x1a]*=(?:[^!\n\x1a^]|\^[^!\n\x1a])*)?)?\^?!))|(?:(?:(?:\^[\n\x1a]?)?[^&#34;\n\x1a&amp;&lt;&gt;|\t\v\f\r ,;=\xa0])+))+))">
-        <bygroups>
-          <usingself state="text"/>
-          <token type="OperatorWord"/>
-          <usingself state="text"/>
-        </bygroups>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="(?">
-      <rule pattern="(?:(?:(?:\^[\n\x1a])?[\t\v\f\r ,;=\xa0])+)">
-        <usingself state="text"/>
-      </rule>
-      <rule pattern="\(">
-        <token type="Punctuation"/>
-        <push state="#pop" state="else?" state="root/compound"/>
-      </rule>
-      <rule>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="call">
-      <rule pattern="(:?)((?:(?:[^\n\x1a&amp;&lt;&gt;|\t\v\f\r ,;=\xa0+:^]|\^[\n\x1a]?[\w\W])*))">
-        <bygroups>
-          <token type="Punctuation"/>
-          <token type="NameLabel"/>
-        </bygroups>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="variable-or-escape">
-      <rule pattern="(?:(?:%(?:\*|(?:~[a-z]*(?:\$[^:]+:)?)?\d|[^%:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^%\n\x1a^]|\^[^%\n\x1a])[^=\n\x1a]*=(?:[^%\n\x1a^]|\^[^%\n\x1a])*)?)?%))|(?:\^?![^!:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^!\n\x1a^]|\^[^!\n\x1a])[^=\n\x1a]*=(?:[^!\n\x1a^]|\^[^!\n\x1a])*)?)?\^?!))">
-        <token type="NameVariable"/>
-      </rule>
-      <rule pattern="%%|\^[\n\x1a]?(\^!|[\w\W])">
-        <token type="LiteralStringEscape"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/bibtex.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/bibtex.xml	(revision 67)
+++ 	(revision )
@@ -1,152 +1,0 @@
-<lexer>
-  <config>
-    <name>BibTeX</name>
-    <alias>bib</alias>
-    <alias>bibtex</alias>
-    <filename>*.bib</filename>
-    <mime_type>text/x-bibtex</mime_type>
-    <case_insensitive>true</case_insensitive>
-    <not_multiline>true</not_multiline>
-  </config>
-  <rules>
-    <state name="closing-brace">
-      <rule>
-        <include state="whitespace"/>
-      </rule>
-      <rule pattern="[})]">
-        <token type="Punctuation"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="braced-string">
-      <rule pattern="\{">
-        <token type="LiteralString"/>
-        <push/>
-      </rule>
-      <rule pattern="\}">
-        <token type="LiteralString"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="[^\{\}]+">
-        <token type="LiteralString"/>
-      </rule>
-    </state>
-    <state name="whitespace">
-      <rule pattern="\s+">
-        <token type="Text"/>
-      </rule>
-    </state>
-    <state name="value">
-      <rule>
-        <include state="whitespace"/>
-      </rule>
-      <rule pattern="[a-z_@!$&amp;*+\-./:;&lt;&gt;?\[\\\]^`|~][\w@!$&amp;*+\-./:;&lt;&gt;?\[\\\]^`|~]*">
-        <token type="NameVariable"/>
-      </rule>
-      <rule pattern="&#34;">
-        <token type="LiteralString"/>
-        <push state="quoted-string"/>
-      </rule>
-      <rule pattern="\{">
-        <token type="LiteralString"/>
-        <push state="braced-string"/>
-      </rule>
-      <rule pattern="[\d]+">
-        <token type="LiteralNumber"/>
-      </rule>
-      <rule pattern="#">
-        <token type="Punctuation"/>
-      </rule>
-      <rule>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="quoted-string">
-      <rule pattern="\{">
-        <token type="LiteralString"/>
-        <push state="braced-string"/>
-      </rule>
-      <rule pattern="&#34;">
-        <token type="LiteralString"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="[^\{\&#34;]+">
-        <token type="LiteralString"/>
-      </rule>
-    </state>
-    <state name="root">
-      <rule>
-        <include state="whitespace"/>
-      </rule>
-      <rule pattern="@comment">
-        <token type="Comment"/>
-      </rule>
-      <rule pattern="@preamble">
-        <token type="NameClass"/>
-        <push state="closing-brace" state="value" state="opening-brace"/>
-      </rule>
-      <rule pattern="@string">
-        <token type="NameClass"/>
-        <push state="closing-brace" state="field" state="opening-brace"/>
-      </rule>
-      <rule pattern="@[a-z_@!$&amp;*+\-./:;&lt;&gt;?\[\\\]^`|~][\w@!$&amp;*+\-./:;&lt;&gt;?\[\\\]^`|~]*">
-        <token type="NameClass"/>
-        <push state="closing-brace" state="command-body" state="opening-brace"/>
-      </rule>
-      <rule pattern=".+">
-        <token type="Comment"/>
-      </rule>
-    </state>
-    <state name="command-body">
-      <rule>
-        <include state="whitespace"/>
-      </rule>
-      <rule pattern="[^\s\,\}]+">
-        <token type="NameLabel"/>
-        <push state="#pop" state="fields"/>
-      </rule>
-    </state>
-    <state name="fields">
-      <rule>
-        <include state="whitespace"/>
-      </rule>
-      <rule pattern=",">
-        <token type="Punctuation"/>
-        <push state="field"/>
-      </rule>
-      <rule>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="=">
-      <rule>
-        <include state="whitespace"/>
-      </rule>
-      <rule pattern="=">
-        <token type="Punctuation"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="field">
-      <rule>
-        <include state="whitespace"/>
-      </rule>
-      <rule pattern="[a-z_@!$&amp;*+\-./:;&lt;&gt;?\[\\\]^`|~][\w@!$&amp;*+\-./:;&lt;&gt;?\[\\\]^`|~]*">
-        <token type="NameAttribute"/>
-        <push state="value" state="="/>
-      </rule>
-      <rule>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="opening-brace">
-      <rule>
-        <include state="whitespace"/>
-      </rule>
-      <rule pattern="[{(]">
-        <token type="Punctuation"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/bicep.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/bicep.xml	(revision 67)
+++ 	(revision )
@@ -1,68 +1,0 @@
-<lexer>
-  <config>
-    <name>Bicep</name>
-    <alias>bicep</alias>
-    <filename>*.bicep</filename>
-  </config>
-  <rules>
-    <state name="root">
-      <rule pattern="//[^\n\r]+">
-        <token type="CommentSingle"/>
-      </rule>
-      <rule pattern="/\*.*?\*/">
-        <token type="CommentMultiline"/>
-      </rule>
-      <rule pattern="([&#39;]?\w+[&#39;]?)(:)">
-        <bygroups>
-          <token type="NameProperty"/>
-          <token type="Punctuation"/>
-        </bygroups>
-      </rule>
-      <rule pattern="\b(&#39;(resourceGroup|subscription|managementGroup|tenant)&#39;)\b">
-        <token type="KeywordNamespace"/>
-      </rule>
-      <rule pattern="&#39;[\w\$\{\(\)\}\.]{1,}?&#39;">
-        <token type="LiteralStringInterpol"/>
-      </rule>
-      <rule pattern="(&#39;&#39;&#39;|&#39;).*?(&#39;&#39;&#39;|&#39;)">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="\b(allowed|batchSize|description|maxLength|maxValue|metadata|minLength|minValue|secure)\b">
-        <token type="NameDecorator"/>
-      </rule>
-      <rule pattern="\b(az|sys)\.">
-        <token type="NameNamespace"/>
-      </rule>
-      <rule pattern="\b(any|array|concat|contains|empty|first|intersection|items|last|length|min|max|range|skip|take|union|dateTimeAdd|utcNow|deployment|environment|loadFileAsBase64|loadTextContent|int|json|extensionResourceId|getSecret|list|listKeys|listKeyValue|listAccountSas|listSecrets|pickZones|reference|resourceId|subscriptionResourceId|tenantResourceId|managementGroup|resourceGroup|subscription|tenant|base64|base64ToJson|base64ToString|dataUri|dataUriToString|endsWith|format|guid|indexOf|lastIndexOf|length|newGuid|padLeft|replace|split|startsWith|string|substring|toLower|toUpper|trim|uniqueString|uri|uriComponent|uriComponentToString)\b">
-        <token type="NameFunction"/>
-      </rule>
-      <rule pattern="\b(bool)(\()">
-        <bygroups>
-          <token type="NameFunction"/>
-          <token type="Punctuation"/>
-        </bygroups>
-      </rule>
-      <rule pattern="\b(for|if|in)\b">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="\b(module|output|param|resource|var)\b">
-        <token type="KeywordDeclaration"/>
-      </rule>
-      <rule pattern="\b(array|bool|int|object|string)\b">
-        <token type="KeywordType"/>
-      </rule>
-      <rule pattern="(&gt;=|&gt;|&lt;=|&lt;|==|!=|=~|!~|::|&amp;&amp;|\?\?|!|-|%|\*|\/|\+)">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="[\(\)\[\]\.:\?{}@=]">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="[\w_-]+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="\s+">
-        <token type="TextWhitespace"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/blitzbasic.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/blitzbasic.xml	(revision 67)
+++ 	(revision )
@@ -1,141 +1,0 @@
-<lexer>
-  <config>
-    <name>BlitzBasic</name>
-    <alias>blitzbasic</alias>
-    <alias>b3d</alias>
-    <alias>bplus</alias>
-    <filename>*.bb</filename>
-    <filename>*.decls</filename>
-    <mime_type>text/x-bb</mime_type>
-    <case_insensitive>true</case_insensitive>
-  </config>
-  <rules>
-    <state name="string">
-      <rule pattern="&#34;&#34;">
-        <token type="LiteralStringDouble"/>
-      </rule>
-      <rule pattern="&#34;C?">
-        <token type="LiteralStringDouble"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="[^&#34;]+">
-        <token type="LiteralStringDouble"/>
-      </rule>
-    </state>
-    <state name="root">
-      <rule pattern="[ \t]+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern=";.*?\n">
-        <token type="CommentSingle"/>
-      </rule>
-      <rule pattern="&#34;">
-        <token type="LiteralStringDouble"/>
-        <push state="string"/>
-      </rule>
-      <rule pattern="[0-9]+\.[0-9]*(?!\.)">
-        <token type="LiteralNumberFloat"/>
-      </rule>
-      <rule pattern="\.[0-9]+(?!\.)">
-        <token type="LiteralNumberFloat"/>
-      </rule>
-      <rule pattern="[0-9]+">
-        <token type="LiteralNumberInteger"/>
-      </rule>
-      <rule pattern="\$[0-9a-f]+">
-        <token type="LiteralNumberHex"/>
-      </rule>
-      <rule pattern="\%[10]+">
-        <token type="LiteralNumberBin"/>
-      </rule>
-      <rule pattern="\b(Before|Handle|After|First|Float|Last|Sgn|Abs|Not|And|Int|Mod|Str|Sar|Shr|Shl|Or)\b">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="([+\-*/~=&lt;&gt;^])">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="[(),:\[\]\\]">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="\.([ \t]*)([a-z]\w*)">
-        <token type="NameLabel"/>
-      </rule>
-      <rule pattern="\b(New)\b([ \t]+)([a-z]\w*)">
-        <bygroups>
-          <token type="KeywordReserved"/>
-          <token type="Text"/>
-          <token type="NameClass"/>
-        </bygroups>
-      </rule>
-      <rule pattern="\b(Gosub|Goto)\b([ \t]+)([a-z]\w*)">
-        <bygroups>
-          <token type="KeywordReserved"/>
-          <token type="Text"/>
-          <token type="NameLabel"/>
-        </bygroups>
-      </rule>
-      <rule pattern="\b(Object)\b([ \t]*)([.])([ \t]*)([a-z]\w*)\b">
-        <bygroups>
-          <token type="Operator"/>
-          <token type="Text"/>
-          <token type="Punctuation"/>
-          <token type="Text"/>
-          <token type="NameClass"/>
-        </bygroups>
-      </rule>
-      <rule pattern="\b([a-z]\w*)(?:([ \t]*)(@{1,2}|[#$%])|([ \t]*)([.])([ \t]*)(?:([a-z]\w*)))?\b([ \t]*)(\()">
-        <bygroups>
-          <token type="NameFunction"/>
-          <token type="Text"/>
-          <token type="KeywordType"/>
-          <token type="Text"/>
-          <token type="Punctuation"/>
-          <token type="Text"/>
-          <token type="NameClass"/>
-          <token type="Text"/>
-          <token type="Punctuation"/>
-        </bygroups>
-      </rule>
-      <rule pattern="\b(Function)\b([ \t]+)([a-z]\w*)(?:([ \t]*)(@{1,2}|[#$%])|([ \t]*)([.])([ \t]*)(?:([a-z]\w*)))?">
-        <bygroups>
-          <token type="KeywordReserved"/>
-          <token type="Text"/>
-          <token type="NameFunction"/>
-          <token type="Text"/>
-          <token type="KeywordType"/>
-          <token type="Text"/>
-          <token type="Punctuation"/>
-          <token type="Text"/>
-          <token type="NameClass"/>
-        </bygroups>
-      </rule>
-      <rule pattern="\b(Type)([ \t]+)([a-z]\w*)">
-        <bygroups>
-          <token type="KeywordReserved"/>
-          <token type="Text"/>
-          <token type="NameClass"/>
-        </bygroups>
-      </rule>
-      <rule pattern="\b(Pi|True|False|Null)\b">
-        <token type="KeywordConstant"/>
-      </rule>
-      <rule pattern="\b(Local|Global|Const|Field|Dim)\b">
-        <token type="KeywordDeclaration"/>
-      </rule>
-      <rule pattern="\b(Function|Restore|Default|Forever|Include|Return|Repeat|ElseIf|Delete|Insert|Select|EndIf|Until|While|Gosub|Type|Goto|Else|Data|Next|Step|Each|Case|Wend|Exit|Read|Then|For|New|Asc|Len|Chr|End|To|If)\b">
-        <token type="KeywordReserved"/>
-      </rule>
-      <rule pattern="([a-z]\w*)(?:([ \t]*)(@{1,2}|[#$%])|([ \t]*)([.])([ \t]*)(?:([a-z]\w*)))?">
-        <bygroups>
-          <token type="NameVariable"/>
-          <token type="Text"/>
-          <token type="KeywordType"/>
-          <token type="Text"/>
-          <token type="Punctuation"/>
-          <token type="Text"/>
-          <token type="NameClass"/>
-        </bygroups>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/bnf.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/bnf.xml	(revision 67)
+++ 	(revision )
@@ -1,28 +1,0 @@
-<lexer>
-  <config>
-    <name>BNF</name>
-    <alias>bnf</alias>
-    <filename>*.bnf</filename>
-    <mime_type>text/x-bnf</mime_type>
-  </config>
-  <rules>
-    <state name="root">
-      <rule pattern="(&lt;)([ -;=?-~]+)(&gt;)">
-        <bygroups>
-          <token type="Punctuation"/>
-          <token type="NameClass"/>
-          <token type="Punctuation"/>
-        </bygroups>
-      </rule>
-      <rule pattern="::=">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="[^&lt;&gt;:]+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern=".">
-        <token type="Text"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/brainfuck.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/brainfuck.xml	(revision 67)
+++ 	(revision )
@@ -1,51 +1,0 @@
-<lexer>
-  <config>
-    <name>Brainfuck</name>
-    <alias>brainfuck</alias>
-    <alias>bf</alias>
-    <filename>*.bf</filename>
-    <filename>*.b</filename>
-    <mime_type>application/x-brainfuck</mime_type>
-  </config>
-  <rules>
-    <state name="common">
-      <rule pattern="[.,]+">
-        <token type="NameTag"/>
-      </rule>
-      <rule pattern="[+-]+">
-        <token type="NameBuiltin"/>
-      </rule>
-      <rule pattern="[&lt;&gt;]+">
-        <token type="NameVariable"/>
-      </rule>
-      <rule pattern="[^.,+\-&lt;&gt;\[\]]+">
-        <token type="Comment"/>
-      </rule>
-    </state>
-    <state name="root">
-      <rule pattern="\[">
-        <token type="Keyword"/>
-        <push state="loop"/>
-      </rule>
-      <rule pattern="\]">
-        <token type="Error"/>
-      </rule>
-      <rule>
-        <include state="common"/>
-      </rule>
-    </state>
-    <state name="loop">
-      <rule pattern="\[">
-        <token type="Keyword"/>
-        <push/>
-      </rule>
-      <rule pattern="\]">
-        <token type="Keyword"/>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <include state="common"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/c++.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/c++.xml	(revision 67)
+++ 	(revision )
@@ -1,326 +1,0 @@
-<lexer>
-  <config>
-    <name>C++</name>
-    <alias>cpp</alias>
-    <alias>c++</alias>
-    <filename>*.cpp</filename>
-    <filename>*.hpp</filename>
-    <filename>*.c++</filename>
-    <filename>*.h++</filename>
-    <filename>*.cc</filename>
-    <filename>*.hh</filename>
-    <filename>*.cxx</filename>
-    <filename>*.hxx</filename>
-    <filename>*.C</filename>
-    <filename>*.H</filename>
-    <filename>*.cp</filename>
-    <filename>*.CPP</filename>
-    <mime_type>text/x-c++hdr</mime_type>
-    <mime_type>text/x-c++src</mime_type>
-    <ensure_nl>true</ensure_nl>
-  </config>
-  <rules>
-    <state name="classname">
-      <rule pattern="(\[\[.+\]\])(\s*)">
-        <bygroups>
-          <token type="NameAttribute"/>
-          <token type="Text"/>
-        </bygroups>
-      </rule>
-      <rule pattern="[a-zA-Z_]\w*">
-        <token type="NameClass"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="\s*(?=[&gt;{])">
-        <token type="Text"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="whitespace">
-      <rule pattern="^#if\s+0">
-        <token type="CommentPreproc"/>
-        <push state="if0"/>
-      </rule>
-      <rule pattern="^#">
-        <token type="CommentPreproc"/>
-        <push state="macro"/>
-      </rule>
-      <rule pattern="^(\s*(?:/[*].*?[*]/\s*)?)(#if\s+0)">
-        <bygroups>
-          <usingself state="root"/>
-          <token type="CommentPreproc"/>
-        </bygroups>
-        <push state="if0"/>
-      </rule>
-      <rule pattern="^(\s*(?:/[*].*?[*]/\s*)?)(#)">
-        <bygroups>
-          <usingself state="root"/>
-          <token type="CommentPreproc"/>
-        </bygroups>
-        <push state="macro"/>
-      </rule>
-      <rule pattern="\n">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="\s+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="\\\n">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="//(\n|[\w\W]*?[^\\]\n)">
-        <token type="CommentSingle"/>
-      </rule>
-      <rule pattern="/(\\\n)?[*][\w\W]*?[*](\\\n)?/">
-        <token type="CommentMultiline"/>
-      </rule>
-      <rule pattern="/(\\\n)?[*][\w\W]*">
-        <token type="CommentMultiline"/>
-      </rule>
-    </state>
-    <state name="macro">
-      <rule pattern="(include)(\s*(?:/[*].*?[*]/\s*)?)([^\n]+)">
-        <bygroups>
-          <token type="CommentPreproc"/>
-          <token type="Text"/>
-          <token type="CommentPreprocFile"/>
-        </bygroups>
-      </rule>
-      <rule pattern="[^/\n]+">
-        <token type="CommentPreproc"/>
-      </rule>
-      <rule pattern="/[*](.|\n)*?[*]/">
-        <token type="CommentMultiline"/>
-      </rule>
-      <rule pattern="//.*?\n">
-        <token type="CommentSingle"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="/">
-        <token type="CommentPreproc"/>
-      </rule>
-      <rule pattern="(?&lt;=\\)\n">
-        <token type="CommentPreproc"/>
-      </rule>
-      <rule pattern="\n">
-        <token type="CommentPreproc"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="statements">
-      <rule pattern="(reinterpret_cast|static_assert|thread_local|dynamic_cast|static_cast|const_cast|co_return|protected|namespace|consteval|constexpr|typename|co_await|co_yield|operator|restrict|explicit|template|override|noexcept|requires|decltype|alignof|private|alignas|virtual|mutable|nullptr|concept|export|friend|typeid|throws|public|delete|final|throw|catch|using|this|new|try)\b">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="(enum)\b(\s+)(class)\b(\s*)">
-        <bygroups>
-          <token type="Keyword"/>
-          <token type="Text"/>
-          <token type="Keyword"/>
-          <token type="Text"/>
-        </bygroups>
-        <push state="classname"/>
-      </rule>
-      <rule pattern="(class|struct|enum|union)\b(\s*)">
-        <bygroups>
-          <token type="Keyword"/>
-          <token type="Text"/>
-        </bygroups>
-        <push state="classname"/>
-      </rule>
-      <rule pattern="\[\[.+\]\]">
-        <token type="NameAttribute"/>
-      </rule>
-      <rule pattern="(R)(&#34;)([^\\()\s]{,16})(\()((?:.|\n)*?)(\)\3)(&#34;)">
-        <bygroups>
-          <token type="LiteralStringAffix"/>
-          <token type="LiteralString"/>
-          <token type="LiteralStringDelimiter"/>
-          <token type="LiteralStringDelimiter"/>
-          <token type="LiteralString"/>
-          <token type="LiteralStringDelimiter"/>
-          <token type="LiteralString"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(u8|u|U)(&#34;)">
-        <bygroups>
-          <token type="LiteralStringAffix"/>
-          <token type="LiteralString"/>
-        </bygroups>
-        <push state="string"/>
-      </rule>
-      <rule pattern="(L?)(&#34;)">
-        <bygroups>
-          <token type="LiteralStringAffix"/>
-          <token type="LiteralString"/>
-        </bygroups>
-        <push state="string"/>
-      </rule>
-      <rule pattern="(L?)(&#39;)(\\.|\\[0-7]{1,3}|\\x[a-fA-F0-9]{1,2}|[^\\\&#39;\n])(&#39;)">
-        <bygroups>
-          <token type="LiteralStringAffix"/>
-          <token type="LiteralStringChar"/>
-          <token type="LiteralStringChar"/>
-          <token type="LiteralStringChar"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(\d+\.\d*|\.\d+|\d+)[eE][+-]?\d+[LlUu]*">
-        <token type="LiteralNumberFloat"/>
-      </rule>
-      <rule pattern="(\d+\.\d*|\.\d+|\d+[fF])[fF]?">
-        <token type="LiteralNumberFloat"/>
-      </rule>
-      <rule pattern="0[xX]([0-9A-Fa-f](&#39;?[0-9A-Fa-f]+)*)[LlUu]*">
-        <token type="LiteralNumberHex"/>
-      </rule>
-      <rule pattern="0(&#39;?[0-7]+)+[LlUu]*">
-        <token type="LiteralNumberOct"/>
-      </rule>
-      <rule pattern="0[Bb][01](&#39;?[01]+)*[LlUu]*">
-        <token type="LiteralNumberBin"/>
-      </rule>
-      <rule pattern="[0-9](&#39;?[0-9]+)*[LlUu]*">
-        <token type="LiteralNumberInteger"/>
-      </rule>
-      <rule pattern="\*/">
-        <token type="Error"/>
-      </rule>
-      <rule pattern="[~!%^&amp;*+=|?:&lt;&gt;/-]">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="[()\[\],.]">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="(restricted|volatile|continue|register|default|typedef|struct|extern|switch|sizeof|static|return|union|while|const|break|goto|enum|else|case|auto|for|asm|if|do)\b">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="(bool|int|long|float|short|double|char((8|16|32)_t)?|wchar_t|unsigned|signed|void|u?int(_fast|_least|)(8|16|32|64)_t)\b">
-        <token type="KeywordType"/>
-      </rule>
-      <rule pattern="(typename|__inline|restrict|_inline|thread|inline|naked)\b">
-        <token type="KeywordReserved"/>
-      </rule>
-      <rule pattern="(__m(128i|128d|128|64))\b">
-        <token type="KeywordReserved"/>
-      </rule>
-      <rule pattern="__(forceinline|identifier|unaligned|declspec|fastcall|stdcall|finally|except|assume|int32|cdecl|int64|based|leave|int16|raise|noop|int8|w64|try|asm)\b">
-        <token type="KeywordReserved"/>
-      </rule>
-      <rule pattern="(true|false|NULL)\b">
-        <token type="NameBuiltin"/>
-      </rule>
-      <rule pattern="([a-zA-Z_]\w*)(\s*)(:)(?!:)">
-        <bygroups>
-          <token type="NameLabel"/>
-          <token type="Text"/>
-          <token type="Punctuation"/>
-        </bygroups>
-      </rule>
-      <rule pattern="[a-zA-Z_]\w*">
-        <token type="Name"/>
-      </rule>
-    </state>
-    <state name="function">
-      <rule>
-        <include state="whitespace"/>
-      </rule>
-      <rule>
-        <include state="statements"/>
-      </rule>
-      <rule pattern=";">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="\{">
-        <token type="Punctuation"/>
-        <push/>
-      </rule>
-      <rule pattern="\}">
-        <token type="Punctuation"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="string">
-      <rule pattern="&#34;">
-        <token type="LiteralString"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="\\([\\abfnrtv&#34;\&#39;]|x[a-fA-F0-9]{2,4}|u[a-fA-F0-9]{4}|U[a-fA-F0-9]{8}|[0-7]{1,3})">
-        <token type="LiteralStringEscape"/>
-      </rule>
-      <rule pattern="[^\\&#34;\n]+">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="\\\n">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="\\">
-        <token type="LiteralString"/>
-      </rule>
-    </state>
-    <state name="if0">
-      <rule pattern="^\s*#if.*?(?&lt;!\\)\n">
-        <token type="CommentPreproc"/>
-        <push/>
-      </rule>
-      <rule pattern="^\s*#el(?:se|if).*\n">
-        <token type="CommentPreproc"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="^\s*#endif.*?(?&lt;!\\)\n">
-        <token type="CommentPreproc"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern=".*?\n">
-        <token type="Comment"/>
-      </rule>
-    </state>
-    <state name="root">
-      <rule>
-        <include state="whitespace"/>
-      </rule>
-      <rule pattern="((?:[\w*\s])+?(?:\s|[*]))([a-zA-Z_]\w*)(\s*\([^;]*?\))([^;{]*)(\{)">
-        <bygroups>
-          <usingself state="root"/>
-          <token type="NameFunction"/>
-          <usingself state="root"/>
-          <usingself state="root"/>
-          <token type="Punctuation"/>
-        </bygroups>
-        <push state="function"/>
-      </rule>
-      <rule pattern="((?:[\w*\s])+?(?:\s|[*]))([a-zA-Z_]\w*)(\s*\([^;]*?\))([^;]*)(;)">
-        <bygroups>
-          <usingself state="root"/>
-          <token type="NameFunction"/>
-          <usingself state="root"/>
-          <usingself state="root"/>
-          <token type="Punctuation"/>
-        </bygroups>
-      </rule>
-      <rule>
-        <push state="statement"/>
-      </rule>
-      <rule pattern="__(multiple_inheritance|virtual_inheritance|single_inheritance|interface|uuidof|super|event)\b">
-        <token type="KeywordReserved"/>
-      </rule>
-      <rule pattern="__(offload|blockingoffload|outer)\b">
-        <token type="KeywordPseudo"/>
-      </rule>
-    </state>
-    <state name="statement">
-      <rule>
-        <include state="whitespace"/>
-      </rule>
-      <rule>
-        <include state="statements"/>
-      </rule>
-      <rule pattern="[{]">
-        <token type="Punctuation"/>
-        <push state="root"/>
-      </rule>
-      <rule pattern="[;}]">
-        <token type="Punctuation"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/c.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/c.xml	(revision 67)
+++ 	(revision )
@@ -1,253 +1,0 @@
-<lexer>
-  <config>
-    <name>C</name>
-    <alias>c</alias>
-    <filename>*.c</filename>
-    <filename>*.h</filename>
-    <filename>*.idc</filename>
-    <filename>*.x[bp]m</filename>
-    <mime_type>text/x-chdr</mime_type>
-    <mime_type>text/x-csrc</mime_type>
-    <mime_type>image/x-xbitmap</mime_type>
-    <mime_type>image/x-xpixmap</mime_type>
-    <ensure_nl>true</ensure_nl>
-  </config>
-  <rules>
-    <state name="statement">
-      <rule>
-        <include state="whitespace"/>
-      </rule>
-      <rule>
-        <include state="statements"/>
-      </rule>
-      <rule pattern="[{}]">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern=";">
-        <token type="Punctuation"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="function">
-      <rule>
-        <include state="whitespace"/>
-      </rule>
-      <rule>
-        <include state="statements"/>
-      </rule>
-      <rule pattern=";">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="\{">
-        <token type="Punctuation"/>
-        <push/>
-      </rule>
-      <rule pattern="\}">
-        <token type="Punctuation"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="string">
-      <rule pattern="&#34;">
-        <token type="LiteralString"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="\\([\\abfnrtv&#34;\&#39;]|x[a-fA-F0-9]{2,4}|u[a-fA-F0-9]{4}|U[a-fA-F0-9]{8}|[0-7]{1,3})">
-        <token type="LiteralStringEscape"/>
-      </rule>
-      <rule pattern="[^\\&#34;\n]+">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="\\\n">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="\\">
-        <token type="LiteralString"/>
-      </rule>
-    </state>
-    <state name="macro">
-      <rule pattern="(include)(\s*(?:/[*].*?[*]/\s*)?)([^\n]+)">
-        <bygroups>
-          <token type="CommentPreproc"/>
-          <token type="Text"/>
-          <token type="CommentPreprocFile"/>
-        </bygroups>
-      </rule>
-      <rule pattern="[^/\n]+">
-        <token type="CommentPreproc"/>
-      </rule>
-      <rule pattern="/[*](.|\n)*?[*]/">
-        <token type="CommentMultiline"/>
-      </rule>
-      <rule pattern="//.*?\n">
-        <token type="CommentSingle"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="/">
-        <token type="CommentPreproc"/>
-      </rule>
-      <rule pattern="(?&lt;=\\)\n">
-        <token type="CommentPreproc"/>
-      </rule>
-      <rule pattern="\n">
-        <token type="CommentPreproc"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="if0">
-      <rule pattern="^\s*#if.*?(?&lt;!\\)\n">
-        <token type="CommentPreproc"/>
-        <push/>
-      </rule>
-      <rule pattern="^\s*#el(?:se|if).*\n">
-        <token type="CommentPreproc"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="^\s*#endif.*?(?&lt;!\\)\n">
-        <token type="CommentPreproc"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern=".*?\n">
-        <token type="Comment"/>
-      </rule>
-    </state>
-    <state name="whitespace">
-      <rule pattern="^#if\s+0">
-        <token type="CommentPreproc"/>
-        <push state="if0"/>
-      </rule>
-      <rule pattern="^#">
-        <token type="CommentPreproc"/>
-        <push state="macro"/>
-      </rule>
-      <rule pattern="^(\s*(?:/[*].*?[*]/\s*)?)(#if\s+0)">
-        <bygroups>
-          <usingself state="root"/>
-          <token type="CommentPreproc"/>
-        </bygroups>
-        <push state="if0"/>
-      </rule>
-      <rule pattern="^(\s*(?:/[*].*?[*]/\s*)?)(#)">
-        <bygroups>
-          <usingself state="root"/>
-          <token type="CommentPreproc"/>
-        </bygroups>
-        <push state="macro"/>
-      </rule>
-      <rule pattern="\n">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="\s+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="\\\n">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="//(\n|[\w\W]*?[^\\]\n)">
-        <token type="CommentSingle"/>
-      </rule>
-      <rule pattern="/(\\\n)?[*][\w\W]*?[*](\\\n)?/">
-        <token type="CommentMultiline"/>
-      </rule>
-      <rule pattern="/(\\\n)?[*][\w\W]*">
-        <token type="CommentMultiline"/>
-      </rule>
-    </state>
-    <state name="statements">
-      <rule pattern="(L?)(&#34;)">
-        <bygroups>
-          <token type="LiteralStringAffix"/>
-          <token type="LiteralString"/>
-        </bygroups>
-        <push state="string"/>
-      </rule>
-      <rule pattern="(L?)(&#39;)(\\.|\\[0-7]{1,3}|\\x[a-fA-F0-9]{1,2}|[^\\\&#39;\n])(&#39;)">
-        <bygroups>
-          <token type="LiteralStringAffix"/>
-          <token type="LiteralStringChar"/>
-          <token type="LiteralStringChar"/>
-          <token type="LiteralStringChar"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(\d+\.\d*|\.\d+|\d+)[eE][+-]?\d+[LlUu]*">
-        <token type="LiteralNumberFloat"/>
-      </rule>
-      <rule pattern="(\d+\.\d*|\.\d+|\d+[fF])[fF]?">
-        <token type="LiteralNumberFloat"/>
-      </rule>
-      <rule pattern="0x[0-9a-fA-F]+[LlUu]*">
-        <token type="LiteralNumberHex"/>
-      </rule>
-      <rule pattern="0[0-7]+[LlUu]*">
-        <token type="LiteralNumberOct"/>
-      </rule>
-      <rule pattern="\d+[LlUu]*">
-        <token type="LiteralNumberInteger"/>
-      </rule>
-      <rule pattern="\*/">
-        <token type="Error"/>
-      </rule>
-      <rule pattern="[~!%^&amp;*+=|?:&lt;&gt;/-]">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="[()\[\],.]">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="(restricted|volatile|continue|register|default|typedef|struct|extern|switch|sizeof|static|return|union|while|const|break|goto|enum|else|case|auto|for|asm|if|do)\b">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="(bool|int|long|float|short|double|char((8|16|32)_t)?|unsigned|signed|void|u?int(_fast|_least|)(8|16|32|64)_t)\b">
-        <token type="KeywordType"/>
-      </rule>
-      <rule pattern="(typename|__inline|restrict|_inline|thread|inline|naked)\b">
-        <token type="KeywordReserved"/>
-      </rule>
-      <rule pattern="(__m(128i|128d|128|64))\b">
-        <token type="KeywordReserved"/>
-      </rule>
-      <rule pattern="__(forceinline|identifier|unaligned|declspec|fastcall|finally|stdcall|wchar_t|assume|except|int32|cdecl|int16|leave|based|raise|int64|noop|int8|w64|try|asm)\b">
-        <token type="KeywordReserved"/>
-      </rule>
-      <rule pattern="(true|false|NULL)\b">
-        <token type="NameBuiltin"/>
-      </rule>
-      <rule pattern="([a-zA-Z_]\w*)(\s*)(:)(?!:)">
-        <bygroups>
-          <token type="NameLabel"/>
-          <token type="Text"/>
-          <token type="Punctuation"/>
-        </bygroups>
-      </rule>
-      <rule pattern="[a-zA-Z_]\w*">
-        <token type="Name"/>
-      </rule>
-    </state>
-    <state name="root">
-      <rule>
-        <include state="whitespace"/>
-      </rule>
-      <rule pattern="((?:[\w*\s])+?(?:\s|[*]))([a-zA-Z_]\w*)(\s*\([^;]*?\))([^;{]*)(\{)">
-        <bygroups>
-          <usingself state="root"/>
-          <token type="NameFunction"/>
-          <usingself state="root"/>
-          <usingself state="root"/>
-          <token type="Punctuation"/>
-        </bygroups>
-        <push state="function"/>
-      </rule>
-      <rule pattern="((?:[\w*\s])+?(?:\s|[*]))([a-zA-Z_]\w*)(\s*\([^;]*?\))([^;]*)(;)">
-        <bygroups>
-          <usingself state="root"/>
-          <token type="NameFunction"/>
-          <usingself state="root"/>
-          <usingself state="root"/>
-          <token type="Punctuation"/>
-        </bygroups>
-      </rule>
-      <rule>
-        <push state="statement"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/cap_n_proto.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/cap_n_proto.xml	(revision 67)
+++ 	(revision )
@@ -1,122 +1,0 @@
-<lexer>
-  <config>
-    <name>Cap&#39;n Proto</name>
-    <alias>capnp</alias>
-    <filename>*.capnp</filename>
-  </config>
-  <rules>
-    <state name="root">
-      <rule pattern="#.*?$">
-        <token type="CommentSingle"/>
-      </rule>
-      <rule pattern="@[0-9a-zA-Z]*">
-        <token type="NameDecorator"/>
-      </rule>
-      <rule pattern="=">
-        <token type="Literal"/>
-        <push state="expression"/>
-      </rule>
-      <rule pattern=":">
-        <token type="NameClass"/>
-        <push state="type"/>
-      </rule>
-      <rule pattern="\$">
-        <token type="NameAttribute"/>
-        <push state="annotation"/>
-      </rule>
-      <rule pattern="(struct|enum|interface|union|import|using|const|annotation|extends|in|of|on|as|with|from|fixed)\b">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="[\w.]+">
-        <token type="Name"/>
-      </rule>
-      <rule pattern="[^#@=:$\w]+">
-        <token type="Text"/>
-      </rule>
-    </state>
-    <state name="type">
-      <rule pattern="[^][=;,(){}$]+">
-        <token type="NameClass"/>
-      </rule>
-      <rule pattern="[[(]">
-        <token type="NameClass"/>
-        <push state="parentype"/>
-      </rule>
-      <rule>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="parentype">
-      <rule pattern="[^][;()]+">
-        <token type="NameClass"/>
-      </rule>
-      <rule pattern="[[(]">
-        <token type="NameClass"/>
-        <push/>
-      </rule>
-      <rule pattern="[])]">
-        <token type="NameClass"/>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="expression">
-      <rule pattern="[^][;,(){}$]+">
-        <token type="Literal"/>
-      </rule>
-      <rule pattern="[[(]">
-        <token type="Literal"/>
-        <push state="parenexp"/>
-      </rule>
-      <rule>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="parenexp">
-      <rule pattern="[^][;()]+">
-        <token type="Literal"/>
-      </rule>
-      <rule pattern="[[(]">
-        <token type="Literal"/>
-        <push/>
-      </rule>
-      <rule pattern="[])]">
-        <token type="Literal"/>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="annotation">
-      <rule pattern="[^][;,(){}=:]+">
-        <token type="NameAttribute"/>
-      </rule>
-      <rule pattern="[[(]">
-        <token type="NameAttribute"/>
-        <push state="annexp"/>
-      </rule>
-      <rule>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="annexp">
-      <rule pattern="[^][;()]+">
-        <token type="NameAttribute"/>
-      </rule>
-      <rule pattern="[[(]">
-        <token type="NameAttribute"/>
-        <push/>
-      </rule>
-      <rule pattern="[])]">
-        <token type="NameAttribute"/>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <pop depth="1"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/ceylon.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/ceylon.xml	(revision 67)
+++ 	(revision )
@@ -1,151 +1,0 @@
-<lexer>
-  <config>
-    <name>Ceylon</name>
-    <alias>ceylon</alias>
-    <filename>*.ceylon</filename>
-    <mime_type>text/x-ceylon</mime_type>
-    <dot_all>true</dot_all>
-  </config>
-  <rules>
-    <state name="class">
-      <rule pattern="[A-Za-z_]\w*">
-        <token type="NameClass"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="import">
-      <rule pattern="[a-z][\w.]*">
-        <token type="NameNamespace"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="comment">
-      <rule pattern="[^*/]">
-        <token type="CommentMultiline"/>
-      </rule>
-      <rule pattern="/\*">
-        <token type="CommentMultiline"/>
-        <push/>
-      </rule>
-      <rule pattern="\*/">
-        <token type="CommentMultiline"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="[*/]">
-        <token type="CommentMultiline"/>
-      </rule>
-    </state>
-    <state name="root">
-      <rule pattern="^(\s*(?:[a-zA-Z_][\w.\[\]]*\s+)+?)([a-zA-Z_]\w*)(\s*)(\()">
-        <bygroups>
-          <usingself state="root"/>
-          <token type="NameFunction"/>
-          <token type="Text"/>
-          <token type="Operator"/>
-        </bygroups>
-      </rule>
-      <rule pattern="[^\S\n]+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="//.*?\n">
-        <token type="CommentSingle"/>
-      </rule>
-      <rule pattern="/\*">
-        <token type="CommentMultiline"/>
-        <push state="comment"/>
-      </rule>
-      <rule pattern="(shared|abstract|formal|default|actual|variable|deprecated|small|late|literal|doc|by|see|throws|optional|license|tagged|final|native|annotation|sealed)\b">
-        <token type="NameDecorator"/>
-      </rule>
-      <rule pattern="(break|case|catch|continue|else|finally|for|in|if|return|switch|this|throw|try|while|is|exists|dynamic|nonempty|then|outer|assert|let)\b">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="(abstracts|extends|satisfies|super|given|of|out|assign)\b">
-        <token type="KeywordDeclaration"/>
-      </rule>
-      <rule pattern="(function|value|void|new)\b">
-        <token type="KeywordType"/>
-      </rule>
-      <rule pattern="(assembly|module|package)(\s+)">
-        <bygroups>
-          <token type="KeywordNamespace"/>
-          <token type="Text"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(true|false|null)\b">
-        <token type="KeywordConstant"/>
-      </rule>
-      <rule pattern="(class|interface|object|alias)(\s+)">
-        <bygroups>
-          <token type="KeywordDeclaration"/>
-          <token type="Text"/>
-        </bygroups>
-        <push state="class"/>
-      </rule>
-      <rule pattern="(import)(\s+)">
-        <bygroups>
-          <token type="KeywordNamespace"/>
-          <token type="Text"/>
-        </bygroups>
-        <push state="import"/>
-      </rule>
-      <rule pattern="&#34;(\\\\|\\&#34;|[^&#34;])*&#34;">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="&#39;\\.&#39;|&#39;[^\\]&#39;|&#39;\\\{#[0-9a-fA-F]{4}\}&#39;">
-        <token type="LiteralStringChar"/>
-      </rule>
-      <rule pattern="&#34;.*``.*``.*&#34;">
-        <token type="LiteralStringInterpol"/>
-      </rule>
-      <rule pattern="(\.)([a-z_]\w*)">
-        <bygroups>
-          <token type="Operator"/>
-          <token type="NameAttribute"/>
-        </bygroups>
-      </rule>
-      <rule pattern="[a-zA-Z_]\w*:">
-        <token type="NameLabel"/>
-      </rule>
-      <rule pattern="[a-zA-Z_]\w*">
-        <token type="Name"/>
-      </rule>
-      <rule pattern="[~^*!%&amp;\[\](){}&lt;&gt;|+=:;,./?-]">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="\d{1,3}(_\d{3})+\.\d{1,3}(_\d{3})+[kMGTPmunpf]?">
-        <token type="LiteralNumberFloat"/>
-      </rule>
-      <rule pattern="\d{1,3}(_\d{3})+\.[0-9]+([eE][+-]?[0-9]+)?[kMGTPmunpf]?">
-        <token type="LiteralNumberFloat"/>
-      </rule>
-      <rule pattern="[0-9][0-9]*\.\d{1,3}(_\d{3})+[kMGTPmunpf]?">
-        <token type="LiteralNumberFloat"/>
-      </rule>
-      <rule pattern="[0-9][0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[kMGTPmunpf]?">
-        <token type="LiteralNumberFloat"/>
-      </rule>
-      <rule pattern="#([0-9a-fA-F]{4})(_[0-9a-fA-F]{4})+">
-        <token type="LiteralNumberHex"/>
-      </rule>
-      <rule pattern="#[0-9a-fA-F]+">
-        <token type="LiteralNumberHex"/>
-      </rule>
-      <rule pattern="\$([01]{4})(_[01]{4})+">
-        <token type="LiteralNumberBin"/>
-      </rule>
-      <rule pattern="\$[01]+">
-        <token type="LiteralNumberBin"/>
-      </rule>
-      <rule pattern="\d{1,3}(_\d{3})+[kMGTP]?">
-        <token type="LiteralNumberInteger"/>
-      </rule>
-      <rule pattern="[0-9]+[kMGTP]?">
-        <token type="LiteralNumberInteger"/>
-      </rule>
-      <rule pattern="\n">
-        <token type="Text"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/cfengine3.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/cfengine3.xml	(revision 67)
+++ 	(revision )
@@ -1,194 +1,0 @@
-<lexer>
-  <config>
-    <name>CFEngine3</name>
-    <alias>cfengine3</alias>
-    <alias>cf3</alias>
-    <filename>*.cf</filename>
-  </config>
-  <rules>
-    <state name="interpol">
-      <rule pattern="\$[{(]">
-        <token type="LiteralStringInterpol"/>
-        <push/>
-      </rule>
-      <rule pattern="[})]">
-        <token type="LiteralStringInterpol"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="[^${()}]+">
-        <token type="LiteralStringInterpol"/>
-      </rule>
-    </state>
-    <state name="arglist">
-      <rule pattern="\)">
-        <token type="Punctuation"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern=",">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="\w+">
-        <token type="NameVariable"/>
-      </rule>
-      <rule pattern="\s+">
-        <token type="Text"/>
-      </rule>
-    </state>
-    <state name="root">
-      <rule pattern="#.*?\n">
-        <token type="Comment"/>
-      </rule>
-      <rule pattern="@.*?\n">
-        <token type="CommentPreproc"/>
-      </rule>
-      <rule pattern="(body)(\s+)(\S+)(\s+)(control)">
-        <bygroups>
-          <token type="Keyword"/>
-          <token type="Text"/>
-          <token type="Keyword"/>
-          <token type="Text"/>
-          <token type="Keyword"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(body|bundle|promise)(\s+)(\S+)(\s+)(\w+)(\()">
-        <bygroups>
-          <token type="Keyword"/>
-          <token type="Text"/>
-          <token type="Keyword"/>
-          <token type="Text"/>
-          <token type="NameFunction"/>
-          <token type="Punctuation"/>
-        </bygroups>
-        <push state="arglist"/>
-      </rule>
-      <rule pattern="(body|bundle|promise)(\s+)(\S+)(\s+)(\w+)">
-        <bygroups>
-          <token type="Keyword"/>
-          <token type="Text"/>
-          <token type="Keyword"/>
-          <token type="Text"/>
-          <token type="NameFunction"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(\S+)(\s*)(=&gt;)(\s*)">
-        <bygroups>
-          <token type="KeywordReserved"/>
-          <token type="Text"/>
-          <token type="Operator"/>
-          <token type="Text"/>
-        </bygroups>
-      </rule>
-      <rule pattern="&#34;">
-        <token type="LiteralString"/>
-        <push state="doublequotestring"/>
-      </rule>
-      <rule pattern="&#39;">
-        <token type="LiteralString"/>
-        <push state="singlequotestring"/>
-      </rule>
-      <rule pattern="&#96;">
-        <token type="LiteralString"/>
-        <push state="backtickstring"/>
-      </rule>
-      <rule pattern="(\w+)(\()">
-        <bygroups>
-          <token type="NameFunction"/>
-          <token type="Punctuation"/>
-        </bygroups>
-      </rule>
-      <rule pattern="([\w.!&amp;|()]+)(::)">
-        <bygroups>
-          <token type="NameClass"/>
-          <token type="Punctuation"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(\w+)(:)">
-        <bygroups>
-          <token type="KeywordDeclaration"/>
-          <token type="Punctuation"/>
-        </bygroups>
-      </rule>
-      <rule pattern="@[{(][^)}]+[})]">
-        <token type="NameVariable"/>
-      </rule>
-      <rule pattern="[(){},;]">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="=&gt;">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="-&gt;">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="\d+\.\d+">
-        <token type="LiteralNumberFloat"/>
-      </rule>
-      <rule pattern="\d+">
-        <token type="LiteralNumberInteger"/>
-      </rule>
-      <rule pattern="\w+">
-        <token type="NameFunction"/>
-      </rule>
-      <rule pattern="\s+">
-        <token type="Text"/>
-      </rule>
-    </state>
-    <state name="doublequotestring">
-      <rule pattern="\$[{(]">
-        <token type="LiteralStringInterpol"/>
-        <push state="interpol"/>
-      </rule>
-      <rule pattern="\\.">
-        <token type="LiteralStringEscape"/>
-      </rule>
-      <rule pattern="&#34;">
-        <token type="LiteralString"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="\n">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern=".">
-        <token type="LiteralString"/>
-      </rule>
-    </state>
-    <state name="singlequotestring">
-      <rule pattern="\$[{(]">
-        <token type="LiteralStringInterpol"/>
-        <push state="interpol"/>
-      </rule>
-      <rule pattern="\\.">
-        <token type="LiteralStringEscape"/>
-      </rule>
-      <rule pattern="&#39;">
-        <token type="LiteralString"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="\n">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern=".">
-        <token type="LiteralString"/>
-      </rule>
-    </state>
-    <state name="backtickstring">
-      <rule pattern="\$[{(]">
-        <token type="LiteralStringInterpol"/>
-        <push state="interpol"/>
-      </rule>
-      <rule pattern="\\.">
-        <token type="LiteralStringEscape"/>
-      </rule>
-      <rule pattern="&#96;">
-        <token type="LiteralString"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="\n">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern=".">
-        <token type="LiteralString"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/cfstatement.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/cfstatement.xml	(revision 67)
+++ 	(revision )
@@ -1,92 +1,0 @@
-<lexer>
-  <config>
-    <name>cfstatement</name>
-    <alias>cfs</alias>
-    <case_insensitive>true</case_insensitive>
-    <not_multiline>true</not_multiline>
-  </config>
-  <rules>
-    <state name="root">
-      <rule pattern="//.*?\n">
-        <token type="CommentSingle"/>
-      </rule>
-      <rule pattern="/\*(?:.|\n)*?\*/">
-        <token type="CommentMultiline"/>
-      </rule>
-      <rule pattern="\+\+|--">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="[-+*/^&amp;=!]">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="&lt;=|&gt;=|&lt;|&gt;|==">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="mod\b">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="(eq|lt|gt|lte|gte|not|is|and|or)\b">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="\|\||&amp;&amp;">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="\?">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="&#34;">
-        <token type="LiteralStringDouble"/>
-        <push state="string"/>
-      </rule>
-      <rule pattern="&#39;.*?&#39;">
-        <token type="LiteralStringSingle"/>
-      </rule>
-      <rule pattern="\d+">
-        <token type="LiteralNumber"/>
-      </rule>
-      <rule pattern="(if|else|len|var|xml|default|break|switch|component|property|function|do|try|catch|in|continue|for|return|while|required|any|array|binary|boolean|component|date|guid|numeric|query|string|struct|uuid|case)\b">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="(true|false|null)\b">
-        <token type="KeywordConstant"/>
-      </rule>
-      <rule pattern="(application|session|client|cookie|super|this|variables|arguments)\b">
-        <token type="NameConstant"/>
-      </rule>
-      <rule pattern="([a-z_$][\w.]*)(\s*)(\()">
-        <bygroups>
-          <token type="NameFunction"/>
-          <token type="Text"/>
-          <token type="Punctuation"/>
-        </bygroups>
-      </rule>
-      <rule pattern="[a-z_$][\w.]*">
-        <token type="NameVariable"/>
-      </rule>
-      <rule pattern="[()\[\]{};:,.\\]">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="\s+">
-        <token type="Text"/>
-      </rule>
-    </state>
-    <state name="string">
-      <rule pattern="&#34;&#34;">
-        <token type="LiteralStringDouble"/>
-      </rule>
-      <rule pattern="#.+?#">
-        <token type="LiteralStringInterpol"/>
-      </rule>
-      <rule pattern="[^&#34;#]+">
-        <token type="LiteralStringDouble"/>
-      </rule>
-      <rule pattern="#">
-        <token type="LiteralStringDouble"/>
-      </rule>
-      <rule pattern="&#34;">
-        <token type="LiteralStringDouble"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/chaiscript.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/chaiscript.xml	(revision 67)
+++ 	(revision )
@@ -1,134 +1,0 @@
-<lexer>
-  <config>
-    <name>ChaiScript</name>
-    <alias>chai</alias>
-    <alias>chaiscript</alias>
-    <filename>*.chai</filename>
-    <mime_type>text/x-chaiscript</mime_type>
-    <mime_type>application/x-chaiscript</mime_type>
-    <dot_all>true</dot_all>
-  </config>
-  <rules>
-    <state name="dqstring">
-      <rule pattern="\$\{[^&#34;}]+?\}">
-        <token type="LiteralStringInterpol"/>
-      </rule>
-      <rule pattern="\$">
-        <token type="LiteralStringDouble"/>
-      </rule>
-      <rule pattern="\\\\">
-        <token type="LiteralStringDouble"/>
-      </rule>
-      <rule pattern="\\&#34;">
-        <token type="LiteralStringDouble"/>
-      </rule>
-      <rule pattern="[^\\&#34;$]+">
-        <token type="LiteralStringDouble"/>
-      </rule>
-      <rule pattern="&#34;">
-        <token type="LiteralStringDouble"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="commentsandwhitespace">
-      <rule pattern="\s+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="//.*?\n">
-        <token type="CommentSingle"/>
-      </rule>
-      <rule pattern="/\*.*?\*/">
-        <token type="CommentMultiline"/>
-      </rule>
-      <rule pattern="^\#.*?\n">
-        <token type="CommentSingle"/>
-      </rule>
-    </state>
-    <state name="slashstartsregex">
-      <rule>
-        <include state="commentsandwhitespace"/>
-      </rule>
-      <rule pattern="/(\\.|[^[/\\\n]|\[(\\.|[^\]\\\n])*])+/([gim]+\b|\B)">
-        <token type="LiteralStringRegex"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="(?=/)">
-        <token type="Text"/>
-        <push state="#pop" state="badregex"/>
-      </rule>
-      <rule>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="badregex">
-      <rule pattern="\n">
-        <token type="Text"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="root">
-      <rule>
-        <include state="commentsandwhitespace"/>
-      </rule>
-      <rule pattern="\n">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="[^\S\n]+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="\+\+|--|~|&amp;&amp;|\?|:|\|\||\\(?=\n)|\.\.(&lt;&lt;|&gt;&gt;&gt;?|==?|!=?|[-&lt;&gt;+*%&amp;|^/])=?">
-        <token type="Operator"/>
-        <push state="slashstartsregex"/>
-      </rule>
-      <rule pattern="[{(\[;,]">
-        <token type="Punctuation"/>
-        <push state="slashstartsregex"/>
-      </rule>
-      <rule pattern="[})\].]">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="[=+\-*/]">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="(for|in|while|do|break|return|continue|if|else|throw|try|catch)\b">
-        <token type="Keyword"/>
-        <push state="slashstartsregex"/>
-      </rule>
-      <rule pattern="(var)\b">
-        <token type="KeywordDeclaration"/>
-        <push state="slashstartsregex"/>
-      </rule>
-      <rule pattern="(attr|def|fun)\b">
-        <token type="KeywordReserved"/>
-      </rule>
-      <rule pattern="(true|false)\b">
-        <token type="KeywordConstant"/>
-      </rule>
-      <rule pattern="(eval|throw)\b">
-        <token type="NameBuiltin"/>
-      </rule>
-      <rule pattern="`\S+`">
-        <token type="NameBuiltin"/>
-      </rule>
-      <rule pattern="[$a-zA-Z_]\w*">
-        <token type="NameOther"/>
-      </rule>
-      <rule pattern="[0-9][0-9]*\.[0-9]+([eE][0-9]+)?[fd]?">
-        <token type="LiteralNumberFloat"/>
-      </rule>
-      <rule pattern="0x[0-9a-fA-F]+">
-        <token type="LiteralNumberHex"/>
-      </rule>
-      <rule pattern="[0-9]+">
-        <token type="LiteralNumberInteger"/>
-      </rule>
-      <rule pattern="&#34;">
-        <token type="LiteralStringDouble"/>
-        <push state="dqstring"/>
-      </rule>
-      <rule pattern="&#39;(\\\\|\\&#39;|[^&#39;])*&#39;">
-        <token type="LiteralStringSingle"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/clojure.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/clojure.xml	(revision 67)
+++ 	(revision )
@@ -1,68 +1,0 @@
-<lexer>
-  <config>
-    <name>Clojure</name>
-    <alias>clojure</alias>
-    <alias>clj</alias>
-    <filename>*.clj</filename>
-    <mime_type>text/x-clojure</mime_type>
-    <mime_type>application/x-clojure</mime_type>
-  </config>
-  <rules>
-    <state name="root">
-      <rule pattern=";.*$">
-        <token type="CommentSingle"/>
-      </rule>
-      <rule pattern="[,\s]+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="-?\d+\.\d+">
-        <token type="LiteralNumberFloat"/>
-      </rule>
-      <rule pattern="-?\d+">
-        <token type="LiteralNumberInteger"/>
-      </rule>
-      <rule pattern="0x-?[abcdef\d]+">
-        <token type="LiteralNumberHex"/>
-      </rule>
-      <rule pattern="&#34;(\\\\|\\&#34;|[^&#34;])*&#34;">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="&#39;(?!#)[\w!$%*+&lt;=&gt;?/.#-]+">
-        <token type="LiteralStringSymbol"/>
-      </rule>
-      <rule pattern="\\(.|[a-z]+)">
-        <token type="LiteralStringChar"/>
-      </rule>
-      <rule pattern="::?#?(?!#)[\w!$%*+&lt;=&gt;?/.#-]+">
-        <token type="LiteralStringSymbol"/>
-      </rule>
-      <rule pattern="~@|[`\&#39;#^~&amp;@]">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="(quote|loop|new|var|let|def|if|do|fn|\.) ">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="(definterface|defprotocol|defproject|defstruct|definline|defmethod|defrecord|defmulti|defmacro|defonce|declare|deftype|defn-|def-|defn|ns) ">
-        <token type="KeywordDeclaration"/>
-      </rule>
-      <rule pattern="(clear-agent-errors|construct-proxy|bit-shift-right|get-proxy-class|special-symbol\?|with-local-vars|proxy-mappings|bit-shift-left|sorted-map-by|macroexpand-1|remove-method|create-struct|resultset-seq|inspect-table|inspect-tree|update-proxy|aset-boolean|agent-errors|with-out-str|insert-child|append-child|intersection|insert-right|to-array-2d|rename-keys|println-str|macroexpand|aset-double|select-keys|insert-left|aset-float|aset-short|interleave|re-pattern|make-array|identical\?|take-while|into-array|re-matches|re-matcher|complement|vector-zip|drop-while|when-first|map-invert|sorted-map|ns-resolve|difference|sorted-set|merge-with|ns-publics|split-with|ns-interns|ns-imports|constantly|struct-map|comparator|not-every\?|aset-long|print-str|re-groups|lazy-cons|remove-ns|namespace|await-for|contains\?|array-map|create-ns|make-node|with-meta|with-open|instance\?|ns-refers|aset-byte|aset-char|load-file|read-line|replicate|send-off|aset-int|distinct|not-any\?|take-nth|tree-seq|split-at|to-array|ns-unmap|identity|find-doc|find-var|hash-set|when-not|children|when-let|lazy-cat|hash-map|line-seq|rand-int|keyword\?|file-seq|accessor|replace|bit-not|find-ns|resolve|bit-and|println|binding|locking|vector\?|partial|nthrest|max-key|bit-xor|dotimes|ref-set|xml-seq|boolean|var-get|seq-zip|sort-by|branch\?|butlast|symbol\?|project|min-key|ns-name|comment|string\?|iterate|commute|alength|xml-zip|keyword|newline|re-find|reverse|var-set|prn-str|bit-or|import|re-seq|rights|assert|reduce|remove|gensym|rename|filter|ffirst|if-let|false\?|pr-str|every\?|vector|mapcat|ensure|rfirst|concat|second|double|select|dosync|symbol|subvec|if-not|ns-map|struct|zipper|zipmap|all-ns|dissoc|repeat|assoc|cycle|class|deref|zero\?|slurp|short|dorun|doseq|merge|memfn|agent|rrest|count|parse|right|float|flush|alter|fnseq|frest|doall|print|refer|in-ns|apply|union|await|list\*|proxy|lefts|true\?|index|first|range|left|keys|aset|join|into|last|read|rand|list|load|long|loop|conj|test|vals|pos\?|bean|peek|subs|path|time|find|rest|eval|end\?|edit|map\?|drop|root|aget|rseq|down|doto|meta|send|when|byte|take|seq\?|sync|name|neg\?|some|sort|cast|char|disj|next|not=|nil\?|node|comp|cond|cons|quot|var\?|max|new|rem|set|doc|seq|for|get|ref|inc|int|key|not|prn|min|map|val|nth|dec|pop|and|str|pr|\.\.|up|&gt;=|-&gt;|==|&lt;=|or|=|/|&gt;|-|\*|\+|&lt;) ">
-        <token type="NameBuiltin"/>
-      </rule>
-      <rule pattern="(?&lt;=\()(?!#)[\w!$%*+&lt;=&gt;?/.#-]+">
-        <token type="NameFunction"/>
-      </rule>
-      <rule pattern="(?!#)[\w!$%*+&lt;=&gt;?/.#-]+">
-        <token type="NameVariable"/>
-      </rule>
-      <rule pattern="(\[|\])">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="(\{|\})">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="(\(|\))">
-        <token type="Punctuation"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/cmake.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/cmake.xml	(revision 67)
+++ 	(revision )
@@ -1,90 +1,0 @@
-<lexer>
-  <config>
-    <name>CMake</name>
-    <alias>cmake</alias>
-    <filename>*.cmake</filename>
-    <filename>CMakeLists.txt</filename>
-    <mime_type>text/x-cmake</mime_type>
-  </config>
-  <rules>
-    <state name="root">
-      <rule pattern="\b(\w+)([ \t]*)(\()">
-        <bygroups>
-          <token type="NameBuiltin"/>
-          <token type="Text"/>
-          <token type="Punctuation"/>
-        </bygroups>
-        <push state="args"/>
-      </rule>
-      <rule>
-        <include state="keywords"/>
-      </rule>
-      <rule>
-        <include state="ws"/>
-      </rule>
-    </state>
-    <state name="args">
-      <rule pattern="\(">
-        <token type="Punctuation"/>
-        <push/>
-      </rule>
-      <rule pattern="\)">
-        <token type="Punctuation"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="(\$\{)(.+?)(\})">
-        <bygroups>
-          <token type="Operator"/>
-          <token type="NameVariable"/>
-          <token type="Operator"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(\$ENV\{)(.+?)(\})">
-        <bygroups>
-          <token type="Operator"/>
-          <token type="NameVariable"/>
-          <token type="Operator"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(\$&lt;)(.+?)(&gt;)">
-        <bygroups>
-          <token type="Operator"/>
-          <token type="NameVariable"/>
-          <token type="Operator"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(?s)&#34;.*?&#34;">
-        <token type="LiteralStringDouble"/>
-      </rule>
-      <rule pattern="\\\S+">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="[^)$&#34;# \t\n]+">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="\n">
-        <token type="Text"/>
-      </rule>
-      <rule>
-        <include state="keywords"/>
-      </rule>
-      <rule>
-        <include state="ws"/>
-      </rule>
-    </state>
-    <state name="string"/>
-    <state name="keywords">
-      <rule pattern="\b(WIN32|UNIX|APPLE|CYGWIN|BORLAND|MINGW|MSVC|MSVC_IDE|MSVC60|MSVC70|MSVC71|MSVC80|MSVC90)\b">
-        <token type="Keyword"/>
-      </rule>
-    </state>
-    <state name="ws">
-      <rule pattern="[ \t]+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="#.*\n">
-        <token type="Comment"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/cobol.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/cobol.xml	(revision 67)
+++ 	(revision )
@@ -1,90 +1,0 @@
-<lexer>
-  <config>
-    <name>COBOL</name>
-    <alias>cobol</alias>
-    <filename>*.cob</filename>
-    <filename>*.COB</filename>
-    <filename>*.cpy</filename>
-    <filename>*.CPY</filename>
-    <mime_type>text/x-cobol</mime_type>
-    <case_insensitive>true</case_insensitive>
-  </config>
-  <rules>
-    <state name="strings">
-      <rule pattern="&#34;[^&#34;\n]*(&#34;|\n)">
-        <token type="LiteralStringDouble"/>
-      </rule>
-      <rule pattern="&#39;[^&#39;\n]*(&#39;|\n)">
-        <token type="LiteralStringSingle"/>
-      </rule>
-    </state>
-    <state name="nums">
-      <rule pattern="\d+(\s*|\.$|$)">
-        <token type="LiteralNumberInteger"/>
-      </rule>
-      <rule pattern="[+-]?\d*\.\d+(E[-+]?\d+)?">
-        <token type="LiteralNumberFloat"/>
-      </rule>
-      <rule pattern="[+-]?\d+\.\d*(E[-+]?\d+)?">
-        <token type="LiteralNumberFloat"/>
-      </rule>
-    </state>
-    <state name="root">
-      <rule>
-        <include state="comment"/>
-      </rule>
-      <rule>
-        <include state="strings"/>
-      </rule>
-      <rule>
-        <include state="core"/>
-      </rule>
-      <rule>
-        <include state="nums"/>
-      </rule>
-      <rule pattern="[a-z0-9]([\w\-]*[a-z0-9]+)?">
-        <token type="NameVariable"/>
-      </rule>
-      <rule pattern="[ \t]+">
-        <token type="Text"/>
-      </rule>
-    </state>
-    <state name="comment">
-      <rule pattern="(^.{6}[*/].*\n|^.{6}|\*&gt;.*\n)">
-        <token type="Comment"/>
-      </rule>
-    </state>
-    <state name="core">
-      <rule pattern="(^|(?&lt;=[^\w\-]))(ALL\s+)?((ZEROES)|(HIGH-VALUE|LOW-VALUE|QUOTE|SPACE|ZERO)(S)?)\s*($|(?=[^\w\-]))">
-        <token type="NameConstant"/>
-      </rule>
-      <rule pattern="(^|(?&lt;=[^\w\-]))(WORKING-STORAGE|IDENTIFICATION|LOCAL-STORAGE|CONFIGURATION|END-EVALUATE|FILE-CONTROL|END-UNSTRING|END-SUBTRACT|END-MULTIPLY|INPUT-OUTPUT|END-PERFORM|END-DISPLAY|END-OF-PAGE|END-COMPUTE|ENVIRONMENT|I-O-CONTROL|END-REWRITE|END-RETURN|INITIALIZE|END-ACCEPT|END-DIVIDE|PROGRAM-ID|END-STRING|END-DELETE|END-SEARCH|END-WRITE|PROCEDURE|END-START|TERMINATE|END-READ|MULTIPLY|CONTINUE|SUPPRESS|SUBTRACT|INITIATE|UNSTRING|DIVISION|VALIDATE|END-CALL|ALLOCATE|GENERATE|EVALUATE|PERFORM|FOREVER|LINKAGE|END-ADD|REWRITE|INSPECT|SECTION|RELEASE|COMPUTE|DISPLAY|END-IF|GOBACK|INVOKE|CANCEL|UNLOCK|SCREEN|SEARCH|DELETE|STRING|DIVIDE|ACCEPT|RETURN|RESUME|START|RAISE|MERGE|CLOSE|WRITE|FILE|STOP|FREE|READ|ELSE|THEN|SORT|EXIT|OPEN|CALL|MOVE|DATA|END|SET|ADD|USE|GO|FD|SD|IF)\s*($|(?=[^\w\-]))">
-        <token type="KeywordReserved"/>
-      </rule>
-      <rule pattern="(^|(?&lt;=[^\w\-]))(ALPHANUMERIC-EDITED|PROCEDURE-POINTER|ENVIRONMENT-VALUE|ENVIRONMENT-NAME|ALPHABETIC-UPPER|FOREGROUND-COLOR|ALPHABETIC-LOWER|BACKGROUND-COLOR|OBJECT-COMPUTER|SOURCE-COMPUTER|PROGRAM-POINTER|ARGUMENT-NUMBER|NATIONAL-EDITED|NUMERIC-EDITED|LINAGE-COUNTER|UNSIGNED-SHORT|ARGUMENT-VALUE|PACKED-DECIMAL|SPECIAL-NAMES|AUTOTERMINATE|DECIMAL-POINT|CORRESPONDING|UNSIGNED-LONG|SEGMENT-LIMIT|REVERSE-VIDEO|SIGNED-SHORT|SYNCHRONIZED|ALPHANUMERIC|ALTERNATEANY|UNSIGNED-INT|ORGANIZATION|DECLARATIVES|COMMAND-LINE|FUNCTION-ID|SIGNED-LONG|INITIALIZED|FLOAT-SHORT|BYTE-LENGTH|DAY-OF-WEEK|DESCENDING|CHARACTERS|SEQUENTIAL|REPOSITORY|SIGNED-INT|SORT-MERGE|DUPLICATES|STANDARD-1|STANDARD-2|CONVERTING|FLOAT-LONG|ALPHABETIC|PROCEDURES|RECORDING|HIGHLIGHT|ADVANCING|RETURNING|REPLACING|UNDERLINE|TRANSFORM|REMAINDER|INTRINSIC|JUSTIFIED|REFERENCE|REDEFINES|EXCLUSIVE|RECURSIVE|EXCEPTION|COLLATING|ASCENDING|REPORTING|AUTO-SKIP|DEBUGGING|AUTOMATIC|CHARACTER|PARAGRAPH|DELIMITED|DELIMITER|DEPENDING|PREVIOUS|POSITIVE|POSITION|CHAINING|STANDARD|FUNCTION|OVERFLOW|PRINTING|CODE-SET|SEPARATE|OPTIONAL|SYMBOLIC|SEQUENCE|NEGATIVE|TALLYING|NATIONAL|REQUIRED|CURRENCY|MULTIPLE|TRAILING|LOWLIGHT|OVERLINE|SENTENCE|RELATIVE|ROLLBACK|CONTROLS|UNSIGNED|INDICATE|IGNORING|ALPHABET|CONTAINS|CONSTANT|EXTERNAL|YYYYMMDD|FILE-ID|CONTROL|RENAMES|REMOVAL|HEADING|YYYYDDD|RESERVE|VARYING|RECORDS|REPORTS|COLUMNS|PROGRAM|INDEXED|FOOTING|INITIAL|PROCEED|ROUNDED|DEFAULT|PRESENT|INVALID|POINTER|SHARING|PADDING|DYNAMIC|OMITTED|ADDRESS|LEADING|CONTENT|NUMBERS|THROUGH|NUMERIC|PRINTER|SELECT|COMMON|REPORT|LOCALE|ACCESS|LINAGE|MANUAL|MEMORY|LIMITS|FILLER|EXTEND|ESCAPE|GIVING|NATIVE|GLOBAL|COMMIT|ASSIGN|STATUS|OUTPUT|NUMBER|LENGTH|REWIND|CURSOR|BEFORE|OCCURS|SOURCE|IGNORE|VALUES|RECORD|BOTTOM|SIGNED|RANDOM|QUOTES|PROMPT|SCROLL|EBCDIC|FORMAT|SECURE|DETAIL|UPDATE|COLUMN|TIMES|USAGE|CLASS|FINAL|FIRST|USING|CYCLE|UNTIL|MINUS|INPUT|FIXED|INDEX|VALUE|OTHER|QUOTE|ENTRY|ORDER|RIGHT|BLOCK|LABEL|BLINK|BASED|AFTER|NULLS|COUNT|AREAS|WORDS|GROUP|ERASE|LIMIT|LINES|ALTER|COMMA|ERROR|BLANK|THRU|CORR|REEL|FROM|WITH|DATE|WHEN|CODE|SAME|WAIT|COPY|DISK|PLUS|COLS|INTO|UPON|DOWN|PAGE|SIGN|JUST|ONLY|LAST|ALSO|SIZE|UNIT|LINE|BELL|TYPE|BEEP|LOCK|AUTO|NULL|AREA|MODE|SYNC|TIME|NEXT|TAPE|TEST|FULL|LEFT|EOL|CRT|I-O|TOP|DAY|EOS|EOP|FOR|ARE|OFF|ALL|COL|SUM|KEY|RUN|UP|ON|IS|IN|BY|OF|ID|DE|AT|RD|TO|NO|AS)\s*($|(?=[^\w\-]))">
-        <token type="KeywordPseudo"/>
-      </rule>
-      <rule pattern="(^|(?&lt;=[^\w\-]))(REPRESENTS-NOT-A-NUMBER|FUNCTION-POINTER|FLOAT-DECIMAL-34|FLOAT-DECIMAL-16|ENTRY-CONVENTION|EXCEPTION-OBJECT|OBJECT-REFERENCE|FLOAT-BINARY-34|FLOAT-BINARY-16|VALIDATE-STATUS|FLOAT-EXTENDED|CLASSIFICATION|FLOAT-BINARY-7|SYSTEM-DEFAULT|COMMUNICATION|PAGE-COUNTER|USER-DEFAULT|LINE-COUNTER|ACTIVE-CLASS|DATA-POINTER|INTERFACE-ID|DESTINATION|GROUP-USAGE|LC_MESSAGES|SUB-QUEUE-3|SUB-QUEUE-2|SUB-QUEUE-1|END-RECEIVE|LC_MONETARY|VAL-STATUS|LC_NUMERIC|IMPLEMENTS|LC_COLLATE|ARITHMETIC|STATEMENT|METHOD-ID|INTERFACE|ATTRIBUTE|PROTOTYPE|CONDITION|UNIVERSAL|LC_CTYPE|VALIDATE|PROPERTY|TERMINAL|INFINITY|INHERITS|CLASS-ID|RELATION|OVERRIDE|ANYCASE|DISABLE|ALIGNED|REPLACE|RAISING|EXPANDS|FACTORY|TYPEDEF|MESSAGE|RECEIVE|BOOLEAN|SECONDS|SOURCES|SEGMENT|LC_TIME|OPTIONS|METHOD|UTF-16|OBJECT|NORMAL|NESTED|CENTER|LC_ALL|RESUME|INVOKE|ENABLE|STRONG|FORMAT|SYMBOL|B-XOR|QUEUE|RESET|PURGE|RETRY|B-AND|VALID|B-NOT|UTF-8|SUPER|RAISE|UCS-4|TABLE|CHAIN|NONE|B-OR|STEP|SEND|SELF|TEXT|BIT|EMI|ESI|EGI|GET|CD|CF|EC|EO|PF|PH|RH|RF|CH)\s*($|(?=[^\w\-]))">
-        <token type="Error"/>
-      </rule>
-      <rule pattern="(^|(?&lt;=[^\w\-]))(PIC\s+.+?(?=(\s|\.\s))|PICTURE\s+.+?(?=(\s|\.\s))|(COMPUTATIONAL)(-[1-5X])?|(COMP)(-[1-5X])?|BINARY-C-LONG|BINARY-CHAR|BINARY-DOUBLE|BINARY-LONG|BINARY-SHORT|BINARY)\s*($|(?=[^\w\-]))">
-        <token type="KeywordType"/>
-      </rule>
-      <rule pattern="(\*\*|\*|\+|-|/|&lt;=|&gt;=|&lt;|&gt;|==|/=|=)">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="([(),;:&amp;%.])">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="(^|(?&lt;=[^\w\-]))(ABS|ACOS|ANNUITY|ASIN|ATAN|BYTE-LENGTH|CHAR|COMBINED-DATETIME|CONCATENATE|COS|CURRENT-DATE|DATE-OF-INTEGER|DATE-TO-YYYYMMDD|DAY-OF-INTEGER|DAY-TO-YYYYDDD|EXCEPTION-(?:FILE|LOCATION|STATEMENT|STATUS)|EXP10|EXP|E|FACTORIAL|FRACTION-PART|INTEGER-OF-(?:DATE|DAY|PART)|INTEGER|LENGTH|LOCALE-(?:DATE|TIME(?:-FROM-SECONDS)?)|LOG(?:10)?|LOWER-CASE|MAX|MEAN|MEDIAN|MIDRANGE|MIN|MOD|NUMVAL(?:-C)?|ORD(?:-MAX|-MIN)?|PI|PRESENT-VALUE|RANDOM|RANGE|REM|REVERSE|SECONDS-FROM-FORMATTED-TIME|SECONDS-PAST-MIDNIGHT|SIGN|SIN|SQRT|STANDARD-DEVIATION|STORED-CHAR-LENGTH|SUBSTITUTE(?:-CASE)?|SUM|TAN|TEST-DATE-YYYYMMDD|TEST-DAY-YYYYDDD|TRIM|UPPER-CASE|VARIANCE|WHEN-COMPILED|YEAR-TO-YYYY)\s*($|(?=[^\w\-]))">
-        <token type="NameFunction"/>
-      </rule>
-      <rule pattern="(^|(?&lt;=[^\w\-]))(true|false)\s*($|(?=[^\w\-]))">
-        <token type="NameBuiltin"/>
-      </rule>
-      <rule pattern="(^|(?&lt;=[^\w\-]))(equal|equals|ne|lt|le|gt|ge|greater|less|than|not|and|or)\s*($|(?=[^\w\-]))">
-        <token type="OperatorWord"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/coffeescript.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/coffeescript.xml	(revision 67)
+++ 	(revision )
@@ -1,210 +1,0 @@
-<lexer>
-  <config>
-    <name>CoffeeScript</name>
-    <alias>coffee-script</alias>
-    <alias>coffeescript</alias>
-    <alias>coffee</alias>
-    <filename>*.coffee</filename>
-    <mime_type>text/coffeescript</mime_type>
-    <dot_all>true</dot_all>
-    <not_multiline>true</not_multiline>
-  </config>
-  <rules>
-    <state name="commentsandwhitespace">
-      <rule pattern="\s+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="###[^#].*?###">
-        <token type="CommentMultiline"/>
-      </rule>
-      <rule pattern="#(?!##[^#]).*?\n">
-        <token type="CommentSingle"/>
-      </rule>
-    </state>
-    <state name="multilineregex">
-      <rule pattern="[^/#]+">
-        <token type="LiteralStringRegex"/>
-      </rule>
-      <rule pattern="///([gim]+\b|\B)">
-        <token type="LiteralStringRegex"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="#\{">
-        <token type="LiteralStringInterpol"/>
-        <push state="interpoling_string"/>
-      </rule>
-      <rule pattern="[/#]">
-        <token type="LiteralStringRegex"/>
-      </rule>
-    </state>
-    <state name="slashstartsregex">
-      <rule>
-        <include state="commentsandwhitespace"/>
-      </rule>
-      <rule pattern="///">
-        <token type="LiteralStringRegex"/>
-        <push state="#pop" state="multilineregex"/>
-      </rule>
-      <rule pattern="/(?! )(\\.|[^[/\\\n]|\[(\\.|[^\]\\\n])*])+/([gim]+\b|\B)">
-        <token type="LiteralStringRegex"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="/">
-        <token type="Operator"/>
-      </rule>
-      <rule>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="tsqs">
-      <rule pattern="&#39;&#39;&#39;">
-        <token type="LiteralString"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="#|\\.|\&#39;|&#34;">
-        <token type="LiteralString"/>
-      </rule>
-      <rule>
-        <include state="strings"/>
-      </rule>
-    </state>
-    <state name="dqs">
-      <rule pattern="&#34;">
-        <token type="LiteralString"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="\\.|\&#39;">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="#\{">
-        <token type="LiteralStringInterpol"/>
-        <push state="interpoling_string"/>
-      </rule>
-      <rule pattern="#">
-        <token type="LiteralString"/>
-      </rule>
-      <rule>
-        <include state="strings"/>
-      </rule>
-    </state>
-    <state name="sqs">
-      <rule pattern="&#39;">
-        <token type="LiteralString"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="#|\\.|&#34;">
-        <token type="LiteralString"/>
-      </rule>
-      <rule>
-        <include state="strings"/>
-      </rule>
-    </state>
-    <state name="tdqs">
-      <rule pattern="&#34;&#34;&#34;">
-        <token type="LiteralString"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="\\.|\&#39;|&#34;">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="#\{">
-        <token type="LiteralStringInterpol"/>
-        <push state="interpoling_string"/>
-      </rule>
-      <rule pattern="#">
-        <token type="LiteralString"/>
-      </rule>
-      <rule>
-        <include state="strings"/>
-      </rule>
-    </state>
-    <state name="root">
-      <rule>
-        <include state="commentsandwhitespace"/>
-      </rule>
-      <rule pattern="^(?=\s|/)">
-        <token type="Text"/>
-        <push state="slashstartsregex"/>
-      </rule>
-      <rule pattern="\+\+|~|&amp;&amp;|\band\b|\bor\b|\bis\b|\bisnt\b|\bnot\b|\?|:|\|\||\\(?=\n)|(&lt;&lt;|&gt;&gt;&gt;?|==?(?!&gt;)|!=?|=(?!&gt;)|-(?!&gt;)|[&lt;&gt;+*`%&amp;\|\^/])=?">
-        <token type="Operator"/>
-        <push state="slashstartsregex"/>
-      </rule>
-      <rule pattern="(?:\([^()]*\))?\s*[=-]&gt;">
-        <token type="NameFunction"/>
-        <push state="slashstartsregex"/>
-      </rule>
-      <rule pattern="[{(\[;,]">
-        <token type="Punctuation"/>
-        <push state="slashstartsregex"/>
-      </rule>
-      <rule pattern="[})\].]">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="(?&lt;![.$])(for|own|in|of|while|until|loop|break|return|continue|switch|when|then|if|unless|else|throw|try|catch|finally|new|delete|typeof|instanceof|super|extends|this|class|by)\b">
-        <token type="Keyword"/>
-        <push state="slashstartsregex"/>
-      </rule>
-      <rule pattern="(?&lt;![.$])(true|false|yes|no|on|off|null|NaN|Infinity|undefined)\b">
-        <token type="KeywordConstant"/>
-      </rule>
-      <rule pattern="(Array|Boolean|Date|Error|Function|Math|netscape|Number|Object|Packages|RegExp|String|sun|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|document|window)\b">
-        <token type="NameBuiltin"/>
-      </rule>
-      <rule pattern="[$a-zA-Z_][\w.:$]*\s*[:=]\s">
-        <token type="NameVariable"/>
-        <push state="slashstartsregex"/>
-      </rule>
-      <rule pattern="@[$a-zA-Z_][\w.:$]*\s*[:=]\s">
-        <token type="NameVariableInstance"/>
-        <push state="slashstartsregex"/>
-      </rule>
-      <rule pattern="@">
-        <token type="NameOther"/>
-        <push state="slashstartsregex"/>
-      </rule>
-      <rule pattern="@?[$a-zA-Z_][\w$]*">
-        <token type="NameOther"/>
-      </rule>
-      <rule pattern="[0-9][0-9]*\.[0-9]+([eE][0-9]+)?[fd]?">
-        <token type="LiteralNumberFloat"/>
-      </rule>
-      <rule pattern="0x[0-9a-fA-F]+">
-        <token type="LiteralNumberHex"/>
-      </rule>
-      <rule pattern="[0-9]+">
-        <token type="LiteralNumberInteger"/>
-      </rule>
-      <rule pattern="&#34;&#34;&#34;">
-        <token type="LiteralString"/>
-        <push state="tdqs"/>
-      </rule>
-      <rule pattern="&#39;&#39;&#39;">
-        <token type="LiteralString"/>
-        <push state="tsqs"/>
-      </rule>
-      <rule pattern="&#34;">
-        <token type="LiteralString"/>
-        <push state="dqs"/>
-      </rule>
-      <rule pattern="&#39;">
-        <token type="LiteralString"/>
-        <push state="sqs"/>
-      </rule>
-    </state>
-    <state name="interpoling_string">
-      <rule pattern="\}">
-        <token type="LiteralStringInterpol"/>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <include state="root"/>
-      </rule>
-    </state>
-    <state name="strings">
-      <rule pattern="[^#\\\&#39;&#34;]+">
-        <token type="LiteralString"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/common_lisp.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/common_lisp.xml	(revision 67)
+++ 	(revision )
@@ -1,184 +1,0 @@
-<lexer>
-  <config>
-    <name>Common Lisp</name>
-    <alias>common-lisp</alias>
-    <alias>cl</alias>
-    <alias>lisp</alias>
-    <filename>*.cl</filename>
-    <filename>*.lisp</filename>
-    <mime_type>text/x-common-lisp</mime_type>
-    <case_insensitive>true</case_insensitive>
-  </config>
-  <rules>
-    <state name="body">
-      <rule pattern="\s+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern=";.*$">
-        <token type="CommentSingle"/>
-      </rule>
-      <rule pattern="#\|">
-        <token type="CommentMultiline"/>
-        <push state="multiline-comment"/>
-      </rule>
-      <rule pattern="#\d*Y.*$">
-        <token type="CommentSpecial"/>
-      </rule>
-      <rule pattern="&#34;(\\.|\\\n|[^&#34;\\])*&#34;">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern=":(\|[^|]+\||(?:\\.|[\w!$%&amp;*+-/&lt;=&gt;?@\[\]^{}~])(?:\\.|[\w!$%&amp;*+-/&lt;=&gt;?@\[\]^{}~]|[#.:])*)">
-        <token type="LiteralStringSymbol"/>
-      </rule>
-      <rule pattern="::(\|[^|]+\||(?:\\.|[\w!$%&amp;*+-/&lt;=&gt;?@\[\]^{}~])(?:\\.|[\w!$%&amp;*+-/&lt;=&gt;?@\[\]^{}~]|[#.:])*)">
-        <token type="LiteralStringSymbol"/>
-      </rule>
-      <rule pattern=":#(\|[^|]+\||(?:\\.|[\w!$%&amp;*+-/&lt;=&gt;?@\[\]^{}~])(?:\\.|[\w!$%&amp;*+-/&lt;=&gt;?@\[\]^{}~]|[#.:])*)">
-        <token type="LiteralStringSymbol"/>
-      </rule>
-      <rule pattern="&#39;(\|[^|]+\||(?:\\.|[\w!$%&amp;*+-/&lt;=&gt;?@\[\]^{}~])(?:\\.|[\w!$%&amp;*+-/&lt;=&gt;?@\[\]^{}~]|[#.:])*)">
-        <token type="LiteralStringSymbol"/>
-      </rule>
-      <rule pattern="&#39;">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="`">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="[-+]?\d+\.?(?=[ &#34;()\&#39;\n,;`])">
-        <token type="LiteralNumberInteger"/>
-      </rule>
-      <rule pattern="[-+]?\d+/\d+(?=[ &#34;()\&#39;\n,;`])">
-        <token type="LiteralNumber"/>
-      </rule>
-      <rule pattern="[-+]?(\d*\.\d+([defls][-+]?\d+)?|\d+(\.\d*)?[defls][-+]?\d+)(?=[ &#34;()\&#39;\n,;`])">
-        <token type="LiteralNumberFloat"/>
-      </rule>
-      <rule pattern="#\\.(?=[ &#34;()\&#39;\n,;`])">
-        <token type="LiteralStringChar"/>
-      </rule>
-      <rule pattern="#\\(\|[^|]+\||(?:\\.|[\w!$%&amp;*+-/&lt;=&gt;?@\[\]^{}~])(?:\\.|[\w!$%&amp;*+-/&lt;=&gt;?@\[\]^{}~]|[#.:])*)">
-        <token type="LiteralStringChar"/>
-      </rule>
-      <rule pattern="#\(">
-        <token type="Operator"/>
-        <push state="body"/>
-      </rule>
-      <rule pattern="#\d*\*[01]*">
-        <token type="LiteralOther"/>
-      </rule>
-      <rule pattern="#:(\|[^|]+\||(?:\\.|[\w!$%&amp;*+-/&lt;=&gt;?@\[\]^{}~])(?:\\.|[\w!$%&amp;*+-/&lt;=&gt;?@\[\]^{}~]|[#.:])*)">
-        <token type="LiteralStringSymbol"/>
-      </rule>
-      <rule pattern="#[.,]">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="#\&#39;">
-        <token type="NameFunction"/>
-      </rule>
-      <rule pattern="#b[+-]?[01]+(/[01]+)?">
-        <token type="LiteralNumberBin"/>
-      </rule>
-      <rule pattern="#o[+-]?[0-7]+(/[0-7]+)?">
-        <token type="LiteralNumberOct"/>
-      </rule>
-      <rule pattern="#x[+-]?[0-9a-f]+(/[0-9a-f]+)?">
-        <token type="LiteralNumberHex"/>
-      </rule>
-      <rule pattern="#\d+r[+-]?[0-9a-z]+(/[0-9a-z]+)?">
-        <token type="LiteralNumber"/>
-      </rule>
-      <rule pattern="(#c)(\()">
-        <bygroups>
-          <token type="LiteralNumber"/>
-          <token type="Punctuation"/>
-        </bygroups>
-        <push state="body"/>
-      </rule>
-      <rule pattern="(#\d+a)(\()">
-        <bygroups>
-          <token type="LiteralOther"/>
-          <token type="Punctuation"/>
-        </bygroups>
-        <push state="body"/>
-      </rule>
-      <rule pattern="(#s)(\()">
-        <bygroups>
-          <token type="LiteralOther"/>
-          <token type="Punctuation"/>
-        </bygroups>
-        <push state="body"/>
-      </rule>
-      <rule pattern="#p?&#34;(\\.|[^&#34;])*&#34;">
-        <token type="LiteralOther"/>
-      </rule>
-      <rule pattern="#\d+=">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="#\d+#">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="#+nil(?=[ &#34;()\&#39;\n,;`])\s*\(">
-        <token type="CommentPreproc"/>
-        <push state="commented-form"/>
-      </rule>
-      <rule pattern="#[+-]">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="(,@|,|\.)">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="(t|nil)(?=[ &#34;()\&#39;\n,;`])">
-        <token type="NameConstant"/>
-      </rule>
-      <rule pattern="\*(\|[^|]+\||(?:\\.|[\w!$%&amp;*+-/&lt;=&gt;?@\[\]^{}~])(?:\\.|[\w!$%&amp;*+-/&lt;=&gt;?@\[\]^{}~]|[#.:])*)\*">
-        <token type="NameVariableGlobal"/>
-      </rule>
-      <rule pattern="(\|[^|]+\||(?:\\.|[\w!$%&amp;*+-/&lt;=&gt;?@\[\]^{}~])(?:\\.|[\w!$%&amp;*+-/&lt;=&gt;?@\[\]^{}~]|[#.:])*)">
-        <token type="NameVariable"/>
-      </rule>
-      <rule pattern="\(">
-        <token type="Punctuation"/>
-        <push state="body"/>
-      </rule>
-      <rule pattern="\)">
-        <token type="Punctuation"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="root">
-      <rule>
-        <push state="body"/>
-      </rule>
-    </state>
-    <state name="multiline-comment">
-      <rule pattern="#\|">
-        <token type="CommentMultiline"/>
-        <push/>
-      </rule>
-      <rule pattern="\|#">
-        <token type="CommentMultiline"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="[^|#]+">
-        <token type="CommentMultiline"/>
-      </rule>
-      <rule pattern="[|#]">
-        <token type="CommentMultiline"/>
-      </rule>
-    </state>
-    <state name="commented-form">
-      <rule pattern="\(">
-        <token type="CommentPreproc"/>
-        <push/>
-      </rule>
-      <rule pattern="\)">
-        <token type="CommentPreproc"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="[^()]+">
-        <token type="CommentPreproc"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/coq.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/coq.xml	(revision 67)
+++ 	(revision )
@@ -1,136 +1,0 @@
-<lexer>
-  <config>
-    <name>Coq</name>
-    <alias>coq</alias>
-    <filename>*.v</filename>
-    <mime_type>text/x-coq</mime_type>
-  </config>
-  <rules>
-    <state name="string">
-      <rule pattern="[^&#34;]+">
-        <token type="LiteralStringDouble"/>
-      </rule>
-      <rule pattern="&#34;&#34;">
-        <token type="LiteralStringDouble"/>
-      </rule>
-      <rule pattern="&#34;">
-        <token type="LiteralStringDouble"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="dotted">
-      <rule pattern="\s+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="\.">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="[A-Z][\w\&#39;]*(?=\s*\.)">
-        <token type="NameNamespace"/>
-      </rule>
-      <rule pattern="[A-Z][\w\&#39;]*">
-        <token type="NameClass"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="[a-z][a-z0-9_\&#39;]*">
-        <token type="Name"/>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="root">
-      <rule pattern="\s+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="false|true|\(\)|\[\]">
-        <token type="NameBuiltinPseudo"/>
-      </rule>
-      <rule pattern="\(\*">
-        <token type="Comment"/>
-        <push state="comment"/>
-      </rule>
-      <rule pattern="\b(Projections|Monomorphic|Polymorphic|Proposition|CoInductive|Hypothesis|CoFixpoint|Contextual|Definition|Parameters|Hypotheses|Structure|Inductive|Corollary|Implicits|Parameter|Variables|Arguments|Canonical|Printing|Coercion|Reserved|Universe|Notation|Instance|Fixpoint|Variable|Morphism|Relation|Existing|Implicit|Example|Theorem|Delimit|Defined|Rewrite|outside|Require|Resolve|Section|Context|Prenex|Strict|Module|Import|Export|Global|inside|Remark|Tactic|Search|Record|Scope|Unset|Check|Local|Close|Class|Graph|Proof|Lemma|Print|Axiom|Show|Goal|Open|Fact|Hint|Bind|Ltac|Save|View|Let|Set|All|End|Qed)\b">
-        <token type="KeywordNamespace"/>
-      </rule>
-      <rule pattern="\b(exists2|nosimpl|struct|exists|return|forall|match|cofix|then|with|else|for|fix|let|fun|end|is|of|if|in|as)\b">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="\b(Type|Prop)\b">
-        <token type="KeywordType"/>
-      </rule>
-      <rule pattern="\b(native_compute|setoid_rewrite|etransitivity|econstructor|transitivity|autorewrite|constructor|cutrewrite|vm_compute|bool_congr|generalize|inversion|induction|injection|nat_congr|intuition|destruct|suffices|erewrite|symmetry|nat_norm|replace|rewrite|compute|pattern|trivial|without|assert|unfold|change|eapply|intros|unlock|revert|rename|refine|eauto|tauto|after|right|congr|split|field|simpl|intro|clear|apply|using|subst|case|left|suff|loss|wlog|have|fold|ring|move|lazy|elim|pose|auto|red|cbv|hnf|cut|set)\b">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="\b(contradiction|discriminate|reflexivity|assumption|congruence|romega|omega|exact|solve|tauto|done|by)\b">
-        <token type="KeywordPseudo"/>
-      </rule>
-      <rule pattern="\b(repeat|first|idtac|last|try|do)\b">
-        <token type="KeywordReserved"/>
-      </rule>
-      <rule pattern="\b([A-Z][\w\&#39;]*)">
-        <token type="Name"/>
-      </rule>
-      <rule pattern="(λ|Π|\|\}|\{\||\\/|/\\|=&gt;|~|\}|\|]|\||\{&lt;|\{|`|_|]|\[\||\[&gt;|\[&lt;|\[|\?\?|\?|&gt;\}|&gt;]|&gt;|=|&lt;-&gt;|&lt;-|&lt;|;;|;|:&gt;|:=|::|:|\.\.|\.|-&gt;|-\.|-|,|\+|\*|\)|\(|&amp;&amp;|&amp;|#|!=)">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="([=&lt;&gt;@^|&amp;+\*/$%-]|[!?~])?[!$%&amp;*+\./:&lt;=&gt;?@^|~-]">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="\b(unit|nat|bool|string|ascii|list)\b">
-        <token type="KeywordType"/>
-      </rule>
-      <rule pattern="[^\W\d][\w&#39;]*">
-        <token type="Name"/>
-      </rule>
-      <rule pattern="\d[\d_]*">
-        <token type="LiteralNumberInteger"/>
-      </rule>
-      <rule pattern="0[xX][\da-fA-F][\da-fA-F_]*">
-        <token type="LiteralNumberHex"/>
-      </rule>
-      <rule pattern="0[oO][0-7][0-7_]*">
-        <token type="LiteralNumberOct"/>
-      </rule>
-      <rule pattern="0[bB][01][01_]*">
-        <token type="LiteralNumberBin"/>
-      </rule>
-      <rule pattern="-?\d[\d_]*(.[\d_]*)?([eE][+\-]?\d[\d_]*)">
-        <token type="LiteralNumberFloat"/>
-      </rule>
-      <rule pattern="&#39;(?:(\\[\\\&#34;&#39;ntbr ])|(\\[0-9]{3})|(\\x[0-9a-fA-F]{2}))&#39;">
-        <token type="LiteralStringChar"/>
-      </rule>
-      <rule pattern="&#39;.&#39;">
-        <token type="LiteralStringChar"/>
-      </rule>
-      <rule pattern="&#39;">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="&#34;">
-        <token type="LiteralStringDouble"/>
-        <push state="string"/>
-      </rule>
-      <rule pattern="[~?][a-z][\w\&#39;]*:">
-        <token type="Name"/>
-      </rule>
-    </state>
-    <state name="comment">
-      <rule pattern="[^(*)]+">
-        <token type="Comment"/>
-      </rule>
-      <rule pattern="\(\*">
-        <token type="Comment"/>
-        <push/>
-      </rule>
-      <rule pattern="\*\)">
-        <token type="Comment"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="[(*)]">
-        <token type="Comment"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/crystal.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/crystal.xml	(revision 67)
+++ 	(revision )
@@ -1,762 +1,0 @@
-<lexer>
-  <config>
-    <name>Crystal</name>
-    <alias>cr</alias>
-    <alias>crystal</alias>
-    <filename>*.cr</filename>
-    <mime_type>text/x-crystal</mime_type>
-    <dot_all>true</dot_all>
-  </config>
-  <rules>
-    <state name="pa-intp-string">
-      <rule pattern="\\[\(]">
-        <token type="LiteralStringOther"/>
-      </rule>
-      <rule pattern="\(">
-        <token type="LiteralStringOther"/>
-        <push/>
-      </rule>
-      <rule pattern="\)">
-        <token type="LiteralStringOther"/>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <include state="string-intp-escaped"/>
-      </rule>
-      <rule pattern="[\\#()]">
-        <token type="LiteralStringOther"/>
-      </rule>
-      <rule pattern="[^\\#()]+">
-        <token type="LiteralStringOther"/>
-      </rule>
-    </state>
-    <state name="ab-regex">
-      <rule pattern="\\[\\&lt;&gt;]">
-        <token type="LiteralStringRegex"/>
-      </rule>
-      <rule pattern="&lt;">
-        <token type="LiteralStringRegex"/>
-        <push/>
-      </rule>
-      <rule pattern="&gt;[imsx]*">
-        <token type="LiteralStringRegex"/>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <include state="string-intp"/>
-      </rule>
-      <rule pattern="[\\#&lt;&gt;]">
-        <token type="LiteralStringRegex"/>
-      </rule>
-      <rule pattern="[^\\#&lt;&gt;]+">
-        <token type="LiteralStringRegex"/>
-      </rule>
-    </state>
-    <state name="cb-regex">
-      <rule pattern="\\[\\{}]">
-        <token type="LiteralStringRegex"/>
-      </rule>
-      <rule pattern="\{">
-        <token type="LiteralStringRegex"/>
-        <push/>
-      </rule>
-      <rule pattern="\}[imsx]*">
-        <token type="LiteralStringRegex"/>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <include state="string-intp"/>
-      </rule>
-      <rule pattern="[\\#{}]">
-        <token type="LiteralStringRegex"/>
-      </rule>
-      <rule pattern="[^\\#{}]+">
-        <token type="LiteralStringRegex"/>
-      </rule>
-    </state>
-    <state name="simple-backtick">
-      <rule>
-        <include state="string-intp-escaped"/>
-      </rule>
-      <rule pattern="[^\\`#]+">
-        <token type="LiteralStringBacktick"/>
-      </rule>
-      <rule pattern="[\\#]">
-        <token type="LiteralStringBacktick"/>
-      </rule>
-      <rule pattern="`">
-        <token type="LiteralStringBacktick"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="string-intp">
-      <rule pattern="#\{">
-        <token type="LiteralStringInterpol"/>
-        <push state="in-intp"/>
-      </rule>
-    </state>
-    <state name="interpolated-regex">
-      <rule>
-        <include state="string-intp"/>
-      </rule>
-      <rule pattern="[\\#]">
-        <token type="LiteralStringRegex"/>
-      </rule>
-      <rule pattern="[^\\#]+">
-        <token type="LiteralStringRegex"/>
-      </rule>
-    </state>
-    <state name="cb-string">
-      <rule pattern="\\[\\{}]">
-        <token type="LiteralStringOther"/>
-      </rule>
-      <rule pattern="\{">
-        <token type="LiteralStringOther"/>
-        <push/>
-      </rule>
-      <rule pattern="\}">
-        <token type="LiteralStringOther"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="[\\#{}]">
-        <token type="LiteralStringOther"/>
-      </rule>
-      <rule pattern="[^\\#{}]+">
-        <token type="LiteralStringOther"/>
-      </rule>
-    </state>
-    <state name="in-macro-control">
-      <rule pattern="\{%">
-        <token type="LiteralStringInterpol"/>
-        <push/>
-      </rule>
-      <rule pattern="%\}">
-        <token type="LiteralStringInterpol"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="for\b|in\b">
-        <token type="Keyword"/>
-      </rule>
-      <rule>
-        <include state="root"/>
-      </rule>
-    </state>
-    <state name="interpolated-string">
-      <rule>
-        <include state="string-intp"/>
-      </rule>
-      <rule pattern="[\\#]">
-        <token type="LiteralStringOther"/>
-      </rule>
-      <rule pattern="[^\\#]+">
-        <token type="LiteralStringOther"/>
-      </rule>
-    </state>
-    <state name="in-macro-expr">
-      <rule pattern="\{\{">
-        <token type="LiteralStringInterpol"/>
-        <push/>
-      </rule>
-      <rule pattern="\}\}">
-        <token type="LiteralStringInterpol"/>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <include state="root"/>
-      </rule>
-    </state>
-    <state name="simple-string">
-      <rule>
-        <include state="string-intp-escaped"/>
-      </rule>
-      <rule pattern="[^\\&#34;#]+">
-        <token type="LiteralStringDouble"/>
-      </rule>
-      <rule pattern="[\\#]">
-        <token type="LiteralStringDouble"/>
-      </rule>
-      <rule pattern="&#34;">
-        <token type="LiteralStringDouble"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="cb-intp-string">
-      <rule pattern="\\[\{]">
-        <token type="LiteralStringOther"/>
-      </rule>
-      <rule pattern="\{">
-        <token type="LiteralStringOther"/>
-        <push/>
-      </rule>
-      <rule pattern="\}">
-        <token type="LiteralStringOther"/>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <include state="string-intp-escaped"/>
-      </rule>
-      <rule pattern="[\\#{}]">
-        <token type="LiteralStringOther"/>
-      </rule>
-      <rule pattern="[^\\#{}]+">
-        <token type="LiteralStringOther"/>
-      </rule>
-    </state>
-    <state name="string-intp-escaped">
-      <rule>
-        <include state="string-intp"/>
-      </rule>
-      <rule>
-        <include state="string-escaped"/>
-      </rule>
-    </state>
-    <state name="sb-regex">
-      <rule pattern="\\[\\\[\]]">
-        <token type="LiteralStringRegex"/>
-      </rule>
-      <rule pattern="\[">
-        <token type="LiteralStringRegex"/>
-        <push/>
-      </rule>
-      <rule pattern="\][imsx]*">
-        <token type="LiteralStringRegex"/>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <include state="string-intp"/>
-      </rule>
-      <rule pattern="[\\#\[\]]">
-        <token type="LiteralStringRegex"/>
-      </rule>
-      <rule pattern="[^\\#\[\]]+">
-        <token type="LiteralStringRegex"/>
-      </rule>
-    </state>
-    <state name="classname">
-      <rule pattern="[A-Z_]\w*">
-        <token type="NameClass"/>
-      </rule>
-      <rule pattern="(\()(\s*)([A-Z_]\w*)(\s*)(\))">
-        <bygroups>
-          <token type="Punctuation"/>
-          <token type="Text"/>
-          <token type="NameClass"/>
-          <token type="Text"/>
-          <token type="Punctuation"/>
-        </bygroups>
-      </rule>
-      <rule>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="string-escaped">
-      <rule pattern="\\([\\befnstv#&#34;\&#39;]|x[a-fA-F0-9]{1,2}|[0-7]{1,3})">
-        <token type="LiteralStringEscape"/>
-      </rule>
-    </state>
-    <state name="sb-intp-string">
-      <rule pattern="\\[\[]">
-        <token type="LiteralStringOther"/>
-      </rule>
-      <rule pattern="\[">
-        <token type="LiteralStringOther"/>
-        <push/>
-      </rule>
-      <rule pattern="\]">
-        <token type="LiteralStringOther"/>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <include state="string-intp-escaped"/>
-      </rule>
-      <rule pattern="[\\#\[\]]">
-        <token type="LiteralStringOther"/>
-      </rule>
-      <rule pattern="[^\\#\[\]]+">
-        <token type="LiteralStringOther"/>
-      </rule>
-    </state>
-    <state name="pa-regex">
-      <rule pattern="\\[\\()]">
-        <token type="LiteralStringRegex"/>
-      </rule>
-      <rule pattern="\(">
-        <token type="LiteralStringRegex"/>
-        <push/>
-      </rule>
-      <rule pattern="\)[imsx]*">
-        <token type="LiteralStringRegex"/>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <include state="string-intp"/>
-      </rule>
-      <rule pattern="[\\#()]">
-        <token type="LiteralStringRegex"/>
-      </rule>
-      <rule pattern="[^\\#()]+">
-        <token type="LiteralStringRegex"/>
-      </rule>
-    </state>
-    <state name="in-attr">
-      <rule pattern="\[">
-        <token type="Operator"/>
-        <push/>
-      </rule>
-      <rule pattern="\]">
-        <token type="Operator"/>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <include state="root"/>
-      </rule>
-    </state>
-    <state name="ab-intp-string">
-      <rule pattern="\\[&lt;]">
-        <token type="LiteralStringOther"/>
-      </rule>
-      <rule pattern="&lt;">
-        <token type="LiteralStringOther"/>
-        <push/>
-      </rule>
-      <rule pattern="&gt;">
-        <token type="LiteralStringOther"/>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <include state="string-intp-escaped"/>
-      </rule>
-      <rule pattern="[\\#&lt;&gt;]">
-        <token type="LiteralStringOther"/>
-      </rule>
-      <rule pattern="[^\\#&lt;&gt;]+">
-        <token type="LiteralStringOther"/>
-      </rule>
-    </state>
-    <state name="in-intp">
-      <rule pattern="\{">
-        <token type="LiteralStringInterpol"/>
-        <push/>
-      </rule>
-      <rule pattern="\}">
-        <token type="LiteralStringInterpol"/>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <include state="root"/>
-      </rule>
-    </state>
-    <state name="end-part">
-      <rule pattern=".+">
-        <token type="CommentPreproc"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="root">
-      <rule pattern="#.*?$">
-        <token type="CommentSingle"/>
-      </rule>
-      <rule pattern="(instance_sizeof|pointerof|protected|abstract|require|private|include|unless|typeof|sizeof|return|extend|ensure|rescue|ifdef|super|break|begin|until|while|elsif|yield|next|when|else|then|case|with|end|asm|if|do|as|of)\b">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="(false|true|nil)\b">
-        <token type="KeywordConstant"/>
-      </rule>
-      <rule pattern="(module|lib)(\s+)([a-zA-Z_]\w*(?:::[a-zA-Z_]\w*)*)">
-        <bygroups>
-          <token type="Keyword"/>
-          <token type="Text"/>
-          <token type="NameNamespace"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(def|fun|macro)(\s+)((?:[a-zA-Z_]\w*::)*)">
-        <bygroups>
-          <token type="Keyword"/>
-          <token type="Text"/>
-          <token type="NameNamespace"/>
-        </bygroups>
-        <push state="funcname"/>
-      </rule>
-      <rule pattern="def(?=[*%&amp;^`~+-/\[&lt;&gt;=])">
-        <token type="Keyword"/>
-        <push state="funcname"/>
-      </rule>
-      <rule pattern="(class|struct|union|type|alias|enum)(\s+)((?:[a-zA-Z_]\w*::)*)">
-        <bygroups>
-          <token type="Keyword"/>
-          <token type="Text"/>
-          <token type="NameNamespace"/>
-        </bygroups>
-        <push state="classname"/>
-      </rule>
-      <rule pattern="(self|out|uninitialized)\b|(is_a|responds_to)\?">
-        <token type="KeywordPseudo"/>
-      </rule>
-      <rule pattern="(def_equals_and_hash|assert_responds_to|forward_missing_to|def_equals|property|def_hash|parallel|delegate|debugger|getter|record|setter|spawn|pp)\b">
-        <token type="NameBuiltinPseudo"/>
-      </rule>
-      <rule pattern="getter[!?]|property[!?]|__(DIR|FILE|LINE)__\b">
-        <token type="NameBuiltinPseudo"/>
-      </rule>
-      <rule pattern="(?&lt;!\.)(get_stack_top|StaticArray|Concurrent|with_color|Reference|Scheduler|read_line|Exception|at_exit|Pointer|Channel|Float64|sprintf|Float32|Process|Object|Struct|caller|UInt16|UInt32|UInt64|system|future|Number|printf|String|Symbol|Int32|Range|Slice|Regex|Mutex|sleep|Array|Class|raise|Tuple|Deque|delay|Float|Int16|print|abort|Value|UInt8|Int64|puts|Proc|File|Void|exit|fork|Bool|Char|gets|lazy|loop|main|rand|Enum|Int8|Time|Hash|Set|Box|Nil|Dir|Int|p)\b">
-        <token type="NameBuiltin"/>
-      </rule>
-      <rule pattern="(?&lt;!\w)(&lt;&lt;-?)([&#34;`\&#39;]?)([a-zA-Z_]\w*)(\2)(.*?\n)">
-        <token type="LiteralStringHeredoc"/>
-      </rule>
-      <rule pattern="(&lt;&lt;-?)(&#34;|\&#39;)()(\2)(.*?\n)">
-        <token type="LiteralStringHeredoc"/>
-      </rule>
-      <rule pattern="__END__">
-        <token type="CommentPreproc"/>
-        <push state="end-part"/>
-      </rule>
-      <rule pattern="(?:^|(?&lt;=[=&lt;&gt;~!:])|(?&lt;=(?:\s|;)when\s)|(?&lt;=(?:\s|;)or\s)|(?&lt;=(?:\s|;)and\s)|(?&lt;=\.index\s)|(?&lt;=\.scan\s)|(?&lt;=\.sub\s)|(?&lt;=\.sub!\s)|(?&lt;=\.gsub\s)|(?&lt;=\.gsub!\s)|(?&lt;=\.match\s)|(?&lt;=(?:\s|;)if\s)|(?&lt;=(?:\s|;)elsif\s)|(?&lt;=^when\s)|(?&lt;=^index\s)|(?&lt;=^scan\s)|(?&lt;=^sub\s)|(?&lt;=^gsub\s)|(?&lt;=^sub!\s)|(?&lt;=^gsub!\s)|(?&lt;=^match\s)|(?&lt;=^if\s)|(?&lt;=^elsif\s))(\s*)(/)">
-        <bygroups>
-          <token type="Text"/>
-          <token type="LiteralStringRegex"/>
-        </bygroups>
-        <push state="multiline-regex"/>
-      </rule>
-      <rule pattern="(?&lt;=\(|,|\[)/">
-        <token type="LiteralStringRegex"/>
-        <push state="multiline-regex"/>
-      </rule>
-      <rule pattern="(\s+)(/)(?![\s=])">
-        <bygroups>
-          <token type="Text"/>
-          <token type="LiteralStringRegex"/>
-        </bygroups>
-        <push state="multiline-regex"/>
-      </rule>
-      <rule pattern="(0o[0-7]+(?:_[0-7]+)*(?:_?[iu][0-9]+)?)\b(\s*)([/?])?">
-        <bygroups>
-          <token type="LiteralNumberOct"/>
-          <token type="Text"/>
-          <token type="Operator"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(0x[0-9A-Fa-f]+(?:_[0-9A-Fa-f]+)*(?:_?[iu][0-9]+)?)\b(\s*)([/?])?">
-        <bygroups>
-          <token type="LiteralNumberHex"/>
-          <token type="Text"/>
-          <token type="Operator"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(0b[01]+(?:_[01]+)*(?:_?[iu][0-9]+)?)\b(\s*)([/?])?">
-        <bygroups>
-          <token type="LiteralNumberBin"/>
-          <token type="Text"/>
-          <token type="Operator"/>
-        </bygroups>
-      </rule>
-      <rule pattern="((?:0(?![0-9])|[1-9][\d_]*)(?:\.\d[\d_]*)(?:e[+-]?[0-9]+)?(?:_?f[0-9]+)?)(\s*)([/?])?">
-        <bygroups>
-          <token type="LiteralNumberFloat"/>
-          <token type="Text"/>
-          <token type="Operator"/>
-        </bygroups>
-      </rule>
-      <rule pattern="((?:0(?![0-9])|[1-9][\d_]*)(?:\.\d[\d_]*)?(?:e[+-]?[0-9]+)(?:_?f[0-9]+)?)(\s*)([/?])?">
-        <bygroups>
-          <token type="LiteralNumberFloat"/>
-          <token type="Text"/>
-          <token type="Operator"/>
-        </bygroups>
-      </rule>
-      <rule pattern="((?:0(?![0-9])|[1-9][\d_]*)(?:\.\d[\d_]*)?(?:e[+-]?[0-9]+)?(?:_?f[0-9]+))(\s*)([/?])?">
-        <bygroups>
-          <token type="LiteralNumberFloat"/>
-          <token type="Text"/>
-          <token type="Operator"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(0\b|[1-9][\d]*(?:_\d+)*(?:_?[iu][0-9]+)?)\b(\s*)([/?])?">
-        <bygroups>
-          <token type="LiteralNumberInteger"/>
-          <token type="Text"/>
-          <token type="Operator"/>
-        </bygroups>
-      </rule>
-      <rule pattern="@@[a-zA-Z_]\w*">
-        <token type="NameVariableClass"/>
-      </rule>
-      <rule pattern="@[a-zA-Z_]\w*">
-        <token type="NameVariableInstance"/>
-      </rule>
-      <rule pattern="\$\w+">
-        <token type="NameVariableGlobal"/>
-      </rule>
-      <rule pattern="\$[!@&amp;`\&#39;+~=/\\,;.&lt;&gt;_*$?:&#34;^-]">
-        <token type="NameVariableGlobal"/>
-      </rule>
-      <rule pattern="\$-[0adFiIlpvw]">
-        <token type="NameVariableGlobal"/>
-      </rule>
-      <rule pattern="::">
-        <token type="Operator"/>
-      </rule>
-      <rule>
-        <include state="strings"/>
-      </rule>
-      <rule pattern="\?(\\[MC]-)*(\\([\\befnrtv#&#34;\&#39;]|x[a-fA-F0-9]{1,2}|[0-7]{1,3})|\S)(?!\w)">
-        <token type="LiteralStringChar"/>
-      </rule>
-      <rule pattern="[A-Z][A-Z_]+\b">
-        <token type="NameConstant"/>
-      </rule>
-      <rule pattern="\{%">
-        <token type="LiteralStringInterpol"/>
-        <push state="in-macro-control"/>
-      </rule>
-      <rule pattern="\{\{">
-        <token type="LiteralStringInterpol"/>
-        <push state="in-macro-expr"/>
-      </rule>
-      <rule pattern="(@\[)(\s*)([A-Z]\w*)">
-        <bygroups>
-          <token type="Operator"/>
-          <token type="Text"/>
-          <token type="NameDecorator"/>
-        </bygroups>
-        <push state="in-attr"/>
-      </rule>
-      <rule pattern="(\.|::)(\[\]\?|&lt;=&gt;|===|\[\]=|&gt;&gt;|&amp;&amp;|\*\*|\[\]|\|\||&gt;=|=~|!~|&lt;&lt;|&lt;=|!=|==|&lt;|/|=|-|\+|&gt;|\*|&amp;|%|\^|!|\||~)">
-        <bygroups>
-          <token type="Operator"/>
-          <token type="NameOperator"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(\.|::)([a-zA-Z_]\w*[!?]?|[*%&amp;^`~+\-/\[&lt;&gt;=])">
-        <bygroups>
-          <token type="Operator"/>
-          <token type="Name"/>
-        </bygroups>
-      </rule>
-      <rule pattern="[a-zA-Z_]\w*(?:[!?](?!=))?">
-        <token type="Name"/>
-      </rule>
-      <rule pattern="(\[|\]\??|\*\*|&lt;=&gt;?|&gt;=|&lt;&lt;?|&gt;&gt;?|=~|===|!~|&amp;&amp;?|\|\||\.{1,3})">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="[-+/*%=&lt;&gt;&amp;!^|~]=?">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="[(){};,/?:\\]">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="\s+">
-        <token type="Text"/>
-      </rule>
-    </state>
-    <state name="multiline-regex">
-      <rule>
-        <include state="string-intp"/>
-      </rule>
-      <rule pattern="\\\\">
-        <token type="LiteralStringRegex"/>
-      </rule>
-      <rule pattern="\\/">
-        <token type="LiteralStringRegex"/>
-      </rule>
-      <rule pattern="[\\#]">
-        <token type="LiteralStringRegex"/>
-      </rule>
-      <rule pattern="[^\\/#]+">
-        <token type="LiteralStringRegex"/>
-      </rule>
-      <rule pattern="/[imsx]*">
-        <token type="LiteralStringRegex"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="ab-string">
-      <rule pattern="\\[\\&lt;&gt;]">
-        <token type="LiteralStringOther"/>
-      </rule>
-      <rule pattern="&lt;">
-        <token type="LiteralStringOther"/>
-        <push/>
-      </rule>
-      <rule pattern="&gt;">
-        <token type="LiteralStringOther"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="[\\#&lt;&gt;]">
-        <token type="LiteralStringOther"/>
-      </rule>
-      <rule pattern="[^\\#&lt;&gt;]+">
-        <token type="LiteralStringOther"/>
-      </rule>
-    </state>
-    <state name="pa-string">
-      <rule pattern="\\[\\()]">
-        <token type="LiteralStringOther"/>
-      </rule>
-      <rule pattern="\(">
-        <token type="LiteralStringOther"/>
-        <push/>
-      </rule>
-      <rule pattern="\)">
-        <token type="LiteralStringOther"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="[\\#()]">
-        <token type="LiteralStringOther"/>
-      </rule>
-      <rule pattern="[^\\#()]+">
-        <token type="LiteralStringOther"/>
-      </rule>
-    </state>
-    <state name="strings">
-      <rule pattern="\:@{0,2}[a-zA-Z_]\w*[!?]?">
-        <token type="LiteralStringSymbol"/>
-      </rule>
-      <rule pattern="\:@{0,2}(\[\]\?|&lt;=&gt;|===|\[\]=|&gt;&gt;|&amp;&amp;|\*\*|\[\]|\|\||&gt;=|=~|!~|&lt;&lt;|&lt;=|!=|==|&lt;|/|=|-|\+|&gt;|\*|&amp;|%|\^|!|\||~)">
-        <token type="LiteralStringSymbol"/>
-      </rule>
-      <rule pattern=":&#39;(\\\\|\\&#39;|[^&#39;])*&#39;">
-        <token type="LiteralStringSymbol"/>
-      </rule>
-      <rule pattern="&#39;(\\\\|\\&#39;|[^&#39;]|\\[^&#39;\\]+)&#39;">
-        <token type="LiteralStringChar"/>
-      </rule>
-      <rule pattern=":&#34;">
-        <token type="LiteralStringSymbol"/>
-        <push state="simple-sym"/>
-      </rule>
-      <rule pattern="([a-zA-Z_]\w*)(:)(?!:)">
-        <bygroups>
-          <token type="LiteralStringSymbol"/>
-          <token type="Punctuation"/>
-        </bygroups>
-      </rule>
-      <rule pattern="&#34;">
-        <token type="LiteralStringDouble"/>
-        <push state="simple-string"/>
-      </rule>
-      <rule pattern="(?&lt;!\.)`">
-        <token type="LiteralStringBacktick"/>
-        <push state="simple-backtick"/>
-      </rule>
-      <rule pattern="%\{">
-        <token type="LiteralStringOther"/>
-        <push state="cb-intp-string"/>
-      </rule>
-      <rule pattern="%[wi]\{">
-        <token type="LiteralStringOther"/>
-        <push state="cb-string"/>
-      </rule>
-      <rule pattern="%r\{">
-        <token type="LiteralStringRegex"/>
-        <push state="cb-regex"/>
-      </rule>
-      <rule pattern="%\[">
-        <token type="LiteralStringOther"/>
-        <push state="sb-intp-string"/>
-      </rule>
-      <rule pattern="%[wi]\[">
-        <token type="LiteralStringOther"/>
-        <push state="sb-string"/>
-      </rule>
-      <rule pattern="%r\[">
-        <token type="LiteralStringRegex"/>
-        <push state="sb-regex"/>
-      </rule>
-      <rule pattern="%\(">
-        <token type="LiteralStringOther"/>
-        <push state="pa-intp-string"/>
-      </rule>
-      <rule pattern="%[wi]\(">
-        <token type="LiteralStringOther"/>
-        <push state="pa-string"/>
-      </rule>
-      <rule pattern="%r\(">
-        <token type="LiteralStringRegex"/>
-        <push state="pa-regex"/>
-      </rule>
-      <rule pattern="%&lt;">
-        <token type="LiteralStringOther"/>
-        <push state="ab-intp-string"/>
-      </rule>
-      <rule pattern="%[wi]&lt;">
-        <token type="LiteralStringOther"/>
-        <push state="ab-string"/>
-      </rule>
-      <rule pattern="%r&lt;">
-        <token type="LiteralStringRegex"/>
-        <push state="ab-regex"/>
-      </rule>
-      <rule pattern="(%r([\W_]))((?:\\\2|(?!\2).)*)(\2[imsx]*)">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="(%[wi]([\W_]))((?:\\\2|(?!\2).)*)(\2)">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="(?&lt;=[-+/*%=&lt;&gt;&amp;!^|~,(])(\s*)(%([\t ])(?:(?:\\\3|(?!\3).)*)\3)">
-        <bygroups>
-          <token type="Text"/>
-          <token type="LiteralStringOther"/>
-          <token type="None"/>
-        </bygroups>
-      </rule>
-      <rule pattern="^(\s*)(%([\t ])(?:(?:\\\3|(?!\3).)*)\3)">
-        <bygroups>
-          <token type="Text"/>
-          <token type="LiteralStringOther"/>
-          <token type="None"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(%([\[{(&lt;]))((?:\\\2|(?!\2).)*)(\2)">
-        <token type="LiteralString"/>
-      </rule>
-    </state>
-    <state name="sb-string">
-      <rule pattern="\\[\\\[\]]">
-        <token type="LiteralStringOther"/>
-      </rule>
-      <rule pattern="\[">
-        <token type="LiteralStringOther"/>
-        <push/>
-      </rule>
-      <rule pattern="\]">
-        <token type="LiteralStringOther"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="[\\#\[\]]">
-        <token type="LiteralStringOther"/>
-      </rule>
-      <rule pattern="[^\\#\[\]]+">
-        <token type="LiteralStringOther"/>
-      </rule>
-    </state>
-    <state name="funcname">
-      <rule pattern="(?:([a-zA-Z_]\w*)(\.))?([a-zA-Z_]\w*[!?]?|\*\*?|[-+]@?|[/%&amp;|^`~]|\[\]=?|&lt;&lt;|&gt;&gt;|&lt;=?&gt;|&gt;=?|===?)">
-        <bygroups>
-          <token type="NameClass"/>
-          <token type="Operator"/>
-          <token type="NameFunction"/>
-        </bygroups>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="simple-sym">
-      <rule>
-        <include state="string-escaped"/>
-      </rule>
-      <rule pattern="[^\\&#34;#]+">
-        <token type="LiteralStringSymbol"/>
-      </rule>
-      <rule pattern="[\\#]">
-        <token type="LiteralStringSymbol"/>
-      </rule>
-      <rule pattern="&#34;">
-        <token type="LiteralStringSymbol"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/csharp.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/csharp.xml	(revision 67)
+++ 	(revision )
@@ -1,115 +1,0 @@
-<lexer>
-  <config>
-    <name>C#</name>
-    <alias>csharp</alias>
-    <alias>c#</alias>
-    <filename>*.cs</filename>
-    <mime_type>text/x-csharp</mime_type>
-    <dot_all>true</dot_all>
-    <ensure_nl>true</ensure_nl>
-  </config>
-  <rules>
-    <state name="root">
-      <rule pattern="^\s*\[.*?\]">
-        <token type="NameAttribute"/>
-      </rule>
-      <rule pattern="[^\S\n]+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="\\\n">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="///[^\n\r]+">
-        <token type="CommentSpecial"/>
-      </rule>
-      <rule pattern="//[^\n\r]+">
-        <token type="CommentSingle"/>
-      </rule>
-      <rule pattern="/[*].*?[*]/">
-        <token type="CommentMultiline"/>
-      </rule>
-      <rule pattern="\n">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="[~!%^&amp;*()+=|\[\]:;,.&lt;&gt;/?-]">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="[{}]">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="@&#34;(&#34;&#34;|[^&#34;])*&#34;">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="\$@?&#34;(&#34;&#34;|[^&#34;])*&#34;">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="&#34;(\\\\|\\&#34;|[^&#34;\n])*[&#34;\n]">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="&#39;\\.&#39;|&#39;[^\\]&#39;">
-        <token type="LiteralStringChar"/>
-      </rule>
-      <rule pattern="0[xX][0-9a-fA-F]+[Ll]?|\d[_\d]*(\.\d*)?([eE][+-]?\d+)?[flFLdD]?">
-        <token type="LiteralNumber"/>
-      </rule>
-      <rule pattern="#[ \t]*(if|endif|else|elif|define|undef|line|error|warning|region|endregion|pragma|nullable)\b[^\n\r]+">
-        <token type="CommentPreproc"/>
-      </rule>
-      <rule pattern="\b(extern)(\s+)(alias)\b">
-        <bygroups>
-          <token type="Keyword"/>
-          <token type="Text"/>
-          <token type="Keyword"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(abstract|as|async|await|base|break|by|case|catch|checked|const|continue|default|delegate|do|else|enum|event|explicit|extern|false|finally|fixed|for|foreach|goto|if|implicit|in|init|internal|is|let|lock|new|null|on|operator|out|override|params|private|protected|public|readonly|ref|return|sealed|sizeof|stackalloc|static|switch|this|throw|true|try|typeof|unchecked|unsafe|virtual|void|while|get|set|new|partial|yield|add|remove|value|alias|ascending|descending|from|group|into|orderby|select|thenby|where|join|equals)\b">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="(global)(::)">
-        <bygroups>
-          <token type="Keyword"/>
-          <token type="Punctuation"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(bool|byte|char|decimal|double|dynamic|float|int|long|object|sbyte|short|string|uint|ulong|ushort|var)\b\??">
-        <token type="KeywordType"/>
-      </rule>
-      <rule pattern="(class|struct|record|interface)(\s+)">
-        <bygroups>
-          <token type="Keyword"/>
-          <token type="Text"/>
-        </bygroups>
-        <push state="class"/>
-      </rule>
-      <rule pattern="(namespace|using)(\s+)">
-        <bygroups>
-          <token type="Keyword"/>
-          <token type="Text"/>
-        </bygroups>
-        <push state="namespace"/>
-      </rule>
-      <rule pattern="@?[_a-zA-Z]\w*">
-        <token type="Name"/>
-      </rule>
-    </state>
-    <state name="class">
-      <rule pattern="@?[_a-zA-Z]\w*">
-        <token type="NameClass"/>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="namespace">
-      <rule pattern="(?=\()">
-        <token type="Text"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="(@?[_a-zA-Z]\w*|\.)+">
-        <token type="NameNamespace"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/css.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/css.xml	(revision 67)
+++ 	(revision )
@@ -1,323 +1,0 @@
-<lexer>
-  <config>
-    <name>CSS</name>
-    <alias>css</alias>
-    <filename>*.css</filename>
-    <mime_type>text/css</mime_type>
-  </config>
-  <rules>
-    <state name="numeric-end">
-      <rule pattern="(vmin|grad|vmax|turn|dppx|dpcm|kHz|dpi|rad|rem|deg|vw|vh|ch|px|mm|cm|in|pt|pc|Hz|ex|em|ms|q|s)\b">
-        <token type="KeywordType"/>
-      </rule>
-      <rule pattern="%">
-        <token type="KeywordType"/>
-      </rule>
-      <rule>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="atrule">
-      <rule pattern="\{">
-        <token type="Punctuation"/>
-        <push state="atcontent"/>
-      </rule>
-      <rule pattern=";">
-        <token type="Punctuation"/>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <include state="basics"/>
-      </rule>
-    </state>
-    <state name="atcontent">
-      <rule>
-        <include state="basics"/>
-      </rule>
-      <rule pattern="\}">
-        <token type="Punctuation"/>
-        <pop depth="2"/>
-      </rule>
-    </state>
-    <state name="common-values">
-      <rule pattern="\s+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="(-webkit-|-khtml-|prince-|-atsc-|-moz-|-rim-|-wap-|-ms-|-xv-|mso-|-ah-|-hp-|-ro-|-tc-|-o-)">
-        <token type="KeywordPseudo"/>
-      </rule>
-      <rule>
-        <include state="urls"/>
-      </rule>
-      <rule pattern="(attr|blackness|blend|blenda|blur|brightness|calc|circle|color-mod|contrast|counter|cubic-bezier|device-cmyk|drop-shadow|ellipse|gray|grayscale|hsl|hsla|hue|hue-rotate|hwb|image|inset|invert|lightness|linear-gradient|matrix|matrix3d|opacity|perspective|polygon|radial-gradient|rect|repeating-linear-gradient|repeating-radial-gradient|rgb|rgba|rotate|rotate3d|rotateX|rotateY|rotateZ|saturate|saturation|scale|scale3d|scaleX|scaleY|scaleZ|sepia|shade|skewX|skewY|steps|tint|toggle|translate|translate3d|translateX|translateY|translateZ|whiteness)(\()">
-        <bygroups>
-          <token type="NameBuiltin"/>
-          <token type="Punctuation"/>
-        </bygroups>
-        <push state="function-start"/>
-      </rule>
-      <rule pattern="([a-zA-Z_][\w-]+)(\()">
-        <bygroups>
-          <token type="NameFunction"/>
-          <token type="Punctuation"/>
-        </bygroups>
-        <push state="function-start"/>
-      </rule>
-      <rule pattern="(use-glyph-orientation|decimal-leading-zero|ruby-base-container|ruby-text-container|table-column-group|table-header-group|geometricPrecision|table-footer-group|optimizeLegibility|alternate-reverse|repeat no-repeat|table-row-group|all-petite-caps|ultra-condensed|extra-condensed|box-decoration|sideways-right|extra-expanded|no-close-quote|all-small-caps|semi-condensed|ultra-expanded|column-reverse|space-between|semi-expanded|table-caption|no-open-quote|sideways-left|double-circle|vertical-text|optimizeSpeed|weight style|currentColor|titling-caps|match-parent|table-column|line-through|inline-block|inline-table|wrap-reverse|avoid-column|manipulation|space-around|context-menu|lower-alpha|row-reverse|not-allowed|content-box|ease-in-out|close-quote|lower-latin|crisp-edges|lower-roman|lower-greek|upper-alpha|upper-latin|upper-roman|nwse-resize|nesw-resize|preserve-3d|inline-flex|petite-caps|color-dodge|descendants|padding-box|capitalize|small-caps|difference|inter-word|step-start|all-scroll|stroke-box|soft-light|margin-box|open-quote|table-cell|row-resize|border-box|hard-light|break-word|color-burn|luminosity|full-width|col-resize|from-image|avoid-page|scale-down|saturation|sans-serif|flex-start|distribute|horizontal|alternate|ruby-text|force-end|list-item|se-resize|mandatory|exclusion|ns-resize|underline|ruby-base|ew-resize|condensed|container|uppercase|no-repeat|nw-resize|table-row|backwards|crosshair|proximity|sw-resize|lowercase|allow-end|each-line|monospace|pixelated|ne-resize|luminance|pan-right|ellipsis|pan-down|pan-left|overline|multiply|progress|relative|infinite|repeat-x|repeat-y|georgian|forwards|flex-end|s-resize|fill-box|expanded|separate|ease-out|sideways|e-resize|step-end|n-resize|collapse|triangle|baseline|view-box|w-resize|armenian|absolute|xx-large|xx-small|vertical|zoom-out|contain|ease-in|running|no-drop|zoom-in|unicase|hanging|smaller|x-large|overlay|compact|lighter|lighten|objects|oblique|x-small|reverse|stretch|upright|cursive|inherit|initial|outside|pointer|decimal|default|justify|visible|balance|isolate|fantasy|paused|static|pan-up|invert|inside|italic|weight|inline|hidden|outset|larger|repeat|always|spaces|sticky|circle|digits|linear|column|smooth|nowrap|bolder|normal|sesame|dashed|groove|darken|bottom|run-in|manual|dotted|double|medium|filled|screen|scroll|center|strict|square|edges|serif|start|thick|first|clone|fixed|slice|small|under|unset|block|color|round|solid|space|right|ridge|blink|below|pan-y|avoid|large|cover|inset|alpha|local|alias|style|loose|table|mixed|pan-x|page|ruby|disc|none|snap|ease|text|show|thin|clip|left|open|wrap|fill|cell|flat|flex|flip|last|both|help|bold|over|hide|wait|icon|move|auto|copy|wavy|top|ltr|row|rtl|end|hue|dot|off|all|ink|to|on)\b">
-        <token type="KeywordConstant"/>
-      </rule>
-      <rule pattern="(cjk-ideographic|katakana-iroha|hiragana-iroha|small-caption|bidi-override|center-right|center-left|text-bottom|message-box|continuous|status-bar|right-side|rightwards|spell-out|left-side|landscape|far-right|leftwards|narrower|portrait|katakana|far-left|text-top|pre-wrap|hiragana|pre-line|silent|x-high|faster|higher|middle|x-soft|behind|x-fast|hebrew|slower|x-loud|super|above|lower|wider|level|aural|embed|x-low|cross|crop|fast|once|high|slow|soft|loud|yes|pre|low|mix)\b">
-        <token type="KeywordConstant"/>
-      </rule>
-      <rule pattern="(lightgoldenrodyellow|mediumspringgreen|mediumaquamarine|mediumslateblue|mediumturquoise|mediumvioletred|lightsteelblue|cornflowerblue|lightslategray|blanchedalmond|mediumseagreen|lightslategrey|darkolivegreen|darkgoldenrod|darkslateblue|lightseagreen|rebeccapurple|darkslategrey|darkslategray|palegoldenrod|paleturquoise|palevioletred|darkturquoise|lavenderblush|antiquewhite|mediumorchid|lightskyblue|mediumpurple|midnightblue|darkseagreen|lemonchiffon|springgreen|yellowgreen|greenyellow|navajowhite|darkmagenta|lightyellow|transparent|lightsalmon|forestgreen|saddlebrown|deepskyblue|floralwhite|dodgerblue|ghostwhite|lightcoral|sandybrown|darkviolet|papayawhip|mediumblue|chartreuse|lightgreen|whitesmoke|aquamarine|darkorange|darksalmon|powderblue|darkorchid|blueviolet|indianred|mintcream|mistyrose|olivedrab|goldenrod|orangered|lawngreen|gainsboro|lightblue|firebrick|lightcyan|peachpuff|lightgray|darkkhaki|lightgrey|darkgreen|rosybrown|royalblue|slateblue|chocolate|cadetblue|burlywood|slategray|slategrey|limegreen|steelblue|turquoise|palegreen|lightpink|aliceblue|moccasin|darkgrey|darkblue|seagreen|lavender|cornsilk|deeppink|seashell|darkgray|honeydew|darkcyan|dimgrey|magenta|crimson|darkred|hotpink|skyblue|oldlace|dimgray|fuchsia|thistle|orchid|indigo|orange|tomato|violet|salmon|yellow|silver|purple|bisque|sienna|maroon|black|linen|azure|white|wheat|khaki|green|olive|ivory|coral|brown|beige|snow|blue|navy|aqua|teal|gray|gold|grey|lime|peru|cyan|pink|plum|tan|red)\b">
-        <token type="KeywordConstant"/>
-      </rule>
-    </state>
-    <state name="root">
-      <rule>
-        <include state="basics"/>
-      </rule>
-    </state>
-    <state name="numeric-values">
-      <rule pattern="\#[a-zA-Z0-9]{1,6}">
-        <token type="LiteralNumberHex"/>
-      </rule>
-      <rule pattern="[+\-]?[0-9]*[.][0-9]+">
-        <token type="LiteralNumberFloat"/>
-        <push state="numeric-end"/>
-      </rule>
-      <rule pattern="[+\-]?[0-9]+">
-        <token type="LiteralNumberInteger"/>
-        <push state="numeric-end"/>
-      </rule>
-    </state>
-    <state name="atparenthesis">
-      <rule>
-        <include state="common-values"/>
-      </rule>
-      <rule pattern="/\*(?:.|\n)*?\*/">
-        <token type="Comment"/>
-      </rule>
-      <rule>
-        <include state="numeric-values"/>
-      </rule>
-      <rule pattern="[*+/-]">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="[,]">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="&#34;(\\\\|\\&#34;|[^&#34;])*&#34;">
-        <token type="LiteralStringDouble"/>
-      </rule>
-      <rule pattern="&#39;(\\\\|\\&#39;|[^&#39;])*&#39;">
-        <token type="LiteralStringSingle"/>
-      </rule>
-      <rule pattern="[a-zA-Z_-]\w*">
-        <token type="Name"/>
-      </rule>
-      <rule pattern="\(">
-        <token type="Punctuation"/>
-        <push state="atparenthesis"/>
-      </rule>
-      <rule pattern="\)">
-        <token type="Punctuation"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="basics">
-      <rule pattern="\s+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="/\*(?:.|\n)*?\*/">
-        <token type="Comment"/>
-      </rule>
-      <rule pattern="\{">
-        <token type="Punctuation"/>
-        <push state="content"/>
-      </rule>
-      <rule pattern="(\:{1,2})([\w-]+)">
-        <bygroups>
-          <token type="Punctuation"/>
-          <token type="NameDecorator"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(\.)([\w-]+)">
-        <bygroups>
-          <token type="Punctuation"/>
-          <token type="NameClass"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(\#)([\w-]+)">
-        <bygroups>
-          <token type="Punctuation"/>
-          <token type="NameNamespace"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(@)([\w-]+)">
-        <bygroups>
-          <token type="Punctuation"/>
-          <token type="Keyword"/>
-        </bygroups>
-        <push state="atrule"/>
-      </rule>
-      <rule pattern="[\w-]+">
-        <token type="NameTag"/>
-      </rule>
-      <rule pattern="[~^*!%&amp;$\[\]()&lt;&gt;|+=@:;,./?-]">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="&#34;(\\\\|\\&#34;|[^&#34;])*&#34;">
-        <token type="LiteralStringDouble"/>
-      </rule>
-      <rule pattern="&#39;(\\\\|\\&#39;|[^&#39;])*&#39;">
-        <token type="LiteralStringSingle"/>
-      </rule>
-    </state>
-    <state name="content">
-      <rule pattern="\s+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="\}">
-        <token type="Punctuation"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern=";">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="^@.*?$">
-        <token type="CommentPreproc"/>
-      </rule>
-      <rule pattern="(-webkit-|-khtml-|prince-|-atsc-|-moz-|-rim-|-wap-|-ms-|-xv-|mso-|-ah-|-hp-|-ro-|-tc-|-o-)">
-        <token type="KeywordPseudo"/>
-      </rule>
-      <rule pattern="(align-content|align-items|align-self|alignment-baseline|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|appearance|azimuth|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|baseline-shift|bookmark-label|bookmark-level|bookmark-state|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-boundary|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-decoration-break|box-shadow|box-sizing|box-snap|box-suppress|break-after|break-before|break-inside|caption-side|caret|caret-animation|caret-color|caret-shape|chains|clear|clip|clip-path|clip-rule|color|color-interpolation-filters|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|counter-set|crop|cue|cue-after|cue-before|cursor|direction|display|dominant-baseline|elevation|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|float-defer|float-offset|float-reference|flood-color|flood-opacity|flow|flow-from|flow-into|font|font-family|font-feature-settings|font-kerning|font-language-override|font-size|font-size-adjust|font-stretch|font-style|font-synthesis|font-variant|font-variant-alternates|font-variant-caps|font-variant-east-asian|font-variant-ligatures|font-variant-numeric|font-variant-position|font-weight|footnote-display|footnote-policy|glyph-orientation-vertical|grid|grid-area|grid-auto-columns|grid-auto-flow|grid-auto-rows|grid-column|grid-column-end|grid-column-gap|grid-column-start|grid-gap|grid-row|grid-row-end|grid-row-gap|grid-row-start|grid-template|grid-template-areas|grid-template-columns|grid-template-rows|hanging-punctuation|height|hyphenate-character|hyphenate-limit-chars|hyphenate-limit-last|hyphenate-limit-lines|hyphenate-limit-zone|hyphens|image-orientation|image-resolution|initial-letter|initial-letter-align|initial-letter-wrap|isolation|justify-content|justify-items|justify-self|left|letter-spacing|lighting-color|line-break|line-grid|line-height|line-snap|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|marker-side|marquee-direction|marquee-loop|marquee-speed|marquee-style|mask|mask-border|mask-border-mode|mask-border-outset|mask-border-repeat|mask-border-slice|mask-border-source|mask-border-width|mask-clip|mask-composite|mask-image|mask-mode|mask-origin|mask-position|mask-repeat|mask-size|mask-type|max-height|max-lines|max-width|min-height|min-width|mix-blend-mode|motion|motion-offset|motion-path|motion-rotation|move-to|nav-down|nav-left|nav-right|nav-up|object-fit|object-position|offset-after|offset-before|offset-end|offset-start|opacity|order|orphans|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-style|overflow-wrap|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page|page-break-after|page-break-before|page-break-inside|page-policy|pause|pause-after|pause-before|perspective|perspective-origin|pitch|pitch-range|play-during|polar-angle|polar-distance|position|presentation-level|quotes|region-fragment|resize|rest|rest-after|rest-before|richness|right|rotation|rotation-point|ruby-align|ruby-merge|ruby-position|running|scroll-snap-coordinate|scroll-snap-destination|scroll-snap-points-x|scroll-snap-points-y|scroll-snap-type|shape-image-threshold|shape-inside|shape-margin|shape-outside|size|speak|speak-as|speak-header|speak-numeral|speak-punctuation|speech-rate|stress|string-set|tab-size|table-layout|text-align|text-align-last|text-combine-upright|text-decoration|text-decoration-color|text-decoration-line|text-decoration-skip|text-decoration-style|text-emphasis|text-emphasis-color|text-emphasis-position|text-emphasis-style|text-indent|text-justify|text-orientation|text-overflow|text-shadow|text-space-collapse|text-space-trim|text-spacing|text-transform|text-underline-position|text-wrap|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|user-select|vertical-align|visibility|voice-balance|voice-duration|voice-family|voice-pitch|voice-range|voice-rate|voice-stress|voice-volume|volume|white-space|widows|width|will-change|word-break|word-spacing|word-wrap|wrap-after|wrap-before|wrap-flow|wrap-inside|wrap-through|writing-mode|z-index)(\s*)(\:)">
-        <bygroups>
-          <token type="Keyword"/>
-          <token type="Text"/>
-          <token type="Punctuation"/>
-        </bygroups>
-        <push state="value-start"/>
-      </rule>
-      <rule pattern="(--[a-zA-Z_][\w-]*)(\s*)(\:)">
-        <bygroups>
-          <token type="NameVariable"/>
-          <token type="Text"/>
-          <token type="Punctuation"/>
-        </bygroups>
-        <push state="value-start"/>
-      </rule>
-      <rule pattern="([a-zA-Z_][\w-]*)(\s*)(\:)">
-        <bygroups>
-          <token type="Name"/>
-          <token type="Text"/>
-          <token type="Punctuation"/>
-        </bygroups>
-        <push state="value-start"/>
-      </rule>
-      <rule pattern="/\*(?:.|\n)*?\*/">
-        <token type="Comment"/>
-      </rule>
-    </state>
-    <state name="value-start">
-      <rule>
-        <include state="common-values"/>
-      </rule>
-      <rule pattern="(color-interpolation-filters|glyph-orientation-vertical|border-bottom-right-radius|transition-timing-function|animation-iteration-count|animation-timing-function|border-bottom-left-radius|font-variant-east-asian|font-variant-alternates|border-top-right-radius|text-underline-position|scroll-snap-destination|font-language-override|text-emphasis-position|border-top-left-radius|font-variant-ligatures|scroll-snap-coordinate|hyphenate-limit-lines|background-attachment|font-feature-settings|grid-template-columns|text-decoration-style|font-variant-position|hyphenate-limit-chars|text-decoration-color|shape-image-threshold|background-blend-mode|hyphenate-limit-zone|initial-letter-align|text-combine-upright|hyphenate-limit-last|text-decoration-line|box-decoration-break|text-decoration-skip|animation-play-state|scroll-snap-points-y|font-variant-numeric|scroll-snap-points-x|animation-direction|border-bottom-width|hanging-punctuation|border-bottom-color|border-image-outset|border-image-repeat|list-style-position|border-image-source|initial-letter-wrap|text-space-collapse|background-position|hyphenate-character|grid-template-areas|backface-visibility|text-emphasis-style|transition-duration|animation-fill-mode|transition-property|text-emphasis-color|border-bottom-style|border-image-slice|mask-border-outset|border-right-width|border-right-style|perspective-origin|alignment-baseline|border-right-color|presentation-level|grid-template-rows|animation-duration|mask-border-source|mask-border-repeat|border-image-width|column-rule-color|speak-punctuation|dominant-baseline|marquee-direction|column-rule-width|mask-border-slice|border-left-color|mask-border-width|grid-auto-columns|counter-increment|border-left-style|grid-column-start|image-orientation|background-repeat|font-variant-caps|page-break-inside|page-break-before|background-origin|column-rule-style|border-left-width|list-style-image|page-break-after|transform-origin|border-top-color|border-top-style|border-top-width|footnote-display|background-color|image-resolution|background-image|transition-delay|text-orientation|font-size-adjust|mask-border-mode|scroll-snap-type|animation-delay|text-align-last|grid-column-end|list-style-type|text-space-trim|grid-column-gap|justify-content|text-decoration|footnote-policy|caret-animation|border-collapse|border-boundary|region-fragment|background-clip|background-size|float-reference|motion-rotation|object-position|transform-style|overflow-style|border-spacing|baseline-shift|initial-letter|bookmark-label|grid-row-start|animation-name|bookmark-level|flex-direction|letter-spacing|bookmark-state|mask-composite|grid-auto-rows|mix-blend-mode|outline-offset|padding-bottom|polar-distance|vertical-align|voice-duration|grid-auto-flow|rotation-point|text-transform|font-synthesis|lighting-color|speak-numeral|counter-reset|outline-style|border-bottom|outline-color|marquee-speed|ruby-position|mask-position|overflow-wrap|margin-bottom|text-overflow|motion-offset|align-content|grid-template|voice-balance|padding-right|border-radius|justify-items|shape-outside|outline-width|flood-opacity|text-emphasis|marquee-style|offset-before|text-spacing|offset-after|speak-header|float-offset|break-before|text-justify|padding-left|shape-margin|offset-start|justify-self|shape-inside|word-spacing|break-inside|caption-side|border-right|wrap-through|border-width|unicode-bidi|grid-row-gap|grid-row-end|voice-family|column-count|table-layout|pause-before|margin-right|box-suppress|font-kerning|font-stretch|marquee-loop|border-style|font-variant|voice-volume|writing-mode|voice-stress|border-image|border-color|column-width|voice-range|counter-set|rest-before|mask-border|border-left|polar-angle|mask-origin|text-shadow|mask-repeat|play-during|pitch-range|perspective|margin-left|pause-after|page-policy|white-space|voice-pitch|will-change|empty-cells|motion-path|align-items|caret-shape|padding-top|column-fill|caret-color|flex-shrink|line-height|text-indent|wrap-before|float-defer|wrap-inside|speech-rate|column-rule|user-select|font-family|break-after|grid-column|column-span|font-weight|marker-side|flood-color|rest-after|box-sizing|overflow-x|overflow-y|wrap-after|align-self|offset-end|object-fit|visibility|appearance|column-gap|border-top|list-style|min-height|flex-basis|word-break|box-shadow|max-height|background|line-break|text-align|margin-top|ruby-merge|ruby-align|font-style|string-set|cue-before|mask-image|transition|voice-rate|mask-clip|cue-after|font-size|text-wrap|clip-path|grid-area|clip-rule|mask-mode|direction|mask-size|elevation|flow-from|mask-type|line-grid|transform|max-width|word-wrap|flow-into|min-width|flex-flow|flex-grow|nav-right|flex-wrap|animation|wrap-flow|isolation|max-lines|line-snap|tab-size|speak-as|rotation|grid-gap|richness|box-snap|position|overflow|nav-left|grid-row|nav-down|opacity|outline|padding|hyphens|z-index|azimuth|move-to|running|display|columns|content|orphans|resize|quotes|volume|motion|border|margin|chains|filter|nav-up|stress|height|cursor|bottom|widows|right|speak|color|pitch|caret|clear|width|pause|float|order|left|clip|grid|crop|font|flex|mask|size|page|flow|rest|all|top|cue)\b">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="\!important">
-        <token type="CommentPreproc"/>
-      </rule>
-      <rule pattern="/\*(?:.|\n)*?\*/">
-        <token type="Comment"/>
-      </rule>
-      <rule>
-        <include state="numeric-values"/>
-      </rule>
-      <rule pattern="[~^*!%&amp;&lt;&gt;|+=@:./?-]+">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="[\[\](),]+">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="&#34;(\\\\|\\&#34;|[^&#34;])*&#34;">
-        <token type="LiteralStringDouble"/>
-      </rule>
-      <rule pattern="&#39;(\\\\|\\&#39;|[^&#39;])*&#39;">
-        <token type="LiteralStringSingle"/>
-      </rule>
-      <rule pattern="[a-zA-Z_][\w-]*">
-        <token type="Name"/>
-      </rule>
-      <rule pattern=";">
-        <token type="Punctuation"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="\}">
-        <token type="Punctuation"/>
-        <pop depth="2"/>
-      </rule>
-    </state>
-    <state name="function-start">
-      <rule>
-        <include state="common-values"/>
-      </rule>
-      <rule pattern="/\*(?:.|\n)*?\*/">
-        <token type="Comment"/>
-      </rule>
-      <rule>
-        <include state="numeric-values"/>
-      </rule>
-      <rule pattern="[*+/-]">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="[,]">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="&#34;(\\\\|\\&#34;|[^&#34;])*&#34;">
-        <token type="LiteralStringDouble"/>
-      </rule>
-      <rule pattern="&#39;(\\\\|\\&#39;|[^&#39;])*&#39;">
-        <token type="LiteralStringSingle"/>
-      </rule>
-      <rule pattern="[a-zA-Z_-]\w*">
-        <token type="Name"/>
-      </rule>
-      <rule pattern="\(">
-        <token type="Punctuation"/>
-        <push state="atparenthesis"/>
-      </rule>
-      <rule pattern="\)">
-        <token type="Punctuation"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="urls">
-      <rule pattern="(url)(\()(&#34;.*?&#34;)(\))">
-        <bygroups>
-          <token type="NameBuiltin"/>
-          <token type="Punctuation"/>
-          <token type="LiteralStringDouble"/>
-          <token type="Punctuation"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(url)(\()(&#39;.*?&#39;)(\))">
-        <bygroups>
-          <token type="NameBuiltin"/>
-          <token type="Punctuation"/>
-          <token type="LiteralStringSingle"/>
-          <token type="Punctuation"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(url)(\()(.*?)(\))">
-        <bygroups>
-          <token type="NameBuiltin"/>
-          <token type="Punctuation"/>
-          <token type="LiteralStringOther"/>
-          <token type="Punctuation"/>
-        </bygroups>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/cython.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/cython.xml	(revision 67)
+++ 	(revision )
@@ -1,372 +1,0 @@
-<lexer>
-  <config>
-    <name>Cython</name>
-    <alias>cython</alias>
-    <alias>pyx</alias>
-    <alias>pyrex</alias>
-    <filename>*.pyx</filename>
-    <filename>*.pxd</filename>
-    <filename>*.pxi</filename>
-    <mime_type>text/x-cython</mime_type>
-    <mime_type>application/x-cython</mime_type>
-  </config>
-  <rules>
-    <state name="funcname">
-      <rule pattern="[a-zA-Z_]\w*">
-        <token type="NameFunction"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="root">
-      <rule pattern="\n">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="^(\s*)(&#34;&#34;&#34;(?:.|\n)*?&#34;&#34;&#34;)">
-        <bygroups>
-          <token type="Text"/>
-          <token type="LiteralStringDoc"/>
-        </bygroups>
-      </rule>
-      <rule pattern="^(\s*)(&#39;&#39;&#39;(?:.|\n)*?&#39;&#39;&#39;)">
-        <bygroups>
-          <token type="Text"/>
-          <token type="LiteralStringDoc"/>
-        </bygroups>
-      </rule>
-      <rule pattern="[^\S\n]+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="#.*$">
-        <token type="Comment"/>
-      </rule>
-      <rule pattern="[]{}:(),;[]">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="\\\n">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="\\">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="(in|is|and|or|not)\b">
-        <token type="OperatorWord"/>
-      </rule>
-      <rule pattern="(&lt;)([a-zA-Z0-9.?]+)(&gt;)">
-        <bygroups>
-          <token type="Punctuation"/>
-          <token type="KeywordType"/>
-          <token type="Punctuation"/>
-        </bygroups>
-      </rule>
-      <rule pattern="!=|==|&lt;&lt;|&gt;&gt;|[-~+/*%=&lt;&gt;&amp;^|.?]">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="(from)(\d+)(&lt;=)(\s+)(&lt;)(\d+)(:)">
-        <bygroups>
-          <token type="Keyword"/>
-          <token type="LiteralNumberInteger"/>
-          <token type="Operator"/>
-          <token type="Name"/>
-          <token type="Operator"/>
-          <token type="Name"/>
-          <token type="Punctuation"/>
-        </bygroups>
-      </rule>
-      <rule>
-        <include state="keywords"/>
-      </rule>
-      <rule pattern="(def|property)(\s+)">
-        <bygroups>
-          <token type="Keyword"/>
-          <token type="Text"/>
-        </bygroups>
-        <push state="funcname"/>
-      </rule>
-      <rule pattern="(cp?def)(\s+)">
-        <bygroups>
-          <token type="Keyword"/>
-          <token type="Text"/>
-        </bygroups>
-        <push state="cdef"/>
-      </rule>
-      <rule pattern="(cdef)(:)">
-        <bygroups>
-          <token type="Keyword"/>
-          <token type="Punctuation"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(class|struct)(\s+)">
-        <bygroups>
-          <token type="Keyword"/>
-          <token type="Text"/>
-        </bygroups>
-        <push state="classname"/>
-      </rule>
-      <rule pattern="(from)(\s+)">
-        <bygroups>
-          <token type="Keyword"/>
-          <token type="Text"/>
-        </bygroups>
-        <push state="fromimport"/>
-      </rule>
-      <rule pattern="(c?import)(\s+)">
-        <bygroups>
-          <token type="Keyword"/>
-          <token type="Text"/>
-        </bygroups>
-        <push state="import"/>
-      </rule>
-      <rule>
-        <include state="builtins"/>
-      </rule>
-      <rule>
-        <include state="backtick"/>
-      </rule>
-      <rule pattern="(?:[rR]|[uU][rR]|[rR][uU])&#34;&#34;&#34;">
-        <token type="LiteralString"/>
-        <push state="tdqs"/>
-      </rule>
-      <rule pattern="(?:[rR]|[uU][rR]|[rR][uU])&#39;&#39;&#39;">
-        <token type="LiteralString"/>
-        <push state="tsqs"/>
-      </rule>
-      <rule pattern="(?:[rR]|[uU][rR]|[rR][uU])&#34;">
-        <token type="LiteralString"/>
-        <push state="dqs"/>
-      </rule>
-      <rule pattern="(?:[rR]|[uU][rR]|[rR][uU])&#39;">
-        <token type="LiteralString"/>
-        <push state="sqs"/>
-      </rule>
-      <rule pattern="[uU]?&#34;&#34;&#34;">
-        <token type="LiteralString"/>
-        <combined state="stringescape" state="tdqs"/>
-      </rule>
-      <rule pattern="[uU]?&#39;&#39;&#39;">
-        <token type="LiteralString"/>
-        <combined state="stringescape" state="tsqs"/>
-      </rule>
-      <rule pattern="[uU]?&#34;">
-        <token type="LiteralString"/>
-        <combined state="stringescape" state="dqs"/>
-      </rule>
-      <rule pattern="[uU]?&#39;">
-        <token type="LiteralString"/>
-        <combined state="stringescape" state="sqs"/>
-      </rule>
-      <rule>
-        <include state="name"/>
-      </rule>
-      <rule>
-        <include state="numbers"/>
-      </rule>
-    </state>
-    <state name="stringescape">
-      <rule pattern="\\([\\abfnrtv&#34;\&#39;]|\n|N\{.*?\}|u[a-fA-F0-9]{4}|U[a-fA-F0-9]{8}|x[a-fA-F0-9]{2}|[0-7]{1,3})">
-        <token type="LiteralStringEscape"/>
-      </rule>
-    </state>
-    <state name="strings">
-      <rule pattern="%(\([a-zA-Z0-9]+\))?[-#0 +]*([0-9]+|[*])?(\.([0-9]+|[*]))?[hlL]?[E-GXc-giorsux%]">
-        <token type="LiteralStringInterpol"/>
-      </rule>
-      <rule pattern="[^\\\&#39;&#34;%\n]+">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="[\&#39;&#34;\\]">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="%">
-        <token type="LiteralString"/>
-      </rule>
-    </state>
-    <state name="backtick">
-      <rule pattern="`.*?`">
-        <token type="LiteralStringBacktick"/>
-      </rule>
-    </state>
-    <state name="numbers">
-      <rule pattern="(\d+\.?\d*|\d*\.\d+)([eE][+-]?[0-9]+)?">
-        <token type="LiteralNumberFloat"/>
-      </rule>
-      <rule pattern="0\d+">
-        <token type="LiteralNumberOct"/>
-      </rule>
-      <rule pattern="0[xX][a-fA-F0-9]+">
-        <token type="LiteralNumberHex"/>
-      </rule>
-      <rule pattern="\d+L">
-        <token type="LiteralNumberIntegerLong"/>
-      </rule>
-      <rule pattern="\d+">
-        <token type="LiteralNumberInteger"/>
-      </rule>
-    </state>
-    <state name="keywords">
-      <rule pattern="(continue|ctypedef|except\?|include|finally|global|return|lambda|assert|except|print|nogil|while|fused|yield|break|raise|exec|else|elif|pass|with|gil|for|try|del|by|as|if)\b">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="(DEF|IF|ELIF|ELSE)\b">
-        <token type="CommentPreproc"/>
-      </rule>
-    </state>
-    <state name="fromimport">
-      <rule pattern="(\s+)(c?import)\b">
-        <bygroups>
-          <token type="Text"/>
-          <token type="Keyword"/>
-        </bygroups>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="[a-zA-Z_.][\w.]*">
-        <token type="NameNamespace"/>
-      </rule>
-      <rule>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="nl">
-      <rule pattern="\n">
-        <token type="LiteralString"/>
-      </rule>
-    </state>
-    <state name="dqs">
-      <rule pattern="&#34;">
-        <token type="LiteralString"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="\\\\|\\&#34;|\\\n">
-        <token type="LiteralStringEscape"/>
-      </rule>
-      <rule>
-        <include state="strings"/>
-      </rule>
-    </state>
-    <state name="tsqs">
-      <rule pattern="&#39;&#39;&#39;">
-        <token type="LiteralString"/>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <include state="strings"/>
-      </rule>
-      <rule>
-        <include state="nl"/>
-      </rule>
-    </state>
-    <state name="import">
-      <rule pattern="(\s+)(as)(\s+)">
-        <bygroups>
-          <token type="Text"/>
-          <token type="Keyword"/>
-          <token type="Text"/>
-        </bygroups>
-      </rule>
-      <rule pattern="[a-zA-Z_][\w.]*">
-        <token type="NameNamespace"/>
-      </rule>
-      <rule pattern="(\s*)(,)(\s*)">
-        <bygroups>
-          <token type="Text"/>
-          <token type="Operator"/>
-          <token type="Text"/>
-        </bygroups>
-      </rule>
-      <rule>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="name">
-      <rule pattern="@\w+">
-        <token type="NameDecorator"/>
-      </rule>
-      <rule pattern="[a-zA-Z_]\w*">
-        <token type="Name"/>
-      </rule>
-    </state>
-    <state name="cdef">
-      <rule pattern="(public|readonly|extern|api|inline)\b">
-        <token type="KeywordReserved"/>
-      </rule>
-      <rule pattern="(struct|enum|union|class)\b">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="([a-zA-Z_]\w*)(\s*)(?=[(:#=]|$)">
-        <bygroups>
-          <token type="NameFunction"/>
-          <token type="Text"/>
-        </bygroups>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="([a-zA-Z_]\w*)(\s*)(,)">
-        <bygroups>
-          <token type="NameFunction"/>
-          <token type="Text"/>
-          <token type="Punctuation"/>
-        </bygroups>
-      </rule>
-      <rule pattern="from\b">
-        <token type="Keyword"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="as\b">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern=":">
-        <token type="Punctuation"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="(?=[&#34;\&#39;])">
-        <token type="Text"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="[a-zA-Z_]\w*">
-        <token type="KeywordType"/>
-      </rule>
-      <rule pattern=".">
-        <token type="Text"/>
-      </rule>
-    </state>
-    <state name="classname">
-      <rule pattern="[a-zA-Z_]\w*">
-        <token type="NameClass"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="sqs">
-      <rule pattern="&#39;">
-        <token type="LiteralString"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="\\\\|\\&#39;|\\\n">
-        <token type="LiteralStringEscape"/>
-      </rule>
-      <rule>
-        <include state="strings"/>
-      </rule>
-    </state>
-    <state name="tdqs">
-      <rule pattern="&#34;&#34;&#34;">
-        <token type="LiteralString"/>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <include state="strings"/>
-      </rule>
-      <rule>
-        <include state="nl"/>
-      </rule>
-    </state>
-    <state name="builtins">
-      <rule pattern="(?&lt;!\.)(staticmethod|classmethod|__import__|issubclass|isinstance|basestring|bytearray|raw_input|frozenset|enumerate|property|unsigned|reversed|callable|execfile|hasattr|compile|complex|delattr|setattr|unicode|globals|getattr|reload|divmod|xrange|unichr|filter|reduce|buffer|intern|coerce|sorted|locals|object|round|input|range|super|tuple|bytes|float|slice|apply|bool|long|exit|vars|file|next|type|iter|open|dict|repr|hash|list|eval|oct|map|zip|int|hex|set|sum|chr|cmp|any|str|pow|ord|dir|len|min|all|abs|max|bin|id)\b">
-        <token type="NameBuiltin"/>
-      </rule>
-      <rule pattern="(?&lt;!\.)(self|None|Ellipsis|NotImplemented|False|True|NULL)\b">
-        <token type="NameBuiltinPseudo"/>
-      </rule>
-      <rule pattern="(?&lt;!\.)(PendingDeprecationWarning|UnicodeTranslateError|NotImplementedError|FloatingPointError|DeprecationWarning|UnicodeDecodeError|UnicodeEncodeError|UnboundLocalError|KeyboardInterrupt|ZeroDivisionError|IndentationError|EnvironmentError|OverflowWarning|ArithmeticError|RuntimeWarning|UnicodeWarning|AttributeError|AssertionError|NotImplemented|ReferenceError|StopIteration|SyntaxWarning|OverflowError|GeneratorExit|FutureWarning|BaseException|ImportWarning|StandardError|RuntimeError|UnicodeError|LookupError|ImportError|SyntaxError|MemoryError|SystemError|UserWarning|SystemExit|ValueError|IndexError|NameError|TypeError|Exception|KeyError|EOFError|TabError|OSError|Warning|IOError)\b">
-        <token type="NameException"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/d.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/d.xml	(revision 67)
+++ 	(revision )
@@ -1,130 +1,0 @@
-<lexer>
-  <config>
-    <name>D</name>
-    <alias>d</alias>
-    <filename>*.d</filename>
-    <filename>*.di</filename>
-    <mime_type>text/x-d</mime_type>
-    <ensure_nl>true</ensure_nl>
-  </config>
-  <rules>
-    <state name="root">
-      <rule pattern="[^\S\n]+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="//.*?\n">
-        <token type="CommentSingle"/>
-      </rule>
-      <rule pattern="/\*.*?\*/">
-        <token type="CommentMultiline"/>
-      </rule>
-      <rule pattern="/\+.*?\+/">
-        <token type="CommentMultiline"/>
-      </rule>
-      <rule pattern="(asm|assert|body|break|case|cast|catch|continue|default|debug|delete|deprecated|do|else|finally|for|foreach|foreach_reverse|goto|if|in|invariant|is|macro|mixin|new|out|pragma|return|super|switch|this|throw|try|version|while|with)\b">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="__(FILE|FILE_FULL_PATH|MODULE|LINE|FUNCTION|PRETTY_FUNCTION|DATE|EOF|TIME|TIMESTAMP|VENDOR|VERSION)__\b">
-        <token type="NameBuiltin"/>
-      </rule>
-      <rule pattern="__(traits|vector|parameters)\b">
-        <token type="NameBuiltin"/>
-      </rule>
-      <rule pattern="((?:(?:[^\W\d]|\$)[\w.\[\]$&lt;&gt;]*\s+)+?)((?:[^\W\d]|\$)[\w$]*)(\s*)(\()">
-        <bygroups>
-          <usingself state="root"/>
-          <token type="NameFunction"/>
-          <token type="Text"/>
-          <token type="Operator"/>
-        </bygroups>
-      </rule>
-      <rule pattern="@[\w.]*">
-        <token type="NameDecorator"/>
-      </rule>
-      <rule pattern="(abstract|auto|alias|align|const|delegate|enum|export|final|function|inout|lazy|nothrow|override|package|private|protected|public|pure|static|synchronized|template|volatile|__gshared)\b">
-        <token type="KeywordDeclaration"/>
-      </rule>
-      <rule pattern="(void|bool|byte|ubyte|short|ushort|int|uint|long|ulong|cent|ucent|float|double|real|ifloat|idouble|ireal|cfloat|cdouble|creal|char|wchar|dchar|string|wstring|dstring)\b">
-        <token type="KeywordType"/>
-      </rule>
-      <rule pattern="(module)(\s+)">
-        <bygroups>
-          <token type="KeywordNamespace"/>
-          <token type="Text"/>
-        </bygroups>
-        <push state="import"/>
-      </rule>
-      <rule pattern="(true|false|null)\b">
-        <token type="KeywordConstant"/>
-      </rule>
-      <rule pattern="(class|interface|struct|template|union)(\s+)">
-        <bygroups>
-          <token type="KeywordDeclaration"/>
-          <token type="Text"/>
-        </bygroups>
-        <push state="class"/>
-      </rule>
-      <rule pattern="(import)(\s+)">
-        <bygroups>
-          <token type="KeywordNamespace"/>
-          <token type="Text"/>
-        </bygroups>
-        <push state="import"/>
-      </rule>
-      <rule pattern="[qr]?&#34;(\\\\|\\&#34;|[^&#34;])*&#34;[cwd]?">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="(`)([^`]*)(`)[cwd]?">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="&#39;\\.&#39;|&#39;[^\\]&#39;|&#39;\\u[0-9a-fA-F]{4}&#39;">
-        <token type="LiteralStringChar"/>
-      </rule>
-      <rule pattern="(\.)((?:[^\W\d]|\$)[\w$]*)">
-        <bygroups>
-          <token type="Operator"/>
-          <token type="NameAttribute"/>
-        </bygroups>
-      </rule>
-      <rule pattern="^\s*([^\W\d]|\$)[\w$]*:">
-        <token type="NameLabel"/>
-      </rule>
-      <rule pattern="([0-9][0-9_]*\.([0-9][0-9_]*)?|\.[0-9][0-9_]*)([eE][+\-]?[0-9][0-9_]*)?[fFL]?i?|[0-9][eE][+\-]?[0-9][0-9_]*[fFL]?|[0-9]([eE][+\-]?[0-9][0-9_]*)?[fFL]|0[xX]([0-9a-fA-F][0-9a-fA-F_]*\.?|([0-9a-fA-F][0-9a-fA-F_]*)?\.[0-9a-fA-F][0-9a-fA-F_]*)[pP][+\-]?[0-9][0-9_]*[fFL]?">
-        <token type="LiteralNumberFloat"/>
-      </rule>
-      <rule pattern="0[xX][0-9a-fA-F][0-9a-fA-F_]*[lL]?">
-        <token type="LiteralNumberHex"/>
-      </rule>
-      <rule pattern="0[bB][01][01_]*[lL]?">
-        <token type="LiteralNumberBin"/>
-      </rule>
-      <rule pattern="0[0-7_]+[lL]?">
-        <token type="LiteralNumberOct"/>
-      </rule>
-      <rule pattern="0|[1-9][0-9_]*[lL]?">
-        <token type="LiteralNumberInteger"/>
-      </rule>
-      <rule pattern="([~^*!%&amp;\[\](){}&lt;&gt;|+=:;,./?-]|q{)">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="([^\W\d]|\$)[\w$]*">
-        <token type="Name"/>
-      </rule>
-      <rule pattern="\n">
-        <token type="Text"/>
-      </rule>
-    </state>
-    <state name="class">
-      <rule pattern="([^\W\d]|\$)[\w$]*">
-        <token type="NameClass"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="import">
-      <rule pattern="[\w.]+\*?">
-        <token type="NameNamespace"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/dart.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/dart.xml	(revision 67)
+++ 	(revision )
@@ -1,213 +1,0 @@
-<lexer>
-  <config>
-    <name>Dart</name>
-    <alias>dart</alias>
-    <filename>*.dart</filename>
-    <mime_type>text/x-dart</mime_type>
-    <dot_all>true</dot_all>
-  </config>
-  <rules>
-    <state name="string_double_multiline">
-      <rule pattern="&#34;&#34;&#34;">
-        <token type="LiteralStringDouble"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="[^&#34;$\\]+">
-        <token type="LiteralStringDouble"/>
-      </rule>
-      <rule>
-        <include state="string_common"/>
-      </rule>
-      <rule pattern="(\$|\&#34;)+">
-        <token type="LiteralStringDouble"/>
-      </rule>
-    </state>
-    <state name="class">
-      <rule pattern="[a-zA-Z_$]\w*">
-        <token type="NameClass"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="import_decl">
-      <rule>
-        <include state="string_literal"/>
-      </rule>
-      <rule pattern="\s+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="\b(as|show|hide)\b">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="[a-zA-Z_$]\w*">
-        <token type="Name"/>
-      </rule>
-      <rule pattern="\,">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="\;">
-        <token type="Punctuation"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="string_single_multiline">
-      <rule pattern="&#39;&#39;&#39;">
-        <token type="LiteralStringSingle"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="[^\&#39;$\\]+">
-        <token type="LiteralStringSingle"/>
-      </rule>
-      <rule>
-        <include state="string_common"/>
-      </rule>
-      <rule pattern="(\$|\&#39;)+">
-        <token type="LiteralStringSingle"/>
-      </rule>
-    </state>
-    <state name="root">
-      <rule>
-        <include state="string_literal"/>
-      </rule>
-      <rule pattern="#!(.*?)$">
-        <token type="CommentPreproc"/>
-      </rule>
-      <rule pattern="\b(import|export)\b">
-        <token type="Keyword"/>
-        <push state="import_decl"/>
-      </rule>
-      <rule pattern="\b(library|source|part of|part)\b">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="[^\S\n]+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="//.*?\n">
-        <token type="CommentSingle"/>
-      </rule>
-      <rule pattern="/\*.*?\*/">
-        <token type="CommentMultiline"/>
-      </rule>
-      <rule pattern="\b(class)\b(\s+)">
-        <bygroups>
-          <token type="KeywordDeclaration"/>
-          <token type="Text"/>
-        </bygroups>
-        <push state="class"/>
-      </rule>
-      <rule pattern="\b(assert|break|case|catch|continue|default|do|else|finally|for|if|in|is|new|return|super|switch|this|throw|try|while)\b">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="\b(abstract|async|await|const|extends|factory|final|get|implements|native|operator|required|set|static|sync|typedef|var|with|yield)\b">
-        <token type="KeywordDeclaration"/>
-      </rule>
-      <rule pattern="\b(bool|double|dynamic|int|num|Object|String|void)\b">
-        <token type="KeywordType"/>
-      </rule>
-      <rule pattern="\b(false|null|true)\b">
-        <token type="KeywordConstant"/>
-      </rule>
-      <rule pattern="[~!%^&amp;*+=|?:&lt;&gt;/-]|as\b">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="[a-zA-Z_$]\w*:">
-        <token type="NameLabel"/>
-      </rule>
-      <rule pattern="[a-zA-Z_$]\w*">
-        <token type="Name"/>
-      </rule>
-      <rule pattern="[(){}\[\],.;]">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="0[xX][0-9a-fA-F]+">
-        <token type="LiteralNumberHex"/>
-      </rule>
-      <rule pattern="\d+(\.\d*)?([eE][+-]?\d+)?">
-        <token type="LiteralNumber"/>
-      </rule>
-      <rule pattern="\.\d+([eE][+-]?\d+)?">
-        <token type="LiteralNumber"/>
-      </rule>
-      <rule pattern="\n">
-        <token type="Text"/>
-      </rule>
-    </state>
-    <state name="string_literal">
-      <rule pattern="r&#34;&#34;&#34;([\w\W]*?)&#34;&#34;&#34;">
-        <token type="LiteralStringDouble"/>
-      </rule>
-      <rule pattern="r&#39;&#39;&#39;([\w\W]*?)&#39;&#39;&#39;">
-        <token type="LiteralStringSingle"/>
-      </rule>
-      <rule pattern="r&#34;(.*?)&#34;">
-        <token type="LiteralStringDouble"/>
-      </rule>
-      <rule pattern="r&#39;(.*?)&#39;">
-        <token type="LiteralStringSingle"/>
-      </rule>
-      <rule pattern="&#34;&#34;&#34;">
-        <token type="LiteralStringDouble"/>
-        <push state="string_double_multiline"/>
-      </rule>
-      <rule pattern="&#39;&#39;&#39;">
-        <token type="LiteralStringSingle"/>
-        <push state="string_single_multiline"/>
-      </rule>
-      <rule pattern="&#34;">
-        <token type="LiteralStringDouble"/>
-        <push state="string_double"/>
-      </rule>
-      <rule pattern="&#39;">
-        <token type="LiteralStringSingle"/>
-        <push state="string_single"/>
-      </rule>
-    </state>
-    <state name="string_common">
-      <rule pattern="\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|u\{[0-9A-Fa-f]*\}|[a-z&#39;\&#34;$\\])">
-        <token type="LiteralStringEscape"/>
-      </rule>
-      <rule pattern="(\$)([a-zA-Z_]\w*)">
-        <bygroups>
-          <token type="LiteralStringInterpol"/>
-          <token type="Name"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(\$\{)(.*?)(\})">
-        <bygroups>
-          <token type="LiteralStringInterpol"/>
-          <usingself state="root"/>
-          <token type="LiteralStringInterpol"/>
-        </bygroups>
-      </rule>
-    </state>
-    <state name="string_double">
-      <rule pattern="&#34;">
-        <token type="LiteralStringDouble"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="[^&#34;$\\\n]+">
-        <token type="LiteralStringDouble"/>
-      </rule>
-      <rule>
-        <include state="string_common"/>
-      </rule>
-      <rule pattern="\$+">
-        <token type="LiteralStringDouble"/>
-      </rule>
-    </state>
-    <state name="string_single">
-      <rule pattern="&#39;">
-        <token type="LiteralStringSingle"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="[^&#39;$\\\n]+">
-        <token type="LiteralStringSingle"/>
-      </rule>
-      <rule>
-        <include state="string_common"/>
-      </rule>
-      <rule pattern="\$+">
-        <token type="LiteralStringSingle"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/diff.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/diff.xml	(revision 67)
+++ 	(revision )
@@ -1,40 +1,0 @@
-<lexer>
-  <config>
-    <name>Diff</name>
-    <alias>diff</alias>
-    <alias>udiff</alias>
-    <filename>*.diff</filename>
-    <filename>*.patch</filename>
-    <mime_type>text/x-diff</mime_type>
-    <mime_type>text/x-patch</mime_type>
-    <ensure_nl>true</ensure_nl>
-  </config>
-  <rules>
-    <state name="root">
-      <rule pattern=" .*\n">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="\+.*\n">
-        <token type="GenericInserted"/>
-      </rule>
-      <rule pattern="-.*\n">
-        <token type="GenericDeleted"/>
-      </rule>
-      <rule pattern="!.*\n">
-        <token type="GenericStrong"/>
-      </rule>
-      <rule pattern="@.*\n">
-        <token type="GenericSubheading"/>
-      </rule>
-      <rule pattern="([Ii]ndex|diff).*\n">
-        <token type="GenericHeading"/>
-      </rule>
-      <rule pattern="=.*\n">
-        <token type="GenericHeading"/>
-      </rule>
-      <rule pattern=".*\n">
-        <token type="Text"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/django_jinja.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/django_jinja.xml	(revision 67)
+++ 	(revision )
@@ -1,153 +1,0 @@
-<lexer>
-  <config>
-    <name>Django/Jinja</name>
-    <alias>django</alias>
-    <alias>jinja</alias>
-    <mime_type>application/x-django-templating</mime_type>
-    <mime_type>application/x-jinja</mime_type>
-    <dot_all>true</dot_all>
-  </config>
-  <rules>
-    <state name="var">
-      <rule pattern="\s+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="(-?)(\}\})">
-        <bygroups>
-          <token type="Text"/>
-          <token type="CommentPreproc"/>
-        </bygroups>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <include state="varnames"/>
-      </rule>
-    </state>
-    <state name="block">
-      <rule pattern="\s+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="(-?)(%\})">
-        <bygroups>
-          <token type="Text"/>
-          <token type="CommentPreproc"/>
-        </bygroups>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <include state="varnames"/>
-      </rule>
-      <rule pattern=".">
-        <token type="Punctuation"/>
-      </rule>
-    </state>
-    <state name="root">
-      <rule pattern="[^{]+">
-        <token type="Other"/>
-      </rule>
-      <rule pattern="\{\{">
-        <token type="CommentPreproc"/>
-        <push state="var"/>
-      </rule>
-      <rule pattern="\{[*#].*?[*#]\}">
-        <token type="Comment"/>
-      </rule>
-      <rule pattern="(\{%)(-?\s*)(comment)(\s*-?)(%\})(.*?)(\{%)(-?\s*)(endcomment)(\s*-?)(%\})">
-        <bygroups>
-          <token type="CommentPreproc"/>
-          <token type="Text"/>
-          <token type="Keyword"/>
-          <token type="Text"/>
-          <token type="CommentPreproc"/>
-          <token type="Comment"/>
-          <token type="CommentPreproc"/>
-          <token type="Text"/>
-          <token type="Keyword"/>
-          <token type="Text"/>
-          <token type="CommentPreproc"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(\{%)(-?\s*)(raw)(\s*-?)(%\})(.*?)(\{%)(-?\s*)(endraw)(\s*-?)(%\})">
-        <bygroups>
-          <token type="CommentPreproc"/>
-          <token type="Text"/>
-          <token type="Keyword"/>
-          <token type="Text"/>
-          <token type="CommentPreproc"/>
-          <token type="Text"/>
-          <token type="CommentPreproc"/>
-          <token type="Text"/>
-          <token type="Keyword"/>
-          <token type="Text"/>
-          <token type="CommentPreproc"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(\{%)(-?\s*)(filter)(\s+)([a-zA-Z_]\w*)">
-        <bygroups>
-          <token type="CommentPreproc"/>
-          <token type="Text"/>
-          <token type="Keyword"/>
-          <token type="Text"/>
-          <token type="NameFunction"/>
-        </bygroups>
-        <push state="block"/>
-      </rule>
-      <rule pattern="(\{%)(-?\s*)([a-zA-Z_]\w*)">
-        <bygroups>
-          <token type="CommentPreproc"/>
-          <token type="Text"/>
-          <token type="Keyword"/>
-        </bygroups>
-        <push state="block"/>
-      </rule>
-      <rule pattern="\{">
-        <token type="Other"/>
-      </rule>
-    </state>
-    <state name="varnames">
-      <rule pattern="(\|)(\s*)([a-zA-Z_]\w*)">
-        <bygroups>
-          <token type="Operator"/>
-          <token type="Text"/>
-          <token type="NameFunction"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(is)(\s+)(not)?(\s+)?([a-zA-Z_]\w*)">
-        <bygroups>
-          <token type="Keyword"/>
-          <token type="Text"/>
-          <token type="Keyword"/>
-          <token type="Text"/>
-          <token type="NameFunction"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(_|true|false|none|True|False|None)\b">
-        <token type="KeywordPseudo"/>
-      </rule>
-      <rule pattern="(in|as|reversed|recursive|not|and|or|is|if|else|import|with(?:(?:out)?\s*context)?|scoped|ignore\s+missing)\b">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="(loop|block|super|forloop)\b">
-        <token type="NameBuiltin"/>
-      </rule>
-      <rule pattern="[a-zA-Z_][\w-]*">
-        <token type="NameVariable"/>
-      </rule>
-      <rule pattern="\.\w+">
-        <token type="NameVariable"/>
-      </rule>
-      <rule pattern=":?&#34;(\\\\|\\&#34;|[^&#34;])*&#34;">
-        <token type="LiteralStringDouble"/>
-      </rule>
-      <rule pattern=":?&#39;(\\\\|\\&#39;|[^&#39;])*&#39;">
-        <token type="LiteralStringSingle"/>
-      </rule>
-      <rule pattern="([{}()\[\]+\-*/,:~]|[&gt;&lt;=]=?)">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="[0-9](\.[0-9]*)?(eE[+-][0-9])?[flFLdD]?|0[xX][0-9a-fA-F]+[Ll]?">
-        <token type="LiteralNumber"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/dns.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/dns.xml	(revision 67)
+++ 	(revision )
@@ -1,42 +1,0 @@
-<?xml version="1.0"?>
-<lexer>
-  <config>
-    <name>dns</name>
-    <alias>zone</alias>
-    <alias>bind</alias>
-  </config>
-  <rules>
-    <state name="root">
-      <rule pattern="\b(IN|A|AAAA|AFSDB|APL|CAA|CDNSKEY|CDS|CERT|CNAME|DHCID|DLV|DNAME|DNSKEY|DS|HIP|IPSECKEY|KEY|KX|LOC|MX|NAPTR|NS|NSEC|NSEC3|NSEC3PARAM|PTR|RRSIG|RP|SIG|SOA|SRV|SSHFP|TA|TKEY|TLSA|TSIG|TXT)\b">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern=";.*(\S|$)">
-        <token type="Comment"/>
-      </rule>
-      <rule pattern="\b((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\d|1\d{2}|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d{2}|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d{2}|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d{2}|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d{2}|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d{2}|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d{2}|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d{2}|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d{2}|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d{2}|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d{2}|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d{2}|[1-9]?\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d{2}|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d{2}|[1-9]?\d)){3}))|:)))\b">
-        <token type="LiteralNumberIntegerLong"/>
-      </rule>
-      <rule pattern="\b((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\b">
-        <token type="LiteralNumberInteger"/>
-      </rule>
-      <rule pattern="\b\d+[dhwm]?">
-        <token type="LiteralStringChar"/>
-      </rule>
-      <rule pattern="\b([[:alnum:].-])+\.($|\s)">
-        <token type="NameProperty"/>
-      </rule>
-      <rule pattern="^(@|[[:alnum:]-]+)">
-        <token type="NameClass"/>
-      </rule>
-      <rule pattern="^\$(TTL|GENERATE|INCLUDE|ORIGIN)">
-        <token type="NameAttribute"/>
-      </rule>
-      <rule pattern="\(|\)">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="[\r\n\s\t]+">
-        <token type="TextWhitespace"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/dtd.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/dtd.xml	(revision 67)
+++ 	(revision )
@@ -1,168 +1,0 @@
-<lexer>
-  <config>
-    <name>DTD</name>
-    <alias>dtd</alias>
-    <filename>*.dtd</filename>
-    <mime_type>application/xml-dtd</mime_type>
-    <dot_all>true</dot_all>
-  </config>
-  <rules>
-    <state name="common">
-      <rule pattern="\s+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="(%|&amp;)[^;]*;">
-        <token type="NameEntity"/>
-      </rule>
-      <rule pattern="&lt;!--">
-        <token type="Comment"/>
-        <push state="comment"/>
-      </rule>
-      <rule pattern="[(|)*,?+]">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="&#34;[^&#34;]*&#34;">
-        <token type="LiteralStringDouble"/>
-      </rule>
-      <rule pattern="\&#39;[^\&#39;]*\&#39;">
-        <token type="LiteralStringSingle"/>
-      </rule>
-    </state>
-    <state name="comment">
-      <rule pattern="[^-]+">
-        <token type="Comment"/>
-      </rule>
-      <rule pattern="--&gt;">
-        <token type="Comment"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="-">
-        <token type="Comment"/>
-      </rule>
-    </state>
-    <state name="element">
-      <rule>
-        <include state="common"/>
-      </rule>
-      <rule pattern="EMPTY|ANY|#PCDATA">
-        <token type="KeywordConstant"/>
-      </rule>
-      <rule pattern="[^&gt;\s|()?+*,]+">
-        <token type="NameTag"/>
-      </rule>
-      <rule pattern="&gt;">
-        <token type="Keyword"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="attlist">
-      <rule>
-        <include state="common"/>
-      </rule>
-      <rule pattern="CDATA|IDREFS|IDREF|ID|NMTOKENS|NMTOKEN|ENTITIES|ENTITY|NOTATION">
-        <token type="KeywordConstant"/>
-      </rule>
-      <rule pattern="#REQUIRED|#IMPLIED|#FIXED">
-        <token type="KeywordConstant"/>
-      </rule>
-      <rule pattern="xml:space|xml:lang">
-        <token type="KeywordReserved"/>
-      </rule>
-      <rule pattern="[^&gt;\s|()?+*,]+">
-        <token type="NameAttribute"/>
-      </rule>
-      <rule pattern="&gt;">
-        <token type="Keyword"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="entity">
-      <rule>
-        <include state="common"/>
-      </rule>
-      <rule pattern="SYSTEM|PUBLIC|NDATA">
-        <token type="KeywordConstant"/>
-      </rule>
-      <rule pattern="[^&gt;\s|()?+*,]+">
-        <token type="NameEntity"/>
-      </rule>
-      <rule pattern="&gt;">
-        <token type="Keyword"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="notation">
-      <rule>
-        <include state="common"/>
-      </rule>
-      <rule pattern="SYSTEM|PUBLIC">
-        <token type="KeywordConstant"/>
-      </rule>
-      <rule pattern="[^&gt;\s|()?+*,]+">
-        <token type="NameAttribute"/>
-      </rule>
-      <rule pattern="&gt;">
-        <token type="Keyword"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="root">
-      <rule>
-        <include state="common"/>
-      </rule>
-      <rule pattern="(&lt;!ELEMENT)(\s+)(\S+)">
-        <bygroups>
-          <token type="Keyword"/>
-          <token type="Text"/>
-          <token type="NameTag"/>
-        </bygroups>
-        <push state="element"/>
-      </rule>
-      <rule pattern="(&lt;!ATTLIST)(\s+)(\S+)">
-        <bygroups>
-          <token type="Keyword"/>
-          <token type="Text"/>
-          <token type="NameTag"/>
-        </bygroups>
-        <push state="attlist"/>
-      </rule>
-      <rule pattern="(&lt;!ENTITY)(\s+)(\S+)">
-        <bygroups>
-          <token type="Keyword"/>
-          <token type="Text"/>
-          <token type="NameEntity"/>
-        </bygroups>
-        <push state="entity"/>
-      </rule>
-      <rule pattern="(&lt;!NOTATION)(\s+)(\S+)">
-        <bygroups>
-          <token type="Keyword"/>
-          <token type="Text"/>
-          <token type="NameTag"/>
-        </bygroups>
-        <push state="notation"/>
-      </rule>
-      <rule pattern="(&lt;!\[)([^\[\s]+)(\s*)(\[)">
-        <bygroups>
-          <token type="Keyword"/>
-          <token type="NameEntity"/>
-          <token type="Text"/>
-          <token type="Keyword"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(&lt;!DOCTYPE)(\s+)([^&gt;\s]+)">
-        <bygroups>
-          <token type="Keyword"/>
-          <token type="Text"/>
-          <token type="NameTag"/>
-        </bygroups>
-      </rule>
-      <rule pattern="PUBLIC|SYSTEM">
-        <token type="KeywordConstant"/>
-      </rule>
-      <rule pattern="[\[\]&gt;]">
-        <token type="Keyword"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/dylan.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/dylan.xml	(revision 67)
+++ 	(revision )
@@ -1,176 +1,0 @@
-<lexer>
-  <config>
-    <name>Dylan</name>
-    <alias>dylan</alias>
-    <filename>*.dylan</filename>
-    <filename>*.dyl</filename>
-    <filename>*.intr</filename>
-    <mime_type>text/x-dylan</mime_type>
-    <case_insensitive>true</case_insensitive>
-  </config>
-  <rules>
-    <state name="string">
-      <rule pattern="&#34;">
-        <token type="LiteralString"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="\\([\\abfnrtv&#34;\&#39;]|x[a-f0-9]{2,4}|[0-7]{1,3})">
-        <token type="LiteralStringEscape"/>
-      </rule>
-      <rule pattern="[^\\&#34;\n]+">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="\\\n">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="\\">
-        <token type="LiteralString"/>
-      </rule>
-    </state>
-    <state name="root">
-      <rule pattern="\s+">
-        <token type="TextWhitespace"/>
-      </rule>
-      <rule pattern="//.*?\n">
-        <token type="CommentSingle"/>
-      </rule>
-      <rule pattern="([a-z0-9-]+:)([ \t]*)(.*(?:\n[ \t].+)*)">
-        <bygroups>
-          <token type="NameAttribute"/>
-          <token type="TextWhitespace"/>
-          <token type="LiteralString"/>
-        </bygroups>
-      </rule>
-      <rule>
-        <push state="code"/>
-      </rule>
-    </state>
-    <state name="code">
-      <rule pattern="\s+">
-        <token type="TextWhitespace"/>
-      </rule>
-      <rule pattern="//.*?\n">
-        <token type="CommentSingle"/>
-      </rule>
-      <rule pattern="/\*">
-        <token type="CommentMultiline"/>
-        <push state="comment"/>
-      </rule>
-      <rule pattern="&#34;">
-        <token type="LiteralString"/>
-        <push state="string"/>
-      </rule>
-      <rule pattern="&#39;(\\.|\\[0-7]{1,3}|\\x[a-f0-9]{1,2}|[^\\\&#39;\n])&#39;">
-        <token type="LiteralStringChar"/>
-      </rule>
-      <rule pattern="#b[01]+">
-        <token type="LiteralNumberBin"/>
-      </rule>
-      <rule pattern="#o[0-7]+">
-        <token type="LiteralNumberOct"/>
-      </rule>
-      <rule pattern="[-+]?(\d*\.\d+([ed][-+]?\d+)?|\d+(\.\d*)?e[-+]?\d+)">
-        <token type="LiteralNumberFloat"/>
-      </rule>
-      <rule pattern="[-+]?\d+">
-        <token type="LiteralNumberInteger"/>
-      </rule>
-      <rule pattern="#x[0-9a-f]+">
-        <token type="LiteralNumberHex"/>
-      </rule>
-      <rule pattern="(\?\\?)([\w!&amp;*&lt;&gt;|^$%@+~?/=-]+)(:)(token|name|variable|expression|body|case-body|\*)">
-        <bygroups>
-          <token type="Operator"/>
-          <token type="NameVariable"/>
-          <token type="Operator"/>
-          <token type="NameBuiltin"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(\?)(:)(token|name|variable|expression|body|case-body|\*)">
-        <bygroups>
-          <token type="Operator"/>
-          <token type="Operator"/>
-          <token type="NameVariable"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(\?\\?)([\w!&amp;*&lt;&gt;|^$%@+~?/=-]+)">
-        <bygroups>
-          <token type="Operator"/>
-          <token type="NameVariable"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(=&gt;|::|#\(|#\[|##|\?\?|\?=|\?|[(){}\[\],.;])">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern=":=">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="#[tf]">
-        <token type="Literal"/>
-      </rule>
-      <rule pattern="#&#34;">
-        <token type="LiteralStringSymbol"/>
-        <push state="symbol"/>
-      </rule>
-      <rule pattern="#[a-z0-9-]+">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="#(all-keys|include|key|next|rest)">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="[\w!&amp;*&lt;&gt;|^$%@+~?/=-]+:">
-        <token type="KeywordConstant"/>
-      </rule>
-      <rule pattern="&lt;[\w!&amp;*&lt;&gt;|^$%@+~?/=-]+&gt;">
-        <token type="NameClass"/>
-      </rule>
-      <rule pattern="\*[\w!&amp;*&lt;&gt;|^$%@+~?/=-]+\*">
-        <token type="NameVariableGlobal"/>
-      </rule>
-      <rule pattern="\$[\w!&amp;*&lt;&gt;|^$%@+~?/=-]+">
-        <token type="NameConstant"/>
-      </rule>
-      <rule pattern="(let|method|function)([ \t]+)([\w!&amp;*&lt;&gt;|^$%@+~?/=-]+)">
-        <bygroups>
-          <token type="NameBuiltin"/>
-          <token type="TextWhitespace"/>
-          <token type="NameVariable"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(error|signal|return|break)">
-        <token type="NameException"/>
-      </rule>
-      <rule pattern="(\\?)([\w!&amp;*&lt;&gt;|^$%@+~?/=-]+)">
-        <bygroups>
-          <token type="Operator"/>
-          <token type="Name"/>
-        </bygroups>
-      </rule>
-    </state>
-    <state name="comment">
-      <rule pattern="[^*/]">
-        <token type="CommentMultiline"/>
-      </rule>
-      <rule pattern="/\*">
-        <token type="CommentMultiline"/>
-        <push/>
-      </rule>
-      <rule pattern="\*/">
-        <token type="CommentMultiline"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="[*/]">
-        <token type="CommentMultiline"/>
-      </rule>
-    </state>
-    <state name="symbol">
-      <rule pattern="&#34;">
-        <token type="LiteralStringSymbol"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="[^\\&#34;]+">
-        <token type="LiteralStringSymbol"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/ebnf.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/ebnf.xml	(revision 67)
+++ 	(revision )
@@ -1,90 +1,0 @@
-<lexer>
-  <config>
-    <name>EBNF</name>
-    <alias>ebnf</alias>
-    <filename>*.ebnf</filename>
-    <mime_type>text/x-ebnf</mime_type>
-  </config>
-  <rules>
-    <state name="comment">
-      <rule pattern="[^*)]">
-        <token type="CommentMultiline"/>
-      </rule>
-      <rule>
-        <include state="comment_start"/>
-      </rule>
-      <rule pattern="\*\)">
-        <token type="CommentMultiline"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="[*)]">
-        <token type="CommentMultiline"/>
-      </rule>
-    </state>
-    <state name="identifier">
-      <rule pattern="([a-zA-Z][\w \-]*)">
-        <token type="Keyword"/>
-      </rule>
-    </state>
-    <state name="root">
-      <rule>
-        <include state="whitespace"/>
-      </rule>
-      <rule>
-        <include state="comment_start"/>
-      </rule>
-      <rule>
-        <include state="identifier"/>
-      </rule>
-      <rule pattern="=">
-        <token type="Operator"/>
-        <push state="production"/>
-      </rule>
-    </state>
-    <state name="production">
-      <rule>
-        <include state="whitespace"/>
-      </rule>
-      <rule>
-        <include state="comment_start"/>
-      </rule>
-      <rule>
-        <include state="identifier"/>
-      </rule>
-      <rule pattern="&#34;[^&#34;]*&#34;">
-        <token type="LiteralStringDouble"/>
-      </rule>
-      <rule pattern="&#39;[^&#39;]*&#39;">
-        <token type="LiteralStringSingle"/>
-      </rule>
-      <rule pattern="(\?[^?]*\?)">
-        <token type="NameEntity"/>
-      </rule>
-      <rule pattern="[\[\]{}(),|]">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="-">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern=";">
-        <token type="Punctuation"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="\.">
-        <token type="Punctuation"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="whitespace">
-      <rule pattern="\s+">
-        <token type="Text"/>
-      </rule>
-    </state>
-    <state name="comment_start">
-      <rule pattern="\(\*">
-        <token type="CommentMultiline"/>
-        <push state="comment"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/elixir.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/elixir.xml	(revision 67)
+++ 	(revision )
@@ -1,743 +1,0 @@
-<lexer>
-  <config>
-    <name>Elixir</name>
-    <alias>elixir</alias>
-    <alias>ex</alias>
-    <alias>exs</alias>
-    <filename>*.ex</filename>
-    <filename>*.exs</filename>
-    <mime_type>text/x-elixir</mime_type>
-  </config>
-  <rules>
-    <state name="cb-intp">
-      <rule pattern="[^#\}\\]+">
-        <token type="LiteralStringOther"/>
-      </rule>
-      <rule>
-        <include state="escapes"/>
-      </rule>
-      <rule pattern="\\.">
-        <token type="LiteralStringOther"/>
-      </rule>
-      <rule pattern="\}[a-zA-Z]*">
-        <token type="LiteralStringOther"/>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <include state="interpol"/>
-      </rule>
-    </state>
-    <state name="triquot-end">
-      <rule pattern="[a-zA-Z]+">
-        <token type="LiteralStringOther"/>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="apos-no-intp">
-      <rule pattern="[^&#39;\\]+">
-        <token type="LiteralStringOther"/>
-      </rule>
-      <rule pattern="\\.">
-        <token type="LiteralStringOther"/>
-      </rule>
-      <rule pattern="&#39;[a-zA-Z]*">
-        <token type="LiteralStringOther"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="slas-no-intp">
-      <rule pattern="[^/\\]+">
-        <token type="LiteralStringOther"/>
-      </rule>
-      <rule pattern="\\.">
-        <token type="LiteralStringOther"/>
-      </rule>
-      <rule pattern="/[a-zA-Z]*">
-        <token type="LiteralStringOther"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="pipe-no-intp">
-      <rule pattern="[^\|\\]+">
-        <token type="LiteralStringOther"/>
-      </rule>
-      <rule pattern="\\.">
-        <token type="LiteralStringOther"/>
-      </rule>
-      <rule pattern="\|[a-zA-Z]*">
-        <token type="LiteralStringOther"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="apos-intp">
-      <rule pattern="[^#&#39;\\]+">
-        <token type="LiteralStringOther"/>
-      </rule>
-      <rule>
-        <include state="escapes"/>
-      </rule>
-      <rule pattern="\\.">
-        <token type="LiteralStringOther"/>
-      </rule>
-      <rule pattern="&#39;[a-zA-Z]*">
-        <token type="LiteralStringOther"/>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <include state="interpol"/>
-      </rule>
-    </state>
-    <state name="cb-no-intp">
-      <rule pattern="[^\}\\]+">
-        <token type="LiteralStringOther"/>
-      </rule>
-      <rule pattern="\\.">
-        <token type="LiteralStringOther"/>
-      </rule>
-      <rule pattern="\}[a-zA-Z]*">
-        <token type="LiteralStringOther"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="heredoc_double">
-      <rule pattern="^\s*&#34;&#34;&#34;">
-        <token type="LiteralStringHeredoc"/>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <include state="heredoc_interpol"/>
-      </rule>
-    </state>
-    <state name="triapos-end">
-      <rule pattern="[a-zA-Z]+">
-        <token type="LiteralStringOther"/>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="interpol_string">
-      <rule pattern="\}">
-        <token type="LiteralStringInterpol"/>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <include state="root"/>
-      </rule>
-    </state>
-    <state name="triquot-intp">
-      <rule pattern="^\s*&#34;&#34;&#34;">
-        <token type="LiteralStringHeredoc"/>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <include state="heredoc_interpol"/>
-      </rule>
-    </state>
-    <state name="interpol">
-      <rule pattern="#\{">
-        <token type="LiteralStringInterpol"/>
-        <push state="interpol_string"/>
-      </rule>
-    </state>
-    <state name="pa-no-intp">
-      <rule pattern="[^\)\\]+">
-        <token type="LiteralStringOther"/>
-      </rule>
-      <rule pattern="\\.">
-        <token type="LiteralStringOther"/>
-      </rule>
-      <rule pattern="\)[a-zA-Z]*">
-        <token type="LiteralStringOther"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="map_key">
-      <rule>
-        <include state="root"/>
-      </rule>
-      <rule pattern=":">
-        <token type="Punctuation"/>
-        <push state="map_val"/>
-      </rule>
-      <rule pattern="=&gt;">
-        <token type="Punctuation"/>
-        <push state="map_val"/>
-      </rule>
-      <rule pattern="\}">
-        <token type="Punctuation"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="pa-intp">
-      <rule pattern="[^#\)\\]+">
-        <token type="LiteralStringOther"/>
-      </rule>
-      <rule>
-        <include state="escapes"/>
-      </rule>
-      <rule pattern="\\.">
-        <token type="LiteralStringOther"/>
-      </rule>
-      <rule pattern="\)[a-zA-Z]*">
-        <token type="LiteralStringOther"/>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <include state="interpol"/>
-      </rule>
-    </state>
-    <state name="tuple">
-      <rule>
-        <include state="root"/>
-      </rule>
-      <rule pattern="\}">
-        <token type="Punctuation"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="root">
-      <rule pattern="\s+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="#.*$">
-        <token type="CommentSingle"/>
-      </rule>
-      <rule pattern="(\?)(\\x\{)([\da-fA-F]+)(\})">
-        <bygroups>
-          <token type="LiteralStringChar"/>
-          <token type="LiteralStringEscape"/>
-          <token type="LiteralNumberHex"/>
-          <token type="LiteralStringEscape"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(\?)(\\x[\da-fA-F]{1,2})">
-        <bygroups>
-          <token type="LiteralStringChar"/>
-          <token type="LiteralStringEscape"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(\?)(\\[abdefnrstv])">
-        <bygroups>
-          <token type="LiteralStringChar"/>
-          <token type="LiteralStringEscape"/>
-        </bygroups>
-      </rule>
-      <rule pattern="\?\\?.">
-        <token type="LiteralStringChar"/>
-      </rule>
-      <rule pattern=":::">
-        <token type="LiteralStringSymbol"/>
-      </rule>
-      <rule pattern="::">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern=":(?:\.\.\.|&lt;&lt;&gt;&gt;|%\{\}|%|\{\})">
-        <token type="LiteralStringSymbol"/>
-      </rule>
-      <rule pattern=":(?:(?:\.\.\.|[a-z_]\w*[!?]?)|[A-Z]\w*(?:\.[A-Z]\w*)*|(?:\&lt;\&lt;\&lt;|\&gt;\&gt;\&gt;|\|\|\||\&amp;\&amp;\&amp;|\^\^\^|\~\~\~|\=\=\=|\!\=\=|\~\&gt;\&gt;|\&lt;\~\&gt;|\|\~\&gt;|\&lt;\|\&gt;|\=\=|\!\=|\&lt;\=|\&gt;\=|\&amp;\&amp;|\|\||\&lt;\&gt;|\+\+|\-\-|\|\&gt;|\=\~|\-\&gt;|\&lt;\-|\||\.|\=|\~\&gt;|\&lt;\~|\&lt;|\&gt;|\+|\-|\*|\/|\!|\^|\&amp;))">
-        <token type="LiteralStringSymbol"/>
-      </rule>
-      <rule pattern=":&#34;">
-        <token type="LiteralStringSymbol"/>
-        <push state="string_double_atom"/>
-      </rule>
-      <rule pattern=":&#39;">
-        <token type="LiteralStringSymbol"/>
-        <push state="string_single_atom"/>
-      </rule>
-      <rule pattern="((?:\.\.\.|&lt;&lt;&gt;&gt;|%\{\}|%|\{\})|(?:(?:\.\.\.|[a-z_]\w*[!?]?)|[A-Z]\w*(?:\.[A-Z]\w*)*|(?:\&lt;\&lt;\&lt;|\&gt;\&gt;\&gt;|\|\|\||\&amp;\&amp;\&amp;|\^\^\^|\~\~\~|\=\=\=|\!\=\=|\~\&gt;\&gt;|\&lt;\~\&gt;|\|\~\&gt;|\&lt;\|\&gt;|\=\=|\!\=|\&lt;\=|\&gt;\=|\&amp;\&amp;|\|\||\&lt;\&gt;|\+\+|\-\-|\|\&gt;|\=\~|\-\&gt;|\&lt;\-|\||\.|\=|\~\&gt;|\&lt;\~|\&lt;|\&gt;|\+|\-|\*|\/|\!|\^|\&amp;)))(:)(?=\s|\n)">
-        <bygroups>
-          <token type="LiteralStringSymbol"/>
-          <token type="Punctuation"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(fn|do|end|after|else|rescue|catch)\b">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="(not|and|or|when|in)\b">
-        <token type="OperatorWord"/>
-      </rule>
-      <rule pattern="(case|cond|for|if|unless|try|receive|raise|quote|unquote|unquote_splicing|throw|super|while)\b">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="(def|defp|defmodule|defprotocol|defmacro|defmacrop|defdelegate|defexception|defstruct|defimpl|defcallback)\b">
-        <token type="KeywordDeclaration"/>
-      </rule>
-      <rule pattern="(import|require|use|alias)\b">
-        <token type="KeywordNamespace"/>
-      </rule>
-      <rule pattern="(nil|true|false)\b">
-        <token type="NameConstant"/>
-      </rule>
-      <rule pattern="(_|__MODULE__|__DIR__|__ENV__|__CALLER__)\b">
-        <token type="NamePseudo"/>
-      </rule>
-      <rule pattern="@(?:\.\.\.|[a-z_]\w*[!?]?)">
-        <token type="NameAttribute"/>
-      </rule>
-      <rule pattern="(?:\.\.\.|[a-z_]\w*[!?]?)">
-        <token type="Name"/>
-      </rule>
-      <rule pattern="(%?)([A-Z]\w*(?:\.[A-Z]\w*)*)">
-        <bygroups>
-          <token type="Punctuation"/>
-          <token type="NameClass"/>
-        </bygroups>
-      </rule>
-      <rule pattern="\&lt;\&lt;\&lt;|\&gt;\&gt;\&gt;|\|\|\||\&amp;\&amp;\&amp;|\^\^\^|\~\~\~|\=\=\=|\!\=\=|\~\&gt;\&gt;|\&lt;\~\&gt;|\|\~\&gt;|\&lt;\|\&gt;">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="\=\=|\!\=|\&lt;\=|\&gt;\=|\&amp;\&amp;|\|\||\&lt;\&gt;|\+\+|\-\-|\|\&gt;|\=\~|\-\&gt;|\&lt;\-|\||\.|\=|\~\&gt;|\&lt;\~">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="\\\\|\&lt;\&lt;|\&gt;\&gt;|\=\&gt;|\(|\)|\:|\;|\,|\[|\]">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="&amp;\d">
-        <token type="NameEntity"/>
-      </rule>
-      <rule pattern="\&lt;|\&gt;|\+|\-|\*|\/|\!|\^|\&amp;">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="0b[01](_?[01])*">
-        <token type="LiteralNumberBin"/>
-      </rule>
-      <rule pattern="0o[0-7](_?[0-7])*">
-        <token type="LiteralNumberOct"/>
-      </rule>
-      <rule pattern="0x[\da-fA-F](_?[\dA-Fa-f])*">
-        <token type="LiteralNumberHex"/>
-      </rule>
-      <rule pattern="\d(_?\d)*\.\d(_?\d)*([eE][-+]?\d(_?\d)*)?">
-        <token type="LiteralNumberFloat"/>
-      </rule>
-      <rule pattern="\d(_?\d)*">
-        <token type="LiteralNumberInteger"/>
-      </rule>
-      <rule pattern="&#34;&#34;&#34;\s*">
-        <token type="LiteralStringHeredoc"/>
-        <push state="heredoc_double"/>
-      </rule>
-      <rule pattern="&#39;&#39;&#39;\s*$">
-        <token type="LiteralStringHeredoc"/>
-        <push state="heredoc_single"/>
-      </rule>
-      <rule pattern="&#34;">
-        <token type="LiteralStringDouble"/>
-        <push state="string_double"/>
-      </rule>
-      <rule pattern="&#39;">
-        <token type="LiteralStringSingle"/>
-        <push state="string_single"/>
-      </rule>
-      <rule>
-        <include state="sigils"/>
-      </rule>
-      <rule pattern="%\{">
-        <token type="Punctuation"/>
-        <push state="map_key"/>
-      </rule>
-      <rule pattern="\{">
-        <token type="Punctuation"/>
-        <push state="tuple"/>
-      </rule>
-    </state>
-    <state name="sigils">
-      <rule pattern="(~[a-z])(&#34;&#34;&#34;)">
-        <bygroups>
-          <token type="LiteralStringOther"/>
-          <token type="LiteralStringHeredoc"/>
-        </bygroups>
-        <push state="triquot-end" state="triquot-intp"/>
-      </rule>
-      <rule pattern="(~[A-Z])(&#34;&#34;&#34;)">
-        <bygroups>
-          <token type="LiteralStringOther"/>
-          <token type="LiteralStringHeredoc"/>
-        </bygroups>
-        <push state="triquot-end" state="triquot-no-intp"/>
-      </rule>
-      <rule pattern="(~[a-z])(&#39;&#39;&#39;)">
-        <bygroups>
-          <token type="LiteralStringOther"/>
-          <token type="LiteralStringHeredoc"/>
-        </bygroups>
-        <push state="triapos-end" state="triapos-intp"/>
-      </rule>
-      <rule pattern="(~[A-Z])(&#39;&#39;&#39;)">
-        <bygroups>
-          <token type="LiteralStringOther"/>
-          <token type="LiteralStringHeredoc"/>
-        </bygroups>
-        <push state="triapos-end" state="triapos-no-intp"/>
-      </rule>
-      <rule pattern="~[a-z]\{">
-        <token type="LiteralStringOther"/>
-        <push state="cb-intp"/>
-      </rule>
-      <rule pattern="~[A-Z]\{">
-        <token type="LiteralStringOther"/>
-        <push state="cb-no-intp"/>
-      </rule>
-      <rule pattern="~[a-z]\[">
-        <token type="LiteralStringOther"/>
-        <push state="sb-intp"/>
-      </rule>
-      <rule pattern="~[A-Z]\[">
-        <token type="LiteralStringOther"/>
-        <push state="sb-no-intp"/>
-      </rule>
-      <rule pattern="~[a-z]\(">
-        <token type="LiteralStringOther"/>
-        <push state="pa-intp"/>
-      </rule>
-      <rule pattern="~[A-Z]\(">
-        <token type="LiteralStringOther"/>
-        <push state="pa-no-intp"/>
-      </rule>
-      <rule pattern="~[a-z]&lt;">
-        <token type="LiteralStringOther"/>
-        <push state="ab-intp"/>
-      </rule>
-      <rule pattern="~[A-Z]&lt;">
-        <token type="LiteralStringOther"/>
-        <push state="ab-no-intp"/>
-      </rule>
-      <rule pattern="~[a-z]/">
-        <token type="LiteralStringOther"/>
-        <push state="slas-intp"/>
-      </rule>
-      <rule pattern="~[A-Z]/">
-        <token type="LiteralStringOther"/>
-        <push state="slas-no-intp"/>
-      </rule>
-      <rule pattern="~[a-z]\|">
-        <token type="LiteralStringOther"/>
-        <push state="pipe-intp"/>
-      </rule>
-      <rule pattern="~[A-Z]\|">
-        <token type="LiteralStringOther"/>
-        <push state="pipe-no-intp"/>
-      </rule>
-      <rule pattern="~[a-z]&#34;">
-        <token type="LiteralStringOther"/>
-        <push state="quot-intp"/>
-      </rule>
-      <rule pattern="~[A-Z]&#34;">
-        <token type="LiteralStringOther"/>
-        <push state="quot-no-intp"/>
-      </rule>
-      <rule pattern="~[a-z]&#39;">
-        <token type="LiteralStringOther"/>
-        <push state="apos-intp"/>
-      </rule>
-      <rule pattern="~[A-Z]&#39;">
-        <token type="LiteralStringOther"/>
-        <push state="apos-no-intp"/>
-      </rule>
-    </state>
-    <state name="triapos-intp">
-      <rule pattern="^\s*&#39;&#39;&#39;">
-        <token type="LiteralStringHeredoc"/>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <include state="heredoc_interpol"/>
-      </rule>
-    </state>
-    <state name="string_single_atom">
-      <rule pattern="[^#&#39;\\]+">
-        <token type="LiteralStringSymbol"/>
-      </rule>
-      <rule>
-        <include state="escapes"/>
-      </rule>
-      <rule pattern="\\.">
-        <token type="LiteralStringSymbol"/>
-      </rule>
-      <rule pattern="(&#39;)">
-        <bygroups>
-          <token type="LiteralStringSymbol"/>
-        </bygroups>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <include state="interpol"/>
-      </rule>
-    </state>
-    <state name="quot-intp">
-      <rule pattern="[^#&#34;\\]+">
-        <token type="LiteralStringOther"/>
-      </rule>
-      <rule>
-        <include state="escapes"/>
-      </rule>
-      <rule pattern="\\.">
-        <token type="LiteralStringOther"/>
-      </rule>
-      <rule pattern="&#34;[a-zA-Z]*">
-        <token type="LiteralStringOther"/>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <include state="interpol"/>
-      </rule>
-    </state>
-    <state name="sb-no-intp">
-      <rule pattern="[^\]\\]+">
-        <token type="LiteralStringOther"/>
-      </rule>
-      <rule pattern="\\.">
-        <token type="LiteralStringOther"/>
-      </rule>
-      <rule pattern="\][a-zA-Z]*">
-        <token type="LiteralStringOther"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="slas-intp">
-      <rule pattern="[^#/\\]+">
-        <token type="LiteralStringOther"/>
-      </rule>
-      <rule>
-        <include state="escapes"/>
-      </rule>
-      <rule pattern="\\.">
-        <token type="LiteralStringOther"/>
-      </rule>
-      <rule pattern="/[a-zA-Z]*">
-        <token type="LiteralStringOther"/>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <include state="interpol"/>
-      </rule>
-    </state>
-    <state name="sb-intp">
-      <rule pattern="[^#\]\\]+">
-        <token type="LiteralStringOther"/>
-      </rule>
-      <rule>
-        <include state="escapes"/>
-      </rule>
-      <rule pattern="\\.">
-        <token type="LiteralStringOther"/>
-      </rule>
-      <rule pattern="\][a-zA-Z]*">
-        <token type="LiteralStringOther"/>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <include state="interpol"/>
-      </rule>
-    </state>
-    <state name="heredoc_no_interpol">
-      <rule pattern="[^\\\n]+">
-        <token type="LiteralStringHeredoc"/>
-      </rule>
-      <rule pattern="\\.">
-        <token type="LiteralStringHeredoc"/>
-      </rule>
-      <rule pattern="\n+">
-        <token type="LiteralStringHeredoc"/>
-      </rule>
-    </state>
-    <state name="pipe-intp">
-      <rule pattern="[^#\|\\]+">
-        <token type="LiteralStringOther"/>
-      </rule>
-      <rule>
-        <include state="escapes"/>
-      </rule>
-      <rule pattern="\\.">
-        <token type="LiteralStringOther"/>
-      </rule>
-      <rule pattern="\|[a-zA-Z]*">
-        <token type="LiteralStringOther"/>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <include state="interpol"/>
-      </rule>
-    </state>
-    <state name="map_val">
-      <rule>
-        <include state="root"/>
-      </rule>
-      <rule pattern=",">
-        <token type="Punctuation"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="(?=\})">
-        <token type="Punctuation"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="heredoc_single">
-      <rule pattern="^\s*&#39;&#39;&#39;">
-        <token type="LiteralStringHeredoc"/>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <include state="heredoc_interpol"/>
-      </rule>
-    </state>
-    <state name="heredoc_interpol">
-      <rule pattern="[^#\\\n]+">
-        <token type="LiteralStringHeredoc"/>
-      </rule>
-      <rule>
-        <include state="escapes"/>
-      </rule>
-      <rule pattern="\\.">
-        <token type="LiteralStringHeredoc"/>
-      </rule>
-      <rule pattern="\n+">
-        <token type="LiteralStringHeredoc"/>
-      </rule>
-      <rule>
-        <include state="interpol"/>
-      </rule>
-    </state>
-    <state name="string_single">
-      <rule pattern="[^#&#39;\\]+">
-        <token type="LiteralStringSingle"/>
-      </rule>
-      <rule>
-        <include state="escapes"/>
-      </rule>
-      <rule pattern="\\.">
-        <token type="LiteralStringSingle"/>
-      </rule>
-      <rule pattern="(&#39;)">
-        <bygroups>
-          <token type="LiteralStringSingle"/>
-        </bygroups>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <include state="interpol"/>
-      </rule>
-    </state>
-    <state name="string_double_atom">
-      <rule pattern="[^#&#34;\\]+">
-        <token type="LiteralStringSymbol"/>
-      </rule>
-      <rule>
-        <include state="escapes"/>
-      </rule>
-      <rule pattern="\\.">
-        <token type="LiteralStringSymbol"/>
-      </rule>
-      <rule pattern="(&#34;)">
-        <bygroups>
-          <token type="LiteralStringSymbol"/>
-        </bygroups>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <include state="interpol"/>
-      </rule>
-    </state>
-    <state name="ab-no-intp">
-      <rule pattern="[^&gt;\\]+">
-        <token type="LiteralStringOther"/>
-      </rule>
-      <rule pattern="\\.">
-        <token type="LiteralStringOther"/>
-      </rule>
-      <rule pattern="&gt;[a-zA-Z]*">
-        <token type="LiteralStringOther"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="ab-intp">
-      <rule pattern="[^#&gt;\\]+">
-        <token type="LiteralStringOther"/>
-      </rule>
-      <rule>
-        <include state="escapes"/>
-      </rule>
-      <rule pattern="\\.">
-        <token type="LiteralStringOther"/>
-      </rule>
-      <rule pattern="&gt;[a-zA-Z]*">
-        <token type="LiteralStringOther"/>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <include state="interpol"/>
-      </rule>
-    </state>
-    <state name="quot-no-intp">
-      <rule pattern="[^&#34;\\]+">
-        <token type="LiteralStringOther"/>
-      </rule>
-      <rule pattern="\\.">
-        <token type="LiteralStringOther"/>
-      </rule>
-      <rule pattern="&#34;[a-zA-Z]*">
-        <token type="LiteralStringOther"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="triapos-no-intp">
-      <rule pattern="^\s*&#39;&#39;&#39;">
-        <token type="LiteralStringHeredoc"/>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <include state="heredoc_no_interpol"/>
-      </rule>
-    </state>
-    <state name="string_double">
-      <rule pattern="[^#&#34;\\]+">
-        <token type="LiteralStringDouble"/>
-      </rule>
-      <rule>
-        <include state="escapes"/>
-      </rule>
-      <rule pattern="\\.">
-        <token type="LiteralStringDouble"/>
-      </rule>
-      <rule pattern="(&#34;)">
-        <bygroups>
-          <token type="LiteralStringDouble"/>
-        </bygroups>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <include state="interpol"/>
-      </rule>
-    </state>
-    <state name="escapes">
-      <rule pattern="(\\x\{)([\da-fA-F]+)(\})">
-        <bygroups>
-          <token type="LiteralStringEscape"/>
-          <token type="LiteralNumberHex"/>
-          <token type="LiteralStringEscape"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(\\x[\da-fA-F]{1,2})">
-        <token type="LiteralStringEscape"/>
-      </rule>
-      <rule pattern="(\\[abdefnrstv])">
-        <token type="LiteralStringEscape"/>
-      </rule>
-    </state>
-    <state name="triquot-no-intp">
-      <rule pattern="^\s*&#34;&#34;&#34;">
-        <token type="LiteralStringHeredoc"/>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <include state="heredoc_no_interpol"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/elm.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/elm.xml	(revision 67)
+++ 	(revision )
@@ -1,119 +1,0 @@
-<lexer>
-  <config>
-    <name>Elm</name>
-    <alias>elm</alias>
-    <filename>*.elm</filename>
-    <mime_type>text/x-elm</mime_type>
-  </config>
-  <rules>
-    <state name="shader">
-      <rule pattern="\|(?!\])">
-        <token type="NameEntity"/>
-      </rule>
-      <rule pattern="\|\]">
-        <token type="NameEntity"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern=".*\n">
-        <token type="NameEntity"/>
-      </rule>
-    </state>
-    <state name="root">
-      <rule pattern="\{-">
-        <token type="CommentMultiline"/>
-        <push state="comment"/>
-      </rule>
-      <rule pattern="--.*">
-        <token type="CommentSingle"/>
-      </rule>
-      <rule pattern="\s+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="&#34;">
-        <token type="LiteralString"/>
-        <push state="doublequote"/>
-      </rule>
-      <rule pattern="^\s*module\s*">
-        <token type="KeywordNamespace"/>
-        <push state="imports"/>
-      </rule>
-      <rule pattern="^\s*import\s*">
-        <token type="KeywordNamespace"/>
-        <push state="imports"/>
-      </rule>
-      <rule pattern="\[glsl\|.*">
-        <token type="NameEntity"/>
-        <push state="shader"/>
-      </rule>
-      <rule pattern="(import|module|alias|where|port|else|type|case|then|let|as|of|if|in)\b">
-        <token type="KeywordReserved"/>
-      </rule>
-      <rule pattern="[A-Z]\w*">
-        <token type="KeywordType"/>
-      </rule>
-      <rule pattern="^main ">
-        <token type="KeywordReserved"/>
-      </rule>
-      <rule pattern="\((&lt;-|\|\||\|&gt;|&amp;&amp;|\+\+|-&gt;|\.\.|//|&gt;&gt;|&gt;=|/=|==|::|&lt;~|&lt;\||&lt;=|&lt;&lt;|~|&lt;|=|:|&gt;|&#39;|/|\\|\.|\^|-|`|\+|\*|\||%)\)">
-        <token type="NameFunction"/>
-      </rule>
-      <rule pattern="(&lt;-|\|\||\|&gt;|&amp;&amp;|\+\+|-&gt;|\.\.|//|&gt;&gt;|&gt;=|/=|==|::|&lt;~|&lt;\||&lt;=|&lt;&lt;|~|&lt;|=|:|&gt;|&#39;|/|\\|\.|\^|-|`|\+|\*|\||%)">
-        <token type="NameFunction"/>
-      </rule>
-      <rule>
-        <include state="numbers"/>
-      </rule>
-      <rule pattern="[a-z_][a-zA-Z_\&#39;]*">
-        <token type="NameVariable"/>
-      </rule>
-      <rule pattern="[,()\[\]{}]">
-        <token type="Punctuation"/>
-      </rule>
-    </state>
-    <state name="comment">
-      <rule pattern="-(?!\})">
-        <token type="CommentMultiline"/>
-      </rule>
-      <rule pattern="\{-">
-        <token type="CommentMultiline"/>
-        <push state="comment"/>
-      </rule>
-      <rule pattern="[^-}]">
-        <token type="CommentMultiline"/>
-      </rule>
-      <rule pattern="-\}">
-        <token type="CommentMultiline"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="doublequote">
-      <rule pattern="\\u[0-9a-fA-F]{4}">
-        <token type="LiteralStringEscape"/>
-      </rule>
-      <rule pattern="\\[nrfvb\\&#34;]">
-        <token type="LiteralStringEscape"/>
-      </rule>
-      <rule pattern="[^&#34;]">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="&#34;">
-        <token type="LiteralString"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="imports">
-      <rule pattern="\w+(\.\w+)*">
-        <token type="NameClass"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="numbers">
-      <rule pattern="_?\d+\.(?=\d+)">
-        <token type="LiteralNumberFloat"/>
-      </rule>
-      <rule pattern="_?\d+">
-        <token type="LiteralNumberInteger"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/emacslisp.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/emacslisp.xml	(revision 67)
+++ 	(revision )
@@ -1,132 +1,0 @@
-<lexer>
-  <config>
-    <name>EmacsLisp</name>
-    <alias>emacs</alias>
-    <alias>elisp</alias>
-    <alias>emacs-lisp</alias>
-    <filename>*.el</filename>
-    <mime_type>text/x-elisp</mime_type>
-    <mime_type>application/x-elisp</mime_type>
-  </config>
-  <rules>
-    <state name="string">
-      <rule pattern="[^&#34;\\`]+">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="`((?:\\.|[\w!$%&amp;*+-/&lt;=&gt;?@^{}~|])(?:\\.|[\w!$%&amp;*+-/&lt;=&gt;?@^{}~|]|[#.:])*)\&#39;">
-        <token type="LiteralStringSymbol"/>
-      </rule>
-      <rule pattern="`">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="\\.">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="\\\n">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="&#34;">
-        <token type="LiteralString"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="root">
-      <rule>
-        <push state="body"/>
-      </rule>
-    </state>
-    <state name="body">
-      <rule pattern="\s+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern=";.*$">
-        <token type="CommentSingle"/>
-      </rule>
-      <rule pattern="&#34;">
-        <token type="LiteralString"/>
-        <push state="string"/>
-      </rule>
-      <rule pattern="\?([^\\]|\\.)">
-        <token type="LiteralStringChar"/>
-      </rule>
-      <rule pattern=":((?:\\.|[\w!$%&amp;*+-/&lt;=&gt;?@^{}~|])(?:\\.|[\w!$%&amp;*+-/&lt;=&gt;?@^{}~|]|[#.:])*)">
-        <token type="NameBuiltin"/>
-      </rule>
-      <rule pattern="::((?:\\.|[\w!$%&amp;*+-/&lt;=&gt;?@^{}~|])(?:\\.|[\w!$%&amp;*+-/&lt;=&gt;?@^{}~|]|[#.:])*)">
-        <token type="LiteralStringSymbol"/>
-      </rule>
-      <rule pattern="&#39;((?:\\.|[\w!$%&amp;*+-/&lt;=&gt;?@^{}~|])(?:\\.|[\w!$%&amp;*+-/&lt;=&gt;?@^{}~|]|[#.:])*)">
-        <token type="LiteralStringSymbol"/>
-      </rule>
-      <rule pattern="&#39;">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="`">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="[-+]?\d+\.?(?=[ &#34;()\]\&#39;\n,;`])">
-        <token type="LiteralNumberInteger"/>
-      </rule>
-      <rule pattern="[-+]?\d+/\d+(?=[ &#34;()\]\&#39;\n,;`])">
-        <token type="LiteralNumber"/>
-      </rule>
-      <rule pattern="[-+]?(\d*\.\d+([defls][-+]?\d+)?|\d+(\.\d*)?[defls][-+]?\d+)(?=[ &#34;()\]\&#39;\n,;`])">
-        <token type="LiteralNumberFloat"/>
-      </rule>
-      <rule pattern="\[|\]">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="#:((?:\\.|[\w!$%&amp;*+-/&lt;=&gt;?@^{}~|])(?:\\.|[\w!$%&amp;*+-/&lt;=&gt;?@^{}~|]|[#.:])*)">
-        <token type="LiteralStringSymbol"/>
-      </rule>
-      <rule pattern="#\^\^?">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="#\&#39;">
-        <token type="NameFunction"/>
-      </rule>
-      <rule pattern="#[bB][+-]?[01]+(/[01]+)?">
-        <token type="LiteralNumberBin"/>
-      </rule>
-      <rule pattern="#[oO][+-]?[0-7]+(/[0-7]+)?">
-        <token type="LiteralNumberOct"/>
-      </rule>
-      <rule pattern="#[xX][+-]?[0-9a-fA-F]+(/[0-9a-fA-F]+)?">
-        <token type="LiteralNumberHex"/>
-      </rule>
-      <rule pattern="#\d+r[+-]?[0-9a-zA-Z]+(/[0-9a-zA-Z]+)?">
-        <token type="LiteralNumber"/>
-      </rule>
-      <rule pattern="#\d+=">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="#\d+#">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="(,@|,|\.|:)">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="(t|nil)(?=[ &#34;()\]\&#39;\n,;`])">
-        <token type="NameConstant"/>
-      </rule>
-      <rule pattern="\*((?:\\.|[\w!$%&amp;*+-/&lt;=&gt;?@^{}~|])(?:\\.|[\w!$%&amp;*+-/&lt;=&gt;?@^{}~|]|[#.:])*)\*">
-        <token type="NameVariableGlobal"/>
-      </rule>
-      <rule pattern="((?:\\.|[\w!$%&amp;*+-/&lt;=&gt;?@^{}~|])(?:\\.|[\w!$%&amp;*+-/&lt;=&gt;?@^{}~|]|[#.:])*)">
-        <token type="NameVariable"/>
-      </rule>
-      <rule pattern="#\(">
-        <token type="Operator"/>
-        <push state="body"/>
-      </rule>
-      <rule pattern="\(">
-        <token type="Punctuation"/>
-        <push state="body"/>
-      </rule>
-      <rule pattern="\)">
-        <token type="Punctuation"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/erlang.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/erlang.xml	(revision 67)
+++ 	(revision )
@@ -1,166 +1,0 @@
-<lexer>
-  <config>
-    <name>Erlang</name>
-    <alias>erlang</alias>
-    <filename>*.erl</filename>
-    <filename>*.hrl</filename>
-    <filename>*.es</filename>
-    <filename>*.escript</filename>
-    <mime_type>text/x-erlang</mime_type>
-  </config>
-  <rules>
-    <state name="root">
-      <rule pattern="\s+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="%.*\n">
-        <token type="Comment"/>
-      </rule>
-      <rule pattern="(receive|after|begin|catch|query|case|cond|when|let|fun|end|try|of|if)\b">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="(localtime_to_universaltime|universaltime_to_localtime|list_to_existing_atom|check_process_code|bitstring_to_list|list_to_bitstring|function_exported|is_process_alive|iolist_to_binary|bump_reductions|garbage_collect|process_display|suspend_process|list_to_integer|disconnect_node|integer_to_list|trace_delivered|send_nosuspend|list_to_binary|system_profile|binary_to_term|binary_to_list|resume_process|append_element|term_to_binary|system_monitor|list_to_tuple|spawn_monitor|delete_module|trace_pattern|tuple_to_list|list_to_float|float_to_list|module_loaded|port_connect|is_bitstring|port_to_list|monitor_node|process_info|port_control|split_binary|cancel_timer|purge_module|group_leader|list_to_atom|atom_to_list|port_command|is_reference|process_flag|pid_to_list|system_info|start_timer|iolist_size|fun_to_list|load_module|is_function|ref_to_list|list_to_pid|system_flag|make_tuple|is_builtin|unregister|is_boolean|set_cookie|md5_update|spawn_link|setelement|trace_info|read_timer|statistics|send_after|port_close|is_integer|tuple_size|spawn_opt|open_port|is_record|is_binary|md5_final|port_call|port_info|is_number|byte_size|demonitor|register|is_float|bit_size|fun_info|get_keys|is_tuple|is_atom|element|is_list|is_port|monitor|display|whereis|is_pid|memory|unlink|phash2|length|spawn|nodes|trace|round|apply|erase|phash|trunc|float|size|link|node|exit|hash|send|get|md5|put|abs|hd|tl)\b">
-        <token type="NameBuiltin"/>
-      </rule>
-      <rule pattern="(andalso|orelse|bxor|band|bnot|and|bsr|bsl|div|not|rem|bor|xor|or)\b">
-        <token type="OperatorWord"/>
-      </rule>
-      <rule pattern="^-">
-        <token type="Punctuation"/>
-        <push state="directive"/>
-      </rule>
-      <rule pattern="(\+\+?|--?|\*|/|&lt;|&gt;|/=|=:=|=/=|=&lt;|&gt;=|==?|&lt;-|!|\?)">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="&#34;">
-        <token type="LiteralString"/>
-        <push state="string"/>
-      </rule>
-      <rule pattern="&lt;&lt;">
-        <token type="NameLabel"/>
-      </rule>
-      <rule pattern="&gt;&gt;">
-        <token type="NameLabel"/>
-      </rule>
-      <rule pattern="((?:[a-z]\w*|&#39;[^\n&#39;]*[^\\]&#39;))(:)">
-        <bygroups>
-          <token type="NameNamespace"/>
-          <token type="Punctuation"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(?:^|(?&lt;=:))((?:[a-z]\w*|&#39;[^\n&#39;]*[^\\]&#39;))(\s*)(\()">
-        <bygroups>
-          <token type="NameFunction"/>
-          <token type="Text"/>
-          <token type="Punctuation"/>
-        </bygroups>
-      </rule>
-      <rule pattern="[+-]?(?:[2-9]|[12][0-9]|3[0-6])#[0-9a-zA-Z]+">
-        <token type="LiteralNumberInteger"/>
-      </rule>
-      <rule pattern="[+-]?\d+">
-        <token type="LiteralNumberInteger"/>
-      </rule>
-      <rule pattern="[+-]?\d+.\d+">
-        <token type="LiteralNumberFloat"/>
-      </rule>
-      <rule pattern="[]\[:_@\&#34;.{}()|;,]">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="(?:[A-Z_]\w*)">
-        <token type="NameVariable"/>
-      </rule>
-      <rule pattern="(?:[a-z]\w*|&#39;[^\n&#39;]*[^\\]&#39;)">
-        <token type="Name"/>
-      </rule>
-      <rule pattern="\?(?:(?:[A-Z_]\w*)|(?:[a-z]\w*|&#39;[^\n&#39;]*[^\\]&#39;))">
-        <token type="NameConstant"/>
-      </rule>
-      <rule pattern="\$(?:(?:\\(?:[bdefnrstv\&#39;&#34;\\]|[0-7][0-7]?[0-7]?|(?:x[0-9a-fA-F]{2}|x\{[0-9a-fA-F]+\})|\^[a-zA-Z]))|\\[ %]|[^\\])">
-        <token type="LiteralStringChar"/>
-      </rule>
-      <rule pattern="#(?:[a-z]\w*|&#39;[^\n&#39;]*[^\\]&#39;)(:?\.(?:[a-z]\w*|&#39;[^\n&#39;]*[^\\]&#39;))?">
-        <token type="NameLabel"/>
-      </rule>
-      <rule pattern="\A#!.+\n">
-        <token type="CommentHashbang"/>
-      </rule>
-      <rule pattern="#\{">
-        <token type="Punctuation"/>
-        <push state="map_key"/>
-      </rule>
-    </state>
-    <state name="string">
-      <rule pattern="(?:\\(?:[bdefnrstv\&#39;&#34;\\]|[0-7][0-7]?[0-7]?|(?:x[0-9a-fA-F]{2}|x\{[0-9a-fA-F]+\})|\^[a-zA-Z]))">
-        <token type="LiteralStringEscape"/>
-      </rule>
-      <rule pattern="&#34;">
-        <token type="LiteralString"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="~[0-9.*]*[~#+BPWXb-ginpswx]">
-        <token type="LiteralStringInterpol"/>
-      </rule>
-      <rule pattern="[^&#34;\\~]+">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="~">
-        <token type="LiteralString"/>
-      </rule>
-    </state>
-    <state name="directive">
-      <rule pattern="(define)(\s*)(\()((?:(?:[A-Z_]\w*)|(?:[a-z]\w*|&#39;[^\n&#39;]*[^\\]&#39;)))">
-        <bygroups>
-          <token type="NameEntity"/>
-          <token type="Text"/>
-          <token type="Punctuation"/>
-          <token type="NameConstant"/>
-        </bygroups>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="(record)(\s*)(\()((?:(?:[A-Z_]\w*)|(?:[a-z]\w*|&#39;[^\n&#39;]*[^\\]&#39;)))">
-        <bygroups>
-          <token type="NameEntity"/>
-          <token type="Text"/>
-          <token type="Punctuation"/>
-          <token type="NameLabel"/>
-        </bygroups>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="(?:[a-z]\w*|&#39;[^\n&#39;]*[^\\]&#39;)">
-        <token type="NameEntity"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="map_key">
-      <rule>
-        <include state="root"/>
-      </rule>
-      <rule pattern="=&gt;">
-        <token type="Punctuation"/>
-        <push state="map_val"/>
-      </rule>
-      <rule pattern=":=">
-        <token type="Punctuation"/>
-        <push state="map_val"/>
-      </rule>
-      <rule pattern="\}">
-        <token type="Punctuation"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="map_val">
-      <rule>
-        <include state="root"/>
-      </rule>
-      <rule pattern=",">
-        <token type="Punctuation"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="(?=\})">
-        <token type="Punctuation"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/factor.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/factor.xml	(revision 67)
+++ 	(revision )
@@ -1,412 +1,0 @@
-<lexer>
-  <config>
-    <name>Factor</name>
-    <alias>factor</alias>
-    <filename>*.factor</filename>
-    <mime_type>text/x-factor</mime_type>
-  </config>
-  <rules>
-    <state name="base">
-      <rule pattern="\s+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="((?:MACRO|MEMO|TYPED)?:[:]?)(\s+)(\S+)">
-        <bygroups>
-          <token type="Keyword"/>
-          <token type="Text"/>
-          <token type="NameFunction"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(M:[:]?)(\s+)(\S+)(\s+)(\S+)">
-        <bygroups>
-          <token type="Keyword"/>
-          <token type="Text"/>
-          <token type="NameClass"/>
-          <token type="Text"/>
-          <token type="NameFunction"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(C:)(\s+)(\S+)(\s+)(\S+)">
-        <bygroups>
-          <token type="Keyword"/>
-          <token type="Text"/>
-          <token type="NameFunction"/>
-          <token type="Text"/>
-          <token type="NameClass"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(GENERIC:)(\s+)(\S+)">
-        <bygroups>
-          <token type="Keyword"/>
-          <token type="Text"/>
-          <token type="NameFunction"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(HOOK:|GENERIC#)(\s+)(\S+)(\s+)(\S+)">
-        <bygroups>
-          <token type="Keyword"/>
-          <token type="Text"/>
-          <token type="NameFunction"/>
-          <token type="Text"/>
-          <token type="NameFunction"/>
-        </bygroups>
-      </rule>
-      <rule pattern="\(\s">
-        <token type="NameFunction"/>
-        <push state="stackeffect"/>
-      </rule>
-      <rule pattern=";\s">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="(USING:)(\s+)">
-        <bygroups>
-          <token type="KeywordNamespace"/>
-          <token type="Text"/>
-        </bygroups>
-        <push state="vocabs"/>
-      </rule>
-      <rule pattern="(USE:|UNUSE:|IN:|QUALIFIED:)(\s+)(\S+)">
-        <bygroups>
-          <token type="KeywordNamespace"/>
-          <token type="Text"/>
-          <token type="NameNamespace"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(QUALIFIED-WITH:)(\s+)(\S+)(\s+)(\S+)">
-        <bygroups>
-          <token type="KeywordNamespace"/>
-          <token type="Text"/>
-          <token type="NameNamespace"/>
-          <token type="Text"/>
-          <token type="NameNamespace"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(FROM:|EXCLUDE:)(\s+)(\S+)(\s+=&gt;\s)">
-        <bygroups>
-          <token type="KeywordNamespace"/>
-          <token type="Text"/>
-          <token type="NameNamespace"/>
-          <token type="Text"/>
-        </bygroups>
-        <push state="words"/>
-      </rule>
-      <rule pattern="(RENAME:)(\s+)(\S+)(\s+)(\S+)(\s+=&gt;\s+)(\S+)">
-        <bygroups>
-          <token type="KeywordNamespace"/>
-          <token type="Text"/>
-          <token type="NameFunction"/>
-          <token type="Text"/>
-          <token type="NameNamespace"/>
-          <token type="Text"/>
-          <token type="NameFunction"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(ALIAS:|TYPEDEF:)(\s+)(\S+)(\s+)(\S+)">
-        <bygroups>
-          <token type="KeywordNamespace"/>
-          <token type="Text"/>
-          <token type="NameFunction"/>
-          <token type="Text"/>
-          <token type="NameFunction"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(DEFER:|FORGET:|POSTPONE:)(\s+)(\S+)">
-        <bygroups>
-          <token type="KeywordNamespace"/>
-          <token type="Text"/>
-          <token type="NameFunction"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(TUPLE:|ERROR:)(\s+)(\S+)(\s+&lt;\s+)(\S+)">
-        <bygroups>
-          <token type="Keyword"/>
-          <token type="Text"/>
-          <token type="NameClass"/>
-          <token type="Text"/>
-          <token type="NameClass"/>
-        </bygroups>
-        <push state="slots"/>
-      </rule>
-      <rule pattern="(TUPLE:|ERROR:|BUILTIN:)(\s+)(\S+)">
-        <bygroups>
-          <token type="Keyword"/>
-          <token type="Text"/>
-          <token type="NameClass"/>
-        </bygroups>
-        <push state="slots"/>
-      </rule>
-      <rule pattern="(MIXIN:|UNION:|INTERSECTION:)(\s+)(\S+)">
-        <bygroups>
-          <token type="Keyword"/>
-          <token type="Text"/>
-          <token type="NameClass"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(PREDICATE:)(\s+)(\S+)(\s+&lt;\s+)(\S+)">
-        <bygroups>
-          <token type="Keyword"/>
-          <token type="Text"/>
-          <token type="NameClass"/>
-          <token type="Text"/>
-          <token type="NameClass"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(C:)(\s+)(\S+)(\s+)(\S+)">
-        <bygroups>
-          <token type="Keyword"/>
-          <token type="Text"/>
-          <token type="NameFunction"/>
-          <token type="Text"/>
-          <token type="NameClass"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(INSTANCE:)(\s+)(\S+)(\s+)(\S+)">
-        <bygroups>
-          <token type="Keyword"/>
-          <token type="Text"/>
-          <token type="NameClass"/>
-          <token type="Text"/>
-          <token type="NameClass"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(SLOT:)(\s+)(\S+)">
-        <bygroups>
-          <token type="Keyword"/>
-          <token type="Text"/>
-          <token type="NameFunction"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(SINGLETON:)(\s+)(\S+)">
-        <bygroups>
-          <token type="Keyword"/>
-          <token type="Text"/>
-          <token type="NameClass"/>
-        </bygroups>
-      </rule>
-      <rule pattern="SINGLETONS:">
-        <token type="Keyword"/>
-        <push state="classes"/>
-      </rule>
-      <rule pattern="(CONSTANT:|SYMBOL:|MAIN:|HELP:)(\s+)(\S+)">
-        <bygroups>
-          <token type="Keyword"/>
-          <token type="Text"/>
-          <token type="NameFunction"/>
-        </bygroups>
-      </rule>
-      <rule pattern="SYMBOLS:\s">
-        <token type="Keyword"/>
-        <push state="words"/>
-      </rule>
-      <rule pattern="SYNTAX:\s">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="ALIEN:\s">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="(STRUCT:)(\s+)(\S+)">
-        <bygroups>
-          <token type="Keyword"/>
-          <token type="Text"/>
-          <token type="NameClass"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(FUNCTION:)(\s+\S+\s+)(\S+)(\s+\(\s+[^)]+\)\s)">
-        <bygroups>
-          <token type="KeywordNamespace"/>
-          <token type="Text"/>
-          <token type="NameFunction"/>
-          <token type="Text"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(FUNCTION-ALIAS:)(\s+)(\S+)(\s+\S+\s+)(\S+)(\s+\(\s+[^)]+\)\s)">
-        <bygroups>
-          <token type="KeywordNamespace"/>
-          <token type="Text"/>
-          <token type="NameFunction"/>
-          <token type="Text"/>
-          <token type="NameFunction"/>
-          <token type="Text"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(?:&lt;PRIVATE|PRIVATE&gt;)\s">
-        <token type="KeywordNamespace"/>
-      </rule>
-      <rule pattern="&#34;&#34;&#34;\s+(?:.|\n)*?\s+&#34;&#34;&#34;">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="&#34;(?:\\\\|\\&#34;|[^&#34;])*&#34;">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="\S+&#34;\s+(?:\\\\|\\&#34;|[^&#34;])*&#34;">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="CHAR:\s+(?:\\[\\abfnrstv]|[^\\]\S*)\s">
-        <token type="LiteralStringChar"/>
-      </rule>
-      <rule pattern="!\s+.*$">
-        <token type="Comment"/>
-      </rule>
-      <rule pattern="#!\s+.*$">
-        <token type="Comment"/>
-      </rule>
-      <rule pattern="/\*\s+(?:.|\n)*?\s\*/\s">
-        <token type="Comment"/>
-      </rule>
-      <rule pattern="[tf]\s">
-        <token type="NameConstant"/>
-      </rule>
-      <rule pattern="[\\$]\s+\S+">
-        <token type="NameConstant"/>
-      </rule>
-      <rule pattern="M\\\s+\S+\s+\S+">
-        <token type="NameConstant"/>
-      </rule>
-      <rule pattern="[+-]?(?:[\d,]*\d)?\.(?:\d([\d,]*\d)?)?(?:[eE][+-]?\d+)?\s">
-        <token type="LiteralNumber"/>
-      </rule>
-      <rule pattern="[+-]?\d(?:[\d,]*\d)?(?:[eE][+-]?\d+)?\s">
-        <token type="LiteralNumber"/>
-      </rule>
-      <rule pattern="0x[a-fA-F\d](?:[a-fA-F\d,]*[a-fA-F\d])?(?:p\d([\d,]*\d)?)?\s">
-        <token type="LiteralNumber"/>
-      </rule>
-      <rule pattern="NAN:\s+[a-fA-F\d](?:[a-fA-F\d,]*[a-fA-F\d])?(?:p\d([\d,]*\d)?)?\s">
-        <token type="LiteralNumber"/>
-      </rule>
-      <rule pattern="0b[01]+\s">
-        <token type="LiteralNumberBin"/>
-      </rule>
-      <rule pattern="0o[0-7]+\s">
-        <token type="LiteralNumberOct"/>
-      </rule>
-      <rule pattern="(?:\d([\d,]*\d)?)?\+\d(?:[\d,]*\d)?/\d(?:[\d,]*\d)?\s">
-        <token type="LiteralNumber"/>
-      </rule>
-      <rule pattern="(?:\-\d([\d,]*\d)?)?\-\d(?:[\d,]*\d)?/\d(?:[\d,]*\d)?\s">
-        <token type="LiteralNumber"/>
-      </rule>
-      <rule pattern="(?:deprecated|final|foldable|flushable|inline|recursive)\s">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="(identity-hashcode|callstack&gt;array|identity-tuple\?|identity-tuple|retainstack|callstack\?|tri-curry\*|tri-curry@|tri-curry|&lt;wrapper&gt;|datastack|bi-curry@|bi-curry\*|hashcode\*|callstack|\?execute|hashcode|boolean\?|compose\?|&gt;boolean|wrapper\?|bi-curry|unless\*|boolean|assert\?|\(clone\)|either\?|prepose|assert=|execute|wrapper|compose|3curry|assert|2curry|curry\?|object|equal\?|tuple\?|unless|build|3drop|same\?|2tri\*|2tri@|both\?|3keep|4drop|throw|2over|swapd|clear|2keep|2drop|until|curry|4keep|clone|while|tuple|when\*|-rot|tri@|dupd|drop|tri\*|call|when|with|4dup|4dip|3tri|3dup|3dip|2tri|keep|loop|most|2nip|swap|2dup|null|2dip|2bi\*|2bi@|pick|over|and|rot|not|nip|new|if\*|tri|2bi|boa|eq\?|dup|3bi|dip|die|bi\*|bi@|\?if|xor|bi|do|if|or|\?|=)\s">
-        <token type="NameBuiltin"/>
-      </rule>
-      <rule pattern="(assoc-clone-like|assoc-filter-as|assoc-partition|assoc-intersect|assoc-hashcode|assoc-combine|assoc-filter!|assoc-subset\?|assoc-union!|maybe-set-at|extract-keys|assoc-map-as|assoc-differ|assoc-refine|assoc-empty\?|assoc-filter|assoc-diff!|sift-values|assoc-union|assoc-stack|clear-assoc|assoc-all\?|delete-at\*|assoc-find|substitute|assoc-each|assoc-size|assoc-diff|assoc-any\?|assoc-like|rename-at|sift-keys|new-assoc|map&gt;assoc|value-at\*|assoc-map|delete-at|change-at|assoc&gt;map|value-at|push-at|assoc=|values|set-at|&lt;enum&gt;|inc-at|2cache|value\?|assoc\?|&gt;alist|cache|enum\?|assoc|unzip|key\?|enum|keys|\?at|\?of|zip|at\+|at\*|at|of)\s">
-        <token type="NameBuiltin"/>
-      </rule>
-      <rule pattern="(shallow-spread&gt;quot|recursive-hashcode|linear-case-quot|deep-spread&gt;quot|to-fixed-point|execute-effect|wrong-values\?|4cleave&gt;quot|2cleave&gt;quot|wrong-values|3cleave&gt;quot|cleave&gt;quot|call-effect|alist&gt;quot|case&gt;quot|case-find|cond&gt;quot|no-case\?|no-cond\?|no-case|no-cond|4cleave|3cleave|2cleave|cleave|spread|cond|case)\s">
-        <token type="NameBuiltin"/>
-      </rule>
-      <rule pattern="(log2-expects-positive\?|integer&gt;fixnum-strict|log2-expects-positive|out-of-fixnum-range\?|out-of-fixnum-range|find-last-integer|next-power-of-2|\(all-integers\?\)|integer&gt;fixnum|\(find-integer\)|\(each-integer\)|imaginary-part|fp-nan-payload|all-integers\?|find-integer|each-integer|fp-infinity\?|fp-special\?|fp-bitwise=|bits&gt;double|double&gt;bits|power-of-2\?|unless-zero|denominator|next-float|bits&gt;float|float&gt;bits|prev-float|unordered\?|real-part|when-zero|numerator|rational\?|&gt;integer|rational|complex\?|&lt;fp-nan&gt;|fp-qnan\?|fp-snan\?|integer\?|number=|bignum\?|integer|&gt;fixnum|fp-sign|fp-nan\?|fixnum\?|number\?|complex|if-zero|&gt;bignum|bignum|number|fixnum|float\?|bitxor|ratio\?|bitnot|bitand|&gt;float|real\?|bitor|zero\?|even\?|times|shift|float|recip|align|ratio|neg\?|real|log2|bit\?|odd\?|/mod|\?1\+|mod|rem|neg|sgn|u&lt;=|u&gt;=|abs|u&gt;|2/|2\^|/i|/f|sq|&lt;=|u&lt;|&gt;=|-|\+|&lt;|\*|/|&gt;)\s">
-        <token type="NameBuiltin"/>
-      </rule>
-      <rule pattern="(non-negative-integer-expected\?|non-negative-integer-expected|immutable-sequence\?|immutable-sequence|virtual-sequence\?|sequence-hashcode|cartesian-product|check-slice-error|unclip-last-slice|assert-sequence=|assert-sequence\?|virtual-exemplar|virtual-sequence|assert-sequence|trim-head-slice|last-index-from|find-index-from|trim-tail-slice|find-last-from|cartesian-each|collapse-slice|but-last-slice|map-find-last|cartesian-map|collector-for|bounds-error\?|accumulate-as|replace-slice|bounds-check\?|binary-reduce|new-resizable|unless-empty|delete-slice|replicate-as|map-integers|selector-for|bounds-check|reduce-index|bounds-error|unclip-slice|new-sequence|&lt;repetition&gt;|slice-error\?|slice-error|unclip-last|drop-prefix|supremum-by|push-either|2map-reduce|accumulate!|tail-slice\*|repetition\?|check-slice|iota-tuple\?|remove-nth!|sum-lengths|head-slice\*|find-index|clone-like|delete-all|change-nth|prepend-as|member-eq\?|max-length|each-index|map-reduce|iota-tuple|produce-as|snip-slice|accumulate|remove-eq!|last-index|min-length|remove-nth|&lt;reversed&gt;|repetition|tail-slice|3append-as|when-empty|interleave|insert-nth|infimum-by|index-from|set-second|immutable\?|rest-slice|set-fourth|head-slice|trim-slice|set-length|set-third|concat-as|immutable|trim-tail|cut-slice|collector|set-first|sequence\?|sequence=|midpoint@|trim-head|each-from|reversed\?|map-index|partition|find-last|2selector|2sequence|replicate|find-from|filter-as|3sequence|append-as|4sequence|remove-eq|1sequence|virtual@|push-all|lengthen|shorter\?|map-find|reverse!|reversed|exchange|pad-tail|pad-head|surround|selector|shortest|sequence|set-last|mismatch|supremum|new-like|if-empty|but-last|\?set-nth|filter!|harvest|member\?|map-sum|indices|padding|set-nth|2map-as|shorter|shorten|prepend|infimum|2reduce|append!|product|subseq\?|longest|longer\?|push-if|suffix!|reverse|join-as|remove!|3append|\?second|3map-as|&lt;slice&gt;|produce|length|\?first|start\*|longer|remove|subseq|unclip|first2|first3|reduce|second|follow|filter|slice\?|map-as|empty\?|fourth|suffix|halves|concat|first4|prefix|append|index|short|2all\?|count|2each|third|tail\*|slice|first|tail\?|head\*|3each|head\?|start|\?last|join|iota|last|like|snip|map!|head|glue|move|tail|2map|find|sift|flip|nths|trim|each|cut\*|3map|pop\*|copy|any\?|all\?|\?nth|push|rest|sum|nth|pop|map|cut)\s">
-        <token type="NameBuiltin"/>
-      </rule>
-      <rule pattern="(init-namespaces|with-variables|with-variable|set-namestack|change-global|with-global|initialize|get-global|set-global|with-scope|make-assoc|is-global|namespace|namestack|counter|change|toggle|global|set|get|dec|off|inc|on|\+@)\s">
-        <token type="NameBuiltin"/>
-      </rule>
-      <rule pattern="(resize-array|&lt;array&gt;|1array|2array|3array|4array|&gt;array|array\?|array|pair\?|pair)\s">
-        <token type="NameBuiltin"/>
-      </rule>
-      <rule pattern="(\(stream-contents-by-length-or-block\)|with-input-output\+error-streams\*|with-input-output\+error-streams|\(stream-contents-by-element\)|\(stream-contents-by-length\)|stream-read-partial-unsafe|\(stream-contents-by-block\)|with-output\+error-stream\*|\(each-stream-block-slice\)|stream-read-partial-into|with-output\+error-stream|each-stream-block-slice|invalid-read-buffer\?|stream-read-partial|stream-element-type|\(each-stream-block\)|with-output-stream\*|invalid-read-buffer|with-output-stream|with-input-stream\*|stream-read-unsafe|with-error-stream\*|with-error-stream|stream-read-until|each-stream-block|with-output&gt;error|with-input-stream|with-error&gt;output|read-partial-into|stream-contents\*|each-stream-line|stream-seekable\?|stream-read-into|each-block-slice|each-block-size|stream-contents|bad-seek-type\?|seek-absolute\?|output-stream\?|seek-relative\?|stream-write1|with-streams\*|output-stream|stream-length|bad-seek-type|seek-absolute|input-stream\?|stream-readln|seek-relative|with-streams|read-partial|stream-copy\*|stream-flush|stream-read1|stream-lines|stream-write|stream-print|error-stream|input-stream|stream-tell|\+character\+|stream-copy|each-morsel|seek-output|stream-read|tell-output|stream-seek|read-until|seek-input|each-block|tell-input|each-line|seek-end\?|read-into|stream-nl|stream-bl|contents|seek-end|write1|\+byte\+|readln|write|read1|print|flush|lines|read|nl|bl)\s">
-        <token type="NameBuiltin"/>
-      </rule>
-      <rule pattern="(resize-string|&lt;string&gt;|1string|&gt;string|string\?|string)\s">
-        <token type="NameBuiltin"/>
-      </rule>
-      <rule pattern="(&lt;vector&gt;|1vector|&gt;vector|vector\?|vector|\?push)\s">
-        <token type="NameBuiltin"/>
-      </rule>
-      <rule pattern="(current-continuation|return-continuation|callback-error-hook|error-continuation|attempt-all-error\?|thread-error-hook|attempt-all-error|rethrow-restarts|continue-restart|compute-restarts|error-in-thread|throw-continue|throw-restarts|with-datastack|&lt;continuation&gt;|original-error|ignore-errors|continue-with|continuation\?|in-callback\?|continuation|error-thread|attempt-all|&lt;condition&gt;|with-return|condition\?|&lt;restart&gt;|condition|continue|restart\?|restarts|rethrow|callcc0|recover|restart|cleanup|callcc1|return|error|ifcc)\s">
-        <token type="NameBuiltin"/>
-      </rule>
-      <rule pattern="\S+">
-        <token type="Text"/>
-      </rule>
-    </state>
-    <state name="stackeffect">
-      <rule pattern="\s+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="\(\s+">
-        <token type="NameFunction"/>
-        <push state="stackeffect"/>
-      </rule>
-      <rule pattern="\)\s">
-        <token type="NameFunction"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="--\s">
-        <token type="NameFunction"/>
-      </rule>
-      <rule pattern="\S+">
-        <token type="NameVariable"/>
-      </rule>
-    </state>
-    <state name="slots">
-      <rule pattern="\s+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern=";\s">
-        <token type="Keyword"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="(\{\s+)(\S+)(\s+[^}]+\s+\}\s)">
-        <bygroups>
-          <token type="Text"/>
-          <token type="NameVariable"/>
-          <token type="Text"/>
-        </bygroups>
-      </rule>
-      <rule pattern="\S+">
-        <token type="NameVariable"/>
-      </rule>
-    </state>
-    <state name="vocabs">
-      <rule pattern="\s+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern=";\s">
-        <token type="Keyword"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="\S+">
-        <token type="NameNamespace"/>
-      </rule>
-    </state>
-    <state name="classes">
-      <rule pattern="\s+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern=";\s">
-        <token type="Keyword"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="\S+">
-        <token type="NameClass"/>
-      </rule>
-    </state>
-    <state name="words">
-      <rule pattern="\s+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern=";\s">
-        <token type="Keyword"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="\S+">
-        <token type="NameFunction"/>
-      </rule>
-    </state>
-    <state name="root">
-      <rule pattern="#!.*$">
-        <token type="CommentPreproc"/>
-      </rule>
-      <rule>
-        <push state="base"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/fennel.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/fennel.xml	(revision 67)
+++ 	(revision )
@@ -1,68 +1,0 @@
-<lexer>
-  <config>
-    <name>Fennel</name>
-    <alias>fennel</alias>
-    <alias>fnl</alias>
-    <filename>*.fennel</filename>
-    <mime_type>text/x-fennel</mime_type>
-    <mime_type>application/x-fennel</mime_type>
-  </config>
-  <rules>
-    <state name="root">
-      <rule pattern=";.*$">
-        <token type="CommentSingle"/>
-      </rule>
-      <rule pattern="\s+">
-        <token type="TextWhitespace"/>
-      </rule>
-      <rule pattern="-?\d+\.\d+">
-        <token type="LiteralNumberFloat"/>
-      </rule>
-      <rule pattern="-?\d+">
-        <token type="LiteralNumberInteger"/>
-      </rule>
-      <rule pattern="0x-?[abcdef\d]+">
-        <token type="LiteralNumberHex"/>
-      </rule>
-      <rule pattern="&#34;(\\\\|\\&#34;|[^&#34;])*&#34;">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="&#39;(?!#)[\w!$%*+&lt;=&gt;?/.#-]+">
-        <token type="LiteralStringSymbol"/>
-      </rule>
-      <rule pattern="\\(.|[a-z]+)">
-        <token type="LiteralStringChar"/>
-      </rule>
-      <rule pattern="::?#?(?!#)[\w!$%*+&lt;=&gt;?/.#-]+">
-        <token type="LiteralStringSymbol"/>
-      </rule>
-      <rule pattern="~@|[`\&#39;#^~&amp;@]">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="(require-macros|set-forcibly!|import-macros|eval-compiler|pick-values|accumulate|macrodebug|pick-args|with-open|icollect|partial|comment|include|collect|hashfn|rshift|values|length|lshift|quote|match|while|doto|band|when|bnot|bxor|not=|tset|-\?&gt;&gt;|each|-&gt;&gt;|let|doc|for|and|set|not|-\?&gt;|bor|lua|\?\.|do|&gt;=|&lt;=|//|\.\.|-&gt;|or|if|~=|\^|&gt;|=|&lt;|:|/|\.|-|\+|\*|%|#) ">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="(global|lambda|macros|local|macro|var|fn|λ) ">
-        <token type="KeywordDeclaration"/>
-      </rule>
-      <rule pattern="(debug\.setuservalue|debug\.getmetatable|debug\.getuservalue|package\.searchpath|debug\.setmetatable|debug\.upvaluejoin|debug\.getregistry|coroutine\.running|coroutine\.create|debug\.setupvalue|debug\.getupvalue|coroutine\.status|coroutine\.resume|debug\.upvalueid|package\.loadlib|debug\.traceback|math\.randomseed|coroutine\.yield|collectgarbage|debug\.getlocal|package\.seeall|string\.reverse|coroutine\.wrap|debug\.setlocal|bit32\.replace|bit32\.lrotate|debug\.gethook|debug\.getinfo|bit32\.extract|string\.gmatch|string\.format|bit32\.arshift|bit32\.rrotate|debug\.sethook|table\.concat|os\.setlocale|table\.remove|string\.lower|bit32\.rshift|bit32\.lshift|string\.match|table\.unpack|setmetatable|getmetatable|table\.insert|string\.upper|string\.byte|debug\.debug|string\.gsub|bit32\.btest|math\.random|string\.find|string\.dump|os\.difftime|string\.char|table\.sort|loadstring|io\.tmpfile|bit32\.band|bit32\.bnot|string\.sub|os\.execute|os\.tmpname|table\.maxn|math\.log10|math\.atan2|table\.pack|math\.frexp|math\.ldexp|bit32\.bxor|string\.len|math\.floor|string\.rep|coroutine|math\.cosh|math\.ceil|math\.atan|math\.asin|math\.acos|math\.modf|os\.rename|os\.remove|io\.output|os\.getenv|bit32\.bor|math\.sinh|math\.fmod|math\.tanh|math\.sqrt|math\.cos|math\.tan|io\.lines|os\.clock|tostring|io\.input|math\.sin|tonumber|loadfile|math\.rad|math\.pow|io\.flush|math\.abs|math\.min|rawequal|math\.max|math\.log|io\.close|io\.popen|math\.exp|math\.deg|io\.write|os\.time|io\.read|io\.open|require|os\.exit|os\.date|package|io\.type|module|select|rawset|rawlen|rawget|unpack|assert|dofile|ipairs|string|xpcall|table|pcall|bit32|print|debug|error|pairs|math|type|next|load|arg|io|os|_G) ">
-        <token type="NameBuiltin"/>
-      </rule>
-      <rule pattern="(?&lt;=\()(?!#)[\w!$%*+&lt;=&gt;?/.#-]+">
-        <token type="NameFunction"/>
-      </rule>
-      <rule pattern="(?!#)[\w!$%*+&lt;=&gt;?/.#-]+">
-        <token type="NameVariable"/>
-      </rule>
-      <rule pattern="(\[|\])">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="(\{|\})">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="(\(|\))">
-        <token type="Punctuation"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/fish.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/fish.xml	(revision 67)
+++ 	(revision )
@@ -1,159 +1,0 @@
-<lexer>
-  <config>
-    <name>Fish</name>
-    <alias>fish</alias>
-    <alias>fishshell</alias>
-    <filename>*.fish</filename>
-    <filename>*.load</filename>
-    <mime_type>application/x-fish</mime_type>
-  </config>
-  <rules>
-    <state name="paren">
-      <rule pattern="\)">
-        <token type="Keyword"/>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <include state="root"/>
-      </rule>
-    </state>
-    <state name="math">
-      <rule pattern="\)\)">
-        <token type="Keyword"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="[-+*/%^|&amp;]|\*\*|\|\|">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="\d+#\d+">
-        <token type="LiteralNumber"/>
-      </rule>
-      <rule pattern="\d+#(?! )">
-        <token type="LiteralNumber"/>
-      </rule>
-      <rule pattern="\d+">
-        <token type="LiteralNumber"/>
-      </rule>
-      <rule>
-        <include state="root"/>
-      </rule>
-    </state>
-    <state name="root">
-      <rule>
-        <include state="basic"/>
-      </rule>
-      <rule>
-        <include state="interp"/>
-      </rule>
-      <rule>
-        <include state="data"/>
-      </rule>
-    </state>
-    <state name="interp">
-      <rule pattern="\$\(\(">
-        <token type="Keyword"/>
-        <push state="math"/>
-      </rule>
-      <rule pattern="\(">
-        <token type="Keyword"/>
-        <push state="paren"/>
-      </rule>
-      <rule pattern="\$#?(\w+|.)">
-        <token type="NameVariable"/>
-      </rule>
-    </state>
-    <state name="basic">
-      <rule pattern="(?&lt;=(?:^|\A|;|&amp;&amp;|\|\||\||\b(continue|function|return|switch|begin|while|break|count|false|block|echo|case|true|else|exit|test|set|cdh|and|pwd|for|end|not|if|cd|or)\b)\s*)(continue|function|return|switch|begin|while|break|count|false|block|test|case|true|echo|exit|else|set|cdh|and|pwd|for|end|not|if|cd|or)(?=;?\b)">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="(?&lt;=for\s+\S+\s+)in\b">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="\b(fish_update_completions|fish_command_not_found|fish_breakpoint_prompt|fish_status_to_signal|fish_right_prompt|fish_is_root_user|fish_mode_prompt|fish_vcs_prompt|fish_key_reader|fish_svn_prompt|fish_git_prompt|fish_hg_prompt|fish_greeting|fish_add_path|commandline|fish_prompt|fish_indent|fish_config|fish_pager|breakpoint|fish_title|prompt_pwd|functions|set_color|realpath|funcsave|contains|complete|argparse|fish_opt|history|builtin|getopts|suspend|command|mimedb|printf|ulimit|disown|string|source|funced|status|random|isatty|fishd|prevd|vared|umask|nextd|alias|pushd|emit|jobs|popd|help|psub|wait|fish|read|time|exec|eval|math|trap|type|dirs|dirh|abbr|kill|bind|hash|open|fc|bg|fg)\s*\b(?!\.)">
-        <token type="NameBuiltin"/>
-      </rule>
-      <rule pattern="#!.*\n">
-        <token type="CommentHashbang"/>
-      </rule>
-      <rule pattern="#.*\n">
-        <token type="Comment"/>
-      </rule>
-      <rule pattern="\\[\w\W]">
-        <token type="LiteralStringEscape"/>
-      </rule>
-      <rule pattern="(\b\w+)(\s*)(=)">
-        <bygroups>
-          <token type="NameVariable"/>
-          <token type="Text"/>
-          <token type="Operator"/>
-        </bygroups>
-      </rule>
-      <rule pattern="[\[\]()={}]">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="(?&lt;=\[[^\]]+)\.\.|-(?=[^\[]+\])">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="&lt;&lt;-?\s*(\&#39;?)\\?(\w+)[\w\W]+?\2">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="(?&lt;=set\s+(?:--?[^\d\W][\w-]*\s+)?)\w+">
-        <token type="NameVariable"/>
-      </rule>
-      <rule pattern="(?&lt;=for\s+)\w[\w-]*(?=\s+in)">
-        <token type="NameVariable"/>
-      </rule>
-      <rule pattern="(?&lt;=function\s+)\w(?:[^\n])*?(?= *[-\n])">
-        <token type="NameFunction"/>
-      </rule>
-      <rule pattern="(?&lt;=(?:^|\b(?:and|or|sudo)\b|;|\|\||&amp;&amp;|\||\(|(?:\b\w+\s*=\S+\s)) *)\w[\w-]*">
-        <token type="NameFunction"/>
-      </rule>
-    </state>
-    <state name="data">
-      <rule pattern="(?s)\$?&#34;(\\\\|\\[0-7]+|\\.|[^&#34;\\$])*&#34;">
-        <token type="LiteralStringDouble"/>
-      </rule>
-      <rule pattern="&#34;">
-        <token type="LiteralStringDouble"/>
-        <push state="string"/>
-      </rule>
-      <rule pattern="(?s)\$&#39;(\\\\|\\[0-7]+|\\.|[^&#39;\\])*&#39;">
-        <token type="LiteralStringSingle"/>
-      </rule>
-      <rule pattern="(?s)&#39;.*?&#39;">
-        <token type="LiteralStringSingle"/>
-      </rule>
-      <rule pattern=";">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="&amp;&amp;|\|\||&amp;|\||\^|&lt;|&gt;">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="\s+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="\b\d+\b">
-        <token type="LiteralNumber"/>
-      </rule>
-      <rule pattern="(?&lt;=\s+)--?[^\d][\w-]*">
-        <token type="NameAttribute"/>
-      </rule>
-      <rule pattern=".+?">
-        <token type="Text"/>
-      </rule>
-    </state>
-    <state name="string">
-      <rule pattern="&#34;">
-        <token type="LiteralStringDouble"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="(?s)(\\\\|\\[0-7]+|\\.|[^&#34;\\$])+">
-        <token type="LiteralStringDouble"/>
-      </rule>
-      <rule>
-        <include state="interp"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/forth.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/forth.xml	(revision 67)
+++ 	(revision )
@@ -1,78 +1,0 @@
-<lexer>
-  <config>
-    <name>Forth</name>
-    <alias>forth</alias>
-    <filename>*.frt</filename>
-    <filename>*.fth</filename>
-    <filename>*.fs</filename>
-    <mime_type>application/x-forth</mime_type>
-    <case_insensitive>true</case_insensitive>
-  </config>
-  <rules>
-    <state name="root">
-      <rule pattern="\s+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="\\.*?\n">
-        <token type="CommentSingle"/>
-      </rule>
-      <rule pattern="\([\s].*?\)">
-        <token type="CommentSingle"/>
-      </rule>
-      <rule pattern="(:|variable|constant|value|buffer:)(\s+)">
-        <bygroups>
-          <token type="KeywordNamespace"/>
-          <token type="Text"/>
-        </bygroups>
-        <push state="worddef"/>
-      </rule>
-      <rule pattern="([.sc]&#34;)(\s+?)">
-        <bygroups>
-          <token type="LiteralString"/>
-          <token type="Text"/>
-        </bygroups>
-        <push state="stringdef"/>
-      </rule>
-      <rule pattern="(blk|block|buffer|evaluate|flush|load|save-buffers|update|empty-buffers|list|refill|scr|thru|\#s|\*\/mod|\+loop|\/mod|0&lt;|0=|1\+|1-|2!|2\*|2\/|2@|2drop|2dup|2over|2swap|&gt;body|&gt;in|&gt;number|&gt;r|\?dup|abort|abort\&#34;|abs|accept|align|aligned|allot|and|base|begin|bl|c!|c,|c@|cell\+|cells|char|char\+|chars|constant|count|cr|create|decimal|depth|do|does&gt;|drop|dup|else|emit|environment\?|evaluate|execute|exit|fill|find|fm\/mod|here|hold|i|if|immediate|invert|j|key|leave|literal|loop|lshift|m\*|max|min|mod|move|negate|or|over|postpone|quit|r&gt;|r@|recurse|repeat|rot|rshift|s\&#34;|s&gt;d|sign|sm\/rem|source|space|spaces|state|swap|then|type|u\.|u\&lt;|um\*|um\/mod|unloop|until|variable|while|word|xor|\[char\]|\[\&#39;\]|@|!|\#|&lt;\#|\#&gt;|:|;|\+|-|\*|\/|,|&lt;|&gt;|\|1\+|1-|\.|\.r|0&lt;&gt;|0&gt;|2&gt;r|2r&gt;|2r@|:noname|\?do|again|c\&#34;|case|compile,|endcase|endof|erase|false|hex|marker|nip|of|pad|parse|pick|refill|restore-input|roll|save-input|source-id|to|true|tuck|u\.r|u&gt;|unused|value|within|\[compile\]|\#tib|convert|expect|query|span|tib|2constant|2literal|2variable|d\+|d-|d\.|d\.r|d0&lt;|d0=|d2\*|d2\/|d&lt;|d=|d&gt;s|dabs|dmax|dmin|dnegate|m\*\/|m\+|2rot|du&lt;|catch|throw|abort|abort\&#34;|at-xy|key\?|page|ekey|ekey&gt;char|ekey\?|emit\?|ms|time&amp;date|BIN|CLOSE-FILE|CREATE-FILE|DELETE-FILE|FILE-POSITION|FILE-SIZE|INCLUDE-FILE|INCLUDED|OPEN-FILE|R\/O|R\/W|READ-FILE|READ-LINE|REPOSITION-FILE|RESIZE-FILE|S\&#34;|SOURCE-ID|W/O|WRITE-FILE|WRITE-LINE|FILE-STATUS|FLUSH-FILE|REFILL|RENAME-FILE|&gt;float|d&gt;f|f!|f\*|f\+|f-|f\/|f0&lt;|f0=|f&lt;|f&gt;d|f@|falign|faligned|fconstant|fdepth|fdrop|fdup|fliteral|float\+|floats|floor|fmax|fmin|fnegate|fover|frot|fround|fswap|fvariable|represent|df!|df@|dfalign|dfaligned|dfloat\+|dfloats|f\*\*|f\.|fabs|facos|facosh|falog|fasin|fasinh|fatan|fatan2|fatanh|fcos|fcosh|fe\.|fexp|fexpm1|fln|flnp1|flog|fs\.|fsin|fsincos|fsinh|fsqrt|ftan|ftanh|f~|precision|set-precision|sf!|sf@|sfalign|sfaligned|sfloat\+|sfloats|\(local\)|to|locals\||allocate|free|resize|definitions|find|forth-wordlist|get-current|get-order|search-wordlist|set-current|set-order|wordlist|also|forth|only|order|previous|-trailing|\/string|blank|cmove|cmove&gt;|compare|search|sliteral|.s|dump|see|words|;code|ahead|assembler|bye|code|cs-pick|cs-roll|editor|state|\[else\]|\[if\]|\[then\]|forget|defer|defer@|defer!|action-of|begin-structure|field:|buffer:|parse-name|buffer:|traverse-wordlist|n&gt;r|nr&gt;|2value|fvalue|name&gt;interpret|name&gt;compile|name&gt;string|cfield:|end-structure)\s">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="(\$[0-9A-F]+)">
-        <token type="LiteralNumberHex"/>
-      </rule>
-      <rule pattern="(\#|%|&amp;|\-|\+)?[0-9]+">
-        <token type="LiteralNumberInteger"/>
-      </rule>
-      <rule pattern="(\#|%|&amp;|\-|\+)?[0-9.]+">
-        <token type="KeywordType"/>
-      </rule>
-      <rule pattern="(@i|!i|@e|!e|pause|noop|turnkey|sleep|itype|icompare|sp@|sp!|rp@|rp!|up@|up!|&gt;a|a&gt;|a@|a!|a@+|a@-|&gt;b|b&gt;|b@|b!|b@+|b@-|find-name|1ms|sp0|rp0|\(evaluate\)|int-trap|int!)\s">
-        <token type="NameConstant"/>
-      </rule>
-      <rule pattern="(do-recognizer|r:fail|recognizer:|get-recognizers|set-recognizers|r:float|r&gt;comp|r&gt;int|r&gt;post|r:name|r:word|r:dnum|r:num|recognizer|forth-recognizer|rec:num|rec:float|rec:word)\s">
-        <token type="NameDecorator"/>
-      </rule>
-      <rule pattern="(Evalue|Rvalue|Uvalue|Edefer|Rdefer|Udefer)(\s+)">
-        <bygroups>
-          <token type="KeywordNamespace"/>
-          <token type="Text"/>
-        </bygroups>
-        <push state="worddef"/>
-      </rule>
-      <rule pattern="[^\s]+(?=[\s])">
-        <token type="NameFunction"/>
-      </rule>
-    </state>
-    <state name="worddef">
-      <rule pattern="\S+">
-        <token type="NameClass"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="stringdef">
-      <rule pattern="[^&#34;]+">
-        <token type="LiteralString"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/fortran.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/fortran.xml	(revision 67)
+++ 	(revision )
@@ -1,94 +1,0 @@
-<lexer>
-  <config>
-    <name>Fortran</name>
-    <alias>fortran</alias>
-    <alias>f90</alias>
-    <filename>*.f03</filename>
-    <filename>*.f90</filename>
-    <filename>*.f95</filename>
-    <filename>*.F03</filename>
-    <filename>*.F90</filename>
-    <filename>*.F95</filename>
-    <mime_type>text/x-fortran</mime_type>
-    <case_insensitive>true</case_insensitive>
-  </config>
-  <rules>
-    <state name="core">
-      <rule pattern="\b(DO)(\s+)(CONCURRENT)\b">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="\b(GO)(\s*)(TO)\b">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="\b(ABSTRACT|ACCEPT|ALL|ALLSTOP|ALLOCATABLE|ALLOCATE|ARRAY|ASSIGN|ASSOCIATE|ASYNCHRONOUS|BACKSPACE|BIND|BLOCK|BLOCKDATA|BYTE|CALL|CASE|CLASS|CLOSE|CODIMENSION|COMMON|CONTIGUOUS|CONTAINS|CONTINUE|CRITICAL|CYCLE|DATA|DEALLOCATE|DECODE|DEFERRED|DIMENSION|DO|ELEMENTAL|ELSE|ENCODE|END|ENDASSOCIATE|ENDBLOCK|ENDDO|ENDENUM|ENDFORALL|ENDFUNCTION|ENDIF|ENDINTERFACE|ENDMODULE|ENDPROGRAM|ENDSELECT|ENDSUBMODULE|ENDSUBROUTINE|ENDTYPE|ENDWHERE|ENTRY|ENUM|ENUMERATOR|EQUIVALENCE|ERROR STOP|EXIT|EXTENDS|EXTERNAL|EXTRINSIC|FILE|FINAL|FORALL|FORMAT|FUNCTION|GENERIC|IF|IMAGES|IMPLICIT|IMPORT|IMPURE|INCLUDE|INQUIRE|INTENT|INTERFACE|INTRINSIC|IS|LOCK|MEMORY|MODULE|NAMELIST|NULLIFY|NONE|NON_INTRINSIC|NON_OVERRIDABLE|NOPASS|ONLY|OPEN|OPTIONAL|OPTIONS|PARAMETER|PASS|PAUSE|POINTER|PRINT|PRIVATE|PROGRAM|PROCEDURE|PROTECTED|PUBLIC|PURE|READ|RECURSIVE|RESULT|RETURN|REWIND|SAVE|SELECT|SEQUENCE|STOP|SUBMODULE|SUBROUTINE|SYNC|SYNCALL|SYNCIMAGES|SYNCMEMORY|TARGET|THEN|TYPE|UNLOCK|USE|VALUE|VOLATILE|WHERE|WRITE|WHILE)\s*\b">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="\b(CHARACTER|COMPLEX|DOUBLE PRECISION|DOUBLE COMPLEX|INTEGER|LOGICAL|REAL|C_INT|C_SHORT|C_LONG|C_LONG_LONG|C_SIGNED_CHAR|C_SIZE_T|C_INT8_T|C_INT16_T|C_INT32_T|C_INT64_T|C_INT_LEAST8_T|C_INT_LEAST16_T|C_INT_LEAST32_T|C_INT_LEAST64_T|C_INT_FAST8_T|C_INT_FAST16_T|C_INT_FAST32_T|C_INT_FAST64_T|C_INTMAX_T|C_INTPTR_T|C_FLOAT|C_DOUBLE|C_LONG_DOUBLE|C_FLOAT_COMPLEX|C_DOUBLE_COMPLEX|C_LONG_DOUBLE_COMPLEX|C_BOOL|C_CHAR|C_PTR|C_FUNPTR)\s*\b">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="(\*\*|\*|\+|-|\/|&lt;|&gt;|&lt;=|&gt;=|==|\/=|=)">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="(::)">
-        <token type="KeywordDeclaration"/>
-      </rule>
-      <rule pattern="[()\[\],:&amp;%;.]">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="\b(Abort|Abs|Access|AChar|ACos|ACosH|AdjustL|AdjustR|AImag|AInt|Alarm|All|Allocated|ALog|AMax|AMin|AMod|And|ANInt|Any|ASin|ASinH|Associated|ATan|ATanH|Atomic_Define|Atomic_Ref|BesJ|BesJN|Bessel_J0|Bessel_J1|Bessel_JN|Bessel_Y0|Bessel_Y1|Bessel_YN|BesY|BesYN|BGE|BGT|BLE|BLT|Bit_Size|BTest|CAbs|CCos|Ceiling|CExp|Char|ChDir|ChMod|CLog|Cmplx|Command_Argument_Count|Complex|Conjg|Cos|CosH|Count|CPU_Time|CShift|CSin|CSqRt|CTime|C_Loc|C_Associated|C_Null_Ptr|C_Null_Funptr|C_F_Pointer|C_F_ProcPointer|C_Null_Char|C_Alert|C_Backspace|C_Form_Feed|C_FunLoc|C_Sizeof|C_New_Line|C_Carriage_Return|C_Horizontal_Tab|C_Vertical_Tab|DAbs|DACos|DASin|DATan|Date_and_Time|DbesJ|DbesJN|DbesY|DbesYN|Dble|DCos|DCosH|DDiM|DErF|DErFC|DExp|Digits|DiM|DInt|DLog|DMax|DMin|DMod|DNInt|Dot_Product|DProd|DSign|DSinH|DShiftL|DShiftR|DSin|DSqRt|DTanH|DTan|DTime|EOShift|Epsilon|ErF|ErFC|ErFC_Scaled|ETime|Execute_Command_Line|Exit|Exp|Exponent|Extends_Type_Of|FDate|FGet|FGetC|FindLoc|Float|Floor|Flush|FNum|FPutC|FPut|Fraction|FSeek|FStat|FTell|Gamma|GError|GetArg|Get_Command|Get_Command_Argument|Get_Environment_Variable|GetCWD|GetEnv|GetGId|GetLog|GetPId|GetUId|GMTime|HostNm|Huge|Hypot|IAbs|IAChar|IAll|IAnd|IAny|IArgC|IBClr|IBits|IBSet|IChar|IDate|IDiM|IDInt|IDNInt|IEOr|IErrNo|IFix|Imag|ImagPart|Image_Index|Index|Int|IOr|IParity|IRand|IsaTty|IShft|IShftC|ISign|Iso_C_Binding|Is_Contiguous|Is_Iostat_End|Is_Iostat_Eor|ITime|Kill|Kind|LBound|LCoBound|Len|Len_Trim|LGe|LGt|Link|LLe|LLt|LnBlnk|Loc|Log|Log_Gamma|Logical|Long|LShift|LStat|LTime|MaskL|MaskR|MatMul|Max|MaxExponent|MaxLoc|MaxVal|MClock|Merge|Merge_Bits|Move_Alloc|Min|MinExponent|MinLoc|MinVal|Mod|Modulo|MvBits|Nearest|New_Line|NInt|Norm2|Not|Null|Num_Images|Or|Pack|Parity|PError|Precision|Present|Product|Radix|Rand|Random_Number|Random_Seed|Range|Real|RealPart|Rename|Repeat|Reshape|RRSpacing|RShift|Same_Type_As|Scale|Scan|Second|Selected_Char_Kind|Selected_Int_Kind|Selected_Real_Kind|Set_Exponent|Shape|ShiftA|ShiftL|ShiftR|Short|Sign|Signal|SinH|Sin|Sleep|Sngl|Spacing|Spread|SqRt|SRand|Stat|Storage_Size|Sum|SymLnk|System|System_Clock|Tan|TanH|Time|This_Image|Tiny|TrailZ|Transfer|Transpose|Trim|TtyNam|UBound|UCoBound|UMask|Unlink|Unpack|Verify|XOr|ZAbs|ZCos|ZExp|ZLog|ZSin|ZSqRt)\s*\b">
-        <token type="NameBuiltin"/>
-      </rule>
-      <rule pattern="\.(true|false)\.">
-        <token type="NameBuiltin"/>
-      </rule>
-      <rule pattern="\.(eq|ne|lt|le|gt|ge|not|and|or|eqv|neqv)\.">
-        <token type="OperatorWord"/>
-      </rule>
-    </state>
-    <state name="strings">
-      <rule pattern="(?s)&#34;(\\\\|\\[0-7]+|\\.|[^&#34;\\])*&#34;">
-        <token type="LiteralStringDouble"/>
-      </rule>
-      <rule pattern="(?s)&#39;(\\\\|\\[0-7]+|\\.|[^&#39;\\])*&#39;">
-        <token type="LiteralStringSingle"/>
-      </rule>
-    </state>
-    <state name="nums">
-      <rule pattern="\d+(?![.e])(_([1-9]|[a-z]\w*))?">
-        <token type="LiteralNumberInteger"/>
-      </rule>
-      <rule pattern="[+-]?\d*\.\d+([ed][-+]?\d+)?(_([1-9]|[a-z]\w+))?">
-        <token type="LiteralNumberFloat"/>
-      </rule>
-      <rule pattern="[+-]?\d+\.\d*([ed][-+]?\d+)?(_([1-9]|[a-z]\w*))?">
-        <token type="LiteralNumberFloat"/>
-      </rule>
-      <rule pattern="[+-]?\d+(\.\d*)?[ed][-+]?\d+(_([1-9]|[a-z]\w*))?">
-        <token type="LiteralNumberFloat"/>
-      </rule>
-    </state>
-    <state name="root">
-      <rule pattern="^#.*\n">
-        <token type="CommentPreproc"/>
-      </rule>
-      <rule pattern="!.*\n">
-        <token type="Comment"/>
-      </rule>
-      <rule>
-        <include state="strings"/>
-      </rule>
-      <rule>
-        <include state="core"/>
-      </rule>
-      <rule pattern="[a-z][\w$]*">
-        <token type="Name"/>
-      </rule>
-      <rule>
-        <include state="nums"/>
-      </rule>
-      <rule pattern="[\s]+">
-        <token type="TextWhitespace"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/fsharp.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/fsharp.xml	(revision 67)
+++ 	(revision )
@@ -1,245 +1,0 @@
-<lexer>
-  <config>
-    <name>FSharp</name>
-    <alias>fsharp</alias>
-    <filename>*.fs</filename>
-    <filename>*.fsi</filename>
-    <mime_type>text/x-fsharp</mime_type>
-  </config>
-  <rules>
-    <state name="comment">
-      <rule pattern="[^(*)@&#34;]+">
-        <token type="Comment"/>
-      </rule>
-      <rule pattern="\(\*">
-        <token type="Comment"/>
-        <push/>
-      </rule>
-      <rule pattern="\*\)">
-        <token type="Comment"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="@&#34;">
-        <token type="LiteralString"/>
-        <push state="lstring"/>
-      </rule>
-      <rule pattern="&#34;&#34;&#34;">
-        <token type="LiteralString"/>
-        <push state="tqs"/>
-      </rule>
-      <rule pattern="&#34;">
-        <token type="LiteralString"/>
-        <push state="string"/>
-      </rule>
-      <rule pattern="[(*)@]">
-        <token type="Comment"/>
-      </rule>
-    </state>
-    <state name="string">
-      <rule pattern="[^\\&#34;]+">
-        <token type="LiteralString"/>
-      </rule>
-      <rule>
-        <include state="escape-sequence"/>
-      </rule>
-      <rule pattern="\\\n">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="\n">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="&#34;B?">
-        <token type="LiteralString"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="lstring">
-      <rule pattern="[^&#34;]+">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="\n">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="&#34;&#34;">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="&#34;B?">
-        <token type="LiteralString"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="tqs">
-      <rule pattern="[^&#34;]+">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="\n">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="&#34;&#34;&#34;B?">
-        <token type="LiteralString"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="&#34;">
-        <token type="LiteralString"/>
-      </rule>
-    </state>
-    <state name="escape-sequence">
-      <rule pattern="\\[\\&#34;\&#39;ntbrafv]">
-        <token type="LiteralStringEscape"/>
-      </rule>
-      <rule pattern="\\[0-9]{3}">
-        <token type="LiteralStringEscape"/>
-      </rule>
-      <rule pattern="\\u[0-9a-fA-F]{4}">
-        <token type="LiteralStringEscape"/>
-      </rule>
-      <rule pattern="\\U[0-9a-fA-F]{8}">
-        <token type="LiteralStringEscape"/>
-      </rule>
-    </state>
-    <state name="root">
-      <rule pattern="\s+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="\(\)|\[\]">
-        <token type="NameBuiltinPseudo"/>
-      </rule>
-      <rule pattern="\b(?&lt;!\.)([A-Z][\w\&#39;]*)(?=\s*\.)">
-        <token type="NameNamespace"/>
-        <push state="dotted"/>
-      </rule>
-      <rule pattern="\b([A-Z][\w\&#39;]*)">
-        <token type="Name"/>
-      </rule>
-      <rule pattern="///.*?\n">
-        <token type="LiteralStringDoc"/>
-      </rule>
-      <rule pattern="//.*?\n">
-        <token type="CommentSingle"/>
-      </rule>
-      <rule pattern="\(\*(?!\))">
-        <token type="Comment"/>
-        <push state="comment"/>
-      </rule>
-      <rule pattern="@&#34;">
-        <token type="LiteralString"/>
-        <push state="lstring"/>
-      </rule>
-      <rule pattern="&#34;&#34;&#34;">
-        <token type="LiteralString"/>
-        <push state="tqs"/>
-      </rule>
-      <rule pattern="&#34;">
-        <token type="LiteralString"/>
-        <push state="string"/>
-      </rule>
-      <rule pattern="\b(open|module)(\s+)([\w.]+)">
-        <bygroups>
-          <token type="Keyword"/>
-          <token type="Text"/>
-          <token type="NameNamespace"/>
-        </bygroups>
-      </rule>
-      <rule pattern="\b(let!?)(\s+)(\w+)">
-        <bygroups>
-          <token type="Keyword"/>
-          <token type="Text"/>
-          <token type="NameVariable"/>
-        </bygroups>
-      </rule>
-      <rule pattern="\b(type)(\s+)(\w+)">
-        <bygroups>
-          <token type="Keyword"/>
-          <token type="Text"/>
-          <token type="NameClass"/>
-        </bygroups>
-      </rule>
-      <rule pattern="\b(member|override)(\s+)(\w+)(\.)(\w+)">
-        <bygroups>
-          <token type="Keyword"/>
-          <token type="Text"/>
-          <token type="Name"/>
-          <token type="Punctuation"/>
-          <token type="NameFunction"/>
-        </bygroups>
-      </rule>
-      <rule pattern="\b(abstract|as|assert|base|begin|class|default|delegate|do!|do|done|downcast|downto|elif|else|end|exception|extern|false|finally|for|function|fun|global|if|inherit|inline|interface|internal|in|lazy|let!|let|match|member|module|mutable|namespace|new|null|of|open|override|private|public|rec|return!|return|select|static|struct|then|to|true|try|type|upcast|use!|use|val|void|when|while|with|yield!|yield|atomic|break|checked|component|const|constraint|constructor|continue|eager|event|external|fixed|functor|include|method|mixin|object|parallel|process|protected|pure|sealed|tailcall|trait|virtual|volatile)\b">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="``([^`\n\r\t]|`[^`\n\r\t])+``">
-        <token type="Name"/>
-      </rule>
-      <rule pattern="#[ \t]*(if|endif|else|line|nowarn|light|r|\d+)\b">
-        <token type="CommentPreproc"/>
-      </rule>
-      <rule pattern="(!=|#|&amp;&amp;|&amp;|\(|\)|\*|\+|,|-\.|-&gt;|-|\.\.|\.|::|:=|:&gt;|:|;;|;|&lt;-|&lt;\]|&lt;|&gt;\]|&gt;|\?\?|\?|\[&lt;|\[\||\[|\]|_|`|\{|\|\]|\||\}|~|&lt;@@|&lt;@|=|@&gt;|@@&gt;)">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="([=&lt;&gt;@^|&amp;+\*/$%-]|[!?~])?[!$%&amp;*+\./:&lt;=&gt;?@^|~-]">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="\b(and|or|not)\b">
-        <token type="OperatorWord"/>
-      </rule>
-      <rule pattern="\b(sbyte|byte|char|nativeint|unativeint|float32|single|float|double|int8|uint8|int16|uint16|int32|uint32|int64|uint64|decimal|unit|bool|string|list|exn|obj|enum)\b">
-        <token type="KeywordType"/>
-      </rule>
-      <rule pattern="[^\W\d][\w&#39;]*">
-        <token type="Name"/>
-      </rule>
-      <rule pattern="\d[\d_]*[uU]?[yslLnQRZINGmM]?">
-        <token type="LiteralNumberInteger"/>
-      </rule>
-      <rule pattern="0[xX][\da-fA-F][\da-fA-F_]*[uU]?[yslLn]?[fF]?">
-        <token type="LiteralNumberHex"/>
-      </rule>
-      <rule pattern="0[oO][0-7][0-7_]*[uU]?[yslLn]?">
-        <token type="LiteralNumberOct"/>
-      </rule>
-      <rule pattern="0[bB][01][01_]*[uU]?[yslLn]?">
-        <token type="LiteralNumberBin"/>
-      </rule>
-      <rule pattern="-?\d[\d_]*(.[\d_]*)?([eE][+\-]?\d[\d_]*)[fFmM]?">
-        <token type="LiteralNumberFloat"/>
-      </rule>
-      <rule pattern="&#39;(?:(\\[\\\&#34;&#39;ntbr ])|(\\[0-9]{3})|(\\x[0-9a-fA-F]{2}))&#39;B?">
-        <token type="LiteralStringChar"/>
-      </rule>
-      <rule pattern="&#39;.&#39;">
-        <token type="LiteralStringChar"/>
-      </rule>
-      <rule pattern="&#39;">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="@?&#34;">
-        <token type="LiteralStringDouble"/>
-        <push state="string"/>
-      </rule>
-      <rule pattern="[~?][a-z][\w\&#39;]*:">
-        <token type="NameVariable"/>
-      </rule>
-    </state>
-    <state name="dotted">
-      <rule pattern="\s+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="\.">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="[A-Z][\w\&#39;]*(?=\s*\.)">
-        <token type="NameNamespace"/>
-      </rule>
-      <rule pattern="[A-Z][\w\&#39;]*">
-        <token type="Name"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="[a-z_][\w\&#39;]*">
-        <token type="Name"/>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <pop depth="1"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/gas.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/gas.xml	(revision 67)
+++ 	(revision )
@@ -1,149 +1,0 @@
-<lexer>
-  <config>
-    <name>GAS</name>
-    <alias>gas</alias>
-    <alias>asm</alias>
-    <filename>*.s</filename>
-    <filename>*.S</filename>
-    <mime_type>text/x-gas</mime_type>
-  </config>
-  <rules>
-    <state name="punctuation">
-      <rule pattern="[-*,.()\[\]!:]+">
-        <token type="Punctuation"/>
-      </rule>
-    </state>
-    <state name="root">
-      <rule>
-        <include state="whitespace"/>
-      </rule>
-      <rule pattern="(?:[a-zA-Z$_][\w$.@-]*|\.[\w$.@-]+):">
-        <token type="NameLabel"/>
-      </rule>
-      <rule pattern="\.(?:[a-zA-Z$_][\w$.@-]*|\.[\w$.@-]+)">
-        <token type="NameAttribute"/>
-        <push state="directive-args"/>
-      </rule>
-      <rule pattern="lock|rep(n?z)?|data\d+">
-        <token type="NameAttribute"/>
-      </rule>
-      <rule pattern="(?:[a-zA-Z$_][\w$.@-]*|\.[\w$.@-]+)">
-        <token type="NameFunction"/>
-        <push state="instruction-args"/>
-      </rule>
-      <rule pattern="[\r\n]+">
-        <token type="Text"/>
-      </rule>
-    </state>
-    <state name="directive-args">
-      <rule pattern="(?:[a-zA-Z$_][\w$.@-]*|\.[\w$.@-]+)">
-        <token type="NameConstant"/>
-      </rule>
-      <rule pattern="&#34;(\\&#34;|[^&#34;])*&#34;">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="@(?:[a-zA-Z$_][\w$.@-]*|\.[\w$.@-]+)">
-        <token type="NameAttribute"/>
-      </rule>
-      <rule pattern="(?:0[xX][a-zA-Z0-9]+|\d+)">
-        <token type="LiteralNumberInteger"/>
-      </rule>
-      <rule pattern="%(?:[a-zA-Z$_][\w$.@-]*|\.[\w$.@-]+)">
-        <token type="NameVariable"/>
-      </rule>
-      <rule pattern="[\r\n]+">
-        <token type="Text"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="([;#]|//).*?\n">
-        <token type="CommentSingle"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="/[*].*?[*]/">
-        <token type="CommentMultiline"/>
-      </rule>
-      <rule pattern="/[*].*?\n[\w\W]*?[*]/">
-        <token type="CommentMultiline"/>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <include state="punctuation"/>
-      </rule>
-      <rule>
-        <include state="whitespace"/>
-      </rule>
-    </state>
-    <state name="instruction-args">
-      <rule pattern="([a-z0-9]+)( )(&lt;)((?:[a-zA-Z$_][\w$.@-]*|\.[\w$.@-]+))(&gt;)">
-        <bygroups>
-          <token type="LiteralNumberHex"/>
-          <token type="Text"/>
-          <token type="Punctuation"/>
-          <token type="NameConstant"/>
-          <token type="Punctuation"/>
-        </bygroups>
-      </rule>
-      <rule pattern="([a-z0-9]+)( )(&lt;)((?:[a-zA-Z$_][\w$.@-]*|\.[\w$.@-]+))([-+])((?:0[xX][a-zA-Z0-9]+|\d+))(&gt;)">
-        <bygroups>
-          <token type="LiteralNumberHex"/>
-          <token type="Text"/>
-          <token type="Punctuation"/>
-          <token type="NameConstant"/>
-          <token type="Punctuation"/>
-          <token type="LiteralNumberInteger"/>
-          <token type="Punctuation"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(?:[a-zA-Z$_][\w$.@-]*|\.[\w$.@-]+)">
-        <token type="NameConstant"/>
-      </rule>
-      <rule pattern="(?:0[xX][a-zA-Z0-9]+|\d+)">
-        <token type="LiteralNumberInteger"/>
-      </rule>
-      <rule pattern="%(?:[a-zA-Z$_][\w$.@-]*|\.[\w$.@-]+)">
-        <token type="NameVariable"/>
-      </rule>
-      <rule pattern="$(?:0[xX][a-zA-Z0-9]+|\d+)">
-        <token type="LiteralNumberInteger"/>
-      </rule>
-      <rule pattern="$&#39;(.|\\&#39;)&#39;">
-        <token type="LiteralStringChar"/>
-      </rule>
-      <rule pattern="[\r\n]+">
-        <token type="Text"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="([;#]|//).*?\n">
-        <token type="CommentSingle"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="/[*].*?[*]/">
-        <token type="CommentMultiline"/>
-      </rule>
-      <rule pattern="/[*].*?\n[\w\W]*?[*]/">
-        <token type="CommentMultiline"/>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <include state="punctuation"/>
-      </rule>
-      <rule>
-        <include state="whitespace"/>
-      </rule>
-    </state>
-    <state name="whitespace">
-      <rule pattern="\n">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="\s+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="([;#]|//).*?\n">
-        <token type="CommentSingle"/>
-      </rule>
-      <rule pattern="/[*][\w\W]*?[*]/">
-        <token type="CommentMultiline"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/gdscript.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/gdscript.xml	(revision 67)
+++ 	(revision )
@@ -1,265 +1,0 @@
-<lexer>
-  <config>
-    <name>GDScript</name>
-    <alias>gdscript</alias>
-    <alias>gd</alias>
-    <filename>*.gd</filename>
-    <mime_type>text/x-gdscript</mime_type>
-    <mime_type>application/x-gdscript</mime_type>
-  </config>
-  <rules>
-    <state name="builtins">
-      <rule pattern="(?&lt;!\.)(instance_from_id|nearest_po2|print_stack|type_exist|rand_range|linear2db|var2bytes|dict2inst|randomize|bytes2var|rand_seed|db2linear|inst2dict|printerr|printraw|decimals|preload|deg2rad|str2var|stepify|var2str|convert|weakref|fposmod|funcref|rad2deg|dectime|printt|is_inf|is_nan|assert|Color8|typeof|ColorN|prints|floor|atan2|yield|randf|print|range|clamp|round|randi|sqrt|tanh|cosh|ceil|ease|acos|load|fmod|lerp|seed|sign|atan|sinh|hash|asin|sin|str|cos|tan|pow|exp|min|abs|log|max)\b">
-        <token type="NameBuiltin"/>
-      </rule>
-      <rule pattern="(?&lt;!\.)(self|false|true|PI|NAN|INF)\b">
-        <token type="NameBuiltinPseudo"/>
-      </rule>
-      <rule pattern="(?&lt;!\.)(Physics2DShapeQueryParameters|PhysicsShapeQueryParameters|Physics2DDirectBodyStateSW|NavigationPolygonInstance|ResourceInteractiveLoader|Physics2DDirectSpaceState|Physics2DShapeQueryResult|Physics2DTestMotionResult|InputEventJoystickButton|InputEventJoystickMotion|Physics2DDirectBodyState|PhysicsDirectBodyStateSW|PhysicsShapeQueryResult|PhysicsDirectSpaceState|SpatialSound2DServerSW|PackedDataContainerRef|NavigationMeshInstance|ResourceImportMetadata|PhysicsDirectBodyState|ConcavePolygonShape2D|CanvasItemShaderGraph|EditorScenePostImport|InputEventScreenTouch|InputEventMouseButton|InputEventMouseMotion|SpatialSound2DServer|AudioStreamOGGVorbis|VisibilityNotifier2D|InputEventScreenDrag|ConvexPolygonShape2D|SpatialSoundServerSW|ParticleAttractor2D|PackedDataContainer|SpatialStreamPlayer|RenderTargetTexture|AnimationTreePlayer|ConcavePolygonShape|InstancePlaceholder|MaterialShaderGraph|AudioStreamPlayback|VisibilityEnabler2D|SpatialSamplePlayer|DampedSpringJoint2D|InterpolatedCamera|ConvexPolygonShape|ConfirmationDialog|SpatialSoundServer|BakedLightInstance|ParallaxBackground|CollisionPolygon2D|CanvasItemMaterial|VisibilityNotifier|EditorImportPlugin|VideoStreamTheora|TouchScreenButton|ResourcePreloader|OccluderPolygon2D|BakedLightSampler|CollisionObject2D|RemoteTransform2D|PolygonPathFinder|StyleBoxImageMask|NavigationPolygon|TranslationServer|MultiMeshInstance|ImmediateGeometry|Physics2DServerSW|ColorPickerButton|VisibilityEnabler|PHashTranslation|RectangleShape2D|DirectionalLight|AnimatedSprite3D|WorldEnvironment|CollisionShape2D|EventStreamChibi|InputEventAction|CollisionPolygon|AudioStreamSpeex|EditorFileDialog|GeometryInstance|Generic6DOFJoint|PacketPeerStream|CanvasItemShader|KinematicBody2D|StyleBoxTexture|PhysicsServerSW|VSplitContainer|CenterContainer|GDFunctionState|AudioStreamOpus|TextureProgress|MarginContainer|CollisionObject|LightOccluder2D|AnimationPlayer|HSplitContainer|ScrollContainer|SoundRoomParams|Physics2DServer|MaterialShader|ShaderMaterial|ViewportSprite|SplitContainer|AudioStreamMPC|VisualInstance|PanelContainer|BackBufferCopy|SamplePlayer2D|CanvasModulate|ResourceLoader|CapsuleShape2D|ReferenceFrame|NavigationMesh|CollisionShape|ConeTwistJoint|ProximityGroup|AnimatedSprite|SegmentShape2D|BoneAttachment|RichTextLabel|CircleShape2D|VBoxContainer|PacketPeerUDP|SpatialPlayer|TextureButton|KinematicBody|SoundPlayer2D|PhysicsServer|ParallaxLayer|InputEventKey|GrooveJoint2D|PhysicsBody2D|FixedMaterial|GridContainer|HBoxContainer|StreamPeerSSL|StyleBoxEmpty|StreamPeerTCP|SampleLibrary|GDNativeClass|AudioServerSW|ResourceSaver|SpriteBase3D|StreamPlayer|AtlasTexture|VisualServer|SamplePlayer|StyleBoxFlat|StaticBody2D|SpriteFrames|MeshDataTool|MeshInstance|Vector3Array|BoxContainer|TabContainer|HButtonArray|LargeTexture|Navigation2D|WindowDialog|EditorScript|EditorPlugin|TextureFrame|AcceptDialog|ImageTexture|CapsuleShape|VehicleWheel|VButtonArray|Vector2Array|InputDefault|OptionButton|PathFollow2D|VehicleBody|ColorPicker|PopupDialog|ProgressBar|CanvasLayer|Translation|Environment|EventPlayer|VideoPlayer|EventStream|VideoStream|ButtonGroup|Particles2D|Patch9Frame|ButtonArray|SurfaceTool|MeshLibrary|PackedScene|PhysicsBody|AudioStream|Performance|StringArray|AudioServer|RigidBody2D|LineShape2D|SliderJoint|SphereShape|ShaderGraph|CheckButton|StreamPeer|FileDialog|PathFollow|SceneState|RoomBounds|Dictionary|VSeparator|PacketPeer|VScrollBar|MenuButton|HTTPClient|PinJoint2D|BakedLight|PlaneShape|InputEvent|BaseButton|HSeparator|HScrollBar|Navigation|PopupPanel|StaticBody|Position2D|Position3D|ToolButton|HingeJoint|CanvasItem|RayShape2D|ColorArray|ConfigFile|TCP_Server|RayCast2D|ColorRamp|SpotLight|RealArray|GraphNode|Container|Reference|PopupMenu|Separator|Polygon2D|MultiMesh|Semaphore|Transform|OmniLight|GraphEdit|Particles|Animation|Marshalls|SceneTree|RigidBody|XMLParser|PathRemap|ScrollBar|Directory|PCKPacker|RawArray|TextEdit|MainLoop|TreeItem|StyleBox|Material|Geometry|Matrix32|Resource|UndoRedo|RayShape|TestCube|ItemList|CheckBox|Camera2D|Skeleton|Sprite3D|Viewport|NodePath|IntArray|BoxShape|PinJoint|InputMap|LineEdit|GDScript|Vector3|TileMap|HSlider|Spatial|SpinBox|World2D|IP_Unix|Curve2D|Curve3D|WeakRef|GridMap|Matrix3|VSlider|CubeMap|Joint2D|Globals|Shape2D|Texture|Control|TileSet|Light2D|FuncRef|Vector2|RayCast|Script|Node2D|Button|BitMap|Sample|Object|String|Shader|Area2D|Slider|Sprite|Thread|Path2D|Camera|Portal|float|Theme|World|YSort|Shape|Joint|Mutex|Tween|RegEx|Label|Rect2|Array|Plane|Light|Range|Color|Input|Popup|Panel|Timer|Image|Area|Quad|bool|AABB|Quat|File|Tabs|Path|Font|Tree|Room|Mesh|Node|RID|int|Nil|IP|OS)\b">
-        <token type="NameException"/>
-      </rule>
-    </state>
-    <state name="sqs">
-      <rule pattern="&#39;">
-        <token type="LiteralStringSingle"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="\\\\|\\&#39;|\\\n">
-        <token type="LiteralStringEscape"/>
-      </rule>
-      <rule>
-        <include state="strings-single"/>
-      </rule>
-    </state>
-    <state name="stringescape">
-      <rule pattern="\\([\\abfnrtv&#34;\&#39;]|\n|N\{.*?\}|u[a-fA-F0-9]{4}|U[a-fA-F0-9]{8}|x[a-fA-F0-9]{2}|[0-7]{1,3})">
-        <token type="LiteralStringEscape"/>
-      </rule>
-    </state>
-    <state name="classname">
-      <rule pattern="[a-zA-Z_]\w*">
-        <token type="NameClass"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="strings-single">
-      <rule pattern="%(\(\w+\))?[-#0 +]*([0-9]+|[*])?(\.([0-9]+|[*]))?[hlL]?[E-GXc-giorsux%]">
-        <token type="LiteralStringInterpol"/>
-      </rule>
-      <rule pattern="[^\\\&#39;&#34;%\n]+">
-        <token type="LiteralStringSingle"/>
-      </rule>
-      <rule pattern="[\&#39;&#34;\\]">
-        <token type="LiteralStringSingle"/>
-      </rule>
-      <rule pattern="%">
-        <token type="LiteralStringSingle"/>
-      </rule>
-    </state>
-    <state name="funcname">
-      <rule pattern="[a-zA-Z_]\w*">
-        <token type="NameFunction"/>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="numbers">
-      <rule pattern="(\d+\.\d*|\d*\.\d+)([eE][+-]?[0-9]+)?j?">
-        <token type="LiteralNumberFloat"/>
-      </rule>
-      <rule pattern="\d+[eE][+-]?[0-9]+j?">
-        <token type="LiteralNumberFloat"/>
-      </rule>
-      <rule pattern="0[xX][a-fA-F0-9]+">
-        <token type="LiteralNumberHex"/>
-      </rule>
-      <rule pattern="\d+j?">
-        <token type="LiteralNumberInteger"/>
-      </rule>
-    </state>
-    <state name="tdqs">
-      <rule pattern="&#34;&#34;&#34;">
-        <token type="LiteralStringDouble"/>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <include state="strings-double"/>
-      </rule>
-      <rule pattern="\n">
-        <token type="LiteralStringDouble"/>
-      </rule>
-    </state>
-    <state name="name">
-      <rule pattern="[a-zA-Z_]\w*">
-        <token type="Name"/>
-      </rule>
-    </state>
-    <state name="root">
-      <rule pattern="\n">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="^(\s*)([rRuUbB]{,2})(&#34;&#34;&#34;(?:.|\n)*?&#34;&#34;&#34;)">
-        <bygroups>
-          <token type="Text"/>
-          <token type="LiteralStringAffix"/>
-          <token type="LiteralStringDoc"/>
-        </bygroups>
-      </rule>
-      <rule pattern="^(\s*)([rRuUbB]{,2})(&#39;&#39;&#39;(?:.|\n)*?&#39;&#39;&#39;)">
-        <bygroups>
-          <token type="Text"/>
-          <token type="LiteralStringAffix"/>
-          <token type="LiteralStringDoc"/>
-        </bygroups>
-      </rule>
-      <rule pattern="[^\S\n]+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="#.*$">
-        <token type="CommentSingle"/>
-      </rule>
-      <rule pattern="[]{}:(),;[]">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="\\\n">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="\\">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="(in|and|or|not)\b">
-        <token type="OperatorWord"/>
-      </rule>
-      <rule pattern="!=|==|&lt;&lt;|&gt;&gt;|&amp;&amp;|\+=|-=|\*=|/=|%=|&amp;=|\|=|\|\||[-~+/*%=&lt;&gt;&amp;^.!|$]">
-        <token type="Operator"/>
-      </rule>
-      <rule>
-        <include state="keywords"/>
-      </rule>
-      <rule pattern="(def)((?:\s|\\\s)+)">
-        <bygroups>
-          <token type="Keyword"/>
-          <token type="Text"/>
-        </bygroups>
-        <push state="funcname"/>
-      </rule>
-      <rule pattern="(class)((?:\s|\\\s)+)">
-        <bygroups>
-          <token type="Keyword"/>
-          <token type="Text"/>
-        </bygroups>
-        <push state="classname"/>
-      </rule>
-      <rule>
-        <include state="builtins"/>
-      </rule>
-      <rule pattern="([rR]|[uUbB][rR]|[rR][uUbB])(&#34;&#34;&#34;)">
-        <bygroups>
-          <token type="LiteralStringAffix"/>
-          <token type="LiteralStringDouble"/>
-        </bygroups>
-        <push state="tdqs"/>
-      </rule>
-      <rule pattern="([rR]|[uUbB][rR]|[rR][uUbB])(&#39;&#39;&#39;)">
-        <bygroups>
-          <token type="LiteralStringAffix"/>
-          <token type="LiteralStringSingle"/>
-        </bygroups>
-        <push state="tsqs"/>
-      </rule>
-      <rule pattern="([rR]|[uUbB][rR]|[rR][uUbB])(&#34;)">
-        <bygroups>
-          <token type="LiteralStringAffix"/>
-          <token type="LiteralStringDouble"/>
-        </bygroups>
-        <push state="dqs"/>
-      </rule>
-      <rule pattern="([rR]|[uUbB][rR]|[rR][uUbB])(&#39;)">
-        <bygroups>
-          <token type="LiteralStringAffix"/>
-          <token type="LiteralStringSingle"/>
-        </bygroups>
-        <push state="sqs"/>
-      </rule>
-      <rule pattern="([uUbB]?)(&#34;&#34;&#34;)">
-        <bygroups>
-          <token type="LiteralStringAffix"/>
-          <token type="LiteralStringDouble"/>
-        </bygroups>
-        <combined state="stringescape" state="tdqs"/>
-      </rule>
-      <rule pattern="([uUbB]?)(&#39;&#39;&#39;)">
-        <bygroups>
-          <token type="LiteralStringAffix"/>
-          <token type="LiteralStringSingle"/>
-        </bygroups>
-        <combined state="stringescape" state="tsqs"/>
-      </rule>
-      <rule pattern="([uUbB]?)(&#34;)">
-        <bygroups>
-          <token type="LiteralStringAffix"/>
-          <token type="LiteralStringDouble"/>
-        </bygroups>
-        <combined state="stringescape" state="dqs"/>
-      </rule>
-      <rule pattern="([uUbB]?)(&#39;)">
-        <bygroups>
-          <token type="LiteralStringAffix"/>
-          <token type="LiteralStringSingle"/>
-        </bygroups>
-        <combined state="stringescape" state="sqs"/>
-      </rule>
-      <rule>
-        <include state="name"/>
-      </rule>
-      <rule>
-        <include state="numbers"/>
-      </rule>
-    </state>
-    <state name="keywords">
-      <rule pattern="(breakpoint|continue|onready|extends|signal|return|export|static|setget|switch|break|const|while|class|tool|pass|func|case|enum|else|elif|var|for|do|if)\b">
-        <token type="Keyword"/>
-      </rule>
-    </state>
-    <state name="dqs">
-      <rule pattern="&#34;">
-        <token type="LiteralStringDouble"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="\\\\|\\&#34;|\\\n">
-        <token type="LiteralStringEscape"/>
-      </rule>
-      <rule>
-        <include state="strings-double"/>
-      </rule>
-    </state>
-    <state name="tsqs">
-      <rule pattern="&#39;&#39;&#39;">
-        <token type="LiteralStringSingle"/>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <include state="strings-single"/>
-      </rule>
-      <rule pattern="\n">
-        <token type="LiteralStringSingle"/>
-      </rule>
-    </state>
-    <state name="strings-double">
-      <rule pattern="%(\(\w+\))?[-#0 +]*([0-9]+|[*])?(\.([0-9]+|[*]))?[hlL]?[E-GXc-giorsux%]">
-        <token type="LiteralStringInterpol"/>
-      </rule>
-      <rule pattern="[^\\\&#39;&#34;%\n]+">
-        <token type="LiteralStringDouble"/>
-      </rule>
-      <rule pattern="[\&#39;&#34;\\]">
-        <token type="LiteralStringDouble"/>
-      </rule>
-      <rule pattern="%">
-        <token type="LiteralStringDouble"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/gherkin.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/gherkin.xml	(revision 67)
+++ 	(revision )
@@ -1,263 +1,0 @@
-<lexer>
-  <config>
-    <name>Gherkin</name>
-    <alias>cucumber</alias>
-    <alias>Cucumber</alias>
-    <alias>gherkin</alias>
-    <alias>Gherkin</alias>
-    <filename>*.feature</filename>
-    <filename>*.FEATURE</filename>
-    <mime_type>text/x-gherkin</mime_type>
-  </config>
-  <rules>
-    <state name="comments">
-      <rule pattern="\s*#.*$">
-        <token type="Comment"/>
-      </rule>
-    </state>
-    <state name="featureElementsOnStack">
-      <rule pattern="^(\s*)(하지만|조건|먼저|만일|만약|단|그리고|그러면|那麼|那么|而且|當|当|前提|假設|假设|假如|假定|但是|但し|並且|并且|同時|同时|もし|ならば|ただし|しかし|かつ|و |متى |لكن |عندما |ثم |بفرض |اذاً |כאשר |וגם |בהינתן |אזי |אז |אבל |Якщо |Унда |То |Припустимо, що |Припустимо |Онда |Но |Нехай |Лекин |Когато |Када |Кад |К тому же |И |Задато |Задати |Задате |Если |Допустим |Дадено |Ва |Бирок |Аммо |Али |Але |Агар |А |І |Și |És |Zatati |Zakładając |Zadato |Zadate |Zadano |Zadani |Zadan |Youse know when youse got |Youse know like when |Yna |Ya know how |Ya gotta |Y |Wun |Wtedy |When y&#39;all |When |Wenn |WEN |Và |Ve |Und |Un |Thì |Then y&#39;all |Then |Tapi |Tak |Tada |Tad |Så |Stel |Soit |Siis |Si |Sed |Se |Quando |Quand |Quan |Pryd |Pokud |Pokiaľ |Però |Pero |Pak |Oraz |Onda |Ond |Oletetaan |Og |Och |O zaman |Når |När |Niin |Nhưng |N |Mutta |Men |Mas |Maka |Majd |Mais |Maar |Ma |Lorsque |Lorsqu&#39;|Kun |Kuid |Kui |Khi |Keď |Ketika |Když |Kaj |Kai |Kada |Kad |Jeżeli |Ja |Ir |I CAN HAZ |I |Ha |Givun |Givet |Given y&#39;all |Given |Gitt |Gegeven |Gegeben sei |Fakat |Eğer ki |Etant donné |Et |Então |Entonces |Entao |En |Eeldades |E |Duota |Dun |Donitaĵo |Donat |Donada |Do |Diyelim ki |Dengan |Den youse gotta |De |Dato |Dar |Dann |Dan |Dado |Dacă |Daca |DEN |Când |Cuando |Cho |Cept |Cand |Cal |But y&#39;all |But |Buh |Biết |Bet |BUT |Atès |Atunci |Atesa |Anrhegedig a |Angenommen |And y&#39;all |And |An |Ama |Als |Alors |Allora |Ali |Aleshores |Ale |Akkor |Aber |AN |A také |A |\* )">
-        <token type="Keyword"/>
-        <pop depth="2"/>
-      </rule>
-      <rule>
-        <include state="comments"/>
-      </rule>
-      <rule pattern="(\s|.)">
-        <token type="NameFunction"/>
-      </rule>
-    </state>
-    <state name="tableContent">
-      <rule pattern="\s+\|\s*$">
-        <token type="Keyword"/>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <include state="comments"/>
-      </rule>
-      <rule pattern="\\\|">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="\s*\|">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="&#34;">
-        <token type="LiteralString"/>
-        <push state="doubleStringTable"/>
-      </rule>
-      <rule>
-        <include state="string"/>
-      </rule>
-    </state>
-    <state name="numbers">
-      <rule pattern="(\d+\.?\d*|\d*\.\d+)([eE][+-]?[0-9]+)?">
-        <token type="LiteralString"/>
-      </rule>
-    </state>
-    <state name="tableVars">
-      <rule pattern="(&lt;[^&gt;]+&gt;)">
-        <token type="NameVariable"/>
-      </rule>
-    </state>
-    <state name="doubleString">
-      <rule pattern="&#34;">
-        <token type="NameFunction"/>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <include state="string"/>
-      </rule>
-    </state>
-    <state name="featureElements">
-      <rule pattern="^(\s*)(하지만|조건|먼저|만일|만약|단|그리고|그러면|那麼|那么|而且|當|当|前提|假設|假设|假如|假定|但是|但し|並且|并且|同時|同时|もし|ならば|ただし|しかし|かつ|و |متى |لكن |عندما |ثم |بفرض |اذاً |כאשר |וגם |בהינתן |אזי |אז |אבל |Якщо |Унда |То |Припустимо, що |Припустимо |Онда |Но |Нехай |Лекин |Когато |Када |Кад |К тому же |И |Задато |Задати |Задате |Если |Допустим |Дадено |Ва |Бирок |Аммо |Али |Але |Агар |А |І |Și |És |Zatati |Zakładając |Zadato |Zadate |Zadano |Zadani |Zadan |Youse know when youse got |Youse know like when |Yna |Ya know how |Ya gotta |Y |Wun |Wtedy |When y&#39;all |When |Wenn |WEN |Và |Ve |Und |Un |Thì |Then y&#39;all |Then |Tapi |Tak |Tada |Tad |Så |Stel |Soit |Siis |Si |Sed |Se |Quando |Quand |Quan |Pryd |Pokud |Pokiaľ |Però |Pero |Pak |Oraz |Onda |Ond |Oletetaan |Og |Och |O zaman |Når |När |Niin |Nhưng |N |Mutta |Men |Mas |Maka |Majd |Mais |Maar |Ma |Lorsque |Lorsqu&#39;|Kun |Kuid |Kui |Khi |Keď |Ketika |Když |Kaj |Kai |Kada |Kad |Jeżeli |Ja |Ir |I CAN HAZ |I |Ha |Givun |Givet |Given y&#39;all |Given |Gitt |Gegeven |Gegeben sei |Fakat |Eğer ki |Etant donné |Et |Então |Entonces |Entao |En |Eeldades |E |Duota |Dun |Donitaĵo |Donat |Donada |Do |Diyelim ki |Dengan |Den youse gotta |De |Dato |Dar |Dann |Dan |Dado |Dacă |Daca |DEN |Când |Cuando |Cho |Cept |Cand |Cal |But y&#39;all |But |Buh |Biết |Bet |BUT |Atès |Atunci |Atesa |Anrhegedig a |Angenommen |And y&#39;all |And |An |Ama |Als |Alors |Allora |Ali |Aleshores |Ale |Akkor |Aber |AN |A také |A |\* )">
-        <token type="Keyword"/>
-        <push state="stepContentStack"/>
-      </rule>
-      <rule>
-        <include state="comments"/>
-      </rule>
-      <rule pattern="(\s|.)">
-        <token type="NameFunction"/>
-      </rule>
-    </state>
-    <state name="examplesTableHeader">
-      <rule pattern="\s+\|\s*$">
-        <token type="Keyword"/>
-        <pop depth="2"/>
-      </rule>
-      <rule>
-        <include state="comments"/>
-      </rule>
-      <rule pattern="\\\|">
-        <token type="NameVariable"/>
-      </rule>
-      <rule pattern="\s*\|">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="[^|]">
-        <token type="NameVariable"/>
-      </rule>
-    </state>
-    <state name="stepContentStack">
-      <rule pattern="$">
-        <token type="Keyword"/>
-        <pop depth="2"/>
-      </rule>
-      <rule>
-        <include state="stepContent"/>
-      </rule>
-    </state>
-    <state name="pyString">
-      <rule pattern="&#34;&#34;&#34;">
-        <token type="Keyword"/>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <include state="string"/>
-      </rule>
-    </state>
-    <state name="examplesTable">
-      <rule pattern="\s+\|">
-        <token type="Keyword"/>
-        <push state="examplesTableHeader"/>
-      </rule>
-      <rule>
-        <include state="comments"/>
-      </rule>
-      <rule pattern="(\s|.)">
-        <token type="NameFunction"/>
-      </rule>
-    </state>
-    <state name="stepContentRoot">
-      <rule pattern="$">
-        <token type="Keyword"/>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <include state="stepContent"/>
-      </rule>
-    </state>
-    <state name="doubleStringTable">
-      <rule pattern="&#34;">
-        <token type="LiteralString"/>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <include state="string"/>
-      </rule>
-    </state>
-    <state name="string">
-      <rule>
-        <include state="tableVars"/>
-      </rule>
-      <rule pattern="(\s|.)">
-        <token type="LiteralString"/>
-      </rule>
-    </state>
-    <state name="stepContent">
-      <rule pattern="&#34;">
-        <token type="NameFunction"/>
-        <push state="doubleString"/>
-      </rule>
-      <rule>
-        <include state="tableVars"/>
-      </rule>
-      <rule>
-        <include state="numbers"/>
-      </rule>
-      <rule>
-        <include state="comments"/>
-      </rule>
-      <rule pattern="(\s|.)">
-        <token type="NameFunction"/>
-      </rule>
-    </state>
-    <state name="scenarioSectionsOnStack">
-      <rule pattern="^(\s*)(시나리오 개요|시나리오|배경|背景|場景大綱|場景|场景大纲|场景|劇本大綱|劇本|剧本大纲|剧本|テンプレ|シナリオテンプレート|シナリオテンプレ|シナリオアウトライン|シナリオ|سيناريو مخطط|سيناريو|الخلفية|תרחיש|תבנית תרחיש|רקע|Тарих|Сценарій|Сценарио|Сценарий структураси|Сценарий|Структура сценарію|Структура сценарија|Структура сценария|Скица|Рамка на сценарий|Пример|Предыстория|Предистория|Позадина|Передумова|Основа|Концепт|Контекст|Założenia|Wharrimean is|Tình huống|The thing of it is|Tausta|Taust|Tapausaihio|Tapaus|Szenariogrundriss|Szenario|Szablon scenariusza|Stsenaarium|Struktura scenarija|Skica|Skenario konsep|Skenario|Situācija|Senaryo taslağı|Senaryo|Scénář|Scénario|Schema dello scenario|Scenārijs pēc parauga|Scenārijs|Scenár|Scenaro|Scenariusz|Scenariul de şablon|Scenariul de sablon|Scenariu|Scenario Outline|Scenario Amlinellol|Scenario|Scenarijus|Scenarijaus šablonas|Scenarij|Scenarie|Rerefons|Raamstsenaarium|Primer|Pozadí|Pozadina|Pozadie|Plan du scénario|Plan du Scénario|Osnova scénáře|Osnova|Náčrt Scénáře|Náčrt Scenáru|Mate|MISHUN SRSLY|MISHUN|Kịch bản|Konturo de la scenaro|Kontext|Konteksts|Kontekstas|Kontekst|Koncept|Khung tình huống|Khung kịch bản|Háttér|Grundlage|Geçmiş|Forgatókönyv vázlat|Forgatókönyv|Fono|Esquema do Cenário|Esquema do Cenario|Esquema del escenario|Esquema de l&#39;escenari|Escenario|Escenari|Dis is what went down|Dasar|Contexto|Contexte|Contesto|Condiţii|Conditii|Cenário|Cenario|Cefndir|Bối cảnh|Blokes|Bakgrunn|Bakgrund|Baggrund|Background|B4|Antecedents|Antecedentes|All y&#39;all|Achtergrond|Abstrakt Scenario|Abstract Scenario)(:)(.*)$">
-        <bygroups>
-          <token type="NameFunction"/>
-          <token type="Keyword"/>
-          <token type="Keyword"/>
-          <token type="NameFunction"/>
-        </bygroups>
-        <push state="featureElementsOnStack"/>
-      </rule>
-    </state>
-    <state name="narrative">
-      <rule>
-        <include state="scenarioSectionsOnStack"/>
-      </rule>
-      <rule pattern="(\s|.)">
-        <token type="NameFunction"/>
-      </rule>
-    </state>
-    <state name="root">
-      <rule pattern="\n">
-        <token type="NameFunction"/>
-      </rule>
-      <rule>
-        <include state="comments"/>
-      </rule>
-      <rule pattern="&#34;&#34;&#34;">
-        <token type="Keyword"/>
-        <push state="pyString"/>
-      </rule>
-      <rule pattern="\s+\|">
-        <token type="Keyword"/>
-        <push state="tableContent"/>
-      </rule>
-      <rule pattern="&#34;">
-        <token type="NameFunction"/>
-        <push state="doubleString"/>
-      </rule>
-      <rule>
-        <include state="tableVars"/>
-      </rule>
-      <rule>
-        <include state="numbers"/>
-      </rule>
-      <rule pattern="(\s*)(@[^@\r\n\t ]+)">
-        <bygroups>
-          <token type="NameFunction"/>
-          <token type="NameTag"/>
-        </bygroups>
-      </rule>
-      <rule pattern="^(\s*)(하지만|조건|먼저|만일|만약|단|그리고|그러면|那麼|那么|而且|當|当|前提|假設|假设|假如|假定|但是|但し|並且|并且|同時|同时|もし|ならば|ただし|しかし|かつ|و |متى |لكن |عندما |ثم |بفرض |اذاً |כאשר |וגם |בהינתן |אזי |אז |אבל |Якщо |Унда |То |Припустимо, що |Припустимо |Онда |Но |Нехай |Лекин |Когато |Када |Кад |К тому же |И |Задато |Задати |Задате |Если |Допустим |Дадено |Ва |Бирок |Аммо |Али |Але |Агар |А |І |Și |És |Zatati |Zakładając |Zadato |Zadate |Zadano |Zadani |Zadan |Youse know when youse got |Youse know like when |Yna |Ya know how |Ya gotta |Y |Wun |Wtedy |When y&#39;all |When |Wenn |WEN |Và |Ve |Und |Un |Thì |Then y&#39;all |Then |Tapi |Tak |Tada |Tad |Så |Stel |Soit |Siis |Si |Sed |Se |Quando |Quand |Quan |Pryd |Pokud |Pokiaľ |Però |Pero |Pak |Oraz |Onda |Ond |Oletetaan |Og |Och |O zaman |Når |När |Niin |Nhưng |N |Mutta |Men |Mas |Maka |Majd |Mais |Maar |Ma |Lorsque |Lorsqu&#39;|Kun |Kuid |Kui |Khi |Keď |Ketika |Když |Kaj |Kai |Kada |Kad |Jeżeli |Ja |Ir |I CAN HAZ |I |Ha |Givun |Givet |Given y&#39;all |Given |Gitt |Gegeven |Gegeben sei |Fakat |Eğer ki |Etant donné |Et |Então |Entonces |Entao |En |Eeldades |E |Duota |Dun |Donitaĵo |Donat |Donada |Do |Diyelim ki |Dengan |Den youse gotta |De |Dato |Dar |Dann |Dan |Dado |Dacă |Daca |DEN |Când |Cuando |Cho |Cept |Cand |Cal |But y&#39;all |But |Buh |Biết |Bet |BUT |Atès |Atunci |Atesa |Anrhegedig a |Angenommen |And y&#39;all |And |An |Ama |Als |Alors |Allora |Ali |Aleshores |Ale |Akkor |Aber |AN |A také |A |\* )">
-        <bygroups>
-          <token type="NameFunction"/>
-          <token type="Keyword"/>
-        </bygroups>
-        <push state="stepContentRoot"/>
-      </rule>
-      <rule pattern="^(기능|機能|功能|フィーチャ|خاصية|תכונה|Функціонал|Функционалност|Функционал|Фича|Особина|Могућност|Özellik|Właściwość|Tính năng|Trajto|Savybė|Požiadavka|Požadavek|Osobina|Ominaisuus|Omadus|OH HAI|Mogućnost|Mogucnost|Jellemző|Fīča|Funzionalità|Funktionalität|Funkcionalnost|Funkcionalitāte|Funcționalitate|Functionaliteit|Functionalitate|Funcionalitat|Funcionalidade|Fonctionnalité|Fitur|Feature|Egenskap|Egenskab|Crikey|Característica|Arwedd)(:)(.*)$">
-        <bygroups>
-          <token type="Keyword"/>
-          <token type="Keyword"/>
-          <token type="NameFunction"/>
-        </bygroups>
-        <push state="narrative"/>
-      </rule>
-      <rule pattern="^(\s*)(시나리오 개요|시나리오|배경|背景|場景大綱|場景|场景大纲|场景|劇本大綱|劇本|剧本大纲|剧本|テンプレ|シナリオテンプレート|シナリオテンプレ|シナリオアウトライン|シナリオ|سيناريو مخطط|سيناريو|الخلفية|תרחיש|תבנית תרחיש|רקע|Тарих|Сценарій|Сценарио|Сценарий структураси|Сценарий|Структура сценарію|Структура сценарија|Структура сценария|Скица|Рамка на сценарий|Пример|Предыстория|Предистория|Позадина|Передумова|Основа|Концепт|Контекст|Założenia|Wharrimean is|Tình huống|The thing of it is|Tausta|Taust|Tapausaihio|Tapaus|Szenariogrundriss|Szenario|Szablon scenariusza|Stsenaarium|Struktura scenarija|Skica|Skenario konsep|Skenario|Situācija|Senaryo taslağı|Senaryo|Scénář|Scénario|Schema dello scenario|Scenārijs pēc parauga|Scenārijs|Scenár|Scenaro|Scenariusz|Scenariul de şablon|Scenariul de sablon|Scenariu|Scenario Outline|Scenario Amlinellol|Scenario|Scenarijus|Scenarijaus šablonas|Scenarij|Scenarie|Rerefons|Raamstsenaarium|Primer|Pozadí|Pozadina|Pozadie|Plan du scénario|Plan du Scénario|Osnova scénáře|Osnova|Náčrt Scénáře|Náčrt Scenáru|Mate|MISHUN SRSLY|MISHUN|Kịch bản|Konturo de la scenaro|Kontext|Konteksts|Kontekstas|Kontekst|Koncept|Khung tình huống|Khung kịch bản|Háttér|Grundlage|Geçmiş|Forgatókönyv vázlat|Forgatókönyv|Fono|Esquema do Cenário|Esquema do Cenario|Esquema del escenario|Esquema de l&#39;escenari|Escenario|Escenari|Dis is what went down|Dasar|Contexto|Contexte|Contesto|Condiţii|Conditii|Cenário|Cenario|Cefndir|Bối cảnh|Blokes|Bakgrunn|Bakgrund|Baggrund|Background|B4|Antecedents|Antecedentes|All y&#39;all|Achtergrond|Abstrakt Scenario|Abstract Scenario)(:)(.*)$">
-        <bygroups>
-          <token type="NameFunction"/>
-          <token type="Keyword"/>
-          <token type="Keyword"/>
-          <token type="NameFunction"/>
-        </bygroups>
-        <push state="featureElements"/>
-      </rule>
-      <rule pattern="^(\s*)(예|例子|例|サンプル|امثلة|דוגמאות|Сценарији|Примери|Приклади|Мисоллар|Значения|Örnekler|Voorbeelden|Variantai|Tapaukset|Scenarios|Scenariji|Scenarijai|Příklady|Példák|Príklady|Przykłady|Primjeri|Primeri|Piemēri|Pavyzdžiai|Paraugs|Juhtumid|Exemplos|Exemples|Exemplele|Exempel|Examples|Esempi|Enghreifftiau|Ekzemploj|Eksempler|Ejemplos|EXAMPLZ|Dữ liệu|Contoh|Cobber|Beispiele)(:)(.*)$">
-        <bygroups>
-          <token type="NameFunction"/>
-          <token type="Keyword"/>
-          <token type="Keyword"/>
-          <token type="NameFunction"/>
-        </bygroups>
-        <push state="examplesTable"/>
-      </rule>
-      <rule pattern="(\s|.)">
-        <token type="NameFunction"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/glsl.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/glsl.xml	(revision 67)
+++ 	(revision )
@@ -1,65 +1,0 @@
-<lexer>
-  <config>
-    <name>GLSL</name>
-    <alias>glsl</alias>
-    <filename>*.vert</filename>
-    <filename>*.frag</filename>
-    <filename>*.geo</filename>
-    <mime_type>text/x-glslsrc</mime_type>
-  </config>
-  <rules>
-    <state name="root">
-      <rule pattern="^#.*">
-        <token type="CommentPreproc"/>
-      </rule>
-      <rule pattern="//.*">
-        <token type="CommentSingle"/>
-      </rule>
-      <rule pattern="/(\\\n)?[*](.|\n)*?[*](\\\n)?/">
-        <token type="CommentMultiline"/>
-      </rule>
-      <rule pattern="\+|-|~|!=?|\*|/|%|&lt;&lt;|&gt;&gt;|&lt;=?|&gt;=?|==?|&amp;&amp;?|\^|\|\|?">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="[?:]">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="\bdefined\b">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="[;{}(),\[\]]">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="[+-]?\d*\.\d+([eE][-+]?\d+)?">
-        <token type="LiteralNumberFloat"/>
-      </rule>
-      <rule pattern="[+-]?\d+\.\d*([eE][-+]?\d+)?">
-        <token type="LiteralNumberFloat"/>
-      </rule>
-      <rule pattern="0[xX][0-9a-fA-F]*">
-        <token type="LiteralNumberHex"/>
-      </rule>
-      <rule pattern="0[0-7]*">
-        <token type="LiteralNumberOct"/>
-      </rule>
-      <rule pattern="[1-9][0-9]*">
-        <token type="LiteralNumberInteger"/>
-      </rule>
-      <rule pattern="\b(sampler3DsamplerCube|sampler2DShadow|sampler1DShadow|invariant|sampler1D|sampler2D|attribute|mat3mat4|centroid|continue|varying|uniform|discard|mat4x4|mat3x3|mat2x3|mat4x2|mat3x2|mat2x2|mat2x4|mat3x4|struct|return|mat4x3|bvec4|false|ivec4|ivec3|const|float|inout|ivec2|break|while|bvec3|bvec2|vec3|else|true|void|bool|vec2|vec4|mat2|for|out|int|in|do|if)\b">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="\b(sampler2DRectShadow|sampler2DRect|sampler3DRect|namespace|precision|interface|volatile|template|unsigned|external|noinline|mediump|typedef|default|switch|static|extern|inline|sizeof|output|packed|double|public|fvec3|class|union|short|highp|fixed|input|fvec4|hvec2|hvec3|hvec4|dvec2|dvec3|dvec4|fvec2|using|long|this|enum|lowp|cast|goto|half|asm)\b">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="[a-zA-Z_]\w*">
-        <token type="Name"/>
-      </rule>
-      <rule pattern="\.">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="\s+">
-        <token type="Text"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/gnuplot.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/gnuplot.xml	(revision 67)
+++ 	(revision )
@@ -1,289 +1,0 @@
-<lexer>
-  <config>
-    <name>Gnuplot</name>
-    <alias>gnuplot</alias>
-    <filename>*.plot</filename>
-    <filename>*.plt</filename>
-    <mime_type>text/x-gnuplot</mime_type>
-  </config>
-  <rules>
-    <state name="whitespace">
-      <rule pattern="#">
-        <token type="Comment"/>
-        <push state="comment"/>
-      </rule>
-      <rule pattern="[ \t\v\f]+">
-        <token type="Text"/>
-      </rule>
-    </state>
-    <state name="save">
-      <rule pattern="functions\b|function\b|functio\b|functi\b|funct\b|func\b|fun\b|fu\b|f\b|set\b|se\b|s\b|terminal\b|termina\b|termin\b|termi\b|term\b|ter\b|te\b|t\b|variables\b|variable\b|variabl\b|variab\b|varia\b|vari\b|var\b|va\b|v\b">
-        <token type="NameBuiltin"/>
-      </rule>
-      <rule>
-        <include state="genericargs"/>
-      </rule>
-    </state>
-    <state name="pause">
-      <rule pattern="(mouse|any|button1|button2|button3)\b">
-        <token type="NameBuiltin"/>
-      </rule>
-      <rule pattern="keypress\b|keypres\b|keypre\b|keypr\b|keyp\b|key\b">
-        <token type="NameBuiltin"/>
-      </rule>
-      <rule>
-        <include state="genericargs"/>
-      </rule>
-    </state>
-    <state name="plot">
-      <rule pattern="axes\b|axe\b|ax\b|axis\b|axi\b|binary\b|binar\b|bina\b|bin\b|every\b|ever\b|eve\b|ev\b|index\b|inde\b|ind\b|in\b|i\b|matrix\b|matri\b|matr\b|mat\b|smooth\b|smoot\b|smoo\b|smo\b|sm\b|s\b|thru\b|title\b|titl\b|tit\b|ti\b|t\b|notitle\b|notitl\b|notit\b|noti\b|not\b|using\b|usin\b|usi\b|us\b|u\b|with\b|wit\b|wi\b|w\b">
-        <token type="NameBuiltin"/>
-      </rule>
-      <rule>
-        <include state="genericargs"/>
-      </rule>
-    </state>
-    <state name="if">
-      <rule pattern="\)">
-        <token type="Punctuation"/>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <include state="genericargs"/>
-      </rule>
-    </state>
-    <state name="genericargs">
-      <rule>
-        <include state="noargs"/>
-      </rule>
-      <rule pattern="&#34;">
-        <token type="LiteralString"/>
-        <push state="dqstring"/>
-      </rule>
-      <rule pattern="&#39;">
-        <token type="LiteralString"/>
-        <push state="sqstring"/>
-      </rule>
-      <rule pattern="(\d+\.\d*|\.\d+|\d+)[eE][+-]?\d+">
-        <token type="LiteralNumberFloat"/>
-      </rule>
-      <rule pattern="(\d+\.\d*|\.\d+)">
-        <token type="LiteralNumberFloat"/>
-      </rule>
-      <rule pattern="-?\d+">
-        <token type="LiteralNumberInteger"/>
-      </rule>
-      <rule pattern="[,.~!%^&amp;*+=|?:&lt;&gt;/-]">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="[{}()\[\]]">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="(eq|ne)\b">
-        <token type="OperatorWord"/>
-      </rule>
-      <rule pattern="([a-zA-Z_]\w*)(\s*)(\()">
-        <bygroups>
-          <token type="NameFunction"/>
-          <token type="Text"/>
-          <token type="Punctuation"/>
-        </bygroups>
-      </rule>
-      <rule pattern="[a-zA-Z_]\w*">
-        <token type="Name"/>
-      </rule>
-      <rule pattern="@[a-zA-Z_]\w*">
-        <token type="NameConstant"/>
-      </rule>
-      <rule pattern="\\\n">
-        <token type="Text"/>
-      </rule>
-    </state>
-    <state name="comment">
-      <rule pattern="[^\\\n]">
-        <token type="Comment"/>
-      </rule>
-      <rule pattern="\\\n">
-        <token type="Comment"/>
-      </rule>
-      <rule pattern="\\">
-        <token type="Comment"/>
-      </rule>
-      <rule>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="root">
-      <rule>
-        <include state="whitespace"/>
-      </rule>
-      <rule pattern="bind\b|bin\b|bi\b">
-        <token type="Keyword"/>
-        <push state="bind"/>
-      </rule>
-      <rule pattern="exit\b|exi\b|ex\b|quit\b|qui\b|qu\b|q\b">
-        <token type="Keyword"/>
-        <push state="quit"/>
-      </rule>
-      <rule pattern="fit\b|fi\b|f\b">
-        <token type="Keyword"/>
-        <push state="fit"/>
-      </rule>
-      <rule pattern="(if)(\s*)(\()">
-        <bygroups>
-          <token type="Keyword"/>
-          <token type="Text"/>
-          <token type="Punctuation"/>
-        </bygroups>
-        <push state="if"/>
-      </rule>
-      <rule pattern="else\b">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="pause\b|paus\b|pau\b|pa\b">
-        <token type="Keyword"/>
-        <push state="pause"/>
-      </rule>
-      <rule pattern="plot\b|plo\b|pl\b|p\b|replot\b|replo\b|repl\b|rep\b|splot\b|splo\b|spl\b|sp\b">
-        <token type="Keyword"/>
-        <push state="plot"/>
-      </rule>
-      <rule pattern="save\b|sav\b|sa\b">
-        <token type="Keyword"/>
-        <push state="save"/>
-      </rule>
-      <rule pattern="set\b|se\b">
-        <token type="Keyword"/>
-        <push state="genericargs" state="optionarg"/>
-      </rule>
-      <rule pattern="show\b|sho\b|sh\b|unset\b|unse\b|uns\b">
-        <token type="Keyword"/>
-        <push state="noargs" state="optionarg"/>
-      </rule>
-      <rule pattern="lower\b|lowe\b|low\b|raise\b|rais\b|rai\b|ra\b|call\b|cal\b|ca\b|cd\b|clear\b|clea\b|cle\b|cl\b|help\b|hel\b|he\b|h\b|\?\b|history\b|histor\b|histo\b|hist\b|his\b|hi\b|load\b|loa\b|lo\b|l\b|print\b|prin\b|pri\b|pr\b|pwd\b|reread\b|rerea\b|rere\b|rer\b|re\b|reset\b|rese\b|res\b|screendump\b|screendum\b|screendu\b|screend\b|screen\b|scree\b|scre\b|scr\b|shell\b|shel\b|she\b|system\b|syste\b|syst\b|sys\b|sy\b|update\b|updat\b|upda\b|upd\b|up\b">
-        <token type="Keyword"/>
-        <push state="genericargs"/>
-      </rule>
-      <rule pattern="pwd\b|reread\b|rerea\b|rere\b|rer\b|re\b|reset\b|rese\b|res\b|screendump\b|screendum\b|screendu\b|screend\b|screen\b|scree\b|scre\b|scr\b|shell\b|shel\b|she\b|test\b">
-        <token type="Keyword"/>
-        <push state="noargs"/>
-      </rule>
-      <rule pattern="([a-zA-Z_]\w*)(\s*)(=)">
-        <bygroups>
-          <token type="NameVariable"/>
-          <token type="Text"/>
-          <token type="Operator"/>
-        </bygroups>
-        <push state="genericargs"/>
-      </rule>
-      <rule pattern="([a-zA-Z_]\w*)(\s*\(.*?\)\s*)(=)">
-        <bygroups>
-          <token type="NameFunction"/>
-          <token type="Text"/>
-          <token type="Operator"/>
-        </bygroups>
-        <push state="genericargs"/>
-      </rule>
-      <rule pattern="@[a-zA-Z_]\w*">
-        <token type="NameConstant"/>
-      </rule>
-      <rule pattern=";">
-        <token type="Keyword"/>
-      </rule>
-    </state>
-    <state name="dqstring">
-      <rule pattern="&#34;">
-        <token type="LiteralString"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="\\([\\abfnrtv&#34;\&#39;]|x[a-fA-F0-9]{2,4}|[0-7]{1,3})">
-        <token type="LiteralStringEscape"/>
-      </rule>
-      <rule pattern="[^\\&#34;\n]+">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="\\\n">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="\\">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="\n">
-        <token type="LiteralString"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="optionarg">
-      <rule>
-        <include state="whitespace"/>
-      </rule>
-      <rule pattern="all\b|al\b|a\b|angles\b|angle\b|angl\b|ang\b|an\b|arrow\b|arro\b|arr\b|ar\b|autoscale\b|autoscal\b|autosca\b|autosc\b|autos\b|auto\b|aut\b|au\b|bars\b|bar\b|ba\b|b\b|border\b|borde\b|bord\b|bor\b|boxwidth\b|boxwidt\b|boxwid\b|boxwi\b|boxw\b|box\b|clabel\b|clabe\b|clab\b|cla\b|cl\b|clip\b|cli\b|cl\b|c\b|cntrparam\b|cntrpara\b|cntrpar\b|cntrpa\b|cntrp\b|cntr\b|cnt\b|cn\b|contour\b|contou\b|conto\b|cont\b|con\b|co\b|data\b|dat\b|da\b|datafile\b|datafil\b|datafi\b|dataf\b|data\b|dgrid3d\b|dgrid3\b|dgrid\b|dgri\b|dgr\b|dg\b|dummy\b|dumm\b|dum\b|du\b|encoding\b|encodin\b|encodi\b|encod\b|enco\b|enc\b|decimalsign\b|decimalsig\b|decimalsi\b|decimals\b|decimal\b|decima\b|decim\b|deci\b|dec\b|fit\b|fontpath\b|fontpat\b|fontpa\b|fontp\b|font\b|format\b|forma\b|form\b|for\b|fo\b|function\b|functio\b|functi\b|funct\b|func\b|fun\b|fu\b|functions\b|function\b|functio\b|functi\b|funct\b|func\b|fun\b|fu\b|grid\b|gri\b|gr\b|g\b|hidden3d\b|hidden3\b|hidden\b|hidde\b|hidd\b|hid\b|historysize\b|historysiz\b|historysi\b|historys\b|history\b|histor\b|histo\b|hist\b|his\b|isosamples\b|isosample\b|isosampl\b|isosamp\b|isosam\b|isosa\b|isos\b|iso\b|is\b|key\b|ke\b|k\b|keytitle\b|keytitl\b|keytit\b|keyti\b|keyt\b|label\b|labe\b|lab\b|la\b|linestyle\b|linestyl\b|linesty\b|linest\b|lines\b|line\b|lin\b|li\b|ls\b|loadpath\b|loadpat\b|loadpa\b|loadp\b|load\b|loa\b|locale\b|local\b|loca\b|loc\b|logscale\b|logscal\b|logsca\b|logsc\b|logs\b|log\b|macros\b|macro\b|macr\b|mac\b|mapping\b|mappin\b|mappi\b|mapp\b|map\b|mapping3d\b|mapping3\b|mapping\b|mappin\b|mappi\b|mapp\b|map\b|margin\b|margi\b|marg\b|mar\b|lmargin\b|lmargi\b|lmarg\b|lmar\b|rmargin\b|rmargi\b|rmarg\b|rmar\b|tmargin\b|tmargi\b|tmarg\b|tmar\b|bmargin\b|bmargi\b|bmarg\b|bmar\b|mouse\b|mous\b|mou\b|mo\b|multiplot\b|multiplo\b|multipl\b|multip\b|multi\b|mxtics\b|mxtic\b|mxti\b|mxt\b|nomxtics\b|nomxtic\b|nomxti\b|nomxt\b|mx2tics\b|mx2tic\b|mx2ti\b|mx2t\b|nomx2tics\b|nomx2tic\b|nomx2ti\b|nomx2t\b|mytics\b|mytic\b|myti\b|myt\b|nomytics\b|nomytic\b|nomyti\b|nomyt\b|my2tics\b|my2tic\b|my2ti\b|my2t\b|nomy2tics\b|nomy2tic\b|nomy2ti\b|nomy2t\b|mztics\b|mztic\b|mzti\b|mzt\b|nomztics\b|nomztic\b|nomzti\b|nomzt\b|mcbtics\b|mcbtic\b|mcbti\b|mcbt\b|nomcbtics\b|nomcbtic\b|nomcbti\b|nomcbt\b|offsets\b|offset\b|offse\b|offs\b|off\b|of\b|origin\b|origi\b|orig\b|ori\b|or\b|output\b|outpu\b|outp\b|out\b|ou\b|o\b|parametric\b|parametri\b|parametr\b|paramet\b|parame\b|param\b|para\b|par\b|pa\b|pm3d\b|pm3\b|pm\b|palette\b|palett\b|palet\b|pale\b|pal\b|colorbox\b|colorbo\b|colorb\b|plot\b|plo\b|pl\b|p\b|pointsize\b|pointsiz\b|pointsi\b|points\b|point\b|poin\b|poi\b|polar\b|pola\b|pol\b|print\b|prin\b|pri\b|pr\b|object\b|objec\b|obje\b|obj\b|samples\b|sample\b|sampl\b|samp\b|sam\b|sa\b|size\b|siz\b|si\b|style\b|styl\b|sty\b|st\b|surface\b|surfac\b|surfa\b|surf\b|sur\b|su\b|table\b|terminal\b|termina\b|termin\b|termi\b|term\b|ter\b|te\b|t\b|termoptions\b|termoption\b|termoptio\b|termopti\b|termopt\b|termop\b|termo\b|tics\b|tic\b|ti\b|ticscale\b|ticscal\b|ticsca\b|ticsc\b|ticslevel\b|ticsleve\b|ticslev\b|ticsle\b|ticsl\b|timefmt\b|timefm\b|timef\b|timestamp\b|timestam\b|timesta\b|timest\b|times\b|time\b|tim\b|title\b|titl\b|tit\b|variables\b|variable\b|variabl\b|variab\b|varia\b|vari\b|var\b|va\b|v\b|version\b|versio\b|versi\b|vers\b|ver\b|ve\b|view\b|vie\b|vi\b|xyplane\b|xyplan\b|xypla\b|xypl\b|xyp\b|xdata\b|xdat\b|xda\b|x2data\b|x2dat\b|x2da\b|ydata\b|ydat\b|yda\b|y2data\b|y2dat\b|y2da\b|zdata\b|zdat\b|zda\b|cbdata\b|cbdat\b|cbda\b|xlabel\b|xlabe\b|xlab\b|xla\b|xl\b|x2label\b|x2labe\b|x2lab\b|x2la\b|x2l\b|ylabel\b|ylabe\b|ylab\b|yla\b|yl\b|y2label\b|y2labe\b|y2lab\b|y2la\b|y2l\b|zlabel\b|zlabe\b|zlab\b|zla\b|zl\b|cblabel\b|cblabe\b|cblab\b|cbla\b|cbl\b|xtics\b|xtic\b|xti\b|noxtics\b|noxtic\b|noxti\b|x2tics\b|x2tic\b|x2ti\b|nox2tics\b|nox2tic\b|nox2ti\b|ytics\b|ytic\b|yti\b|noytics\b|noytic\b|noyti\b|y2tics\b|y2tic\b|y2ti\b|noy2tics\b|noy2tic\b|noy2ti\b|ztics\b|ztic\b|zti\b|noztics\b|noztic\b|nozti\b|cbtics\b|cbtic\b|cbti\b|nocbtics\b|nocbtic\b|nocbti\b|xdtics\b|xdtic\b|xdti\b|noxdtics\b|noxdtic\b|noxdti\b|x2dtics\b|x2dtic\b|x2dti\b|nox2dtics\b|nox2dtic\b|nox2dti\b|ydtics\b|ydtic\b|ydti\b|noydtics\b|noydtic\b|noydti\b|y2dtics\b|y2dtic\b|y2dti\b|noy2dtics\b|noy2dtic\b|noy2dti\b|zdtics\b|zdtic\b|zdti\b|nozdtics\b|nozdtic\b|nozdti\b|cbdtics\b|cbdtic\b|cbdti\b|nocbdtics\b|nocbdtic\b|nocbdti\b|xmtics\b|xmtic\b|xmti\b|noxmtics\b|noxmtic\b|noxmti\b|x2mtics\b|x2mtic\b|x2mti\b|nox2mtics\b|nox2mtic\b|nox2mti\b|ymtics\b|ymtic\b|ymti\b|noymtics\b|noymtic\b|noymti\b|y2mtics\b|y2mtic\b|y2mti\b|noy2mtics\b|noy2mtic\b|noy2mti\b|zmtics\b|zmtic\b|zmti\b|nozmtics\b|nozmtic\b|nozmti\b|cbmtics\b|cbmtic\b|cbmti\b|nocbmtics\b|nocbmtic\b|nocbmti\b|xrange\b|xrang\b|xran\b|xra\b|xr\b|x2range\b|x2rang\b|x2ran\b|x2ra\b|x2r\b|yrange\b|yrang\b|yran\b|yra\b|yr\b|y2range\b|y2rang\b|y2ran\b|y2ra\b|y2r\b|zrange\b|zrang\b|zran\b|zra\b|zr\b|cbrange\b|cbrang\b|cbran\b|cbra\b|cbr\b|rrange\b|rrang\b|rran\b|rra\b|rr\b|trange\b|trang\b|tran\b|tra\b|tr\b|urange\b|urang\b|uran\b|ura\b|ur\b|vrange\b|vrang\b|vran\b|vra\b|vr\b|xzeroaxis\b|xzeroaxi\b|xzeroax\b|xzeroa\b|x2zeroaxis\b|x2zeroaxi\b|x2zeroax\b|x2zeroa\b|yzeroaxis\b|yzeroaxi\b|yzeroax\b|yzeroa\b|y2zeroaxis\b|y2zeroaxi\b|y2zeroax\b|y2zeroa\b|zzeroaxis\b|zzeroaxi\b|zzeroax\b|zzeroa\b|zeroaxis\b|zeroaxi\b|zeroax\b|zeroa\b|zero\b|zer\b|ze\b|z\b">
-        <token type="NameBuiltin"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="bind">
-      <rule pattern="!">
-        <token type="Keyword"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="allwindows\b|allwindow\b|allwindo\b|allwind\b|allwin\b|allwi\b|allw\b|all\b">
-        <token type="NameBuiltin"/>
-      </rule>
-      <rule>
-        <include state="genericargs"/>
-      </rule>
-    </state>
-    <state name="fit">
-      <rule pattern="via\b">
-        <token type="NameBuiltin"/>
-      </rule>
-      <rule>
-        <include state="plot"/>
-      </rule>
-    </state>
-    <state name="noargs">
-      <rule>
-        <include state="whitespace"/>
-      </rule>
-      <rule pattern=";">
-        <token type="Punctuation"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="\n">
-        <token type="Text"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="sqstring">
-      <rule pattern="&#39;&#39;">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="&#39;">
-        <token type="LiteralString"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="[^\\&#39;\n]+">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="\\\n">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="\\">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="\n">
-        <token type="LiteralString"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="quit">
-      <rule pattern="gnuplot\b">
-        <token type="Keyword"/>
-      </rule>
-      <rule>
-        <include state="noargs"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/go_template.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/go_template.xml	(revision 67)
+++ 	(revision )
@@ -1,112 +1,0 @@
-<lexer>
-  <config>
-    <name>Go HTML Template</name>
-    <alias>go-html-template</alias>
-  </config>
-  <rules>
-    <state name="template">
-      <rule pattern="[-]?}}">
-        <token type="CommentPreproc"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="(?=}})">
-        <token type="CommentPreproc"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="\(">
-        <token type="Operator"/>
-        <push state="subexpression"/>
-      </rule>
-      <rule pattern="&#34;(\\\\|\\&#34;|[^&#34;])*&#34;">
-        <token type="LiteralString"/>
-      </rule>
-      <rule>
-        <include state="expression"/>
-      </rule>
-    </state>
-    <state name="subexpression">
-      <rule pattern="\)">
-        <token type="Operator"/>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <include state="expression"/>
-      </rule>
-    </state>
-    <state name="expression">
-      <rule pattern="\s+">
-        <token type="TextWhitespace"/>
-      </rule>
-      <rule pattern="\(">
-        <token type="Operator"/>
-        <push state="subexpression"/>
-      </rule>
-      <rule pattern="(range|if|else|while|with|template|end|true|false|nil|and|call|html|index|js|len|not|or|print|printf|println|urlquery|eq|ne|lt|le|gt|ge)\b">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="\||:?=|,">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="[$]?[^\W\d]\w*">
-        <token type="NameOther"/>
-      </rule>
-      <rule pattern="\$|[$]?\.(?:[^\W\d]\w*)?">
-        <token type="NameAttribute"/>
-      </rule>
-      <rule pattern="&#34;(\\\\|\\&#34;|[^&#34;])*&#34;">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="-?\d+i">
-        <token type="LiteralNumber"/>
-      </rule>
-      <rule pattern="-?\d+\.\d*([Ee][-+]\d+)?i">
-        <token type="LiteralNumber"/>
-      </rule>
-      <rule pattern="\.\d+([Ee][-+]\d+)?i">
-        <token type="LiteralNumber"/>
-      </rule>
-      <rule pattern="-?\d+[Ee][-+]\d+i">
-        <token type="LiteralNumber"/>
-      </rule>
-      <rule pattern="-?\d+(\.\d+[eE][+\-]?\d+|\.\d*|[eE][+\-]?\d+)">
-        <token type="LiteralNumberFloat"/>
-      </rule>
-      <rule pattern="-?\.\d+([eE][+\-]?\d+)?">
-        <token type="LiteralNumberFloat"/>
-      </rule>
-      <rule pattern="-?0[0-7]+">
-        <token type="LiteralNumberOct"/>
-      </rule>
-      <rule pattern="-?0[xX][0-9a-fA-F]+">
-        <token type="LiteralNumberHex"/>
-      </rule>
-      <rule pattern="-?0b[01_]+">
-        <token type="LiteralNumberBin"/>
-      </rule>
-      <rule pattern="-?(0|[1-9][0-9]*)">
-        <token type="LiteralNumberInteger"/>
-      </rule>
-      <rule pattern="&#39;(\\[&#39;&#34;\\abfnrtv]|\\x[0-9a-fA-F]{2}|\\[0-7]{1,3}|\\u[0-9a-fA-F]{4}|\\U[0-9a-fA-F]{8}|[^\\])&#39;">
-        <token type="LiteralStringChar"/>
-      </rule>
-      <rule pattern="`[^`]*`">
-        <token type="LiteralString"/>
-      </rule>
-    </state>
-    <state name="root">
-      <rule pattern="{{(- )?/\*(.|\n)*?\*/( -)?}}">
-        <token type="CommentMultiline"/>
-      </rule>
-      <rule pattern="{{[-]?">
-        <token type="CommentPreproc"/>
-        <push state="template"/>
-      </rule>
-      <rule pattern="[^{]+">
-        <token type="Other"/>
-      </rule>
-      <rule pattern="{">
-        <token type="Other"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/graphql.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/graphql.xml	(revision 67)
+++ 	(revision )
@@ -1,88 +1,0 @@
-<lexer>
-  <config>
-    <name>GraphQL</name>
-    <alias>graphql</alias>
-    <alias>graphqls</alias>
-    <alias>gql</alias>
-    <filename>*.graphql</filename>
-    <filename>*.graphqls</filename>
-  </config>
-  <rules>
-    <state name="root">
-      <rule pattern="(query|mutation|subscription|fragment|scalar|implements|interface|union|enum|input|type)">
-        <token type="KeywordDeclaration"/>
-        <push state="type"/>
-      </rule>
-      <rule pattern="(on|extend|schema|directive|\.\.\.)">
-        <token type="KeywordDeclaration"/>
-      </rule>
-      <rule pattern="(QUERY|MUTATION|SUBSCRIPTION|FIELD|FRAGMENT_DEFINITION|FRAGMENT_SPREAD|INLINE_FRAGMENT|SCHEMA|SCALAR|OBJECT|FIELD_DEFINITION|ARGUMENT_DEFINITION|INTERFACE|UNION|ENUM|ENUM_VALUE|INPUT_OBJECT|INPUT_FIELD_DEFINITION)\b">
-        <token type="KeywordConstant"/>
-      </rule>
-      <rule pattern="[^\W\d]\w*">
-        <token type="NameProperty"/>
-      </rule>
-      <rule pattern="\@\w+">
-        <token type="NameDecorator"/>
-      </rule>
-      <rule pattern=":">
-        <token type="Punctuation"/>
-        <push state="type"/>
-      </rule>
-      <rule pattern="[\(\)\{\}\[\],!\|=]">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="\$\w+">
-        <token type="NameVariable"/>
-      </rule>
-      <rule pattern="\d+i">
-        <token type="LiteralNumber"/>
-      </rule>
-      <rule pattern="\d+\.\d*([Ee][-+]\d+)?i">
-        <token type="LiteralNumber"/>
-      </rule>
-      <rule pattern="\.\d+([Ee][-+]\d+)?i">
-        <token type="LiteralNumber"/>
-      </rule>
-      <rule pattern="\d+[Ee][-+]\d+i">
-        <token type="LiteralNumber"/>
-      </rule>
-      <rule pattern="\d+(\.\d+[eE][+\-]?\d+|\.\d*|[eE][+\-]?\d+)">
-        <token type="LiteralNumberFloat"/>
-      </rule>
-      <rule pattern="\.\d+([eE][+\-]?\d+)?">
-        <token type="LiteralNumberFloat"/>
-      </rule>
-      <rule pattern="(0|[1-9][0-9]*)">
-        <token type="LiteralNumberInteger"/>
-      </rule>
-      <rule pattern="&#34;&#34;&#34;[\x00-\x7F]*?&#34;&#34;&#34;">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="&#34;(\\[&#34;\\abfnrtv]|\\x[0-9a-fA-F]{2}|\\[0-7]{1,3}|\\u[0-9a-fA-F]{4}|\\U[0-9a-fA-F]{8}|[^\\])&#34;">
-        <token type="LiteralStringChar"/>
-      </rule>
-      <rule pattern="&#34;(\\\\|\\&#34;|[^&#34;])*&#34;">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="&#34;(true|false|null)*&#34;">
-        <token type="Literal"/>
-      </rule>
-      <rule pattern="[\r\n\s]+">
-        <token type="TextWhitespace"/>
-      </rule>
-      <rule pattern="#[^\r\n]*">
-        <token type="Comment"/>
-      </rule>
-    </state>
-    <state name="type">
-      <rule pattern="[^\W\d]\w*">
-        <token type="NameClass"/>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <include state="root"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/groff.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/groff.xml	(revision 67)
+++ 	(revision )
@@ -1,90 +1,0 @@
-<lexer>
-  <config>
-    <name>Groff</name>
-    <alias>groff</alias>
-    <alias>nroff</alias>
-    <alias>man</alias>
-    <filename>*.[1-9]</filename>
-    <filename>*.1p</filename>
-    <filename>*.3pm</filename>
-    <filename>*.man</filename>
-    <mime_type>application/x-troff</mime_type>
-    <mime_type>text/troff</mime_type>
-  </config>
-  <rules>
-    <state name="request">
-      <rule pattern="\n">
-        <token type="Text"/>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <include state="escapes"/>
-      </rule>
-      <rule pattern="&#34;[^\n&#34;]+&#34;">
-        <token type="LiteralStringDouble"/>
-      </rule>
-      <rule pattern="\d+">
-        <token type="LiteralNumber"/>
-      </rule>
-      <rule pattern="\S+">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="\s+">
-        <token type="Text"/>
-      </rule>
-    </state>
-    <state name="root">
-      <rule pattern="(\.)(\w+)">
-        <bygroups>
-          <token type="Text"/>
-          <token type="Keyword"/>
-        </bygroups>
-        <push state="request"/>
-      </rule>
-      <rule pattern="\.">
-        <token type="Punctuation"/>
-        <push state="request"/>
-      </rule>
-      <rule pattern="[^\\\n]+">
-        <token type="Text"/>
-        <push state="textline"/>
-      </rule>
-      <rule>
-        <push state="textline"/>
-      </rule>
-    </state>
-    <state name="textline">
-      <rule>
-        <include state="escapes"/>
-      </rule>
-      <rule pattern="[^\\\n]+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="\n">
-        <token type="Text"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="escapes">
-      <rule pattern="\\&#34;[^\n]*">
-        <token type="Comment"/>
-      </rule>
-      <rule pattern="\\[fn]\w">
-        <token type="LiteralStringEscape"/>
-      </rule>
-      <rule pattern="\\\(.{2}">
-        <token type="LiteralStringEscape"/>
-      </rule>
-      <rule pattern="\\.\[.*\]">
-        <token type="LiteralStringEscape"/>
-      </rule>
-      <rule pattern="\\.">
-        <token type="LiteralStringEscape"/>
-      </rule>
-      <rule pattern="\\\n">
-        <token type="Text"/>
-        <push state="request"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/groovy.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/groovy.xml	(revision 67)
+++ 	(revision )
@@ -1,135 +1,0 @@
-<lexer>
-  <config>
-    <name>Groovy</name>
-    <alias>groovy</alias>
-    <filename>*.groovy</filename>
-    <filename>*.gradle</filename>
-    <mime_type>text/x-groovy</mime_type>
-    <dot_all>true</dot_all>
-  </config>
-  <rules>
-    <state name="root">
-      <rule pattern="#!(.*?)$">
-        <token type="CommentPreproc"/>
-        <push state="base"/>
-      </rule>
-      <rule>
-        <push state="base"/>
-      </rule>
-    </state>
-    <state name="base">
-      <rule pattern="^(\s*(?:[a-zA-Z_][\w.\[\]]*\s+)+?)([a-zA-Z_]\w*)(\s*)(\()">
-        <bygroups>
-          <usingself state="root"/>
-          <token type="NameFunction"/>
-          <token type="Text"/>
-          <token type="Operator"/>
-        </bygroups>
-      </rule>
-      <rule pattern="[^\S\n]+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="//.*?\n">
-        <token type="CommentSingle"/>
-      </rule>
-      <rule pattern="/\*.*?\*/">
-        <token type="CommentMultiline"/>
-      </rule>
-      <rule pattern="@[a-zA-Z_][\w.]*">
-        <token type="NameDecorator"/>
-      </rule>
-      <rule pattern="(as|assert|break|case|catch|continue|default|do|else|finally|for|if|in|goto|instanceof|new|return|switch|this|throw|try|while|in|as)\b">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="(abstract|const|enum|extends|final|implements|native|private|protected|public|static|strictfp|super|synchronized|throws|transient|volatile)\b">
-        <token type="KeywordDeclaration"/>
-      </rule>
-      <rule pattern="(def|boolean|byte|char|double|float|int|long|short|void)\b">
-        <token type="KeywordType"/>
-      </rule>
-      <rule pattern="(package)(\s+)">
-        <bygroups>
-          <token type="KeywordNamespace"/>
-          <token type="Text"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(true|false|null)\b">
-        <token type="KeywordConstant"/>
-      </rule>
-      <rule pattern="(class|interface)(\s+)">
-        <bygroups>
-          <token type="KeywordDeclaration"/>
-          <token type="Text"/>
-        </bygroups>
-        <push state="class"/>
-      </rule>
-      <rule pattern="(import)(\s+)">
-        <bygroups>
-          <token type="KeywordNamespace"/>
-          <token type="Text"/>
-        </bygroups>
-        <push state="import"/>
-      </rule>
-      <rule pattern="&#34;&#34;&#34;.*?&#34;&#34;&#34;">
-        <token type="LiteralStringDouble"/>
-      </rule>
-      <rule pattern="&#39;&#39;&#39;.*?&#39;&#39;&#39;">
-        <token type="LiteralStringSingle"/>
-      </rule>
-      <rule pattern="&#34;(\\\\|\\&#34;|[^&#34;])*&#34;">
-        <token type="LiteralStringDouble"/>
-      </rule>
-      <rule pattern="&#39;(\\\\|\\&#39;|[^&#39;])*&#39;">
-        <token type="LiteralStringSingle"/>
-      </rule>
-      <rule pattern="\$/((?!/\$).)*/\$">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="/(\\\\|\\&#34;|[^/])*/">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="&#39;\\.&#39;|&#39;[^\\]&#39;|&#39;\\u[0-9a-fA-F]{4}&#39;">
-        <token type="LiteralStringChar"/>
-      </rule>
-      <rule pattern="(\.)([a-zA-Z_]\w*)">
-        <bygroups>
-          <token type="Operator"/>
-          <token type="NameAttribute"/>
-        </bygroups>
-      </rule>
-      <rule pattern="[a-zA-Z_]\w*:">
-        <token type="NameLabel"/>
-      </rule>
-      <rule pattern="[a-zA-Z_$]\w*">
-        <token type="Name"/>
-      </rule>
-      <rule pattern="[~^*!%&amp;\[\](){}&lt;&gt;|+=:;,./?-]">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="[0-9][0-9]*\.[0-9]+([eE][0-9]+)?[fd]?">
-        <token type="LiteralNumberFloat"/>
-      </rule>
-      <rule pattern="0x[0-9a-fA-F]+">
-        <token type="LiteralNumberHex"/>
-      </rule>
-      <rule pattern="[0-9]+L?">
-        <token type="LiteralNumberInteger"/>
-      </rule>
-      <rule pattern="\n">
-        <token type="Text"/>
-      </rule>
-    </state>
-    <state name="class">
-      <rule pattern="[a-zA-Z_]\w*">
-        <token type="NameClass"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="import">
-      <rule pattern="[\w.]+\*?">
-        <token type="NameNamespace"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/handlebars.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/handlebars.xml	(revision 67)
+++ 	(revision )
@@ -1,147 +1,0 @@
-<lexer>
-  <config>
-    <name>Handlebars</name>
-    <alias>handlebars</alias>
-    <alias>hbs</alias>
-    <filename>*.handlebars</filename>
-    <filename>*.hbs</filename>
-  </config>
-  <rules>
-    <state name="root">
-      <rule pattern="[^{]+">
-        <token type="Other"/>
-      </rule>
-      <rule pattern="\{\{!.*\}\}">
-        <token type="Comment"/>
-      </rule>
-      <rule pattern="(\{\{\{)(\s*)">
-        <bygroups>
-          <token type="CommentSpecial"/>
-          <token type="Text"/>
-        </bygroups>
-        <push state="tag"/>
-      </rule>
-      <rule pattern="(\{\{)(\s*)">
-        <bygroups>
-          <token type="CommentPreproc"/>
-          <token type="Text"/>
-        </bygroups>
-        <push state="tag"/>
-      </rule>
-    </state>
-    <state name="tag">
-      <rule pattern="\s+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="\}\}\}">
-        <token type="CommentSpecial"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="\}\}">
-        <token type="CommentPreproc"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="([#/]*)(each|if|unless|else|with|log|in(?:line)?)">
-        <bygroups>
-          <token type="Keyword"/>
-          <token type="Keyword"/>
-        </bygroups>
-      </rule>
-      <rule pattern="#\*inline">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="([#/])([\w-]+)">
-        <bygroups>
-          <token type="NameFunction"/>
-          <token type="NameFunction"/>
-        </bygroups>
-      </rule>
-      <rule pattern="([\w-]+)(=)">
-        <bygroups>
-          <token type="NameAttribute"/>
-          <token type="Operator"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(&gt;)(\s*)(@partial-block)">
-        <bygroups>
-          <token type="Keyword"/>
-          <token type="Text"/>
-          <token type="Keyword"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(#?&gt;)(\s*)([\w-]+)">
-        <bygroups>
-          <token type="Keyword"/>
-          <token type="Text"/>
-          <token type="NameVariable"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(&gt;)(\s*)(\()">
-        <bygroups>
-          <token type="Keyword"/>
-          <token type="Text"/>
-          <token type="Punctuation"/>
-        </bygroups>
-        <push state="dynamic-partial"/>
-      </rule>
-      <rule>
-        <include state="generic"/>
-      </rule>
-    </state>
-    <state name="dynamic-partial">
-      <rule pattern="\s+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="\)">
-        <token type="Punctuation"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="(lookup)(\s+)(\.|this)(\s+)">
-        <bygroups>
-          <token type="Keyword"/>
-          <token type="Text"/>
-          <token type="NameVariable"/>
-          <token type="Text"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(lookup)(\s+)(\S+)">
-        <bygroups>
-          <token type="Keyword"/>
-          <token type="Text"/>
-          <usingself state="variable"/>
-        </bygroups>
-      </rule>
-      <rule pattern="[\w-]+">
-        <token type="NameFunction"/>
-      </rule>
-      <rule>
-        <include state="generic"/>
-      </rule>
-    </state>
-    <state name="variable">
-      <rule pattern="[a-zA-Z][\w-]*">
-        <token type="NameVariable"/>
-      </rule>
-      <rule pattern="\.[\w-]+">
-        <token type="NameVariable"/>
-      </rule>
-      <rule pattern="(this\/|\.\/|(\.\.\/)+)[\w-]+">
-        <token type="NameVariable"/>
-      </rule>
-    </state>
-    <state name="generic">
-      <rule>
-        <include state="variable"/>
-      </rule>
-      <rule pattern=":?&#34;(\\\\|\\&#34;|[^&#34;])*&#34;">
-        <token type="LiteralStringDouble"/>
-      </rule>
-      <rule pattern=":?&#39;(\\\\|\\&#39;|[^&#39;])*&#39;">
-        <token type="LiteralStringSingle"/>
-      </rule>
-      <rule pattern="[0-9](\.[0-9]*)?(eE[+-][0-9])?[flFLdD]?|0[xX][0-9a-fA-F]+[Ll]?">
-        <token type="LiteralNumber"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/haskell.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/haskell.xml	(revision 67)
+++ 	(revision )
@@ -1,272 +1,0 @@
-<lexer>
-  <config>
-    <name>Haskell</name>
-    <alias>haskell</alias>
-    <alias>hs</alias>
-    <filename>*.hs</filename>
-    <mime_type>text/x-haskell</mime_type>
-  </config>
-  <rules>
-    <state name="escape">
-      <rule pattern="[abfnrtv&#34;\&#39;&amp;\\]">
-        <token type="LiteralStringEscape"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="\^[][\p{Lu}@^_]">
-        <token type="LiteralStringEscape"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="NUL|SOH|[SE]TX|EOT|ENQ|ACK|BEL|BS|HT|LF|VT|FF|CR|S[OI]|DLE|DC[1-4]|NAK|SYN|ETB|CAN|EM|SUB|ESC|[FGRU]S|SP|DEL">
-        <token type="LiteralStringEscape"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="o[0-7]+">
-        <token type="LiteralStringEscape"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="x[\da-fA-F]+">
-        <token type="LiteralStringEscape"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="\d+">
-        <token type="LiteralStringEscape"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="\s+\\">
-        <token type="LiteralStringEscape"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="root">
-      <rule pattern="\s+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="--(?![!#$%&amp;*+./&lt;=&gt;?@^|_~:\\]).*?$">
-        <token type="CommentSingle"/>
-      </rule>
-      <rule pattern="\{-">
-        <token type="CommentMultiline"/>
-        <push state="comment"/>
-      </rule>
-      <rule pattern="\bimport\b">
-        <token type="KeywordReserved"/>
-        <push state="import"/>
-      </rule>
-      <rule pattern="\bmodule\b">
-        <token type="KeywordReserved"/>
-        <push state="module"/>
-      </rule>
-      <rule pattern="\berror\b">
-        <token type="NameException"/>
-      </rule>
-      <rule pattern="\b(case|class|data|default|deriving|do|else|family|if|in|infix[lr]?|instance|let|newtype|of|then|type|where|_)(?!\&#39;)\b">
-        <token type="KeywordReserved"/>
-      </rule>
-      <rule pattern="&#39;[^\\]&#39;">
-        <token type="LiteralStringChar"/>
-      </rule>
-      <rule pattern="^[_\p{Ll}][\w\&#39;]*">
-        <token type="NameFunction"/>
-      </rule>
-      <rule pattern="&#39;?[_\p{Ll}][\w&#39;]*">
-        <token type="Name"/>
-      </rule>
-      <rule pattern="(&#39;&#39;)?[\p{Lu}][\w\&#39;]*">
-        <token type="KeywordType"/>
-      </rule>
-      <rule pattern="(&#39;)[\p{Lu}][\w\&#39;]*">
-        <token type="KeywordType"/>
-      </rule>
-      <rule pattern="(&#39;)\[[^\]]*\]">
-        <token type="KeywordType"/>
-      </rule>
-      <rule pattern="(&#39;)\([^)]*\)">
-        <token type="KeywordType"/>
-      </rule>
-      <rule pattern="\\(?![:!#$%&amp;*+.\\/&lt;=&gt;?@^|~-]+)">
-        <token type="NameFunction"/>
-      </rule>
-      <rule pattern="(&lt;-|::|-&gt;|=&gt;|=)(?![:!#$%&amp;*+.\\/&lt;=&gt;?@^|~-]+)">
-        <token type="OperatorWord"/>
-      </rule>
-      <rule pattern=":[:!#$%&amp;*+.\\/&lt;=&gt;?@^|~-]*">
-        <token type="KeywordType"/>
-      </rule>
-      <rule pattern="[:!#$%&amp;*+.\\/&lt;=&gt;?@^|~-]+">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="\d+[eE][+-]?\d+">
-        <token type="LiteralNumberFloat"/>
-      </rule>
-      <rule pattern="\d+\.\d+([eE][+-]?\d+)?">
-        <token type="LiteralNumberFloat"/>
-      </rule>
-      <rule pattern="0[oO][0-7]+">
-        <token type="LiteralNumberOct"/>
-      </rule>
-      <rule pattern="0[xX][\da-fA-F]+">
-        <token type="LiteralNumberHex"/>
-      </rule>
-      <rule pattern="\d+">
-        <token type="LiteralNumberInteger"/>
-      </rule>
-      <rule pattern="&#39;">
-        <token type="LiteralStringChar"/>
-        <push state="character"/>
-      </rule>
-      <rule pattern="&#34;">
-        <token type="LiteralString"/>
-        <push state="string"/>
-      </rule>
-      <rule pattern="\[\]">
-        <token type="KeywordType"/>
-      </rule>
-      <rule pattern="\(\)">
-        <token type="NameBuiltin"/>
-      </rule>
-      <rule pattern="[][(),;`{}]">
-        <token type="Punctuation"/>
-      </rule>
-    </state>
-    <state name="import">
-      <rule pattern="\s+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="&#34;">
-        <token type="LiteralString"/>
-        <push state="string"/>
-      </rule>
-      <rule pattern="\)">
-        <token type="Punctuation"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="qualified\b">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="([\p{Lu}][\w.]*)(\s+)(as)(\s+)([\p{Lu}][\w.]*)">
-        <bygroups>
-          <token type="NameNamespace"/>
-          <token type="Text"/>
-          <token type="Keyword"/>
-          <token type="Text"/>
-          <token type="Name"/>
-        </bygroups>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="([\p{Lu}][\w.]*)(\s+)(hiding)(\s+)(\()">
-        <bygroups>
-          <token type="NameNamespace"/>
-          <token type="Text"/>
-          <token type="Keyword"/>
-          <token type="Text"/>
-          <token type="Punctuation"/>
-        </bygroups>
-        <push state="funclist"/>
-      </rule>
-      <rule pattern="([\p{Lu}][\w.]*)(\s+)(\()">
-        <bygroups>
-          <token type="NameNamespace"/>
-          <token type="Text"/>
-          <token type="Punctuation"/>
-        </bygroups>
-        <push state="funclist"/>
-      </rule>
-      <rule pattern="[\w.]+">
-        <token type="NameNamespace"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="module">
-      <rule pattern="\s+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="([\p{Lu}][\w.]*)(\s+)(\()">
-        <bygroups>
-          <token type="NameNamespace"/>
-          <token type="Text"/>
-          <token type="Punctuation"/>
-        </bygroups>
-        <push state="funclist"/>
-      </rule>
-      <rule pattern="[\p{Lu}][\w.]*">
-        <token type="NameNamespace"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="funclist">
-      <rule pattern="\s+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="[\p{Lu}]\w*">
-        <token type="KeywordType"/>
-      </rule>
-      <rule pattern="(_[\w\&#39;]+|[\p{Ll}][\w\&#39;]*)">
-        <token type="NameFunction"/>
-      </rule>
-      <rule pattern="--(?![!#$%&amp;*+./&lt;=&gt;?@^|_~:\\]).*?$">
-        <token type="CommentSingle"/>
-      </rule>
-      <rule pattern="\{-">
-        <token type="CommentMultiline"/>
-        <push state="comment"/>
-      </rule>
-      <rule pattern=",">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="[:!#$%&amp;*+.\\/&lt;=&gt;?@^|~-]+">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="\(">
-        <token type="Punctuation"/>
-        <push state="funclist" state="funclist"/>
-      </rule>
-      <rule pattern="\)">
-        <token type="Punctuation"/>
-        <pop depth="2"/>
-      </rule>
-    </state>
-    <state name="comment">
-      <rule pattern="[^-{}]+">
-        <token type="CommentMultiline"/>
-      </rule>
-      <rule pattern="\{-">
-        <token type="CommentMultiline"/>
-        <push/>
-      </rule>
-      <rule pattern="-\}">
-        <token type="CommentMultiline"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="[-{}]">
-        <token type="CommentMultiline"/>
-      </rule>
-    </state>
-    <state name="character">
-      <rule pattern="[^\\&#39;]&#39;">
-        <token type="LiteralStringChar"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="\\">
-        <token type="LiteralStringEscape"/>
-        <push state="escape"/>
-      </rule>
-      <rule pattern="&#39;">
-        <token type="LiteralStringChar"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="string">
-      <rule pattern="[^\\&#34;]+">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="\\">
-        <token type="LiteralStringEscape"/>
-        <push state="escape"/>
-      </rule>
-      <rule pattern="&#34;">
-        <token type="LiteralString"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/hcl.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/hcl.xml	(revision 67)
+++ 	(revision )
@@ -1,143 +1,0 @@
-<lexer>
-  <config>
-    <name>HCL</name>
-    <alias>hcl</alias>
-    <filename>*.hcl</filename>
-    <mime_type>application/x-hcl</mime_type>
-  </config>
-  <rules>
-    <state name="punctuation">
-      <rule pattern="[\[\](),.]">
-        <token type="Punctuation"/>
-      </rule>
-    </state>
-    <state name="string">
-      <rule pattern="(&#34;.*&#34;)">
-        <bygroups>
-          <token type="LiteralStringDouble"/>
-        </bygroups>
-      </rule>
-    </state>
-    <state name="whitespace">
-      <rule pattern="\n">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="\s+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="\\\n">
-        <token type="Text"/>
-      </rule>
-    </state>
-    <state name="root">
-      <rule>
-        <include state="string"/>
-      </rule>
-      <rule>
-        <include state="punctuation"/>
-      </rule>
-      <rule>
-        <include state="curly"/>
-      </rule>
-      <rule>
-        <include state="basic"/>
-      </rule>
-      <rule>
-        <include state="whitespace"/>
-      </rule>
-      <rule pattern="[0-9]+">
-        <token type="LiteralNumber"/>
-      </rule>
-    </state>
-    <state name="basic">
-      <rule pattern="\b(false|true)\b">
-        <token type="KeywordType"/>
-      </rule>
-      <rule pattern="\s*/\*">
-        <token type="CommentMultiline"/>
-        <push state="comment"/>
-      </rule>
-      <rule pattern="\s*#.*\n">
-        <token type="CommentSingle"/>
-      </rule>
-      <rule pattern="(.*?)(\s*)(=)">
-        <bygroups>
-          <token type="Name"/>
-          <token type="Text"/>
-          <token type="Operator"/>
-        </bygroups>
-      </rule>
-      <rule pattern="\d+">
-        <token type="LiteralNumber"/>
-      </rule>
-      <rule pattern="\b\w+\b">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="\$\{">
-        <token type="LiteralStringInterpol"/>
-        <push state="var_builtin"/>
-      </rule>
-    </state>
-    <state name="curly">
-      <rule pattern="\{">
-        <token type="TextPunctuation"/>
-      </rule>
-      <rule pattern="\}">
-        <token type="TextPunctuation"/>
-      </rule>
-    </state>
-    <state name="function">
-      <rule pattern="(\s+)(&#34;.*&#34;)(\s+)">
-        <bygroups>
-          <token type="Text"/>
-          <token type="LiteralString"/>
-          <token type="Text"/>
-        </bygroups>
-      </rule>
-      <rule>
-        <include state="punctuation"/>
-      </rule>
-      <rule>
-        <include state="curly"/>
-      </rule>
-    </state>
-    <state name="var_builtin">
-      <rule pattern="\$\{">
-        <token type="LiteralStringInterpol"/>
-        <push/>
-      </rule>
-      <rule pattern="\b(element|concat|lookup|file|join)\b">
-        <token type="NameBuiltin"/>
-      </rule>
-      <rule>
-        <include state="string"/>
-      </rule>
-      <rule>
-        <include state="punctuation"/>
-      </rule>
-      <rule pattern="\s+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="\}">
-        <token type="LiteralStringInterpol"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="comment">
-      <rule pattern="[^*/]">
-        <token type="CommentMultiline"/>
-      </rule>
-      <rule pattern="/\*">
-        <token type="CommentMultiline"/>
-        <push/>
-      </rule>
-      <rule pattern="\*/">
-        <token type="CommentMultiline"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="[*/]">
-        <token type="CommentMultiline"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/hexdump.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/hexdump.xml	(revision 67)
+++ 	(revision )
@@ -1,189 +1,0 @@
-<lexer>
-  <config>
-    <name>Hexdump</name>
-    <alias>hexdump</alias>
-  </config>
-  <rules>
-    <state name="offset">
-      <rule pattern="^([0-9A-Ha-h]+)(:)">
-        <bygroups>
-          <token type="NameLabel"/>
-          <token type="Punctuation"/>
-        </bygroups>
-        <push state="offset-mode"/>
-      </rule>
-      <rule pattern="^[0-9A-Ha-h]+">
-        <token type="NameLabel"/>
-      </rule>
-    </state>
-    <state name="offset-mode">
-      <rule pattern="\s">
-        <token type="Text"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="[0-9A-Ha-h]+">
-        <token type="NameLabel"/>
-      </rule>
-      <rule pattern=":">
-        <token type="Punctuation"/>
-      </rule>
-    </state>
-    <state name="piped-strings">
-      <rule pattern="\n">
-        <token type="Text"/>
-      </rule>
-      <rule>
-        <include state="offset"/>
-      </rule>
-      <rule pattern="[0-9A-Ha-h]{2}">
-        <token type="LiteralNumberHex"/>
-      </rule>
-      <rule pattern="(\s{2,3})(\|)(.{1,16})(\|)$">
-        <bygroups>
-          <token type="Text"/>
-          <token type="Punctuation"/>
-          <token type="LiteralString"/>
-          <token type="Punctuation"/>
-        </bygroups>
-      </rule>
-      <rule pattern="\s">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="^\*">
-        <token type="Punctuation"/>
-      </rule>
-    </state>
-    <state name="bracket-strings">
-      <rule pattern="\n">
-        <token type="Text"/>
-      </rule>
-      <rule>
-        <include state="offset"/>
-      </rule>
-      <rule pattern="[0-9A-Ha-h]{2}">
-        <token type="LiteralNumberHex"/>
-      </rule>
-      <rule pattern="(\s{2,3})(\&gt;)(.{1,16})(\&lt;)$">
-        <bygroups>
-          <token type="Text"/>
-          <token type="Punctuation"/>
-          <token type="LiteralString"/>
-          <token type="Punctuation"/>
-        </bygroups>
-      </rule>
-      <rule pattern="\s">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="^\*">
-        <token type="Punctuation"/>
-      </rule>
-    </state>
-    <state name="nonpiped-strings">
-      <rule pattern="\n">
-        <token type="Text"/>
-      </rule>
-      <rule>
-        <include state="offset"/>
-      </rule>
-      <rule pattern="([0-9A-Ha-h]{2})(\-)([0-9A-Ha-h]{2})">
-        <bygroups>
-          <token type="LiteralNumberHex"/>
-          <token type="Punctuation"/>
-          <token type="LiteralNumberHex"/>
-        </bygroups>
-      </rule>
-      <rule pattern="[0-9A-Ha-h]{2}">
-        <token type="LiteralNumberHex"/>
-      </rule>
-      <rule pattern="(\s{19,})(.{1,20}?)$">
-        <bygroups>
-          <token type="Text"/>
-          <token type="LiteralString"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(\s{2,3})(.{1,20})$">
-        <bygroups>
-          <token type="Text"/>
-          <token type="LiteralString"/>
-        </bygroups>
-      </rule>
-      <rule pattern="\s">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="^\*">
-        <token type="Punctuation"/>
-      </rule>
-    </state>
-    <state name="root">
-      <rule pattern="\n">
-        <token type="Text"/>
-      </rule>
-      <rule>
-        <include state="offset"/>
-      </rule>
-      <rule pattern="([0-9A-Ha-h]{2})(\-)([0-9A-Ha-h]{2})">
-        <bygroups>
-          <token type="LiteralNumberHex"/>
-          <token type="Punctuation"/>
-          <token type="LiteralNumberHex"/>
-        </bygroups>
-      </rule>
-      <rule pattern="[0-9A-Ha-h]{2}">
-        <token type="LiteralNumberHex"/>
-      </rule>
-      <rule pattern="(\s{2,3})(\&gt;)(.{16})(\&lt;)$">
-        <bygroups>
-          <token type="Text"/>
-          <token type="Punctuation"/>
-          <token type="LiteralString"/>
-          <token type="Punctuation"/>
-        </bygroups>
-        <push state="bracket-strings"/>
-      </rule>
-      <rule pattern="(\s{2,3})(\|)(.{16})(\|)$">
-        <bygroups>
-          <token type="Text"/>
-          <token type="Punctuation"/>
-          <token type="LiteralString"/>
-          <token type="Punctuation"/>
-        </bygroups>
-        <push state="piped-strings"/>
-      </rule>
-      <rule pattern="(\s{2,3})(\&gt;)(.{1,15})(\&lt;)$">
-        <bygroups>
-          <token type="Text"/>
-          <token type="Punctuation"/>
-          <token type="LiteralString"/>
-          <token type="Punctuation"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(\s{2,3})(\|)(.{1,15})(\|)$">
-        <bygroups>
-          <token type="Text"/>
-          <token type="Punctuation"/>
-          <token type="LiteralString"/>
-          <token type="Punctuation"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(\s{2,3})(.{1,15})$">
-        <bygroups>
-          <token type="Text"/>
-          <token type="LiteralString"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(\s{2,3})(.{16}|.{20})$">
-        <bygroups>
-          <token type="Text"/>
-          <token type="LiteralString"/>
-        </bygroups>
-        <push state="nonpiped-strings"/>
-      </rule>
-      <rule pattern="\s">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="^\*">
-        <token type="Punctuation"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/hlb.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/hlb.xml	(revision 67)
+++ 	(revision )
@@ -1,149 +1,0 @@
-<lexer>
-  <config>
-    <name>HLB</name>
-    <alias>hlb</alias>
-    <filename>*.hlb</filename>
-  </config>
-  <rules>
-    <state name="root">
-      <rule pattern="(#.*)">
-        <bygroups>
-          <token type="CommentSingle"/>
-        </bygroups>
-      </rule>
-      <rule pattern="((\b(0(b|B|o|O|x|X)[a-fA-F0-9]+)\b)|(\b(0|[1-9][0-9]*)\b))">
-        <bygroups>
-          <token type="LiteralNumber"/>
-        </bygroups>
-      </rule>
-      <rule pattern="((\b(true|false)\b))">
-        <bygroups>
-          <token type="NameBuiltin"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(\bstring\b|\bint\b|\bbool\b|\bfs\b|\boption\b)">
-        <bygroups>
-          <token type="KeywordType"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(\b[a-zA-Z_][a-zA-Z0-9]*\b)(\()">
-        <bygroups>
-          <token type="NameFunction"/>
-          <token type="Punctuation"/>
-        </bygroups>
-        <push state="params"/>
-      </rule>
-      <rule pattern="(\{)">
-        <bygroups>
-          <token type="Punctuation"/>
-        </bygroups>
-        <push state="block"/>
-      </rule>
-      <rule pattern="(\n|\r|\r\n)">
-        <token type="Text"/>
-      </rule>
-      <rule pattern=".">
-        <token type="Text"/>
-      </rule>
-    </state>
-    <state name="string">
-      <rule pattern="&#34;">
-        <token type="LiteralString"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="\\&#34;">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="[^\\&#34;]+">
-        <token type="LiteralString"/>
-      </rule>
-    </state>
-    <state name="block">
-      <rule pattern="(\})">
-        <bygroups>
-          <token type="Punctuation"/>
-        </bygroups>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="(#.*)">
-        <bygroups>
-          <token type="CommentSingle"/>
-        </bygroups>
-      </rule>
-      <rule pattern="((\b(0(b|B|o|O|x|X)[a-fA-F0-9]+)\b)|(\b(0|[1-9][0-9]*)\b))">
-        <bygroups>
-          <token type="LiteralNumber"/>
-        </bygroups>
-      </rule>
-      <rule pattern="((\b(true|false)\b))">
-        <bygroups>
-          <token type="KeywordConstant"/>
-        </bygroups>
-      </rule>
-      <rule pattern="&#34;">
-        <token type="LiteralString"/>
-        <push state="string"/>
-      </rule>
-      <rule pattern="(with)">
-        <bygroups>
-          <token type="KeywordReserved"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(as)([\t ]+)(\b[a-zA-Z_][a-zA-Z0-9]*\b)">
-        <bygroups>
-          <token type="KeywordReserved"/>
-          <token type="Text"/>
-          <token type="NameFunction"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(\bstring\b|\bint\b|\bbool\b|\bfs\b|\boption\b)([\t ]+)(\{)">
-        <bygroups>
-          <token type="KeywordType"/>
-          <token type="Text"/>
-          <token type="Punctuation"/>
-        </bygroups>
-        <push state="block"/>
-      </rule>
-      <rule pattern="(?!\b(?:scratch|image|resolve|http|checksum|chmod|filename|git|keepGitDir|local|includePatterns|excludePatterns|followPaths|generate|frontendInput|shell|run|readonlyRootfs|env|dir|user|network|security|host|ssh|secret|mount|target|localPath|uid|gid|mode|readonly|tmpfs|sourcePath|cache|mkdir|createParents|chown|createdTime|mkfile|rm|allowNotFound|allowWildcards|copy|followSymlinks|contentsOnly|unpack|createDestPath)\b)(\b[a-zA-Z_][a-zA-Z0-9]*\b)">
-        <bygroups>
-          <token type="NameOther"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(\n|\r|\r\n)">
-        <token type="Text"/>
-      </rule>
-      <rule pattern=".">
-        <token type="Text"/>
-      </rule>
-    </state>
-    <state name="params">
-      <rule pattern="(\))">
-        <bygroups>
-          <token type="Punctuation"/>
-        </bygroups>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="(variadic)">
-        <bygroups>
-          <token type="Keyword"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(\bstring\b|\bint\b|\bbool\b|\bfs\b|\boption\b)">
-        <bygroups>
-          <token type="KeywordType"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(\b[a-zA-Z_][a-zA-Z0-9]*\b)">
-        <bygroups>
-          <token type="NameOther"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(\n|\r|\r\n)">
-        <token type="Text"/>
-      </rule>
-      <rule pattern=".">
-        <token type="Text"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/hy.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/hy.xml	(revision 67)
+++ 	(revision )
@@ -1,104 +1,0 @@
-<lexer>
-  <config>
-    <name>Hy</name>
-    <alias>hylang</alias>
-    <filename>*.hy</filename>
-    <mime_type>text/x-hy</mime_type>
-    <mime_type>application/x-hy</mime_type>
-  </config>
-  <rules>
-    <state name="root">
-      <rule pattern=";.*$">
-        <token type="CommentSingle"/>
-      </rule>
-      <rule pattern="[,\s]+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="-?\d+\.\d+">
-        <token type="LiteralNumberFloat"/>
-      </rule>
-      <rule pattern="-?\d+">
-        <token type="LiteralNumberInteger"/>
-      </rule>
-      <rule pattern="0[0-7]+j?">
-        <token type="LiteralNumberOct"/>
-      </rule>
-      <rule pattern="0[xX][a-fA-F0-9]+">
-        <token type="LiteralNumberHex"/>
-      </rule>
-      <rule pattern="&#34;(\\\\|\\&#34;|[^&#34;])*&#34;">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="&#39;(?!#)[\w!$%*+&lt;=&gt;?/.#-]+">
-        <token type="LiteralStringSymbol"/>
-      </rule>
-      <rule pattern="\\(.|[a-z]+)">
-        <token type="LiteralStringChar"/>
-      </rule>
-      <rule pattern="^(\s*)([rRuU]{,2}&#34;&#34;&#34;(?:.|\n)*?&#34;&#34;&#34;)">
-        <bygroups>
-          <token type="Text"/>
-          <token type="LiteralStringDoc"/>
-        </bygroups>
-      </rule>
-      <rule pattern="^(\s*)([rRuU]{,2}&#39;&#39;&#39;(?:.|\n)*?&#39;&#39;&#39;)">
-        <bygroups>
-          <token type="Text"/>
-          <token type="LiteralStringDoc"/>
-        </bygroups>
-      </rule>
-      <rule pattern="::?(?!#)[\w!$%*+&lt;=&gt;?/.#-]+">
-        <token type="LiteralStringSymbol"/>
-      </rule>
-      <rule pattern="~@|[`\&#39;#^~&amp;@]">
-        <token type="Operator"/>
-      </rule>
-      <rule>
-        <include state="py-keywords"/>
-      </rule>
-      <rule>
-        <include state="py-builtins"/>
-      </rule>
-      <rule pattern="(eval-when-compile|eval-and-compile|with-decorator|unquote-splice|quasiquote|list_comp|unquote|foreach|kwapply|import|not-in|unless|is-not|quote|progn|slice|assoc|first|while|when|rest|cond|&lt;&lt;=|-&gt;&gt;|for|get|&gt;&gt;=|let|cdr|car|is|-&gt;|do|in|\||~|,) ">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="(defmacro|defclass|lambda|defun|defn|setv|def|fn) ">
-        <token type="KeywordDeclaration"/>
-      </rule>
-      <rule pattern="(repeatedly|take_while|iterator\?|iterable\?|instance\?|distinct|take_nth|numeric\?|iterate|filter|repeat|remove|even\?|none\?|cycle|zero\?|odd\?|pos\?|neg\?|take|drop|inc|dec|nth) ">
-        <token type="NameBuiltin"/>
-      </rule>
-      <rule pattern="(?&lt;=\()(?!#)[\w!$%*+&lt;=&gt;?/.#-]+">
-        <token type="NameFunction"/>
-      </rule>
-      <rule pattern="(?!#)[\w!$%*+&lt;=&gt;?/.#-]+">
-        <token type="NameVariable"/>
-      </rule>
-      <rule pattern="(\[|\])">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="(\{|\})">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="(\(|\))">
-        <token type="Punctuation"/>
-      </rule>
-    </state>
-    <state name="py-keywords">
-      <rule pattern="(yield from|continue|finally|lambda|assert|global|except|return|print|yield|while|break|raise|elif|pass|exec|else|with|try|for|del|as|if)\b">
-        <token type="Keyword"/>
-      </rule>
-    </state>
-    <state name="py-builtins">
-      <rule pattern="(?&lt;!\.)(staticmethod|classmethod|__import__|isinstance|basestring|issubclass|frozenset|raw_input|bytearray|enumerate|property|callable|reversed|execfile|hasattr|setattr|compile|complex|delattr|unicode|globals|getattr|unichr|reduce|xrange|buffer|intern|filter|locals|divmod|coerce|sorted|reload|object|slice|round|float|super|input|bytes|apply|tuple|range|iter|dict|long|type|hash|vars|next|file|exit|open|repr|eval|bool|list|bin|pow|zip|ord|oct|min|set|any|max|map|all|len|sum|int|dir|hex|chr|abs|cmp|str|id)\b">
-        <token type="NameBuiltin"/>
-      </rule>
-      <rule pattern="(?&lt;!\.)(self|None|Ellipsis|NotImplemented|False|True|cls)\b">
-        <token type="NameBuiltinPseudo"/>
-      </rule>
-      <rule pattern="(?&lt;!\.)(PendingDeprecationWarning|UnicodeTranslateError|NotImplementedError|UnicodeEncodeError|UnicodeDecodeError|DeprecationWarning|FloatingPointError|UnboundLocalError|KeyboardInterrupt|ZeroDivisionError|EnvironmentError|IndentationError|ArithmeticError|OverflowWarning|ReferenceError|RuntimeWarning|AttributeError|AssertionError|NotImplemented|UnicodeWarning|FutureWarning|BaseException|StopIteration|SyntaxWarning|OverflowError|StandardError|ImportWarning|GeneratorExit|RuntimeError|WindowsError|UnicodeError|LookupError|SyntaxError|SystemError|ImportError|MemoryError|UserWarning|ValueError|IndexError|SystemExit|Exception|TypeError|NameError|EOFError|VMSError|KeyError|TabError|IOError|OSError|Warning)\b">
-        <token type="NameException"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/idris.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/idris.xml	(revision 67)
+++ 	(revision )
@@ -1,216 +1,0 @@
-<lexer>
-  <config>
-    <name>Idris</name>
-    <alias>idris</alias>
-    <alias>idr</alias>
-    <filename>*.idr</filename>
-    <mime_type>text/x-idris</mime_type>
-  </config>
-  <rules>
-    <state name="escape">
-      <rule pattern="[abfnrtv&#34;\&#39;&amp;\\]">
-        <token type="LiteralStringEscape"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="\^[][A-Z@^_]">
-        <token type="LiteralStringEscape"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="NUL|SOH|[SE]TX|EOT|ENQ|ACK|BEL|BS|HT|LF|VT|FF|CR|S[OI]|DLE|DC[1-4]|NAK|SYN|ETB|CAN|EM|SUB|ESC|[FGRU]S|SP|DEL">
-        <token type="LiteralStringEscape"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="o[0-7]+">
-        <token type="LiteralStringEscape"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="x[\da-fA-F]+">
-        <token type="LiteralStringEscape"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="\d+">
-        <token type="LiteralStringEscape"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="\s+\\">
-        <token type="LiteralStringEscape"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="root">
-      <rule pattern="^(\s*)(%lib|link|flag|include|hide|freeze|access|default|logging|dynamic|name|error_handlers|language)">
-        <bygroups>
-          <token type="Text"/>
-          <token type="KeywordReserved"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(\s*)(--(?![!#$%&amp;*+./&lt;=&gt;?@^|_~:\\]).*?)$">
-        <bygroups>
-          <token type="Text"/>
-          <token type="CommentSingle"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(\s*)(\|{3}.*?)$">
-        <bygroups>
-          <token type="Text"/>
-          <token type="CommentSingle"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(\s*)(\{-)">
-        <bygroups>
-          <token type="Text"/>
-          <token type="CommentMultiline"/>
-        </bygroups>
-        <push state="comment"/>
-      </rule>
-      <rule pattern="^(\s*)([^\s(){}]+)(\s*)(:)(\s*)">
-        <bygroups>
-          <token type="Text"/>
-          <token type="NameFunction"/>
-          <token type="Text"/>
-          <token type="OperatorWord"/>
-          <token type="Text"/>
-        </bygroups>
-      </rule>
-      <rule pattern="\b(case|class|data|default|using|do|else|if|in|infix[lr]?|instance|rewrite|auto|namespace|codata|mutual|private|public|abstract|total|partial|let|proof|of|then|static|where|_|with|pattern|term|syntax|prefix|postulate|parameters|record|dsl|impossible|implicit|tactics|intros|intro|compute|refine|exact|trivial)(?!\&#39;)\b">
-        <token type="KeywordReserved"/>
-      </rule>
-      <rule pattern="(import|module)(\s+)">
-        <bygroups>
-          <token type="KeywordReserved"/>
-          <token type="Text"/>
-        </bygroups>
-        <push state="module"/>
-      </rule>
-      <rule pattern="(&#39;&#39;)?[A-Z][\w\&#39;]*">
-        <token type="KeywordType"/>
-      </rule>
-      <rule pattern="[a-z][\w\&#39;]*">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="(&lt;-|::|-&gt;|=&gt;|=)">
-        <token type="OperatorWord"/>
-      </rule>
-      <rule pattern="([(){}\[\]:!#$%&amp;*+.\\/&lt;=&gt;?@^|~-]+)">
-        <token type="OperatorWord"/>
-      </rule>
-      <rule pattern="\d+[eE][+-]?\d+">
-        <token type="LiteralNumberFloat"/>
-      </rule>
-      <rule pattern="\d+\.\d+([eE][+-]?\d+)?">
-        <token type="LiteralNumberFloat"/>
-      </rule>
-      <rule pattern="0[xX][\da-fA-F]+">
-        <token type="LiteralNumberHex"/>
-      </rule>
-      <rule pattern="\d+">
-        <token type="LiteralNumberInteger"/>
-      </rule>
-      <rule pattern="&#39;">
-        <token type="LiteralStringChar"/>
-        <push state="character"/>
-      </rule>
-      <rule pattern="&#34;">
-        <token type="LiteralString"/>
-        <push state="string"/>
-      </rule>
-      <rule pattern="[^\s(){}]+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="\s+?">
-        <token type="Text"/>
-      </rule>
-    </state>
-    <state name="module">
-      <rule pattern="\s+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="([A-Z][\w.]*)(\s+)(\()">
-        <bygroups>
-          <token type="NameNamespace"/>
-          <token type="Text"/>
-          <token type="Punctuation"/>
-        </bygroups>
-        <push state="funclist"/>
-      </rule>
-      <rule pattern="[A-Z][\w.]*">
-        <token type="NameNamespace"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="funclist">
-      <rule pattern="\s+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="[A-Z]\w*">
-        <token type="KeywordType"/>
-      </rule>
-      <rule pattern="(_[\w\&#39;]+|[a-z][\w\&#39;]*)">
-        <token type="NameFunction"/>
-      </rule>
-      <rule pattern="--.*$">
-        <token type="CommentSingle"/>
-      </rule>
-      <rule pattern="\{-">
-        <token type="CommentMultiline"/>
-        <push state="comment"/>
-      </rule>
-      <rule pattern=",">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="[:!#$%&amp;*+.\\/&lt;=&gt;?@^|~-]+">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="\(">
-        <token type="Punctuation"/>
-        <push state="funclist" state="funclist"/>
-      </rule>
-      <rule pattern="\)">
-        <token type="Punctuation"/>
-        <pop depth="2"/>
-      </rule>
-    </state>
-    <state name="comment">
-      <rule pattern="[^-{}]+">
-        <token type="CommentMultiline"/>
-      </rule>
-      <rule pattern="\{-">
-        <token type="CommentMultiline"/>
-        <push/>
-      </rule>
-      <rule pattern="-\}">
-        <token type="CommentMultiline"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="[-{}]">
-        <token type="CommentMultiline"/>
-      </rule>
-    </state>
-    <state name="character">
-      <rule pattern="[^\\&#39;]">
-        <token type="LiteralStringChar"/>
-      </rule>
-      <rule pattern="\\">
-        <token type="LiteralStringEscape"/>
-        <push state="escape"/>
-      </rule>
-      <rule pattern="&#39;">
-        <token type="LiteralStringChar"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="string">
-      <rule pattern="[^\\&#34;]+">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="\\">
-        <token type="LiteralStringEscape"/>
-        <push state="escape"/>
-      </rule>
-      <rule pattern="&#34;">
-        <token type="LiteralString"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/igor.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/igor.xml	(revision 67)
+++ 	(revision )
@@ -1,47 +1,0 @@
-<lexer>
-  <config>
-    <name>Igor</name>
-    <alias>igor</alias>
-    <alias>igorpro</alias>
-    <filename>*.ipf</filename>
-    <mime_type>text/ipf</mime_type>
-    <case_insensitive>true</case_insensitive>
-  </config>
-  <rules>
-    <state name="root">
-      <rule pattern="//.*$">
-        <token type="CommentSingle"/>
-      </rule>
-      <rule pattern="&#34;([^&#34;\\]|\\.)*&#34;">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="\b(AbortOnValue|AbortOnRTE|strswitch|endswitch|continue|default|endfor|endtry|switch|return|elseif|while|catch|endif|break|else|case|for|try|do|if)\b">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="\b(strconstant|constant|variable|funcref|string|uint64|uint32|uint16|STRUCT|double|dfref|uchar|int16|int32|int64|float|WAVE|SVAR|NVAR|char)\b">
-        <token type="KeywordType"/>
-      </rule>
-      <rule pattern="\b(EndStructure|MultiThread|ThreadSafe|Structure|EndMacro|function|DoPrompt|override|Picture|SubMenu|window|Prompt|static|macro|Proc|Menu|end)\b">
-        <token type="KeywordReserved"/>
-      </rule>
-      <rule pattern="\b(ConvertGlobalStringTextEncoding|StatsCircularCorrelationTest|LinearFeedbackShiftRegister|StatsCircularTwoSampleTest|StatsLinearCorrelationTest|ITCUpdateFIFOPositionAll2|StatsMultiCorrelationTest|MFR_GetBrickletDeployData|MFR_GetResultFileMetaData|StatsAngularDistanceTest|MFR_GetVernissageVersion|StatsRankCorrelationTest|ITCGetAllChannelsConfig2|GISGetRegisteredFileInfo|AxonTelegraphFindServers|MFR_CheckForNewBricklets|MFR_GetBrickletMetaData|MFR_CreateOverviewTable|StatsWatsonUSquaredTest|StatsWatsonWilliamsTest|ITCConfigChannelUpload2|SavePackagePreferences|LoadPackagePreferences|StatsWheelerWatsonTest|DAQmx_DIO_WriteNewData|ITCUpdateFIFOPosition2|ParseOperationTemplate|GISRasterizeVectorData|MFR_GetXOPErrorMessage|MFR_GetBrickletRawData|StatsWRCorrelationTest|ITCConfigChannelReset2|MFR_GetResultFileName|ImageRemoveBackground|DAQmx_CTR_OutputPulse|ImageHistModification|ITCConfigAllChannels2|StatsLinearRegression|StatsContingencyTable|ImageAnalyzeParticles|GISGetVectorLayerInfo|MFR_GetReportTemplate|MultiThreadingControl|StatsWilcoxonRankTest|SphericalInterpolate|GISWriteGeometryData|StatsNPNominalSRTest|StatsCircularMoments|MFR_GetBrickletCount|GPIBWriteBinaryWave2|ITCFIFOAvailableAll2|DAQmx_CTR_PulseWidth|SphericalTriangulate|ITCGetChannelConfig2|ImageGenerateROIMask|DAQmx_CTR_CountEdges|ITCGetCurrentDevice2|AddWavesToViolinPlot|DAQmx_AI_SetupReader|StatsShapiroWilkTest|GISCreateVectorLayer|AppendMatrixContour|GetLastUserMenuInfo|CtrlNamedBackground|VDTWriteBinaryWave2|DuplicateDataFolder|MatrixLinearSolveTD|CreateAliasShortcut|MFR_CloseResultFile|SetWaveTextEncoding|StatsKendallTauTest|VISAWriteBinaryWave|StatsHodgesAjneTest|RemoveLayoutObjects|ITCGetSerialNumber2|ImageBoundaryToMask|GPIBReadBinaryWave2|MFR_GetBrickletData|DefaultTextEncoding|DAQmx_AO_SetOutputs|PopupContextualMenu|ITCGetErrorString2|ImageEdgeDetection|VDTOperationsPort2|DefaultGuiControls|AutoPositionWindow|ExperimentModified|FastGaussTransform|GISTransformCoords|AppendLayoutObject|VDTReadBinaryWave2|FTPCreateDirectory|StatsVariancesTest|NeuralNetworkTrain|VISAReadBinaryWave|StatsCircularMeans|MFR_OpenResultFile|HDF5ListAttributes|SetActiveSubwindow|ImageRegistration|HDF5ConvertColors|TickWavesFromAxis|StatsANOVA2NRTest|StatsANOVA2RMTest|ITCFIFOAvailable2|AddWavesToBoxPlot|NC_ListAttributes|MeasureStyledText|HDF5TestOperation|GetFileFolderInfo|SetFileFolderInfo|ITCGetDeviceInfo2|SoundInStartChart|GISLoadRasterData|MatrixLinearSolve|EstimatePeakSizes|GISLoadVectorData|ExecuteScriptText|StatsFriedmanTest|ModifyControlList|GISWriteFieldData|ITCConfigChannel2|DeleteAnnotations|GISUnRegisterFile|DAQmx_WaveformGen|RenameDataFolder|MarkPerfTestTime|ITCWriteDigital2|HilbertTransform|ImageUnwrapPhase|HDF5UnlinkObject|LayoutPageAction|GPIBWriteBinary2|VDTTerminalPort2|StatsScheffeTest|ImageInterpolate|ITCSelectDevice2|ThreadGroupPutDF|FindPointsInPoly|AppendViolinPlot|DisplayHelpTopic|DisplayProcedure|RemoveFromLayout|StatsDunnettTest|StatsCochranTest|ImageLineProfile|GISGetRasterInfo|DAQmx_DIO_Config|ModifyViolinPlot|DAQmx_CTR_Period|NeuralNetworkRun|SoundInStopChart|VDTWriteHexWave2|AppendXYZContour|AddFIFOVectData|PlayMovieAction|ImageMorphology|HDF5CreateGroup|ITCReadDigital2|MatrixTranspose|WignerTransform|VISAWriteBinary|ITCGetVersions2|ITCCloseDevice2|VDTWriteBinary2|RatioFromNumber|StatsANOVA1Test|LayoutSlideShow|RemoveFromGizmo|RemoveFromGraph|RemoveFromTable|GISRegisterFile|StatsANOVA2Test|SetProcessSleep|VDTReadHexWave2|ImageSkeleton3d|VDTGetPortList2|DebuggerOptions|GPIBReadBinary2|SetIgorMenuMode|ModifyWaterfall|MCC_FindServers|LombPeriodogram|StatsQuantiles|MoveDataFolder|MatrixConvolve|AppendToLayout|BackgroundInfo|VISAReadBinary|ModifyFreeAxis|GISWriteRaster|ImageTransform|ImageThreshold|MatrixMultiply|DefaultGuiFont|SQLHighLevelOp|ITCGetDevices2|HDF5CloseGroup|NC_ListObjects|HDF5CreateFile|DSPPeriodogram|HDF5CreateLink|NotebookAction|HDF5DumpErrors|GPIBWriteWave2|WindowFunction|ExperimentInfo|ITCInitialize2|MFR_GetVersion|ITCOpenDevice2|SaveExperiment|FindDuplicates|ImageHistogram|KillDataFolder|ITCSetGlobals2|VDTReadBinary2|CtrlBackground|KillBackground|CheckDisplayed|StatsTukeyTest|HideProcedures|JointHistogram|SetDashPattern|ImageComposite|HDF5LoadGroup|ControlUpdate|CopyDimLabels|ToCommandLine|ColorTab2Wave|CreateBrowser|Triangulate3d|ImageFileInfo|VDTClosePort2|MatrixInverse|HideIgorMenus|HDF5SaveImage|HDF5SaveGroup|StatsSignTest|HDF5OpenGroup|HDF5LoadImage|HDF5ListGroup|CustomControl|HDF5FlushFile|HDF5DumpState|VDTWriteWave2|StatsResample|HDF5CloseFile|MatrixSVBkSub|ImageSeedFill|ModifyBoxPlot|ModifyBrowser|MatrixLUBkSub|ModifyContour|ModifyControl|VDTGetStatus2|GraphWaveEdit|GraphWaveDraw|PrintSettings|MoveSubwindow|GPIBReadWave2|StatsNPMCTest|Differentiate|Interpolate3D|AppendToTable|SetIdlePeriod|MultiTaperPSD|SoundSaveWave|AppendToGraph|AppendToGizmo|NC_DumpErrors|AppendBoxPlot|VISAWriteWave|WaveTransform|DrawUserShape|AddMovieFrame|AddMovieAudio|SoundLoadWave|NewDataFolder|SoundInRecord|PrintNotebook|ShowIgorMenus|RemoveContour|SetRandomSeed|KillVariables|ReorderImages|ITCReadTimer2|ReorderTraces|SaveGraphCopy|SaveTableCopy|SetIgorOption|SetBackground|JCAMPLoadWave|SetDataFolder|SoundInStatus|SaveGizmoCopy|DeletePoints|ITCStartAcq2|ITCSetState2|ITCSetModes2|NewWaterfall|OpenNotebook|WaveMeanStdv|KillFreeAxis|PauseForUser|VISAReadWave|NC_CloseFile|GetSelection|BoundingBall|PrimeFactors|VDTWriteHex2|VDTReadWave2|MoveVariable|ITCGetState2|ITCCloseAll2|PutScrapText|Interp3DPath|VDTOpenPort2|FPClustering|Interpolate2|FindSequence|RenameWindow|ModifyLayout|ResumeUpdate|ModifyCamera|HDFReadImage|IntegrateODE|SumDimension|SaveNotebook|MatrixEigenV|MatrixFilter|MatrixGaussJ|SetDrawLayer|InsertPoints|HDF5LoadData|HDF5OpenFile|StatsChiTest|HDF5SaveData|SmoothCustom|StackWindows|DeleteFolder|ImageFromXYZ|StatsDIPTest|ImageRestore|NewFIFOChan|StatsJBTest|ImageRotate|MatrixSolve|MatrixSchur|DefineGuide|StatsKWTest|MatrixLUDTD|ImageFilter|SplitString|SortColumns|DelayUpdate|SetWaveLock|SetVariable|ExportGizmo|ITCStopAcq2|ImageWindow|DefaultFont|SetIgorHook|HDFReadVset|StatsSample|SetDimLabel|StatsSRTest|TDMLoadData|TDMSaveData|FindContour|Integrate2D|ReplaceWave|ReplaceText|ModifyGizmo|ModifyGraph|ModifyImage|ControlInfo|ModifyPanel|ModifyTable|GraphNormal|ThreadStart|TileWindows|RemoveImage|Concatenate|Redimension|ChooseColor|VDTReadHex2|PrintLayout|PrintGraphs|VISAControl|ITCReadADC2|KillStrings|Preferences|FTPDownload|PauseUpdate|AppendImage|NC_LoadData|NC_OpenFile|AddFIFOData|KillControl|NewNotebook|NewFreeAxis|StatsKSTest|ConvexHull|GBLoadWave|ITCSetDAC2|AdoptFiles|DSPDetrend|ImageBlend|ImageFocus|AppendText|SetMarquee|DrawBezier|NILoadWave|DrawAction|KillWindow|SetFormula|MLLoadWave|SetDrawEnv|DoIgorMenu|FIFOStatus|HDFReadSDS|XLLoadWave|ImageSnake|CloseMovie|GetMarquee|DeleteFile|FindLevels|ImageStats|MatrixCorr|NC_Inquire|RenamePICT|ValDisplay|RenamePath|URLRequest|ColorScale|MoveWindow|StatsTTest|RemovePath|ControlBar|PrintTable|GPIBWrite2|PulseStats|CopyScales|TabControl|DAQmx_Scan|CopyFolder|MoveString|MoveFolder|StructFill|SoundInSet|StatsFTest|FReadLine|Integrate|SumSeries|GPIBRead2|MakeIndex|FTPDelete|Correlate|ToolsGrid|GetWindow|PopupMenu|PlaySound|FTPUpload|PlayMovie|MatrixGLM|FindValue|IndexSort|MatrixLLS|MatrixLUD|CloseProc|CloseHelp|GetCamera|FindLevel|ShowTools|ImageSave|StructGet|FindAPeak|MatrixSVD|FilterIIR|FilterFIR|EdgeStats|FIFO2Wave|BuildMenu|ImageLoad|BrowseURL|BoxSmooth|FuncFitMD|DoXOPIdle|VDTWrite2|FBinWrite|KillWaves|ImageGLCM|KillPICTs|VISAWrite|NewCamera|SplitWave|WaveStats|HideTools|StructPut|DrawRRect|SetWindow|ErrorBars|NewLayout|Duplicate|Histogram|FindRoots|Debugger|NewGizmo|NewImage|wfprintf|NewMovie|KillFIFO|KillPath|NewPanel|VISARead|CheckBox|ShowInfo|DrawText|Notebook|DrawRect|SetScale|HideInfo|OpenHelp|DrawPoly|VDTRead2|Optimize|PathInfo|DrawPICT|DrawOval|DrawLine|GetGizmo|Variable|FBinRead|HDF5Dump|GetMouse|MoveWave|LoadData|DoUpdate|TitleBox|LoadPICT|LoadWave|FindPeak|Convolve|CopyFile|SavePICT|StatsKDE|FMaxFlat|SaveData|MatrixOP|MoveFile|CtrlFIFO|CurveFit|GroupBox|Resample|DoWindow|FSetPos|ListBox|Extract|Reverse|DrawArc|sprintf|Execute|NewFIFO|FStatus|Hanning|DoAlert|HDFInfo|TextBox|SetAxis|fprintf|FGetPos|Project|GetAxis|NewPath|FuncFit|Display|FastOp|Remove|NI4882|String|Silent|Layout|Legend|Append|Button|sscanf|Smooth|Modify|Slider|KMeans|printf|Unwrap|APMath|Rotate|Cursor|Rename|Abort|Label|Remez|Cross|Loess|Stack|Chart|Sleep|GPIB2|Print|Close|Save|Sort|DPSS|Grep|Open|Tile|VDT2|Make|IFFT|Edit|Beep|Note|Quit|STFT|pwd|dir|Tag|DWT|FFT|PCA|ICA|CWT|cd)\b">
-        <token type="NameClass"/>
-      </rule>
-      <rule pattern="\b(TDMGetChannelStringPropertyLen|MCC_SetSlowCurrentInjSetlTime|tango_set_attr_monitor_period|TDMGetLibraryErrorDescription|MCC_GetSlowCurrentInjSetlTime|TDMGetGroupStringPropertyLen|fDAQmx_CTR_SetPulseFrequency|TDMGetFileStringPropertyLen|MCC_SetSlowCurrentInjEnable|MCC_GetSlowCompTauX20Enable|MCC_GetSlowCurrentInjEnable|fDAQmx_WF_WaitUntilFinished|MCC_SetSlowCompTauX20Enable|AxonTelegraphAGetDataStruct|MCC_GetNeutralizationEnable|MCC_SetNeutralizationEnable|AxonTelegraphAGetDataString|fDAQmx_CTR_ReadWithOptions|fDAQmx_ScanWaitWithTimeout|fDAQmx_DisconnectTerminals|MCC_GetWholeCellCompResist|MCC_SetSecondarySignalGain|fDAQmx_CTR_IsPulseFinished|MCC_GetSecondarySignalGain|TDMGetChannelPropertyNames|AxonTelegraphGetDataString|AxonTelegraphGetDataStruct|MCC_GetWholeCellCompEnable|MCC_SetWholeCellCompResist|TDMGetNumChannelProperties|MCC_SetWholeCellCompEnable|tango_suspend_attr_monitor|MCC_GetSlowCurrentInjLevel|tango_reload_dev_interface|MCC_SetSlowCurrentInjLevel|AxonTelegraphSetTimeoutMs|AxonTelegraphGetTimeoutMs|tango_resume_attr_monitor|TDMSetChannelPropertyTime|MCC_SetSecondarySignalLPF|MCC_GetSecondarySignalLPF|zeromq_test_serializeWave|SQLTextWaveTo2DBinaryWave|zeromq_test_serializeWave|TDMGetChannelPropertyTime|SQL2DBinaryWaveToTextWave|TDMGetChannelPropertyType|TDMSetChannelPropertyStr|TDMGetNumGroupProperties|MCC_SetNeutralizationCap|MCC_SetPrimarySignalGain|TDMGetGroupPropertyNames|SQLBinaryWavesToTextWave|TDMReplaceDataValuesTime|TDMGetChannelPropertyNum|TDMGetChannelPropertyStr|TDMSetChannelPropertyNum|TDMCreateChannelProperty|MCC_SelectMultiClamp700B|tango_start_attr_monitor|GetIndependentModuleName|AxonTelegraphAGetDataNum|MCC_GetNeutralizationCap|MCC_GetPrimarySignalGain|UnsetEnvironmentVariable|zeromq_test_callfunction|zeromq_test_callfunction|TDMChannelPropertyExists|tango_compute_image_proj|SQLTextWaveToBinaryWaves|MCC_SetPrimarySignalHPF|MCC_GetRsCompCorrection|MCC_GetPrimarySignalLPF|TDMGetFilePropertyNames|MCC_SetWholeCellCompCap|TDMGetGroupPropertyTime|TDMGetGroupPropertyType|MCC_SetRsCompPrediction|MCC_SetRsCompCorrection|MCC_GetRsCompPrediction|MCC_SetPrimarySignalLPF|fDAQmx_ConnectTerminals|TDMGetNumFileProperties|SQLNumResultRowsIfKnown|fDAQmx_AO_UpdateOutputs|tango_get_dev_black_box|fDAQmx_ScanGetAvailable|fDAQmx_ScanGetNextIndex|TDMAppendDataValuesTime|tango_stop_attr_monitor|tango_get_dev_attr_list|MCC_GetPrimarySignalHPF|TDMSetGroupPropertyTime|MCC_GetWholeCellCompCap|AxonTelegraphGetDataNum|fDAQmx_NumAnalogOutputs|TDMSetGroupPropertyNum|TDMSetGroupPropertyStr|TDMSetFilePropertyTime|StatsInvRectangularCDF|MCC_SetBridgeBalEnable|MCC_GetBridgeBalEnable|MCC_GetBridgeBalResist|MCC_GetOscKillerEnable|fDAQmx_SelfCalibration|tango_write_attributes|MCC_SetOscKillerEnable|TDMGroupPropertyExists|fDAQmx_ExternalCalDate|tango_get_dev_cmd_list|SetEnvironmentVariable|fDAQmx_NumAnalogInputs|TDMCreateGroupProperty|TDMGetFilePropertyType|MCC_SetRsCompBandwidth|TDMGetGroupPropertyStr|MCC_GetRsCompBandwidth|fDAQmx_CTR_ReadCounter|TDMGetGroupPropertyNum|TDMGetFilePropertyTime|MCC_SetBridgeBalResist|GetEnvironmentVariable|TDMGetFilePropertyNum|tango_set_dev_timeout|TDMFilePropertyExists|tango_write_attribute|fDAQmx_CTR_IsFinished|StatsInvTriangularCDF|zeromq_client_connect|zeromq_client_connect|MCC_AutoWholeCellComp|TDMCreateFileProperty|TDMGetFilePropertyStr|GetWavesDataFolderDFR|TDMSetFilePropertyStr|TDMSetFilePropertyNum|tango_get_dev_timeout|tango_get_error_stack|tango_read_attributes|IndependentModuleList|MCC_AutoPipetteOffset|zeromq_handler_start|zeromq_handler_start|tango_read_attribute|fDAQmx_WaveformStart|viGetAttributeString|viSetAttributeString|SpecialCharacterInfo|SpecialCharacterList|TDMSetDataValuesTime|SQLGetConnectAttrNum|SQLGetConnectAttrStr|fDAQmx_WF_IsFinished|fDAQmx_ReadNamedChan|SQLSetConnectAttrNum|SQLSetConnectAttrStr|GISGetAllFileFormats|TDMGetDataValuesTime|tango_get_dev_status|ContourNameToWaveRef|MCC_SetHoldingEnable|SQLUpdateBoundValues|GetIndexedObjNameDFR|MCC_SetPipetteOffset|fDAQmx_DIO_PortWidth|MCC_GetHoldingEnable|MCC_GetPipetteOffset|StatsInvGeometricCDF|StatsInvNBinomialCDF|StatsInvLogNormalCDF|ThreadProcessorCount|TDMReplaceDataValues|FontSizeStringWidth|tango_command_inout|GetBrowserSelection|StatsInvFriedmanCDF|MCC_SetRsCompEnable|TDMGetNumDataValues|ConvertTextEncoding|GetDefaultFontStyle|StatsInvBinomialCDF|fDAQmx_WaveformStop|fDAQmx_CTR_Finished|fDAQmx_AI_GetReader|StatsInvRayleighCDF|DataFolderRefStatus|zeromq_handler_stop|StatsInvSpearmanCDF|TDMAppendDataValues|StatsSpearmanRhoCDF|StatsInvUsquaredCDF|SQLColumnPrivileges|StatsRectangularPDF|StatsRectangularCDF|StatsInvVonMisesCDF|MCC_GetRsCompEnable|fDAQmx_DIO_Finished|zeromq_handler_stop|SQLProcedureColumns|CaptureHistoryStart|StatsInvLogisticCDF|DataFolderRefsEqual|SQLSetDescFieldNum|ThreadGroupRelease|zeromq_server_recv|TraceNameToWaveRef|StatsInvWeibullCDF|SQLGetDiagFieldStr|GetWavesDataFolder|SQLGetDiagFieldNum|SQLGetDescFieldStr|SQLGetDescFieldNum|zeromq_server_bind|MCC_GetFastCompCap|SQLTablePrivileges|SQLColAttributeStr|SQLColAttributeNum|StatsInvTopDownCDF|StatsInvStudentCDF|SphericalHarmonics|StatsTriangularCDF|viAssertIntrSignal|fDAQmx_SelfCalDate|ReplaceStringByKey|ImageNameToWaveRef|viAssertUtilSignal|ReplaceNumberByKey|MCC_GetFastCompTau|StatsTriangularPDF|BinarySearchInterp|StatsVonMisesNoise|MPFXExpConvExpPeak|fDAQmx_ResetDevice|zeromq_server_send|fDAQmx_ErrorString|tango_close_device|MCC_GetSlowCompCap|fDAQmx_NumDIOPorts|fDAQmx_NumCounters|zeromq_server_bind|MCC_SetSlowCompTau|MCC_SetSlowCompCap|StatsInvPoissonCDF|GetDefaultFontSize|MCC_GetSlowCompTau|zeromq_server_recv|zeromq_client_recv|zeromq_client_recv|SQLSetDescFieldStr|MCC_SetFastCompTau|zeromq_server_send|StatsInvMaxwellCDF|fDAQmx_DeviceNames|zeromq_client_send|MCC_SetFastCompCap|zeromq_client_send|ListToWaveRefWave|TDMGetNumChannels|ThreadGroupCreate|XWaveRefFromTrace|MPFXLorenzianPeak|viVxiCommandQuery|NewFreeDataFolder|SQLGetStmtAttrNum|SQLBulkOperations|HDF5AttributeInfo|MCC_AutoBridgeBal|SQLGetStmtAttrStr|PossiblyQuoteName|SQLNumRowsFetched|SQLSetStmtAttrNum|ThreadGroupGetDFR|SQLSetStmtAttrStr|SQLSpecialColumns|viGpibPassControl|StatsGeometricCDF|StatsGeometricPDF|StatsInvCauchyCDF|StatsInvEValueCDF|StatsInvKuiperCDF|StatsInvNormalCDF|StatsInvParetoCDF|WaveRefWaveToList|StatsLogNormalCDF|StatsLogNormalPDF|ThreadReturnValue|StatsNBinomialCDF|StatsNBinomialPDF|WaveRefIndexedDFR|tango_open_device|GetIndexedObjName|tango_ping_device|StatsLogisticCDF|fDAQmx_ScanStart|MCC_AutoSlowComp|MCC_AutoFastComp|ScreenResolution|SQLSetCursorName|StatsInvMooreCDF|GISSRefsAreEqual|fDAQmx_DIO_Write|SQLSetEnvAttrNum|StatsRayleighCDF|fDAQmx_WriteChan|SQLDriverConnect|SQLGetCursorName|StatsInvCMSSDCDF|SQLDescribeParam|SQLSetEnvAttrStr|StatsInvPowerCDF|StatsVonMisesPDF|PixelFromAxisVal|fDAQmx_CTR_Start|StatsInvNCChiCDF|SQLXOPCheckState|StatsInvGammaCDF|StatsTrimmedMean|WaveTextEncoding|StatsRayleighPDF|StatsUSquaredCDF|GetDataFolderDFR|TDMRemoveChannel|viGpibControlATN|SQLBrowseConnect|DataFolderExists|ThreadGroupGetDF|StatsVonMisesCDF|MCC_SetTimeoutMs|SQLBindParameter|TextEncodingName|TextEncodingCode|AxisValFromPixel|SQLGetEnvAttrNum|SQLGetEnvAttrStr|StatsBinomialCDF|TDMSetDataValues|StatsBinomialPDF|SQLNumResultCols|viGpibControlREN|NormalizeUnicode|StatsFriedmanCDF|StatsCorrelation|StatsLogisticPDF|TDMGetDataValues|StrVarOrDefault|SphericalBessJD|StatsPoissonCDF|ControlNameList|viUsbControlOut|SphericalBessYD|StatsStudentCDF|NumVarOrDefault|StatsStudentPDF|StatsPoissonPDF|TDMGetNumGroups|SQLGetFunctions|StatsMaxwellCDF|ChildWindowList|PanelResolution|ThreadGroupWait|HDF5DatasetInfo|viDiscardEvents|HDF5LibraryInfo|ContourNameList|GetRTErrMessage|StatsWeibullPDF|StatsMaxwellPDF|fDAQmx_ScanStop|StatsInvDExpCDF|StatsTopDownCDF|StatsPowerNoise|viOpenDefaultRM|lorentzianNoise|fDAQmx_ScanWait|fDAQmx_DIO_Read|MatrixCondition|CountObjectsDFR|viAssertTrigger|fDAQmx_ReadChan|StatsInvBetaCDF|SQLReinitialize|TDMCloseChannel|StatsWeibullCDF|MandelbrotPoint|SQLFreeConnect|CaptureHistory|TDMGetDataType|TDMGetChannels|RemoveListItem|RemoveFromList|GetBrowserLine|GetRTStackInfo|ParamIsDefault|StatsInvChiCDF|SQLPrimaryKeys|StringFromList|GetDefaultFont|TDMRemoveGroup|StatsKuiperCDF|StatsCauchyCDF|SQLFetchScroll|SQLForeignKeys|SQLMoreResults|SQLGetTypeInfo|StatsCauchyPDF|SpecialDirPath|SphericalBessJ|StatsErlangCDF|SphericalBessY|StatsErlangPDF|FontSizeHeight|SQLAllocHandle|StatsEValueCDF|StatsEValuePDF|viSetAttribute|StatsParetoCDF|StatsInvExpCDF|AnnotationList|StatsInvNCFCDF|TraceFromPixel|viUsbControlIn|viUnmapTrigger|ListToTextWave|WaveRefIndexed|viUnmapAddress|SQLDataSources|logNormalNoise|SQLDescribeCol|MCC_SetHolding|StatsParetoPDF|viGetAttribute|viDisableEvent|StatsHyperGCDF|StatsHyperGPDF|StatsNormalCDF|MCC_GetHolding|StatsNormalPDF|SQLCloseCursor|AnnotationInfo|SQLStatistics|SQLFreeHandle|viGpibSendIFC|StatsNCChiCDF|SQLExecDirect|SQLDisconnect|SQLGetDataNum|SQLGetDataStr|GetErrMessage|expIntegralE1|SQLGetDescRec|WaveRefsEqual|TDMAddChannel|SQLGetDiagRec|StatsMooreCDF|WhichListItem|StatsGammaPDF|SQLGetInfoNum|SQLGetInfoStr|StatsGammaCDF|GuideNameList|viWaitOnEvent|StatsNCChiPDF|TraceNameList|viEnableEvent|LaguerreGauss|TDMCloseGroup|TDMCreateFile|StatsErrorPDF|MPFXGaussPeak|MPFXVoigtPeak|StatsCMSSDCDF|SQLProcedures|DataFolderDir|StatsPowerPDF|WinRecreation|ImageNameList|ReplaceString|GetDataFolder|binomialNoise|TDMOpenFileEx|SQLSetDescRec|StatsInvQpCDF|ProcedureText|ParseFilePath|OperationList|StatsPowerCDF|GetRTLocation|viGpibCommand|GetRTLocInfo|poissonNoise|CountObjects|FunctionPath|FunctionList|GetScrapText|StatsWaldCDF|scaleToIndex|StartMSTimer|StatsBetaCDF|StatsBetaPDF|FunctionInfo|StatsInvQCDF|StatsWaldPDF|IndexToScale|RemoveEnding|StatsInvFCDF|DateToJulian|BinarySearch|StatsDExpCDF|StatsDExpPDF|SelectNumber|SelectString|SQLParamData|Base64Encode|Base64Decode|JulianToDate|viMapTrigger|SQLNumParams|viMapAddress|TDMCloseFile|FindListItem|SQLAllocStmt|FindDimLabel|HDF5TypeInfo|StatsPermute|VariableList|hermiteGauss|SQLNativeSql|viStatusDesc|CreationDate|TDMGetGroups|StatsRunsCDF|StatsGEVPDF|StatsGEVCDF|StatsExpPDF|StatsExpCDF|StatsChiPDF|StatsChiCDF|GetKeyState|GetUserData|SQLRowCount|StopMSTimer|StringByKey|stringmatch|SVAR_Exists|SQLFreeStmt|HyperGNoise|dilogarithm|TDMAddGroup|IgorVersion|sinIntegral|CsrXWaveRef|RemoveByKey|viMoveOut16|viMoveOut32|IndexedFile|PolygonArea|cosIntegral|inverseERFC|CleanupName|NVAR_Exists|FuncRefInfo|TDMOpenFile|NumberByKey|NewFreeWave|TDMSaveFile|Integrate1D|MPFXEMGPeak|ItemsInList|UnPadString|StatsMedian|zeromq_stop|MCC_SetMode|viTerminate|zeromq_stop|AddListItem|StatsNCFCDF|StatsNCFPDF|StatsNCTCDF|StatsNCTPDF|MatrixTrace|GetDimLabel|MCC_GetMode|ContourInfo|TrimString|FresnelCos|FresnelSin|MatrixRank|UniqueName|gammaEuler|SQLBindCol|StatsQpCDF|inverseERF|gammaNoise|NameOfWave|binomialln|zeromq_set|CsrWaveRef|WaveExists|zeromq_set|chebyshevU|viMoveIn16|GetFormula|equalWaves|SQLColumns|SQLConnect|GetRTError|SQLDrivers|viMoveIn32|LayoutInfo|GizmoScale|IndexedDir|SQLPutData|viFindRsrc|faverageXY|SQLPrepare|StringList|GrepString|viMemAlloc|SQLExecute|viMoveOut8|TagWaveRef|SQLFreeEnv|SQLEndTran|viFindNext|URLDecode|TableInfo|LaguerreA|URLEncode|VoigtPeak|strsearch|XWaveName|GuideInfo|PadString|VoigtFunc|MacroList|GizmoInfo|SQLSetPos|factorial|TraceInfo|SQLTables|DimOffset|LegendreA|StatsFCDF|HyperGPFQ|HyperG0F1|StatsFPDF|CheckName|WaveUnits|MatrixDet|chebyshev|SQLCancel|viMoveIn8|HyperG1F1|StatsQCDF|HyperG2F1|MatrixDot|ListMatch|viMemFree|Secs2Date|viReadSTB|date2secs|ImageInfo|Secs2Time|stringCRC|datetime|SortList|IgorInfo|CTabList|viUnlock|CsrXWave|sawtooth|DimDelta|LowerStr|WaveType|WaveName|expNoise|Faddeeva|fakedata|faverage|SQLError|SQLFetch|LambertW|ZernikeR|UpperStr|PICTList|ContourZ|PICTInfo|StudentA|viPeek16|PathList|GrepList|WaveDims|Variance|FetchURL|Laguerre|char2num|num2istr|num2char|JacobiSn|WaveHash|viPeek32|AxisInfo|viPoke16|WaveInfo|binomial|WaveList|JacobiCn|AxisList|TextFile|gammaInc|Interp3D|viPoke32|FontList|Interp2D|StudentT|Besselj|Besselk|Bessely|ModDate|viPoke8|numpnts|numtype|num2str|viPeek8|viOut32|viOut16|WinType|CsrInfo|CsrWave|r2polar|WinName|WinList|defined|digamma|DimSize|viWrite|WaveMin|str2num|WaveCRC|Gauss2D|MarcumQ|Gauss1D|WaveMax|viClear|Besseli|hermite|viClose|viOut8|interp|areaXY|cequal|gnoise|median|TagVal|viRead|strlen|wnoise|cmpstr|gammln|viIn16|viIn32|viLock|exists|AiryBD|Dawson|deltax|AiryAD|enoise|rightx|magsqr|expInt|p2rect|viOpen|poly2D|trunc|erfcw|pnt2x|AiryB|betai|floor|gamma|AiryA|viIn8|acosh|gammp|cpowi|x2pnt|ticks|round|gammq|asinh|limit|leftx|cmplx|Gauss|atan2|atanh|pcsr|Hash|hcsr|imag|atan|asin|area|alog|norm|note|poly|beta|conj|qcsr|erfc|real|sinh|cabs|sech|sign|date|csch|sinc|sqrt|xcsr|acos|coth|zeta|zcsr|tanh|cosh|time|ceil|mean|vcsr|cot|csc|tan|erf|exp|gcd|abs|Inf|sum|log|max|min|mod|NaN|sin|sec|cos|Pi|ln|ei)\b">
-        <token type="NameFunction"/>
-      </rule>
-      <rule pattern="^#(include|pragma|define|undef|ifdef|ifndef|if|elif|else|endif)">
-        <token type="NameDecorator"/>
-      </rule>
-      <rule pattern="[^a-z&#34;/]+$">
-        <token type="Text"/>
-      </rule>
-      <rule pattern=".">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="\n|\r">
-        <token type="Text"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/ini.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/ini.xml	(revision 67)
+++ 	(revision )
@@ -1,40 +1,0 @@
-<lexer>
-  <config>
-    <name>INI</name>
-    <alias>ini</alias>
-    <alias>cfg</alias>
-    <alias>dosini</alias>
-    <filename>*.ini</filename>
-    <filename>*.cfg</filename>
-    <filename>*.inf</filename>
-    <filename>.gitconfig</filename>
-    <filename>.editorconfig</filename>
-    <mime_type>text/x-ini</mime_type>
-    <mime_type>text/inf</mime_type>
-  </config>
-  <rules>
-    <state name="root">
-      <rule pattern="\s+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="[;#].*">
-        <token type="CommentSingle"/>
-      </rule>
-      <rule pattern="\[.*?\]$">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="(.*?)([ \t]*)(=)([ \t]*)(.*(?:\n[ \t].+)*)">
-        <bygroups>
-          <token type="NameAttribute"/>
-          <token type="Text"/>
-          <token type="Operator"/>
-          <token type="Text"/>
-          <token type="LiteralString"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(.+?)$">
-        <token type="NameAttribute"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/io.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/io.xml	(revision 67)
+++ 	(revision )
@@ -1,71 +1,0 @@
-<lexer>
-  <config>
-    <name>Io</name>
-    <alias>io</alias>
-    <filename>*.io</filename>
-    <mime_type>text/x-iosrc</mime_type>
-  </config>
-  <rules>
-    <state name="root">
-      <rule pattern="\n">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="\s+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="//(.*?)\n">
-        <token type="CommentSingle"/>
-      </rule>
-      <rule pattern="#(.*?)\n">
-        <token type="CommentSingle"/>
-      </rule>
-      <rule pattern="/(\\\n)?[*](.|\n)*?[*](\\\n)?/">
-        <token type="CommentMultiline"/>
-      </rule>
-      <rule pattern="/\+">
-        <token type="CommentMultiline"/>
-        <push state="nestedcomment"/>
-      </rule>
-      <rule pattern="&#34;(\\\\|\\&#34;|[^&#34;])*&#34;">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="::=|:=|=|\(|\)|;|,|\*|-|\+|&gt;|&lt;|@|!|/|\||\^|\.|%|&amp;|\[|\]|\{|\}">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="(clone|do|doFile|doString|method|for|if|else|elseif|then)\b">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="(nil|false|true)\b">
-        <token type="NameConstant"/>
-      </rule>
-      <rule pattern="(Object|list|List|Map|args|Sequence|Coroutine|File)\b">
-        <token type="NameBuiltin"/>
-      </rule>
-      <rule pattern="[a-zA-Z_]\w*">
-        <token type="Name"/>
-      </rule>
-      <rule pattern="(\d+\.?\d*|\d*\.\d+)([eE][+-]?[0-9]+)?">
-        <token type="LiteralNumberFloat"/>
-      </rule>
-      <rule pattern="\d+">
-        <token type="LiteralNumberInteger"/>
-      </rule>
-    </state>
-    <state name="nestedcomment">
-      <rule pattern="[^+/]+">
-        <token type="CommentMultiline"/>
-      </rule>
-      <rule pattern="/\+">
-        <token type="CommentMultiline"/>
-        <push/>
-      </rule>
-      <rule pattern="\+/">
-        <token type="CommentMultiline"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="[+/]">
-        <token type="CommentMultiline"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/j.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/j.xml	(revision 67)
+++ 	(revision )
@@ -1,157 +1,0 @@
-<lexer>
-  <config>
-    <name>J</name>
-    <alias>j</alias>
-    <filename>*.ijs</filename>
-    <mime_type>text/x-j</mime_type>
-  </config>
-  <rules>
-    <state name="singlequote">
-      <rule pattern="[^&#39;]">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="&#39;&#39;">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="&#39;">
-        <token type="LiteralString"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="root">
-      <rule pattern="#!.*$">
-        <token type="CommentPreproc"/>
-      </rule>
-      <rule pattern="NB\..*">
-        <token type="CommentSingle"/>
-      </rule>
-      <rule pattern="\n+\s*Note">
-        <token type="CommentMultiline"/>
-        <push state="comment"/>
-      </rule>
-      <rule pattern="\s*Note.*">
-        <token type="CommentSingle"/>
-      </rule>
-      <rule pattern="\s+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="&#39;">
-        <token type="LiteralString"/>
-        <push state="singlequote"/>
-      </rule>
-      <rule pattern="0\s+:\s*0|noun\s+define\s*$">
-        <token type="NameEntity"/>
-        <push state="nounDefinition"/>
-      </rule>
-      <rule pattern="(([1-4]|13)\s+:\s*0|(adverb|conjunction|dyad|monad|verb)\s+define)\b">
-        <token type="NameFunction"/>
-        <push state="explicitDefinition"/>
-      </rule>
-      <rule pattern="(label_|goto_|for_)\b[a-zA-Z]\w*\.">
-        <token type="NameLabel"/>
-      </rule>
-      <rule pattern="(continue|select|return|assert|catchd|catcht|elseif|whilst|break|catch|fcase|while|throw|else|case|end|try|for|do|if)\.">
-        <token type="NameLabel"/>
-      </rule>
-      <rule pattern="\b[a-zA-Z]\w*">
-        <token type="NameVariable"/>
-      </rule>
-      <rule pattern="(timespacex|fixdotdot|nameclass|namelist|file2url|tmoutput|ucpcount|boxxopen|smoutput|JVERSION|datatype|toupper|tolower|alpha17|alpha27|getargs|evtloop|boxopen|fliprgb|inverse|scriptd|iospath|cutopen|isatty|toCRLF|toHOST|isutf8|getenv|stdout|script|usleep|sminfo|expand|stderr|clear|fetch|every|erase|empty|Debug|EMPTY|split|names|timex|cutLF|stdin|apply|items|table|exit|Note|list|take|leaf|type|bind|drop|rows|each|echo|sign|CRLF|utf8|sort|pick|ARGV|uucp|ucp|DEL|inv|hfd|dfh|def|LF2|EAV|toJ|TAB|nl|FF|LF|bx|nc|CR|on)">
-        <token type="NameFunction"/>
-      </rule>
-      <rule pattern="=[.:]">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="[-=+*#$%@!~`^&amp;&#34;;:.,&lt;&gt;{}\[\]\\|/]">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="[abCdDeEfHiIjLMoprtT]\.">
-        <token type="KeywordReserved"/>
-      </rule>
-      <rule pattern="[aDiLpqsStux]\:">
-        <token type="KeywordReserved"/>
-      </rule>
-      <rule pattern="(_[0-9])\:">
-        <token type="KeywordConstant"/>
-      </rule>
-      <rule pattern="\(">
-        <token type="Punctuation"/>
-        <push state="parentheses"/>
-      </rule>
-      <rule>
-        <include state="numbers"/>
-      </rule>
-    </state>
-    <state name="comment">
-      <rule pattern="[^)]">
-        <token type="CommentMultiline"/>
-      </rule>
-      <rule pattern="^\)">
-        <token type="CommentMultiline"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="[)]">
-        <token type="CommentMultiline"/>
-      </rule>
-    </state>
-    <state name="explicitDefinition">
-      <rule pattern="\b[nmuvxy]\b">
-        <token type="NameDecorator"/>
-      </rule>
-      <rule>
-        <include state="root"/>
-      </rule>
-      <rule pattern="[^)]">
-        <token type="Name"/>
-      </rule>
-      <rule pattern="^\)">
-        <token type="NameLabel"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="[)]">
-        <token type="Name"/>
-      </rule>
-    </state>
-    <state name="numbers">
-      <rule pattern="\b_{1,2}\b">
-        <token type="LiteralNumber"/>
-      </rule>
-      <rule pattern="_?\d+(\.\d+)?(\s*[ejr]\s*)_?\d+(\.?=\d+)?">
-        <token type="LiteralNumber"/>
-      </rule>
-      <rule pattern="_?\d+\.(?=\d+)">
-        <token type="LiteralNumberFloat"/>
-      </rule>
-      <rule pattern="_?\d+x">
-        <token type="LiteralNumberIntegerLong"/>
-      </rule>
-      <rule pattern="_?\d+">
-        <token type="LiteralNumberInteger"/>
-      </rule>
-    </state>
-    <state name="nounDefinition">
-      <rule pattern="[^)]">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="^\)">
-        <token type="NameLabel"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="[)]">
-        <token type="LiteralString"/>
-      </rule>
-    </state>
-    <state name="parentheses">
-      <rule pattern="\)">
-        <token type="Punctuation"/>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <include state="explicitDefinition"/>
-      </rule>
-      <rule>
-        <include state="root"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/java.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/java.xml	(revision 67)
+++ 	(revision )
@@ -1,118 +1,0 @@
-<lexer>
-  <config>
-    <name>Java</name>
-    <alias>java</alias>
-    <filename>*.java</filename>
-    <mime_type>text/x-java</mime_type>
-    <dot_all>true</dot_all>
-    <ensure_nl>true</ensure_nl>
-  </config>
-  <rules>
-    <state name="class">
-      <rule pattern="([^\W\d]|\$)[\w$]*">
-        <token type="NameClass"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="import">
-      <rule pattern="[\w.]+\*?">
-        <token type="NameNamespace"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="root">
-      <rule pattern="[^\S\n]+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="//.*?\n">
-        <token type="CommentSingle"/>
-      </rule>
-      <rule pattern="/\*.*?\*/">
-        <token type="CommentMultiline"/>
-      </rule>
-      <rule pattern="(assert|break|case|catch|continue|default|do|else|finally|for|if|goto|instanceof|new|return|switch|this|throw|try|while)\b">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="((?:(?:[^\W\d]|\$)[\w.\[\]$&lt;&gt;]*\s+)+?)((?:[^\W\d]|\$)[\w$]*)(\s*)(\()">
-        <bygroups>
-          <usingself state="root"/>
-          <token type="NameFunction"/>
-          <token type="Text"/>
-          <token type="Operator"/>
-        </bygroups>
-      </rule>
-      <rule pattern="@[^\W\d][\w.]*">
-        <token type="NameDecorator"/>
-      </rule>
-      <rule pattern="(abstract|const|enum|extends|final|implements|native|private|protected|public|static|strictfp|super|synchronized|throws|transient|volatile)\b">
-        <token type="KeywordDeclaration"/>
-      </rule>
-      <rule pattern="(boolean|byte|char|double|float|int|long|short|void)\b">
-        <token type="KeywordType"/>
-      </rule>
-      <rule pattern="(package)(\s+)">
-        <bygroups>
-          <token type="KeywordNamespace"/>
-          <token type="Text"/>
-        </bygroups>
-        <push state="import"/>
-      </rule>
-      <rule pattern="(true|false|null)\b">
-        <token type="KeywordConstant"/>
-      </rule>
-      <rule pattern="(class|interface)(\s+)">
-        <bygroups>
-          <token type="KeywordDeclaration"/>
-          <token type="Text"/>
-        </bygroups>
-        <push state="class"/>
-      </rule>
-      <rule pattern="(import(?:\s+static)?)(\s+)">
-        <bygroups>
-          <token type="KeywordNamespace"/>
-          <token type="Text"/>
-        </bygroups>
-        <push state="import"/>
-      </rule>
-      <rule pattern="&#34;(\\\\|\\&#34;|[^&#34;])*&#34;">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="&#39;\\.&#39;|&#39;[^\\]&#39;|&#39;\\u[0-9a-fA-F]{4}&#39;">
-        <token type="LiteralStringChar"/>
-      </rule>
-      <rule pattern="(\.)((?:[^\W\d]|\$)[\w$]*)">
-        <bygroups>
-          <token type="Operator"/>
-          <token type="NameAttribute"/>
-        </bygroups>
-      </rule>
-      <rule pattern="^\s*([^\W\d]|\$)[\w$]*:">
-        <token type="NameLabel"/>
-      </rule>
-      <rule pattern="([^\W\d]|\$)[\w$]*">
-        <token type="Name"/>
-      </rule>
-      <rule pattern="([0-9][0-9_]*\.([0-9][0-9_]*)?|\.[0-9][0-9_]*)([eE][+\-]?[0-9][0-9_]*)?[fFdD]?|[0-9][eE][+\-]?[0-9][0-9_]*[fFdD]?|[0-9]([eE][+\-]?[0-9][0-9_]*)?[fFdD]|0[xX]([0-9a-fA-F][0-9a-fA-F_]*\.?|([0-9a-fA-F][0-9a-fA-F_]*)?\.[0-9a-fA-F][0-9a-fA-F_]*)[pP][+\-]?[0-9][0-9_]*[fFdD]?">
-        <token type="LiteralNumberFloat"/>
-      </rule>
-      <rule pattern="0[xX][0-9a-fA-F][0-9a-fA-F_]*[lL]?">
-        <token type="LiteralNumberHex"/>
-      </rule>
-      <rule pattern="0[bB][01][01_]*[lL]?">
-        <token type="LiteralNumberBin"/>
-      </rule>
-      <rule pattern="0[0-7_]+[lL]?">
-        <token type="LiteralNumberOct"/>
-      </rule>
-      <rule pattern="0|[1-9][0-9_]*[lL]?">
-        <token type="LiteralNumberInteger"/>
-      </rule>
-      <rule pattern="[~^*!%&amp;\[\](){}&lt;&gt;|+=:;,./?-]">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="\n">
-        <token type="Text"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/javascript.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/javascript.xml	(revision 67)
+++ 	(revision )
@@ -1,160 +1,0 @@
-<lexer>
-  <config>
-    <name>JavaScript</name>
-    <alias>js</alias>
-    <alias>javascript</alias>
-    <filename>*.js</filename>
-    <filename>*.jsm</filename>
-    <filename>*.mjs</filename>
-    <filename>*.cjs</filename>
-    <mime_type>application/javascript</mime_type>
-    <mime_type>application/x-javascript</mime_type>
-    <mime_type>text/x-javascript</mime_type>
-    <mime_type>text/javascript</mime_type>
-    <dot_all>true</dot_all>
-    <ensure_nl>true</ensure_nl>
-  </config>
-  <rules>
-    <state name="interp">
-      <rule pattern="`">
-        <token type="LiteralStringBacktick"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="\\\\">
-        <token type="LiteralStringBacktick"/>
-      </rule>
-      <rule pattern="\\`">
-        <token type="LiteralStringBacktick"/>
-      </rule>
-      <rule pattern="\\[^`\\]">
-        <token type="LiteralStringBacktick"/>
-      </rule>
-      <rule pattern="\$\{">
-        <token type="LiteralStringInterpol"/>
-        <push state="interp-inside"/>
-      </rule>
-      <rule pattern="\$">
-        <token type="LiteralStringBacktick"/>
-      </rule>
-      <rule pattern="[^`\\$]+">
-        <token type="LiteralStringBacktick"/>
-      </rule>
-    </state>
-    <state name="interp-inside">
-      <rule pattern="\}">
-        <token type="LiteralStringInterpol"/>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <include state="root"/>
-      </rule>
-    </state>
-    <state name="commentsandwhitespace">
-      <rule pattern="\s+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="&lt;!--">
-        <token type="Comment"/>
-      </rule>
-      <rule pattern="//.*?\n">
-        <token type="CommentSingle"/>
-      </rule>
-      <rule pattern="/\*.*?\*/">
-        <token type="CommentMultiline"/>
-      </rule>
-    </state>
-    <state name="slashstartsregex">
-      <rule>
-        <include state="commentsandwhitespace"/>
-      </rule>
-      <rule pattern="/(\\.|[^[/\\\n]|\[(\\.|[^\]\\\n])*])+/([gimuy]+\b|\B)">
-        <token type="LiteralStringRegex"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="(?=/)">
-        <token type="Text"/>
-        <push state="#pop" state="badregex"/>
-      </rule>
-      <rule>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="badregex">
-      <rule pattern="\n">
-        <token type="Text"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="root">
-      <rule pattern="\A#! ?/.*?\n">
-        <token type="CommentHashbang"/>
-      </rule>
-      <rule pattern="^(?=\s|/|&lt;!--)">
-        <token type="Text"/>
-        <push state="slashstartsregex"/>
-      </rule>
-      <rule>
-        <include state="commentsandwhitespace"/>
-      </rule>
-      <rule pattern="\d+(\.\d*|[eE][+\-]?\d+)">
-        <token type="LiteralNumberFloat"/>
-      </rule>
-      <rule pattern="0[bB][01]+">
-        <token type="LiteralNumberBin"/>
-      </rule>
-      <rule pattern="0[oO][0-7]+">
-        <token type="LiteralNumberOct"/>
-      </rule>
-      <rule pattern="0[xX][0-9a-fA-F]+">
-        <token type="LiteralNumberHex"/>
-      </rule>
-      <rule pattern="[0-9][0-9_]*">
-        <token type="LiteralNumberInteger"/>
-      </rule>
-      <rule pattern="\.\.\.|=&gt;">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="\+\+|--|~|&amp;&amp;|\?|:|\|\||\\(?=\n)|(&lt;&lt;|&gt;&gt;&gt;?|==?|!=?|[-&lt;&gt;+*%&amp;|^/])=?">
-        <token type="Operator"/>
-        <push state="slashstartsregex"/>
-      </rule>
-      <rule pattern="[{(\[;,]">
-        <token type="Punctuation"/>
-        <push state="slashstartsregex"/>
-      </rule>
-      <rule pattern="[})\].]">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="(for|in|while|do|break|return|continue|switch|case|default|if|else|throw|try|catch|finally|new|delete|typeof|instanceof|void|yield|this|of)\b">
-        <token type="Keyword"/>
-        <push state="slashstartsregex"/>
-      </rule>
-      <rule pattern="(var|let|with|function)\b">
-        <token type="KeywordDeclaration"/>
-        <push state="slashstartsregex"/>
-      </rule>
-      <rule pattern="(abstract|async|await|boolean|byte|char|class|const|debugger|double|enum|export|extends|final|float|goto|implements|import|int|interface|long|native|package|private|protected|public|short|static|super|synchronized|throws|transient|volatile)\b">
-        <token type="KeywordReserved"/>
-      </rule>
-      <rule pattern="(true|false|null|NaN|Infinity|undefined)\b">
-        <token type="KeywordConstant"/>
-      </rule>
-      <rule pattern="(Array|Boolean|Date|Error|Function|Math|netscape|Number|Object|Packages|RegExp|String|Promise|Proxy|sun|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|Error|eval|isFinite|isNaN|isSafeInteger|parseFloat|parseInt|document|this|window)\b">
-        <token type="NameBuiltin"/>
-      </rule>
-      <rule pattern="(?:[$_\p{L}\p{N}]|\\u[a-fA-F0-9]{4})(?:(?:[$\p{L}\p{N}]|\\u[a-fA-F0-9]{4}))*">
-        <token type="NameOther"/>
-      </rule>
-      <rule pattern="&#34;(\\\\|\\&#34;|[^&#34;])*&#34;">
-        <token type="LiteralStringDouble"/>
-      </rule>
-      <rule pattern="&#39;(\\\\|\\&#39;|[^&#39;])*&#39;">
-        <token type="LiteralStringSingle"/>
-      </rule>
-      <rule pattern="`">
-        <token type="LiteralStringBacktick"/>
-        <push state="interp"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/json.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/json.xml	(revision 67)
+++ 	(revision )
@@ -1,110 +1,0 @@
-<lexer>
-  <config>
-    <name>JSON</name>
-    <alias>json</alias>
-    <filename>*.json</filename>
-    <mime_type>application/json</mime_type>
-    <dot_all>true</dot_all>
-    <not_multiline>true</not_multiline>
-  </config>
-  <rules>
-    <state name="root">
-      <rule>
-        <include state="value"/>
-      </rule>
-    </state>
-    <state name="whitespace">
-      <rule pattern="\s+">
-        <token type="Text"/>
-      </rule>
-    </state>
-    <state name="comment">
-      <rule pattern="//.*?\n">
-        <token type="CommentSingle"/>
-      </rule>
-    </state>
-    <state name="simplevalue">
-      <rule pattern="(true|false|null)\b">
-        <token type="KeywordConstant"/>
-      </rule>
-      <rule pattern="-?(0|[1-9]\d*)(\.\d+[eE](\+|-)?\d+|[eE](\+|-)?\d+|\.\d+)">
-        <token type="LiteralNumberFloat"/>
-      </rule>
-      <rule pattern="-?(0|[1-9]\d*)">
-        <token type="LiteralNumberInteger"/>
-      </rule>
-      <rule pattern="&#34;(\\\\|\\&#34;|[^&#34;])*&#34;">
-        <token type="LiteralStringDouble"/>
-      </rule>
-    </state>
-    <state name="objectattribute">
-      <rule>
-        <include state="value"/>
-      </rule>
-      <rule pattern=":">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern=",">
-        <token type="Punctuation"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="\}">
-        <token type="Punctuation"/>
-        <pop depth="2"/>
-      </rule>
-    </state>
-    <state name="objectvalue">
-      <rule>
-        <include state="whitespace"/>
-      </rule>
-      <rule>
-        <include state="comment"/>
-      </rule>
-      <rule pattern="&#34;(\\\\|\\&#34;|[^&#34;])*&#34;">
-        <token type="NameTag"/>
-        <push state="objectattribute"/>
-      </rule>
-      <rule pattern="\}">
-        <token type="Punctuation"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="arrayvalue">
-      <rule>
-        <include state="whitespace"/>
-      </rule>
-      <rule>
-        <include state="value"/>
-      </rule>
-      <rule>
-        <include state="comment"/>
-      </rule>
-      <rule pattern=",">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="\]">
-        <token type="Punctuation"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="value">
-      <rule>
-        <include state="whitespace"/>
-      </rule>
-      <rule>
-        <include state="simplevalue"/>
-      </rule>
-      <rule>
-        <include state="comment"/>
-      </rule>
-      <rule pattern="\{">
-        <token type="Punctuation"/>
-        <push state="objectvalue"/>
-      </rule>
-      <rule pattern="\[">
-        <token type="Punctuation"/>
-        <push state="arrayvalue"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/julia.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/julia.xml	(revision 67)
+++ 	(revision )
@@ -1,400 +1,0 @@
-<lexer>
-  <config>
-    <name>Julia</name>
-    <alias>julia</alias>
-    <alias>jl</alias>
-    <filename>*.jl</filename>
-    <mime_type>text/x-julia</mime_type>
-    <mime_type>application/x-julia</mime_type>
-  </config>
-  <rules>
-    <state name="string">
-      <rule pattern="(&#34;)((?:[a-zA-Z_¡-􏿿][a-zA-Z_0-9!¡-􏿿]*)|\d+)?">
-        <bygroups>
-          <token type="LiteralString"/>
-          <token type="LiteralStringAffix"/>
-        </bygroups>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="\\([\\&#34;\&#39;$nrbtfav]|(x|u|U)[a-fA-F0-9]+|\d+)">
-        <token type="LiteralStringEscape"/>
-      </rule>
-      <rule>
-        <include state="interp"/>
-      </rule>
-      <rule pattern="%[-#0 +]*([0-9]+|[*])?(\.([0-9]+|[*]))?[hlL]?[E-GXc-giorsux%]">
-        <token type="LiteralStringInterpol"/>
-      </rule>
-      <rule pattern="[^&#34;$%\\]+">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern=".">
-        <token type="LiteralString"/>
-      </rule>
-    </state>
-    <state name="curly">
-      <rule pattern="\{">
-        <token type="Punctuation"/>
-        <push/>
-      </rule>
-      <rule pattern="\}">
-        <token type="Punctuation"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="(?:[a-zA-Z_¡-􏿿][a-zA-Z_0-9!¡-􏿿]*)">
-        <token type="KeywordType"/>
-      </rule>
-      <rule>
-        <include state="root"/>
-      </rule>
-    </state>
-    <state name="rawstring">
-      <rule pattern="&#34;">
-        <token type="LiteralString"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="\\&#34;">
-        <token type="LiteralStringEscape"/>
-      </rule>
-      <rule pattern="([^&#34;\\]|\\[^&#34;])+">
-        <token type="LiteralString"/>
-      </rule>
-    </state>
-    <state name="tqcommand">
-      <rule pattern="(```)((?:[a-zA-Z_¡-􏿿][a-zA-Z_0-9!¡-􏿿]*)|\d+)?">
-        <bygroups>
-          <token type="LiteralStringBacktick"/>
-          <token type="LiteralStringAffix"/>
-        </bygroups>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="\\\$">
-        <token type="LiteralStringEscape"/>
-      </rule>
-      <rule>
-        <include state="interp"/>
-      </rule>
-      <rule pattern="[^\\`$]+">
-        <token type="LiteralStringBacktick"/>
-      </rule>
-      <rule pattern=".">
-        <token type="LiteralStringBacktick"/>
-      </rule>
-    </state>
-    <state name="in-intp">
-      <rule pattern="\(">
-        <token type="Punctuation"/>
-        <push/>
-      </rule>
-      <rule pattern="\)">
-        <token type="Punctuation"/>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <include state="root"/>
-      </rule>
-    </state>
-    <state name="tqstring">
-      <rule pattern="(&#34;&#34;&#34;)((?:[a-zA-Z_¡-􏿿][a-zA-Z_0-9!¡-􏿿]*)|\d+)?">
-        <bygroups>
-          <token type="LiteralString"/>
-          <token type="LiteralStringAffix"/>
-        </bygroups>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="\\([\\&#34;\&#39;$nrbtfav]|(x|u|U)[a-fA-F0-9]+|\d+)">
-        <token type="LiteralStringEscape"/>
-      </rule>
-      <rule>
-        <include state="interp"/>
-      </rule>
-      <rule pattern="[^&#34;$%\\]+">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern=".">
-        <token type="LiteralString"/>
-      </rule>
-    </state>
-    <state name="interp">
-      <rule pattern="\$(?:[a-zA-Z_¡-􏿿][a-zA-Z_0-9!¡-􏿿]*)">
-        <token type="LiteralStringInterpol"/>
-      </rule>
-      <rule pattern="(\$)(\()">
-        <bygroups>
-          <token type="LiteralStringInterpol"/>
-          <token type="Punctuation"/>
-        </bygroups>
-        <push state="in-intp"/>
-      </rule>
-    </state>
-    <state name="tqregex">
-      <rule pattern="(&#34;&#34;&#34;)([imsxa]*)?">
-        <bygroups>
-          <token type="LiteralStringRegex"/>
-          <token type="LiteralStringAffix"/>
-        </bygroups>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="[^&#34;]+">
-        <token type="LiteralStringRegex"/>
-      </rule>
-    </state>
-    <state name="root">
-      <rule pattern="\n">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="[^\S\n]+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="#=">
-        <token type="CommentMultiline"/>
-        <push state="blockcomment"/>
-      </rule>
-      <rule pattern="#.*$">
-        <token type="Comment"/>
-      </rule>
-      <rule pattern="[\[\](),;]">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="((?:[a-zA-Z_¡-􏿿][a-zA-Z_0-9!¡-􏿿]*))(\s*)(:)((?:[a-zA-Z_¡-􏿿][a-zA-Z_0-9!¡-􏿿]*))">
-        <bygroups>
-          <token type="Name"/>
-          <token type="Text"/>
-          <token type="Operator"/>
-          <token type="Name"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(?&lt;![\]):&lt;&gt;\d.])(:(?:[a-zA-Z_¡-􏿿][a-zA-Z_0-9!¡-􏿿]*))">
-        <token type="LiteralStringSymbol"/>
-      </rule>
-      <rule pattern="(?&lt;=::)(\s*)((?:[a-zA-Z_¡-􏿿][a-zA-Z_0-9!¡-􏿿]*))\b(?![(\[])">
-        <bygroups>
-          <token type="Text"/>
-          <token type="KeywordType"/>
-        </bygroups>
-      </rule>
-      <rule pattern="((?:[a-zA-Z_¡-􏿿][a-zA-Z_0-9!¡-􏿿]*))(\s*)([&lt;&gt;]:)(\s*)((?:[a-zA-Z_¡-􏿿][a-zA-Z_0-9!¡-􏿿]*))\b(?![(\[])">
-        <bygroups>
-          <token type="KeywordType"/>
-          <token type="Text"/>
-          <token type="Operator"/>
-          <token type="Text"/>
-          <token type="KeywordType"/>
-        </bygroups>
-      </rule>
-      <rule pattern="([&lt;&gt;]:)(\s*)((?:[a-zA-Z_¡-􏿿][a-zA-Z_0-9!¡-􏿿]*))\b(?![(\[])">
-        <bygroups>
-          <token type="Operator"/>
-          <token type="Text"/>
-          <token type="KeywordType"/>
-        </bygroups>
-      </rule>
-      <rule pattern="\b((?:[a-zA-Z_¡-􏿿][a-zA-Z_0-9!¡-􏿿]*))(\s*)([&lt;&gt;]:)">
-        <bygroups>
-          <token type="KeywordType"/>
-          <token type="Text"/>
-          <token type="Operator"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(&gt;&gt;&gt;=|&lt;--&gt;|≕&#39;|⊻=|⇁|⥯|⥮|⥥|⥣|⥡|⥠|⥝|⥜|⥙|//=|⥘|⥕|÷=|⥔|&lt;&lt;=|&gt;&gt;=|￪|⥑|⥏|￬|≔|⩴|√|⥍|⥌|→|↔|↚|↛|↞|↠|↢|↣|↦|↤|↮|⇎|⇍|⇏|⇐|⇒|⇔|⇴|⇶|⇷|⇸|⇹|⇺|⇻|⇼|⇽|⇾|⇿|⟵|⟶|⟷|⟹|⟺|⟻|⟼|⟽|⟾|⟿|⤀|⤁|⤂|⤃|⤄|⤅|⤆|⤇|⤌|⤍|⤎|⤏|⤐|⤑|⤔|⤕|⤖|⤗|⤘|⤝|⤞|⤟|⤠|⥄|⥅|⥆|⥇|⥈|⥊|⥋|⥎|⥐|⥒|⥓|⥖|⥗|⥚|⥛|⥞|⥟|⥢|⥤|⥦|⥧|⥨|⥩|⥪|⥫|⥬|⥭|⥰|⧴|⬱|⬰|⬲|⬳|⬴|⬵|⬶|⬷|⬸|⬹|⬺|⬻|⬼|⬽|⬾|⬿|⭀|⭁|⭂|⭃|⭄|⭇|⭈|⭉|⭊|⭋|⭌|￩|￫|⇜|⇝|↜|↝|↩|↪|↫|↬|↼|↽|⇀|⥉|⇄|⇆|⇇|⇉|⇋|⇌|⇚|⇛|⇠|⇢|↷|↶|↺|↻|--&gt;|&lt;--|∛|⤓|⤒|⤋|≥|⤊|≤|⤉|===|≡|⤈|≠|!==|≢|∈|∉|∋|∌|⊆|⊈|⊂|⊄|⊊|∝|∊|∍|∥|∦|∷|∺|∻|∽|∾|≁|≃|≂|≄|≅|≆|≇|≈|≉|≊|≋|≌|≍|≎|≐|≑|≒|≓|≖|≗|≘|≙|≚|≛|≜|≝|≞|≟|≣|≦|≧|≨|≩|≪|≫|≬|≭|≮|≯|≰|≱|≲|≳|≴|≵|≶|≷|≸|≹|≺|≻|≼|≽|≾|≿|⊀|⊁|⊃|⊅|⊇|⊉|⊋|⊏|⊐|⊑|⊒|⊜|⊩|⊬|⊮|⊰|⊱|⊲|⊳|⊴|⊵|⊶|⊷|⋍|⋐|⋑|⋕|⋖|⋗|⋘|⋙|⋚|⋛|⋜|⋝|⋞|⋟|⋠|⋡|⋢|⋣|⋤|⋥|⋦|⋧|⋨|⋩|⋪|⋫|⋬|⋭|⋲|⋳|⋴|⋵|⋶|⋷|⩚|⋹|⋺|⋻|⋼|⋽|⋾|⋿|⟈|⟉|⟒|⦷|⧀|⧁|⧡|⧣|⧤|⧥|⩦|⩧|⩪|⩫|⩬|⩭|⩮|⩯|⩰|⩱|⩲|⩳|⩵|⩶|⩷|⩸|⩹|⩺|⩻|⩼|⩽|⩾|⩿|⪀|⪁|⪂|⪃|⪄|⪅|⪆|⪇|⪈|⪉|⪊|⪋|⪌|⪍|⪎|⪏|⪐|⪑|⪒|⪓|⪔|⪕|⪖|⪗|⪘|⪙|⪚|⪛|⪜|⪝|⪞|⪟|⪠|⪡|⪢|⪣|⪤|⪥|⪦|⪧|⪨|⪩|⪪|⪫|⪬|⪭|⪮|⪯|⪰|⪱|⪲|⪳|⪴|⪵|⪶|⪷|⪸|⪹|⪺|⪻|⪼|⪽|⪾|⪿|⫀|⫁|⫂|⫃|⫄|⫅|⫆|⫇|⫈|⫉|⫊|⫋|⫌|⫍|⫎|⫏|⫐|⫑|⫒|⫓|⫔|⫕|⫖|⫗|⫘|⫙|⫷|⫸|⫹|⫺|⊢|⊣|⟂|⟱|⟰|⇵|↓|…|⁝|⋮|⋱|⋰|⋯|↑|&gt;&gt;&gt;|⨟|⟗|⊕|⊖|⊞|⊟|⟖|∪|∨|⊔|⟕|∓|∔|∸|≏|⊎|⊻|⊽|⋎|⋓|⧺|⧻|⨈|⨢|⨣|⨤|⨥|⨦|⨧|⨨|⨩|⨪|⨫|⨬|⨭|⨮|⨹|⨺|⩁|⩂|⩅|⩊|⩌|⩏|⩐|⩒|⩔|⩖|⩗|⩛|⩝|⩡|⩢|⩣|⨝|▷|⌿|⊍|⫛|⩠|⋅|∘|⩟|⩞|∩|∧|⊗|⊘|⊙|⊚|⊛|⊠|⊡|⊓|∗|∙|∤|⅋|≀|⊼|⋄|⋆|⋇|⋉|⋊|⋋|⋌|⋏|⋒|⟑|⦸|⦼|⦾|⦿|⧶|⧷|⨇|⨰|⨱|⨲|⨳|⨴|⨵|⨶|⨷|⨸|⨻|⨼|⨽|⩀|⩃|⩄|⩋|⩍|⩎|⩑|⩓|⩕|⩘|⋸|⩜|∜|\^=|:=|\$=|÷|¬|\|\||±|\+\+|&amp;&amp;|¦|//|&gt;&gt;|&lt;&lt;|::|-=|\*=|\|&gt;|&lt;\||&gt;:|&lt;:|!=|==|&lt;=|&gt;=|/=|%=|-&gt;|=&gt;|\\=|&amp;=|\|=|×|\+=|:|&lt;|\+|\^|\\|=|-|\$|~|\||\*|\?|!|/|%|&amp;|&gt;)[²³¹ʰʲʳʷʸˡˢˣᴬᴮᴰᴱᴳᴴᴵᴶᴷᴸᴹᴺᴼᴾᴿᵀᵁᵂᵃᵇᵈᵉᵍᵏᵐᵒᵖᵗᵘᵛᵝᵞᵟᵠᵡᵢᵣᵤᵥᵦᵧᵨᵩᵪᶜᶠᶥᶦᶫᶰᶸᶻᶿ′″‴‵‶‷⁗⁰ⁱ⁴⁵⁶⁷⁸⁹⁺⁻⁼⁽⁾ⁿ₀₁₂₃₄₅₆₇₈₉₊₋₌₍₎ₐₑₒₓₕₖₗₘₙₚₛₜⱼⱽ]*">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="(\.&gt;&gt;&gt;=|\.&lt;--&gt;|\.≕&#39;|\.⊻=|\.⇚|\.//=|\.⥯|\.⥮|\.÷=|\.⥥|\.&lt;&lt;=|\.&gt;&gt;=|\.￪|\.⥣|\.⥡|\.￬|\.≔|\.⩴|\.√|\.⥠|\.⥝|\.→|\.↔|\.↚|\.↛|\.↞|\.↠|\.↢|\.↣|\.↦|\.↤|\.↮|\.⇎|\.⇍|\.⇏|\.⇐|\.⇒|\.⇔|\.⇴|\.⇶|\.⇷|\.⇸|\.⇹|\.⇺|\.⇻|\.⇼|\.⇽|\.⇾|\.⇿|\.⟵|\.⟶|\.⟷|\.⟹|\.⟺|\.⟻|\.⟼|\.⟽|\.⟾|\.⟿|\.⤀|\.⤁|\.⤂|\.⤃|\.⤄|\.⤅|\.⤆|\.⤇|\.⤌|\.⤍|\.⤎|\.⤏|\.⤐|\.⤑|\.⤔|\.⤕|\.⤖|\.⤗|\.⤘|\.⤝|\.⤞|\.⤟|\.⤠|\.⥄|\.⥅|\.⥆|\.⥇|\.⥈|\.⥊|\.⥋|\.⥎|\.⥐|\.⥒|\.⥓|\.⥖|\.⥗|\.⥚|\.⥛|\.⥞|\.⥟|\.⥢|\.⥤|\.⥦|\.⥧|\.⥨|\.⥩|\.⥪|\.⥫|\.⥬|\.⥭|\.⥰|\.⧴|\.⬱|\.⬰|\.⬲|\.⬳|\.⬴|\.⬵|\.⬶|\.⬷|\.⬸|\.⬹|\.⬺|\.⬻|\.⬼|\.⬽|\.⬾|\.⬿|\.⭀|\.⭁|\.⭂|\.⭃|\.⭄|\.⭇|\.⭈|\.⭉|\.⭊|\.⭋|\.⭌|\.￩|\.￫|\.⇜|\.⇝|\.↜|\.↝|\.↩|\.↪|\.↫|\.↬|\.↼|\.↽|\.⇀|\.⇁|\.⇄|\.⇆|\.⇇|\.⇉|\.⇋|\.⇌|\.⥜|\.⇛|\.⇠|\.⇢|\.↷|\.↶|\.↺|\.↻|\.--&gt;|\.&lt;--|\.∛|\.⥙|\.⥘|\.⥕|\.≥|\.⥔|\.≤|\.⥑|\.===|\.≡|\.⥏|\.≠|\.!==|\.≢|\.∈|\.∉|\.∋|\.∌|\.⊆|\.⊈|\.⊂|\.⊄|\.⊊|\.∝|\.∊|\.∍|\.∥|\.∦|\.∷|\.∺|\.∻|\.∽|\.∾|\.≁|\.≃|\.≂|\.≄|\.≅|\.≆|\.≇|\.≈|\.≉|\.≊|\.≋|\.≌|\.≍|\.≎|\.≐|\.≑|\.≒|\.≓|\.≖|\.≗|\.≘|\.≙|\.≚|\.≛|\.≜|\.≝|\.≞|\.≟|\.≣|\.≦|\.≧|\.≨|\.≩|\.≪|\.≫|\.≬|\.≭|\.≮|\.≯|\.≰|\.≱|\.≲|\.≳|\.≴|\.≵|\.≶|\.≷|\.≸|\.≹|\.≺|\.≻|\.≼|\.≽|\.≾|\.≿|\.⊀|\.⊁|\.⊃|\.⊅|\.⊇|\.⊉|\.⊋|\.⊏|\.⊐|\.⊑|\.⊒|\.⊜|\.⊩|\.⊬|\.⊮|\.⊰|\.⊱|\.⊲|\.⊳|\.⊴|\.⊵|\.⊶|\.⊷|\.⋍|\.⋐|\.⋑|\.⋕|\.⋖|\.⋗|\.⋘|\.⋙|\.⋚|\.⋛|\.⋜|\.⋝|\.⋞|\.⋟|\.⋠|\.⋡|\.⋢|\.⋣|\.⋤|\.⋥|\.⋦|\.⋧|\.⋨|\.⋩|\.⋪|\.⋫|\.⋬|\.⋭|\.⋲|\.⋳|\.⋴|\.⋵|\.⋶|\.⋷|\.⋸|\.⋹|\.⋺|\.⋻|\.⟕|\.⋽|\.⋾|\.⋿|\.⟈|\.⟉|\.⟒|\.⦷|\.⧀|\.⧁|\.⧡|\.⧣|\.⧤|\.⧥|\.⩦|\.⩧|\.⩪|\.⩫|\.⩬|\.⩭|\.⩮|\.⩯|\.⩰|\.⩱|\.⩲|\.⩳|\.⩵|\.⩶|\.⩷|\.⩸|\.⩹|\.⩺|\.⩻|\.⩼|\.⩽|\.⩾|\.⩿|\.⪀|\.⪁|\.⪂|\.⪃|\.⪄|\.⪅|\.⪆|\.⪇|\.⪈|\.⪉|\.⪊|\.⪋|\.⪌|\.⪍|\.⪎|\.⪏|\.⪐|\.⪑|\.⪒|\.⪓|\.⪔|\.⪕|\.⪖|\.⪗|\.⪘|\.⪙|\.⪚|\.⪛|\.⪜|\.⪝|\.⪞|\.⪟|\.⪠|\.⪡|\.⪢|\.⪣|\.⪤|\.⪥|\.⪦|\.⪧|\.⪨|\.⪩|\.⪪|\.⪫|\.⪬|\.⪭|\.⪮|\.⪯|\.⪰|\.⪱|\.⪲|\.⪳|\.⪴|\.⪵|\.⪶|\.⪷|\.⪸|\.⪹|\.⪺|\.⪻|\.⪼|\.⪽|\.⪾|\.⪿|\.⫀|\.⫁|\.⫂|\.⫃|\.⫄|\.⫅|\.⫆|\.⫇|\.⫈|\.⫉|\.⫊|\.⫋|\.⫌|\.⫍|\.⫎|\.⫏|\.⫐|\.⫑|\.⫒|\.⫓|\.⫔|\.⫕|\.⫖|\.⫗|\.⫘|\.⫙|\.⫷|\.⫸|\.⫹|\.⫺|\.⊢|\.⊣|\.⟂|\.⥍|\.⥌|\.⥉|\.⤓|\.…|\.⁝|\.⋮|\.⋱|\.⋰|\.⋯|\.⤒|\.⤋|\.⤊|\.⤉|\.⊕|\.⊖|\.⊞|\.⊟|\.⤈|\.∪|\.∨|\.⊔|\.⟱|\.∓|\.∔|\.∸|\.≏|\.⊎|\.⊻|\.⊽|\.⋎|\.⋓|\.⧺|\.⧻|\.⨈|\.⨢|\.⨣|\.⨤|\.⨥|\.⨦|\.⨧|\.⨨|\.⨩|\.⨪|\.⨫|\.⨬|\.⨭|\.⨮|\.⨹|\.⨺|\.⩁|\.⩂|\.⩅|\.⩊|\.⩌|\.⩏|\.⩐|\.⩒|\.⩔|\.⩖|\.⩗|\.⩛|\.⩝|\.⩡|\.⩢|\.⩣|\.⟰|\.⇵|\.⌿|\.↓|\.↑|\.&gt;&gt;&gt;|\.⋅|\.∘|\.⨟|\.⟗|\.∩|\.∧|\.⊗|\.⊘|\.⊙|\.⊚|\.⊛|\.⊠|\.⊡|\.⊓|\.∗|\.∙|\.∤|\.⅋|\.≀|\.⊼|\.⋄|\.⋆|\.⋇|\.⋉|\.⋊|\.⋋|\.⋌|\.⋏|\.⋒|\.⟑|\.⦸|\.⦼|\.⦾|\.⦿|\.⧶|\.⧷|\.⨇|\.⨰|\.⨱|\.⨲|\.⨳|\.⨴|\.⨵|\.⨶|\.⨷|\.⨸|\.⨻|\.⨼|\.⨽|\.⩀|\.⩃|\.⩄|\.⩋|\.⩍|\.⩎|\.⩑|\.⩓|\.⩕|\.⩘|\.⩚|\.⩜|\.⩞|\.⩟|\.⩠|\.⫛|\.⊍|\.▷|\.⨝|\.⋼|\.⟖|\.∜|\.=&gt;|\.//|\.&gt;&gt;|\.&lt;&lt;|\.\+=|\.×|\.-=|\.÷|\.¬|\.\*=|\./=|\.\+\+|\.\\=|\.¦|\.\^=|\.!=|\.\|&gt;|\.&lt;\||\.&gt;:|\.&lt;:|\.±|\.==|\.&lt;=|\.&gt;=|\.%=|\.&amp;=|\.\|=|\.=|\.~|\.&gt;|\.\\|\.&lt;|\.-|\.\||\.\^|\.\*|\.!|\./|\.%|\.&amp;|\.\+)[²³¹ʰʲʳʷʸˡˢˣᴬᴮᴰᴱᴳᴴᴵᴶᴷᴸᴹᴺᴼᴾᴿᵀᵁᵂᵃᵇᵈᵉᵍᵏᵐᵒᵖᵗᵘᵛᵝᵞᵟᵠᵡᵢᵣᵤᵥᵦᵧᵨᵩᵪᶜᶠᶥᶦᶫᶰᶸᶻᶿ′″‴‵‶‷⁗⁰ⁱ⁴⁵⁶⁷⁸⁹⁺⁻⁼⁽⁾ⁿ₀₁₂₃₄₅₆₇₈₉₊₋₌₍₎ₐₑₒₓₕₖₗₘₙₚₛₜⱼⱽ]*">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="(\.\.\.|\.\.)">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="&#39;(\\.|\\[0-7]{1,3}|\\x[a-fA-F0-9]{1,3}|\\u[a-fA-F0-9]{1,4}|\\U[a-fA-F0-9]{1,6}|[^\\\&#39;\n])&#39;">
-        <token type="LiteralStringChar"/>
-      </rule>
-      <rule pattern="(?&lt;=[.\w)\]])(\&#39;[²³¹ʰʲʳʷʸˡˢˣᴬᴮᴰᴱᴳᴴᴵᴶᴷᴸᴹᴺᴼᴾᴿᵀᵁᵂᵃᵇᵈᵉᵍᵏᵐᵒᵖᵗᵘᵛᵝᵞᵟᵠᵡᵢᵣᵤᵥᵦᵧᵨᵩᵪᶜᶠᶥᶦᶫᶰᶸᶻᶿ′″‴‵‶‷⁗⁰ⁱ⁴⁵⁶⁷⁸⁹⁺⁻⁼⁽⁾ⁿ₀₁₂₃₄₅₆₇₈₉₊₋₌₍₎ₐₑₒₓₕₖₗₘₙₚₛₜⱼⱽ]*)+">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="(raw)(&#34;&#34;&#34;)">
-        <bygroups>
-          <token type="LiteralStringAffix"/>
-          <token type="LiteralString"/>
-        </bygroups>
-        <push state="tqrawstring"/>
-      </rule>
-      <rule pattern="(raw)(&#34;)">
-        <bygroups>
-          <token type="LiteralStringAffix"/>
-          <token type="LiteralString"/>
-        </bygroups>
-        <push state="rawstring"/>
-      </rule>
-      <rule pattern="(r)(&#34;&#34;&#34;)">
-        <bygroups>
-          <token type="LiteralStringAffix"/>
-          <token type="LiteralStringRegex"/>
-        </bygroups>
-        <push state="tqregex"/>
-      </rule>
-      <rule pattern="(r)(&#34;)">
-        <bygroups>
-          <token type="LiteralStringAffix"/>
-          <token type="LiteralStringRegex"/>
-        </bygroups>
-        <push state="regex"/>
-      </rule>
-      <rule pattern="((?:[a-zA-Z_¡-􏿿][a-zA-Z_0-9!¡-􏿿]*))?(&#34;&#34;&#34;)">
-        <bygroups>
-          <token type="LiteralStringAffix"/>
-          <token type="LiteralString"/>
-        </bygroups>
-        <push state="tqstring"/>
-      </rule>
-      <rule pattern="((?:[a-zA-Z_¡-􏿿][a-zA-Z_0-9!¡-􏿿]*))?(&#34;)">
-        <bygroups>
-          <token type="LiteralStringAffix"/>
-          <token type="LiteralString"/>
-        </bygroups>
-        <push state="string"/>
-      </rule>
-      <rule pattern="((?:[a-zA-Z_¡-􏿿][a-zA-Z_0-9!¡-􏿿]*))?(```)">
-        <bygroups>
-          <token type="LiteralStringAffix"/>
-          <token type="LiteralStringBacktick"/>
-        </bygroups>
-        <push state="tqcommand"/>
-      </rule>
-      <rule pattern="((?:[a-zA-Z_¡-􏿿][a-zA-Z_0-9!¡-􏿿]*))?(`)">
-        <bygroups>
-          <token type="LiteralStringAffix"/>
-          <token type="LiteralStringBacktick"/>
-        </bygroups>
-        <push state="command"/>
-      </rule>
-      <rule pattern="((?:[a-zA-Z_¡-􏿿][a-zA-Z_0-9!¡-􏿿]*))(\{)">
-        <bygroups>
-          <token type="KeywordType"/>
-          <token type="Punctuation"/>
-        </bygroups>
-        <push state="curly"/>
-      </rule>
-      <rule pattern="(where)(\s+)((?:[a-zA-Z_¡-􏿿][a-zA-Z_0-9!¡-􏿿]*))">
-        <bygroups>
-          <token type="Keyword"/>
-          <token type="Text"/>
-          <token type="KeywordType"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(\{)">
-        <token type="Punctuation"/>
-        <push state="curly"/>
-      </rule>
-      <rule pattern="(abstract[ \t]+type|primitive[ \t]+type|mutable[ \t]+struct|struct)([\s()]+)((?:[a-zA-Z_¡-􏿿][a-zA-Z_0-9!¡-􏿿]*))">
-        <bygroups>
-          <token type="Keyword"/>
-          <token type="Text"/>
-          <token type="KeywordType"/>
-        </bygroups>
-      </rule>
-      <rule pattern="@(?:[a-zA-Z_¡-􏿿][a-zA-Z_0-9!¡-􏿿]*)">
-        <token type="NameDecorator"/>
-      </rule>
-      <rule pattern="@(&gt;&gt;&gt;=|&lt;--&gt;|≕&#39;|⊻=|↽|⥯|⥮|⥥|⥣|⥡|⥠|⥝|⥜|⥙|⥘|⥕|//=|⥔|⥑|÷=|⥏|&lt;&lt;=|&gt;&gt;=|￪|⥍|⥌|￬|≔|⩴|√|⥉|⤓|→|↔|↚|↛|↞|↠|↢|↣|↦|↤|↮|⇎|⇍|⇏|⇐|⇒|⇔|⇴|⇶|⇷|⇸|⇹|⇺|⇻|⇼|⇽|⇾|⇿|⟵|⟶|⟷|⟹|⟺|⟻|⟼|⟽|⟾|⟿|⤀|⤁|⤂|⤃|⤄|⤅|⤆|⤇|⤌|⤍|⤎|⤏|⤐|⤑|⤔|⤕|⤖|⤗|⤘|⤝|⤞|⤟|⤠|⥄|⥅|⥆|⥇|⥈|⥊|⥋|⥎|⥐|⥒|⥓|⥖|⥗|⥚|⥛|⥞|⥟|⥢|⥤|⥦|⥧|⥨|⥩|⥪|⥫|⥬|⥭|⥰|⧴|⬱|⬰|⬲|⬳|⬴|⬵|⬶|⬷|⬸|⬹|⬺|⬻|⬼|⬽|⬾|⬿|⭀|⭁|⭂|⭃|⭄|⭇|⭈|⭉|⭊|⭋|⭌|￩|￫|⇜|⇝|↜|↝|↩|↪|↫|↬|↼|⤒|⇀|⇁|⇄|⇆|⇇|⇉|⇋|⇌|⇚|⇛|⇠|⇢|↷|↶|↺|↻|--&gt;|&lt;--|∛|⤋|⤊|⤉|≥|⤈|≤|⟱|===|≡|⟰|≠|!==|≢|∈|∉|∋|∌|⊆|⊈|⊂|⊄|⊊|∝|∊|∍|∥|∦|∷|∺|∻|∽|∾|≁|≃|≂|≄|≅|≆|≇|≈|≉|≊|≋|≌|≍|≎|≐|≑|≒|≓|≖|≗|≘|≙|≚|≛|≜|≝|≞|≟|≣|≦|≧|≨|≩|≪|≫|≬|≭|≮|≯|≰|≱|≲|≳|≴|≵|≶|≷|≸|≹|≺|≻|≼|≽|≾|≿|⊀|⊁|⊃|⊅|⊇|⊉|⊋|⊏|⊐|⊑|⊒|⊜|⊩|⊬|⊮|⊰|⊱|⊲|⊳|⊴|⊵|⊶|⊷|⋍|⋐|⋑|⋕|⋖|⋗|⋘|⋙|⋚|⋛|⋜|⋝|⋞|⋟|⋠|⋡|⋢|⋣|⋤|⋥|⋦|⋧|⋨|⋩|⋪|⋫|⋬|⋭|⋲|⋳|⋴|⋵|⋶|⩕|⋸|⋹|⋺|⋻|⋼|⋽|⋾|⋿|⟈|⟉|⟒|⦷|⧀|⧁|⧡|⧣|⧤|⧥|⩦|⩧|⩪|⩫|⩬|⩭|⩮|⩯|⩰|⩱|⩲|⩳|⩵|⩶|⩷|⩸|⩹|⩺|⩻|⩼|⩽|⩾|⩿|⪀|⪁|⪂|⪃|⪄|⪅|⪆|⪇|⪈|⪉|⪊|⪋|⪌|⪍|⪎|⪏|⪐|⪑|⪒|⪓|⪔|⪕|⪖|⪗|⪘|⪙|⪚|⪛|⪜|⪝|⪞|⪟|⪠|⪡|⪢|⪣|⪤|⪥|⪦|⪧|⪨|⪩|⪪|⪫|⪬|⪭|⪮|⪯|⪰|⪱|⪲|⪳|⪴|⪵|⪶|⪷|⪸|⪹|⪺|⪻|⪼|⪽|⪾|⪿|⫀|⫁|⫂|⫃|⫄|⫅|⫆|⫇|⫈|⫉|⫊|⫋|⫌|⫍|⫎|⫏|⫐|⫑|⫒|⫓|⫔|⫕|⫖|⫗|⫘|⫙|⫷|⫸|⫹|⫺|⊢|⊣|⟂|⇵|↓|↑|&gt;&gt;&gt;|…|⁝|⋮|⋱|⋰|⋯|⨟|⟗|⟖|⟕|⊕|⊖|⊞|⊟|⨝|∪|∨|⊔|▷|∓|∔|∸|≏|⊎|⊻|⊽|⋎|⋓|⧺|⧻|⨈|⨢|⨣|⨤|⨥|⨦|⨧|⨨|⨩|⨪|⨫|⨬|⨭|⨮|⨹|⨺|⩁|⩂|⩅|⩊|⩌|⩏|⩐|⩒|⩔|⩖|⩗|⩛|⩝|⩡|⩢|⩣|⊍|⫛|⌿|⩠|⩟|⩞|⋅|∘|⩜|⩚|∩|∧|⊗|⊘|⊙|⊚|⊛|⊠|⊡|⊓|∗|∙|∤|⅋|≀|⊼|⋄|⋆|⋇|⋉|⋊|⋋|⋌|⋏|⋒|⟑|⦸|⦼|⦾|⦿|⧶|⧷|⨇|⨰|⨱|⨲|⨳|⨴|⨵|⨶|⨷|⨸|⨻|⨼|⨽|⩀|⩃|⩄|⩋|⩍|⩎|⩑|⩓|⋷|⩘|∜|\\=|:=|\$=|÷|¬|\|\||±|\+\+|&amp;&amp;|¦|::|\.\.|//|&gt;&gt;|&lt;&lt;|\|&gt;|\+=|&lt;\||&gt;:|&lt;:|!=|==|&lt;=|&gt;=|-=|\*=|-&gt;|=&gt;|/=|&amp;=|\|=|%=|\^=|×|~|&gt;|&lt;|\^|=|\.|\+|-|\$|:|\||\*|\?|!|/|%|&amp;|\\)[²³¹ʰʲʳʷʸˡˢˣᴬᴮᴰᴱᴳᴴᴵᴶᴷᴸᴹᴺᴼᴾᴿᵀᵁᵂᵃᵇᵈᵉᵍᵏᵐᵒᵖᵗᵘᵛᵝᵞᵟᵠᵡᵢᵣᵤᵥᵦᵧᵨᵩᵪᶜᶠᶥᶦᶫᶰᶸᶻᶿ′″‴‵‶‷⁗⁰ⁱ⁴⁵⁶⁷⁸⁹⁺⁻⁼⁽⁾ⁿ₀₁₂₃₄₅₆₇₈₉₊₋₌₍₎ₐₑₒₓₕₖₗₘₙₚₛₜⱼⱽ]*">
-        <token type="NameDecorator"/>
-      </rule>
-      <rule pattern="(baremodule|continue|function|finally|module|import|elseif|return|export|global|macro|catch|where|begin|const|ccall|using|quote|break|while|local|else|let|isa|try|for|end|in|if|do)\b">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="(ProcessFailedException|InvalidStateException|ReadOnlyMemoryError|TaskFailedException|InterruptException|StackOverflowError|CompositeException|AbstractIrrational|SubstitutionString|ExponentialBackOff|UndefKeywordError|CapturedException|DimensionMismatch|AbstractUnitRange|SegmentationFault|PermutedDimsArray|AbstractVecOrMat|UndefInitializer|CartesianIndices|OutOfMemoryError|ComposedFunction|MissingException|StringIndexError|PartialQuickSort|AbstractDisplay|AbstractPattern|StridedVecOrMat|AbstractChannel|LineNumberNode|AbstractVector|CartesianIndex|AssertionError|IndexCartesian|ErrorException|AbstractMatrix|AbstractString|OverflowError|UndefRefError|LinearIndices|DenseVecOrMat|ArgumentError|StridedVector|StridedMatrix|AbstractArray|AbstractRange|ReentrantLock|AbstractMatch|AbstractFloat|VersionNumber|UndefVarError|RoundingMode|StridedArray|StepRangeLen|OrdinalRange|AbstractChar|AbstractDict|InexactError|DenseVector|WeakKeyDict|MethodError|AbstractSet|IndexLinear|BoundsError|TextDisplay|DomainError|DenseMatrix|SystemError|DivideError|NamedTuple|IndexStyle|Cptrdiff_t|Cuintmax_t|DenseArray|ComplexF16|Irrational|VecElement|Culonglong|RegexMatch|ComplexF32|ComplexF64|BitMatrix|BitVector|Exception|GlobalRef|UnitRange|QuoteNode|TypeError|IOContext|LoadError|Clonglong|Condition|StepRange|Cintmax_t|SubString|InitError|Cssize_t|VecOrMat|BigFloat|Unsigned|UnionAll|Rational|EOFError|BitArray|IOStream|IOBuffer|KeyError|LinRange|Cwchar_t|SubArray|Function|DataType|Cwstring|Csize_t|Float64|Missing|Float32|Complex|Cstring|Float16|Nothing|Cdouble|Cushort|UInt128|Integer|WeakRef|Channel|TypeVar|Cshort|Cfloat|NTuple|IdDict|BitSet|BigInt|UInt16|Symbol|UInt32|Vector|Signed|Vararg|Culong|String|Int128|Number|UInt64|Cuchar|Matrix|Module|Method|Tuple|Int16|Colon|Cuint|UInt8|Regex|Clong|Cvoid|Cchar|Int32|RawFD|Array|Union|Int64|Timer|Pipe|Type|HTML|Text|UInt|MIME|Char|Cint|Some|Expr|Real|Enum|Pair|Dims|Int8|Dict|Task|Bool|Any|Cmd|Int|Set|Ref|Ptr|Val|IO)\b">
-        <token type="KeywordType"/>
-      </rule>
-      <rule pattern="(RoundNearestTiesAway|RoundNearestTiesUp|InsertionSort|RoundFromZero|PROGRAM_FILE|RoundNearest|RoundToZero|ENDIAN_BOM|DEPOT_PATH|RoundDown|QuickSort|MergeSort|LOAD_PATH|VERSION|missing|nothing|devnull|RoundUp|C_NULL|stdout|stderr|NaN32|NaN16|Inf64|Inf32|Inf16|false|stdin|undef|NaN64|true|ARGS|ℯ|NaN|Inf|ENV|im|π|pi)\b">
-        <token type="NameBuiltin"/>
-      </rule>
-      <rule pattern="(?:[a-zA-Z_¡-􏿿][a-zA-Z_0-9!¡-􏿿]*)">
-        <token type="Name"/>
-      </rule>
-      <rule pattern="(\d+((_\d+)+)?\.(?!\.)(\d+((_\d+)+)?)?|\.\d+((_\d+)+)?)([eEf][+-]?[0-9]+)?">
-        <token type="LiteralNumberFloat"/>
-      </rule>
-      <rule pattern="\d+((_\d+)+)?[eEf][+-]?[0-9]+">
-        <token type="LiteralNumberFloat"/>
-      </rule>
-      <rule pattern="0x[a-fA-F0-9]+((_[a-fA-F0-9]+)+)?(\.([a-fA-F0-9]+((_[a-fA-F0-9]+)+)?)?)?p[+-]?\d+">
-        <token type="LiteralNumberFloat"/>
-      </rule>
-      <rule pattern="0b[01]+((_[01]+)+)?">
-        <token type="LiteralNumberBin"/>
-      </rule>
-      <rule pattern="0o[0-7]+((_[0-7]+)+)?">
-        <token type="LiteralNumberOct"/>
-      </rule>
-      <rule pattern="0x[a-fA-F0-9]+((_[a-fA-F0-9]+)+)?">
-        <token type="LiteralNumberHex"/>
-      </rule>
-      <rule pattern="\d+((_\d+)+)?">
-        <token type="LiteralNumberInteger"/>
-      </rule>
-      <rule pattern="(\.)">
-        <token type="Operator"/>
-      </rule>
-    </state>
-    <state name="blockcomment">
-      <rule pattern="[^=#]">
-        <token type="CommentMultiline"/>
-      </rule>
-      <rule pattern="#=">
-        <token type="CommentMultiline"/>
-        <push/>
-      </rule>
-      <rule pattern="=#">
-        <token type="CommentMultiline"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="[=#]">
-        <token type="CommentMultiline"/>
-      </rule>
-    </state>
-    <state name="command">
-      <rule pattern="(`)((?:[a-zA-Z_¡-􏿿][a-zA-Z_0-9!¡-􏿿]*)|\d+)?">
-        <bygroups>
-          <token type="LiteralStringBacktick"/>
-          <token type="LiteralStringAffix"/>
-        </bygroups>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="\\[`$]">
-        <token type="LiteralStringEscape"/>
-      </rule>
-      <rule>
-        <include state="interp"/>
-      </rule>
-      <rule pattern="[^\\`$]+">
-        <token type="LiteralStringBacktick"/>
-      </rule>
-      <rule pattern=".">
-        <token type="LiteralStringBacktick"/>
-      </rule>
-    </state>
-    <state name="tqrawstring">
-      <rule pattern="&#34;&#34;&#34;">
-        <token type="LiteralString"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="([^&#34;]|&#34;[^&#34;][^&#34;])+">
-        <token type="LiteralString"/>
-      </rule>
-    </state>
-    <state name="regex">
-      <rule pattern="(&#34;)([imsxa]*)?">
-        <bygroups>
-          <token type="LiteralStringRegex"/>
-          <token type="LiteralStringAffix"/>
-        </bygroups>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="\\&#34;">
-        <token type="LiteralStringRegex"/>
-      </rule>
-      <rule pattern="[^\\&#34;]+">
-        <token type="LiteralStringRegex"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/jungle.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/jungle.xml	(revision 67)
+++ 	(revision )
@@ -1,98 +1,0 @@
-<lexer>
-  <config>
-    <name>Jungle</name>
-    <alias>jungle</alias>
-    <filename>*.jungle</filename>
-    <mime_type>text/x-jungle</mime_type>
-  </config>
-  <rules>
-    <state name="var">
-      <rule pattern="[^\S\n]+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="\b(((re)?source|barrel)Path|excludeAnnotations|annotations|lang)\b">
-        <token type="NameBuiltin"/>
-      </rule>
-      <rule pattern="\bbase\b">
-        <token type="NameConstant"/>
-      </rule>
-      <rule pattern="\b(ind|zsm|hrv|ces|dan|dut|eng|fin|fre|deu|gre|hun|ita|nob|po[lr]|rus|sl[ov]|spa|swe|ara|heb|zh[st]|jpn|kor|tha|vie|bul|tur)">
-        <token type="NameConstant"/>
-      </rule>
-      <rule pattern="\b((semi)?round|rectangle)(-\d+x\d+)?\b">
-        <token type="NameConstant"/>
-      </rule>
-      <rule pattern="[\.;\[\]\(\$]">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="\)">
-        <token type="Punctuation"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="[a-zA-Z_]\w*">
-        <token type="Name"/>
-      </rule>
-      <rule>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="root">
-      <rule pattern="[^\S\n]+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="\n">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="#(\n|[\w\W]*?[^#]\n)">
-        <token type="CommentSingle"/>
-      </rule>
-      <rule pattern="^(?=\S)">
-        <token type="None"/>
-        <push state="instruction"/>
-      </rule>
-      <rule pattern="[\.;\[\]\(\)\$]">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="[a-zA-Z_]\w*">
-        <token type="Name"/>
-      </rule>
-    </state>
-    <state name="instruction">
-      <rule pattern="[^\S\n]+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="=">
-        <token type="Operator"/>
-        <push state="value"/>
-      </rule>
-      <rule pattern="(?=\S)">
-        <token type="None"/>
-        <push state="var"/>
-      </rule>
-      <rule>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="value">
-      <rule pattern="[^\S\n]+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="\$\(">
-        <token type="Punctuation"/>
-        <push state="var"/>
-      </rule>
-      <rule pattern="[;\[\]\(\)\$]">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="#(\n|[\w\W]*?[^#]\n)">
-        <token type="CommentSingle"/>
-      </rule>
-      <rule pattern="[\w_\-\.\/\\]+">
-        <token type="Text"/>
-      </rule>
-      <rule>
-        <pop depth="1"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/kotlin.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/kotlin.xml	(revision 67)
+++ 	(revision )
@@ -1,220 +1,0 @@
-<lexer>
-  <config>
-    <name>Kotlin</name>
-    <alias>kotlin</alias>
-    <filename>*.kt</filename>
-    <mime_type>text/x-kotlin</mime_type>
-    <dot_all>true</dot_all>
-  </config>
-  <rules>
-    <state name="string">
-      <rule pattern="\\[tbnr&#39;&#34;\\\$]">
-        <token type="LiteralStringEscape"/>
-      </rule>
-      <rule pattern="\\u[0-9a-fA-F]{4}">
-        <token type="LiteralStringEscape"/>
-      </rule>
-      <rule pattern="&#34;">
-        <token type="LiteralStringDouble"/>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <include state="string-interpol"/>
-      </rule>
-      <rule pattern="[^\n\\&#34;$]+">
-        <token type="LiteralStringDouble"/>
-      </rule>
-      <rule pattern="\$">
-        <token type="LiteralStringDouble"/>
-      </rule>
-    </state>
-    <state name="package">
-      <rule pattern="\S+">
-        <token type="NameNamespace"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="class">
-      <rule pattern="\x60[^\x60]+?\x60">
-        <token type="NameClass"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="(?:[_\p{L}][\p{L}\p{N}]*|`@?[_\p{L}][\p{L}\p{N}]+`)">
-        <token type="NameClass"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="property">
-      <rule pattern="\x60[^\x60]+?\x60">
-        <token type="NameProperty"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="(?:[_\p{L}][\p{L}\p{N}]*|`@?[_\p{L}][\p{L}\p{N}]+`)">
-        <token type="NameProperty"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="string-interpol">
-      <rule pattern="\$(?:[_\p{L}][\p{L}\p{N}]*|`@?[_\p{L}][\p{L}\p{N}]+`)">
-        <token type="LiteralStringInterpol"/>
-      </rule>
-      <rule pattern="\${[^}\n]*}">
-        <token type="LiteralStringInterpol"/>
-      </rule>
-    </state>
-    <state name="generics-specification">
-      <rule pattern="&lt;">
-        <token type="Punctuation"/>
-        <push state="generics-specification"/>
-      </rule>
-      <rule pattern="&gt;">
-        <token type="Punctuation"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="[,:*?]">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="(in|out|reified)">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="\x60[^\x60]+?\x60">
-        <token type="NameClass"/>
-      </rule>
-      <rule pattern="(?:[_\p{L}][\p{L}\p{N}]*|`@?[_\p{L}][\p{L}\p{N}]+`)">
-        <token type="NameClass"/>
-      </rule>
-      <rule pattern="\s+">
-        <token type="Text"/>
-      </rule>
-    </state>
-    <state name="root">
-      <rule pattern="^\s*\[.*?\]">
-        <token type="NameAttribute"/>
-      </rule>
-      <rule pattern="[^\S\n]+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="\\\n">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="//[^\n]*\n?">
-        <token type="CommentSingle"/>
-      </rule>
-      <rule pattern="/[*].*?[*]/">
-        <token type="CommentMultiline"/>
-      </rule>
-      <rule pattern="\n">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="!==|!in|!is|===">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="%=|&amp;&amp;|\*=|\+\+|\+=|--|-=|-&gt;|\.\.|\/=|::|&lt;=|==|&gt;=|!!|!=|\|\||\?[:.]">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="[~!%^&amp;*()+=|\[\]:;,.&lt;&gt;\/?-]">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="[{}]">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="&#34;&#34;&#34;">
-        <token type="LiteralString"/>
-        <push state="rawstring"/>
-      </rule>
-      <rule pattern="&#34;">
-        <token type="LiteralStringDouble"/>
-        <push state="string"/>
-      </rule>
-      <rule pattern="(&#39;)(\\u[0-9a-fA-F]{4})(&#39;)">
-        <bygroups>
-          <token type="LiteralStringChar"/>
-          <token type="LiteralStringEscape"/>
-          <token type="LiteralStringChar"/>
-        </bygroups>
-      </rule>
-      <rule pattern="&#39;\\.&#39;|&#39;[^\\]&#39;">
-        <token type="LiteralStringChar"/>
-      </rule>
-      <rule pattern="0[xX][0-9a-fA-F]+[Uu]?[Ll]?|[0-9]+(\.[0-9]*)?([eE][+-][0-9]+)?[fF]?[Uu]?[Ll]?">
-        <token type="LiteralNumber"/>
-      </rule>
-      <rule pattern="(companion)(\s+)(object)">
-        <bygroups>
-          <token type="Keyword"/>
-          <token type="Text"/>
-          <token type="Keyword"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(class|interface|object)(\s+)">
-        <bygroups>
-          <token type="Keyword"/>
-          <token type="Text"/>
-        </bygroups>
-        <push state="class"/>
-      </rule>
-      <rule pattern="(package|import)(\s+)">
-        <bygroups>
-          <token type="Keyword"/>
-          <token type="Text"/>
-        </bygroups>
-        <push state="package"/>
-      </rule>
-      <rule pattern="(val|var)(\s+)">
-        <bygroups>
-          <token type="Keyword"/>
-          <token type="Text"/>
-        </bygroups>
-        <push state="property"/>
-      </rule>
-      <rule pattern="(fun)(\s+)">
-        <bygroups>
-          <token type="Keyword"/>
-          <token type="Text"/>
-        </bygroups>
-        <push state="function"/>
-      </rule>
-      <rule pattern="(abstract|actual|annotation|as|as\?|break|by|catch|class|companion|const|constructor|continue|crossinline|data|delegate|do|dynamic|else|enum|expect|external|false|field|file|final|finally|for|fun|get|if|import|in|infix|init|inline|inner|interface|internal|is|it|lateinit|noinline|null|object|open|operator|out|override|package|param|private|property|protected|public|receiver|reified|return|sealed|set|setparam|super|suspend|tailrec|this|throw|true|try|typealias|typeof|val|value|var|vararg|when|where|while)\b">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="@(?:[_\p{L}][\p{L}\p{N}]*|`@?[_\p{L}][\p{L}\p{N}]+`)">
-        <token type="NameDecorator"/>
-      </rule>
-      <rule pattern="(?:[_\p{L}][\p{L}\p{N}]*|`@?[_\p{L}][\p{L}\p{N}]+`)">
-        <token type="Name"/>
-      </rule>
-    </state>
-    <state name="function">
-      <rule pattern="&lt;">
-        <token type="Punctuation"/>
-        <push state="generics-specification"/>
-      </rule>
-      <rule pattern="\x60[^\x60]+?\x60">
-        <token type="NameFunction"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="(?:[_\p{L}][\p{L}\p{N}]*|`@?[_\p{L}][\p{L}\p{N}]+`)">
-        <token type="NameFunction"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="\s+">
-        <token type="Text"/>
-      </rule>
-    </state>
-    <state name="rawstring">
-      <rule pattern="&#34;&#34;&#34;">
-        <token type="LiteralString"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="(?:[^$&#34;]+|\&#34;{1,2}[^&#34;])+">
-        <token type="LiteralString"/>
-      </rule>
-      <rule>
-        <include state="string-interpol"/>
-      </rule>
-      <rule pattern="\$">
-        <token type="LiteralString"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/lighttpd.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/lighttpd.xml	(revision 67)
+++ 	(revision )
@@ -1,42 +1,0 @@
-<lexer>
-  <config>
-    <name>Lighttpd configuration file</name>
-    <alias>lighty</alias>
-    <alias>lighttpd</alias>
-    <mime_type>text/x-lighttpd-conf</mime_type>
-  </config>
-  <rules>
-    <state name="root">
-      <rule pattern="#.*\n">
-        <token type="CommentSingle"/>
-      </rule>
-      <rule pattern="/\S*">
-        <token type="Name"/>
-      </rule>
-      <rule pattern="[a-zA-Z._-]+">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="\d+\.\d+\.\d+\.\d+(?:/\d+)?">
-        <token type="LiteralNumber"/>
-      </rule>
-      <rule pattern="[0-9]+">
-        <token type="LiteralNumber"/>
-      </rule>
-      <rule pattern="=&gt;|=~|\+=|==|=|\+">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="\$[A-Z]+">
-        <token type="NameBuiltin"/>
-      </rule>
-      <rule pattern="[(){}\[\],]">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="&#34;([^&#34;\\]*(?:\\.[^&#34;\\]*)*)&#34;">
-        <token type="LiteralStringDouble"/>
-      </rule>
-      <rule pattern="\s+">
-        <token type="Text"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/llvm.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/llvm.xml	(revision 67)
+++ 	(revision )
@@ -1,73 +1,0 @@
-<lexer>
-  <config>
-    <name>LLVM</name>
-    <alias>llvm</alias>
-    <filename>*.ll</filename>
-    <mime_type>text/x-llvm</mime_type>
-  </config>
-  <rules>
-    <state name="root">
-      <rule>
-        <include state="whitespace"/>
-      </rule>
-      <rule pattern="([-a-zA-Z$._][\w\-$.]*|&#34;[^&#34;]*?&#34;)\s*:">
-        <token type="NameLabel"/>
-      </rule>
-      <rule>
-        <include state="keyword"/>
-      </rule>
-      <rule pattern="%([-a-zA-Z$._][\w\-$.]*|&#34;[^&#34;]*?&#34;)">
-        <token type="NameVariable"/>
-      </rule>
-      <rule pattern="@([-a-zA-Z$._][\w\-$.]*|&#34;[^&#34;]*?&#34;)">
-        <token type="NameVariableGlobal"/>
-      </rule>
-      <rule pattern="%\d+">
-        <token type="NameVariableAnonymous"/>
-      </rule>
-      <rule pattern="@\d+">
-        <token type="NameVariableGlobal"/>
-      </rule>
-      <rule pattern="#\d+">
-        <token type="NameVariableGlobal"/>
-      </rule>
-      <rule pattern="!([-a-zA-Z$._][\w\-$.]*|&#34;[^&#34;]*?&#34;)">
-        <token type="NameVariable"/>
-      </rule>
-      <rule pattern="!\d+">
-        <token type="NameVariableAnonymous"/>
-      </rule>
-      <rule pattern="c?&#34;[^&#34;]*?&#34;">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="0[xX][a-fA-F0-9]+">
-        <token type="LiteralNumber"/>
-      </rule>
-      <rule pattern="-?\d+(?:[.]\d+)?(?:[eE][-+]?\d+(?:[.]\d+)?)?">
-        <token type="LiteralNumber"/>
-      </rule>
-      <rule pattern="[=&lt;&gt;{}\[\]()*.,!]|x\b">
-        <token type="Punctuation"/>
-      </rule>
-    </state>
-    <state name="whitespace">
-      <rule pattern="(\n|\s)+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern=";.*?\n">
-        <token type="Comment"/>
-      </rule>
-    </state>
-    <state name="keyword">
-      <rule pattern="(inaccessiblemem_or_argmemonly|dereferenceable_or_null|externally_initialized|available_externally|linker_private_weak|inaccessiblememonly|local_unnamed_addr|sanitize_address|x86_vectorcallcc|noimplicitfloat|sanitize_thread|source_filename|sanitize_memory|preserve_mostcc|dereferenceable|arm_aapcs_vfpcc|zeroinitializer|extractelement|linker_private|cxx_fast_tlscc|x86_64_win64cc|intel_ocl_bicc|x86_fastcallcc|preserve_allcc|x86_thiscallcc|x86_stdcallcc|amdgpu_kernel|x86_64_sysvcc|addrspacecast|getelementptr|returns_twice|insertelement|shufflevector|msp430_intrcc|extractvalue|linkonce_odr|inteldialect|alwaysinline|blockaddress|noduplicates|thread_local|singlethread|localdynamic|unnamed_addr|avr_signalcc|unreachable|personality|arm_aapcscc|webkit_jscc|catchswitch|initialexec|insertvalue|noduplicate|nonlazybind|extern_weak|spir_kernel|attributes|sideeffect|cleanuppad|cleanupret|inlinehint|convergent|argmemonly|exactmatch|datalayout|landingpad|arm_apcscc|indirectbr|swifterror|ptx_device|ptx_kernel|x86_intrcc|avr_intrcc|alignstack|norecurse|amdgpu_vs|writeonly|localexec|amdgpu_ps|monotonic|amdgpu_gs|amdgpu_cs|allocsize|atomicrmw|swiftself|unordered|sspstrong|nocapture|addrspace|getresult|safestack|appending|noredzone|dllimport|dllexport|nobuiltin|jumptable|protected|spir_func|inbounds|musttail|external|volatile|inalloca|prologue|hhvm_ccc|noinline|readonly|readnone|linkonce|internal|catchret|samesize|returned|ptrtoint|inttoptr|noreturn|constant|nounwind|catchpad|anyregcc|weak_odr|distinct|release|optnone|uwtable|declare|optsize|swiftcc|noalias|private|minsize|default|fptrunc|zeroext|bitcast|nonnull|acq_rel|acquire|signext|builtin|cmpxchg|cleanup|section|largest|deplibs|seq_cst|common|hhvmcc|fptosi|opaque|triple|fptoui|target|filter|comdat|sitofp|module|switch|prefix|fastcc|coldcc|atomic|va_arg|notail|hidden|caller|global|invoke|define|sspreq|within|unwind|alloca|malloc|resume|select|uitofp|store|trunc|naked|byval|fence|fpext|begin|alias|exact|ghccc|ifunc|catch|undef|false|inreg|align|xchg|none|type|sext|call|null|cold|fcmp|icmp|tail|srem|free|load|nand|ashr|lshr|nnan|from|nest|frem|true|sret|urem|fdiv|zext|sdiv|udiv|ninf|arcp|fmul|fast|umax|fsub|umin|weak|fadd|ret|oeq|asm|add|dbg|sub|ccc|one|mul|olt|any|uge|nsz|ule|shl|ogt|ssp|and|sgt|nsw|nuw|min|max|sle|xor|sge|ult|phi|end|ole|une|ueq|uno|ord|oge|slt|ugt|eq|ne|to|gc|cc|or|br|c|x)\b">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="(ppc_fp128|metadata|x86_fp80|double|label|fp128|float|token|void|half)">
-        <token type="KeywordType"/>
-      </rule>
-      <rule pattern="i[1-9]\d*">
-        <token type="Keyword"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/lua.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/lua.xml	(revision 67)
+++ 	(revision )
@@ -1,158 +1,0 @@
-<lexer>
-  <config>
-    <name>Lua</name>
-    <alias>lua</alias>
-    <filename>*.lua</filename>
-    <filename>*.wlua</filename>
-    <mime_type>text/x-lua</mime_type>
-    <mime_type>application/x-lua</mime_type>
-  </config>
-  <rules>
-    <state name="funcname">
-      <rule>
-        <include state="ws"/>
-      </rule>
-      <rule pattern="[.:]">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="(?:[^\W\d]\w*)(?=(?:(?:--\[(=*)\[[\w\W]*?\](\2)\])|(?:--.*$)|(?:\s+))*[.:])">
-        <token type="NameClass"/>
-      </rule>
-      <rule pattern="(?:[^\W\d]\w*)">
-        <token type="NameFunction"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="\(">
-        <token type="Punctuation"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="label">
-      <rule>
-        <include state="ws"/>
-      </rule>
-      <rule pattern="::">
-        <token type="Punctuation"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="(?:[^\W\d]\w*)">
-        <token type="NameLabel"/>
-      </rule>
-    </state>
-    <state name="dqs">
-      <rule pattern="&#34;">
-        <token type="LiteralStringDouble"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="[^\\&#34;]+">
-        <token type="LiteralStringDouble"/>
-      </rule>
-    </state>
-    <state name="root">
-      <rule pattern="#!.*">
-        <token type="CommentPreproc"/>
-      </rule>
-      <rule>
-        <push state="base"/>
-      </rule>
-    </state>
-    <state name="ws">
-      <rule pattern="(?:--\[(=*)\[[\w\W]*?\](\1)\])">
-        <token type="CommentMultiline"/>
-      </rule>
-      <rule pattern="(?:--.*$)">
-        <token type="CommentSingle"/>
-      </rule>
-      <rule pattern="(?:\s+)">
-        <token type="Text"/>
-      </rule>
-    </state>
-    <state name="goto">
-      <rule>
-        <include state="ws"/>
-      </rule>
-      <rule pattern="(?:[^\W\d]\w*)">
-        <token type="NameLabel"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="sqs">
-      <rule pattern="&#39;">
-        <token type="LiteralStringSingle"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="[^\\&#39;]+">
-        <token type="LiteralStringSingle"/>
-      </rule>
-    </state>
-    <state name="base">
-      <rule>
-        <include state="ws"/>
-      </rule>
-      <rule pattern="(?i)0x[\da-f]*(\.[\da-f]*)?(p[+-]?\d+)?">
-        <token type="LiteralNumberHex"/>
-      </rule>
-      <rule pattern="(?i)(\d*\.\d+|\d+\.\d*)(e[+-]?\d+)?">
-        <token type="LiteralNumberFloat"/>
-      </rule>
-      <rule pattern="(?i)\d+e[+-]?\d+">
-        <token type="LiteralNumberFloat"/>
-      </rule>
-      <rule pattern="\d+">
-        <token type="LiteralNumberInteger"/>
-      </rule>
-      <rule pattern="(?s)\[(=*)\[.*?\]\1\]">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="::">
-        <token type="Punctuation"/>
-        <push state="label"/>
-      </rule>
-      <rule pattern="\.{3}">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="[=&lt;&gt;|~&amp;+\-*/%#^]+|\.\.">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="[\[\]{}().,:;]">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="(and|or|not)\b">
-        <token type="OperatorWord"/>
-      </rule>
-      <rule pattern="(break|do|else|elseif|end|for|if|in|repeat|return|then|until|while)\b">
-        <token type="KeywordReserved"/>
-      </rule>
-      <rule pattern="goto\b">
-        <token type="KeywordReserved"/>
-        <push state="goto"/>
-      </rule>
-      <rule pattern="(local)\b">
-        <token type="KeywordDeclaration"/>
-      </rule>
-      <rule pattern="(true|false|nil)\b">
-        <token type="KeywordConstant"/>
-      </rule>
-      <rule pattern="(function)\b">
-        <token type="KeywordReserved"/>
-        <push state="funcname"/>
-      </rule>
-      <rule pattern="[A-Za-z_]\w*(\.[A-Za-z_]\w*)?">
-        <token type="Name"/>
-      </rule>
-      <rule pattern="&#39;">
-        <token type="LiteralStringSingle"/>
-        <combined state="stringescape" state="sqs"/>
-      </rule>
-      <rule pattern="&#34;">
-        <token type="LiteralStringDouble"/>
-        <combined state="stringescape" state="dqs"/>
-      </rule>
-    </state>
-    <state name="stringescape">
-      <rule pattern="\\([abfnrtv\\&#34;\&#39;]|[\r\n]{1,2}|z\s*|x[0-9a-fA-F]{2}|\d{1,3}|u\{[0-9a-fA-F]+\})">
-        <token type="LiteralStringEscape"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/mathematica.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/mathematica.xml	(revision 67)
+++ 	(revision )
@@ -1,56 +1,0 @@
-<lexer>
-  <config>
-    <name>Mathematica</name>
-    <alias>mathematica</alias>
-    <alias>mma</alias>
-    <alias>nb</alias>
-    <filename>*.nb</filename>
-    <filename>*.cdf</filename>
-    <filename>*.nbp</filename>
-    <filename>*.ma</filename>
-    <mime_type>application/mathematica</mime_type>
-    <mime_type>application/vnd.wolfram.mathematica</mime_type>
-    <mime_type>application/vnd.wolfram.mathematica.package</mime_type>
-    <mime_type>application/vnd.wolfram.cdf</mime_type>
-  </config>
-  <rules>
-    <state name="root">
-      <rule pattern="(?s)\(\*.*?\*\)">
-        <token type="Comment"/>
-      </rule>
-      <rule pattern="([a-zA-Z]+[A-Za-z0-9]*`)">
-        <token type="NameNamespace"/>
-      </rule>
-      <rule pattern="([A-Za-z0-9]*_+[A-Za-z0-9]*)">
-        <token type="NameVariable"/>
-      </rule>
-      <rule pattern="#\d*">
-        <token type="NameVariable"/>
-      </rule>
-      <rule pattern="([a-zA-Z]+[a-zA-Z0-9]*)">
-        <token type="Name"/>
-      </rule>
-      <rule pattern="-?\d+\.\d*">
-        <token type="LiteralNumberFloat"/>
-      </rule>
-      <rule pattern="-?\d*\.\d+">
-        <token type="LiteralNumberFloat"/>
-      </rule>
-      <rule pattern="-?\d+">
-        <token type="LiteralNumberInteger"/>
-      </rule>
-      <rule pattern="(!===|@@@|===|/;|:=|-&gt;|:&gt;|/\.|=\.|~~|&lt;=|@@|/@|&amp;&amp;|\|\||//|&lt;&gt;|;;|&gt;=|-|@|!|\^|/|\*|\?|\+|&amp;|&lt;|&gt;|=|\|)">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="(,|;|\(|\)|\[|\]|\{|\})">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="&#34;.*?&#34;">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="\s+">
-        <token type="TextWhitespace"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/matlab.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/matlab.xml	(revision 67)
+++ 	(revision )
@@ -1,114 +1,0 @@
-<lexer>
-  <config>
-    <name>Matlab</name>
-    <alias>matlab</alias>
-    <filename>*.m</filename>
-    <mime_type>text/matlab</mime_type>
-  </config>
-  <rules>
-    <state name="blockcomment">
-      <rule pattern="^\s*%\}">
-        <token type="CommentMultiline"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="^.*\n">
-        <token type="CommentMultiline"/>
-      </rule>
-      <rule pattern=".">
-        <token type="CommentMultiline"/>
-      </rule>
-    </state>
-    <state name="deffunc">
-      <rule pattern="(\s*)(?:(.+)(\s*)(=)(\s*))?(.+)(\()(.*)(\))(\s*)">
-        <bygroups>
-          <token type="TextWhitespace"/>
-          <token type="Text"/>
-          <token type="TextWhitespace"/>
-          <token type="Punctuation"/>
-          <token type="TextWhitespace"/>
-          <token type="NameFunction"/>
-          <token type="Punctuation"/>
-          <token type="Text"/>
-          <token type="Punctuation"/>
-          <token type="TextWhitespace"/>
-        </bygroups>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="(\s*)([a-zA-Z_]\w*)">
-        <bygroups>
-          <token type="Text"/>
-          <token type="NameFunction"/>
-        </bygroups>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="root">
-      <rule pattern="\n">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="^!.*">
-        <token type="LiteralStringOther"/>
-      </rule>
-      <rule pattern="%\{\s*\n">
-        <token type="CommentMultiline"/>
-        <push state="blockcomment"/>
-      </rule>
-      <rule pattern="%.*$">
-        <token type="Comment"/>
-      </rule>
-      <rule pattern="^\s*function">
-        <token type="Keyword"/>
-        <push state="deffunc"/>
-      </rule>
-      <rule pattern="(properties|persistent|enumerated|otherwise|continue|function|classdef|methods|elseif|events|switch|return|global|parfor|catch|break|while|else|spmd|case|try|end|for|if)\b">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="(sin|sind|sinh|asin|asind|asinh|cos|cosd|cosh|acos|acosd|acosh|tan|tand|tanh|atan|atand|atan2|atanh|sec|secd|sech|asec|asecd|asech|csc|cscd|csch|acsc|acscd|acsch|cot|cotd|coth|acot|acotd|acoth|hypot|exp|expm1|log|log1p|log10|log2|pow2|realpow|reallog|realsqrt|sqrt|nthroot|nextpow2|abs|angle|complex|conj|imag|real|unwrap|isreal|cplxpair|fix|floor|ceil|round|mod|rem|sign|airy|besselj|bessely|besselh|besseli|besselk|beta|betainc|betaln|ellipj|ellipke|erf|erfc|erfcx|erfinv|expint|gamma|gammainc|gammaln|psi|legendre|cross|dot|factor|isprime|primes|gcd|lcm|rat|rats|perms|nchoosek|factorial|cart2sph|cart2pol|pol2cart|sph2cart|hsv2rgb|rgb2hsv|zeros|ones|eye|repmat|rand|randn|linspace|logspace|freqspace|meshgrid|accumarray|size|length|ndims|numel|disp|isempty|isequal|isequalwithequalnans|cat|reshape|diag|blkdiag|tril|triu|fliplr|flipud|flipdim|rot90|find|end|sub2ind|ind2sub|bsxfun|ndgrid|permute|ipermute|shiftdim|circshift|squeeze|isscalar|isvector|ans|eps|realmax|realmin|pi|i|inf|nan|isnan|isinf|isfinite|j|why|compan|gallery|hadamard|hankel|hilb|invhilb|magic|pascal|rosser|toeplitz|vander|wilkinson)\b">
-        <token type="NameBuiltin"/>
-      </rule>
-      <rule pattern="\.\.\..*$">
-        <token type="Comment"/>
-      </rule>
-      <rule pattern="-|==|~=|&lt;|&gt;|&lt;=|&gt;=|&amp;&amp;|&amp;|~|\|\|?">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="\.\*|\*|\+|\.\^|\.\\|\.\/|\/|\\">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="\[|\]|\(|\)|\{|\}|:|@|\.|,">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="=|:|;">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="(?&lt;=[\w)\].])\&#39;+">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="(\d+\.\d*|\d*\.\d+)([eEf][+-]?[0-9]+)?">
-        <token type="LiteralNumberFloat"/>
-      </rule>
-      <rule pattern="\d+[eEf][+-]?[0-9]+">
-        <token type="LiteralNumberFloat"/>
-      </rule>
-      <rule pattern="\d+">
-        <token type="LiteralNumberInteger"/>
-      </rule>
-      <rule pattern="(?&lt;![\w)\].])\&#39;">
-        <token type="LiteralString"/>
-        <push state="string"/>
-      </rule>
-      <rule pattern="[a-zA-Z_]\w*">
-        <token type="Name"/>
-      </rule>
-      <rule pattern=".">
-        <token type="Text"/>
-      </rule>
-    </state>
-    <state name="string">
-      <rule pattern="[^\&#39;]*\&#39;">
-        <token type="LiteralString"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/mcfunction.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/mcfunction.xml	(revision 67)
+++ 	(revision )
@@ -1,182 +1,0 @@
-<lexer>
-  <config>
-    <name>mcfunction</name>
-    <alias>mcfunction</alias>
-    <filename>*.mcfunction</filename>
-    <dot_all>true</dot_all>
-    <not_multiline>true</not_multiline>
-  </config>
-  <rules>
-    <state name="nbtobjectvalue">
-      <rule pattern="(&#34;(\\\\|\\&#34;|[^&#34;])*&#34;|[a-zA-Z0-9_]+)">
-        <token type="NameTag"/>
-        <push state="nbtobjectattribute"/>
-      </rule>
-      <rule pattern="\}">
-        <token type="Punctuation"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="nbtarrayvalue">
-      <rule>
-        <include state="nbtvalue"/>
-      </rule>
-      <rule pattern=",">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="\]">
-        <token type="Punctuation"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="nbtvalue">
-      <rule>
-        <include state="simplevalue"/>
-      </rule>
-      <rule pattern="\{">
-        <token type="Punctuation"/>
-        <push state="nbtobjectvalue"/>
-      </rule>
-      <rule pattern="\[">
-        <token type="Punctuation"/>
-        <push state="nbtarrayvalue"/>
-      </rule>
-    </state>
-    <state name="argumentvalue">
-      <rule>
-        <include state="simplevalue"/>
-      </rule>
-      <rule pattern=",">
-        <token type="Punctuation"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="[}\]]">
-        <token type="Punctuation"/>
-        <pop depth="2"/>
-      </rule>
-    </state>
-    <state name="argumentlist">
-      <rule pattern="(nbt)(={)">
-        <bygroups>
-          <token type="NameAttribute"/>
-          <token type="Punctuation"/>
-        </bygroups>
-        <push state="nbtobjectvalue"/>
-      </rule>
-      <rule pattern="([A-Za-z0-9/_!]+)(={)">
-        <bygroups>
-          <token type="NameAttribute"/>
-          <token type="Punctuation"/>
-        </bygroups>
-        <push state="argumentlist"/>
-      </rule>
-      <rule pattern="([A-Za-z0-9/_!]+)(=)">
-        <bygroups>
-          <token type="NameAttribute"/>
-          <token type="Punctuation"/>
-        </bygroups>
-        <push state="argumentvalue"/>
-      </rule>
-      <rule>
-        <include state="simplevalue"/>
-      </rule>
-      <rule pattern=",">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="[}\]]">
-        <token type="Punctuation"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="root">
-      <rule pattern="#.*?\n">
-        <token type="CommentSingle"/>
-      </rule>
-      <rule pattern="/?(geteduclientinfo|clearspawnpoint|defaultgamemode|transferserver|toggledownfall|immutableworld|detectredstone|setidletimeout|playanimation|classroommode|spreadplayers|testforblocks|setmaxplayers|setworldspawn|testforblock|worldbuilder|createagent|worldborder|camerashake|advancement|raytracefog|locatebiome|tickingarea|replaceitem|attributes|spawnpoint|difficulty|experience|scoreboard|whitelist|structure|playsound|stopsound|forceload|spectate|gamerule|function|schedule|wsserver|teleport|position|save-off|particle|setblock|datapack|mobevent|transfer|gamemode|save-all|bossbar|enchant|trigger|collect|execute|weather|teammsg|tpagent|banlist|dropall|publish|tellraw|testfor|save-on|destroy|ability|locate|summon|remove|effect|reload|ban-ip|recipe|pardon|detect|music|clear|clone|event|mixer|debug|title|ride|stop|list|turn|data|team|kick|loot|tell|help|give|flog|fill|move|time|seed|kill|save|item|deop|code|tag|ban|msg|say|tp|me|op|xp|w|place)\b">
-        <token type="KeywordReserved"/>
-      </rule>
-      <rule pattern="(@p|@r|@a|@e|@s|@c|@v)">
-        <token type="KeywordConstant"/>
-      </rule>
-      <rule pattern="\[">
-        <token type="Punctuation"/>
-        <push state="argumentlist"/>
-      </rule>
-      <rule pattern="{">
-        <token type="Punctuation"/>
-        <push state="nbtobjectvalue"/>
-      </rule>
-      <rule pattern="~">
-        <token type="NameBuiltin"/>
-      </rule>
-      <rule pattern="([a-zA-Z_]+:)?[a-zA-Z_]+\b">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="([a-z]+)(\.)([0-9]+)\b">
-        <bygroups>
-          <token type="Text"/>
-          <token type="Punctuation"/>
-          <token type="LiteralNumber"/>
-        </bygroups>
-      </rule>
-      <rule pattern="([&lt;&gt;=]|&lt;=|&gt;=)">
-        <token type="Punctuation"/>
-      </rule>
-      <rule>
-        <include state="simplevalue"/>
-      </rule>
-      <rule pattern="\s+">
-        <token type="TextWhitespace"/>
-      </rule>
-    </state>
-    <state name="simplevalue">
-      <rule pattern="(true|false)">
-        <token type="KeywordConstant"/>
-      </rule>
-      <rule pattern="[01]b">
-        <token type="LiteralNumber"/>
-      </rule>
-      <rule pattern="-?(0|[1-9]\d*)(\.\d+[eE](\+|-)?\d+|[eE](\+|-)?\d+|\.\d+)">
-        <token type="LiteralNumberFloat"/>
-      </rule>
-      <rule pattern="(-?\d+)(\.\.)(-?\d+)">
-        <bygroups>
-          <token type="LiteralNumberInteger"/>
-          <token type="Punctuation"/>
-          <token type="LiteralNumberInteger"/>
-        </bygroups>
-      </rule>
-      <rule pattern="-?(0|[1-9]\d*)">
-        <token type="LiteralNumberInteger"/>
-      </rule>
-      <rule pattern="&#34;(\\\\|\\&#34;|[^&#34;])*&#34;">
-        <token type="LiteralStringDouble"/>
-      </rule>
-      <rule pattern="&#39;[^&#39;]+&#39;">
-        <token type="LiteralStringSingle"/>
-      </rule>
-      <rule pattern="([!#]?)(\w+)">
-        <bygroups>
-          <token type="Punctuation"/>
-          <token type="Text"/>
-        </bygroups>
-      </rule>
-    </state>
-    <state name="nbtobjectattribute">
-      <rule>
-        <include state="nbtvalue"/>
-      </rule>
-      <rule pattern=":">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern=",">
-        <token type="Punctuation"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="\}">
-        <token type="Punctuation"/>
-        <pop depth="2"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/meson.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/meson.xml	(revision 67)
+++ 	(revision )
@@ -1,85 +1,0 @@
-<lexer>
-  <config>
-    <name>Meson</name>
-    <alias>meson</alias>
-    <alias>meson.build</alias>
-    <filename>meson.build</filename>
-    <filename>meson_options.txt</filename>
-    <mime_type>text/x-meson</mime_type>
-  </config>
-  <rules>
-    <state name="root">
-      <rule pattern="#.*?$">
-        <token type="Comment"/>
-      </rule>
-      <rule pattern="&#39;&#39;&#39;.*&#39;&#39;&#39;">
-        <token type="LiteralStringSingle"/>
-      </rule>
-      <rule pattern="[1-9][0-9]*">
-        <token type="LiteralNumberInteger"/>
-      </rule>
-      <rule pattern="0o[0-7]+">
-        <token type="LiteralNumberOct"/>
-      </rule>
-      <rule pattern="0x[a-fA-F0-9]+">
-        <token type="LiteralNumberHex"/>
-      </rule>
-      <rule>
-        <include state="string"/>
-      </rule>
-      <rule>
-        <include state="keywords"/>
-      </rule>
-      <rule>
-        <include state="expr"/>
-      </rule>
-      <rule pattern="[a-zA-Z_][a-zA-Z_0-9]*">
-        <token type="Name"/>
-      </rule>
-      <rule pattern="\s+">
-        <token type="TextWhitespace"/>
-      </rule>
-    </state>
-    <state name="string">
-      <rule pattern="[&#39;]{3}([&#39;]{0,2}([^\\&#39;]|\\(.|\n)))*[&#39;]{3}">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="&#39;.*?(?&lt;!\\)(\\\\)*?&#39;">
-        <token type="LiteralString"/>
-      </rule>
-    </state>
-    <state name="keywords">
-      <rule pattern="(endforeach|continue|foreach|break|endif|else|elif|if)\b">
-        <token type="Keyword"/>
-      </rule>
-    </state>
-    <state name="expr">
-      <rule pattern="(in|and|or|not)\b">
-        <token type="OperatorWord"/>
-      </rule>
-      <rule pattern="(\*=|/=|%=|\+]=|-=|==|!=|\+|-|=)">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="[\[\]{}:().,?]">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="(false|true)\b">
-        <token type="KeywordConstant"/>
-      </rule>
-      <rule>
-        <include state="builtins"/>
-      </rule>
-      <rule pattern="(target_machine|build_machine|host_machine|meson)\b">
-        <token type="NameVariableMagic"/>
-      </rule>
-    </state>
-    <state name="builtins">
-      <rule pattern="(?&lt;!\.)(add_project_link_arguments|add_global_link_arguments|add_project_arguments|add_global_arguments|include_directories|configuration_data|declare_dependency|install_headers|both_libraries|install_subdir|add_test_setup|configure_file|static_library|shared_library|custom_target|add_languages|shared_module|set_variable|get_variable|find_library|find_program|build_target|install_data|environment|is_disabler|run_command|subdir_done|install_man|is_variable|subproject|dependency|join_paths|get_option|executable|generator|benchmark|disabler|project|message|library|summary|vcs_tag|warning|assert|subdir|range|files|error|test|jar)\b">
-        <token type="NameBuiltin"/>
-      </rule>
-      <rule pattern="(?&lt;!\.)import\b">
-        <token type="NameNamespace"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/metal.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/metal.xml	(revision 67)
+++ 	(revision )
@@ -1,270 +1,0 @@
-<lexer>
-  <config>
-    <name>Metal</name>
-    <alias>metal</alias>
-    <filename>*.metal</filename>
-    <mime_type>text/x-metal</mime_type>
-    <ensure_nl>true</ensure_nl>
-  </config>
-  <rules>
-    <state name="function">
-      <rule>
-        <include state="whitespace"/>
-      </rule>
-      <rule>
-        <include state="statements"/>
-      </rule>
-      <rule pattern=";">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="\{">
-        <token type="Punctuation"/>
-        <push/>
-      </rule>
-      <rule pattern="\}">
-        <token type="Punctuation"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="macro">
-      <rule pattern="(include)(\s*(?:/[*].*?[*]/\s*)?)([^\n]+)">
-        <bygroups>
-          <token type="CommentPreproc"/>
-          <token type="Text"/>
-          <token type="CommentPreprocFile"/>
-        </bygroups>
-      </rule>
-      <rule pattern="[^/\n]+">
-        <token type="CommentPreproc"/>
-      </rule>
-      <rule pattern="/[*](.|\n)*?[*]/">
-        <token type="CommentMultiline"/>
-      </rule>
-      <rule pattern="//.*?\n">
-        <token type="CommentSingle"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="/">
-        <token type="CommentPreproc"/>
-      </rule>
-      <rule pattern="(?&lt;=\\)\n">
-        <token type="CommentPreproc"/>
-      </rule>
-      <rule pattern="\n">
-        <token type="CommentPreproc"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="if0">
-      <rule pattern="^\s*#if.*?(?&lt;!\\)\n">
-        <token type="CommentPreproc"/>
-        <push/>
-      </rule>
-      <rule pattern="^\s*#el(?:se|if).*\n">
-        <token type="CommentPreproc"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="^\s*#endif.*?(?&lt;!\\)\n">
-        <token type="CommentPreproc"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern=".*?\n">
-        <token type="Comment"/>
-      </rule>
-    </state>
-    <state name="statements">
-      <rule pattern="(namespace|constexpr|operator|template|using|this)\b">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="(enum)\b(\s+)(class)\b(\s*)">
-        <bygroups>
-          <token type="Keyword"/>
-          <token type="Text"/>
-          <token type="Keyword"/>
-          <token type="Text"/>
-        </bygroups>
-        <push state="classname"/>
-      </rule>
-      <rule pattern="(class|struct|enum|union)\b(\s*)">
-        <bygroups>
-          <token type="Keyword"/>
-          <token type="Text"/>
-        </bygroups>
-        <push state="classname"/>
-      </rule>
-      <rule pattern="\[\[.+\]\]">
-        <token type="NameAttribute"/>
-      </rule>
-      <rule pattern="(\d+\.\d*|\.\d+|\d+)[eE][+-]?\d+[LlUu]*">
-        <token type="LiteralNumberFloat"/>
-      </rule>
-      <rule pattern="(\d+\.\d*|\.\d+|\d+[fF])[fF]?">
-        <token type="LiteralNumberFloat"/>
-      </rule>
-      <rule pattern="0[xX]([0-9A-Fa-f](&#39;?[0-9A-Fa-f]+)*)[LlUu]*">
-        <token type="LiteralNumberHex"/>
-      </rule>
-      <rule pattern="0(&#39;?[0-7]+)+[LlUu]*">
-        <token type="LiteralNumberOct"/>
-      </rule>
-      <rule pattern="0[Bb][01](&#39;?[01]+)*[LlUu]*">
-        <token type="LiteralNumberBin"/>
-      </rule>
-      <rule pattern="[0-9](&#39;?[0-9]+)*[LlUu]*">
-        <token type="LiteralNumberInteger"/>
-      </rule>
-      <rule pattern="\*/">
-        <token type="Error"/>
-      </rule>
-      <rule pattern="[~!%^&amp;*+=|?:&lt;&gt;/-]">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="[()\[\],.]">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="(continue|typedef|sizeof|extern|static|switch|struct|return|union|const|break|while|enum|else|case|for|do|if)\b">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="(bool|float|half|long|ptrdiff_t|size_t|unsigned|u?char|u?int((8|16|32|64)_t)?|u?short)\b">
-        <token type="KeywordType"/>
-      </rule>
-      <rule pattern="(bool|float|half|u?(char|int|long|short))(2|3|4)\b">
-        <token type="KeywordType"/>
-      </rule>
-      <rule pattern="packed_(float|half|long|u?(char|int|short))(2|3|4)\b">
-        <token type="KeywordType"/>
-      </rule>
-      <rule pattern="(float|half)(2|3|4)x(2|3|4)\b">
-        <token type="KeywordType"/>
-      </rule>
-      <rule pattern="atomic_u?int\b">
-        <token type="KeywordType"/>
-      </rule>
-      <rule pattern="(rg?(8|16)(u|s)norm|rgba(8|16)(u|s)norm|srgba8unorm|rgb10a2|rg11b10f|rgb9e5)\b">
-        <token type="KeywordType"/>
-      </rule>
-      <rule pattern="(array|depth(2d|cube)(_array)?|depth2d_ms(_array)?|sampler|texture_buffer|texture(1|2)d(_array)?|texture2d_ms(_array)?|texture3d|texturecube(_array)?|uniform|visible_function_table)\b">
-        <token type="KeywordType"/>
-      </rule>
-      <rule pattern="(true|false|NULL)\b">
-        <token type="NameBuiltin"/>
-      </rule>
-      <rule pattern="(threadgroup_imageblock|threadgroup|constant|ray_data|device|thread)\b">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="([a-zA-Z_]\w*)(\s*)(:)(?!:)">
-        <bygroups>
-          <token type="NameLabel"/>
-          <token type="Text"/>
-          <token type="Punctuation"/>
-        </bygroups>
-      </rule>
-      <rule pattern="[a-zA-Z_]\w*">
-        <token type="Name"/>
-      </rule>
-    </state>
-    <state name="root">
-      <rule>
-        <include state="whitespace"/>
-      </rule>
-      <rule pattern="(fragment|kernel|vertex)?((?:[\w*\s])+?(?:\s|[*]))([a-zA-Z_]\w*)(\s*\([^;]*?\))([^;{]*)(\{)">
-        <bygroups>
-          <token type="Keyword"/>
-          <usingself state="root"/>
-          <token type="NameFunction"/>
-          <usingself state="root"/>
-          <usingself state="root"/>
-          <token type="Punctuation"/>
-        </bygroups>
-        <push state="function"/>
-      </rule>
-      <rule pattern="(fragment|kernel|vertex)?((?:[\w*\s])+?(?:\s|[*]))([a-zA-Z_]\w*)(\s*\([^;]*?\))([^;]*)(;)">
-        <bygroups>
-          <token type="Keyword"/>
-          <usingself state="root"/>
-          <token type="NameFunction"/>
-          <usingself state="root"/>
-          <usingself state="root"/>
-          <token type="Punctuation"/>
-        </bygroups>
-      </rule>
-      <rule>
-        <push state="statement"/>
-      </rule>
-    </state>
-    <state name="classname">
-      <rule pattern="(\[\[.+\]\])(\s*)">
-        <bygroups>
-          <token type="NameAttribute"/>
-          <token type="Text"/>
-        </bygroups>
-      </rule>
-      <rule pattern="[a-zA-Z_]\w*">
-        <token type="NameClass"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="\s*(?=[&gt;{])">
-        <token type="Text"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="whitespace">
-      <rule pattern="^#if\s+0">
-        <token type="CommentPreproc"/>
-        <push state="if0"/>
-      </rule>
-      <rule pattern="^#">
-        <token type="CommentPreproc"/>
-        <push state="macro"/>
-      </rule>
-      <rule pattern="^(\s*(?:/[*].*?[*]/\s*)?)(#if\s+0)">
-        <bygroups>
-          <usingself state="root"/>
-          <token type="CommentPreproc"/>
-        </bygroups>
-        <push state="if0"/>
-      </rule>
-      <rule pattern="^(\s*(?:/[*].*?[*]/\s*)?)(#)">
-        <bygroups>
-          <usingself state="root"/>
-          <token type="CommentPreproc"/>
-        </bygroups>
-        <push state="macro"/>
-      </rule>
-      <rule pattern="\n">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="\s+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="\\\n">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="//(\n|[\w\W]*?[^\\]\n)">
-        <token type="CommentSingle"/>
-      </rule>
-      <rule pattern="/(\\\n)?[*][\w\W]*?[*](\\\n)?/">
-        <token type="CommentMultiline"/>
-      </rule>
-      <rule pattern="/(\\\n)?[*][\w\W]*">
-        <token type="CommentMultiline"/>
-      </rule>
-    </state>
-    <state name="statement">
-      <rule>
-        <include state="whitespace"/>
-      </rule>
-      <rule>
-        <include state="statements"/>
-      </rule>
-      <rule pattern="[{]">
-        <token type="Punctuation"/>
-        <push state="root"/>
-      </rule>
-      <rule pattern="[;}]">
-        <token type="Punctuation"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/minizinc.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/minizinc.xml	(revision 67)
+++ 	(revision )
@@ -1,82 +1,0 @@
-<lexer>
-  <config>
-    <name>MiniZinc</name>
-    <alias>minizinc</alias>
-    <alias>MZN</alias>
-    <alias>mzn</alias>
-    <filename>*.mzn</filename>
-    <filename>*.dzn</filename>
-    <filename>*.fzn</filename>
-    <mime_type>text/minizinc</mime_type>
-  </config>
-  <rules>
-    <state name="root">
-      <rule pattern="\n">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="\s+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="\\\n">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="\%(.*?)\n">
-        <token type="CommentSingle"/>
-      </rule>
-      <rule pattern="/(\\\n)?[*](.|\n)*?[*](\\\n)?/">
-        <token type="CommentMultiline"/>
-      </rule>
-      <rule pattern="&#34;(\\\\|\\&#34;|[^&#34;])*&#34;">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="\b(annotation|constraint|predicate|minimize|function|maximize|satisfy|include|record|output|solve|test|list|type|ann|par|any|var|op|of)\b">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="\b(string|tuple|float|array|bool|enum|int|set)\b">
-        <token type="KeywordType"/>
-      </rule>
-      <rule pattern="\b(forall|where|endif|then|else|for|if)\b">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="\b(array_intersect|index_set_2of3|index_set_1of3|index_set_3of3|index_set_1of2|index_set_2of2|array_union|show_float|dom_array|int2float|set2array|index_set|dom_size|lb_array|is_fixed|ub_array|bool2int|show_int|array4d|array2d|array1d|array5d|array6d|array3d|product|length|assert|concat|trace|acosh|round|abort|log10|floor|sinh|tanh|atan|sqrt|asin|show|log2|card|ceil|cosh|join|pow|cos|max|log|exp|dom|sin|abs|fix|sum|tan|min|lb|ln|ub)\b">
-        <token type="NameBuiltin"/>
-      </rule>
-      <rule pattern="(not|&lt;-&gt;|-&gt;|&lt;-|\\/|xor|/\\)">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="(&lt;|&gt;|&lt;=|&gt;=|==|=|!=)">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="(\+|-|\*|/|div|mod)">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="\b(intersect|superset|symdiff|subset|union|diff|in)\b">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="(\\|\.\.|\+\+)">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="[|()\[\]{},:;]">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="(true|false)\b">
-        <token type="KeywordConstant"/>
-      </rule>
-      <rule pattern="([+-]?)\d+(\.(?!\.)\d*)?([eE][-+]?\d+)?">
-        <token type="LiteralNumber"/>
-      </rule>
-      <rule pattern="::\s*([^\W\d]\w*)(\s*\([^\)]*\))?">
-        <token type="NameDecorator"/>
-      </rule>
-      <rule pattern="\b([^\W\d]\w*)\b(\()">
-        <bygroups>
-          <token type="NameFunction"/>
-          <token type="Punctuation"/>
-        </bygroups>
-      </rule>
-      <rule pattern="[^\W\d]\w*">
-        <token type="NameOther"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/mlir.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/mlir.xml	(revision 67)
+++ 	(revision )
@@ -1,73 +1,0 @@
-<lexer>
-  <config>
-    <name>MLIR</name>
-    <alias>mlir</alias>
-    <filename>*.mlir</filename>
-    <mime_type>text/x-mlir</mime_type>
-  </config>
-  <rules>
-    <state name="whitespace">
-      <rule pattern="(\n|\s)+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="//.*?\n">
-        <token type="Comment"/>
-      </rule>
-    </state>
-    <state name="keyword">
-      <rule pattern="(constant|return)">
-        <token type="KeywordType"/>
-      </rule>
-      <rule pattern="(memref|tensor|vector|func|loc)">
-        <token type="KeywordType"/>
-      </rule>
-      <rule pattern="bf16|f16|f32|f64|index">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="i[1-9]\d*">
-        <token type="Keyword"/>
-      </rule>
-    </state>
-    <state name="root">
-      <rule>
-        <include state="whitespace"/>
-      </rule>
-      <rule pattern="c?&#34;[^&#34;]*?&#34;">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="\^([-a-zA-Z$._][\w\-$.0-9]*)\s*">
-        <token type="NameLabel"/>
-      </rule>
-      <rule pattern="([\w\d_$.]+)\s*=">
-        <token type="NameLabel"/>
-      </rule>
-      <rule>
-        <include state="keyword"/>
-      </rule>
-      <rule pattern="-&gt;">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="@([\w_][\w\d_$.]*)">
-        <token type="NameFunction"/>
-      </rule>
-      <rule pattern="[%#][\w\d_$.]+">
-        <token type="NameVariable"/>
-      </rule>
-      <rule pattern="([1-9?][\d?]*\s*x)+">
-        <token type="LiteralNumber"/>
-      </rule>
-      <rule pattern="0[xX][a-fA-F0-9]+">
-        <token type="LiteralNumber"/>
-      </rule>
-      <rule pattern="-?\d+(?:[.]\d+)?(?:[eE][-+]?\d+(?:[.]\d+)?)?">
-        <token type="LiteralNumber"/>
-      </rule>
-      <rule pattern="[=&lt;&gt;{}\[\]()*.,!:]|x\b">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="[\w\d]+">
-        <token type="Text"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/modula-2.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/modula-2.xml	(revision 67)
+++ 	(revision )
@@ -1,245 +1,0 @@
-<lexer>
-  <config>
-    <name>Modula-2</name>
-    <alias>modula2</alias>
-    <alias>m2</alias>
-    <filename>*.def</filename>
-    <filename>*.mod</filename>
-    <mime_type>text/x-modula2</mime_type>
-    <dot_all>true</dot_all>
-  </config>
-  <rules>
-    <state name="dialecttags">
-      <rule pattern="\(\*!m2pim\*\)">
-        <token type="CommentSpecial"/>
-      </rule>
-      <rule pattern="\(\*!m2iso\*\)">
-        <token type="CommentSpecial"/>
-      </rule>
-      <rule pattern="\(\*!m2r10\*\)">
-        <token type="CommentSpecial"/>
-      </rule>
-      <rule pattern="\(\*!objm2\*\)">
-        <token type="CommentSpecial"/>
-      </rule>
-      <rule pattern="\(\*!m2iso\+aglet\*\)">
-        <token type="CommentSpecial"/>
-      </rule>
-      <rule pattern="\(\*!m2pim\+gm2\*\)">
-        <token type="CommentSpecial"/>
-      </rule>
-      <rule pattern="\(\*!m2iso\+p1\*\)">
-        <token type="CommentSpecial"/>
-      </rule>
-      <rule pattern="\(\*!m2iso\+xds\*\)">
-        <token type="CommentSpecial"/>
-      </rule>
-    </state>
-    <state name="unigraph_operators">
-      <rule pattern="[+-]">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="[*/]">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="\\">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="[=#&lt;&gt;]">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="\^">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="@">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="&amp;">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="~">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="`">
-        <token type="Operator"/>
-      </rule>
-    </state>
-    <state name="string_literals">
-      <rule pattern="&#39;(\\\\|\\&#39;|[^&#39;])*&#39;">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="&#34;(\\\\|\\&#34;|[^&#34;])*&#34;">
-        <token type="LiteralString"/>
-      </rule>
-    </state>
-    <state name="identifiers">
-      <rule pattern="([a-zA-Z_$][\w$]*)">
-        <token type="Name"/>
-      </rule>
-    </state>
-    <state name="pragmas">
-      <rule pattern="&lt;\*.*?\*&gt;">
-        <token type="CommentPreproc"/>
-      </rule>
-      <rule pattern="\(\*\$.*?\*\)">
-        <token type="CommentPreproc"/>
-      </rule>
-    </state>
-    <state name="comments">
-      <rule pattern="^//.*?\n">
-        <token type="CommentSingle"/>
-      </rule>
-      <rule pattern="\(\*([^$].*?)\*\)">
-        <token type="CommentMultiline"/>
-      </rule>
-      <rule pattern="/\*(.*?)\*/">
-        <token type="CommentMultiline"/>
-      </rule>
-    </state>
-    <state name="whitespace">
-      <rule pattern="\n+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="\s+">
-        <token type="Text"/>
-      </rule>
-    </state>
-    <state name="suffixed_number_literals">
-      <rule pattern="[0-7]+B">
-        <token type="LiteralNumberOct"/>
-      </rule>
-      <rule pattern="[0-7]+C">
-        <token type="LiteralNumberOct"/>
-      </rule>
-      <rule pattern="[0-9A-F]+H">
-        <token type="LiteralNumberHex"/>
-      </rule>
-    </state>
-    <state name="plain_number_literals">
-      <rule pattern="[0-9]+(\&#39;[0-9]+)*\.[0-9]+(\&#39;[0-9]+)*[eE][+-]?[0-9]+(\&#39;[0-9]+)*">
-        <token type="LiteralNumberFloat"/>
-      </rule>
-      <rule pattern="[0-9]+(\&#39;[0-9]+)*\.[0-9]+(\&#39;[0-9]+)*">
-        <token type="LiteralNumberFloat"/>
-      </rule>
-      <rule pattern="[0-9]+(\&#39;[0-9]+)*">
-        <token type="LiteralNumberInteger"/>
-      </rule>
-    </state>
-    <state name="digraph_punctuation">
-      <rule pattern="\.\.">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="&lt;&lt;">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="&gt;&gt;">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="-&gt;">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="\|#">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="##">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="\|\*">
-        <token type="Punctuation"/>
-      </rule>
-    </state>
-    <state name="unigraph_punctuation">
-      <rule pattern="[()\[\]{},.:;|]">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="!">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="\?">
-        <token type="Punctuation"/>
-      </rule>
-    </state>
-    <state name="root">
-      <rule>
-        <include state="whitespace"/>
-      </rule>
-      <rule>
-        <include state="dialecttags"/>
-      </rule>
-      <rule>
-        <include state="pragmas"/>
-      </rule>
-      <rule>
-        <include state="comments"/>
-      </rule>
-      <rule>
-        <include state="identifiers"/>
-      </rule>
-      <rule>
-        <include state="suffixed_number_literals"/>
-      </rule>
-      <rule>
-        <include state="prefixed_number_literals"/>
-      </rule>
-      <rule>
-        <include state="plain_number_literals"/>
-      </rule>
-      <rule>
-        <include state="string_literals"/>
-      </rule>
-      <rule>
-        <include state="digraph_punctuation"/>
-      </rule>
-      <rule>
-        <include state="digraph_operators"/>
-      </rule>
-      <rule>
-        <include state="unigraph_punctuation"/>
-      </rule>
-      <rule>
-        <include state="unigraph_operators"/>
-      </rule>
-    </state>
-    <state name="prefixed_number_literals">
-      <rule pattern="0b[01]+(\&#39;[01]+)*">
-        <token type="LiteralNumberBin"/>
-      </rule>
-      <rule pattern="0[ux][0-9A-F]+(\&#39;[0-9A-F]+)*">
-        <token type="LiteralNumberHex"/>
-      </rule>
-    </state>
-    <state name="digraph_operators">
-      <rule pattern="\*\.">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="\+&gt;">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="&lt;&gt;">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="&lt;=">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="&gt;=">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="==">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="::">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern=":=">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="\+\+">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="--">
-        <token type="Operator"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/monkeyc.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/monkeyc.xml	(revision 67)
+++ 	(revision )
@@ -1,153 +1,0 @@
-<lexer>
-  <config>
-    <name>MonkeyC</name>
-    <alias>monkeyc</alias>
-    <filename>*.mc</filename>
-    <mime_type>text/x-monkeyc</mime_type>
-  </config>
-  <rules>
-    <state name="class">
-      <rule pattern="([a-zA-Z_][\w_\.]*)(?:(\s+)(extends)(\s+)([a-zA-Z_][\w_\.]*))?">
-        <bygroups>
-          <token type="NameClass"/>
-          <token type="Text"/>
-          <token type="KeywordDeclaration"/>
-          <token type="Text"/>
-          <token type="NameClass"/>
-        </bygroups>
-      </rule>
-      <rule>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="function">
-      <rule pattern="initialize">
-        <token type="NameFunctionMagic"/>
-      </rule>
-      <rule pattern="[a-zA-Z_][\w_\.]*">
-        <token type="NameFunction"/>
-      </rule>
-      <rule>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="module">
-      <rule pattern="[a-zA-Z_][\w_\.]*">
-        <token type="NameNamespace"/>
-      </rule>
-      <rule>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="root">
-      <rule pattern="[^\S\n]+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="\n">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="//(\n|[\w\W]*?[^\\]\n)">
-        <token type="CommentSingle"/>
-      </rule>
-      <rule pattern="/(\\\n)?[*][\w\W]*?[*](\\\n)?/">
-        <token type="CommentMultiline"/>
-      </rule>
-      <rule pattern="/(\\\n)?[*][\w\W]*">
-        <token type="CommentMultiline"/>
-      </rule>
-      <rule pattern=":[a-zA-Z_][\w_\.]*">
-        <token type="LiteralStringSymbol"/>
-      </rule>
-      <rule pattern="[{}\[\]\(\),;:\.]">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="[&amp;~\|\^!+\-*\/%=?]">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="=&gt;|[+-]=|&amp;&amp;|\|\||&gt;&gt;|&lt;&lt;|[&lt;&gt;]=?|[!=]=">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="\b(and|or|instanceof|has|extends|new)">
-        <token type="OperatorWord"/>
-      </rule>
-      <rule pattern="(false|null|true|NaN)\b">
-        <token type="KeywordConstant"/>
-      </rule>
-      <rule pattern="(using)((?:\s|\\\\s)+)">
-        <bygroups>
-          <token type="KeywordNamespace"/>
-          <token type="Text"/>
-        </bygroups>
-        <push state="import"/>
-      </rule>
-      <rule pattern="(class)((?:\s|\\\\s)+)">
-        <bygroups>
-          <token type="KeywordDeclaration"/>
-          <token type="Text"/>
-        </bygroups>
-        <push state="class"/>
-      </rule>
-      <rule pattern="(function)((?:\s|\\\\s)+)">
-        <bygroups>
-          <token type="KeywordDeclaration"/>
-          <token type="Text"/>
-        </bygroups>
-        <push state="function"/>
-      </rule>
-      <rule pattern="(module)((?:\s|\\\\s)+)">
-        <bygroups>
-          <token type="KeywordDeclaration"/>
-          <token type="Text"/>
-        </bygroups>
-        <push state="module"/>
-      </rule>
-      <rule pattern="\b(if|else|for|switch|case|while|break|continue|default|do|try|catch|finally|return|throw|extends|function)\b">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="\b(const|enum|hidden|public|protected|private|static)\b">
-        <token type="KeywordType"/>
-      </rule>
-      <rule pattern="\bvar\b">
-        <token type="KeywordDeclaration"/>
-      </rule>
-      <rule pattern="\b(Activity(Monitor|Recording)?|Ant(Plus)?|Application|Attention|Background|Communications|Cryptography|FitContributor|Graphics|Gregorian|Lang|Math|Media|Persisted(Content|Locations)|Position|Properties|Sensor(History|Logging)?|Storage|StringUtil|System|Test|Time(r)?|Toybox|UserProfile|WatchUi|Rez|Drawables|Strings|Fonts|method)\b">
-        <token type="NameBuiltin"/>
-      </rule>
-      <rule pattern="\b(me|self|\$)\b">
-        <token type="NameBuiltinPseudo"/>
-      </rule>
-      <rule pattern="&#34;(\\\\|\\&#34;|[^&#34;])*&#34;">
-        <token type="LiteralStringDouble"/>
-      </rule>
-      <rule pattern="&#39;(\\\\|\\&#39;|[^&#39;&#39;])*&#39;">
-        <token type="LiteralStringSingle"/>
-      </rule>
-      <rule pattern="-?(0x[0-9a-fA-F]+l?)">
-        <token type="LiteralNumberHex"/>
-      </rule>
-      <rule pattern="-?([0-9]+(\.[0-9]+[df]?|[df]))\b">
-        <token type="LiteralNumberFloat"/>
-      </rule>
-      <rule pattern="-?([0-9]+l?)">
-        <token type="LiteralNumberInteger"/>
-      </rule>
-      <rule pattern="[a-zA-Z_]\w*">
-        <token type="Name"/>
-      </rule>
-    </state>
-    <state name="import">
-      <rule pattern="([a-zA-Z_][\w_\.]*)(?:(\s+)(as)(\s+)([a-zA-Z_][\w_]*))?">
-        <bygroups>
-          <token type="NameNamespace"/>
-          <token type="Text"/>
-          <token type="KeywordNamespace"/>
-          <token type="Text"/>
-          <token type="NameNamespace"/>
-        </bygroups>
-      </rule>
-      <rule>
-        <pop depth="1"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/morrowindscript.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/morrowindscript.xml	(revision 67)
+++ 	(revision )
@@ -1,90 +1,0 @@
-<lexer>
-  <config>
-    <name>MorrowindScript</name>
-    <alias>morrowind</alias>
-    <alias>mwscript</alias>
-  </config>
-  <rules>
-    <state name="root">
-      <rule pattern="\s+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern=";.*$">
-        <token type="Comment"/>
-      </rule>
-      <rule pattern="([&#34;&#39;])(?:(?=(\\?))\2.)*?\1">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="[0-9]+">
-        <token type="LiteralNumberInteger"/>
-      </rule>
-      <rule pattern="[0-9]+\.[0-9]*(?!\.)">
-        <token type="LiteralNumberFloat"/>
-      </rule>
-      <rule>
-        <include state="keywords"/>
-      </rule>
-      <rule>
-        <include state="types"/>
-      </rule>
-      <rule>
-        <include state="builtins"/>
-      </rule>
-      <rule>
-        <include state="punct"/>
-      </rule>
-      <rule>
-        <include state="operators"/>
-      </rule>
-      <rule pattern="\n">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="\S+\s+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="[a-zA-Z0-9_]\w*">
-        <token type="Name"/>
-      </rule>
-    </state>
-    <state name="keywords">
-      <rule pattern="(?i)(begin|if|else|elseif|endif|while|endwhile|return|to)\b">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="(?i)(end)\b">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="(?i)(end)\w+.*$">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="[\w+]-&gt;[\w+]">
-        <token type="Operator"/>
-      </rule>
-    </state>
-    <state name="builtins">
-      <rule pattern="(?i)(Activate|AddItem|AddSoulGem|AddSpell|AddToLevCreature|AddToLevItem|AddTopic|AIActivate|AIEscort|AIEscortCell|AIFollow|AiFollowCell|AITravel|AIWander|BecomeWerewolf|Cast|ChangeWeather|Choice|ClearForceJump|ClearForceMoveJump|ClearForceRun|ClearForceSneak|ClearInfoActor|Disable|DisableLevitation|DisablePlayerControls|DisablePlayerFighting|DisablePlayerJumping|DisablePlayerLooking|DisablePlayerMagic|DisablePlayerViewSwitch|DisableTeleporting|DisableVanityMode|DontSaveObject|Drop|Enable|EnableBirthMenu|EnableClassMenu|EnableInventoryMenu|EnableLevelUpMenu|EnableLevitation|EnableMagicMenu|EnableMapMenu|EnableNameMenu|EnablePlayerControls|EnablePlayerFighting|EnablePlayerJumping|EnablePlayerLooking|EnablePlayerMagic|EnablePlayerViewSwitch|EnableRaceMenu|EnableRest|EnableStatsMenu|EnableTeleporting|EnableVanityMode|Equip|ExplodeSpell|Face|FadeIn|FadeOut|FadeTo|Fall|ForceGreeting|ForceJump|ForceRun|ForceSneak|Flee|GotoJail|HurtCollidingActor|HurtStandingActor|Journal|Lock|LoopGroup|LowerRank|MenuTest|MessageBox|ModAcrobatics|ModAgility|ModAlarm|ModAlchemy|ModAlteration|ModArmorBonus|ModArmorer|ModAthletics|ModAttackBonus|ModAxe|ModBlock|ModBluntWeapon|ModCastPenalty|ModChameleon|ModConjuration|ModCurrentFatigue|ModCurrentHealth|ModCurrentMagicka|ModDefendBonus|ModDestruction|ModDisposition|ModEnchant|ModEndurance|ModFactionReaction|ModFatigue|ModFight|ModFlee|ModFlying|ModHandToHand|ModHealth|ModHeavyArmor|ModIllusion|ModIntelligence|ModInvisible|ModLightArmor|ModLongBlade|ModLuck|ModMagicka|ModMarksman|ModMediumArmor|ModMercantile|ModMysticism|ModParalysis|ModPCCrimeLevel|ModPCFacRep|ModPersonality|ModRegion|ModReputation|ModResistBlight|ModResistCorprus|ModResistDisease|ModResistFire|ModResistFrost|ModResistMagicka|ModResistNormalWeapons|ModResistParalysis|ModResistPoison|ModResistShock|ModRestoration|ModScale|ModSecurity|ModShortBlade|ModSilence|ModSneak|ModSpear|ModSpeechcraft|ModSpeed|ModStrength|ModSuperJump|ModSwimSpeed|ModUnarmored|ModWaterBreathing|ModWaterLevel|ModWaterWalking|ModWillpower|Move|MoveWorld|PayFine|PayFineThief|PCClearExpelled|PCExpell|PCForce1stPerson|PCForce3rdPerson|PCJoinFaction|PCLowerRank|PCRaiseRank|PlaceAtMe|PlaceAtPC|PlaceItem|PlaceItemCell|PlayBink|PlayGroup|PlayLoopSound3D|PlayLoopSound3DVP|PlaySound|PlaySound3D|PlaySound3DVP|PlaySoundVP|Position|PositionCell|RaiseRank|RemoveEffects|RemoveFromLevCreature|RemoveFromLevItem|RemoveItem|RemoveSoulgem|RemoveSpell|RemoveSpellEffects|ResetActors|Resurrect|Rotate|RotateWorld|Say|StartScript|[S|s]et|SetAcrobatics|SetAgility|SetAlarm|SetAlchemy|SetAlteration|SetAngle|SetArmorBonus|SetArmorer|SetAthletics|SetAtStart|SetAttackBonus|SetAxe|SetBlock|SetBluntWeapon|SetCastPenalty|SetChameleon|SetConjuration|SetDelete|SetDefendBonus|SetDestruction|SetDisposition|SetEnchant|SetEndurance|SetFactionReaction|SetFatigue|SetFight|SetFlee|SetFlying|SetHandToHand|SetHealth|SetHeavyArmor|SetIllusion|SetIntelligence|SetInvisible|SetJournalIndex|SetLightArmor|SetLevel|SetLongBlade|SetLuck|SetMagicka|SetMarksman|SetMediumArmor|SetMercantile|SetMysticism|SetParalysis|SetPCCCrimeLevel|SetPCFacRep|SetPersonality|SetPos|SetReputation|SetResistBlight|SetResistCorprus|SetResistDisease|SetResistFire|SetResistFrost|SetResistMagicka|SetResistNormalWeapons|SetResistParalysis|SetResistPoison|SetResistShock|SetRestoration|SetScale|SetSecurity|SetShortBlade|SetSilence|SetSneak|SetSpear|SetSpeechcraft|SetSpeed|SetStrength|SetSuperJump|SetSwimSpeed|SetUnarmored|SetWaterBreathing|SetWaterlevel|SetWaterWalking|SetWerewolfAcrobatics|SetWillpower|ShowMap|ShowRestMenu|SkipAnim|StartCombat|StopCombat|StopScript|StopSound|StreamMusic|TurnMoonRed|TurnMoonWhite|UndoWerewolf|Unlock|WakeUpPC|CenterOnCell|CenterOnExterior|FillMap|FixMe|ToggleAI|ToggleCollision|ToggleFogOfWar|ToggleGodMode|ToggleMenus|ToggleSky|ToggleWorld|ToggleVanityMode|CellChanged|GetAcrobatics|GetAgility|GetAIPackageDone|GetAlarm|GetAlchemy|GetAlteration|GetAngle|GetArmorBonus|GetArmorer|GetAthletics|GetAttackBonus|GetAttacked|GetArmorType,|GetAxe|GetBlightDisease|GetBlock|GetBluntWeapon|GetButtonPressed|GetCastPenalty|GetChameleon|GetCollidingActor|GetCollidingPC|GetCommonDisease|GetConjuration|GetCurrentAIPackage|GetCurrentTime|GetCurrentWeather|GetDeadCount|GetDefendBonus|GetDestruction|GetDetected|GetDisabled|GetDisposition|GetDistance|GetEffect|GetEnchant|GetEndurance|GetFatigue|GetFight|GetFlee|GetFlying|GetForceJump|GetForceRun|GetForceSneak|GetHandToHand|GetHealth|GetHealthGetRatio|GetHeavyArmor|GetIllusion|GetIntelligence|GetInterior|GetInvisible|GetItemCount|GetJournalIndex|GetLightArmor|GetLineOfSight|GetLOS|GetLevel|GetLocked|GetLongBlade|GetLuck|GetMagicka|GetMarksman|GetMasserPhase|GetSecundaPhase|GetMediumArmor|GetMercantile|GetMysticism|GetParalysis|GetPCCell|GetPCCrimeLevel|GetPCinJail|GetPCJumping|GetPCRank|GetPCRunning|GetPCSleep|GetPCSneaking|GetPCTraveling|GetPersonality|GetPlayerControlsDisabled|GetPlayerFightingDisabled|GetPlayerJumpingDisabled|GetPlayerLookingDisabled|GetPlayerMagicDisabled|GetPos|GetRace|GetReputation|GetResistBlight|GetResistCorprus|GetResistDisease|GetResistFire|GetResistFrost|GetResistMagicka|GetResistNormalWeapons|GetResistParalysis|GetResistPoison|GetResistShock|GetRestoration|GetScale|GetSecondsPassed|GetSecurity|GetShortBlade|GetSilence|GetSneak|GetSoundPlaying|GetSpear|GetSpeechcraft|GetSpeed|GetSpell|GetSpellEffects|GetSpellReadied|GetSquareRoot|GetStandingActor|GetStandingPC|GetStrength|GetSuperJump|GetSwimSpeed|GetTarget|GetUnarmored|GetVanityModeDisabled|GetWaterBreathing|GetWaterLevel|GetWaterWalking|GetWeaponDrawn|GetWeaponType|GetWerewolfKills|GetWillpower|GetWindSpeed|HasItemEquipped|HasSoulgem|HitAttemptOnMe|HitOnMe|IsWerewolf|MenuMode|OnActivate|OnDeath|OnKnockout|OnMurder|PCExpelled|PCGet3rdPerson|PCKnownWerewolf|Random|RepairedOnMe|SameFaction|SayDone|ScriptRunning|AllowWereWolfForceGreeting|Companion|MinimumProfit|NoFlee|NoHello|NoIdle|NoLore|OnPCAdd|OnPCDrop|OnPCEquip|OnPCHitMe|OnPCRepair|PCSkipEquip|OnPCSoulGemUse|StayOutside|CrimeGoldDiscount|CrimeGoldTurnIn|Day|DaysPassed|GameHour|Month|NPCVoiceDistance|PCRace|PCWerewolf|PCVampire|TimeScale|VampClan|Year)\b">
-        <token type="NameBuiltin"/>
-      </rule>
-      <rule pattern="(?i)(sEffectWaterBreathing|sEffectSwiftSwim|sEffectWaterWalking|sEffectShield|sEffectFireShield|sEffectLightningShield|sEffectFrostShield|sEffectBurden|sEffectFeather|sEffectJump|sEffectLevitate|sEffectSlowFall|sEffectLock|sEffectOpen|sEffectFireDamage|sEffectShockDamage|sEffectFrostDamage|sEffectDrainAttribute|sEffectDrainHealth|sEffectDrainSpellpoints|sEffectDrainFatigue|sEffectDrainSkill|sEffectDamageAttribute|sEffectDamageHealth|sEffectDamageMagicka|sEffectDamageFatigue|sEffectDamageSkill|sEffectPoison|sEffectWeaknessToFire|sEffectWeaknessToFrost|sEffectWeaknessToShock|sEffectWeaknessToMagicka|sEffectWeaknessToCommonDisease|sEffectWeaknessToBlightDisease|sEffectWeaknessToCorprusDisease|sEffectWeaknessToPoison|sEffectWeaknessToNormalWeapons|sEffectDisintegrateWeapon|sEffectDisintegrateArmor|sEffectInvisibility|sEffectChameleon|sEffectLight|sEffectSanctuary|sEffectNightEye|sEffectCharm|sEffectParalyze|sEffectSilence|sEffectBlind|sEffectSound|sEffectCalmHumanoid|sEffectCalmCreature|sEffectFrenzyHumanoid|sEffectFrenzyCreature|sEffectDemoralizeHumanoid|sEffectDemoralizeCreature|sEffectRallyHumanoid|sEffectRallyCreature|sEffectDispel|sEffectSoultrap|sEffectTelekinesis|sEffectMark|sEffectRecall|sEffectDivineIntervention|sEffectAlmsiviIntervention|sEffectDetectAnimal|sEffectDetectEnchantment|sEffectDetectKey|sEffectSpellAbsorption|sEffectReflect|sEffectCureCommonDisease|sEffectCureBlightDisease|sEffectCureCorprusDisease|sEffectCurePoison|sEffectCureParalyzation|sEffectRestoreAttribute|sEffectRestoreHealth|sEffectRestoreSpellPoints|sEffectRestoreFatigue|sEffectRestoreSkill|sEffectFortifyAttribute|sEffectFortifyHealth|sEffectFortifySpellpoints|sEffectFortifyFatigue|sEffectFortifySkill|sEffectFortifyMagickaMultiplier|sEffectAbsorbAttribute|sEffectAbsorbHealth|sEffectAbsorbSpellPoints|sEffectAbsorbFatigue|sEffectAbsorbSkill|sEffectResistFire|sEffectResistFrost|sEffectResistShock|sEffectResistMagicka|sEffectResistCommonDisease|sEffectResistBlightDisease|sEffectResistCorprusDisease|sEffectResistPoison|sEffectResistNormalWeapons|sEffectResistParalysis|sEffectRemoveCurse|sEffectTurnUndead|sEffectSummonScamp|sEffectSummonClannfear|sEffectSummonDaedroth|sEffectSummonDremora|sEffectSummonAncestralGhost|sEffectSummonSkeletalMinion|sEffectSummonLeastBonewalker|sEffectSummonGreaterBonewalker|sEffectSummonBonelord|sEffectSummonWingedTwilight|sEffectSummonHunger|sEffectSummonGoldensaint|sEffectSummonFlameAtronach|sEffectSummonFrostAtronach|sEffectSummonStormAtronach|sEffectFortifyAttackBonus|sEffectCommandCreatures|sEffectCommandHumanoids|sEffectBoundDagger|sEffectBoundLongsword|sEffectBoundMace|sEffectBoundBattleAxe|sEffectBoundSpear|sEffectBoundLongbow|sEffectExtraSpell|sEffectBoundCuirass|sEffectBoundHelm|sEffectBoundBoots|sEffectBoundShield|sEffectBoundGloves|sEffectCorpus|sEffectVampirism|sEffectSummonCenturionSphere|sEffectSunDamage|sEffectStuntedMagicka)">
-        <token type="NameBuiltin"/>
-      </rule>
-    </state>
-    <state name="types">
-      <rule pattern="(?i)(short|long|float)\b">
-        <token type="KeywordType"/>
-      </rule>
-    </state>
-    <state name="punct">
-      <rule pattern="[()]">
-        <token type="Punctuation"/>
-      </rule>
-    </state>
-    <state name="operators">
-      <rule pattern="[#=,./%+\-?]">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="(==|&lt;=|&lt;|&gt;=|&gt;|!=)">
-        <token type="Operator"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/mysql.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/mysql.xml	(revision 67)
+++ 	(revision )
@@ -1,121 +1,0 @@
-<lexer>
-  <config>
-    <name>MySQL</name>
-    <alias>mysql</alias>
-    <alias>mariadb</alias>
-    <filename>*.sql</filename>
-    <mime_type>text/x-mysql</mime_type>
-    <mime_type>text/x-mariadb</mime_type>
-    <case_insensitive>true</case_insensitive>
-    <not_multiline>true</not_multiline>
-  </config>
-  <rules>
-    <state name="string">
-      <rule pattern="[^&#39;]+">
-        <token type="LiteralStringSingle"/>
-      </rule>
-      <rule pattern="&#39;&#39;">
-        <token type="LiteralStringSingle"/>
-      </rule>
-      <rule pattern="&#39;">
-        <token type="LiteralStringSingle"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="double-string">
-      <rule pattern="[^&#34;]+">
-        <token type="LiteralStringDouble"/>
-      </rule>
-      <rule pattern="&#34;&#34;">
-        <token type="LiteralStringDouble"/>
-      </rule>
-      <rule pattern="&#34;">
-        <token type="LiteralStringDouble"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="root">
-      <rule pattern="\s+">
-        <token type="TextWhitespace"/>
-      </rule>
-      <rule pattern="(#|--\s+).*\n?">
-        <token type="CommentSingle"/>
-      </rule>
-      <rule pattern="/\*">
-        <token type="CommentMultiline"/>
-        <push state="multiline-comments"/>
-      </rule>
-      <rule pattern="[0-9]+">
-        <token type="LiteralNumberInteger"/>
-      </rule>
-      <rule pattern="[0-9]*\.[0-9]+(e[+-][0-9]+)">
-        <token type="LiteralNumberFloat"/>
-      </rule>
-      <rule pattern="((?:_[a-z0-9]+)?)(&#39;)">
-        <bygroups>
-          <token type="LiteralStringAffix"/>
-          <token type="LiteralStringSingle"/>
-        </bygroups>
-        <push state="string"/>
-      </rule>
-      <rule pattern="((?:_[a-z0-9]+)?)(&#34;)">
-        <bygroups>
-          <token type="LiteralStringAffix"/>
-          <token type="LiteralStringDouble"/>
-        </bygroups>
-        <push state="double-string"/>
-      </rule>
-      <rule pattern="[+*/&lt;&gt;=~!@#%^&amp;|`?-]">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="\b(tinyint|smallint|mediumint|int|integer|bigint|date|datetime|time|bit|bool|tinytext|mediumtext|longtext|text|tinyblob|mediumblob|longblob|blob|float|double|double\s+precision|real|numeric|dec|decimal|timestamp|year|char|varchar|varbinary|varcharacter|enum|set)(\b\s*)(\()?">
-        <bygroups>
-          <token type="KeywordType"/>
-          <token type="TextWhitespace"/>
-          <token type="Punctuation"/>
-        </bygroups>
-      </rule>
-      <rule pattern="\b(add|all|alter|analyze|and|as|asc|asensitive|before|between|bigint|binary|blob|both|by|call|cascade|case|change|char|character|check|collate|column|condition|constraint|continue|convert|create|cross|current_date|current_time|current_timestamp|current_user|cursor|database|databases|day_hour|day_microsecond|day_minute|day_second|dec|decimal|declare|default|delayed|delete|desc|describe|deterministic|distinct|distinctrow|div|double|drop|dual|each|else|elseif|enclosed|escaped|exists|exit|explain|fetch|flush|float|float4|float8|for|force|foreign|from|fulltext|grant|group|having|high_priority|hour_microsecond|hour_minute|hour_second|identified|if|ignore|in|index|infile|inner|inout|insensitive|insert|int|int1|int2|int3|int4|int8|integer|interval|into|is|iterate|join|key|keys|kill|leading|leave|left|like|limit|lines|load|localtime|localtimestamp|lock|long|loop|low_priority|match|minute_microsecond|minute_second|mod|modifies|natural|no_write_to_binlog|not|numeric|on|optimize|option|optionally|or|order|out|outer|outfile|precision|primary|privileges|procedure|purge|raid0|read|reads|real|references|regexp|release|rename|repeat|replace|require|restrict|return|revoke|right|rlike|schema|schemas|second_microsecond|select|sensitive|separator|set|show|smallint|soname|spatial|specific|sql|sql_big_result|sql_calc_found_rows|sql_small_result|sqlexception|sqlstate|sqlwarning|ssl|starting|straight_join|table|terminated|then|to|trailing|trigger|undo|union|unique|unlock|unsigned|update|usage|use|user|using|utc_date|utc_time|utc_timestamp|values|varying|when|where|while|with|write|x509|xor|year_month|zerofill)\b">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="\b(auto_increment|engine|charset|tables)\b">
-        <token type="KeywordPseudo"/>
-      </rule>
-      <rule pattern="(true|false|null)">
-        <token type="NameConstant"/>
-      </rule>
-      <rule pattern="([a-z_]\w*)(\s*)(\()">
-        <bygroups>
-          <token type="NameFunction"/>
-          <token type="TextWhitespace"/>
-          <token type="Punctuation"/>
-        </bygroups>
-      </rule>
-      <rule pattern="[a-z_]\w*">
-        <token type="Name"/>
-      </rule>
-      <rule pattern="@[a-z0-9]*[._]*[a-z0-9]*">
-        <token type="NameVariable"/>
-      </rule>
-      <rule pattern="[;:()\[\],.]">
-        <token type="Punctuation"/>
-      </rule>
-    </state>
-    <state name="multiline-comments">
-      <rule pattern="/\*">
-        <token type="CommentMultiline"/>
-        <push state="multiline-comments"/>
-      </rule>
-      <rule pattern="\*/">
-        <token type="CommentMultiline"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="[^/*]+">
-        <token type="CommentMultiline"/>
-      </rule>
-      <rule pattern="[/*]">
-        <token type="CommentMultiline"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/nasm.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/nasm.xml	(revision 67)
+++ 	(revision )
@@ -1,124 +1,0 @@
-<lexer>
-  <config>
-    <name>NASM</name>
-    <alias>nasm</alias>
-    <filename>*.asm</filename>
-    <filename>*.ASM</filename>
-    <mime_type>text/x-nasm</mime_type>
-    <case_insensitive>true</case_insensitive>
-  </config>
-  <rules>
-    <state name="punctuation">
-      <rule pattern="[,():\[\]]+">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="[&amp;|^&lt;&gt;+*/%~-]+">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="[$]+">
-        <token type="KeywordConstant"/>
-      </rule>
-      <rule pattern="seg|wrt|strict">
-        <token type="OperatorWord"/>
-      </rule>
-      <rule pattern="byte|[dq]?word">
-        <token type="KeywordType"/>
-      </rule>
-    </state>
-    <state name="root">
-      <rule pattern="^\s*%">
-        <token type="CommentPreproc"/>
-        <push state="preproc"/>
-      </rule>
-      <rule>
-        <include state="whitespace"/>
-      </rule>
-      <rule pattern="[a-z$._?][\w$.?#@~]*:">
-        <token type="NameLabel"/>
-      </rule>
-      <rule pattern="([a-z$._?][\w$.?#@~]*)(\s+)(equ)">
-        <bygroups>
-          <token type="NameConstant"/>
-          <token type="KeywordDeclaration"/>
-          <token type="KeywordDeclaration"/>
-        </bygroups>
-        <push state="instruction-args"/>
-      </rule>
-      <rule pattern="BITS|USE16|USE32|SECTION|SEGMENT|ABSOLUTE|EXTERN|GLOBAL|ORG|ALIGN|STRUC|ENDSTRUC|COMMON|CPU|GROUP|UPPERCASE|IMPORT|EXPORT|LIBRARY|MODULE">
-        <token type="Keyword"/>
-        <push state="instruction-args"/>
-      </rule>
-      <rule pattern="(?:res|d)[bwdqt]|times">
-        <token type="KeywordDeclaration"/>
-        <push state="instruction-args"/>
-      </rule>
-      <rule pattern="[a-z$._?][\w$.?#@~]*">
-        <token type="NameFunction"/>
-        <push state="instruction-args"/>
-      </rule>
-      <rule pattern="[\r\n]+">
-        <token type="Text"/>
-      </rule>
-    </state>
-    <state name="instruction-args">
-      <rule pattern="&#34;(\\&#34;|[^&#34;\n])*&#34;|&#39;(\\&#39;|[^&#39;\n])*&#39;|`(\\`|[^`\n])*`">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="(?:0x[0-9a-f]+|$0[0-9a-f]*|[0-9]+[0-9a-f]*h)">
-        <token type="LiteralNumberHex"/>
-      </rule>
-      <rule pattern="[0-7]+q">
-        <token type="LiteralNumberOct"/>
-      </rule>
-      <rule pattern="[01]+b">
-        <token type="LiteralNumberBin"/>
-      </rule>
-      <rule pattern="[0-9]+\.e?[0-9]+">
-        <token type="LiteralNumberFloat"/>
-      </rule>
-      <rule pattern="[0-9]+">
-        <token type="LiteralNumberInteger"/>
-      </rule>
-      <rule>
-        <include state="punctuation"/>
-      </rule>
-      <rule pattern="r[0-9][0-5]?[bwd]|[a-d][lh]|[er]?[a-d]x|[er]?[sb]p|[er]?[sd]i|[c-gs]s|st[0-7]|mm[0-7]|cr[0-4]|dr[0-367]|tr[3-7]">
-        <token type="NameBuiltin"/>
-      </rule>
-      <rule pattern="[a-z$._?][\w$.?#@~]*">
-        <token type="NameVariable"/>
-      </rule>
-      <rule pattern="[\r\n]+">
-        <token type="Text"/>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <include state="whitespace"/>
-      </rule>
-    </state>
-    <state name="preproc">
-      <rule pattern="[^;\n]+">
-        <token type="CommentPreproc"/>
-      </rule>
-      <rule pattern=";.*?\n">
-        <token type="CommentSingle"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="\n">
-        <token type="CommentPreproc"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="whitespace">
-      <rule pattern="\n">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="[ \t]+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern=";.*">
-        <token type="CommentSingle"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/newspeak.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/newspeak.xml	(revision 67)
+++ 	(revision )
@@ -1,121 +1,0 @@
-<lexer>
-  <config>
-    <name>Newspeak</name>
-    <alias>newspeak</alias>
-    <filename>*.ns2</filename>
-    <mime_type>text/x-newspeak</mime_type>
-  </config>
-  <rules>
-    <state name="root">
-      <rule pattern="\b(Newsqueak2)\b">
-        <token type="KeywordDeclaration"/>
-      </rule>
-      <rule pattern="&#39;[^&#39;]*&#39;">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="\b(class)(\s+)(\w+)(\s*)">
-        <bygroups>
-          <token type="KeywordDeclaration"/>
-          <token type="Text"/>
-          <token type="NameClass"/>
-          <token type="Text"/>
-        </bygroups>
-      </rule>
-      <rule pattern="\b(mixin|self|super|private|public|protected|nil|true|false)\b">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="(\w+\:)(\s*)([a-zA-Z_]\w+)">
-        <bygroups>
-          <token type="NameFunction"/>
-          <token type="Text"/>
-          <token type="NameVariable"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(\w+)(\s*)(=)">
-        <bygroups>
-          <token type="NameAttribute"/>
-          <token type="Text"/>
-          <token type="Operator"/>
-        </bygroups>
-      </rule>
-      <rule pattern="&lt;\w+&gt;">
-        <token type="CommentSpecial"/>
-      </rule>
-      <rule>
-        <include state="expressionstat"/>
-      </rule>
-      <rule>
-        <include state="whitespace"/>
-      </rule>
-    </state>
-    <state name="expressionstat">
-      <rule pattern="(\d+\.\d*|\.\d+|\d+[fF])[fF]?">
-        <token type="LiteralNumberFloat"/>
-      </rule>
-      <rule pattern="\d+">
-        <token type="LiteralNumberInteger"/>
-      </rule>
-      <rule pattern=":\w+">
-        <token type="NameVariable"/>
-      </rule>
-      <rule pattern="(\w+)(::)">
-        <bygroups>
-          <token type="NameVariable"/>
-          <token type="Operator"/>
-        </bygroups>
-      </rule>
-      <rule pattern="\w+:">
-        <token type="NameFunction"/>
-      </rule>
-      <rule pattern="\w+">
-        <token type="NameVariable"/>
-      </rule>
-      <rule pattern="\(|\)">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="\[|\]">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="\{|\}">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="(\^|\+|\/|~|\*|&lt;|&gt;|=|@|%|\||&amp;|\?|!|,|-|:)">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="\.|;">
-        <token type="Punctuation"/>
-      </rule>
-      <rule>
-        <include state="whitespace"/>
-      </rule>
-      <rule>
-        <include state="literals"/>
-      </rule>
-    </state>
-    <state name="literals">
-      <rule pattern="\$.">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="&#39;[^&#39;]*&#39;">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="#&#39;[^&#39;]*&#39;">
-        <token type="LiteralStringSymbol"/>
-      </rule>
-      <rule pattern="#\w+:?">
-        <token type="LiteralStringSymbol"/>
-      </rule>
-      <rule pattern="#(\+|\/|~|\*|&lt;|&gt;|=|@|%|\||&amp;|\?|!|,|-)+">
-        <token type="LiteralStringSymbol"/>
-      </rule>
-    </state>
-    <state name="whitespace">
-      <rule pattern="\s+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="&#34;[^&#34;]*&#34;">
-        <token type="Comment"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/nginx.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/nginx.xml	(revision 67)
+++ 	(revision )
@@ -1,98 +1,0 @@
-<lexer>
-  <config>
-    <name>Nginx configuration file</name>
-    <alias>nginx</alias>
-    <filename>nginx.conf</filename>
-    <mime_type>text/x-nginx-conf</mime_type>
-  </config>
-  <rules>
-    <state name="root">
-      <rule pattern="(include)(\s+)([^\s;]+)">
-        <bygroups>
-          <token type="Keyword"/>
-          <token type="Text"/>
-          <token type="Name"/>
-        </bygroups>
-      </rule>
-      <rule pattern="[^\s;#]+">
-        <token type="Keyword"/>
-        <push state="stmt"/>
-      </rule>
-      <rule>
-        <include state="base"/>
-      </rule>
-    </state>
-    <state name="block">
-      <rule pattern="\}">
-        <token type="Punctuation"/>
-        <pop depth="2"/>
-      </rule>
-      <rule pattern="[^\s;#]+">
-        <token type="KeywordNamespace"/>
-        <push state="stmt"/>
-      </rule>
-      <rule>
-        <include state="base"/>
-      </rule>
-    </state>
-    <state name="stmt">
-      <rule pattern="\{">
-        <token type="Punctuation"/>
-        <push state="block"/>
-      </rule>
-      <rule pattern=";">
-        <token type="Punctuation"/>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <include state="base"/>
-      </rule>
-    </state>
-    <state name="base">
-      <rule pattern="#.*\n">
-        <token type="CommentSingle"/>
-      </rule>
-      <rule pattern="on|off">
-        <token type="NameConstant"/>
-      </rule>
-      <rule pattern="\$[^\s;#()]+">
-        <token type="NameVariable"/>
-      </rule>
-      <rule pattern="([a-z0-9.-]+)(:)([0-9]+)">
-        <bygroups>
-          <token type="Name"/>
-          <token type="Punctuation"/>
-          <token type="LiteralNumberInteger"/>
-        </bygroups>
-      </rule>
-      <rule pattern="[a-z-]+/[a-z-+]+">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="[0-9]+[km]?\b">
-        <token type="LiteralNumberInteger"/>
-      </rule>
-      <rule pattern="(~)(\s*)([^\s{]+)">
-        <bygroups>
-          <token type="Punctuation"/>
-          <token type="Text"/>
-          <token type="LiteralStringRegex"/>
-        </bygroups>
-      </rule>
-      <rule pattern="[:=~]">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="[^\s;#{}$]+">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="/[^\s;#]*">
-        <token type="Name"/>
-      </rule>
-      <rule pattern="\s+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="[$;]">
-        <token type="Text"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/nim.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/nim.xml	(revision 67)
+++ 	(revision )
@@ -1,207 +1,0 @@
-<lexer>
-  <config>
-    <name>Nim</name>
-    <alias>nim</alias>
-    <alias>nimrod</alias>
-    <filename>*.nim</filename>
-    <filename>*.nimrod</filename>
-    <mime_type>text/x-nim</mime_type>
-    <case_insensitive>true</case_insensitive>
-  </config>
-  <rules>
-    <state name="dqs">
-      <rule pattern="\\([\\abcefnrtvl&#34;\&#39;]|\n|x[a-f0-9]{2}|[0-9]{1,3})">
-        <token type="LiteralStringEscape"/>
-      </rule>
-      <rule pattern="&#34;">
-        <token type="LiteralString"/>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <include state="strings"/>
-      </rule>
-    </state>
-    <state name="tdqs">
-      <rule pattern="&#34;&#34;&#34;(?!&#34;)">
-        <token type="LiteralString"/>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <include state="strings"/>
-      </rule>
-      <rule>
-        <include state="nl"/>
-      </rule>
-    </state>
-    <state name="funcname">
-      <rule pattern="((?![\d_])\w)(((?!_)\w)|(_(?!_)\w))*">
-        <token type="NameFunction"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="`.+`">
-        <token type="NameFunction"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="int-suffix">
-      <rule pattern="\&#39;i(32|64)">
-        <token type="LiteralNumberIntegerLong"/>
-      </rule>
-      <rule pattern="\&#39;i(8|16)">
-        <token type="LiteralNumberInteger"/>
-      </rule>
-      <rule>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="float-suffix">
-      <rule pattern="\&#39;f(32|64)">
-        <token type="LiteralNumberFloat"/>
-      </rule>
-      <rule>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="strings">
-      <rule pattern="(?&lt;!\$)\$(\d+|#|\w+)+">
-        <token type="LiteralStringInterpol"/>
-      </rule>
-      <rule pattern="[^\\\&#39;&#34;$\n]+">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="[\&#39;&#34;\\]">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="\$">
-        <token type="LiteralString"/>
-      </rule>
-    </state>
-    <state name="nl">
-      <rule pattern="\n">
-        <token type="LiteralString"/>
-      </rule>
-    </state>
-    <state name="chars">
-      <rule pattern="\\([\\abcefnrtvl&#34;\&#39;]|x[a-f0-9]{2}|[0-9]{1,3})">
-        <token type="LiteralStringEscape"/>
-      </rule>
-      <rule pattern="&#39;">
-        <token type="LiteralStringChar"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern=".">
-        <token type="LiteralStringChar"/>
-      </rule>
-    </state>
-    <state name="rdqs">
-      <rule pattern="&#34;(?!&#34;)">
-        <token type="LiteralString"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="&#34;&#34;">
-        <token type="LiteralStringEscape"/>
-      </rule>
-      <rule>
-        <include state="strings"/>
-      </rule>
-    </state>
-    <state name="float-number">
-      <rule pattern="\.(?!\.)[0-9_]*">
-        <token type="LiteralNumberFloat"/>
-      </rule>
-      <rule pattern="e[+-]?[0-9][0-9_]*">
-        <token type="LiteralNumberFloat"/>
-      </rule>
-      <rule>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="root">
-      <rule pattern="#\[[\s\S]*?\]#">
-        <token type="CommentMultiline"/>
-      </rule>
-      <rule pattern="##.*$">
-        <token type="LiteralStringDoc"/>
-      </rule>
-      <rule pattern="#.*$">
-        <token type="Comment"/>
-      </rule>
-      <rule pattern="[*=&gt;&lt;+\-/@$~&amp;%!?|\\\[\]]">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="\.\.|\.|,|\[\.|\.\]|\{\.|\.\}|\(\.|\.\)|\{|\}|\(|\)|:|\^|`|;">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="(?:[\w]+)&#34;">
-        <token type="LiteralString"/>
-        <push state="rdqs"/>
-      </rule>
-      <rule pattern="&#34;&#34;&#34;">
-        <token type="LiteralString"/>
-        <push state="tdqs"/>
-      </rule>
-      <rule pattern="&#34;">
-        <token type="LiteralString"/>
-        <push state="dqs"/>
-      </rule>
-      <rule pattern="&#39;">
-        <token type="LiteralStringChar"/>
-        <push state="chars"/>
-      </rule>
-      <rule pattern="(a_?n_?d_?|o_?r_?|n_?o_?t_?|x_?o_?r_?|s_?h_?l_?|s_?h_?r_?|d_?i_?v_?|m_?o_?d_?|i_?n_?|n_?o_?t_?i_?n_?|i_?s_?|i_?s_?n_?o_?t_?)\b">
-        <token type="OperatorWord"/>
-      </rule>
-      <rule pattern="(p_?r_?o_?c_?\s)(?![(\[\]])">
-        <token type="Keyword"/>
-        <push state="funcname"/>
-      </rule>
-      <rule pattern="(a_?d_?d_?r_?|a_?n_?d_?|a_?s_?|a_?s_?m_?|a_?t_?o_?m_?i_?c_?|b_?i_?n_?d_?|b_?l_?o_?c_?k_?|b_?r_?e_?a_?k_?|c_?a_?s_?e_?|c_?a_?s_?t_?|c_?o_?n_?c_?e_?p_?t_?|c_?o_?n_?s_?t_?|c_?o_?n_?t_?i_?n_?u_?e_?|c_?o_?n_?v_?e_?r_?t_?e_?r_?|d_?e_?f_?e_?r_?|d_?i_?s_?c_?a_?r_?d_?|d_?i_?s_?t_?i_?n_?c_?t_?|d_?i_?v_?|d_?o_?|e_?l_?i_?f_?|e_?l_?s_?e_?|e_?n_?d_?|e_?n_?u_?m_?|e_?x_?c_?e_?p_?t_?|e_?x_?p_?o_?r_?t_?|f_?i_?n_?a_?l_?l_?y_?|f_?o_?r_?|f_?u_?n_?c_?|i_?f_?|i_?n_?|y_?i_?e_?l_?d_?|i_?n_?t_?e_?r_?f_?a_?c_?e_?|i_?s_?|i_?s_?n_?o_?t_?|i_?t_?e_?r_?a_?t_?o_?r_?|l_?e_?t_?|m_?a_?c_?r_?o_?|m_?e_?t_?h_?o_?d_?|m_?i_?x_?i_?n_?|m_?o_?d_?|n_?o_?t_?|n_?o_?t_?i_?n_?|o_?b_?j_?e_?c_?t_?|o_?f_?|o_?r_?|o_?u_?t_?|p_?r_?o_?c_?|p_?t_?r_?|r_?a_?i_?s_?e_?|r_?e_?f_?|r_?e_?t_?u_?r_?n_?|s_?h_?a_?r_?e_?d_?|s_?h_?l_?|s_?h_?r_?|s_?t_?a_?t_?i_?c_?|t_?e_?m_?p_?l_?a_?t_?e_?|t_?r_?y_?|t_?u_?p_?l_?e_?|t_?y_?p_?e_?|w_?h_?e_?n_?|w_?h_?i_?l_?e_?|w_?i_?t_?h_?|w_?i_?t_?h_?o_?u_?t_?|x_?o_?r_?)\b">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="(f_?r_?o_?m_?|i_?m_?p_?o_?r_?t_?|i_?n_?c_?l_?u_?d_?e_?)\b">
-        <token type="KeywordNamespace"/>
-      </rule>
-      <rule pattern="(v_?a_?r)\b">
-        <token type="KeywordDeclaration"/>
-      </rule>
-      <rule pattern="(i_?n_?t_?|i_?n_?t_?8_?|i_?n_?t_?1_?6_?|i_?n_?t_?3_?2_?|i_?n_?t_?6_?4_?|f_?l_?o_?a_?t_?|f_?l_?o_?a_?t_?3_?2_?|f_?l_?o_?a_?t_?6_?4_?|b_?o_?o_?l_?|c_?h_?a_?r_?|r_?a_?n_?g_?e_?|a_?r_?r_?a_?y_?|s_?e_?q_?|s_?e_?t_?|s_?t_?r_?i_?n_?g_?)\b">
-        <token type="KeywordType"/>
-      </rule>
-      <rule pattern="(n_?i_?l_?|t_?r_?u_?e_?|f_?a_?l_?s_?e_?)\b">
-        <token type="KeywordPseudo"/>
-      </rule>
-      <rule pattern="\b_\b">
-        <token type="Name"/>
-      </rule>
-      <rule pattern="\b((?![_\d])\w)(((?!_)\w)|(_(?!_)\w))*">
-        <token type="Name"/>
-      </rule>
-      <rule pattern="[0-9][0-9_]*(?=([e.]|\&#39;f(32|64)))">
-        <token type="LiteralNumberFloat"/>
-        <push state="float-suffix" state="float-number"/>
-      </rule>
-      <rule pattern="0x[a-f0-9][a-f0-9_]*">
-        <token type="LiteralNumberHex"/>
-        <push state="int-suffix"/>
-      </rule>
-      <rule pattern="0b[01][01_]*">
-        <token type="LiteralNumberBin"/>
-        <push state="int-suffix"/>
-      </rule>
-      <rule pattern="0o[0-7][0-7_]*">
-        <token type="LiteralNumberOct"/>
-        <push state="int-suffix"/>
-      </rule>
-      <rule pattern="[0-9][0-9_]*">
-        <token type="LiteralNumberInteger"/>
-        <push state="int-suffix"/>
-      </rule>
-      <rule pattern="\s+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern=".+$">
-        <token type="Error"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/nix.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/nix.xml	(revision 67)
+++ 	(revision )
@@ -1,258 +1,0 @@
-<lexer>
-  <config>
-    <name>Nix</name>
-    <alias>nixos</alias>
-    <alias>nix</alias>
-    <filename>*.nix</filename>
-    <mime_type>text/x-nix</mime_type>
-  </config>
-  <rules>
-    <state name="space">
-      <rule pattern="[ \t\r\n]+">
-        <token type="Text"/>
-      </rule>
-    </state>
-    <state name="paren">
-      <rule pattern="\)">
-        <token type="Punctuation"/>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <include state="root"/>
-      </rule>
-    </state>
-    <state name="scope">
-      <rule pattern="}:">
-        <token type="Punctuation"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="}">
-        <token type="Punctuation"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="in(?![a-zA-Z0-9_&#39;-])">
-        <token type="Keyword"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="\${">
-        <token type="LiteralStringInterpol"/>
-        <push state="interpol"/>
-      </rule>
-      <rule>
-        <include state="root"/>
-      </rule>
-      <rule pattern="(=|\?|,)">
-        <token type="Operator"/>
-      </rule>
-    </state>
-    <state name="builtins">
-      <rule pattern="throw(?![a-zA-Z0-9_&#39;-])">
-        <token type="NameException"/>
-      </rule>
-      <rule pattern="(dependencyClosure|fetchTarball|filterSource|currentTime|removeAttrs|baseNameOf|derivation|toString|builtins|getAttr|hasAttr|getEnv|isNull|abort|dirOf|toXML|map)(?![a-zA-Z0-9_&#39;-])">
-        <token type="NameBuiltin"/>
-      </rule>
-    </state>
-    <state name="literals">
-      <rule pattern="(false|true|null)(?![a-zA-Z0-9_&#39;-])">
-        <token type="NameConstant"/>
-      </rule>
-      <rule>
-        <include state="uri"/>
-      </rule>
-      <rule>
-        <include state="path"/>
-      </rule>
-      <rule>
-        <include state="int"/>
-      </rule>
-      <rule>
-        <include state="float"/>
-      </rule>
-    </state>
-    <state name="keywords">
-      <rule pattern="import(?![a-zA-Z0-9_&#39;-])">
-        <token type="KeywordNamespace"/>
-      </rule>
-      <rule pattern="(inherit|assert|with|then|else|rec|if)(?![a-zA-Z0-9_&#39;-])">
-        <token type="Keyword"/>
-      </rule>
-    </state>
-    <state name="list">
-      <rule pattern="\]">
-        <token type="Punctuation"/>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <include state="root"/>
-      </rule>
-    </state>
-    <state name="operators">
-      <rule pattern=" [/-] ">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="(\.)(\${)">
-        <bygroups>
-          <token type="Operator"/>
-          <token type="LiteralStringInterpol"/>
-        </bygroups>
-        <push state="interpol"/>
-      </rule>
-      <rule pattern="(\?)(\s*)(\${)">
-        <bygroups>
-          <token type="Operator"/>
-          <token type="Text"/>
-          <token type="LiteralStringInterpol"/>
-        </bygroups>
-        <push state="interpol"/>
-      </rule>
-      <rule pattern="(&amp;&amp;|&gt;=|&lt;=|\+\+|-&gt;|!=|\|\||//|==|@|!|\+|\?|&lt;|\.|&gt;|\*)">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="[;:]">
-        <token type="Punctuation"/>
-      </rule>
-    </state>
-    <state name="comment">
-      <rule pattern="\*/">
-        <token type="CommentMultiline"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern=".|\n">
-        <token type="CommentMultiline"/>
-      </rule>
-    </state>
-    <state name="interpol">
-      <rule pattern="}">
-        <token type="LiteralStringInterpol"/>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <include state="root"/>
-      </rule>
-    </state>
-    <state name="path">
-      <rule pattern="[a-zA-Z0-9._+-]*(/[a-zA-Z0-9._+-]+)+">
-        <token type="LiteralStringRegex"/>
-      </rule>
-      <rule pattern="~(/[a-zA-Z0-9._+-]+)+/?">
-        <token type="LiteralStringRegex"/>
-      </rule>
-      <rule pattern="&lt;[a-zA-Z0-9._+-]+(/[a-zA-Z0-9._+-]+)*&gt;">
-        <token type="LiteralStringRegex"/>
-      </rule>
-    </state>
-    <state name="float">
-      <rule pattern="-?(([1-9][0-9]*\.[0-9]*)|(0?\.[0-9]+))([Ee][+-]?[0-9]+)?(?![a-zA-Z0-9_&#39;-])">
-        <token type="LiteralNumberFloat"/>
-      </rule>
-    </state>
-    <state name="root">
-      <rule>
-        <include state="keywords"/>
-      </rule>
-      <rule>
-        <include state="builtins"/>
-      </rule>
-      <rule>
-        <include state="literals"/>
-      </rule>
-      <rule>
-        <include state="operators"/>
-      </rule>
-      <rule pattern="#.*$">
-        <token type="CommentSingle"/>
-      </rule>
-      <rule pattern="/\*">
-        <token type="CommentMultiline"/>
-        <push state="comment"/>
-      </rule>
-      <rule pattern="\(">
-        <token type="Punctuation"/>
-        <push state="paren"/>
-      </rule>
-      <rule pattern="\[">
-        <token type="Punctuation"/>
-        <push state="list"/>
-      </rule>
-      <rule pattern="&#34;">
-        <token type="LiteralStringDouble"/>
-        <push state="qstring"/>
-      </rule>
-      <rule pattern="&#39;&#39;">
-        <token type="LiteralStringSingle"/>
-        <push state="istring"/>
-      </rule>
-      <rule pattern="{">
-        <token type="Punctuation"/>
-        <push state="scope"/>
-      </rule>
-      <rule pattern="let(?![a-zA-Z0-9_&#39;-])">
-        <token type="Keyword"/>
-        <push state="scope"/>
-      </rule>
-      <rule>
-        <include state="id"/>
-      </rule>
-      <rule>
-        <include state="space"/>
-      </rule>
-    </state>
-    <state name="int">
-      <rule pattern="-?[0-9]+(?![a-zA-Z0-9_&#39;-])">
-        <token type="LiteralNumberInteger"/>
-      </rule>
-    </state>
-    <state name="uri">
-      <rule pattern="[a-zA-Z][a-zA-Z0-9+.-]*:[a-zA-Z0-9%/?:@&amp;=+$,_.!~*&#39;-]+">
-        <token type="LiteralStringDoc"/>
-      </rule>
-    </state>
-    <state name="qstring">
-      <rule pattern="&#34;">
-        <token type="LiteralStringDouble"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="\${">
-        <token type="LiteralStringInterpol"/>
-        <push state="interpol"/>
-      </rule>
-      <rule pattern="\\.">
-        <token type="LiteralStringEscape"/>
-      </rule>
-      <rule pattern=".|\n">
-        <token type="LiteralStringDouble"/>
-      </rule>
-    </state>
-    <state name="istring">
-      <rule pattern="&#39;&#39;\$">
-        <token type="LiteralStringEscape"/>
-      </rule>
-      <rule pattern="&#39;&#39;&#39;">
-        <token type="LiteralStringEscape"/>
-      </rule>
-      <rule pattern="&#39;&#39;\\.">
-        <token type="LiteralStringEscape"/>
-      </rule>
-      <rule pattern="&#39;&#39;">
-        <token type="LiteralStringSingle"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="\${">
-        <token type="LiteralStringInterpol"/>
-        <push state="interpol"/>
-      </rule>
-      <rule pattern="\$.">
-        <token type="LiteralStringSingle"/>
-      </rule>
-      <rule pattern=".|\n">
-        <token type="LiteralStringSingle"/>
-      </rule>
-    </state>
-    <state name="id">
-      <rule pattern="[a-zA-Z_][a-zA-Z0-9_&#39;-]*">
-        <token type="Name"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/objective-c.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/objective-c.xml	(revision 67)
+++ 	(revision )
@@ -1,510 +1,0 @@
-<lexer>
-  <config>
-    <name>Objective-C</name>
-    <alias>objective-c</alias>
-    <alias>objectivec</alias>
-    <alias>obj-c</alias>
-    <alias>objc</alias>
-    <filename>*.m</filename>
-    <filename>*.h</filename>
-    <mime_type>text/x-objective-c</mime_type>
-  </config>
-  <rules>
-    <state name="macro">
-      <rule pattern="(include)(\s*(?:/[*].*?[*]/\s*)?)([^\n]+)">
-        <bygroups>
-          <token type="CommentPreproc"/>
-          <token type="Text"/>
-          <token type="CommentPreprocFile"/>
-        </bygroups>
-      </rule>
-      <rule pattern="[^/\n]+">
-        <token type="CommentPreproc"/>
-      </rule>
-      <rule pattern="/[*](.|\n)*?[*]/">
-        <token type="CommentMultiline"/>
-      </rule>
-      <rule pattern="//.*?\n">
-        <token type="CommentSingle"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="/">
-        <token type="CommentPreproc"/>
-      </rule>
-      <rule pattern="(?&lt;=\\)\n">
-        <token type="CommentPreproc"/>
-      </rule>
-      <rule pattern="\n">
-        <token type="CommentPreproc"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="literal_number">
-      <rule pattern="\(">
-        <token type="Punctuation"/>
-        <push state="literal_number_inner"/>
-      </rule>
-      <rule pattern="\)">
-        <token type="Literal"/>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <include state="statement"/>
-      </rule>
-    </state>
-    <state name="if0">
-      <rule pattern="^\s*#if.*?(?&lt;!\\)\n">
-        <token type="CommentPreproc"/>
-        <push/>
-      </rule>
-      <rule pattern="^\s*#el(?:se|if).*\n">
-        <token type="CommentPreproc"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="^\s*#endif.*?(?&lt;!\\)\n">
-        <token type="CommentPreproc"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern=".*?\n">
-        <token type="Comment"/>
-      </rule>
-    </state>
-    <state name="root">
-      <rule pattern="^([-+])(\s*)(\(.*?\))?(\s*)([a-zA-Z$_][\w$]*:?)">
-        <bygroups>
-          <token type="Punctuation"/>
-          <token type="Text"/>
-          <usingself state="root"/>
-          <token type="Text"/>
-          <token type="NameFunction"/>
-        </bygroups>
-        <push state="method"/>
-      </rule>
-      <rule>
-        <include state="whitespace"/>
-      </rule>
-      <rule pattern="((?:[\w*\s])+?(?:\s|[*]))([a-zA-Z_]\w*)(\s*\([^;]*?\))([^;{]*)(\{)">
-        <bygroups>
-          <usingself state="root"/>
-          <token type="NameFunction"/>
-          <usingself state="root"/>
-          <usingself state="root"/>
-          <token type="Punctuation"/>
-        </bygroups>
-        <push state="function"/>
-      </rule>
-      <rule pattern="((?:[\w*\s])+?(?:\s|[*]))([a-zA-Z_]\w*)(\s*\([^;]*?\))([^;]*)(;)">
-        <bygroups>
-          <usingself state="root"/>
-          <token type="NameFunction"/>
-          <usingself state="root"/>
-          <usingself state="root"/>
-          <token type="Punctuation"/>
-        </bygroups>
-      </rule>
-      <rule>
-        <push state="statement"/>
-      </rule>
-    </state>
-    <state name="statements">
-      <rule pattern="@&#34;">
-        <token type="LiteralString"/>
-        <push state="string"/>
-      </rule>
-      <rule pattern="@(YES|NO)">
-        <token type="LiteralNumber"/>
-      </rule>
-      <rule pattern="@&#39;(\\.|\\[0-7]{1,3}|\\x[a-fA-F0-9]{1,2}|[^\\\&#39;\n])&#39;">
-        <token type="LiteralStringChar"/>
-      </rule>
-      <rule pattern="@(\d+\.\d*|\.\d+|\d+)[eE][+-]?\d+[lL]?">
-        <token type="LiteralNumberFloat"/>
-      </rule>
-      <rule pattern="@(\d+\.\d*|\.\d+|\d+[fF])[fF]?">
-        <token type="LiteralNumberFloat"/>
-      </rule>
-      <rule pattern="@0x[0-9a-fA-F]+[Ll]?">
-        <token type="LiteralNumberHex"/>
-      </rule>
-      <rule pattern="@0[0-7]+[Ll]?">
-        <token type="LiteralNumberOct"/>
-      </rule>
-      <rule pattern="@\d+[Ll]?">
-        <token type="LiteralNumberInteger"/>
-      </rule>
-      <rule pattern="@\(">
-        <token type="Literal"/>
-        <push state="literal_number"/>
-      </rule>
-      <rule pattern="@\[">
-        <token type="Literal"/>
-        <push state="literal_array"/>
-      </rule>
-      <rule pattern="@\{">
-        <token type="Literal"/>
-        <push state="literal_dictionary"/>
-      </rule>
-      <rule pattern="(unsafe_unretained|__bridge_transfer|@autoreleasepool|__autoreleasing|@synchronized|@synthesize|@protected|@selector|@required|@optional|readwrite|@property|nonatomic|@finally|__bridge|@dynamic|__strong|readonly|@private|__block|@public|@encode|release|assign|retain|atomic|@throw|@catch|__weak|setter|getter|typeof|strong|inout|class|@try|@end|weak|copy|out|in)\b">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="(instancetype|IBOutlet|IBAction|unichar|Class|BOOL|IMP|SEL|id)\b">
-        <token type="KeywordType"/>
-      </rule>
-      <rule pattern="@(true|false|YES|NO)\n">
-        <token type="NameBuiltin"/>
-      </rule>
-      <rule pattern="(YES|NO|nil|self|super)\b">
-        <token type="NameBuiltin"/>
-      </rule>
-      <rule pattern="(Boolean|UInt8|SInt8|UInt16|SInt16|UInt32|SInt32)\b">
-        <token type="KeywordType"/>
-      </rule>
-      <rule pattern="(TRUE|FALSE)\b">
-        <token type="NameBuiltin"/>
-      </rule>
-      <rule pattern="(@interface|@implementation)(\s+)">
-        <bygroups>
-          <token type="Keyword"/>
-          <token type="Text"/>
-        </bygroups>
-        <push state="#pop" state="oc_classname"/>
-      </rule>
-      <rule pattern="(@class|@protocol)(\s+)">
-        <bygroups>
-          <token type="Keyword"/>
-          <token type="Text"/>
-        </bygroups>
-        <push state="#pop" state="oc_forward_classname"/>
-      </rule>
-      <rule pattern="@">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="(L?)(&#34;)">
-        <bygroups>
-          <token type="LiteralStringAffix"/>
-          <token type="LiteralString"/>
-        </bygroups>
-        <push state="string"/>
-      </rule>
-      <rule pattern="(L?)(&#39;)(\\.|\\[0-7]{1,3}|\\x[a-fA-F0-9]{1,2}|[^\\\&#39;\n])(&#39;)">
-        <bygroups>
-          <token type="LiteralStringAffix"/>
-          <token type="LiteralStringChar"/>
-          <token type="LiteralStringChar"/>
-          <token type="LiteralStringChar"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(\d+\.\d*|\.\d+|\d+)[eE][+-]?\d+[LlUu]*">
-        <token type="LiteralNumberFloat"/>
-      </rule>
-      <rule pattern="(\d+\.\d*|\.\d+|\d+[fF])[fF]?">
-        <token type="LiteralNumberFloat"/>
-      </rule>
-      <rule pattern="0x[0-9a-fA-F]+[LlUu]*">
-        <token type="LiteralNumberHex"/>
-      </rule>
-      <rule pattern="0[0-7]+[LlUu]*">
-        <token type="LiteralNumberOct"/>
-      </rule>
-      <rule pattern="\d+[LlUu]*">
-        <token type="LiteralNumberInteger"/>
-      </rule>
-      <rule pattern="\*/">
-        <token type="Error"/>
-      </rule>
-      <rule pattern="[~!%^&amp;*+=|?:&lt;&gt;/-]">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="[()\[\],.]">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="(restricted|volatile|continue|register|default|typedef|struct|extern|switch|sizeof|static|return|union|while|const|break|goto|enum|else|case|auto|for|asm|if|do)\b">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="(bool|int|long|float|short|double|char|unsigned|signed|void)\b">
-        <token type="KeywordType"/>
-      </rule>
-      <rule pattern="(typename|__inline|restrict|_inline|thread|inline|naked)\b">
-        <token type="KeywordReserved"/>
-      </rule>
-      <rule pattern="(__m(128i|128d|128|64))\b">
-        <token type="KeywordReserved"/>
-      </rule>
-      <rule pattern="__(forceinline|identifier|unaligned|declspec|fastcall|finally|stdcall|wchar_t|assume|except|int32|cdecl|int16|leave|based|raise|int64|noop|int8|w64|try|asm)\b">
-        <token type="KeywordReserved"/>
-      </rule>
-      <rule pattern="(true|false|NULL)\b">
-        <token type="NameBuiltin"/>
-      </rule>
-      <rule pattern="([a-zA-Z_]\w*)(\s*)(:)(?!:)">
-        <bygroups>
-          <token type="NameLabel"/>
-          <token type="Text"/>
-          <token type="Punctuation"/>
-        </bygroups>
-      </rule>
-      <rule pattern="[a-zA-Z_]\w*">
-        <token type="Name"/>
-      </rule>
-    </state>
-    <state name="method">
-      <rule>
-        <include state="whitespace"/>
-      </rule>
-      <rule pattern=",">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="\.\.\.">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="(\(.*?\))(\s*)([a-zA-Z$_][\w$]*)">
-        <bygroups>
-          <usingself state="root"/>
-          <token type="Text"/>
-          <token type="NameVariable"/>
-        </bygroups>
-      </rule>
-      <rule pattern="[a-zA-Z$_][\w$]*:">
-        <token type="NameFunction"/>
-      </rule>
-      <rule pattern=";">
-        <token type="Punctuation"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="\{">
-        <token type="Punctuation"/>
-        <push state="function"/>
-      </rule>
-      <rule>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="literal_array">
-      <rule pattern="\[">
-        <token type="Punctuation"/>
-        <push state="literal_array_inner"/>
-      </rule>
-      <rule pattern="\]">
-        <token type="Literal"/>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <include state="statement"/>
-      </rule>
-    </state>
-    <state name="oc_classname">
-      <rule pattern="([a-zA-Z$_][\w$]*)(\s*:\s*)([a-zA-Z$_][\w$]*)?(\s*)(\{)">
-        <bygroups>
-          <token type="NameClass"/>
-          <token type="Text"/>
-          <token type="NameClass"/>
-          <token type="Text"/>
-          <token type="Punctuation"/>
-        </bygroups>
-        <push state="#pop" state="oc_ivars"/>
-      </rule>
-      <rule pattern="([a-zA-Z$_][\w$]*)(\s*:\s*)([a-zA-Z$_][\w$]*)?">
-        <bygroups>
-          <token type="NameClass"/>
-          <token type="Text"/>
-          <token type="NameClass"/>
-        </bygroups>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="([a-zA-Z$_][\w$]*)(\s*)(\([a-zA-Z$_][\w$]*\))(\s*)(\{)">
-        <bygroups>
-          <token type="NameClass"/>
-          <token type="Text"/>
-          <token type="NameLabel"/>
-          <token type="Text"/>
-          <token type="Punctuation"/>
-        </bygroups>
-        <push state="#pop" state="oc_ivars"/>
-      </rule>
-      <rule pattern="([a-zA-Z$_][\w$]*)(\s*)(\([a-zA-Z$_][\w$]*\))">
-        <bygroups>
-          <token type="NameClass"/>
-          <token type="Text"/>
-          <token type="NameLabel"/>
-        </bygroups>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="([a-zA-Z$_][\w$]*)(\s*)(\{)">
-        <bygroups>
-          <token type="NameClass"/>
-          <token type="Text"/>
-          <token type="Punctuation"/>
-        </bygroups>
-        <push state="#pop" state="oc_ivars"/>
-      </rule>
-      <rule pattern="([a-zA-Z$_][\w$]*)">
-        <token type="NameClass"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="function">
-      <rule>
-        <include state="whitespace"/>
-      </rule>
-      <rule>
-        <include state="statements"/>
-      </rule>
-      <rule pattern=";">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="\{">
-        <token type="Punctuation"/>
-        <push/>
-      </rule>
-      <rule pattern="\}">
-        <token type="Punctuation"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="whitespace">
-      <rule pattern="^#if\s+0">
-        <token type="CommentPreproc"/>
-        <push state="if0"/>
-      </rule>
-      <rule pattern="^#">
-        <token type="CommentPreproc"/>
-        <push state="macro"/>
-      </rule>
-      <rule pattern="^(\s*(?:/[*].*?[*]/\s*)?)(#if\s+0)">
-        <bygroups>
-          <usingself state="root"/>
-          <token type="CommentPreproc"/>
-        </bygroups>
-        <push state="if0"/>
-      </rule>
-      <rule pattern="^(\s*(?:/[*].*?[*]/\s*)?)(#)">
-        <bygroups>
-          <usingself state="root"/>
-          <token type="CommentPreproc"/>
-        </bygroups>
-        <push state="macro"/>
-      </rule>
-      <rule pattern="\n">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="\s+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="\\\n">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="//(\n|[\w\W]*?[^\\]\n)">
-        <token type="CommentSingle"/>
-      </rule>
-      <rule pattern="/(\\\n)?[*][\w\W]*?[*](\\\n)?/">
-        <token type="CommentMultiline"/>
-      </rule>
-      <rule pattern="/(\\\n)?[*][\w\W]*">
-        <token type="CommentMultiline"/>
-      </rule>
-    </state>
-    <state name="literal_number_inner">
-      <rule pattern="\(">
-        <token type="Punctuation"/>
-        <push/>
-      </rule>
-      <rule pattern="\)">
-        <token type="Punctuation"/>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <include state="statement"/>
-      </rule>
-    </state>
-    <state name="statement">
-      <rule>
-        <include state="whitespace"/>
-      </rule>
-      <rule>
-        <include state="statements"/>
-      </rule>
-      <rule pattern="[{}]">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern=";">
-        <token type="Punctuation"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="oc_forward_classname">
-      <rule pattern="([a-zA-Z$_][\w$]*)(\s*,\s*)">
-        <bygroups>
-          <token type="NameClass"/>
-          <token type="Text"/>
-        </bygroups>
-        <push state="oc_forward_classname"/>
-      </rule>
-      <rule pattern="([a-zA-Z$_][\w$]*)(\s*;?)">
-        <bygroups>
-          <token type="NameClass"/>
-          <token type="Text"/>
-        </bygroups>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="literal_array_inner">
-      <rule pattern="\[">
-        <token type="Punctuation"/>
-        <push/>
-      </rule>
-      <rule pattern="\]">
-        <token type="Punctuation"/>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <include state="statement"/>
-      </rule>
-    </state>
-    <state name="literal_dictionary">
-      <rule pattern="\}">
-        <token type="Literal"/>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <include state="statement"/>
-      </rule>
-    </state>
-    <state name="oc_ivars">
-      <rule>
-        <include state="whitespace"/>
-      </rule>
-      <rule>
-        <include state="statements"/>
-      </rule>
-      <rule pattern=";">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="\{">
-        <token type="Punctuation"/>
-        <push/>
-      </rule>
-      <rule pattern="\}">
-        <token type="Punctuation"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="string">
-      <rule pattern="&#34;">
-        <token type="LiteralString"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="\\([\\abfnrtv&#34;\&#39;]|x[a-fA-F0-9]{2,4}|u[a-fA-F0-9]{4}|U[a-fA-F0-9]{8}|[0-7]{1,3})">
-        <token type="LiteralStringEscape"/>
-      </rule>
-      <rule pattern="[^\\&#34;\n]+">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="\\\n">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="\\">
-        <token type="LiteralString"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/ocaml.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/ocaml.xml	(revision 67)
+++ 	(revision )
@@ -1,145 +1,0 @@
-<lexer>
-  <config>
-    <name>OCaml</name>
-    <alias>ocaml</alias>
-    <filename>*.ml</filename>
-    <filename>*.mli</filename>
-    <filename>*.mll</filename>
-    <filename>*.mly</filename>
-    <mime_type>text/x-ocaml</mime_type>
-  </config>
-  <rules>
-    <state name="escape-sequence">
-      <rule pattern="\\[\\&#34;\&#39;ntbr]">
-        <token type="LiteralStringEscape"/>
-      </rule>
-      <rule pattern="\\[0-9]{3}">
-        <token type="LiteralStringEscape"/>
-      </rule>
-      <rule pattern="\\x[0-9a-fA-F]{2}">
-        <token type="LiteralStringEscape"/>
-      </rule>
-    </state>
-    <state name="root">
-      <rule pattern="\s+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="false|true|\(\)|\[\]">
-        <token type="NameBuiltinPseudo"/>
-      </rule>
-      <rule pattern="\b([A-Z][\w\&#39;]*)(?=\s*\.)">
-        <token type="NameNamespace"/>
-        <push state="dotted"/>
-      </rule>
-      <rule pattern="\b([A-Z][\w\&#39;]*)">
-        <token type="NameClass"/>
-      </rule>
-      <rule pattern="\(\*(?![)])">
-        <token type="Comment"/>
-        <push state="comment"/>
-      </rule>
-      <rule pattern="\b(as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|false|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|match|method|module|mutable|new|object|of|open|private|raise|rec|sig|struct|then|to|true|try|type|value|val|virtual|when|while|with)\b">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="(~|\}|\|]|\||\{&lt;|\{|`|_|]|\[\||\[&gt;|\[&lt;|\[|\?\?|\?|&gt;\}|&gt;]|&gt;|=|&lt;-|&lt;|;;|;|:&gt;|:=|::|:|\.\.|\.|-&gt;|-\.|-|,|\+|\*|\)|\(|&amp;&amp;|&amp;|#|!=)">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="([=&lt;&gt;@^|&amp;+\*/$%-]|[!?~])?[!$%&amp;*+\./:&lt;=&gt;?@^|~-]">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="\b(and|asr|land|lor|lsl|lxor|mod|or)\b">
-        <token type="OperatorWord"/>
-      </rule>
-      <rule pattern="\b(unit|int|float|bool|string|char|list|array)\b">
-        <token type="KeywordType"/>
-      </rule>
-      <rule pattern="[^\W\d][\w&#39;]*">
-        <token type="Name"/>
-      </rule>
-      <rule pattern="-?\d[\d_]*(.[\d_]*)?([eE][+\-]?\d[\d_]*)">
-        <token type="LiteralNumberFloat"/>
-      </rule>
-      <rule pattern="0[xX][\da-fA-F][\da-fA-F_]*">
-        <token type="LiteralNumberHex"/>
-      </rule>
-      <rule pattern="0[oO][0-7][0-7_]*">
-        <token type="LiteralNumberOct"/>
-      </rule>
-      <rule pattern="0[bB][01][01_]*">
-        <token type="LiteralNumberBin"/>
-      </rule>
-      <rule pattern="\d[\d_]*">
-        <token type="LiteralNumberInteger"/>
-      </rule>
-      <rule pattern="&#39;(?:(\\[\\\&#34;&#39;ntbr ])|(\\[0-9]{3})|(\\x[0-9a-fA-F]{2}))&#39;">
-        <token type="LiteralStringChar"/>
-      </rule>
-      <rule pattern="&#39;.&#39;">
-        <token type="LiteralStringChar"/>
-      </rule>
-      <rule pattern="&#39;">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="&#34;">
-        <token type="LiteralStringDouble"/>
-        <push state="string"/>
-      </rule>
-      <rule pattern="[~?][a-z][\w\&#39;]*:">
-        <token type="NameVariable"/>
-      </rule>
-    </state>
-    <state name="comment">
-      <rule pattern="[^(*)]+">
-        <token type="Comment"/>
-      </rule>
-      <rule pattern="\(\*">
-        <token type="Comment"/>
-        <push/>
-      </rule>
-      <rule pattern="\*\)">
-        <token type="Comment"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="[(*)]">
-        <token type="Comment"/>
-      </rule>
-    </state>
-    <state name="string">
-      <rule pattern="[^\\&#34;]+">
-        <token type="LiteralStringDouble"/>
-      </rule>
-      <rule>
-        <include state="escape-sequence"/>
-      </rule>
-      <rule pattern="\\\n">
-        <token type="LiteralStringDouble"/>
-      </rule>
-      <rule pattern="&#34;">
-        <token type="LiteralStringDouble"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="dotted">
-      <rule pattern="\s+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="\.">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="[A-Z][\w\&#39;]*(?=\s*\.)">
-        <token type="NameNamespace"/>
-      </rule>
-      <rule pattern="[A-Z][\w\&#39;]*">
-        <token type="NameClass"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="[a-z_][\w\&#39;]*">
-        <token type="Name"/>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <pop depth="1"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/octave.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/octave.xml	(revision 67)
+++ 	(revision )
@@ -1,101 +1,0 @@
-<lexer>
-  <config>
-    <name>Octave</name>
-    <alias>octave</alias>
-    <filename>*.m</filename>
-    <mime_type>text/octave</mime_type>
-  </config>
-  <rules>
-    <state name="root">
-      <rule pattern="[%#].*$">
-        <token type="Comment"/>
-      </rule>
-      <rule pattern="^\s*function">
-        <token type="Keyword"/>
-        <push state="deffunc"/>
-      </rule>
-      <rule pattern="(unwind_protect_cleanup|end_unwind_protect|unwind_protect|end_try_catch|endproperties|endclassdef|endfunction|persistent|properties|endmethods|otherwise|endevents|endswitch|__FILE__|continue|classdef|__LINE__|endwhile|function|methods|elseif|return|static|events|global|endfor|switch|until|endif|while|catch|break|case|else|set|end|try|for|get|do|if)\b">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="(history_timestamp_format_string|suppress_verbose_help_message|is_rooted_relative_filename|chisquare_test_independence|available_graphics_toolkits|print_struct_array_contents|re_read_readline_init_file|ignore_function_time_stamp|chisquare_test_homogeneity|sigterm_dumps_octave_core|save_header_format_string|sighup_dumps_octave_core|octave_core_file_options|confirm_recursive_rmdir|crash_dumps_octave_core|program_invocation_name|read_readline_init_file|echo_executing_commands|kolmogorov_smirnov_test|page_output_immediately|completion_append_char|output_max_field_width|kolmogorov_smirnov_cdf|print_empty_dimensions|octave_core_file_limit|struct_levels_to_print|make_absolute_filename|octave_core_file_name|default_save_options|isequalwithequalnans|is_absolute_filename|max_recursion_depth|native_float_format|kruskal_wallis_test|undo_string_escapes|commutation_matrix|fixed_point_format|debug_on_interrupt|completion_matches|duplication_matrix|sparse_auto_mutate|waitforbuttonpress|restoredefaultpath|is_duplicate_entry|page_screen_output|octave_config_info|do_string_escapes|f_test_regression|t_test_regression|command_line_path|debug_on_warning|is_valid_file_id|string_fill_char|find_dir_in_path|graphics_toolkit|mouse_wheel_zoom|file_in_loadpath|compare_versions|sylvester_matrix|silent_functions|output_precision|makeinfo_program|whos_line_format|split_long_rows|history_control|regexptranslate|validatestring|debug_on_error|hotelling_test|save_precision|gnuplot_binary|doc_cache_file|autoreg_matrix|saving_history|durbinlevinson|stdnormal_pdf|beep_on_error|bartlett_test|empirical_inv|wilcoxon_test|empirical_cdf|stdnormal_cdf|namelengthmax|daspk_options|lsode_options|empirical_pdf|empirical_rnd|dasrt_options|dassl_options|stdnormal_inv|stdnormal_rnd|discrete_rnd|logistic_cdf|discrete_cdf|logistic_inv|program_name|logistic_pdf|is_leap_year|spectral_adf|logistic_rnd|rectangle_sw|quad_options|mcnemar_test|file_in_path|info_program|rectangle_lw|spectral_xdf|tilde_expand|history_file|history_size|discrete_inv|discrete_pdf|laplace_cdf|refreshdata|common_size|dellistener|ishermitian|mahalanobis|print_usage|laplace_inv|parseparams|triangle_lw|laplace_rnd|triangle_sw|addproperty|semilogyerr|matrix_type|addlistener|orderfields|issymmetric|list_primes|isdebugmode|laplace_pdf|semilogxerr|periodogram|ezcontourf|fileattrib|freqz_plot|polyreduce|treelayout|inferiorto|size_equal|genvarname|onenormest|svd_driver|divergence|filemarker|fieldnames|cholupdate|cholinsert|choldelete|cellslices|errno_list|triplequad|ls_command|accumarray|cauchy_cdf|yulewalker|plotmatrix|polyaffine|cauchy_inv|studentize|ctranspose|nargoutchk|ishghandle|isdefinite|matlabroot|cauchy_rnd|cauchy_pdf|statistics|welch_test|superiorto|iscomplex|run_count|sprandsym|circshift|mfilename|fileparts|intersect|inputname|factorial|inpolygon|wilkinson|ifftshift|structfun|lsqnonneg|arch_test|addtodate|substruct|localtime|yes_or_no|vectorize|cholshift|lasterror|polyderiv|transpose|fractdiff|mislocked|playaudio|isvarname|delaunayn|convhulln|loglogerr|getrusage|griddatan|saveaudio|swapbytes|isnumeric|synthesis|functions|ellipsoid|subsindex|pqpnonneg|shell_cmd|sign_test|islogical|isstrprop|isinteger|info_file|regexprep|spconvert|spaugment|etreeplot|loadaudio|iscellstr|ezcontour|shiftdim|isglobal|readlink|treeplot|ishandle|sombrero|repelems|ismethod|fullfile|isargout|sortrows|ipermute|skewness|endgrent|errorbar|endpwent|polyvalm|sinewave|setfield|powerset|dbstatus|setgrent|sinetone|ismatrix|gui_mode|kurtosis|setaudio|toeplitz|spearman|textscan|textread|tempname|getgrent|issparse|semilogy|getgrgid|getgrnam|getpwent|optimset|strftime|optimget|semilogx|isvector|getfield|strptime|getpwnam|dsearchn|setpwent|specular|savepath|dlmwrite|subsasgn|gradient|symbfact|planerot|allchild|griddata|getpwuid|typecast|linkprop|urlwrite|runtests|diffpara|isobject|issorted|isstruct|keyboard|delaunay|typeinfo|run_test|datetick|surfnorm|strncmpi|nonzeros|lastwarn|cylinder|bincoeff|cumtrapz|hadamard|randperm|csvwrite|cplxpair|untabify|warranty|realsqrt|polyarea|gammainc|logspace|cor_test|corrcoef|issquare|copyfile|isscalar|convhull|var_test|poisscdf|accumdim|contrast|contourf|contourc|linspace|ismember|ancestor|nchoosek|arch_fit|arch_rnd|legendre|computer|arma_rnd|arrayfun|subspace|isfinite|luupdate|qrupdate|tsearchn|strtrunc|isletter|colormap|poissinv|qrinsert|colorbar|voronoin|poisspdf|mrdivide|interpft|closereq|poissrnd|strsplit|wavwrite|bicgstab|mldivide|bitshift|isxdigit|autoload|strmatch|assignin|movefile|celldisp|fftshift|blackman|meshgrid|rundemos|argnames|qrdelete|brighten|calendar|isfigure|bartlett|spparms|spstats|weekday|blkdiag|sprandn|binornd|binopdf|binoinv|binocdf|bicubic|betarnd|betapdf|wavread|betainv|cloglog|betacdf|whitebg|wienrnd|nargchk|colperm|voronoi|nbincdf|nbininv|nbinpdf|asctime|compass|nbinrnd|version|condest|contour|balance|besselh|besseli|besselj|besselk|bessely|lookfor|bitpack|newplot|builtin|ccolamd|cellfun|lognrnd|warning|waitpid|lognpdf|logninv|cstrcat|csvread|vertcat|logncdf|spinmap|unifrnd|unifpdf|cholinv|interpn|datenum|datestr|normcdf|datevec|dblquad|unifinv|deblank|normest|norminv|toupper|normpdf|unifcdf|detrend|tmpfile|diffuse|unidrnd|normrnd|nthroot|symlink|spencer|display|subsref|strvcat|unidpdf|dsearch|strncmp|strcmpi|squeeze|sprintf|dbclear|sizemax|spdiags|dbstack|pathdef|rmfield|unidinv|rethrow|example|reshape|dbwhere|unidcdf|realmin|realmax|readdir|rdivide|loadobj|ezmeshc|dlmread|ezpolar|permute|ezsurfc|pathsep|nfields|nargout|munlock|feather|fftconv|fftfilt|mkstemp|license|shading|methods|qrshift|findall|findobj|findstr|trisurf|triplot|flipdim|logical|ldivide|lasterr|trimesh|regexpi|polyfit|isindex|isfloat|isfield|isempty|polyint|polyout|polyval|postpad|horzcat|spalloc|setdiff|getppid|ppjumps|getpgrp|geteuid|getegid|genpath|strfind|kendall|frewind|freport|scatter|tempdir|fprintf|formula|fnmatch|filesep|rainbow|saveobj|tsearch|urlread|betainc|reallog|surface|realpow|hamming|gammaln|hanning|hggroup|isalnum|isprime|isalpha|isascii|iscntrl|drawnow|isdigit|subplot|isgraph|rectint|hygecdf|hygeinv|hygepdf|hygernd|idivide|cumprod|cputime|imagesc|imfinfo|strjust|complex|imwrite|strtrim|columns|islower|isprint|ispunct|polygcd|cellstr|isspace|isupper|strread|refresh|residue|toascii|isequal|tolower|addpath|csymamd|invhilb|strtok|imshow|imread|substr|strchr|summer|isprop|hidden|hankel|gunzip|symvar|isunix|ginput|geornd|strcat|geopdf|geoinv|geocdf|gamrnd|krylov|gampdf|gaminv|gamcdf|fsolve|flipud|legend|fliplr|figure|t_test|factor|ezsurf|ezplot|ezmesh|exprnd|exppdf|expinv|expcdf|eomday|loglog|delete|deconv|unique|unmkpp|unpack|unwrap|u_test|copper|vander|compan|clabel|wblcdf|manova|center|wblinv|wblpdf|meansq|median|stairs|wblrnd|spring|blanks|bitset|mexext|bitget|sprand|spones|moment|bitcmp|mpoles|spline|binary|autumn|winter|assert|xlabel|ylabel|zlabel|z_test|ndgrid|bsxfun|usleep|unlink|uminus|colamd|colloc|tmpnam|cummax|sphere|system|cummin|struct|strcmp|stdout|stderr|sscanf|source|orient|sizeof|dbdown|pareto|single|pascal|setenv|dbstop|rmpath|dbtype|pcolor|resize|rename|rehash|dmperm|putenv|filter|printf|pclose|givens|gmtime|rotdim|plotyy|lookup|nargin|mtimes|mpower|mkfifo|setxor|mktime|length|regexp|isreal|isieee|ischar|iscell|isbool|intmin|intmax|inline|ifelse|sparse|getuid|getpid|ppplot|getgid|getenv|prepad|primes|sprank|fwrite|fskipl|probit|fscanf|qqplot|quadcc|quadgk|strrep|symamd|quiver|qzhess|symrcm|fflush|ferror|saveas|fclose|fclear|betaln|erfinv|finite|record|evalin|double|cumsum|bitxor|bitmax|bitand|repmat|atexit|ribbon|rindex|lgamma|roundb|rosser|isnull|untar|ftell|hypot|roots|schur|ranks|input|range|randi|quadv|quadl|kbhit|rcond|prism|print|ppval|ppint|ppder|fseek|randp|polar|shift|randn|randg|rande|fread|lstat|perms|fputs|slice|peaks|merge|pchip|round|patch|sqrtm|minus|mkdir|ocean|speed|fopen|speye|spfun|lower|fgets|mlock|ndims|luinc|fgetl|meshz|meshc|lsode|feval|bitor|numel|fdisp|ifftn|magic|nzmax|logit|fcntl|pause|acosh|popen|power|ismac|isdir|class|isnan|acoth|etree|image|hurst|acsch|housh|isinf|angle|histc|reset|rmdir|scanf|asech|surfc|surfl|gtext|sleep|dassl|stdin|gplot|dasrt|table|daspk|sumsq|asinh|times|convn|umask|uname|uplus|upper|atanh|title|errno|zeros|trace|trapz|fzero|false|close|freqz|acosd|fplot|acotd|acscd|anova|ascii|asecd|asind|atand|white|caxis|erfcx|etime|error|exist|clock|colon|gamma|comet|union|ctime|usage|floor|cross|unzip|index|cotd|fmod|cosd|cscd|cool|unix|conv|vech|exec|cond|view|curl|deal|demo|eval|expm|erfc|type|cast|csch|bone|beep|what|fail|barh|coth|axis|axes|fcdf|fill|xlim|trnd|triu|cosh|area|finv|airy|conj|flag|fpdf|tril|whos|ceil|load|frnd|cbrt|exit|imag|beta|tpdf|chol|tinv|path|gcbf|gcbo|text|test|true|atan|disp|glpk|tcdf|diff|tand|asin|diag|gray|grid|stat|svds|size|gzip|surf|rows|hilb|dbup|hist|asec|rats|quit|hold|isna|eigs|acsc|puts|pack|info|fftn|fftw|prod|find|full|acot|ispc|char|plus|pipe|stft|stem|acos|line|ones|logm|hess|ifft|cell|mean|menu|feof|kron|norm|argv|mesh|time|mget|mkpp|mode|mput|news|null|real|pinv|fork|orth|sech|perl|sign|quad|link|sind|rand|sinc|pink|plot|poly|date|sinh|kill|secd|rank|sqrt|rose|home|sort|tanh|glob|rref|xor|get|all|and|run|tan|svd|rat|syl|min|max|pwd|sin|nnz|not|inv|pie|abs|var|pcr|gcd|fft|sec|eig|dot|arg|det|set|sum|tic|toc|vec|inf|Inf|eye|nan|NaN|who|amd|cos|zip|cot|bar|csc|box|erf|cgs|ols|clf|exp|ver|fix|cor|cov|cut|dir|dos|ftp|gca|any|eps|pcg|gcf|tar|gls|hot|clc|hsv|iqr|isa|jet|std|cat|sqp|lcm|spy|log|now|mod|cla|rem|lu|eq|ge|pi|or|ne|qp|qr|lt|qz|le|gt|e)\b">
-        <token type="NameBuiltin"/>
-      </rule>
-      <rule pattern="(OCTAVE_VERSION|WIFCONTINUED|WEXITSTATUS|WIFSIGNALED|OCTAVE_HOME|PAGER_FLAGS|IMAGE_PATH|WIFSTOPPED|WUNTRACED|WIFEXITED|WCOREDUMP|WCONTINUE|EXEC_PATH|S_ISSOCK|WTERMSIG|SEEK_CUR|SEEK_END|SEEK_SET|WSTOPSIG|S_ISFIFO|S_ISREG|S_ISLNK|S_ISCHR|S_ISBLK|WNOHANG|S_ISDIR|EDITOR|PAGER|SIG|NA|I)\b">
-        <token type="NameConstant"/>
-      </rule>
-      <rule pattern="-=|!=|!|/=|--">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="-|==|~=|&lt;|&gt;|&lt;=|&gt;=|&amp;&amp;|&amp;|~|\|\|?">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="\*=|\+=|\^=|\/=|\\=|\*\*|\+\+|\.\*\*">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="\.\*|\*|\+|\.\^|\.\\|\.\/|\/|\\">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="[\[\](){}:@.,]">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="=|:|;">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="&#34;[^&#34;]*&#34;">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="(\d+\.\d*|\d*\.\d+)([eEf][+-]?[0-9]+)?">
-        <token type="LiteralNumberFloat"/>
-      </rule>
-      <rule pattern="\d+[eEf][+-]?[0-9]+">
-        <token type="LiteralNumberFloat"/>
-      </rule>
-      <rule pattern="\d+">
-        <token type="LiteralNumberInteger"/>
-      </rule>
-      <rule pattern="(?&lt;=[\w)\].])\&#39;+">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="(?&lt;![\w)\].])\&#39;">
-        <token type="LiteralString"/>
-        <push state="string"/>
-      </rule>
-      <rule pattern="[a-zA-Z_]\w*">
-        <token type="Name"/>
-      </rule>
-      <rule pattern=".">
-        <token type="Text"/>
-      </rule>
-    </state>
-    <state name="string">
-      <rule pattern="[^&#39;]*&#39;">
-        <token type="LiteralString"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="deffunc">
-      <rule pattern="(\s*)(?:(.+)(\s*)(=)(\s*))?(.+)(\()(.*)(\))(\s*)">
-        <bygroups>
-          <token type="TextWhitespace"/>
-          <token type="Text"/>
-          <token type="TextWhitespace"/>
-          <token type="Punctuation"/>
-          <token type="TextWhitespace"/>
-          <token type="NameFunction"/>
-          <token type="Punctuation"/>
-          <token type="Text"/>
-          <token type="Punctuation"/>
-          <token type="TextWhitespace"/>
-        </bygroups>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="(\s*)([a-zA-Z_]\w*)">
-        <bygroups>
-          <token type="Text"/>
-          <token type="NameFunction"/>
-        </bygroups>
-        <pop depth="1"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/onesenterprise.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/onesenterprise.xml	(revision 67)
+++ 	(revision )
@@ -1,92 +1,0 @@
-<lexer>
-  <config>
-    <name>OnesEnterprise</name>
-    <alias>ones</alias>
-    <alias>onesenterprise</alias>
-    <alias>1S</alias>
-    <alias>1S:Enterprise</alias>
-    <filename>*.EPF</filename>
-    <filename>*.epf</filename>
-    <filename>*.ERF</filename>
-    <filename>*.erf</filename>
-    <mime_type>application/octet-stream</mime_type>
-    <case_insensitive>true</case_insensitive>
-  </config>
-  <rules>
-    <state name="root">
-      <rule pattern="\n">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="\s+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="\\\n">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="[^\S\n]+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="//(.*?)\n">
-        <token type="Comment"/>
-      </rule>
-      <rule pattern="(#область|#region|#конецобласти|#endregion|#если|#if|#иначе|#else|#конецесли|#endif).*">
-        <token type="CommentPreproc"/>
-      </rule>
-      <rule pattern="(&amp;наклиенте|&amp;atclient|&amp;насервере|&amp;atserver|&amp;насерверебезконтекста|&amp;atservernocontext|&amp;наклиентенасерверебезконтекста|&amp;atclientatservernocontext).*">
-        <token type="CommentPreproc"/>
-      </rule>
-      <rule pattern="(&gt;=|&lt;=|&lt;&gt;|\+|-|=|&gt;|&lt;|\*|/|%)">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="(;|,|\)|\(|\.)">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="(истина|ложь|или|false|true|не|and|not|и|or)\b">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="(иначеесли|конецесли|иначе|тогда|если|elsif|endif|else|then|if)\b">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="(конеццикла|каждого|цикл|пока|для|while|enddo|по|each|из|for|do|in|to)\b">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="(продолжить|прервать|возврат|перейти|continue|return|break|goto)\b">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="(конецпроцедуры|конецфункции|процедура|функция|endprocedure|endfunction|procedure|function)\b">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="(экспорт|новый|перем|знач|export|new|val|var)\b">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="(вызватьисключение|конецпопытки|исключение|попытка|endtry|except|raise|try)\b">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="(выполнить|вычислить|execute|eval)\b">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="&#34;">
-        <token type="LiteralString"/>
-        <push state="string"/>
-      </rule>
-      <rule pattern="[_а-яА-Я0-9][а-яА-Я0-9]*">
-        <token type="Name"/>
-      </rule>
-      <rule pattern="[_\w][\w]*">
-        <token type="Name"/>
-      </rule>
-    </state>
-    <state name="string">
-      <rule pattern="&#34;&#34;">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="&#34;C?">
-        <token type="LiteralString"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="[^&#34;]+">
-        <token type="LiteralString"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/openscad.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/openscad.xml	(revision 67)
+++ 	(revision )
@@ -1,96 +1,0 @@
-<lexer>
-  <config>
-    <name>OpenSCAD</name>
-    <alias>openscad</alias>
-    <filename>*.scad</filename>
-    <mime_type>text/x-scad</mime_type>
-  </config>
-  <rules>
-    <state name="root">
-      <rule pattern="[^\S\n]+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="\n">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="//(\n|[\w\W]*?[^\\]\n)">
-        <token type="CommentSingle"/>
-      </rule>
-      <rule pattern="/(\\\n)?[*][\w\W]*?[*](\\\n)?/">
-        <token type="CommentMultiline"/>
-      </rule>
-      <rule pattern="/(\\\n)?[*][\w\W]*">
-        <token type="CommentMultiline"/>
-      </rule>
-      <rule pattern="[{}\[\]\(\),;:]">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="[*!#%\-+=?/]">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="&lt;|&lt;=|==|!=|&gt;=|&gt;|&amp;&amp;|\|\|">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="\$(f[asn]|t|vp[rtd]|children)">
-        <token type="NameVariableMagic"/>
-      </rule>
-      <rule pattern="(undef|PI)\b">
-        <token type="KeywordConstant"/>
-      </rule>
-      <rule pattern="(use|include)((?:\s|\\\\s)+)">
-        <bygroups>
-          <token type="KeywordNamespace"/>
-          <token type="Text"/>
-        </bygroups>
-        <push state="includes"/>
-      </rule>
-      <rule pattern="(module)(\s*)([^\s\(]+)">
-        <bygroups>
-          <token type="KeywordNamespace"/>
-          <token type="Text"/>
-          <token type="NameNamespace"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(function)(\s*)([^\s\(]+)">
-        <bygroups>
-          <token type="KeywordDeclaration"/>
-          <token type="Text"/>
-          <token type="NameFunction"/>
-        </bygroups>
-      </rule>
-      <rule pattern="\b(true|false)\b">
-        <token type="Literal"/>
-      </rule>
-      <rule pattern="\b(function|module|include|use|for|intersection_for|if|else|return)\b">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="\b(circle|square|polygon|text|sphere|cube|cylinder|polyhedron|translate|rotate|scale|resize|mirror|multmatrix|color|offset|hull|minkowski|union|difference|intersection|abs|sign|sin|cos|tan|acos|asin|atan|atan2|floor|round|ceil|ln|log|pow|sqrt|exp|rands|min|max|concat|lookup|str|chr|search|version|version_num|norm|cross|parent_module|echo|import|import_dxf|dxf_linear_extrude|linear_extrude|rotate_extrude|surface|projection|render|dxf_cross|dxf_dim|let|assign|len)\b">
-        <token type="NameBuiltin"/>
-      </rule>
-      <rule pattern="\bchildren\b">
-        <token type="NameBuiltinPseudo"/>
-      </rule>
-      <rule pattern="&#34;(\\\\|\\&#34;|[^&#34;])*&#34;">
-        <token type="LiteralStringDouble"/>
-      </rule>
-      <rule pattern="-?\d+(\.\d+)?(e[+-]?\d+)?">
-        <token type="LiteralNumber"/>
-      </rule>
-      <rule pattern="[a-zA-Z_]\w*">
-        <token type="Name"/>
-      </rule>
-    </state>
-    <state name="includes">
-      <rule pattern="(&lt;)([^&gt;]*)(&gt;)">
-        <bygroups>
-          <token type="Punctuation"/>
-          <token type="CommentPreprocFile"/>
-          <token type="Punctuation"/>
-        </bygroups>
-      </rule>
-      <rule>
-        <pop depth="1"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/pacmanconf.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/pacmanconf.xml	(revision 67)
+++ 	(revision )
@@ -1,37 +1,0 @@
-<lexer>
-  <config>
-    <name>PacmanConf</name>
-    <alias>pacmanconf</alias>
-    <filename>pacman.conf</filename>
-  </config>
-  <rules>
-    <state name="root">
-      <rule pattern="#.*$">
-        <token type="CommentSingle"/>
-      </rule>
-      <rule pattern="^\s*\[.*?\]\s*$">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="(\w+)(\s*)(=)">
-        <bygroups>
-          <token type="NameAttribute"/>
-          <token type="Text"/>
-          <token type="Operator"/>
-        </bygroups>
-      </rule>
-      <rule pattern="^(\s*)(\w+)(\s*)$">
-        <bygroups>
-          <token type="Text"/>
-          <token type="NameAttribute"/>
-          <token type="Text"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(\$repo|\$arch|%o|%u)\b">
-        <token type="NameVariable"/>
-      </rule>
-      <rule pattern=".">
-        <token type="Text"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/perl.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/perl.xml	(revision 67)
+++ 	(revision )
@@ -1,400 +1,0 @@
-<lexer>
-  <config>
-    <name>Perl</name>
-    <alias>perl</alias>
-    <alias>pl</alias>
-    <filename>*.pl</filename>
-    <filename>*.pm</filename>
-    <filename>*.t</filename>
-    <mime_type>text/x-perl</mime_type>
-    <mime_type>application/x-perl</mime_type>
-    <dot_all>true</dot_all>
-  </config>
-  <rules>
-    <state name="root">
-      <rule pattern="\A\#!.+?$">
-        <token type="CommentHashbang"/>
-      </rule>
-      <rule pattern="\#.*?$">
-        <token type="CommentSingle"/>
-      </rule>
-      <rule pattern="^=[a-zA-Z0-9]+\s+.*?\n=cut">
-        <token type="CommentMultiline"/>
-      </rule>
-      <rule pattern="(continue|foreach|unless|return|elsif|CHECK|while|BEGIN|reset|print|until|next|else|INIT|then|last|redo|case|our|new|for|END|if|do|my)\b">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="(format)(\s+)(\w+)(\s*)(=)(\s*\n)">
-        <bygroups>
-          <token type="Keyword"/>
-          <token type="Text"/>
-          <token type="Name"/>
-          <token type="Text"/>
-          <token type="Punctuation"/>
-          <token type="Text"/>
-        </bygroups>
-        <push state="format"/>
-      </rule>
-      <rule pattern="(eq|lt|gt|le|ge|ne|not|and|or|cmp)\b">
-        <token type="OperatorWord"/>
-      </rule>
-      <rule pattern="s/(\\\\|\\[^\\]|[^\\/])*/(\\\\|\\[^\\]|[^\\/])*/[egimosx]*">
-        <token type="LiteralStringRegex"/>
-      </rule>
-      <rule pattern="s!(\\\\|\\!|[^!])*!(\\\\|\\!|[^!])*![egimosx]*">
-        <token type="LiteralStringRegex"/>
-      </rule>
-      <rule pattern="s\\(\\\\|[^\\])*\\(\\\\|[^\\])*\\[egimosx]*">
-        <token type="LiteralStringRegex"/>
-      </rule>
-      <rule pattern="s@(\\\\|\\[^\\]|[^\\@])*@(\\\\|\\[^\\]|[^\\@])*@[egimosx]*">
-        <token type="LiteralStringRegex"/>
-      </rule>
-      <rule pattern="s%(\\\\|\\[^\\]|[^\\%])*%(\\\\|\\[^\\]|[^\\%])*%[egimosx]*">
-        <token type="LiteralStringRegex"/>
-      </rule>
-      <rule pattern="s\{(\\\\|\\[^\\]|[^\\}])*\}\s*">
-        <token type="LiteralStringRegex"/>
-        <push state="balanced-regex"/>
-      </rule>
-      <rule pattern="s&lt;(\\\\|\\[^\\]|[^\\&gt;])*&gt;\s*">
-        <token type="LiteralStringRegex"/>
-        <push state="balanced-regex"/>
-      </rule>
-      <rule pattern="s\[(\\\\|\\[^\\]|[^\\\]])*\]\s*">
-        <token type="LiteralStringRegex"/>
-        <push state="balanced-regex"/>
-      </rule>
-      <rule pattern="s\((\\\\|\\[^\\]|[^\\)])*\)\s*">
-        <token type="LiteralStringRegex"/>
-        <push state="balanced-regex"/>
-      </rule>
-      <rule pattern="m?/(\\\\|\\[^\\]|[^\\/\n])*/[gcimosx]*">
-        <token type="LiteralStringRegex"/>
-      </rule>
-      <rule pattern="m(?=[/!\\{&lt;\[(@%$])">
-        <token type="LiteralStringRegex"/>
-        <push state="balanced-regex"/>
-      </rule>
-      <rule pattern="((?&lt;==~)|(?&lt;=\())\s*/(\\\\|\\[^\\]|[^\\/])*/[gcimosx]*">
-        <token type="LiteralStringRegex"/>
-      </rule>
-      <rule pattern="\s+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="(getprotobynumber|getprotobyname|getservbyport|getservbyname|gethostbyname|gethostbyaddr|getnetbyaddr|getnetbyname|setprotoent|setpriority|getsockname|getprotoent|getpriority|getpeername|endprotoent|setsockopt|endhostent|setservent|socketpair|getsockopt|endservent|sethostent|getservent|gethostent|getnetent|wantarray|localtime|quotemeta|setnetent|prototype|endnetent|rewinddir|endpwent|endgrent|getpwent|getpwnam|getgrgid|dbmclose|continue|closedir|shutdown|setpwent|shmwrite|syswrite|truncate|formline|setgrent|getgrent|readpipe|getgrnam|readlink|readline|getpwuid|getlogin|telldir|opendir|shmread|readdir|getpgrp|getppid|waitpid|binmode|reverse|sprintf|unshift|symlink|seekdir|sysopen|defined|dbmopen|sysread|sysseek|connect|lcfirst|ucfirst|setpgrp|syscall|import|chroot|system|gmtime|unlink|unpack|semget|semctl|select|msgrcv|length|printf|listen|scalar|caller|rindex|substr|splice|rename|msgctl|msgget|delete|msgsnd|exists|values|socket|fileno|format|accept|shmget|shmctl|ioctl|alarm|atan2|utime|untie|bless|chdir|chmod|undef|umask|chomp|times|close|crypt|srand|split|mkdir|sleep|lstat|study|rmdir|local|fcntl|flock|write|shift|index|semop|chown|tell|join|send|warn|kill|wait|grep|glob|bind|last|pack|getc|fork|link|seek|push|rand|read|exit|sort|exec|open|eval|sqrt|redo|stat|chop|next|each|dump|time|recv|tied|goto|keys|pipe|map|tie|cos|die|eof|pop|sin|pos|oct|ref|exp|int|ord|log|our|hex|abs|vec|chr|uc|tr|my|lc)\b">
-        <token type="NameBuiltin"/>
-      </rule>
-      <rule pattern="((__(DATA|DIE|WARN)__)|(STD(IN|OUT|ERR)))\b">
-        <token type="NameBuiltinPseudo"/>
-      </rule>
-      <rule pattern="(&lt;&lt;)([\&#39;&#34;]?)([a-zA-Z_]\w*)(\2;?\n.*?\n)(\3)(\n)">
-        <bygroups>
-          <token type="LiteralString"/>
-          <token type="LiteralString"/>
-          <token type="LiteralStringDelimiter"/>
-          <token type="LiteralString"/>
-          <token type="LiteralStringDelimiter"/>
-          <token type="Text"/>
-        </bygroups>
-      </rule>
-      <rule pattern="__END__">
-        <token type="CommentPreproc"/>
-        <push state="end-part"/>
-      </rule>
-      <rule pattern="\$\^[ADEFHILMOPSTWX]">
-        <token type="NameVariableGlobal"/>
-      </rule>
-      <rule pattern="\$[\\\&#34;\[\]&#39;&amp;`+*.,;=%~?@$!&lt;&gt;(^|/-](?!\w)">
-        <token type="NameVariableGlobal"/>
-      </rule>
-      <rule pattern="[$@%#]+">
-        <token type="NameVariable"/>
-        <push state="varname"/>
-      </rule>
-      <rule pattern="0_?[0-7]+(_[0-7]+)*">
-        <token type="LiteralNumberOct"/>
-      </rule>
-      <rule pattern="0x[0-9A-Fa-f]+(_[0-9A-Fa-f]+)*">
-        <token type="LiteralNumberHex"/>
-      </rule>
-      <rule pattern="0b[01]+(_[01]+)*">
-        <token type="LiteralNumberBin"/>
-      </rule>
-      <rule pattern="(?i)(\d*(_\d*)*\.\d+(_\d*)*|\d+(_\d*)*\.\d+(_\d*)*)(e[+-]?\d+)?">
-        <token type="LiteralNumberFloat"/>
-      </rule>
-      <rule pattern="(?i)\d+(_\d*)*e[+-]?\d+(_\d*)*">
-        <token type="LiteralNumberFloat"/>
-      </rule>
-      <rule pattern="\d+(_\d+)*">
-        <token type="LiteralNumberInteger"/>
-      </rule>
-      <rule pattern="&#39;(\\\\|\\[^\\]|[^&#39;\\])*&#39;">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="&#34;(\\\\|\\[^\\]|[^&#34;\\])*&#34;">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="`(\\\\|\\[^\\]|[^`\\])*`">
-        <token type="LiteralStringBacktick"/>
-      </rule>
-      <rule pattern="&lt;([^\s&gt;]+)&gt;">
-        <token type="LiteralStringRegex"/>
-      </rule>
-      <rule pattern="(q|qq|qw|qr|qx)\{">
-        <token type="LiteralStringOther"/>
-        <push state="cb-string"/>
-      </rule>
-      <rule pattern="(q|qq|qw|qr|qx)\(">
-        <token type="LiteralStringOther"/>
-        <push state="rb-string"/>
-      </rule>
-      <rule pattern="(q|qq|qw|qr|qx)\[">
-        <token type="LiteralStringOther"/>
-        <push state="sb-string"/>
-      </rule>
-      <rule pattern="(q|qq|qw|qr|qx)\&lt;">
-        <token type="LiteralStringOther"/>
-        <push state="lt-string"/>
-      </rule>
-      <rule pattern="(q|qq|qw|qr|qx)([\W_])(.|\n)*?\2">
-        <token type="LiteralStringOther"/>
-      </rule>
-      <rule pattern="(package)(\s+)([a-zA-Z_]\w*(?:::[a-zA-Z_]\w*)*)">
-        <bygroups>
-          <token type="Keyword"/>
-          <token type="Text"/>
-          <token type="NameNamespace"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(use|require|no)(\s+)([a-zA-Z_]\w*(?:::[a-zA-Z_]\w*)*)">
-        <bygroups>
-          <token type="Keyword"/>
-          <token type="Text"/>
-          <token type="NameNamespace"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(sub)(\s+)">
-        <bygroups>
-          <token type="Keyword"/>
-          <token type="Text"/>
-        </bygroups>
-        <push state="funcname"/>
-      </rule>
-      <rule pattern="(package|require|use|no)\b">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="(\[\]|\*\*|::|&lt;&lt;|&gt;&gt;|&gt;=|&lt;=&gt;|&lt;=|={3}|!=|=~|!~|&amp;&amp;?|\|\||\.{1,3})">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="[-+/*%=&lt;&gt;&amp;^|!\\~]=?">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="[()\[\]:;,&lt;&gt;/?{}]">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="(?=\w)">
-        <token type="Name"/>
-        <push state="name"/>
-      </rule>
-    </state>
-    <state name="cb-string">
-      <rule pattern="\\[{}\\]">
-        <token type="LiteralStringOther"/>
-      </rule>
-      <rule pattern="\\">
-        <token type="LiteralStringOther"/>
-      </rule>
-      <rule pattern="\{">
-        <token type="LiteralStringOther"/>
-        <push state="cb-string"/>
-      </rule>
-      <rule pattern="\}">
-        <token type="LiteralStringOther"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="[^{}\\]+">
-        <token type="LiteralStringOther"/>
-      </rule>
-    </state>
-    <state name="balanced-regex">
-      <rule pattern="/(\\\\|\\[^\\]|[^\\/])*/[egimosx]*">
-        <token type="LiteralStringRegex"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="!(\\\\|\\[^\\]|[^\\!])*![egimosx]*">
-        <token type="LiteralStringRegex"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="\\(\\\\|[^\\])*\\[egimosx]*">
-        <token type="LiteralStringRegex"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="\{(\\\\|\\[^\\]|[^\\}])*\}[egimosx]*">
-        <token type="LiteralStringRegex"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="&lt;(\\\\|\\[^\\]|[^\\&gt;])*&gt;[egimosx]*">
-        <token type="LiteralStringRegex"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="\[(\\\\|\\[^\\]|[^\\\]])*\][egimosx]*">
-        <token type="LiteralStringRegex"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="\((\\\\|\\[^\\]|[^\\)])*\)[egimosx]*">
-        <token type="LiteralStringRegex"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="@(\\\\|\\[^\\]|[^\\@])*@[egimosx]*">
-        <token type="LiteralStringRegex"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="%(\\\\|\\[^\\]|[^\\%])*%[egimosx]*">
-        <token type="LiteralStringRegex"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="\$(\\\\|\\[^\\]|[^\\$])*\$[egimosx]*">
-        <token type="LiteralStringRegex"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="lt-string">
-      <rule pattern="\\[&lt;&gt;\\]">
-        <token type="LiteralStringOther"/>
-      </rule>
-      <rule pattern="\\">
-        <token type="LiteralStringOther"/>
-      </rule>
-      <rule pattern="\&lt;">
-        <token type="LiteralStringOther"/>
-        <push state="lt-string"/>
-      </rule>
-      <rule pattern="\&gt;">
-        <token type="LiteralStringOther"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="[^&lt;&gt;]+">
-        <token type="LiteralStringOther"/>
-      </rule>
-    </state>
-    <state name="format">
-      <rule pattern="\.\n">
-        <token type="LiteralStringInterpol"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="[^\n]*\n">
-        <token type="LiteralStringInterpol"/>
-      </rule>
-    </state>
-    <state name="funcname">
-      <rule pattern="[a-zA-Z_]\w*[!?]?">
-        <token type="NameFunction"/>
-      </rule>
-      <rule pattern="\s+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="(\([$@%]*\))(\s*)">
-        <bygroups>
-          <token type="Punctuation"/>
-          <token type="Text"/>
-        </bygroups>
-      </rule>
-      <rule pattern=";">
-        <token type="Punctuation"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern=".*?\{">
-        <token type="Punctuation"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="end-part">
-      <rule pattern=".+">
-        <token type="CommentPreproc"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="varname">
-      <rule pattern="\s+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="\{">
-        <token type="Punctuation"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="\)|,">
-        <token type="Punctuation"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="\w+::">
-        <token type="NameNamespace"/>
-      </rule>
-      <rule pattern="[\w:]+">
-        <token type="NameVariable"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="name">
-      <rule pattern="[a-zA-Z_]\w*(::[a-zA-Z_]\w*)*(::)?(?=\s*-&gt;)">
-        <token type="NameNamespace"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="[a-zA-Z_]\w*(::[a-zA-Z_]\w*)*::">
-        <token type="NameNamespace"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="[\w:]+">
-        <token type="Name"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="[A-Z_]+(?=\W)">
-        <token type="NameConstant"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="(?=\W)">
-        <token type="Text"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="rb-string">
-      <rule pattern="\\[()\\]">
-        <token type="LiteralStringOther"/>
-      </rule>
-      <rule pattern="\\">
-        <token type="LiteralStringOther"/>
-      </rule>
-      <rule pattern="\(">
-        <token type="LiteralStringOther"/>
-        <push state="rb-string"/>
-      </rule>
-      <rule pattern="\)">
-        <token type="LiteralStringOther"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="[^()]+">
-        <token type="LiteralStringOther"/>
-      </rule>
-    </state>
-    <state name="sb-string">
-      <rule pattern="\\[\[\]\\]">
-        <token type="LiteralStringOther"/>
-      </rule>
-      <rule pattern="\\">
-        <token type="LiteralStringOther"/>
-      </rule>
-      <rule pattern="\[">
-        <token type="LiteralStringOther"/>
-        <push state="sb-string"/>
-      </rule>
-      <rule pattern="\]">
-        <token type="LiteralStringOther"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="[^\[\]]+">
-        <token type="LiteralStringOther"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/php.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/php.xml	(revision 67)
+++ 	(revision )
@@ -1,211 +1,0 @@
-<lexer>
-  <config>
-    <name>PHP</name>
-    <alias>php</alias>
-    <alias>php3</alias>
-    <alias>php4</alias>
-    <alias>php5</alias>
-    <filename>*.php</filename>
-    <filename>*.php[345]</filename>
-    <filename>*.inc</filename>
-    <mime_type>text/x-php</mime_type>
-    <case_insensitive>true</case_insensitive>
-    <dot_all>true</dot_all>
-    <ensure_nl>true</ensure_nl>
-  </config>
-  <rules>
-    <state name="magicfuncs">
-      <rule pattern="(__callStatic|__set_state|__construct|__debugInfo|__toString|__destruct|__invoke|__wakeup|__clone|__sleep|__isset|__unset|__call|__get|__set)\b">
-        <token type="NameFunctionMagic"/>
-      </rule>
-    </state>
-    <state name="magicconstants">
-      <rule pattern="(__NAMESPACE__|__FUNCTION__|__METHOD__|__CLASS__|__TRAIT__|__LINE__|__FILE__|__DIR__)\b">
-        <token type="NameConstant"/>
-      </rule>
-    </state>
-    <state name="classname">
-      <rule pattern="(?:[\\_a-z]|[^\x00-\x7f])(?:[\\\w]|[^\x00-\x7f])*">
-        <token type="NameClass"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="functionname">
-      <rule>
-        <include state="magicfuncs"/>
-      </rule>
-      <rule pattern="(?:[\\_a-z]|[^\x00-\x7f])(?:[\\\w]|[^\x00-\x7f])*">
-        <token type="NameFunction"/>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="string">
-      <rule pattern="&#34;">
-        <token type="LiteralStringDouble"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="[^{$&#34;\\]+">
-        <token type="LiteralStringDouble"/>
-      </rule>
-      <rule pattern="\\([nrt&#34;$\\]|[0-7]{1,3}|x[0-9a-f]{1,2})">
-        <token type="LiteralStringEscape"/>
-      </rule>
-      <rule pattern="\$(?:[\\_a-z]|[^\x00-\x7f])(?:[\\\w]|[^\x00-\x7f])*(\[\S+?\]|-&gt;(?:[\\_a-z]|[^\x00-\x7f])(?:[\\\w]|[^\x00-\x7f])*)?">
-        <token type="LiteralStringInterpol"/>
-      </rule>
-      <rule pattern="(\{\$\{)(.*?)(\}\})">
-        <bygroups>
-          <token type="LiteralStringInterpol"/>
-          <usingself state="root"/>
-          <token type="LiteralStringInterpol"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(\{)(\$.*?)(\})">
-        <bygroups>
-          <token type="LiteralStringInterpol"/>
-          <usingself state="root"/>
-          <token type="LiteralStringInterpol"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(\$\{)(\S+)(\})">
-        <bygroups>
-          <token type="LiteralStringInterpol"/>
-          <token type="NameVariable"/>
-          <token type="LiteralStringInterpol"/>
-        </bygroups>
-      </rule>
-      <rule pattern="[${\\]">
-        <token type="LiteralStringDouble"/>
-      </rule>
-    </state>
-    <state name="root">
-      <rule pattern="\?&gt;">
-        <token type="CommentPreproc"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="(&lt;&lt;&lt;)([\&#39;&#34;]?)((?:[\\_a-z]|[^\x00-\x7f])(?:[\\\w]|[^\x00-\x7f])*)(\2\n.*?\n\s*)(\3)(;?)(\n)">
-        <bygroups>
-          <token type="LiteralString"/>
-          <token type="LiteralString"/>
-          <token type="LiteralStringDelimiter"/>
-          <token type="LiteralString"/>
-          <token type="LiteralStringDelimiter"/>
-          <token type="Punctuation"/>
-          <token type="Text"/>
-        </bygroups>
-      </rule>
-      <rule pattern="\s+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="#.*?\n">
-        <token type="CommentSingle"/>
-      </rule>
-      <rule pattern="//.*?\n">
-        <token type="CommentSingle"/>
-      </rule>
-      <rule pattern="/\*\*/">
-        <token type="CommentMultiline"/>
-      </rule>
-      <rule pattern="/\*\*.*?\*/">
-        <token type="LiteralStringDoc"/>
-      </rule>
-      <rule pattern="/\*.*?\*/">
-        <token type="CommentMultiline"/>
-      </rule>
-      <rule pattern="(-&gt;|::)(\s*)((?:[\\_a-z]|[^\x00-\x7f])(?:[\\\w]|[^\x00-\x7f])*)">
-        <bygroups>
-          <token type="Operator"/>
-          <token type="Text"/>
-          <token type="NameAttribute"/>
-        </bygroups>
-      </rule>
-      <rule pattern="[~!%^&amp;*+=|:.&lt;&gt;/@-]+">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="\?">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="[\[\]{}();,]+">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="(class)(\s+)">
-        <bygroups>
-          <token type="Keyword"/>
-          <token type="Text"/>
-        </bygroups>
-        <push state="classname"/>
-      </rule>
-      <rule pattern="(function)(\s*)(?=\()">
-        <bygroups>
-          <token type="Keyword"/>
-          <token type="Text"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(function)(\s+)(&amp;?)(\s*)">
-        <bygroups>
-          <token type="Keyword"/>
-          <token type="Text"/>
-          <token type="Operator"/>
-          <token type="Text"/>
-        </bygroups>
-        <push state="functionname"/>
-      </rule>
-      <rule pattern="(const)(\s+)((?:[\\_a-z]|[^\x00-\x7f])(?:[\\\w]|[^\x00-\x7f])*)">
-        <bygroups>
-          <token type="Keyword"/>
-          <token type="Text"/>
-          <token type="NameConstant"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(and|E_PARSE|old_function|E_ERROR|or|as|E_WARNING|parent|eval|PHP_OS|break|exit|case|extends|PHP_VERSION|cfunction|FALSE|print|for|require|continue|foreach|require_once|declare|return|default|static|do|switch|die|stdClass|echo|else|TRUE|elseif|var|empty|if|xor|enddeclare|include|virtual|endfor|include_once|while|endforeach|global|endif|list|endswitch|new|endwhile|not|array|E_ALL|NULL|final|php_user_filter|interface|implements|public|private|protected|abstract|clone|try|catch|throw|this|use|namespace|trait|yield|finally)\b">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="(true|false|null)\b">
-        <token type="KeywordConstant"/>
-      </rule>
-      <rule>
-        <include state="magicconstants"/>
-      </rule>
-      <rule pattern="\$\{\$+(?:[\\_a-z]|[^\x00-\x7f])(?:[\\\w]|[^\x00-\x7f])*\}">
-        <token type="NameVariable"/>
-      </rule>
-      <rule pattern="\$+(?:[\\_a-z]|[^\x00-\x7f])(?:[\\\w]|[^\x00-\x7f])*">
-        <token type="NameVariable"/>
-      </rule>
-      <rule pattern="(?:[\\_a-z]|[^\x00-\x7f])(?:[\\\w]|[^\x00-\x7f])*">
-        <token type="NameOther"/>
-      </rule>
-      <rule pattern="(\d+\.\d*|\d*\.\d+)(e[+-]?[0-9]+)?">
-        <token type="LiteralNumberFloat"/>
-      </rule>
-      <rule pattern="\d+e[+-]?[0-9]+">
-        <token type="LiteralNumberFloat"/>
-      </rule>
-      <rule pattern="0[0-7]+">
-        <token type="LiteralNumberOct"/>
-      </rule>
-      <rule pattern="0x[a-f0-9_]+">
-        <token type="LiteralNumberHex"/>
-      </rule>
-      <rule pattern="\d[\d_]*">
-        <token type="LiteralNumberInteger"/>
-      </rule>
-      <rule pattern="0b[01]+">
-        <token type="LiteralNumberBin"/>
-      </rule>
-      <rule pattern="&#39;([^&#39;\\]*(?:\\.[^&#39;\\]*)*)&#39;">
-        <token type="LiteralStringSingle"/>
-      </rule>
-      <rule pattern="`([^`\\]*(?:\\.[^`\\]*)*)`">
-        <token type="LiteralStringBacktick"/>
-      </rule>
-      <rule pattern="&#34;">
-        <token type="LiteralStringDouble"/>
-        <push state="string"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/pig.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/pig.xml	(revision 67)
+++ 	(revision )
@@ -1,105 +1,0 @@
-<lexer>
-  <config>
-    <name>Pig</name>
-    <alias>pig</alias>
-    <filename>*.pig</filename>
-    <mime_type>text/x-pig</mime_type>
-    <case_insensitive>true</case_insensitive>
-  </config>
-  <rules>
-    <state name="root">
-      <rule pattern="\s+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="--.*">
-        <token type="Comment"/>
-      </rule>
-      <rule pattern="/\*[\w\W]*?\*/">
-        <token type="CommentMultiline"/>
-      </rule>
-      <rule pattern="\\\n">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="\\">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="\&#39;(?:\\[ntbrf\\\&#39;]|\\u[0-9a-f]{4}|[^\&#39;\\\n\r])*\&#39;">
-        <token type="LiteralString"/>
-      </rule>
-      <rule>
-        <include state="keywords"/>
-      </rule>
-      <rule>
-        <include state="types"/>
-      </rule>
-      <rule>
-        <include state="builtins"/>
-      </rule>
-      <rule>
-        <include state="punct"/>
-      </rule>
-      <rule>
-        <include state="operators"/>
-      </rule>
-      <rule pattern="[0-9]*\.[0-9]+(e[0-9]+)?[fd]?">
-        <token type="LiteralNumberFloat"/>
-      </rule>
-      <rule pattern="0x[0-9a-f]+">
-        <token type="LiteralNumberHex"/>
-      </rule>
-      <rule pattern="[0-9]+L?">
-        <token type="LiteralNumberInteger"/>
-      </rule>
-      <rule pattern="\n">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="([a-z_]\w*)(\s*)(\()">
-        <bygroups>
-          <token type="NameFunction"/>
-          <token type="Text"/>
-          <token type="Punctuation"/>
-        </bygroups>
-      </rule>
-      <rule pattern="[()#:]">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="[^(:#\&#39;&#34;)\s]+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="\S+\s+">
-        <token type="Text"/>
-      </rule>
-    </state>
-    <state name="keywords">
-      <rule pattern="(assert|and|any|all|arrange|as|asc|bag|by|cache|CASE|cat|cd|cp|%declare|%default|define|dense|desc|describe|distinct|du|dump|eval|exex|explain|filter|flatten|foreach|full|generate|group|help|if|illustrate|import|inner|input|into|is|join|kill|left|limit|load|ls|map|matches|mkdir|mv|not|null|onschema|or|order|outer|output|parallel|pig|pwd|quit|register|returns|right|rm|rmf|rollup|run|sample|set|ship|split|stderr|stdin|stdout|store|stream|through|union|using|void)\b">
-        <token type="Keyword"/>
-      </rule>
-    </state>
-    <state name="builtins">
-      <rule pattern="(AVG|BinStorage|cogroup|CONCAT|copyFromLocal|copyToLocal|COUNT|cross|DIFF|MAX|MIN|PigDump|PigStorage|SIZE|SUM|TextLoader|TOKENIZE)\b">
-        <token type="NameBuiltin"/>
-      </rule>
-    </state>
-    <state name="types">
-      <rule pattern="(bytearray|BIGINTEGER|BIGDECIMAL|chararray|datetime|double|float|int|long|tuple)\b">
-        <token type="KeywordType"/>
-      </rule>
-    </state>
-    <state name="punct">
-      <rule pattern="[;(){}\[\]]">
-        <token type="Punctuation"/>
-      </rule>
-    </state>
-    <state name="operators">
-      <rule pattern="[#=,./%+\-?]">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="(eq|gt|lt|gte|lte|neq|matches)\b">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="(==|&lt;=|&lt;|&gt;=|&gt;|!=)">
-        <token type="Operator"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/pkgconfig.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/pkgconfig.xml	(revision 67)
+++ 	(revision )
@@ -1,73 +1,0 @@
-<lexer>
-  <config>
-    <name>PkgConfig</name>
-    <alias>pkgconfig</alias>
-    <filename>*.pc</filename>
-  </config>
-  <rules>
-    <state name="curly">
-      <rule pattern="\}">
-        <token type="LiteralStringInterpol"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="\w+">
-        <token type="NameAttribute"/>
-      </rule>
-    </state>
-    <state name="spvalue">
-      <rule>
-        <include state="interp"/>
-      </rule>
-      <rule pattern="#.*$">
-        <token type="CommentSingle"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="\n">
-        <token type="Text"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="[^${}#\n]+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern=".">
-        <token type="Text"/>
-      </rule>
-    </state>
-    <state name="root">
-      <rule pattern="#.*$">
-        <token type="CommentSingle"/>
-      </rule>
-      <rule pattern="^(\w+)(=)">
-        <bygroups>
-          <token type="NameAttribute"/>
-          <token type="Operator"/>
-        </bygroups>
-      </rule>
-      <rule pattern="^([\w.]+)(:)">
-        <bygroups>
-          <token type="NameTag"/>
-          <token type="Punctuation"/>
-        </bygroups>
-        <push state="spvalue"/>
-      </rule>
-      <rule>
-        <include state="interp"/>
-      </rule>
-      <rule pattern="[^${}#=:\n.]+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern=".">
-        <token type="Text"/>
-      </rule>
-    </state>
-    <state name="interp">
-      <rule pattern="\$\$">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="\$\{">
-        <token type="LiteralStringInterpol"/>
-        <push state="curly"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/pl_pgsql.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/pl_pgsql.xml	(revision 67)
+++ 	(revision )
@@ -1,119 +1,0 @@
-<lexer>
-  <config>
-    <name>PL/pgSQL</name>
-    <alias>plpgsql</alias>
-    <mime_type>text/x-plpgsql</mime_type>
-    <case_insensitive>true</case_insensitive>
-    <not_multiline>true</not_multiline>
-  </config>
-  <rules>
-    <state name="root">
-      <rule pattern="\%[a-z]\w*\b">
-        <token type="NameBuiltin"/>
-      </rule>
-      <rule pattern=":=">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="\&lt;\&lt;[a-z]\w*\&gt;\&gt;">
-        <token type="NameLabel"/>
-      </rule>
-      <rule pattern="\#[a-z]\w*\b">
-        <token type="KeywordPseudo"/>
-      </rule>
-      <rule pattern="\s+">
-        <token type="TextWhitespace"/>
-      </rule>
-      <rule pattern="--.*\n?">
-        <token type="CommentSingle"/>
-      </rule>
-      <rule pattern="/\*">
-        <token type="CommentMultiline"/>
-        <push state="multiline-comments"/>
-      </rule>
-      <rule pattern="(bigint|bigserial|bit|bit\s+varying|bool|boolean|box|bytea|char|character|character\s+varying|cidr|circle|date|decimal|double\s+precision|float4|float8|inet|int|int2|int4|int8|integer|interval|json|jsonb|line|lseg|macaddr|money|numeric|path|pg_lsn|point|polygon|real|serial|serial2|serial4|serial8|smallint|smallserial|text|time|timestamp|timestamptz|timetz|tsquery|tsvector|txid_snapshot|uuid|varbit|varchar|with\s+time\s+zone|without\s+time\s+zone|xml|anyarray|anyelement|anyenum|anynonarray|anyrange|cstring|fdw_handler|internal|language_handler|opaque|record|void)\b">
-        <token type="NameBuiltin"/>
-      </rule>
-      <rule pattern="(CURRENT_TIMESTAMP|CHARACTERISTICS|CURRENT_CATALOG|CURRENT_SCHEMA|LOCALTIMESTAMP|XMLATTRIBUTES|AUTHORIZATION|CONFIGURATION|CURRENT_TIME|CURRENT_ROLE|CURRENT_USER|CURRENT_DATE|MATERIALIZED|SESSION_USER|SERIALIZABLE|CONCURRENTLY|XMLSERIALIZE|DIAGNOSTICS|UNCOMMITTED|UNENCRYPTED|TRANSACTION|INSENSITIVE|CONSTRAINTS|CONVERSION|ORDINALITY|LC_COLLATE|DEALLOCATE|CONSTRAINT|CONNECTION|PRIVILEGES|PROCEDURAL|STANDALONE|DICTIONARY|XMLELEMENT|STATISTICS|DEFERRABLE|DELIMITERS|REPEATABLE|TABLESPACE|REFERENCES|CHECKPOINT|WHITESPACE|ASYMMETRIC|ASSIGNMENT|CHARACTER|INCLUDING|SYMMETRIC|IMMUTABLE|IMMEDIATE|XMLCONCAT|INTERSECT|ISOLATION|DELIMITER|COLLATION|TIMESTAMP|INCREMENT|ENCRYPTED|PROCEDURE|COMMITTED|SUBSTRING|EXCEPTION|VALIDATOR|UNBOUNDED|PARTITION|ATTRIBUTE|INITIALLY|EXCLUSIVE|SAVEPOINT|XMLEXISTS|ASSERTION|EXTENSION|STATEMENT|RETURNING|LEAKPROOF|RECURSIVE|FUNCTIONS|AGGREGATE|LOCALTIME|FOLLOWING|PRECEDING|PRECISION|SEQUENCES|XMLFOREST|TEMPORARY|EXCLUDING|DATABASE|XMLPARSE|CONTINUE|INHERITS|UNLOGGED|DEFAULTS|COMMENTS|DEFERRED|MINVALUE|TRAILING|VARIADIC|COALESCE|INTERVAL|OVERLAPS|MAXVALUE|IMPLICIT|DISTINCT|VOLATILE|DOCUMENT|SMALLINT|OPERATOR|SEQUENCE|CONSTANT|CASCADED|IDENTITY|ENCODING|SNAPSHOT|TRUNCATE|ROLLBACK|PREPARED|LANGUAGE|UNLISTEN|TEMPLATE|BACKWARD|VALIDATE|NATIONAL|REASSIGN|GREATEST|LC_CTYPE|EXTERNAL|PASSWORD|SECURITY|LOCATION|PRESERVE|FUNCTION|RELATIVE|POSITION|SQLSTATE|ABSOLUTE|RESTRICT|BOOLEAN|FORWARD|UNKNOWN|FOREIGN|RECHECK|NOTHING|NOTNULL|EXTRACT|NATURAL|GRANTED|EXPLAIN|EXECUTE|HANDLER|EXCLUDE|NUMERIC|TRUSTED|VERSION|TRIGGER|VERBOSE|WITHOUT|WRAPPER|OPTIONS|DISCARD|VARYING|DISABLE|DEFINER|DEFAULT|INDEXES|PRIMARY|DECLARE|DECIMAL|PROGRAM|RETURNS|CURRENT|XMLROOT|CONTENT|COMMENT|INSTEAD|COLLATE|INTEGER|CLUSTER|SESSION|VARCHAR|INVOKER|CATALOG|CASCADE|OVERLAY|RESTART|BETWEEN|REPLICA|PARTIAL|REPLACE|FOREACH|LATERAL|PASSING|PERFORM|LEADING|ANALYZE|ANALYSE|SIMILAR|REFRESH|MAPPING|RELEASE|PLACING|REVERSE|REINDEX|STORAGE|INHERIT|PREPARE|UPDATE|VACUUM|RENAME|ISNULL|VALUES|MINUTE|INSERT|INLINE|SCROLL|REVOKE|HEADER|HAVING|TABLES|SYSTEM|GLOBAL|FREEZE|UNIQUE|SCHEMA|SEARCH|FILTER|NOTIFY|SECOND|NOWAIT|FAMILY|NULLIF|EXISTS|EXCEPT|OBJECT|SELECT|ESCAPE|OFFSET|WINDOW|WITHIN|ENABLE|DOUBLE|OPTION|DOMAIN|DELETE|CURSOR|CREATE|SERVER|COMMIT|COLUMN|SIMPLE|CALLED|BINARY|BIGINT|PARSER|STABLE|BEFORE|NOTICE|ALWAYS|STDOUT|RETURN|POLICY|STRICT|ACTION|ACCESS|LISTEN|ABORT|PLANS|MONTH|PRIOR|OWNER|OWNED|OUTER|ORDER|QUOTE|RANGE|TREAT|TYPES|NULLS|UNION|NCHAR|NAMES|UNTIL|MATCH|LOCAL|USING|LIMIT|LEVEL|LEAST|LARGE|LABEL|RESET|VALUE|INPUT|INOUT|INNER|INDEX|RIGHT|ILIKE|VIEWS|GROUP|TABLE|GRANT|WHERE|FORCE|FLOAT|FIRST|FETCH|FALSE|EVENT|WRITE|CYCLE|CROSS|XMLPI|CLOSE|CLASS|SYSID|SETOF|SHARE|CHECK|WHILE|CHAIN|ALIAS|CACHE|ELSIF|BEGIN|ARRAY|START|QUERY|RAISE|STDIN|ALTER|AFTER|ADMIN|STRIP|VALID|WORK|ALSO|RULE|ROWS|OPEN|ROLE|TEMP|LOOP|REAL|TEXT|THEN|TIME|READ|SOME|OVER|EXIT|BOTH|ONLY|TRIM|TRUE|CASE|OIDS|TYPE|CAST|ZONE|NULL|YEAR|NONE|CHAR|NEXT|NAME|MOVE|MODE|LOCK|USER|LOAD|LIKE|LEFT|LAST|COST|JOIN|DATA|INTO|DESC|DROP|ELSE|HOUR|VIEW|HOLD|FULL|WHEN|FROM|EACH|ENUM|WITH|SHOW|COPY|OUT|FOR|ADD|XML|ALL|INT|DEC|DAY|SET|CSV|KEY|AND|ANY|NOT|YES|ROW|END|ASC|REF|GET|BIT|OFF|TO|OR|BY|ON|OF|AS|NO|AT|IS|DO|IN|IF)\b">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="[+*/&lt;&gt;=~!@#%^&amp;|`?-]+">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="::">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="\$\d+">
-        <token type="NameVariable"/>
-      </rule>
-      <rule pattern="([0-9]*\.[0-9]*|[0-9]+)(e[+-]?[0-9]+)?">
-        <token type="LiteralNumberFloat"/>
-      </rule>
-      <rule pattern="[0-9]+">
-        <token type="LiteralNumberInteger"/>
-      </rule>
-      <rule pattern="((?:E|U&amp;)?)(&#39;)">
-        <bygroups>
-          <token type="LiteralStringAffix"/>
-          <token type="LiteralStringSingle"/>
-        </bygroups>
-        <push state="string"/>
-      </rule>
-      <rule pattern="((?:U&amp;)?)(&#34;)">
-        <bygroups>
-          <token type="LiteralStringAffix"/>
-          <token type="LiteralStringName"/>
-        </bygroups>
-        <push state="quoted-ident"/>
-      </rule>
-      <rule pattern="[a-z_]\w*">
-        <token type="Name"/>
-      </rule>
-      <rule pattern=":([&#39;&#34;]?)[a-z]\w*\b\1">
-        <token type="NameVariable"/>
-      </rule>
-      <rule pattern="[;:()\[\]{},.]">
-        <token type="Punctuation"/>
-      </rule>
-    </state>
-    <state name="multiline-comments">
-      <rule pattern="/\*">
-        <token type="CommentMultiline"/>
-        <push state="multiline-comments"/>
-      </rule>
-      <rule pattern="\*/">
-        <token type="CommentMultiline"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="[^/*]+">
-        <token type="CommentMultiline"/>
-      </rule>
-      <rule pattern="[/*]">
-        <token type="CommentMultiline"/>
-      </rule>
-    </state>
-    <state name="string">
-      <rule pattern="[^&#39;]+">
-        <token type="LiteralStringSingle"/>
-      </rule>
-      <rule pattern="&#39;&#39;">
-        <token type="LiteralStringSingle"/>
-      </rule>
-      <rule pattern="&#39;">
-        <token type="LiteralStringSingle"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="quoted-ident">
-      <rule pattern="[^&#34;]+">
-        <token type="LiteralStringName"/>
-      </rule>
-      <rule pattern="&#34;&#34;">
-        <token type="LiteralStringName"/>
-      </rule>
-      <rule pattern="&#34;">
-        <token type="LiteralStringName"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/plutus_core.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/plutus_core.xml	(revision 67)
+++ 	(revision )
@@ -1,105 +1,0 @@
-<lexer>
-  <config>
-    <name>Plutus Core</name>
-    <alias>plutus-core</alias>
-    <alias>plc</alias>
-    <filename>*.plc</filename>
-    <mime_type>text/x-plutus-core</mime_type>
-    <mime_type>application/x-plutus-core</mime_type>
-  </config>
-  <rules>
-    <state name="root">
-      <rule pattern="\s+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="(\(|\))">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="(\[|\])">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="({|})">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="([+-]?\d+)">
-        <token type="LiteralNumberInteger"/>
-      </rule>
-      <rule pattern="(#([a-fA-F0-9][a-fA-F0-9])+)">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="(\(\))">
-        <token type="NameConstant"/>
-      </rule>
-      <rule pattern="(True|False)">
-        <token type="NameConstant"/>
-      </rule>
-      <rule pattern="(con |abs |iwrap |unwrap |lam |builtin |delay |force |error)">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="(fun |all |ifix |lam |con )">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="(type|fun )">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="(program )(\S+)">
-        <bygroups>
-          <token type="Keyword"/>
-          <token type="LiteralString"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(unit|bool|integer|bytestring|string)">
-        <token type="KeywordType"/>
-      </rule>
-      <rule pattern="(addInteger |subtractInteger |multiplyInteger |divideInteger |quotientInteger |remainderInteger |modInteger |equalsInteger |lessThanInteger |lessThanEqualsInteger )">
-        <token type="NameBuiltin"/>
-      </rule>
-      <rule pattern="(appendByteString |consByteString |sliceByteString |lengthOfByteString |indexByteString |equalsByteString |lessThanByteString |lessThanEqualsByteString )">
-        <token type="NameBuiltin"/>
-      </rule>
-      <rule pattern="(sha2_256 |sha3_256 |blake2b_256 |verifySignature )">
-        <token type="NameBuiltin"/>
-      </rule>
-      <rule pattern="(appendString |equalsString |encodeUtf8 |decodeUtf8 )">
-        <token type="NameBuiltin"/>
-      </rule>
-      <rule pattern="(ifThenElse )">
-        <token type="NameBuiltin"/>
-      </rule>
-      <rule pattern="(chooseUnit )">
-        <token type="NameBuiltin"/>
-      </rule>
-      <rule pattern="(trace )">
-        <token type="NameBuiltin"/>
-      </rule>
-      <rule pattern="(fstPair |sndPair )">
-        <token type="NameBuiltin"/>
-      </rule>
-      <rule pattern="(chooseList |mkCons |headList |tailList |nullList )">
-        <token type="NameBuiltin"/>
-      </rule>
-      <rule pattern="(chooseData |constrData |mapData |listData |iData |bData |unConstrData |unMapData |unListData |unIData |unBData |equalsData )">
-        <token type="NameBuiltin"/>
-      </rule>
-      <rule pattern="(mkPairData |mkNilData |mkNilPairData )">
-        <token type="NameBuiltin"/>
-      </rule>
-      <rule pattern="([a-zA-Z][a-zA-Z0-9_&#39;]*)">
-        <token type="Name"/>
-      </rule>
-      <rule pattern="&#34;">
-        <token type="LiteralStringDouble"/>
-        <push state="string"/>
-      </rule>
-    </state>
-    <state name="string">
-      <rule pattern="[^\\&#34;]+">
-        <token type="LiteralStringDouble"/>
-      </rule>
-      <rule pattern="&#34;">
-        <token type="LiteralStringDouble"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/pony.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/pony.xml	(revision 67)
+++ 	(revision )
@@ -1,135 +1,0 @@
-<lexer>
-  <config>
-    <name>Pony</name>
-    <alias>pony</alias>
-    <filename>*.pony</filename>
-  </config>
-  <rules>
-    <state name="string">
-      <rule pattern="&#34;">
-        <token type="LiteralString"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="\\&#34;">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="[^\\&#34;]+">
-        <token type="LiteralString"/>
-      </rule>
-    </state>
-    <state name="root">
-      <rule pattern="\n">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="[^\S\n]+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="//.*\n">
-        <token type="CommentSingle"/>
-      </rule>
-      <rule pattern="/\*">
-        <token type="CommentMultiline"/>
-        <push state="nested_comment"/>
-      </rule>
-      <rule pattern="&#34;&#34;&#34;(?:.|\n)*?&#34;&#34;&#34;">
-        <token type="LiteralStringDoc"/>
-      </rule>
-      <rule pattern="&#34;">
-        <token type="LiteralString"/>
-        <push state="string"/>
-      </rule>
-      <rule pattern="\&#39;.*\&#39;">
-        <token type="LiteralStringChar"/>
-      </rule>
-      <rule pattern="=&gt;|[]{}:().~;,|&amp;!^?[]">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="(addressof|digestof|consume|isnt|and|not|as|is|or)\b">
-        <token type="OperatorWord"/>
-      </rule>
-      <rule pattern="!=|==|&lt;&lt;|&gt;&gt;|[-+/*%=&lt;&gt;]">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="(compile_intrinsic|compile_error|continue|recover|return|repeat|lambda|elseif|object|#share|match|#send|#read|ifdef|until|embed|while|where|error|break|with|else|#any|this|then|tag|for|trn|try|ref|use|var|val|let|end|iso|box|in|if|do)\b">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="(actor|class|struct|primitive|interface|trait|type)((?:\s)+)">
-        <bygroups>
-          <token type="Keyword"/>
-          <token type="Text"/>
-        </bygroups>
-        <push state="typename"/>
-      </rule>
-      <rule pattern="(new|fun|be)((?:\s)+)">
-        <bygroups>
-          <token type="Keyword"/>
-          <token type="Text"/>
-        </bygroups>
-        <push state="methodname"/>
-      </rule>
-      <rule pattern="(DisposableActor|NullablePointer|AsioEventNotify|UnsignedInteger|RuntimeOptions|DoNotOptimise|FloatingPoint|SignedInteger|ReadElement|ArrayValues|StringBytes|StringRunes|InputNotify|InputStream|AsioEventID|ByteSeqIter|AmbientAuth|Comparable|ArrayPairs|Stringable|OutStream|SourceLoc|ArrayKeys|StdStream|Equatable|AsioEvent|Iterator|Platform|Unsigned|Greater|Compare|Integer|Pointer|ReadSeq|ByteSeq|String|Number|Signed|Float|USize|Stdin|ILong|ISize|HasEq|Array|ULong|Equal|I128|U128|Bool|Less|Real|None|Seq|I64|Any|F32|F64|U64|U32|I32|Int|I16|U16|Env|I8|U8)\b">
-        <token type="KeywordType"/>
-      </rule>
-      <rule pattern="_?[A-Z]\w*">
-        <token type="NameClass"/>
-      </rule>
-      <rule pattern="string\(\)">
-        <token type="NameOther"/>
-      </rule>
-      <rule pattern="(\d+\.\d*|\.\d+|\d+)[eE][+-]?\d+">
-        <token type="LiteralNumberFloat"/>
-      </rule>
-      <rule pattern="0x[0-9a-fA-F]+">
-        <token type="LiteralNumberHex"/>
-      </rule>
-      <rule pattern="\d+">
-        <token type="LiteralNumberInteger"/>
-      </rule>
-      <rule pattern="(true|false)\b">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="_\d*">
-        <token type="Name"/>
-      </rule>
-      <rule pattern="_?[a-z][\w\&#39;_]*">
-        <token type="Name"/>
-      </rule>
-    </state>
-    <state name="typename">
-      <rule pattern="(iso|trn|ref|val|box|tag)?((?:\s)*)(_?[A-Z]\w*)">
-        <bygroups>
-          <token type="Keyword"/>
-          <token type="Text"/>
-          <token type="NameClass"/>
-        </bygroups>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="methodname">
-      <rule pattern="(iso|trn|ref|val|box|tag)?((?:\s)*)(_?[a-z]\w*)">
-        <bygroups>
-          <token type="Keyword"/>
-          <token type="Text"/>
-          <token type="NameFunction"/>
-        </bygroups>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="nested_comment">
-      <rule pattern="[^*/]+">
-        <token type="CommentMultiline"/>
-      </rule>
-      <rule pattern="/\*">
-        <token type="CommentMultiline"/>
-        <push/>
-      </rule>
-      <rule pattern="\*/">
-        <token type="CommentMultiline"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="[*/]">
-        <token type="CommentMultiline"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/postscript.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/postscript.xml	(revision 67)
+++ 	(revision )
@@ -1,89 +1,0 @@
-<lexer>
-  <config>
-    <name>PostScript</name>
-    <alias>postscript</alias>
-    <alias>postscr</alias>
-    <filename>*.ps</filename>
-    <filename>*.eps</filename>
-    <mime_type>application/postscript</mime_type>
-  </config>
-  <rules>
-    <state name="root">
-      <rule pattern="^%!.+\n">
-        <token type="CommentPreproc"/>
-      </rule>
-      <rule pattern="%%.*\n">
-        <token type="CommentSpecial"/>
-      </rule>
-      <rule pattern="(^%.*\n){2,}">
-        <token type="CommentMultiline"/>
-      </rule>
-      <rule pattern="%.*\n">
-        <token type="CommentSingle"/>
-      </rule>
-      <rule pattern="\(">
-        <token type="LiteralString"/>
-        <push state="stringliteral"/>
-      </rule>
-      <rule pattern="[{}&lt;&gt;\[\]]">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="&lt;[0-9A-Fa-f]+&gt;(?=[()&lt;&gt;\[\]{}/%\s])">
-        <token type="LiteralNumberHex"/>
-      </rule>
-      <rule pattern="[0-9]+\#(\-|\+)?([0-9]+\.?|[0-9]*\.[0-9]+|[0-9]+\.[0-9]*)((e|E)[0-9]+)?(?=[()&lt;&gt;\[\]{}/%\s])">
-        <token type="LiteralNumberOct"/>
-      </rule>
-      <rule pattern="(\-|\+)?([0-9]+\.?|[0-9]*\.[0-9]+|[0-9]+\.[0-9]*)((e|E)[0-9]+)?(?=[()&lt;&gt;\[\]{}/%\s])">
-        <token type="LiteralNumberFloat"/>
-      </rule>
-      <rule pattern="(\-|\+)?[0-9]+(?=[()&lt;&gt;\[\]{}/%\s])">
-        <token type="LiteralNumberInteger"/>
-      </rule>
-      <rule pattern="\/[^()&lt;&gt;\[\]{}/%\s]+(?=[()&lt;&gt;\[\]{}/%\s])">
-        <token type="NameVariable"/>
-      </rule>
-      <rule pattern="[^()&lt;&gt;\[\]{}/%\s]+(?=[()&lt;&gt;\[\]{}/%\s])">
-        <token type="NameFunction"/>
-      </rule>
-      <rule pattern="(false|true)(?=[()&lt;&gt;\[\]{}/%\s])">
-        <token type="KeywordConstant"/>
-      </rule>
-      <rule pattern="(eq|ne|g[et]|l[et]|and|or|not|if(?:else)?|for(?:all)?)(?=[()&lt;&gt;\[\]{}/%\s])">
-        <token type="KeywordReserved"/>
-      </rule>
-      <rule pattern="(dictstackoverflow|undefinedfilename|currentlinewidth|undefinedresult|currentmatrix|defaultmatrix|invertmatrix|concatmatrix|currentpoint|setlinewidth|syntaxerror|idtransform|identmatrix|setrgbcolor|stringwidth|setlinejoin|getinterval|itransform|strokepath|pathforall|rangecheck|setlinecap|dtransform|transform|translate|setmatrix|typecheck|undefined|scalefont|closepath|findfont|showpage|rcurveto|grestore|truncate|pathbbox|charpath|rlineto|rmoveto|ceiling|newpath|setdash|setfont|restore|curveto|setgray|stroke|pstack|matrix|length|lineto|repeat|rotate|moveto|shfill|concat|gsave|aload|scale|array|round|stack|index|begin|print|floor|exch|quit|clip|copy|bind|loop|idiv|fill|show|roll|exit|load|dict|save|arcn|sqrt|exec|rand|atan|end|div|abs|run|def|cvs|exp|cvi|sin|cos|get|dup|mod|put|sub|pop|add|neg|mul|arc|log|ln|gt)(?=[()&lt;&gt;\[\]{}/%\s])">
-        <token type="NameBuiltin"/>
-      </rule>
-      <rule pattern="\s+">
-        <token type="Text"/>
-      </rule>
-    </state>
-    <state name="stringliteral">
-      <rule pattern="[^()\\]+">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="\\">
-        <token type="LiteralStringEscape"/>
-        <push state="escape"/>
-      </rule>
-      <rule pattern="\(">
-        <token type="LiteralString"/>
-        <push/>
-      </rule>
-      <rule pattern="\)">
-        <token type="LiteralString"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="escape">
-      <rule pattern="[0-8]{3}|n|r|t|b|f|\\|\(|\)">
-        <token type="LiteralStringEscape"/>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <pop depth="1"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/povray.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/povray.xml	(revision 67)
+++ 	(revision )
@@ -1,58 +1,0 @@
-<lexer>
-  <config>
-    <name>POVRay</name>
-    <alias>pov</alias>
-    <filename>*.pov</filename>
-    <filename>*.inc</filename>
-    <mime_type>text/x-povray</mime_type>
-  </config>
-  <rules>
-    <state name="root">
-      <rule pattern="/\*[\w\W]*?\*/">
-        <token type="CommentMultiline"/>
-      </rule>
-      <rule pattern="//.*\n">
-        <token type="CommentSingle"/>
-      </rule>
-      <rule pattern="(?s)&#34;(?:\\.|[^&#34;\\])+&#34;">
-        <token type="LiteralStringDouble"/>
-      </rule>
-      <rule pattern="#(statistics|include|version|declare|default|warning|define|elseif|ifndef|switch|fclose|render|fopen|undef|error|debug|while|local|macro|range|ifdef|break|write|else|case|read|for|end|if)\b">
-        <token type="CommentPreproc"/>
-      </rule>
-      <rule pattern="\b(atmospheric_attenuation|cylindrical_mapping|spherical_mapping|max_intersections|quadratic_spline|ultra_wide_angle|low_error_factor|distance_maximum|recursion_limit|irid_wavelength|volume_rendered|max_trace_level|global_settings|number_of_waves|vol_with_light|planar_mapping|gray_threshold|nearest_count|minimum_reuse|test_camera_4|assumed_gamma|ambient_light|volume_object|test_camera_3|max_iteration|linear_spline|fade_distance|test_camera_2|falloff_angle|test_camera_1|triangle_wave|orthographic|linear_sweep|hypercomplex|cubic_spline|eccentricity|material_map|vaxis_rotate|scallop_wave|quick_colour|aa_threshold|blur_samples|conic_sweep|error_bound|interpolate|file_exists|attenuating|quick_color|texture_map|focal_point|box_mapping|pigment_map|perspective|water_level|adc_bailout|hf_gray_16|use_colour|clipped_by|turb_depth|reflection|atmosphere|phong_size|turbulence|area_light|fog_offset|vnormalize|normal_map|sky_sphere|fade_power|brick_size|colour_map|background|statistics|brilliance|brightness|scattering|confidence|agate_turb|looks_like|quaternion|bounded_by|shadowless|reciprocal|black_hole|refraction|no_shadow|spotlight|transform|translate|roughness|tightness|use_index|incidence|sine_wave|arc_angle|image_map|threshold|slope_map|direction|thickness|composite|component|color_map|panoramic|ramp_wave|radiosity|use_color|max_value|bump_size|precision|frequency|dust_type|hierarchy|strength|gradient|pattern1|fog_type|pattern2|specular|constant|flatness|control0|wrinkles|control1|pattern3|adaptive|caustics|bump_map|exponent|metallic|transmit|aa_level|point_at|map_type|emitting|variance|location|distance|aperture|texture|leopard|ripples|ambient|warning|diffuse|look_at|rainbow|radians|u_steps|quilted|degrees|average|vrotate|default|declare|inverse|samples|include|pigment|version|falloff|spotted|crackle|checker|spiral2|vlength|spiral1|fisheye|octaves|hexagon|fog_alt|granite|omnimax|glowing|v_steps|radius|concat|spiral|smooth|hollow|offset|normal|finish|bumpy1|filter|colour|mortar|rotate|lambda|bumpy3|bumpy2|strcmp|linear|switch|substr|repeat|vcross|strupr|strlen|strlwr|render|matrix|marble|radial|mandel|jitter|tiles|dents|atanh|break|range|track|asinh|brick|waves|bumps|atan2|sturm|debug|onion|rgbft|angle|right|tile2|crand|acosh|error|scale|alpha|while|false|agate|ifdef|phong|phase|clock|width|slice|omega|color|floor|count|green|atan|blue|bozo|seed|case|sqrt|rgbt|warp|rgbf|ceil|cosh|rand|cube|vdot|dust|else|flip|asin|type|tanh|halo|wood|true|open|once|acos|sinh|irid|max|mod|min|all|log|off|ior|tga|iff|pgm|ttf|asc|png|tan|gif|abs|fog|sys|exp|end|val|pot|pow|div|ppm|pwr|red|cos|chr|rgb|sqr|sin|yes|str|int|sky|if|no|on|pi|up|t)\b">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="(smooth_triangle|superellipsoid|julia_fractal|bicubic_patch|light_source|height_field|intersection|difference|cylinder|triangle|polygon|quartic|quadric|camera|sphere|object|merge|plane|lathe|torus|prism|cubic|union|poly|mesh|disc|cone|text|blob|box|sor)\b">
-        <token type="NameBuiltin"/>
-      </rule>
-      <rule pattern="[\[\](){}&lt;&gt;;,]">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="[-+*/=]">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="\b(x|y|z|u|v)\b">
-        <token type="NameBuiltinPseudo"/>
-      </rule>
-      <rule pattern="[a-zA-Z_]\w*">
-        <token type="Name"/>
-      </rule>
-      <rule pattern="[0-9]+\.[0-9]*">
-        <token type="LiteralNumberFloat"/>
-      </rule>
-      <rule pattern="\.[0-9]+">
-        <token type="LiteralNumberFloat"/>
-      </rule>
-      <rule pattern="[0-9]+">
-        <token type="LiteralNumberInteger"/>
-      </rule>
-      <rule pattern="&#34;(\\\\|\\&#34;|[^&#34;])*&#34;">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="\s+">
-        <token type="Text"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/powerquery.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/powerquery.xml	(revision 67)
+++ 	(revision )
@@ -1,51 +1,0 @@
-<lexer>
-  <config>
-    <name>PowerQuery</name>
-    <alias>powerquery</alias>
-    <alias>pq</alias>
-    <filename>*.pq</filename>
-    <mime_type>text/x-powerquery</mime_type>
-    <case_insensitive>true</case_insensitive>
-    <dot_all>true</dot_all>
-  </config>
-  <rules>
-    <state name="root">
-      <rule pattern="\s+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="//.*?\n">
-        <token type="CommentSingle"/>
-      </rule>
-      <rule pattern="/\*.*?\*/">
-        <token type="CommentMultiline"/>
-      </rule>
-      <rule pattern="&#34;(\\\\|\\&#34;|[^&#34;])*&#34;">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="(and|as|each|else|error|false|if|in|is|let|meta|not|null|or|otherwise|section|shared|then|true|try|type)\b">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="(#binary|#date|#datetime|#datetimezone|#duration|#infinity|#nan|#sections|#shared|#table|#time)\b">
-        <token type="KeywordType"/>
-      </rule>
-      <rule pattern="(([a-zA-Z]|_)[\w|._]*|#&#34;[^&#34;]+&#34;)">
-        <token type="Name"/>
-      </rule>
-      <rule pattern="0[xX][0-9a-fA-F][0-9a-fA-F_]*[lL]?">
-        <token type="LiteralNumberHex"/>
-      </rule>
-      <rule pattern="([0-9]+\.[0-9]+|\.[0-9]+)([eE][0-9]+)?">
-        <token type="LiteralNumberFloat"/>
-      </rule>
-      <rule pattern="[0-9]+">
-        <token type="LiteralNumberInteger"/>
-      </rule>
-      <rule pattern="[\(\)\[\]\{\}]">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="\.\.|\.\.\.|=&gt;|&lt;=|&gt;=|&lt;&gt;|[@!?,;=&lt;&gt;\+\-\*\/&amp;]">
-        <token type="Operator"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/powershell.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/powershell.xml	(revision 67)
+++ 	(revision )
@@ -1,150 +1,0 @@
-<lexer>
-  <config>
-    <name>PowerShell</name>
-    <alias>powershell</alias>
-    <alias>posh</alias>
-    <alias>ps1</alias>
-    <alias>psm1</alias>
-    <alias>psd1</alias>
-    <filename>*.ps1</filename>
-    <filename>*.psm1</filename>
-    <filename>*.psd1</filename>
-    <mime_type>text/x-powershell</mime_type>
-    <case_insensitive>true</case_insensitive>
-    <dot_all>true</dot_all>
-  </config>
-  <rules>
-    <state name="root">
-      <rule pattern="\(">
-        <token type="Punctuation"/>
-        <push state="child"/>
-      </rule>
-      <rule pattern="\s+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="^(\s*#[#\s]*)(\.(?:component|description|example|externalhelp|forwardhelpcategory|forwardhelptargetname|functionality|inputs|link|notes|outputs|parameter|remotehelprunspace|role|synopsis))([^\n]*$)">
-        <bygroups>
-          <token type="Comment"/>
-          <token type="LiteralStringDoc"/>
-          <token type="Comment"/>
-        </bygroups>
-      </rule>
-      <rule pattern="#[^\n]*?$">
-        <token type="Comment"/>
-      </rule>
-      <rule pattern="(&amp;lt;|&lt;)#">
-        <token type="CommentMultiline"/>
-        <push state="multline"/>
-      </rule>
-      <rule pattern="(?i)([A-Z]:)">
-        <token type="Name"/>
-      </rule>
-      <rule pattern="@&#34;\n">
-        <token type="LiteralStringHeredoc"/>
-        <push state="heredoc-double"/>
-      </rule>
-      <rule pattern="@&#39;\n.*?\n&#39;@">
-        <token type="LiteralStringHeredoc"/>
-      </rule>
-      <rule pattern="`[\&#39;&#34;$@-]">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="&#34;">
-        <token type="LiteralStringDouble"/>
-        <push state="string"/>
-      </rule>
-      <rule pattern="&#39;([^&#39;]|&#39;&#39;)*&#39;">
-        <token type="LiteralStringSingle"/>
-      </rule>
-      <rule pattern="(\$|@@|@)((global|script|private|env):)?\w+">
-        <token type="NameVariable"/>
-      </rule>
-      <rule pattern="[a-z]\w*-[a-z]\w*\b">
-        <token type="NameBuiltin"/>
-      </rule>
-      <rule pattern="(while|validateset|validaterange|validatepattern|validatelength|validatecount|until|trap|switch|return|ref|process|param|parameter|in|if|global:|function|foreach|for|finally|filter|end|elseif|else|dynamicparam|do|default|continue|cmdletbinding|break|begin|alias|\?|%|#script|#private|#local|#global|mandatory|parametersetname|position|valuefrompipeline|valuefrompipelinebypropertyname|valuefromremainingarguments|helpmessage|try|catch|throw)\b">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="-(and|as|band|bnot|bor|bxor|casesensitive|ccontains|ceq|cge|cgt|cle|clike|clt|cmatch|cne|cnotcontains|cnotlike|cnotmatch|contains|creplace|eq|exact|f|file|ge|gt|icontains|ieq|ige|igt|ile|ilike|ilt|imatch|ine|inotcontains|inotlike|inotmatch|ireplace|is|isnot|le|like|lt|match|ne|not|notcontains|notlike|notmatch|or|regex|replace|wildcard)\b">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="(ac|asnp|cat|cd|cfs|chdir|clc|clear|clhy|cli|clp|cls|clv|cnsn|compare|copy|cp|cpi|cpp|curl|cvpa|dbp|del|diff|dir|dnsn|ebp|echo|epal|epcsv|epsn|erase|etsn|exsn|fc|fhx|fl|foreach|ft|fw|gal|gbp|gc|gci|gcm|gcs|gdr|ghy|gi|gjb|gl|gm|gmo|gp|gps|gpv|group|gsn|gsnp|gsv|gu|gv|gwmi|h|history|icm|iex|ihy|ii|ipal|ipcsv|ipmo|ipsn|irm|ise|iwmi|iwr|kill|lp|ls|man|md|measure|mi|mount|move|mp|mv|nal|ndr|ni|nmo|npssc|nsn|nv|ogv|oh|popd|ps|pushd|pwd|r|rbp|rcjb|rcsn|rd|rdr|ren|ri|rjb|rm|rmdir|rmo|rni|rnp|rp|rsn|rsnp|rujb|rv|rvpa|rwmi|sajb|sal|saps|sasv|sbp|sc|select|set|shcm|si|sl|sleep|sls|sort|sp|spjb|spps|spsv|start|sujb|sv|swmi|tee|trcm|type|wget|where|wjb|write)\s">
-        <token type="NameBuiltin"/>
-      </rule>
-      <rule pattern="\[[a-z_\[][\w. `,\[\]]*\]">
-        <token type="NameConstant"/>
-      </rule>
-      <rule pattern="-[a-z_]\w*">
-        <token type="Name"/>
-      </rule>
-      <rule pattern="\w+">
-        <token type="Name"/>
-      </rule>
-      <rule pattern="[.,;@{}\[\]$()=+*/\\&amp;%!~?^`|&lt;&gt;-]|::">
-        <token type="Punctuation"/>
-      </rule>
-    </state>
-    <state name="child">
-      <rule pattern="\)">
-        <token type="Punctuation"/>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <include state="root"/>
-      </rule>
-    </state>
-    <state name="multline">
-      <rule pattern="[^#&amp;.]+">
-        <token type="CommentMultiline"/>
-      </rule>
-      <rule pattern="#(&gt;|&amp;gt;)">
-        <token type="CommentMultiline"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="\.(component|description|example|externalhelp|forwardhelpcategory|forwardhelptargetname|functionality|inputs|link|notes|outputs|parameter|remotehelprunspace|role|synopsis)">
-        <token type="LiteralStringDoc"/>
-      </rule>
-      <rule pattern="[#&amp;.]">
-        <token type="CommentMultiline"/>
-      </rule>
-    </state>
-    <state name="string">
-      <rule pattern="`[0abfnrtv&#39;\&#34;$`]">
-        <token type="LiteralStringEscape"/>
-      </rule>
-      <rule pattern="[^$`&#34;]+">
-        <token type="LiteralStringDouble"/>
-      </rule>
-      <rule pattern="\$\(">
-        <token type="Punctuation"/>
-        <push state="child"/>
-      </rule>
-      <rule pattern="&#34;&#34;">
-        <token type="LiteralStringDouble"/>
-      </rule>
-      <rule pattern="[`$]">
-        <token type="LiteralStringDouble"/>
-      </rule>
-      <rule pattern="&#34;">
-        <token type="LiteralStringDouble"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="heredoc-double">
-      <rule pattern="\n&#34;@">
-        <token type="LiteralStringHeredoc"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="\$\(">
-        <token type="Punctuation"/>
-        <push state="child"/>
-      </rule>
-      <rule pattern="[^@\n]+&#34;]">
-        <token type="LiteralStringHeredoc"/>
-      </rule>
-      <rule pattern=".">
-        <token type="LiteralStringHeredoc"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/prolog.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/prolog.xml	(revision 67)
+++ 	(revision )
@@ -1,115 +1,0 @@
-<lexer>
-  <config>
-    <name>Prolog</name>
-    <alias>prolog</alias>
-    <filename>*.ecl</filename>
-    <filename>*.prolog</filename>
-    <filename>*.pro</filename>
-    <filename>*.pl</filename>
-    <mime_type>text/x-prolog</mime_type>
-  </config>
-  <rules>
-    <state name="root">
-      <rule pattern="/\*">
-        <token type="CommentMultiline"/>
-        <push state="nested-comment"/>
-      </rule>
-      <rule pattern="%.*">
-        <token type="CommentSingle"/>
-      </rule>
-      <rule pattern="0\&#39;.">
-        <token type="LiteralStringChar"/>
-      </rule>
-      <rule pattern="0b[01]+">
-        <token type="LiteralNumberBin"/>
-      </rule>
-      <rule pattern="0o[0-7]+">
-        <token type="LiteralNumberOct"/>
-      </rule>
-      <rule pattern="0x[0-9a-fA-F]+">
-        <token type="LiteralNumberHex"/>
-      </rule>
-      <rule pattern="\d\d?\&#39;[a-zA-Z0-9]+">
-        <token type="LiteralNumberInteger"/>
-      </rule>
-      <rule pattern="(\d+\.\d*|\d*\.\d+)([eE][+-]?[0-9]+)?">
-        <token type="LiteralNumberFloat"/>
-      </rule>
-      <rule pattern="\d+">
-        <token type="LiteralNumberInteger"/>
-      </rule>
-      <rule pattern="[\[\](){}|.,;!]">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern=":-|--&gt;">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="&#34;(?:\\x[0-9a-fA-F]+\\|\\u[0-9a-fA-F]{4}|\\U[0-9a-fA-F]{8}|\\[0-7]+\\|\\[&#34;\nabcefnrstv]|[^\\&#34;])*&#34;">
-        <token type="LiteralStringDouble"/>
-      </rule>
-      <rule pattern="&#39;(?:&#39;&#39;|[^&#39;])*&#39;">
-        <token type="LiteralStringAtom"/>
-      </rule>
-      <rule pattern="is\b">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="(&lt;|&gt;|=&lt;|&gt;=|==|=:=|=|/|//|\*|\+|-)(?=\s|[a-zA-Z0-9\[])">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="(mod|div|not)\b">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="_">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="([a-z]+)(:)">
-        <bygroups>
-          <token type="NameNamespace"/>
-          <token type="Punctuation"/>
-        </bygroups>
-      </rule>
-      <rule pattern="([a-zÀ-῿぀-퟿-￯][\w$À-῿぀-퟿-￯]*)(\s*)(:-|--&gt;)">
-        <bygroups>
-          <token type="NameFunction"/>
-          <token type="Text"/>
-          <token type="Operator"/>
-        </bygroups>
-      </rule>
-      <rule pattern="([a-zÀ-῿぀-퟿-￯][\w$À-῿぀-퟿-￯]*)(\s*)(\()">
-        <bygroups>
-          <token type="NameFunction"/>
-          <token type="Text"/>
-          <token type="Punctuation"/>
-        </bygroups>
-      </rule>
-      <rule pattern="[a-zÀ-῿぀-퟿-￯][\w$À-῿぀-퟿-￯]*">
-        <token type="LiteralStringAtom"/>
-      </rule>
-      <rule pattern="[#&amp;*+\-./:&lt;=&gt;?@\\^~¡-¿‐-〿]+">
-        <token type="LiteralStringAtom"/>
-      </rule>
-      <rule pattern="[A-Z_]\w*">
-        <token type="NameVariable"/>
-      </rule>
-      <rule pattern="\s+|[ -‏￰-�￯]">
-        <token type="Text"/>
-      </rule>
-    </state>
-    <state name="nested-comment">
-      <rule pattern="\*/">
-        <token type="CommentMultiline"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="/\*">
-        <token type="CommentMultiline"/>
-        <push/>
-      </rule>
-      <rule pattern="[^*/]+">
-        <token type="CommentMultiline"/>
-      </rule>
-      <rule pattern="[*/]">
-        <token type="CommentMultiline"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/promql.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/promql.xml	(revision 67)
+++ 	(revision )
@@ -1,123 +1,0 @@
-<lexer>
-  <config>
-    <name>PromQL</name>
-    <alias>promql</alias>
-    <filename>*.promql</filename>
-  </config>
-  <rules>
-    <state name="range">
-      <rule pattern="\]">
-        <token type="Punctuation"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="[1-9][0-9]*[smhdwy]">
-        <token type="LiteralString"/>
-      </rule>
-    </state>
-    <state name="function">
-      <rule pattern="\)">
-        <token type="Operator"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="\(">
-        <token type="Operator"/>
-        <push/>
-      </rule>
-      <rule>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="root">
-      <rule pattern="\n">
-        <token type="TextWhitespace"/>
-      </rule>
-      <rule pattern="\s+">
-        <token type="TextWhitespace"/>
-      </rule>
-      <rule pattern=",">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="(group_right|group_left|ignoring|without|offset|bool|on|by)\b">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="(count_values|quantile|bottomk|stdvar|stddev|count|group|topk|sum|min|max|avg)\b">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="(histogram_quantile|quantile_over_time|absent_over_time|stdvar_over_time|stddev_over_time|count_over_time|predict_linear|label_replace|max_over_time|avg_over_time|sum_over_time|days_in_month|min_over_time|day_of_month|holt_winters|day_of_week|label_join|sort_desc|clamp_max|timestamp|clamp_min|increase|changes|resets|vector|absent|idelta|minute|scalar|log10|delta|month|floor|deriv|round|irate|rate|year|sort|log2|sqrt|ceil|time|hour|abs|exp|ln)\b">
-        <token type="KeywordReserved"/>
-      </rule>
-      <rule pattern="[1-9][0-9]*[smhdwy]">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="-?[0-9]+\.[0-9]+">
-        <token type="LiteralNumberFloat"/>
-      </rule>
-      <rule pattern="-?[0-9]+">
-        <token type="LiteralNumberInteger"/>
-      </rule>
-      <rule pattern="#.*?$">
-        <token type="CommentSingle"/>
-      </rule>
-      <rule pattern="(\+|\-|\*|\/|\%|\^)">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="==|!=|&gt;=|&lt;=|&lt;|&gt;">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="and|or|unless">
-        <token type="OperatorWord"/>
-      </rule>
-      <rule pattern="[_a-zA-Z][a-zA-Z0-9_]+">
-        <token type="NameVariable"/>
-      </rule>
-      <rule pattern="([&#34;\&#39;])(.*?)([&#34;\&#39;])">
-        <bygroups>
-          <token type="Punctuation"/>
-          <token type="LiteralString"/>
-          <token type="Punctuation"/>
-        </bygroups>
-      </rule>
-      <rule pattern="\(">
-        <token type="Operator"/>
-        <push state="function"/>
-      </rule>
-      <rule pattern="\)">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="\{">
-        <token type="Punctuation"/>
-        <push state="labels"/>
-      </rule>
-      <rule pattern="\[">
-        <token type="Punctuation"/>
-        <push state="range"/>
-      </rule>
-    </state>
-    <state name="labels">
-      <rule pattern="\}">
-        <token type="Punctuation"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="\n">
-        <token type="TextWhitespace"/>
-      </rule>
-      <rule pattern="\s+">
-        <token type="TextWhitespace"/>
-      </rule>
-      <rule pattern=",">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="([_a-zA-Z][a-zA-Z0-9_]*?)(\s*?)(=~|!=|=|!~)(\s*?)(&#34;|&#39;)(.*?)(&#34;|&#39;)">
-        <bygroups>
-          <token type="NameLabel"/>
-          <token type="TextWhitespace"/>
-          <token type="Operator"/>
-          <token type="TextWhitespace"/>
-          <token type="Punctuation"/>
-          <token type="LiteralString"/>
-          <token type="Punctuation"/>
-        </bygroups>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/properties.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/properties.xml	(revision 67)
+++ 	(revision )
@@ -1,45 +1,0 @@
-<lexer>
-  <config>
-    <name>properties</name>
-    <alias>java-properties</alias>
-    <filename>*.properties</filename>
-    <mime_type>text/x-java-properties</mime_type>
-  </config>
-  <rules>
-    <state name="root">
-      <rule pattern="^([ \t\f]*)([#!].*)">
-        <bygroups>
-          <token type="Text"/>
-          <token type="CommentSingle"/>
-        </bygroups>
-      </rule>
-      <rule pattern="^([ \t\f]*)(\S+?)([ \t\f]*)([=:])([ \t\f]*)(.*(?:(?&lt;=\\)\n.*)*)">
-        <bygroups>
-          <token type="Text"/>
-          <token type="NameAttribute"/>
-          <token type="Text"/>
-          <token type="Operator"/>
-          <token type="Text"/>
-          <token type="LiteralString"/>
-        </bygroups>
-      </rule>
-      <rule pattern="^([ \t\f]*)(\S+)([ \t\f]+)(.*(?:(?&lt;=\\)\n.*)*)">
-        <bygroups>
-          <token type="Text"/>
-          <token type="NameAttribute"/>
-          <token type="Text"/>
-          <token type="LiteralString"/>
-        </bygroups>
-      </rule>
-      <rule pattern="^([ \t\f]*)(\w+)$">
-        <bygroups>
-          <token type="Text"/>
-          <token type="NameAttribute"/>
-        </bygroups>
-      </rule>
-       <rule pattern="\n">
-        <token type="Text"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/protobuf.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/protobuf.xml	(revision 67)
+++ 	(revision )
@@ -1,118 +1,0 @@
-<lexer>
-  <config>
-    <name>Protocol Buffer</name>
-    <alias>protobuf</alias>
-    <alias>proto</alias>
-    <filename>*.proto</filename>
-  </config>
-  <rules>
-    <state name="root">
-      <rule pattern="[ \t]+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="[,;{}\[\]()&lt;&gt;]">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="/(\\\n)?/(\n|(.|\n)*?[^\\]\n)">
-        <token type="CommentSingle"/>
-      </rule>
-      <rule pattern="/(\\\n)?\*(.|\n)*?\*(\\\n)?/">
-        <token type="CommentMultiline"/>
-      </rule>
-      <rule pattern="\b(extensions|required|repeated|optional|returns|default|option|packed|import|ctype|oneof|max|rpc|to)\b">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="(sfixed32|sfixed64|fixed32|fixed64|sint32|sint64|double|string|uint32|uint64|int32|float|int64|bytes|bool)\b">
-        <token type="KeywordType"/>
-      </rule>
-      <rule pattern="(true|false)\b">
-        <token type="KeywordConstant"/>
-      </rule>
-      <rule pattern="(package)(\s+)">
-        <bygroups>
-          <token type="KeywordNamespace"/>
-          <token type="Text"/>
-        </bygroups>
-        <push state="package"/>
-      </rule>
-      <rule pattern="(message|extend)(\s+)">
-        <bygroups>
-          <token type="KeywordDeclaration"/>
-          <token type="Text"/>
-        </bygroups>
-        <push state="message"/>
-      </rule>
-      <rule pattern="(enum|group|service)(\s+)">
-        <bygroups>
-          <token type="KeywordDeclaration"/>
-          <token type="Text"/>
-        </bygroups>
-        <push state="type"/>
-      </rule>
-      <rule pattern="\&#34;.*?\&#34;">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="\&#39;.*?\&#39;">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="(\d+\.\d*|\.\d+|\d+)[eE][+-]?\d+[LlUu]*">
-        <token type="LiteralNumberFloat"/>
-      </rule>
-      <rule pattern="(\d+\.\d*|\.\d+|\d+[fF])[fF]?">
-        <token type="LiteralNumberFloat"/>
-      </rule>
-      <rule pattern="(\-?(inf|nan))\b">
-        <token type="LiteralNumberFloat"/>
-      </rule>
-      <rule pattern="0x[0-9a-fA-F]+[LlUu]*">
-        <token type="LiteralNumberHex"/>
-      </rule>
-      <rule pattern="0[0-7]+[LlUu]*">
-        <token type="LiteralNumberOct"/>
-      </rule>
-      <rule pattern="\d+[LlUu]*">
-        <token type="LiteralNumberInteger"/>
-      </rule>
-      <rule pattern="[+-=]">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="([a-zA-Z_][\w.]*)([ \t]*)(=)">
-        <bygroups>
-          <token type="Name"/>
-          <token type="Text"/>
-          <token type="Operator"/>
-        </bygroups>
-      </rule>
-      <rule pattern="[a-zA-Z_][\w.]*">
-        <token type="Name"/>
-      </rule>
-    </state>
-    <state name="package">
-      <rule pattern="[a-zA-Z_]\w*">
-        <token type="NameNamespace"/>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="message">
-      <rule pattern="[a-zA-Z_]\w*">
-        <token type="NameClass"/>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="type">
-      <rule pattern="[a-zA-Z_]\w*">
-        <token type="Name"/>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <pop depth="1"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/puppet.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/puppet.xml	(revision 67)
+++ 	(revision )
@@ -1,100 +1,0 @@
-<lexer>
-  <config>
-    <name>Puppet</name>
-    <alias>puppet</alias>
-    <filename>*.pp</filename>
-  </config>
-  <rules>
-    <state name="strings">
-      <rule pattern="&#34;([^&#34;])*&#34;">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="&#39;(\\&#39;|[^&#39;])*&#39;">
-        <token type="LiteralString"/>
-      </rule>
-    </state>
-    <state name="root">
-      <rule>
-        <include state="comments"/>
-      </rule>
-      <rule>
-        <include state="keywords"/>
-      </rule>
-      <rule>
-        <include state="names"/>
-      </rule>
-      <rule>
-        <include state="numbers"/>
-      </rule>
-      <rule>
-        <include state="operators"/>
-      </rule>
-      <rule>
-        <include state="strings"/>
-      </rule>
-      <rule pattern="[]{}:(),;[]">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="[^\S\n]+">
-        <token type="Text"/>
-      </rule>
-    </state>
-    <state name="comments">
-      <rule pattern="\s*#.*$">
-        <token type="Comment"/>
-      </rule>
-      <rule pattern="/(\\\n)?[*](.|\n)*?[*](\\\n)?/">
-        <token type="CommentMultiline"/>
-      </rule>
-    </state>
-    <state name="operators">
-      <rule pattern="(=&gt;|\?|&lt;|&gt;|=|\+|-|/|\*|~|!|\|)">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="(in|and|or|not)\b">
-        <token type="OperatorWord"/>
-      </rule>
-    </state>
-    <state name="names">
-      <rule pattern="[a-zA-Z_]\w*">
-        <token type="NameAttribute"/>
-      </rule>
-      <rule pattern="(\$\S+)(\[)(\S+)(\])">
-        <bygroups>
-          <token type="NameVariable"/>
-          <token type="Punctuation"/>
-          <token type="LiteralString"/>
-          <token type="Punctuation"/>
-        </bygroups>
-      </rule>
-      <rule pattern="\$\S+">
-        <token type="NameVariable"/>
-      </rule>
-    </state>
-    <state name="numbers">
-      <rule pattern="(\d+\.\d*|\d*\.\d+)([eE][+-]?[0-9]+)?j?">
-        <token type="LiteralNumberFloat"/>
-      </rule>
-      <rule pattern="\d+[eE][+-]?[0-9]+j?">
-        <token type="LiteralNumberFloat"/>
-      </rule>
-      <rule pattern="0[0-7]+j?">
-        <token type="LiteralNumberOct"/>
-      </rule>
-      <rule pattern="0[xX][a-fA-F0-9]+">
-        <token type="LiteralNumberHex"/>
-      </rule>
-      <rule pattern="\d+L">
-        <token type="LiteralNumberIntegerLong"/>
-      </rule>
-      <rule pattern="\d+j?">
-        <token type="LiteralNumberInteger"/>
-      </rule>
-    </state>
-    <state name="keywords">
-      <rule pattern="(?i)(nagios_servicedependency|nagios_serviceescalation|nagios_hostdependency|nagios_hostescalation|nagios_serviceextinfo|nagios_contactgroup|nagios_servicegroup|ssh_authorized_key|nagios_hostextinfo|nagios_timeperiod|nagios_hostgroup|macauthorization|create_resources|inline_template|scheduled_task|nagios_contact|nagios_command|nagios_service|nagios_host|configured|versioncmp|selboolean|filebucket|shellquote|selmodule|extlookup|unmounted|interface|contained|resources|fqdn_rand|installed|mailalias|directory|subscribe|loglevel|computer|maillist|schedule|generate|template|regsubst|inherits|present|sprintf|service|stopped|running|package|realize|defined|mounted|warning|yumrepo|k5login|include|default|notice|purged|latest|router|search|sshkey|define|notify|absent|before|augeas|import|tagged|split|undef|mount|check|alert|class|audit|debug|alias|stage|elsif|false|zpool|emerg|noop|sha1|vlan|exec|fail|file|else|host|info|cron|role|link|zone|tidy|true|node|case|user|crit|err|mcx|zfs|md5|tag|if)\b">
-        <token type="Keyword"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/python.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/python.xml	(revision 67)
+++ 	(revision )
@@ -1,589 +1,0 @@
-<lexer>
-  <config>
-    <name>Python</name>
-    <alias>python</alias>
-    <alias>py</alias>
-    <alias>sage</alias>
-    <alias>python3</alias>
-    <alias>py3</alias>
-    <filename>*.py</filename>
-    <filename>*.pyi</filename>
-    <filename>*.pyw</filename>
-    <filename>*.jy</filename>
-    <filename>*.sage</filename>
-    <filename>*.sc</filename>
-    <filename>SConstruct</filename>
-    <filename>SConscript</filename>
-    <filename>*.bzl</filename>
-    <filename>BUCK</filename>
-    <filename>BUILD</filename>
-    <filename>BUILD.bazel</filename>
-    <filename>WORKSPACE</filename>
-    <filename>*.tac</filename>
-    <mime_type>text/x-python</mime_type>
-    <mime_type>application/x-python</mime_type>
-    <mime_type>text/x-python3</mime_type>
-    <mime_type>application/x-python3</mime_type>
-  </config>
-  <rules>
-    <state name="numbers">
-      <rule pattern="(\d(?:_?\d)*\.(?:\d(?:_?\d)*)?|(?:\d(?:_?\d)*)?\.\d(?:_?\d)*)([eE][+-]?\d(?:_?\d)*)?">
-        <token type="LiteralNumberFloat"/>
-      </rule>
-      <rule pattern="\d(?:_?\d)*[eE][+-]?\d(?:_?\d)*j?">
-        <token type="LiteralNumberFloat"/>
-      </rule>
-      <rule pattern="0[oO](?:_?[0-7])+">
-        <token type="LiteralNumberOct"/>
-      </rule>
-      <rule pattern="0[bB](?:_?[01])+">
-        <token type="LiteralNumberBin"/>
-      </rule>
-      <rule pattern="0[xX](?:_?[a-fA-F0-9])+">
-        <token type="LiteralNumberHex"/>
-      </rule>
-      <rule pattern="\d(?:_?\d)*">
-        <token type="LiteralNumberInteger"/>
-      </rule>
-    </state>
-    <state name="expr">
-      <rule pattern="(?i)(rf|fr)(&#34;&#34;&#34;)">
-        <bygroups>
-          <token type="LiteralStringAffix"/>
-          <token type="LiteralStringDouble"/>
-        </bygroups>
-        <combined state="rfstringescape" state="tdqf"/>
-      </rule>
-      <rule pattern="(?i)(rf|fr)(&#39;&#39;&#39;)">
-        <bygroups>
-          <token type="LiteralStringAffix"/>
-          <token type="LiteralStringSingle"/>
-        </bygroups>
-        <combined state="rfstringescape" state="tsqf"/>
-      </rule>
-      <rule pattern="(?i)(rf|fr)(&#34;)">
-        <bygroups>
-          <token type="LiteralStringAffix"/>
-          <token type="LiteralStringDouble"/>
-        </bygroups>
-        <combined state="rfstringescape" state="dqf"/>
-      </rule>
-      <rule pattern="(?i)(rf|fr)(&#39;)">
-        <bygroups>
-          <token type="LiteralStringAffix"/>
-          <token type="LiteralStringSingle"/>
-        </bygroups>
-        <combined state="rfstringescape" state="sqf"/>
-      </rule>
-      <rule pattern="([fF])(&#34;&#34;&#34;)">
-        <bygroups>
-          <token type="LiteralStringAffix"/>
-          <token type="LiteralStringDouble"/>
-        </bygroups>
-        <combined state="fstringescape" state="tdqf"/>
-      </rule>
-      <rule pattern="([fF])(&#39;&#39;&#39;)">
-        <bygroups>
-          <token type="LiteralStringAffix"/>
-          <token type="LiteralStringSingle"/>
-        </bygroups>
-        <combined state="fstringescape" state="tsqf"/>
-      </rule>
-      <rule pattern="([fF])(&#34;)">
-        <bygroups>
-          <token type="LiteralStringAffix"/>
-          <token type="LiteralStringDouble"/>
-        </bygroups>
-        <combined state="fstringescape" state="dqf"/>
-      </rule>
-      <rule pattern="([fF])(&#39;)">
-        <bygroups>
-          <token type="LiteralStringAffix"/>
-          <token type="LiteralStringSingle"/>
-        </bygroups>
-        <combined state="fstringescape" state="sqf"/>
-      </rule>
-      <rule pattern="(?i)(rb|br|r)(&#34;&#34;&#34;)">
-        <bygroups>
-          <token type="LiteralStringAffix"/>
-          <token type="LiteralStringDouble"/>
-        </bygroups>
-        <push state="tdqs"/>
-      </rule>
-      <rule pattern="(?i)(rb|br|r)(&#39;&#39;&#39;)">
-        <bygroups>
-          <token type="LiteralStringAffix"/>
-          <token type="LiteralStringSingle"/>
-        </bygroups>
-        <push state="tsqs"/>
-      </rule>
-      <rule pattern="(?i)(rb|br|r)(&#34;)">
-        <bygroups>
-          <token type="LiteralStringAffix"/>
-          <token type="LiteralStringDouble"/>
-        </bygroups>
-        <push state="dqs"/>
-      </rule>
-      <rule pattern="(?i)(rb|br|r)(&#39;)">
-        <bygroups>
-          <token type="LiteralStringAffix"/>
-          <token type="LiteralStringSingle"/>
-        </bygroups>
-        <push state="sqs"/>
-      </rule>
-      <rule pattern="([uUbB]?)(&#34;&#34;&#34;)">
-        <bygroups>
-          <token type="LiteralStringAffix"/>
-          <token type="LiteralStringDouble"/>
-        </bygroups>
-        <combined state="stringescape" state="tdqs"/>
-      </rule>
-      <rule pattern="([uUbB]?)(&#39;&#39;&#39;)">
-        <bygroups>
-          <token type="LiteralStringAffix"/>
-          <token type="LiteralStringSingle"/>
-        </bygroups>
-        <combined state="stringescape" state="tsqs"/>
-      </rule>
-      <rule pattern="([uUbB]?)(&#34;)">
-        <bygroups>
-          <token type="LiteralStringAffix"/>
-          <token type="LiteralStringDouble"/>
-        </bygroups>
-        <combined state="stringescape" state="dqs"/>
-      </rule>
-      <rule pattern="([uUbB]?)(&#39;)">
-        <bygroups>
-          <token type="LiteralStringAffix"/>
-          <token type="LiteralStringSingle"/>
-        </bygroups>
-        <combined state="stringescape" state="sqs"/>
-      </rule>
-      <rule pattern="[^\S\n]+">
-        <token type="Text"/>
-      </rule>
-      <rule>
-        <include state="numbers"/>
-      </rule>
-      <rule pattern="!=|==|&lt;&lt;|&gt;&gt;|:=|[-~+/*%=&lt;&gt;&amp;^|.]">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="[]{}:(),;[]">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="(in|is|and|or|not)\b">
-        <token type="OperatorWord"/>
-      </rule>
-      <rule>
-        <include state="expr-keywords"/>
-      </rule>
-      <rule>
-        <include state="builtins"/>
-      </rule>
-      <rule>
-        <include state="magicfuncs"/>
-      </rule>
-      <rule>
-        <include state="magicvars"/>
-      </rule>
-      <rule>
-        <include state="name"/>
-      </rule>
-    </state>
-    <state name="fstrings-double">
-      <rule pattern="\}">
-        <token type="LiteralStringInterpol"/>
-      </rule>
-      <rule pattern="\{">
-        <token type="LiteralStringInterpol"/>
-        <push state="expr-inside-fstring"/>
-      </rule>
-      <rule pattern="[^\\\&#39;&#34;{}\n]+">
-        <token type="LiteralStringDouble"/>
-      </rule>
-      <rule pattern="[\&#39;&#34;\\]">
-        <token type="LiteralStringDouble"/>
-      </rule>
-    </state>
-    <state name="keywords">
-      <rule pattern="(yield from|nonlocal|continue|finally|except|lambda|assert|global|return|raise|yield|while|break|await|async|pass|else|elif|with|try|for|del|as|if)\b">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="(False|True|None)\b">
-        <token type="KeywordConstant"/>
-      </rule>
-    </state>
-    <state name="dqs">
-      <rule pattern="&#34;">
-        <token type="LiteralStringDouble"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="\\\\|\\&#34;|\\\n">
-        <token type="LiteralStringEscape"/>
-      </rule>
-      <rule>
-        <include state="strings-double"/>
-      </rule>
-    </state>
-    <state name="fromimport">
-      <rule pattern="(\s+)(import)\b">
-        <bygroups>
-          <token type="Text"/>
-          <token type="KeywordNamespace"/>
-        </bygroups>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="\.">
-        <token type="NameNamespace"/>
-      </rule>
-      <rule pattern="None\b">
-        <token type="NameBuiltinPseudo"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="[_\p{L}][_\p{L}\p{N}]*">
-        <token type="NameNamespace"/>
-      </rule>
-      <rule>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="builtins">
-      <rule pattern="(?&lt;!\.)(staticmethod|classmethod|memoryview|__import__|issubclass|isinstance|frozenset|bytearray|enumerate|reversed|property|compile|complex|delattr|hasattr|setattr|globals|getattr|divmod|filter|locals|format|object|sorted|slice|print|bytes|range|input|tuple|round|super|float|eval|list|dict|repr|type|vars|hash|next|bool|open|iter|oct|pow|min|zip|max|map|bin|len|set|any|dir|all|abs|str|sum|chr|int|hex|ord|id)\b">
-        <token type="NameBuiltin"/>
-      </rule>
-      <rule pattern="(?&lt;!\.)(self|Ellipsis|NotImplemented|cls)\b">
-        <token type="NameBuiltinPseudo"/>
-      </rule>
-      <rule pattern="(?&lt;!\.)(PendingDeprecationWarning|ConnectionAbortedError|ConnectionRefusedError|UnicodeTranslateError|ConnectionResetError|ModuleNotFoundError|NotImplementedError|FloatingPointError|StopAsyncIteration|UnicodeDecodeError|DeprecationWarning|UnicodeEncodeError|NotADirectoryError|ProcessLookupError|ZeroDivisionError|IsADirectoryError|FileNotFoundError|UnboundLocalError|KeyboardInterrupt|ChildProcessError|EnvironmentError|IndentationError|InterruptedError|BlockingIOError|ArithmeticError|ConnectionError|BrokenPipeError|FileExistsError|ResourceWarning|PermissionError|RuntimeWarning|ReferenceError|AttributeError|AssertionError|UnicodeWarning|RecursionError|StopIteration|BaseException|OverflowError|SyntaxWarning|FutureWarning|GeneratorExit|ImportWarning|UnicodeError|TimeoutError|WindowsError|RuntimeError|BytesWarning|SystemError|UserWarning|MemoryError|ImportError|LookupError|BufferError|SyntaxError|SystemExit|ValueError|IndexError|NameError|Exception|TypeError|TabError|EOFError|KeyError|VMSError|Warning|OSError|IOError)\b">
-        <token type="NameException"/>
-      </rule>
-    </state>
-    <state name="classname">
-      <rule pattern="[_\p{L}][_\p{L}\p{N}]*">
-        <token type="NameClass"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="import">
-      <rule pattern="(\s+)(as)(\s+)">
-        <bygroups>
-          <token type="Text"/>
-          <token type="Keyword"/>
-          <token type="Text"/>
-        </bygroups>
-      </rule>
-      <rule pattern="\.">
-        <token type="NameNamespace"/>
-      </rule>
-      <rule pattern="[_\p{L}][_\p{L}\p{N}]*">
-        <token type="NameNamespace"/>
-      </rule>
-      <rule pattern="(\s*)(,)(\s*)">
-        <bygroups>
-          <token type="Text"/>
-          <token type="Operator"/>
-          <token type="Text"/>
-        </bygroups>
-      </rule>
-      <rule>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="tsqs">
-      <rule pattern="&#39;&#39;&#39;">
-        <token type="LiteralStringSingle"/>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <include state="strings-single"/>
-      </rule>
-      <rule pattern="\n">
-        <token type="LiteralStringSingle"/>
-      </rule>
-    </state>
-    <state name="strings-double">
-      <rule pattern="%(\(\w+\))?[-#0 +]*([0-9]+|[*])?(\.([0-9]+|[*]))?[hlL]?[E-GXc-giorsaux%]">
-        <token type="LiteralStringInterpol"/>
-      </rule>
-      <rule pattern="\{((\w+)((\.\w+)|(\[[^\]]+\]))*)?(\![sra])?(\:(.?[&lt;&gt;=\^])?[-+ ]?#?0?(\d+)?,?(\.\d+)?[E-GXb-gnosx%]?)?\}">
-        <token type="LiteralStringInterpol"/>
-      </rule>
-      <rule pattern="[^\\\&#39;&#34;%{\n]+">
-        <token type="LiteralStringDouble"/>
-      </rule>
-      <rule pattern="[\&#39;&#34;\\]">
-        <token type="LiteralStringDouble"/>
-      </rule>
-      <rule pattern="%|(\{{1,2})">
-        <token type="LiteralStringDouble"/>
-      </rule>
-    </state>
-    <state name="tdqf">
-      <rule pattern="&#34;&#34;&#34;">
-        <token type="LiteralStringDouble"/>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <include state="fstrings-double"/>
-      </rule>
-      <rule pattern="\n">
-        <token type="LiteralStringDouble"/>
-      </rule>
-    </state>
-    <state name="expr-inside-fstring-inner">
-      <rule pattern="[{([]">
-        <token type="Punctuation"/>
-        <push state="expr-inside-fstring-inner"/>
-      </rule>
-      <rule pattern="[])}]">
-        <token type="Punctuation"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="\s+">
-        <token type="Text"/>
-      </rule>
-      <rule>
-        <include state="expr"/>
-      </rule>
-    </state>
-    <state name="sqs">
-      <rule pattern="&#39;">
-        <token type="LiteralStringSingle"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="\\\\|\\&#39;|\\\n">
-        <token type="LiteralStringEscape"/>
-      </rule>
-      <rule>
-        <include state="strings-single"/>
-      </rule>
-    </state>
-    <state name="funcname">
-      <rule>
-        <include state="magicfuncs"/>
-      </rule>
-      <rule pattern="[_\p{L}][_\p{L}\p{N}]*">
-        <token type="NameFunction"/>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="expr-keywords">
-      <rule pattern="(yield from|async for|lambda|yield|await|else|for|if)\b">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="(False|True|None)\b">
-        <token type="KeywordConstant"/>
-      </rule>
-    </state>
-    <state name="name">
-      <rule pattern="@[_\p{L}][_\p{L}\p{N}]*">
-        <token type="NameDecorator"/>
-      </rule>
-      <rule pattern="@">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="[_\p{L}][_\p{L}\p{N}]*">
-        <token type="Name"/>
-      </rule>
-    </state>
-    <state name="magicfuncs">
-      <rule pattern="(__instancecheck__|__subclasscheck__|__getattribute__|__length_hint__|__rfloordiv__|__ifloordiv__|__itruediv__|__contains__|__floordiv__|__rtruediv__|__reversed__|__setitem__|__complex__|__rdivmod__|__delattr__|__rmatmul__|__ilshift__|__prepare__|__delitem__|__rrshift__|__imatmul__|__rlshift__|__setattr__|__truediv__|__getitem__|__missing__|__getattr__|__irshift__|__rshift__|__format__|__invert__|__matmul__|__divmod__|__delete__|__aenter__|__lshift__|__await__|__bytes__|__anext__|__aiter__|__aexit__|__round__|__float__|__enter__|__index__|__iadd__|__ipow__|__rpow__|__iter__|__init__|__ixor__|__rmul__|__rmod__|__imul__|__imod__|__iand__|__hash__|__rsub__|__exit__|__rxor__|__bool__|__call__|__rand__|__next__|__radd__|__isub__|__repr__|__set__|__add__|__new__|__neg__|__xor__|__and__|__mul__|__mod__|__sub__|__len__|__str__|__ror__|__ior__|__pos__|__del__|__get__|__dir__|__abs__|__int__|__pow__|__eq__|__gt__|__le__|__lt__|__ne__|__or__|__ge__)\b">
-        <token type="NameFunctionMagic"/>
-      </rule>
-    </state>
-    <state name="root">
-      <rule pattern="\n">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="^(\s*)([rRuUbB]{,2})(&#34;&#34;&#34;(?:.|\n)*?&#34;&#34;&#34;)">
-        <bygroups>
-          <token type="Text"/>
-          <token type="LiteralStringAffix"/>
-          <token type="LiteralStringDoc"/>
-        </bygroups>
-      </rule>
-      <rule pattern="^(\s*)([rRuUbB]{,2})(&#39;&#39;&#39;(?:.|\n)*?&#39;&#39;&#39;)">
-        <bygroups>
-          <token type="Text"/>
-          <token type="LiteralStringAffix"/>
-          <token type="LiteralStringDoc"/>
-        </bygroups>
-      </rule>
-      <rule pattern="\A#!.+$">
-        <token type="CommentHashbang"/>
-      </rule>
-      <rule pattern="#.*$">
-        <token type="CommentSingle"/>
-      </rule>
-      <rule pattern="\\\n">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="\\">
-        <token type="Text"/>
-      </rule>
-      <rule>
-        <include state="keywords"/>
-      </rule>
-      <rule pattern="(def)((?:\s|\\\s)+)">
-        <bygroups>
-          <token type="Keyword"/>
-          <token type="Text"/>
-        </bygroups>
-        <push state="funcname"/>
-      </rule>
-      <rule pattern="(class)((?:\s|\\\s)+)">
-        <bygroups>
-          <token type="Keyword"/>
-          <token type="Text"/>
-        </bygroups>
-        <push state="classname"/>
-      </rule>
-      <rule pattern="(from)((?:\s|\\\s)+)">
-        <bygroups>
-          <token type="KeywordNamespace"/>
-          <token type="Text"/>
-        </bygroups>
-        <push state="fromimport"/>
-      </rule>
-      <rule pattern="(import)((?:\s|\\\s)+)">
-        <bygroups>
-          <token type="KeywordNamespace"/>
-          <token type="Text"/>
-        </bygroups>
-        <push state="import"/>
-      </rule>
-      <rule>
-        <include state="expr"/>
-      </rule>
-    </state>
-    <state name="fstrings-single">
-      <rule pattern="\}">
-        <token type="LiteralStringInterpol"/>
-      </rule>
-      <rule pattern="\{">
-        <token type="LiteralStringInterpol"/>
-        <push state="expr-inside-fstring"/>
-      </rule>
-      <rule pattern="[^\\\&#39;&#34;{}\n]+">
-        <token type="LiteralStringSingle"/>
-      </rule>
-      <rule pattern="[\&#39;&#34;\\]">
-        <token type="LiteralStringSingle"/>
-      </rule>
-    </state>
-    <state name="magicvars">
-      <rule pattern="(__annotations__|__kwdefaults__|__qualname__|__objclass__|__defaults__|__closure__|__globals__|__weakref__|__module__|__class__|__bases__|__slots__|__file__|__code__|__name__|__func__|__dict__|__self__|__mro__|__doc__)\b">
-        <token type="NameVariableMagic"/>
-      </rule>
-    </state>
-    <state name="tsqf">
-      <rule pattern="&#39;&#39;&#39;">
-        <token type="LiteralStringSingle"/>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <include state="fstrings-single"/>
-      </rule>
-      <rule pattern="\n">
-        <token type="LiteralStringSingle"/>
-      </rule>
-    </state>
-    <state name="strings-single">
-      <rule pattern="%(\(\w+\))?[-#0 +]*([0-9]+|[*])?(\.([0-9]+|[*]))?[hlL]?[E-GXc-giorsaux%]">
-        <token type="LiteralStringInterpol"/>
-      </rule>
-      <rule pattern="\{((\w+)((\.\w+)|(\[[^\]]+\]))*)?(\![sra])?(\:(.?[&lt;&gt;=\^])?[-+ ]?#?0?(\d+)?,?(\.\d+)?[E-GXb-gnosx%]?)?\}">
-        <token type="LiteralStringInterpol"/>
-      </rule>
-      <rule pattern="[^\\\&#39;&#34;%{\n]+">
-        <token type="LiteralStringSingle"/>
-      </rule>
-      <rule pattern="[\&#39;&#34;\\]">
-        <token type="LiteralStringSingle"/>
-      </rule>
-      <rule pattern="%|(\{{1,2})">
-        <token type="LiteralStringSingle"/>
-      </rule>
-    </state>
-    <state name="rfstringescape">
-      <rule pattern="\{\{">
-        <token type="LiteralStringEscape"/>
-      </rule>
-      <rule pattern="\}\}">
-        <token type="LiteralStringEscape"/>
-      </rule>
-    </state>
-    <state name="sqf">
-      <rule pattern="&#39;">
-        <token type="LiteralStringSingle"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="\\\\|\\&#39;|\\\n">
-        <token type="LiteralStringEscape"/>
-      </rule>
-      <rule>
-        <include state="fstrings-single"/>
-      </rule>
-    </state>
-    <state name="dqf">
-      <rule pattern="&#34;">
-        <token type="LiteralStringDouble"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="\\\\|\\&#34;|\\\n">
-        <token type="LiteralStringEscape"/>
-      </rule>
-      <rule>
-        <include state="fstrings-double"/>
-      </rule>
-    </state>
-    <state name="expr-inside-fstring">
-      <rule pattern="[{([]">
-        <token type="Punctuation"/>
-        <push state="expr-inside-fstring-inner"/>
-      </rule>
-      <rule pattern="(=\s*)?(\![sraf])?\}">
-        <token type="LiteralStringInterpol"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="(=\s*)?(\![sraf])?:">
-        <token type="LiteralStringInterpol"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="\s+">
-        <token type="Text"/>
-      </rule>
-      <rule>
-        <include state="expr"/>
-      </rule>
-    </state>
-    <state name="tdqs">
-      <rule pattern="&#34;&#34;&#34;">
-        <token type="LiteralStringDouble"/>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <include state="strings-double"/>
-      </rule>
-      <rule pattern="\n">
-        <token type="LiteralStringDouble"/>
-      </rule>
-    </state>
-    <state name="fstringescape">
-      <rule>
-        <include state="rfstringescape"/>
-      </rule>
-      <rule>
-        <include state="stringescape"/>
-      </rule>
-    </state>
-    <state name="stringescape">
-      <rule pattern="\\([\\abfnrtv&#34;\&#39;]|\n|N\{.*?\}|u[a-fA-F0-9]{4}|U[a-fA-F0-9]{8}|x[a-fA-F0-9]{2}|[0-7]{1,3})">
-        <token type="LiteralStringEscape"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/python_2.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/python_2.xml	(revision 67)
+++ 	(revision )
@@ -1,356 +1,0 @@
-<lexer>
-  <config>
-    <name>Python 2</name>
-    <alias>python2</alias>
-    <alias>py2</alias>
-    <mime_type>text/x-python2</mime_type>
-    <mime_type>application/x-python2</mime_type>
-  </config>
-  <rules>
-    <state name="tdqs">
-      <rule pattern="&#34;&#34;&#34;">
-        <token type="LiteralStringDouble"/>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <include state="strings-double"/>
-      </rule>
-      <rule pattern="\n">
-        <token type="LiteralStringDouble"/>
-      </rule>
-    </state>
-    <state name="name">
-      <rule pattern="@[\w.]+">
-        <token type="NameDecorator"/>
-      </rule>
-      <rule pattern="[a-zA-Z_]\w*">
-        <token type="Name"/>
-      </rule>
-    </state>
-    <state name="magicfuncs">
-      <rule pattern="(__instancecheck__|__subclasscheck__|__getattribute__|__rfloordiv__|__ifloordiv__|__setslice__|__getslice__|__contains__|__reversed__|__floordiv__|__rtruediv__|__itruediv__|__delslice__|__rlshift__|__rrshift__|__delitem__|__rdivmod__|__nonzero__|__missing__|__delattr__|__setattr__|__irshift__|__complex__|__setitem__|__getitem__|__truediv__|__unicode__|__ilshift__|__getattr__|__delete__|__coerce__|__invert__|__lshift__|__divmod__|__rshift__|__enter__|__index__|__float__|__iadd__|__rsub__|__init__|__imul__|__rpow__|__repr__|__rmul__|__isub__|__iter__|__rmod__|__ixor__|__call__|__imod__|__long__|__hash__|__rxor__|__idiv__|__iand__|__rdiv__|__ipow__|__rcmp__|__rand__|__exit__|__radd__|__str__|__cmp__|__pos__|__pow__|__oct__|__new__|__neg__|__mul__|__mod__|__set__|__xor__|__sub__|__len__|__and__|__get__|__rop__|__add__|__ior__|__div__|__iop__|__int__|__abs__|__hex__|__ror__|__del__|__eq__|__or__|__ne__|__lt__|__le__|__ge__|__gt__|__op__)\b">
-        <token type="NameFunctionMagic"/>
-      </rule>
-    </state>
-    <state name="keywords">
-      <rule pattern="(yield from|continue|finally|lambda|assert|global|except|return|print|yield|while|break|raise|elif|pass|exec|else|with|try|for|del|as|if)\b">
-        <token type="Keyword"/>
-      </rule>
-    </state>
-    <state name="tsqs">
-      <rule pattern="&#39;&#39;&#39;">
-        <token type="LiteralStringSingle"/>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <include state="strings-single"/>
-      </rule>
-      <rule pattern="\n">
-        <token type="LiteralStringSingle"/>
-      </rule>
-    </state>
-    <state name="stringescape">
-      <rule pattern="\\([\\abfnrtv&#34;\&#39;]|\n|N\{.*?\}|u[a-fA-F0-9]{4}|U[a-fA-F0-9]{8}|x[a-fA-F0-9]{2}|[0-7]{1,3})">
-        <token type="LiteralStringEscape"/>
-      </rule>
-    </state>
-    <state name="numbers">
-      <rule pattern="(\d+\.\d*|\d*\.\d+)([eE][+-]?[0-9]+)?j?">
-        <token type="LiteralNumberFloat"/>
-      </rule>
-      <rule pattern="\d+[eE][+-]?[0-9]+j?">
-        <token type="LiteralNumberFloat"/>
-      </rule>
-      <rule pattern="0[0-7]+j?">
-        <token type="LiteralNumberOct"/>
-      </rule>
-      <rule pattern="0[bB][01]+">
-        <token type="LiteralNumberBin"/>
-      </rule>
-      <rule pattern="0[xX][a-fA-F0-9]+">
-        <token type="LiteralNumberHex"/>
-      </rule>
-      <rule pattern="\d+L">
-        <token type="LiteralNumberIntegerLong"/>
-      </rule>
-      <rule pattern="\d+j?">
-        <token type="LiteralNumberInteger"/>
-      </rule>
-    </state>
-    <state name="import">
-      <rule pattern="(?:[ \t]|\\\n)+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="as\b">
-        <token type="KeywordNamespace"/>
-      </rule>
-      <rule pattern=",">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="[a-zA-Z_][\w.]*">
-        <token type="NameNamespace"/>
-      </rule>
-      <rule>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="magicvars">
-      <rule pattern="(__metaclass__|__defaults__|__globals__|__closure__|__weakref__|__module__|__slots__|__class__|__bases__|__file__|__func__|__dict__|__name__|__self__|__code__|__mro__|__doc__)\b">
-        <token type="NameVariableMagic"/>
-      </rule>
-    </state>
-    <state name="fromimport">
-      <rule pattern="(?:[ \t]|\\\n)+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="import\b">
-        <token type="KeywordNamespace"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="None\b">
-        <token type="NameBuiltinPseudo"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="[a-zA-Z_.][\w.]*">
-        <token type="NameNamespace"/>
-      </rule>
-      <rule>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="strings-single">
-      <rule pattern="%(\(\w+\))?[-#0 +]*([0-9]+|[*])?(\.([0-9]+|[*]))?[hlL]?[E-GXc-giorsux%]">
-        <token type="LiteralStringInterpol"/>
-      </rule>
-      <rule pattern="[^\\\&#39;&#34;%\n]+">
-        <token type="LiteralStringSingle"/>
-      </rule>
-      <rule pattern="[\&#39;&#34;\\]">
-        <token type="LiteralStringSingle"/>
-      </rule>
-      <rule pattern="%">
-        <token type="LiteralStringSingle"/>
-      </rule>
-    </state>
-    <state name="funcname">
-      <rule>
-        <include state="magicfuncs"/>
-      </rule>
-      <rule pattern="[a-zA-Z_]\w*">
-        <token type="NameFunction"/>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="classname">
-      <rule pattern="[a-zA-Z_]\w*">
-        <token type="NameClass"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="backtick">
-      <rule pattern="`.*?`">
-        <token type="LiteralStringBacktick"/>
-      </rule>
-    </state>
-    <state name="strings-double">
-      <rule pattern="%(\(\w+\))?[-#0 +]*([0-9]+|[*])?(\.([0-9]+|[*]))?[hlL]?[E-GXc-giorsux%]">
-        <token type="LiteralStringInterpol"/>
-      </rule>
-      <rule pattern="[^\\\&#39;&#34;%\n]+">
-        <token type="LiteralStringDouble"/>
-      </rule>
-      <rule pattern="[\&#39;&#34;\\]">
-        <token type="LiteralStringDouble"/>
-      </rule>
-      <rule pattern="%">
-        <token type="LiteralStringDouble"/>
-      </rule>
-    </state>
-    <state name="dqs">
-      <rule pattern="&#34;">
-        <token type="LiteralStringDouble"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="\\\\|\\&#34;|\\\n">
-        <token type="LiteralStringEscape"/>
-      </rule>
-      <rule>
-        <include state="strings-double"/>
-      </rule>
-    </state>
-    <state name="root">
-      <rule pattern="\n">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="^(\s*)([rRuUbB]{,2})(&#34;&#34;&#34;(?:.|\n)*?&#34;&#34;&#34;)">
-        <bygroups>
-          <token type="Text"/>
-          <token type="LiteralStringAffix"/>
-          <token type="LiteralStringDoc"/>
-        </bygroups>
-      </rule>
-      <rule pattern="^(\s*)([rRuUbB]{,2})(&#39;&#39;&#39;(?:.|\n)*?&#39;&#39;&#39;)">
-        <bygroups>
-          <token type="Text"/>
-          <token type="LiteralStringAffix"/>
-          <token type="LiteralStringDoc"/>
-        </bygroups>
-      </rule>
-      <rule pattern="[^\S\n]+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="\A#!.+$">
-        <token type="CommentHashbang"/>
-      </rule>
-      <rule pattern="#.*$">
-        <token type="CommentSingle"/>
-      </rule>
-      <rule pattern="[]{}:(),;[]">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="\\\n">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="\\">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="(in|is|and|or|not)\b">
-        <token type="OperatorWord"/>
-      </rule>
-      <rule pattern="!=|==|&lt;&lt;|&gt;&gt;|[-~+/*%=&lt;&gt;&amp;^|.]">
-        <token type="Operator"/>
-      </rule>
-      <rule>
-        <include state="keywords"/>
-      </rule>
-      <rule pattern="(def)((?:\s|\\\s)+)">
-        <bygroups>
-          <token type="Keyword"/>
-          <token type="Text"/>
-        </bygroups>
-        <push state="funcname"/>
-      </rule>
-      <rule pattern="(class)((?:\s|\\\s)+)">
-        <bygroups>
-          <token type="Keyword"/>
-          <token type="Text"/>
-        </bygroups>
-        <push state="classname"/>
-      </rule>
-      <rule pattern="(from)((?:\s|\\\s)+)">
-        <bygroups>
-          <token type="KeywordNamespace"/>
-          <token type="Text"/>
-        </bygroups>
-        <push state="fromimport"/>
-      </rule>
-      <rule pattern="(import)((?:\s|\\\s)+)">
-        <bygroups>
-          <token type="KeywordNamespace"/>
-          <token type="Text"/>
-        </bygroups>
-        <push state="import"/>
-      </rule>
-      <rule>
-        <include state="builtins"/>
-      </rule>
-      <rule>
-        <include state="magicfuncs"/>
-      </rule>
-      <rule>
-        <include state="magicvars"/>
-      </rule>
-      <rule>
-        <include state="backtick"/>
-      </rule>
-      <rule pattern="([rR]|[uUbB][rR]|[rR][uUbB])(&#34;&#34;&#34;)">
-        <bygroups>
-          <token type="LiteralStringAffix"/>
-          <token type="LiteralStringDouble"/>
-        </bygroups>
-        <push state="tdqs"/>
-      </rule>
-      <rule pattern="([rR]|[uUbB][rR]|[rR][uUbB])(&#39;&#39;&#39;)">
-        <bygroups>
-          <token type="LiteralStringAffix"/>
-          <token type="LiteralStringSingle"/>
-        </bygroups>
-        <push state="tsqs"/>
-      </rule>
-      <rule pattern="([rR]|[uUbB][rR]|[rR][uUbB])(&#34;)">
-        <bygroups>
-          <token type="LiteralStringAffix"/>
-          <token type="LiteralStringDouble"/>
-        </bygroups>
-        <push state="dqs"/>
-      </rule>
-      <rule pattern="([rR]|[uUbB][rR]|[rR][uUbB])(&#39;)">
-        <bygroups>
-          <token type="LiteralStringAffix"/>
-          <token type="LiteralStringSingle"/>
-        </bygroups>
-        <push state="sqs"/>
-      </rule>
-      <rule pattern="([uUbB]?)(&#34;&#34;&#34;)">
-        <bygroups>
-          <token type="LiteralStringAffix"/>
-          <token type="LiteralStringDouble"/>
-        </bygroups>
-        <combined state="stringescape" state="tdqs"/>
-      </rule>
-      <rule pattern="([uUbB]?)(&#39;&#39;&#39;)">
-        <bygroups>
-          <token type="LiteralStringAffix"/>
-          <token type="LiteralStringSingle"/>
-        </bygroups>
-        <combined state="stringescape" state="tsqs"/>
-      </rule>
-      <rule pattern="([uUbB]?)(&#34;)">
-        <bygroups>
-          <token type="LiteralStringAffix"/>
-          <token type="LiteralStringDouble"/>
-        </bygroups>
-        <combined state="stringescape" state="dqs"/>
-      </rule>
-      <rule pattern="([uUbB]?)(&#39;)">
-        <bygroups>
-          <token type="LiteralStringAffix"/>
-          <token type="LiteralStringSingle"/>
-        </bygroups>
-        <combined state="stringescape" state="sqs"/>
-      </rule>
-      <rule>
-        <include state="name"/>
-      </rule>
-      <rule>
-        <include state="numbers"/>
-      </rule>
-    </state>
-    <state name="sqs">
-      <rule pattern="&#39;">
-        <token type="LiteralStringSingle"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="\\\\|\\&#39;|\\\n">
-        <token type="LiteralStringEscape"/>
-      </rule>
-      <rule>
-        <include state="strings-single"/>
-      </rule>
-    </state>
-    <state name="builtins">
-      <rule pattern="(?&lt;!\.)(staticmethod|classmethod|__import__|isinstance|basestring|issubclass|frozenset|raw_input|bytearray|enumerate|property|callable|reversed|execfile|hasattr|setattr|compile|complex|delattr|unicode|globals|getattr|unichr|reduce|xrange|buffer|intern|filter|locals|divmod|coerce|sorted|reload|object|slice|round|float|super|input|bytes|apply|tuple|range|iter|dict|long|type|hash|vars|next|file|exit|open|repr|eval|bool|list|bin|pow|zip|ord|oct|min|set|any|max|map|all|len|sum|int|dir|hex|chr|abs|cmp|str|id)\b">
-        <token type="NameBuiltin"/>
-      </rule>
-      <rule pattern="(?&lt;!\.)(self|None|Ellipsis|NotImplemented|False|True|cls)\b">
-        <token type="NameBuiltinPseudo"/>
-      </rule>
-      <rule pattern="(?&lt;!\.)(PendingDeprecationWarning|UnicodeTranslateError|NotImplementedError|UnicodeDecodeError|DeprecationWarning|UnicodeEncodeError|FloatingPointError|ZeroDivisionError|UnboundLocalError|KeyboardInterrupt|EnvironmentError|IndentationError|OverflowWarning|ArithmeticError|ReferenceError|AttributeError|AssertionError|RuntimeWarning|UnicodeWarning|GeneratorExit|SyntaxWarning|StandardError|BaseException|OverflowError|FutureWarning|ImportWarning|StopIteration|UnicodeError|WindowsError|RuntimeError|ImportError|UserWarning|LookupError|SyntaxError|SystemError|MemoryError|SystemExit|ValueError|IndexError|NameError|Exception|TypeError|EOFError|KeyError|VMSError|TabError|IOError|Warning|OSError)\b">
-        <token type="NameException"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/qbasic.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/qbasic.xml	(revision 67)
+++ 	(revision )
@@ -1,173 +1,0 @@
-<lexer>
-  <config>
-    <name>QBasic</name>
-    <alias>qbasic</alias>
-    <alias>basic</alias>
-    <filename>*.BAS</filename>
-    <filename>*.bas</filename>
-    <mime_type>text/basic</mime_type>
-  </config>
-  <rules>
-    <state name="root">
-      <rule pattern="\n+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="\s+">
-        <token type="TextWhitespace"/>
-      </rule>
-      <rule pattern="^(\s*)(\d*)(\s*)(REM .*)$">
-        <bygroups>
-          <token type="TextWhitespace"/>
-          <token type="NameLabel"/>
-          <token type="TextWhitespace"/>
-          <token type="CommentSingle"/>
-        </bygroups>
-      </rule>
-      <rule pattern="^(\s*)(\d+)(\s*)">
-        <bygroups>
-          <token type="TextWhitespace"/>
-          <token type="NameLabel"/>
-          <token type="TextWhitespace"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(?=[\s]*)(\w+)(?=[\s]*=)">
-        <token type="NameVariableGlobal"/>
-      </rule>
-      <rule pattern="(?=[^&#34;]*)\&#39;.*$">
-        <token type="CommentSingle"/>
-      </rule>
-      <rule pattern="&#34;[^\n&#34;]*&#34;">
-        <token type="LiteralStringDouble"/>
-      </rule>
-      <rule pattern="(END)(\s+)(FUNCTION|IF|SELECT|SUB)">
-        <bygroups>
-          <token type="KeywordReserved"/>
-          <token type="TextWhitespace"/>
-          <token type="KeywordReserved"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(DECLARE)(\s+)([A-Z]+)(\s+)(\S+)">
-        <bygroups>
-          <token type="KeywordDeclaration"/>
-          <token type="TextWhitespace"/>
-          <token type="NameVariable"/>
-          <token type="TextWhitespace"/>
-          <token type="Name"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(DIM)(\s+)(SHARED)(\s+)([^\s(]+)">
-        <bygroups>
-          <token type="KeywordDeclaration"/>
-          <token type="TextWhitespace"/>
-          <token type="NameVariable"/>
-          <token type="TextWhitespace"/>
-          <token type="NameVariableGlobal"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(DIM)(\s+)([^\s(]+)">
-        <bygroups>
-          <token type="KeywordDeclaration"/>
-          <token type="TextWhitespace"/>
-          <token type="NameVariableGlobal"/>
-        </bygroups>
-      </rule>
-      <rule pattern="^(\s*)([a-zA-Z_]+)(\s*)(\=)">
-        <bygroups>
-          <token type="TextWhitespace"/>
-          <token type="NameVariableGlobal"/>
-          <token type="TextWhitespace"/>
-          <token type="Operator"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(GOTO|GOSUB)(\s+)(\w+\:?)">
-        <bygroups>
-          <token type="KeywordReserved"/>
-          <token type="TextWhitespace"/>
-          <token type="NameLabel"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(SUB)(\s+)(\w+\:?)">
-        <bygroups>
-          <token type="KeywordReserved"/>
-          <token type="TextWhitespace"/>
-          <token type="NameLabel"/>
-        </bygroups>
-      </rule>
-      <rule>
-        <include state="declarations"/>
-      </rule>
-      <rule>
-        <include state="functions"/>
-      </rule>
-      <rule>
-        <include state="metacommands"/>
-      </rule>
-      <rule>
-        <include state="operators"/>
-      </rule>
-      <rule>
-        <include state="statements"/>
-      </rule>
-      <rule>
-        <include state="keywords"/>
-      </rule>
-      <rule pattern="[a-zA-Z_]\w*[$@#&amp;!]">
-        <token type="NameVariableGlobal"/>
-      </rule>
-      <rule pattern="[a-zA-Z_]\w*\:">
-        <token type="NameLabel"/>
-      </rule>
-      <rule pattern="\-?\d*\.\d+[@|#]?">
-        <token type="LiteralNumberFloat"/>
-      </rule>
-      <rule pattern="\-?\d+[@|#]">
-        <token type="LiteralNumberFloat"/>
-      </rule>
-      <rule pattern="\-?\d+#?">
-        <token type="LiteralNumberIntegerLong"/>
-      </rule>
-      <rule pattern="\-?\d+#?">
-        <token type="LiteralNumberInteger"/>
-      </rule>
-      <rule pattern="!=|==|:=|\.=|&lt;&lt;|&gt;&gt;|[-~+/\\*%=&lt;&gt;&amp;^|?:!.]">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="[\[\]{}(),;]">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="[\w]+">
-        <token type="NameVariableGlobal"/>
-      </rule>
-    </state>
-    <state name="declarations">
-      <rule pattern="\b(DATA|LET)(?=\(|\b)">
-        <token type="KeywordDeclaration"/>
-      </rule>
-    </state>
-    <state name="functions">
-      <rule pattern="\b(ABS|ASC|ATN|CDBL|CHR\$|CINT|CLNG|COMMAND\$|COS|CSNG|CSRLIN|CVD|CVDMBF|CVI|CVL|CVS|CVSMBF|DATE\$|ENVIRON\$|EOF|ERDEV|ERDEV\$|ERL|ERR|EXP|FILEATTR|FIX|FRE|FREEFILE|HEX\$|INKEY\$|INP|INPUT\$|INSTR|INT|IOCTL\$|LBOUND|LCASE\$|LEFT\$|LEN|LOC|LOF|LOG|LPOS|LTRIM\$|MID\$|MKD\$|MKDMBF\$|MKI\$|MKL\$|MKS\$|MKSMBF\$|OCT\$|PEEK|PEN|PLAY|PMAP|POINT|POS|RIGHT\$|RND|RTRIM\$|SADD|SCREEN|SEEK|SETMEM|SGN|SIN|SPACE\$|SPC|SQR|STICK|STR\$|STRIG|STRING\$|TAB|TAN|TIME\$|TIMER|UBOUND|UCASE\$|VAL|VARPTR|VARPTR\$|VARSEG)(?=\(|\b)">
-        <token type="KeywordReserved"/>
-      </rule>
-    </state>
-    <state name="metacommands">
-      <rule pattern="\b(\$DYNAMIC|\$INCLUDE|\$STATIC)(?=\(|\b)">
-        <token type="KeywordConstant"/>
-      </rule>
-    </state>
-    <state name="operators">
-      <rule pattern="\b(AND|EQV|IMP|NOT|OR|XOR)(?=\(|\b)">
-        <token type="OperatorWord"/>
-      </rule>
-    </state>
-    <state name="statements">
-      <rule pattern="\b(BEEP|BLOAD|BSAVE|CALL|CALL\ ABSOLUTE|CALL\ INTERRUPT|CALLS|CHAIN|CHDIR|CIRCLE|CLEAR|CLOSE|CLS|COLOR|COM|COMMON|CONST|DATA|DATE\$|DECLARE|DEF\ FN|DEF\ SEG|DEFDBL|DEFINT|DEFLNG|DEFSNG|DEFSTR|DEF|DIM|DO|LOOP|DRAW|END|ENVIRON|ERASE|ERROR|EXIT|FIELD|FILES|FOR|NEXT|FUNCTION|GET|GOSUB|GOTO|IF|THEN|INPUT|INPUT\ \#|IOCTL|KEY|KEY|KILL|LET|LINE|LINE\ INPUT|LINE\ INPUT\ \#|LOCATE|LOCK|UNLOCK|LPRINT|LSET|MID\$|MKDIR|NAME|ON\ COM|ON\ ERROR|ON\ KEY|ON\ PEN|ON\ PLAY|ON\ STRIG|ON\ TIMER|ON\ UEVENT|ON|OPEN|OPEN\ COM|OPTION\ BASE|OUT|PAINT|PALETTE|PCOPY|PEN|PLAY|POKE|PRESET|PRINT|PRINT\ \#|PRINT\ USING|PSET|PUT|PUT|RANDOMIZE|READ|REDIM|REM|RESET|RESTORE|RESUME|RETURN|RMDIR|RSET|RUN|SCREEN|SEEK|SELECT\ CASE|SHARED|SHELL|SLEEP|SOUND|STATIC|STOP|STRIG|SUB|SWAP|SYSTEM|TIME\$|TIMER|TROFF|TRON|TYPE|UEVENT|UNLOCK|VIEW|WAIT|WHILE|WEND|WIDTH|WINDOW|WRITE)\b">
-        <token type="KeywordReserved"/>
-      </rule>
-    </state>
-    <state name="keywords">
-      <rule pattern="\b(ACCESS|ALIAS|ANY|APPEND|AS|BASE|BINARY|BYVAL|CASE|CDECL|DOUBLE|ELSE|ELSEIF|ENDIF|INTEGER|IS|LIST|LOCAL|LONG|LOOP|MOD|NEXT|OFF|ON|OUTPUT|RANDOM|SIGNAL|SINGLE|STEP|STRING|THEN|TO|UNTIL|USING|WEND)\b">
-        <token type="Keyword"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/qml.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/qml.xml	(revision 67)
+++ 	(revision )
@@ -1,113 +1,0 @@
-<lexer>
-  <config>
-    <name>QML</name>
-    <alias>qml</alias>
-    <alias>qbs</alias>
-    <filename>*.qml</filename>
-    <filename>*.qbs</filename>
-    <mime_type>application/x-qml</mime_type>
-    <mime_type>application/x-qt.qbs+qml</mime_type>
-    <dot_all>true</dot_all>
-  </config>
-  <rules>
-    <state name="root">
-      <rule pattern="^(?=\s|/|&lt;!--)">
-        <token type="Text"/>
-        <push state="slashstartsregex"/>
-      </rule>
-      <rule>
-        <include state="commentsandwhitespace"/>
-      </rule>
-      <rule pattern="\+\+|--|~|&amp;&amp;|\?|:|\|\||\\(?=\n)|(&lt;&lt;|&gt;&gt;&gt;?|==?|!=?|[-&lt;&gt;+*%&amp;|^/])=?">
-        <token type="Operator"/>
-        <push state="slashstartsregex"/>
-      </rule>
-      <rule pattern="[{(\[;,]">
-        <token type="Punctuation"/>
-        <push state="slashstartsregex"/>
-      </rule>
-      <rule pattern="[})\].]">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="\bid\s*:\s*[A-Za-z][\w.]*">
-        <token type="KeywordDeclaration"/>
-        <push state="slashstartsregex"/>
-      </rule>
-      <rule pattern="\b[A-Za-z][\w.]*\s*:">
-        <token type="Keyword"/>
-        <push state="slashstartsregex"/>
-      </rule>
-      <rule pattern="(for|in|while|do|break|return|continue|switch|case|default|if|else|throw|try|catch|finally|new|delete|typeof|instanceof|void|this)\b">
-        <token type="Keyword"/>
-        <push state="slashstartsregex"/>
-      </rule>
-      <rule pattern="(var|let|with|function)\b">
-        <token type="KeywordDeclaration"/>
-        <push state="slashstartsregex"/>
-      </rule>
-      <rule pattern="(abstract|boolean|byte|char|class|const|debugger|double|enum|export|extends|final|float|goto|implements|import|int|interface|long|native|package|private|protected|public|short|static|super|synchronized|throws|transient|volatile)\b">
-        <token type="KeywordReserved"/>
-      </rule>
-      <rule pattern="(true|false|null|NaN|Infinity|undefined)\b">
-        <token type="KeywordConstant"/>
-      </rule>
-      <rule pattern="(Array|Boolean|Date|Error|Function|Math|netscape|Number|Object|Packages|RegExp|String|sun|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|Error|eval|isFinite|isNaN|parseFloat|parseInt|document|this|window)\b">
-        <token type="NameBuiltin"/>
-      </rule>
-      <rule pattern="[$a-zA-Z_]\w*">
-        <token type="NameOther"/>
-      </rule>
-      <rule pattern="[0-9][0-9]*\.[0-9]+([eE][0-9]+)?[fd]?">
-        <token type="LiteralNumberFloat"/>
-      </rule>
-      <rule pattern="0x[0-9a-fA-F]+">
-        <token type="LiteralNumberHex"/>
-      </rule>
-      <rule pattern="[0-9]+">
-        <token type="LiteralNumberInteger"/>
-      </rule>
-      <rule pattern="&#34;(\\\\|\\&#34;|[^&#34;])*&#34;">
-        <token type="LiteralStringDouble"/>
-      </rule>
-      <rule pattern="&#39;(\\\\|\\&#39;|[^&#39;])*&#39;">
-        <token type="LiteralStringSingle"/>
-      </rule>
-    </state>
-    <state name="commentsandwhitespace">
-      <rule pattern="\s+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="&lt;!--">
-        <token type="Comment"/>
-      </rule>
-      <rule pattern="//.*?\n">
-        <token type="CommentSingle"/>
-      </rule>
-      <rule pattern="/\*.*?\*/">
-        <token type="CommentMultiline"/>
-      </rule>
-    </state>
-    <state name="slashstartsregex">
-      <rule>
-        <include state="commentsandwhitespace"/>
-      </rule>
-      <rule pattern="/(\\.|[^[/\\\n]|\[(\\.|[^\]\\\n])*])+/([gim]+\b|\B)">
-        <token type="LiteralStringRegex"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="(?=/)">
-        <token type="Text"/>
-        <push state="#pop" state="badregex"/>
-      </rule>
-      <rule>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="badregex">
-      <rule pattern="\n">
-        <token type="Text"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/r.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/r.xml	(revision 67)
+++ 	(revision )
@@ -1,127 +1,0 @@
-<lexer>
-  <config>
-    <name>R</name>
-    <alias>splus</alias>
-    <alias>s</alias>
-    <alias>r</alias>
-    <filename>*.S</filename>
-    <filename>*.R</filename>
-    <filename>*.r</filename>
-    <filename>.Rhistory</filename>
-    <filename>.Rprofile</filename>
-    <filename>.Renviron</filename>
-    <mime_type>text/S-plus</mime_type>
-    <mime_type>text/S</mime_type>
-    <mime_type>text/x-r-source</mime_type>
-    <mime_type>text/x-r</mime_type>
-    <mime_type>text/x-R</mime_type>
-    <mime_type>text/x-r-history</mime_type>
-    <mime_type>text/x-r-profile</mime_type>
-  </config>
-  <rules>
-    <state name="numbers">
-      <rule pattern="0[xX][a-fA-F0-9]+([pP][0-9]+)?[Li]?">
-        <token type="LiteralNumberHex"/>
-      </rule>
-      <rule pattern="[+-]?([0-9]+(\.[0-9]+)?|\.[0-9]+|\.)([eE][+-]?[0-9]+)?[Li]?">
-        <token type="LiteralNumber"/>
-      </rule>
-    </state>
-    <state name="operators">
-      <rule pattern="&lt;&lt;?-|-&gt;&gt;?|-|==|&lt;=|&gt;=|&lt;|&gt;|&amp;&amp;?|!=|\|\|?|\?">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="\*|\+|\^|/|!|%[^%]*%|=|~|\$|@|:{1,3}">
-        <token type="Operator"/>
-      </rule>
-    </state>
-    <state name="root">
-      <rule pattern="((?:`[^`\\]*(?:\\.[^`\\]*)*`)|(?:(?:[a-zA-z]|[_.][^0-9])[\w_.]*))\s*(?=\()">
-        <token type="NameFunction"/>
-      </rule>
-      <rule>
-        <include state="statements"/>
-      </rule>
-      <rule pattern="\{|\}">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern=".">
-        <token type="Text"/>
-      </rule>
-    </state>
-    <state name="valid_name">
-      <rule pattern="(?:`[^`\\]*(?:\\.[^`\\]*)*`)|(?:(?:[a-zA-z]|[_.][^0-9])[\w_.]*)">
-        <token type="Name"/>
-      </rule>
-    </state>
-    <state name="keywords">
-      <rule pattern="(if|else|for|while|repeat|in|next|break|return|switch|function)(?![\w.])">
-        <token type="KeywordReserved"/>
-      </rule>
-    </state>
-    <state name="builtin_symbols">
-      <rule pattern="(NULL|NA(_(integer|real|complex|character)_)?|letters|LETTERS|Inf|TRUE|FALSE|NaN|pi|\.\.(\.|[0-9]+))(?![\w.])">
-        <token type="KeywordConstant"/>
-      </rule>
-      <rule pattern="(T|F)\b">
-        <token type="NameBuiltinPseudo"/>
-      </rule>
-    </state>
-    <state name="string_squote">
-      <rule pattern="([^\&#39;\\]|\\.)*\&#39;">
-        <token type="LiteralString"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="comments">
-      <rule pattern="#.*$">
-        <token type="CommentSingle"/>
-      </rule>
-    </state>
-    <state name="punctuation">
-      <rule pattern="\[{1,2}|\]{1,2}|\(|\)|;|,">
-        <token type="Punctuation"/>
-      </rule>
-    </state>
-    <state name="statements">
-      <rule>
-        <include state="comments"/>
-      </rule>
-      <rule pattern="\s+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="\&#39;">
-        <token type="LiteralString"/>
-        <push state="string_squote"/>
-      </rule>
-      <rule pattern="\&#34;">
-        <token type="LiteralString"/>
-        <push state="string_dquote"/>
-      </rule>
-      <rule>
-        <include state="builtin_symbols"/>
-      </rule>
-      <rule>
-        <include state="valid_name"/>
-      </rule>
-      <rule>
-        <include state="numbers"/>
-      </rule>
-      <rule>
-        <include state="keywords"/>
-      </rule>
-      <rule>
-        <include state="punctuation"/>
-      </rule>
-      <rule>
-        <include state="operators"/>
-      </rule>
-    </state>
-    <state name="string_dquote">
-      <rule pattern="([^&#34;\\]|\\.)*&#34;">
-        <token type="LiteralString"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/racket.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/racket.xml	(revision 67)
+++ 	(revision )
@@ -1,263 +1,0 @@
-<lexer>
-  <config>
-    <name>Racket</name>
-    <alias>racket</alias>
-    <alias>rkt</alias>
-    <filename>*.rkt</filename>
-    <filename>*.rktd</filename>
-    <filename>*.rktl</filename>
-    <mime_type>text/x-racket</mime_type>
-    <mime_type>application/x-racket</mime_type>
-  </config>
-  <rules>
-    <state name="datum*">
-      <rule pattern="`|,@?">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="(?:\|[^|]*\||\\[\w\W]|[^|\\()[\]{}&#34;,\&#39;`;\s]+)+">
-        <token type="LiteralStringSymbol"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="[|\\]">
-        <token type="Error"/>
-      </rule>
-      <rule>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="quoted-list">
-      <rule>
-        <include state="list"/>
-      </rule>
-      <rule pattern="(?!\Z)">
-        <token type="Text"/>
-        <push state="quoted-datum"/>
-      </rule>
-    </state>
-    <state name="quasiquoted-list">
-      <rule>
-        <include state="list"/>
-      </rule>
-      <rule pattern="(?!\Z)">
-        <token type="Text"/>
-        <push state="quasiquoted-datum"/>
-      </rule>
-    </state>
-    <state name="quoted-datum">
-      <rule>
-        <include state="datum"/>
-      </rule>
-      <rule pattern="[([{]">
-        <token type="Punctuation"/>
-        <push state="#pop" state="quoted-list"/>
-      </rule>
-      <rule>
-        <include state="datum*"/>
-      </rule>
-    </state>
-    <state name="block-comment">
-      <rule pattern="#\|">
-        <token type="CommentMultiline"/>
-        <push/>
-      </rule>
-      <rule pattern="\|#">
-        <token type="CommentMultiline"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="[^#|]+|.">
-        <token type="CommentMultiline"/>
-      </rule>
-    </state>
-    <state name="datum">
-      <rule pattern="(?s)#;|#![ /]([^\\\n]|\\.)*">
-        <token type="Comment"/>
-      </rule>
-      <rule pattern=";[^\n\r
-
-
-]*">
-        <token type="CommentSingle"/>
-      </rule>
-      <rule pattern="#\|">
-        <token type="CommentMultiline"/>
-        <push state="block-comment"/>
-      </rule>
-      <rule pattern="\s+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="(?i)(?:#e)?(?:#d)?(?:#e)?[-+]?\d+(?=[()[\]{}&#34;,\&#39;`;\s])">
-        <token type="LiteralNumberInteger"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="(?i)(?:#e)?(?:#d)?(?:#e)?[-+]?(\d+(\.\d*)?|\.\d+)([deflst][-+]?\d+)?(?=[()[\]{}&#34;,\&#39;`;\s])">
-        <token type="LiteralNumberFloat"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="(?i)(?:#e)?(?:#d)?(?:#e)?[-+]?((?:(?:\d+(?:/\d+|\.\d*)?|\.\d+)(?:[defls][-+]?\d+)?)([-+](?:(?:\d+(?:/\d+|\.\d*)?|\.\d+)(?:[defls][-+]?\d+)?)?i)?|[-+](?:(?:\d+(?:/\d+|\.\d*)?|\.\d+)(?:[defls][-+]?\d+)?)?i)(?=[()[\]{}&#34;,\&#39;`;\s])">
-        <token type="LiteralNumber"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="(?i)(#d)?((?:[-+]?(?:(?:(?:\d+(?:/\d+|\.\d*)?|\.\d+)|(?:\d+#+(?:\.#*|/\d+#*)?|\.\d+#+|\d+(?:\.\d*#+|/\d+#+)))(?:[defls][-+]?\d+)?)|[-+](?:(?:inf|nan)\.[0f]))([-+](?:(?:(?:(?:\d+(?:/\d+|\.\d*)?|\.\d+)|(?:\d+#+(?:\.#*|/\d+#*)?|\.\d+#+|\d+(?:\.\d*#+|/\d+#+)))(?:[defls][-+]?\d+)?)|(?:(?:inf|nan)\.[0f]))?i)?|[-+](?:(?:(?:(?:\d+(?:/\d+|\.\d*)?|\.\d+)|(?:\d+#+(?:\.#*|/\d+#*)?|\.\d+#+|\d+(?:\.\d*#+|/\d+#+)))(?:[defls][-+]?\d+)?)|(?:(?:inf|nan)\.[0f]))?i|(?:[-+]?(?:(?:(?:\d+(?:/\d+|\.\d*)?|\.\d+)|(?:\d+#+(?:\.#*|/\d+#*)?|\.\d+#+|\d+(?:\.\d*#+|/\d+#+)))(?:[defls][-+]?\d+)?)|[-+](?:(?:inf|nan)\.[0f]))@(?:[-+]?(?:(?:(?:\d+(?:/\d+|\.\d*)?|\.\d+)|(?:\d+#+(?:\.#*|/\d+#*)?|\.\d+#+|\d+(?:\.\d*#+|/\d+#+)))(?:[defls][-+]?\d+)?)|[-+](?:(?:inf|nan)\.[0f])))(?=[()[\]{}&#34;,\&#39;`;\s])">
-        <token type="LiteralNumberFloat"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="(?i)(([-+]?(?:(?:\d+(?:/\d+|\.\d*)?|\.\d+)|(?:\d+#+(?:\.#*|/\d+#*)?|\.\d+#+|\d+(?:\.\d*#+|/\d+#+)))t[-+]?\d+)|[-+](inf|nan)\.t)(?=[()[\]{}&#34;,\&#39;`;\s])">
-        <token type="LiteralNumberFloat"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="(?i)(#[ei])?#b(?:\|[^|]*\||\\[\w\W]|[^|\\()[\]{}&#34;,\&#39;`;\s]+)+">
-        <token type="LiteralNumberBin"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="(?i)(#[ei])?#o(?:\|[^|]*\||\\[\w\W]|[^|\\()[\]{}&#34;,\&#39;`;\s]+)+">
-        <token type="LiteralNumberOct"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="(?i)(#[ei])?#x(?:\|[^|]*\||\\[\w\W]|[^|\\()[\]{}&#34;,\&#39;`;\s]+)+">
-        <token type="LiteralNumberHex"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="(?i)(#d)?#i(?:\|[^|]*\||\\[\w\W]|[^|\\()[\]{}&#34;,\&#39;`;\s]+)+">
-        <token type="LiteralNumberFloat"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="#?&#34;">
-        <token type="LiteralStringDouble"/>
-        <push state="#pop" state="string"/>
-      </rule>
-      <rule pattern="#&lt;&lt;(.+)\n(^(?!\1$).*$\n)*^\1$">
-        <token type="LiteralStringHeredoc"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="#\\(u[\da-fA-F]{1,4}|U[\da-fA-F]{1,8})">
-        <token type="LiteralStringChar"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="(?is)#\\([0-7]{3}|[a-z]+|.)">
-        <token type="LiteralStringChar"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="(?s)#[pr]x#?&#34;(\\?.)*?&#34;">
-        <token type="LiteralStringRegex"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="#(true|false|[tTfF])">
-        <token type="NameConstant"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="#:(?:\|[^|]*\||\\[\w\W]|[^|\\()[\]{}&#34;,\&#39;`;\s]+)+">
-        <token type="KeywordDeclaration"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="(#lang |#!)(\S+)">
-        <bygroups>
-          <token type="KeywordNamespace"/>
-          <token type="NameNamespace"/>
-        </bygroups>
-      </rule>
-      <rule pattern="#reader">
-        <token type="KeywordNamespace"/>
-        <push state="quoted-datum"/>
-      </rule>
-      <rule pattern="(?i)\.(?=[()[\]{}&#34;,\&#39;`;\s])|#c[is]|#[&#39;`]|#,@?">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="&#39;|#[s&amp;]|#hash(eqv?)?|#\d*(?=[([{])">
-        <token type="Operator"/>
-        <push state="#pop" state="quoted-datum"/>
-      </rule>
-    </state>
-    <state name="string">
-      <rule pattern="&#34;">
-        <token type="LiteralStringDouble"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="(?s)\\([0-7]{1,3}|x[\da-fA-F]{1,2}|u[\da-fA-F]{1,4}|U[\da-fA-F]{1,8}|.)">
-        <token type="LiteralStringEscape"/>
-      </rule>
-      <rule pattern="[^\\&#34;]+">
-        <token type="LiteralStringDouble"/>
-      </rule>
-    </state>
-    <state name="root">
-      <rule pattern="[)\]}]">
-        <token type="Error"/>
-      </rule>
-      <rule pattern="(?!\Z)">
-        <token type="Text"/>
-        <push state="unquoted-datum"/>
-      </rule>
-    </state>
-    <state name="list">
-      <rule pattern="[)\]}]">
-        <token type="Punctuation"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="unquoted-datum">
-      <rule>
-        <include state="datum"/>
-      </rule>
-      <rule pattern="quote(?=[()[\]{}&#34;,\&#39;`;\s])">
-        <token type="Keyword"/>
-        <push state="#pop" state="quoted-datum"/>
-      </rule>
-      <rule pattern="`">
-        <token type="Operator"/>
-        <push state="#pop" state="quasiquoted-datum"/>
-      </rule>
-      <rule pattern="quasiquote(?=[()[\]{}&#34;,\&#39;`;\s])">
-        <token type="Keyword"/>
-        <push state="#pop" state="quasiquoted-datum"/>
-      </rule>
-      <rule pattern="[([{]">
-        <token type="Punctuation"/>
-        <push state="#pop" state="unquoted-list"/>
-      </rule>
-      <rule pattern="(define/subexpression-pos-prop/name|define-module-boundary-contract|define-values/invoke-unit/infer|with-contract-continuation-mark|define/subexpression-pos-prop|include-at/relative-to/reader|define-unit/new-import-export|define-compound-unit/infer|define-serializable-class\*|provide-signature-elements|define-serializable-class|define-values/invoke-unit|define-values-for-export|define-custom-hash-types|define-local-member-name|define-unit-from-context|define-values-for-syntax|define-custom-set-types|define-namespace-anchor|#%printing-module-begin|letrec-syntaxes\+values|include-at/relative-to|define-contract-struct|define-struct/contract|unconstrained-domain-&gt;|with-continuation-mark|unit/new-import-export|define-sequence-syntax|define-match-expander|define-signature-form|define/override-final|define-struct/derived|define/augment-final|define-compound-unit|#%plain-module-begin|class-field-accessor|#%variable-reference|define-unit/contract|class-field-mutator|match-letrec-values|define/public-final|for\*/mutable-seteqv|define-unit-binding|invariant-assertion|flat-murec-contract|match-define-values|compound-unit/infer|for/mutable-seteqv|parameterize-break|send/keyword-apply|struct-field-index|quote-syntax/prune|recursive-contract|define-syntax-rule|for\*/mutable-seteq|define-member-name|match-let\*-values|#%top-interaction|for/mutable-seteq|define/final-prop|unit-from-context|unsyntax-splicing|#%stratified-body|super-instantiate|invoke-unit/infer|flat-rec-contract|for\*/fold/derived|super-make-object|define-for-syntax|define-signature|for/fold/derived|for\*/weak-seteqv|gen:custom-write|unquote-splicing|begin-for-syntax|provide/contract|for\*/mutable-set|match-let-values|for\*/weak-seteq|object-contract|define/override|all-defined-out|define/overment|member-name-key|quasisyntax/loc|define/contract|contract-struct|define-syntaxes|override-final\*|for/mutable-set|for/weak-seteqv|syntax-id-rules|letrec-syntaxes|define/private|gen:equal\+hash|for/weak-seteq|match\*/derived|recontract-out|#%module-begin|define/augment|augment-final\*|define/augride|with-handlers\*|match-lambda\*\*|include/reader|define/pubment|override-final|#%plain-lambda|parametric-&gt;/c|define-struct|match/derived|compound-unit|class/derived|define-unit/s|inherit/super|define-logger|augment-final|for\*/weak-set|with-handlers|define/public|match-lambda\*|define-syntax|parameterize\*|place/context|local-require|letrec-values|define-values|public-final\*|letrec-syntax|inherit-field|with-contract|inherit/inner|define/match|failure-cont|send-generic|#%expression|parameterize|syntax-case\*|for/weak-set|match-define|syntax-rules|public-final|delay/thread|delay/strict|match-lambda|quote-syntax|only-meta-in|let-syntaxes|all-from-out|match/values|for\*/hasheqv|command-line|for\*/product|match-letrec|rename-inner|rename-super|for-template|contract-out|define-opt/c|field-bound\?|prompt-tag/c|for\*/vector|invoke-unit|values/drop|instantiate|for\*/stream|for\*/seteqv|init-depend|relative-in|let\*-values|with-method|case-lambda|protect-out|for\*/hasheq|with-syntax|set!-values|syntax-case|stream-cons|#%plain-app|quasisyntax|struct-copy|log-warning|combine-out|define-unit|for/hasheqv|for/product|interface\*|for/vector|for/stream|for/seteqv|syntax/loc|prefix-out|contracted|set-field!|for\*/async|gen:stream|for\*/first|init-field|let-values|send/apply|for\*/lists|let-syntax|match-let\*|delay/name|struct/ctc|for/hasheq|rename-out|delay/idle|combine-in|quasiquote|delay/sync|struct-out|except-out|for-syntax|for\*/seteq|overment\*|init-rest|interface|match-let|for/async|for-label|for/first|override\*|for\*/fold|rename-in|struct/dc|except-in|for/lists|#%require|#%provide|for\*/list|for\*/hash|get-field|#%declare|prefix-in|log-debug|for\*/last|for/seteq|log-fatal|super-new|log-error|override|augment\*|overment|log-info|abstract|for\*/sum|pubment\*|for-meta|struct/c|for\*/and|for/fold|for/hash|for/last|for/list|unsyntax|private\*|gen:dict|contract|augride\*|object/c|for\*/set|class/c|pubment|case-&gt;m|module\*|module\+|cons/dc|public\*|augride|struct\*|extends|augment|only-in|false/c|provide|for\*/or|inspect|for/and|for/sum|require|inherit|include|implies|hash/dc|generic|#%datum|gen:set|private|for/set|unquote|stream\*|import|planet|place\*|:do-in|unless|unit/s|unit/c|absent|thunk\*|begin0|public|prefix|case-&gt;|module|syntax|match\*|define|submod|except|export|let/ec|letrec|struct|let/cc|stream|rename|shared|for/or|lambda|class\*|place|thunk|send\*|send\+|inner|#%top|this%|opt/c|begin|mixin|class|match|super|field|false|local|quote|#%app|delay|time|else|link|when|file|let\*|cond|-&gt;dm|-&gt;\*m|nand|case|only|for\*|set!|open|this|lazy|send|unit|init|-&gt;m|nor|tag|any|-&gt;\*|for|-&gt;d|let|new|lib|\.\.\.|and|-&gt;i|do|==|λ|or|-&gt;|if|=&gt;|_)(?=[()[\]{}&#34;,\&#39;`;\s])">
-        <token type="Keyword"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="(variable-reference-&gt;module-declaration-inspector|wrapped-extra-arg-arrow-extra-neg-party-argument|contract-random-generate-get-current-environment|internal-definition-context-binding-identifiers|call-with-default-reading-parameterization|struct:exn:fail:contract:non-fixnum-result|syntax-local-transforming-module-provides\?|identifier-remove-from-definition-context|impersonator-property-accessor-procedure\?|struct:exn:fail:filesystem:missing-module|regexp-match-peek-positions-immediate/end|syntax-local-lift-module-end-declaration|syntax-local-module-required-identifiers|variable-reference-&gt;resolved-module-path|make-exn:fail:contract:non-fixnum-result|struct-type-property-accessor-procedure\?|syntax-local-module-defined-identifiers|make-tentative-pretty-print-output-port|module-compiled-cross-phase-persistent\?|struct:exn:fail:contract:divide-by-zero|make-exn:fail:filesystem:missing-module|arrow-contract-info-chaperone-procedure|exn:fail:filesystem:missing-module-path|syntax-transforming-module-expression\?|local-transformer-expand/capture-lifts|custodian-memory-accounting-available\?|call-with-immediate-continuation-mark|variable-reference-&gt;module-path-index|struct:exn:fail:contract:continuation|internal-definition-context-introduce|struct:exn:fail:syntax:missing-module|regexp-match-peek-positions-immediate|variable-reference-&gt;module-base-phase|arrow-contract-info-check-first-order|make-exn:fail:contract:divide-by-zero|exn:fail:contract:non-fixnum-result\?|tentative-pretty-print-port-transfer|prop:opt-chaperone-contract-get-test|syntax-local-make-definition-context|compile-context-preservation-enabled|current-preserved-thread-cell-values|exn:fail:filesystem:missing-module\?|contract-struct-late-neg-projection|make-exn:fail:contract:continuation|syntax-local-lift-values-expression|pretty-print-abbreviate-read-macros|current-evt-pseudo-random-generator|checked-procedure-check-and-extract|contract-custom-write-property-proc|exn:fail:syntax:missing-module-path|exn:fail:contract:non-fixnum-result|namespace-attach-module-declaration|variable-reference-&gt;empty-namespace|make-exn:fail:syntax:missing-module|arrow-contract-info-accepts-arglist|syntax-local-make-delta-introducer|struct:exn:fail:filesystem:version|impersonator-prop:application-mark|pretty-print-\.-symbol-without-bars|prop:orc-contract-get-subcontracts|syntax-local-identifier-as-binding|exn:fail:filesystem:missing-module|current-get-interaction-input-port|tentative-pretty-print-port-cancel|current-subprocess-custodian-mode|build-chaperone-contract-property|impersonate-continuation-mark-key|identifier-prune-to-source-module|variable-reference-&gt;module-source|namespace-anchor-&gt;empty-namespace|struct:exn:fail:contract:variable|exn:fail:contract:divide-by-zero\?|wrapped-extra-arg-arrow-real-func|make-handle-get-preference-locked|string-environment-variable-name\?|current-thread-initial-stack-size|struct:exn:fail:filesystem:exists|call-with-composable-continuation|exn:fail:contract:divide-by-zero|namespace-require/expansion-time|call-with-semaphore/enable-break|pretty-print-current-style-table|compile-enforce-module-constants|identifier-prune-lexical-context|vector-&gt;pseudo-random-generator!|make-exn:fail:filesystem:version|current-library-collection-paths|struct:exn:fail:filesystem:errno|current-write-relative-directory|current-library-collection-links|current-force-delete-permissions|internal-definition-context-seal|bytes-environment-variable-name\?|call-with-break-parameterization|file-or-directory-modify-seconds|exn:fail:filesystem:errno-errno|current-load-relative-directory|syntax-transforming-with-lifts\?|chaperone-continuation-mark-key|default-continuation-prompt-tag|pseudo-random-generator-vector\?|make-exn:fail:filesystem:exists|pseudo-random-generator-&gt;vector|pretty-print-extend-style-table|exn:fail:contract:continuation\?|current-pseudo-random-generator|exn:fail:syntax:missing-module\?|vector-&gt;pseudo-random-generator|contract-random-generate/choose|regexp-match-peek-positions/end|make-exn:fail:contract:variable|call-with-current-continuation|custom-print-quotable-accessor|identifier-transformer-binding|current-break-parameterization|make-exn:fail:filesystem:errno|struct:exn:fail:contract:arity|exn:fail:contract:blame-object|exn:fail:contract:continuation|contract-random-generate-fail\?|write-bytes-avail/enable-break|syntax-local-expand-expression|continuation-prompt-available\?|struct:exn:fail:contract:blame|procedure-reduce-keyword-arity|struct:wrapped-extra-arg-arrow|continuation-mark-set-&gt;context|struct:exn:fail:syntax:unbound|use-user-specific-search-paths|contract-continuation-mark-key|get/build-val-first-projection|call-with-continuation-barrier|contract-random-generate-stash|read-bytes-avail!/enable-break|contract-struct-list-contract\?|exn:fail:syntax:missing-module|procedure-closure-contents-eq\?|peek-bytes-avail!/enable-break|current-command-line-arguments|prop:recursive-contract-unroll|file-or-directory-permissions|compiled-expression-recompile|call-with-continuation-prompt|vector-set-performance-stats!|get/build-late-neg-projection|object-method-arity-includes\?|find-library-collection-links|current-module-declare-source|exn:fail:contract:variable-id|pretty-print-exact-as-decimal|find-library-collection-paths|struct:exn:fail:network:errno|current-environment-variables|namespace-set-variable-value!|struct:exn:fail:read:non-char|module-compiled-language-info|contract-val-first-projection|pretty-print-show-inexactness|struct-constructor-procedure\?|struct:exn:fail:out-of-memory|contract-random-generate-fail|call-with-escape-continuation|free-transformer-identifier=\?|variable-reference-&gt;namespace|current-module-name-resolver|filesystem-change-evt-cancel|current-module-path-for-load|call-with-atomic-output-file|udp-multicast-set-interface!|struct-type-make-constructor|pretty-print-post-print-hook|make-exn:fail:syntax:unbound|current-process-milliseconds|port-provides-progress-evts\?|make-continuation-prompt-tag|compile-allow-set!-undefined|exn:fail:network:errno-errno|make-exn:fail:contract:blame|exn:fail:filesystem:version\?|make-exn:fail:contract:arity|read-square-bracket-as-paren|read-square-bracket-with-tag|make-pseudo-random-generator|continuation-mark-set-&gt;list\*|make-syntax-delta-introducer|current-inexact-milliseconds|prop:arrow-contract-get-info|namespace-undefine-variable!|namespace-symbol-&gt;identifier|contract-first-order-passes\?|contract-late-neg-projection|syntax-local-lift-expression|syntax-local-value/immediate|impersonator-prop:contracted|variable-reference-constant\?|build-flat-contract-property|chaperone-contract-property\?|regexp-match-peek-positions\*|internal-definition-context\?|prop:opt-chaperone-contract\?|make-input-port/read-to-peek|plumber-flush-handle-remove!|current-compiled-file-roots|prop:opt-chaperone-contract|prop:liberal-define-context|syntax-local-module-exports|compiled-module-expression\?|exn:fail:filesystem:version|exn:fail:filesystem:exists\?|continuation-mark-set-&gt;list|make-file-or-directory-link|continuation-mark-set-first|error-print-source-location|semaphore-wait/enable-break|exn:fail:contract:variable\?|exn:missing-module-accessor|namespace-module-identifier|environment-variables-names|current-module-declare-name|identifier-template-binding|system-path-convention-type|make-exn:fail:read:non-char|regexp-match-peek-positions|struct:exn:fail:unsupported|pretty-print-remap-stylable|pretty-print-pre-print-hook|make-exn:fail:network:errno|namespace-anchor-&gt;namespace|call-with-exception-handler|make-exn:fail:out-of-memory|error-value-&gt;string-handler|path-list-string-&gt;path-list|struct-predicate-procedure\?|udp-multicast-set-loopback!|regexp-match-peek-immediate|syntax-property-symbol-keys|call-with-file-lock/timeout|module-path-index-submodule|udp-multicast-leave-group!|struct:exn:fail:filesystem|current-directory-for-user|floating-point-bytes-&gt;real|namespace-unprotect-module|free-template-identifier=\?|struct-accessor-procedure\?|namespace-syntax-introduce|namespace-require/constant|syntax-property-preserved\?|exact-nonnegative-integer\?|call-with-parameterization|real-&gt;floating-point-bytes|error-print-context-length|raise-not-cons-blame-error|current-continuation-marks|preferences-lock-file-mode|check-duplicate-identifier|make-environment-variables|environment-variables-set!|make-continuation-mark-key|file-or-directory-identity|struct-type-make-predicate|build-path/convention-type|print-reader-abbreviations|make-immutable-custom-hash|module-compiled-submodules|procedure-arity-includes/c|struct:exn:break:terminate|regexp-match-positions/end|coerce-chaperone-contracts|environment-variables-copy|exn:fail:contract:variable|make-struct-field-accessor|local-expand/capture-lifts|dynamic-require-for-syntax|syntax-local-bind-syntaxes|set!-transformer-procedure|exn:fail:filesystem:errno\?|exn:fail:filesystem:exists|prop:custom-print-quotable|make-known-char-range-list|abort-current-continuation|uncaught-exception-handler|custom-write-property-proc|make-impersonator-property|struct:arrow-contract-info|variable-reference-&gt;phase|set-some-basic-contracts!|current-load/use-compiled|use-collection-link-paths|make-resolved-module-path|string-&gt;unreadable-symbol|syntax-local-lift-require|set-symmetric-difference!|syntax-local-lift-provide|udp-multicast-join-group!|read-curly-brace-as-paren|read-curly-brace-with-tag|exn:fail:filesystem:errno|global-port-print-handler|rename-transformer-target|blame-add-nth-arg-context|make-exn:fail:unsupported|identifier-binding-symbol|equal-secondary-hash-code|make-struct-field-mutator|blame-add-unknown-context|pretty-print-style-table\?|make-struct-type-property|member-name-key-hash-code|coerce-chaperone-contract|resolved-module-path-name|syntax-local-lift-context|environment-variables-ref|expand-syntax-to-top-form|module-path-index-resolve|make-base-empty-namespace|namespace-module-registry|string-&gt;uninterned-symbol|udp-receive!/enable-break|special-filter-input-port|syntax-local-get-shadower|struct-mutator-procedure\?|module-provide-protected\?|procedure-arity-includes\?|sync/timeout/enable-break|subprocess-group-enabled|custodian-require-memory|contract-struct-generate|pseudo-random-generator\?|syntax-shift-phase-level|vector-&gt;immutable-vector|contract-struct-exercise|exn:fail:contract:arity\?|procedure-extract-target|exn:fail:contract:blame\?|build-compound-type-name|make-exn:fail:filesystem|contract-random-generate|namespace-mapped-symbols|local-transformer-expand|in-immutable-hash-values|some-system-path-&gt;string|struct:exn:break:hang-up|skip-projection-wrapper\?|identifier-label-binding|print-mpair-curly-braces|executable-yield-handler|current-read-interaction|struct:exn:fail:contract|continuation-prompt-tag\?|exn:fail:syntax:unbound\?|make-hasheqv-placeholder|syntax-local-lift-module|current-parameterization|tcp-connect/enable-break|struct:exn:fail:read:eof|namespace-variable-value|string-&gt;immutable-string|wrapped-extra-arg-arrow\?|string-&gt;some-system-path|dict-can-functional-set\?|prop:recursive-contract\?|syntax-local-phase-level|rename-file-or-directory|set-symmetric-difference|udp-send-to/enable-break|port-count-lines-enabled|make-exn:break:terminate|exn:fail:syntax:unbound|struct:exn:fail:network|prefab-key-&gt;struct-type|namespace-attach-module|read-decimal-as-inexact|udp-multicast-loopback\?|pretty-print-print-hook|current-gc-milliseconds|blame-add-missing-party|pretty-print-print-line|exact-positive-integer\?|blame-add-range-context|free-label-identifier=\?|set-port-next-location!|print-boolean-long-form|string-normalize-spaces|flat-contract-property\?|print-pair-curly-braces|current-contract-region|flat-contract-predicate|make-chaperone-contract|tcp-accept/enable-break|call-with-output-string|module-compiled-imports|file-stream-buffer-mode|impersonator-prop:blame|exn:fail:contract:arity|in-immutable-hash-pairs|load-relative-extension|exn:fail:contract:blame|liberal-define-context\?|interface-&gt;method-names|break-parameterization\?|prop:chaperone-contract|build-contract-property|system-language\+country|module-path-index-split|module-compiled-exports|regexp-match-positions\*|prop:rename-transformer|wrapped-extra-arg-arrow|make-rename-transformer|make-pipe-with-specials|continuation-mark-key/c|use-compiled-file-paths|syntax-local-submodules|exn:fail:read:non-char\?|exn:fail:out-of-memory\?|prop:exn:missing-module|exn:fail:network:errno\?|prop:expansion-contexts|make-mutable-custom-set|make-limited-input-port|make-hasheq-placeholder|udp-multicast-interface|prop:recursive-contract|make-sibling-inspector|current-code-inspector|impersonator-ephemeron|blame-replace-negative|exn-continuation-marks|delete-directory/files|call-with-input-string|make-parent-directory\*|integer-sqrt/remainder|impersonate-prompt-tag|impersonator-property\?|open-input-output-file|string-locale-downcase|module-path-index-join|impersonate-procedure\*|syntax-local-introduce|load-on-demand-enabled|make-immutable-hasheqv|integer-bytes-&gt;integer|integer-&gt;integer-bytes|make-exn:fail:read:eof|locale-string-encoding|make-keyword-procedure|filter-read-input-port|bytes-&gt;immutable-bytes|udp-multicast-set-ttl!|custom-print-quotable\?|thread/suspend-to-kill|namespace-require/copy|custodian-shutdown-all|filesystem-change-evt\?|syntax-local-certifier|current-load-extension|custodian-managed-list|prop:checked-procedure|in-immutable-hash-keys|struct:exn:fail:object|regexp-match-positions|continuation-mark-set\?|continuation-mark-key\?|system-library-subpath|custodian-limit-memory|impersonator-contract\?|transplant-output-port|exn:fail:network:errno|make-custom-hash-types|struct-type-property/c|exn:fail:out-of-memory|with-input-from-string|exn:fail:read:non-char|matches-arity-exactly\?|procedure-struct-type\?|place-message-allowed\?|struct:exn:fail:syntax|procedure-result-arity|make-derived-parameter|call-with-output-bytes|arity-checking-wrapper|procedure-reduce-arity|pretty-print-size-hook|make-exn:break:hang-up|make-exn:fail:contract|environment-variables\?|current-security-guard|in-mutable-hash-values|read-accept-quasiquote|primitive-result-arity|make-syntax-introducer|hash-iterate-key\+value|call-with-output-file\*|exn:break-continuation|bytes-close-converter|raise-arguments-error|make-set!-transformer|make-weak-custom-hash|in-mutable-hash-pairs|call-with-output-file|read-bytes-avail!-evt|path-for-some-system\?|special-comment-value|exn:fail:unsupported\?|coerce-flat-contracts|with-input-from-bytes|struct:arity-at-least|peek-bytes-avail!-evt|exn:fail:syntax-exprs|place-channel-put/get|read-accept-infix-dot|struct-type-property\?|resolved-module-path\?|make-custom-set-types|exn:fail:read-srclocs|string-&gt;bytes/latin-1|display-lines-to-file|plumber-flush-handle\?|call-with-input-file\*|prop:set!-transformer|read-accept-bar-quote|chaperone-struct-type|error-display-handler|transplant-input-port|bad-number-of-results|regexp-max-lookbehind|call-with-input-bytes|bytes-&gt;string/latin-1|parameter-procedure=\?|filesystem-change-evt|call-in-nested-thread|with-output-to-string|module-&gt;language-info|make-exn:fail:network|char-general-category|thread-rewind-receive|write-bytes-avail-evt|udp-receive-ready-evt|impersonate-procedure|string-normalize-nfkd|custom-write-accessor|make-hash-placeholder|dict-can-remove-keys\?|udp-send/enable-break|read-on-demand-source|date-time-zone-offset|read-syntax/recursive|blame-add-car-context|blame-add-cdr-context|string-normalize-nfkc|make-immutable-hasheq|vector-split-at-right|path-element-&gt;string|string-normalize-nfc|exn:break:terminate\?|current-blame-format|string-normalize-nfd|datum-intern-literal|fsemaphore-try-wait\?|reencode-output-port|copy-directory/files|port-writes-special\?|impersonate-hash-set|make-exn:fail:syntax|namespace-base-phase|chaperone-procedure\*|port-display-handler|contract-first-order|list-&gt;mutable-seteqv|make-exn:fail:object|bytes-open-converter|raise-mismatch-error|real-&gt;decimal-string|interface-extension\?|date\*-time-zone-name|current-milliseconds|syntax-source-module|chaperone-prompt-tag|write-special-avail\*|string-locale-upcase|syntax-transforming\?|call-with-input-file|prop:impersonator-of|compiled-expression\?|exn:fail:filesystem\?|struct:exn:fail:read|module-compiled-name|find-executable-path|relocate-output-port|error-escape-handler|read-eval-print-loop|read-char-or-special|pretty-print-columns|read-accept-compiled|arrow-contract-info\?|syntax-local-context|string-&gt;bytes/locale|method-in-interface\?|make-primitive-class|prop:arrow-contract\?|sequence-add-between|pretty-print-handler|pretty-print-newline|collection-file-path|current-reader-guard|arity-at-least-value|coerce-flat-contract|bytes-&gt;string/locale|generate-temporaries|exn:fail:unsupported|struct:exn:fail:user|current-thread-group|path-&gt;directory-path|path-convention-type|make-special-comment|read-byte-or-special|with-output-to-bytes|exn:srclocs-accessor|peek-char-or-special|string-&gt;path-element|with-input-from-file|raise-argument-error|in-mutable-hash-keys|procedure-specialize|blame-missing-party\?|peek-byte-or-special|make-weak-custom-set|make-empty-namespace|regexp-replace-quote|raise-contract-error|filesystem-root-list|match-equality-test|path-replace-suffix|print-vector-length|path-element-&gt;bytes|make-temporary-file|custodian-box-value|exn:missing-module\?|print-as-expression|split-common-prefix|prop:arrow-contract|path-&gt;complete-path|file-name-from-path|read-bytes-line-evt|read-case-sensitive|dict-value-contract|bytes-&gt;string/utf-8|pipe-content-length|make-security-guard|with-output-to-file|arrow-contract-info|in-input-port-chars|string-&gt;bytes/utf-8|in-values\*-sequence|bytes-&gt;path-element|current-prompt-read|make-base-namespace|in-weak-hash-values|make-arity-at-least|relocate-input-port|semaphore-peek-evt\?|current-output-port|semaphore-try-wait\?|chaperone-procedure|open-output-nowhere|thread-cell-values\?|listen-port-number\?|syntax-track-origin|make-mixin-contract|string-utf-8-length|chaperone-contract\?|generate-member-key|exn:fail:filesystem|variable-reference\?|make-lock-file-name|flat-named-contract|real-&gt;double-flonum|impersonate-channel|contract-projection|real-&gt;single-flonum|reencode-input-port|port-writes-atomic\?|call-with-semaphore|list-&gt;mutable-seteq|rename-transformer\?|prop:place-location|make-immutable-hash|port-try-file-lock\?|exn:break:terminate|regexp-match-exact\?|in-input-port-bytes|bytes-utf-8-length|blame-fmt-&gt;-string|prop:orc-contract\?|thread-receive-evt|sequence-generate\*|make-phantom-bytes|set-phantom-bytes!|syntax-local-value|prop:flat-contract|bound-identifier=\?|write-bytes-avail\*|dict-iter-contract|plumber-add-flush!|module-predefined\?|thread-suspend-evt|thread-try-receive|module-path-index\?|dict-iterate-first|find-relative-path|semaphore-peek-evt|open-output-string|string-locale-ci&gt;\?|order-of-magnitude|string-locale-ci=\?|dict-iterate-value|in-weak-hash-pairs|prop:dict/contract|string-locale-ci&lt;\?|in-values-sequence|filename-extension|make-custodian-box|take-common-prefix|symbol-unreadable\?|drop-common-prefix|raise-result-error|parse-command-line|procedure-keywords|quotient/remainder|print-syntax-width|make-will-executor|dynamic-set-field!|expand-to-top-form|expand-syntax-once|primitive-closure\?|equal-contract-val|hash-iterate-first|pretty-print-depth|vector-immutableof|current-memory-use|vector-immutable/c|hash-iterate-value|the-unsupplied-arg|make-exn:fail:read|current-input-port|raise-syntax-error|peek-bytes-avail!\*|peeking-input-port|make-exn:fail:user|udp-send-ready-evt|read-accept-reader|make-flat-contract|stream-add-between|exn:fail:read:eof\?|current-error-port|port-write-handler|chaperone-hash-set|make-proj-contract|exn:break:hang-up\?|make-prefab-struct|impersonate-vector|identifier-binding|impersonate-struct|system-big-endian\?|read-bytes-avail!\*|port-print-handler|port-next-location|port-commit-peeked|contract-stronger\?|contract-property\?|exn:fail:contract\?|continuation-marks|port-counts-lines\?|port-file-identity|exn:fail:contract|contract-exercise|bytes-utf-8-index|make-log-receiver|port-count-lines!|system\*/exit-code|remove-duplicates|port-&gt;bytes-lines|exn:fail:network\?|plumber-flush-all|port-progress-evt|thread-resume-evt|exn:break:hang-up|port-read-handler|current-custodian|read-accept-graph|current-directory|exn:fail:read:eof|tcp-accept-ready\?|make-reader-graph|implementation\?/c|place-channel-put|place-channel-get|make-shared-bytes|coerce-contract/f|bytes-convert-end|hash-placeholder\?|set!-transformer\?|close-output-port|raise-range-error|current-inspector|udp-multicast-ttl|vector-filter-not|prefab-struct-key|in-immutable-hash|hash-iterate-pair|error-print-width|hash-iterate-next|current-namespace|peek-bytes-avail!|read-bytes-avail!|char-iso-control\?|current-readtable|make-thread-group|raise-blame-error|raise-arity-error|make-weak-hasheqv|vector-take-right|vector-drop-right|externalizable&lt;%&gt;|procedure-&gt;method|chaperone-channel|cartesian-product|dynamic-get-field|file-&gt;bytes-lines|parameterization\?|subprocess-status|member-name-key=\?|tail-marks-match\?|sync/enable-break|file-stream-port\?|prop:arity-string|directory-exists\?|syntax-debug-info|bitwise-bit-field|prop:custom-write|other-execute-bit|in-weak-hash-keys|module-&gt;namespace|dict-key-contract|group-execute-bit|char-utf-8-length|dict-iterate-next|write-bytes-avail|get-output-string|input-port-append|open-output-bytes|open-input-string|load/use-compiled|object-or-false=\?|readtable-mapping|dict-implements/c|namespace-anchor\?|non-empty-string\?|sequence-for-each|syntax-local-name|regexp-match-peek|namespace-require|write-special-evt|list-&gt;weak-seteqv|sequence-generate|char-punctuation\?|prop:orc-contract|free-identifier=\?|blame-add-context|list-&gt;mutable-set|dump-memory-stats|normalized-arity\?|make-output-port|set-implements/c|open-output-file|find-system-path|placeholder-set!|prop:output-port|degrees-&gt;radians|delete-directory|exn:fail:object\?|date\*-nanosecond|prop:object-name|open-input-bytes|make-weak-hasheq|make-thread-cell|prop:exn:srclocs|bitwise-bit-set\?|struct-type-info|dict-implements\?|dict-iterate-key|exn:fail:network|syntax-original\?|hash-iterate-key|member-name-key\?|list-&gt;weak-seteq|regexp-match/end|make-struct-type|tcp-abandon-port|object-interface|system/exit-code|raise-user-error|read-string!-evt|raise-type-error|regexp-try-match|string-contains\?|sequence-&gt;stream|char-title-case\?|char-whitespace\?|port-file-unlock|promise-running\?|thread-cell-set!|bytes-converter\?|make-rectangular|string-titlecase|check-duplicates|channel-put-evt\?|syntax-recertify|coerce-contracts|normal-case-path|class-&gt;interface|symbol-interned\?|make-placeholder|non-empty-listof|user-execute-bit|dynamic-object/c|procedure-rename|read-accept-lang|char-alphabetic\?|module-declared\?|failure-result/c|exn:fail:syntax\?|char-upper-case\?|will-try-execute|impersonate-hash|chaperone-vector|procedure-arity\?|regexp-match-evt|vector-immutable|simple-form-path|make-custom-hash|chaperone-struct|in-immutable-set|natural-number/c|pathlist-closure|get-output-bytes|radians-&gt;degrees|char-lower-case\?|eval-jit-enabled|make-do-sequence|expand-user-path|struct:exn:break|fsemaphore-count|print-unreadable|peek-string!-evt|special-comment\?|impersonator-of\?|arithmetic-shift|udp-receive!-evt|call-with-values|futures-enabled\?|print-hash-table|close-input-port|make-custom-set|peek-bytes!-evt|string-no-nuls\?|string-locale&gt;\?|splitf-at-right|in-mutable-hash|subprocess-kill|srcloc-position|udp-open-socket|vector-split-at|string-locale=\?|struct:exn:fail|syntax-position|syntax-property|fsemaphore-wait|fsemaphore-post|pretty-printing|dynamic-require|string-locale&lt;\?|in-combinations|read-bytes!-evt|make-fsemaphore|current-seconds|arity-at-least\?|implementation\?|ephemeron-value|udp-send-to-evt|box-immutable/c|arity-includes\?|unspecified-dom|bytes-utf-8-ref|eq-contract-val|in-permutations|equal-contract\?|impersonate-box|make-input-port|current-plumber|coerce-contract|blame-original\?|unsupplied-arg\?|peek-string-evt|exn:misc:match\?|make-directory\*|put-preferences|rename-contract|procedure-arity|set-implements\?|shrink-path-wrt|dup-output-port|port-closed-evt|thread-dead-evt|security-guard\?|system-idle-evt|subprocess-wait|path-add-suffix|channel-try-get|normalize-arity|collect-garbage|stream-for-each|current-compile|exn:fail:syntax|display-to-file|group-write-bit|module-&gt;imports|processor-count|thread-running\?|promise-forced\?|string-&gt;keyword|module-&gt;exports|equal-hash-code|string-foldcase|syntax-tainted\?|read-string-evt|sequence-andmap|sequence-append|thread-cell-ref|sequence-filter|channel-put-evt|prop:contracted|other-write-bit|would-be-future|prop:equal\+hash|place-location\?|sequence-length|read-accept-box|regexp-replaces|string-downcase|collection-path|exn:fail:object|read-accept-dot|prop:input-port|placeholder-get|keyword-&gt;string|open-input-file|hash-copy-clear|regexp-replace\*|read-bytes-line|regexp-replace|string-append\*|make-weak-hash|terminal-port\?|compile-syntax|poll-guard-evt|complete-path\?|string-&gt;symbol|exn:fail:read\?|place-enabled\?|string-&gt;number|place-dead-evt|place-channel\?|mixin-contract|make-semaphore|make-readtable|convert-stream|group-read-bit|user-write-bit|value-contract|syntax-protect|relative-path\?|current-future|list-contract\?|make-parameter|get-preference|exact-&gt;inexact|exn:fail:user\?|phantom-bytes\?|current-locale|bytes-no-nuls\?|current-logger|pretty-display|make-inspector|chaperone-hash|in-bytes-lines|peek-bytes-evt|mutable-seteqv|arity-at-least|nack-guard-evt|current-thread|in-dict-values|empty-sequence|in-hash-values|blame-swapped\?|custodian-box\?|vector-&gt;values|weak-box-value|srcloc-&gt;string|in-mutable-set|blame-positive|split-at-right|make-exn:break|blame-negative|make-ephemeron|udp-connected\?|blame-contract|dynamic-place\*|make-directory|load-extension|read-bytes-evt|single-flonum\?|make-custodian|will-executor\?|subprocess-pid|dup-input-port|string-replace|inexact-&gt;exact|semaphore-post|symbol-&gt;string|string-suffix\?|log-all-levels|semaphore-wait|double-flonum\?|normalize-path|thread-suspend|process\*/ports|flat-contract\?|char-symbolic\?|read/recursive|number-&gt;string|sequence-&gt;list|integer-length|sequence-count|object-&gt;vector|proper-subset\?|directory-list|file-position\*|absolute-path\?|list-&gt;weak-set|other-read-bit|thread-receive|set-intersect!|tcp-accept-evt|sequence-ormap|set-copy-clear|struct-&gt;vector|char-titlecase|prop:procedure|keywords-match|exact-integer\?|string-prefix\?|exact-truncate|stream-empty\?|read-line-evt|string-upcase|vector-argmin|flat-contract|date-year-day|vector-argmax|file-truncate|keyword-apply|vector-append|file-position|thread-resume|write-to-file|tcp-addresses|sequence-tail|date-week-day|write-special|custom-write\?|dict-for-each|dict-has-key\?|set-intersect|path-element\?|thread-group\?|dict-mutable\?|regexp-match\*|datum-&gt;syntax|prop:contract|read-language|prop:sequence|char-numeric\?|blame-context|syntax-column|expand-syntax|tcp-listener\?|syntax-&gt;datum|promise/name\?|sequence-fold|base-&gt;-rngs/c|base-&gt;-doms/c|mutable-seteq|box-immutable|load-relative|break-enabled|integer-&gt;char|progress-evt\?|process/ports|display-lines|set-subtract!|log-level-evt|log-max-level|exn:fail:user|log-receiver\?|byte-pregexp\?|place-channel|char-graphic\?|inexact-real\?|char-foldcase|string-length|seconds-&gt;date|has-contract\?|will-register|char-downcase|regexp-match\?|exn:fail:read|udp-addresses|make-contract|simplify-path|dynamic-place|chaperone-box|make-exn:fail|string-append|srcloc-column|make-weak-box|hash-for-each|chaperone-evt|hash-has-key\?|bytes-append\*|bytes-convert|stream-filter|in-hash-pairs|in-dict-pairs|udp-receive!\*|srcloc-source|struct:srcloc|syntax-source|continuation\?|contract-name|contract-proc|impersonator\?|chaperone-of\?|user-read-bit|vector-member|shell-execute|vector-filter|stream-length|current-print|current-drive|stream-andmap|vector-length|pretty-format|exact-ceiling|char-&gt;integer|stream-append|eqv-hash-code|syntax-disarm|regexp-split|stream-count|bytes-length|current-load|stream-first|pretty-print|equal\?/recur|make-plumber|current-eval|exit-handler|stream-ormap|eq-hash-code|syntax-rearm|eq-contract\?|hash-update!|make-hasheqv|string-&gt;list|udp-send-to\*|make-generic|stream-&gt;list|udp-send-evt|syntax-taint|vector-set\*!|hash-remove!|pretty-write|in-dict-keys|port-closed\?|string-&gt;path|empty-stream|udp-receive!|in-directory|in-hash-keys|dynamic-wind|port-&gt;string|dynamic-send|bytes-append|vector-fill!|print-struct|string-ci&lt;=\?|resolve-path|placeholder\?|in-sequences|printable&lt;%&gt;|string-ci&gt;=\?|udp-connect!|thread-cell\?|regexp-quote|will-execute|combinations|string-copy!|string-fill!|make-channel|string-len/c|shared-bytes|in-weak-hash|byte-regexp\?|byte-pregexp|build-vector|build-string|permutations|set-subtract|module-path\?|local-expand|generic-set\?|instanceof/c|break-thread|peek-string!|exn:srclocs\?|vector-&gt;list|blame-update|sync/timeout|integer-sqrt|blame-source|dict-update!|cleanse-path|explode-path|list-prefix\?|string-port\?|path-string\?|set-mutable\?|dict-remove!|vector-count|list-&gt;vector|list-&gt;string|list-&gt;seteqv|thread-dead\?|regexp-match|flush-output|struct-type\?|class-unseal|string-split|sequence-map|path-&gt;string|sequence-ref|link-exists\?|file-&gt;string|write-string|file-exists\?|port-number\?|read-string!|vector-copy!|output-port\?|set-for-each|struct:date\*|syntax-&gt;list|make-logger|string-join|dict-update|subprocess\?|prop:stream|dropf-right|write-bytes|in-weak-set|input-port\?|writable&lt;%&gt;|add-between|set-remove!|set-member\?|printable/c|weak-seteqv|print-graph|subclass\?/c|eof-object\?|syntax-line|hash-clear!|vector-take|prefab-key\?|predicate/c|string-copy|eval-syntax|exact-floor|port-&gt;lines|vector-set!|random-seed|exact-round|string-ci&gt;\?|rationalize|vector-memv|port-&gt;bytes|vector-memq|vector-map!|kill-thread|place-sleep|in-producer|place-break|dict-empty\?|vector-drop|exn-message|peek-string|in-parallel|read-bytes!|string-ci=\?|peek-bytes!|dict-clear!|string-ci&lt;\?|hash-empty\?|bitwise-and|in-naturals|path-&gt;bytes|hash-equal\?|denominator|set-&gt;stream|delete-file|parameter/c|vector-copy|bitwise-ior|bitwise-not|bitwise-xor|hash-remove|expand-once|blame-value|char-blank\?|object-name|read-string|object-info|string-set!|date-second|read-syntax|date-minute|struct:date|byte-ready\?|list-&gt;bytes|byte-regexp|bytes-&gt;list|value-blame|bytes-&gt;path|field-names|hash-update|bytes-copy!|bytes-fill!|hash-values|list-&gt;seteq|srcloc-line|string-trim|list-update|stream-tail|file-&gt;bytes|file-&gt;lines|udp-send-to|mutable-set|stream-rest|syntax-span|handle-evt\?|merge-input|log-message|logger-name|thread-wait|thread-send|channel-get|channel-put|dict-remove|system-type|srcloc-span|make-vector|make-string|make-srcloc|takef-right|char-upcase|stream-fold|make-object|struct-info|identifier\?|char-ready\?|reroot-path|replace-evt|make-none/c|make-hasheq|stop-before|tcp-connect|file-&gt;value|fsemaphore\?|dict-values|immutable\?|stop-after|filter-map|filter-not|char-ci&gt;=\?|make-date\*|file-&gt;list|make-polar|tcp-accept|find-files|take-right|make-bytes|char-ci&lt;=\?|chaperone\?|time-apply|stream-map|log-level\?|choice-evt|class-info|semaphore\?|class-seal|udp-bound\?|stream-ref|namespace\?|bytes-set!|first-or/c|hash-weak\?|in-indexed|custodian\?|bytes-join|bytes-copy|readtable\?|build-path|struct:exn|build-list|date-month|sequence/c|hash-set\*!|blame-swap|parameter\?|split-path|exn:break\?|fold-files|string-ref|dict-&gt;list|dict-clear|drop-right|set-clear!|peek-bytes|read-bytes|hash-count|set-empty\?|dict-count|set-equal\?|vector-map|place-kill|place-wait|vector-ref|port-&gt;list|append-map|primitive\?|ephemeron\?|weak-seteq|hash-clear|always-evt|interface\?|subprocess|integer-in|set-remove|hash-&gt;list|tcp-listen|inspector\?|procedure\?|dynamic-&gt;\*|syntax-arm|write-byte|has-blame\?|set-union!|write-char|prop:blame|dict-set\*!|handle-evt|displayln|suggest/c|substring|set-weak\?|in-vector|set-union|in-syntax|infinite\?|in-string|in-stream|dict-set\*|set-mcdr!|subclass\?|set-mcar!|dict-set!|dict-ref!|keyword&lt;\?|dict-keys|set-first|set-count|dict-copy|exn:break|set-clear|set-&gt;list|last-pair|splitf-at|exn:fail\?|date-year|date-hour|date-dst\?|list-&gt;set|copy-port|list-tail|copy-file|contract\?|magnitude|make-date|make-hash|make-list|tcp-close|file-size|char-in/c|imag-part|tcp-port\?|char-ci&gt;\?|char-ci=\?|remainder|make-pipe|char-ci&lt;\?|channel/c|udp-bind!|string&gt;=\?|udp-close|udp-send\*|bytes-ref|string&lt;=\?|negative\?|never-evt|new-∀/c|new-∃/c|real-part|numerator|hash-set\*|hash-set!|boolean=\?|read-line|hash-ref!|read-char|read-cdot|hash-keys|hash-eqv\?|partition|path-only|between/c|peek-byte|peek-char|read-byte|rational\?|hash-copy|positive\?|weak-box\?|print-box|alarm-evt|guard-evt|promise/c|prop:dict|conjugate|sequence\?|in-range|group-by|set-eqv\?|set-box!|generic\?|dict-map|dict-ref|channel\?|hash-eq\?|set-add!|dict-set|one-of/c|box-cas!|for-each|make-exn|set-copy|hash-map|hash-ref|hash-set|syntax-e|integer\?|set-rest|inexact\?|vectorof|truncate|stream/c|string&lt;\?|string=\?|symbol=\?|string&gt;\?|symbol&lt;\?|vector/c|prop:evt|plumber\?|pregexp\?|identity|in-value|list-set|in-bytes|in-cycle|weak-set|in-slice|date-day|subbytes|in-lines|list-ref|boolean\?|udp-send|promise\?|process\*|keyword\?|equal&lt;%&gt;|object=\?|compose1|exn:fail|in-mlist|split-at|syntax/c|quotient|wrap-evt|complex\?|char&lt;=\?|system\*|println|syntax\?|in-port|compose|in-list|conjoin|regexp\?|bytes&gt;\?|process|compile|\*list/c|object%|thread\?|eof-evt|load/cd|logger\?|struct\?|pregexp|bytes=\?|in-hash|in-dict|srcloc\?|list\*of|append\*|shuffle|writeln|call/cc|hasheqv|subset\?|seventh|char&gt;=\?|call/ec|number\?|bytes&lt;\?|string\?|object\?|symbol\?|symbols|version|display|disjoin|stream\?|vector\?|fixnum\?|arity=\?|flatten|flonum\?|set-map|reverse|newline|ceiling|fprintf|is-a\?/c|future\?|real-in|char-in|remove\*|set-eq\?|set-add|base-&gt;\?|eprintf|andmap|modulo|blame\?|cdaadr|cdaaar|seteqv|length|eighth|vector|cadddr|caddar|date\*\?|cdaddr|cadadr|empty\?|curryr|cadaar|caaddr|in-set|equal\?|mpair\?|list/c|cddaar|cddadr|member|argmax|cons/c|argmin|listof|caadar|printf|caaadr|caaaar|bytes\?|system|putenv|exact\?|expand|class\?|random|srcloc|cdddar|false\?|filter|char&gt;\?|hasheq|none/c|second|cddddr|hash/c|string|place\?|char=\?|values|char&lt;\?|negate|append|regexp|cdadar|fourth|future|banner|gensym|getenv|remove|thread|format|path&lt;\?|tenth|third|remf\*|path\?|char\?|ninth|remq\*|pair\?|ormap|mcons|assoc|remv\*|round|cdddr|takef|range|cons\?|cddar|const|list\?|apply|port\?|count|curry|touch|cdadr|date\*|list\*|date\?|findf|is-a\?|box/c|set/c|set=\?|dict\?|void\?|null\?|seteq|dropf|not/c|caddr|empty|print|cadar|raise|any/c|byte\?|caadr|sixth|angle|and/c|error|caaar|n-&gt;th|sleep|even\?|evt/c|write|bytes|unbox|fifth|unit\?|first|floor|foldl|foldr|force|real\?|zero\?|hash\?|cdaar|sinh|nan\?|udp\?|caar|cadr|null|hash|rest|box\?|&lt;=/c|memv|expt|true|memq|cdar|memf|cddr|odd\?|exn\?|or/c|mcdr|mcar|if/c|eqv\?|exit|remf|remq|atan|assv|assq|remv|assf|asin|pi\.f|tanh|&gt;=/c|take|read|acos|load|cons|sort|add1|cosh|date|list|evt\?|eval|last|sync|void|set\?|drop|sub1|sqrt|sin|sgn|eof|~\.a|eq\?|&lt;/c|lcm|set|cos|~\.s|log|abs|tan|~\.v|gcd|map|xor|=/c|max|cdr|exp|sqr|box|min|car|&gt;/c|not|exn|~v|~s|&lt;=|~r|~e|~a|&gt;=|pi|/|\*|&gt;|\+|=|-|&lt;)(?=[()[\]{}&#34;,\&#39;`;\s])">
-        <token type="NameBuiltin"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="(?:\|[^|]*\||\\[\w\W]|[^|\\()[\]{}&#34;,\&#39;`;\s]+)+">
-        <token type="Name"/>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <include state="datum*"/>
-      </rule>
-    </state>
-    <state name="unquoted-list">
-      <rule>
-        <include state="list"/>
-      </rule>
-      <rule pattern="(?!\Z)">
-        <token type="Text"/>
-        <push state="unquoted-datum"/>
-      </rule>
-    </state>
-    <state name="quasiquoted-datum">
-      <rule>
-        <include state="datum"/>
-      </rule>
-      <rule pattern=",@?">
-        <token type="Operator"/>
-        <push state="#pop" state="unquoted-datum"/>
-      </rule>
-      <rule pattern="unquote(-splicing)?(?=[()[\]{}&#34;,\&#39;`;\s])">
-        <token type="Keyword"/>
-        <push state="#pop" state="unquoted-datum"/>
-      </rule>
-      <rule pattern="[([{]">
-        <token type="Punctuation"/>
-        <push state="#pop" state="quasiquoted-list"/>
-      </rule>
-      <rule>
-        <include state="datum*"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/ragel.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/ragel.xml	(revision 67)
+++ 	(revision )
@@ -1,149 +1,0 @@
-<lexer>
-  <config>
-    <name>Ragel</name>
-    <alias>ragel</alias>
-  </config>
-  <rules>
-    <state name="host">
-      <rule pattern="([^{}\&#39;&#34;/#]+|[^\\]\\[{}]|&#34;(\\\\|\\&#34;|[^&#34;])*&#34;|&#39;(\\\\|\\&#39;|[^&#39;])*&#39;|//.*$\n?|/\*(.|\n)*?\*/|\#.*$\n?|/(?!\*)(\\\\|\\/|[^/])*/|/)+">
-        <token type="Other"/>
-      </rule>
-      <rule pattern="\{">
-        <token type="Punctuation"/>
-        <push/>
-      </rule>
-      <rule pattern="\}">
-        <token type="Punctuation"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="whitespace">
-      <rule pattern="\s+">
-        <token type="TextWhitespace"/>
-      </rule>
-    </state>
-    <state name="numbers">
-      <rule pattern="0x[0-9A-Fa-f]+">
-        <token type="LiteralNumberHex"/>
-      </rule>
-      <rule pattern="[+-]?[0-9]+">
-        <token type="LiteralNumberInteger"/>
-      </rule>
-    </state>
-    <state name="literals">
-      <rule pattern="&#34;(\\\\|\\&#34;|[^&#34;])*&#34;">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="&#39;(\\\\|\\&#39;|[^&#39;])*&#39;">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="\[(\\\\|\\\]|[^\]])*\]">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="/(?!\*)(\\\\|\\/|[^/])*/">
-        <token type="LiteralStringRegex"/>
-      </rule>
-    </state>
-    <state name="keywords">
-      <rule pattern="(access|action|alphtype)\b">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="(getkey|write|machine|include)\b">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="(any|ascii|extend|alpha|digit|alnum|lower|upper)\b">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="(xdigit|cntrl|graph|print|punct|space|zlen|empty)\b">
-        <token type="Keyword"/>
-      </rule>
-    </state>
-    <state name="identifiers">
-      <rule pattern="[a-zA-Z_]\w*">
-        <token type="NameVariable"/>
-      </rule>
-    </state>
-    <state name="root">
-      <rule>
-        <include state="literals"/>
-      </rule>
-      <rule>
-        <include state="whitespace"/>
-      </rule>
-      <rule>
-        <include state="comments"/>
-      </rule>
-      <rule>
-        <include state="keywords"/>
-      </rule>
-      <rule>
-        <include state="numbers"/>
-      </rule>
-      <rule>
-        <include state="identifiers"/>
-      </rule>
-      <rule>
-        <include state="operators"/>
-      </rule>
-      <rule pattern="\{">
-        <token type="Punctuation"/>
-        <push state="host"/>
-      </rule>
-      <rule pattern="=">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern=";">
-        <token type="Punctuation"/>
-      </rule>
-    </state>
-    <state name="comments">
-      <rule pattern="\#.*$">
-        <token type="Comment"/>
-      </rule>
-    </state>
-    <state name="operators">
-      <rule pattern=",">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="\||&amp;|--?">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="\.|&lt;:|:&gt;&gt;?">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern=":">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="-&gt;">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="(&gt;|\$|%|&lt;|@|&lt;&gt;)(/|eof\b)">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="(&gt;|\$|%|&lt;|@|&lt;&gt;)(!|err\b)">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="(&gt;|\$|%|&lt;|@|&lt;&gt;)(\^|lerr\b)">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="(&gt;|\$|%|&lt;|@|&lt;&gt;)(~|to\b)">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="(&gt;|\$|%|&lt;|@|&lt;&gt;)(\*|from\b)">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="&gt;|@|\$|%">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="\*|\?|\+|\{[0-9]*,[0-9]*\}">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="!|\^">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="\(|\)">
-        <token type="Operator"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/react.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/react.xml	(revision 67)
+++ 	(revision )
@@ -1,236 +1,0 @@
-<lexer>
-  <config>
-    <name>react</name>
-    <alias>jsx</alias>
-    <alias>react</alias>
-    <filename>*.jsx</filename>
-    <filename>*.react</filename>
-    <mime_type>text/jsx</mime_type>
-    <mime_type>text/typescript-jsx</mime_type>
-    <dot_all>true</dot_all>
-  </config>
-  <rules>
-    <state name="commentsandwhitespace">
-      <rule pattern="\s+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="&lt;!--">
-        <token type="Comment"/>
-      </rule>
-      <rule pattern="//.*?\n">
-        <token type="CommentSingle"/>
-      </rule>
-      <rule pattern="/\*.*?\*/">
-        <token type="CommentMultiline"/>
-      </rule>
-    </state>
-    <state name="slashstartsregex">
-      <rule>
-        <include state="commentsandwhitespace"/>
-      </rule>
-      <rule pattern="/(\\.|[^[/\\\n]|\[(\\.|[^\]\\\n])*])+/([gimuy]+\b|\B)">
-        <token type="LiteralStringRegex"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="(?=/)">
-        <token type="Text"/>
-        <push state="#pop" state="badregex"/>
-      </rule>
-      <rule>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="tag">
-      <rule pattern="\s+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="([\w]+\s*)(=)(\s*)">
-        <bygroups>
-          <token type="NameAttribute"/>
-          <token type="Operator"/>
-          <token type="Text"/>
-        </bygroups>
-        <push state="attr"/>
-      </rule>
-      <rule pattern="[{}]+">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="[\w\.]+">
-        <token type="NameAttribute"/>
-      </rule>
-      <rule pattern="(/?)(\s*)(&gt;)">
-        <bygroups>
-          <token type="Punctuation"/>
-          <token type="Text"/>
-          <token type="Punctuation"/>
-        </bygroups>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="expression">
-      <rule pattern="{">
-        <token type="Punctuation"/>
-        <push/>
-      </rule>
-      <rule pattern="}">
-        <token type="Punctuation"/>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <include state="root"/>
-      </rule>
-    </state>
-    <state name="attr">
-      <rule pattern="{">
-        <token type="Punctuation"/>
-        <push state="expression"/>
-      </rule>
-      <rule pattern="&#34;.*?&#34;">
-        <token type="LiteralString"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="&#39;.*?&#39;">
-        <token type="LiteralString"/>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="interp-inside">
-      <rule pattern="\}">
-        <token type="LiteralStringInterpol"/>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <include state="root"/>
-      </rule>
-    </state>
-    <state name="badregex">
-      <rule pattern="\n">
-        <token type="Text"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="jsx">
-      <rule pattern="(&lt;)(/?)(&gt;)">
-        <bygroups>
-          <token type="Punctuation"/>
-          <token type="Punctuation"/>
-          <token type="Punctuation"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(&lt;)([\w\.]+)">
-        <bygroups>
-          <token type="Punctuation"/>
-          <token type="NameTag"/>
-        </bygroups>
-        <push state="tag"/>
-      </rule>
-      <rule pattern="(&lt;)(/)([\w\.]+)(&gt;)">
-        <bygroups>
-          <token type="Punctuation"/>
-          <token type="Punctuation"/>
-          <token type="NameTag"/>
-          <token type="Punctuation"/>
-        </bygroups>
-      </rule>
-    </state>
-    <state name="root">
-      <rule>
-        <include state="jsx"/>
-      </rule>
-      <rule pattern="\A#! ?/.*?\n">
-        <token type="CommentHashbang"/>
-      </rule>
-      <rule pattern="^(?=\s|/|&lt;!--)">
-        <token type="Text"/>
-        <push state="slashstartsregex"/>
-      </rule>
-      <rule>
-        <include state="commentsandwhitespace"/>
-      </rule>
-      <rule pattern="(\.\d+|[0-9]+\.[0-9]*)([eE][-+]?[0-9]+)?">
-        <token type="LiteralNumberFloat"/>
-      </rule>
-      <rule pattern="0[bB][01]+">
-        <token type="LiteralNumberBin"/>
-      </rule>
-      <rule pattern="0[oO][0-7]+">
-        <token type="LiteralNumberOct"/>
-      </rule>
-      <rule pattern="0[xX][0-9a-fA-F]+">
-        <token type="LiteralNumberHex"/>
-      </rule>
-      <rule pattern="[0-9]+">
-        <token type="LiteralNumberInteger"/>
-      </rule>
-      <rule pattern="\.\.\.|=&gt;">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="\+\+|--|~|&amp;&amp;|\?|:|\|\||\\(?=\n)|(&lt;&lt;|&gt;&gt;&gt;?|==?|!=?|[-&lt;&gt;+*%&amp;|^/])=?">
-        <token type="Operator"/>
-        <push state="slashstartsregex"/>
-      </rule>
-      <rule pattern="[{(\[;,]">
-        <token type="Punctuation"/>
-        <push state="slashstartsregex"/>
-      </rule>
-      <rule pattern="[})\].]">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="(for|in|while|do|break|return|continue|switch|case|default|if|else|throw|try|catch|finally|new|delete|typeof|instanceof|void|yield|this|of)\b">
-        <token type="Keyword"/>
-        <push state="slashstartsregex"/>
-      </rule>
-      <rule pattern="(var|let|with|function)\b">
-        <token type="KeywordDeclaration"/>
-        <push state="slashstartsregex"/>
-      </rule>
-      <rule pattern="(abstract|async|await|boolean|byte|char|class|const|debugger|double|enum|export|extends|final|float|goto|implements|import|int|interface|long|native|package|private|protected|public|short|static|super|synchronized|throws|transient|volatile)\b">
-        <token type="KeywordReserved"/>
-      </rule>
-      <rule pattern="(true|false|null|NaN|Infinity|undefined)\b">
-        <token type="KeywordConstant"/>
-      </rule>
-      <rule pattern="(Array|Boolean|Date|Error|Function|Math|netscape|Number|Object|Packages|RegExp|String|Promise|Proxy|sun|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|Error|eval|isFinite|isNaN|isSafeInteger|parseFloat|parseInt|document|this|window)\b">
-        <token type="NameBuiltin"/>
-      </rule>
-      <rule pattern="(?:[$_\p{L}\p{N}]|\\u[a-fA-F0-9]{4})(?:(?:[$\p{L}\p{N}]|\\u[a-fA-F0-9]{4}))*">
-        <token type="NameOther"/>
-      </rule>
-      <rule pattern="&#34;(\\\\|\\&#34;|[^&#34;])*&#34;">
-        <token type="LiteralStringDouble"/>
-      </rule>
-      <rule pattern="&#39;(\\\\|\\&#39;|[^&#39;])*&#39;">
-        <token type="LiteralStringSingle"/>
-      </rule>
-      <rule pattern="`">
-        <token type="LiteralStringBacktick"/>
-        <push state="interp"/>
-      </rule>
-    </state>
-    <state name="interp">
-      <rule pattern="`">
-        <token type="LiteralStringBacktick"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="\\\\">
-        <token type="LiteralStringBacktick"/>
-      </rule>
-      <rule pattern="\\`">
-        <token type="LiteralStringBacktick"/>
-      </rule>
-      <rule pattern="\$\{">
-        <token type="LiteralStringInterpol"/>
-        <push state="interp-inside"/>
-      </rule>
-      <rule pattern="\$">
-        <token type="LiteralStringBacktick"/>
-      </rule>
-      <rule pattern="[^`\\$]+">
-        <token type="LiteralStringBacktick"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/reasonml.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/reasonml.xml	(revision 67)
+++ 	(revision )
@@ -1,147 +1,0 @@
-<lexer>
-  <config>
-    <name>ReasonML</name>
-    <alias>reason</alias>
-    <alias>reasonml</alias>
-    <filename>*.re</filename>
-    <filename>*.rei</filename>
-    <mime_type>text/x-reasonml</mime_type>
-  </config>
-  <rules>
-    <state name="escape-sequence">
-      <rule pattern="\\[\\&#34;\&#39;ntbr]">
-        <token type="LiteralStringEscape"/>
-      </rule>
-      <rule pattern="\\[0-9]{3}">
-        <token type="LiteralStringEscape"/>
-      </rule>
-      <rule pattern="\\x[0-9a-fA-F]{2}">
-        <token type="LiteralStringEscape"/>
-      </rule>
-    </state>
-    <state name="root">
-      <rule pattern="\s+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="false|true|\(\)|\[\]">
-        <token type="NameBuiltinPseudo"/>
-      </rule>
-      <rule pattern="\b([A-Z][\w\&#39;]*)(?=\s*\.)">
-        <token type="NameNamespace"/>
-        <push state="dotted"/>
-      </rule>
-      <rule pattern="\b([A-Z][\w\&#39;]*)">
-        <token type="NameClass"/>
-      </rule>
-      <rule pattern="//.*?\n">
-        <token type="CommentSingle"/>
-      </rule>
-      <rule pattern="\/\*(?![\/])">
-        <token type="CommentMultiline"/>
-        <push state="comment"/>
-      </rule>
-      <rule pattern="\b(as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|false|for|fun|esfun|function|functor|if|in|include|inherit|initializer|lazy|let|switch|module|pub|mutable|new|nonrec|object|of|open|pri|rec|sig|struct|then|to|true|try|type|val|virtual|when|while|with)\b">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="(~|\}|\|]|\||\|\||\{&lt;|\{|`|_|]|\[\||\[&gt;|\[&lt;|\[|\?\?|\?|&gt;\}|&gt;]|&gt;|=|&lt;-|&lt;|;;|;|:&gt;|:=|::|:|\.\.\.|\.\.|\.|=&gt;|-\.|-|,|\+|\*|\)|\(|&amp;&amp;|&amp;|#|!=)">
-        <token type="OperatorWord"/>
-      </rule>
-      <rule pattern="([=&lt;&gt;@^|&amp;+\*/$%-]|[!?~])?[!$%&amp;*+\./:&lt;=&gt;?@^|~-]">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="\b(and|asr|land|lor|lsl|lsr|lxor|mod|or)\b">
-        <token type="OperatorWord"/>
-      </rule>
-      <rule pattern="\b(unit|int|float|bool|string|char|list|array)\b">
-        <token type="KeywordType"/>
-      </rule>
-      <rule pattern="[^\W\d][\w&#39;]*">
-        <token type="Name"/>
-      </rule>
-      <rule pattern="-?\d[\d_]*(.[\d_]*)?([eE][+\-]?\d[\d_]*)">
-        <token type="LiteralNumberFloat"/>
-      </rule>
-      <rule pattern="0[xX][\da-fA-F][\da-fA-F_]*">
-        <token type="LiteralNumberHex"/>
-      </rule>
-      <rule pattern="0[oO][0-7][0-7_]*">
-        <token type="LiteralNumberOct"/>
-      </rule>
-      <rule pattern="0[bB][01][01_]*">
-        <token type="LiteralNumberBin"/>
-      </rule>
-      <rule pattern="\d[\d_]*">
-        <token type="LiteralNumberInteger"/>
-      </rule>
-      <rule pattern="&#39;(?:(\\[\\\&#34;&#39;ntbr ])|(\\[0-9]{3})|(\\x[0-9a-fA-F]{2}))&#39;">
-        <token type="LiteralStringChar"/>
-      </rule>
-      <rule pattern="&#39;.&#39;">
-        <token type="LiteralStringChar"/>
-      </rule>
-      <rule pattern="&#39;">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="&#34;">
-        <token type="LiteralStringDouble"/>
-        <push state="string"/>
-      </rule>
-      <rule pattern="[~?][a-z][\w\&#39;]*:">
-        <token type="NameVariable"/>
-      </rule>
-    </state>
-    <state name="comment">
-      <rule pattern="[^\/*]+">
-        <token type="CommentMultiline"/>
-      </rule>
-      <rule pattern="\/\*">
-        <token type="CommentMultiline"/>
-        <push/>
-      </rule>
-      <rule pattern="\*\/">
-        <token type="CommentMultiline"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="[\*]">
-        <token type="CommentMultiline"/>
-      </rule>
-    </state>
-    <state name="string">
-      <rule pattern="[^\\&#34;]+">
-        <token type="LiteralStringDouble"/>
-      </rule>
-      <rule>
-        <include state="escape-sequence"/>
-      </rule>
-      <rule pattern="\\\n">
-        <token type="LiteralStringDouble"/>
-      </rule>
-      <rule pattern="&#34;">
-        <token type="LiteralStringDouble"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="dotted">
-      <rule pattern="\s+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="\.">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="[A-Z][\w\&#39;]*(?=\s*\.)">
-        <token type="NameNamespace"/>
-      </rule>
-      <rule pattern="[A-Z][\w\&#39;]*">
-        <token type="NameClass"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="[a-z_][\w\&#39;]*">
-        <token type="Name"/>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <pop depth="1"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/reg.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/reg.xml	(revision 67)
+++ 	(revision )
@@ -1,68 +1,0 @@
-<lexer>
-  <config>
-    <name>reg</name>
-    <alias>registry</alias>
-    <filename>*.reg</filename>
-    <mime_type>text/x-windows-registry</mime_type>
-  </config>
-  <rules>
-    <state name="root">
-      <rule pattern="Windows Registry Editor.*">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="\s+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="[;#].*">
-        <token type="CommentSingle"/>
-      </rule>
-      <rule pattern="(\[)(-?)(HKEY_[A-Z_]+)(.*?\])$">
-        <bygroups>
-          <token type="Keyword"/>
-          <token type="Operator"/>
-          <token type="NameBuiltin"/>
-          <token type="Keyword"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(&#34;(?:\\&#34;|\\\\|[^&#34;])+&#34;)([ \t]*)(=)([ \t]*)">
-        <bygroups>
-          <token type="NameAttribute"/>
-          <token type="Text"/>
-          <token type="Operator"/>
-          <token type="Text"/>
-        </bygroups>
-        <push state="value"/>
-      </rule>
-      <rule pattern="(.*?)([ \t]*)(=)([ \t]*)">
-        <bygroups>
-          <token type="NameAttribute"/>
-          <token type="Text"/>
-          <token type="Operator"/>
-          <token type="Text"/>
-        </bygroups>
-        <push state="value"/>
-      </rule>
-    </state>
-    <state name="value">
-      <rule pattern="-">
-        <token type="Operator"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="(dword|hex(?:\([0-9a-fA-F]\))?)(:)([0-9a-fA-F,]+)">
-        <bygroups>
-          <token type="NameVariable"/>
-          <token type="Punctuation"/>
-          <token type="LiteralNumber"/>
-        </bygroups>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern=".+">
-        <token type="LiteralString"/>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <pop depth="1"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/rexx.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/rexx.xml	(revision 67)
+++ 	(revision )
@@ -1,127 +1,0 @@
-<lexer>
-  <config>
-    <name>Rexx</name>
-    <alias>rexx</alias>
-    <alias>arexx</alias>
-    <filename>*.rexx</filename>
-    <filename>*.rex</filename>
-    <filename>*.rx</filename>
-    <filename>*.arexx</filename>
-    <mime_type>text/x-rexx</mime_type>
-    <case_insensitive>true</case_insensitive>
-    <not_multiline>true</not_multiline>
-  </config>
-  <rules>
-    <state name="keyword">
-      <rule pattern="(address|arg|by|call|do|drop|else|end|exit|for|forever|if|interpret|iterate|leave|nop|numeric|off|on|options|parse|pull|push|queue|return|say|select|signal|to|then|trace|until|while)\b">
-        <token type="KeywordReserved"/>
-      </rule>
-    </state>
-    <state name="operator">
-      <rule pattern="(-|//|/|\(|\)|\*\*|\*|\\&lt;&lt;|\\&lt;|\\==|\\=|\\&gt;&gt;|\\&gt;|\\|\|\||\||&amp;&amp;|&amp;|%|\+|&lt;&lt;=|&lt;&lt;|&lt;=|&lt;&gt;|&lt;|==|=|&gt;&lt;|&gt;=|&gt;&gt;=|&gt;&gt;|&gt;|¬&lt;&lt;|¬&lt;|¬==|¬=|¬&gt;&gt;|¬&gt;|¬|\.|,)">
-        <token type="Operator"/>
-      </rule>
-    </state>
-    <state name="string_double">
-      <rule pattern="[^&#34;\n]+">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="&#34;&#34;">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="&#34;">
-        <token type="LiteralString"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="\n">
-        <token type="Text"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="string_single">
-      <rule pattern="[^\&#39;\n]">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="\&#39;\&#39;">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="\&#39;">
-        <token type="LiteralString"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="\n">
-        <token type="Text"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="comment">
-      <rule pattern="[^*]+">
-        <token type="CommentMultiline"/>
-      </rule>
-      <rule pattern="\*/">
-        <token type="CommentMultiline"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="\*">
-        <token type="CommentMultiline"/>
-      </rule>
-    </state>
-    <state name="root">
-      <rule pattern="\s">
-        <token type="TextWhitespace"/>
-      </rule>
-      <rule pattern="/\*">
-        <token type="CommentMultiline"/>
-        <push state="comment"/>
-      </rule>
-      <rule pattern="&#34;">
-        <token type="LiteralString"/>
-        <push state="string_double"/>
-      </rule>
-      <rule pattern="&#39;">
-        <token type="LiteralString"/>
-        <push state="string_single"/>
-      </rule>
-      <rule pattern="[0-9]+(\.[0-9]+)?(e[+-]?[0-9])?">
-        <token type="LiteralNumber"/>
-      </rule>
-      <rule pattern="([a-z_]\w*)(\s*)(:)(\s*)(procedure)\b">
-        <bygroups>
-          <token type="NameFunction"/>
-          <token type="TextWhitespace"/>
-          <token type="Operator"/>
-          <token type="TextWhitespace"/>
-          <token type="KeywordDeclaration"/>
-        </bygroups>
-      </rule>
-      <rule pattern="([a-z_]\w*)(\s*)(:)">
-        <bygroups>
-          <token type="NameLabel"/>
-          <token type="TextWhitespace"/>
-          <token type="Operator"/>
-        </bygroups>
-      </rule>
-      <rule>
-        <include state="function"/>
-      </rule>
-      <rule>
-        <include state="keyword"/>
-      </rule>
-      <rule>
-        <include state="operator"/>
-      </rule>
-      <rule pattern="[a-z_]\w*">
-        <token type="Text"/>
-      </rule>
-    </state>
-    <state name="function">
-      <rule pattern="(sourceline|wordlength|errortext|translate|wordindex|condition|datatype|subword|lineout|lastpos|delword|address|charout|wordpos|compare|overlay|reverse|symbol|stream|charin|center|delstr|verify|digits|abbrev|bitxor|format|random|insert|bitand|queued|length|linein|substr|copies|xrange|space|words|lines|bitor|trunc|strip|right|value|chars|trace|sign|form|fuzz|word|left|time|date|c2d|d2c|d2x|c2x|pos|b2x|arg|abs|min|x2b|x2c|x2d|max)(\s*)(\()">
-        <bygroups>
-          <token type="NameBuiltin"/>
-          <token type="TextWhitespace"/>
-          <token type="Operator"/>
-        </bygroups>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/ruby.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/ruby.xml	(revision 67)
+++ 	(revision )
@@ -1,723 +1,0 @@
-<lexer>
-  <config>
-    <name>Ruby</name>
-    <alias>rb</alias>
-    <alias>ruby</alias>
-    <alias>duby</alias>
-    <filename>*.rb</filename>
-    <filename>*.rbw</filename>
-    <filename>Rakefile</filename>
-    <filename>*.rake</filename>
-    <filename>*.gemspec</filename>
-    <filename>*.rbx</filename>
-    <filename>*.duby</filename>
-    <filename>Gemfile</filename>
-    <mime_type>text/x-ruby</mime_type>
-    <mime_type>application/x-ruby</mime_type>
-    <dot_all>true</dot_all>
-  </config>
-  <rules>
-    <state name="simple-sym">
-      <rule>
-        <include state="string-intp-escaped"/>
-      </rule>
-      <rule pattern="[^\\&#34;#]+">
-        <token type="LiteralStringSymbol"/>
-      </rule>
-      <rule pattern="[\\#]">
-        <token type="LiteralStringSymbol"/>
-      </rule>
-      <rule pattern="&#34;">
-        <token type="LiteralStringSymbol"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="interpolated-regex">
-      <rule>
-        <include state="string-intp"/>
-      </rule>
-      <rule pattern="[\\#]">
-        <token type="LiteralStringRegex"/>
-      </rule>
-      <rule pattern="[^\\#]+">
-        <token type="LiteralStringRegex"/>
-      </rule>
-    </state>
-    <state name="strings">
-      <rule pattern="\:@{0,2}[a-zA-Z_]\w*[!?]?">
-        <token type="LiteralStringSymbol"/>
-      </rule>
-      <rule pattern="\:@{0,2}(===|\[\]=|&lt;=&gt;|\*\*|==|&gt;=|\+@|&lt;&gt;|&gt;&gt;|&lt;&lt;|-@|\[\]|~|`|\^|\||&amp;|&lt;|%|/|&gt;|\+|-|\*)">
-        <token type="LiteralStringSymbol"/>
-      </rule>
-      <rule pattern=":&#39;(\\\\|\\&#39;|[^&#39;])*&#39;">
-        <token type="LiteralStringSymbol"/>
-      </rule>
-      <rule pattern="&#39;(\\\\|\\&#39;|[^&#39;])*&#39;">
-        <token type="LiteralStringSingle"/>
-      </rule>
-      <rule pattern=":&#34;">
-        <token type="LiteralStringSymbol"/>
-        <push state="simple-sym"/>
-      </rule>
-      <rule pattern="([a-zA-Z_]\w*)(:)(?!:)">
-        <bygroups>
-          <token type="LiteralStringSymbol"/>
-          <token type="Punctuation"/>
-        </bygroups>
-      </rule>
-      <rule pattern="&#34;">
-        <token type="LiteralStringDouble"/>
-        <push state="simple-string"/>
-      </rule>
-      <rule pattern="(?&lt;!\.)`">
-        <token type="LiteralStringBacktick"/>
-        <push state="simple-backtick"/>
-      </rule>
-      <rule pattern="%[QWx]?\{">
-        <token type="LiteralStringOther"/>
-        <push state="cb-intp-string"/>
-      </rule>
-      <rule pattern="%[qsw]\{">
-        <token type="LiteralStringOther"/>
-        <push state="cb-string"/>
-      </rule>
-      <rule pattern="%r\{">
-        <token type="LiteralStringRegex"/>
-        <push state="cb-regex"/>
-      </rule>
-      <rule pattern="%[QWx]?\[">
-        <token type="LiteralStringOther"/>
-        <push state="sb-intp-string"/>
-      </rule>
-      <rule pattern="%[qsw]\[">
-        <token type="LiteralStringOther"/>
-        <push state="sb-string"/>
-      </rule>
-      <rule pattern="%r\[">
-        <token type="LiteralStringRegex"/>
-        <push state="sb-regex"/>
-      </rule>
-      <rule pattern="%[QWx]?\(">
-        <token type="LiteralStringOther"/>
-        <push state="pa-intp-string"/>
-      </rule>
-      <rule pattern="%[qsw]\(">
-        <token type="LiteralStringOther"/>
-        <push state="pa-string"/>
-      </rule>
-      <rule pattern="%r\(">
-        <token type="LiteralStringRegex"/>
-        <push state="pa-regex"/>
-      </rule>
-      <rule pattern="%[QWx]?&lt;">
-        <token type="LiteralStringOther"/>
-        <push state="ab-intp-string"/>
-      </rule>
-      <rule pattern="%[qsw]&lt;">
-        <token type="LiteralStringOther"/>
-        <push state="ab-string"/>
-      </rule>
-      <rule pattern="%r&lt;">
-        <token type="LiteralStringRegex"/>
-        <push state="ab-regex"/>
-      </rule>
-      <rule pattern="(%r([\W_]))((?:\\\2|(?!\2).)*)(\2[mixounse]*)">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="%[qsw]([\W_])((?:\\\1|(?!\1).)*)\1">
-        <token type="LiteralStringOther"/>
-      </rule>
-      <rule pattern="(%[QWx]([\W_]))((?:\\\2|(?!\2).)*)(\2)">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="(?&lt;=[-+/*%=&lt;&gt;&amp;!^|~,(])(\s*)(%([\t ])(?:(?:\\\3|(?!\3).)*)\3)">
-        <bygroups>
-          <token type="Text"/>
-          <token type="LiteralStringOther"/>
-          <token type="None"/>
-        </bygroups>
-      </rule>
-      <rule pattern="^(\s*)(%([\t ])(?:(?:\\\3|(?!\3).)*)\3)">
-        <bygroups>
-          <token type="Text"/>
-          <token type="LiteralStringOther"/>
-          <token type="None"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(%([^a-zA-Z0-9\s]))((?:\\\2|(?!\2).)*)(\2)">
-        <token type="LiteralString"/>
-      </rule>
-    </state>
-    <state name="simple-backtick">
-      <rule>
-        <include state="string-intp-escaped"/>
-      </rule>
-      <rule pattern="[^\\`#]+">
-        <token type="LiteralStringBacktick"/>
-      </rule>
-      <rule pattern="[\\#]">
-        <token type="LiteralStringBacktick"/>
-      </rule>
-      <rule pattern="`">
-        <token type="LiteralStringBacktick"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="ab-regex">
-      <rule pattern="\\[\\&lt;&gt;]">
-        <token type="LiteralStringRegex"/>
-      </rule>
-      <rule pattern="&lt;">
-        <token type="LiteralStringRegex"/>
-        <push/>
-      </rule>
-      <rule pattern="&gt;[mixounse]*">
-        <token type="LiteralStringRegex"/>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <include state="string-intp"/>
-      </rule>
-      <rule pattern="[\\#&lt;&gt;]">
-        <token type="LiteralStringRegex"/>
-      </rule>
-      <rule pattern="[^\\#&lt;&gt;]+">
-        <token type="LiteralStringRegex"/>
-      </rule>
-    </state>
-    <state name="cb-regex">
-      <rule pattern="\\[\\{}]">
-        <token type="LiteralStringRegex"/>
-      </rule>
-      <rule pattern="\{">
-        <token type="LiteralStringRegex"/>
-        <push/>
-      </rule>
-      <rule pattern="\}[mixounse]*">
-        <token type="LiteralStringRegex"/>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <include state="string-intp"/>
-      </rule>
-      <rule pattern="[\\#{}]">
-        <token type="LiteralStringRegex"/>
-      </rule>
-      <rule pattern="[^\\#{}]+">
-        <token type="LiteralStringRegex"/>
-      </rule>
-    </state>
-    <state name="end-part">
-      <rule pattern=".+">
-        <token type="CommentPreproc"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="string-intp">
-      <rule pattern="#\{">
-        <token type="LiteralStringInterpol"/>
-        <push state="in-intp"/>
-      </rule>
-      <rule pattern="#@@?[a-zA-Z_]\w*">
-        <token type="LiteralStringInterpol"/>
-      </rule>
-      <rule pattern="#\$[a-zA-Z_]\w*">
-        <token type="LiteralStringInterpol"/>
-      </rule>
-    </state>
-    <state name="interpolated-string">
-      <rule>
-        <include state="string-intp"/>
-      </rule>
-      <rule pattern="[\\#]">
-        <token type="LiteralStringOther"/>
-      </rule>
-      <rule pattern="[^\\#]+">
-        <token type="LiteralStringOther"/>
-      </rule>
-    </state>
-    <state name="classname">
-      <rule pattern="\(">
-        <token type="Punctuation"/>
-        <push state="defexpr"/>
-      </rule>
-      <rule pattern="&lt;&lt;">
-        <token type="Operator"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="[A-Z_]\w*">
-        <token type="NameClass"/>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="cb-intp-string">
-      <rule pattern="\\[\\{}]">
-        <token type="LiteralStringOther"/>
-      </rule>
-      <rule pattern="\{">
-        <token type="LiteralStringOther"/>
-        <push/>
-      </rule>
-      <rule pattern="\}">
-        <token type="LiteralStringOther"/>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <include state="string-intp-escaped"/>
-      </rule>
-      <rule pattern="[\\#{}]">
-        <token type="LiteralStringOther"/>
-      </rule>
-      <rule pattern="[^\\#{}]+">
-        <token type="LiteralStringOther"/>
-      </rule>
-    </state>
-    <state name="root">
-      <rule pattern="\A#!.+?$">
-        <token type="CommentHashbang"/>
-      </rule>
-      <rule pattern="#.*?$">
-        <token type="CommentSingle"/>
-      </rule>
-      <rule pattern="=begin\s.*?\n=end.*?$">
-        <token type="CommentMultiline"/>
-      </rule>
-      <rule pattern="(defined\?|return|ensure|rescue|unless|undef|until|break|begin|elsif|super|alias|while|retry|BEGIN|raise|yield|redo|next|case|when|then|else|end|for|END|do|if|in)\b">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="(module)(\s+)([a-zA-Z_]\w*(?:::[a-zA-Z_]\w*)*)">
-        <bygroups>
-          <token type="Keyword"/>
-          <token type="Text"/>
-          <token type="NameNamespace"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(def)(\s+)">
-        <bygroups>
-          <token type="Keyword"/>
-          <token type="Text"/>
-        </bygroups>
-        <push state="funcname"/>
-      </rule>
-      <rule pattern="def(?=[*%&amp;^`~+-/\[&lt;&gt;=])">
-        <token type="Keyword"/>
-        <push state="funcname"/>
-      </rule>
-      <rule pattern="(class)(\s+)">
-        <bygroups>
-          <token type="Keyword"/>
-          <token type="Text"/>
-        </bygroups>
-        <push state="classname"/>
-      </rule>
-      <rule pattern="(module_function|attr_accessor|attr_reader|attr_writer|initialize|protected|include|private|extend|public|raise|false|catch|throw|attr|loop|true|new|nil)\b">
-        <token type="KeywordPseudo"/>
-      </rule>
-      <rule pattern="(not|and|or)\b">
-        <token type="OperatorWord"/>
-      </rule>
-      <rule pattern="(protected_method_defined|private_method_defined|public_method_defined|method_defined|const_defined|block_given|instance_of|respond_to|iterator|autoload|kind_of|tainted|include|frozen|equal|is_a|nil|eql)\?">
-        <token type="NameBuiltin"/>
-      </rule>
-      <rule pattern="(chomp|chop|exit|gsub|sub)!">
-        <token type="NameBuiltin"/>
-      </rule>
-      <rule pattern="(?&lt;!\.)(protected_instance_methods|private_instance_methods|public_instance_methods|instance_variable_set|instance_variable_get|private_class_method|public_class_method|instance_variables|protected_methods|singleton_methods|included_modules|instance_methods|global_variables|private_methods|local_variables|instance_method|class_variables|public_methods|const_defined\?|set_trace_func|method_missing|const_missing|instance_eval|module_eval|untrace_var|class_eval|trace_var|const_get|readlines|ancestors|constants|const_set|object_id|readline|autoload|__send__|untaint|methods|display|Integer|sprintf|inspect|require|syscall|at_exit|binding|extend|printf|lambda|__id__|String|callcc|method|select|format|system|freeze|caller|raise|Float|print|throw|taint|clone|srand|Array|abort|split|catch|chomp|sleep|open|puts|putc|fork|fail|trap|exit|scan|getc|self|send|eval|gets|exec|gsub|proc|load|loop|chop|warn|hash|test|name|to_a|rand|to_s|sub|dup|id|p)\b">
-        <token type="NameBuiltin"/>
-      </rule>
-      <rule pattern="__(FILE|LINE)__\b">
-        <token type="NameBuiltinPseudo"/>
-      </rule>
-      <rule pattern="(?&lt;!\w)(&lt;&lt;-?)([&#34;`\&#39;]?)([a-zA-Z_]\w*)(\2)(.*?\n)">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="(&lt;&lt;-?)(&#34;|\&#39;)()(\2)(.*?\n)">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="__END__">
-        <token type="CommentPreproc"/>
-        <push state="end-part"/>
-      </rule>
-      <rule pattern="(?:^|(?&lt;=[=&lt;&gt;~!:])|(?&lt;=(?:\s|;)when\s)|(?&lt;=(?:\s|;)or\s)|(?&lt;=(?:\s|;)and\s)|(?&lt;=\.index\s)|(?&lt;=\.scan\s)|(?&lt;=\.sub\s)|(?&lt;=\.sub!\s)|(?&lt;=\.gsub\s)|(?&lt;=\.gsub!\s)|(?&lt;=\.match\s)|(?&lt;=(?:\s|;)if\s)|(?&lt;=(?:\s|;)elsif\s)|(?&lt;=^when\s)|(?&lt;=^index\s)|(?&lt;=^scan\s)|(?&lt;=^sub\s)|(?&lt;=^gsub\s)|(?&lt;=^sub!\s)|(?&lt;=^gsub!\s)|(?&lt;=^match\s)|(?&lt;=^if\s)|(?&lt;=^elsif\s))(\s*)(/)">
-        <bygroups>
-          <token type="Text"/>
-          <token type="LiteralStringRegex"/>
-        </bygroups>
-        <push state="multiline-regex"/>
-      </rule>
-      <rule pattern="(?&lt;=\(|,|\[)/">
-        <token type="LiteralStringRegex"/>
-        <push state="multiline-regex"/>
-      </rule>
-      <rule pattern="(\s+)(/)(?![\s=])">
-        <bygroups>
-          <token type="Text"/>
-          <token type="LiteralStringRegex"/>
-        </bygroups>
-        <push state="multiline-regex"/>
-      </rule>
-      <rule pattern="(0_?[0-7]+(?:_[0-7]+)*)(\s*)([/?])?">
-        <bygroups>
-          <token type="LiteralNumberOct"/>
-          <token type="Text"/>
-          <token type="Operator"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(0x[0-9A-Fa-f]+(?:_[0-9A-Fa-f]+)*)(\s*)([/?])?">
-        <bygroups>
-          <token type="LiteralNumberHex"/>
-          <token type="Text"/>
-          <token type="Operator"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(0b[01]+(?:_[01]+)*)(\s*)([/?])?">
-        <bygroups>
-          <token type="LiteralNumberBin"/>
-          <token type="Text"/>
-          <token type="Operator"/>
-        </bygroups>
-      </rule>
-      <rule pattern="([\d]+(?:[_e]\d+)*)(\s*)([/?])?">
-        <bygroups>
-          <token type="LiteralNumberInteger"/>
-          <token type="Text"/>
-          <token type="Operator"/>
-        </bygroups>
-      </rule>
-      <rule pattern="@@[a-zA-Z_]\w*">
-        <token type="NameVariableClass"/>
-      </rule>
-      <rule pattern="@[a-zA-Z_]\w*">
-        <token type="NameVariableInstance"/>
-      </rule>
-      <rule pattern="\$\w+">
-        <token type="NameVariableGlobal"/>
-      </rule>
-      <rule pattern="\$[!@&amp;`\&#39;+~=/\\,;.&lt;&gt;_*$?:&#34;^-]">
-        <token type="NameVariableGlobal"/>
-      </rule>
-      <rule pattern="\$-[0adFiIlpvw]">
-        <token type="NameVariableGlobal"/>
-      </rule>
-      <rule pattern="::">
-        <token type="Operator"/>
-      </rule>
-      <rule>
-        <include state="strings"/>
-      </rule>
-      <rule pattern="\?(\\[MC]-)*(\\([\\abefnrstv#&#34;\&#39;]|x[a-fA-F0-9]{1,2}|[0-7]{1,3})|\S)(?!\w)">
-        <token type="LiteralStringChar"/>
-      </rule>
-      <rule pattern="[A-Z]\w+">
-        <token type="NameConstant"/>
-      </rule>
-      <rule pattern="(\.|::)(===|\[\]=|&lt;=&gt;|\*\*|==|&gt;=|\+@|&lt;&gt;|&gt;&gt;|&lt;&lt;|-@|\[\]|~|`|\^|\||&amp;|&lt;|%|/|&gt;|\+|-|\*)">
-        <bygroups>
-          <token type="Operator"/>
-          <token type="NameOperator"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(\.|::)([a-zA-Z_]\w*[!?]?|[*%&amp;^`~+\-/\[&lt;&gt;=])">
-        <bygroups>
-          <token type="Operator"/>
-          <token type="Name"/>
-        </bygroups>
-      </rule>
-      <rule pattern="[a-zA-Z_]\w*[!?]?">
-        <token type="Name"/>
-      </rule>
-      <rule pattern="(\[|\]|\*\*|&lt;&lt;?|&gt;&gt;?|&gt;=|&lt;=|&lt;=&gt;|=~|={3}|!~|&amp;&amp;?|\|\||\.{1,3})">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="[-+/*%=&lt;&gt;&amp;!^|~]=?">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="[(){};,/?:\\]">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="\s+">
-        <token type="Text"/>
-      </rule>
-    </state>
-    <state name="defexpr">
-      <rule pattern="(\))(\.|::)?">
-        <bygroups>
-          <token type="Punctuation"/>
-          <token type="Operator"/>
-        </bygroups>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="\(">
-        <token type="Operator"/>
-        <push/>
-      </rule>
-      <rule>
-        <include state="root"/>
-      </rule>
-    </state>
-    <state name="in-intp">
-      <rule pattern="\{">
-        <token type="LiteralStringInterpol"/>
-        <push/>
-      </rule>
-      <rule pattern="\}">
-        <token type="LiteralStringInterpol"/>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <include state="root"/>
-      </rule>
-    </state>
-    <state name="multiline-regex">
-      <rule>
-        <include state="string-intp"/>
-      </rule>
-      <rule pattern="\\\\">
-        <token type="LiteralStringRegex"/>
-      </rule>
-      <rule pattern="\\/">
-        <token type="LiteralStringRegex"/>
-      </rule>
-      <rule pattern="[\\#]">
-        <token type="LiteralStringRegex"/>
-      </rule>
-      <rule pattern="[^\\/#]+">
-        <token type="LiteralStringRegex"/>
-      </rule>
-      <rule pattern="/[mixounse]*">
-        <token type="LiteralStringRegex"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="cb-string">
-      <rule pattern="\\[\\{}]">
-        <token type="LiteralStringOther"/>
-      </rule>
-      <rule pattern="\{">
-        <token type="LiteralStringOther"/>
-        <push/>
-      </rule>
-      <rule pattern="\}">
-        <token type="LiteralStringOther"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="[\\#{}]">
-        <token type="LiteralStringOther"/>
-      </rule>
-      <rule pattern="[^\\#{}]+">
-        <token type="LiteralStringOther"/>
-      </rule>
-    </state>
-    <state name="funcname">
-      <rule pattern="\(">
-        <token type="Punctuation"/>
-        <push state="defexpr"/>
-      </rule>
-      <rule pattern="(?:([a-zA-Z_]\w*)(\.))?([a-zA-Z_]\w*[!?]?|\*\*?|[-+]@?|[/%&amp;|^`~]|\[\]=?|&lt;&lt;|&gt;&gt;|&lt;=?&gt;|&gt;=?|===?)">
-        <bygroups>
-          <token type="NameClass"/>
-          <token type="Operator"/>
-          <token type="NameFunction"/>
-        </bygroups>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="sb-intp-string">
-      <rule pattern="\\[\\\[\]]">
-        <token type="LiteralStringOther"/>
-      </rule>
-      <rule pattern="\[">
-        <token type="LiteralStringOther"/>
-        <push/>
-      </rule>
-      <rule pattern="\]">
-        <token type="LiteralStringOther"/>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <include state="string-intp-escaped"/>
-      </rule>
-      <rule pattern="[\\#\[\]]">
-        <token type="LiteralStringOther"/>
-      </rule>
-      <rule pattern="[^\\#\[\]]+">
-        <token type="LiteralStringOther"/>
-      </rule>
-    </state>
-    <state name="pa-string">
-      <rule pattern="\\[\\()]">
-        <token type="LiteralStringOther"/>
-      </rule>
-      <rule pattern="\(">
-        <token type="LiteralStringOther"/>
-        <push/>
-      </rule>
-      <rule pattern="\)">
-        <token type="LiteralStringOther"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="[\\#()]">
-        <token type="LiteralStringOther"/>
-      </rule>
-      <rule pattern="[^\\#()]+">
-        <token type="LiteralStringOther"/>
-      </rule>
-    </state>
-    <state name="string-intp-escaped">
-      <rule>
-        <include state="string-intp"/>
-      </rule>
-      <rule pattern="\\([\\abefnrstv#&#34;\&#39;]|x[a-fA-F0-9]{1,2}|[0-7]{1,3})">
-        <token type="LiteralStringEscape"/>
-      </rule>
-    </state>
-    <state name="simple-string">
-      <rule>
-        <include state="string-intp-escaped"/>
-      </rule>
-      <rule pattern="[^\\&#34;#]+">
-        <token type="LiteralStringDouble"/>
-      </rule>
-      <rule pattern="[\\#]">
-        <token type="LiteralStringDouble"/>
-      </rule>
-      <rule pattern="&#34;">
-        <token type="LiteralStringDouble"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="pa-intp-string">
-      <rule pattern="\\[\\()]">
-        <token type="LiteralStringOther"/>
-      </rule>
-      <rule pattern="\(">
-        <token type="LiteralStringOther"/>
-        <push/>
-      </rule>
-      <rule pattern="\)">
-        <token type="LiteralStringOther"/>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <include state="string-intp-escaped"/>
-      </rule>
-      <rule pattern="[\\#()]">
-        <token type="LiteralStringOther"/>
-      </rule>
-      <rule pattern="[^\\#()]+">
-        <token type="LiteralStringOther"/>
-      </rule>
-    </state>
-    <state name="ab-string">
-      <rule pattern="\\[\\&lt;&gt;]">
-        <token type="LiteralStringOther"/>
-      </rule>
-      <rule pattern="&lt;">
-        <token type="LiteralStringOther"/>
-        <push/>
-      </rule>
-      <rule pattern="&gt;">
-        <token type="LiteralStringOther"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="[\\#&lt;&gt;]">
-        <token type="LiteralStringOther"/>
-      </rule>
-      <rule pattern="[^\\#&lt;&gt;]+">
-        <token type="LiteralStringOther"/>
-      </rule>
-    </state>
-    <state name="sb-regex">
-      <rule pattern="\\[\\\[\]]">
-        <token type="LiteralStringRegex"/>
-      </rule>
-      <rule pattern="\[">
-        <token type="LiteralStringRegex"/>
-        <push/>
-      </rule>
-      <rule pattern="\][mixounse]*">
-        <token type="LiteralStringRegex"/>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <include state="string-intp"/>
-      </rule>
-      <rule pattern="[\\#\[\]]">
-        <token type="LiteralStringRegex"/>
-      </rule>
-      <rule pattern="[^\\#\[\]]+">
-        <token type="LiteralStringRegex"/>
-      </rule>
-    </state>
-    <state name="pa-regex">
-      <rule pattern="\\[\\()]">
-        <token type="LiteralStringRegex"/>
-      </rule>
-      <rule pattern="\(">
-        <token type="LiteralStringRegex"/>
-        <push/>
-      </rule>
-      <rule pattern="\)[mixounse]*">
-        <token type="LiteralStringRegex"/>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <include state="string-intp"/>
-      </rule>
-      <rule pattern="[\\#()]">
-        <token type="LiteralStringRegex"/>
-      </rule>
-      <rule pattern="[^\\#()]+">
-        <token type="LiteralStringRegex"/>
-      </rule>
-    </state>
-    <state name="sb-string">
-      <rule pattern="\\[\\\[\]]">
-        <token type="LiteralStringOther"/>
-      </rule>
-      <rule pattern="\[">
-        <token type="LiteralStringOther"/>
-        <push/>
-      </rule>
-      <rule pattern="\]">
-        <token type="LiteralStringOther"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="[\\#\[\]]">
-        <token type="LiteralStringOther"/>
-      </rule>
-      <rule pattern="[^\\#\[\]]+">
-        <token type="LiteralStringOther"/>
-      </rule>
-    </state>
-    <state name="ab-intp-string">
-      <rule pattern="\\[\\&lt;&gt;]">
-        <token type="LiteralStringOther"/>
-      </rule>
-      <rule pattern="&lt;">
-        <token type="LiteralStringOther"/>
-        <push/>
-      </rule>
-      <rule pattern="&gt;">
-        <token type="LiteralStringOther"/>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <include state="string-intp-escaped"/>
-      </rule>
-      <rule pattern="[\\#&lt;&gt;]">
-        <token type="LiteralStringOther"/>
-      </rule>
-      <rule pattern="[^\\#&lt;&gt;]+">
-        <token type="LiteralStringOther"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/rust.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/rust.xml	(revision 67)
+++ 	(revision )
@@ -1,329 +1,0 @@
-<lexer>
-  <config>
-    <name>Rust</name>
-    <alias>rust</alias>
-    <alias>rs</alias>
-    <filename>*.rs</filename>
-    <filename>*.rs.in</filename>
-    <mime_type>text/rust</mime_type>
-    <mime_type>text/x-rust</mime_type>
-    <ensure_nl>true</ensure_nl>
-  </config>
-  <rules>
-    <state name="modname">
-      <rule pattern="\s+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="[a-zA-Z_]\w*">
-        <token type="NameNamespace"/>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="lifetime">
-      <rule pattern="(static|_)">
-        <token type="NameBuiltin"/>
-      </rule>
-      <rule pattern="[a-zA-Z_]+\w*">
-        <token type="NameAttribute"/>
-      </rule>
-      <rule>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="number_lit">
-      <rule pattern="[ui](8|16|32|64|size)">
-        <token type="Keyword"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="f(32|64)">
-        <token type="Keyword"/>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="attribute_common">
-      <rule pattern="&#34;">
-        <token type="LiteralString"/>
-        <push state="string"/>
-      </rule>
-      <rule pattern="\[">
-        <token type="CommentPreproc"/>
-        <push state="attribute["/>
-      </rule>
-    </state>
-    <state name="bytestring">
-      <rule pattern="\\x[89a-fA-F][0-9a-fA-F]">
-        <token type="LiteralStringEscape"/>
-      </rule>
-      <rule>
-        <include state="string"/>
-      </rule>
-    </state>
-    <state name="comment">
-      <rule pattern="[^*/]+">
-        <token type="CommentMultiline"/>
-      </rule>
-      <rule pattern="/\*">
-        <token type="CommentMultiline"/>
-        <push/>
-      </rule>
-      <rule pattern="\*/">
-        <token type="CommentMultiline"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="[*/]">
-        <token type="CommentMultiline"/>
-      </rule>
-    </state>
-    <state name="doccomment">
-      <rule pattern="[^*/]+">
-        <token type="LiteralStringDoc"/>
-      </rule>
-      <rule pattern="/\*">
-        <token type="LiteralStringDoc"/>
-        <push/>
-      </rule>
-      <rule pattern="\*/">
-        <token type="LiteralStringDoc"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="[*/]">
-        <token type="LiteralStringDoc"/>
-      </rule>
-    </state>
-    <state name="funcname">
-      <rule pattern="\s+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="[a-zA-Z_]\w*">
-        <token type="NameFunction"/>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="string">
-      <rule pattern="&#34;">
-        <token type="LiteralString"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="\\[&#39;&#34;\\nrt]|\\x[0-7][0-9a-fA-F]|\\0|\\u\{[0-9a-fA-F]{1,6}\}">
-        <token type="LiteralStringEscape"/>
-      </rule>
-      <rule pattern="[^\\&#34;]+">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="\\">
-        <token type="LiteralString"/>
-      </rule>
-    </state>
-    <state name="root">
-      <rule pattern="#![^[\r\n].*$">
-        <token type="CommentPreproc"/>
-      </rule>
-      <rule>
-        <push state="base"/>
-      </rule>
-    </state>
-    <state name="attribute[">
-      <rule>
-        <include state="attribute_common"/>
-      </rule>
-      <rule pattern="\]">
-        <token type="CommentPreproc"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="[^&#34;\]\[]+">
-        <token type="CommentPreproc"/>
-      </rule>
-    </state>
-    <state name="base">
-      <rule pattern="\n">
-        <token type="TextWhitespace"/>
-      </rule>
-      <rule pattern="\s+">
-        <token type="TextWhitespace"/>
-      </rule>
-      <rule pattern="//!.*?\n">
-        <token type="LiteralStringDoc"/>
-      </rule>
-      <rule pattern="///(\n|[^/].*?\n)">
-        <token type="LiteralStringDoc"/>
-      </rule>
-      <rule pattern="//(.*?)\n">
-        <token type="CommentSingle"/>
-      </rule>
-      <rule pattern="/\*\*(\n|[^/*])">
-        <token type="LiteralStringDoc"/>
-        <push state="doccomment"/>
-      </rule>
-      <rule pattern="/\*!">
-        <token type="LiteralStringDoc"/>
-        <push state="doccomment"/>
-      </rule>
-      <rule pattern="/\*">
-        <token type="CommentMultiline"/>
-        <push state="comment"/>
-      </rule>
-      <rule pattern="r#*&#34;(?:\\.|[^\\;])*&#34;#*">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="&#34;(?:\\.|[^\\&#34;])*&#34;">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="\$([a-zA-Z_]\w*|\(,?|\),?|,?)">
-        <token type="CommentPreproc"/>
-      </rule>
-      <rule pattern="(unsafe|static|extern|return|const|crate|where|while|await|trait|super|async|match|impl|else|move|loop|pub|ref|mut|for|dyn|use|box|in|if|as)\b">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="(abstract|override|unsized|virtual|become|typeof|final|macro|yield|priv|try|do)\b">
-        <token type="KeywordReserved"/>
-      </rule>
-      <rule pattern="(true|false)\b">
-        <token type="KeywordConstant"/>
-      </rule>
-      <rule pattern="self\b">
-        <token type="NameBuiltinPseudo"/>
-      </rule>
-      <rule pattern="mod\b">
-        <token type="Keyword"/>
-        <push state="modname"/>
-      </rule>
-      <rule pattern="let\b">
-        <token type="KeywordDeclaration"/>
-      </rule>
-      <rule pattern="fn\b">
-        <token type="Keyword"/>
-        <push state="funcname"/>
-      </rule>
-      <rule pattern="(struct|enum|type|union)\b">
-        <token type="Keyword"/>
-        <push state="typename"/>
-      </rule>
-      <rule pattern="(default)(\s+)(type|fn)\b">
-        <bygroups>
-          <token type="Keyword"/>
-          <token type="Text"/>
-          <token type="Keyword"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(isize|usize|bool|char|u128|i128|i64|i32|i16|str|u64|u32|f32|f64|u16|i8|u8)\b">
-        <token type="KeywordType"/>
-      </rule>
-      <rule pattern="[sS]elf\b">
-        <token type="NameBuiltinPseudo"/>
-      </rule>
-      <rule pattern="(DoubleEndedIterator|ExactSizeIterator|IntoIterator|PartialOrd|PartialEq|ToString|Iterator|ToOwned|Default|Result|String|FnOnce|Extend|Option|FnMut|Unpin|Sized|AsRef|AsMut|Clone|None|From|Into|Sync|drop|Send|Drop|Copy|Some|Ord|Err|Box|Vec|Eq|Ok|Fn)\b">
-        <token type="NameBuiltin"/>
-      </rule>
-      <rule pattern="(is_powerpc64_feature_detected|is_aarch64_feature_detected|is_powerpc_feature_detected|is_mips64_feature_detected|is_mips_feature_detected|is_x86_feature_detected|is_arm_feature_detected|debug_assert_ne|debug_assert_eq|format_args_nl|concat_idents|unimplemented|include_bytes|compile_error|debug_assert|thread_local|trace_macros|macro_rules|format_args|module_path|unreachable|include_str|option_env|global_asm|log_syntax|stringify|assert_ne|assert_eq|llvm_asm|eprintln|include|matches|println|writeln|format|column|assert|concat|eprint|write|panic|print|file|todo|line|env|dbg|vec|cfg|asm)!">
-        <token type="NameFunctionMagic"/>
-      </rule>
-      <rule pattern="::\b">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="(?::|-&gt;)">
-        <token type="Text"/>
-        <push state="typename"/>
-      </rule>
-      <rule pattern="(break|continue)(\b\s*)(\&#39;[A-Za-z_]\w*)?">
-        <bygroups>
-          <token type="Keyword"/>
-          <token type="TextWhitespace"/>
-          <token type="NameLabel"/>
-        </bygroups>
-      </rule>
-      <rule pattern="&#39;(\\[&#39;&#34;\\nrt]|\\x[0-7][0-9a-fA-F]|\\0|\\u\{[0-9a-fA-F]{1,6}\}|.)&#39;">
-        <token type="LiteralStringChar"/>
-      </rule>
-      <rule pattern="b&#39;(\\[&#39;&#34;\\nrt]|\\x[0-9a-fA-F]{2}|\\0|\\u\{[0-9a-fA-F]{1,6}\}|.)&#39;">
-        <token type="LiteralStringChar"/>
-      </rule>
-      <rule pattern="0b[01_]+">
-        <token type="LiteralNumberBin"/>
-        <push state="number_lit"/>
-      </rule>
-      <rule pattern="0o[0-7_]+">
-        <token type="LiteralNumberOct"/>
-        <push state="number_lit"/>
-      </rule>
-      <rule pattern="0[xX][0-9a-fA-F_]+">
-        <token type="LiteralNumberHex"/>
-        <push state="number_lit"/>
-      </rule>
-      <rule pattern="[0-9][0-9_]*(\.[0-9_]+[eE][+\-]?[0-9_]+|\.[0-9_]*(?!\.)|[eE][+\-]?[0-9_]+)">
-        <token type="LiteralNumberFloat"/>
-        <push state="number_lit"/>
-      </rule>
-      <rule pattern="[0-9][0-9_]*">
-        <token type="LiteralNumberInteger"/>
-        <push state="number_lit"/>
-      </rule>
-      <rule pattern="b&#34;">
-        <token type="LiteralString"/>
-        <push state="bytestring"/>
-      </rule>
-      <rule pattern="(?s)b?r(#*)&#34;.*?&#34;\1">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="&#39;">
-        <token type="Operator"/>
-        <push state="lifetime"/>
-      </rule>
-      <rule pattern="\.\.=?">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="[{}()\[\],.;]">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="[+\-*/%&amp;|&lt;&gt;^!~@=:?]">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="(r#)?[a-zA-Z_]\w*">
-        <token type="Name"/>
-      </rule>
-      <rule pattern="r#[a-zA-Z_]\w*">
-        <token type="Name"/>
-      </rule>
-      <rule pattern="#!?\[">
-        <token type="CommentPreproc"/>
-        <push state="attribute["/>
-      </rule>
-      <rule pattern="#">
-        <token type="Text"/>
-      </rule>
-    </state>
-    <state name="typename">
-      <rule pattern="\s+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="&amp;">
-        <token type="KeywordPseudo"/>
-      </rule>
-      <rule pattern="&#39;">
-        <token type="Operator"/>
-        <push state="lifetime"/>
-      </rule>
-      <rule pattern="(DoubleEndedIterator|ExactSizeIterator|IntoIterator|PartialOrd|PartialEq|ToString|Iterator|ToOwned|Default|Result|String|FnOnce|Extend|Option|FnMut|Unpin|Sized|AsRef|AsMut|Clone|None|From|Into|Sync|drop|Send|Drop|Copy|Some|Ord|Err|Box|Vec|Eq|Ok|Fn)\b">
-        <token type="NameBuiltin"/>
-      </rule>
-      <rule pattern="(isize|usize|bool|char|u128|i128|i64|i32|i16|str|u64|u32|f32|f64|u16|i8|u8)\b">
-        <token type="KeywordType"/>
-      </rule>
-      <rule pattern="[a-zA-Z_]\w*">
-        <token type="NameClass"/>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <pop depth="1"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/sas.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/sas.xml	(revision 67)
+++ 	(revision )
@@ -1,191 +1,0 @@
-<lexer>
-  <config>
-    <name>SAS</name>
-    <alias>sas</alias>
-    <filename>*.SAS</filename>
-    <filename>*.sas</filename>
-    <mime_type>text/x-sas</mime_type>
-    <mime_type>text/sas</mime_type>
-    <mime_type>application/x-sas</mime_type>
-    <case_insensitive>true</case_insensitive>
-  </config>
-  <rules>
-    <state name="validvar">
-      <rule pattern="[a-z_]\w{0,31}\.?">
-        <token type="NameVariable"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="cards-datalines">
-      <rule pattern="^\s*(datalines|cards)\s*;\s*$">
-        <token type="Keyword"/>
-        <push state="data"/>
-      </rule>
-    </state>
-    <state name="proc-data">
-      <rule pattern="(^|;)\s*(proc \w+|data|run|quit)[\s;]">
-        <token type="KeywordReserved"/>
-      </rule>
-    </state>
-    <state name="string_dquote">
-      <rule pattern="&#34;">
-        <token type="LiteralString"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="\\\\|\\&#34;|\\\n">
-        <token type="LiteralStringEscape"/>
-      </rule>
-      <rule pattern="&amp;">
-        <token type="NameVariable"/>
-        <push state="validvar"/>
-      </rule>
-      <rule pattern="[^$&amp;&#34;\\]+">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="[$&#34;\\]">
-        <token type="LiteralString"/>
-      </rule>
-    </state>
-    <state name="general">
-      <rule>
-        <include state="keywords"/>
-      </rule>
-      <rule>
-        <include state="vars-strings"/>
-      </rule>
-      <rule>
-        <include state="special"/>
-      </rule>
-      <rule>
-        <include state="numbers"/>
-      </rule>
-    </state>
-    <state name="vars-strings">
-      <rule pattern="&amp;[a-z_]\w{0,31}\.?">
-        <token type="NameVariable"/>
-      </rule>
-      <rule pattern="%[a-z_]\w{0,31}">
-        <token type="NameFunction"/>
-      </rule>
-      <rule pattern="\&#39;">
-        <token type="LiteralString"/>
-        <push state="string_squote"/>
-      </rule>
-      <rule pattern="&#34;">
-        <token type="LiteralString"/>
-        <push state="string_dquote"/>
-      </rule>
-    </state>
-    <state name="root">
-      <rule>
-        <include state="comments"/>
-      </rule>
-      <rule>
-        <include state="proc-data"/>
-      </rule>
-      <rule>
-        <include state="cards-datalines"/>
-      </rule>
-      <rule>
-        <include state="logs"/>
-      </rule>
-      <rule>
-        <include state="general"/>
-      </rule>
-      <rule pattern=".">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="\\\n">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="\n">
-        <token type="Text"/>
-      </rule>
-    </state>
-    <state name="data">
-      <rule pattern="(.|\n)*^\s*;\s*$">
-        <token type="Other"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="logs">
-      <rule pattern="\n?^\s*%?put ">
-        <token type="Keyword"/>
-        <push state="log-messages"/>
-      </rule>
-    </state>
-    <state name="keywords">
-      <rule pattern="\b(datalines4|datalines|delimiter|startsas|redirect|lostcard|continue|informat|filename|footnote|catname|options|libname|systask|display|waitsas|missing|replace|delete|window|endsas|update|format|attrib|length|infile|select|return|retain|rename|remove|output|cards4|modify|leave|title|merge|delim|input|cards|abort|where|label|array|error|call|page|stop|keep|file|drop|link|skip|list|goto|put|out|set|by|dm|in|x)\b">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="\b(references|distinct|describe|validate|restrict|cascade|msgtype|message|primary|foreign|delete|update|create|unique|having|modify|insert|select|group|check|table|alter|order|reset|index|where|into|from|view|null|like|drop|add|not|key|and|set|on|in|or|as)\b">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="\b(while|until|then|else|end|if|do)\b">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="%(sysevalf|nrbquote|qsysfunc|qlowcase|compstor|nrquote|display|qupcase|datatyp|qcmpres|unquote|syscall|sysfunc|sysrput|sysprod|syslput|sysexec|lowcase|qsubstr|sysget|length|keydef|global|superq|substr|verify|bquote|cmpres|upcase|window|label|qleft|while|qtrim|quote|nrstr|until|sysrc|input|macro|local|qscan|index|else|scan|mend|eval|trim|then|goto|left|put|let|end|str|do|to|if)\b">
-        <token type="NameBuiltin"/>
-      </rule>
-      <rule pattern="\b(vinformatnx|vinformatwx|vinformatdx|vinformatw|vinformatd|vinformatx|vinformatn|vinformat|translate|vinarrayx|vformatwx|vformatnx|vformatdx|getoption|fileexist|fetchobs|vlengthx|filename|fipstate|kurtosis|vinarray|vformatx|pathname|foptname|compound|compress|vformatw|hosthelp|vformatn|zipnamel|vformatd|probbeta|daccdbsl|zipstate|trigamma|probbnml|probhypr|probnegb|probnorm|datepart|datetime|varlabel|varinfmt|dropnote|skewness|doptname|timepart|fipnamel|dequote|tranwrd|sysprod|digamma|stnamel|soundex|depdbsl|reverse|daccsyd|doptnum|resolve|uniform|datejul|varname|varrayx|probgam|probchi|fappend|dacctab|vformat|poisson|collate|brshift|ordinal|fdelete|blshift|betainv|fileref|lowcase|libname|fipname|vlabelx|vlength|weekday|juldate|jbessel|ibessel|zipfips|foptnum|zipname|getvarn|getvarc|frewind|vartype|depsyd|stderr|stfips|fwrite|gaminv|second|substr|vtypex|symget|hbound|vnamex|fpoint|saving|fnonct|rewind|indexc|indexw|repeat|inputc|inputn|ranuni|stname|rantbl|ranpoi|rannor|sysget|rangam|ranexp|vlabel|lbound|cexist|length|lgamma|rancau|libref|cnonct|ranbin|compbl|logpdf|logpmf|logsdf|sysmsg|curobs|daccdb|verify|daccsl|minute|system|tnonct|dsname|varray|varnum|probit|spedis|normal|varlen|dclose|varfmt|fexist|deptab|upcase|rantri|fclose|nmiss|point|trimn|depsl|trunc|peekc|depdb|probf|exist|fetch|netpv|today|mopen|probt|month|dairy|sysrc|finfo|quote|log10|close|floor|dinfo|range|fnote|attrn|intrr|intnx|intck|attrc|input|dread|dopen|index|right|round|vname|vtype|fread|gamma|arsin|arcos|fopen|frlen|fget|sinh|sqrt|addr|airy|sign|fsep|year|fuzz|dnum|scan|rank|fput|fpos|putn|putc|hour|tanh|atan|dhms|tinv|band|bnot|erfc|fcol|poke|trim|byte|ceil|peek|left|cinv|finv|open|log2|mean|note|date|cosh|mort|time|bxor|bor|mdy|std|max|css|sin|cos|npv|log|var|uss|pdf|pmf|cdf|abs|hms|day|erf|put|lag|irr|int|sum|tan|min|dif|qtr|sdf|dim|yyq|exp|mod|cv|n)\(">
-        <token type="NameBuiltin"/>
-      </rule>
-    </state>
-    <state name="numbers">
-      <rule pattern="\b[+-]?([0-9]+(\.[0-9]+)?|\.[0-9]+|\.)(E[+-]?[0-9]+)?i?\b">
-        <token type="LiteralNumber"/>
-      </rule>
-    </state>
-    <state name="special">
-      <rule pattern="(null|missing|_all_|_automatic_|_character_|_n_|_infile_|_name_|_null_|_numeric_|_user_|_webout_)">
-        <token type="KeywordConstant"/>
-      </rule>
-    </state>
-    <state name="log-messages">
-      <rule pattern="NOTE(:|-).*">
-        <token type="Generic"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="WARNING(:|-).*">
-        <token type="GenericEmph"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="ERROR(:|-).*">
-        <token type="GenericError"/>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <include state="general"/>
-      </rule>
-    </state>
-    <state name="comments">
-      <rule pattern="^\s*\*.*?;">
-        <token type="Comment"/>
-      </rule>
-      <rule pattern="/\*.*?\*/">
-        <token type="Comment"/>
-      </rule>
-      <rule pattern="^\s*\*(.|\n)*?;">
-        <token type="CommentMultiline"/>
-      </rule>
-      <rule pattern="/[*](.|\n)*?[*]/">
-        <token type="CommentMultiline"/>
-      </rule>
-    </state>
-    <state name="string_squote">
-      <rule pattern="&#39;">
-        <token type="LiteralString"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="\\\\|\\&#34;|\\\n">
-        <token type="LiteralStringEscape"/>
-      </rule>
-      <rule pattern="[^$\&#39;\\]+">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="[$\&#39;\\]">
-        <token type="LiteralString"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/sass.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/sass.xml	(revision 67)
+++ 	(revision )
@@ -1,362 +1,0 @@
-<lexer>
-  <config>
-    <name>Sass</name>
-    <alias>sass</alias>
-    <filename>*.sass</filename>
-    <mime_type>text/x-sass</mime_type>
-    <case_insensitive>true</case_insensitive>
-  </config>
-  <rules>
-    <state name="import">
-      <rule pattern="[ \t]+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="\S+">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="\n">
-        <token type="Text"/>
-        <push state="root"/>
-      </rule>
-    </state>
-    <state name="string-single">
-      <rule pattern="(\\.|#(?=[^\n{])|[^\n&#39;#])+">
-        <token type="LiteralStringSingle"/>
-      </rule>
-      <rule pattern="#\{">
-        <token type="LiteralStringInterpol"/>
-        <push state="interpolation"/>
-      </rule>
-      <rule pattern="&#39;">
-        <token type="LiteralStringSingle"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="string-double">
-      <rule pattern="(\\.|#(?=[^\n{])|[^\n&#34;#])+">
-        <token type="LiteralStringDouble"/>
-      </rule>
-      <rule pattern="#\{">
-        <token type="LiteralStringInterpol"/>
-        <push state="interpolation"/>
-      </rule>
-      <rule pattern="&#34;">
-        <token type="LiteralStringDouble"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="pseudo-class">
-      <rule pattern="[\w-]+">
-        <token type="NameDecorator"/>
-      </rule>
-      <rule pattern="#\{">
-        <token type="LiteralStringInterpol"/>
-        <push state="interpolation"/>
-      </rule>
-      <rule>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="for">
-      <rule pattern="(from|to|through)">
-        <token type="OperatorWord"/>
-      </rule>
-      <rule>
-        <include state="value"/>
-      </rule>
-    </state>
-    <state name="selector">
-      <rule pattern="[ \t]+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="\:">
-        <token type="NameDecorator"/>
-        <push state="pseudo-class"/>
-      </rule>
-      <rule pattern="\.">
-        <token type="NameClass"/>
-        <push state="class"/>
-      </rule>
-      <rule pattern="\#">
-        <token type="NameNamespace"/>
-        <push state="id"/>
-      </rule>
-      <rule pattern="[\w-]+">
-        <token type="NameTag"/>
-      </rule>
-      <rule pattern="#\{">
-        <token type="LiteralStringInterpol"/>
-        <push state="interpolation"/>
-      </rule>
-      <rule pattern="&amp;">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="[~^*!&amp;\[\]()&lt;&gt;|+=@:;,./?-]">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="&#34;">
-        <token type="LiteralStringDouble"/>
-        <push state="string-double"/>
-      </rule>
-      <rule pattern="&#39;">
-        <token type="LiteralStringSingle"/>
-        <push state="string-single"/>
-      </rule>
-      <rule pattern="\n">
-        <token type="Text"/>
-        <push state="root"/>
-      </rule>
-    </state>
-    <state name="value">
-      <rule pattern="[ \t]+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="[!$][\w-]+">
-        <token type="NameVariable"/>
-      </rule>
-      <rule pattern="url\(">
-        <token type="LiteralStringOther"/>
-        <push state="string-url"/>
-      </rule>
-      <rule pattern="[a-z_-][\w-]*(?=\()">
-        <token type="NameFunction"/>
-      </rule>
-      <rule pattern="(color-interpolation-filters|glyph-orientation-vertical|transition-timing-function|border-bottom-right-radius|border-bottom-left-radius|animation-iteration-count|animation-timing-function|font-variant-alternates|font-variant-east-asian|text-underline-position|border-top-right-radius|scroll-snap-destination|scroll-snap-coordinate|font-language-override|text-emphasis-position|font-variant-ligatures|border-top-left-radius|background-blend-mode|background-attachment|text-decoration-color|text-decoration-style|font-feature-settings|grid-template-columns|shape-image-threshold|hyphenate-limit-lines|hyphenate-limit-chars|font-variant-position|hyphenate-limit-last|scroll-snap-points-x|initial-letter-align|decimal-leading-zero|box-decoration-break|hyphenate-limit-zone|text-combine-upright|text-decoration-skip|font-variant-numeric|scroll-snap-points-y|animation-play-state|text-decoration-line|hyphenate-character|transition-duration|text-emphasis-style|border-bottom-width|border-image-repeat|grid-template-areas|border-image-source|animation-direction|initial-letter-wrap|list-style-position|transition-property|text-space-collapse|border-bottom-style|hanging-punctuation|text-emphasis-color|border-image-outset|background-position|animation-fill-mode|backface-visibility|border-bottom-color|border-right-width|alignment-baseline|mask-border-outset|border-right-style|border-right-color|mask-border-repeat|table-header-group|grid-template-rows|animation-duration|perspective-origin|presentation-level|table-footer-group|mask-border-source|border-image-width|border-image-slice|table-column-group|counter-increment|dominant-baseline|column-rule-width|speak-punctuation|page-break-before|image-orientation|font-variant-caps|grid-auto-columns|page-break-inside|border-left-width|marquee-direction|border-left-style|border-left-color|grid-column-start|mask-border-width|column-rule-color|column-rule-style|background-repeat|background-origin|mask-border-slice|scroll-snap-type|border-top-style|border-top-width|background-image|page-break-after|transform-origin|border-top-color|text-orientation|background-color|transition-delay|footnote-display|list-style-image|mask-border-mode|font-size-adjust|image-resolution|footnote-policy|object-position|ultra-condensed|motion-rotation|cjk-ideographic|justify-content|animation-delay|region-fragment|table-row-group|caret-animation|text-align-last|float-reference|extra-condensed|transform-style|text-decoration|grid-column-gap|border-collapse|background-clip|border-boundary|text-space-trim|grid-column-end|list-style-type|background-size|font-synthesis|padding-bottom|outline-offset|initial-letter|animation-name|hiragana-iroha|katakana-iroha|no-close-quote|border-spacing|rotation-point|flex-direction|voice-duration|grid-row-start|vertical-align|extra-expanded|polar-distance|baseline-shift|letter-spacing|grid-auto-flow|grid-auto-rows|lighting-color|bookmark-label|text-transform|semi-condensed|bookmark-level|mask-composite|bookmark-state|ultra-expanded|mix-blend-mode|overflow-style|grid-template|border-bottom|small-caption|semi-expanded|mask-position|no-open-quote|motion-offset|border-radius|offset-before|outline-color|outline-style|table-caption|outline-width|overflow-wrap|padding-right|flood-opacity|voice-balance|ruby-position|justify-items|bidi-override|marquee-style|shape-outside|speak-numeral|marquee-speed|counter-reset|margin-bottom|text-overflow|text-emphasis|align-content|break-before|border-width|border-image|shape-margin|speak-header|margin-right|inline-table|table-layout|center-right|marquee-loop|border-color|line-through|box-suppress|shape-inside|justify-self|float-offset|pause-before|table-column|grid-row-gap|grid-row-end|padding-left|text-justify|column-count|wrap-through|font-kerning|font-stretch|border-right|border-style|word-spacing|offset-start|caption-side|voice-volume|voice-stress|font-variant|text-spacing|offset-after|voice-family|unicode-bidi|break-inside|writing-mode|column-width|break-after|user-select|align-items|motion-path|font-weight|grid-column|voice-range|white-space|will-change|wrap-before|transparent|caret-color|text-bottom|caret-shape|mask-repeat|wrap-inside|upper-latin|text-shadow|mask-origin|font-family|flex-shrink|column-fill|message-box|text-indent|lower-roman|column-rule|padding-top|column-span|play-during|upper-roman|flood-color|page-policy|border-left|pause-after|lower-greek|perspective|lower-alpha|counter-set|mask-border|center-left|polar-angle|float-defer|marker-side|speech-rate|upper-alpha|line-height|pitch-range|empty-cells|close-quote|rest-before|margin-left|voice-pitch|overflow-y|small-caps|ruby-align|ruby-merge|wrap-after|box-shadow|word-break|flex-basis|max-height|rest-after|mask-image|list-style|min-height|voice-rate|visibility|sans-serif|object-fit|continuous|status-bar|offset-end|align-self|box-sizing|right-side|string-set|transition|margin-top|text-align|cue-before|border-top|font-style|line-break|background|capitalize|table-cell|open-quote|appearance|overflow-x|column-gap|rightwards|table-row|animation|flow-into|landscape|left-side|clip-rule|font-size|clip-path|flow-from|text-wrap|nw-resize|transform|no-repeat|line-grid|condensed|sw-resize|leftwards|line-snap|direction|crosshair|nav-right|list-item|se-resize|isolation|underline|grid-area|uppercase|min-width|flex-wrap|spell-out|max-width|ne-resize|max-lines|mask-clip|elevation|far-right|flex-flow|mask-type|word-wrap|flex-grow|mask-size|wrap-flow|monospace|mask-mode|cue-after|lowercase|relative|absolute|grid-row|armenian|e-resize|narrower|expanded|baseline|nav-down|nav-left|w-resize|xx-large|text-top|overline|overflow|katakana|n-resize|repeat-x|repeat-y|rotation|position|box-snap|xx-small|collapse|tab-size|speak-as|hiragana|s-resize|portrait|georgian|richness|separate|grid-gap|far-left|inherit|columns|content|oblique|default|outside|display|x-small|decimal|fantasy|z-index|running|azimuth|x-large|lighter|cursive|padding|outline|orphans|opacity|pointer|move-to|visible|hyphens|justify|smaller|nav-up|circle|inline|motion|inside|invert|italic|height|center|higher|x-fast|larger|hidden|digits|hebrew|groove|x-high|faster|quotes|static|behind|square|resize|border|slower|silent|dashed|medium|always|middle|filter|x-loud|bottom|widows|volume|scroll|chains|x-soft|stress|normal|nowrap|repeat|double|dotted|margin|outset|cursor|bolder|avoid|embed|x-low|above|fixed|wider|cross|inset|ridge|large|clear|speak|order|caret|width|thick|block|level|serif|blink|lower|pause|pitch|right|aural|super|below|solid|color|float|hide|soft|rest|grid|auto|slow|flow|show|page|disc|left|clip|text|flex|bold|loud|thin|size|none|help|both|once|icon|crop|fast|crop|high|mask|wait|font|all|url|top|rgb|mix|yes|low|ltr|cue|px)\b">
-        <token type="NameConstant"/>
-      </rule>
-      <rule pattern="(lightgoldenrodyellow|mediumspringgreen|mediumaquamarine|mediumslateblue|mediumturquoise|mediumvioletred|lightsteelblue|cornflowerblue|lightslategray|blanchedalmond|mediumseagreen|lightslategrey|darkolivegreen|darkgoldenrod|darkslateblue|lightseagreen|rebeccapurple|darkslategrey|darkslategray|palegoldenrod|paleturquoise|palevioletred|darkturquoise|lavenderblush|antiquewhite|mediumorchid|lightskyblue|mediumpurple|midnightblue|darkseagreen|lemonchiffon|springgreen|yellowgreen|greenyellow|navajowhite|darkmagenta|lightyellow|transparent|lightsalmon|forestgreen|saddlebrown|deepskyblue|floralwhite|dodgerblue|ghostwhite|lightcoral|sandybrown|darkviolet|papayawhip|mediumblue|chartreuse|lightgreen|whitesmoke|aquamarine|darkorange|darksalmon|powderblue|darkorchid|blueviolet|indianred|mintcream|mistyrose|olivedrab|goldenrod|orangered|lawngreen|gainsboro|lightblue|firebrick|lightcyan|peachpuff|lightgray|darkkhaki|lightgrey|darkgreen|rosybrown|royalblue|slateblue|chocolate|cadetblue|burlywood|slategray|slategrey|limegreen|steelblue|turquoise|palegreen|lightpink|aliceblue|moccasin|darkgrey|darkblue|seagreen|lavender|cornsilk|deeppink|seashell|darkgray|honeydew|darkcyan|dimgrey|magenta|crimson|darkred|hotpink|skyblue|oldlace|dimgray|fuchsia|thistle|orchid|indigo|orange|tomato|violet|salmon|yellow|silver|purple|bisque|sienna|maroon|black|linen|azure|white|wheat|khaki|green|olive|ivory|coral|brown|beige|snow|blue|navy|aqua|teal|gray|gold|grey|lime|peru|cyan|pink|plum|tan|red)\b">
-        <token type="NameEntity"/>
-      </rule>
-      <rule pattern="(fuchsia|purple|yellow|maroon|silver|white|olive|green|black|lime|gray|navy|blue|teal|aqua|red)\b">
-        <token type="NameBuiltin"/>
-      </rule>
-      <rule pattern="\!(important|default)">
-        <token type="NameException"/>
-      </rule>
-      <rule pattern="(true|false)">
-        <token type="NamePseudo"/>
-      </rule>
-      <rule pattern="(and|or|not)">
-        <token type="OperatorWord"/>
-      </rule>
-      <rule pattern="/\*">
-        <token type="CommentMultiline"/>
-        <push state="inline-comment"/>
-      </rule>
-      <rule pattern="//[^\n]*">
-        <token type="CommentSingle"/>
-      </rule>
-      <rule pattern="\#[a-z0-9]{1,6}">
-        <token type="LiteralNumberHex"/>
-      </rule>
-      <rule pattern="(-?\d+)(\%|[a-z]+)?">
-        <bygroups>
-          <token type="LiteralNumberInteger"/>
-          <token type="KeywordType"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(-?\d*\.\d+)(\%|[a-z]+)?">
-        <bygroups>
-          <token type="LiteralNumberFloat"/>
-          <token type="KeywordType"/>
-        </bygroups>
-      </rule>
-      <rule pattern="#\{">
-        <token type="LiteralStringInterpol"/>
-        <push state="interpolation"/>
-      </rule>
-      <rule pattern="[~^*!&amp;%&lt;&gt;|+=@:,./?-]+">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="[\[\]()]+">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="&#34;">
-        <token type="LiteralStringDouble"/>
-        <push state="string-double"/>
-      </rule>
-      <rule pattern="&#39;">
-        <token type="LiteralStringSingle"/>
-        <push state="string-single"/>
-      </rule>
-      <rule pattern="[a-z_-][\w-]*">
-        <token type="Name"/>
-      </rule>
-      <rule pattern="\n">
-        <token type="Text"/>
-        <push state="root"/>
-      </rule>
-    </state>
-    <state name="id">
-      <rule pattern="[\w-]+">
-        <token type="NameNamespace"/>
-      </rule>
-      <rule pattern="#\{">
-        <token type="LiteralStringInterpol"/>
-        <push state="interpolation"/>
-      </rule>
-      <rule>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="multi-comment">
-      <rule pattern=".+">
-        <token type="CommentMultiline"/>
-      </rule>
-      <rule pattern="\n">
-        <token type="Text"/>
-        <push state="root"/>
-      </rule>
-    </state>
-    <state name="interpolation">
-      <rule pattern="\}">
-        <token type="LiteralStringInterpol"/>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <include state="value"/>
-      </rule>
-    </state>
-    <state name="string-url">
-      <rule pattern="(\\#|#(?=[^\n{])|[^\n#)])+">
-        <token type="LiteralStringOther"/>
-      </rule>
-      <rule pattern="#\{">
-        <token type="LiteralStringInterpol"/>
-        <push state="interpolation"/>
-      </rule>
-      <rule pattern="\)">
-        <token type="LiteralStringOther"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="inline-comment">
-      <rule pattern="(\\#|#(?=[^\n{])|\*(?=[^\n/])|[^\n#*])+">
-        <token type="CommentMultiline"/>
-      </rule>
-      <rule pattern="#\{">
-        <token type="LiteralStringInterpol"/>
-        <push state="interpolation"/>
-      </rule>
-      <rule pattern="\*/">
-        <token type="Comment"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="root">
-      <rule pattern="[ \t]*\n">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="@import">
-        <token type="Keyword"/>
-        <push state="import"/>
-      </rule>
-      <rule pattern="@for">
-        <token type="Keyword"/>
-        <push state="for"/>
-      </rule>
-      <rule pattern="@(debug|warn|if|while)">
-        <token type="Keyword"/>
-        <push state="value"/>
-      </rule>
-      <rule pattern="(@mixin)( [\w-]+)">
-        <bygroups>
-          <token type="Keyword"/>
-          <token type="NameFunction"/>
-        </bygroups>
-        <push state="value"/>
-      </rule>
-      <rule pattern="(@include)( [\w-]+)">
-        <bygroups>
-          <token type="Keyword"/>
-          <token type="NameDecorator"/>
-        </bygroups>
-        <push state="value"/>
-      </rule>
-      <rule pattern="@extend">
-        <token type="Keyword"/>
-        <push state="selector"/>
-      </rule>
-      <rule pattern="@[\w-]+">
-        <token type="Keyword"/>
-        <push state="selector"/>
-      </rule>
-      <rule pattern="=[\w-]+">
-        <token type="NameFunction"/>
-        <push state="value"/>
-      </rule>
-      <rule pattern="\+[\w-]+">
-        <token type="NameDecorator"/>
-        <push state="value"/>
-      </rule>
-      <rule pattern="([!$][\w-]\w*)([ \t]*(?:(?:\|\|)?=|:))">
-        <bygroups>
-          <token type="NameVariable"/>
-          <token type="Operator"/>
-        </bygroups>
-        <push state="value"/>
-      </rule>
-      <rule pattern=":">
-        <token type="NameAttribute"/>
-        <push state="old-style-attr"/>
-      </rule>
-      <rule pattern="(?=.+?[=:]([^a-z]|$))">
-        <token type="NameAttribute"/>
-        <push state="new-style-attr"/>
-      </rule>
-      <rule>
-        <push state="selector"/>
-      </rule>
-    </state>
-    <state name="single-comment">
-      <rule pattern=".+">
-        <token type="CommentSingle"/>
-      </rule>
-      <rule pattern="\n">
-        <token type="Text"/>
-        <push state="root"/>
-      </rule>
-    </state>
-    <state name="new-style-attr">
-      <rule pattern="[^\s:=&#34;\[]+">
-        <token type="NameAttribute"/>
-      </rule>
-      <rule pattern="#\{">
-        <token type="LiteralStringInterpol"/>
-        <push state="interpolation"/>
-      </rule>
-      <rule pattern="[ \t]*[=:]">
-        <token type="Operator"/>
-        <push state="value"/>
-      </rule>
-    </state>
-    <state name="class">
-      <rule pattern="[\w-]+">
-        <token type="NameClass"/>
-      </rule>
-      <rule pattern="#\{">
-        <token type="LiteralStringInterpol"/>
-        <push state="interpolation"/>
-      </rule>
-      <rule>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="old-style-attr">
-      <rule pattern="[^\s:=&#34;\[]+">
-        <token type="NameAttribute"/>
-      </rule>
-      <rule pattern="#\{">
-        <token type="LiteralStringInterpol"/>
-        <push state="interpolation"/>
-      </rule>
-      <rule pattern="[ \t]*=">
-        <token type="Operator"/>
-        <push state="value"/>
-      </rule>
-      <rule>
-        <push state="value"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/scala.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/scala.xml	(revision 67)
+++ 	(revision )
@@ -1,274 +1,0 @@
-<lexer>
-  <config>
-    <name>Scala</name>
-    <alias>scala</alias>
-    <filename>*.scala</filename>
-    <mime_type>text/x-scala</mime_type>
-    <dot_all>true</dot_all>
-  </config>
-  <rules>
-    <state name="import">
-      <rule pattern="([\\$_\p{L}](?:[\\$_\p{L}]|[0-9])*(?:(?&lt;=_)[-~\^\*!%&amp;\\&lt;&gt;\|+=:/?@�-�����-����϶҂؆-؈؎-؏۩۽-۾߶৺୰௳-௸௺౿ೱ-ೲ൹༁-༃༓-༗༚-༟༴༶༸྾-࿅࿇-࿏႞-႟፠᎐-᎙᥀᧠-᧿᭡-᭪᭴-᭼⁄⁒⁺-⁼₊-₌℀-℁℃-℆℈-℉℔№-℘℞-℣℥℧℩℮℺-℻⅀-⅄⅊-⅍⅏←-⌨⌫-⑊⒜-ⓩ─-❧➔-⟄⟇-⟥⟰-⦂⦙-⧗⧜-⧻⧾-⭔⳥-⳪⺀-⿻〄〒-〓〠〶-〷〾-〿㆐-㆑㆖-㆟㇀-㇣㈀-㈞㈪-㉐㉠-㉿㊊-㊰㋀-㏿䷀-䷿꒐-꓆꠨-꠫﬩﷽﹢﹤-﹦＋＜-＞｜～￢￤￨-￮￼-�]+)?|\.)+">
-        <token type="NameNamespace"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="interpstringcommon">
-      <rule pattern="[^&#34;$\\]+">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="\$\$">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="\$[\\$_\p{L}](?:[\\$_\p{L}]|\d)*">
-        <token type="LiteralStringInterpol"/>
-      </rule>
-      <rule pattern="\$\{">
-        <token type="LiteralStringInterpol"/>
-        <push state="interpbrace"/>
-      </rule>
-      <rule pattern="\\.">
-        <token type="LiteralString"/>
-      </rule>
-    </state>
-    <state name="interptriplestring">
-      <rule pattern="&#34;&#34;&#34;(?!&#34;)">
-        <token type="LiteralString"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="&#34;">
-        <token type="LiteralString"/>
-      </rule>
-      <rule>
-        <include state="interpstringcommon"/>
-      </rule>
-    </state>
-    <state name="root">
-      <rule pattern="(class|trait|object)(\s+)">
-        <bygroups>
-          <token type="Keyword"/>
-          <token type="Text"/>
-        </bygroups>
-        <push state="class"/>
-      </rule>
-      <rule pattern="[^\S\n]+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="//.*?\n">
-        <token type="CommentSingle"/>
-      </rule>
-      <rule pattern="/\*">
-        <token type="CommentMultiline"/>
-        <push state="comment"/>
-      </rule>
-      <rule pattern="@[\\$_\p{L}](?:[\\$_\p{L}]|[0-9])*(?:(?&lt;=_)[-~\^\*!%&amp;\\&lt;&gt;\|+=:/?@�-�����-����϶҂؆-؈؎-؏۩۽-۾߶৺୰௳-௸௺౿ೱ-ೲ൹༁-༃༓-༗༚-༟༴༶༸྾-࿅࿇-࿏႞-႟፠᎐-᎙᥀᧠-᧿᭡-᭪᭴-᭼⁄⁒⁺-⁼₊-₌℀-℁℃-℆℈-℉℔№-℘℞-℣℥℧℩℮℺-℻⅀-⅄⅊-⅍⅏←-⌨⌫-⑊⒜-ⓩ─-❧➔-⟄⟇-⟥⟰-⦂⦙-⧗⧜-⧻⧾-⭔⳥-⳪⺀-⿻〄〒-〓〠〶-〷〾-〿㆐-㆑㆖-㆟㇀-㇣㈀-㈞㈪-㉐㉠-㉿㊊-㊰㋀-㏿䷀-䷿꒐-꓆꠨-꠫﬩﷽﹢﹤-﹦＋＜-＞｜～￢￤￨-￮￼-�]+)?">
-        <token type="NameDecorator"/>
-      </rule>
-      <rule pattern="(abstract|ca(?:se|tch)|d(?:ef|o)|e(?:lse|xtends)|f(?:inal(?:ly)?|or(?:Some)?)|i(?:f|mplicit)|lazy|match|new|override|pr(?:ivate|otected)|re(?:quires|turn)|s(?:ealed|uper)|t(?:h(?:is|row)|ry)|va[lr]|w(?:hile|ith)|yield)\b|(&lt;[%:-]|=&gt;|&gt;:|[#=@_⇒←])(\b|(?=\s)|$)">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern=":(?![-~\^\*!%&amp;\\&lt;&gt;\|+=:/?@�-�����-����϶҂؆-؈؎-؏۩۽-۾߶৺୰௳-௸௺౿ೱ-ೲ൹༁-༃༓-༗༚-༟༴༶༸྾-࿅࿇-࿏႞-႟፠᎐-᎙᥀᧠-᧿᭡-᭪᭴-᭼⁄⁒⁺-⁼₊-₌℀-℁℃-℆℈-℉℔№-℘℞-℣℥℧℩℮℺-℻⅀-⅄⅊-⅍⅏←-⌨⌫-⑊⒜-ⓩ─-❧➔-⟄⟇-⟥⟰-⦂⦙-⧗⧜-⧻⧾-⭔⳥-⳪⺀-⿻〄〒-〓〠〶-〷〾-〿㆐-㆑㆖-㆟㇀-㇣㈀-㈞㈪-㉐㉠-㉿㊊-㊰㋀-㏿䷀-䷿꒐-꓆꠨-꠫﬩﷽﹢﹤-﹦＋＜-＞｜～￢￤￨-￮￼-�]+%s)">
-        <token type="Keyword"/>
-        <push state="type"/>
-      </rule>
-      <rule pattern="[\\$_\p{Lu}][\\$_\p{L}](?:[\\$_\p{L}]|[0-9])*(?:(?&lt;=_)[-~\^\*!%&amp;\\&lt;&gt;\|+=:/?@�-�����-����϶҂؆-؈؎-؏۩۽-۾߶৺୰௳-௸௺౿ೱ-ೲ൹༁-༃༓-༗༚-༟༴༶༸྾-࿅࿇-࿏႞-႟፠᎐-᎙᥀᧠-᧿᭡-᭪᭴-᭼⁄⁒⁺-⁼₊-₌℀-℁℃-℆℈-℉℔№-℘℞-℣℥℧℩℮℺-℻⅀-⅄⅊-⅍⅏←-⌨⌫-⑊⒜-ⓩ─-❧➔-⟄⟇-⟥⟰-⦂⦙-⧗⧜-⧻⧾-⭔⳥-⳪⺀-⿻〄〒-〓〠〶-〷〾-〿㆐-㆑㆖-㆟㇀-㇣㈀-㈞㈪-㉐㉠-㉿㊊-㊰㋀-㏿䷀-䷿꒐-꓆꠨-꠫﬩﷽﹢﹤-﹦＋＜-＞｜～￢￤￨-￮￼-�]+)?\b">
-        <token type="NameClass"/>
-      </rule>
-      <rule pattern="(true|false|null)\b">
-        <token type="KeywordConstant"/>
-      </rule>
-      <rule pattern="(import|package)(\s+)">
-        <bygroups>
-          <token type="Keyword"/>
-          <token type="Text"/>
-        </bygroups>
-        <push state="import"/>
-      </rule>
-      <rule pattern="(type)(\s+)">
-        <bygroups>
-          <token type="Keyword"/>
-          <token type="Text"/>
-        </bygroups>
-        <push state="type"/>
-      </rule>
-      <rule pattern="&#34;&#34;&#34;.*?&#34;&#34;&#34;(?!&#34;)">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="&#34;(\\\\|\\&#34;|[^&#34;])*&#34;">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="&#39;\\.&#39;|&#39;[^\\]&#39;|&#39;\\u[0-9a-fA-F]{4}&#39;">
-        <token type="LiteralStringChar"/>
-      </rule>
-      <rule pattern="&#39;[\\$_\p{L}](?:[\\$_\p{L}]|[0-9])*(?:(?&lt;=_)[-~\^\*!%&amp;\\&lt;&gt;\|+=:/?@�-�����-����϶҂؆-؈؎-؏۩۽-۾߶৺୰௳-௸௺౿ೱ-ೲ൹༁-༃༓-༗༚-༟༴༶༸྾-࿅࿇-࿏႞-႟፠᎐-᎙᥀᧠-᧿᭡-᭪᭴-᭼⁄⁒⁺-⁼₊-₌℀-℁℃-℆℈-℉℔№-℘℞-℣℥℧℩℮℺-℻⅀-⅄⅊-⅍⅏←-⌨⌫-⑊⒜-ⓩ─-❧➔-⟄⟇-⟥⟰-⦂⦙-⧗⧜-⧻⧾-⭔⳥-⳪⺀-⿻〄〒-〓〠〶-〷〾-〿㆐-㆑㆖-㆟㇀-㇣㈀-㈞㈪-㉐㉠-㉿㊊-㊰㋀-㏿䷀-䷿꒐-꓆꠨-꠫﬩﷽﹢﹤-﹦＋＜-＞｜～￢￤￨-￮￼-�]+)?">
-        <token type="TextSymbol"/>
-      </rule>
-      <rule pattern="[fs]&#34;&#34;&#34;">
-        <token type="LiteralString"/>
-        <push state="interptriplestring"/>
-      </rule>
-      <rule pattern="[fs]&#34;">
-        <token type="LiteralString"/>
-        <push state="interpstring"/>
-      </rule>
-      <rule pattern="raw&#34;(\\\\|\\&#34;|[^&#34;])*&#34;">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="[\\$_\p{L}](?:[\\$_\p{L}]|[0-9])*(?:(?&lt;=_)[-~\^\*!%&amp;\\&lt;&gt;\|+=:/?@�-�����-����϶҂؆-؈؎-؏۩۽-۾߶৺୰௳-௸௺౿ೱ-ೲ൹༁-༃༓-༗༚-༟༴༶༸྾-࿅࿇-࿏႞-႟፠᎐-᎙᥀᧠-᧿᭡-᭪᭴-᭼⁄⁒⁺-⁼₊-₌℀-℁℃-℆℈-℉℔№-℘℞-℣℥℧℩℮℺-℻⅀-⅄⅊-⅍⅏←-⌨⌫-⑊⒜-ⓩ─-❧➔-⟄⟇-⟥⟰-⦂⦙-⧗⧜-⧻⧾-⭔⳥-⳪⺀-⿻〄〒-〓〠〶-〷〾-〿㆐-㆑㆖-㆟㇀-㇣㈀-㈞㈪-㉐㉠-㉿㊊-㊰㋀-㏿䷀-䷿꒐-꓆꠨-꠫﬩﷽﹢﹤-﹦＋＜-＞｜～￢￤￨-￮￼-�]+)?">
-        <token type="Name"/>
-      </rule>
-      <rule pattern="`[^`]+`">
-        <token type="Name"/>
-      </rule>
-      <rule pattern="\[">
-        <token type="Operator"/>
-        <push state="typeparam"/>
-      </rule>
-      <rule pattern="[(){};,.#]">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="[-~\^\*!%&amp;\\&lt;&gt;\|+=:/?@�-�����-����϶҂؆-؈؎-؏۩۽-۾߶৺୰௳-௸௺౿ೱ-ೲ൹༁-༃༓-༗༚-༟༴༶༸྾-࿅࿇-࿏႞-႟፠᎐-᎙᥀᧠-᧿᭡-᭪᭴-᭼⁄⁒⁺-⁼₊-₌℀-℁℃-℆℈-℉℔№-℘℞-℣℥℧℩℮℺-℻⅀-⅄⅊-⅍⅏←-⌨⌫-⑊⒜-ⓩ─-❧➔-⟄⟇-⟥⟰-⦂⦙-⧗⧜-⧻⧾-⭔⳥-⳪⺀-⿻〄〒-〓〠〶-〷〾-〿㆐-㆑㆖-㆟㇀-㇣㈀-㈞㈪-㉐㉠-㉿㊊-㊰㋀-㏿䷀-䷿꒐-꓆꠨-꠫﬩﷽﹢﹤-﹦＋＜-＞｜～￢￤￨-￮￼-�]+">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="([0-9][0-9]*\.[0-9]*|\.[0-9]+)([eE][+-]?[0-9]+)?[fFdD]?">
-        <token type="LiteralNumberFloat"/>
-      </rule>
-      <rule pattern="0x[0-9a-fA-F]+">
-        <token type="LiteralNumberHex"/>
-      </rule>
-      <rule pattern="[0-9]+L?">
-        <token type="LiteralNumberInteger"/>
-      </rule>
-      <rule pattern="\n">
-        <token type="Text"/>
-      </rule>
-    </state>
-    <state name="type">
-      <rule pattern="\s+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="&lt;[%:]|&gt;:|[#_]|forSome|type">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="([,);}]|=&gt;|=|⇒)(\s*)">
-        <bygroups>
-          <token type="Operator"/>
-          <token type="Text"/>
-        </bygroups>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="[({]">
-        <token type="Operator"/>
-        <push/>
-      </rule>
-      <rule pattern="((?:[\\$_\p{L}](?:[\\$_\p{L}]|[0-9])*(?:(?&lt;=_)[-~\^\*!%&amp;\\&lt;&gt;\|+=:/?@�-�����-����϶҂؆-؈؎-؏۩۽-۾߶৺୰௳-௸௺౿ೱ-ೲ൹༁-༃༓-༗༚-༟༴༶༸྾-࿅࿇-࿏႞-႟፠᎐-᎙᥀᧠-᧿᭡-᭪᭴-᭼⁄⁒⁺-⁼₊-₌℀-℁℃-℆℈-℉℔№-℘℞-℣℥℧℩℮℺-℻⅀-⅄⅊-⅍⅏←-⌨⌫-⑊⒜-ⓩ─-❧➔-⟄⟇-⟥⟰-⦂⦙-⧗⧜-⧻⧾-⭔⳥-⳪⺀-⿻〄〒-〓〠〶-〷〾-〿㆐-㆑㆖-㆟㇀-㇣㈀-㈞㈪-㉐㉠-㉿㊊-㊰㋀-㏿䷀-䷿꒐-꓆꠨-꠫﬩﷽﹢﹤-﹦＋＜-＞｜～￢￤￨-￮￼-�]+)?|[-~\^\*!%&amp;\\&lt;&gt;\|+=:/?@�-�����-����϶҂؆-؈؎-؏۩۽-۾߶৺୰௳-௸௺౿ೱ-ೲ൹༁-༃༓-༗༚-༟༴༶༸྾-࿅࿇-࿏႞-႟፠᎐-᎙᥀᧠-᧿᭡-᭪᭴-᭼⁄⁒⁺-⁼₊-₌℀-℁℃-℆℈-℉℔№-℘℞-℣℥℧℩℮℺-℻⅀-⅄⅊-⅍⅏←-⌨⌫-⑊⒜-ⓩ─-❧➔-⟄⟇-⟥⟰-⦂⦙-⧗⧜-⧻⧾-⭔⳥-⳪⺀-⿻〄〒-〓〠〶-〷〾-〿㆐-㆑㆖-㆟㇀-㇣㈀-㈞㈪-㉐㉠-㉿㊊-㊰㋀-㏿䷀-䷿꒐-꓆꠨-꠫﬩﷽﹢﹤-﹦＋＜-＞｜～￢￤￨-￮￼-�]+|`[^`]+`)(?:\.(?:[\\$_\p{L}](?:[\\$_\p{L}]|[0-9])*(?:(?&lt;=_)[-~\^\*!%&amp;\\&lt;&gt;\|+=:/?@�-�����-����϶҂؆-؈؎-؏۩۽-۾߶৺୰௳-௸௺౿ೱ-ೲ൹༁-༃༓-༗༚-༟༴༶༸྾-࿅࿇-࿏႞-႟፠᎐-᎙᥀᧠-᧿᭡-᭪᭴-᭼⁄⁒⁺-⁼₊-₌℀-℁℃-℆℈-℉℔№-℘℞-℣℥℧℩℮℺-℻⅀-⅄⅊-⅍⅏←-⌨⌫-⑊⒜-ⓩ─-❧➔-⟄⟇-⟥⟰-⦂⦙-⧗⧜-⧻⧾-⭔⳥-⳪⺀-⿻〄〒-〓〠〶-〷〾-〿㆐-㆑㆖-㆟㇀-㇣㈀-㈞㈪-㉐㉠-㉿㊊-㊰㋀-㏿䷀-䷿꒐-꓆꠨-꠫﬩﷽﹢﹤-﹦＋＜-＞｜～￢￤￨-￮￼-�]+)?|[-~\^\*!%&amp;\\&lt;&gt;\|+=:/?@�-�����-����϶҂؆-؈؎-؏۩۽-۾߶৺୰௳-௸௺౿ೱ-ೲ൹༁-༃༓-༗༚-༟༴༶༸྾-࿅࿇-࿏႞-႟፠᎐-᎙᥀᧠-᧿᭡-᭪᭴-᭼⁄⁒⁺-⁼₊-₌℀-℁℃-℆℈-℉℔№-℘℞-℣℥℧℩℮℺-℻⅀-⅄⅊-⅍⅏←-⌨⌫-⑊⒜-ⓩ─-❧➔-⟄⟇-⟥⟰-⦂⦙-⧗⧜-⧻⧾-⭔⳥-⳪⺀-⿻〄〒-〓〠〶-〷〾-〿㆐-㆑㆖-㆟㇀-㇣㈀-㈞㈪-㉐㉠-㉿㊊-㊰㋀-㏿䷀-䷿꒐-꓆꠨-꠫﬩﷽﹢﹤-﹦＋＜-＞｜～￢￤￨-￮￼-�]+|`[^`]+`))*)(\s*)(\[)">
-        <bygroups>
-          <token type="KeywordType"/>
-          <token type="Text"/>
-          <token type="Operator"/>
-        </bygroups>
-        <push state="#pop" state="typeparam"/>
-      </rule>
-      <rule pattern="((?:[\\$_\p{L}](?:[\\$_\p{L}]|[0-9])*(?:(?&lt;=_)[-~\^\*!%&amp;\\&lt;&gt;\|+=:/?@�-�����-����϶҂؆-؈؎-؏۩۽-۾߶৺୰௳-௸௺౿ೱ-ೲ൹༁-༃༓-༗༚-༟༴༶༸྾-࿅࿇-࿏႞-႟፠᎐-᎙᥀᧠-᧿᭡-᭪᭴-᭼⁄⁒⁺-⁼₊-₌℀-℁℃-℆℈-℉℔№-℘℞-℣℥℧℩℮℺-℻⅀-⅄⅊-⅍⅏←-⌨⌫-⑊⒜-ⓩ─-❧➔-⟄⟇-⟥⟰-⦂⦙-⧗⧜-⧻⧾-⭔⳥-⳪⺀-⿻〄〒-〓〠〶-〷〾-〿㆐-㆑㆖-㆟㇀-㇣㈀-㈞㈪-㉐㉠-㉿㊊-㊰㋀-㏿䷀-䷿꒐-꓆꠨-꠫﬩﷽﹢﹤-﹦＋＜-＞｜～￢￤￨-￮￼-�]+)?|[-~\^\*!%&amp;\\&lt;&gt;\|+=:/?@�-�����-����϶҂؆-؈؎-؏۩۽-۾߶৺୰௳-௸௺౿ೱ-ೲ൹༁-༃༓-༗༚-༟༴༶༸྾-࿅࿇-࿏႞-႟፠᎐-᎙᥀᧠-᧿᭡-᭪᭴-᭼⁄⁒⁺-⁼₊-₌℀-℁℃-℆℈-℉℔№-℘℞-℣℥℧℩℮℺-℻⅀-⅄⅊-⅍⅏←-⌨⌫-⑊⒜-ⓩ─-❧➔-⟄⟇-⟥⟰-⦂⦙-⧗⧜-⧻⧾-⭔⳥-⳪⺀-⿻〄〒-〓〠〶-〷〾-〿㆐-㆑㆖-㆟㇀-㇣㈀-㈞㈪-㉐㉠-㉿㊊-㊰㋀-㏿䷀-䷿꒐-꓆꠨-꠫﬩﷽﹢﹤-﹦＋＜-＞｜～￢￤￨-￮￼-�]+|`[^`]+`)(?:\.(?:[\\$_\p{L}](?:[\\$_\p{L}]|[0-9])*(?:(?&lt;=_)[-~\^\*!%&amp;\\&lt;&gt;\|+=:/?@�-�����-����϶҂؆-؈؎-؏۩۽-۾߶৺୰௳-௸௺౿ೱ-ೲ൹༁-༃༓-༗༚-༟༴༶༸྾-࿅࿇-࿏႞-႟፠᎐-᎙᥀᧠-᧿᭡-᭪᭴-᭼⁄⁒⁺-⁼₊-₌℀-℁℃-℆℈-℉℔№-℘℞-℣℥℧℩℮℺-℻⅀-⅄⅊-⅍⅏←-⌨⌫-⑊⒜-ⓩ─-❧➔-⟄⟇-⟥⟰-⦂⦙-⧗⧜-⧻⧾-⭔⳥-⳪⺀-⿻〄〒-〓〠〶-〷〾-〿㆐-㆑㆖-㆟㇀-㇣㈀-㈞㈪-㉐㉠-㉿㊊-㊰㋀-㏿䷀-䷿꒐-꓆꠨-꠫﬩﷽﹢﹤-﹦＋＜-＞｜～￢￤￨-￮￼-�]+)?|[-~\^\*!%&amp;\\&lt;&gt;\|+=:/?@�-�����-����϶҂؆-؈؎-؏۩۽-۾߶৺୰௳-௸௺౿ೱ-ೲ൹༁-༃༓-༗༚-༟༴༶༸྾-࿅࿇-࿏႞-႟፠᎐-᎙᥀᧠-᧿᭡-᭪᭴-᭼⁄⁒⁺-⁼₊-₌℀-℁℃-℆℈-℉℔№-℘℞-℣℥℧℩℮℺-℻⅀-⅄⅊-⅍⅏←-⌨⌫-⑊⒜-ⓩ─-❧➔-⟄⟇-⟥⟰-⦂⦙-⧗⧜-⧻⧾-⭔⳥-⳪⺀-⿻〄〒-〓〠〶-〷〾-〿㆐-㆑㆖-㆟㇀-㇣㈀-㈞㈪-㉐㉠-㉿㊊-㊰㋀-㏿䷀-䷿꒐-꓆꠨-꠫﬩﷽﹢﹤-﹦＋＜-＞｜～￢￤￨-￮￼-�]+|`[^`]+`))*)(\s*)$">
-        <bygroups>
-          <token type="KeywordType"/>
-          <token type="Text"/>
-        </bygroups>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="//.*?\n">
-        <token type="CommentSingle"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="\.|[\\$_\p{L}](?:[\\$_\p{L}]|[0-9])*(?:(?&lt;=_)[-~\^\*!%&amp;\\&lt;&gt;\|+=:/?@�-�����-����϶҂؆-؈؎-؏۩۽-۾߶৺୰௳-௸௺౿ೱ-ೲ൹༁-༃༓-༗༚-༟༴༶༸྾-࿅࿇-࿏႞-႟፠᎐-᎙᥀᧠-᧿᭡-᭪᭴-᭼⁄⁒⁺-⁼₊-₌℀-℁℃-℆℈-℉℔№-℘℞-℣℥℧℩℮℺-℻⅀-⅄⅊-⅍⅏←-⌨⌫-⑊⒜-ⓩ─-❧➔-⟄⟇-⟥⟰-⦂⦙-⧗⧜-⧻⧾-⭔⳥-⳪⺀-⿻〄〒-〓〠〶-〷〾-〿㆐-㆑㆖-㆟㇀-㇣㈀-㈞㈪-㉐㉠-㉿㊊-㊰㋀-㏿䷀-䷿꒐-꓆꠨-꠫﬩﷽﹢﹤-﹦＋＜-＞｜～￢￤￨-￮￼-�]+)?|[-~\^\*!%&amp;\\&lt;&gt;\|+=:/?@�-�����-����϶҂؆-؈؎-؏۩۽-۾߶৺୰௳-௸௺౿ೱ-ೲ൹༁-༃༓-༗༚-༟༴༶༸྾-࿅࿇-࿏႞-႟፠᎐-᎙᥀᧠-᧿᭡-᭪᭴-᭼⁄⁒⁺-⁼₊-₌℀-℁℃-℆℈-℉℔№-℘℞-℣℥℧℩℮℺-℻⅀-⅄⅊-⅍⅏←-⌨⌫-⑊⒜-ⓩ─-❧➔-⟄⟇-⟥⟰-⦂⦙-⧗⧜-⧻⧾-⭔⳥-⳪⺀-⿻〄〒-〓〠〶-〷〾-〿㆐-㆑㆖-㆟㇀-㇣㈀-㈞㈪-㉐㉠-㉿㊊-㊰㋀-㏿䷀-䷿꒐-꓆꠨-꠫﬩﷽﹢﹤-﹦＋＜-＞｜～￢￤￨-￮￼-�]+|`[^`]+`">
-        <token type="KeywordType"/>
-      </rule>
-    </state>
-    <state name="comment">
-      <rule pattern="[^/*]+">
-        <token type="CommentMultiline"/>
-      </rule>
-      <rule pattern="/\*">
-        <token type="CommentMultiline"/>
-        <push/>
-      </rule>
-      <rule pattern="\*/">
-        <token type="CommentMultiline"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="[*/]">
-        <token type="CommentMultiline"/>
-      </rule>
-    </state>
-    <state name="interpstring">
-      <rule pattern="&#34;">
-        <token type="LiteralString"/>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <include state="interpstringcommon"/>
-      </rule>
-    </state>
-    <state name="interpbrace">
-      <rule pattern="\}">
-        <token type="LiteralStringInterpol"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="\{">
-        <token type="LiteralStringInterpol"/>
-        <push/>
-      </rule>
-      <rule>
-        <include state="root"/>
-      </rule>
-    </state>
-    <state name="class">
-      <rule pattern="([\\$_\p{L}](?:[\\$_\p{L}]|[0-9])*(?:(?&lt;=_)[-~\^\*!%&amp;\\&lt;&gt;\|+=:/?@�-�����-����϶҂؆-؈؎-؏۩۽-۾߶৺୰௳-௸௺౿ೱ-ೲ൹༁-༃༓-༗༚-༟༴༶༸྾-࿅࿇-࿏႞-႟፠᎐-᎙᥀᧠-᧿᭡-᭪᭴-᭼⁄⁒⁺-⁼₊-₌℀-℁℃-℆℈-℉℔№-℘℞-℣℥℧℩℮℺-℻⅀-⅄⅊-⅍⅏←-⌨⌫-⑊⒜-ⓩ─-❧➔-⟄⟇-⟥⟰-⦂⦙-⧗⧜-⧻⧾-⭔⳥-⳪⺀-⿻〄〒-〓〠〶-〷〾-〿㆐-㆑㆖-㆟㇀-㇣㈀-㈞㈪-㉐㉠-㉿㊊-㊰㋀-㏿䷀-䷿꒐-꓆꠨-꠫﬩﷽﹢﹤-﹦＋＜-＞｜～￢￤￨-￮￼-�]+)?|[-~\^\*!%&amp;\\&lt;&gt;\|+=:/?@�-�����-����϶҂؆-؈؎-؏۩۽-۾߶৺୰௳-௸௺౿ೱ-ೲ൹༁-༃༓-༗༚-༟༴༶༸྾-࿅࿇-࿏႞-႟፠᎐-᎙᥀᧠-᧿᭡-᭪᭴-᭼⁄⁒⁺-⁼₊-₌℀-℁℃-℆℈-℉℔№-℘℞-℣℥℧℩℮℺-℻⅀-⅄⅊-⅍⅏←-⌨⌫-⑊⒜-ⓩ─-❧➔-⟄⟇-⟥⟰-⦂⦙-⧗⧜-⧻⧾-⭔⳥-⳪⺀-⿻〄〒-〓〠〶-〷〾-〿㆐-㆑㆖-㆟㇀-㇣㈀-㈞㈪-㉐㉠-㉿㊊-㊰㋀-㏿䷀-䷿꒐-꓆꠨-꠫﬩﷽﹢﹤-﹦＋＜-＞｜～￢￤￨-￮￼-�]+|`[^`]+`)(\s*)(\[)">
-        <bygroups>
-          <token type="NameClass"/>
-          <token type="Text"/>
-          <token type="Operator"/>
-        </bygroups>
-        <push state="typeparam"/>
-      </rule>
-      <rule pattern="\s+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="\{">
-        <token type="Operator"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="\(">
-        <token type="Operator"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="//.*?\n">
-        <token type="CommentSingle"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="[\\$_\p{L}](?:[\\$_\p{L}]|[0-9])*(?:(?&lt;=_)[-~\^\*!%&amp;\\&lt;&gt;\|+=:/?@�-�����-����϶҂؆-؈؎-؏۩۽-۾߶৺୰௳-௸௺౿ೱ-ೲ൹༁-༃༓-༗༚-༟༴༶༸྾-࿅࿇-࿏႞-႟፠᎐-᎙᥀᧠-᧿᭡-᭪᭴-᭼⁄⁒⁺-⁼₊-₌℀-℁℃-℆℈-℉℔№-℘℞-℣℥℧℩℮℺-℻⅀-⅄⅊-⅍⅏←-⌨⌫-⑊⒜-ⓩ─-❧➔-⟄⟇-⟥⟰-⦂⦙-⧗⧜-⧻⧾-⭔⳥-⳪⺀-⿻〄〒-〓〠〶-〷〾-〿㆐-㆑㆖-㆟㇀-㇣㈀-㈞㈪-㉐㉠-㉿㊊-㊰㋀-㏿䷀-䷿꒐-꓆꠨-꠫﬩﷽﹢﹤-﹦＋＜-＞｜～￢￤￨-￮￼-�]+)?|[-~\^\*!%&amp;\\&lt;&gt;\|+=:/?@�-�����-����϶҂؆-؈؎-؏۩۽-۾߶৺୰௳-௸௺౿ೱ-ೲ൹༁-༃༓-༗༚-༟༴༶༸྾-࿅࿇-࿏႞-႟፠᎐-᎙᥀᧠-᧿᭡-᭪᭴-᭼⁄⁒⁺-⁼₊-₌℀-℁℃-℆℈-℉℔№-℘℞-℣℥℧℩℮℺-℻⅀-⅄⅊-⅍⅏←-⌨⌫-⑊⒜-ⓩ─-❧➔-⟄⟇-⟥⟰-⦂⦙-⧗⧜-⧻⧾-⭔⳥-⳪⺀-⿻〄〒-〓〠〶-〷〾-〿㆐-㆑㆖-㆟㇀-㇣㈀-㈞㈪-㉐㉠-㉿㊊-㊰㋀-㏿䷀-䷿꒐-꓆꠨-꠫﬩﷽﹢﹤-﹦＋＜-＞｜～￢￤￨-￮￼-�]+|`[^`]+`">
-        <token type="NameClass"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="typeparam">
-      <rule pattern="[\s,]+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="&lt;[%:]|=&gt;|&gt;:|[#_⇒]|forSome|type">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="([\])}])">
-        <token type="Operator"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="[(\[{]">
-        <token type="Operator"/>
-        <push/>
-      </rule>
-      <rule pattern="\.|[\\$_\p{L}](?:[\\$_\p{L}]|[0-9])*(?:(?&lt;=_)[-~\^\*!%&amp;\\&lt;&gt;\|+=:/?@�-�����-����϶҂؆-؈؎-؏۩۽-۾߶৺୰௳-௸௺౿ೱ-ೲ൹༁-༃༓-༗༚-༟༴༶༸྾-࿅࿇-࿏႞-႟፠᎐-᎙᥀᧠-᧿᭡-᭪᭴-᭼⁄⁒⁺-⁼₊-₌℀-℁℃-℆℈-℉℔№-℘℞-℣℥℧℩℮℺-℻⅀-⅄⅊-⅍⅏←-⌨⌫-⑊⒜-ⓩ─-❧➔-⟄⟇-⟥⟰-⦂⦙-⧗⧜-⧻⧾-⭔⳥-⳪⺀-⿻〄〒-〓〠〶-〷〾-〿㆐-㆑㆖-㆟㇀-㇣㈀-㈞㈪-㉐㉠-㉿㊊-㊰㋀-㏿䷀-䷿꒐-꓆꠨-꠫﬩﷽﹢﹤-﹦＋＜-＞｜～￢￤￨-￮￼-�]+)?|[-~\^\*!%&amp;\\&lt;&gt;\|+=:/?@�-�����-����϶҂؆-؈؎-؏۩۽-۾߶৺୰௳-௸௺౿ೱ-ೲ൹༁-༃༓-༗༚-༟༴༶༸྾-࿅࿇-࿏႞-႟፠᎐-᎙᥀᧠-᧿᭡-᭪᭴-᭼⁄⁒⁺-⁼₊-₌℀-℁℃-℆℈-℉℔№-℘℞-℣℥℧℩℮℺-℻⅀-⅄⅊-⅍⅏←-⌨⌫-⑊⒜-ⓩ─-❧➔-⟄⟇-⟥⟰-⦂⦙-⧗⧜-⧻⧾-⭔⳥-⳪⺀-⿻〄〒-〓〠〶-〷〾-〿㆐-㆑㆖-㆟㇀-㇣㈀-㈞㈪-㉐㉠-㉿㊊-㊰㋀-㏿䷀-䷿꒐-꓆꠨-꠫﬩﷽﹢﹤-﹦＋＜-＞｜～￢￤￨-￮￼-�]+|`[^`]+`">
-        <token type="KeywordType"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/scheme.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/scheme.xml	(revision 67)
+++ 	(revision )
@@ -1,106 +1,0 @@
-<lexer>
-  <config>
-    <name>Scheme</name>
-    <alias>scheme</alias>
-    <alias>scm</alias>
-    <filename>*.scm</filename>
-    <filename>*.ss</filename>
-    <mime_type>text/x-scheme</mime_type>
-    <mime_type>application/x-scheme</mime_type>
-  </config>
-  <rules>
-    <state name="root">
-      <rule pattern=";.*$">
-        <token type="CommentSingle"/>
-      </rule>
-      <rule pattern="#\|">
-        <token type="CommentMultiline"/>
-        <push state="multiline-comment"/>
-      </rule>
-      <rule pattern="#;\s*\(">
-        <token type="Comment"/>
-        <push state="commented-form"/>
-      </rule>
-      <rule pattern="#!r6rs">
-        <token type="Comment"/>
-      </rule>
-      <rule pattern="\s+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="-?\d+\.\d+">
-        <token type="LiteralNumberFloat"/>
-      </rule>
-      <rule pattern="-?\d+">
-        <token type="LiteralNumberInteger"/>
-      </rule>
-      <rule pattern="&#34;(\\\\|\\&#34;|[^&#34;])*&#34;">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="&#39;[\w!$%&amp;*+,/:&lt;=&gt;?@^~|-]+">
-        <token type="LiteralStringSymbol"/>
-      </rule>
-      <rule pattern="#\\(alarm|backspace|delete|esc|linefeed|newline|page|return|space|tab|vtab|x[0-9a-zA-Z]{1,5}|.)">
-        <token type="LiteralStringChar"/>
-      </rule>
-      <rule pattern="(#t|#f)">
-        <token type="NameConstant"/>
-      </rule>
-      <rule pattern="(&#39;|#|`|,@|,|\.)">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="(lambda |define |if |else |cond |and |or |case |let |let\* |letrec |begin |do |delay |set\! |\=\&gt; |quote |quasiquote |unquote |unquote\-splicing |define\-syntax |let\-syntax |letrec\-syntax |syntax\-rules )">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="(?&lt;=&#39;\()[\w!$%&amp;*+,/:&lt;=&gt;?@^~|-]+">
-        <token type="NameVariable"/>
-      </rule>
-      <rule pattern="(?&lt;=#\()[\w!$%&amp;*+,/:&lt;=&gt;?@^~|-]+">
-        <token type="NameVariable"/>
-      </rule>
-      <rule pattern="(?&lt;=\()(\* |\+ |\- |\/ |\&lt; |\&lt;\= |\= |\&gt; |\&gt;\= |abs |acos |angle |append |apply |asin |assoc |assq |assv |atan |boolean\? |caaaar |caaadr |caaar |caadar |caaddr |caadr |caar |cadaar |cadadr |cadar |caddar |cadddr |caddr |cadr |call\-with\-current\-continuation |call\-with\-input\-file |call\-with\-output\-file |call\-with\-values |call\/cc |car |cdaaar |cdaadr |cdaar |cdadar |cdaddr |cdadr |cdar |cddaar |cddadr |cddar |cdddar |cddddr |cdddr |cddr |cdr |ceiling |char\-\&gt;integer |char\-alphabetic\? |char\-ci\&lt;\=\? |char\-ci\&lt;\? |char\-ci\=\? |char\-ci\&gt;\=\? |char\-ci\&gt;\? |char\-downcase |char\-lower\-case\? |char\-numeric\? |char\-ready\? |char\-upcase |char\-upper\-case\? |char\-whitespace\? |char\&lt;\=\? |char\&lt;\? |char\=\? |char\&gt;\=\? |char\&gt;\? |char\? |close\-input\-port |close\-output\-port |complex\? |cons |cos |current\-input\-port |current\-output\-port |denominator |display |dynamic\-wind |eof\-object\? |eq\? |equal\? |eqv\? |eval |even\? |exact\-\&gt;inexact |exact\? |exp |expt |floor |for\-each |force |gcd |imag\-part |inexact\-\&gt;exact |inexact\? |input\-port\? |integer\-\&gt;char |integer\? |interaction\-environment |lcm |length |list |list\-\&gt;string |list\-\&gt;vector |list\-ref |list\-tail |list\? |load |log |magnitude |make\-polar |make\-rectangular |make\-string |make\-vector |map |max |member |memq |memv |min |modulo |negative\? |newline |not |null\-environment |null\? |number\-\&gt;string |number\? |numerator |odd\? |open\-input\-file |open\-output\-file |output\-port\? |pair\? |peek\-char |port\? |positive\? |procedure\? |quotient |rational\? |rationalize |read |read\-char |real\-part |real\? |remainder |reverse |round |scheme\-report\-environment |set\-car\! |set\-cdr\! |sin |sqrt |string |string\-\&gt;list |string\-\&gt;number |string\-\&gt;symbol |string\-append |string\-ci\&lt;\=\? |string\-ci\&lt;\? |string\-ci\=\? |string\-ci\&gt;\=\? |string\-ci\&gt;\? |string\-copy |string\-fill\! |string\-length |string\-ref |string\-set\! |string\&lt;\=\? |string\&lt;\? |string\=\? |string\&gt;\=\? |string\&gt;\? |string\? |substring |symbol\-\&gt;string |symbol\? |tan |transcript\-off |transcript\-on |truncate |values |vector |vector\-\&gt;list |vector\-fill\! |vector\-length |vector\-ref |vector\-set\! |vector\? |with\-input\-from\-file |with\-output\-to\-file |write |write\-char |zero\? )">
-        <token type="NameBuiltin"/>
-      </rule>
-      <rule pattern="(?&lt;=\()[\w!$%&amp;*+,/:&lt;=&gt;?@^~|-]+">
-        <token type="NameFunction"/>
-      </rule>
-      <rule pattern="[\w!$%&amp;*+,/:&lt;=&gt;?@^~|-]+">
-        <token type="NameVariable"/>
-      </rule>
-      <rule pattern="(\(|\))">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="(\[|\])">
-        <token type="Punctuation"/>
-      </rule>
-    </state>
-    <state name="multiline-comment">
-      <rule pattern="#\|">
-        <token type="CommentMultiline"/>
-        <push/>
-      </rule>
-      <rule pattern="\|#">
-        <token type="CommentMultiline"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="[^|#]+">
-        <token type="CommentMultiline"/>
-      </rule>
-      <rule pattern="[|#]">
-        <token type="CommentMultiline"/>
-      </rule>
-    </state>
-    <state name="commented-form">
-      <rule pattern="\(">
-        <token type="Comment"/>
-        <push/>
-      </rule>
-      <rule pattern="\)">
-        <token type="Comment"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="[^()]+">
-        <token type="Comment"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/scilab.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/scilab.xml	(revision 67)
+++ 	(revision )
@@ -1,98 +1,0 @@
-<lexer>
-  <config>
-    <name>Scilab</name>
-    <alias>scilab</alias>
-    <filename>*.sci</filename>
-    <filename>*.sce</filename>
-    <filename>*.tst</filename>
-    <mime_type>text/scilab</mime_type>
-  </config>
-  <rules>
-    <state name="root">
-      <rule pattern="//.*?$">
-        <token type="CommentSingle"/>
-      </rule>
-      <rule pattern="^\s*function">
-        <token type="Keyword"/>
-        <push state="deffunc"/>
-      </rule>
-      <rule pattern="(unwind_protect_cleanup|end_unwind_protect|unwind_protect|end_try_catch|endproperties|endclassdef|endfunction|persistent|properties|endmethods|otherwise|endevents|endswitch|__FILE__|continue|classdef|__LINE__|endwhile|function|methods|elseif|return|static|events|global|endfor|switch|until|endif|while|catch|break|case|else|set|end|try|for|get|do|if)\b">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="(gencompilationflags_unix|neldermead_defaultoutput|optimbase_isinnonlincons|tbx_builder_gateway_lang|optimbase_hasconstraints|getinstalledlookandfeels|tbx_build_gateway_loader|xcosValidateCompareBlock|assert_checkalmostequal|optimsimplex_deltafvmax|optimsimplex_gradientfv|tbx_build_gateway_clean|add_module_help_chapter|optimsimplex_fvvariance|optimsimplex_compsomefv|del_module_help_chapter|saveconsecutivecommands|removeModulePreferences|xcosPalGenerateAllIcons|get_absolute_file_path|%Block_xcosUpdateBlock|optimbase_checkcostfun|nyquistfrequencybounds|with_modelica_compiler|optimsimplex_computefv|assert_checkfilesequal|tbx_build_localization|formatSgridDampingTip|block_parameter_error|xcosConfigureModelica|formatNicholsPhaseTip|addlocalizationdomain|optimbase_checkbounds|scicos_workspace_init|formatZgridDampingTip|neldermead_updatesimp|optimbase_logshutdown|optimsimplex_setallfv|xcosSimulationStarted|datatipSetOrientation|extract_help_examples|tbx_builder_help_lang|arobasestring2strings|initial_scicos_tables|optimsimplex_getallfv|fire_closing_finished|atomsGetInstalledPath|tbx_build_help_loader|assert_cond2reqdigits|nmplot_simplexhistory|assert_comparecomplex|optimsimplex_setnbve|assert_computedigits|optimsimplex_getallx|optimsimplex_fvstdev|optimsimplex_deltafv|optimsimplex_setallx|xcosConfigureXmlFile|optimbase_isfeasible|parallel_concurrency|output_nsga2_default|addModulePreferences|xcosValidateBlockSet|compute_initial_temp|crossover_ga_default|optimsimplex_destroy|optimsimplex_reflect|devtools_run_builder|selection_ga_elitist|xcosShowBlockWarning|optimbase_isinbounds|formatNicholsGainTip|jallowClassReloading|detectmsifort64tools|demo_function_choice|optimbase_logstartup|optimsimplex_getnbve|%H5Object_fieldnames|tbx_builder_src_lang|neldermead_configure|createXConfiguration|tbx_build_pal_loader|optimsimplex_dirmat|optimsimplex_fvmean|output_nsga_default|crossover_ga_binary|getPreferencesValue|formatHallModuleTip|getrelativefilename|output_moga_default|optimbase_configure|atomsRepositoryList|xcosPalGenerateIcon|accept_func_default|xcosDiagramToScilab|optimbase_hasbounds|find_scicos_version|fftwlibraryisloaded|optimsimplex_setall|optimbase_hasnlcons|optimbase_outstruct|mutation_ga_default|optimsimplex_shrink|neldermead_function|tbx_generate_pofile|setPreferencesValue|selection_ga_random|matfile_varreadnext|importScicosDiagram|tbx_builder_gateway|optimsimplex_center|optimsimplex_getall|optimbase_terminate|optimbase_proj2bnds|optimbase_outputcmd|findmsifortcompiler|generateBlockImages|getvariablesonstack|getdefaultlanguage|formatBodePhaseTip|nmplot_historyplot|formatHallPhaseTip|formatPhaseplotTip|coding_ga_identity|xcosCodeGeneration|formatSgridFreqTip|xcosBlockInterface|formatZgridFreqTip|generateBlockImage|saveafterncommands|optimsimplex_setve|scicos_debug_count|setdefaultlanguage|neldermead_restart|get_scicos_version|atomsGetLoadedPath|with_macros_source|atomsRestoreConfig|optimbase_function|assert_cond2reltol|datatipManagerMode|optimsimplex_setfv|optimsimplex_getfv|atomsRepositoryDel|xcosPalCategoryAdd|system_getproperty|system_setproperty|mutation_ga_binary|atomsRepositoryAdd|optimsimplex_check|ilib_gen_Make_unix|optimbase_incriter|%XMLList_i_XMLList|%XMLList_i_XMLElem|neldermead_destroy|%XMLElem_i_XMLList|%XMLElem_i_XMLElem|demo_folder_choice|tbx_builder_macros|optimplotfunccount|disposefftwlibrary|neigh_func_default|optimsimplex_getve|%XMLAttr_i_XMLElem|%hmS_k_hmS_generic|fftw_forget_wisdom|assert_checkequal|optimsimplex_getx|optimbase_stoplog|atomsGetInstalled|detectmsvc64tools|importXcosDiagram|%XMLDoc_i_XMLList|%XMLElem_i_XMLDoc|optimsimplex_setn|atomsAutoloadList|atomsSystemUpdate|optimsimplex_getn|number_properties|neldermead_search|ilib_include_flag|optimsimplex_setx|firstnonsingleton|getcallbackobject|x_choose_modeless|optimbase_histset|atomsCategoryList|optimbase_histget|recompilefunction|datatipSetDisplay|optimbase_destroy|check_modules_xml|pointer_xproperty|optimbase_checkx0|formatGainplotTip|csvStringToDouble|jconvMatrixMethod|optimsimplex_sort|getscilabkeywords|removelinehistory|optimsimplex_xbar|assert_checkfalse|output_ga_default|configure_msifort|assert_checkerror|get_function_path|iswaitingforinput|getDiagramVersion|tbx_build_gateway|tbx_build_cleaner|optimsimplex_size|tbx_build_blocks|getshortpathname|tbx_build_loader|convert_to_float|xmlSetAttributes|TCL_DeleteInterp|tbx_build_macros|matfile_varwrite|formatNyquistTip|coding_ga_binary|xmlIsValidObject|tbx_builder_help|xmlGetNsByPrefix|nmplot_outputcmd|assert_checktrue|del_help_chapter|atomsIsInstalled|atomsAutoloadAdd|import_from_hdf5|formatBodeMagTip|datatipSetInterp|xcosAddToolsMenu|atomsAutoloadDel|findmsvccompiler|%cblock_c_cblock|temp_law_default|phase_simulation|%XMLNs_i_XMLElem|ilib_gen_cleaner|nmplot_configure|ilib_gen_gateway|add_help_chapter|%cblock_f_cblock|accept_func_vfsa|demo_file_choice|atomsCheckModule|%TSIMPLEX_string|replace_Ix_by_Fx|%xlssheet_string|atomsDepTreeShow|optimsimplex_new|optimsimplex_log|instruction2code|is_absolute_path|remove_profiling|neldermead_costf|javalibrarypath|relocate_handle|tbx_builder_src|set_fftw_wisdom|updatebrowsevar|%XMLAttr_length|init_ga_default|getModelicaPath|atomsSystemInit|%TNMPLOT_string|TCL_CreateSlave|reset_profiling|importScicosPal|%_listvarinfile|graphicfunction|expression2code|scicos_getvalue|scicos_simulate|is_handle_valid|test_on_columns|matfile_listvar|neigh_func_vfsa|neldermead_cget|loadfftwlibrary|listvar_in_hdf5|ilib_gen_loader|%XMLList_length|nonreg_test_run|get_fftw_wisdom|atomsSaveConfig|%fptr_i_XMLList|datatipSetStyle|xcosUpdateBlock|nmplot_function|assert_generror|xcosPalAddBlock|TCL_ExistInterp|getlongpathname|%TNELDER_string|TCL_GetVersion|%_EObj_1__EObj|gethistoryfile|%_EObj_2__EObj|xcosPalDisable|nmplot_restart|TCL_ExistArray|getlookandfeel|%_EObj_3__EObj|jautoTranspose|nmplot_destroy|nmplot_contour|TCL_DoOneEvent|%_EObj_4__EObj|ilib_build_jar|%_EObj_k__EObj|linear_interpn|xmlGetNsByHref|%XMLSet_length|%spb_i_XMLList|neldermead_log|neldermead_get|%ptr_i_XMLList|ilib_mex_build|xcos_debug_gui|isequalbitwise|neigh_func_fsa|neigh_func_csa|xmlGetOpenDocs|atomsSetConfig|configure_msvc|optimbase_cget|%xlssheet_size|check_versions|%_EObj_a__EObj|%_EObj_z__EObj|DominationRank|historymanager|%_EObj_y__EObj|export_to_hdf5|translatepaths|atomsGetConfig|%_EObj_d__EObj|%TOPTIM_string|displayhistory|%_EObj_x__EObj|%_EObj_j__EObj|setlookandfeel|%_EObj_s__EObj|sethistoryfile|%lss_i_XMLList|!_deff_wrapper|test_run_level|%_EObj_r__EObj|warnBlockByUID|%_EObj_g__EObj|tbx_build_help|temp_law_huang|formatBlackTip|%_EObj_q__EObj|%msp_i_XMLList|%_EObj_p__EObj|atomsGetLoaded|returntoscilab|set_blockerror|progressionbar|%_EObj_o__EObj|%_EObj_h__EObj|sci_haltscicos|%_EObj_n__EObj|%_EObj_i__EObj|%_EObj_m__EObj|check_gateways|%_EObj_l__EObj|neldermead_new|%sp_i_XMLList|add_profiling|mtlb_fftshift|res_with_prec|tbx_build_src|mtlb_isletter|mtlb_legendre|mtlb_linspace|printsetupbox|temp_law_vfsa|set_xproperty|fixedpointgcd|enlarge_shape|mtlb_semilogx|mtlb_semilogy|mtlb_sortrows|get_file_path|browsehistory|mtlb_colordef|mtlb_toeplitz|unit_test_run|matfile_close|demo_viewCode|%plist_string|xcosBlockEval|haveacompiler|getblocklabel|demo_compiler|help_from_sci|help_skeleton|librarieslist|jgetclassname|xcosPalEnable|jdisableTrace|atomsAutoload|xcosPalExport|datatipCreate|nmplot_search|xcosPalDelete|datatipRemove|javaclasspath|listvarinfile|listfunctions|%ce_i_XMLList|datatipToggle|%hm_i_XMLList|taucs_chsolve|numderivative|ilib_for_link|ilib_gen_Make|definedfields|%XMLList_size|getscicosvars|%st_i_XMLList|getscilabmode|atomsIsLoaded|uiDisplayTree|optimbase_get|uicontextmenu|xcos_simulate|%ip_i_XMLList|optimbase_log|%XMLAttr_size|optimplotfval|resize_matrix|%grayplot_i_h|%mc_i_XMLList|%diagram_xcos|%champdat_i_h|optimbase_set|optimbase_new|head_comments|pareto_filter|TCL_UnsetVar|convertindex|%h_i_XMLList|jenableTrace|is_hdf5_file|jnewInstance|%c_i_XMLList|%c_i_XMLElem|jwrapinfloat|end_scicosim|remove_param|show_margins|%c_i_XMLAttr|%i_i_XMLList|%hm_iconvert|nicholschart|matfile_open|%b_i_XMLList|eval_cshep2d|ilib_verbose|mtlb_subplot|st_deviation|st_i_generic|xcos_compile|mtlb_strfind|mtlb_strcmpi|taucs_chinfo|ascii2string|mtlb_sprintf|taucs_chfact|mtlb_realmin|closeEditvar|mtlb_realmax|ilib_compile|%l_i_XMLList|%XMLSet_size|parallel_run|temp_law_csa|%p_i_XMLList|temp_law_fsa|%r_i_XMLList|%cblock_size|swap_handles|testexamples|%i_contour2d|loadXcosLibs|mtlb_num2str|mtlb_meshdom|ReadHBSparse|mtlb_logical|h5isCompound|cb_m2sci_gui|mtlb_isspace|mtlb_isfield|raise_window|%s_i_XMLList|realtimeinit|warnobsolete|fseek_origin|resethistory|bytecodewalk|atomsInstall|mtlb_fprintf|mtlb_findstr|generic_i_ce|generic_i_hm|with_javasci|scicos_debug|mtlb_choices|mtlb_cumprod|%spb_cumprod|createstruct|getdebuginfo|mtlb_dec2hex|atomsVersion|getdynlibext|generic_i_st|TCL_EvalFile|TCL_ExistVar|%spb_cumsum|setlanguage|mtlb_double|getlanguage|get_profile|TCL_EvalStr|show_window|%_EObj_disp|mtlb_delete|generic_i_s|mtlb_cumsum|xmlValidate|scicos_time|%mps_string|%msp_length|generic_i_h|%i_msprintf|savehistory|%i_mfprintf|rotate_axes|mtlb_fliplr|mtlb_format|xmlDocument|atomsUpdate|mtlb_fscanf|xmlAsNumber|%xlssheet_e|mtlb_fwrite|mtlb_filter|readgateway|endfunction|%hm_cumprod|%grand_perm|matfile2sci|%xlssheet_p|ui_observer|printfigure|householder|xcosPalMove|xcosPalLoad|preferences|mtlb_loglog|plotbrowser|mtlb_median|stripblanks|loadmatfile|%XMLValid_p|%hm_dsearch|filebrowser|mtlb_pcolor|pathconvert|tbx_builder|clearglobal|closeEditor|taucs_chdel|mtlb_setstr|taucs_chget|mtlb_sscanf|h5writeattr|mtlb_strcmp|helpbrowser|%msp_sparse|mtlb_sparse|csvTextScan|historysize|atomsSearch|%cblock_c_s|mtlb_strrep|htmlReadStr|%msp_spones|classmarkov|%TSIMPLEX_p|plotprofile|mtlb_uint16|mtlb_uint32|example_run|xmltoformat|prettyprint|datatipMove|%b_iconvert|loadhistory|libraryinfo|showprofile|nmplot_cget|demo_choose|atomsRemove|%sp_cumprod|optim_nsga2|with_module|%c_i_XMLDoc|%s_f_cblock|%s_c_cblock|%H5Object_p|sciGUI_init|jgetmethods|savematfile|jautoUnwrap|umf_lusolve|%H5Object_e|eigenmarkov|%ticks_i_h|%i_4__EObj|%c_dsearch|%i_3__EObj|%i_a__EObj|%i_2__EObj|%lss_o_lss|%i_cumprod|%c_z__EObj|%c_y__EObj|%c_x__EObj|%lss_n_lss|%c_s__EObj|%c_r__EObj|%c_q__EObj|%c_p__EObj|%c_o__EObj|jcreatejar|%c_n__EObj|%c_m__EObj|odeoptions|%c_l__EObj|%c_k__EObj|daeoptions|jgetfields|%c_i__EObj|isalphanum|nmplot_new|nmplot_log|jinvoke_db|%i_d__EObj|%lss_m_lss|%i_g__EObj|nmplot_get|junwraprem|optim_moga|optim_nsga|%i_h__EObj|demo_begin|%c_h__EObj|%c_g__EObj|clean_help|%i_i__EObj|%i_j__EObj|%c_d__EObj|%i_k__EObj|%c_a__EObj|%c_4__EObj|%c_3__EObj|%c_2__EObj|%c_1__EObj|%b_z__EObj|%b_y__EObj|%b_x__EObj|%b_s__EObj|loadScicos|%b_r__EObj|%b_q__EObj|%i_l__EObj|%b_p__EObj|%b_o__EObj|%b_n__EObj|%b_m__EObj|%b_l__EObj|%b_k__EObj|%b_j__EObj|%b_i__EObj|%i_1__EObj|%b_h__EObj|%b_g__EObj|%b_d__EObj|%b_a__EObj|derivative|%b_4__EObj|%i_m__EObj|%b_3__EObj|%b_2__EObj|%lss_l_lss|%b_1__EObj|isLeapYear|%lss_r_lss|%lss_s_lss|edit_error|%lss_i_lss|%_EObj_z_s|%lss_f_lss|%_EObj_z_i|messagebox|%_EObj_z_c|%b_cumprod|%_EObj_z_b|%_EObj_y_s|mtlb_zeros|fieldnames|mtlb_upper|mtlb_uint8|%lss_c_lss|%_strsplit|%i_n__EObj|find_links|%_EObj_y_i|%_EObj_y_c|%_EObj_y_b|%_EObj_x_s|%_EObj_x_i|%i_o__EObj|umf_lufact|%_EObj_x_c|%i_p__EObj|%i_q__EObj|%_EObj_x_b|test_clean|%i_r__EObj|havewindow|%TNMPLOT_p|%lss_v_lss|%TNELDER_p|%i_s__EObj|%i_x__EObj|%_EObj_s_s|%_EObj_s_i|%_EObj_s_c|%_EObj_s_b|%i_y__EObj|%_EObj_r_s|%_EObj_r_i|h5readattr|%i_z__EObj|mtlb_rcond|mtlb_randn|%_EObj_r_c|%_EObj_r_b|%l_i__EObj|%_EObj_q_s|%_EObj_q_i|fminsearch|%lss_a_lss|%msp_spget|%_EObj_q_c|%_EObj_q_b|%s_1__EObj|%_EObj_p_s|%_EObj_p_i|%s_2__EObj|%_EObj_p_c|%s_3__EObj|%s_4__EObj|%_EObj_p_b|%sp_length|%_EObj_o_s|mtlb_lower|%ce_matrix|%ce_string|%s_a__EObj|mtlb_logic|%s_d__EObj|%_EObj_o_i|%_EObj_o_c|%_EObj_o_b|%_EObj_n_s|%s_g__EObj|%_EObj_n_i|%_EObj_n_c|%s_h__EObj|%fptr_i_st|%s_i__EObj|%_EObj_n_b|mtlb_int32|mtlb_int16|%_EObj_m_s|mtlb_image|%_EObj_m_i|%_EObj_m_c|%_EObj_m_b|%s_j__EObj|%_EObj_l_s|%_EObj_l_i|%_EObj_l_c|optimplotx|%s_k__EObj|%_EObj_l_b|format_txt|%_EObj_k_s|gstacksize|%_EObj_k_i|%_EObj_k_c|%s_l__EObj|%s_m__EObj|mtlb_fread|%s_n__EObj|%s_o__EObj|mtlb_fopen|%s_p__EObj|%s_q__EObj|%s_r__EObj|fun2string|%_EObj_k_b|%_EObj_j_s|%_EObj_j_i|%_EObj_j_c|%_EObj_j_b|%_EObj_h_s|getversion|mtlb_false|%_EObj_h_i|%_EObj_h_c|%s_s__EObj|%s_x__EObj|%s_y__EObj|%s_z__EObj|%_EObj_h_b|%sp_string|%l_isequal|getmodules|mtlb_exist|%_EObj_g_s|mtlb_error|%_EObj_g_i|%_EObj_g_c|%_EObj_g_b|%mc_string|bode_asymp|TCL_GetVar|%_EObj_d_s|%_EObj_d_i|TCL_SetVar|%_EObj_d_c|%_EObj_d_b|%_EObj_a_s|gethistory|%spb_g_spb|%spb_h_spb|%_EObj_a_i|%ip_string|xcosPalAdd|%st_i_fptr|addhistory|%_EObj_a_c|xmlRelaxNG|%_EObj_a_b|mtlb_close|%i_plot2d2|xmlReadStr|%i_plot2d1|%st_matrix|%_EObj_4_s|%_EObj_4_i|%_EObj_4_c|xmlElement|%st_string|%hm_bool2s|%_EObj_4_b|vectorfind|%_EObj_3_i|%_EObj_3_c|%hm_cumsum|OS_Version|ilib_build|%_EObj_3_b|%_EObj_2_s|fprintfMat|PlotSparse|bsplin3val|xcosPalGet|%_EObj_2_i|%_EObj_2_c|%_EObj_2_b|%_EObj_1_s|%_EObj_1_i|%_EObj_1_c|buildouttb|%i_dsearch|%_EObj_1_b|%msp_n_msp|%_EClass_p|%i_contour|%_EClass_e|list_param|%_EClass_6|%hm_degree|!!_invoke_|fftw_flags|%i_Matplot|completion|contour2di|csvDefault|%msp_o_msp|%hm_string|testmatrix|squarewave|%p_cumprod|%sp_cumsum|launchtest|randpencil|%XMLList_p|%XMLList_e|%XMLList_6|%hm_isreal|%XMLElem_p|%XMLElem_e|%XMLElem_6|deletefile|scisptdemo|uigetcolor|%r_cumprod|%XMLAttr_p|init_param|%XMLAttr_e|%XMLAttr_6|sci_sparse|%hm_median|%hm_matrix|umf_luinfo|%_EObj_3_s|%c_j__EObj|%i_mprintf|lasterror|umf_luget|uiputfile|%XMLDoc_6|inv_coeff|%r_cumsum|intersect|unsetmenu|%p_string|iscellstr|usecanvas|useeditor|integrate|%r_matrix|%r_string|uigetfont|mtlb_more|uigetfile|%s_bezout|%XMLDoc_e|%XMLDoc_p|uicontrol|%p_matrix|%s_matrix|%sp_floor|%sp_grand|%p_cumsum|%sp_gsort|write_csv|%XMLSet_6|karmarkar|%XMLSet_e|x_mdialog|%XMLSet_p|lindquist|%msp_maxi|invsyslin|xchoicesi|%msp_i_st|%msp_find|listfiles|lmisolver|%sp_round|%lss_size|%lss_rand|%lss_ones|%lss_norm|m2sci_gui|%i_cumsum|stringbox|%i_matrix|%lss_i_st|xmltohtml|%lss_i_ce|%msp_full|ifftshift|ClipBoard|%spb_diag|PlaySound|stacksize|TCL_UpVar|xgetmouse|xgraduate|mfile2sci|_code2str|hallchart|_str2code|%spb_i_ce|%spb_i_st|xmlAppend|%spb_prod|xmlAsText|umf_ludel|xmlDelete|%spb_tril|%i_string|%spb_triu|xmlFormat|%st_i_lss|mtlb_axes|mtlb_axis|mtlb_beta|%st_i_msp|%i_plot2d|spcompack|%st_i_spb|mtlb_cond|xmlRemove|xmlSchema|backslash|simp_mode|%i_length|variancef|IsAScalar|mtlb_diag|get_param|mtlb_diff|tree2code|toolboxes|mtlb_echo|mtlb_eval|genmarkov|browsevar|%i_champ1|%i_bezout|sci_tree4|sci_tree3|sci_tree2|add_param|rubberbox|closeXcos|mtlb_find|ana_style|%hm_zeros|createdir|removedir|steadycos|zoom_rect|mtlb_full|%hm_stdev|%hm_round|mtlb_grid|mtlb_hold|curblockc|spaninter|mtlb_ifft|set_param|mtlb_int8|drawlater|duplicate|atomsList|atomsLoad|mtlb_mean|mtlb_mesh|atomsQuit|mtlb_ones|mtlb_plot|%hm_isnan|mtlb_prod|mtlb_rand|phaseplot|mtlb_size|mtlb_sort|%hm_gsort|nearfloat|%hm_grand|mtlb_mode|%TOPTIM_p|%hm_floor|atomsShow|mtlb_tril|%_EVoid_p|mtlb_triu|mtlb_true|fileparts|mtlb_type|%_sodload|model2blk|findfiles|find_freq|fscanfMat|filt_sinc|atomsTest|getdrives|bench_run|getmemory|%b_cumsum|h5dataset|factorial|h5isArray|nancumsum|h5isGroup|nand2mean|h5isSpace|%cblock_p|%cblock_e|htmlWrite|mclearerr|%c_matrix|companion|dispfiles|condestsp|nanmedian|invoke_lu|nanreglin|macr2tree|createfun|%bicgstab|jgetfield|jsetfield|%b_matrix|%b_string|lsqrsolve|lsq_splin|h_inf_st|demo_end|nextpow2|legendre|loadXcos|demo_gui|demo_run|jgetinfo|narsimul|ctr_gram|jcompile|noisegen|nanstdev|isletter|macr2lst|isglobal|convol2d|num2cell|obs_gram|observer|cont_mat|%c_grand|cont_frm|conjgrad|obsv_mat|%b_i_spb|%c_i_lss|diophant|optim_ga|dt_ility|maxfiles|colregul|colinout|colcompr|interp3d|interp2d|optim_sa|iconvert|%b_h_spb|htmlRead|htmlDump|nanmeanf|h5umount|%b_grand|h5isVlen|h5isType|%ce_c_ce|%b_g_spb|%ce_f_ce|%ce_i_ce|cheb2mag|%ce_i_st|h5isList|cheb1mag|%ce_size|%b_f_spb|cepstrum|cell2mat|h5isFile|h5isAttr|mfprintf|cat_code|optimget|h5exists|%st_i_ip|calendar|optimset|%hm_1_hm|grayplot|%hm_2_hm|bytecode|%hm_3_hm|mvcorrel|%hm_4_hm|getfield|bloc2exp|%hm_a_hm|binomial|%b_c_spb|fftshift|funcprot|fullpath|%hm_c_hm|%hm_ceil|%hm_conj|mtlb_var|findABCD|fromjava|%hm_d_hm|%_unwrap|movefile|fileinfo|p_margin|mtlb_sum|exportUI|%hm_f_hm|%hm_find|msprintf|%hm_g_hm|name2rgb|mtlb_std|%hm_h_hm|pertrans|%hm_i_ce|pfactors|%hm_i_hm|phasemag|findx0BD|errclear|errcatch|%hm_i_st|princomp|%hm_imag|projspec|param3d1|emptystr|%hm_j_hm|mtlb_min|%hm_k_hm|mtlb_max|function|qp_solve|rhs2code|ric_desc|mtlb_isa|drawaxis|%hm_mean|rowcompr|rowinout|rowregul|rowshuff|%hm_n_hm|savewave|diffobjs|dgettext|mtlb_imp|dec2base|%hm_o_hm|show_pca|data2sig|soundsec|%hm_ones|read_csv|spanplus|%hm_prod|%hm_q_hm|continue|%hm_rand|%hm_real|mtlb_get|curblock|%hm_s_hm|specfact|st_ility|%hm_sign|csvWrite|%hm_size|%hm_sqrt|realtime|statgain|csvIsnum|%hm_x_hm|fourplan|fsfirlin|fullfile|coserror|asciimat|copyfile|%plist_p|code2str|xstringb|g_margin|mtlb_fft|%i_ascii|test_run|mtlb_eye|%i_champ|scicosim|captions|thrownan|toeplitz|add_demo|tokenpos|buildDoc|scinotes|setfield|mtlb_dir|%i_grand|trianfml|trimmean|sig2data|trisolve|variance|xmlXPath|vec2list|basename|base2dec|wavwrite|%st_size|xmlWrite|%st_o_tl|%st_o_mc|wfir_gui|mtlb_cov|whereami|%st_n_mc|who_user|%st_i_st|mtlb_box|%st_i_sp|getshell|arl2_ius|addinter|gettklib|mtlb_any|addcolor|%i_round|%st_f_st|%st_c_st|mtlb_all|gfrancis|splitURL|%spb_sum|mstr2sci|%ip_i_st|xmlAddNs|%ip_n_ip|%ip_o_ip|%spb_i_h|%ip_part|xls_read|xls_open|%spb_i_b|hankelsv|%spb_h_b|meshgrid|str2code|%spb_g_b|%spb_f_b|markp2ss|Matplot1|hypermat|%spb_c_b|%spb_and|%sp_z_sp|%sp_y_sp|%sp_triu|%sp_tril|Calendar|iirgroup|%lss_a_p|%lss_a_r|%lss_a_s|xcos_run|%lss_c_p|%lss_c_r|%lss_c_s|%sp_sqrt|%lss_eye|xmltochm|%lss_f_p|%lss_f_r|%lss_f_s|mapsound|makecell|%lss_i_p|%lss_i_r|%lss_i_s|strindex|%lss_inv|macrovar|%lss_l_p|%lss_l_r|%lss_l_s|xmltojar|%lss_m_p|%lss_m_r|%lss_m_s|m_circle|%lss_n_p|%lss_n_r|%lss_n_s|lqg2stan|xmltopdf|%lss_o_p|%lss_o_r|%lss_o_s|strsplit|xmltoweb|%lss_r_p|%lss_r_r|%lss_r_s|logspace|%sp_s_sp|yulewalk|%lss_s_p|%lss_s_r|%lss_s_s|loadwave|strsubst|%_EObj_t|%lss_v_p|%lss_v_r|%lss_v_s|%sp_r_sp|%sp_q_sp|%sp_prod|%sp_norm|%_EObj_p|%mc_i_st|%mc_n_st|%mc_o_st|%_EObj_e|%sp_l_sp|%_EObj_6|%msp_a_s|%msp_abs|%sp_k_sp|list2vec|%msp_i_s|linspace|tempname|%msp_m_s|linsolve|%_EObj_0|%msp_nnz|lex_sort|%sp_i_st|x_dialog|x_choose|%sp_i_sp|%p_a_lss|%sp_i_ce|%p_c_lss|isvector|%XMLNs_p|isstruct|issquare|issparse|%sp_diag|%sp_d_sp|clearfun|%p_f_lss|%XMLNs_e|%p_grand|%XMLNs_6|%sp_conj|%sp_ceil|%p_i_lss|%sp_a_sp|%s_v_lss|%s_s_lss|%s_r_lss|%s_o_lss|%s_n_lss|isscalar|%s_m_msp|%s_m_lss|%p_l_lss|%s_l_lss|%s_i_spb|%s_i_lss|%s_grand|%p_m_lss|%s_f_lss|typename|uigetdir|%p_n_lss|%s_c_lss|imrep2ss|%p_o_lss|inistate|%s_a_msp|%s_a_lss|%r_v_lss|ismatrix|%r_s_lss|%r_r_lss|%r_o_lss|%p_r_lss|%r_n_lss|iscolumn|%r_m_lss|%p_s_lss|%r_l_lss|%r_i_lss|interpln|%r_f_lss|%p_v_lss|intsplin|is_param|%r_clean|%r_c_lss|%r_a_lss|%_EObj_5|gainplot|%hm_x_s|readmps|mtlb_is|saveGui|sciargs|semidef|setmenu|zeropen|%r_a_hm|plot3d1|plot2d4|plot2d3|plot2d2|%p_x_hm|plot2d1|splin2d|splin3d|pathsep|param3d|mtlb_qr|mtlb_qz|minreal|sprintf|openged|%r_diag|members|mdelete|manedit|strcspn|macglov|strncpy|%r_i_ce|%r_i_hm|%p_simp|strrchr|newaxes|msscanf|%r_i_st|lqg_ltr|mputstr|mprintf|mgetstr|lmitool|mfscanf|mvvacov|symfcti|nanmean|%r_m_hm|lusolve|leastsq|lcmdiag|lstsize|lsslist|loadGui|kroneck|toolbar|junwrap|%r_norm|justify|jremove|toprint|jinvoke|%r_ones|jimport|jexists|%r_prod|nthroot|isfield|isempty|uipopup|iserror|numdiff|nyquist|%r_rand|xmltops|%r_s_hm|isequal|umfpack|inttrap|obscont|%r_simp|%r_size|%p_prod|isdigit|interp1|%r_tril|%r_triu|%p_part|oct2dec|var2vec|isascii|%r_varn|inttype|vec2var|waitbar|warning|ind2sub|whereis|h5write|write4b|h5mount|%s_1_hm|h5label|%s_2_hm|xarrows|%s_3_hm|xchange|%s_4_hm|h5isSet|%i_diag|h5isRef|%s_a_hm|h5group|%s_a_ip|h5flush|%p_o_sp|h5close|%s_a_sp|gettext|htrianr|hilbert|hex2dec|xfpolys|getdate|harmean|gammaln|%s_c_sp|filesep|fileext|xmlDump|xmlName|%s_d_sp|xmlRead|fadj2sp|geomean|penlaur|permute|%s_f_sp|execstr|xstring|fullrfk|%p_m_hm|playsnd|fstabst|pmodulo|pol2des|%s_i_ce|pol2str|%s_i_hm|polfact|frep2tf|apropos|profile|qpsolve|%s_i_sp|quaskro|%s_i_st|rafiter|%s_k_hm|readxls|regress|%s_k_sp|flipdim|%s_l_hm|editvar|repfreq|%0_i_st|%3d_i_h|%_gsort|%s_l_sp|%_rlist|dsearch|%s_m_hm|findBDK|%s_m_ip|drawnow|factors|%b_diag|riccati|%s_n_hm|routh_t|rowcomp|dlgamma|samplef|%s_n_st|%s_o_hm|entropy|ell1mag|dispbpt|%b_i_ce|%s_o_st|%i_maxi|sci2exp|delmenu|scitest|%s_q_hm|dllinfo|%b_i_hm|dirname|%s_q_sp|%b_i_sp|detrend|%p_i_st|%b_i_st|derivat|setdiff|%s_r_sp|%b_n_hm|%s_s_hm|%b_o_hm|%s_s_ip|%b_prod|%b_tril|%s_s_sp|%s_simp|dec2oct|dec2hex|dec2bin|intppty|datevec|%s_x_hm|datenum|datafit|%b_triu|spantwo|%s_y_sp|spzeros|cumprod|%s_z_sp|squeeze|ssprint|csvRead|%sp_and|%sp_c_s|%p_i_hm|cshep2d|%sp_cos|%p_i_ce|strange|%sp_d_s|%c_diag|%sp_det|strcmpi|%i_mini|%sp_exp|%sp_f_s|contrss|%c_i_ce|%c_i_hm|cond2sp|%sp_i_h|%sp_i_s|sub2ind|complex|%sp_int|%sp_inv|%sp_k_s|%c_i_st|%sp_l_s|%c_n_st|%mc_i_s|%sp_max|%sp_min|%mc_i_h|colcomp|%sp_p_s|sysconv|%sp_q_s|%c_o_st|%sp_r_s|%lt_i_s|%c_ones|%sp_s_s|cmoment|%sp_sin|cmndred|%l_o_st|%sp_sum|cmb_lin|cls2dls|%sp_y_s|sysdiag|%sp_z_s|%c_rand|%c_tril|%l_n_st|chsolve|%c_triu|sysfact|%ce_i_s|syssize|systmat|%l_i_st|convstr|cellstr|%i_mput|%ip_s_s|%i_prod|%ip_m_s|%spb_or|%ip_a_s|ccontrg|%choose|%i_sign|%h_i_st|%hm_1_s|%i_tril|%hm_2_s|%st_i_b|%st_i_c|buttmag|%st_i_h|%st_i_i|%i_triu|%hm_3_s|%hm_4_s|%st_i_p|%st_i_r|%st_i_s|bloc2ss|%sp_a_s|Matplot|callblk|%st_n_c|%st_n_l|%hm_a_r|%st_n_p|%st_n_s|%st_o_c|%st_o_l|bin2dec|%st_o_p|%st_o_s|time_id|xcosPal|%hm_a_s|balreal|with_tk|auwrite|augment|%hm_abs|%hm_and|%i_i_st|%hm_cos|%hm_d_s|%i_i_hm|%hm_exp|%hm_eye|%hm_i_b|%i_i_ce|%hm_i_h|%hm_i_i|%hm_i_p|winlist|%hm_i_r|%hm_i_s|%hm_int|%hm_j_s|%hm_k_s|weekday|%hm_log|wcenter|%hm_m_p|wavread|besselh|besseli|besselj|%hm_m_r|%hm_m_s|%hm_max|%hm_min|%hm_n_b|%hm_n_c|%hm_n_i|%hm_n_p|%hm_n_s|%hm_o_b|analyze|%hm_o_c|%hm_o_i|%hm_o_p|%hm_o_s|arma2ss|blkslvi|blkfc1i|%hm_r_s|%hm_s_r|arsimul|%hm_s_s|%hm_sin|besselk|%hm_sum|bessely|%hm_x_p|trzeros|pencost|bezout|%i_1_s|asinhm|typeof|unique|%i_2_s|%i_3_s|%i_4_s|bfinit|armax1|trfmod|%hm_or|unix_g|unix_s|atanhm|bool2s|arma2p|unix_w|unix_x|unpack|analpf|%i_a_i|aff2ab|adj2sp|%i_a_s|%i_and|%i_b_s|%i_d_i|%i_d_s|unwrap|banner|acoshm|balanc|wiener|wigner|%i_fft|window|%i_g_i|%i_gcd|%i_h_i|NDcost|%i_i_h|G_make|c_link|%i_i_i|%i_i_s|%i_j_i|%xls_p|%xls_e|auread|%i_j_s|%i_l_s|%i_lcm|%i_m_i|tf2des|%i_m_s|%i_n_s|bitand|bitcmp|bitget|%i_o_s|bitset|bitxor|cdfbet|%i_p_i|cdfbin|%i_p_s|%i_q_s|cdfchi|%i_r_i|cdfchn|%i_r_s|bvodeS|%i_s_i|%i_s_s|cdffnc|%i_sum|calerf|calfrq|cdfgam|cdfnbn|cdfnor|%dir_p|%i_x_i|%i_x_s|cdfpoi|champ1|%l_i_h|center|%l_i_s|cfspec|%l_n_c|system|%l_n_l|%spb_e|syslin|%l_n_m|%l_n_p|chepol|chfact|%l_n_s|%l_o_c|%l_o_l|%l_o_m|%l_o_p|%l_o_s|%lss_e|%lss_s|%lss_t|%m_n_l|%m_o_l|svplot|%sp_or|%c_o_l|%mps_p|%c_n_l|%msp_e|%msp_p|%c_i_s|%msp_t|%p_a_r|%c_i_r|%p_c_r|%c_i_h|%p_d_p|%c_i_c|%c_f_s|%p_d_r|struct|%c_eye|%p_d_s|convol|%p_det|copfac|correl|%p_f_r|%p_i_h|stdevf|%p_i_p|stabil|ctree2|ctree3|ctree4|ssrand|resume|%c_b_s|%c_b_c|%c_a_c|ss2des|srfaur|%b_x_s|%i_min|%s_z_r|sqroot|%s_z_p|sprand|cspect|%b_x_b|cumsum|%s_y_r|%s_y_p|sp2adj|%s_x_r|smooth|%s_x_i|%s_x_b|sm2des|%s_v_s|dawson|%s_v_r|%s_v_p|%p_i_r|%s_s_r|%b_sum|%b_s_s|%b_s_b|%b_r_s|%b_r_b|%p_i_s|%b_p_s|%s_s_i|%s_s_b|%b_m_s|%b_m_b|%s_r_s|%s_r_r|%b_l_s|des2ss|des2tf|%b_l_b|%s_r_p|determ|degree|%s_r_i|%s_r_b|dhnorm|delbpt|%b_i_s|delete|%s_q_r|%s_q_p|%s_q_i|%s_pow|dsimul|%b_i_h|%s_p_i|%s_p_b|%s_o_r|editor|%b_i_b|%p_inv|%s_o_l|%b_h_s|%s_o_i|eomday|%s_n_r|sample|%p_j_s|dnaupd|equil1|erfinv|dneupd|double|%s_n_l|%s_n_i|%b_g_s|%b_f_s|%p_k_p|factor|%s_m_r|%p_k_r|faurre|%p_k_s|driver|%b_c_s|%b_a_s|%b_a_b|filter|dsaupd|findAC|%s_m_i|%s_m_b|dseupd|%_save|%s_lcm|repmat|%s_l_s|%s_l_r|%s_l_p|%p_l_p|%s_l_i|ereduc|%s_l_b|remezb|%s_k_r|select|reglin|recons|%s_k_p|%s_j_i|%p_l_r|%s_i_s|elseif|pspect|psmall|projsl|%s_i_r|primes|%s_i_p|prbs_a|zneupd|%p_l_s|freson|%s_i_i|%s_i_h|znaupd|%s_i_c|%s_i_b|fspecg|%s_h_s|%s_h_b|ftuneq|xtitle|fullrf|%s_gcd|%s_g_s|%s_g_b|exists|gamitg|%s_f_r|perctl|%p_m_r|xs2svg|return|xs2ppm|xs2png|xs2pdf|xs2jpg|xs2gif|genlib|xs2eps|%p_n_l|xs2emf|xs2bmp|xrects|pencan|xpolys|pen2ea|xpause|parrot|%s_f_b|%i_max|figure|%s_d_r|%p_y_s|%s_d_p|givens|glever|%s_d_i|%s_d_b|gschur|findBD|format|h2norm|fsolve|fstair|xmlDTD|h_norm|xlfont|funptr|%s_c_r|geom3d|%p_n_r|getURL|%p_o_l|xfrect|%s_c_b|hermit|%p_o_r|getenv|%s_b_s|getmd5|horner|xfpoly|getpid|%s_b_i|xfarcs|%s_and|global|h5attr|%s_a_r|h5dump|%p_p_s|%s_a_i|iirmod|%s_a_b|%s_4_i|xclick|%s_3_i|%s_2_i|%s_1_i|%r_z_s|%r_z_r|h5open|h5read|winsid|im_inv|%r_z_p|%r_y_s|inpnvi|interp|%r_y_r|%r_y_p|%r_x_s|%r_x_r|%r_x_p|%r_v_s|%r_v_r|%r_v_p|intdec|obsvss|%i_abs|unzoom|%r_sum|%r_s_s|unglue|%r_s_r|%r_s_p|%p_q_p|%r_r_s|%r_r_r|%r_r_p|uiwait|%p_q_r|isfile|iscell|uint32|uint16|%r_q_s|%r_q_r|%r_q_p|uimenu|isreal|jarray|%r_p_s|%_load|%r_o_s|tr_zer|%r_o_r|%r_o_p|%p_q_s|%r_n_s|%r_n_r|kernel|length|linmeq|%r_n_p|%p_r_p|%p_r_r|tokens|lstcat|%r_m_s|%r_m_r|%r_m_p|lufact|nehari|ndgrid|nansum|tohome|%p_r_s|matrix|lin2mu|lincos|nanmin|mclose|%r_l_s|nanmax|merror|ta2lpd|syredi|%r_l_r|%r_l_p|%p_s_r|mu2lin|%r_k_s|strtok|strtod|strstr|%r_k_r|%r_k_p|%r_j_s|strspn|mtlb_t|mscanf|strrev|%r_inv|%r_i_s|mucomp|%r_i_r|%r_i_p|%r_f_s|%r_f_r|string|newest|%r_f_p|%p_sum|strcmp|strchr|strcat|%r_eye|newfun|notify|median|%_eigs|mtlb_s|%r_det|opentk|%r_d_s|%r_d_r|ordmmd|%r_d_p|modulo|moment|%p_v_p|%p_v_r|spones|%p_v_s|mtlb_0|mtlb_a|%r_c_s|%r_c_r|plot2d|%r_c_p|%r_a_s|spchol|sparse|sorder|%r_a_r|%r_a_p|plot3d|%p_x_r|pppdiv|predef|sident|sfinit|printf|%p_y_p|setenv|mtlb_e|setbpt|prompt|%p_y_r|sctree|zpbutt|mtlb_l|%p_z_s|%p_z_r|rankqr|read4b|mtlb_i|%p_z_p|regexp|residu|blanks|%b_d_s|xpoly|remez|rlist|zpch2|roots|readb|round|zpch1|zgrid|rdivf|rcond|%s_or|rtitr|%sp_e|%ip_p|%st_6|%st_e|%i_or|schur|about|%st_p|sfact|print|amell|xcorr|%st_t|ascii|abinv|acosd|slash|sleep|acosh|spget|splin|acosm|acotd|bdiag|mrfit|mkdir|minss|acoth|optim|acscd|acsch|aplat|unobs|odedc|arhnk|meanf|armac|armax|gfare|asecd|union|asech|asind|mtell|asinh|mseek|asinm|%hm_s|%hm_p|mputl|atand|atanh|trans|mopen|trace|mlist|atanm|log10|mgetl|bvode|mgeti|%hm_e|bilin|tf2ss|bitor|black|timer|linfn|%hm_5|bstap|tlist|cainv|canon|levin|luget|champ|ndims|chdir|clean|ludel|clear|ltitr|coeff|color|lattp|contr|log1p|conv2|lattn|%ce_t|tanhm|krac2|tabul|lines|light|nfreq|chart|%ce_p|kpure|ldivf|%ce_6|clock|jwrap|coffg|coshm|stdev|cothm|covar|jdeff|jcast|isrow|ss2tf|isnum|ss2ss|isinf|cross|uint8|%bicg|ulink|numer|invrs|sqrtm|isdir|speye|daskr|isdef|dasrt|dassl|input|sound|solve|signm|sm2ss|dbphi|sinhm|int3d|int32|int2d|int16|sincd|where|imult|debug|sgrid|denom|sensi|sdiff|delip|dhinf|diary|writb|write|scanf|samwr|epred|eqfir|xarcs|eqiir|equil|iirlp|h5get|etime|evans|evstr|xfarc|rmdir|gsort|ffilt|grand|findR|%ar_p|glist|findm|while|getos|histc|getio|pause|range|xgrid|quart|xinit|erfcx|gamma|catch|break|h_inf|error|fromc|frexp|abort|frfit|gtild|floor|gspec|polar|group|gmres|frmag|xmlNs|zeros|fspec|ftest|feval|zpell|gcare|perms|xsegs|xs2ps|xname|xrect|isnan|%ce_e|mget|real|pbig|expm|pack|rpem|perl|%pcg|getd|read|exit|pfss|%r_0|xset|%r_e|pinv|%r_p|exec|plzr|orth|fftw|file|find|fort|freq|h_cl|full|erfi|case|proj|halt|hank|%r_s|else|%r_t|%s_5|%s_e|xcov|help|erfc|xget|rank|save|%i_p|hilb|quit|then|flts|rand|%p_e|hrmt|prod|idct|idst|glue|%asn|fft2|grep|%b_e|ifft|h5cp|acos|eval|xend|xdel|xcos|rref|addf|h5ls|xarc|eigs|disp|h5mv|edit|h5rm|diag|sign|simp|dtsi|hess|dscr|hinf|ppol|secd|sech|pdiv|diff|host|detr|deff|ieee|imag|impl|poly|abcd|%i_e|sinc|whos|sind|sinh|int8|sinm|what|intg|smga|date|varn|asin|intc|damp|user|unix|atan|size|intl|csim|csgn|csch|invr|cscd|wfir|spec|srkf|null|mtlb|ricc|sskf|type|acot|triu|coth|cotg|cotd|cosm|tril|jmat|cosh|cosd|%c_e|conv|cond|part|kalm|sylm|sylv|coff|kron|ldiv|asec|nlev|beep|char|link|tand|tanh|list|tanm|acsc|corr|copy|load|mfft|sqrt|conj|comp|mese|ones|arl2|leqe|norm|chol|leqr|%cgs|mean|ceil|cdft|cell|lyap|casc|mulf|beta|cdff|logm|bode|linf|meof|mput|log2|bilt|move|call|mode|subf|h5ln|argn|toc|min|tic|svd|tan|pca|max|lqe|lqg|lin|lqr|gcd|lft|cat|mad|lev|nnz|clc|eye|ode|lcm|lcf|lsq|log|cos|exp|lib|ver|msd|sva|cov|now|iqr|csc|czt|dae|inv|int|rat|dcf|sin|ddp|dct|dir|and|sec|det|who|pcg|iir|abs|dst|set|fec|phc|pwd|fix|qld|fft|try|erf|sum|end|for|%sn|acf|get|qmr|%k|do|qr|if|_d|or|lu|ls|cd|_)\b">
-        <token type="NameBuiltin"/>
-      </rule>
-      <rule pattern="(differential_equationlib|compatibility_functilib|elementary_functionslib|simulated_annealinglib|genetic_algorithmslib|development_toolslib|signal_processinglib|special_functionslib|external_objectslib|modules_managerlib|data_structureslib|linear_algebralib|interpolationlib|output_streamlib|dynamic_linklib|optimizationlib|scicos_utilslib|optimsimplexlib|spreadsheetlib|scicos_autolib|preferenceslib|polynomialslib|overloadinglib|%toolboxes_dir|neldermeadlib|%modalWarning|parameterslib|demo_toolslib|statisticslib|functionslib|helptoolslib|optimbaselib|scinoteslib|%toolboxes|arnoldilib|integerlib|umfpacklib|randliblib|sparselib|assertlib|fileiolib|stringlib|tclscilib|soundlib|m2scilib|cacsdlib|atomslib|matiolib|timelib|SCIHOME|xcoslib|corelib|TMPDIR|jvoid|iolib|evoid|enull|%fftw|jnull|%nan|home|%eps|%gui|%inf|%io|%tk|SCI|PWD|%pi|fd|%z|%i|%s|%f|%t|%e|%T|%F|\$)\b">
-        <token type="NameConstant"/>
-      </rule>
-      <rule pattern="-|==|~=|&lt;|&gt;|&lt;=|&gt;=|&amp;&amp;|&amp;|~|\|\|?">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="\.\*|\*|\+|\.\^|\.\\|\.\/|\/|\\">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="[\[\](){}@.,=:;]">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="&#34;[^&#34;]*&#34;">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="(?&lt;=[\w)\].])\&#39;+">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="(?&lt;![\w)\].])\&#39;">
-        <token type="LiteralString"/>
-        <push state="string"/>
-      </rule>
-      <rule pattern="(\d+\.\d*|\d*\.\d+)([eEf][+-]?[0-9]+)?">
-        <token type="LiteralNumberFloat"/>
-      </rule>
-      <rule pattern="\d+[eEf][+-]?[0-9]+">
-        <token type="LiteralNumberFloat"/>
-      </rule>
-      <rule pattern="\d+">
-        <token type="LiteralNumberInteger"/>
-      </rule>
-      <rule pattern="[a-zA-Z_]\w*">
-        <token type="Name"/>
-      </rule>
-      <rule pattern=".">
-        <token type="Text"/>
-      </rule>
-    </state>
-    <state name="string">
-      <rule pattern="[^&#39;]*&#39;">
-        <token type="LiteralString"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern=".">
-        <token type="LiteralString"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="deffunc">
-      <rule pattern="(\s*)(?:(.+)(\s*)(=)(\s*))?(.+)(\()(.*)(\))(\s*)">
-        <bygroups>
-          <token type="TextWhitespace"/>
-          <token type="Text"/>
-          <token type="TextWhitespace"/>
-          <token type="Punctuation"/>
-          <token type="TextWhitespace"/>
-          <token type="NameFunction"/>
-          <token type="Punctuation"/>
-          <token type="Text"/>
-          <token type="Punctuation"/>
-          <token type="TextWhitespace"/>
-        </bygroups>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="(\s*)([a-zA-Z_]\w*)">
-        <bygroups>
-          <token type="Text"/>
-          <token type="NameFunction"/>
-        </bygroups>
-        <pop depth="1"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/scss.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/scss.xml	(revision 67)
+++ 	(revision )
@@ -1,373 +1,0 @@
-<lexer>
-  <config>
-    <name>SCSS</name>
-    <alias>scss</alias>
-    <filename>*.scss</filename>
-    <mime_type>text/x-scss</mime_type>
-    <case_insensitive>true</case_insensitive>
-    <dot_all>true</dot_all>
-    <not_multiline>true</not_multiline>
-  </config>
-  <rules>
-    <state name="string-double">
-      <rule pattern="(\\.|#(?=[^\n{])|[^\n&#34;#])+">
-        <token type="LiteralStringDouble"/>
-      </rule>
-      <rule pattern="#\{">
-        <token type="LiteralStringInterpol"/>
-        <push state="interpolation"/>
-      </rule>
-      <rule pattern="&#34;">
-        <token type="LiteralStringDouble"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="id">
-      <rule pattern="[\w-]+">
-        <token type="NameNamespace"/>
-      </rule>
-      <rule pattern="#\{">
-        <token type="LiteralStringInterpol"/>
-        <push state="interpolation"/>
-      </rule>
-      <rule>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="value">
-      <rule pattern="[ \t]+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="!(important|default|global)">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="[!$][\w-]+">
-        <token type="NameVariable"/>
-      </rule>
-      <rule pattern="url\(">
-        <token type="LiteralStringOther"/>
-        <push state="string-url"/>
-      </rule>
-      <rule pattern="[a-z_-][\w-]*(?=\()">
-        <token type="NameFunction"/>
-      </rule>
-      <rule pattern="\b(scroll-padding-inline-start|spatial-navigation-function|transition-timing-function|overscroll-behavior-inline|spatial-navigation-contain|border-bottom-right-radius|scroll-padding-block-start|scroll-margin-inline-start|border-bottom-left-radius|border-start-start-radius|border-inline-start-color|animation-iteration-count|border-inline-start-width|animation-timing-function|text-decoration-thickness|border-inline-start-style|scroll-margin-block-start|scroll-padding-inline-end|spatial-navigation-action|overscroll-behavior-block|scroll-margin-inline-end|border-block-start-style|border-block-start-width|scroll-padding-block-end|border-block-start-color|border-inline-end-width|border-top-right-radius|text-underline-position|scroll-margin-block-end|border-start-end-radius|border-end-start-radius|border-inline-end-style|border-inline-end-color|font-variant-east-asian|border-block-end-style|font-language-override|border-block-end-color|border-block-end-width|text-emphasis-position|border-top-left-radius|font-variant-ligatures|background-attachment|overscroll-behavior-x|text-decoration-style|scroll-padding-inline|background-blend-mode|text-decoration-color|text-underline-offset|overscroll-behavior-y|font-variant-position|shape-image-threshold|grid-template-columns|border-end-end-radius|font-feature-settings|scroll-padding-bottom|font-variant-numeric|initial-letter-align|text-combine-upright|box-decoration-break|overflow-clip-margin|scroll-padding-right|padding-inline-start|scroll-margin-bottom|text-decoration-skip|scroll-margin-inline|scroll-padding-block|animation-play-state|text-decoration-line|scroll-margin-block|border-image-outset|font-optical-sizing|animation-fill-mode|margin-inline-start|border-bottom-color|transition-property|border-inline-width|animation-direction|grid-template-areas|forced-color-adjust|border-inline-style|border-inline-start|text-emphasis-style|scroll-padding-left|border-bottom-width|scroll-margin-right|border-inline-color|overscroll-behavior|list-style-position|hanging-punctuation|background-position|border-bottom-style|border-image-source|transition-duration|initial-letter-wrap|padding-block-start|border-image-repeat|backface-visibility|font-variant-emoji|margin-block-start|border-block-start|border-block-style|padding-inline-end|border-right-width|perspective-origin|inset-inline-start|border-right-color|border-block-color|mask-border-repeat|mask-border-source|border-image-width|scroll-padding-top|animation-duration|border-image-slice|grid-template-rows|content-visibility|scroll-margin-left|border-block-width|border-right-style|image-orientation|scroll-snap-align|page-break-inside|column-rule-width|mask-border-width|column-rule-style|mask-border-slice|column-rule-color|grid-auto-columns|page-break-before|background-repeat|counter-increment|font-variant-caps|padding-block-end|border-inline-end|grid-column-start|border-left-width|border-left-style|border-left-color|scroll-margin-top|inset-block-start|margin-inline-end|background-origin|mask-border-mode|scroll-snap-stop|scroll-snap-type|scrollbar-gutter|font-size-adjust|transform-origin|page-orientation|image-resolution|margin-block-end|footnote-display|page-break-after|border-block-end|text-group-align|text-orientation|transition-delay|background-image|text-size-adjust|border-top-width|border-top-style|list-style-image|border-top-color|background-color|inset-inline-end|offset-distance|background-size|background-clip|list-style-type|footnote-policy|text-decoration|scrollbar-color|scrollbar-width|text-align-last|image-rendering|animation-delay|transform-style|object-position|offset-position|text-space-trim|justify-content|overflow-anchor|scroll-behavior|inset-block-end|border-collapse|grid-column-end|overflow-inline|border-spacing|scroll-padding|text-align-all|pointer-events|max-block-size|text-transform|letter-spacing|lighting-color|mask-composite|initial-letter|mix-blend-mode|overflow-block|animation-name|padding-bottom|flex-direction|padding-inline|font-synthesis|grid-auto-flow|vertical-align|outline-offset|text-rendering|grid-auto-rows|grid-row-start|margin-inline|padding-block|offset-rotate|text-overflow|border-inline|margin-bottom|offset-anchor|scroll-margin|outline-style|border-bottom|shape-outside|outline-width|shape-padding|text-emphasis|align-content|grid-template|border-radius|transform-box|overflow-wrap|justify-items|mask-position|place-content|inline-sizing|counter-reset|padding-right|outline-color|table-layout|column-width|writing-mode|font-variant|touch-action|padding-left|color-adjust|word-spacing|text-justify|shape-margin|caption-side|break-inside|shape-inside|margin-right|break-before|font-kerning|font-stretch|border-width|margin-break|text-spacing|border-style|aspect-ratio|margin-block|grid-row-end|border-block|line-padding|border-right|wrap-through|border-color|border-image|justify-self|inset-inline|unicode-bidi|column-count|column-span|border-left|white-space|wrap-inside|grid-column|will-change|text-shadow|offset-path|user-select|inline-size|break-after|place-items|caret-color|text-indent|padding-top|inset-block|wrap-before|font-weight|flex-shrink|line-height|perspective|column-fill|mask-repeat|align-items|margin-left|mask-origin|margin-trim|column-rule|font-family|empty-cells|counter-set|mask-border|overflow-y|string-set|align-self|text-align|place-self|list-style|wrap-after|block-size|word-break|line-clamp|line-break|flex-basis|max-height|min-height|object-fit|appearance|box-sizing|transition|mask-image|background|border-top|visibility|overflow-x|column-gap|font-style|box-shadow|margin-top|mask-size|line-snap|flex-wrap|nav-right|isolation|flex-grow|flex-flow|translate|line-grid|text-wrap|wrap-flow|min-width|max-width|direction|clip-path|transform|mask-clip|max-lines|mask-type|grid-area|animation|mask-mode|word-wrap|font-size|nav-down|position|overflow|grid-row|tab-size|nav-left|z-index|row-gap|content|opacity|padding|display|outline|columns|hyphens|orphans|margin|border|rotate|filter|resize|quotes|bottom|height|offset|nav-up|cursor|widows|width|inset|clear|color|right|float|scale|order|left|font|flex|mask|page|grid|clip|all|gap|src|top)(?=\s*:)">
-        <token type="NameAttribute"/>
-      </rule>
-      <rule pattern="(?&lt;!:\s*)[^ \t:=&#34;\[;(),.]+(?=[ \t]*:(?:#{|[^{])+?[;,])">
-        <token type="NameAttribute"/>
-      </rule>
-      <rule pattern="\b(no-discretionary-ligatures|no-historical-ligatures|discretionary-ligatures|simp-chinese-informal|trad-chinese-informal|korean-hanja-informal|historical-ligatures|korean-hangul-formal|decimal-leading-zero|korean-hanja-formal|ruby-text-container|ruby-base-container|no-common-ligatures|trad-chinese-formal|simp-chinese-formal|cjk-earthly-branch|geometricPrecision|optimizeLegibility|table-header-group|table-footer-group|diagonal-fractions|table-column-group|proportional-width|disclosure-closed|stacked-fractions|japanese-informal|alternate-reverse|cjk-heavenly-stem|proportional-nums|slider-horizontal|ideograph-numeric|common-ligatures|isolate-override|ethiopic-numeric|ideograph-alpha|table-row-group|all-petite-caps|cjk-ideographic|inter-character|ultra-condensed|scroll-position|extra-condensed|japanese-formal|disclosure-open|menulist-button|upper-armenian|lower-armenian|extra-expanded|semi-condensed|space-adjacent|all-small-caps|discard-before|katakana-iroha|full-size-kana|no-close-quote|ultra-expanded|hiragana-iroha|target-counter|column-reverse|spelling-error|grammar-error|optimizeSpeed|discard-after|no-contextual|trim-adjacent|table-caption|square-button|semi-expanded|border-bottom|ui-sans-serif|double-circle|vertical-text|outside-shape|horizontal-tb|no-open-quote|space-between|small-caption|oldstyle-nums|bidi-override|progress-bar|match-parent|line-through|space-around|inline-table|inline-block|high-quality|space-evenly|table-column|currentColor|arabic-indic|ui-monospace|rotate-right|inline-start|avoid-region|avoid-column|match-source|manipulation|tabular-nums|context-menu|slashed-zero|cubic-bezier|titling-caps|wrap-reverse|color-dodge|sideways-lr|no-compress|space-first|searchfield|lining-nums|fit-content|ease-in-out|punctuation|min-content|petite-caps|crisp-edges|push-button|translate3d|row-reverse|perspective|max-content|nesw-resize|not-allowed|preserve-3d|space-start|drop-shadow|padding-box|text-bottom|rotate-left|block-start|inline-grid|inline-flex|upper-latin|upper-alpha|lower-latin|auto‑flow|lower-alpha|message-box|lower-greek|upper-roman|lower-roman|vertical-rl|traditional|justify-all|close-quote|content-box|vertical-lr|cjk-decimal|transparent|sideways-rl|target-text|balance-all|ideographic|nwse-resize|saturation|flex-start|open-quote|from-image|avoid-flex|avoid-line|stroke-box|ui-rounded|margin-box|self-start|inline-end|devanagari|avoid-page|status-bar|all-scroll|col-resize|row-resize|translateZ|translateY|translateX|hue-rotate|small-caps|brightness|step-start|capitalize|trim-start|trim-inner|sans-serif|scale-down|contextual|break-word|horizontal|inter-word|color-burn|cross-fade|hard-light|soft-light|border-box|table-cell|luminosity|full-width|difference|simplified|alphabetic|mandatory|exclusion|from-font|table-row|flow-root|underline|image-set|proximity|ruby-base|ruby-text|list-item|monospace|intersect|ns-resize|textfield|ew-resize|uppercase|sw-resize|se-resize|nw-resize|lowercase|grayscale|ne-resize|pan-right|translate|backwards|available|luminance|condensed|alternate|mongolian|plaintext|malayalam|cambodian|transform|block-end|force-end|break-all|crosshair|allow-end|no-repeat|pixelated|system-ui|xxx-large|space-end|w-resize|georgian|flex-end|baseline|gujarati|fangsong|ui-serif|fill-box|keep-all|view-box|xx-small|gurmukhi|pre-line|pre-wrap|contents|xx-large|text-top|hiragana|self-end|katakana|collapse|separate|anywhere|saturate|expanded|subtract|progress|repeat-x|rotate3d|repeat-y|contrast|relative|forwards|infinite|absolute|matrix3d|vertical|overline|pan-down|pan-left|step-end|triangle|ease-out|textarea|sideways|checkbox|menulist|ellipsis|trim-end|grabbing|multiply|zoom-out|n-resize|s-resize|armenian|ordinal|zoom-in|visible|overlay|no-drop|listbox|unicode|lighten|ease-in|lighter|element|running|justify|display|fantasy|unicase|subgrid|reverse|upright|stretch|rotateX|current|exclude|rotateY|pointer|contain|opacity|default|no-clip|in-flow|hanging|isolate|discard|tibetan|persian|myanmar|rotateZ|content|inherit|outside|initial|kannada|smaller|decimal|symbols|x-large|balance|x-small|economy|caption|minimum|maximum|polygon|ellipse|cursive|bengali|masonry|static|region|column|run-in|inline|middle|circle|larger|button|square|pretty|always|hidden|rotate|inside|scroll|screen|matrix|create|unsafe|center|paused|nowrap|medium|darken|sesame|strict|outset|pan-up|bolder|telugu|scaleX|linear|scaleY|groove|double|scaleZ|dashed|minmax|legacy|hebrew|bottom|dotted|leader|normal|stable|weight|smooth|filled|italic|revert|manual|repeat|sticky|invert|table|round|space|alias|jis78|dense|sepia|emoji|auto;|clear|skewX|cover|right|skewY|style|light|unset|force|alpha|large|focus|solid|ridge|white|embed|tamil|blink|first|scale|radio|color|jis83|under|block|jis90|inset|start|pan-y|oriya|super|loose|mixed|thick|slice|pan-x|khmer|width|local|fixed|clone|avoid|serif|exact|recto|meter|small|verso|jis04|image|flow|flex|grid|ruby|wrap|ease|safe|grab|move|icon|bold|last|open|over|wavy|show|hide|both|url;|none|blur|text|line|menu|copy|dark|left|math|cell|clip|fill|skew|wait|help|flat|snap|keep|thai|thin|disc|path|page|attr|rect|auto|row|all|rtl|end|ltr|sub|hue|dot|url|top|lao|add|ray|pre|x|y|z)\b">
-        <token type="NameEntity"/>
-      </rule>
-      <rule pattern="(?i)\b(LightGoldenRodYellow|MediumSpringGreen|MediumAquaMarine|MediumSlateBlue|MediumVioletRed|MediumTurquoise|LightSlateGray|LightSlateGrey|MediumSeaGreen|BlanchedAlmond|LightSteelBlue|CornflowerBlue|DarkOliveGreen|DarkGoldenRod|PaleGoldenRod|PaleTurquoise|LavenderBlush|RebeccaPurple|DarkSlateGray|DarkSlateGrey|LightSeaGreen|PaleVioletRed|DarkTurquoise|DarkSlateBlue|AntiqueWhite|DarkSeaGreen|LightSkyBlue|MediumOrchid|LemonChiffon|MediumPurple|MidnightBlue|GreenYellow|DarkMagenta|LightSalmon|LightYellow|DeepSkyBlue|NavajoWhite|SaddleBrown|SpringGreen|ForestGreen|FloralWhite|YellowGreen|PapayaWhip|Aquamarine|DodgerBlue|Chartreuse|BlueViolet|DarkViolet|DarkOrange|LightGreen|GhostWhite|WhiteSmoke|DarkOrchid|MediumBlue|PowderBlue|LightCoral|DarkSalmon|SandyBrown|IndianRed|RoyalBlue|SteelBlue|AliceBlue|SlateGrey|MistyRose|Turquoise|LawnGreen|MintCream|LightBlue|SlateGray|LightCyan|GoldenRod|LightGray|LightGrey|Gainsboro|OliveDrab|Chocolate|DarkGreen|PeachPuff|RosyBrown|BurlyWood|FireBrick|SlateBlue|LightPink|LimeGreen|OrangeRed|CadetBlue|DarkKhaki|PaleGreen|HoneyDew|SeaShell|SeaGreen|DeepPink|Cornsilk|DarkBlue|DarkCyan|DarkGray|DarkGrey|Moccasin|Lavender|DarkRed|HotPink|SkyBlue|OldLace|Thistle|Fuchsia|Magenta|DimGrey|Crimson|DimGray|Tomato|Bisque|Silver|Orchid|Orange|Yellow|Sienna|Maroon|Salmon|Purple|Indigo|Violet|Green|Beige|Azure|Olive|Ivory|Coral|Wheat|White|Linen|Brown|Khaki|Black|Cyan|Blue|Aqua|Navy|Peru|Teal|Grey|Snow|Gray|Gold|Plum|Pink|Lime|Red|Tan)\b">
-        <token type="NameConstant"/>
-      </rule>
-      <rule pattern="(true|false)">
-        <token type="NamePseudo"/>
-      </rule>
-      <rule pattern="(and|or|not)">
-        <token type="OperatorWord"/>
-      </rule>
-      <rule pattern="/\*">
-        <token type="CommentMultiline"/>
-        <push state="inline-comment"/>
-      </rule>
-      <rule pattern="//[^\n]*">
-        <token type="CommentSingle"/>
-      </rule>
-      <rule pattern="\#[a-z0-9]{1,6}">
-        <token type="LiteralNumberHex"/>
-      </rule>
-      <rule pattern="(-)?(\d+)(\%|[a-z]+)?">
-        <bygroups>
-          <token type="Operator"/>
-          <token type="LiteralNumberInteger"/>
-          <token type="KeywordType"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(-?)(\d*\.\d+)(\%|[a-z]+)?">
-        <bygroups>
-          <token type="Operator"/>
-          <token type="LiteralNumberFloat"/>
-          <token type="KeywordType"/>
-        </bygroups>
-      </rule>
-      <rule pattern="#\{">
-        <token type="LiteralStringInterpol"/>
-        <push state="interpolation"/>
-      </rule>
-      <rule pattern="[~^*!&amp;%&lt;&gt;|+=@:,./?-]+">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="[\[\]()]+">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="&#34;">
-        <token type="LiteralStringDouble"/>
-        <push state="string-double"/>
-      </rule>
-      <rule pattern="&#39;">
-        <token type="LiteralStringSingle"/>
-        <push state="string-single"/>
-      </rule>
-      <rule pattern="[a-z_-][\w-]*">
-        <token type="Name"/>
-      </rule>
-      <rule pattern="\n">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="[;{}]">
-        <token type="Punctuation"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="inline-comment">
-      <rule pattern="(\\#|#(?=[^{])|\*(?=[^/])|[^#*])+">
-        <token type="CommentMultiline"/>
-      </rule>
-      <rule pattern="#\{">
-        <token type="LiteralStringInterpol"/>
-        <push state="interpolation"/>
-      </rule>
-      <rule pattern="\*/">
-        <token type="Comment"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="string-single">
-      <rule pattern="(\\.|#(?=[^\n{])|[^\n&#39;#])+">
-        <token type="LiteralStringSingle"/>
-      </rule>
-      <rule pattern="#\{">
-        <token type="LiteralStringInterpol"/>
-        <push state="interpolation"/>
-      </rule>
-      <rule pattern="&#39;">
-        <token type="LiteralStringSingle"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="interpolation">
-      <rule pattern="\}">
-        <token type="LiteralStringInterpol"/>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <include state="value"/>
-      </rule>
-    </state>
-    <state name="each">
-      <rule pattern="in">
-        <token type="OperatorWord"/>
-      </rule>
-      <rule>
-        <include state="value"/>
-      </rule>
-    </state>
-    <state name="attr">
-      <rule pattern="#\{">
-        <token type="LiteralStringInterpol"/>
-        <push state="interpolation"/>
-      </rule>
-      <rule pattern="[ \t]*:">
-        <token type="Operator"/>
-        <push state="value"/>
-      </rule>
-      <rule>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="root">
-      <rule pattern="[{}()]">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="\s+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="//.*?\n">
-        <token type="CommentSingle"/>
-      </rule>
-      <rule pattern="/\*.*?\*/">
-        <token type="CommentMultiline"/>
-      </rule>
-      <rule pattern="@import">
-        <token type="Keyword"/>
-        <push state="value"/>
-      </rule>
-      <rule pattern="(@(?:use|forward))(\s+)([^\s;]+)(?:(\s+)(as)(\s+)(\w+|\*))?(?:(\s+)(with))?">
-        <bygroups>
-          <token type="Keyword"/>
-          <token type="Text"/>
-          <usingself state="selector"/>
-          <token type="Text"/>
-          <token type="Keyword"/>
-          <token type="Text"/>
-          <token type="NameNamespace"/>
-          <token type="Text"/>
-          <token type="Keyword"/>
-        </bygroups>
-        <push state="value"/>
-      </rule>
-      <rule pattern="@for">
-        <token type="Keyword"/>
-        <push state="for"/>
-      </rule>
-      <rule pattern="@each">
-        <token type="Keyword"/>
-        <push state="each"/>
-      </rule>
-      <rule pattern="@(debug|warn|else if|if|while|return)">
-        <token type="Keyword"/>
-        <push state="value"/>
-      </rule>
-      <rule pattern="(@(?:mixin|function))( [\w-]+)">
-        <bygroups>
-          <token type="Keyword"/>
-          <token type="NameFunction"/>
-        </bygroups>
-        <push state="value"/>
-      </rule>
-      <rule pattern="(@include)( [\w-]+)">
-        <bygroups>
-          <token type="Keyword"/>
-          <token type="NameDecorator"/>
-        </bygroups>
-        <push state="value"/>
-      </rule>
-      <rule pattern="@extend">
-        <token type="Keyword"/>
-        <push state="selector"/>
-      </rule>
-      <rule pattern="(@media)(\s+)">
-        <bygroups>
-          <token type="Keyword"/>
-          <token type="Text"/>
-        </bygroups>
-        <push state="value"/>
-      </rule>
-      <rule pattern="@[\w-]+">
-        <token type="Keyword"/>
-        <push state="selector"/>
-      </rule>
-      <rule pattern="(\$[\w-]*\w)([ \t]*:)">
-        <bygroups>
-          <token type="NameVariable"/>
-          <token type="Operator"/>
-        </bygroups>
-        <push state="value"/>
-      </rule>
-      <rule pattern="#\{">
-        <token type="LiteralStringInterpol"/>
-        <push state="interpolation"/>
-      </rule>
-      <rule pattern="\b(scroll-padding-inline-start|spatial-navigation-function|transition-timing-function|overscroll-behavior-inline|spatial-navigation-contain|border-bottom-right-radius|scroll-padding-block-start|scroll-margin-inline-start|border-inline-start-width|border-start-start-radius|border-inline-start-color|animation-iteration-count|spatial-navigation-action|animation-timing-function|text-decoration-thickness|border-inline-start-style|scroll-margin-block-start|scroll-padding-inline-end|border-bottom-left-radius|overscroll-behavior-block|scroll-margin-inline-end|border-block-start-style|border-block-start-width|scroll-padding-block-end|border-block-start-color|scroll-margin-block-end|border-top-right-radius|text-underline-position|border-inline-end-width|border-start-end-radius|border-end-start-radius|border-inline-end-style|border-inline-end-color|font-variant-east-asian|border-block-end-style|font-language-override|border-block-end-color|border-block-end-width|text-emphasis-position|border-top-left-radius|font-variant-ligatures|shape-image-threshold|overscroll-behavior-x|text-decoration-style|scroll-padding-inline|background-blend-mode|text-decoration-color|text-underline-offset|overscroll-behavior-y|border-end-end-radius|scroll-padding-bottom|grid-template-columns|font-variant-position|font-feature-settings|background-attachment|font-variant-numeric|initial-letter-align|text-combine-upright|text-decoration-line|overflow-clip-margin|scroll-padding-right|padding-inline-start|scroll-margin-bottom|text-decoration-skip|scroll-margin-inline|scroll-padding-block|animation-play-state|box-decoration-break|backface-visibility|border-image-outset|font-optical-sizing|animation-fill-mode|margin-inline-start|border-bottom-color|transition-property|border-inline-width|animation-direction|grid-template-areas|forced-color-adjust|border-inline-style|border-inline-start|text-emphasis-style|scroll-padding-left|border-bottom-width|scroll-margin-right|border-inline-color|overscroll-behavior|list-style-position|hanging-punctuation|background-position|border-bottom-style|border-image-source|transition-duration|initial-letter-wrap|padding-block-start|border-image-repeat|scroll-margin-block|font-variant-emoji|margin-block-start|border-block-start|border-block-style|padding-inline-end|border-block-width|perspective-origin|border-right-style|border-right-color|border-block-color|mask-border-repeat|mask-border-source|border-image-width|scroll-padding-top|animation-duration|border-image-slice|grid-template-rows|content-visibility|scroll-margin-left|border-right-width|inset-inline-start|background-origin|scroll-snap-align|page-break-inside|column-rule-width|mask-border-width|column-rule-style|mask-border-slice|column-rule-color|grid-auto-columns|page-break-before|background-repeat|counter-increment|font-variant-caps|padding-block-end|border-inline-end|grid-column-start|border-left-width|border-left-style|border-left-color|scroll-margin-top|inset-block-start|margin-inline-end|image-orientation|mask-border-mode|scroll-snap-stop|scroll-snap-type|scrollbar-gutter|font-size-adjust|transform-origin|page-orientation|image-resolution|margin-block-end|footnote-display|page-break-after|border-block-end|text-group-align|text-orientation|transition-delay|background-image|text-size-adjust|border-top-width|border-top-style|list-style-image|border-top-color|background-color|inset-inline-end|offset-distance|background-size|background-clip|list-style-type|footnote-policy|text-decoration|scrollbar-color|scrollbar-width|text-align-last|image-rendering|animation-delay|transform-style|object-position|offset-position|text-space-trim|justify-content|overflow-anchor|overflow-inline|inset-block-end|border-collapse|grid-column-end|scroll-behavior|border-spacing|scroll-padding|text-align-all|pointer-events|max-block-size|text-transform|letter-spacing|lighting-color|mask-composite|initial-letter|mix-blend-mode|overflow-block|animation-name|grid-row-start|flex-direction|padding-inline|grid-auto-rows|grid-auto-flow|vertical-align|outline-offset|text-rendering|font-synthesis|padding-bottom|margin-inline|padding-block|offset-rotate|text-overflow|border-inline|margin-bottom|offset-anchor|scroll-margin|outline-style|border-bottom|shape-outside|outline-width|shape-padding|text-emphasis|align-content|grid-template|border-radius|transform-box|overflow-wrap|justify-items|mask-position|place-content|inline-sizing|counter-reset|padding-right|outline-color|writing-mode|column-width|column-count|table-layout|touch-action|padding-left|color-adjust|word-spacing|text-justify|shape-margin|caption-side|break-inside|shape-inside|margin-right|break-before|font-kerning|font-stretch|border-width|margin-break|text-spacing|border-style|aspect-ratio|margin-block|grid-row-end|border-block|line-padding|border-right|wrap-through|border-color|border-image|justify-self|inset-inline|unicode-bidi|font-variant|empty-cells|border-left|white-space|wrap-inside|grid-column|will-change|text-shadow|offset-path|user-select|inline-size|break-after|place-items|caret-color|text-indent|padding-top|inset-block|wrap-before|font-weight|flex-shrink|line-height|perspective|column-fill|mask-repeat|align-items|margin-left|mask-origin|margin-trim|column-rule|font-family|column-span|counter-set|mask-border|mask-image|string-set|align-self|margin-top|place-self|list-style|wrap-after|block-size|word-break|line-clamp|line-break|flex-basis|max-height|min-height|object-fit|appearance|box-sizing|transition|box-shadow|background|border-top|visibility|overflow-x|column-gap|font-style|overflow-y|text-align|mask-size|line-snap|flex-wrap|nav-right|isolation|flex-grow|flex-flow|translate|line-grid|text-wrap|wrap-flow|min-width|max-width|direction|clip-path|word-wrap|mask-clip|max-lines|mask-type|grid-area|animation|mask-mode|transform|font-size|nav-down|position|overflow|grid-row|tab-size|nav-left|display|row-gap|content|opacity|padding|orphans|outline|columns|hyphens|z-index|margin|border|rotate|filter|resize|quotes|bottom|height|offset|nav-up|cursor|widows|color|inset|order|scale|right|float|width|clear|font|flex|left|mask|clip|page|grid|gap|src|top|all)(?=\s*:)">
-        <token type="NameAttribute"/>
-        <push state="attr"/>
-      </rule>
-      <rule pattern="(?&lt;!:\s*)[^ \t:=&#34;\[;(),.]+(?=[ \t]*:(?:#{|[^{])+?[;,])">
-        <token type="NameAttribute"/>
-        <push state="attr"/>
-      </rule>
-      <rule>
-        <push state="selector"/>
-      </rule>
-    </state>
-    <state name="for">
-      <rule pattern="(from|to|through)">
-        <token type="OperatorWord"/>
-      </rule>
-      <rule>
-        <include state="value"/>
-      </rule>
-    </state>
-    <state name="class">
-      <rule pattern="[\w-]+">
-        <token type="NameClass"/>
-      </rule>
-      <rule pattern="#\{">
-        <token type="LiteralStringInterpol"/>
-        <push state="interpolation"/>
-      </rule>
-      <rule>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="selector">
-      <rule pattern="[ \t]+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="\:">
-        <token type="NameDecorator"/>
-        <push state="pseudo-class"/>
-      </rule>
-      <rule pattern="\.">
-        <token type="NameClass"/>
-        <push state="class"/>
-      </rule>
-      <rule pattern="#\{">
-        <token type="LiteralStringInterpol"/>
-        <push state="interpolation"/>
-      </rule>
-      <rule pattern="\#">
-        <token type="NameNamespace"/>
-        <push state="id"/>
-      </rule>
-      <rule pattern="&amp;">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="[~^*!&amp;\[\]()&lt;&gt;|+=@:,./?-]">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="(%)([\w-]+)">
-        <bygroups>
-          <token type="Operator"/>
-          <token type="NameClass"/>
-        </bygroups>
-      </rule>
-      <rule pattern="&#34;">
-        <token type="LiteralStringDouble"/>
-        <push state="string-double"/>
-      </rule>
-      <rule pattern="&#39;">
-        <token type="LiteralStringSingle"/>
-        <push state="string-single"/>
-      </rule>
-      <rule pattern="\n">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="[;{}]">
-        <token type="Punctuation"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="[\w-]+">
-        <token type="NameTag"/>
-      </rule>
-    </state>
-    <state name="string-url">
-      <rule pattern="(\\#|#(?=[^\n{])|[^\n#)])+">
-        <token type="LiteralStringOther"/>
-      </rule>
-      <rule pattern="#\{">
-        <token type="LiteralStringInterpol"/>
-        <push state="interpolation"/>
-      </rule>
-      <rule pattern="\)">
-        <token type="LiteralStringOther"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="pseudo-class">
-      <rule pattern="[\w-]+">
-        <token type="NameDecorator"/>
-      </rule>
-      <rule pattern="#\{">
-        <token type="LiteralStringInterpol"/>
-        <push state="interpolation"/>
-      </rule>
-      <rule>
-        <pop depth="1"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/sieve.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/sieve.xml	(revision 67)
+++ 	(revision )
@@ -1,61 +1,0 @@
-<lexer>
-  <config>
-    <name>Sieve</name>
-    <alias>sieve</alias>
-    <filename>*.siv</filename>
-    <filename>*.sieve</filename>
-  </config>
-  <rules>
-    <state name="root">
-      <rule pattern="\s+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="[();,{}\[\]]">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="(?i)require">
-        <token type="KeywordNamespace"/>
-      </rule>
-      <rule pattern="(?i)(:)(addresses|all|contains|content|create|copy|comparator|count|days|detail|domain|fcc|flags|from|handle|importance|is|localpart|length|lowerfirst|lower|matches|message|mime|options|over|percent|quotewildcard|raw|regex|specialuse|subject|text|under|upperfirst|upper|value)">
-        <bygroups>
-          <token type="NameTag"/>
-          <token type="NameTag"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(?i)(address|addflag|allof|anyof|body|discard|elsif|else|envelope|ereject|exists|false|fileinto|if|hasflag|header|keep|notify_method_capability|notify|not|redirect|reject|removeflag|setflag|size|spamtest|stop|string|true|vacation|virustest)">
-        <token type="NameBuiltin"/>
-      </rule>
-      <rule pattern="(?i)set">
-        <token type="KeywordDeclaration"/>
-      </rule>
-      <rule pattern="([0-9.]+)([kmgKMG])?">
-        <bygroups>
-          <token type="LiteralNumber"/>
-          <token type="LiteralNumber"/>
-        </bygroups>
-      </rule>
-      <rule pattern="#.*$">
-        <token type="CommentSingle"/>
-      </rule>
-      <rule pattern="/\*.*\*/">
-        <token type="CommentMultiline"/>
-      </rule>
-      <rule pattern="&#34;[^&#34;]*?&#34;">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="text:">
-        <token type="NameTag"/>
-        <push state="text"/>
-      </rule>
-    </state>
-    <state name="text">
-      <rule pattern="[^.].*?\n">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="^\.">
-        <token type="Punctuation"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/smalltalk.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/smalltalk.xml	(revision 67)
+++ 	(revision )
@@ -1,294 +1,0 @@
-<lexer>
-  <config>
-    <name>Smalltalk</name>
-    <alias>smalltalk</alias>
-    <alias>squeak</alias>
-    <alias>st</alias>
-    <filename>*.st</filename>
-    <mime_type>text/x-smalltalk</mime_type>
-  </config>
-  <rules>
-    <state name="inner_parenth">
-      <rule pattern="\)">
-        <token type="LiteralStringSymbol"/>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <include state="_parenth_helper"/>
-      </rule>
-    </state>
-    <state name="objects">
-      <rule pattern="\[">
-        <token type="Text"/>
-        <push state="blockvariables"/>
-      </rule>
-      <rule pattern="\]">
-        <token type="Text"/>
-        <push state="afterobject"/>
-      </rule>
-      <rule pattern="\b(self|super|true|false|nil|thisContext)\b">
-        <token type="NameBuiltinPseudo"/>
-        <push state="afterobject"/>
-      </rule>
-      <rule pattern="\b[A-Z]\w*(?!:)\b">
-        <token type="NameClass"/>
-        <push state="afterobject"/>
-      </rule>
-      <rule pattern="\b[a-z]\w*(?!:)\b">
-        <token type="NameVariable"/>
-        <push state="afterobject"/>
-      </rule>
-      <rule pattern="#(&#34;(&#34;&#34;|[^&#34;])*&#34;|[-+*/\\~&lt;&gt;=|&amp;!?,@%]+|[\w:]+)">
-        <token type="LiteralStringSymbol"/>
-        <push state="afterobject"/>
-      </rule>
-      <rule>
-        <include state="literals"/>
-      </rule>
-    </state>
-    <state name="afterobject">
-      <rule pattern="! !$">
-        <token type="Keyword"/>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <include state="whitespaces"/>
-      </rule>
-      <rule pattern="\b(ifTrue:|ifFalse:|whileTrue:|whileFalse:|timesRepeat:)">
-        <token type="NameBuiltin"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="\b(new\b(?!:))">
-        <token type="NameBuiltin"/>
-      </rule>
-      <rule pattern=":=|_">
-        <token type="Operator"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="\b[a-zA-Z]+\w*:">
-        <token type="NameFunction"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="\b[a-zA-Z]+\w*">
-        <token type="NameFunction"/>
-      </rule>
-      <rule pattern="\w+:?|[-+*/\\~&lt;&gt;=|&amp;!?,@%]+">
-        <token type="NameFunction"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="\.">
-        <token type="Punctuation"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern=";">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="[\])}]">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="[\[({]">
-        <token type="Text"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="literals">
-      <rule pattern="&#39;(&#39;&#39;|[^&#39;])*&#39;">
-        <token type="LiteralString"/>
-        <push state="afterobject"/>
-      </rule>
-      <rule pattern="\$.">
-        <token type="LiteralStringChar"/>
-        <push state="afterobject"/>
-      </rule>
-      <rule pattern="#\(">
-        <token type="LiteralStringSymbol"/>
-        <push state="parenth"/>
-      </rule>
-      <rule pattern="\)">
-        <token type="Text"/>
-        <push state="afterobject"/>
-      </rule>
-      <rule pattern="(\d+r)?-?\d+(\.\d+)?(e-?\d+)?">
-        <token type="LiteralNumber"/>
-        <push state="afterobject"/>
-      </rule>
-    </state>
-    <state name="root">
-      <rule pattern="(&lt;)(\w+:)(.*?)(&gt;)">
-        <bygroups>
-          <token type="Text"/>
-          <token type="Keyword"/>
-          <token type="Text"/>
-          <token type="Text"/>
-        </bygroups>
-      </rule>
-      <rule>
-        <include state="squeak fileout"/>
-      </rule>
-      <rule>
-        <include state="whitespaces"/>
-      </rule>
-      <rule>
-        <include state="method definition"/>
-      </rule>
-      <rule pattern="(\|)([\w\s]*)(\|)">
-        <bygroups>
-          <token type="Operator"/>
-          <token type="NameVariable"/>
-          <token type="Operator"/>
-        </bygroups>
-      </rule>
-      <rule>
-        <include state="objects"/>
-      </rule>
-      <rule pattern="\^|:=|_">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="[\]({}.;!]">
-        <token type="Text"/>
-      </rule>
-    </state>
-    <state name="_parenth_helper">
-      <rule>
-        <include state="whitespaces"/>
-      </rule>
-      <rule pattern="(\d+r)?-?\d+(\.\d+)?(e-?\d+)?">
-        <token type="LiteralNumber"/>
-      </rule>
-      <rule pattern="[-+*/\\~&lt;&gt;=|&amp;#!?,@%\w:]+">
-        <token type="LiteralStringSymbol"/>
-      </rule>
-      <rule pattern="&#39;(&#39;&#39;|[^&#39;])*&#39;">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="\$.">
-        <token type="LiteralStringChar"/>
-      </rule>
-      <rule pattern="#*\(">
-        <token type="LiteralStringSymbol"/>
-        <push state="inner_parenth"/>
-      </rule>
-    </state>
-    <state name="parenth">
-      <rule pattern="\)">
-        <token type="LiteralStringSymbol"/>
-        <push state="root" state="afterobject"/>
-      </rule>
-      <rule>
-        <include state="_parenth_helper"/>
-      </rule>
-    </state>
-    <state name="whitespaces">
-      <rule pattern="\s+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="&#34;(&#34;&#34;|[^&#34;])*&#34;">
-        <token type="Comment"/>
-      </rule>
-    </state>
-    <state name="squeak fileout">
-      <rule pattern="^&#34;(&#34;&#34;|[^&#34;])*&#34;!">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="^&#39;(&#39;&#39;|[^&#39;])*&#39;!">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="^(!)(\w+)( commentStamp: )(.*?)( prior: .*?!\n)(.*?)(!)">
-        <bygroups>
-          <token type="Keyword"/>
-          <token type="NameClass"/>
-          <token type="Keyword"/>
-          <token type="LiteralString"/>
-          <token type="Keyword"/>
-          <token type="Text"/>
-          <token type="Keyword"/>
-        </bygroups>
-      </rule>
-      <rule pattern="^(!)(\w+(?: class)?)( methodsFor: )(&#39;(?:&#39;&#39;|[^&#39;])*&#39;)(.*?!)">
-        <bygroups>
-          <token type="Keyword"/>
-          <token type="NameClass"/>
-          <token type="Keyword"/>
-          <token type="LiteralString"/>
-          <token type="Keyword"/>
-        </bygroups>
-      </rule>
-      <rule pattern="^(\w+)( subclass: )(#\w+)(\s+instanceVariableNames: )(.*?)(\s+classVariableNames: )(.*?)(\s+poolDictionaries: )(.*?)(\s+category: )(.*?)(!)">
-        <bygroups>
-          <token type="NameClass"/>
-          <token type="Keyword"/>
-          <token type="LiteralStringSymbol"/>
-          <token type="Keyword"/>
-          <token type="LiteralString"/>
-          <token type="Keyword"/>
-          <token type="LiteralString"/>
-          <token type="Keyword"/>
-          <token type="LiteralString"/>
-          <token type="Keyword"/>
-          <token type="LiteralString"/>
-          <token type="Keyword"/>
-        </bygroups>
-      </rule>
-      <rule pattern="^(\w+(?: class)?)(\s+instanceVariableNames: )(.*?)(!)">
-        <bygroups>
-          <token type="NameClass"/>
-          <token type="Keyword"/>
-          <token type="LiteralString"/>
-          <token type="Keyword"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(!\n)(\].*)(! !)$">
-        <bygroups>
-          <token type="Keyword"/>
-          <token type="Text"/>
-          <token type="Keyword"/>
-        </bygroups>
-      </rule>
-      <rule pattern="! !$">
-        <token type="Keyword"/>
-      </rule>
-    </state>
-    <state name="method definition">
-      <rule pattern="([a-zA-Z]+\w*:)(\s*)(\w+)">
-        <bygroups>
-          <token type="NameFunction"/>
-          <token type="Text"/>
-          <token type="NameVariable"/>
-        </bygroups>
-      </rule>
-      <rule pattern="^(\b[a-zA-Z]+\w*\b)(\s*)$">
-        <bygroups>
-          <token type="NameFunction"/>
-          <token type="Text"/>
-        </bygroups>
-      </rule>
-      <rule pattern="^([-+*/\\~&lt;&gt;=|&amp;!?,@%]+)(\s*)(\w+)(\s*)$">
-        <bygroups>
-          <token type="NameFunction"/>
-          <token type="Text"/>
-          <token type="NameVariable"/>
-          <token type="Text"/>
-        </bygroups>
-      </rule>
-    </state>
-    <state name="blockvariables">
-      <rule>
-        <include state="whitespaces"/>
-      </rule>
-      <rule pattern="(:)(\s*)(\w+)">
-        <bygroups>
-          <token type="Operator"/>
-          <token type="Text"/>
-          <token type="NameVariable"/>
-        </bygroups>
-      </rule>
-      <rule pattern="\|">
-        <token type="Operator"/>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <pop depth="1"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/snobol.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/snobol.xml	(revision 67)
+++ 	(revision )
@@ -1,95 +1,0 @@
-<lexer>
-  <config>
-    <name>Snobol</name>
-    <alias>snobol</alias>
-    <filename>*.snobol</filename>
-    <mime_type>text/x-snobol</mime_type>
-  </config>
-  <rules>
-    <state name="heredoc">
-      <rule pattern=".*\n">
-        <token type="LiteralStringHeredoc"/>
-      </rule>
-    </state>
-    <state name="root">
-      <rule pattern="\*.*\n">
-        <token type="Comment"/>
-      </rule>
-      <rule pattern="[+.] ">
-        <token type="Punctuation"/>
-        <push state="statement"/>
-      </rule>
-      <rule pattern="-.*\n">
-        <token type="Comment"/>
-      </rule>
-      <rule pattern="END\s*\n">
-        <token type="NameLabel"/>
-        <push state="heredoc"/>
-      </rule>
-      <rule pattern="[A-Za-z$][\w$]*">
-        <token type="NameLabel"/>
-        <push state="statement"/>
-      </rule>
-      <rule pattern="\s+">
-        <token type="Text"/>
-        <push state="statement"/>
-      </rule>
-    </state>
-    <state name="statement">
-      <rule pattern="\s*\n">
-        <token type="Text"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="\s+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="(?&lt;=[^\w.])(LT|LE|EQ|NE|GE|GT|INTEGER|IDENT|DIFFER|LGT|SIZE|REPLACE|TRIM|DUPL|REMDR|DATE|TIME|EVAL|APPLY|OPSYN|LOAD|UNLOAD|LEN|SPAN|BREAK|ANY|NOTANY|TAB|RTAB|REM|POS|RPOS|FAIL|FENCE|ABORT|ARB|ARBNO|BAL|SUCCEED|INPUT|OUTPUT|TERMINAL)(?=[^\w.])">
-        <token type="NameBuiltin"/>
-      </rule>
-      <rule pattern="[A-Za-z][\w.]*">
-        <token type="Name"/>
-      </rule>
-      <rule pattern="\*\*|[?$.!%*/#+\-@|&amp;\\=]">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="&#34;[^&#34;]*&#34;">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="&#39;[^&#39;]*&#39;">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="[0-9]+(?=[^.EeDd])">
-        <token type="LiteralNumberInteger"/>
-      </rule>
-      <rule pattern="[0-9]+(\.[0-9]*)?([EDed][-+]?[0-9]+)?">
-        <token type="LiteralNumberFloat"/>
-      </rule>
-      <rule pattern=":">
-        <token type="Punctuation"/>
-        <push state="goto"/>
-      </rule>
-      <rule pattern="[()&lt;&gt;,;]">
-        <token type="Punctuation"/>
-      </rule>
-    </state>
-    <state name="goto">
-      <rule pattern="\s*\n">
-        <token type="Text"/>
-        <pop depth="2"/>
-      </rule>
-      <rule pattern="\s+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="F|S">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="(\()([A-Za-z][\w.]*)(\))">
-        <bygroups>
-          <token type="Punctuation"/>
-          <token type="NameLabel"/>
-          <token type="Punctuation"/>
-        </bygroups>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/solidity.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/solidity.xml	(revision 67)
+++ 	(revision )
@@ -1,279 +1,0 @@
-<lexer>
-  <config>
-    <name>Solidity</name>
-    <alias>sol</alias>
-    <alias>solidity</alias>
-    <filename>*.sol</filename>
-    <dot_all>true</dot_all>
-  </config>
-  <rules>
-    <state name="strings">
-      <rule pattern="hex&#39;[0-9a-fA-F]+&#39;">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="hex&#34;[0-9a-fA-F]+&#34;">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="&#34;">
-        <token type="LiteralString"/>
-        <combined state="string-parse-common" state="string-parse-double"/>
-      </rule>
-      <rule pattern="&#39;">
-        <token type="LiteralString"/>
-        <combined state="string-parse-common" state="string-parse-single"/>
-      </rule>
-    </state>
-    <state name="numbers">
-      <rule pattern="0[xX][0-9a-fA-F]+">
-        <token type="LiteralNumberHex"/>
-      </rule>
-      <rule pattern="[0-9]+">
-        <token type="LiteralNumberInteger"/>
-      </rule>
-    </state>
-    <state name="root">
-      <rule>
-        <include state="comments"/>
-      </rule>
-      <rule>
-        <include state="keywords-types"/>
-      </rule>
-      <rule>
-        <include state="keywords-other"/>
-      </rule>
-      <rule>
-        <include state="numbers"/>
-      </rule>
-      <rule>
-        <include state="strings"/>
-      </rule>
-      <rule>
-        <include state="whitespace"/>
-      </rule>
-      <rule pattern="\+\+|--|\*\*|\?|:|~|&amp;&amp;|\|\||=&gt;|==?|!=?|(&lt;&lt;|&gt;&gt;&gt;?|[-&lt;&gt;+*%&amp;|^/])=?">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="[{(\[;,]">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="[})\].]">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="(abi|block|msg|tx)\b">
-        <token type="NameBuiltin"/>
-      </rule>
-      <rule pattern="(?!abi\.)(decode|encode|encodePacked|encodeWithSelector|encodeWithSignature|encodeWithSelector)\b">
-        <token type="NameBuiltin"/>
-      </rule>
-      <rule pattern="(?!block\.)(chainid|coinbase|difficulty|gaslimit|number|timestamp)\b">
-        <token type="NameBuiltin"/>
-      </rule>
-      <rule pattern="(?!msg\.)(data|gas|sender|value)\b">
-        <token type="NameBuiltin"/>
-      </rule>
-      <rule pattern="(?!tx\.)(gasprice|origin)\b">
-        <token type="NameBuiltin"/>
-      </rule>
-      <rule pattern="(type)(\()([a-zA-Z_]\w*)(\))">
-        <bygroups>
-          <token type="NameBuiltin"/>
-          <token type="Punctuation"/>
-          <token type="NameClass"/>
-          <token type="Punctuation"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(?!type\([a-zA-Z_]\w*\)\.)(creationCode|interfaceId|max|min|name|runtimeCode)\b">
-        <token type="NameBuiltin"/>
-      </rule>
-      <rule pattern="(now|this|super|gasleft)\b">
-        <token type="NameBuiltin"/>
-      </rule>
-      <rule pattern="(selfdestruct|suicide)\b">
-        <token type="NameBuiltin"/>
-      </rule>
-      <rule pattern="(?!0x[0-9a-fA-F]+\.)(balance|code|codehash|send|transfer)\b">
-        <token type="NameBuiltin"/>
-      </rule>
-      <rule pattern="(assert|revert|require)\b">
-        <token type="NameBuiltin"/>
-      </rule>
-      <rule pattern="(call|callcode|delegatecall)\b">
-        <token type="NameBuiltin"/>
-      </rule>
-      <rule pattern="selector\b">
-        <token type="NameBuiltin"/>
-      </rule>
-      <rule pattern="(addmod|blockhash|ecrecover|keccak256|mulmod|ripemd160|sha256|sha3)\b">
-        <token type="NameBuiltin"/>
-      </rule>
-      <rule pattern="[a-zA-Z_]\w*">
-        <token type="Name"/>
-      </rule>
-    </state>
-    <state name="keywords-types">
-      <rule pattern="(address|ufixed|string|bytes|fixed|byte|bool|uint|int)\b">
-        <token type="KeywordType"/>
-      </rule>
-      <rule pattern="(int160|int248|int240|int232|int224|int216|int208|int200|int192|int184|int176|int168|int104|int112|int120|int128|int136|int144|int152|int256|int96|int88|int80|int72|int64|int56|int48|int40|int32|int24|int16|int8)\b">
-        <token type="KeywordType"/>
-      </rule>
-      <rule pattern="(uint160|uint248|uint240|uint232|uint224|uint216|uint208|uint200|uint192|uint184|uint176|uint168|uint104|uint112|uint120|uint128|uint136|uint144|uint152|uint256|uint96|uint88|uint80|uint72|uint64|uint56|uint48|uint40|uint32|uint24|uint16|uint8)\b">
-        <token type="KeywordType"/>
-      </rule>
-      <rule pattern="(bytes23|bytes31|bytes30|bytes29|bytes28|bytes27|bytes26|bytes25|bytes24|bytes10|bytes11|bytes12|bytes13|bytes14|bytes15|bytes16|bytes17|bytes18|bytes19|bytes20|bytes21|bytes22|bytes32|bytes9|bytes8|bytes7|bytes6|bytes5|bytes4|bytes3|bytes2|bytes1)\b">
-        <token type="KeywordType"/>
-      </rule>
-      <rule pattern="(fixed104x17|fixed240x16|fixed240x15|fixed240x14|fixed240x13|fixed240x12|fixed240x11|fixed240x10|fixed232x24|fixed232x23|fixed232x22|fixed232x21|fixed232x20|fixed232x19|fixed232x18|fixed232x17|fixed232x16|fixed232x15|fixed232x14|fixed232x13|fixed232x12|fixed232x11|fixed232x10|fixed224x32|fixed224x31|fixed224x30|fixed224x29|fixed224x28|fixed224x27|fixed224x26|fixed224x25|fixed224x24|fixed224x23|fixed224x22|fixed224x21|fixed224x20|fixed224x19|fixed224x18|fixed224x17|fixed224x16|fixed224x15|fixed224x14|fixed224x13|fixed224x12|fixed224x11|fixed224x10|fixed216x40|fixed216x39|fixed216x38|fixed216x37|fixed216x36|fixed216x35|fixed216x34|fixed216x33|fixed216x32|fixed216x31|fixed216x30|fixed216x29|fixed216x28|fixed216x27|fixed216x26|fixed216x25|fixed216x24|fixed216x23|fixed216x22|fixed216x21|fixed216x20|fixed216x19|fixed216x18|fixed216x17|fixed216x16|fixed216x15|fixed216x14|fixed216x13|fixed216x12|fixed216x11|fixed216x10|fixed208x48|fixed208x47|fixed208x46|fixed208x45|fixed208x44|fixed208x43|fixed208x42|fixed208x41|fixed208x40|fixed208x39|fixed208x38|fixed208x37|fixed208x36|fixed208x35|fixed208x34|fixed208x33|fixed208x32|fixed208x31|fixed208x30|fixed208x29|fixed208x28|fixed208x27|fixed208x26|fixed208x25|fixed208x24|fixed208x23|fixed208x22|fixed208x21|fixed208x20|fixed208x19|fixed208x18|fixed208x17|fixed208x16|fixed208x15|fixed208x14|fixed208x13|fixed208x12|fixed208x11|fixed208x10|fixed200x56|fixed200x55|fixed200x54|fixed200x53|fixed200x52|fixed200x51|fixed200x50|fixed200x49|fixed200x48|fixed200x47|fixed200x46|fixed200x45|fixed200x44|fixed200x43|fixed200x42|fixed200x41|fixed200x40|fixed200x39|fixed200x38|fixed200x37|fixed200x36|fixed200x35|fixed200x34|fixed200x33|fixed200x32|fixed200x31|fixed200x30|fixed200x29|fixed200x28|fixed200x27|fixed200x26|fixed200x25|fixed200x24|fixed200x23|fixed200x22|fixed200x21|fixed200x20|fixed200x19|fixed200x18|fixed200x17|fixed200x16|fixed200x15|fixed200x14|fixed200x13|fixed200x12|fixed200x11|fixed200x10|fixed192x64|fixed192x63|fixed192x62|fixed192x61|fixed192x60|fixed192x59|fixed192x58|fixed192x57|fixed192x56|fixed192x55|fixed192x54|fixed192x53|fixed192x52|fixed192x51|fixed192x50|fixed192x49|fixed192x48|fixed192x47|fixed192x46|fixed192x45|fixed192x44|fixed192x43|fixed192x42|fixed192x41|fixed192x40|fixed192x39|fixed192x38|fixed192x37|fixed192x36|fixed192x35|fixed192x34|fixed192x33|fixed192x32|fixed192x31|fixed192x30|fixed192x29|fixed192x28|fixed192x27|fixed192x26|fixed192x25|fixed192x24|fixed192x23|fixed192x22|fixed192x21|fixed192x20|fixed192x19|fixed192x18|fixed192x17|fixed192x16|fixed192x15|fixed192x14|fixed192x13|fixed192x12|fixed192x11|fixed192x10|fixed184x72|fixed184x71|fixed184x70|fixed184x69|fixed184x68|fixed184x67|fixed184x66|fixed184x65|fixed184x64|fixed184x63|fixed184x62|fixed184x61|fixed184x60|fixed184x59|fixed184x58|fixed184x57|fixed184x56|fixed184x55|fixed184x54|fixed184x53|fixed184x52|fixed184x51|fixed184x50|fixed184x49|fixed184x48|fixed184x47|fixed184x46|fixed184x45|fixed184x44|fixed184x43|fixed184x42|fixed184x41|fixed184x40|fixed184x39|fixed184x38|fixed184x37|fixed184x36|fixed184x35|fixed184x34|fixed184x33|fixed184x32|fixed184x31|fixed184x30|fixed184x29|fixed184x28|fixed184x27|fixed184x26|fixed184x25|fixed184x24|fixed184x23|fixed184x22|fixed184x21|fixed184x20|fixed184x19|fixed184x18|fixed184x17|fixed184x16|fixed184x15|fixed184x14|fixed184x13|fixed184x12|fixed184x11|fixed184x10|fixed176x80|fixed176x79|fixed176x78|fixed176x77|fixed176x76|fixed176x75|fixed176x74|fixed176x73|fixed176x72|fixed176x71|fixed176x70|fixed176x69|fixed176x68|fixed176x67|fixed176x66|fixed176x65|fixed176x64|fixed176x63|fixed176x62|fixed176x61|fixed176x60|fixed176x59|fixed176x58|fixed176x57|fixed176x56|fixed176x55|fixed176x54|fixed176x53|fixed176x52|fixed176x51|fixed176x50|fixed176x49|fixed176x48|fixed176x47|fixed176x46|fixed176x45|fixed176x44|fixed176x43|fixed176x42|fixed176x41|fixed176x40|fixed176x39|fixed176x38|fixed176x37|fixed176x36|fixed176x35|fixed176x34|fixed176x33|fixed176x32|fixed176x31|fixed176x30|fixed176x29|fixed176x28|fixed176x27|fixed176x26|fixed176x25|fixed176x24|fixed176x23|fixed176x22|fixed176x21|fixed176x20|fixed176x19|fixed176x18|fixed176x17|fixed176x16|fixed176x15|fixed176x14|fixed176x13|fixed176x12|fixed176x11|fixed176x10|fixed168x80|fixed168x79|fixed168x78|fixed168x77|fixed168x76|fixed168x75|fixed168x74|fixed168x73|fixed168x72|fixed168x71|fixed168x70|fixed168x69|fixed168x68|fixed168x67|fixed168x66|fixed168x65|fixed168x64|fixed168x63|fixed168x62|fixed168x61|fixed168x60|fixed168x59|fixed168x58|fixed168x57|fixed168x56|fixed168x55|fixed168x54|fixed168x53|fixed168x52|fixed168x51|fixed168x50|fixed168x49|fixed168x48|fixed168x47|fixed168x46|fixed168x45|fixed168x44|fixed168x43|fixed168x42|fixed168x41|fixed168x40|fixed168x39|fixed168x38|fixed168x37|fixed168x36|fixed168x35|fixed168x34|fixed168x33|fixed168x32|fixed168x31|fixed168x30|fixed168x29|fixed168x28|fixed168x27|fixed168x26|fixed168x25|fixed168x24|fixed168x23|fixed168x22|fixed168x21|fixed168x20|fixed168x19|fixed168x18|fixed168x17|fixed168x16|fixed168x15|fixed168x14|fixed168x13|fixed168x12|fixed168x11|fixed168x10|fixed160x80|fixed160x79|fixed160x78|fixed160x77|fixed160x76|fixed160x75|fixed160x73|fixed160x72|fixed160x71|fixed160x70|fixed160x69|fixed160x68|fixed160x67|fixed160x66|fixed160x65|fixed160x64|fixed160x63|fixed160x62|fixed160x61|fixed160x60|fixed160x59|fixed160x58|fixed160x57|fixed160x56|fixed160x55|fixed160x54|fixed160x53|fixed160x52|fixed160x51|fixed160x50|fixed160x49|fixed160x48|fixed160x47|fixed160x46|fixed160x45|fixed160x44|fixed160x43|fixed160x42|fixed160x41|fixed160x40|fixed160x39|fixed160x38|fixed160x37|fixed160x36|fixed160x35|fixed160x34|fixed160x33|fixed160x32|fixed160x31|fixed160x30|fixed160x29|fixed160x28|fixed160x27|fixed160x26|fixed160x25|fixed160x24|fixed160x23|fixed160x22|fixed160x21|fixed160x20|fixed160x19|fixed160x18|fixed160x17|fixed160x16|fixed160x15|fixed160x14|fixed160x13|fixed160x12|fixed160x11|fixed160x10|fixed152x80|fixed152x79|fixed152x78|fixed152x77|fixed152x76|fixed152x75|fixed152x74|fixed152x73|fixed152x72|fixed152x71|fixed152x70|fixed152x69|fixed152x68|fixed152x67|fixed152x66|fixed152x65|fixed152x64|fixed152x63|fixed152x62|fixed152x61|fixed152x60|fixed152x59|fixed152x58|fixed152x57|fixed152x56|fixed152x55|fixed152x54|fixed152x53|fixed152x52|fixed152x51|fixed152x50|fixed152x49|fixed152x48|fixed152x47|fixed152x46|fixed152x45|fixed152x44|fixed152x43|fixed152x42|fixed152x41|fixed152x40|fixed152x39|fixed152x38|fixed152x37|fixed152x36|fixed152x35|fixed152x34|fixed152x33|fixed152x32|fixed152x31|fixed152x30|fixed152x29|fixed152x28|fixed152x27|fixed152x26|fixed152x25|fixed152x24|fixed152x23|fixed152x22|fixed152x21|fixed152x20|fixed152x19|fixed152x18|fixed152x17|fixed152x16|fixed152x15|fixed152x14|fixed152x13|fixed152x12|fixed152x11|fixed152x10|fixed144x80|fixed144x79|fixed144x78|fixed144x77|fixed144x76|fixed144x75|fixed144x74|fixed144x73|fixed144x72|fixed144x71|fixed144x70|fixed144x69|fixed144x68|fixed144x67|fixed144x66|fixed144x65|fixed144x64|fixed144x63|fixed144x62|fixed144x61|fixed144x60|fixed144x59|fixed144x58|fixed144x57|fixed144x56|fixed144x55|fixed144x54|fixed144x53|fixed144x52|fixed144x51|fixed144x50|fixed144x49|fixed144x48|fixed144x47|fixed144x46|fixed144x45|fixed144x44|fixed144x43|fixed144x42|fixed144x41|fixed144x40|fixed144x39|fixed144x38|fixed144x37|fixed144x36|fixed144x35|fixed144x34|fixed144x33|fixed144x32|fixed144x31|fixed144x30|fixed144x29|fixed144x28|fixed144x27|fixed144x26|fixed144x25|fixed144x24|fixed144x23|fixed144x22|fixed144x21|fixed144x20|fixed144x19|fixed144x18|fixed144x17|fixed144x16|fixed144x15|fixed144x14|fixed144x13|fixed144x12|fixed144x11|fixed144x10|fixed136x80|fixed136x79|fixed136x78|fixed136x77|fixed136x76|fixed136x75|fixed136x74|fixed136x73|fixed136x72|fixed136x71|fixed136x70|fixed136x69|fixed136x68|fixed136x67|fixed136x66|fixed136x65|fixed136x64|fixed136x63|fixed136x62|fixed136x61|fixed136x60|fixed136x59|fixed136x58|fixed136x57|fixed136x56|fixed136x55|fixed136x54|fixed136x53|fixed136x52|fixed136x51|fixed136x50|fixed136x48|fixed136x47|fixed136x46|fixed136x45|fixed136x44|fixed136x43|fixed136x42|fixed136x41|fixed136x40|fixed136x39|fixed136x38|fixed136x37|fixed136x36|fixed136x35|fixed136x34|fixed136x33|fixed136x32|fixed136x31|fixed136x30|fixed136x29|fixed136x28|fixed136x27|fixed136x26|fixed136x25|fixed136x24|fixed136x23|fixed136x22|fixed136x21|fixed136x20|fixed136x19|fixed136x18|fixed136x17|fixed136x16|fixed136x15|fixed136x14|fixed136x13|fixed136x12|fixed136x11|fixed136x10|fixed128x80|fixed128x79|fixed128x78|fixed128x77|fixed128x76|fixed128x75|fixed128x74|fixed128x73|fixed128x72|fixed128x71|fixed128x70|fixed128x69|fixed128x68|fixed128x67|fixed128x66|fixed128x65|fixed128x64|fixed128x63|fixed128x62|fixed128x61|fixed128x60|fixed128x59|fixed128x58|fixed128x57|fixed128x56|fixed128x55|fixed128x54|fixed128x53|fixed128x52|fixed128x51|fixed128x50|fixed128x49|fixed128x48|fixed128x47|fixed128x46|fixed128x45|fixed128x44|fixed128x43|fixed128x42|fixed128x41|fixed128x40|fixed128x39|fixed128x38|fixed128x37|fixed128x36|fixed128x35|fixed128x34|fixed128x33|fixed128x32|fixed128x31|fixed128x30|fixed128x29|fixed128x28|fixed128x27|fixed128x26|fixed128x25|fixed128x24|fixed128x23|fixed128x22|fixed128x21|fixed128x20|fixed128x19|fixed128x18|fixed128x17|fixed128x16|fixed128x15|fixed128x14|fixed128x13|fixed128x12|fixed128x11|fixed128x10|fixed120x80|fixed120x79|fixed120x78|fixed120x77|fixed120x76|fixed120x75|fixed120x74|fixed120x73|fixed120x72|fixed120x71|fixed120x70|fixed120x69|fixed120x68|fixed120x67|fixed120x66|fixed120x65|fixed120x64|fixed120x63|fixed120x62|fixed120x61|fixed120x60|fixed120x59|fixed120x58|fixed120x57|fixed120x56|fixed120x55|fixed120x54|fixed120x53|fixed120x52|fixed120x51|fixed120x50|fixed112x23|fixed120x49|fixed120x48|fixed120x47|fixed120x46|fixed120x45|fixed120x44|fixed120x43|fixed120x42|fixed120x41|fixed120x40|fixed120x39|fixed120x38|fixed120x37|fixed120x36|fixed120x35|fixed120x34|fixed120x33|fixed120x32|fixed120x31|fixed120x30|fixed120x29|fixed120x28|fixed120x27|fixed120x26|fixed120x25|fixed120x24|fixed120x23|fixed120x22|fixed120x21|fixed120x20|fixed120x19|fixed120x18|fixed120x17|fixed120x16|fixed120x15|fixed120x14|fixed120x13|fixed120x12|fixed120x11|fixed120x10|fixed112x80|fixed112x79|fixed112x78|fixed112x77|fixed112x76|fixed112x75|fixed112x74|fixed112x73|fixed112x72|fixed112x71|fixed112x70|fixed112x69|fixed112x68|fixed112x67|fixed112x66|fixed112x65|fixed112x64|fixed112x63|fixed112x62|fixed112x61|fixed112x60|fixed112x59|fixed112x58|fixed112x57|fixed112x56|fixed112x55|fixed112x54|fixed112x53|fixed112x52|fixed112x51|fixed112x50|fixed112x49|fixed112x48|fixed112x47|fixed112x46|fixed112x45|fixed112x44|fixed112x43|fixed112x42|fixed112x41|fixed112x40|fixed112x39|fixed112x38|fixed112x37|fixed112x36|fixed112x35|fixed112x34|fixed112x33|fixed112x32|fixed112x31|fixed112x30|fixed112x29|fixed112x28|fixed112x27|fixed112x26|fixed112x25|fixed112x24|fixed136x49|fixed112x22|fixed112x21|fixed112x20|fixed112x19|fixed112x18|fixed112x17|fixed112x16|fixed112x15|fixed112x14|fixed112x13|fixed112x12|fixed112x11|fixed112x10|fixed104x80|fixed104x79|fixed104x78|fixed104x77|fixed104x76|fixed104x75|fixed104x74|fixed104x73|fixed104x72|fixed104x71|fixed104x70|fixed104x69|fixed104x68|fixed104x67|fixed104x66|fixed104x65|fixed104x64|fixed104x63|fixed104x62|fixed104x61|fixed104x60|fixed104x59|fixed104x58|fixed104x57|fixed104x56|fixed104x55|fixed104x54|fixed104x53|fixed104x52|fixed104x51|fixed104x50|fixed104x49|fixed104x48|fixed104x47|fixed104x46|fixed104x45|fixed104x44|fixed104x43|fixed104x42|fixed104x41|fixed104x40|fixed104x39|fixed104x38|fixed104x37|fixed104x36|fixed104x35|fixed104x34|fixed104x33|fixed104x32|fixed104x31|fixed104x30|fixed104x29|fixed104x28|fixed104x27|fixed104x26|fixed104x25|fixed104x24|fixed104x23|fixed104x22|fixed104x21|fixed104x20|fixed104x19|fixed104x18|fixed104x10|fixed104x11|fixed104x12|fixed104x13|fixed104x14|fixed104x15|fixed104x16|fixed160x74|fixed104x9|fixed104x8|fixed104x7|fixed104x6|fixed104x5|fixed104x4|fixed104x3|fixed104x2|fixed104x1|fixed104x0|fixed96x80|fixed96x79|fixed96x78|fixed96x77|fixed96x76|fixed96x75|fixed96x74|fixed96x73|fixed96x72|fixed96x71|fixed96x70|fixed96x69|fixed96x68|fixed96x67|fixed96x66|fixed96x65|fixed96x64|fixed96x63|fixed96x62|fixed96x61|fixed96x60|fixed96x59|fixed96x58|fixed96x57|fixed96x56|fixed96x55|fixed96x54|fixed96x53|fixed96x52|fixed96x51|fixed96x50|fixed96x49|fixed96x48|fixed96x47|fixed96x46|fixed96x45|fixed96x44|fixed96x43|fixed96x42|fixed96x41|fixed96x40|fixed96x39|fixed96x38|fixed96x37|fixed96x36|fixed96x35|fixed96x34|fixed96x33|fixed96x32|fixed96x31|fixed96x30|fixed96x29|fixed96x28|fixed112x0|fixed112x1|fixed112x2|fixed112x3|fixed112x4|fixed112x5|fixed112x6|fixed112x7|fixed112x8|fixed112x9|fixed96x27|fixed96x26|fixed96x25|fixed96x24|fixed96x23|fixed96x22|fixed96x21|fixed96x20|fixed96x19|fixed96x18|fixed96x17|fixed96x16|fixed96x15|fixed96x14|fixed96x13|fixed96x12|fixed96x11|fixed96x10|fixed248x8|fixed248x7|fixed248x6|fixed248x5|fixed248x4|fixed248x3|fixed248x2|fixed248x1|fixed248x0|fixed240x9|fixed88x80|fixed88x79|fixed88x78|fixed88x77|fixed88x76|fixed88x75|fixed88x74|fixed88x73|fixed88x72|fixed88x71|fixed88x70|fixed88x69|fixed88x68|fixed88x67|fixed88x66|fixed88x65|fixed88x64|fixed88x63|fixed88x62|fixed88x61|fixed88x60|fixed88x59|fixed88x58|fixed88x57|fixed88x56|fixed88x55|fixed88x54|fixed88x53|fixed88x52|fixed88x51|fixed88x50|fixed88x49|fixed88x48|fixed88x47|fixed88x46|fixed88x45|fixed88x44|fixed88x43|fixed88x42|fixed88x41|fixed88x40|fixed88x39|fixed88x38|fixed120x0|fixed120x1|fixed120x2|fixed120x3|fixed120x4|fixed120x5|fixed120x6|fixed120x7|fixed120x8|fixed120x9|fixed88x37|fixed88x36|fixed88x35|fixed88x34|fixed88x33|fixed88x32|fixed88x31|fixed88x30|fixed88x29|fixed88x28|fixed88x27|fixed88x26|fixed88x25|fixed88x24|fixed88x23|fixed88x22|fixed88x21|fixed88x20|fixed88x19|fixed88x18|fixed88x17|fixed88x16|fixed88x15|fixed88x14|fixed88x13|fixed88x12|fixed88x11|fixed88x10|fixed240x8|fixed240x7|fixed240x6|fixed240x5|fixed240x4|fixed240x3|fixed240x2|fixed240x1|fixed240x0|fixed232x9|fixed80x80|fixed80x79|fixed80x77|fixed80x76|fixed80x75|fixed80x74|fixed80x73|fixed80x72|fixed80x71|fixed80x70|fixed80x69|fixed80x68|fixed80x67|fixed80x66|fixed80x65|fixed80x64|fixed80x63|fixed80x62|fixed80x61|fixed80x60|fixed80x59|fixed80x58|fixed80x57|fixed80x56|fixed80x55|fixed80x54|fixed80x53|fixed80x52|fixed80x51|fixed80x50|fixed80x49|fixed80x48|fixed80x47|fixed128x0|fixed128x1|fixed128x2|fixed128x3|fixed128x4|fixed128x5|fixed128x6|fixed128x7|fixed128x8|fixed128x9|fixed80x46|fixed80x45|fixed80x44|fixed80x43|fixed80x42|fixed80x41|fixed80x40|fixed80x39|fixed80x38|fixed80x37|fixed80x36|fixed80x35|fixed80x34|fixed80x33|fixed80x32|fixed80x31|fixed80x30|fixed80x29|fixed80x28|fixed80x27|fixed80x26|fixed80x25|fixed80x24|fixed80x23|fixed80x22|fixed80x21|fixed80x20|fixed80x19|fixed80x18|fixed80x17|fixed80x16|fixed80x15|fixed80x14|fixed80x13|fixed80x12|fixed80x11|fixed80x10|fixed232x8|fixed232x7|fixed232x6|fixed232x5|fixed232x4|fixed232x3|fixed232x2|fixed232x1|fixed232x0|fixed224x9|fixed72x80|fixed72x79|fixed72x78|fixed72x77|fixed72x76|fixed72x75|fixed72x74|fixed72x73|fixed72x72|fixed72x71|fixed72x70|fixed72x69|fixed72x68|fixed72x67|fixed72x66|fixed72x65|fixed72x64|fixed72x63|fixed72x62|fixed72x61|fixed72x60|fixed72x59|fixed72x58|fixed72x57|fixed136x0|fixed136x1|fixed136x2|fixed136x3|fixed136x4|fixed136x5|fixed136x6|fixed136x7|fixed136x8|fixed136x9|fixed72x56|fixed72x55|fixed72x54|fixed72x53|fixed72x52|fixed72x51|fixed72x50|fixed72x49|fixed72x48|fixed72x47|fixed72x46|fixed72x45|fixed72x44|fixed72x43|fixed72x42|fixed72x41|fixed72x40|fixed72x39|fixed72x38|fixed72x37|fixed72x36|fixed72x35|fixed72x34|fixed72x33|fixed72x32|fixed72x31|fixed72x30|fixed72x29|fixed72x28|fixed72x27|fixed72x26|fixed72x25|fixed72x24|fixed72x23|fixed72x22|fixed72x21|fixed72x20|fixed72x19|fixed72x18|fixed80x78|fixed72x17|fixed72x16|fixed72x15|fixed72x14|fixed72x13|fixed72x12|fixed72x11|fixed72x10|fixed224x8|fixed224x7|fixed224x6|fixed224x5|fixed224x4|fixed224x3|fixed224x2|fixed224x1|fixed224x0|fixed216x9|fixed64x80|fixed64x79|fixed64x78|fixed64x77|fixed64x76|fixed64x75|fixed64x74|fixed64x73|fixed64x72|fixed64x71|fixed64x70|fixed64x69|fixed64x68|fixed144x0|fixed144x1|fixed144x2|fixed144x3|fixed144x4|fixed144x5|fixed144x6|fixed144x7|fixed144x8|fixed144x9|fixed64x67|fixed64x66|fixed64x65|fixed64x64|fixed64x63|fixed64x62|fixed64x61|fixed64x60|fixed64x59|fixed64x58|fixed64x57|fixed64x56|fixed64x55|fixed64x54|fixed64x53|fixed64x52|fixed64x51|fixed64x50|fixed64x49|fixed64x48|fixed64x47|fixed64x46|fixed64x45|fixed64x44|fixed64x43|fixed64x42|fixed64x41|fixed64x40|fixed64x39|fixed64x38|fixed64x37|fixed64x36|fixed64x35|fixed64x34|fixed64x33|fixed64x32|fixed64x31|fixed64x30|fixed64x29|fixed64x28|fixed64x27|fixed64x26|fixed64x25|fixed64x24|fixed64x23|fixed64x22|fixed64x21|fixed64x20|fixed64x19|fixed64x18|fixed64x17|fixed64x16|fixed64x15|fixed64x14|fixed64x13|fixed64x12|fixed64x11|fixed64x10|fixed216x8|fixed216x7|fixed216x6|fixed216x5|fixed216x4|fixed216x3|fixed216x2|fixed216x1|fixed216x0|fixed16x10|fixed56x80|fixed56x79|fixed56x78|fixed152x0|fixed152x1|fixed152x2|fixed152x3|fixed152x4|fixed152x5|fixed152x6|fixed152x7|fixed152x8|fixed152x9|fixed56x77|fixed56x76|fixed56x75|fixed56x74|fixed56x73|fixed56x72|fixed56x71|fixed56x70|fixed56x69|fixed56x68|fixed56x67|fixed56x66|fixed56x65|fixed56x64|fixed56x63|fixed56x62|fixed56x61|fixed56x60|fixed56x59|fixed56x58|fixed56x57|fixed56x56|fixed56x55|fixed56x54|fixed56x53|fixed16x11|fixed56x51|fixed56x50|fixed56x49|fixed56x48|fixed56x47|fixed56x46|fixed56x45|fixed56x44|fixed56x43|fixed56x42|fixed56x41|fixed56x40|fixed56x39|fixed56x38|fixed56x37|fixed56x36|fixed56x35|fixed56x34|fixed56x33|fixed56x32|fixed56x31|fixed56x30|fixed56x29|fixed56x28|fixed56x27|fixed56x26|fixed56x25|fixed56x24|fixed56x23|fixed56x22|fixed56x21|fixed56x20|fixed56x19|fixed56x18|fixed56x17|fixed56x16|fixed56x15|fixed56x14|fixed56x13|fixed56x12|fixed56x11|fixed56x10|fixed16x12|fixed16x13|fixed16x14|fixed160x0|fixed160x1|fixed160x2|fixed160x3|fixed160x4|fixed160x5|fixed160x6|fixed160x7|fixed160x8|fixed160x9|fixed16x15|fixed16x16|fixed16x17|fixed16x18|fixed16x19|fixed16x20|fixed16x21|fixed48x80|fixed48x79|fixed48x78|fixed48x77|fixed48x76|fixed48x75|fixed48x74|fixed48x73|fixed48x72|fixed48x71|fixed48x70|fixed48x69|fixed48x68|fixed48x67|fixed48x66|fixed16x53|fixed48x64|fixed48x63|fixed48x62|fixed48x61|fixed48x60|fixed48x59|fixed48x58|fixed48x57|fixed48x56|fixed48x55|fixed48x54|fixed48x53|fixed48x52|fixed48x51|fixed48x50|fixed48x49|fixed48x48|fixed48x47|fixed48x46|fixed48x45|fixed48x44|fixed48x43|fixed48x42|fixed48x41|fixed48x40|fixed48x39|fixed48x38|fixed48x37|fixed48x36|fixed48x35|fixed48x34|fixed48x33|fixed48x32|fixed48x31|fixed48x30|fixed48x29|fixed48x28|fixed48x27|fixed48x26|fixed48x25|fixed48x24|fixed256x0|fixed48x23|fixed48x22|fixed48x21|fixed48x20|fixed48x19|fixed48x18|fixed168x0|fixed168x1|fixed168x2|fixed168x3|fixed168x4|fixed168x5|fixed168x6|fixed168x7|fixed168x8|fixed168x9|fixed48x17|fixed48x16|fixed48x15|fixed48x14|fixed48x13|fixed48x12|fixed48x11|fixed48x10|fixed16x22|fixed16x23|fixed16x24|fixed16x25|fixed16x26|fixed16x27|fixed16x28|fixed16x29|fixed16x30|fixed16x31|fixed40x80|fixed40x79|fixed40x78|fixed40x77|fixed40x76|fixed40x75|fixed40x74|fixed40x73|fixed40x72|fixed40x71|fixed40x70|fixed40x69|fixed40x68|fixed40x67|fixed40x66|fixed40x65|fixed40x64|fixed40x63|fixed40x62|fixed40x61|fixed40x60|fixed40x59|fixed40x58|fixed40x57|fixed40x56|fixed40x55|fixed40x54|fixed40x53|fixed40x52|fixed40x51|fixed40x50|fixed40x49|fixed40x48|fixed40x47|fixed40x46|fixed40x45|fixed40x44|fixed40x43|fixed40x42|fixed40x41|fixed40x40|fixed40x39|fixed40x38|fixed40x37|fixed40x36|fixed40x35|fixed40x34|fixed40x33|fixed40x32|fixed40x31|fixed40x30|fixed40x29|fixed40x28|fixed176x0|fixed176x1|fixed176x2|fixed176x3|fixed176x4|fixed176x5|fixed176x6|fixed176x7|fixed176x8|fixed176x9|fixed40x27|fixed40x26|fixed40x25|fixed40x24|fixed40x23|fixed40x22|fixed40x21|fixed40x20|fixed40x19|fixed40x18|fixed40x17|fixed40x16|fixed40x15|fixed40x14|fixed40x13|fixed40x12|fixed40x11|fixed40x10|fixed16x32|fixed16x33|fixed16x34|fixed208x9|fixed208x8|fixed208x7|fixed208x6|fixed208x5|fixed208x4|fixed208x3|fixed32x80|fixed32x79|fixed32x78|fixed32x77|fixed32x76|fixed32x75|fixed32x74|fixed32x73|fixed32x72|fixed32x71|fixed32x70|fixed32x69|fixed32x68|fixed32x67|fixed32x66|fixed32x65|fixed32x64|fixed32x63|fixed32x62|fixed32x61|fixed32x60|fixed32x59|fixed32x58|fixed32x57|fixed32x56|fixed32x55|fixed32x54|fixed32x53|fixed32x52|fixed32x51|fixed32x50|fixed32x49|fixed32x48|fixed32x47|fixed32x46|fixed32x45|fixed32x44|fixed32x43|fixed32x42|fixed32x41|fixed32x40|fixed32x39|fixed32x38|fixed184x0|fixed184x1|fixed184x2|fixed184x3|fixed184x4|fixed184x5|fixed184x6|fixed184x7|fixed184x8|fixed184x9|fixed32x37|fixed32x36|fixed32x35|fixed32x34|fixed32x33|fixed32x32|fixed32x31|fixed32x30|fixed32x29|fixed32x28|fixed32x27|fixed32x26|fixed32x25|fixed32x24|fixed32x23|fixed32x22|fixed32x21|fixed32x20|fixed32x19|fixed32x18|fixed32x17|fixed32x16|fixed32x15|fixed32x14|fixed32x13|fixed32x12|fixed32x11|fixed32x10|fixed208x2|fixed208x1|fixed208x0|fixed16x35|fixed16x36|fixed16x37|fixed16x38|fixed16x39|fixed16x40|fixed16x41|fixed24x80|fixed24x79|fixed24x78|fixed24x77|fixed24x76|fixed24x75|fixed24x74|fixed24x73|fixed24x72|fixed24x71|fixed24x70|fixed24x69|fixed24x68|fixed24x67|fixed24x66|fixed24x65|fixed24x64|fixed24x63|fixed24x62|fixed24x61|fixed24x60|fixed24x59|fixed24x58|fixed24x57|fixed24x56|fixed192x0|fixed192x1|fixed192x2|fixed192x3|fixed192x4|fixed192x5|fixed192x6|fixed192x7|fixed192x8|fixed192x9|fixed24x55|fixed24x54|fixed24x53|fixed24x52|fixed24x51|fixed24x50|fixed24x49|fixed24x48|fixed24x47|fixed24x46|fixed24x45|fixed24x44|fixed24x43|fixed24x42|fixed24x41|fixed24x40|fixed24x39|fixed24x38|fixed24x37|fixed24x36|fixed24x35|fixed24x34|fixed24x33|fixed24x32|fixed24x31|fixed24x30|fixed24x29|fixed24x28|fixed24x27|fixed24x26|fixed24x25|fixed24x24|fixed24x23|fixed24x22|fixed24x21|fixed24x20|fixed24x19|fixed24x18|fixed24x17|fixed24x16|fixed24x15|fixed24x14|fixed24x13|fixed24x12|fixed24x11|fixed24x10|fixed16x42|fixed16x43|fixed16x44|fixed16x45|fixed16x46|fixed16x47|fixed16x48|fixed16x49|fixed16x50|fixed200x0|fixed200x1|fixed200x2|fixed200x3|fixed200x4|fixed200x5|fixed200x6|fixed200x7|fixed200x8|fixed200x9|fixed16x51|fixed16x80|fixed16x79|fixed16x78|fixed16x77|fixed16x76|fixed16x75|fixed16x74|fixed16x73|fixed16x72|fixed16x71|fixed16x70|fixed16x69|fixed16x68|fixed16x67|fixed16x66|fixed16x65|fixed16x64|fixed16x63|fixed16x62|fixed16x61|fixed16x60|fixed16x59|fixed16x58|fixed16x57|fixed16x56|fixed16x55|fixed16x54|fixed48x65|fixed16x52|fixed56x52|fixed24x1|fixed24x2|fixed24x3|fixed24x4|fixed24x5|fixed24x6|fixed24x7|fixed24x8|fixed24x9|fixed32x0|fixed32x1|fixed32x2|fixed32x3|fixed32x4|fixed32x5|fixed32x6|fixed32x7|fixed32x8|fixed32x9|fixed40x0|fixed40x1|fixed40x2|fixed40x3|fixed40x4|fixed40x5|fixed40x6|fixed40x7|fixed40x8|fixed40x9|fixed48x0|fixed48x1|fixed48x2|fixed48x3|fixed48x4|fixed48x5|fixed48x6|fixed48x7|fixed48x8|fixed48x9|fixed56x0|fixed56x1|fixed56x2|fixed56x3|fixed56x4|fixed56x5|fixed56x6|fixed56x7|fixed56x8|fixed56x9|fixed96x9|fixed64x0|fixed16x9|fixed16x8|fixed16x7|fixed16x6|fixed16x5|fixed16x4|fixed16x3|fixed16x2|fixed16x1|fixed16x0|fixed8x80|fixed8x79|fixed8x78|fixed8x77|fixed64x1|fixed64x2|fixed64x3|fixed64x4|fixed64x5|fixed64x6|fixed64x7|fixed64x8|fixed64x9|fixed72x0|fixed8x76|fixed8x75|fixed8x74|fixed8x73|fixed8x72|fixed8x71|fixed8x70|fixed8x69|fixed8x68|fixed8x67|fixed8x66|fixed8x65|fixed8x64|fixed8x63|fixed8x62|fixed8x61|fixed8x60|fixed8x59|fixed8x58|fixed8x57|fixed96x2|fixed8x55|fixed8x54|fixed8x53|fixed8x52|fixed8x51|fixed8x50|fixed8x49|fixed8x48|fixed8x47|fixed8x46|fixed72x1|fixed72x2|fixed72x3|fixed72x4|fixed72x5|fixed72x6|fixed72x7|fixed72x8|fixed72x9|fixed80x0|fixed8x45|fixed8x44|fixed8x43|fixed8x42|fixed8x41|fixed8x40|fixed8x39|fixed8x38|fixed8x37|fixed8x36|fixed8x35|fixed8x34|fixed8x33|fixed8x32|fixed8x31|fixed8x30|fixed8x29|fixed8x28|fixed8x27|fixed8x26|fixed8x25|fixed8x24|fixed8x23|fixed80x1|fixed80x2|fixed80x3|fixed80x4|fixed80x5|fixed80x6|fixed80x7|fixed80x8|fixed80x9|fixed88x0|fixed8x22|fixed8x21|fixed8x20|fixed8x19|fixed8x18|fixed8x17|fixed8x16|fixed8x15|fixed8x14|fixed8x13|fixed8x12|fixed8x11|fixed8x10|fixed96x8|fixed96x7|fixed88x1|fixed88x2|fixed88x3|fixed88x4|fixed88x5|fixed88x6|fixed88x7|fixed88x8|fixed88x9|fixed96x0|fixed96x6|fixed96x5|fixed96x4|fixed96x3|fixed8x56|fixed96x1|fixed24x0|fixed8x2|fixed8x3|fixed8x4|fixed8x5|fixed8x6|fixed8x7|fixed8x8|fixed8x9|fixed8x0|fixed8x1)\b">
-        <token type="KeywordType"/>
-      </rule>
-      <rule pattern="(ufixed104x17|ufixed240x16|ufixed240x15|ufixed240x14|ufixed240x13|ufixed240x12|ufixed240x11|ufixed240x10|ufixed232x24|ufixed232x23|ufixed232x22|ufixed232x21|ufixed232x20|ufixed232x19|ufixed232x18|ufixed232x17|ufixed232x16|ufixed232x15|ufixed232x14|ufixed232x13|ufixed232x12|ufixed232x11|ufixed232x10|ufixed224x32|ufixed224x31|ufixed224x30|ufixed224x29|ufixed224x28|ufixed224x27|ufixed224x26|ufixed224x25|ufixed224x24|ufixed224x23|ufixed224x22|ufixed224x21|ufixed224x20|ufixed224x19|ufixed224x18|ufixed224x17|ufixed224x16|ufixed224x15|ufixed224x14|ufixed224x13|ufixed224x12|ufixed224x11|ufixed224x10|ufixed216x40|ufixed216x39|ufixed216x38|ufixed216x37|ufixed216x36|ufixed216x35|ufixed216x34|ufixed216x33|ufixed216x32|ufixed216x31|ufixed216x30|ufixed216x29|ufixed216x28|ufixed216x27|ufixed216x26|ufixed216x25|ufixed216x24|ufixed216x23|ufixed216x22|ufixed216x21|ufixed216x20|ufixed216x19|ufixed216x18|ufixed216x17|ufixed216x16|ufixed216x15|ufixed216x14|ufixed216x13|ufixed216x12|ufixed216x11|ufixed216x10|ufixed208x48|ufixed208x47|ufixed208x46|ufixed208x45|ufixed208x44|ufixed208x43|ufixed208x42|ufixed208x41|ufixed208x40|ufixed208x39|ufixed208x38|ufixed208x37|ufixed208x36|ufixed208x35|ufixed208x34|ufixed208x33|ufixed208x32|ufixed208x31|ufixed208x30|ufixed208x29|ufixed208x28|ufixed208x27|ufixed208x26|ufixed208x25|ufixed208x24|ufixed208x23|ufixed208x22|ufixed208x21|ufixed208x20|ufixed208x19|ufixed208x18|ufixed208x17|ufixed208x16|ufixed208x15|ufixed208x14|ufixed208x13|ufixed208x12|ufixed208x11|ufixed208x10|ufixed200x56|ufixed200x55|ufixed200x54|ufixed200x53|ufixed200x52|ufixed200x51|ufixed200x50|ufixed200x49|ufixed200x48|ufixed200x47|ufixed200x46|ufixed200x45|ufixed200x44|ufixed200x43|ufixed200x42|ufixed200x41|ufixed200x40|ufixed200x39|ufixed200x38|ufixed200x37|ufixed200x36|ufixed200x35|ufixed200x34|ufixed200x33|ufixed200x32|ufixed200x31|ufixed200x30|ufixed200x29|ufixed200x28|ufixed200x27|ufixed200x26|ufixed200x25|ufixed200x24|ufixed200x23|ufixed200x22|ufixed200x21|ufixed200x20|ufixed200x19|ufixed200x18|ufixed200x17|ufixed200x16|ufixed200x15|ufixed200x14|ufixed200x13|ufixed200x12|ufixed200x11|ufixed200x10|ufixed192x64|ufixed192x63|ufixed192x62|ufixed192x61|ufixed192x60|ufixed192x59|ufixed192x58|ufixed192x57|ufixed192x56|ufixed192x55|ufixed192x54|ufixed192x53|ufixed192x52|ufixed192x51|ufixed192x50|ufixed192x49|ufixed192x48|ufixed192x47|ufixed192x46|ufixed192x45|ufixed192x44|ufixed192x43|ufixed192x42|ufixed192x41|ufixed192x40|ufixed192x39|ufixed192x38|ufixed192x37|ufixed192x36|ufixed192x35|ufixed192x34|ufixed192x33|ufixed192x32|ufixed192x31|ufixed192x30|ufixed192x29|ufixed192x28|ufixed192x27|ufixed192x26|ufixed192x25|ufixed192x24|ufixed192x23|ufixed192x22|ufixed192x21|ufixed192x20|ufixed192x19|ufixed192x18|ufixed192x17|ufixed192x16|ufixed192x15|ufixed192x14|ufixed192x13|ufixed192x12|ufixed192x11|ufixed192x10|ufixed184x72|ufixed184x71|ufixed184x70|ufixed184x69|ufixed184x68|ufixed184x67|ufixed184x66|ufixed184x65|ufixed184x64|ufixed184x63|ufixed184x62|ufixed184x61|ufixed184x60|ufixed184x59|ufixed184x58|ufixed184x57|ufixed184x56|ufixed184x55|ufixed184x54|ufixed184x53|ufixed184x52|ufixed184x51|ufixed184x50|ufixed184x49|ufixed184x48|ufixed184x47|ufixed184x46|ufixed184x45|ufixed184x44|ufixed184x43|ufixed184x42|ufixed184x41|ufixed184x40|ufixed184x39|ufixed184x38|ufixed184x37|ufixed184x36|ufixed184x35|ufixed184x34|ufixed184x33|ufixed184x32|ufixed184x31|ufixed184x30|ufixed184x29|ufixed184x28|ufixed184x27|ufixed184x26|ufixed184x25|ufixed184x24|ufixed184x23|ufixed184x22|ufixed184x21|ufixed184x20|ufixed184x19|ufixed184x18|ufixed184x17|ufixed184x16|ufixed184x15|ufixed184x14|ufixed184x13|ufixed184x12|ufixed184x11|ufixed184x10|ufixed176x80|ufixed176x79|ufixed176x78|ufixed176x77|ufixed176x76|ufixed176x75|ufixed176x74|ufixed176x73|ufixed176x72|ufixed176x71|ufixed176x70|ufixed176x69|ufixed176x68|ufixed176x67|ufixed176x66|ufixed176x65|ufixed176x64|ufixed176x63|ufixed176x62|ufixed176x61|ufixed176x60|ufixed176x59|ufixed176x58|ufixed176x57|ufixed176x56|ufixed176x55|ufixed176x54|ufixed176x53|ufixed176x52|ufixed176x51|ufixed176x50|ufixed176x49|ufixed176x48|ufixed176x47|ufixed176x46|ufixed176x45|ufixed176x44|ufixed176x43|ufixed176x42|ufixed176x41|ufixed176x40|ufixed176x39|ufixed176x38|ufixed176x37|ufixed176x36|ufixed176x35|ufixed176x34|ufixed176x33|ufixed176x32|ufixed176x31|ufixed176x30|ufixed176x29|ufixed176x28|ufixed176x27|ufixed176x26|ufixed176x25|ufixed176x24|ufixed176x23|ufixed176x22|ufixed176x21|ufixed176x20|ufixed176x19|ufixed176x18|ufixed176x17|ufixed176x16|ufixed176x15|ufixed176x14|ufixed176x13|ufixed176x12|ufixed176x11|ufixed176x10|ufixed168x80|ufixed168x79|ufixed168x78|ufixed168x77|ufixed168x76|ufixed168x75|ufixed168x74|ufixed168x73|ufixed168x72|ufixed168x71|ufixed168x70|ufixed168x69|ufixed168x68|ufixed168x67|ufixed168x66|ufixed168x65|ufixed168x64|ufixed168x63|ufixed168x62|ufixed168x61|ufixed168x60|ufixed168x59|ufixed168x58|ufixed168x57|ufixed168x56|ufixed168x55|ufixed168x54|ufixed168x53|ufixed168x52|ufixed168x51|ufixed168x50|ufixed168x49|ufixed168x48|ufixed168x47|ufixed168x46|ufixed168x45|ufixed168x44|ufixed168x43|ufixed168x42|ufixed168x41|ufixed168x40|ufixed168x39|ufixed168x38|ufixed168x37|ufixed168x36|ufixed168x35|ufixed168x34|ufixed168x33|ufixed168x32|ufixed168x31|ufixed168x30|ufixed168x29|ufixed168x28|ufixed168x27|ufixed168x26|ufixed168x25|ufixed168x24|ufixed168x23|ufixed168x22|ufixed168x21|ufixed168x20|ufixed168x19|ufixed168x18|ufixed168x17|ufixed168x16|ufixed168x15|ufixed168x14|ufixed168x13|ufixed168x12|ufixed168x11|ufixed168x10|ufixed160x80|ufixed160x79|ufixed160x78|ufixed160x77|ufixed160x76|ufixed160x75|ufixed160x73|ufixed160x72|ufixed160x71|ufixed160x70|ufixed160x69|ufixed160x68|ufixed160x67|ufixed160x66|ufixed160x65|ufixed160x64|ufixed160x63|ufixed160x62|ufixed160x61|ufixed160x60|ufixed160x59|ufixed160x58|ufixed160x57|ufixed160x56|ufixed160x55|ufixed160x54|ufixed160x53|ufixed160x52|ufixed160x51|ufixed160x50|ufixed160x49|ufixed160x48|ufixed160x47|ufixed160x46|ufixed160x45|ufixed160x44|ufixed160x43|ufixed160x42|ufixed160x41|ufixed160x40|ufixed160x39|ufixed160x38|ufixed160x37|ufixed160x36|ufixed160x35|ufixed160x34|ufixed160x33|ufixed160x32|ufixed160x31|ufixed160x30|ufixed160x29|ufixed160x28|ufixed160x27|ufixed160x26|ufixed160x25|ufixed160x24|ufixed160x23|ufixed160x22|ufixed160x21|ufixed160x20|ufixed160x19|ufixed160x18|ufixed160x17|ufixed160x16|ufixed160x15|ufixed160x14|ufixed160x13|ufixed160x12|ufixed160x11|ufixed160x10|ufixed152x80|ufixed152x79|ufixed152x78|ufixed152x77|ufixed152x76|ufixed152x75|ufixed152x74|ufixed152x73|ufixed152x72|ufixed152x71|ufixed152x70|ufixed152x69|ufixed152x68|ufixed152x67|ufixed152x66|ufixed152x65|ufixed152x64|ufixed152x63|ufixed152x62|ufixed152x61|ufixed152x60|ufixed152x59|ufixed152x58|ufixed152x57|ufixed152x56|ufixed152x55|ufixed152x54|ufixed152x53|ufixed152x52|ufixed152x51|ufixed152x50|ufixed152x49|ufixed152x48|ufixed152x47|ufixed152x46|ufixed152x45|ufixed152x44|ufixed152x43|ufixed152x42|ufixed152x41|ufixed152x40|ufixed152x39|ufixed152x38|ufixed152x37|ufixed152x36|ufixed152x35|ufixed152x34|ufixed152x33|ufixed152x32|ufixed152x31|ufixed152x30|ufixed152x29|ufixed152x28|ufixed152x27|ufixed152x26|ufixed152x25|ufixed152x24|ufixed152x23|ufixed152x22|ufixed152x21|ufixed152x20|ufixed152x19|ufixed152x18|ufixed152x17|ufixed152x16|ufixed152x15|ufixed152x14|ufixed152x13|ufixed152x12|ufixed152x11|ufixed152x10|ufixed144x80|ufixed144x79|ufixed144x78|ufixed144x77|ufixed144x76|ufixed144x75|ufixed144x74|ufixed144x73|ufixed144x72|ufixed144x71|ufixed144x70|ufixed144x69|ufixed144x68|ufixed144x67|ufixed144x66|ufixed144x65|ufixed144x64|ufixed144x63|ufixed144x62|ufixed144x61|ufixed144x60|ufixed144x59|ufixed144x58|ufixed144x57|ufixed144x56|ufixed144x55|ufixed144x54|ufixed144x53|ufixed144x52|ufixed144x51|ufixed144x50|ufixed144x49|ufixed144x48|ufixed144x47|ufixed144x46|ufixed144x45|ufixed144x44|ufixed144x43|ufixed144x42|ufixed144x41|ufixed144x40|ufixed144x39|ufixed144x38|ufixed144x37|ufixed144x36|ufixed144x35|ufixed144x34|ufixed144x33|ufixed144x32|ufixed144x31|ufixed144x30|ufixed144x29|ufixed144x28|ufixed144x27|ufixed144x26|ufixed144x25|ufixed144x24|ufixed144x23|ufixed144x22|ufixed144x21|ufixed144x20|ufixed144x19|ufixed144x18|ufixed144x17|ufixed144x16|ufixed144x15|ufixed144x14|ufixed144x13|ufixed144x12|ufixed144x11|ufixed144x10|ufixed136x80|ufixed136x79|ufixed136x78|ufixed136x77|ufixed136x76|ufixed136x75|ufixed136x74|ufixed136x73|ufixed136x72|ufixed136x71|ufixed136x70|ufixed136x69|ufixed136x68|ufixed136x67|ufixed136x66|ufixed136x65|ufixed136x64|ufixed136x63|ufixed136x62|ufixed136x61|ufixed136x60|ufixed136x59|ufixed136x58|ufixed136x57|ufixed136x56|ufixed136x55|ufixed136x54|ufixed136x53|ufixed136x52|ufixed136x51|ufixed136x50|ufixed136x48|ufixed136x47|ufixed136x46|ufixed136x45|ufixed136x44|ufixed136x43|ufixed136x42|ufixed136x41|ufixed136x40|ufixed136x39|ufixed136x38|ufixed136x37|ufixed136x36|ufixed136x35|ufixed136x34|ufixed136x33|ufixed136x32|ufixed136x31|ufixed136x30|ufixed136x29|ufixed136x28|ufixed136x27|ufixed136x26|ufixed136x25|ufixed136x24|ufixed136x23|ufixed136x22|ufixed136x21|ufixed136x20|ufixed136x19|ufixed136x18|ufixed136x17|ufixed136x16|ufixed136x15|ufixed136x14|ufixed136x13|ufixed136x12|ufixed136x11|ufixed136x10|ufixed128x80|ufixed128x79|ufixed128x78|ufixed128x77|ufixed128x76|ufixed128x75|ufixed128x74|ufixed128x73|ufixed128x72|ufixed128x71|ufixed128x70|ufixed128x69|ufixed128x68|ufixed128x67|ufixed128x66|ufixed128x65|ufixed128x64|ufixed128x63|ufixed128x62|ufixed128x61|ufixed128x60|ufixed128x59|ufixed128x58|ufixed128x57|ufixed128x56|ufixed128x55|ufixed128x54|ufixed128x53|ufixed128x52|ufixed128x51|ufixed128x50|ufixed128x49|ufixed128x48|ufixed128x47|ufixed128x46|ufixed128x45|ufixed128x44|ufixed128x43|ufixed128x42|ufixed128x41|ufixed128x40|ufixed128x39|ufixed128x38|ufixed128x37|ufixed128x36|ufixed128x35|ufixed128x34|ufixed128x33|ufixed128x32|ufixed128x31|ufixed128x30|ufixed128x29|ufixed128x28|ufixed128x27|ufixed128x26|ufixed128x25|ufixed128x24|ufixed128x23|ufixed128x22|ufixed128x21|ufixed128x20|ufixed128x19|ufixed128x18|ufixed128x17|ufixed128x16|ufixed128x15|ufixed128x14|ufixed128x13|ufixed128x12|ufixed128x11|ufixed128x10|ufixed120x80|ufixed120x79|ufixed120x78|ufixed120x77|ufixed120x76|ufixed120x75|ufixed120x74|ufixed120x73|ufixed120x72|ufixed120x71|ufixed120x70|ufixed120x69|ufixed120x68|ufixed120x67|ufixed120x66|ufixed120x65|ufixed120x64|ufixed120x63|ufixed120x62|ufixed120x61|ufixed120x60|ufixed120x59|ufixed120x58|ufixed120x57|ufixed120x56|ufixed120x55|ufixed120x54|ufixed120x53|ufixed120x52|ufixed120x51|ufixed120x50|ufixed112x23|ufixed120x49|ufixed120x48|ufixed120x47|ufixed120x46|ufixed120x45|ufixed120x44|ufixed120x43|ufixed120x42|ufixed120x41|ufixed120x40|ufixed120x39|ufixed120x38|ufixed120x37|ufixed120x36|ufixed120x35|ufixed120x34|ufixed120x33|ufixed120x32|ufixed120x31|ufixed120x30|ufixed120x29|ufixed120x28|ufixed120x27|ufixed120x26|ufixed120x25|ufixed120x24|ufixed120x23|ufixed120x22|ufixed120x21|ufixed120x20|ufixed120x19|ufixed120x18|ufixed120x17|ufixed120x16|ufixed120x15|ufixed120x14|ufixed120x13|ufixed120x12|ufixed120x11|ufixed120x10|ufixed112x80|ufixed112x79|ufixed112x78|ufixed112x77|ufixed112x76|ufixed112x75|ufixed112x74|ufixed112x73|ufixed112x72|ufixed112x71|ufixed112x70|ufixed112x69|ufixed112x68|ufixed112x67|ufixed112x66|ufixed112x65|ufixed112x64|ufixed112x63|ufixed112x62|ufixed112x61|ufixed112x60|ufixed112x59|ufixed112x58|ufixed112x57|ufixed112x56|ufixed112x55|ufixed112x54|ufixed112x53|ufixed112x52|ufixed112x51|ufixed112x50|ufixed112x49|ufixed112x48|ufixed112x47|ufixed112x46|ufixed112x45|ufixed112x44|ufixed112x43|ufixed112x42|ufixed112x41|ufixed112x40|ufixed112x39|ufixed112x38|ufixed112x37|ufixed112x36|ufixed112x35|ufixed112x34|ufixed112x33|ufixed112x32|ufixed112x31|ufixed112x30|ufixed112x29|ufixed112x28|ufixed112x27|ufixed112x26|ufixed112x25|ufixed112x24|ufixed136x49|ufixed112x22|ufixed112x21|ufixed112x20|ufixed112x19|ufixed112x18|ufixed112x17|ufixed112x16|ufixed112x15|ufixed112x14|ufixed112x13|ufixed112x12|ufixed112x11|ufixed112x10|ufixed104x80|ufixed104x79|ufixed104x78|ufixed104x77|ufixed104x76|ufixed104x75|ufixed104x74|ufixed104x73|ufixed104x72|ufixed104x71|ufixed104x70|ufixed104x69|ufixed104x68|ufixed104x67|ufixed104x66|ufixed104x65|ufixed104x64|ufixed104x63|ufixed104x62|ufixed104x61|ufixed104x60|ufixed104x59|ufixed104x58|ufixed104x57|ufixed104x56|ufixed104x55|ufixed104x54|ufixed104x53|ufixed104x52|ufixed104x51|ufixed104x50|ufixed104x49|ufixed104x48|ufixed104x47|ufixed104x46|ufixed104x45|ufixed104x44|ufixed104x43|ufixed104x42|ufixed104x41|ufixed104x40|ufixed104x39|ufixed104x38|ufixed104x37|ufixed104x36|ufixed104x35|ufixed104x34|ufixed104x33|ufixed104x32|ufixed104x31|ufixed104x30|ufixed104x29|ufixed104x28|ufixed104x27|ufixed104x26|ufixed104x25|ufixed104x24|ufixed104x23|ufixed104x22|ufixed104x21|ufixed104x20|ufixed104x19|ufixed104x18|ufixed104x10|ufixed104x11|ufixed104x12|ufixed104x13|ufixed104x14|ufixed104x15|ufixed104x16|ufixed160x74|ufixed104x9|ufixed104x8|ufixed104x7|ufixed104x6|ufixed104x5|ufixed104x4|ufixed104x3|ufixed104x2|ufixed104x1|ufixed104x0|ufixed96x80|ufixed96x79|ufixed96x78|ufixed96x77|ufixed96x76|ufixed96x75|ufixed96x74|ufixed96x73|ufixed96x72|ufixed96x71|ufixed96x70|ufixed96x69|ufixed96x68|ufixed96x67|ufixed96x66|ufixed96x65|ufixed96x64|ufixed96x63|ufixed96x62|ufixed96x61|ufixed96x60|ufixed96x59|ufixed96x58|ufixed96x57|ufixed96x56|ufixed96x55|ufixed96x54|ufixed96x53|ufixed96x52|ufixed96x51|ufixed96x50|ufixed96x49|ufixed96x48|ufixed96x47|ufixed96x46|ufixed96x45|ufixed96x44|ufixed96x43|ufixed96x42|ufixed96x41|ufixed96x40|ufixed96x39|ufixed96x38|ufixed96x37|ufixed96x36|ufixed96x35|ufixed96x34|ufixed96x33|ufixed96x32|ufixed96x31|ufixed96x30|ufixed96x29|ufixed96x28|ufixed112x0|ufixed112x1|ufixed112x2|ufixed112x3|ufixed112x4|ufixed112x5|ufixed112x6|ufixed112x7|ufixed112x8|ufixed112x9|ufixed96x27|ufixed96x26|ufixed96x25|ufixed96x24|ufixed96x23|ufixed96x22|ufixed96x21|ufixed96x20|ufixed96x19|ufixed96x18|ufixed96x17|ufixed96x16|ufixed96x15|ufixed96x14|ufixed96x13|ufixed96x12|ufixed96x11|ufixed96x10|ufixed248x8|ufixed248x7|ufixed248x6|ufixed248x5|ufixed248x4|ufixed248x3|ufixed248x2|ufixed248x1|ufixed248x0|ufixed240x9|ufixed88x80|ufixed88x79|ufixed88x78|ufixed88x77|ufixed88x76|ufixed88x75|ufixed88x74|ufixed88x73|ufixed88x72|ufixed88x71|ufixed88x70|ufixed88x69|ufixed88x68|ufixed88x67|ufixed88x66|ufixed88x65|ufixed88x64|ufixed88x63|ufixed88x62|ufixed88x61|ufixed88x60|ufixed88x59|ufixed88x58|ufixed88x57|ufixed88x56|ufixed88x55|ufixed88x54|ufixed88x53|ufixed88x52|ufixed88x51|ufixed88x50|ufixed88x49|ufixed88x48|ufixed88x47|ufixed88x46|ufixed88x45|ufixed88x44|ufixed88x43|ufixed88x42|ufixed88x41|ufixed88x40|ufixed88x39|ufixed88x38|ufixed120x0|ufixed120x1|ufixed120x2|ufixed120x3|ufixed120x4|ufixed120x5|ufixed120x6|ufixed120x7|ufixed120x8|ufixed120x9|ufixed88x37|ufixed88x36|ufixed88x35|ufixed88x34|ufixed88x33|ufixed88x32|ufixed88x31|ufixed88x30|ufixed88x29|ufixed88x28|ufixed88x27|ufixed88x26|ufixed88x25|ufixed88x24|ufixed88x23|ufixed88x22|ufixed88x21|ufixed88x20|ufixed88x19|ufixed88x18|ufixed88x17|ufixed88x16|ufixed88x15|ufixed88x14|ufixed88x13|ufixed88x12|ufixed88x11|ufixed88x10|ufixed240x8|ufixed240x7|ufixed240x6|ufixed240x5|ufixed240x4|ufixed240x3|ufixed240x2|ufixed240x1|ufixed240x0|ufixed232x9|ufixed80x80|ufixed80x79|ufixed80x77|ufixed80x76|ufixed80x75|ufixed80x74|ufixed80x73|ufixed80x72|ufixed80x71|ufixed80x70|ufixed80x69|ufixed80x68|ufixed80x67|ufixed80x66|ufixed80x65|ufixed80x64|ufixed80x63|ufixed80x62|ufixed80x61|ufixed80x60|ufixed80x59|ufixed80x58|ufixed80x57|ufixed80x56|ufixed80x55|ufixed80x54|ufixed80x53|ufixed80x52|ufixed80x51|ufixed80x50|ufixed80x49|ufixed80x48|ufixed80x47|ufixed128x0|ufixed128x1|ufixed128x2|ufixed128x3|ufixed128x4|ufixed128x5|ufixed128x6|ufixed128x7|ufixed128x8|ufixed128x9|ufixed80x46|ufixed80x45|ufixed80x44|ufixed80x43|ufixed80x42|ufixed80x41|ufixed80x40|ufixed80x39|ufixed80x38|ufixed80x37|ufixed80x36|ufixed80x35|ufixed80x34|ufixed80x33|ufixed80x32|ufixed80x31|ufixed80x30|ufixed80x29|ufixed80x28|ufixed80x27|ufixed80x26|ufixed80x25|ufixed80x24|ufixed80x23|ufixed80x22|ufixed80x21|ufixed80x20|ufixed80x19|ufixed80x18|ufixed80x17|ufixed80x16|ufixed80x15|ufixed80x14|ufixed80x13|ufixed80x12|ufixed80x11|ufixed80x10|ufixed232x8|ufixed232x7|ufixed232x6|ufixed232x5|ufixed232x4|ufixed232x3|ufixed232x2|ufixed232x1|ufixed232x0|ufixed224x9|ufixed72x80|ufixed72x79|ufixed72x78|ufixed72x77|ufixed72x76|ufixed72x75|ufixed72x74|ufixed72x73|ufixed72x72|ufixed72x71|ufixed72x70|ufixed72x69|ufixed72x68|ufixed72x67|ufixed72x66|ufixed72x65|ufixed72x64|ufixed72x63|ufixed72x62|ufixed72x61|ufixed72x60|ufixed72x59|ufixed72x58|ufixed72x57|ufixed136x0|ufixed136x1|ufixed136x2|ufixed136x3|ufixed136x4|ufixed136x5|ufixed136x6|ufixed136x7|ufixed136x8|ufixed136x9|ufixed72x56|ufixed72x55|ufixed72x54|ufixed72x53|ufixed72x52|ufixed72x51|ufixed72x50|ufixed72x49|ufixed72x48|ufixed72x47|ufixed72x46|ufixed72x45|ufixed72x44|ufixed72x43|ufixed72x42|ufixed72x41|ufixed72x40|ufixed72x39|ufixed72x38|ufixed72x37|ufixed72x36|ufixed72x35|ufixed72x34|ufixed72x33|ufixed72x32|ufixed72x31|ufixed72x30|ufixed72x29|ufixed72x28|ufixed72x27|ufixed72x26|ufixed72x25|ufixed72x24|ufixed72x23|ufixed72x22|ufixed72x21|ufixed72x20|ufixed72x19|ufixed72x18|ufixed80x78|ufixed72x17|ufixed72x16|ufixed72x15|ufixed72x14|ufixed72x13|ufixed72x12|ufixed72x11|ufixed72x10|ufixed224x8|ufixed224x7|ufixed224x6|ufixed224x5|ufixed224x4|ufixed224x3|ufixed224x2|ufixed224x1|ufixed224x0|ufixed216x9|ufixed64x80|ufixed64x79|ufixed64x78|ufixed64x77|ufixed64x76|ufixed64x75|ufixed64x74|ufixed64x73|ufixed64x72|ufixed64x71|ufixed64x70|ufixed64x69|ufixed64x68|ufixed144x0|ufixed144x1|ufixed144x2|ufixed144x3|ufixed144x4|ufixed144x5|ufixed144x6|ufixed144x7|ufixed144x8|ufixed144x9|ufixed64x67|ufixed64x66|ufixed64x65|ufixed64x64|ufixed64x63|ufixed64x62|ufixed64x61|ufixed64x60|ufixed64x59|ufixed64x58|ufixed64x57|ufixed64x56|ufixed64x55|ufixed64x54|ufixed64x53|ufixed64x52|ufixed64x51|ufixed64x50|ufixed64x49|ufixed64x48|ufixed64x47|ufixed64x46|ufixed64x45|ufixed64x44|ufixed64x43|ufixed64x42|ufixed64x41|ufixed64x40|ufixed64x39|ufixed64x38|ufixed64x37|ufixed64x36|ufixed64x35|ufixed64x34|ufixed64x33|ufixed64x32|ufixed64x31|ufixed64x30|ufixed64x29|ufixed64x28|ufixed64x27|ufixed64x26|ufixed64x25|ufixed64x24|ufixed64x23|ufixed64x22|ufixed64x21|ufixed64x20|ufixed64x19|ufixed64x18|ufixed64x17|ufixed64x16|ufixed64x15|ufixed64x14|ufixed64x13|ufixed64x12|ufixed64x11|ufixed64x10|ufixed216x8|ufixed216x7|ufixed216x6|ufixed216x5|ufixed216x4|ufixed216x3|ufixed216x2|ufixed216x1|ufixed216x0|ufixed16x10|ufixed56x80|ufixed56x79|ufixed56x78|ufixed152x0|ufixed152x1|ufixed152x2|ufixed152x3|ufixed152x4|ufixed152x5|ufixed152x6|ufixed152x7|ufixed152x8|ufixed152x9|ufixed56x77|ufixed56x76|ufixed56x75|ufixed56x74|ufixed56x73|ufixed56x72|ufixed56x71|ufixed56x70|ufixed56x69|ufixed56x68|ufixed56x67|ufixed56x66|ufixed56x65|ufixed56x64|ufixed56x63|ufixed56x62|ufixed56x61|ufixed56x60|ufixed56x59|ufixed56x58|ufixed56x57|ufixed56x56|ufixed56x55|ufixed56x54|ufixed56x53|ufixed16x11|ufixed56x51|ufixed56x50|ufixed56x49|ufixed56x48|ufixed56x47|ufixed56x46|ufixed56x45|ufixed56x44|ufixed56x43|ufixed56x42|ufixed56x41|ufixed56x40|ufixed56x39|ufixed56x38|ufixed56x37|ufixed56x36|ufixed56x35|ufixed56x34|ufixed56x33|ufixed56x32|ufixed56x31|ufixed56x30|ufixed56x29|ufixed56x28|ufixed56x27|ufixed56x26|ufixed56x25|ufixed56x24|ufixed56x23|ufixed56x22|ufixed56x21|ufixed56x20|ufixed56x19|ufixed56x18|ufixed56x17|ufixed56x16|ufixed56x15|ufixed56x14|ufixed56x13|ufixed56x12|ufixed56x11|ufixed56x10|ufixed16x12|ufixed16x13|ufixed16x14|ufixed160x0|ufixed160x1|ufixed160x2|ufixed160x3|ufixed160x4|ufixed160x5|ufixed160x6|ufixed160x7|ufixed160x8|ufixed160x9|ufixed16x15|ufixed16x16|ufixed16x17|ufixed16x18|ufixed16x19|ufixed16x20|ufixed16x21|ufixed48x80|ufixed48x79|ufixed48x78|ufixed48x77|ufixed48x76|ufixed48x75|ufixed48x74|ufixed48x73|ufixed48x72|ufixed48x71|ufixed48x70|ufixed48x69|ufixed48x68|ufixed48x67|ufixed48x66|ufixed16x53|ufixed48x64|ufixed48x63|ufixed48x62|ufixed48x61|ufixed48x60|ufixed48x59|ufixed48x58|ufixed48x57|ufixed48x56|ufixed48x55|ufixed48x54|ufixed48x53|ufixed48x52|ufixed48x51|ufixed48x50|ufixed48x49|ufixed48x48|ufixed48x47|ufixed48x46|ufixed48x45|ufixed48x44|ufixed48x43|ufixed48x42|ufixed48x41|ufixed48x40|ufixed48x39|ufixed48x38|ufixed48x37|ufixed48x36|ufixed48x35|ufixed48x34|ufixed48x33|ufixed48x32|ufixed48x31|ufixed48x30|ufixed48x29|ufixed48x28|ufixed48x27|ufixed48x26|ufixed48x25|ufixed48x24|ufixed256x0|ufixed48x23|ufixed48x22|ufixed48x21|ufixed48x20|ufixed48x19|ufixed48x18|ufixed168x0|ufixed168x1|ufixed168x2|ufixed168x3|ufixed168x4|ufixed168x5|ufixed168x6|ufixed168x7|ufixed168x8|ufixed168x9|ufixed48x17|ufixed48x16|ufixed48x15|ufixed48x14|ufixed48x13|ufixed48x12|ufixed48x11|ufixed48x10|ufixed16x22|ufixed16x23|ufixed16x24|ufixed16x25|ufixed16x26|ufixed16x27|ufixed16x28|ufixed16x29|ufixed16x30|ufixed16x31|ufixed40x80|ufixed40x79|ufixed40x78|ufixed40x77|ufixed40x76|ufixed40x75|ufixed40x74|ufixed40x73|ufixed40x72|ufixed40x71|ufixed40x70|ufixed40x69|ufixed40x68|ufixed40x67|ufixed40x66|ufixed40x65|ufixed40x64|ufixed40x63|ufixed40x62|ufixed40x61|ufixed40x60|ufixed40x59|ufixed40x58|ufixed40x57|ufixed40x56|ufixed40x55|ufixed40x54|ufixed40x53|ufixed40x52|ufixed40x51|ufixed40x50|ufixed40x49|ufixed40x48|ufixed40x47|ufixed40x46|ufixed40x45|ufixed40x44|ufixed40x43|ufixed40x42|ufixed40x41|ufixed40x40|ufixed40x39|ufixed40x38|ufixed40x37|ufixed40x36|ufixed40x35|ufixed40x34|ufixed40x33|ufixed40x32|ufixed40x31|ufixed40x30|ufixed40x29|ufixed40x28|ufixed176x0|ufixed176x1|ufixed176x2|ufixed176x3|ufixed176x4|ufixed176x5|ufixed176x6|ufixed176x7|ufixed176x8|ufixed176x9|ufixed40x27|ufixed40x26|ufixed40x25|ufixed40x24|ufixed40x23|ufixed40x22|ufixed40x21|ufixed40x20|ufixed40x19|ufixed40x18|ufixed40x17|ufixed40x16|ufixed40x15|ufixed40x14|ufixed40x13|ufixed40x12|ufixed40x11|ufixed40x10|ufixed16x32|ufixed16x33|ufixed16x34|ufixed208x9|ufixed208x8|ufixed208x7|ufixed208x6|ufixed208x5|ufixed208x4|ufixed208x3|ufixed32x80|ufixed32x79|ufixed32x78|ufixed32x77|ufixed32x76|ufixed32x75|ufixed32x74|ufixed32x73|ufixed32x72|ufixed32x71|ufixed32x70|ufixed32x69|ufixed32x68|ufixed32x67|ufixed32x66|ufixed32x65|ufixed32x64|ufixed32x63|ufixed32x62|ufixed32x61|ufixed32x60|ufixed32x59|ufixed32x58|ufixed32x57|ufixed32x56|ufixed32x55|ufixed32x54|ufixed32x53|ufixed32x52|ufixed32x51|ufixed32x50|ufixed32x49|ufixed32x48|ufixed32x47|ufixed32x46|ufixed32x45|ufixed32x44|ufixed32x43|ufixed32x42|ufixed32x41|ufixed32x40|ufixed32x39|ufixed32x38|ufixed184x0|ufixed184x1|ufixed184x2|ufixed184x3|ufixed184x4|ufixed184x5|ufixed184x6|ufixed184x7|ufixed184x8|ufixed184x9|ufixed32x37|ufixed32x36|ufixed32x35|ufixed32x34|ufixed32x33|ufixed32x32|ufixed32x31|ufixed32x30|ufixed32x29|ufixed32x28|ufixed32x27|ufixed32x26|ufixed32x25|ufixed32x24|ufixed32x23|ufixed32x22|ufixed32x21|ufixed32x20|ufixed32x19|ufixed32x18|ufixed32x17|ufixed32x16|ufixed32x15|ufixed32x14|ufixed32x13|ufixed32x12|ufixed32x11|ufixed32x10|ufixed208x2|ufixed208x1|ufixed208x0|ufixed16x35|ufixed16x36|ufixed16x37|ufixed16x38|ufixed16x39|ufixed16x40|ufixed16x41|ufixed24x80|ufixed24x79|ufixed24x78|ufixed24x77|ufixed24x76|ufixed24x75|ufixed24x74|ufixed24x73|ufixed24x72|ufixed24x71|ufixed24x70|ufixed24x69|ufixed24x68|ufixed24x67|ufixed24x66|ufixed24x65|ufixed24x64|ufixed24x63|ufixed24x62|ufixed24x61|ufixed24x60|ufixed24x59|ufixed24x58|ufixed24x57|ufixed24x56|ufixed192x0|ufixed192x1|ufixed192x2|ufixed192x3|ufixed192x4|ufixed192x5|ufixed192x6|ufixed192x7|ufixed192x8|ufixed192x9|ufixed24x55|ufixed24x54|ufixed24x53|ufixed24x52|ufixed24x51|ufixed24x50|ufixed24x49|ufixed24x48|ufixed24x47|ufixed24x46|ufixed24x45|ufixed24x44|ufixed24x43|ufixed24x42|ufixed24x41|ufixed24x40|ufixed24x39|ufixed24x38|ufixed24x37|ufixed24x36|ufixed24x35|ufixed24x34|ufixed24x33|ufixed24x32|ufixed24x31|ufixed24x30|ufixed24x29|ufixed24x28|ufixed24x27|ufixed24x26|ufixed24x25|ufixed24x24|ufixed24x23|ufixed24x22|ufixed24x21|ufixed24x20|ufixed24x19|ufixed24x18|ufixed24x17|ufixed24x16|ufixed24x15|ufixed24x14|ufixed24x13|ufixed24x12|ufixed24x11|ufixed24x10|ufixed16x42|ufixed16x43|ufixed16x44|ufixed16x45|ufixed16x46|ufixed16x47|ufixed16x48|ufixed16x49|ufixed16x50|ufixed200x0|ufixed200x1|ufixed200x2|ufixed200x3|ufixed200x4|ufixed200x5|ufixed200x6|ufixed200x7|ufixed200x8|ufixed200x9|ufixed16x51|ufixed16x80|ufixed16x79|ufixed16x78|ufixed16x77|ufixed16x76|ufixed16x75|ufixed16x74|ufixed16x73|ufixed16x72|ufixed16x71|ufixed16x70|ufixed16x69|ufixed16x68|ufixed16x67|ufixed16x66|ufixed16x65|ufixed16x64|ufixed16x63|ufixed16x62|ufixed16x61|ufixed16x60|ufixed16x59|ufixed16x58|ufixed16x57|ufixed16x56|ufixed16x55|ufixed16x54|ufixed48x65|ufixed16x52|ufixed56x52|ufixed24x1|ufixed24x2|ufixed24x3|ufixed24x4|ufixed24x5|ufixed24x6|ufixed24x7|ufixed24x8|ufixed24x9|ufixed32x0|ufixed32x1|ufixed32x2|ufixed32x3|ufixed32x4|ufixed32x5|ufixed32x6|ufixed32x7|ufixed32x8|ufixed32x9|ufixed40x0|ufixed40x1|ufixed40x2|ufixed40x3|ufixed40x4|ufixed40x5|ufixed40x6|ufixed40x7|ufixed40x8|ufixed40x9|ufixed48x0|ufixed48x1|ufixed48x2|ufixed48x3|ufixed48x4|ufixed48x5|ufixed48x6|ufixed48x7|ufixed48x8|ufixed48x9|ufixed56x0|ufixed56x1|ufixed56x2|ufixed56x3|ufixed56x4|ufixed56x5|ufixed56x6|ufixed56x7|ufixed56x8|ufixed56x9|ufixed96x9|ufixed64x0|ufixed16x9|ufixed16x8|ufixed16x7|ufixed16x6|ufixed16x5|ufixed16x4|ufixed16x3|ufixed16x2|ufixed16x1|ufixed16x0|ufixed8x80|ufixed8x79|ufixed8x78|ufixed8x77|ufixed64x1|ufixed64x2|ufixed64x3|ufixed64x4|ufixed64x5|ufixed64x6|ufixed64x7|ufixed64x8|ufixed64x9|ufixed72x0|ufixed8x76|ufixed8x75|ufixed8x74|ufixed8x73|ufixed8x72|ufixed8x71|ufixed8x70|ufixed8x69|ufixed8x68|ufixed8x67|ufixed8x66|ufixed8x65|ufixed8x64|ufixed8x63|ufixed8x62|ufixed8x61|ufixed8x60|ufixed8x59|ufixed8x58|ufixed8x57|ufixed96x2|ufixed8x55|ufixed8x54|ufixed8x53|ufixed8x52|ufixed8x51|ufixed8x50|ufixed8x49|ufixed8x48|ufixed8x47|ufixed8x46|ufixed72x1|ufixed72x2|ufixed72x3|ufixed72x4|ufixed72x5|ufixed72x6|ufixed72x7|ufixed72x8|ufixed72x9|ufixed80x0|ufixed8x45|ufixed8x44|ufixed8x43|ufixed8x42|ufixed8x41|ufixed8x40|ufixed8x39|ufixed8x38|ufixed8x37|ufixed8x36|ufixed8x35|ufixed8x34|ufixed8x33|ufixed8x32|ufixed8x31|ufixed8x30|ufixed8x29|ufixed8x28|ufixed8x27|ufixed8x26|ufixed8x25|ufixed8x24|ufixed8x23|ufixed80x1|ufixed80x2|ufixed80x3|ufixed80x4|ufixed80x5|ufixed80x6|ufixed80x7|ufixed80x8|ufixed80x9|ufixed88x0|ufixed8x22|ufixed8x21|ufixed8x20|ufixed8x19|ufixed8x18|ufixed8x17|ufixed8x16|ufixed8x15|ufixed8x14|ufixed8x13|ufixed8x12|ufixed8x11|ufixed8x10|ufixed96x8|ufixed96x7|ufixed88x1|ufixed88x2|ufixed88x3|ufixed88x4|ufixed88x5|ufixed88x6|ufixed88x7|ufixed88x8|ufixed88x9|ufixed96x0|ufixed96x6|ufixed96x5|ufixed96x4|ufixed96x3|ufixed8x56|ufixed96x1|ufixed24x0|ufixed8x2|ufixed8x3|ufixed8x4|ufixed8x5|ufixed8x6|ufixed8x7|ufixed8x8|ufixed8x9|ufixed8x0|ufixed8x1)\b">
-        <token type="KeywordType"/>
-      </rule>
-    </state>
-    <state name="string-parse-double">
-      <rule pattern="&#34;">
-        <token type="LiteralString"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="&#39;">
-        <token type="LiteralString"/>
-      </rule>
-    </state>
-    <state name="string-parse-single">
-      <rule pattern="&#39;">
-        <token type="LiteralString"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="&#34;">
-        <token type="LiteralString"/>
-      </rule>
-    </state>
-    <state name="whitespace">
-      <rule pattern="\s+">
-        <token type="Text"/>
-      </rule>
-    </state>
-    <state name="keywords-other">
-      <rule pattern="(continue|returns|storage|memory|delete|return|throw|break|catch|while|else|from|new|try|for|if|is|as|do|in|_)\b">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="assembly\b">
-        <token type="Keyword"/>
-        <push state="assembly"/>
-      </rule>
-      <rule pattern="(contract|interface|enum|event|struct)(\s+)([a-zA-Z_]\w*)">
-        <bygroups>
-          <token type="KeywordDeclaration"/>
-          <token type="Text"/>
-          <token type="NameClass"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(function|modifier)(\s+)([a-zA-Z_]\w*)">
-        <bygroups>
-          <token type="KeywordDeclaration"/>
-          <token type="Text"/>
-          <token type="NameFunction"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(constructor|interface|contract|modifier|function|library|mapping|struct|event|enum|var)\b">
-        <token type="KeywordDeclaration"/>
-      </rule>
-      <rule pattern="(abstract|external|internal|private|public)\b">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="(anonymous|immutable|constant|override|indexed|payable|virtual|pure|view)\b">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="(import|using)\b">
-        <token type="KeywordNamespace"/>
-      </rule>
-      <rule pattern="pragma (solidity|experimental)\b">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="(relocatable|implements|unchecked|reference|supports|typedef|promise|default|partial|mutable|switch|typeof|sealed|inline|copyof|define|static|sizeof|alias|final|match|apply|macro|after|auto|null|case|let|of)\b">
-        <token type="KeywordReserved"/>
-      </rule>
-      <rule pattern="(true|false)\b">
-        <token type="KeywordConstant"/>
-      </rule>
-      <rule pattern="(wei|finney|szabo|ether)\b">
-        <token type="KeywordConstant"/>
-      </rule>
-      <rule pattern="(seconds|minutes|hours|days|weeks|years)\b">
-        <token type="KeywordConstant"/>
-      </rule>
-    </state>
-    <state name="comments">
-      <rule pattern="//([\w\W]*?\n)">
-        <token type="CommentSingle"/>
-      </rule>
-      <rule pattern="/[*][\w\W]*?[*]/">
-        <token type="CommentMultiline"/>
-      </rule>
-      <rule pattern="/[*][\w\W]*">
-        <token type="CommentMultiline"/>
-      </rule>
-    </state>
-    <state name="assembly">
-      <rule>
-        <include state="comments"/>
-      </rule>
-      <rule>
-        <include state="numbers"/>
-      </rule>
-      <rule>
-        <include state="strings"/>
-      </rule>
-      <rule>
-        <include state="whitespace"/>
-      </rule>
-      <rule pattern="\{">
-        <token type="Punctuation"/>
-        <push/>
-      </rule>
-      <rule pattern="\}">
-        <token type="Punctuation"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="[(),]">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern=":=|=:">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="(let)(\s*)(\w*\b)">
-        <bygroups>
-          <token type="OperatorWord"/>
-          <token type="Text"/>
-          <token type="NameVariable"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(\w*\b)(\:[^=])">
-        <bygroups>
-          <token type="NameLabel"/>
-          <token type="Punctuation"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(stop|add|mul|sub|div|sdiv|mod|smod|addmod|mulmod|exp|signextend|lt|gt|slt|sgt|eq|iszero|and|or|xor|not|byte|keccak256|sha3|address|balance|origin|caller|callvalue|calldataload|calldatasize|calldatacopy|codesize|codecopy|gasprice|extcodesize|extcodecopy|blockhash|coinbase|timestamp|number|difficulty|gaslimit|pop|mload|mstore|mstore8|sload|sstore|for|switch|jump|jumpi|pc|msize|gas|jumpdest|push1|push2|push32|dup1|dup2|dup16|swap1|swap2|swap16|log0|log1|log4|create|call|callcode|return|delegatecall|suicide|returndatasize|returndatacopy|staticcall|revert|invalid)\b">
-        <token type="NameFunction"/>
-      </rule>
-      <rule pattern="[a-zA-Z_]\w*">
-        <token type="Name"/>
-      </rule>
-    </state>
-    <state name="string-parse-common">
-      <rule pattern="\\(u[0-9a-fA-F]{4}|x..|[^x])">
-        <token type="LiteralStringEscape"/>
-      </rule>
-      <rule pattern="[^\\&#34;\&#39;\n]+">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="\\\n">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="\\">
-        <token type="LiteralString"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/sparql.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/sparql.xml	(revision 67)
+++ 	(revision )
@@ -1,160 +1,0 @@
-<lexer>
-  <config>
-    <name>SPARQL</name>
-    <alias>sparql</alias>
-    <filename>*.rq</filename>
-    <filename>*.sparql</filename>
-    <mime_type>application/sparql-query</mime_type>
-  </config>
-  <rules>
-    <state name="string-escape">
-      <rule pattern="u[0-9A-Fa-f]{4}">
-        <token type="LiteralStringEscape"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="U[0-9A-Fa-f]{8}">
-        <token type="LiteralStringEscape"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern=".">
-        <token type="LiteralStringEscape"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="end-of-string">
-      <rule pattern="(@)([a-zA-Z]+(?:-[a-zA-Z0-9]+)*)">
-        <bygroups>
-          <token type="Operator"/>
-          <token type="NameFunction"/>
-        </bygroups>
-        <pop depth="2"/>
-      </rule>
-      <rule pattern="\^\^">
-        <token type="Operator"/>
-        <pop depth="2"/>
-      </rule>
-      <rule>
-        <pop depth="2"/>
-      </rule>
-    </state>
-    <state name="root">
-      <rule pattern="\s+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="((?i)select|construct|describe|ask|where|filter|group\s+by|minus|distinct|reduced|from\s+named|from|order\s+by|desc|asc|limit|offset|bindings|load|clear|drop|create|add|move|copy|insert\s+data|delete\s+data|delete\s+where|delete|insert|using\s+named|using|graph|default|named|all|optional|service|silent|bind|union|not\s+in|in|as|having|to|prefix|base)\b">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="(a)\b">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="(&lt;(?:[^&lt;&gt;&#34;{}|^`\\\x00-\x20])*&gt;)">
-        <token type="NameLabel"/>
-      </rule>
-      <rule pattern="(_:[_\p{L}\p{N}](?:[-_.\p{L}\p{N}]*[-_\p{L}\p{N}])?)">
-        <token type="NameLabel"/>
-      </rule>
-      <rule pattern="[?$][_\p{L}\p{N}]+">
-        <token type="NameVariable"/>
-      </rule>
-      <rule pattern="([\p{L}][-_.\p{L}\p{N}]*)?(\:)((?:[_:\p{L}\p{N}]|(?:%[0-9A-Fa-f][0-9A-Fa-f])|(?:\\[ _~.\-!$&amp;&#34;()*+,;=/?#@%]))(?:(?:[-_:.\p{L}\p{N}]|(?:%[0-9A-Fa-f][0-9A-Fa-f])|(?:\\[ _~.\-!$&amp;&#34;()*+,;=/?#@%]))*(?:[-_:\p{L}\p{N}]|(?:%[0-9A-Fa-f][0-9A-Fa-f])|(?:\\[ _~.\-!$&amp;&#34;()*+,;=/?#@%])))?)?">
-        <bygroups>
-          <token type="NameNamespace"/>
-          <token type="Punctuation"/>
-          <token type="NameTag"/>
-        </bygroups>
-      </rule>
-      <rule pattern="((?i)str|lang|langmatches|datatype|bound|iri|uri|bnode|rand|abs|ceil|floor|round|concat|strlen|ucase|lcase|encode_for_uri|contains|strstarts|strends|strbefore|strafter|year|month|day|hours|minutes|seconds|timezone|tz|now|md5|sha1|sha256|sha384|sha512|coalesce|if|strlang|strdt|sameterm|isiri|isuri|isblank|isliteral|isnumeric|regex|substr|replace|exists|not\s+exists|count|sum|min|max|avg|sample|group_concat|separator)\b">
-        <token type="NameFunction"/>
-      </rule>
-      <rule pattern="(true|false)">
-        <token type="KeywordConstant"/>
-      </rule>
-      <rule pattern="[+\-]?(\d+\.\d*[eE][+-]?\d+|\.?\d+[eE][+-]?\d+)">
-        <token type="LiteralNumberFloat"/>
-      </rule>
-      <rule pattern="[+\-]?(\d+\.\d*|\.\d+)">
-        <token type="LiteralNumberFloat"/>
-      </rule>
-      <rule pattern="[+\-]?\d+">
-        <token type="LiteralNumberInteger"/>
-      </rule>
-      <rule pattern="(\|\||&amp;&amp;|=|\*|\-|\+|/|!=|&lt;=|&gt;=|!|&lt;|&gt;)">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="[(){}.;,:^\[\]]">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="#[^\n]*">
-        <token type="Comment"/>
-      </rule>
-      <rule pattern="&#34;&#34;&#34;">
-        <token type="LiteralString"/>
-        <push state="triple-double-quoted-string"/>
-      </rule>
-      <rule pattern="&#34;">
-        <token type="LiteralString"/>
-        <push state="single-double-quoted-string"/>
-      </rule>
-      <rule pattern="&#39;&#39;&#39;">
-        <token type="LiteralString"/>
-        <push state="triple-single-quoted-string"/>
-      </rule>
-      <rule pattern="&#39;">
-        <token type="LiteralString"/>
-        <push state="single-single-quoted-string"/>
-      </rule>
-    </state>
-    <state name="triple-double-quoted-string">
-      <rule pattern="&#34;&#34;&#34;">
-        <token type="LiteralString"/>
-        <push state="end-of-string"/>
-      </rule>
-      <rule pattern="[^\\]+">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="\\">
-        <token type="LiteralString"/>
-        <push state="string-escape"/>
-      </rule>
-    </state>
-    <state name="single-double-quoted-string">
-      <rule pattern="&#34;">
-        <token type="LiteralString"/>
-        <push state="end-of-string"/>
-      </rule>
-      <rule pattern="[^&#34;\\\n]+">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="\\">
-        <token type="LiteralString"/>
-        <push state="string-escape"/>
-      </rule>
-    </state>
-    <state name="triple-single-quoted-string">
-      <rule pattern="&#39;&#39;&#39;">
-        <token type="LiteralString"/>
-        <push state="end-of-string"/>
-      </rule>
-      <rule pattern="[^\\]+">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="\\">
-        <token type="LiteralStringEscape"/>
-        <push state="string-escape"/>
-      </rule>
-    </state>
-    <state name="single-single-quoted-string">
-      <rule pattern="&#39;">
-        <token type="LiteralString"/>
-        <push state="end-of-string"/>
-      </rule>
-      <rule pattern="[^&#39;\\\n]+">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="\\">
-        <token type="LiteralString"/>
-        <push state="string-escape"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/sql.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/sql.xml	(revision 67)
+++ 	(revision )
@@ -1,90 +1,0 @@
-<lexer>
-  <config>
-    <name>SQL</name>
-    <alias>sql</alias>
-    <filename>*.sql</filename>
-    <mime_type>text/x-sql</mime_type>
-    <case_insensitive>true</case_insensitive>
-    <not_multiline>true</not_multiline>
-  </config>
-  <rules>
-    <state name="root">
-      <rule pattern="\s+">
-        <token type="TextWhitespace"/>
-      </rule>
-      <rule pattern="--.*\n?">
-        <token type="CommentSingle"/>
-      </rule>
-      <rule pattern="/\*">
-        <token type="CommentMultiline"/>
-        <push state="multiline-comments"/>
-      </rule>
-      <rule pattern="&#39;">
-        <token type="LiteralStringSingle"/>
-        <push state="string"/>
-      </rule>
-      <rule pattern="&#34;">
-        <token type="LiteralStringDouble"/>
-        <push state="double-string"/>
-      </rule>
-      <rule pattern="(DATETIME_INTERVAL_PRECISION|PARAMETER_SPECIFIC_CATALOG|PARAMATER_ORDINAL_POSITION|USER_DEFINED_TYPE_CATALOG|PARAMATER_SPECIFIC_SCHEMA|TRANSACTIONS_ROLLED_BACK|USER_DEFINED_TYPE_SCHEMA|PARAMETER_SPECIFIC_NAME|DATETIME_INTERVAL_CODE|TRANSACTIONS_COMMITTED|USER_DEFINED_TYPE_NAME|CHARACTER_SET_CATALOG|DYNAMIC_FUNCTION_CODE|COMMAND_FUNCTION_CODE|RETURNED_OCTET_LENGTH|MESSAGE_OCTET_LENGTH|CHARACTER_SET_SCHEMA|CONSTRAINT_CATALOG|TRANSACTION_ACTIVE|CHARACTER_SET_NAME|CURRENT_TIMESTAMP|CONSTRAINT_SCHEMA|COLLATION_CATALOG|RETURNED_SQLSTATE|DYNAMIC_FUNCTION|CONDITION_NUMBER|CHARACTER_LENGTH|COMMAND_FUNCTION|COLLATION_SCHEMA|CHARACTERISTICS|TRIGGER_CATALOG|CONNECTION_NAME|SUBCLASS_ORIGIN|RETURNED_LENGTH|TIMEZONE_MINUTE|CONSTRAINT_NAME|ROUTINE_CATALOG|TRIGGER_SCHEMA|ROUTINE_SCHEMA|LOCALTIMESTAMP|IMPLEMENTATION|PARAMATER_NAME|MESSAGE_LENGTH|PARAMETER_MODE|COLLATION_NAME|TIMEZONE_HOUR|SPECIFIC_NAME|DETERMINISTIC|CORRESPONTING|AUTHORIZATION|INSTANTIABLE|CURRENT_TIME|CURRENT_USER|ROUTINE_NAME|NOCREATEUSER|MESSAGE_TEXT|SQLEXCEPTION|CATALOG_NAME|SESSION_USER|CLASS_ORIGIN|CURRENT_ROLE|SPECIFICTYPE|SERIALIZABLE|CURRENT_DATE|OCTET_LENGTH|CURRENT_PATH|TRIGGER_NAME|CHAR_LENGTH|SYSTEM_USER|REFERENCING|UNENCRYPTED|COLUMN_NAME|SQLWARNINIG|DIAGNOSTICS|CURSOR_NAME|SERVER_NAME|INSENSITIVE|SCHEMA_NAME|UNCOMMITTED|TRANSACTION|CONSTRUCTOR|LANCOMPILER|CARDINALITY|CONSTRAINTS|TRANSLATION|CHECKPOINT|CONSTRAINT|CONNECTION|PRIVILEGES|COMPLETION|CONVERSION|DELIMITERS|TABLE_NAME|INDITCATOR|INITIALIZE|DESCRIPTOR|REPEATABLE|CREATEUSER|DEFERRABLE|DESTRUCTOR|PROCEDURAL|DICTIONARY|DISCONNECT|TRANSFORMS|KEY_MEMBER|BIT_LENGTH|ASYMMETRIC|ASSIGNMENT|ASENSITIVE|OVERRIDING|PARAMETERS|REFERENCES|ORDINALITY|NOCREATEDB|STATISTICS|DEALLOCATE|SAVE_POINT|RECURSIVE|STRUCTURE|SUBSTRING|IMMEDIATE|GENERATED|SYMMETRIC|STATEMENT|INCREMENT|IMMUTABLE|INCLUDING|COMMITTED|TEMPORARY|INITIALLY|TERMINATE|PRECISION|DELIMITER|TIMESTAMP|INTERSECT|ISOLATION|TRANSFORM|TRANSLATE|ROW_COUNT|ASSERTION|PARAMETER|EXCLUSIVE|LOCALTIME|VALIDATOR|AGGREGATE|EXCLUDING|SENSITIVE|EXCEPTION|ENCRYPTED|OPERATION|HIERARCHY|COLLATION|PROCEDURE|CONTINUE|ENCODING|MINVALUE|SPECIFIC|ABSOLUTE|SECURITY|WHENEVER|EXISTING|VOLATILE|MAXVALUE|EXTERNAL|NULLABLE|VARIABLE|SQLERROR|DISTINCT|DISPATCH|END-EXEC|LOCATION|ALLOCATE|OVERLAPS|UNLISTEN|ROLLBACK|TRUNCATE|DESCRIBE|SQLSTATE|BACKWARD|FUNCTION|LANGUAGE|KEY_TYPE|CASCADED|POSITION|TRAILING|DEFERRED|RELATIVE|DEFAULTS|COALSECE|PREORDER|GROUPING|MODIFIES|INHERITS|PRESERVE|DATABASE|RESTRICT|IDENTITY|TEMPLATE|NATIONAL|CONTAINS|CREATEDB|IMPLICIT|OPERATOR|CONVERT|CURRENT|CONNECT|RECHECK|PRIMARY|STORAGE|DECLARE|DEFAULT|HANDLER|COLLATE|PREPARE|REINDEX|GRANTED|CHECKED|POSTFIX|REPLACE|INSTEAD|CATALOG|RESTART|INVOKER|PLACING|PENDANT|DEFINED|ITERATE|PARTIAL|CASCADE|BREADTH|GENERAL|TRIGGER|SESSION|BETWEEN|DEFINER|LATERAL|LEADING|RETURNS|TRUSTED|UNKNOWN|FORWARD|UNNAMED|OVERLAY|FORTRAN|ANALYZE|OPTIONS|ANALYSE|FOREIGN|ROUTINE|LOCATOR|DESTROY|SUBLIST|VERBOSE|EXTRACT|NOTNULL|EXPLAIN|VERSION|SQLCODE|EXECUTE|NOTHING|DYNAMIC|WITHOUT|SIMILAR|NATURAL|COMMENT|CLUSTER|PASCAL|SOURCE|EQUALS|CALLED|ESCAPE|EXCEPT|SELECT|ISNULL|DOMAIN|SEARCH|SCROLL|SIMPLE|BITVAR|MINUTE|EXISTS|SCHEMA|ATOMIC|METHOD|NOTIFY|ACCESS|UNIQUE|ROLLUP|NULLIF|OBJECT|STABLE|COLUMN|REVOKE|OFFSET|COMMIT|MODIFY|FREEZE|DELETE|RETURN|RESULT|UNNEST|OPTION|GLOBAL|VALUES|RENAME|SYSTEM|STATIC|UPDATE|OUTPUT|LISTEN|STDOUT|STRICT|PUBLIC|IGNORE|PREFIX|SECOND|CREATE|LENGTH|BEFORE|HAVING|INSERT|VACUUM|CURSOR|ELSIF|USING|ALTER|STYPE|CYCLE|LARGE|INPUT|CROSS|INOUT|INNER|INFIX|INDEX|LEVEL|USAGE|ILIKE|VALID|OWNER|GRANT|READS|UPPER|LIMIT|OUTER|STDIN|SYSID|GROUP|ALIAS|ORDER|UNTIL|LOCAL|RESET|START|COUNT|LOWER|TABLE| TEMP|PRIOR|AFTER|STATE|ADMIN|RIGHT|COBOL|FOUND|MATCH|FORCE|ABORT|FIRST|FINAL|CLOSE|DEREF|FETCH|WHERE|FALSE|SCALE|BEGIN|CLASS|TOAST|WRITE|NCLOB|NCHAR|CHECK|CHAIN|SPACE|NAMES|EVERY|MUMPS|CACHE|UNION|UNDER|SETOF|MONTH|SHARE|SCOPE|TREAT|SHOW|SIZE|SOME|SETS|SELF|ELSE|EACH|DROP|TYPE|FROM|RULE|DESC|ROWS|ZONE|ROLE|TRUE|FREE|FULL|GOTO|TRIM|HOLD|HOST|DATA|READ|INTO|USER|JOIN|CUBE|LAST|LEFT|LESS|LIKE|LOAD|LOCK|OPEN|COPY|ONLY|OIDS|VIEW|WHEN|THAN|THEN|NULL|NONE|WITH|WORK|NEXT|YEAR|MODE|CAST|CASE|MOVE|CALL|MORE|BOTH|EXEC|CLOB|OUT|MOD|ARE|SUM|DAY|GET|AVG|NEW|SQL|ABS|MIN|ASC|END|ROW|NOT|FOR|ANY|PLI|MAX|REF|MAP|ADA|KEY|AND|ADD|ALL|OLD|OFF|PAD|SET|OR|ON|TO|IS|OF|IN|IF|GO|AS|DO|AT|NO|BY|C|G)\b">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="(CHARACTER|SMALLINT|INTERVAL|DECIMAL|SERIAL8|VARYING|BOOLEAN|VARCHAR|INTEGER|NUMERIC|SERIAL|BINARY|BIGINT|NUMBER|FLOAT|ARRAY|TEXT|REAL|INT8|DATE|CHAR|BLOB|DEC|BIT|INT)\b">
-        <token type="NameBuiltin"/>
-      </rule>
-      <rule pattern="[+*/&lt;&gt;=~!@#%^&amp;|`?-]">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="[0-9]+">
-        <token type="LiteralNumberInteger"/>
-      </rule>
-      <rule pattern="[a-z_][\w$]*">
-        <token type="Name"/>
-      </rule>
-      <rule pattern="[;:()\[\],.]">
-        <token type="Punctuation"/>
-      </rule>
-    </state>
-    <state name="multiline-comments">
-      <rule pattern="/\*">
-        <token type="CommentMultiline"/>
-        <push state="multiline-comments"/>
-      </rule>
-      <rule pattern="\*/">
-        <token type="CommentMultiline"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="[^/*]+">
-        <token type="CommentMultiline"/>
-      </rule>
-      <rule pattern="[/*]">
-        <token type="CommentMultiline"/>
-      </rule>
-    </state>
-    <state name="string">
-      <rule pattern="[^&#39;]+">
-        <token type="LiteralStringSingle"/>
-      </rule>
-      <rule pattern="&#39;&#39;">
-        <token type="LiteralStringSingle"/>
-      </rule>
-      <rule pattern="&#39;">
-        <token type="LiteralStringSingle"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="double-string">
-      <rule pattern="[^&#34;]+">
-        <token type="LiteralStringDouble"/>
-      </rule>
-      <rule pattern="&#34;&#34;">
-        <token type="LiteralStringDouble"/>
-      </rule>
-      <rule pattern="&#34;">
-        <token type="LiteralStringDouble"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/squidconf.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/squidconf.xml	(revision 67)
+++ 	(revision )
@@ -1,63 +1,0 @@
-<lexer>
-  <config>
-    <name>SquidConf</name>
-    <alias>squidconf</alias>
-    <alias>squid.conf</alias>
-    <alias>squid</alias>
-    <filename>squid.conf</filename>
-    <mime_type>text/x-squidconf</mime_type>
-    <case_insensitive>true</case_insensitive>
-    <not_multiline>true</not_multiline>
-  </config>
-  <rules>
-    <state name="root">
-      <rule pattern="\s+">
-        <token type="TextWhitespace"/>
-      </rule>
-      <rule pattern="#">
-        <token type="Comment"/>
-        <push state="comment"/>
-      </rule>
-      <rule pattern="\b(redirect_rewrites_host_header|httpd_accel_uses_host_header|high_response_time_warning|delay_initial_bucket_level|memory_replacement_policy|maximum_single_addr_tries|cahce_replacement_policy|store_objects_per_bucket|mcast_icp_query_timeout|high_page_fault_warning|cache_stoplist_pattern|httpd_accel_with_proxy|request_body_max_size|authenticate_children|minimum_retry_timeout|incoming_http_average|store_avg_object_size|snmp_incoming_address|cache_effective_group|mcast_miss_encode_key|neighbor_type_domain|cache_effective_user|single_parent_bypass|tcp_incoming_address|udp_outgoing_address|tcp_outgoing_address|incoming_icp_average|udp_incoming_address|authenticate_program|minimum_object_size|ident_lookup_access|minimum_direct_hops|maximum_object_size|half_closed_clients|range_offset_limit|forward_snmpd_port|memory_pools_limit|siteselect_timeout|hierarchy_stoplist|netdb_ping_period|strip_query_terms|test_reachability|shutdown_lifetime|redirect_children|min_http_poll_cnt|cache_dns_program|anonymize_headers|dead_peer_timeout|cache_host_domain|emulate_httpd_log|http_reply_access|passthrough_proxy|icp_query_timeout|cache_peer_access|tcp_recv_bufsize|neighbor_timeout|negative_dns_ttl|min_icp_poll_cnt|swap_level1_dirs|visible_hostname|positive_dns_ttl|swap_level2_dirs|auth_param_basic|delay_parameters|proxy_auth_realm|redirect_program|udp_hit_obj_size|cache_access_log|httpd_accel_port|httpd_accel_host|authenticate_ttl|netdb_ping_rate|wais_relay_host|wais_relay_port|dns_nameservers|cache_swap_high|cache_store_log|request_timeout|refresh_pattern|http_anonymizer|announce_period|client_lifetime|as_whois_server|mcast_miss_port|mcast_miss_addr|reload_into_ims|cachemgr_passwd|log_icp_queries|connect_timeout|quick_abort_max|quick_abort_min|quick_abort_pct|unique_hostname|inside_firewall|unlinkd_program|fake_user_agent|ftpget_program|uri_whitespace|cache_announce|ftpget_options|cache_mem_high|cache_swap_low|logfile_rotate|cache_swap_log|fqdncache_size|pinger_program|client_netmask|header_replace|ftp_list_width|cache_host_acl|cache_stoplist|announce_port|prefer_direct|useragent_log|buffered_logs|append_domain|log_mime_hdrs|err_html_text|dns_testnames|forwarded_for|reference_age|announce_host|pconn_timeout|icp_hit_stale|always_direct|cache_mem_low|debug_options|header_access|ident_timeout|ipcache_size|request_size|never_direct|dns_children|negative_ttl|coredump_dir|pid_filename|delay_access|memory_pools|mcast_groups|dns_defnames|ident_lookup|ipcache_high|read_timeout|broken_posts|local_domain|ftp_passive|ipcache_low|quick_abort|delay_pools|announce_to|source_ping|delay_class|firewall_ip|miss_access|http_access|udp_hit_obj|snmp_access|httpd_accel|mime_table|proxy_auth|cache_peer|netdb_high|icp_access|hosts_file|cache_host|cache_swap|wais_relay|query_icmp|access_log|cache_dir|snmp_port|deny_info|client_db|cache_mem|http_port|htcp_port|cache_mgr|cache_log|ssl_proxy|netdb_low|ftp_user|local_ip|log_fqdn|no_cache|icp_port|acl)\b">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="\b(multicast-responder|offline_toggle|credentialsttl|round-robin|proxy-only|no-digest|no-query|children|disable|default|weight|parent|diskd|allow|realm|deny|heap|none|via|all|ttl|off|lru|on|q2|q1)\b">
-        <token type="NameConstant"/>
-      </rule>
-      <rule pattern="\b(server_list|client_list|squid\.conf|parameter|shutdown|info)\b">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="stats/(filedescriptors|reply_headers|utilization|redirector|vm_objects|fqdncache|objects|ipcache|netdb|dns|io)\b">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="log/(disable|status|enable|clear)=">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="\b(snmp_community|rep_mime_type|urlpath_regex|referer_regex|req_mime_type|dstdomain|url_regex|browser|method|proto|ident|time|port|user|src|dst)\b">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="(?:(?:(?:[3-9]\d?|2(?:5[0-5]|[0-4]?\d)?|1\d{0,2}|0x0*[0-9a-f]{1,2}|0+[1-3]?[0-7]{0,2})(?:\.(?:[3-9]\d?|2(?:5[0-5]|[0-4]?\d)?|1\d{0,2}|0x0*[0-9a-f]{1,2}|0+[1-3]?[0-7]{0,2})){3})|(?!.*::.*::)(?:(?!:)|:(?=:))(?:[0-9a-f]{0,4}(?:(?&lt;=::)|(?&lt;!::):)){6}(?:[0-9a-f]{0,4}(?:(?&lt;=::)|(?&lt;!::):)[0-9a-f]{0,4}(?:(?&lt;=::)|(?&lt;!:)|(?&lt;=:)(?&lt;!::):)|(?:25[0-4]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-4]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))(?:/(?:(?:(?:(?:[3-9]\d?|2(?:5[0-5]|[0-4]?\d)?|1\d{0,2}|0x0*[0-9a-f]{1,2}|0+[1-3]?[0-7]{0,2})(?:\.(?:[3-9]\d?|2(?:5[0-5]|[0-4]?\d)?|1\d{0,2}|0x0*[0-9a-f]{1,2}|0+[1-3]?[0-7]{0,2})){3})|(?!.*::.*::)(?:(?!:)|:(?=:))(?:[0-9a-f]{0,4}(?:(?&lt;=::)|(?&lt;!::):)){6}(?:[0-9a-f]{0,4}(?:(?&lt;=::)|(?&lt;!::):)[0-9a-f]{0,4}(?:(?&lt;=::)|(?&lt;!:)|(?&lt;=:)(?&lt;!::):)|(?:25[0-4]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-4]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|\b\d+\b))?">
-        <token type="LiteralNumberFloat"/>
-      </rule>
-      <rule pattern="(?:\b\d+\b(?:-\b\d+|%)?)">
-        <token type="LiteralNumber"/>
-      </rule>
-      <rule pattern="\S+">
-        <token type="Text"/>
-      </rule>
-    </state>
-    <state name="comment">
-      <rule pattern="\s*TAG:.*">
-        <token type="LiteralStringEscape"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern=".+">
-        <token type="Comment"/>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <pop depth="1"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/standard_ml.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/standard_ml.xml	(revision 67)
+++ 	(revision )
@@ -1,548 +1,0 @@
-<lexer>
-  <config>
-    <name>Standard ML</name>
-    <alias>sml</alias>
-    <filename>*.sml</filename>
-    <filename>*.sig</filename>
-    <filename>*.fun</filename>
-    <mime_type>text/x-standardml</mime_type>
-    <mime_type>application/x-standardml</mime_type>
-  </config>
-  <rules>
-    <state name="delimiters">
-      <rule pattern="\(|\[|\{">
-        <token type="Punctuation"/>
-        <push state="main"/>
-      </rule>
-      <rule pattern="\)|\]|\}">
-        <token type="Punctuation"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="\b(let|if|local)\b(?!\&#39;)">
-        <token type="KeywordReserved"/>
-        <push state="main" state="main"/>
-      </rule>
-      <rule pattern="\b(struct|sig|while)\b(?!\&#39;)">
-        <token type="KeywordReserved"/>
-        <push state="main"/>
-      </rule>
-      <rule pattern="\b(do|else|end|in|then)\b(?!\&#39;)">
-        <token type="KeywordReserved"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="root">
-      <rule>
-        <push state="main"/>
-      </rule>
-    </state>
-    <state name="breakout">
-      <rule pattern="(?=\b(where|do|handle|if|sig|op|while|case|as|else|signature|andalso|struct|infixr|functor|in|structure|then|local|rec|end|fun|of|orelse|val|include|fn|with|exception|let|and|infix|sharing|datatype|type|abstype|withtype|eqtype|nonfix|raise|open)\b(?!\&#39;))">
-        <token type="Text"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="tyvarseq">
-      <rule pattern="\s">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="\(\*">
-        <token type="CommentMultiline"/>
-        <push state="comment"/>
-      </rule>
-      <rule pattern="\&#39;[\w\&#39;]*">
-        <token type="NameDecorator"/>
-      </rule>
-      <rule pattern="[a-zA-Z][\w&#39;]*">
-        <token type="Name"/>
-      </rule>
-      <rule pattern=",">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="\)">
-        <token type="Punctuation"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="[!%&amp;$#+\-/:&lt;=&gt;?@\\~`^|*]+">
-        <token type="Name"/>
-      </rule>
-    </state>
-    <state name="char">
-      <rule pattern="[^&#34;\\]">
-        <token type="LiteralStringChar"/>
-      </rule>
-      <rule pattern="\\[\\&#34;abtnvfr]">
-        <token type="LiteralStringEscape"/>
-      </rule>
-      <rule pattern="\\\^[\x40-\x5e]">
-        <token type="LiteralStringEscape"/>
-      </rule>
-      <rule pattern="\\[0-9]{3}">
-        <token type="LiteralStringEscape"/>
-      </rule>
-      <rule pattern="\\u[0-9a-fA-F]{4}">
-        <token type="LiteralStringEscape"/>
-      </rule>
-      <rule pattern="\\\s+\\">
-        <token type="LiteralStringInterpol"/>
-      </rule>
-      <rule pattern="&#34;">
-        <token type="LiteralStringChar"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="datbind">
-      <rule>
-        <include state="whitespace"/>
-      </rule>
-      <rule pattern="\b(and)\b(?!\&#39;)">
-        <token type="KeywordReserved"/>
-        <push state="#pop" state="dname"/>
-      </rule>
-      <rule pattern="\b(withtype)\b(?!\&#39;)">
-        <token type="KeywordReserved"/>
-        <push state="#pop" state="tname"/>
-      </rule>
-      <rule pattern="\b(of)\b(?!\&#39;)">
-        <token type="KeywordReserved"/>
-      </rule>
-      <rule pattern="(\|)(\s*)([a-zA-Z][\w&#39;]*)">
-        <bygroups>
-          <token type="Punctuation"/>
-          <token type="Text"/>
-          <token type="NameClass"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(\|)(\s+)([!%&amp;$#+\-/:&lt;=&gt;?@\\~`^|*]+)">
-        <bygroups>
-          <token type="Punctuation"/>
-          <token type="Text"/>
-          <token type="NameClass"/>
-        </bygroups>
-      </rule>
-      <rule>
-        <include state="breakout"/>
-      </rule>
-      <rule>
-        <include state="core"/>
-      </rule>
-      <rule pattern="\S+">
-        <token type="Error"/>
-      </rule>
-    </state>
-    <state name="string">
-      <rule pattern="[^&#34;\\]">
-        <token type="LiteralStringDouble"/>
-      </rule>
-      <rule pattern="\\[\\&#34;abtnvfr]">
-        <token type="LiteralStringEscape"/>
-      </rule>
-      <rule pattern="\\\^[\x40-\x5e]">
-        <token type="LiteralStringEscape"/>
-      </rule>
-      <rule pattern="\\[0-9]{3}">
-        <token type="LiteralStringEscape"/>
-      </rule>
-      <rule pattern="\\u[0-9a-fA-F]{4}">
-        <token type="LiteralStringEscape"/>
-      </rule>
-      <rule pattern="\\\s+\\">
-        <token type="LiteralStringInterpol"/>
-      </rule>
-      <rule pattern="&#34;">
-        <token type="LiteralStringDouble"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="tname">
-      <rule>
-        <include state="whitespace"/>
-      </rule>
-      <rule>
-        <include state="breakout"/>
-      </rule>
-      <rule pattern="\&#39;[\w\&#39;]*">
-        <token type="NameDecorator"/>
-      </rule>
-      <rule pattern="\(">
-        <token type="Punctuation"/>
-        <push state="tyvarseq"/>
-      </rule>
-      <rule pattern="=(?![!%&amp;$#+\-/:&lt;=&gt;?@\\~`^|*]+)">
-        <token type="Punctuation"/>
-        <push state="#pop" state="typbind"/>
-      </rule>
-      <rule pattern="([a-zA-Z][\w&#39;]*)">
-        <token type="KeywordType"/>
-      </rule>
-      <rule pattern="([!%&amp;$#+\-/:&lt;=&gt;?@\\~`^|*]+)">
-        <token type="KeywordType"/>
-      </rule>
-      <rule pattern="\S+">
-        <token type="Error"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="dname">
-      <rule>
-        <include state="whitespace"/>
-      </rule>
-      <rule>
-        <include state="breakout"/>
-      </rule>
-      <rule pattern="\&#39;[\w\&#39;]*">
-        <token type="NameDecorator"/>
-      </rule>
-      <rule pattern="\(">
-        <token type="Punctuation"/>
-        <push state="tyvarseq"/>
-      </rule>
-      <rule pattern="(=)(\s*)(datatype)">
-        <bygroups>
-          <token type="Punctuation"/>
-          <token type="Text"/>
-          <token type="KeywordReserved"/>
-        </bygroups>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="=(?![!%&amp;$#+\-/:&lt;=&gt;?@\\~`^|*]+)">
-        <token type="Punctuation"/>
-        <push state="#pop" state="datbind" state="datcon"/>
-      </rule>
-      <rule pattern="([a-zA-Z][\w&#39;]*)">
-        <token type="KeywordType"/>
-      </rule>
-      <rule pattern="([!%&amp;$#+\-/:&lt;=&gt;?@\\~`^|*]+)">
-        <token type="KeywordType"/>
-      </rule>
-      <rule pattern="\S+">
-        <token type="Error"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="typbind">
-      <rule>
-        <include state="whitespace"/>
-      </rule>
-      <rule pattern="\b(and)\b(?!\&#39;)">
-        <token type="KeywordReserved"/>
-        <push state="#pop" state="tname"/>
-      </rule>
-      <rule>
-        <include state="breakout"/>
-      </rule>
-      <rule>
-        <include state="core"/>
-      </rule>
-      <rule pattern="\S+">
-        <token type="Error"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="ename">
-      <rule>
-        <include state="whitespace"/>
-      </rule>
-      <rule pattern="(exception|and)\b(\s+)([a-zA-Z][\w&#39;]*)">
-        <bygroups>
-          <token type="KeywordReserved"/>
-          <token type="Text"/>
-          <token type="NameClass"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(exception|and)\b(\s*)([!%&amp;$#+\-/:&lt;=&gt;?@\\~`^|*]+)">
-        <bygroups>
-          <token type="KeywordReserved"/>
-          <token type="Text"/>
-          <token type="NameClass"/>
-        </bygroups>
-      </rule>
-      <rule pattern="\b(of)\b(?!\&#39;)">
-        <token type="KeywordReserved"/>
-      </rule>
-      <rule>
-        <include state="breakout"/>
-      </rule>
-      <rule>
-        <include state="core"/>
-      </rule>
-      <rule pattern="\S+">
-        <token type="Error"/>
-      </rule>
-    </state>
-    <state name="vname">
-      <rule>
-        <include state="whitespace"/>
-      </rule>
-      <rule pattern="\&#39;[\w\&#39;]*">
-        <token type="NameDecorator"/>
-      </rule>
-      <rule pattern="\(">
-        <token type="Punctuation"/>
-        <push state="tyvarseq"/>
-      </rule>
-      <rule pattern="([a-zA-Z][\w&#39;]*)(\s*)(=(?![!%&amp;$#+\-/:&lt;=&gt;?@\\~`^|*]+))">
-        <bygroups>
-          <token type="NameVariable"/>
-          <token type="Text"/>
-          <token type="Punctuation"/>
-        </bygroups>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="([!%&amp;$#+\-/:&lt;=&gt;?@\\~`^|*]+)(\s*)(=(?![!%&amp;$#+\-/:&lt;=&gt;?@\\~`^|*]+))">
-        <bygroups>
-          <token type="NameVariable"/>
-          <token type="Text"/>
-          <token type="Punctuation"/>
-        </bygroups>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="([a-zA-Z][\w&#39;]*)">
-        <token type="NameVariable"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="([!%&amp;$#+\-/:&lt;=&gt;?@\\~`^|*]+)">
-        <token type="NameVariable"/>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="sname">
-      <rule>
-        <include state="whitespace"/>
-      </rule>
-      <rule>
-        <include state="breakout"/>
-      </rule>
-      <rule pattern="([a-zA-Z][\w&#39;]*)">
-        <token type="NameNamespace"/>
-      </rule>
-      <rule>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="main-fun">
-      <rule>
-        <include state="whitespace"/>
-      </rule>
-      <rule pattern="\s">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="\(\*">
-        <token type="CommentMultiline"/>
-        <push state="comment"/>
-      </rule>
-      <rule pattern="\b(fun|and)\b(?!\&#39;)">
-        <token type="KeywordReserved"/>
-        <push state="fname"/>
-      </rule>
-      <rule pattern="\b(val)\b(?!\&#39;)">
-        <token type="KeywordReserved"/>
-        <push state="#pop" state="main" state="vname"/>
-      </rule>
-      <rule pattern="\|">
-        <token type="Punctuation"/>
-        <push state="fname"/>
-      </rule>
-      <rule pattern="\b(case|handle)\b(?!\&#39;)">
-        <token type="KeywordReserved"/>
-        <push state="#pop" state="main"/>
-      </rule>
-      <rule>
-        <include state="delimiters"/>
-      </rule>
-      <rule>
-        <include state="core"/>
-      </rule>
-      <rule pattern="\S+">
-        <token type="Error"/>
-      </rule>
-    </state>
-    <state name="datcon">
-      <rule>
-        <include state="whitespace"/>
-      </rule>
-      <rule pattern="([a-zA-Z][\w&#39;]*)">
-        <token type="NameClass"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="([!%&amp;$#+\-/:&lt;=&gt;?@\\~`^|*]+)">
-        <token type="NameClass"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="\S+">
-        <token type="Error"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="dotted">
-      <rule pattern="([a-zA-Z][\w&#39;]*)(\.)">
-        <token type="NameNamespace"/>
-      </rule>
-      <rule pattern="([a-zA-Z][\w&#39;]*)">
-        <token type="Name"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="([!%&amp;$#+\-/:&lt;=&gt;?@\\~`^|*]+)">
-        <token type="Name"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="\s+">
-        <token type="Error"/>
-      </rule>
-      <rule pattern="\S+">
-        <token type="Error"/>
-      </rule>
-    </state>
-    <state name="main">
-      <rule>
-        <include state="whitespace"/>
-      </rule>
-      <rule pattern="\b(val|and)\b(?!\&#39;)">
-        <token type="KeywordReserved"/>
-        <push state="vname"/>
-      </rule>
-      <rule pattern="\b(fun)\b(?!\&#39;)">
-        <token type="KeywordReserved"/>
-        <push state="#pop" state="main-fun" state="fname"/>
-      </rule>
-      <rule>
-        <include state="delimiters"/>
-      </rule>
-      <rule>
-        <include state="core"/>
-      </rule>
-      <rule pattern="\S+">
-        <token type="Error"/>
-      </rule>
-    </state>
-    <state name="comment">
-      <rule pattern="[^(*)]">
-        <token type="CommentMultiline"/>
-      </rule>
-      <rule pattern="\(\*">
-        <token type="CommentMultiline"/>
-        <push/>
-      </rule>
-      <rule pattern="\*\)">
-        <token type="CommentMultiline"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="[(*)]">
-        <token type="CommentMultiline"/>
-      </rule>
-    </state>
-    <state name="whitespace">
-      <rule pattern="\s+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="\(\*">
-        <token type="CommentMultiline"/>
-        <push state="comment"/>
-      </rule>
-    </state>
-    <state name="core">
-      <rule pattern="(_|\}|\{|\)|;|,|\[|\(|\]|\.\.\.)">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="#&#34;">
-        <token type="LiteralStringChar"/>
-        <push state="char"/>
-      </rule>
-      <rule pattern="&#34;">
-        <token type="LiteralStringDouble"/>
-        <push state="string"/>
-      </rule>
-      <rule pattern="~?0x[0-9a-fA-F]+">
-        <token type="LiteralNumberHex"/>
-      </rule>
-      <rule pattern="0wx[0-9a-fA-F]+">
-        <token type="LiteralNumberHex"/>
-      </rule>
-      <rule pattern="0w\d+">
-        <token type="LiteralNumberInteger"/>
-      </rule>
-      <rule pattern="~?\d+\.\d+[eE]~?\d+">
-        <token type="LiteralNumberFloat"/>
-      </rule>
-      <rule pattern="~?\d+\.\d+">
-        <token type="LiteralNumberFloat"/>
-      </rule>
-      <rule pattern="~?\d+[eE]~?\d+">
-        <token type="LiteralNumberFloat"/>
-      </rule>
-      <rule pattern="~?\d+">
-        <token type="LiteralNumberInteger"/>
-      </rule>
-      <rule pattern="#\s*[1-9][0-9]*">
-        <token type="NameLabel"/>
-      </rule>
-      <rule pattern="#\s*([a-zA-Z][\w&#39;]*)">
-        <token type="NameLabel"/>
-      </rule>
-      <rule pattern="#\s+([!%&amp;$#+\-/:&lt;=&gt;?@\\~`^|*]+)">
-        <token type="NameLabel"/>
-      </rule>
-      <rule pattern="\b(datatype|abstype)\b(?!\&#39;)">
-        <token type="KeywordReserved"/>
-        <push state="dname"/>
-      </rule>
-      <rule pattern="(?=\b(exception)\b(?!\&#39;))">
-        <token type="Text"/>
-        <push state="ename"/>
-      </rule>
-      <rule pattern="\b(functor|include|open|signature|structure)\b(?!\&#39;)">
-        <token type="KeywordReserved"/>
-        <push state="sname"/>
-      </rule>
-      <rule pattern="\b(type|eqtype)\b(?!\&#39;)">
-        <token type="KeywordReserved"/>
-        <push state="tname"/>
-      </rule>
-      <rule pattern="\&#39;[\w\&#39;]*">
-        <token type="NameDecorator"/>
-      </rule>
-      <rule pattern="([a-zA-Z][\w&#39;]*)(\.)">
-        <token type="NameNamespace"/>
-        <push state="dotted"/>
-      </rule>
-      <rule pattern="\b(abstype|and|andalso|as|case|datatype|do|else|end|exception|fn|fun|handle|if|in|infix|infixr|let|local|nonfix|of|op|open|orelse|raise|rec|then|type|val|with|withtype|while|eqtype|functor|include|sharing|sig|signature|struct|structure|where)\b">
-        <token type="KeywordReserved"/>
-      </rule>
-      <rule pattern="([a-zA-Z][\w&#39;]*)">
-        <token type="Name"/>
-      </rule>
-      <rule pattern="\b(:|\|,=|=&gt;|-&gt;|#|:&gt;)\b">
-        <token type="KeywordReserved"/>
-      </rule>
-      <rule pattern="([!%&amp;$#+\-/:&lt;=&gt;?@\\~`^|*]+)">
-        <token type="Name"/>
-      </rule>
-    </state>
-    <state name="fname">
-      <rule>
-        <include state="whitespace"/>
-      </rule>
-      <rule pattern="\&#39;[\w\&#39;]*">
-        <token type="NameDecorator"/>
-      </rule>
-      <rule pattern="\(">
-        <token type="Punctuation"/>
-        <push state="tyvarseq"/>
-      </rule>
-      <rule pattern="([a-zA-Z][\w&#39;]*)">
-        <token type="NameFunction"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="([!%&amp;$#+\-/:&lt;=&gt;?@\\~`^|*]+)">
-        <token type="NameFunction"/>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <pop depth="1"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/stylus.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/stylus.xml	(revision 67)
+++ 	(revision )
@@ -1,132 +1,0 @@
-<lexer>
-  <config>
-    <name>Stylus</name>
-    <alias>stylus</alias>
-    <filename>*.styl</filename>
-    <mime_type>text/x-styl</mime_type>
-    <case_insensitive>true</case_insensitive>
-  </config>
-  <rules>
-    <state name="values">
-      <rule pattern="\s+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="(\#[a-f0-9]{3,6})">
-        <token type="LiteralNumberHex"/>
-      </rule>
-      <rule pattern="\b(use-glyph-orientation|decimal-leading-zero|ruby-base-container|ruby-text-container|table-column-group|table-header-group|geometricPrecision|table-footer-group|optimizeLegibility|alternate-reverse|repeat no-repeat|table-row-group|all-petite-caps|ultra-condensed|extra-condensed|box-decoration|sideways-right|extra-expanded|no-close-quote|all-small-caps|semi-condensed|ultra-expanded|column-reverse|space-between|semi-expanded|table-caption|no-open-quote|sideways-left|double-circle|vertical-text|optimizeSpeed|weight style|currentColor|titling-caps|match-parent|table-column|line-through|inline-block|inline-table|wrap-reverse|avoid-column|manipulation|space-around|context-menu|lower-alpha|row-reverse|not-allowed|content-box|ease-in-out|close-quote|lower-latin|crisp-edges|lower-roman|lower-greek|upper-alpha|upper-latin|upper-roman|nwse-resize|nesw-resize|preserve-3d|inline-flex|petite-caps|color-dodge|descendants|padding-box|capitalize|small-caps|difference|inter-word|step-start|all-scroll|stroke-box|soft-light|margin-box|open-quote|table-cell|row-resize|border-box|hard-light|break-word|color-burn|luminosity|full-width|col-resize|from-image|avoid-page|scale-down|saturation|sans-serif|flex-start|distribute|horizontal|alternate|ruby-text|force-end|list-item|se-resize|mandatory|exclusion|ns-resize|underline|ruby-base|ew-resize|condensed|container|uppercase|no-repeat|nw-resize|table-row|backwards|crosshair|proximity|sw-resize|lowercase|allow-end|each-line|monospace|pixelated|ne-resize|luminance|pan-right|ellipsis|pan-down|pan-left|overline|multiply|progress|relative|infinite|repeat-x|repeat-y|georgian|forwards|flex-end|s-resize|fill-box|expanded|separate|ease-out|sideways|e-resize|step-end|n-resize|collapse|triangle|baseline|view-box|w-resize|armenian|absolute|xx-large|xx-small|vertical|zoom-out|contain|ease-in|running|no-drop|zoom-in|unicase|hanging|smaller|x-large|overlay|compact|lighter|lighten|objects|oblique|x-small|reverse|stretch|upright|cursive|inherit|initial|outside|pointer|decimal|default|justify|visible|balance|isolate|fantasy|paused|static|pan-up|invert|inside|italic|weight|inline|hidden|outset|larger|repeat|always|spaces|sticky|circle|digits|linear|column|smooth|nowrap|bolder|normal|sesame|dashed|groove|darken|bottom|run-in|manual|dotted|double|medium|filled|screen|scroll|center|strict|square|edges|serif|start|thick|first|clone|fixed|slice|small|under|unset|block|color|round|solid|space|right|ridge|blink|below|pan-y|avoid|large|cover|inset|alpha|local|alias|style|loose|table|mixed|pan-x|page|ruby|disc|none|snap|ease|text|show|thin|clip|left|open|wrap|fill|cell|flat|flex|flip|last|both|help|bold|over|hide|wait|icon|move|auto|copy|wavy|top|ltr|row|rtl|end|hue|dot|off|all|ink|to|on)\b">
-        <token type="KeywordConstant"/>
-      </rule>
-      <rule pattern="\;?">
-        <token type="Punctuation"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="root">
-      <rule pattern="([ \t]*\n|\s+)">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="[!$][\w-]+">
-        <token type="NameVariable"/>
-      </rule>
-      <rule pattern="@[\w-]+">
-        <token type="KeywordPseudo"/>
-        <push state="atrule"/>
-      </rule>
-      <rule pattern="(\.)([\w-]+)">
-        <bygroups>
-          <token type="Punctuation"/>
-          <token type="NameClass"/>
-        </bygroups>
-      </rule>
-      <rule pattern="for|if|else if|else|unless|return|\&amp;">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="([\w-]+)(\()">
-        <bygroups>
-          <token type="NameDecorator"/>
-          <token type="Punctuation"/>
-        </bygroups>
-        <push state="function-start"/>
-      </rule>
-      <rule pattern="(\+)([\w-]+)(\(\))">
-        <bygroups>
-          <token type="Keyword"/>
-          <token type="NameDecorator"/>
-          <token type="Punctuation"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(-webkit-|-khtml-|prince-|-atsc-|-moz-|-rim-|-wap-|-ms-|-xv-|mso-|-ah-|-hp-|-ro-|-tc-|-o-)">
-        <token type="NameProperty"/>
-      </rule>
-      <rule pattern="\b(align-content|align-items|align-self|alignment-baseline|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|appearance|azimuth|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|baseline-shift|bookmark-label|bookmark-level|bookmark-state|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-boundary|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-decoration-break|box-shadow|box-sizing|box-snap|box-suppress|break-after|break-before|break-inside|caption-side|caret|caret-animation|caret-color|caret-shape|chains|clear|clip|clip-path|clip-rule|color|color-interpolation-filters|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|counter-set|crop|cue|cue-after|cue-before|cursor|direction|display|dominant-baseline|elevation|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|float-defer|float-offset|float-reference|flood-color|flood-opacity|flow|flow-from|flow-into|font|font-family|font-feature-settings|font-kerning|font-language-override|font-size|font-size-adjust|font-stretch|font-style|font-synthesis|font-variant|font-variant-alternates|font-variant-caps|font-variant-east-asian|font-variant-ligatures|font-variant-numeric|font-variant-position|font-weight|footnote-display|footnote-policy|glyph-orientation-vertical|grid|grid-area|grid-auto-columns|grid-auto-flow|grid-auto-rows|grid-column|grid-column-end|grid-column-gap|grid-column-start|grid-gap|grid-row|grid-row-end|grid-row-gap|grid-row-start|grid-template|grid-template-areas|grid-template-columns|grid-template-rows|hanging-punctuation|height|hyphenate-character|hyphenate-limit-chars|hyphenate-limit-last|hyphenate-limit-lines|hyphenate-limit-zone|hyphens|image-orientation|image-resolution|initial-letter|initial-letter-align|initial-letter-wrap|isolation|justify-content|justify-items|justify-self|left|letter-spacing|lighting-color|line-break|line-grid|line-height|line-snap|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|marker-side|marquee-direction|marquee-loop|marquee-speed|marquee-style|mask|mask-border|mask-border-mode|mask-border-outset|mask-border-repeat|mask-border-slice|mask-border-source|mask-border-width|mask-clip|mask-composite|mask-image|mask-mode|mask-origin|mask-position|mask-repeat|mask-size|mask-type|max-height|max-lines|max-width|min-height|min-width|mix-blend-mode|motion|motion-offset|motion-path|motion-rotation|move-to|nav-down|nav-left|nav-right|nav-up|object-fit|object-position|offset-after|offset-before|offset-end|offset-start|opacity|order|orphans|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-style|overflow-wrap|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page|page-break-after|page-break-before|page-break-inside|page-policy|pause|pause-after|pause-before|perspective|perspective-origin|pitch|pitch-range|play-during|polar-angle|polar-distance|position|presentation-level|quotes|region-fragment|resize|rest|rest-after|rest-before|richness|right|rotation|rotation-point|ruby-align|ruby-merge|ruby-position|running|scroll-snap-coordinate|scroll-snap-destination|scroll-snap-points-x|scroll-snap-points-y|scroll-snap-type|shape-image-threshold|shape-inside|shape-margin|shape-outside|size|speak|speak-as|speak-header|speak-numeral|speak-punctuation|speech-rate|stress|string-set|tab-size|table-layout|text-align|text-align-last|text-combine-upright|text-decoration|text-decoration-color|text-decoration-line|text-decoration-skip|text-decoration-style|text-emphasis|text-emphasis-color|text-emphasis-position|text-emphasis-style|text-indent|text-justify|text-orientation|text-overflow|text-shadow|text-space-collapse|text-space-trim|text-spacing|text-transform|text-underline-position|text-wrap|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|user-select|vertical-align|visibility|voice-balance|voice-duration|voice-family|voice-pitch|voice-range|voice-rate|voice-stress|voice-volume|volume|white-space|widows|width|will-change|word-break|word-spacing|word-wrap|wrap-after|wrap-before|wrap-flow|wrap-inside|wrap-through|writing-mode|z-index)\b(\:)?">
-        <bygroups>
-          <token type="NameProperty"/>
-          <token type="Punctuation"/>
-        </bygroups>
-        <push state="values"/>
-      </rule>
-      <rule pattern="\b(a|abbr|acronym|address|applet|area|article|aside|audio|b|base(?:front)?|bd(?:i|o)|big|blockquote|body|br|button|canvas|caption|center|cite|code|col|colgroup|data|datalist|d(?:d|l|t)|del|details|dfn|dialog|dir|div|em(?:bed)?|fieldset|fig(?:caption|ure)|font|footer|form|frame(?:set)?|h[1-6]+|head(?:er)?|hr|html|i|iframe|img|input|ins|kbd|label|legend|li|link|main|map|mark|meta|meter|nav|noframes|noscript|object|ol|optgroup|option|output|p|param|picture|pre|progress|q|r(?:p|t|uby)|s|samp|script|section|select|small|source|span|strike|strong|style|sub|summary|sup|svg|table|tbody|td|template|textarea|tfoot|th|thead|time|title|tr|track|tt|u|ul|var|video|wbr)\b">
-        <token type="NameTag"/>
-      </rule>
-      <rule pattern="\b(cjk-ideographic|katakana-iroha|hiragana-iroha|small-caption|bidi-override|center-right|center-left|text-bottom|message-box|continuous|status-bar|right-side|rightwards|spell-out|left-side|landscape|far-right|leftwards|narrower|portrait|katakana|far-left|text-top|pre-wrap|hiragana|pre-line|silent|x-high|faster|higher|middle|x-soft|behind|x-fast|hebrew|slower|x-loud|super|above|lower|wider|level|aural|embed|x-low|cross|crop|fast|once|high|slow|soft|loud|yes|pre|low|mix)\b">
-        <token type="KeywordConstant"/>
-      </rule>
-      <rule pattern="\b(lightgoldenrodyellow|mediumspringgreen|mediumaquamarine|mediumslateblue|mediumturquoise|mediumvioletred|lightsteelblue|cornflowerblue|lightslategray|blanchedalmond|mediumseagreen|lightslategrey|darkolivegreen|darkgoldenrod|darkslateblue|lightseagreen|rebeccapurple|darkslategrey|darkslategray|palegoldenrod|paleturquoise|palevioletred|darkturquoise|lavenderblush|antiquewhite|mediumorchid|lightskyblue|mediumpurple|midnightblue|darkseagreen|lemonchiffon|springgreen|yellowgreen|greenyellow|navajowhite|darkmagenta|lightyellow|transparent|lightsalmon|forestgreen|saddlebrown|deepskyblue|floralwhite|dodgerblue|ghostwhite|lightcoral|sandybrown|darkviolet|papayawhip|mediumblue|chartreuse|lightgreen|whitesmoke|aquamarine|darkorange|darksalmon|powderblue|darkorchid|blueviolet|indianred|mintcream|mistyrose|olivedrab|goldenrod|orangered|lawngreen|gainsboro|lightblue|firebrick|lightcyan|peachpuff|lightgray|darkkhaki|lightgrey|darkgreen|rosybrown|royalblue|slateblue|chocolate|cadetblue|burlywood|slategray|slategrey|limegreen|steelblue|turquoise|palegreen|lightpink|aliceblue|moccasin|darkgrey|darkblue|seagreen|lavender|cornsilk|deeppink|seashell|darkgray|honeydew|darkcyan|dimgrey|magenta|crimson|darkred|hotpink|skyblue|oldlace|dimgray|fuchsia|thistle|orchid|indigo|orange|tomato|violet|salmon|yellow|silver|purple|bisque|sienna|maroon|black|linen|azure|white|wheat|khaki|green|olive|ivory|coral|brown|beige|snow|blue|navy|aqua|teal|gray|gold|grey|lime|peru|cyan|pink|plum|tan|red)\b">
-        <token type="KeywordConstant"/>
-      </rule>
-      <rule pattern="(\{|\}|\(|\)|\[|\]|,|:|;)">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="(\.|\!|\-|\+|\~|\*\*|\*|\/|\%|\.\.\.|\.\.|\&lt;\=|\&gt;\=|\&lt;|\&gt;|\=\=|\!\=|\&amp;\&amp;|\|\||\=|\:\=|\?\=|\+\=|\-\=|\*\=|\/\=|\%\=|\?|\:)">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="\b(and|if unless|in|is|is a|is defined|is not|isnt|or|not)\b">
-        <token type="OperatorWord"/>
-      </rule>
-      <rule pattern="(\#[a-f0-9]{3,6})">
-        <token type="LiteralNumberHex"/>
-      </rule>
-      <rule pattern="\n">
-        <token type="Text"/>
-      </rule>
-    </state>
-    <state name="inline-comment">
-      <rule pattern="\*/">
-        <token type="Comment"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="atrule">
-      <rule pattern="\{">
-        <token type="Punctuation"/>
-        <push state="atcontent"/>
-      </rule>
-      <rule pattern="$">
-        <token type="Punctuation"/>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <include state="root"/>
-      </rule>
-    </state>
-    <state name="atcontent">
-      <rule>
-        <include state="root"/>
-      </rule>
-      <rule pattern="\}">
-        <token type="Punctuation"/>
-        <pop depth="2"/>
-      </rule>
-    </state>
-    <state name="function-start">
-      <rule pattern="\)">
-        <token type="Punctuation"/>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <include state="root"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/swift.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/swift.xml	(revision 67)
+++ 	(revision )
@@ -1,207 +1,0 @@
-<lexer>
-  <config>
-    <name>Swift</name>
-    <alias>swift</alias>
-    <filename>*.swift</filename>
-    <mime_type>text/x-swift</mime_type>
-  </config>
-  <rules>
-    <state name="comment">
-      <rule pattern=":param: [a-zA-Z_]\w*|:returns?:|(FIXME|MARK|TODO):">
-        <token type="CommentSpecial"/>
-      </rule>
-    </state>
-    <state name="preproc">
-      <rule pattern="\n">
-        <token type="Text"/>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <include state="keywords"/>
-      </rule>
-      <rule pattern="[A-Za-z]\w*">
-        <token type="CommentPreproc"/>
-      </rule>
-      <rule>
-        <include state="root"/>
-      </rule>
-    </state>
-    <state name="comment-single">
-      <rule pattern="\n">
-        <token type="Text"/>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <include state="comment"/>
-      </rule>
-      <rule pattern="[^\n]">
-        <token type="CommentSingle"/>
-      </rule>
-    </state>
-    <state name="module">
-      <rule pattern="\n">
-        <token type="Text"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="[a-zA-Z_]\w*">
-        <token type="NameClass"/>
-      </rule>
-      <rule>
-        <include state="root"/>
-      </rule>
-    </state>
-    <state name="string">
-      <rule pattern="\\\(">
-        <token type="LiteralStringInterpol"/>
-        <push state="string-intp"/>
-      </rule>
-      <rule pattern="&#34;">
-        <token type="LiteralString"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="\\[&#39;&#34;\\nrt]|\\x[0-9a-fA-F]{2}|\\[0-7]{1,3}|\\u[0-9a-fA-F]{4}|\\U[0-9a-fA-F]{8}">
-        <token type="LiteralStringEscape"/>
-      </rule>
-      <rule pattern="[^\\&#34;]+">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="\\">
-        <token type="LiteralString"/>
-      </rule>
-    </state>
-    <state name="string-intp">
-      <rule pattern="\(">
-        <token type="LiteralStringInterpol"/>
-        <push/>
-      </rule>
-      <rule pattern="\)">
-        <token type="LiteralStringInterpol"/>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <include state="root"/>
-      </rule>
-    </state>
-    <state name="root">
-      <rule pattern="\n">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="\s+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="//">
-        <token type="CommentSingle"/>
-        <push state="comment-single"/>
-      </rule>
-      <rule pattern="/\*">
-        <token type="CommentMultiline"/>
-        <push state="comment-multi"/>
-      </rule>
-      <rule pattern="#(if|elseif|else|endif|available)\b">
-        <token type="CommentPreproc"/>
-        <push state="preproc"/>
-      </rule>
-      <rule>
-        <include state="keywords"/>
-      </rule>
-      <rule pattern="(ExtendedGraphemeClusterLiteralConvertible|_SwiftNSDictionaryRequiredOverridesType|_SwiftNSStringRequiredOverridesType|_SwiftNSArrayRequiredOverridesType|AutoreleasingUnsafeMutablePointer|UnicodeScalarLiteralConvertible|RangeReplaceableCollectionType|StringInterpolationConvertible|DictionaryLiteralConvertible|UnsafeBufferPointerGenerator|_SwiftNSFastEnumerationType|LazyBidirectionalCollection|ExtendedGraphemeClusterType|FloatingPointClassification|ImplicitlyUnwrappedOptional|UnsafeMutableBufferPointer|LazyRandomAccessCollection|FilterCollectionViewIndex|_ExtensibleCollectionType|IntegerLiteralConvertible|ReverseBidirectionalIndex|BooleanLiteralConvertible|StringLiteralConvertible|BidirectionalReverseView|ReverseRandomAccessIndex|ExtensibleCollectionType|FloatLiteralConvertible|RandomAccessReverseView|_BidirectionalIndexType|ArrayLiteralConvertible|_RandomAccessIndexType|_IntegerArithmeticType|BidirectionalIndexType|StrideThroughGenerator|_SwiftNSDictionaryType|_SwiftNSEnumeratorType|BitwiseOperationsType|RandomAccessIndexType|NilLiteralConvertible|_ObjectiveCBridgeable|UnicodeDecodingResult|LazyForwardCollection|IntegerArithmeticType|MutableCollectionType|PermutationGenerator|MapSequenceGenerator|_UnsignedIntegerType|FilterCollectionView|UnsafeMutablePointer|UnsafeBufferPointer|UnsignedIntegerType|_SwiftNSCopyingType|DictionaryGenerator|_SignedIntegerType|_SwiftNSStringType|IntegerLiteralType|FilterSequenceView|EnumerateGenerator|BooleanLiteralType|HeapBufferStorage|EnumerateSequence|MirrorDisposition|_SignedNumberType|UnicodeScalarType|StringLiteralType|GeneratorSequence|_ForwardIndexType|StrideToGenerator|_SwiftNSArrayType|IndexingGenerator|_RawOptionSetType|FloatingPointType|MapCollectionView|SignedIntegerType|OutputStreamType|UnicodeCodecType|HalfOpenInterval|NSObjectProtocol|SignedNumberType|ObjectIdentifier|RawOptionSetType|_CocoaStringType|ForwardIndexType|RawRepresentable|MutableSliceable|FloatLiteralType|_ArrayBufferType|AbsoluteValuable|CFunctionPointer|QuickLookObject|MapSequenceView|EmptyCollection|FilterGenerator|_CollectionType|CollectionOfOne|ContiguousArray|DictionaryIndex|GeneratorOfOne|DebugPrintable|CVaListPointer|CUnsignedShort|COpaquePointer|EmptyGenerator|_Incrementable|RangeGenerator|NSErrorPointer|_Sequence_Type|ClosedInterval|CollectionType|ZipGenerator2|UnsafePointer|GeneratorType|StrideThrough|CUnsignedLong|UnicodeScalar|_SequenceType|LazySequence|IntervalType|SequenceType|StaticString|CUnsignedInt|_IntegerType|BooleanType|CVarArgType|_Strideable|_Comparable|GeneratorOf|IntegerType|Reflectable|CSignedChar|Streamable|SequenceOf|Dictionary|Comparable|HeapBuffer|_Sliceable|MirrorType|Strideable|CLongLong|CWideChar|Printable|Equatable|Unmanaged|Sliceable|Character|AnyObject|Optional|StrideTo|SinkType|AnyClass|Hashable|Selector|Float32|CChar16|UIntMax|Float80|Float64|RawByte|Process|CDouble|CChar32|UInt16|UInt32|C_ARGC|C_ARGV|UInt64|CFloat|String|SinkOf|Repeat|OnHeap|Double|CShort|IntMax|UTF16|Slice|CLong|UTF32|UInt8|Range|UWord|Array|Float|Int64|Int32|Int16|CBool|CChar|UInt|Int8|Word|UTF8|Zip2|Void|Bool|CInt|Any|Int|Bit)\b">
-        <token type="NameBuiltin"/>
-      </rule>
-      <rule pattern="(withUnsafeMutablePointers|withUnsafeMutablePointer|lexicographicalCompare|withExtendedLifetime|preconditionFailure|withUnsafePointers|underestimateCount|withUnsafePointer|assertionFailure|unsafeAddressOf|unsafeDowncast|countElements|unsafeBitCast|toDebugString|strideofValue|removeAtIndex|alignofValue|debugPrintln|precondition|sizeofValue|removeRange|numericCast|removeLast|debugPrint|fatalError|minElement|maxElement|startsWith|withVaList|partition|removeAll|transcode|dropFirst|enumerate|getVaList|strideof|contains|overlaps|dropLast|distance|toString|advance|println|alignof|reflect|indices|reverse|isEmpty|prefix|stride|sizeof|insert|assert|sorted|splice|filter|extend|reduce|suffix|equal|print|count|split|first|swap|dump|sort|lazy|last|join|find|abs|min|max|map)\b">
-        <token type="NameBuiltinPseudo"/>
-      </rule>
-      <rule pattern="\$\d+">
-        <token type="NameVariable"/>
-      </rule>
-      <rule pattern="0b[01_]+">
-        <token type="LiteralNumberBin"/>
-      </rule>
-      <rule pattern="0o[0-7_]+">
-        <token type="LiteralNumberOct"/>
-      </rule>
-      <rule pattern="0x[0-9a-fA-F_]+">
-        <token type="LiteralNumberHex"/>
-      </rule>
-      <rule pattern="[0-9][0-9_]*(\.[0-9_]+[eE][+\-]?[0-9_]+|\.[0-9_]*|[eE][+\-]?[0-9_]+)">
-        <token type="LiteralNumberFloat"/>
-      </rule>
-      <rule pattern="[0-9][0-9_]*">
-        <token type="LiteralNumberInteger"/>
-      </rule>
-      <rule pattern="&#34;">
-        <token type="LiteralString"/>
-        <push state="string"/>
-      </rule>
-      <rule pattern="[(){}\[\].,:;=@#`?]|-&gt;|[&lt;&amp;?](?=\w)|(?&lt;=\w)[&gt;!?]">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="[/=\-+!*%&lt;&gt;&amp;|^?~]+">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="[a-zA-Z_]\w*">
-        <token type="Name"/>
-      </rule>
-    </state>
-    <state name="comment-multi">
-      <rule>
-        <include state="comment"/>
-      </rule>
-      <rule pattern="[^*/]">
-        <token type="CommentMultiline"/>
-      </rule>
-      <rule pattern="/\*">
-        <token type="CommentMultiline"/>
-        <push/>
-      </rule>
-      <rule pattern="\*/">
-        <token type="CommentMultiline"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="[*/]">
-        <token type="CommentMultiline"/>
-      </rule>
-    </state>
-    <state name="keywords">
-      <rule pattern="(fallthrough|#selector|continue|default|repeat|switch|return|throw|catch|where|break|guard|defer|while|case|else|try|for|if|do|is|in|as)\b">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="@availability\([^)]+\)">
-        <token type="KeywordReserved"/>
-      </rule>
-      <rule pattern="(@UIApplicationMain|@NSApplicationMain|@IBInspectable|@availability|@IBDesignable|associativity|@autoclosure|convenience|nonmutating|@NSManaged|@NSCopying|precedence|@IBAction|@noreturn|@IBOutlet|override|optional|mutating|indirect|Protocol|rethrows|required|willSet|dynamic|postfix|unowned|throws|prefix|didSet|final|inout|@objc|infix|right|lazy|none|weak|Type|left|get|set)\b">
-        <token type="KeywordReserved"/>
-      </rule>
-      <rule pattern="(as|dynamicType|false|is|nil|self|Self|super|true|__COLUMN__|__FILE__|__FUNCTION__|__LINE__|_|#(?:file|line|column|function))\b">
-        <token type="KeywordConstant"/>
-      </rule>
-      <rule pattern="import\b">
-        <token type="KeywordDeclaration"/>
-        <push state="module"/>
-      </rule>
-      <rule pattern="(class|enum|extension|struct|protocol)(\s+)([a-zA-Z_]\w*)">
-        <bygroups>
-          <token type="KeywordDeclaration"/>
-          <token type="Text"/>
-          <token type="NameClass"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(func)(\s+)([a-zA-Z_]\w*)">
-        <bygroups>
-          <token type="KeywordDeclaration"/>
-          <token type="Text"/>
-          <token type="NameFunction"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(var|let)(\s+)([a-zA-Z_]\w*)">
-        <bygroups>
-          <token type="KeywordDeclaration"/>
-          <token type="Text"/>
-          <token type="NameVariable"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(typealias|extension|subscript|internal|protocol|operator|private|public|struct|deinit|static|import|class|init|func|enum|let|var)\b">
-        <token type="KeywordDeclaration"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/systemd.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/systemd.xml	(revision 67)
+++ 	(revision )
@@ -1,63 +1,0 @@
-<lexer>
-  <config>
-    <name>SYSTEMD</name>
-    <alias>systemd</alias>
-    <filename>*.automount</filename>
-    <filename>*.device</filename>
-    <filename>*.dnssd</filename>
-    <filename>*.link</filename>
-    <filename>*.mount</filename>
-    <filename>*.netdev</filename>
-    <filename>*.network</filename>
-    <filename>*.path</filename>
-    <filename>*.scope</filename>
-    <filename>*.service</filename>
-    <filename>*.slice</filename>
-    <filename>*.socket</filename>
-    <filename>*.swap</filename>
-    <filename>*.target</filename>
-    <filename>*.timer</filename>
-    <mime_type>text/plain</mime_type>
-  </config>
-  <rules>
-    <state name="root">
-      <rule pattern="\s+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="[;#].*">
-        <token type="Comment"/>
-      </rule>
-      <rule pattern="\[.*?\]$">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="(.*?)(=)(.*)(\\\n)">
-        <bygroups>
-          <token type="NameAttribute"/>
-          <token type="Operator"/>
-          <token type="LiteralString"/>
-          <token type="Text"/>
-        </bygroups>
-        <push state="continuation"/>
-      </rule>
-      <rule pattern="(.*?)(=)(.*)">
-        <bygroups>
-          <token type="NameAttribute"/>
-          <token type="Operator"/>
-          <token type="LiteralString"/>
-        </bygroups>
-      </rule>
-    </state>
-    <state name="continuation">
-      <rule pattern="(.*?)(\\\n)">
-        <bygroups>
-          <token type="LiteralString"/>
-          <token type="Text"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(.*)">
-        <token type="LiteralString"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/systemverilog.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/systemverilog.xml	(revision 67)
+++ 	(revision )
@@ -1,181 +1,0 @@
-<lexer>
-  <config>
-    <name>systemverilog</name>
-    <alias>systemverilog</alias>
-    <alias>sv</alias>
-    <filename>*.sv</filename>
-    <filename>*.svh</filename>
-    <mime_type>text/x-systemverilog</mime_type>
-    <ensure_nl>true</ensure_nl>
-  </config>
-  <rules>
-    <state name="macro">
-      <rule pattern="[^/\n]+">
-        <token type="CommentPreproc"/>
-      </rule>
-      <rule pattern="/[*](.|\n)*?[*]/">
-        <token type="CommentMultiline"/>
-      </rule>
-      <rule pattern="//.*?\n">
-        <token type="CommentSingle"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="/">
-        <token type="CommentPreproc"/>
-      </rule>
-      <rule pattern="(?&lt;=\\)\n">
-        <token type="CommentPreproc"/>
-      </rule>
-      <rule pattern="\n">
-        <token type="CommentPreproc"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="import">
-      <rule pattern="[\w:]+\*?">
-        <token type="NameNamespace"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="root">
-      <rule pattern="^\s*`define">
-        <token type="CommentPreproc"/>
-        <push state="macro"/>
-      </rule>
-      <rule pattern="^(\s*)(package)(\s+)">
-        <bygroups>
-          <token type="Text"/>
-          <token type="KeywordNamespace"/>
-          <token type="Text"/>
-        </bygroups>
-      </rule>
-      <rule pattern="^(\s*)(import)(\s+)(&#34;DPI(?:-C)?&#34;)(\s+)">
-        <bygroups>
-          <token type="Text"/>
-          <token type="KeywordNamespace"/>
-          <token type="Text"/>
-          <token type="LiteralString"/>
-          <token type="Text"/>
-        </bygroups>
-      </rule>
-      <rule pattern="^(\s*)(import)(\s+)">
-        <bygroups>
-          <token type="Text"/>
-          <token type="KeywordNamespace"/>
-          <token type="Text"/>
-        </bygroups>
-        <push state="import"/>
-      </rule>
-      <rule pattern="\n">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="\s+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="\\\n">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="/(\\\n)?/(\n|(.|\n)*?[^\\]\n)">
-        <token type="CommentSingle"/>
-      </rule>
-      <rule pattern="/(\\\n)?[*](.|\n)*?[*](\\\n)?/">
-        <token type="CommentMultiline"/>
-      </rule>
-      <rule pattern="[{}#@]">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="L?&#34;">
-        <token type="LiteralString"/>
-        <push state="string"/>
-      </rule>
-      <rule pattern="L?&#39;(\\.|\\[0-7]{1,3}|\\x[a-fA-F0-9]{1,2}|[^\\\&#39;\n])&#39;">
-        <token type="LiteralStringChar"/>
-      </rule>
-      <rule pattern="(\d+\.\d*|\.\d+|\d+)[eE][+-]?\d+[lL]?">
-        <token type="LiteralNumberFloat"/>
-      </rule>
-      <rule pattern="(\d+\.\d*|\.\d+|\d+[fF])[fF]?">
-        <token type="LiteralNumberFloat"/>
-      </rule>
-      <rule pattern="([0-9]+)|(\&#39;h)[0-9a-fA-F]+">
-        <token type="LiteralNumberHex"/>
-      </rule>
-      <rule pattern="([0-9]+)|(\&#39;b)[01]+">
-        <token type="LiteralNumberBin"/>
-      </rule>
-      <rule pattern="([0-9]+)|(\&#39;d)[0-9]+">
-        <token type="LiteralNumberInteger"/>
-      </rule>
-      <rule pattern="([0-9]+)|(\&#39;o)[0-7]+">
-        <token type="LiteralNumberOct"/>
-      </rule>
-      <rule pattern="\&#39;[01xz]">
-        <token type="LiteralNumber"/>
-      </rule>
-      <rule pattern="\d+[Ll]?">
-        <token type="LiteralNumberInteger"/>
-      </rule>
-      <rule pattern="\*/">
-        <token type="Error"/>
-      </rule>
-      <rule pattern="[~!%^&amp;*+=|?:&lt;&gt;/-]">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="[()\[\],.;\&#39;]">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="`[a-zA-Z_]\w*">
-        <token type="NameConstant"/>
-      </rule>
-      <rule pattern="(pulsestyle_ondetect|pulsestyle_onevent|noshowcancelled|sync_accept_on|sync_reject_on|showcancelled|timeprecision|endprimitive|randsequence|s_until_with|s_eventually|always_latch|endinterface|illegal_bins|macromodule|always_comb|endfunction|endproperty|first_match|endsequence|endgenerate|ignore_bins|endclocking|until_with|localparam|coverpoint|eventually|throughout|s_nexttime|endprogram|endspecify|endchecker|wait_order|constraint|covergroup|endpackage|endconfig|interface|accept_on|shortreal|parameter|primitive|intersect|protected|join_none|automatic|reject_on|always_ff|specparam|endmodule|shortint|join_any|endclass|sequence|defparam|scalared|deassign|endgroup|timeunit|instance|continue|restrict|clocking|nexttime|s_always|rtranif1|endtable|rtranif0|unsigned|priority|vectored|property|pulldown|wildcard|generate|function|realtime|forkjoin|randcase|context|forever|release|virtual|strong0|program|untyped|posedge|package|foreach|extends|specify|unique0|typedef|chandle|implies|checker|negedge|tranif1|initial|modport|strong1|matches|tranif0|endtask|integer|supply0|endcase|supply1|longint|disable|s_until|default|liblist|library|include|bufif0|design|tagged|struct|inside|medium|signed|config|highz1|incdir|import|expect|triand|trireg|export|unique|notif0|notif1|return|ifnone|output|highz0|packed|bufif1|repeat|global|genvar|binsof|extern|string|before|static|assume|assign|pullup|assert|always|within|strong|module|final|union|rcmos|casex|casez|trior|alias|pull1|pull0|break|uwire|randc|rnmos|rpmos|rtran|class|const|cover|weak1|until|logic|local|weak0|large|table|force|input|inout|small|solve|begin|super|event|while|cross|void|fork|enum|wait|cmos|bind|else|edge|join|nand|task|this|dist|time|cell|nmos|tran|wand|wire|bins|with|tri1|pmos|xnor|pure|type|real|rand|case|byte|weak|tri0|null|int|use|ref|var|tri|end|for|wor|iff|xor|bit|let|new|nor|and|not|reg|buf|or|if|do)\b">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="(`nounconnected_drive|`unconnected_drive|`default_nettype|`begin_keywords|`endcelldefine|`end_keywords|`undefineall|`celldefine|`timescale|`__LINE__|`resetall|`__FILE__|`include|`ifndef|`pragma|`define|`undef|`endif|`elsif|`ifdef|`else|`line)\b">
-        <token type="CommentPreproc"/>
-      </rule>
-      <rule pattern="(\$dumpportsflush|\$dumpportslimit|\$value\$plusargs|\$dumpportsoff|\$dumpportsall|\$dumpportson|\$monitoroff|\$writememb|\$fdisplayo|\$fdisplayh|\$dumpports|\$dumplimit|\$dumpflush|\$fmonitorb|\$fmonitoro|\$monitoron|\$fdisplayb|\$writememh|\$fmonitorh|\$readmemb|\$fdisplay|\$monitorh|\$dumpfile|\$sformatf|\$monitorb|\$monitoro|\$displayb|\$plusargs|\$fmonitor|\$displayo|\$fstrobeo|\$displayh|\$fstrobeh|\$fstrobeb|\$readmemh|\$dumpvars|\$fstrobe|\$sformat|\$strobeb|\$swriteh|\$strobeh|\$strobeo|\$swriteb|\$fwriteh|\$fwriteo|\$monitor|\$dumpall|\$dumpoff|\$fwriteb|\$display|\$swriteo|\$fflush|\$random|\$dumpon|\$fscanf|\$rewind|\$writeh|\$writeo|\$sscanf|\$strobe|\$writeb|\$finish|\$ungetc|\$fclose|\$ferror|\$swrite|\$fwrite|\$fgetc|\$fseek|\$fgets|\$write|\$fopen|\$fread|\$ftell|\$test|\$feof)\b">
-        <token type="NameBuiltin"/>
-      </rule>
-      <rule pattern="(class)(\s+)">
-        <bygroups>
-          <token type="Keyword"/>
-          <token type="Text"/>
-        </bygroups>
-        <push state="classname"/>
-      </rule>
-      <rule pattern="(woshortreal|shortint|realtime|longint|integer|supply0|supply1|triand|trireg|uwire|logic|trior|byte|wand|tri0|tri1|time|real|wire|reg|bit|int|tri)\b">
-        <token type="KeywordType"/>
-      </rule>
-      <rule pattern="[a-zA-Z_]\w*:(?!:)">
-        <token type="NameLabel"/>
-      </rule>
-      <rule pattern="\$?[a-zA-Z_]\w*">
-        <token type="Name"/>
-      </rule>
-    </state>
-    <state name="classname">
-      <rule pattern="[a-zA-Z_]\w*">
-        <token type="NameClass"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="string">
-      <rule pattern="&#34;">
-        <token type="LiteralString"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="\\([\\abfnrtv&#34;\&#39;]|x[a-fA-F0-9]{2,4}|[0-7]{1,3})">
-        <token type="LiteralStringEscape"/>
-      </rule>
-      <rule pattern="[^\\&#34;\n]+">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="\\\n">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="\\">
-        <token type="LiteralString"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/tablegen.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/tablegen.xml	(revision 67)
+++ 	(revision )
@@ -1,69 +1,0 @@
-<lexer>
-  <config>
-    <name>TableGen</name>
-    <alias>tablegen</alias>
-    <filename>*.td</filename>
-    <mime_type>text/x-tablegen</mime_type>
-  </config>
-  <rules>
-    <state name="whitespace">
-      <rule pattern="(\n|\s)+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="//.*?\n">
-        <token type="Comment"/>
-      </rule>
-    </state>
-    <state name="keyword">
-      <rule pattern="(multiclass|foreach|string|class|field|defm|bits|code|list|def|int|let|dag|bit|in)\b">
-        <token type="Keyword"/>
-      </rule>
-    </state>
-    <state name="root">
-      <rule>
-        <include state="macro"/>
-      </rule>
-      <rule>
-        <include state="whitespace"/>
-      </rule>
-      <rule pattern="c?&#34;[^&#34;]*?&#34;">
-        <token type="LiteralString"/>
-      </rule>
-      <rule>
-        <include state="keyword"/>
-      </rule>
-      <rule pattern="\$[_a-zA-Z][_\w]*">
-        <token type="NameVariable"/>
-      </rule>
-      <rule pattern="\d*[_a-zA-Z][_\w]*">
-        <token type="NameVariable"/>
-      </rule>
-      <rule pattern="\[\{[\w\W]*?\}\]">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="[+-]?\d+|0x[\da-fA-F]+|0b[01]+">
-        <token type="LiteralNumber"/>
-      </rule>
-      <rule pattern="[=&lt;&gt;{}\[\]()*.,!:;]">
-        <token type="Punctuation"/>
-      </rule>
-    </state>
-    <state name="macro">
-      <rule pattern="(#include\s+)(&#34;[^&#34;]*&#34;)">
-        <bygroups>
-          <token type="CommentPreproc"/>
-          <token type="LiteralString"/>
-        </bygroups>
-      </rule>
-      <rule pattern="^\s*#(ifdef|ifndef)\s+[_\w][_\w\d]*">
-        <token type="CommentPreproc"/>
-      </rule>
-      <rule pattern="^\s*#define\s+[_\w][_\w\d]*">
-        <token type="CommentPreproc"/>
-      </rule>
-      <rule pattern="^\s*#endif">
-        <token type="CommentPreproc"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/tasm.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/tasm.xml	(revision 67)
+++ 	(revision )
@@ -1,135 +1,0 @@
-<lexer>
-  <config>
-    <name>TASM</name>
-    <alias>tasm</alias>
-    <filename>*.asm</filename>
-    <filename>*.ASM</filename>
-    <filename>*.tasm</filename>
-    <mime_type>text/x-tasm</mime_type>
-    <case_insensitive>true</case_insensitive>
-  </config>
-  <rules>
-    <state name="preproc">
-      <rule pattern="[^;\n]+">
-        <token type="CommentPreproc"/>
-      </rule>
-      <rule pattern=";.*?\n">
-        <token type="CommentSingle"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="\n">
-        <token type="CommentPreproc"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="whitespace">
-      <rule pattern="[\n\r]">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="\\[\n\r]">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="[ \t]+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern=";.*">
-        <token type="CommentSingle"/>
-      </rule>
-    </state>
-    <state name="punctuation">
-      <rule pattern="[,():\[\]]+">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="[&amp;|^&lt;&gt;+*=/%~-]+">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="[$]+">
-        <token type="KeywordConstant"/>
-      </rule>
-      <rule pattern="seg|wrt|strict">
-        <token type="OperatorWord"/>
-      </rule>
-      <rule pattern="byte|[dq]?word">
-        <token type="KeywordType"/>
-      </rule>
-    </state>
-    <state name="root">
-      <rule pattern="^\s*%">
-        <token type="CommentPreproc"/>
-        <push state="preproc"/>
-      </rule>
-      <rule>
-        <include state="whitespace"/>
-      </rule>
-      <rule pattern="[@a-z$._?][\w$.?#@~]*:">
-        <token type="NameLabel"/>
-      </rule>
-      <rule pattern="BITS|USE16|USE32|SECTION|SEGMENT|ABSOLUTE|EXTERN|GLOBAL|ORG|ALIGN|STRUC|ENDSTRUC|ENDS|COMMON|CPU|GROUP|UPPERCASE|INCLUDE|EXPORT|LIBRARY|MODULE|PROC|ENDP|USES|ARG|DATASEG|UDATASEG|END|IDEAL|P386|MODEL|ASSUME|CODESEG|SIZE">
-        <token type="Keyword"/>
-        <push state="instruction-args"/>
-      </rule>
-      <rule pattern="([@a-z$._?][\w$.?#@~]*)(\s+)(db|dd|dw|T[A-Z][a-z]+)">
-        <bygroups>
-          <token type="NameConstant"/>
-          <token type="KeywordDeclaration"/>
-          <token type="KeywordDeclaration"/>
-        </bygroups>
-        <push state="instruction-args"/>
-      </rule>
-      <rule pattern="(?:res|d)[bwdqt]|times">
-        <token type="KeywordDeclaration"/>
-        <push state="instruction-args"/>
-      </rule>
-      <rule pattern="[@a-z$._?][\w$.?#@~]*">
-        <token type="NameFunction"/>
-        <push state="instruction-args"/>
-      </rule>
-      <rule pattern="[\r\n]+">
-        <token type="Text"/>
-      </rule>
-    </state>
-    <state name="instruction-args">
-      <rule pattern="&#34;(\\&#34;|[^&#34;\n])*&#34;|&#39;(\\&#39;|[^&#39;\n])*&#39;|`(\\`|[^`\n])*`">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="(?:0x[0-9a-f]+|$0[0-9a-f]*|[0-9]+[0-9a-f]*h)">
-        <token type="LiteralNumberHex"/>
-      </rule>
-      <rule pattern="[0-7]+q">
-        <token type="LiteralNumberOct"/>
-      </rule>
-      <rule pattern="[01]+b">
-        <token type="LiteralNumberBin"/>
-      </rule>
-      <rule pattern="[0-9]+\.e?[0-9]+">
-        <token type="LiteralNumberFloat"/>
-      </rule>
-      <rule pattern="[0-9]+">
-        <token type="LiteralNumberInteger"/>
-      </rule>
-      <rule>
-        <include state="punctuation"/>
-      </rule>
-      <rule pattern="r[0-9][0-5]?[bwd]|[a-d][lh]|[er]?[a-d]x|[er]?[sb]p|[er]?[sd]i|[c-gs]s|st[0-7]|mm[0-7]|cr[0-4]|dr[0-367]|tr[3-7]">
-        <token type="NameBuiltin"/>
-      </rule>
-      <rule pattern="[@a-z$._?][\w$.?#@~]*">
-        <token type="NameVariable"/>
-      </rule>
-      <rule pattern="(\\\s*)(;.*)([\r\n])">
-        <bygroups>
-          <token type="Text"/>
-          <token type="CommentSingle"/>
-          <token type="Text"/>
-        </bygroups>
-      </rule>
-      <rule pattern="[\r\n]+">
-        <token type="Text"/>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <include state="whitespace"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/tcl.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/tcl.xml	(revision 67)
+++ 	(revision )
@@ -1,272 +1,0 @@
-<lexer>
-  <config>
-    <name>Tcl</name>
-    <alias>tcl</alias>
-    <filename>*.tcl</filename>
-    <filename>*.rvt</filename>
-    <mime_type>text/x-tcl</mime_type>
-    <mime_type>text/x-script.tcl</mime_type>
-    <mime_type>application/x-tcl</mime_type>
-  </config>
-  <rules>
-    <state name="command-in-bracket">
-      <rule pattern="\b(namespace|continue|variable|uplevel|foreach|return|update|elseif|global|rename|switch|upvar|error|vwait|catch|break|unset|array|apply|trace|after|while|then|else|expr|eval|proc|for|set|if)\b">
-        <token type="Keyword"/>
-        <push state="params-in-bracket"/>
-      </rule>
-      <rule pattern="\b(platform::shell|pkg::create|pkg_mkIndex|fconfigure|re_syntax|fileevent|platform|fblocked|lreverse|mathfunc|encoding|registry|lreplace|history|bgerror|llength|lsearch|linsert|lassign|lappend|refchan|unknown|package|lrepeat|msgcat|mathop|format|interp|lrange|string|source|lindex|socket|concat|regsub|regexp|loadTk|memory|binary|append|unload|subst|split|lsort|clock|close|flush|fcopy|chan|glob|time|gets|http|dict|file|puts|tell|join|read|exit|exec|open|list|scan|seek|incr|info|lset|load|dde|pwd|pid|eof|tm|cd)\b">
-        <token type="NameBuiltin"/>
-        <push state="params-in-bracket"/>
-      </rule>
-      <rule pattern="([\w.-]+)">
-        <token type="NameVariable"/>
-        <push state="params-in-bracket"/>
-      </rule>
-      <rule pattern="#">
-        <token type="Comment"/>
-        <push state="comment"/>
-      </rule>
-    </state>
-    <state name="command-in-paren">
-      <rule pattern="\b(namespace|continue|variable|uplevel|foreach|return|update|elseif|global|rename|switch|upvar|error|vwait|catch|break|unset|array|apply|trace|after|while|then|else|expr|eval|proc|for|set|if)\b">
-        <token type="Keyword"/>
-        <push state="params-in-paren"/>
-      </rule>
-      <rule pattern="\b(platform::shell|pkg::create|pkg_mkIndex|fconfigure|re_syntax|fileevent|platform|fblocked|lreverse|mathfunc|encoding|registry|lreplace|history|bgerror|llength|lsearch|linsert|lassign|lappend|refchan|unknown|package|lrepeat|msgcat|mathop|format|interp|lrange|string|source|lindex|socket|concat|regsub|regexp|loadTk|memory|binary|append|unload|subst|split|lsort|clock|close|flush|fcopy|chan|glob|time|gets|http|dict|file|puts|tell|join|read|exit|exec|open|list|scan|seek|incr|info|lset|load|dde|pwd|pid|eof|tm|cd)\b">
-        <token type="NameBuiltin"/>
-        <push state="params-in-paren"/>
-      </rule>
-      <rule pattern="([\w.-]+)">
-        <token type="NameVariable"/>
-        <push state="params-in-paren"/>
-      </rule>
-      <rule pattern="#">
-        <token type="Comment"/>
-        <push state="comment"/>
-      </rule>
-    </state>
-    <state name="command-in-brace">
-      <rule pattern="\b(namespace|continue|variable|uplevel|foreach|return|update|elseif|global|rename|switch|upvar|error|vwait|catch|break|unset|array|apply|trace|after|while|then|else|expr|eval|proc|for|set|if)\b">
-        <token type="Keyword"/>
-        <push state="params-in-brace"/>
-      </rule>
-      <rule pattern="\b(platform::shell|pkg::create|pkg_mkIndex|fconfigure|re_syntax|fileevent|platform|fblocked|lreverse|mathfunc|encoding|registry|lreplace|history|bgerror|llength|lsearch|linsert|lassign|lappend|refchan|unknown|package|lrepeat|msgcat|mathop|format|interp|lrange|string|source|lindex|socket|concat|regsub|regexp|loadTk|memory|binary|append|unload|subst|split|lsort|clock|close|flush|fcopy|chan|glob|time|gets|http|dict|file|puts|tell|join|read|exit|exec|open|list|scan|seek|incr|info|lset|load|dde|pwd|pid|eof|tm|cd)\b">
-        <token type="NameBuiltin"/>
-        <push state="params-in-brace"/>
-      </rule>
-      <rule pattern="([\w.-]+)">
-        <token type="NameVariable"/>
-        <push state="params-in-brace"/>
-      </rule>
-      <rule pattern="#">
-        <token type="Comment"/>
-        <push state="comment"/>
-      </rule>
-    </state>
-    <state name="basic">
-      <rule pattern="\(">
-        <token type="Keyword"/>
-        <push state="paren"/>
-      </rule>
-      <rule pattern="\[">
-        <token type="Keyword"/>
-        <push state="bracket"/>
-      </rule>
-      <rule pattern="\{">
-        <token type="Keyword"/>
-        <push state="brace"/>
-      </rule>
-      <rule pattern="&#34;">
-        <token type="LiteralStringDouble"/>
-        <push state="string"/>
-      </rule>
-      <rule pattern="(eq|ne|in|ni)\b">
-        <token type="OperatorWord"/>
-      </rule>
-      <rule pattern="!=|==|&lt;&lt;|&gt;&gt;|&lt;=|&gt;=|&amp;&amp;|\|\||\*\*|[-+~!*/%&lt;&gt;&amp;^|?:]">
-        <token type="Operator"/>
-      </rule>
-    </state>
-    <state name="params-in-bracket">
-      <rule pattern="\]">
-        <token type="Keyword"/>
-        <push state="#pop" state="#pop"/>
-      </rule>
-      <rule>
-        <include state="params"/>
-      </rule>
-    </state>
-    <state name="data">
-      <rule pattern="\s+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="0x[a-fA-F0-9]+">
-        <token type="LiteralNumberHex"/>
-      </rule>
-      <rule pattern="0[0-7]+">
-        <token type="LiteralNumberOct"/>
-      </rule>
-      <rule pattern="\d+\.\d+">
-        <token type="LiteralNumberFloat"/>
-      </rule>
-      <rule pattern="\d+">
-        <token type="LiteralNumberInteger"/>
-      </rule>
-      <rule pattern="\$([\w.:-]+)">
-        <token type="NameVariable"/>
-      </rule>
-      <rule pattern="([\w.:-]+)">
-        <token type="Text"/>
-      </rule>
-    </state>
-    <state name="command">
-      <rule pattern="\b(namespace|continue|variable|uplevel|foreach|return|update|elseif|global|rename|switch|upvar|error|vwait|catch|break|unset|array|apply|trace|after|while|then|else|expr|eval|proc|for|set|if)\b">
-        <token type="Keyword"/>
-        <push state="params"/>
-      </rule>
-      <rule pattern="\b(platform::shell|pkg::create|pkg_mkIndex|fconfigure|re_syntax|fileevent|platform|fblocked|lreverse|mathfunc|encoding|registry|lreplace|history|bgerror|llength|lsearch|linsert|lassign|lappend|refchan|unknown|package|lrepeat|msgcat|mathop|format|interp|lrange|string|source|lindex|socket|concat|regsub|regexp|loadTk|memory|binary|append|unload|subst|split|lsort|clock|close|flush|fcopy|chan|glob|time|gets|http|dict|file|puts|tell|join|read|exit|exec|open|list|scan|seek|incr|info|lset|load|dde|pwd|pid|eof|tm|cd)\b">
-        <token type="NameBuiltin"/>
-        <push state="params"/>
-      </rule>
-      <rule pattern="([\w.-]+)">
-        <token type="NameVariable"/>
-        <push state="params"/>
-      </rule>
-      <rule pattern="#">
-        <token type="Comment"/>
-        <push state="comment"/>
-      </rule>
-    </state>
-    <state name="params-in-brace">
-      <rule pattern="\}">
-        <token type="Keyword"/>
-        <push state="#pop" state="#pop"/>
-      </rule>
-      <rule>
-        <include state="params"/>
-      </rule>
-    </state>
-    <state name="string-square">
-      <rule pattern="\[">
-        <token type="LiteralStringDouble"/>
-        <push state="string-square"/>
-      </rule>
-      <rule pattern="(?s)(\\\\|\\[0-7]+|\\.|\\\n|[^\]\\])">
-        <token type="LiteralStringDouble"/>
-      </rule>
-      <rule pattern="\]">
-        <token type="LiteralStringDouble"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="bracket">
-      <rule pattern="\]">
-        <token type="Keyword"/>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <include state="command-in-bracket"/>
-      </rule>
-      <rule>
-        <include state="basic"/>
-      </rule>
-      <rule>
-        <include state="data"/>
-      </rule>
-    </state>
-    <state name="params-in-paren">
-      <rule pattern="\)">
-        <token type="Keyword"/>
-        <push state="#pop" state="#pop"/>
-      </rule>
-      <rule>
-        <include state="params"/>
-      </rule>
-    </state>
-    <state name="paren">
-      <rule pattern="\)">
-        <token type="Keyword"/>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <include state="command-in-paren"/>
-      </rule>
-      <rule>
-        <include state="basic"/>
-      </rule>
-      <rule>
-        <include state="data"/>
-      </rule>
-    </state>
-    <state name="comment">
-      <rule pattern=".*[^\\]\n">
-        <token type="Comment"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern=".*\\\n">
-        <token type="Comment"/>
-      </rule>
-    </state>
-    <state name="root">
-      <rule>
-        <include state="command"/>
-      </rule>
-      <rule>
-        <include state="basic"/>
-      </rule>
-      <rule>
-        <include state="data"/>
-      </rule>
-      <rule pattern="\}">
-        <token type="Keyword"/>
-      </rule>
-    </state>
-    <state name="brace">
-      <rule pattern="\}">
-        <token type="Keyword"/>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <include state="command-in-brace"/>
-      </rule>
-      <rule>
-        <include state="basic"/>
-      </rule>
-      <rule>
-        <include state="data"/>
-      </rule>
-    </state>
-    <state name="params">
-      <rule pattern=";">
-        <token type="Keyword"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="\n">
-        <token type="Text"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="(else|elseif|then)\b">
-        <token type="Keyword"/>
-      </rule>
-      <rule>
-        <include state="basic"/>
-      </rule>
-      <rule>
-        <include state="data"/>
-      </rule>
-    </state>
-    <state name="string">
-      <rule pattern="\[">
-        <token type="LiteralStringDouble"/>
-        <push state="string-square"/>
-      </rule>
-      <rule pattern="(?s)(\\\\|\\[0-7]+|\\.|[^&#34;\\])">
-        <token type="LiteralStringDouble"/>
-      </rule>
-      <rule pattern="&#34;">
-        <token type="LiteralStringDouble"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/tcsh.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/tcsh.xml	(revision 67)
+++ 	(revision )
@@ -1,121 +1,0 @@
-<lexer>
-  <config>
-    <name>Tcsh</name>
-    <alias>tcsh</alias>
-    <alias>csh</alias>
-    <filename>*.tcsh</filename>
-    <filename>*.csh</filename>
-    <mime_type>application/x-csh</mime_type>
-  </config>
-  <rules>
-    <state name="basic">
-      <rule pattern="\b(if|endif|else|while|then|foreach|case|default|continue|goto|breaksw|end|switch|endsw)\s*\b">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="\b(alias|alloc|bg|bindkey|break|builtins|bye|caller|cd|chdir|complete|dirs|echo|echotc|eval|exec|exit|fg|filetest|getxvers|glob|getspath|hashstat|history|hup|inlib|jobs|kill|limit|log|login|logout|ls-F|migrate|newgrp|nice|nohup|notify|onintr|popd|printenv|pushd|rehash|repeat|rootnode|popd|pushd|set|shift|sched|setenv|setpath|settc|setty|setxvers|shift|source|stop|suspend|source|suspend|telltc|time|umask|unalias|uncomplete|unhash|universe|unlimit|unset|unsetenv|ver|wait|warp|watchlog|where|which)\s*\b">
-        <token type="NameBuiltin"/>
-      </rule>
-      <rule pattern="#.*">
-        <token type="Comment"/>
-      </rule>
-      <rule pattern="\\[\w\W]">
-        <token type="LiteralStringEscape"/>
-      </rule>
-      <rule pattern="(\b\w+)(\s*)(=)">
-        <bygroups>
-          <token type="NameVariable"/>
-          <token type="Text"/>
-          <token type="Operator"/>
-        </bygroups>
-      </rule>
-      <rule pattern="[\[\]{}()=]+">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="&lt;&lt;\s*(\&#39;?)\\?(\w+)[\w\W]+?\2">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern=";">
-        <token type="Punctuation"/>
-      </rule>
-    </state>
-    <state name="data">
-      <rule pattern="(?s)&#34;(\\\\|\\[0-7]+|\\.|[^&#34;\\])*&#34;">
-        <token type="LiteralStringDouble"/>
-      </rule>
-      <rule pattern="(?s)&#39;(\\\\|\\[0-7]+|\\.|[^&#39;\\])*&#39;">
-        <token type="LiteralStringSingle"/>
-      </rule>
-      <rule pattern="\s+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="[^=\s\[\]{}()$&#34;\&#39;`\\;#]+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="\d+(?= |\Z)">
-        <token type="LiteralNumber"/>
-      </rule>
-      <rule pattern="\$#?(\w+|.)">
-        <token type="NameVariable"/>
-      </rule>
-    </state>
-    <state name="curly">
-      <rule pattern="\}">
-        <token type="Keyword"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern=":-">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="\w+">
-        <token type="NameVariable"/>
-      </rule>
-      <rule pattern="[^}:&#34;\&#39;`$]+">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern=":">
-        <token type="Punctuation"/>
-      </rule>
-      <rule>
-        <include state="root"/>
-      </rule>
-    </state>
-    <state name="paren">
-      <rule pattern="\)">
-        <token type="Keyword"/>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <include state="root"/>
-      </rule>
-    </state>
-    <state name="backticks">
-      <rule pattern="`">
-        <token type="LiteralStringBacktick"/>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <include state="root"/>
-      </rule>
-    </state>
-    <state name="root">
-      <rule>
-        <include state="basic"/>
-      </rule>
-      <rule pattern="\$\(">
-        <token type="Keyword"/>
-        <push state="paren"/>
-      </rule>
-      <rule pattern="\$\{#?">
-        <token type="Keyword"/>
-        <push state="curly"/>
-      </rule>
-      <rule pattern="`">
-        <token type="LiteralStringBacktick"/>
-        <push state="backticks"/>
-      </rule>
-      <rule>
-        <include state="data"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/termcap.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/termcap.xml	(revision 67)
+++ 	(revision )
@@ -1,75 +1,0 @@
-<lexer>
-  <config>
-    <name>Termcap</name>
-    <alias>termcap</alias>
-    <filename>termcap</filename>
-    <filename>termcap.src</filename>
-  </config>
-  <rules>
-    <state name="defs">
-      <rule pattern="\\\n[ \t]*">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="\n[ \t]*">
-        <token type="Text"/>
-        <pop depth="2"/>
-      </rule>
-      <rule pattern="(#)([0-9]+)">
-        <bygroups>
-          <token type="Operator"/>
-          <token type="LiteralNumber"/>
-        </bygroups>
-      </rule>
-      <rule pattern="=">
-        <token type="Operator"/>
-        <push state="data"/>
-      </rule>
-      <rule pattern=":">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="[^\s:=#]+">
-        <token type="NameClass"/>
-      </rule>
-    </state>
-    <state name="data">
-      <rule pattern="\\072">
-        <token type="Literal"/>
-      </rule>
-      <rule pattern=":">
-        <token type="Punctuation"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="[^:\\]+">
-        <token type="Literal"/>
-      </rule>
-      <rule pattern=".">
-        <token type="Literal"/>
-      </rule>
-    </state>
-    <state name="root">
-      <rule pattern="^#.*$">
-        <token type="Comment"/>
-      </rule>
-      <rule pattern="^[^\s#:|]+">
-        <token type="NameTag"/>
-        <push state="names"/>
-      </rule>
-    </state>
-    <state name="names">
-      <rule pattern="\n">
-        <token type="Text"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern=":">
-        <token type="Punctuation"/>
-        <push state="defs"/>
-      </rule>
-      <rule pattern="\|">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="[^:|]+">
-        <token type="NameAttribute"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/terminfo.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/terminfo.xml	(revision 67)
+++ 	(revision )
@@ -1,84 +1,0 @@
-<lexer>
-  <config>
-    <name>Terminfo</name>
-    <alias>terminfo</alias>
-    <filename>terminfo</filename>
-    <filename>terminfo.src</filename>
-  </config>
-  <rules>
-    <state name="names">
-      <rule pattern="\n">
-        <token type="Text"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="(,)([ \t]*)">
-        <bygroups>
-          <token type="Punctuation"/>
-          <token type="Text"/>
-        </bygroups>
-        <push state="defs"/>
-      </rule>
-      <rule pattern="\|">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="[^,|]+">
-        <token type="NameAttribute"/>
-      </rule>
-    </state>
-    <state name="defs">
-      <rule pattern="\n[ \t]+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="\n">
-        <token type="Text"/>
-        <pop depth="2"/>
-      </rule>
-      <rule pattern="(#)([0-9]+)">
-        <bygroups>
-          <token type="Operator"/>
-          <token type="LiteralNumber"/>
-        </bygroups>
-      </rule>
-      <rule pattern="=">
-        <token type="Operator"/>
-        <push state="data"/>
-      </rule>
-      <rule pattern="(,)([ \t]*)">
-        <bygroups>
-          <token type="Punctuation"/>
-          <token type="Text"/>
-        </bygroups>
-      </rule>
-      <rule pattern="[^\s,=#]+">
-        <token type="NameClass"/>
-      </rule>
-    </state>
-    <state name="data">
-      <rule pattern="\\[,\\]">
-        <token type="Literal"/>
-      </rule>
-      <rule pattern="(,)([ \t]*)">
-        <bygroups>
-          <token type="Punctuation"/>
-          <token type="Text"/>
-        </bygroups>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="[^\\,]+">
-        <token type="Literal"/>
-      </rule>
-      <rule pattern=".">
-        <token type="Literal"/>
-      </rule>
-    </state>
-    <state name="root">
-      <rule pattern="^#.*$">
-        <token type="Comment"/>
-      </rule>
-      <rule pattern="^[^\s#,|]+">
-        <token type="NameTag"/>
-        <push state="names"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/terraform.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/terraform.xml	(revision 67)
+++ 	(revision )
@@ -1,140 +1,0 @@
-<lexer>
-  <config>
-    <name>Terraform</name>
-    <alias>terraform</alias>
-    <alias>tf</alias>
-    <filename>*.tf</filename>
-    <mime_type>application/x-tf</mime_type>
-    <mime_type>application/x-terraform</mime_type>
-  </config>
-  <rules>
-    <state name="string">
-      <rule pattern="&#34;">
-        <token type="LiteralStringDouble"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="\\\\">
-        <token type="LiteralStringDouble"/>
-      </rule>
-      <rule pattern="\\\\&#34;">
-        <token type="LiteralStringDouble"/>
-      </rule>
-      <rule pattern="\$\{">
-        <token type="LiteralStringInterpol"/>
-        <push state="interp-inside"/>
-      </rule>
-      <rule pattern="\$">
-        <token type="LiteralStringDouble"/>
-      </rule>
-      <rule pattern="[^&#34;\\\\$]+">
-        <token type="LiteralStringDouble"/>
-      </rule>
-    </state>
-    <state name="interp-inside">
-      <rule pattern="\}">
-        <token type="LiteralStringInterpol"/>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <include state="root"/>
-      </rule>
-    </state>
-    <state name="root">
-      <rule pattern="[\[\](),.{}]">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="-?[0-9]+">
-        <token type="LiteralNumber"/>
-      </rule>
-      <rule pattern="=&gt;">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="(false|true)\b">
-        <token type="KeywordConstant"/>
-      </rule>
-      <rule pattern="/(?s)\*(((?!\*/).)*)\*/">
-        <token type="CommentMultiline"/>
-      </rule>
-      <rule pattern="\s*(#|//).*\n">
-        <token type="CommentSingle"/>
-      </rule>
-      <rule pattern="([a-zA-Z]\w*)(\s*)(=(?!&gt;))">
-        <bygroups>
-          <token type="NameAttribute"/>
-          <token type="Text"/>
-          <token type="Text"/>
-        </bygroups>
-      </rule>
-      <rule pattern="^\s*(provisioner|variable|resource|provider|module|output|data)\b">
-        <token type="KeywordReserved"/>
-      </rule>
-      <rule pattern="(for|in)\b">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="(module|count|data|each|var)">
-        <token type="NameBuiltin"/>
-      </rule>
-      <rule pattern="(parseint|signum|floor|ceil|log|max|min|abs|pow)\b">
-        <token type="NameBuiltin"/>
-      </rule>
-      <rule pattern="(trimsuffix|formatlist|trimprefix|trimspace|regexall|replace|indent|strrev|format|substr|chomp|split|title|regex|lower|upper|trim|join)\b">
-        <token type="NameBuiltin"/>
-      </rule>
-      <rule pattern="[^.](setintersection|coalescelist|setsubtract|setproduct|matchkeys|chunklist|transpose|contains|distinct|coalesce|setunion|reverse|flatten|element|compact|lookup|length|concat|values|zipmap|range|merge|slice|index|list|sort|keys|map)\b">
-        <token type="NameBuiltin"/>
-      </rule>
-      <rule pattern="[^.](base64decode|base64encode|base64gzip|jsondecode|jsonencode|yamldecode|yamlencode|csvdecode|urlencode)\b">
-        <token type="NameBuiltin"/>
-      </rule>
-      <rule pattern="(templatefile|filebase64|fileexists|pathexpand|basename|abspath|fileset|dirname|file)\b">
-        <token type="NameBuiltin"/>
-      </rule>
-      <rule pattern="(formatdate|timestamp|timeadd)\b">
-        <token type="NameBuiltin"/>
-      </rule>
-      <rule pattern="(filebase64sha256|filebase64sha512|base64sha512|base64sha256|filesha256|rsadecrypt|filesha512|filesha1|filemd5|uuidv5|bcrypt|sha256|sha512|sha1|uuid|md5)\b">
-        <token type="NameBuiltin"/>
-      </rule>
-      <rule pattern="(cidrnetmask|cidrsubnet|cidrhost)\b">
-        <token type="NameBuiltin"/>
-      </rule>
-      <rule pattern="(tostring|tonumber|tobool|tolist|tomap|toset|can|try)\b">
-        <token type="NameBuiltin"/>
-      </rule>
-      <rule pattern="=(?!&gt;)|\+|-|\*|\/|:|!|%|&gt;|&lt;(?!&lt;)|&gt;=|&lt;=|==|!=|&amp;&amp;|\||\?">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="\n|\s+|\\\n">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="[a-zA-Z]\w*">
-        <token type="NameOther"/>
-      </rule>
-      <rule pattern="&#34;">
-        <token type="LiteralStringDouble"/>
-        <push state="string"/>
-      </rule>
-      <rule pattern="(?s)(&lt;&lt;-?)(\w+)(\n\s*(?:(?!\2).)*\s*\n\s*)(\2)">
-        <bygroups>
-          <token type="Operator"/>
-          <token type="Operator"/>
-          <token type="LiteralString"/>
-          <token type="Operator"/>
-        </bygroups>
-      </rule>
-    </state>
-    <state name="declaration">
-      <rule pattern="(\s*)(&#34;(?:\\\\|\\&#34;|[^&#34;])*&#34;)(\s*)">
-        <bygroups>
-          <token type="Text"/>
-          <token type="NameVariable"/>
-          <token type="Text"/>
-        </bygroups>
-      </rule>
-      <rule pattern="\{">
-        <token type="Punctuation"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/tex.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/tex.xml	(revision 67)
+++ 	(revision )
@@ -1,113 +1,0 @@
-<lexer>
-  <config>
-    <name>TeX</name>
-    <alias>tex</alias>
-    <alias>latex</alias>
-    <filename>*.tex</filename>
-    <filename>*.aux</filename>
-    <filename>*.toc</filename>
-    <mime_type>text/x-tex</mime_type>
-    <mime_type>text/x-latex</mime_type>
-  </config>
-  <rules>
-    <state name="displaymath">
-      <rule pattern="\\\]">
-        <token type="LiteralString"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="\$\$">
-        <token type="LiteralString"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="\$">
-        <token type="NameBuiltin"/>
-      </rule>
-      <rule>
-        <include state="math"/>
-      </rule>
-    </state>
-    <state name="command">
-      <rule pattern="\[.*?\]">
-        <token type="NameAttribute"/>
-      </rule>
-      <rule pattern="\*">
-        <token type="Keyword"/>
-      </rule>
-      <rule>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="general">
-      <rule pattern="%.*?\n">
-        <token type="Comment"/>
-      </rule>
-      <rule pattern="[{}]">
-        <token type="NameBuiltin"/>
-      </rule>
-      <rule pattern="[&amp;_^]">
-        <token type="NameBuiltin"/>
-      </rule>
-    </state>
-    <state name="root">
-      <rule pattern="\\\[">
-        <token type="LiteralStringBacktick"/>
-        <push state="displaymath"/>
-      </rule>
-      <rule pattern="\\\(">
-        <token type="LiteralString"/>
-        <push state="inlinemath"/>
-      </rule>
-      <rule pattern="\$\$">
-        <token type="LiteralStringBacktick"/>
-        <push state="displaymath"/>
-      </rule>
-      <rule pattern="\$">
-        <token type="LiteralString"/>
-        <push state="inlinemath"/>
-      </rule>
-      <rule pattern="\\([a-zA-Z]+|.)">
-        <token type="Keyword"/>
-        <push state="command"/>
-      </rule>
-      <rule pattern="\\$">
-        <token type="Keyword"/>
-      </rule>
-      <rule>
-        <include state="general"/>
-      </rule>
-      <rule pattern="[^\\$%&amp;_^{}]+">
-        <token type="Text"/>
-      </rule>
-    </state>
-    <state name="math">
-      <rule pattern="\\([a-zA-Z]+|.)">
-        <token type="NameVariable"/>
-      </rule>
-      <rule>
-        <include state="general"/>
-      </rule>
-      <rule pattern="[0-9]+">
-        <token type="LiteralNumber"/>
-      </rule>
-      <rule pattern="[-=!+*/()\[\]]">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="[^=!+*/()\[\]\\$%&amp;_^{}0-9-]+">
-        <token type="NameBuiltin"/>
-      </rule>
-    </state>
-    <state name="inlinemath">
-      <rule pattern="\\\)">
-        <token type="LiteralString"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="\$">
-        <token type="LiteralString"/>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <include state="math"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/thrift.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/thrift.xml	(revision 67)
+++ 	(revision )
@@ -1,154 +1,0 @@
-<lexer>
-  <config>
-    <name>Thrift</name>
-    <alias>thrift</alias>
-    <filename>*.thrift</filename>
-    <mime_type>application/x-thrift</mime_type>
-  </config>
-  <rules>
-    <state name="class">
-      <rule pattern="[a-zA-Z_]\w*">
-        <token type="NameClass"/>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="keywords">
-      <rule pattern="(async|oneway|extends|throws|required|optional)\b">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="(true|false)\b">
-        <token type="KeywordConstant"/>
-      </rule>
-      <rule pattern="(const|typedef)\b">
-        <token type="KeywordDeclaration"/>
-      </rule>
-      <rule pattern="(smalltalk_category|smalltalk_prefix|delphi_namespace|csharp_namespace|ruby_namespace|xsd_namespace|cpp_namespace|php_namespace|xsd_nillable|xsd_optional|java_package|cocoa_prefix|perl_package|cpp_include|py_module|xsd_attrs|cpp_type|xsd_all|include)\b">
-        <token type="KeywordNamespace"/>
-      </rule>
-      <rule pattern="(double|binary|string|slist|senum|bool|void|byte|list|i64|map|set|i32|i16)\b">
-        <token type="KeywordType"/>
-      </rule>
-      <rule pattern="\b(__NAMESPACE__|synchronized|__FUNCTION__|__METHOD__|endforeach|implements|enddeclare|instanceof|transient|endswitch|protected|interface|__CLASS__|continue|__FILE__|abstract|function|endwhile|unsigned|register|volatile|__LINE__|declare|foreach|default|__DIR__|private|finally|dynamic|virtual|lambda|elseif|inline|switch|unless|endfor|delete|import|return|module|ensure|native|rescue|assert|sizeof|static|global|except|public|float|BEGIN|super|endif|yield|elsif|throw|clone|class|catch|until|break|retry|begin|raise|alias|while|print|undef|exec|with|when|case|redo|args|elif|this|then|self|goto|else|pass|next|var|for|xor|END|not|try|del|and|def|new|use|nil|end|if|do|is|or|in|as)\b">
-        <token type="KeywordReserved"/>
-      </rule>
-    </state>
-    <state name="numbers">
-      <rule pattern="[+-]?(\d+\.\d+([eE][+-]?\d+)?|\.?\d+[eE][+-]?\d+)">
-        <token type="LiteralNumberFloat"/>
-      </rule>
-      <rule pattern="[+-]?0x[0-9A-Fa-f]+">
-        <token type="LiteralNumberHex"/>
-      </rule>
-      <rule pattern="[+-]?[0-9]+">
-        <token type="LiteralNumberInteger"/>
-      </rule>
-    </state>
-    <state name="root">
-      <rule>
-        <include state="whitespace"/>
-      </rule>
-      <rule>
-        <include state="comments"/>
-      </rule>
-      <rule pattern="&#34;">
-        <token type="LiteralStringDouble"/>
-        <combined state="stringescape" state="dqs"/>
-      </rule>
-      <rule pattern="\&#39;">
-        <token type="LiteralStringSingle"/>
-        <combined state="stringescape" state="sqs"/>
-      </rule>
-      <rule pattern="(namespace)(\s+)">
-        <bygroups>
-          <token type="KeywordNamespace"/>
-          <token type="TextWhitespace"/>
-        </bygroups>
-        <push state="namespace"/>
-      </rule>
-      <rule pattern="(enum|union|struct|service|exception)(\s+)">
-        <bygroups>
-          <token type="KeywordDeclaration"/>
-          <token type="TextWhitespace"/>
-        </bygroups>
-        <push state="class"/>
-      </rule>
-      <rule pattern="((?:(?:[^\W\d]|\$)[\w.\[\]$&lt;&gt;]*\s+)+?)((?:[^\W\d]|\$)[\w$]*)(\s*)(\()">
-        <bygroups>
-          <usingself state="root"/>
-          <token type="NameFunction"/>
-          <token type="Text"/>
-          <token type="Operator"/>
-        </bygroups>
-      </rule>
-      <rule>
-        <include state="keywords"/>
-      </rule>
-      <rule>
-        <include state="numbers"/>
-      </rule>
-      <rule pattern="[&amp;=]">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="[:;,{}()&lt;&gt;\[\]]">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="[a-zA-Z_](\.\w|\w)*">
-        <token type="Name"/>
-      </rule>
-    </state>
-    <state name="dqs">
-      <rule pattern="&#34;">
-        <token type="LiteralStringDouble"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="[^\\&#34;\n]+">
-        <token type="LiteralStringDouble"/>
-      </rule>
-    </state>
-    <state name="namespace">
-      <rule pattern="[a-z*](\.\w|\w)*">
-        <token type="NameNamespace"/>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="whitespace">
-      <rule pattern="\n">
-        <token type="TextWhitespace"/>
-      </rule>
-      <rule pattern="\s+">
-        <token type="TextWhitespace"/>
-      </rule>
-    </state>
-    <state name="comments">
-      <rule pattern="#.*$">
-        <token type="Comment"/>
-      </rule>
-      <rule pattern="//.*?\n">
-        <token type="Comment"/>
-      </rule>
-      <rule pattern="/\*[\w\W]*?\*/">
-        <token type="CommentMultiline"/>
-      </rule>
-    </state>
-    <state name="stringescape">
-      <rule pattern="\\([\\nrt&#34;\&#39;])">
-        <token type="LiteralStringEscape"/>
-      </rule>
-    </state>
-    <state name="sqs">
-      <rule pattern="&#39;">
-        <token type="LiteralStringSingle"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="[^\\\&#39;\n]+">
-        <token type="LiteralStringSingle"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/toml.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/toml.xml	(revision 67)
+++ 	(revision )
@@ -1,42 +1,0 @@
-<lexer>
-  <config>
-    <name>TOML</name>
-    <alias>toml</alias>
-    <filename>*.toml</filename>
-    <mime_type>text/x-toml</mime_type>
-  </config>
-  <rules>
-    <state name="root">
-      <rule pattern="\s+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="#.*">
-        <token type="Comment"/>
-      </rule>
-      <rule pattern="(false|true)\b">
-        <token type="KeywordConstant"/>
-      </rule>
-      <rule pattern="\d\d\d\d-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d\+)?(Z|[+-]\d{2}:\d{2})">
-        <token type="LiteralDate"/>
-      </rule>
-      <rule pattern="[+-]?[0-9](_?\d)*\.\d+">
-        <token type="LiteralNumberFloat"/>
-      </rule>
-      <rule pattern="[+-]?[0-9](_?\d)*">
-        <token type="LiteralNumberInteger"/>
-      </rule>
-      <rule pattern="&#34;(\\\\|\\&#34;|[^&#34;])*&#34;">
-        <token type="LiteralStringDouble"/>
-      </rule>
-      <rule pattern="&#39;(\\\\|\\&#39;|[^&#39;])*&#39;">
-        <token type="LiteralStringSingle"/>
-      </rule>
-      <rule pattern="[.,=\[\]{}]">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="[A-Za-z0-9_-]+">
-        <token type="NameOther"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/tradingview.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/tradingview.xml	(revision 67)
+++ 	(revision )
@@ -1,81 +1,0 @@
-<lexer>
-  <config>
-    <name>TradingView</name>
-    <alias>tradingview</alias>
-    <alias>tv</alias>
-    <filename>*.tv</filename>
-    <mime_type>text/x-tradingview</mime_type>
-    <dot_all>true</dot_all>
-    <ensure_nl>true</ensure_nl>
-  </config>
-  <rules>
-    <state name="root">
-      <rule pattern="[^\S\n]+|\n|[()]">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="(//.*?)(\n)">
-        <bygroups>
-          <token type="CommentSingle"/>
-          <token type="Text"/>
-        </bygroups>
-      </rule>
-      <rule pattern="&gt;=|&lt;=|==|!=|&gt;|&lt;|\?|-|\+|\*|\/|%|\[|\]">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="[:,.]">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="=">
-        <token type="KeywordPseudo"/>
-      </rule>
-      <rule pattern="&#34;(\\\\|\\&#34;|[^&#34;\n])*[&#34;\n]">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="&#39;\\.&#39;|&#39;[^\\]&#39;">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="[0-9](\.[0-9]*)?([eE][+-][0-9]+)?">
-        <token type="LiteralNumber"/>
-      </rule>
-      <rule pattern="#[a-fA-F0-9]{8}|#[a-fA-F0-9]{6}|#[a-fA-F0-9]{3}">
-        <token type="LiteralStringOther"/>
-      </rule>
-      <rule pattern="(abs|acos|alertcondition|alma|asin|atan|atr|avg|barcolor|barssince|bgcolor|cci|ceil|change|cog|color\.new|correlation|cos|crossover|crossunder|cum|dev|ema|exp|falling|fill|fixnan|floor|heikinashi|highest|highestbars|hline|iff|kagi|label\.(delete|get_text|get_x|get_y|new|set_color|set_size|set_style|set_text|set_textcolor|set_x|set_xloc|set_xy|set_y|set_yloc)|line\.(new|delete|get_x1|get_x2|get_y1|get_y2|set_color|set_width|set_style|set_extend|set_xy1|set_xy2|set_x1|set_x2|set_y1|set_y2|set_xloc)|linebreak|linreg|log|log10|lowest|lowestbars|macd|max|max_bars_back|min|mom|nz|percentile_(linear_interpolation|nearest_rank)|percentrank|pivothigh|pivotlow|plot|plotarrow|plotbar|plotcandle|plotchar|plotshape|pointfigure|pow|renko|rising|rma|roc|round|rsi|sar|security|sign|sin|sma|sqrt|stdev|stoch|study|sum|swma|tan|timestamp|tostring|tsi|valuewhen|variance|vwma|wma|strategy\.(cancel|cancel_all|close|close_all|entry|exit|order|risk\.(allow_entry_in|max_cons_loss_days|max_drawdown|max_intraday_filled_orders|max_intraday_loss|max_position_size)))\b">
-        <token type="NameFunction"/>
-      </rule>
-      <rule pattern="\b(bool|color|cross|dayofmonth|dayofweek|float|hour|input|int|label|line|minute|month|na|offset|second|strategy|string|tickerid|time|tr|vwap|weekofyear|year)(\()">
-        <bygroups>
-          <token type="NameFunction"/>
-          <token type="Text"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(accdist|adjustment\.(dividends|none|splits)|aqua|area|areabr|bar_index|black|blue|bool|circles|close|columns|currency\.(AUD|CAD|CHF|EUR|GBP|HKD|JPY|NOK|NONE|NZD|RUB|SEK|SGD|TRY|USD|ZAR)|color\.(aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow)|dashed|dotted|dayofweek\.(monday|tuesday|wednesday|thursday|friday|saturday|sunday)|extend\.(both|left|right|none)|float|format\.(inherit|price|volume)|friday|fuchsia|gray|green|high|histogram|hl2|hlc3|hline\.style_(dotted|solid|dashed)|input\.(bool|float|integer|resolution|session|source|string|symbol)|integer|interval|isdaily|isdwm|isintraday|ismonthly|isweekly|label\.style_(arrowdown|arrowup|circle|cross|diamond|flag|labeldown|labelup|none|square|triangledown|triangleup|xcross)|lime|line\.style_(dashed|dotted|solid|arrow_both|arrow_left|arrow_right)|linebr|location\.(abovebar|absolute|belowbar|bottom|top)|low|maroon|monday|n|navy|ohlc4|olive|open|orange|period|plot\.style_(area|areabr|circles|columns|cross|histogram|line|linebr|stepline)|purple|red|resolution|saturday|scale\.(left|none|right)|session|session\.(extended|regular)|silver|size\.(auto|huge|large|normal|small|tiny)|solid|source|stepline|string|sunday|symbol|syminfo\.(mintick|pointvalue|prefix|root|session|ticker|tickerid|timezone)|teal|thursday|ticker|timeframe\.(isdaily|isdwm|isintraday|ismonthly|isweekly|multiplier|period)|timenow|tuesday|volume|wednesday|white|yellow|strategy\.(cash|closedtrades|commission\.(cash_per_contract|cash_per_order|percent)|direction\.(all|long|short)|equity|eventrades|fixed|grossloss|grossprofit|initial_capital|long|losstrades|max_contracts_held_(all|long|short)|max_drawdown|netprofit|oca\.(cancel|none|reduce)|openprofit|opentrades|percent_of_equity|position_avg_price|position_entry_name|position_size|short|wintrades)|shape\.(arrowdown|arrowup|circle|cross|diamond|flag|labeldown|labelup|square|triangledown|triangleup|xcross)|barstate\.is(first|history|last|new|realtime)|barmerge\.(gaps_on|gaps_off|lookahead_on|lookahead_off)|xloc\.bar_(index|time)|yloc\.(abovebar|belowbar|price))\b">
-        <token type="NameVariable"/>
-      </rule>
-      <rule pattern="(cross|dayofmonth|dayofweek|hour|minute|month|na|second|tickerid|time|tr|vwap|weekofyear|year)(\b[^\(])">
-        <bygroups>
-          <token type="NameVariable"/>
-          <token type="Text"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(int|float|bool|color|string|label|line)(\b[^\(=.])">
-        <bygroups>
-          <token type="KeywordType"/>
-          <token type="Text"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(var)\b">
-        <token type="KeywordType"/>
-      </rule>
-      <rule pattern="(true|false)\b">
-        <token type="KeywordConstant"/>
-      </rule>
-      <rule pattern="(and|or|not|if|else|for|to)\b">
-        <token type="OperatorWord"/>
-      </rule>
-      <rule pattern="@?[_a-zA-Z]\w*">
-        <token type="Text"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/transact-sql.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/transact-sql.xml	(revision 67)
+++ 	(revision )
@@ -1,137 +1,0 @@
-<lexer>
-  <config>
-    <name>Transact-SQL</name>
-    <alias>tsql</alias>
-    <alias>t-sql</alias>
-    <mime_type>text/x-tsql</mime_type>
-    <case_insensitive>true</case_insensitive>
-    <not_multiline>true</not_multiline>
-  </config>
-  <rules>
-    <state name="root">
-      <rule pattern="\s+">
-        <token type="TextWhitespace"/>
-      </rule>
-      <rule pattern="--(?m).*?$\n?">
-        <token type="CommentSingle"/>
-      </rule>
-      <rule pattern="/\*">
-        <token type="CommentMultiline"/>
-        <push state="multiline-comments"/>
-      </rule>
-      <rule pattern="&#39;">
-        <token type="LiteralStringSingle"/>
-        <push state="string"/>
-      </rule>
-      <rule pattern="&#34;">
-        <token type="LiteralStringName"/>
-        <push state="quoted-ident"/>
-      </rule>
-      <rule pattern="(\*=|!=|!&gt;|\^=|&lt;=|&lt;&gt;|\|=|&amp;=|&gt;=|%=|\+=|/=|-=|!&lt;|::|/|-|%|\+|&amp;|&gt;|\||=|\^|&lt;|~|\*)">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="(intersect|between|except|exists|union|some|like|all|any|not|and|or|in)\b">
-        <token type="OperatorWord"/>
-      </rule>
-      <rule pattern="(uniqueidentifier|datetimeoffset|smalldatetime|hierarchyid|sql_variant|smallmoney|varbinary|datetime2|timestamp|datetime|smallint|nvarchar|decimal|tinyint|varchar|numeric|binary|bigint|cursor|image|nchar|money|float|table|ntext|text|time|real|date|char|int|bit|xml)\b">
-        <token type="NameClass"/>
-      </rule>
-      <rule pattern="(get_filestream_transaction_context|datetimeoffsetfromparts|fulltextserviceproperty|fulltextcatalogproperty|current_transaction_id|smalldatetimefromparts|min_active_rowversion|database_principal_id|current_request_id|databasepropertyex|connectionproperty|datetime2fromparts|object_schema_name|indexkey_property|filegroupproperty|current_timestamp|sysdatetimeoffset|has_perms_by_name|object_definition|datetimefromparts|assemblyproperty|todatetimeoffset|original_db_name|objectpropertyex|is_srvrolemember|error_procedure|binary_checksum|session_context|sp_helplanguage|newsequentialid|error_severity|original_login|objectproperty|opendatasource|columnproperty|sysutcdatetime|scope_identity|serverproperty|certprivatekey|filegroup_name|cursor_status|formatmessage|indexproperty|is_rolemember|datefromparts|timefromparts|string_escape|error_message|switchoffset|filegroup_id|string_split|string_agg|current_user|checksum_agg|applock_test|session_user|typeproperty|rowcount_big|context_info|fileproperty|error_number|datediff_big|applock_mode|sysdatetime|error_state|json_modify|grouping_id|getansinull|try_convert|certencoded|system_user|permissions|schema_name|object_name|suser_sname|difference|xact_state|json_value|\$partition|row_number|json_query|getutcdate|col_length|decompress|error_line|openrowset|stats_date|pwdcompare|dense_rank|pwdencrypt|suser_name|is_member|index_col|quotename|host_name|charindex|parsename|isnumeric|user_name|replicate|openquery|count_big|type_name|object_id|try_parse|file_idex|substring|file_name|textvalid|suser_sid|schema_id|compress|grouping|suser_id|app_name|try_cast|col_name|datepart|datename|datediff|checksum|patindex|openjson|getdate|convert|openxml|file_id|db_name|radians|ceiling|unicode|reverse|dateadd|soundex|degrees|eomonth|user_id|type_id|host_id|textptr|replace|concat|concat_ws|square|isdate|stdevp|isjson|isnull|choose|format|stuff|floor|round|right|upper|log10|rtrim|lower|power|ltrim|space|db_id|month|parse|stdev|nchar|newid|count|ntile|ascii|char|year|varp|rank|left|sign|cast|acos|atn2|atan|asin|rand|sqrt|sin|max|min|tan|avg|cos|log|len|abs|cot|str|iif|exp|var|day|sum|pi)\b">
-        <token type="NameFunction"/>
-      </rule>
-      <rule pattern="(goto)(\s+)(\w+\b)">
-        <bygroups>
-          <token type="Keyword"/>
-          <token type="TextWhitespace"/>
-          <token type="NameLabel"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(current_transform_group_for_type|current_default_transform_group|semanticsimilaritydetailstable|semanticsimilaritytable|semantickeyphrasetable|occurrences_regex|current_timestamp|character_length|percentile_cont|identity_insert|current_catalog|translate_regex|timezone_minute|substring_regex|percentile_disc|regr_intercept|localtimestamp|current_schema|opendatasource|position_regex|deterministic|timezone_hour|authorization|xmlattributes|corresponding|xmlnamespaces|fulltexttable|containstable|securityaudit|freetexttable|current_date|width_bucket|specifictype|session_user|intersection|percent_rank|sqlexception|current_path|current_role|current_time|xmlserialize|octet_length|nonclustered|current_user|reconfigure|xmlvalidate|cardinality|replication|try_convert|char_length|xmldocument|tablesample|identitycol|system_user|referencing|translation|submultiset|diagnostics|insensitive|distributed|constructor|constraints|stddev_samp|transaction|fillfactor|completion|destructor|descriptor|connection|dictionary|disconnect|initialize|statistics|sqlwarning|stddev_pop|constraint|references|privileges|parameters|deferrable|covar_samp|asymmetric|deallocate|asensitive|checkpoint|regr_count|xmlcomment|regr_slope|updatetext|like_regex|xmliterate|ordinality|openrowset|rowguidcol|xmlelement|bit_length|parameter|temporary|immediate|initially|cume_dist|symmetric|recursive|timestamp|substring|collation|regr_avgy|normalize|covar_pop|indicator|raiserror|structure|procedure|intersect|terminate|isolation|savepoint|precision|condition|openquery|assertion|translate|aggregate|operation|xmlconcat|character|xmlexists|partition|clustered|sensitive|exception|statement|xmlbinary|localtime|xmlforest|regr_avgx|writetext|smallint|shutdown|specific|allocate|overlaps|sqlstate|coalesce|sequence|xmlparse|external|distinct|truncate|absolute|position|sqlerror|xmlquery|xmltable|cascaded|rowcount|preorder|preserve|describe|rollback|freetext|regr_sxy|interval|restrict|continue|function|modifies|trailing|readtext|whenever|relative|deferred|multiset|regr_sxx|grouping|textsize|database|end-exec|var_samp|regr_syy|identity|national|variable|holdlock|contains|language|breadth|include|varying|varchar|waitfor|regr_r2|var_pop|release|unpivot|between|general|restore|integer|unknown|without|returns|cascade|primary|routine|iterate|fortran|foreign|section|overlay|postfix|uescape|lateral|leading|tsequal|xmlcast|catalog|extract|execute|percent|session|partial|setuser|similar|trigger|element|locator|sqlcode|dynamic|collate|nocheck|openxml|collect|compute|destroy|offsets|connect|convert|boolean|numeric|default|declare|decimal|current|natural|xmltext|prepare|window|unnest|called|exists|select|unique|escape|action|filter|nullif|module|object|modify|second|search|except|minute|scroll|schema|errlvl|equals|browse|method|update|member|atomic|option|xmlagg|rollup|double|domain|revoke|output|revert|return|fusion|global|delete|having|before|lineno|pascal|values|binary|system|cursor|column|insert|commit|public|static|ignore|create|prefix|within|backup|result|cross|names|prior|large|cycle|begin|usage|pivot|range|table|reads|input|close|inout|inner|while|index|where|level|limit|using|value|treat|class|group|grant|local|depth|check|deref|lower|state|print|write|start|upper|outer|right|xmlpi|match|order|found|sqlca|array|float|space|catch|under|first|alter|scope|alias|after|admin|throw|month|nchar|fetch|false|every|break|nclob|union|merge|count|zone|exit|file|save|size|rule|some|rows|both|else|bulk|blob|each|dump|drop|free|role|from|full|disk|call|desc|view|when|deny|goto|hold|dbcc|host|hour|real|date|read|data|proc|into|cube|than|then|with|time|join|kill|last|user|left|corr|tran|plan|less|like|clob|path|load|trim|work|char|over|sets|cast|case|only|null|none|year|next|open|exec|true|are|top|use|not|day|sum|dec|sql|end|set|for|row|get|bit|ada|add|mod|ref|int|new|off|key|old|pad|map|out|all|avg|max|and|asc|any|min|try|as|at|on|or|ln|is|of|in|if|go|to|no|by)\b">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="(\[)([^]]+)(\])">
-        <bygroups>
-          <token type="Operator"/>
-          <token type="Name"/>
-          <token type="Operator"/>
-        </bygroups>
-      </rule>
-      <rule pattern="0x[0-9a-f]+">
-        <token type="LiteralNumberHex"/>
-      </rule>
-      <rule pattern="[0-9]+\.[0-9]*(e[+-]?[0-9]+)?">
-        <token type="LiteralNumberFloat"/>
-      </rule>
-      <rule pattern="\.[0-9]+(e[+-]?[0-9]+)?">
-        <token type="LiteralNumberFloat"/>
-      </rule>
-      <rule pattern="[0-9]+e[+-]?[0-9]+">
-        <token type="LiteralNumberFloat"/>
-      </rule>
-      <rule pattern="[0-9]+">
-        <token type="LiteralNumberInteger"/>
-      </rule>
-      <rule pattern="[;(),.]">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="@@\w+">
-        <token type="NameBuiltin"/>
-      </rule>
-      <rule pattern="@\w+">
-        <token type="NameVariable"/>
-      </rule>
-      <rule pattern="(\w+)(:)">
-        <bygroups>
-          <token type="NameLabel"/>
-          <token type="Punctuation"/>
-        </bygroups>
-      </rule>
-      <rule pattern="#?#?\w+">
-        <token type="Name"/>
-      </rule>
-      <rule pattern="\?">
-        <token type="NameVariableMagic"/>
-      </rule>
-    </state>
-    <state name="multiline-comments">
-      <rule pattern="/\*">
-        <token type="CommentMultiline"/>
-        <push state="multiline-comments"/>
-      </rule>
-      <rule pattern="\*/">
-        <token type="CommentMultiline"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="[^/*]+">
-        <token type="CommentMultiline"/>
-      </rule>
-      <rule pattern="[/*]">
-        <token type="CommentMultiline"/>
-      </rule>
-    </state>
-    <state name="string">
-      <rule pattern="[^&#39;]+">
-        <token type="LiteralStringSingle"/>
-      </rule>
-      <rule pattern="&#39;&#39;">
-        <token type="LiteralStringSingle"/>
-      </rule>
-      <rule pattern="&#39;">
-        <token type="LiteralStringSingle"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="quoted-ident">
-      <rule pattern="[^&#34;]+">
-        <token type="LiteralStringName"/>
-      </rule>
-      <rule pattern="&#34;&#34;">
-        <token type="LiteralStringName"/>
-      </rule>
-      <rule pattern="&#34;">
-        <token type="LiteralStringName"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/turing.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/turing.xml	(revision 67)
+++ 	(revision )
@@ -1,82 +1,0 @@
-<lexer>
-  <config>
-    <name>Turing</name>
-    <alias>turing</alias>
-    <filename>*.turing</filename>
-    <filename>*.tu</filename>
-    <mime_type>text/x-turing</mime_type>
-  </config>
-  <rules>
-    <state name="root">
-      <rule pattern="\n">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="\s+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="\\\n">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="%(.*?)\n">
-        <token type="CommentSingle"/>
-      </rule>
-      <rule pattern="/(\\\n)?[*](.|\n)*?[*](\\\n)?/">
-        <token type="CommentMultiline"/>
-      </rule>
-      <rule pattern="(var|fcn|function|proc|procedure|process|class|end|record|type|begin|case|loop|for|const|union|monitor|module|handler)\b">
-        <token type="KeywordDeclaration"/>
-      </rule>
-      <rule pattern="(all|asm|assert|bind|bits|body|break|by|cheat|checked|close|condition|decreasing|def|deferred|else|elsif|exit|export|external|flexible|fork|forward|free|get|if|implement|import|include|inherit|init|invariant|label|new|objectclass|of|opaque|open|packed|pause|pervasive|post|pre|priority|put|quit|read|register|result|seek|self|set|signal|skip|tag|tell|then|timeout|to|unchecked|unqualified|wait|when|write)\b">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="(true|false)\b">
-        <token type="KeywordConstant"/>
-      </rule>
-      <rule pattern="(addressint|boolean|pointer|string|array|real4|real8|nat1|int8|int4|int2|nat2|nat4|nat8|int1|real|char|enum|nat|int)\b">
-        <token type="KeywordType"/>
-      </rule>
-      <rule pattern="\d+i">
-        <token type="LiteralNumber"/>
-      </rule>
-      <rule pattern="\d+\.\d*([Ee][-+]\d+)?i">
-        <token type="LiteralNumber"/>
-      </rule>
-      <rule pattern="\.\d+([Ee][-+]\d+)?i">
-        <token type="LiteralNumber"/>
-      </rule>
-      <rule pattern="\d+[Ee][-+]\d+i">
-        <token type="LiteralNumber"/>
-      </rule>
-      <rule pattern="\d+(\.\d+[eE][+\-]?\d+|\.\d*|[eE][+\-]?\d+)">
-        <token type="LiteralNumberFloat"/>
-      </rule>
-      <rule pattern="\.\d+([eE][+\-]?\d+)?">
-        <token type="LiteralNumberFloat"/>
-      </rule>
-      <rule pattern="0[0-7]+">
-        <token type="LiteralNumberOct"/>
-      </rule>
-      <rule pattern="0[xX][0-9a-fA-F]+">
-        <token type="LiteralNumberHex"/>
-      </rule>
-      <rule pattern="(0|[1-9][0-9]*)">
-        <token type="LiteralNumberInteger"/>
-      </rule>
-      <rule pattern="(div|mod|rem|\*\*|=|&lt;|&gt;|&gt;=|&lt;=|not=|not|and|or|xor|=&gt;|in|shl|shr|-&gt;|~|~=|~in|&amp;|:=|\.\.|[\^+\-*/&amp;#])">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="&#39;(\\[&#39;&#34;\\abfnrtv]|\\x[0-9a-fA-F]{2}|\\[0-7]{1,3}|\\u[0-9a-fA-F]{4}|\\U[0-9a-fA-F]{8}|[^\\])&#39;">
-        <token type="LiteralStringChar"/>
-      </rule>
-      <rule pattern="&#34;(\\\\|\\&#34;|[^&#34;])*&#34;">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="[()\[\]{}.,:]">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="[^\W\d]\w*">
-        <token type="NameOther"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/turtle.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/turtle.xml	(revision 67)
+++ 	(revision )
@@ -1,170 +1,0 @@
-<lexer>
-  <config>
-    <name>Turtle</name>
-    <alias>turtle</alias>
-    <filename>*.ttl</filename>
-    <mime_type>text/turtle</mime_type>
-    <mime_type>application/x-turtle</mime_type>
-    <case_insensitive>true</case_insensitive>
-    <not_multiline>true</not_multiline>
-  </config>
-  <rules>
-    <state name="triple-double-quoted-string">
-      <rule pattern="&#34;&#34;&#34;">
-        <token type="LiteralString"/>
-        <push state="end-of-string"/>
-      </rule>
-      <rule pattern="[^\\]+">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="\\">
-        <token type="LiteralString"/>
-        <push state="string-escape"/>
-      </rule>
-    </state>
-    <state name="single-double-quoted-string">
-      <rule pattern="&#34;">
-        <token type="LiteralString"/>
-        <push state="end-of-string"/>
-      </rule>
-      <rule pattern="[^&#34;\\\n]+">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="\\">
-        <token type="LiteralString"/>
-        <push state="string-escape"/>
-      </rule>
-    </state>
-    <state name="triple-single-quoted-string">
-      <rule pattern="&#39;&#39;&#39;">
-        <token type="LiteralString"/>
-        <push state="end-of-string"/>
-      </rule>
-      <rule pattern="[^\\]+">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="\\">
-        <token type="LiteralString"/>
-        <push state="string-escape"/>
-      </rule>
-    </state>
-    <state name="single-single-quoted-string">
-      <rule pattern="&#39;">
-        <token type="LiteralString"/>
-        <push state="end-of-string"/>
-      </rule>
-      <rule pattern="[^&#39;\\\n]+">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="\\">
-        <token type="LiteralString"/>
-        <push state="string-escape"/>
-      </rule>
-    </state>
-    <state name="string-escape">
-      <rule pattern=".">
-        <token type="LiteralString"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="end-of-string">
-      <rule pattern="(@)([a-z]+(:?-[a-z0-9]+)*)">
-        <bygroups>
-          <token type="Operator"/>
-          <token type="GenericEmph"/>
-          <token type="GenericEmph"/>
-        </bygroups>
-        <pop depth="2"/>
-      </rule>
-      <rule pattern="(\^\^)(&lt;[^&lt;&gt;&#34;{}|^`\\\x00-\x20]*&gt;)">
-        <bygroups>
-          <token type="Operator"/>
-          <token type="GenericEmph"/>
-        </bygroups>
-        <pop depth="2"/>
-      </rule>
-      <rule pattern="(\^\^)((?:[a-z][\w-]*)?\:)([a-z][\w-]*)">
-        <bygroups>
-          <token type="Operator"/>
-          <token type="GenericEmph"/>
-          <token type="GenericEmph"/>
-        </bygroups>
-        <pop depth="2"/>
-      </rule>
-      <rule>
-        <pop depth="2"/>
-      </rule>
-    </state>
-    <state name="root">
-      <rule pattern="\s+">
-        <token type="TextWhitespace"/>
-      </rule>
-      <rule pattern="(@base|BASE)(\s+)(&lt;[^&lt;&gt;&#34;{}|^`\\\x00-\x20]*&gt;)(\s*)(\.?)">
-        <bygroups>
-          <token type="Keyword"/>
-          <token type="TextWhitespace"/>
-          <token type="NameVariable"/>
-          <token type="TextWhitespace"/>
-          <token type="Punctuation"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(@prefix|PREFIX)(\s+)((?:[a-z][\w-]*)?\:)(\s+)(&lt;[^&lt;&gt;&#34;{}|^`\\\x00-\x20]*&gt;)(\s*)(\.?)">
-        <bygroups>
-          <token type="Keyword"/>
-          <token type="TextWhitespace"/>
-          <token type="NameNamespace"/>
-          <token type="TextWhitespace"/>
-          <token type="NameVariable"/>
-          <token type="TextWhitespace"/>
-          <token type="Punctuation"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(?&lt;=\s)a(?=\s)">
-        <token type="KeywordType"/>
-      </rule>
-      <rule pattern="(&lt;[^&lt;&gt;&#34;{}|^`\\\x00-\x20]*&gt;)">
-        <token type="NameVariable"/>
-      </rule>
-      <rule pattern="((?:[a-z][\w-]*)?\:)([a-z][\w-]*)">
-        <bygroups>
-          <token type="NameNamespace"/>
-          <token type="NameTag"/>
-        </bygroups>
-      </rule>
-      <rule pattern="#[^\n]+">
-        <token type="Comment"/>
-      </rule>
-      <rule pattern="\b(true|false)\b">
-        <token type="Literal"/>
-      </rule>
-      <rule pattern="[+\-]?\d*\.\d+">
-        <token type="LiteralNumberFloat"/>
-      </rule>
-      <rule pattern="[+\-]?\d*(:?\.\d+)?E[+\-]?\d+">
-        <token type="LiteralNumberFloat"/>
-      </rule>
-      <rule pattern="[+\-]?\d+">
-        <token type="LiteralNumberInteger"/>
-      </rule>
-      <rule pattern="[\[\](){}.;,:^]">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="&#34;&#34;&#34;">
-        <token type="LiteralString"/>
-        <push state="triple-double-quoted-string"/>
-      </rule>
-      <rule pattern="&#34;">
-        <token type="LiteralString"/>
-        <push state="single-double-quoted-string"/>
-      </rule>
-      <rule pattern="&#39;&#39;&#39;">
-        <token type="LiteralString"/>
-        <push state="triple-single-quoted-string"/>
-      </rule>
-      <rule pattern="&#39;">
-        <token type="LiteralString"/>
-        <push state="single-single-quoted-string"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/twig.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/twig.xml	(revision 67)
+++ 	(revision )
@@ -1,154 +1,0 @@
-<lexer>
-  <config>
-    <name>Twig</name>
-    <alias>twig</alias>
-    <mime_type>application/x-twig</mime_type>
-    <dot_all>true</dot_all>
-  </config>
-  <rules>
-    <state name="var">
-      <rule pattern="\s+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="(-?)(\}\})">
-        <bygroups>
-          <token type="Text"/>
-          <token type="CommentPreproc"/>
-        </bygroups>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <include state="varnames"/>
-      </rule>
-    </state>
-    <state name="tag">
-      <rule pattern="\s+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="(-?)(%\})">
-        <bygroups>
-          <token type="Text"/>
-          <token type="CommentPreproc"/>
-        </bygroups>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <include state="varnames"/>
-      </rule>
-      <rule pattern=".">
-        <token type="Punctuation"/>
-      </rule>
-    </state>
-    <state name="root">
-      <rule pattern="[^{]+">
-        <token type="Other"/>
-      </rule>
-      <rule pattern="\{\{">
-        <token type="CommentPreproc"/>
-        <push state="var"/>
-      </rule>
-      <rule pattern="\{\#.*?\#\}">
-        <token type="Comment"/>
-      </rule>
-      <rule pattern="(\{%)(-?\s*)(raw)(\s*-?)(%\})(.*?)(\{%)(-?\s*)(endraw)(\s*-?)(%\})">
-        <bygroups>
-          <token type="CommentPreproc"/>
-          <token type="Text"/>
-          <token type="Keyword"/>
-          <token type="Text"/>
-          <token type="CommentPreproc"/>
-          <token type="Other"/>
-          <token type="CommentPreproc"/>
-          <token type="Text"/>
-          <token type="Keyword"/>
-          <token type="Text"/>
-          <token type="CommentPreproc"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(\{%)(-?\s*)(verbatim)(\s*-?)(%\})(.*?)(\{%)(-?\s*)(endverbatim)(\s*-?)(%\})">
-        <bygroups>
-          <token type="CommentPreproc"/>
-          <token type="Text"/>
-          <token type="Keyword"/>
-          <token type="Text"/>
-          <token type="CommentPreproc"/>
-          <token type="Other"/>
-          <token type="CommentPreproc"/>
-          <token type="Text"/>
-          <token type="Keyword"/>
-          <token type="Text"/>
-          <token type="CommentPreproc"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(\{%)(-?\s*)(filter)(\s+)((?:[\\_a-z]|[^\x00-\x7f])(?:[\\\w-]|[^\x00-\x7f])*)">
-        <bygroups>
-          <token type="CommentPreproc"/>
-          <token type="Text"/>
-          <token type="Keyword"/>
-          <token type="Text"/>
-          <token type="NameFunction"/>
-        </bygroups>
-        <push state="tag"/>
-      </rule>
-      <rule pattern="(\{%)(-?\s*)([a-zA-Z_]\w*)">
-        <bygroups>
-          <token type="CommentPreproc"/>
-          <token type="Text"/>
-          <token type="Keyword"/>
-        </bygroups>
-        <push state="tag"/>
-      </rule>
-      <rule pattern="\{">
-        <token type="Other"/>
-      </rule>
-    </state>
-    <state name="varnames">
-      <rule pattern="(\|)(\s*)((?:[\\_a-z]|[^\x00-\x7f])(?:[\\\w-]|[^\x00-\x7f])*)">
-        <bygroups>
-          <token type="Operator"/>
-          <token type="Text"/>
-          <token type="NameFunction"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(is)(\s+)(not)?(\s*)((?:[\\_a-z]|[^\x00-\x7f])(?:[\\\w-]|[^\x00-\x7f])*)">
-        <bygroups>
-          <token type="Keyword"/>
-          <token type="Text"/>
-          <token type="Keyword"/>
-          <token type="Text"/>
-          <token type="NameFunction"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(?i)(true|false|none|null)\b">
-        <token type="KeywordPseudo"/>
-      </rule>
-      <rule pattern="(in|not|and|b-and|or|b-or|b-xor|isif|elseif|else|importconstant|defined|divisibleby|empty|even|iterable|odd|sameasmatches|starts\s+with|ends\s+with)\b">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="(loop|block|parent)\b">
-        <token type="NameBuiltin"/>
-      </rule>
-      <rule pattern="(?:[\\_a-z]|[^\x00-\x7f])(?:[\\\w-]|[^\x00-\x7f])*">
-        <token type="NameVariable"/>
-      </rule>
-      <rule pattern="\.(?:[\\_a-z]|[^\x00-\x7f])(?:[\\\w-]|[^\x00-\x7f])*">
-        <token type="NameVariable"/>
-      </rule>
-      <rule pattern="\.[0-9]+">
-        <token type="LiteralNumber"/>
-      </rule>
-      <rule pattern=":?&#34;(\\\\|\\&#34;|[^&#34;])*&#34;">
-        <token type="LiteralStringDouble"/>
-      </rule>
-      <rule pattern=":?&#39;(\\\\|\\&#39;|[^&#39;])*&#39;">
-        <token type="LiteralStringSingle"/>
-      </rule>
-      <rule pattern="([{}()\[\]+\-*/,:~%]|\.\.|\?|:|\*\*|\/\/|!=|[&gt;&lt;=]=?)">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="[0-9](\.[0-9]*)?(eE[+-][0-9])?[flFLdD]?|0[xX][0-9a-fA-F]+[Ll]?">
-        <token type="LiteralNumber"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/typescript.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/typescript.xml	(revision 67)
+++ 	(revision )
@@ -1,261 +1,0 @@
-<lexer>
-  <config>
-    <name>TypeScript</name>
-    <alias>ts</alias>
-    <alias>tsx</alias>
-    <alias>typescript</alias>
-    <filename>*.ts</filename>
-    <filename>*.tsx</filename>
-    <mime_type>text/x-typescript</mime_type>
-    <dot_all>true</dot_all>
-    <ensure_nl>true</ensure_nl>
-  </config>
-  <rules>
-    <state name="expression">
-      <rule pattern="{">
-        <token type="Punctuation"/>
-        <push/>
-      </rule>
-      <rule pattern="}">
-        <token type="Punctuation"/>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <include state="root"/>
-      </rule>
-    </state>
-    <state name="jsx">
-      <rule pattern="(&lt;)(/?)(&gt;)">
-        <bygroups>
-          <token type="Punctuation"/>
-          <token type="Punctuation"/>
-          <token type="Punctuation"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(&lt;)([\w\.]+)">
-        <bygroups>
-          <token type="Punctuation"/>
-          <token type="NameTag"/>
-        </bygroups>
-        <push state="tag"/>
-      </rule>
-      <rule pattern="(&lt;)(/)([\w\.]*)(&gt;)">
-        <bygroups>
-          <token type="Punctuation"/>
-          <token type="Punctuation"/>
-          <token type="NameTag"/>
-          <token type="Punctuation"/>
-        </bygroups>
-      </rule>
-    </state>
-    <state name="tag">
-      <rule pattern="\s+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="([\w]+\s*)(=)(\s*)">
-        <bygroups>
-          <token type="NameAttribute"/>
-          <token type="Operator"/>
-          <token type="Text"/>
-        </bygroups>
-        <push state="attr"/>
-      </rule>
-      <rule pattern="[{}]+">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="[\w\.]+">
-        <token type="NameAttribute"/>
-      </rule>
-      <rule pattern="(/?)(\s*)(&gt;)">
-        <bygroups>
-          <token type="Punctuation"/>
-          <token type="Text"/>
-          <token type="Punctuation"/>
-        </bygroups>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="commentsandwhitespace">
-      <rule pattern="\s+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="&lt;!--">
-        <token type="Comment"/>
-      </rule>
-      <rule pattern="//.*?\n">
-        <token type="CommentSingle"/>
-      </rule>
-      <rule pattern="/\*.*?\*/">
-        <token type="CommentMultiline"/>
-      </rule>
-    </state>
-    <state name="badregex">
-      <rule pattern="\n">
-        <token type="Text"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="interp">
-      <rule pattern="`">
-        <token type="LiteralStringBacktick"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="\\\\">
-        <token type="LiteralStringBacktick"/>
-      </rule>
-      <rule pattern="\\`">
-        <token type="LiteralStringBacktick"/>
-      </rule>
-      <rule pattern="\$\{">
-        <token type="LiteralStringInterpol"/>
-        <push state="interp-inside"/>
-      </rule>
-      <rule pattern="\$">
-        <token type="LiteralStringBacktick"/>
-      </rule>
-      <rule pattern="[^`\\$]+">
-        <token type="LiteralStringBacktick"/>
-      </rule>
-    </state>
-    <state name="attr">
-      <rule pattern="{">
-        <token type="Punctuation"/>
-        <push state="expression"/>
-      </rule>
-      <rule pattern="&#34;.*?&#34;">
-        <token type="LiteralString"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="&#39;.*?&#39;">
-        <token type="LiteralString"/>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="interp-inside">
-      <rule pattern="\}">
-        <token type="LiteralStringInterpol"/>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <include state="root"/>
-      </rule>
-    </state>
-    <state name="slashstartsregex">
-      <rule>
-        <include state="commentsandwhitespace"/>
-      </rule>
-      <rule pattern="/(\\.|[^[/\\\n]|\[(\\.|[^\]\\\n])*])+/([gim]+\b|\B)">
-        <token type="LiteralStringRegex"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="(?=/)">
-        <token type="Text"/>
-        <push state="#pop" state="badregex"/>
-      </rule>
-      <rule>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="root">
-      <rule>
-        <include state="jsx"/>
-      </rule>
-      <rule pattern="^(?=\s|/|&lt;!--)">
-        <token type="Text"/>
-        <push state="slashstartsregex"/>
-      </rule>
-      <rule>
-        <include state="commentsandwhitespace"/>
-      </rule>
-      <rule pattern="\+\+|--|~|&amp;&amp;|\?|:|\|\||\\(?=\n)|(&lt;&lt;|&gt;&gt;&gt;?|==?|!=?|[-&lt;&gt;+*%&amp;|^/])=?">
-        <token type="Operator"/>
-        <push state="slashstartsregex"/>
-      </rule>
-      <rule pattern="[{(\[;,]">
-        <token type="Punctuation"/>
-        <push state="slashstartsregex"/>
-      </rule>
-      <rule pattern="[})\].]">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="(for|in|of|while|do|break|return|yield|continue|switch|case|default|if|else|throw|try|catch|finally|new|delete|typeof|instanceof|keyof|asserts|is|infer|await|void|this)\b">
-        <token type="Keyword"/>
-        <push state="slashstartsregex"/>
-      </rule>
-      <rule pattern="(var|let|with|function)\b">
-        <token type="KeywordDeclaration"/>
-        <push state="slashstartsregex"/>
-      </rule>
-      <rule pattern="(abstract|async|boolean|class|const|debugger|enum|export|extends|from|get|global|goto|implements|import|interface|namespace|package|private|protected|public|readonly|require|set|static|super|type)\b">
-        <token type="KeywordReserved"/>
-      </rule>
-      <rule pattern="(true|false|null|NaN|Infinity|undefined)\b">
-        <token type="KeywordConstant"/>
-      </rule>
-      <rule pattern="(Array|Boolean|Date|Error|Function|Math|Number|Object|Packages|RegExp|String|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|document|this|window)\b">
-        <token type="NameBuiltin"/>
-      </rule>
-      <rule pattern="\b(module)(\s*)(\s*[\w?.$][\w?.$]*)(\s*)">
-        <bygroups>
-          <token type="KeywordReserved"/>
-          <token type="Text"/>
-          <token type="NameOther"/>
-          <token type="Text"/>
-        </bygroups>
-        <push state="slashstartsregex"/>
-      </rule>
-      <rule pattern="\b(string|bool|number|any|never|object|symbol|unique|unknown|bigint)\b">
-        <token type="KeywordType"/>
-      </rule>
-      <rule pattern="\b(constructor|declare|interface|as)\b">
-        <token type="KeywordReserved"/>
-      </rule>
-      <rule pattern="(super)(\s*)(\([\w,?.$\s]+\s*\))">
-        <bygroups>
-          <token type="KeywordReserved"/>
-          <token type="Text"/>
-        </bygroups>
-        <push state="slashstartsregex"/>
-      </rule>
-      <rule pattern="([a-zA-Z_?.$][\w?.$]*)\(\) \{">
-        <token type="NameOther"/>
-        <push state="slashstartsregex"/>
-      </rule>
-      <rule pattern="([\w?.$][\w?.$]*)(\s*:\s*)([\w?.$][\w?.$]*)">
-        <bygroups>
-          <token type="NameOther"/>
-          <token type="Text"/>
-          <token type="KeywordType"/>
-        </bygroups>
-      </rule>
-      <rule pattern="[$a-zA-Z_]\w*">
-        <token type="NameOther"/>
-      </rule>
-      <rule pattern="[0-9][0-9]*\.[0-9]+([eE][0-9]+)?[fd]?">
-        <token type="LiteralNumberFloat"/>
-      </rule>
-      <rule pattern="0x[0-9a-fA-F]+">
-        <token type="LiteralNumberHex"/>
-      </rule>
-      <rule pattern="[0-9]+">
-        <token type="LiteralNumberInteger"/>
-      </rule>
-      <rule pattern="&#34;(\\\\|\\&#34;|[^&#34;])*&#34;">
-        <token type="LiteralStringDouble"/>
-      </rule>
-      <rule pattern="&#39;(\\\\|\\&#39;|[^&#39;])*&#39;">
-        <token type="LiteralStringSingle"/>
-      </rule>
-      <rule pattern="`">
-        <token type="LiteralStringBacktick"/>
-        <push state="interp"/>
-      </rule>
-      <rule pattern="@\w+">
-        <token type="KeywordDeclaration"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/typoscriptcssdata.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/typoscriptcssdata.xml	(revision 67)
+++ 	(revision )
@@ -1,52 +1,0 @@
-<lexer>
-  <config>
-    <name>TypoScriptCssData</name>
-    <alias>typoscriptcssdata</alias>
-  </config>
-  <rules>
-    <state name="root">
-      <rule pattern="(.*)(###\w+###)(.*)">
-        <bygroups>
-          <token type="LiteralString"/>
-          <token type="NameConstant"/>
-          <token type="LiteralString"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(\{)(\$)((?:[\w\-]+\.)*)([\w\-]+)(\})">
-        <bygroups>
-          <token type="LiteralStringSymbol"/>
-          <token type="Operator"/>
-          <token type="NameConstant"/>
-          <token type="NameConstant"/>
-          <token type="LiteralStringSymbol"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(.*)(\{)([\w\-]+)(\s*:\s*)([\w\-]+)(\})(.*)">
-        <bygroups>
-          <token type="LiteralString"/>
-          <token type="LiteralStringSymbol"/>
-          <token type="NameConstant"/>
-          <token type="Operator"/>
-          <token type="NameConstant"/>
-          <token type="LiteralStringSymbol"/>
-          <token type="LiteralString"/>
-        </bygroups>
-      </rule>
-      <rule pattern="\s+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="/\*(?:(?!\*/).)*\*/">
-        <token type="Comment"/>
-      </rule>
-      <rule pattern="(?&lt;!(#|\&#39;|&#34;))(?:#(?!(?:[a-fA-F0-9]{6}|[a-fA-F0-9]{3}))[^\n#]+|//[^\n]*)">
-        <token type="Comment"/>
-      </rule>
-      <rule pattern="[&lt;&gt;,:=.*%+|]">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="[\w&#34;\-!/&amp;;(){}]+">
-        <token type="LiteralString"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/typoscripthtmldata.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/typoscripthtmldata.xml	(revision 67)
+++ 	(revision )
@@ -1,52 +1,0 @@
-<lexer>
-  <config>
-    <name>TypoScriptHtmlData</name>
-    <alias>typoscripthtmldata</alias>
-  </config>
-  <rules>
-    <state name="root">
-      <rule pattern="(INCLUDE_TYPOSCRIPT)">
-        <token type="NameClass"/>
-      </rule>
-      <rule pattern="(EXT|FILE|LLL):[^}\n&#34;]*">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="(.*)(###\w+###)(.*)">
-        <bygroups>
-          <token type="LiteralString"/>
-          <token type="NameConstant"/>
-          <token type="LiteralString"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(\{)(\$)((?:[\w\-]+\.)*)([\w\-]+)(\})">
-        <bygroups>
-          <token type="LiteralStringSymbol"/>
-          <token type="Operator"/>
-          <token type="NameConstant"/>
-          <token type="NameConstant"/>
-          <token type="LiteralStringSymbol"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(.*)(\{)([\w\-]+)(\s*:\s*)([\w\-]+)(\})(.*)">
-        <bygroups>
-          <token type="LiteralString"/>
-          <token type="LiteralStringSymbol"/>
-          <token type="NameConstant"/>
-          <token type="Operator"/>
-          <token type="NameConstant"/>
-          <token type="LiteralStringSymbol"/>
-          <token type="LiteralString"/>
-        </bygroups>
-      </rule>
-      <rule pattern="\s+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="[&lt;&gt;,:=.*%+|]">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="[\w&#34;\-!/&amp;;(){}#]+">
-        <token type="LiteralString"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/vb_net.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/vb_net.xml	(revision 67)
+++ 	(revision )
@@ -1,162 +1,0 @@
-<lexer>
-  <config>
-    <name>VB.net</name>
-    <alias>vb.net</alias>
-    <alias>vbnet</alias>
-    <filename>*.vb</filename>
-    <filename>*.bas</filename>
-    <mime_type>text/x-vbnet</mime_type>
-    <mime_type>text/x-vba</mime_type>
-    <case_insensitive>true</case_insensitive>
-  </config>
-  <rules>
-    <state name="dim">
-      <rule pattern="[_\w][\w]*">
-        <token type="NameVariable"/>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="funcname">
-      <rule pattern="[_\w][\w]*">
-        <token type="NameFunction"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="classname">
-      <rule pattern="[_\w][\w]*">
-        <token type="NameClass"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="namespace">
-      <rule pattern="[_\w][\w]*">
-        <token type="NameNamespace"/>
-      </rule>
-      <rule pattern="\.">
-        <token type="NameNamespace"/>
-      </rule>
-      <rule>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="end">
-      <rule pattern="\s+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="(Function|Sub|Property|Class|Structure|Enum|Module|Namespace)\b">
-        <token type="Keyword"/>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="root">
-      <rule pattern="^\s*&lt;.*?&gt;">
-        <token type="NameAttribute"/>
-      </rule>
-      <rule pattern="\s+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="\n">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="rem\b.*?\n">
-        <token type="Comment"/>
-      </rule>
-      <rule pattern="&#39;.*?\n">
-        <token type="Comment"/>
-      </rule>
-      <rule pattern="#If\s.*?\sThen|#ElseIf\s.*?\sThen|#Else|#End\s+If|#Const|#ExternalSource.*?\n|#End\s+ExternalSource|#Region.*?\n|#End\s+Region|#ExternalChecksum">
-        <token type="CommentPreproc"/>
-      </rule>
-      <rule pattern="[(){}!#,.:]">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="Option\s+(Strict|Explicit|Compare)\s+(On|Off|Binary|Text)">
-        <token type="KeywordDeclaration"/>
-      </rule>
-      <rule pattern="(?&lt;!\.)(NotOverridable|NotInheritable|RemoveHandler|MustOverride|Overridable|MustInherit|Implements|RaiseEvent|AddHandler|ParamArray|WithEvents|DirectCast|Overrides|Overloads|Protected|WriteOnly|Interface|Narrowing|Inherits|Widening|SyncLock|ReadOnly|Operator|Continue|Delegate|Optional|MyClass|Declare|CUShort|Handles|Default|Shadows|TryCast|Finally|Private|Nothing|Partial|CSByte|Select|Option|Return|Friend|Resume|ElseIf|MyBase|Shared|Single|Public|CShort|Static|Global|Catch|CType|Error|CUInt|Using|While|GoSub|False|CDate|Throw|Event|CChar|CULng|CBool|Erase|ByVal|ByRef|Alias|EndIf|CByte|ReDim|Stop|Call|Wend|Next|CLng|Loop|True|CDec|With|Then|GoTo|CObj|CSng|Exit|CStr|Else|Each|Case|CInt|Step|When|CDbl|Set|For|Let|Lib|Try|New|Not|Get|On|To|Do|If|Of|Me)\b">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="(?&lt;!\.)End\b">
-        <token type="Keyword"/>
-        <push state="end"/>
-      </rule>
-      <rule pattern="(?&lt;!\.)(Dim|Const)\b">
-        <token type="Keyword"/>
-        <push state="dim"/>
-      </rule>
-      <rule pattern="(?&lt;!\.)(Function|Sub|Property)(\s+)">
-        <bygroups>
-          <token type="Keyword"/>
-          <token type="Text"/>
-        </bygroups>
-        <push state="funcname"/>
-      </rule>
-      <rule pattern="(?&lt;!\.)(Class|Structure|Enum)(\s+)">
-        <bygroups>
-          <token type="Keyword"/>
-          <token type="Text"/>
-        </bygroups>
-        <push state="classname"/>
-      </rule>
-      <rule pattern="(?&lt;!\.)(Module|Namespace|Imports)(\s+)">
-        <bygroups>
-          <token type="Keyword"/>
-          <token type="Text"/>
-        </bygroups>
-        <push state="namespace"/>
-      </rule>
-      <rule pattern="(?&lt;!\.)(Boolean|Byte|Char|Date|Decimal|Double|Integer|Long|Object|SByte|Short|Single|String|Variant|UInteger|ULong|UShort)\b">
-        <token type="KeywordType"/>
-      </rule>
-      <rule pattern="(?&lt;!\.)(AddressOf|And|AndAlso|As|GetType|In|Is|IsNot|Like|Mod|Or|OrElse|TypeOf|Xor)\b">
-        <token type="OperatorWord"/>
-      </rule>
-      <rule pattern="&amp;=|[*]=|/=|\\=|\^=|\+=|-=|&lt;&lt;=|&gt;&gt;=|&lt;&lt;|&gt;&gt;|:=|&lt;=|&gt;=|&lt;&gt;|[-&amp;*/\\^+=&lt;&gt;\[\]]">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="&#34;">
-        <token type="LiteralString"/>
-        <push state="string"/>
-      </rule>
-      <rule pattern="_\n">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="[_\w][\w]*">
-        <token type="Name"/>
-      </rule>
-      <rule pattern="#.*?#">
-        <token type="LiteralDate"/>
-      </rule>
-      <rule pattern="(\d+\.\d*|\d*\.\d+)(F[+-]?[0-9]+)?">
-        <token type="LiteralNumberFloat"/>
-      </rule>
-      <rule pattern="\d+([SILDFR]|US|UI|UL)?">
-        <token type="LiteralNumberInteger"/>
-      </rule>
-      <rule pattern="&amp;H[0-9a-f]+([SILDFR]|US|UI|UL)?">
-        <token type="LiteralNumberInteger"/>
-      </rule>
-      <rule pattern="&amp;O[0-7]+([SILDFR]|US|UI|UL)?">
-        <token type="LiteralNumberInteger"/>
-      </rule>
-    </state>
-    <state name="string">
-      <rule pattern="&#34;&#34;">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="&#34;C?">
-        <token type="LiteralString"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="[^&#34;]+">
-        <token type="LiteralString"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/verilog.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/verilog.xml	(revision 67)
+++ 	(revision )
@@ -1,158 +1,0 @@
-<lexer>
-  <config>
-    <name>verilog</name>
-    <alias>verilog</alias>
-    <alias>v</alias>
-    <filename>*.v</filename>
-    <mime_type>text/x-verilog</mime_type>
-    <ensure_nl>true</ensure_nl>
-  </config>
-  <rules>
-    <state name="root">
-      <rule pattern="^\s*`define">
-        <token type="CommentPreproc"/>
-        <push state="macro"/>
-      </rule>
-      <rule pattern="\n">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="\s+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="\\\n">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="/(\\\n)?/(\n|(.|\n)*?[^\\]\n)">
-        <token type="CommentSingle"/>
-      </rule>
-      <rule pattern="/(\\\n)?[*](.|\n)*?[*](\\\n)?/">
-        <token type="CommentMultiline"/>
-      </rule>
-      <rule pattern="[{}#@]">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="L?&#34;">
-        <token type="LiteralString"/>
-        <push state="string"/>
-      </rule>
-      <rule pattern="L?&#39;(\\.|\\[0-7]{1,3}|\\x[a-fA-F0-9]{1,2}|[^\\\&#39;\n])&#39;">
-        <token type="LiteralStringChar"/>
-      </rule>
-      <rule pattern="(\d+\.\d*|\.\d+|\d+)[eE][+-]?\d+[lL]?">
-        <token type="LiteralNumberFloat"/>
-      </rule>
-      <rule pattern="(\d+\.\d*|\.\d+|\d+[fF])[fF]?">
-        <token type="LiteralNumberFloat"/>
-      </rule>
-      <rule pattern="([0-9]+)|(\&#39;h)[0-9a-fA-F]+">
-        <token type="LiteralNumberHex"/>
-      </rule>
-      <rule pattern="([0-9]+)|(\&#39;b)[01]+">
-        <token type="LiteralNumberBin"/>
-      </rule>
-      <rule pattern="([0-9]+)|(\&#39;d)[0-9]+">
-        <token type="LiteralNumberInteger"/>
-      </rule>
-      <rule pattern="([0-9]+)|(\&#39;o)[0-7]+">
-        <token type="LiteralNumberOct"/>
-      </rule>
-      <rule pattern="\&#39;[01xz]">
-        <token type="LiteralNumber"/>
-      </rule>
-      <rule pattern="\d+[Ll]?">
-        <token type="LiteralNumberInteger"/>
-      </rule>
-      <rule pattern="\*/">
-        <token type="Error"/>
-      </rule>
-      <rule pattern="[~!%^&amp;*+=|?:&lt;&gt;/-]">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="[()\[\],.;\&#39;]">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="`[a-zA-Z_]\w*">
-        <token type="NameConstant"/>
-      </rule>
-      <rule pattern="^(\s*)(package)(\s+)">
-        <bygroups>
-          <token type="Text"/>
-          <token type="KeywordNamespace"/>
-          <token type="Text"/>
-        </bygroups>
-      </rule>
-      <rule pattern="^(\s*)(import)(\s+)">
-        <bygroups>
-          <token type="Text"/>
-          <token type="KeywordNamespace"/>
-          <token type="Text"/>
-        </bygroups>
-        <push state="import"/>
-      </rule>
-      <rule pattern="(endprimitive|always_latch|macromodule|always_comb|endgenerate|endfunction|endpackage|endspecify|localparam|parameter|primitive|always_ff|automatic|specparam|endmodule|rtranif1|scalared|continue|deassign|endtable|defparam|function|strength|generate|pulldown|vectored|rtranif0|unsigned|specify|endcase|negedge|strong0|disable|default|endtask|posedge|strong1|typedef|tranif1|integer|forever|release|initial|tranif0|highz0|genvar|highz1|pullup|notif0|bufif1|bufif0|repeat|medium|return|struct|assign|signed|module|packed|string|output|notif1|always|final|casex|while|table|const|large|break|begin|input|pull0|pull1|inout|weak1|rcmos|weak0|casez|force|small|rnmos|rpmos|rtran|event|type|void|enum|wait|fork|join|else|edge|pmos|nand|cmos|nmos|task|xnor|case|tran|buf|ref|end|var|and|xor|for|nor|not|do|if|or)\b">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="`(autoexpand_vectornets|nounconnected_drive|noexpand_vectornets|noremove_gatenames|unconnected_drive|noremove_netnames|expand_vectornets|remove_gatenames|default_nettype|remove_netnames|endcelldefine|noaccelerate|endprotected|accelerate|celldefine|endprotect|protected|timescale|resetall|protect|include|ifndef|ifdef|endif|elsif|undef|else)\b">
-        <token type="CommentPreproc"/>
-      </rule>
-      <rule pattern="\$(shortrealtobits|bitstoshortreal|printtimescale|showvariables|countdrivers|reset_value|reset_count|getpattern|showscopes|realtobits|bitstoreal|monitoroff|timeformat|sreadmemh|monitoron|sreadmemb|fmonitor|showvars|fdisplay|realtime|readmemb|readmemh|monitor|history|fstrobe|display|restart|incsave|strobe|fwrite|finish|random|fclose|stime|nokey|fopen|floor|nolog|scale|scope|input|reset|write|rtoi|bits|list|stop|itor|time|save|key|log)\b">
-        <token type="NameBuiltin"/>
-      </rule>
-      <rule pattern="(woshortreal|shortint|realtime|longint|integer|supply0|supply1|triand|trireg|uwire|logic|trior|byte|wand|tri0|tri1|time|real|wire|reg|bit|int|tri)\b">
-        <token type="KeywordType"/>
-      </rule>
-      <rule pattern="[a-zA-Z_]\w*:(?!:)">
-        <token type="NameLabel"/>
-      </rule>
-      <rule pattern="\$?[a-zA-Z_]\w*">
-        <token type="Name"/>
-      </rule>
-    </state>
-    <state name="string">
-      <rule pattern="&#34;">
-        <token type="LiteralString"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="\\([\\abfnrtv&#34;\&#39;]|x[a-fA-F0-9]{2,4}|[0-7]{1,3})">
-        <token type="LiteralStringEscape"/>
-      </rule>
-      <rule pattern="[^\\&#34;\n]+">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="\\\n">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="\\">
-        <token type="LiteralString"/>
-      </rule>
-    </state>
-    <state name="macro">
-      <rule pattern="[^/\n]+">
-        <token type="CommentPreproc"/>
-      </rule>
-      <rule pattern="/[*](.|\n)*?[*]/">
-        <token type="CommentMultiline"/>
-      </rule>
-      <rule pattern="//.*?\n">
-        <token type="CommentSingle"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="/">
-        <token type="CommentPreproc"/>
-      </rule>
-      <rule pattern="(?&lt;=\\)\n">
-        <token type="CommentPreproc"/>
-      </rule>
-      <rule pattern="\n">
-        <token type="CommentPreproc"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="import">
-      <rule pattern="[\w:]+\*?">
-        <token type="NameNamespace"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/vhdl.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/vhdl.xml	(revision 67)
+++ 	(revision )
@@ -1,171 +1,0 @@
-<lexer>
-  <config>
-    <name>VHDL</name>
-    <alias>vhdl</alias>
-    <filename>*.vhdl</filename>
-    <filename>*.vhd</filename>
-    <mime_type>text/x-vhdl</mime_type>
-    <case_insensitive>true</case_insensitive>
-  </config>
-  <rules>
-    <state name="root">
-      <rule pattern="\n">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="\s+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="\\\n">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="--.*?$">
-        <token type="CommentSingle"/>
-      </rule>
-      <rule pattern="&#39;(U|X|0|1|Z|W|L|H|-)&#39;">
-        <token type="LiteralStringChar"/>
-      </rule>
-      <rule pattern="[~!%^&amp;*+=|?:&lt;&gt;/-]">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="&#39;[a-z_]\w*">
-        <token type="NameAttribute"/>
-      </rule>
-      <rule pattern="[()\[\],.;\&#39;]">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="&#34;[^\n\\&#34;]*&#34;">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="(library)(\s+)([a-z_]\w*)">
-        <bygroups>
-          <token type="Keyword"/>
-          <token type="Text"/>
-          <token type="NameNamespace"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(use)(\s+)(entity)">
-        <bygroups>
-          <token type="Keyword"/>
-          <token type="Text"/>
-          <token type="Keyword"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(use)(\s+)([a-z_][\w.]*\.)(all)">
-        <bygroups>
-          <token type="Keyword"/>
-          <token type="Text"/>
-          <token type="NameNamespace"/>
-          <token type="Keyword"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(use)(\s+)([a-z_][\w.]*)">
-        <bygroups>
-          <token type="Keyword"/>
-          <token type="Text"/>
-          <token type="NameNamespace"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(std|ieee)(\.[a-z_]\w*)">
-        <bygroups>
-          <token type="NameNamespace"/>
-          <token type="NameNamespace"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(ieee|work|std)\b">
-        <token type="NameNamespace"/>
-      </rule>
-      <rule pattern="(entity|component)(\s+)([a-z_]\w*)">
-        <bygroups>
-          <token type="Keyword"/>
-          <token type="Text"/>
-          <token type="NameClass"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(architecture|configuration)(\s+)([a-z_]\w*)(\s+)(of)(\s+)([a-z_]\w*)(\s+)(is)">
-        <bygroups>
-          <token type="Keyword"/>
-          <token type="Text"/>
-          <token type="NameClass"/>
-          <token type="Text"/>
-          <token type="Keyword"/>
-          <token type="Text"/>
-          <token type="NameClass"/>
-          <token type="Text"/>
-          <token type="Keyword"/>
-        </bygroups>
-      </rule>
-      <rule pattern="([a-z_]\w*)(:)(\s+)(process|for)">
-        <bygroups>
-          <token type="NameClass"/>
-          <token type="Operator"/>
-          <token type="Text"/>
-          <token type="Keyword"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(end)(\s+)">
-        <bygroups>
-          <token type="Keyword"/>
-          <token type="Text"/>
-        </bygroups>
-        <push state="endblock"/>
-      </rule>
-      <rule>
-        <include state="types"/>
-      </rule>
-      <rule>
-        <include state="keywords"/>
-      </rule>
-      <rule>
-        <include state="numbers"/>
-      </rule>
-      <rule pattern="[a-z_]\w*">
-        <token type="Name"/>
-      </rule>
-    </state>
-    <state name="endblock">
-      <rule>
-        <include state="keywords"/>
-      </rule>
-      <rule pattern="[a-z_]\w*">
-        <token type="NameClass"/>
-      </rule>
-      <rule pattern="(\s+)">
-        <token type="Text"/>
-      </rule>
-      <rule pattern=";">
-        <token type="Punctuation"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="types">
-      <rule pattern="(std_ulogic_vector|file_open_status|std_logic_vector|severity_level|file_open_kind|delay_length|std_ulogic|bit_vector|character|std_logic|positive|unsigned|boolean|natural|integer|signed|string|time|bit)\b">
-        <token type="KeywordType"/>
-      </rule>
-    </state>
-    <state name="keywords">
-      <rule pattern="(configuration|architecture|disconnect|attribute|transport|postponed|procedure|component|function|variable|severity|constant|generate|register|inertial|package|library|guarded|linkage|generic|subtype|process|literal|record|entity|others|shared|signal|downto|access|assert|return|reject|buffer|impure|select|elsif|inout|until|label|range|group|units|begin|array|alias|after|block|while|null|next|file|when|wait|open|nand|exit|then|case|port|type|loop|else|pure|with|xnor|body|not|rem|bus|rol|ror|xor|abs|end|and|sla|sll|sra|srl|all|out|nor|mod|map|for|new|use|or|on|of|in|if|is|to)\b">
-        <token type="Keyword"/>
-      </rule>
-    </state>
-    <state name="numbers">
-      <rule pattern="\d{1,2}#[0-9a-f_]+#?">
-        <token type="LiteralNumberInteger"/>
-      </rule>
-      <rule pattern="\d+">
-        <token type="LiteralNumberInteger"/>
-      </rule>
-      <rule pattern="(\d+\.\d*|\.\d+|\d+)E[+-]?\d+">
-        <token type="LiteralNumberFloat"/>
-      </rule>
-      <rule pattern="X&#34;[0-9a-f_]+&#34;">
-        <token type="LiteralNumberHex"/>
-      </rule>
-      <rule pattern="O&#34;[0-7_]+&#34;">
-        <token type="LiteralNumberOct"/>
-      </rule>
-      <rule pattern="B&#34;[01_]+&#34;">
-        <token type="LiteralNumberBin"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/vue.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/vue.xml	(revision 67)
+++ 	(revision )
@@ -1,305 +1,0 @@
-<lexer>
-  <config>
-    <name>vue</name>
-    <alias>vue</alias>
-    <alias>vuejs</alias>
-    <filename>*.vue</filename>
-    <mime_type>text/x-vue</mime_type>
-    <mime_type>application/x-vue</mime_type>
-    <dot_all>true</dot_all>
-  </config>
-  <rules>
-    <state name="interp-inside">
-      <rule pattern="\}">
-        <token type="LiteralStringInterpol"/>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <include state="root"/>
-      </rule>
-    </state>
-    <state name="attr">
-      <rule pattern="{">
-        <token type="Punctuation"/>
-        <push state="expression"/>
-      </rule>
-      <rule pattern="&#34;.*?&#34;">
-        <token type="LiteralString"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="&#39;.*?&#39;">
-        <token type="LiteralString"/>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="interp">
-      <rule pattern="`">
-        <token type="LiteralStringBacktick"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="\\\\">
-        <token type="LiteralStringBacktick"/>
-      </rule>
-      <rule pattern="\\`">
-        <token type="LiteralStringBacktick"/>
-      </rule>
-      <rule pattern="\$\{">
-        <token type="LiteralStringInterpol"/>
-        <push state="interp-inside"/>
-      </rule>
-      <rule pattern="\$">
-        <token type="LiteralStringBacktick"/>
-      </rule>
-      <rule pattern="[^`\\$]+">
-        <token type="LiteralStringBacktick"/>
-      </rule>
-    </state>
-    <state name="tag">
-      <rule pattern="\s+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="(-)([\w]+)">
-        <token type="NameTag"/>
-      </rule>
-      <rule pattern="(@[\w]+)(=&#34;[\S]+&#34;)(&gt;)">
-        <bygroups>
-          <token type="NameTag"/>
-          <token type="LiteralString"/>
-          <token type="Punctuation"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(@[\w]+)(=&#34;[\S]+&#34;)">
-        <bygroups>
-          <token type="NameTag"/>
-          <token type="LiteralString"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(@[\S]+)(=&#34;[\S]+&#34;)">
-        <bygroups>
-          <token type="NameTag"/>
-          <token type="LiteralString"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(:[\S]+)(=&#34;[\S]+&#34;)">
-        <bygroups>
-          <token type="NameTag"/>
-          <token type="LiteralString"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(:)">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="(v-b-[\S]+)">
-        <token type="NameTag"/>
-      </rule>
-      <rule pattern="(v-[\w]+)(=&#34;.+)([:][\w]+)(=&#34;[\w]+&#34;)(&gt;)">
-        <bygroups>
-          <token type="NameTag"/>
-          <token type="LiteralString"/>
-          <token type="NameTag"/>
-          <token type="LiteralString"/>
-          <token type="Punctuation"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(v-[\w]+)(=&#34;[\S]+&#34;)(&gt;)">
-        <bygroups>
-          <token type="NameTag"/>
-          <token type="LiteralString"/>
-          <token type="Punctuation"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(v-[\w]+)(&gt;)">
-        <bygroups>
-          <token type="NameTag"/>
-          <token type="Punctuation"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(v-[\w]+)(=&#34;.+&#34;)(&gt;)">
-        <bygroups>
-          <token type="NameTag"/>
-          <token type="LiteralString"/>
-          <token type="Punctuation"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(&lt;)([\w]+)">
-        <bygroups>
-          <token type="Punctuation"/>
-          <token type="NameTag"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(&lt;)(/)([\w]+)(&gt;)">
-        <bygroups>
-          <token type="Punctuation"/>
-          <token type="Punctuation"/>
-          <token type="NameTag"/>
-          <token type="Punctuation"/>
-        </bygroups>
-      </rule>
-      <rule pattern="([\w]+\s*)(=)(\s*)">
-        <bygroups>
-          <token type="NameAttribute"/>
-          <token type="Operator"/>
-          <token type="Text"/>
-        </bygroups>
-        <push state="attr"/>
-      </rule>
-      <rule pattern="[{}]+">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="[\w\.]+">
-        <token type="NameAttribute"/>
-      </rule>
-      <rule pattern="(/?)(\s*)(&gt;)">
-        <bygroups>
-          <token type="Punctuation"/>
-          <token type="Text"/>
-          <token type="Punctuation"/>
-        </bygroups>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="slashstartsregex">
-      <rule>
-        <include state="commentsandwhitespace"/>
-      </rule>
-      <rule pattern="/(\\.|[^[/\\\n]|\[(\\.|[^\]\\\n])*])+/([gimuy]+\b|\B)">
-        <token type="LiteralStringRegex"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="(?=/)">
-        <token type="Text"/>
-        <push state="#pop" state="badregex"/>
-      </rule>
-      <rule>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="root">
-      <rule>
-        <include state="vue"/>
-      </rule>
-      <rule pattern="\A#! ?/.*?\n">
-        <token type="CommentHashbang"/>
-      </rule>
-      <rule pattern="^(?=\s|/|&lt;!--)">
-        <token type="Text"/>
-        <push state="slashstartsregex"/>
-      </rule>
-      <rule>
-        <include state="commentsandwhitespace"/>
-      </rule>
-      <rule pattern="(\.\d+|[0-9]+\.[0-9]*)([eE][-+]?[0-9]+)?">
-        <token type="LiteralNumberFloat"/>
-      </rule>
-      <rule pattern="0[bB][01]+">
-        <token type="LiteralNumberBin"/>
-      </rule>
-      <rule pattern="0[oO][0-7]+">
-        <token type="LiteralNumberOct"/>
-      </rule>
-      <rule pattern="0[xX][0-9a-fA-F]+">
-        <token type="LiteralNumberHex"/>
-      </rule>
-      <rule pattern="[0-9]+">
-        <token type="LiteralNumberInteger"/>
-      </rule>
-      <rule pattern="\.\.\.|=&gt;">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="\+\+|--|~|&amp;&amp;|\?|:|\|\||\\(?=\n)|(&lt;&lt;|&gt;&gt;&gt;?|==?|!=?|[-&lt;&gt;+*%&amp;|^/])=?">
-        <token type="Operator"/>
-        <push state="slashstartsregex"/>
-      </rule>
-      <rule pattern="[{(\[;,]">
-        <token type="Punctuation"/>
-        <push state="slashstartsregex"/>
-      </rule>
-      <rule pattern="[})\].]">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="(for|in|while|do|break|return|continue|switch|case|default|if|else|throw|try|catch|finally|new|delete|typeof|instanceof|void|yield|this|of)\b">
-        <token type="Keyword"/>
-        <push state="slashstartsregex"/>
-      </rule>
-      <rule pattern="(var|let|with|function)\b">
-        <token type="KeywordDeclaration"/>
-        <push state="slashstartsregex"/>
-      </rule>
-      <rule pattern="(abstract|boolean|byte|char|class|const|debugger|double|enum|export|extends|final|float|goto|implements|import|int|interface|long|native|package|private|protected|public|short|static|super|synchronized|throws|transient|volatile)\b">
-        <token type="KeywordReserved"/>
-      </rule>
-      <rule pattern="(true|false|null|NaN|Infinity|undefined)\b">
-        <token type="KeywordConstant"/>
-      </rule>
-      <rule pattern="(Array|Boolean|Date|Error|Function|Math|netscape|Number|Object|Packages|RegExp|String|Promise|Proxy|sun|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|Error|eval|isFinite|isNaN|isSafeInteger|parseFloat|parseInt|document|this|window)\b">
-        <token type="NameBuiltin"/>
-      </rule>
-      <rule pattern="(?:[$_\p{L}\p{N}]|\\u[a-fA-F0-9]{4})(?:(?:[$\p{L}\p{N}]|\\u[a-fA-F0-9]{4}))*">
-        <token type="NameOther"/>
-      </rule>
-      <rule pattern="&#34;(\\\\|\\&#34;|[^&#34;])*&#34;">
-        <token type="LiteralStringDouble"/>
-      </rule>
-      <rule pattern="&#39;(\\\\|\\&#39;|[^&#39;])*&#39;">
-        <token type="LiteralStringSingle"/>
-      </rule>
-      <rule pattern="`">
-        <token type="LiteralStringBacktick"/>
-        <push state="interp"/>
-      </rule>
-    </state>
-    <state name="badregex">
-      <rule pattern="\n">
-        <token type="Text"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="vue">
-      <rule pattern="(&lt;)([\w]+)">
-        <bygroups>
-          <token type="Punctuation"/>
-          <token type="NameTag"/>
-        </bygroups>
-        <push state="tag"/>
-      </rule>
-      <rule pattern="(&lt;)(/)([\w]+)(&gt;)">
-        <bygroups>
-          <token type="Punctuation"/>
-          <token type="Punctuation"/>
-          <token type="NameTag"/>
-          <token type="Punctuation"/>
-        </bygroups>
-      </rule>
-    </state>
-    <state name="expression">
-      <rule pattern="{">
-        <token type="Punctuation"/>
-        <push/>
-      </rule>
-      <rule pattern="}">
-        <token type="Punctuation"/>
-        <pop depth="1"/>
-      </rule>
-      <rule>
-        <include state="root"/>
-      </rule>
-    </state>
-    <state name="commentsandwhitespace">
-      <rule pattern="\s+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="&lt;!--">
-        <token type="Comment"/>
-      </rule>
-      <rule pattern="//.*?\n">
-        <token type="CommentSingle"/>
-      </rule>
-      <rule pattern="/\*.*?\*/">
-        <token type="CommentMultiline"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/wdte.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/wdte.xml	(revision 67)
+++ 	(revision )
@@ -1,43 +1,0 @@
-<lexer>
-  <config>
-    <name>WDTE</name>
-    <filename>*.wdte</filename>
-  </config>
-  <rules>
-    <state name="root">
-      <rule pattern="\n">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="\s+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="\\\n">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="#(.*?)\n">
-        <token type="CommentSingle"/>
-      </rule>
-      <rule pattern="-?[0-9]+">
-        <token type="LiteralNumberInteger"/>
-      </rule>
-      <rule pattern="-?[0-9]*\.[0-9]+">
-        <token type="LiteralNumberFloat"/>
-      </rule>
-      <rule pattern="&#34;[^&#34;]*&#34;">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="&#39;[^&#39;]*&#39;">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="(default|switch|memo)\b">
-        <token type="KeywordReserved"/>
-      </rule>
-      <rule pattern="{|}|;|-&gt;|=&gt;|\(|\)|\[|\]|\.">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="[^{};()[\].\s]+">
-        <token type="NameVariable"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/whiley.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/whiley.xml	(revision 67)
+++ 	(revision )
@@ -1,57 +1,0 @@
-<lexer>
-  <config>
-    <name>Whiley</name>
-    <alias>whiley</alias>
-    <filename>*.whiley</filename>
-    <mime_type>text/x-whiley</mime_type>
-  </config>
-  <rules>
-    <state name="root">
-      <rule pattern="\n">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="\s+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="\\\n">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="/[*](.|\n)*?[*]/">
-        <token type="CommentMultiline"/>
-      </rule>
-      <rule pattern="//.*?\n">
-        <token type="CommentSingle"/>
-      </rule>      
-      <rule pattern="(function|import|from|method|property|type|with|variant)\b">
-        <token type="KeywordDeclaration"/>
-      </rule>
-      <rule pattern="(assert|assume|all|break|case|continue|debug|default|do|else|ensures|export|fail|final|for|if|in|is|native|no|new|private|protected|public|return|requires|skip|some|switch|unsafe|where|while)\b">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="(true|false|null)\b">
-        <token type="KeywordConstant"/>
-      </rule>
-      <rule pattern="(bool|byte|int|void)\b">
-        <token type="KeywordType"/>
-      </rule>
-      <rule pattern="0b(?:_?[01])+">
-        <token type="LiteralNumberBin"/>
-      </rule>      
-      <rule pattern="0[xX][0-9a-fA-F]+">
-        <token type="LiteralNumberHex"/>
-      </rule>
-      <rule pattern="(0|[1-9][0-9]*)">
-        <token type="LiteralNumberInteger"/>
-      </rule>
-      <rule pattern="[a-zA-Z_]\w*">
-        <token type="Name"/>
-      </rule>
-      <rule pattern="[+%=&gt;&lt;|^!?/\-*&amp;~:]">
-        <token type="Operator"/>
-      </rule>      
-      <rule pattern="[{}()\[\],.;\|]">
-        <token type="Punctuation"/>
-      </rule>      
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/xml.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/xml.xml	(revision 67)
+++ 	(revision )
@@ -1,95 +1,0 @@
-<lexer>
-  <config>
-    <name>XML</name>
-    <alias>xml</alias>
-    <filename>*.xml</filename>
-    <filename>*.xsl</filename>
-    <filename>*.rss</filename>
-    <filename>*.xslt</filename>
-    <filename>*.xsd</filename>
-    <filename>*.wsdl</filename>
-    <filename>*.wsf</filename>
-    <filename>*.svg</filename>
-    <filename>*.csproj</filename>
-    <filename>*.vcxproj</filename>
-    <filename>*.fsproj</filename>
-    <mime_type>text/xml</mime_type>
-    <mime_type>application/xml</mime_type>
-    <mime_type>image/svg+xml</mime_type>
-    <mime_type>application/rss+xml</mime_type>
-    <mime_type>application/atom+xml</mime_type>
-    <dot_all>true</dot_all>
-  </config>
-  <rules>
-    <state name="root">
-      <rule pattern="[^&lt;&amp;]+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="&amp;\S*?;">
-        <token type="NameEntity"/>
-      </rule>
-      <rule pattern="\&lt;\!\[CDATA\[.*?\]\]\&gt;">
-        <token type="CommentPreproc"/>
-      </rule>
-      <rule pattern="&lt;!--">
-        <token type="Comment"/>
-        <push state="comment"/>
-      </rule>
-      <rule pattern="&lt;\?.*?\?&gt;">
-        <token type="CommentPreproc"/>
-      </rule>
-      <rule pattern="&lt;![^&gt;]*&gt;">
-        <token type="CommentPreproc"/>
-      </rule>
-      <rule pattern="&lt;\s*[\w:.-]+">
-        <token type="NameTag"/>
-        <push state="tag"/>
-      </rule>
-      <rule pattern="&lt;\s*/\s*[\w:.-]+\s*&gt;">
-        <token type="NameTag"/>
-      </rule>
-    </state>
-    <state name="comment">
-      <rule pattern="[^-]+">
-        <token type="Comment"/>
-      </rule>
-      <rule pattern="--&gt;">
-        <token type="Comment"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="-">
-        <token type="Comment"/>
-      </rule>
-    </state>
-    <state name="tag">
-      <rule pattern="\s+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="[\w.:-]+\s*=">
-        <token type="NameAttribute"/>
-        <push state="attr"/>
-      </rule>
-      <rule pattern="/?\s*&gt;">
-        <token type="NameTag"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="attr">
-      <rule pattern="\s+">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="&#34;.*?&#34;">
-        <token type="LiteralString"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="&#39;.*?&#39;">
-        <token type="LiteralString"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="[^\s&gt;]+">
-        <token type="LiteralString"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/xorg.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/xorg.xml	(revision 67)
+++ 	(revision )
@@ -1,35 +1,0 @@
-<lexer>
-  <config>
-    <name>Xorg</name>
-    <alias>xorg.conf</alias>
-    <filename>xorg.conf</filename>
-  </config>
-  <rules>
-    <state name="root">
-      <rule pattern="\s+">
-        <token type="TextWhitespace"/>
-      </rule>
-      <rule pattern="#.*$">
-        <token type="Comment"/>
-      </rule>
-      <rule pattern="((|Sub)Section)(\s+)(&#34;\w+&#34;)">
-        <bygroups>
-          <token type="KeywordNamespace"/>
-          <token type="LiteralStringEscape"/>
-          <token type="TextWhitespace"/>
-          <token type="LiteralStringEscape"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(End(|Sub)Section)">
-        <token type="KeywordNamespace"/>
-      </rule>
-      <rule pattern="(\w+)(\s+)([^\n#]+)">
-        <bygroups>
-          <token type="NameKeyword"/>
-          <token type="TextWhitespace"/>
-          <token type="LiteralString"/>
-        </bygroups>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/yaml.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/yaml.xml	(revision 67)
+++ 	(revision )
@@ -1,122 +1,0 @@
-<lexer>
-  <config>
-    <name>YAML</name>
-    <alias>yaml</alias>
-    <filename>*.yaml</filename>
-    <filename>*.yml</filename>
-    <mime_type>text/x-yaml</mime_type>
-  </config>
-  <rules>
-    <state name="root">
-      <rule>
-        <include state="whitespace"/>
-      </rule>
-      <rule pattern="^---">
-        <token type="NameNamespace"/>
-      </rule>
-      <rule pattern="^\.\.\.">
-        <token type="NameNamespace"/>
-      </rule>
-      <rule pattern="[\n?]?\s*- ">
-        <token type="Text"/>
-      </rule>
-      <rule pattern="#.*$">
-        <token type="Comment"/>
-      </rule>
-      <rule pattern="!![^\s]+">
-        <token type="CommentPreproc"/>
-      </rule>
-      <rule pattern="&amp;[^\s]+">
-        <token type="CommentPreproc"/>
-      </rule>
-      <rule pattern="\*[^\s]+">
-        <token type="CommentPreproc"/>
-      </rule>
-      <rule pattern="^%include\s+[^\n\r]+">
-        <token type="CommentPreproc"/>
-      </rule>
-      <rule>
-        <include state="key"/>
-      </rule>
-      <rule>
-        <include state="value"/>
-      </rule>
-      <rule pattern="[?:,\[\]]">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern=".">
-        <token type="Text"/>
-      </rule>
-    </state>
-    <state name="value">
-      <rule pattern="([&gt;|](?:[+-])?)(\n(^ {1,})(?:.*\n*(?:^\3 *).*)*)">
-        <bygroups>
-          <token type="Punctuation"/>
-          <token type="LiteralStringDoc"/>
-          <token type="TextWhitespace"/>
-        </bygroups>
-      </rule>
-      <rule pattern="(false|False|FALSE|true|True|TRUE|null|Off|off|yes|Yes|YES|OFF|On|ON|no|No|on|NO|n|N|Y|y)\b">
-        <token type="KeywordConstant"/>
-      </rule>
-      <rule pattern="&#34;(?:\\.|[^&#34;])*&#34;">
-        <token type="LiteralStringDouble"/>
-      </rule>
-      <rule pattern="&#39;(?:\\.|[^&#39;])*&#39;">
-        <token type="LiteralStringSingle"/>
-      </rule>
-      <rule pattern="\d\d\d\d-\d\d-\d\d([T ]\d\d:\d\d:\d\d(\.\d+)?(Z|\s+[-+]\d+)?)?">
-        <token type="LiteralDate"/>
-      </rule>
-      <rule pattern="\b[+\-]?(0x[\da-f]+|0o[0-7]+|(\d+\.?\d*|\.?\d+)(e[\+\-]?\d+)?|\.inf|\.nan)\b">
-        <token type="LiteralNumber"/>
-      </rule>
-      <rule pattern="([^\{\}\[\]\?,\:\!\-\*&amp;\@].*)( )+(#.*)">
-        <bygroups>
-          <token type="Literal"/>
-          <token type="TextWhitespace"/>
-          <token type="Comment"/>
-        </bygroups>
-      </rule>
-      <rule pattern="[^\{\}\[\]\?,\:\!\-\*&amp;\@].*">
-        <token type="Literal"/>
-      </rule>
-    </state>
-    <state name="key">
-      <rule pattern="&#34;[^&#34;\n].*&#34;: ">
-        <token type="NameTag"/>
-      </rule>
-      <rule pattern="(-)( )([^&#34;\n{]*)(:)( )">
-        <bygroups>
-          <token type="Punctuation"/>
-          <token type="TextWhitespace"/>
-          <token type="NameTag"/>
-          <token type="Punctuation"/>
-          <token type="TextWhitespace"/>
-        </bygroups>
-      </rule>
-      <rule pattern="([^&#34;\n{]*)(:)( )">
-        <bygroups>
-          <token type="NameTag"/>
-          <token type="Punctuation"/>
-          <token type="TextWhitespace"/>
-        </bygroups>
-      </rule>
-      <rule pattern="([^&#34;\n{]*)(:)(\n)">
-        <bygroups>
-          <token type="NameTag"/>
-          <token type="Punctuation"/>
-          <token type="TextWhitespace"/>
-        </bygroups>
-      </rule>
-    </state>
-    <state name="whitespace">
-      <rule pattern="\s+">
-        <token type="TextWhitespace"/>
-      </rule>
-      <rule pattern="\n+">
-        <token type="TextWhitespace"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/yang.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/yang.xml	(revision 67)
+++ 	(revision )
@@ -1,99 +1,0 @@
-<lexer>
-  <config>
-    <name>YANG</name>
-    <alias>yang</alias>
-    <filename>*.yang</filename>
-    <mime_type>application/yang</mime_type>
-  </config>
-  <rules>
-    <state name="root">
-      <rule pattern="\s+">
-        <token type="TextWhitespace"/>
-      </rule>
-      <rule pattern="[\{\}\;]+">
-        <token type="Punctuation"/>
-      </rule>
-      <rule pattern="(?&lt;![\-\w])(and|or|not|\+|\.)(?![\-\w])">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="&#34;(?:\\&#34;|[^&#34;])*?&#34;">
-        <token type="LiteralStringDouble"/>
-      </rule>
-      <rule pattern="&#39;(?:\\&#39;|[^&#39;])*?&#39;">
-        <token type="LiteralStringSingle"/>
-      </rule>
-      <rule pattern="/\*">
-        <token type="CommentMultiline"/>
-        <push state="comments"/>
-      </rule>
-      <rule pattern="//.*?$">
-        <token type="CommentSingle"/>
-      </rule>
-      <rule pattern="(?:^|(?&lt;=[\s{};]))([\w.-]+)(:)([\w.-]+)(?=[\s{};])">
-        <bygroups>
-          <token type="KeywordNamespace"/>
-          <token type="Punctuation"/>
-          <token type="Text"/>
-        </bygroups>
-      </rule>
-      <rule pattern="([0-9]{4}\-[0-9]{2}\-[0-9]{2})(?=[\s\{\}\;])">
-        <token type="LiteralDate"/>
-      </rule>
-      <rule pattern="([0-9]+\.[0-9]+)(?=[\s\{\}\;])">
-        <token type="LiteralNumberFloat"/>
-      </rule>
-      <rule pattern="([0-9]+)(?=[\s\{\}\;])">
-        <token type="LiteralNumberInteger"/>
-      </rule>
-      <rule pattern="(submodule|module)(?=[^\w\-\:])">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="(yang-version|belongs-to|namespace|prefix)(?=[^\w\-\:])">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="(organization|description|reference|revision|contact)(?=[^\w\-\:])">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="(revision-date|include|import)(?=[^\w\-\:])">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="(notification|if-feature|deviation|extension|identity|argument|grouping|typedef|feature|augment|output|action|input|rpc)(?=[^\w\-\:])">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="(leaf-list|container|presence|anydata|deviate|choice|config|anyxml|refine|leaf|must|list|case|uses|when)(?=[^\w\-\:])">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="(require-instance|fraction-digits|error-app-tag|error-message|min-elements|max-elements|yin-element|ordered-by|position|modifier|default|pattern|length|status|units|value|range|type|path|enum|base|bit)(?=[^\w\-\:])">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="(mandatory|unique|key)(?=[^\w\-\:])">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="(not-supported|invert-match|deprecated|unbounded|obsolete|current|replace|delete|false|true|user|min|max|add)(?=[^\w\-\:])">
-        <token type="NameClass"/>
-      </rule>
-      <rule pattern="(instance-identifier|identityref|enumeration|decimal64|boolean|leafref|uint64|uint32|string|binary|uint16|int32|int64|int16|empty|uint8|union|int8|bits)(?=[^\w\-\:])">
-        <token type="NameClass"/>
-      </rule>
-      <rule pattern="[^;{}\s\&#39;\&#34;]+">
-        <token type="Text"/>
-      </rule>
-    </state>
-    <state name="comments">
-      <rule pattern="[^*/]">
-        <token type="CommentMultiline"/>
-      </rule>
-      <rule pattern="/\*">
-        <token type="CommentMultiline"/>
-        <push state="comment"/>
-      </rule>
-      <rule pattern="\*/">
-        <token type="CommentMultiline"/>
-        <pop depth="1"/>
-      </rule>
-      <rule pattern="[*/]">
-        <token type="CommentMultiline"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/zed.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/zed.xml	(revision 67)
+++ 	(revision )
@@ -1,51 +1,0 @@
-<lexer>
-  <config>
-    <name>Zed</name>
-    <alias>zed</alias>
-    <filename>*.zed</filename>
-    <mime_type>text/zed</mime_type>
-  </config>
-  <rules>
-    <state name="root">
-      <rule pattern="\n">
-        <token type="TextWhitespace"/>
-      </rule>
-      <rule pattern="\s+">
-        <token type="TextWhitespace"/>
-      </rule>
-      <rule pattern="//.*?\n">
-        <token type="CommentSingle"/>
-      </rule>
-      <rule pattern="/(\\\n)?[*][\w\W]*?[*](\\\n)?/">
-        <token type="CommentMultiline"/>
-      </rule>
-      <rule pattern="/(\\\n)?[*][\w\W]*">
-        <token type="CommentMultiline"/>
-      </rule>
-      <rule pattern="(definition)\b">
-        <token type="KeywordType"/>
-      </rule>
-      <rule pattern="(relation)\b">
-        <token type="KeywordNamespace"/>
-      </rule>
-      <rule pattern="(permission)\b">
-        <token type="KeywordDeclaration"/>
-      </rule>
-      <rule pattern="[a-zA-Z_]\w*/">
-        <token type="NameNamespace"/>
-      </rule>
-      <rule pattern="[a-zA-Z_]\w*">
-        <token type="Name"/>
-      </rule>
-      <rule pattern="#[a-zA-Z_]\w*">
-        <token type="NameVariable"/>
-      </rule>
-      <rule pattern="[+%=&gt;&lt;|^!?/\-*&amp;~:]">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="[{}()\[\],.;]">
-        <token type="Punctuation"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/zig.xml
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/zig.xml	(revision 67)
+++ 	(revision )
@@ -1,112 +1,0 @@
-<lexer>
-  <config>
-    <name>Zig</name>
-    <alias>zig</alias>
-    <filename>*.zig</filename>
-    <mime_type>text/zig</mime_type>
-  </config>
-  <rules>
-    <state name="string">
-      <rule pattern="\\(x[a-fA-F0-9]{2}|u[a-fA-F0-9]{4}|U[a-fA-F0-9]{6}|[nr\\t\&#39;&#34;])">
-        <token type="LiteralStringEscape"/>
-      </rule>
-      <rule pattern="[^\\&#34;\n]+">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="&#34;">
-        <token type="LiteralString"/>
-        <pop depth="1"/>
-      </rule>
-    </state>
-    <state name="root">
-      <rule pattern="\n">
-        <token type="TextWhitespace"/>
-      </rule>
-      <rule pattern="\s+">
-        <token type="TextWhitespace"/>
-      </rule>
-      <rule pattern="//.*?\n">
-        <token type="CommentSingle"/>
-      </rule>
-      <rule pattern="(unreachable|continue|errdefer|suspend|return|resume|cancel|break|catch|async|await|defer|asm|try)\b">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="(threadlocal|linksection|allowzero|stdcallcc|volatile|comptime|noalias|nakedcc|inline|export|packed|extern|align|const|pub|var)\b">
-        <token type="KeywordReserved"/>
-      </rule>
-      <rule pattern="(struct|union|error|enum)\b">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="(while|for)\b">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="(comptime_float|comptime_int|c_longdouble|c_ulonglong|c_longlong|c_voidi8|noreturn|c_ushort|anyerror|promise|c_short|c_ulong|c_uint|c_long|isize|c_int|usize|void|f128|i128|type|bool|u128|u16|f64|f32|u64|i16|f16|i32|u32|i64|u8|i0|u0)\b">
-        <token type="KeywordType"/>
-      </rule>
-      <rule pattern="(undefined|false|true|null)\b">
-        <token type="KeywordConstant"/>
-      </rule>
-      <rule pattern="(switch|orelse|else|and|if|or)\b">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="(usingnamespace|test|fn)\b">
-        <token type="Keyword"/>
-      </rule>
-      <rule pattern="0x[0-9a-fA-F]+\.[0-9a-fA-F]+([pP][\-+]?[0-9a-fA-F]+)?">
-        <token type="LiteralNumberFloat"/>
-      </rule>
-      <rule pattern="0x[0-9a-fA-F]+\.?[pP][\-+]?[0-9a-fA-F]+">
-        <token type="LiteralNumberFloat"/>
-      </rule>
-      <rule pattern="[0-9]+\.[0-9]+([eE][-+]?[0-9]+)?">
-        <token type="LiteralNumberFloat"/>
-      </rule>
-      <rule pattern="[0-9]+\.?[eE][-+]?[0-9]+">
-        <token type="LiteralNumberFloat"/>
-      </rule>
-      <rule pattern="0b(?:_?[01])+">
-        <token type="LiteralNumberBin"/>
-      </rule>
-      <rule pattern="0o(?:_?[0-7])+">
-        <token type="LiteralNumberOct"/>
-      </rule>
-      <rule pattern="0x(?:_?[0-9a-fA-F])+">
-        <token type="LiteralNumberHex"/>
-      </rule>
-      <rule pattern="(?:_?[0-9])+">
-        <token type="LiteralNumberInteger"/>
-      </rule>
-      <rule pattern="@[a-zA-Z_]\w*">
-        <token type="NameBuiltin"/>
-      </rule>
-      <rule pattern="[a-zA-Z_]\w*">
-        <token type="Name"/>
-      </rule>
-      <rule pattern="\&#39;\\\&#39;\&#39;">
-        <token type="LiteralStringEscape"/>
-      </rule>
-      <rule pattern="\&#39;\\(|x[a-fA-F0-9]{2}|u[a-fA-F0-9]{4}|U[a-fA-F0-9]{6}|[nr\\t\&#39;&#34;])\&#39;">
-        <token type="LiteralStringEscape"/>
-      </rule>
-      <rule pattern="\&#39;[^\\\&#39;]\&#39;">
-        <token type="LiteralString"/>
-      </rule>
-      <rule pattern="\\\\[^\n]*">
-        <token type="LiteralStringHeredoc"/>
-      </rule>
-      <rule pattern="c\\\\[^\n]*">
-        <token type="LiteralStringHeredoc"/>
-      </rule>
-      <rule pattern="c?&#34;">
-        <token type="LiteralString"/>
-        <push state="string"/>
-      </rule>
-      <rule pattern="[+%=&gt;&lt;|^!?/\-*&amp;~:]">
-        <token type="Operator"/>
-      </rule>
-      <rule pattern="[{}()\[\],.;]">
-        <token type="Punctuation"/>
-      </rule>
-    </state>
-  </rules>
-</lexer>
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/fortran_fixed.go
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/fortran_fixed.go	(revision 67)
+++ 	(revision )
@@ -1,38 +1,0 @@
-package lexers
-
-import (
-	. "github.com/alecthomas/chroma/v2" // nolint
-)
-
-// FortranFixed lexer.
-var FortranFixed = Register(MustNewLexer(
-	&Config{
-		Name:            "FortranFixed",
-		Aliases:         []string{"fortranfixed"},
-		Filenames:       []string{"*.f", "*.F"},
-		MimeTypes:       []string{"text/x-fortran"},
-		NotMultiline:    true,
-		CaseInsensitive: true,
-	},
-	func() Rules {
-		return Rules{
-			"root": {
-				{`[C*].*\n`, Comment, nil},
-				{`#.*\n`, CommentPreproc, nil},
-				{` {0,4}!.*\n`, Comment, nil},
-				{`(.{5})`, NameLabel, Push("cont-char")},
-				{`.*\n`, Using("Fortran"), nil},
-			},
-			"cont-char": {
-				{` `, TextWhitespace, Push("code")},
-				{`.`, GenericStrong, Push("code")},
-			},
-			"code": {
-				{`(.{66})(.*)(\n)`, ByGroups(Using("Fortran"), Comment, TextWhitespace), Push("root")},
-				{`(.*)(!.*)(\n)`, ByGroups(Using("Fortran"), Comment, TextWhitespace), Push("root")},
-				{`(.*)(\n)`, ByGroups(Using("Fortran"), TextWhitespace), Push("root")},
-				Default(Push("root")),
-			},
-		}
-	},
-))
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/genshi.go
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/genshi.go	(revision 67)
+++ 	(revision )
@@ -1,118 +1,0 @@
-package lexers
-
-import (
-	. "github.com/alecthomas/chroma/v2" // nolint
-)
-
-// Genshi Text lexer.
-var GenshiText = Register(MustNewLexer(
-	&Config{
-		Name:      "Genshi Text",
-		Aliases:   []string{"genshitext"},
-		Filenames: []string{},
-		MimeTypes: []string{"application/x-genshi-text", "text/x-genshi"},
-	},
-	genshiTextRules,
-))
-
-func genshiTextRules() Rules {
-	return Rules{
-		"root": {
-			{`[^#$\s]+`, Other, nil},
-			{`^(\s*)(##.*)$`, ByGroups(Text, Comment), nil},
-			{`^(\s*)(#)`, ByGroups(Text, CommentPreproc), Push("directive")},
-			Include("variable"),
-			{`[#$\s]`, Other, nil},
-		},
-		"directive": {
-			{`\n`, Text, Pop(1)},
-			{`(?:def|for|if)\s+.*`, Using("Python"), Pop(1)},
-			{`(choose|when|with)([^\S\n]+)(.*)`, ByGroups(Keyword, Text, Using("Python")), Pop(1)},
-			{`(choose|otherwise)\b`, Keyword, Pop(1)},
-			{`(end\w*)([^\S\n]*)(.*)`, ByGroups(Keyword, Text, Comment), Pop(1)},
-		},
-		"variable": {
-			{`(?<!\$)(\$\{)(.+?)(\})`, ByGroups(CommentPreproc, Using("Python"), CommentPreproc), nil},
-			{`(?<!\$)(\$)([a-zA-Z_][\w.]*)`, NameVariable, nil},
-		},
-	}
-}
-
-// Html+Genshi lexer.
-var GenshiHTMLTemplate = Register(MustNewLexer(
-	&Config{
-		Name:         "Genshi HTML",
-		Aliases:      []string{"html+genshi", "html+kid"},
-		Filenames:    []string{},
-		MimeTypes:    []string{"text/html+genshi"},
-		NotMultiline: true,
-		DotAll:       true,
-	},
-	genshiMarkupRules,
-))
-
-// Genshi lexer.
-var Genshi = Register(MustNewLexer(
-	&Config{
-		Name:         "Genshi",
-		Aliases:      []string{"genshi", "kid", "xml+genshi", "xml+kid"},
-		Filenames:    []string{"*.kid"},
-		MimeTypes:    []string{"application/x-genshi", "application/x-kid"},
-		NotMultiline: true,
-		DotAll:       true,
-	},
-	genshiMarkupRules,
-))
-
-func genshiMarkupRules() Rules {
-	return Rules{
-		"root": {
-			{`[^<$]+`, Other, nil},
-			{`(<\?python)(.*?)(\?>)`, ByGroups(CommentPreproc, Using("Python"), CommentPreproc), nil},
-			{`<\s*(script|style)\s*.*?>.*?<\s*/\1\s*>`, Other, nil},
-			{`<\s*py:[a-zA-Z0-9]+`, NameTag, Push("pytag")},
-			{`<\s*[a-zA-Z0-9:.]+`, NameTag, Push("tag")},
-			Include("variable"),
-			{`[<$]`, Other, nil},
-		},
-		"pytag": {
-			{`\s+`, Text, nil},
-			{`[\w:-]+\s*=`, NameAttribute, Push("pyattr")},
-			{`/?\s*>`, NameTag, Pop(1)},
-		},
-		"pyattr": {
-			{`(")(.*?)(")`, ByGroups(LiteralString, Using("Python"), LiteralString), Pop(1)},
-			{`(')(.*?)(')`, ByGroups(LiteralString, Using("Python"), LiteralString), Pop(1)},
-			{`[^\s>]+`, LiteralString, Pop(1)},
-		},
-		"tag": {
-			{`\s+`, Text, nil},
-			{`py:[\w-]+\s*=`, NameAttribute, Push("pyattr")},
-			{`[\w:-]+\s*=`, NameAttribute, Push("attr")},
-			{`/?\s*>`, NameTag, Pop(1)},
-		},
-		"attr": {
-			{`"`, LiteralString, Push("attr-dstring")},
-			{`'`, LiteralString, Push("attr-sstring")},
-			{`[^\s>]*`, LiteralString, Pop(1)},
-		},
-		"attr-dstring": {
-			{`"`, LiteralString, Pop(1)},
-			Include("strings"),
-			{`'`, LiteralString, nil},
-		},
-		"attr-sstring": {
-			{`'`, LiteralString, Pop(1)},
-			Include("strings"),
-			{`'`, LiteralString, nil},
-		},
-		"strings": {
-			{`[^"'$]+`, LiteralString, nil},
-			Include("variable"),
-		},
-		"variable": {
-			{`(?<!\$)(\$\{)(.+?)(\})`, ByGroups(CommentPreproc, Using("Python"), CommentPreproc), nil},
-			{`(?<!\$)(\$)([a-zA-Z_][\w\.]*)`, NameVariable, nil},
-		},
-	}
-}
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/go.go
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/go.go	(revision 67)
+++ 	(revision )
@@ -1,82 +1,0 @@
-package lexers
-
-import (
-	"strings"
-
-	. "github.com/alecthomas/chroma/v2" // nolint
-)
-
-// Go lexer.
-var Go = Register(MustNewLexer(
-	&Config{
-		Name:      "Go",
-		Aliases:   []string{"go", "golang"},
-		Filenames: []string{"*.go"},
-		MimeTypes: []string{"text/x-gosrc"},
-		EnsureNL:  true,
-	},
-	goRules,
-).SetAnalyser(func(text string) float32 {
-	if strings.Contains(text, "fmt.") && strings.Contains(text, "package ") {
-		return 0.5
-	}
-	if strings.Contains(text, "package ") {
-		return 0.1
-	}
-	return 0.0
-}))
-
-func goRules() Rules {
-	return Rules{
-		"root": {
-			{`\n`, Text, nil},
-			{`\s+`, Text, nil},
-			{`\\\n`, Text, nil},
-			{`//(.*?)\n`, CommentSingle, nil},
-			{`/(\\\n)?[*](.|\n)*?[*](\\\n)?/`, CommentMultiline, nil},
-			{`(import|package)\b`, KeywordNamespace, nil},
-			{`(var|func|struct|map|chan|type|interface|const)\b`, KeywordDeclaration, nil},
-			{Words(``, `\b`, `break`, `default`, `select`, `case`, `defer`, `go`, `else`, `goto`, `switch`, `fallthrough`, `if`, `range`, `continue`, `for`, `return`), Keyword, nil},
-			{`(true|false|iota|nil)\b`, KeywordConstant, nil},
-			{Words(``, `\b(\()`, `uint`, `uint8`, `uint16`, `uint32`, `uint64`, `int`, `int8`, `int16`, `int32`, `int64`, `float`, `float32`, `float64`, `complex64`, `complex128`, `byte`, `rune`, `string`, `bool`, `error`, `uintptr`, `print`, `println`, `panic`, `recover`, `close`, `complex`, `real`, `imag`, `len`, `cap`, `append`, `copy`, `delete`, `new`, `make`), ByGroups(NameBuiltin, Punctuation), nil},
-			{Words(``, `\b`, `uint`, `uint8`, `uint16`, `uint32`, `uint64`, `int`, `int8`, `int16`, `int32`, `int64`, `float`, `float32`, `float64`, `complex64`, `complex128`, `byte`, `rune`, `string`, `bool`, `error`, `uintptr`), KeywordType, nil},
-			{`\d+i`, LiteralNumber, nil},
-			{`\d+\.\d*([Ee][-+]\d+)?i`, LiteralNumber, nil},
-			{`\.\d+([Ee][-+]\d+)?i`, LiteralNumber, nil},
-			{`\d+[Ee][-+]\d+i`, LiteralNumber, nil},
-			{`\d+(\.\d+[eE][+\-]?\d+|\.\d*|[eE][+\-]?\d+)`, LiteralNumberFloat, nil},
-			{`\.\d+([eE][+\-]?\d+)?`, LiteralNumberFloat, nil},
-			{`0[0-7]+`, LiteralNumberOct, nil},
-			{`0[xX][0-9a-fA-F_]+`, LiteralNumberHex, nil},
-			{`0b[01_]+`, LiteralNumberBin, nil},
-			{`(0|[1-9][0-9_]*)`, LiteralNumberInteger, nil},
-			{`'(\\['"\\abfnrtv]|\\x[0-9a-fA-F]{2}|\\[0-7]{1,3}|\\u[0-9a-fA-F]{4}|\\U[0-9a-fA-F]{8}|[^\\])'`, LiteralStringChar, nil},
-			{"(`)([^`]*)(`)", ByGroups(LiteralString, UsingLexer(TypeRemappingLexer(GoTextTemplate, TypeMapping{{Other, LiteralString, nil}})), LiteralString), nil},
-			{`"(\\\\|\\"|[^"])*"`, LiteralString, nil},
-			{`(<<=|>>=|<<|>>|<=|>=|&\^=|&\^|\+=|-=|\*=|/=|%=|&=|\|=|&&|\|\||<-|\+\+|--|==|!=|:=|\.\.\.|[+\-*/%&])`, Operator, nil},
-			{`([a-zA-Z_]\w*)(\s*)(\()`, ByGroups(NameFunction, UsingSelf("root"), Punctuation), nil},
-			{`[|^<>=!()\[\]{}.,;:]`, Punctuation, nil},
-			{`[^\W\d]\w*`, NameOther, nil},
-		},
-	}
-}
-
-var GoHTMLTemplate = Register(DelegatingLexer(HTML, MustNewXMLLexer(
-	embedded,
-	"embedded/go_template.xml",
-).SetConfig(
-	&Config{
-		Name:    "Go HTML Template",
-		Aliases: []string{"go-html-template"},
-	},
-)))
-
-var GoTextTemplate = Register(MustNewXMLLexer(
-	embedded,
-	"embedded/go_template.xml",
-).SetConfig(
-	&Config{
-		Name:    "Go Text Template",
-		Aliases: []string{"go-text-template"},
-	},
-))
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/haxe.go
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/haxe.go	(revision 67)
+++ 	(revision )
@@ -1,645 +1,0 @@
-package lexers
-
-import (
-	. "github.com/alecthomas/chroma/v2" // nolint
-)
-
-// Haxe lexer.
-var Haxe = Register(MustNewLexer(
-	&Config{
-		Name:      "Haxe",
-		Aliases:   []string{"hx", "haxe", "hxsl"},
-		Filenames: []string{"*.hx", "*.hxsl"},
-		MimeTypes: []string{"text/haxe", "text/x-haxe", "text/x-hx"},
-		DotAll:    true,
-	},
-	haxeRules,
-))
-
-func haxeRules() Rules {
-	return Rules{
-		"root": {
-			Include("spaces"),
-			Include("meta"),
-			{`(?:package)\b`, KeywordNamespace, Push("semicolon", "package")},
-			{`(?:import)\b`, KeywordNamespace, Push("semicolon", "import")},
-			{`(?:using)\b`, KeywordNamespace, Push("semicolon", "using")},
-			{`(?:extern|private)\b`, KeywordDeclaration, nil},
-			{`(?:abstract)\b`, KeywordDeclaration, Push("abstract")},
-			{`(?:class|interface)\b`, KeywordDeclaration, Push("class")},
-			{`(?:enum)\b`, KeywordDeclaration, Push("enum")},
-			{`(?:typedef)\b`, KeywordDeclaration, Push("typedef")},
-			{`(?=.)`, Text, Push("expr-statement")},
-		},
-		"spaces": {
-			{`\s+`, Text, nil},
-			{`//[^\n\r]*`, CommentSingle, nil},
-			{`/\*.*?\*/`, CommentMultiline, nil},
-			{`(#)(if|elseif|else|end|error)\b`, CommentPreproc, MutatorFunc(haxePreProcMutator)},
-		},
-		"string-single-interpol": {
-			{`\$\{`, LiteralStringInterpol, Push("string-interpol-close", "expr")},
-			{`\$\$`, LiteralStringEscape, nil},
-			{`\$(?=(?:_*[a-z]\w*|_+[0-9]\w*|_*[A-Z]\w*|_+|\$\w+))`, LiteralStringInterpol, Push("ident")},
-			Include("string-single"),
-		},
-		"string-single": {
-			{`'`, LiteralStringSingle, Pop(1)},
-			{`\\.`, LiteralStringEscape, nil},
-			{`.`, LiteralStringSingle, nil},
-		},
-		"string-double": {
-			{`"`, LiteralStringDouble, Pop(1)},
-			{`\\.`, LiteralStringEscape, nil},
-			{`.`, LiteralStringDouble, nil},
-		},
-		"string-interpol-close": {
-			{`\$(?:_*[a-z]\w*|_+[0-9]\w*|_*[A-Z]\w*|_+|\$\w+)`, LiteralStringInterpol, nil},
-			{`\}`, LiteralStringInterpol, Pop(1)},
-		},
-		"package": {
-			Include("spaces"),
-			{`(?:_*[a-z]\w*|_+[0-9]\w*|_*[A-Z]\w*|_+|\$\w+)`, NameNamespace, nil},
-			{`\.`, Punctuation, Push("import-ident")},
-			Default(Pop(1)),
-		},
-		"import": {
-			Include("spaces"),
-			{`(?:_*[a-z]\w*|_+[0-9]\w*|_*[A-Z]\w*|_+|\$\w+)`, NameNamespace, nil},
-			{`\*`, Keyword, nil},
-			{`\.`, Punctuation, Push("import-ident")},
-			{`in`, KeywordNamespace, Push("ident")},
-			Default(Pop(1)),
-		},
-		"import-ident": {
-			Include("spaces"),
-			{`\*`, Keyword, Pop(1)},
-			{`(?:_*[a-z]\w*|_+[0-9]\w*|_*[A-Z]\w*|_+|\$\w+)`, NameNamespace, Pop(1)},
-		},
-		"using": {
-			Include("spaces"),
-			{`(?:_*[a-z]\w*|_+[0-9]\w*|_*[A-Z]\w*|_+|\$\w+)`, NameNamespace, nil},
-			{`\.`, Punctuation, Push("import-ident")},
-			Default(Pop(1)),
-		},
-		"preproc-error": {
-			{`\s+`, CommentPreproc, nil},
-			{`'`, LiteralStringSingle, Push("#pop", "string-single")},
-			{`"`, LiteralStringDouble, Push("#pop", "string-double")},
-			Default(Pop(1)),
-		},
-		"preproc-expr": {
-			{`\s+`, CommentPreproc, nil},
-			{`\!`, CommentPreproc, nil},
-			{`\(`, CommentPreproc, Push("#pop", "preproc-parenthesis")},
-			{`(?:_*[a-z]\w*|_+[0-9]\w*|_*[A-Z]\w*|_+|\$\w+)`, CommentPreproc, Pop(1)},
-			{`\.[0-9]+`, LiteralNumberFloat, nil},
-			{`[0-9]+[eE][+\-]?[0-9]+`, LiteralNumberFloat, nil},
-			{`[0-9]+\.[0-9]*[eE][+\-]?[0-9]+`, LiteralNumberFloat, nil},
-			{`[0-9]+\.[0-9]+`, LiteralNumberFloat, nil},
-			{`[0-9]+\.(?!(?:_*[a-z]\w*|_+[0-9]\w*|_*[A-Z]\w*|_+|\$\w+)|\.\.)`, LiteralNumberFloat, nil},
-			{`0x[0-9a-fA-F]+`, LiteralNumberHex, nil},
-			{`[0-9]+`, LiteralNumberInteger, nil},
-			{`'`, LiteralStringSingle, Push("#pop", "string-single")},
-			{`"`, LiteralStringDouble, Push("#pop", "string-double")},
-		},
-		"preproc-parenthesis": {
-			{`\s+`, CommentPreproc, nil},
-			{`\)`, CommentPreproc, Pop(1)},
-			Default(Push("preproc-expr-in-parenthesis")),
-		},
-		"preproc-expr-chain": {
-			{`\s+`, CommentPreproc, nil},
-			{`(?:%=|&=|\|=|\^=|\+=|\-=|\*=|/=|<<=|>\s*>\s*=|>\s*>\s*>\s*=|==|!=|<=|>\s*=|&&|\|\||<<|>>>|>\s*>|\.\.\.|<|>|%|&|\||\^|\+|\*|/|\-|=>|=)`, CommentPreproc, Push("#pop", "preproc-expr-in-parenthesis")},
-			Default(Pop(1)),
-		},
-		"preproc-expr-in-parenthesis": {
-			{`\s+`, CommentPreproc, nil},
-			{`\!`, CommentPreproc, nil},
-			{`\(`, CommentPreproc, Push("#pop", "preproc-expr-chain", "preproc-parenthesis")},
-			{`(?:_*[a-z]\w*|_+[0-9]\w*|_*[A-Z]\w*|_+|\$\w+)`, CommentPreproc, Push("#pop", "preproc-expr-chain")},
-			{`\.[0-9]+`, LiteralNumberFloat, Push("#pop", "preproc-expr-chain")},
-			{`[0-9]+[eE][+\-]?[0-9]+`, LiteralNumberFloat, Push("#pop", "preproc-expr-chain")},
-			{`[0-9]+\.[0-9]*[eE][+\-]?[0-9]+`, LiteralNumberFloat, Push("#pop", "preproc-expr-chain")},
-			{`[0-9]+\.[0-9]+`, LiteralNumberFloat, Push("#pop", "preproc-expr-chain")},
-			{`[0-9]+\.(?!(?:_*[a-z]\w*|_+[0-9]\w*|_*[A-Z]\w*|_+|\$\w+)|\.\.)`, LiteralNumberFloat, Push("#pop", "preproc-expr-chain")},
-			{`0x[0-9a-fA-F]+`, LiteralNumberHex, Push("#pop", "preproc-expr-chain")},
-			{`[0-9]+`, LiteralNumberInteger, Push("#pop", "preproc-expr-chain")},
-			{`'`, LiteralStringSingle, Push("#pop", "preproc-expr-chain", "string-single")},
-			{`"`, LiteralStringDouble, Push("#pop", "preproc-expr-chain", "string-double")},
-		},
-		"abstract": {
-			Include("spaces"),
-			Default(Pop(1), Push("abstract-body"), Push("abstract-relation"), Push("abstract-opaque"), Push("type-param-constraint"), Push("type-name")),
-		},
-		"abstract-body": {
-			Include("spaces"),
-			{`\{`, Punctuation, Push("#pop", "class-body")},
-		},
-		"abstract-opaque": {
-			Include("spaces"),
-			{`\(`, Punctuation, Push("#pop", "parenthesis-close", "type")},
-			Default(Pop(1)),
-		},
-		"abstract-relation": {
-			Include("spaces"),
-			{`(?:to|from)`, KeywordDeclaration, Push("type")},
-			{`,`, Punctuation, nil},
-			Default(Pop(1)),
-		},
-		"meta": {
-			Include("spaces"),
-			{`@`, NameDecorator, Push("meta-body", "meta-ident", "meta-colon")},
-		},
-		"meta-colon": {
-			Include("spaces"),
-			{`:`, NameDecorator, Pop(1)},
-			Default(Pop(1)),
-		},
-		"meta-ident": {
-			Include("spaces"),
-			{`(?:_*[a-z]\w*|_+[0-9]\w*|_*[A-Z]\w*|_+|\$\w+)`, NameDecorator, Pop(1)},
-		},
-		"meta-body": {
-			Include("spaces"),
-			{`\(`, NameDecorator, Push("#pop", "meta-call")},
-			Default(Pop(1)),
-		},
-		"meta-call": {
-			Include("spaces"),
-			{`\)`, NameDecorator, Pop(1)},
-			Default(Pop(1), Push("meta-call-sep"), Push("expr")),
-		},
-		"meta-call-sep": {
-			Include("spaces"),
-			{`\)`, NameDecorator, Pop(1)},
-			{`,`, Punctuation, Push("#pop", "meta-call")},
-		},
-		"typedef": {
-			Include("spaces"),
-			Default(Pop(1), Push("typedef-body"), Push("type-param-constraint"), Push("type-name")),
-		},
-		"typedef-body": {
-			Include("spaces"),
-			{`=`, Operator, Push("#pop", "optional-semicolon", "type")},
-		},
-		"enum": {
-			Include("spaces"),
-			Default(Pop(1), Push("enum-body"), Push("bracket-open"), Push("type-param-constraint"), Push("type-name")),
-		},
-		"enum-body": {
-			Include("spaces"),
-			Include("meta"),
-			{`\}`, Punctuation, Pop(1)},
-			{`(?!(?:function|class|static|var|if|else|while|do|for|break|return|continue|extends|implements|import|switch|case|default|public|private|try|untyped|catch|new|this|throw|extern|enum|in|interface|cast|override|dynamic|typedef|package|inline|using|null|true|false|abstract)\b)(?:_*[a-z]\w*|_+[0-9]\w*|_*[A-Z]\w*|_+|\$\w+)`, Name, Push("enum-member", "type-param-constraint")},
-		},
-		"enum-member": {
-			Include("spaces"),
-			{`\(`, Punctuation, Push("#pop", "semicolon", "flag", "function-param")},
-			Default(Pop(1), Push("semicolon"), Push("flag")),
-		},
-		"class": {
-			Include("spaces"),
-			Default(Pop(1), Push("class-body"), Push("bracket-open"), Push("extends"), Push("type-param-constraint"), Push("type-name")),
-		},
-		"extends": {
-			Include("spaces"),
-			{`(?:extends|implements)\b`, KeywordDeclaration, Push("type")},
-			{`,`, Punctuation, nil},
-			Default(Pop(1)),
-		},
-		"bracket-open": {
-			Include("spaces"),
-			{`\{`, Punctuation, Pop(1)},
-		},
-		"bracket-close": {
-			Include("spaces"),
-			{`\}`, Punctuation, Pop(1)},
-		},
-		"class-body": {
-			Include("spaces"),
-			Include("meta"),
-			{`\}`, Punctuation, Pop(1)},
-			{`(?:static|public|private|override|dynamic|inline|macro)\b`, KeywordDeclaration, nil},
-			Default(Push("class-member")),
-		},
-		"class-member": {
-			Include("spaces"),
-			{`(var)\b`, KeywordDeclaration, Push("#pop", "optional-semicolon", "var")},
-			{`(function)\b`, KeywordDeclaration, Push("#pop", "optional-semicolon", "class-method")},
-		},
-		"function-local": {
-			Include("spaces"),
-			{`(?!(?:function|class|static|var|if|else|while|do|for|break|return|continue|extends|implements|import|switch|case|default|public|private|try|untyped|catch|new|this|throw|extern|enum|in|interface|cast|override|dynamic|typedef|package|inline|using|null|true|false|abstract)\b)(?:_*[a-z]\w*|_+[0-9]\w*|_*[A-Z]\w*|_+|\$\w+)`, NameFunction, Push("#pop", "optional-expr", "flag", "function-param", "parenthesis-open", "type-param-constraint")},
-			Default(Pop(1), Push("optional-expr"), Push("flag"), Push("function-param"), Push("parenthesis-open"), Push("type-param-constraint")),
-		},
-		"optional-expr": {
-			Include("spaces"),
-			Include("expr"),
-			Default(Pop(1)),
-		},
-		"class-method": {
-			Include("spaces"),
-			{`(?:_*[a-z]\w*|_+[0-9]\w*|_*[A-Z]\w*|_+|\$\w+)`, NameFunction, Push("#pop", "optional-expr", "flag", "function-param", "parenthesis-open", "type-param-constraint")},
-		},
-		"function-param": {
-			Include("spaces"),
-			{`\)`, Punctuation, Pop(1)},
-			{`\?`, Punctuation, nil},
-			{`(?!(?:function|class|static|var|if|else|while|do|for|break|return|continue|extends|implements|import|switch|case|default|public|private|try|untyped|catch|new|this|throw|extern|enum|in|interface|cast|override|dynamic|typedef|package|inline|using|null|true|false|abstract)\b)(?:_*[a-z]\w*|_+[0-9]\w*|_*[A-Z]\w*|_+|\$\w+)`, Name, Push("#pop", "function-param-sep", "assign", "flag")},
-		},
-		"function-param-sep": {
-			Include("spaces"),
-			{`\)`, Punctuation, Pop(1)},
-			{`,`, Punctuation, Push("#pop", "function-param")},
-		},
-		"prop-get-set": {
-			Include("spaces"),
-			{`\(`, Punctuation, Push("#pop", "parenthesis-close", "prop-get-set-opt", "comma", "prop-get-set-opt")},
-			Default(Pop(1)),
-		},
-		"prop-get-set-opt": {
-			Include("spaces"),
-			{`(?:default|null|never|dynamic|get|set)\b`, Keyword, Pop(1)},
-			{`(?!(?:function|class|static|var|if|else|while|do|for|break|return|continue|extends|implements|import|switch|case|default|public|private|try|untyped|catch|new|this|throw|extern|enum|in|interface|cast|override|dynamic|typedef|package|inline|using|null|true|false|abstract)\b)(?:_*[a-z]\w*|_+[0-9]\w*|_*[A-Z]\w*|_+|\$\w+)`, Text, Pop(1)},
-		},
-		"expr-statement": {
-			Include("spaces"),
-			Default(Pop(1), Push("optional-semicolon"), Push("expr")),
-		},
-		"expr": {
-			Include("spaces"),
-			{`@`, NameDecorator, Push("#pop", "optional-expr", "meta-body", "meta-ident", "meta-colon")},
-			{`(?:\+\+|\-\-|~(?!/)|!|\-)`, Operator, nil},
-			{`\(`, Punctuation, Push("#pop", "expr-chain", "parenthesis")},
-			{`(?:static|public|private|override|dynamic|inline)\b`, KeywordDeclaration, nil},
-			{`(?:function)\b`, KeywordDeclaration, Push("#pop", "expr-chain", "function-local")},
-			{`\{`, Punctuation, Push("#pop", "expr-chain", "bracket")},
-			{`(?:true|false|null)\b`, KeywordConstant, Push("#pop", "expr-chain")},
-			{`(?:this)\b`, Keyword, Push("#pop", "expr-chain")},
-			{`(?:cast)\b`, Keyword, Push("#pop", "expr-chain", "cast")},
-			{`(?:try)\b`, Keyword, Push("#pop", "catch", "expr")},
-			{`(?:var)\b`, KeywordDeclaration, Push("#pop", "var")},
-			{`(?:new)\b`, Keyword, Push("#pop", "expr-chain", "new")},
-			{`(?:switch)\b`, Keyword, Push("#pop", "switch")},
-			{`(?:if)\b`, Keyword, Push("#pop", "if")},
-			{`(?:do)\b`, Keyword, Push("#pop", "do")},
-			{`(?:while)\b`, Keyword, Push("#pop", "while")},
-			{`(?:for)\b`, Keyword, Push("#pop", "for")},
-			{`(?:untyped|throw)\b`, Keyword, nil},
-			{`(?:return)\b`, Keyword, Push("#pop", "optional-expr")},
-			{`(?:macro)\b`, Keyword, Push("#pop", "macro")},
-			{`(?:continue|break)\b`, Keyword, Pop(1)},
-			{`(?:\$\s*[a-z]\b|\$(?!(?:_*[a-z]\w*|_+[0-9]\w*|_*[A-Z]\w*|_+|\$\w+)))`, Name, Push("#pop", "dollar")},
-			{`(?!(?:function|class|static|var|if|else|while|do|for|break|return|continue|extends|implements|import|switch|case|default|public|private|try|untyped|catch|new|this|throw|extern|enum|in|interface|cast|override|dynamic|typedef|package|inline|using|null|true|false|abstract)\b)(?:_*[a-z]\w*|_+[0-9]\w*|_*[A-Z]\w*|_+|\$\w+)`, Name, Push("#pop", "expr-chain")},
-			{`\.[0-9]+`, LiteralNumberFloat, Push("#pop", "expr-chain")},
-			{`[0-9]+[eE][+\-]?[0-9]+`, LiteralNumberFloat, Push("#pop", "expr-chain")},
-			{`[0-9]+\.[0-9]*[eE][+\-]?[0-9]+`, LiteralNumberFloat, Push("#pop", "expr-chain")},
-			{`[0-9]+\.[0-9]+`, LiteralNumberFloat, Push("#pop", "expr-chain")},
-			{`[0-9]+\.(?!(?:_*[a-z]\w*|_+[0-9]\w*|_*[A-Z]\w*|_+|\$\w+)|\.\.)`, LiteralNumberFloat, Push("#pop", "expr-chain")},
-			{`0x[0-9a-fA-F]+`, LiteralNumberHex, Push("#pop", "expr-chain")},
-			{`[0-9]+`, LiteralNumberInteger, Push("#pop", "expr-chain")},
-			{`'`, LiteralStringSingle, Push("#pop", "expr-chain", "string-single-interpol")},
-			{`"`, LiteralStringDouble, Push("#pop", "expr-chain", "string-double")},
-			{`~/(\\\\|\\/|[^/\n])*/[gimsu]*`, LiteralStringRegex, Push("#pop", "expr-chain")},
-			{`\[`, Punctuation, Push("#pop", "expr-chain", "array-decl")},
-		},
-		"expr-chain": {
-			Include("spaces"),
-			{`(?:\+\+|\-\-)`, Operator, nil},
-			{`(?:%=|&=|\|=|\^=|\+=|\-=|\*=|/=|<<=|>\s*>\s*=|>\s*>\s*>\s*=|==|!=|<=|>\s*=|&&|\|\||<<|>>>|>\s*>|\.\.\.|<|>|%|&|\||\^|\+|\*|/|\-|=>|=)`, Operator, Push("#pop", "expr")},
-			{`(?:in)\b`, Keyword, Push("#pop", "expr")},
-			{`\?`, Operator, Push("#pop", "expr", "ternary", "expr")},
-			{`(\.)((?!(?:function|class|static|var|if|else|while|do|for|break|return|continue|extends|implements|import|switch|case|default|public|private|try|untyped|catch|new|this|throw|extern|enum|in|interface|cast|override|dynamic|typedef|package|inline|using|null|true|false|abstract)\b)(?:_*[a-z]\w*|_+[0-9]\w*|_*[A-Z]\w*|_+|\$\w+))`, ByGroups(Punctuation, Name), nil},
-			{`\[`, Punctuation, Push("array-access")},
-			{`\(`, Punctuation, Push("call")},
-			Default(Pop(1)),
-		},
-		"macro": {
-			Include("spaces"),
-			Include("meta"),
-			{`:`, Punctuation, Push("#pop", "type")},
-			{`(?:extern|private)\b`, KeywordDeclaration, nil},
-			{`(?:abstract)\b`, KeywordDeclaration, Push("#pop", "optional-semicolon", "abstract")},
-			{`(?:class|interface)\b`, KeywordDeclaration, Push("#pop", "optional-semicolon", "macro-class")},
-			{`(?:enum)\b`, KeywordDeclaration, Push("#pop", "optional-semicolon", "enum")},
-			{`(?:typedef)\b`, KeywordDeclaration, Push("#pop", "optional-semicolon", "typedef")},
-			Default(Pop(1), Push("expr")),
-		},
-		"macro-class": {
-			{`\{`, Punctuation, Push("#pop", "class-body")},
-			Include("class"),
-		},
-		"cast": {
-			Include("spaces"),
-			{`\(`, Punctuation, Push("#pop", "parenthesis-close", "cast-type", "expr")},
-			Default(Pop(1), Push("expr")),
-		},
-		"cast-type": {
-			Include("spaces"),
-			{`,`, Punctuation, Push("#pop", "type")},
-			Default(Pop(1)),
-		},
-		"catch": {
-			Include("spaces"),
-			{`(?:catch)\b`, Keyword, Push("expr", "function-param", "parenthesis-open")},
-			Default(Pop(1)),
-		},
-		"do": {
-			Include("spaces"),
-			Default(Pop(1), Push("do-while"), Push("expr")),
-		},
-		"do-while": {
-			Include("spaces"),
-			{`(?:while)\b`, Keyword, Push("#pop", "parenthesis", "parenthesis-open")},
-		},
-		"while": {
-			Include("spaces"),
-			{`\(`, Punctuation, Push("#pop", "expr", "parenthesis")},
-		},
-		"for": {
-			Include("spaces"),
-			{`\(`, Punctuation, Push("#pop", "expr", "parenthesis")},
-		},
-		"if": {
-			Include("spaces"),
-			{`\(`, Punctuation, Push("#pop", "else", "optional-semicolon", "expr", "parenthesis")},
-		},
-		"else": {
-			Include("spaces"),
-			{`(?:else)\b`, Keyword, Push("#pop", "expr")},
-			Default(Pop(1)),
-		},
-		"switch": {
-			Include("spaces"),
-			Default(Pop(1), Push("switch-body"), Push("bracket-open"), Push("expr")),
-		},
-		"switch-body": {
-			Include("spaces"),
-			{`(?:case|default)\b`, Keyword, Push("case-block", "case")},
-			{`\}`, Punctuation, Pop(1)},
-		},
-		"case": {
-			Include("spaces"),
-			{`:`, Punctuation, Pop(1)},
-			Default(Pop(1), Push("case-sep"), Push("case-guard"), Push("expr")),
-		},
-		"case-sep": {
-			Include("spaces"),
-			{`:`, Punctuation, Pop(1)},
-			{`,`, Punctuation, Push("#pop", "case")},
-		},
-		"case-guard": {
-			Include("spaces"),
-			{`(?:if)\b`, Keyword, Push("#pop", "parenthesis", "parenthesis-open")},
-			Default(Pop(1)),
-		},
-		"case-block": {
-			Include("spaces"),
-			{`(?!(?:case|default)\b|\})`, Keyword, Push("expr-statement")},
-			Default(Pop(1)),
-		},
-		"new": {
-			Include("spaces"),
-			Default(Pop(1), Push("call"), Push("parenthesis-open"), Push("type")),
-		},
-		"array-decl": {
-			Include("spaces"),
-			{`\]`, Punctuation, Pop(1)},
-			Default(Pop(1), Push("array-decl-sep"), Push("expr")),
-		},
-		"array-decl-sep": {
-			Include("spaces"),
-			{`\]`, Punctuation, Pop(1)},
-			{`,`, Punctuation, Push("#pop", "array-decl")},
-		},
-		"array-access": {
-			Include("spaces"),
-			Default(Pop(1), Push("array-access-close"), Push("expr")),
-		},
-		"array-access-close": {
-			Include("spaces"),
-			{`\]`, Punctuation, Pop(1)},
-		},
-		"comma": {
-			Include("spaces"),
-			{`,`, Punctuation, Pop(1)},
-		},
-		"colon": {
-			Include("spaces"),
-			{`:`, Punctuation, Pop(1)},
-		},
-		"semicolon": {
-			Include("spaces"),
-			{`;`, Punctuation, Pop(1)},
-		},
-		"optional-semicolon": {
-			Include("spaces"),
-			{`;`, Punctuation, Pop(1)},
-			Default(Pop(1)),
-		},
-		"ident": {
-			Include("spaces"),
-			{`(?:_*[a-z]\w*|_+[0-9]\w*|_*[A-Z]\w*|_+|\$\w+)`, Name, Pop(1)},
-		},
-		"dollar": {
-			Include("spaces"),
-			{`\{`, Punctuation, Push("#pop", "expr-chain", "bracket-close", "expr")},
-			Default(Pop(1), Push("expr-chain")),
-		},
-		"type-name": {
-			Include("spaces"),
-			{`_*[A-Z]\w*`, Name, Pop(1)},
-		},
-		"type-full-name": {
-			Include("spaces"),
-			{`\.`, Punctuation, Push("ident")},
-			Default(Pop(1)),
-		},
-		"type": {
-			Include("spaces"),
-			{`\?`, Punctuation, nil},
-			{`(?:_*[a-z]\w*|_+[0-9]\w*|_*[A-Z]\w*|_+|\$\w+)`, Name, Push("#pop", "type-check", "type-full-name")},
-			{`\{`, Punctuation, Push("#pop", "type-check", "type-struct")},
-			{`\(`, Punctuation, Push("#pop", "type-check", "type-parenthesis")},
-		},
-		"type-parenthesis": {
-			Include("spaces"),
-			Default(Pop(1), Push("parenthesis-close"), Push("type")),
-		},
-		"type-check": {
-			Include("spaces"),
-			{`->`, Punctuation, Push("#pop", "type")},
-			{`<(?!=)`, Punctuation, Push("type-param")},
-			Default(Pop(1)),
-		},
-		"type-struct": {
-			Include("spaces"),
-			{`\}`, Punctuation, Pop(1)},
-			{`\?`, Punctuation, nil},
-			{`>`, Punctuation, Push("comma", "type")},
-			{`(?!(?:function|class|static|var|if|else|while|do|for|break|return|continue|extends|implements|import|switch|case|default|public|private|try|untyped|catch|new|this|throw|extern|enum|in|interface|cast|override|dynamic|typedef|package|inline|using|null|true|false|abstract)\b)(?:_*[a-z]\w*|_+[0-9]\w*|_*[A-Z]\w*|_+|\$\w+)`, Name, Push("#pop", "type-struct-sep", "type", "colon")},
-			Include("class-body"),
-		},
-		"type-struct-sep": {
-			Include("spaces"),
-			{`\}`, Punctuation, Pop(1)},
-			{`,`, Punctuation, Push("#pop", "type-struct")},
-		},
-		"type-param-type": {
-			{`\.[0-9]+`, LiteralNumberFloat, Pop(1)},
-			{`[0-9]+[eE][+\-]?[0-9]+`, LiteralNumberFloat, Pop(1)},
-			{`[0-9]+\.[0-9]*[eE][+\-]?[0-9]+`, LiteralNumberFloat, Pop(1)},
-			{`[0-9]+\.[0-9]+`, LiteralNumberFloat, Pop(1)},
-			{`[0-9]+\.(?!(?:_*[a-z]\w*|_+[0-9]\w*|_*[A-Z]\w*|_+|\$\w+)|\.\.)`, LiteralNumberFloat, Pop(1)},
-			{`0x[0-9a-fA-F]+`, LiteralNumberHex, Pop(1)},
-			{`[0-9]+`, LiteralNumberInteger, Pop(1)},
-			{`'`, LiteralStringSingle, Push("#pop", "string-single")},
-			{`"`, LiteralStringDouble, Push("#pop", "string-double")},
-			{`~/(\\\\|\\/|[^/\n])*/[gim]*`, LiteralStringRegex, Pop(1)},
-			{`\[`, Operator, Push("#pop", "array-decl")},
-			Include("type"),
-		},
-		"type-param": {
-			Include("spaces"),
-			Default(Pop(1), Push("type-param-sep"), Push("type-param-type")),
-		},
-		"type-param-sep": {
-			Include("spaces"),
-			{`>`, Punctuation, Pop(1)},
-			{`,`, Punctuation, Push("#pop", "type-param")},
-		},
-		"type-param-constraint": {
-			Include("spaces"),
-			{`<(?!=)`, Punctuation, Push("#pop", "type-param-constraint-sep", "type-param-constraint-flag", "type-name")},
-			Default(Pop(1)),
-		},
-		"type-param-constraint-sep": {
-			Include("spaces"),
-			{`>`, Punctuation, Pop(1)},
-			{`,`, Punctuation, Push("#pop", "type-param-constraint-sep", "type-param-constraint-flag", "type-name")},
-		},
-		"type-param-constraint-flag": {
-			Include("spaces"),
-			{`:`, Punctuation, Push("#pop", "type-param-constraint-flag-type")},
-			Default(Pop(1)),
-		},
-		"type-param-constraint-flag-type": {
-			Include("spaces"),
-			{`\(`, Punctuation, Push("#pop", "type-param-constraint-flag-type-sep", "type")},
-			Default(Pop(1), Push("type")),
-		},
-		"type-param-constraint-flag-type-sep": {
-			Include("spaces"),
-			{`\)`, Punctuation, Pop(1)},
-			{`,`, Punctuation, Push("type")},
-		},
-		"parenthesis": {
-			Include("spaces"),
-			Default(Pop(1), Push("parenthesis-close"), Push("flag"), Push("expr")),
-		},
-		"parenthesis-open": {
-			Include("spaces"),
-			{`\(`, Punctuation, Pop(1)},
-		},
-		"parenthesis-close": {
-			Include("spaces"),
-			{`\)`, Punctuation, Pop(1)},
-		},
-		"var": {
-			Include("spaces"),
-			{`(?!(?:function|class|static|var|if|else|while|do|for|break|return|continue|extends|implements|import|switch|case|default|public|private|try|untyped|catch|new|this|throw|extern|enum|in|interface|cast|override|dynamic|typedef|package|inline|using|null|true|false|abstract)\b)(?:_*[a-z]\w*|_+[0-9]\w*|_*[A-Z]\w*|_+|\$\w+)`, Text, Push("#pop", "var-sep", "assign", "flag", "prop-get-set")},
-		},
-		"var-sep": {
-			Include("spaces"),
-			{`,`, Punctuation, Push("#pop", "var")},
-			Default(Pop(1)),
-		},
-		"assign": {
-			Include("spaces"),
-			{`=`, Operator, Push("#pop", "expr")},
-			Default(Pop(1)),
-		},
-		"flag": {
-			Include("spaces"),
-			{`:`, Punctuation, Push("#pop", "type")},
-			Default(Pop(1)),
-		},
-		"ternary": {
-			Include("spaces"),
-			{`:`, Operator, Pop(1)},
-		},
-		"call": {
-			Include("spaces"),
-			{`\)`, Punctuation, Pop(1)},
-			Default(Pop(1), Push("call-sep"), Push("expr")),
-		},
-		"call-sep": {
-			Include("spaces"),
-			{`\)`, Punctuation, Pop(1)},
-			{`,`, Punctuation, Push("#pop", "call")},
-		},
-		"bracket": {
-			Include("spaces"),
-			{`(?!(?:\$\s*[a-z]\b|\$(?!(?:_*[a-z]\w*|_+[0-9]\w*|_*[A-Z]\w*|_+|\$\w+))))(?!(?:function|class|static|var|if|else|while|do|for|break|return|continue|extends|implements|import|switch|case|default|public|private|try|untyped|catch|new|this|throw|extern|enum|in|interface|cast|override|dynamic|typedef|package|inline|using|null|true|false|abstract)\b)(?:_*[a-z]\w*|_+[0-9]\w*|_*[A-Z]\w*|_+|\$\w+)`, Name, Push("#pop", "bracket-check")},
-			{`'`, LiteralStringSingle, Push("#pop", "bracket-check", "string-single")},
-			{`"`, LiteralStringDouble, Push("#pop", "bracket-check", "string-double")},
-			Default(Pop(1), Push("block")),
-		},
-		"bracket-check": {
-			Include("spaces"),
-			{`:`, Punctuation, Push("#pop", "object-sep", "expr")},
-			Default(Pop(1), Push("block"), Push("optional-semicolon"), Push("expr-chain")),
-		},
-		"block": {
-			Include("spaces"),
-			{`\}`, Punctuation, Pop(1)},
-			Default(Push("expr-statement")),
-		},
-		"object": {
-			Include("spaces"),
-			{`\}`, Punctuation, Pop(1)},
-			Default(Pop(1), Push("object-sep"), Push("expr"), Push("colon"), Push("ident-or-string")),
-		},
-		"ident-or-string": {
-			Include("spaces"),
-			{`(?!(?:function|class|static|var|if|else|while|do|for|break|return|continue|extends|implements|import|switch|case|default|public|private|try|untyped|catch|new|this|throw|extern|enum|in|interface|cast|override|dynamic|typedef|package|inline|using|null|true|false|abstract)\b)(?:_*[a-z]\w*|_+[0-9]\w*|_*[A-Z]\w*|_+|\$\w+)`, Name, Pop(1)},
-			{`'`, LiteralStringSingle, Push("#pop", "string-single")},
-			{`"`, LiteralStringDouble, Push("#pop", "string-double")},
-		},
-		"object-sep": {
-			Include("spaces"),
-			{`\}`, Punctuation, Pop(1)},
-			{`,`, Punctuation, Push("#pop", "object")},
-		},
-	}
-}
-
-func haxePreProcMutator(state *LexerState) error {
-	stack, ok := state.Get("haxe-pre-proc").([][]string)
-	if !ok {
-		stack = [][]string{}
-	}
-
-	proc := state.Groups[2]
-	switch proc {
-	case "if":
-		stack = append(stack, state.Stack)
-	case "else", "elseif":
-		if len(stack) > 0 {
-			state.Stack = stack[len(stack)-1]
-		}
-	case "end":
-		stack = stack[:len(stack)-1]
-	}
-
-	if proc == "if" || proc == "elseif" {
-		state.Stack = append(state.Stack, "preproc-expr")
-	}
-
-	if proc == "error" {
-		state.Stack = append(state.Stack, "preproc-error")
-	}
-	state.Set("haxe-pre-proc", stack)
-	return nil
-}
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/html.go
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/html.go	(revision 67)
+++ 	(revision )
@@ -1,60 +1,0 @@
-package lexers
-
-import (
-	. "github.com/alecthomas/chroma/v2" // nolint
-)
-
-// HTML lexer.
-var HTML = Register(MustNewLexer(
-	&Config{
-		Name:            "HTML",
-		Aliases:         []string{"html"},
-		Filenames:       []string{"*.html", "*.htm", "*.xhtml", "*.xslt"},
-		MimeTypes:       []string{"text/html", "application/xhtml+xml"},
-		NotMultiline:    true,
-		DotAll:          true,
-		CaseInsensitive: true,
-	},
-	htmlRules,
-))
-
-func htmlRules() Rules {
-	return Rules{
-		"root": {
-			{`[^<&]+`, Text, nil},
-			{`&\S*?;`, NameEntity, nil},
-			{`\<\!\[CDATA\[.*?\]\]\>`, CommentPreproc, nil},
-			{`<!--`, Comment, Push("comment")},
-			{`<\?.*?\?>`, CommentPreproc, nil},
-			{`<![^>]*>`, CommentPreproc, nil},
-			{`(<)(\s*)(script)(\s*)`, ByGroups(Punctuation, Text, NameTag, Text), Push("script-content", "tag")},
-			{`(<)(\s*)(style)(\s*)`, ByGroups(Punctuation, Text, NameTag, Text), Push("style-content", "tag")},
-			{`(<)(\s*)([\w:.-]+)`, ByGroups(Punctuation, Text, NameTag), Push("tag")},
-			{`(<)(\s*)(/)(\s*)([\w:.-]+)(\s*)(>)`, ByGroups(Punctuation, Text, Punctuation, Text, NameTag, Text, Punctuation), nil},
-		},
-		"comment": {
-			{`[^-]+`, Comment, nil},
-			{`-->`, Comment, Pop(1)},
-			{`-`, Comment, nil},
-		},
-		"tag": {
-			{`\s+`, Text, nil},
-			{`([\w:-]+\s*)(=)(\s*)`, ByGroups(NameAttribute, Operator, Text), Push("attr")},
-			{`[\w:-]+`, NameAttribute, nil},
-			{`(/?)(\s*)(>)`, ByGroups(Punctuation, Text, Punctuation), Pop(1)},
-		},
-		"script-content": {
-			{`(<)(\s*)(/)(\s*)(script)(\s*)(>)`, ByGroups(Punctuation, Text, Punctuation, Text, NameTag, Text, Punctuation), Pop(1)},
-			{`.+?(?=<\s*/\s*script\s*>)`, Using("Javascript"), nil},
-		},
-		"style-content": {
-			{`(<)(\s*)(/)(\s*)(style)(\s*)(>)`, ByGroups(Punctuation, Text, Punctuation, Text, NameTag, Text, Punctuation), Pop(1)},
-			{`.+?(?=<\s*/\s*style\s*>)`, Using("CSS"), nil},
-		},
-		"attr": {
-			{`".*?"`, LiteralString, Pop(1)},
-			{`'.*?'`, LiteralString, Pop(1)},
-			{`[^\s>]+`, LiteralString, Pop(1)},
-		},
-	}
-}
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/http.go
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/http.go	(revision 67)
+++ 	(revision )
@@ -1,131 +1,0 @@
-package lexers
-
-import (
-	"strings"
-
-	. "github.com/alecthomas/chroma/v2" // nolint
-)
-
-// HTTP lexer.
-var HTTP = Register(httpBodyContentTypeLexer(MustNewLexer(
-	&Config{
-		Name:         "HTTP",
-		Aliases:      []string{"http"},
-		Filenames:    []string{},
-		MimeTypes:    []string{},
-		NotMultiline: true,
-		DotAll:       true,
-	},
-	httpRules,
-)))
-
-func httpRules() Rules {
-	return Rules{
-		"root": {
-			{`(GET|POST|PUT|DELETE|HEAD|OPTIONS|TRACE|PATCH|CONNECT)( +)([^ ]+)( +)(HTTP)(/)([12]\.[01])(\r?\n|\Z)`, ByGroups(NameFunction, Text, NameNamespace, Text, KeywordReserved, Operator, LiteralNumber, Text), Push("headers")},
-			{`(HTTP)(/)([12]\.[01])( +)(\d{3})( +)([^\r\n]+)(\r?\n|\Z)`, ByGroups(KeywordReserved, Operator, LiteralNumber, Text, LiteralNumber, Text, NameException, Text), Push("headers")},
-		},
-		"headers": {
-			{`([^\s:]+)( *)(:)( *)([^\r\n]+)(\r?\n|\Z)`, EmitterFunc(httpHeaderBlock), nil},
-			{`([\t ]+)([^\r\n]+)(\r?\n|\Z)`, EmitterFunc(httpContinuousHeaderBlock), nil},
-			{`\r?\n`, Text, Push("content")},
-		},
-		"content": {
-			{`.+`, EmitterFunc(httpContentBlock), nil},
-		},
-	}
-}
-
-func httpContentBlock(groups []string, state *LexerState) Iterator {
-	tokens := []Token{
-		{Generic, groups[0]},
-	}
-	return Literator(tokens...)
-}
-
-func httpHeaderBlock(groups []string, state *LexerState) Iterator {
-	tokens := []Token{
-		{Name, groups[1]},
-		{Text, groups[2]},
-		{Operator, groups[3]},
-		{Text, groups[4]},
-		{Literal, groups[5]},
-		{Text, groups[6]},
-	}
-	return Literator(tokens...)
-}
-
-func httpContinuousHeaderBlock(groups []string, state *LexerState) Iterator {
-	tokens := []Token{
-		{Text, groups[1]},
-		{Literal, groups[2]},
-		{Text, groups[3]},
-	}
-	return Literator(tokens...)
-}
-
-func httpBodyContentTypeLexer(lexer Lexer) Lexer { return &httpBodyContentTyper{lexer} }
-
-type httpBodyContentTyper struct{ Lexer }
-
-func (d *httpBodyContentTyper) Tokenise(options *TokeniseOptions, text string) (Iterator, error) { // nolint: gocognit
-	var contentType string
-	var isContentType bool
-	var subIterator Iterator
-
-	it, err := d.Lexer.Tokenise(options, text)
-	if err != nil {
-		return nil, err
-	}
-
-	return func() Token {
-		token := it()
-
-		if token == EOF {
-			if subIterator != nil {
-				return subIterator()
-			}
-			return EOF
-		}
-
-		switch {
-		case token.Type == Name && strings.ToLower(token.Value) == "content-type":
-			{
-				isContentType = true
-			}
-		case token.Type == Literal && isContentType:
-			{
-				isContentType = false
-				contentType = strings.TrimSpace(token.Value)
-				pos := strings.Index(contentType, ";")
-				if pos > 0 {
-					contentType = strings.TrimSpace(contentType[:pos])
-				}
-			}
-		case token.Type == Generic && contentType != "":
-			{
-				lexer := MatchMimeType(contentType)
-
-				// application/calendar+xml can be treated as application/xml
-				// if there's not a better match.
-				if lexer == nil && strings.Contains(contentType, "+") {
-					slashPos := strings.Index(contentType, "/")
-					plusPos := strings.LastIndex(contentType, "+")
-					contentType = contentType[:slashPos+1] + contentType[plusPos+1:]
-					lexer = MatchMimeType(contentType)
-				}
-
-				if lexer == nil {
-					token.Type = Text
-				} else {
-					subIterator, err = lexer.Tokenise(nil, token.Value)
-					if err != nil {
-						panic(err)
-					}
-					return EOF
-				}
-			}
-		}
-		return token
-	}, nil
-}
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/lexers.go
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/lexers.go	(revision 67)
+++ 	(revision )
@@ -1,73 +1,0 @@
-package lexers
-
-import (
-	"embed"
-	"io/fs"
-
-	"github.com/alecthomas/chroma/v2"
-)
-
-//go:embed embedded
-var embedded embed.FS
-
-// GlobalLexerRegistry is the global LexerRegistry of Lexers.
-var GlobalLexerRegistry = func() *chroma.LexerRegistry {
-	reg := chroma.NewLexerRegistry()
-	// index(reg)
-	paths, err := fs.Glob(embedded, "embedded/*.xml")
-	if err != nil {
-		panic(err)
-	}
-	for _, path := range paths {
-		reg.Register(chroma.MustNewXMLLexer(embedded, path))
-	}
-	return reg
-}()
-
-// Names of all lexers, optionally including aliases.
-func Names(withAliases bool) []string {
-	return GlobalLexerRegistry.Names(withAliases)
-}
-
-// Get a Lexer by name, alias or file extension.
-func Get(name string) chroma.Lexer {
-	return GlobalLexerRegistry.Get(name)
-}
-
-// MatchMimeType attempts to find a lexer for the given MIME type.
-func MatchMimeType(mimeType string) chroma.Lexer {
-	return GlobalLexerRegistry.MatchMimeType(mimeType)
-}
-
-// Match returns the first lexer matching filename.
-func Match(filename string) chroma.Lexer {
-	return GlobalLexerRegistry.Match(filename)
-}
-
-// Register a Lexer with the global registry.
-func Register(lexer chroma.Lexer) chroma.Lexer {
-	return GlobalLexerRegistry.Register(lexer)
-}
-
-// Analyse text content and return the "best" lexer..
-func Analyse(text string) chroma.Lexer {
-	return GlobalLexerRegistry.Analyse(text)
-}
-
-// PlaintextRules is used for the fallback lexer as well as the explicit
-// plaintext lexer.
-func PlaintextRules() chroma.Rules {
-	return chroma.Rules{
-		"root": []chroma.Rule{
-			{`.+`, chroma.Text, nil},
-			{`\n`, chroma.Text, nil},
-		},
-	}
-}
-
-// Fallback lexer if no other is found.
-var Fallback chroma.Lexer = chroma.MustNewLexer(&chroma.Config{
-	Name:      "fallback",
-	Filenames: []string{"*"},
-	Priority:  -1,
-}, PlaintextRules)
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/make.go
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/make.go	(revision 67)
+++ 	(revision )
@@ -1,56 +1,0 @@
-package lexers
-
-import (
-	. "github.com/alecthomas/chroma/v2" // nolint
-)
-
-// Makefile lexer.
-var Makefile = Register(MustNewLexer(
-	&Config{
-		Name:      "Base Makefile",
-		Aliases:   []string{"make", "makefile", "mf", "bsdmake"},
-		Filenames: []string{"*.mak", "*.mk", "Makefile", "makefile", "Makefile.*", "GNUmakefile", "BSDmakefile"},
-		MimeTypes: []string{"text/x-makefile"},
-		EnsureNL:  true,
-	},
-	makefileRules,
-))
-
-func makefileRules() Rules {
-	return Rules{
-		"root": {
-			{`^(?:[\t ]+.*\n|\n)+`, Using("Bash"), nil},
-			{`\$[<@$+%?|*]`, Keyword, nil},
-			{`\s+`, Text, nil},
-			{`#.*?\n`, Comment, nil},
-			{`(export)(\s+)(?=[\w${}\t -]+\n)`, ByGroups(Keyword, Text), Push("export")},
-			{`export\s+`, Keyword, nil},
-			{`([\w${}().-]+)(\s*)([!?:+]?=)([ \t]*)((?:.*\\\n)+|.*\n)`, ByGroups(NameVariable, Text, Operator, Text, Using("Bash")), nil},
-			{`(?s)"(\\\\|\\.|[^"\\])*"`, LiteralStringDouble, nil},
-			{`(?s)'(\\\\|\\.|[^'\\])*'`, LiteralStringSingle, nil},
-			{`([^\n:]+)(:+)([ \t]*)`, ByGroups(NameFunction, Operator, Text), Push("block-header")},
-			{`\$\(`, Keyword, Push("expansion")},
-		},
-		"expansion": {
-			{`[^$a-zA-Z_()]+`, Text, nil},
-			{`[a-zA-Z_]+`, NameVariable, nil},
-			{`\$`, Keyword, nil},
-			{`\(`, Keyword, Push()},
-			{`\)`, Keyword, Pop(1)},
-		},
-		"export": {
-			{`[\w${}-]+`, NameVariable, nil},
-			{`\n`, Text, Pop(1)},
-			{`\s+`, Text, nil},
-		},
-		"block-header": {
-			{`[,|]`, Punctuation, nil},
-			{`#.*?\n`, Comment, Pop(1)},
-			{`\\\n`, Text, nil},
-			{`\$\(`, Keyword, Push("expansion")},
-			{`[a-zA-Z_]+`, Name, nil},
-			{`\n`, Text, Pop(1)},
-			{`.`, Text, nil},
-		},
-	}
-}
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/mako.go
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/mako.go	(revision 67)
+++ 	(revision )
@@ -1,62 +1,0 @@
-package lexers
-
-import (
-	. "github.com/alecthomas/chroma/v2" // nolint
-)
-
-// Mako lexer.
-var Mako = Register(MustNewLexer(
-	&Config{
-		Name:      "Mako",
-		Aliases:   []string{"mako"},
-		Filenames: []string{"*.mao"},
-		MimeTypes: []string{"application/x-mako"},
-	},
-	makoRules,
-))
-
-func makoRules() Rules {
-	return Rules{
-		"root": {
-			{`(\s*)(%)(\s*end(?:\w+))(\n|\Z)`, ByGroups(Text, CommentPreproc, Keyword, Other), nil},
-			{`(\s*)(%)([^\n]*)(\n|\Z)`, ByGroups(Text, CommentPreproc, Using("Python"), Other), nil},
-			{`(\s*)(##[^\n]*)(\n|\Z)`, ByGroups(Text, CommentPreproc, Other), nil},
-			{`(?s)<%doc>.*?</%doc>`, CommentPreproc, nil},
-			{`(<%)([\w.:]+)`, ByGroups(CommentPreproc, NameBuiltin), Push("tag")},
-			{`(</%)([\w.:]+)(>)`, ByGroups(CommentPreproc, NameBuiltin, CommentPreproc), nil},
-			{`<%(?=([\w.:]+))`, CommentPreproc, Push("ondeftags")},
-			{`(<%(?:!?))(.*?)(%>)(?s)`, ByGroups(CommentPreproc, Using("Python"), CommentPreproc), nil},
-			{`(\$\{)(.*?)(\})`, ByGroups(CommentPreproc, Using("Python"), CommentPreproc), nil},
-			{`(?sx)
-                (.+?)                # anything, followed by:
-                (?:
-                 (?<=\n)(?=%|\#\#) | # an eval or comment line
-                 (?=\#\*) |          # multiline comment
-                 (?=</?%) |          # a python block
-                                     # call start or end
-                 (?=\$\{) |          # a substitution
-                 (?<=\n)(?=\s*%) |
-                                     # - don't consume
-                 (\\\n) |            # an escaped newline
-                 \Z                  # end of string
-                )
-            `, ByGroups(Other, Operator), nil},
-			{`\s+`, Text, nil},
-		},
-		"ondeftags": {
-			{`<%`, CommentPreproc, nil},
-			{`(?<=<%)(include|inherit|namespace|page)`, NameBuiltin, nil},
-			Include("tag"),
-		},
-		"tag": {
-			{`((?:\w+)\s*=)(\s*)(".*?")`, ByGroups(NameAttribute, Text, LiteralString), nil},
-			{`/?\s*>`, CommentPreproc, Pop(1)},
-			{`\s+`, Text, nil},
-		},
-		"attr": {
-			{`".*?"`, LiteralString, Pop(1)},
-			{`'.*?'`, LiteralString, Pop(1)},
-			{`[^\s>]+`, LiteralString, Pop(1)},
-		},
-	}
-}
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/markdown.go
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/markdown.go	(revision 67)
+++ 	(revision )
@@ -1,47 +1,0 @@
-package lexers
-
-import (
-	. "github.com/alecthomas/chroma/v2" // nolint
-)
-
-// Markdown lexer.
-var Markdown = Register(DelegatingLexer(HTML, MustNewLexer(
-	&Config{
-		Name:      "markdown",
-		Aliases:   []string{"md", "mkd"},
-		Filenames: []string{"*.md", "*.mkd", "*.markdown"},
-		MimeTypes: []string{"text/x-markdown"},
-	},
-	markdownRules,
-)))
-
-func markdownRules() Rules {
-	return Rules{
-		"root": {
-			{`^(#[^#].+\n)`, ByGroups(GenericHeading), nil},
-			{`^(#{2,6}.+\n)`, ByGroups(GenericSubheading), nil},
-			{`^(\s*)([*-] )(\[[ xX]\])( .+\n)`, ByGroups(Text, Keyword, Keyword, UsingSelf("inline")), nil},
-			{`^(\s*)([*-])(\s)(.+\n)`, ByGroups(Text, Keyword, Text, UsingSelf("inline")), nil},
-			{`^(\s*)([0-9]+\.)( .+\n)`, ByGroups(Text, Keyword, UsingSelf("inline")), nil},
-			{`^(\s*>\s)(.+\n)`, ByGroups(Keyword, GenericEmph), nil},
-			{"^(```\\n)([\\w\\W]*?)(^```$)", ByGroups(String, Text, String), nil},
-			{
-				"^(```)(\\w+)(\\n)([\\w\\W]*?)(^```$)",
-				UsingByGroup(2, 4, String, String, String, Text, String),
-				nil,
-			},
-			Include("inline"),
-		},
-		"inline": {
-			{`\\.`, Text, nil},
-			{`(\s)(\*|_)((?:(?!\2).)*)(\2)((?=\W|\n))`, ByGroups(Text, GenericEmph, GenericEmph, GenericEmph, Text), nil},
-			{`(\s)((\*\*|__).*?)\3((?=\W|\n))`, ByGroups(Text, GenericStrong, GenericStrong, Text), nil},
-			{`(\s)(~~[^~]+~~)((?=\W|\n))`, ByGroups(Text, GenericDeleted, Text), nil},
-			{"`[^`]+`", LiteralStringBacktick, nil},
-			{`[@#][\w/:]+`, NameEntity, nil},
-			{`(!?\[)([^]]+)(\])(\()([^)]+)(\))`, ByGroups(Text, NameTag, Text, Text, NameAttribute, Text), nil},
-			{`[^\\\s]+`, Other, nil},
-			{`.|\n`, Other, nil},
-		},
-	}
-}
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/mason.go
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/mason.go	(revision 67)
+++ 	(revision )
@@ -1,44 +1,0 @@
-package lexers
-
-import (
-	. "github.com/alecthomas/chroma/v2" // nolint
-)
-
-// Mason lexer.
-var Mason = Register(MustNewLexer(
-	&Config{
-		Name:      "Mason",
-		Aliases:   []string{"mason"},
-		Filenames: []string{"*.m", "*.mhtml", "*.mc", "*.mi", "autohandler", "dhandler"},
-		MimeTypes: []string{"application/x-mason"},
-		Priority:  0.1,
-	},
-	masonRules,
-))
-
-func masonRules() Rules {
-	return Rules{
-		"root": {
-			{`\s+`, Text, nil},
-			{`(<%doc>)(.*?)(</%doc>)(?s)`, ByGroups(NameTag, CommentMultiline, NameTag), nil},
-			{`(<%(?:def|method))(\s*)(.*?)(>)(.*?)(</%\2\s*>)(?s)`, ByGroups(NameTag, Text, NameFunction, NameTag, UsingSelf("root"), NameTag), nil},
-			{`(<%\w+)(.*?)(>)(.*?)(</%\2\s*>)(?s)`, ByGroups(NameTag, NameFunction, NameTag, Using("Perl"), NameTag), nil},
-			{`(<&[^|])(.*?)(,.*?)?(&>)(?s)`, ByGroups(NameTag, NameFunction, Using("Perl"), NameTag), nil},
-			{`(<&\|)(.*?)(,.*?)?(&>)(?s)`, ByGroups(NameTag, NameFunction, Using("Perl"), NameTag), nil},
-			{`</&>`, NameTag, nil},
-			{`(<%!?)(.*?)(%>)(?s)`, ByGroups(NameTag, Using("Perl"), NameTag), nil},
-			{`(?<=^)#[^\n]*(\n|\Z)`, Comment, nil},
-			{`(?<=^)(%)([^\n]*)(\n|\Z)`, ByGroups(NameTag, Using("Perl"), Other), nil},
-			{`(?sx)
-                 (.+?)               # anything, followed by:
-                 (?:
-                  (?<=\n)(?=[%#]) |  # an eval or comment line
-                  (?=</?[%&]) |      # a substitution or block or
-                                     # call start or end
-                                     # - don't consume
-                  (\\\n) |           # an escaped newline
-                  \Z                 # end of string
-                 )`, ByGroups(Using("HTML"), Operator), nil},
-		},
-	}
-}
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/myghty.go
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/myghty.go	(revision 67)
+++ 	(revision )
@@ -1,42 +1,0 @@
-package lexers
-
-import (
-	. "github.com/alecthomas/chroma/v2" // nolint
-)
-
-// Myghty lexer.
-var Myghty = Register(MustNewLexer(
-	&Config{
-		Name:      "Myghty",
-		Aliases:   []string{"myghty"},
-		Filenames: []string{"*.myt", "autodelegate"},
-		MimeTypes: []string{"application/x-myghty"},
-	},
-	myghtyRules,
-))
-
-func myghtyRules() Rules {
-	return Rules{
-		"root": {
-			{`\s+`, Text, nil},
-			{`(<%(?:def|method))(\s*)(.*?)(>)(.*?)(</%\2\s*>)(?s)`, ByGroups(NameTag, Text, NameFunction, NameTag, UsingSelf("root"), NameTag), nil},
-			{`(<%\w+)(.*?)(>)(.*?)(</%\2\s*>)(?s)`, ByGroups(NameTag, NameFunction, NameTag, Using("Python2"), NameTag), nil},
-			{`(<&[^|])(.*?)(,.*?)?(&>)`, ByGroups(NameTag, NameFunction, Using("Python2"), NameTag), nil},
-			{`(<&\|)(.*?)(,.*?)?(&>)(?s)`, ByGroups(NameTag, NameFunction, Using("Python2"), NameTag), nil},
-			{`</&>`, NameTag, nil},
-			{`(<%!?)(.*?)(%>)(?s)`, ByGroups(NameTag, Using("Python2"), NameTag), nil},
-			{`(?<=^)#[^\n]*(\n|\Z)`, Comment, nil},
-			{`(?<=^)(%)([^\n]*)(\n|\Z)`, ByGroups(NameTag, Using("Python2"), Other), nil},
-			{`(?sx)
-                 (.+?)               # anything, followed by:
-                 (?:
-                  (?<=\n)(?=[%#]) |  # an eval or comment line
-                  (?=</?[%&]) |      # a substitution or block or
-                                     # call start or end
-                                     # - don't consume
-                  (\\\n) |           # an escaped newline
-                  \Z                 # end of string
-                 )`, ByGroups(Other, Operator), nil},
-		},
-	}
-}
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/mysql.go
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/mysql.go	(revision 67)
+++ 	(revision )
@@ -1,33 +1,0 @@
-package lexers
-
-import (
-	"regexp"
-)
-
-var (
-	mysqlAnalyserNameBetweenBacktickRe = regexp.MustCompile("`[a-zA-Z_]\\w*`")
-	mysqlAnalyserNameBetweenBracketRe  = regexp.MustCompile(`\[[a-zA-Z_]\w*\]`)
-)
-
-func init() { // nolint: gochecknoinits
-	Get("mysql").
-		SetAnalyser(func(text string) float32 {
-			nameBetweenBacktickCount := len(mysqlAnalyserNameBetweenBacktickRe.FindAllString(text, -1))
-			nameBetweenBracketCount := len(mysqlAnalyserNameBetweenBracketRe.FindAllString(text, -1))
-
-			var result float32
-
-			// Same logic as above in the TSQL analysis.
-			dialectNameCount := nameBetweenBacktickCount + nameBetweenBracketCount
-			if dialectNameCount >= 1 && nameBetweenBacktickCount >= (2*nameBetweenBracketCount) {
-				// Found at least twice as many `name` as [name].
-				result += 0.5
-			} else if nameBetweenBacktickCount > nameBetweenBracketCount {
-				result += 0.2
-			} else if nameBetweenBacktickCount > 0 {
-				result += 0.1
-			}
-
-			return result
-		})
-}
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/openedgeabl.go
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/openedgeabl.go	(revision 67)
+++ 	(revision )
@@ -1,49 +1,0 @@
-package lexers
-
-import (
-	. "github.com/alecthomas/chroma/v2" // nolint
-)
-
-// OpenedgeAbl lexer.
-var OpenEdgeABL = Register(MustNewLexer(
-	&Config{
-		Name:      "OpenEdge ABL",
-		Aliases:   []string{"openedge", "abl", "progress", "openedgeabl"},
-		Filenames: []string{"*.p", "*.cls", "*.w", "*.i"},
-		MimeTypes: []string{"text/x-openedge", "application/x-openedge"},
-	},
-	func() Rules {
-		return Rules{
-			"root": {
-				{`/\*`, CommentMultiline, Push("comment")},
-				{`//.*?$`, CommentSingle, nil},
-				{`\{`, CommentPreproc, Push("preprocessor")},
-				{`\s*&.*`, CommentPreproc, nil},
-				{`0[xX][0-9a-fA-F]+[LlUu]*`, LiteralNumberHex, nil},
-				{`(?i)(DEFINE|DEF|DEFI|DEFIN)\b`, KeywordDeclaration, nil},
-				{`(?i)(^|(?<=[^\w\-]))(CHARACTER|CHAR|CHARA|CHARAC|CHARACT|CHARACTE|COM-HANDLE|DATE|DATETIME|DATETIME-TZ|DECIMAL|DEC|DECI|DECIM|DECIMA|HANDLE|INT64|INTEGER|INT|INTE|INTEG|INTEGE|LOGICAL|LONGCHAR|MEMPTR|RAW|RECID|ROWID)\s*($|(?=[^\w\-]))`, KeywordType, nil},
-				{Words(`(?i)(^|(?<=[^\w\-]))`, `\s*($|(?=[^\w\-]))`, `ABS`, `ABSO`, `ABSOL`, `ABSOLU`, `ABSOLUT`, `ABSOLUTE`, `ABSTRACT`, `ACCELERATOR`, `ACCUM`, `ACCUMU`, `ACCUMUL`, `ACCUMULA`, `ACCUMULAT`, `ACCUMULATE`, `ACTIVE-FORM`, `ACTIVE-WINDOW`, `ADD`, `ADD-BUFFER`, `ADD-CALC-COLUMN`, `ADD-COLUMNS-FROM`, `ADD-EVENTS-PROCEDURE`, `ADD-FIELDS-FROM`, `ADD-FIRST`, `ADD-INDEX-FIELD`, `ADD-LAST`, `ADD-LIKE-COLUMN`, `ADD-LIKE-FIELD`, `ADD-LIKE-INDEX`, `ADD-NEW-FIELD`, `ADD-NEW-INDEX`, `ADD-SCHEMA-LOCATION`, `ADD-SUPER-PROCEDURE`, `ADM-DATA`, `ADVISE`, `ALERT-BOX`, `ALIAS`, `ALL`, `ALLOW-COLUMN-SEARCHING`, `ALLOW-REPLICATION`, `ALTER`, `ALWAYS-ON-TOP`, `AMBIG`, `AMBIGU`, `AMBIGUO`, `AMBIGUOU`, `AMBIGUOUS`, `ANALYZ`, `ANALYZE`, `AND`, `ANSI-ONLY`, `ANY`, `ANYWHERE`, `APPEND`, `APPL-ALERT`, `APPL-ALERT-`, `APPL-ALERT-B`, `APPL-ALERT-BO`, `APPL-ALERT-BOX`, `APPL-ALERT-BOXE`, `APPL-ALERT-BOXES`, `APPL-CONTEXT-ID`, `APPLICATION`, `APPLY`, `APPSERVER-INFO`, `APPSERVER-PASSWORD`, `APPSERVER-USERID`, `ARRAY-MESSAGE`, `AS`, `ASC`, `ASCE`, `ASCEN`, `ASCEND`, `ASCENDI`, `ASCENDIN`, `ASCENDING`, `ASK-OVERWRITE`, `ASSEMBLY`, `ASSIGN`, `ASYNC-REQUEST-COUNT`, `ASYNC-REQUEST-HANDLE`, `ASYNCHRONOUS`, `AT`, `ATTACHED-PAIRLIST`, `ATTR`, `ATTR-SPACE`, `ATTRI`, `ATTRIB`, `ATTRIBU`, `ATTRIBUT`, `AUDIT-CONTROL`, `AUDIT-ENABLED`, `AUDIT-EVENT-CONTEXT`, `AUDIT-POLICY`, `AUTHENTICATION-FAILED`, `AUTHORIZATION`, `AUTO-COMP`, `AUTO-COMPL`, `AUTO-COMPLE`, `AUTO-COMPLET`, `AUTO-COMPLETI`, `AUTO-COMPLETIO`, `AUTO-COMPLETION`, `AUTO-END-KEY`, `AUTO-ENDKEY`, `AUTO-GO`, `AUTO-IND`, `AUTO-INDE`, `AUTO-INDEN`, `AUTO-INDENT`, `AUTO-RESIZE`, `AUTO-RET`, `AUTO-RETU`, `AUTO-RETUR`, `AUTO-RETURN`, `AUTO-SYNCHRONIZE`, `AUTO-Z`, `AUTO-ZA`, `AUTO-ZAP`, `AUTOMATIC`, `AVAIL`, `AVAILA`, `AVAILAB`, `AVAILABL`, `AVAILABLE`, `AVAILABLE-FORMATS`, `AVE`, `AVER`, `AVERA`, `AVERAG`, `AVERAGE`, `AVG`, `BACK`, `BACKG`, `BACKGR`, `BACKGRO`, `BACKGROU`, `BACKGROUN`, `BACKGROUND`, `BACKWARD`, `BACKWARDS`, `BASE64-DECODE`, `BASE64-ENCODE`, `BASE-ADE`, `BASE-KEY`, `BATCH`, `BATCH-`, `BATCH-M`, `BATCH-MO`, `BATCH-MOD`, `BATCH-MODE`, `BATCH-SIZE`, `BEFORE-H`, `BEFORE-HI`, `BEFORE-HID`, `BEFORE-HIDE`, `BEGIN-EVENT-GROUP`, `BEGINS`, `BELL`, `BETWEEN`, `BGC`, `BGCO`, `BGCOL`, `BGCOLO`, `BGCOLOR`, `BIG-ENDIAN`, `BINARY`, `BIND`, `BIND-WHERE`, `BLANK`, `BLOCK-ITERATION-DISPLAY`, `BLOCK-LEVEL`, `BORDER-B`, `BORDER-BO`, `BORDER-BOT`, `BORDER-BOTT`, `BORDER-BOTTO`, `BORDER-BOTTOM-CHARS`, `BORDER-BOTTOM-P`, `BORDER-BOTTOM-PI`, `BORDER-BOTTOM-PIX`, `BORDER-BOTTOM-PIXE`, `BORDER-BOTTOM-PIXEL`, `BORDER-BOTTOM-PIXELS`, `BORDER-L`, `BORDER-LE`, `BORDER-LEF`, `BORDER-LEFT`, `BORDER-LEFT-`, `BORDER-LEFT-C`, `BORDER-LEFT-CH`, `BORDER-LEFT-CHA`, `BORDER-LEFT-CHAR`, `BORDER-LEFT-CHARS`, `BORDER-LEFT-P`, `BORDER-LEFT-PI`, `BORDER-LEFT-PIX`, `BORDER-LEFT-PIXE`, `BORDER-LEFT-PIXEL`, `BORDER-LEFT-PIXELS`, `BORDER-R`, `BORDER-RI`, `BORDER-RIG`, `BORDER-RIGH`, `BORDER-RIGHT`, `BORDER-RIGHT-`, `BORDER-RIGHT-C`, `BORDER-RIGHT-CH`, `BORDER-RIGHT-CHA`, `BORDER-RIGHT-CHAR`, `BORDER-RIGHT-CHARS`, `BORDER-RIGHT-P`, `BORDER-RIGHT-PI`, `BORDER-RIGHT-PIX`, `BORDER-RIGHT-PIXE`, `BORDER-RIGHT-PIXEL`, `BORDER-RIGHT-PIXELS`, `BORDER-T`, `BORDER-TO`, `BORDER-TOP`, `BORDER-TOP-`, `BORDER-TOP-C`, `BORDER-TOP-CH`, `BORDER-TOP-CHA`, `BORDER-TOP-CHAR`, `BORDER-TOP-CHARS`, `BORDER-TOP-P`, `BORDER-TOP-PI`, `BORDER-TOP-PIX`, `BORDER-TOP-PIXE`, `BORDER-TOP-PIXEL`, `BORDER-TOP-PIXELS`, `BOX`, `BOX-SELECT`, `BOX-SELECTA`, `BOX-SELECTAB`, `BOX-SELECTABL`, `BOX-SELECTABLE`, `BREAK`, `BROWSE`, `BUFFER`, `BUFFER-CHARS`, `BUFFER-COMPARE`, `BUFFER-COPY`, `BUFFER-CREATE`, `BUFFER-DELETE`, `BUFFER-FIELD`, `BUFFER-HANDLE`, `BUFFER-LINES`, `BUFFER-NAME`, `BUFFER-PARTITION-ID`, `BUFFER-RELEASE`, `BUFFER-VALUE`, `BUTTON`, `BUTTONS`, `BY`, `BY-POINTER`, `BY-VARIANT-POINTER`, `CACHE`, `CACHE-SIZE`, `CALL`, `CALL-NAME`, `CALL-TYPE`, `CAN-CREATE`, `CAN-DELETE`, `CAN-DO`, `CAN-DO-DOMAIN-SUPPORT`, `CAN-FIND`, `CAN-QUERY`, `CAN-READ`, `CAN-SET`, `CAN-WRITE`, `CANCEL-BREAK`, `CANCEL-BUTTON`, `CAPS`, `CAREFUL-PAINT`, `CASE`, `CASE-SEN`, `CASE-SENS`, `CASE-SENSI`, `CASE-SENSIT`, `CASE-SENSITI`, `CASE-SENSITIV`, `CASE-SENSITIVE`, `CAST`, `CATCH`, `CDECL`, `CENTER`, `CENTERE`, `CENTERED`, `CHAINED`, `CHARACTER`, `CHARACTER_LENGTH`, `CHARSET`, `CHECK`, `CHECKED`, `CHOOSE`, `CHR`, `CLASS`, `CLASS-TYPE`, `CLEAR`, `CLEAR-APPL-CONTEXT`, `CLEAR-LOG`, `CLEAR-SELECT`, `CLEAR-SELECTI`, `CLEAR-SELECTIO`, `CLEAR-SELECTION`, `CLEAR-SORT-ARROW`, `CLEAR-SORT-ARROWS`, `CLIENT-CONNECTION-ID`, `CLIENT-PRINCIPAL`, `CLIENT-TTY`, `CLIENT-TYPE`, `CLIENT-WORKSTATION`, `CLIPBOARD`, `CLOSE`, `CLOSE-LOG`, `CODE`, `CODEBASE-LOCATOR`, `CODEPAGE`, `CODEPAGE-CONVERT`, `COL`, `COL-OF`, `COLLATE`, `COLON`, `COLON-ALIGN`, `COLON-ALIGNE`, `COLON-ALIGNED`, `COLOR`, `COLOR-TABLE`, `COLU`, `COLUM`, `COLUMN`, `COLUMN-BGCOLOR`, `COLUMN-DCOLOR`, `COLUMN-FGCOLOR`, `COLUMN-FONT`, `COLUMN-LAB`, `COLUMN-LABE`, `COLUMN-LABEL`, `COLUMN-MOVABLE`, `COLUMN-OF`, `COLUMN-PFCOLOR`, `COLUMN-READ-ONLY`, `COLUMN-RESIZABLE`, `COLUMN-SCROLLING`, `COLUMNS`, `COM-HANDLE`, `COM-SELF`, `COMBO-BOX`, `COMMAND`, `COMPARES`, `COMPILE`, `COMPILER`, `COMPLETE`, `CONFIG-NAME`, `CONNECT`, `CONNECTED`, `CONSTRUCTOR`, `CONTAINS`, `CONTENTS`, `CONTEXT`, `CONTEXT-HELP`, `CONTEXT-HELP-FILE`, `CONTEXT-HELP-ID`, `CONTEXT-POPUP`, `CONTROL`, `CONTROL-BOX`, `CONTROL-FRAME`, `CONVERT`, `CONVERT-3D-COLORS`, `CONVERT-TO-OFFS`, `CONVERT-TO-OFFSE`, `CONVERT-TO-OFFSET`, `COPY-DATASET`, `COPY-LOB`, `COPY-SAX-ATTRIBUTES`, `COPY-TEMP-TABLE`, `COUNT`, `COUNT-OF`, `CPCASE`, `CPCOLL`, `CPINTERNAL`, `CPLOG`, `CPPRINT`, `CPRCODEIN`, `CPRCODEOUT`, `CPSTREAM`, `CPTERM`, `CRC-VALUE`, `CREATE`, `CREATE-LIKE`, `CREATE-LIKE-SEQUENTIAL`, `CREATE-NODE-NAMESPACE`, `CREATE-RESULT-LIST-ENTRY`, `CREATE-TEST-FILE`, `CURRENT`, `CURRENT-CHANGED`, `CURRENT-COLUMN`, `CURRENT-ENV`, `CURRENT-ENVI`, `CURRENT-ENVIR`, `CURRENT-ENVIRO`, `CURRENT-ENVIRON`, `CURRENT-ENVIRONM`, `CURRENT-ENVIRONME`, `CURRENT-ENVIRONMEN`, `CURRENT-ENVIRONMENT`, `CURRENT-ITERATION`, `CURRENT-LANG`, `CURRENT-LANGU`, `CURRENT-LANGUA`, `CURRENT-LANGUAG`, `CURRENT-LANGUAGE`, `CURRENT-QUERY`, `CURRENT-REQUEST-INFO`, `CURRENT-RESPONSE-INFO`, `CURRENT-RESULT-ROW`, `CURRENT-ROW-MODIFIED`, `CURRENT-VALUE`, `CURRENT-WINDOW`, `CURRENT_DATE`, `CURS`, `CURSO`, `CURSOR`, `CURSOR-CHAR`, `CURSOR-LINE`, `CURSOR-OFFSET`, `DATA-BIND`, `DATA-ENTRY-RET`, `DATA-ENTRY-RETU`, `DATA-ENTRY-RETUR`, `DATA-ENTRY-RETURN`, `DATA-REL`, `DATA-RELA`, `DATA-RELAT`, `DATA-RELATI`, `DATA-RELATIO`, `DATA-RELATION`, `DATA-SOURCE`, `DATA-SOURCE-COMPLETE-MAP`, `DATA-SOURCE-MODIFIED`, `DATA-SOURCE-ROWID`, `DATA-T`, `DATA-TY`, `DATA-TYP`, `DATA-TYPE`, `DATABASE`, `DATASERVERS`, `DATASET`, `DATASET-HANDLE`, `DATE`, `DATE-F`, `DATE-FO`, `DATE-FOR`, `DATE-FORM`, `DATE-FORMA`, `DATE-FORMAT`, `DAY`, `DB-CONTEXT`, `DB-REFERENCES`, `DBCODEPAGE`, `DBCOLLATION`, `DBNAME`, `DBPARAM`, `DBREST`, `DBRESTR`, `DBRESTRI`, `DBRESTRIC`, `DBRESTRICT`, `DBRESTRICTI`, `DBRESTRICTIO`, `DBRESTRICTION`, `DBRESTRICTIONS`, `DBTASKID`, `DBTYPE`, `DBVERS`, `DBVERSI`, `DBVERSIO`, `DBVERSION`, `DCOLOR`, `DDE`, `DDE-ERROR`, `DDE-I`, `DDE-ID`, `DDE-ITEM`, `DDE-NAME`, `DDE-TOPIC`, `DEBLANK`, `DEBU`, `DEBUG`, `DEBUG-ALERT`, `DEBUG-LIST`, `DEBUGGER`, `DECIMAL`, `DECIMALS`, `DECLARE`, `DECLARE-NAMESPACE`, `DECRYPT`, `DEFAULT`, `DEFAULT-B`, `DEFAULT-BU`, `DEFAULT-BUFFER-HANDLE`, `DEFAULT-BUT`, `DEFAULT-BUTT`, `DEFAULT-BUTTO`, `DEFAULT-BUTTON`, `DEFAULT-COMMIT`, `DEFAULT-EX`, `DEFAULT-EXT`, `DEFAULT-EXTE`, `DEFAULT-EXTEN`, `DEFAULT-EXTENS`, `DEFAULT-EXTENSI`, `DEFAULT-EXTENSIO`, `DEFAULT-EXTENSION`, `DEFAULT-NOXL`, `DEFAULT-NOXLA`, `DEFAULT-NOXLAT`, `DEFAULT-NOXLATE`, `DEFAULT-VALUE`, `DEFAULT-WINDOW`, `DEFINE`, `DEFINE-USER-EVENT-MANAGER`, `DEFINED`, `DEL`, `DELE`, `DELEGATE`, `DELET`, `DELETE PROCEDURE`, `DELETE`, `DELETE-CHAR`, `DELETE-CHARA`, `DELETE-CHARAC`, `DELETE-CHARACT`, `DELETE-CHARACTE`, `DELETE-CHARACTER`, `DELETE-CURRENT-ROW`, `DELETE-LINE`, `DELETE-RESULT-LIST-ENTRY`, `DELETE-SELECTED-ROW`, `DELETE-SELECTED-ROWS`, `DELIMITER`, `DESC`, `DESCE`, `DESCEN`, `DESCEND`, `DESCENDI`, `DESCENDIN`, `DESCENDING`, `DESELECT-FOCUSED-ROW`, `DESELECT-ROWS`, `DESELECT-SELECTED-ROW`, `DESELECTION`, `DESTRUCTOR`, `DIALOG-BOX`, `DICT`, `DICTI`, `DICTIO`, `DICTION`, `DICTIONA`, `DICTIONAR`, `DICTIONARY`, `DIR`, `DISABLE`, `DISABLE-AUTO-ZAP`, `DISABLE-DUMP-TRIGGERS`, `DISABLE-LOAD-TRIGGERS`, `DISABLED`, `DISCON`, `DISCONN`, `DISCONNE`, `DISCONNEC`, `DISCONNECT`, `DISP`, `DISPL`, `DISPLA`, `DISPLAY`, `DISPLAY-MESSAGE`, `DISPLAY-T`, `DISPLAY-TY`, `DISPLAY-TYP`, `DISPLAY-TYPE`, `DISTINCT`, `DO`, `DOMAIN-DESCRIPTION`, `DOMAIN-NAME`, `DOMAIN-TYPE`, `DOS`, `DOUBLE`, `DOWN`, `DRAG-ENABLED`, `DROP`, `DROP-DOWN`, `DROP-DOWN-LIST`, `DROP-FILE-NOTIFY`, `DROP-TARGET`, `DS-CLOSE-CURSOR`, `DSLOG-MANAGER`, `DUMP`, `DYNAMIC`, `DYNAMIC-ENUM`, `DYNAMIC-FUNCTION`, `DYNAMIC-INVOKE`, `EACH`, `ECHO`, `EDGE`, `EDGE-`, `EDGE-C`, `EDGE-CH`, `EDGE-CHA`, `EDGE-CHAR`, `EDGE-CHARS`, `EDGE-P`, `EDGE-PI`, `EDGE-PIX`, `EDGE-PIXE`, `EDGE-PIXEL`, `EDGE-PIXELS`, `EDIT-CAN-PASTE`, `EDIT-CAN-UNDO`, `EDIT-CLEAR`, `EDIT-COPY`, `EDIT-CUT`, `EDIT-PASTE`, `EDIT-UNDO`, `EDITING`, `EDITOR`, `ELSE`, `EMPTY`, `EMPTY-TEMP-TABLE`, `ENABLE`, `ENABLED-FIELDS`, `ENCODE`, `ENCRYPT`, `ENCRYPT-AUDIT-MAC-KEY`, `ENCRYPTION-SALT`, `END`, `END-DOCUMENT`, `END-ELEMENT`, `END-EVENT-GROUP`, `END-FILE-DROP`, `END-KEY`, `END-MOVE`, `END-RESIZE`, `END-ROW-RESIZE`, `END-USER-PROMPT`, `ENDKEY`, `ENTERED`, `ENTITY-EXPANSION-LIMIT`, `ENTRY`, `ENUM`, `EQ`, `ERROR`, `ERROR-COL`, `ERROR-COLU`, `ERROR-COLUM`, `ERROR-COLUMN`, `ERROR-ROW`, `ERROR-STACK-TRACE`, `ERROR-STAT`, `ERROR-STATU`, `ERROR-STATUS`, `ESCAPE`, `ETIME`, `EVENT`, `EVENT-GROUP-ID`, `EVENT-PROCEDURE`, `EVENT-PROCEDURE-CONTEXT`, `EVENT-T`, `EVENT-TY`, `EVENT-TYP`, `EVENT-TYPE`, `EVENTS`, `EXCEPT`, `EXCLUSIVE`, `EXCLUSIVE-`, `EXCLUSIVE-ID`, `EXCLUSIVE-L`, `EXCLUSIVE-LO`, `EXCLUSIVE-LOC`, `EXCLUSIVE-LOCK`, `EXCLUSIVE-WEB-USER`, `EXECUTE`, `EXISTS`, `EXP`, `EXPAND`, `EXPANDABLE`, `EXPLICIT`, `EXPORT`, `EXPORT-PRINCIPAL`, `EXTENDED`, `EXTENT`, `EXTERNAL`, `FALSE`, `FETCH`, `FETCH-SELECTED-ROW`, `FGC`, `FGCO`, `FGCOL`, `FGCOLO`, `FGCOLOR`, `FIELD`, `FIELDS`, `FILE`, `FILE-CREATE-DATE`, `FILE-CREATE-TIME`, `FILE-INFO`, `FILE-INFOR`, `FILE-INFORM`, `FILE-INFORMA`, `FILE-INFORMAT`, `FILE-INFORMATI`, `FILE-INFORMATIO`, `FILE-INFORMATION`, `FILE-MOD-DATE`, `FILE-MOD-TIME`, `FILE-NAME`, `FILE-OFF`, `FILE-OFFS`, `FILE-OFFSE`, `FILE-OFFSET`, `FILE-SIZE`, `FILE-TYPE`, `FILENAME`, `FILL`, `FILL-IN`, `FILLED`, `FILTERS`, `FINAL`, `FINALLY`, `FIND`, `FIND-BY-ROWID`, `FIND-CASE-SENSITIVE`, `FIND-CURRENT`, `FIND-FIRST`, `FIND-GLOBAL`, `FIND-LAST`, `FIND-NEXT-OCCURRENCE`, `FIND-PREV-OCCURRENCE`, `FIND-SELECT`, `FIND-UNIQUE`, `FIND-WRAP-AROUND`, `FINDER`, `FIRST`, `FIRST-ASYNCH-REQUEST`, `FIRST-CHILD`, `FIRST-COLUMN`, `FIRST-FORM`, `FIRST-OBJECT`, `FIRST-OF`, `FIRST-PROC`, `FIRST-PROCE`, `FIRST-PROCED`, `FIRST-PROCEDU`, `FIRST-PROCEDUR`, `FIRST-PROCEDURE`, `FIRST-SERVER`, `FIRST-TAB-I`, `FIRST-TAB-IT`, `FIRST-TAB-ITE`, `FIRST-TAB-ITEM`, `FIT-LAST-COLUMN`, `FIXED-ONLY`, `FLAT-BUTTON`, `FLOAT`, `FOCUS`, `FOCUSED-ROW`, `FOCUSED-ROW-SELECTED`, `FONT`, `FONT-TABLE`, `FOR`, `FORCE-FILE`, `FORE`, `FOREG`, `FOREGR`, `FOREGRO`, `FOREGROU`, `FOREGROUN`, `FOREGROUND`, `FORM INPUT`, `FORM`, `FORM-LONG-INPUT`, `FORMA`, `FORMAT`, `FORMATTE`, `FORMATTED`, `FORWARD`, `FORWARDS`, `FRAGMEN`, `FRAGMENT`, `FRAM`, `FRAME`, `FRAME-COL`, `FRAME-DB`, `FRAME-DOWN`, `FRAME-FIELD`, `FRAME-FILE`, `FRAME-INDE`, `FRAME-INDEX`, `FRAME-LINE`, `FRAME-NAME`, `FRAME-ROW`, `FRAME-SPA`, `FRAME-SPAC`, `FRAME-SPACI`, `FRAME-SPACIN`, `FRAME-SPACING`, `FRAME-VAL`, `FRAME-VALU`, `FRAME-VALUE`, `FRAME-X`, `FRAME-Y`, `FREQUENCY`, `FROM`, `FROM-C`, `FROM-CH`, `FROM-CHA`, `FROM-CHAR`, `FROM-CHARS`, `FROM-CUR`, `FROM-CURR`, `FROM-CURRE`, `FROM-CURREN`, `FROM-CURRENT`, `FROM-P`, `FROM-PI`, `FROM-PIX`, `FROM-PIXE`, `FROM-PIXEL`, `FROM-PIXELS`, `FULL-HEIGHT`, `FULL-HEIGHT-`, `FULL-HEIGHT-C`, `FULL-HEIGHT-CH`, `FULL-HEIGHT-CHA`, `FULL-HEIGHT-CHAR`, `FULL-HEIGHT-CHARS`, `FULL-HEIGHT-P`, `FULL-HEIGHT-PI`, `FULL-HEIGHT-PIX`, `FULL-HEIGHT-PIXE`, `FULL-HEIGHT-PIXEL`, `FULL-HEIGHT-PIXELS`, `FULL-PATHN`, `FULL-PATHNA`, `FULL-PATHNAM`, `FULL-PATHNAME`, `FULL-WIDTH`, `FULL-WIDTH-`, `FULL-WIDTH-C`, `FULL-WIDTH-CH`, `FULL-WIDTH-CHA`, `FULL-WIDTH-CHAR`, `FULL-WIDTH-CHARS`, `FULL-WIDTH-P`, `FULL-WIDTH-PI`, `FULL-WIDTH-PIX`, `FULL-WIDTH-PIXE`, `FULL-WIDTH-PIXEL`, `FULL-WIDTH-PIXELS`, `FUNCTION`, `FUNCTION-CALL-TYPE`, `GATEWAY`, `GATEWAYS`, `GE`, `GENERATE-MD5`, `GENERATE-PBE-KEY`, `GENERATE-PBE-SALT`, `GENERATE-RANDOM-KEY`, `GENERATE-UUID`, `GET`, `GET-ATTR-CALL-TYPE`, `GET-ATTRIBUTE-NODE`, `GET-BINARY-DATA`, `GET-BLUE`, `GET-BLUE-`, `GET-BLUE-V`, `GET-BLUE-VA`, `GET-BLUE-VAL`, `GET-BLUE-VALU`, `GET-BLUE-VALUE`, `GET-BROWSE-COLUMN`, `GET-BUFFER-HANDLE`, `GET-BYTE`, `GET-CALLBACK-PROC-CONTEXT`, `GET-CALLBACK-PROC-NAME`, `GET-CGI-LIST`, `GET-CGI-LONG-VALUE`, `GET-CGI-VALUE`, `GET-CLASS`, `GET-CODEPAGES`, `GET-COLLATIONS`, `GET-CONFIG-VALUE`, `GET-CURRENT`, `GET-DOUBLE`, `GET-DROPPED-FILE`, `GET-DYNAMIC`, `GET-ERROR-COLUMN`, `GET-ERROR-ROW`, `GET-FILE`, `GET-FILE-NAME`, `GET-FILE-OFFSE`, `GET-FILE-OFFSET`, `GET-FIRST`, `GET-FLOAT`, `GET-GREEN`, `GET-GREEN-`, `GET-GREEN-V`, `GET-GREEN-VA`, `GET-GREEN-VAL`, `GET-GREEN-VALU`, `GET-GREEN-VALUE`, `GET-INDEX-BY-NAMESPACE-NAME`, `GET-INDEX-BY-QNAME`, `GET-INT64`, `GET-ITERATION`, `GET-KEY-VAL`, `GET-KEY-VALU`, `GET-KEY-VALUE`, `GET-LAST`, `GET-LOCALNAME-BY-INDEX`, `GET-LONG`, `GET-MESSAGE`, `GET-NEXT`, `GET-NUMBER`, `GET-POINTER-VALUE`, `GET-PREV`, `GET-PRINTERS`, `GET-PROPERTY`, `GET-QNAME-BY-INDEX`, `GET-RED`, `GET-RED-`, `GET-RED-V`, `GET-RED-VA`, `GET-RED-VAL`, `GET-RED-VALU`, `GET-RED-VALUE`, `GET-REPOSITIONED-ROW`, `GET-RGB-VALUE`, `GET-SELECTED`, `GET-SELECTED-`, `GET-SELECTED-W`, `GET-SELECTED-WI`, `GET-SELECTED-WID`, `GET-SELECTED-WIDG`, `GET-SELECTED-WIDGE`, `GET-SELECTED-WIDGET`, `GET-SHORT`, `GET-SIGNATURE`, `GET-SIZE`, `GET-STRING`, `GET-TAB-ITEM`, `GET-TEXT-HEIGHT`, `GET-TEXT-HEIGHT-`, `GET-TEXT-HEIGHT-C`, `GET-TEXT-HEIGHT-CH`, `GET-TEXT-HEIGHT-CHA`, `GET-TEXT-HEIGHT-CHAR`, `GET-TEXT-HEIGHT-CHARS`, `GET-TEXT-HEIGHT-P`, `GET-TEXT-HEIGHT-PI`, `GET-TEXT-HEIGHT-PIX`, `GET-TEXT-HEIGHT-PIXE`, `GET-TEXT-HEIGHT-PIXEL`, `GET-TEXT-HEIGHT-PIXELS`, `GET-TEXT-WIDTH`, `GET-TEXT-WIDTH-`, `GET-TEXT-WIDTH-C`, `GET-TEXT-WIDTH-CH`, `GET-TEXT-WIDTH-CHA`, `GET-TEXT-WIDTH-CHAR`, `GET-TEXT-WIDTH-CHARS`, `GET-TEXT-WIDTH-P`, `GET-TEXT-WIDTH-PI`, `GET-TEXT-WIDTH-PIX`, `GET-TEXT-WIDTH-PIXE`, `GET-TEXT-WIDTH-PIXEL`, `GET-TEXT-WIDTH-PIXELS`, `GET-TYPE-BY-INDEX`, `GET-TYPE-BY-NAMESPACE-NAME`, `GET-TYPE-BY-QNAME`, `GET-UNSIGNED-LONG`, `GET-UNSIGNED-SHORT`, `GET-URI-BY-INDEX`, `GET-VALUE-BY-INDEX`, `GET-VALUE-BY-NAMESPACE-NAME`, `GET-VALUE-BY-QNAME`, `GET-WAIT-STATE`, `GETBYTE`, `GLOBAL`, `GO-ON`, `GO-PEND`, `GO-PENDI`, `GO-PENDIN`, `GO-PENDING`, `GRANT`, `GRAPHIC-E`, `GRAPHIC-ED`, `GRAPHIC-EDG`, `GRAPHIC-EDGE`, `GRID-FACTOR-H`, `GRID-FACTOR-HO`, `GRID-FACTOR-HOR`, `GRID-FACTOR-HORI`, `GRID-FACTOR-HORIZ`, `GRID-FACTOR-HORIZO`, `GRID-FACTOR-HORIZON`, `GRID-FACTOR-HORIZONT`, `GRID-FACTOR-HORIZONTA`, `GRID-FACTOR-HORIZONTAL`, `GRID-FACTOR-V`, `GRID-FACTOR-VE`, `GRID-FACTOR-VER`, `GRID-FACTOR-VERT`, `GRID-FACTOR-VERTI`, `GRID-FACTOR-VERTIC`, `GRID-FACTOR-VERTICA`, `GRID-FACTOR-VERTICAL`, `GRID-SNAP`, `GRID-UNIT-HEIGHT`, `GRID-UNIT-HEIGHT-`, `GRID-UNIT-HEIGHT-C`, `GRID-UNIT-HEIGHT-CH`, `GRID-UNIT-HEIGHT-CHA`, `GRID-UNIT-HEIGHT-CHARS`, `GRID-UNIT-HEIGHT-P`, `GRID-UNIT-HEIGHT-PI`, `GRID-UNIT-HEIGHT-PIX`, `GRID-UNIT-HEIGHT-PIXE`, `GRID-UNIT-HEIGHT-PIXEL`, `GRID-UNIT-HEIGHT-PIXELS`, `GRID-UNIT-WIDTH`, `GRID-UNIT-WIDTH-`, `GRID-UNIT-WIDTH-C`, `GRID-UNIT-WIDTH-CH`, `GRID-UNIT-WIDTH-CHA`, `GRID-UNIT-WIDTH-CHAR`, `GRID-UNIT-WIDTH-CHARS`, `GRID-UNIT-WIDTH-P`, `GRID-UNIT-WIDTH-PI`, `GRID-UNIT-WIDTH-PIX`, `GRID-UNIT-WIDTH-PIXE`, `GRID-UNIT-WIDTH-PIXEL`, `GRID-UNIT-WIDTH-PIXELS`, `GRID-VISIBLE`, `GROUP`, `GT`, `GUID`, `HANDLE`, `HANDLER`, `HAS-RECORDS`, `HAVING`, `HEADER`, `HEIGHT`, `HEIGHT-`, `HEIGHT-C`, `HEIGHT-CH`, `HEIGHT-CHA`, `HEIGHT-CHAR`, `HEIGHT-CHARS`, `HEIGHT-P`, `HEIGHT-PI`, `HEIGHT-PIX`, `HEIGHT-PIXE`, `HEIGHT-PIXEL`, `HEIGHT-PIXELS`, `HELP`, `HEX-DECODE`, `HEX-ENCODE`, `HIDDEN`, `HIDE`, `HORI`, `HORIZ`, `HORIZO`, `HORIZON`, `HORIZONT`, `HORIZONTA`, `HORIZONTAL`, `HOST-BYTE-ORDER`, `HTML-CHARSET`, `HTML-END-OF-LINE`, `HTML-END-OF-PAGE`, `HTML-FRAME-BEGIN`, `HTML-FRAME-END`, `HTML-HEADER-BEGIN`, `HTML-HEADER-END`, `HTML-TITLE-BEGIN`, `HTML-TITLE-END`, `HWND`, `ICON`, `IF`, `IMAGE`, `IMAGE-DOWN`, `IMAGE-INSENSITIVE`, `IMAGE-SIZE`, `IMAGE-SIZE-C`, `IMAGE-SIZE-CH`, `IMAGE-SIZE-CHA`, `IMAGE-SIZE-CHAR`, `IMAGE-SIZE-CHARS`, `IMAGE-SIZE-P`, `IMAGE-SIZE-PI`, `IMAGE-SIZE-PIX`, `IMAGE-SIZE-PIXE`, `IMAGE-SIZE-PIXEL`, `IMAGE-SIZE-PIXELS`, `IMAGE-UP`, `IMMEDIATE-DISPLAY`, `IMPLEMENTS`, `IMPORT`, `IMPORT-PRINCIPAL`, `IN`, `IN-HANDLE`, `INCREMENT-EXCLUSIVE-ID`, `INDEX`, `INDEX-HINT`, `INDEX-INFORMATION`, `INDEXED-REPOSITION`, `INDICATOR`, `INFO`, `INFOR`, `INFORM`, `INFORMA`, `INFORMAT`, `INFORMATI`, `INFORMATIO`, `INFORMATION`, `INHERIT-BGC`, `INHERIT-BGCO`, `INHERIT-BGCOL`, `INHERIT-BGCOLO`, `INHERIT-BGCOLOR`, `INHERIT-FGC`, `INHERIT-FGCO`, `INHERIT-FGCOL`, `INHERIT-FGCOLO`, `INHERIT-FGCOLOR`, `INHERITS`, `INIT`, `INITI`, `INITIA`, `INITIAL`, `INITIAL-DIR`, `INITIAL-FILTER`, `INITIALIZE-DOCUMENT-TYPE`, `INITIATE`, `INNER-CHARS`, `INNER-LINES`, `INPUT`, `INPUT-O`, `INPUT-OU`, `INPUT-OUT`, `INPUT-OUTP`, `INPUT-OUTPU`, `INPUT-OUTPUT`, `INPUT-VALUE`, `INSERT`, `INSERT-ATTRIBUTE`, `INSERT-B`, `INSERT-BA`, `INSERT-BAC`, `INSERT-BACK`, `INSERT-BACKT`, `INSERT-BACKTA`, `INSERT-BACKTAB`, `INSERT-FILE`, `INSERT-ROW`, `INSERT-STRING`, `INSERT-T`, `INSERT-TA`, `INSERT-TAB`, `INT64`, `INT`, `INTEGER`, `INTERFACE`, `INTERNAL-ENTRIES`, `INTO`, `INVOKE`, `IS`, `IS-ATTR`, `IS-ATTR-`, `IS-ATTR-S`, `IS-ATTR-SP`, `IS-ATTR-SPA`, `IS-ATTR-SPAC`, `IS-ATTR-SPACE`, `IS-CLASS`, `IS-JSON`, `IS-LEAD-BYTE`, `IS-OPEN`, `IS-PARAMETER-SET`, `IS-PARTITIONED`, `IS-ROW-SELECTED`, `IS-SELECTED`, `IS-XML`, `ITEM`, `ITEMS-PER-ROW`, `JOIN`, `JOIN-BY-SQLDB`, `KBLABEL`, `KEEP-CONNECTION-OPEN`, `KEEP-FRAME-Z`, `KEEP-FRAME-Z-`, `KEEP-FRAME-Z-O`, `KEEP-FRAME-Z-OR`, `KEEP-FRAME-Z-ORD`, `KEEP-FRAME-Z-ORDE`, `KEEP-FRAME-Z-ORDER`, `KEEP-MESSAGES`, `KEEP-SECURITY-CACHE`, `KEEP-TAB-ORDER`, `KEY`, `KEY-CODE`, `KEY-FUNC`, `KEY-FUNCT`, `KEY-FUNCTI`, `KEY-FUNCTIO`, `KEY-FUNCTION`, `KEY-LABEL`, `KEYCODE`, `KEYFUNC`, `KEYFUNCT`, `KEYFUNCTI`, `KEYFUNCTIO`, `KEYFUNCTION`, `KEYLABEL`, `KEYS`, `KEYWORD`, `KEYWORD-ALL`, `LABEL`, `LABEL-BGC`, `LABEL-BGCO`, `LABEL-BGCOL`, `LABEL-BGCOLO`, `LABEL-BGCOLOR`, `LABEL-DC`, `LABEL-DCO`, `LABEL-DCOL`, `LABEL-DCOLO`, `LABEL-DCOLOR`, `LABEL-FGC`, `LABEL-FGCO`, `LABEL-FGCOL`, `LABEL-FGCOLO`, `LABEL-FGCOLOR`, `LABEL-FONT`, `LABEL-PFC`, `LABEL-PFCO`, `LABEL-PFCOL`, `LABEL-PFCOLO`, `LABEL-PFCOLOR`, `LABELS`, `LABELS-HAVE-COLONS`, `LANDSCAPE`, `LANGUAGE`, `LANGUAGES`, `LARGE`, `LARGE-TO-SMALL`, `LAST`, `LAST-ASYNCH-REQUEST`, `LAST-BATCH`, `LAST-CHILD`, `LAST-EVEN`, `LAST-EVENT`, `LAST-FORM`, `LAST-KEY`, `LAST-OBJECT`, `LAST-OF`, `LAST-PROCE`, `LAST-PROCED`, `LAST-PROCEDU`, `LAST-PROCEDUR`, `LAST-PROCEDURE`, `LAST-SERVER`, `LAST-TAB-I`, `LAST-TAB-IT`, `LAST-TAB-ITE`, `LAST-TAB-ITEM`, `LASTKEY`, `LC`, `LDBNAME`, `LE`, `LEAVE`, `LEFT-ALIGN`, `LEFT-ALIGNE`, `LEFT-ALIGNED`, `LEFT-TRIM`, `LENGTH`, `LIBRARY`, `LIKE`, `LIKE-SEQUENTIAL`, `LINE`, `LINE-COUNT`, `LINE-COUNTE`, `LINE-COUNTER`, `LIST-EVENTS`, `LIST-ITEM-PAIRS`, `LIST-ITEMS`, `LIST-PROPERTY-NAMES`, `LIST-QUERY-ATTRS`, `LIST-SET-ATTRS`, `LIST-WIDGETS`, `LISTI`, `LISTIN`, `LISTING`, `LITERAL-QUESTION`, `LITTLE-ENDIAN`, `LOAD`, `LOAD-DOMAINS`, `LOAD-ICON`, `LOAD-IMAGE`, `LOAD-IMAGE-DOWN`, `LOAD-IMAGE-INSENSITIVE`, `LOAD-IMAGE-UP`, `LOAD-MOUSE-P`, `LOAD-MOUSE-PO`, `LOAD-MOUSE-POI`, `LOAD-MOUSE-POIN`, `LOAD-MOUSE-POINT`, `LOAD-MOUSE-POINTE`, `LOAD-MOUSE-POINTER`, `LOAD-PICTURE`, `LOAD-SMALL-ICON`, `LOCAL-NAME`, `LOCAL-VERSION-INFO`, `LOCATOR-COLUMN-NUMBER`, `LOCATOR-LINE-NUMBER`, `LOCATOR-PUBLIC-ID`, `LOCATOR-SYSTEM-ID`, `LOCATOR-TYPE`, `LOCK-REGISTRATION`, `LOCKED`, `LOG`, `LOG-AUDIT-EVENT`, `LOG-MANAGER`, `LOGICAL`, `LOGIN-EXPIRATION-TIMESTAMP`, `LOGIN-HOST`, `LOGIN-STATE`, `LOGOUT`, `LONGCHAR`, `LOOKAHEAD`, `LOOKUP`, `LT`, `MACHINE-CLASS`, `MANDATORY`, `MANUAL-HIGHLIGHT`, `MAP`, `MARGIN-EXTRA`, `MARGIN-HEIGHT`, `MARGIN-HEIGHT-`, `MARGIN-HEIGHT-C`, `MARGIN-HEIGHT-CH`, `MARGIN-HEIGHT-CHA`, `MARGIN-HEIGHT-CHAR`, `MARGIN-HEIGHT-CHARS`, `MARGIN-HEIGHT-P`, `MARGIN-HEIGHT-PI`, `MARGIN-HEIGHT-PIX`, `MARGIN-HEIGHT-PIXE`, `MARGIN-HEIGHT-PIXEL`, `MARGIN-HEIGHT-PIXELS`, `MARGIN-WIDTH`, `MARGIN-WIDTH-`, `MARGIN-WIDTH-C`, `MARGIN-WIDTH-CH`, `MARGIN-WIDTH-CHA`, `MARGIN-WIDTH-CHAR`, `MARGIN-WIDTH-CHARS`, `MARGIN-WIDTH-P`, `MARGIN-WIDTH-PI`, `MARGIN-WIDTH-PIX`, `MARGIN-WIDTH-PIXE`, `MARGIN-WIDTH-PIXEL`, `MARGIN-WIDTH-PIXELS`, `MARK-NEW`, `MARK-ROW-STATE`, `MATCHES`, `MAX`, `MAX-BUTTON`, `MAX-CHARS`, `MAX-DATA-GUESS`, `MAX-HEIGHT`, `MAX-HEIGHT-C`, `MAX-HEIGHT-CH`, `MAX-HEIGHT-CHA`, `MAX-HEIGHT-CHAR`, `MAX-HEIGHT-CHARS`, `MAX-HEIGHT-P`, `MAX-HEIGHT-PI`, `MAX-HEIGHT-PIX`, `MAX-HEIGHT-PIXE`, `MAX-HEIGHT-PIXEL`, `MAX-HEIGHT-PIXELS`, `MAX-ROWS`, `MAX-SIZE`, `MAX-VAL`, `MAX-VALU`, `MAX-VALUE`, `MAX-WIDTH`, `MAX-WIDTH-`, `MAX-WIDTH-C`, `MAX-WIDTH-CH`, `MAX-WIDTH-CHA`, `MAX-WIDTH-CHAR`, `MAX-WIDTH-CHARS`, `MAX-WIDTH-P`, `MAX-WIDTH-PI`, `MAX-WIDTH-PIX`, `MAX-WIDTH-PIXE`, `MAX-WIDTH-PIXEL`, `MAX-WIDTH-PIXELS`, `MAXI`, `MAXIM`, `MAXIMIZE`, `MAXIMU`, `MAXIMUM`, `MAXIMUM-LEVEL`, `MD5-DIGEST`, `MEMBER`, `MEMPTR-TO-NODE-VALUE`, `MENU`, `MENU-BAR`, `MENU-ITEM`, `MENU-K`, `MENU-KE`, `MENU-KEY`, `MENU-M`, `MENU-MO`, `MENU-MOU`, `MENU-MOUS`, `MENU-MOUSE`, `MENUBAR`, `MERGE-BY-FIELD`, `MESSAGE`, `MESSAGE-AREA`, `MESSAGE-AREA-FONT`, `MESSAGE-LINES`, `METHOD`, `MIN`, `MIN-BUTTON`, `MIN-COLUMN-WIDTH-C`, `MIN-COLUMN-WIDTH-CH`, `MIN-COLUMN-WIDTH-CHA`, `MIN-COLUMN-WIDTH-CHAR`, `MIN-COLUMN-WIDTH-CHARS`, `MIN-COLUMN-WIDTH-P`, `MIN-COLUMN-WIDTH-PI`, `MIN-COLUMN-WIDTH-PIX`, `MIN-COLUMN-WIDTH-PIXE`, `MIN-COLUMN-WIDTH-PIXEL`, `MIN-COLUMN-WIDTH-PIXELS`, `MIN-HEIGHT`, `MIN-HEIGHT-`, `MIN-HEIGHT-C`, `MIN-HEIGHT-CH`, `MIN-HEIGHT-CHA`, `MIN-HEIGHT-CHAR`, `MIN-HEIGHT-CHARS`, `MIN-HEIGHT-P`, `MIN-HEIGHT-PI`, `MIN-HEIGHT-PIX`, `MIN-HEIGHT-PIXE`, `MIN-HEIGHT-PIXEL`, `MIN-HEIGHT-PIXELS`, `MIN-SIZE`, `MIN-VAL`, `MIN-VALU`, `MIN-VALUE`, `MIN-WIDTH`, `MIN-WIDTH-`, `MIN-WIDTH-C`, `MIN-WIDTH-CH`, `MIN-WIDTH-CHA`, `MIN-WIDTH-CHAR`, `MIN-WIDTH-CHARS`, `MIN-WIDTH-P`, `MIN-WIDTH-PI`, `MIN-WIDTH-PIX`, `MIN-WIDTH-PIXE`, `MIN-WIDTH-PIXEL`, `MIN-WIDTH-PIXELS`, `MINI`, `MINIM`, `MINIMU`, `MINIMUM`, `MOD`, `MODIFIED`, `MODU`, `MODUL`, `MODULO`, `MONTH`, `MOUSE`, `MOUSE-P`, `MOUSE-PO`, `MOUSE-POI`, `MOUSE-POIN`, `MOUSE-POINT`, `MOUSE-POINTE`, `MOUSE-POINTER`, `MOVABLE`, `MOVE-AFTER`, `MOVE-AFTER-`, `MOVE-AFTER-T`, `MOVE-AFTER-TA`, `MOVE-AFTER-TAB`, `MOVE-AFTER-TAB-`, `MOVE-AFTER-TAB-I`, `MOVE-AFTER-TAB-IT`, `MOVE-AFTER-TAB-ITE`, `MOVE-AFTER-TAB-ITEM`, `MOVE-BEFOR`, `MOVE-BEFORE`, `MOVE-BEFORE-`, `MOVE-BEFORE-T`, `MOVE-BEFORE-TA`, `MOVE-BEFORE-TAB`, `MOVE-BEFORE-TAB-`, `MOVE-BEFORE-TAB-I`, `MOVE-BEFORE-TAB-IT`, `MOVE-BEFORE-TAB-ITE`, `MOVE-BEFORE-TAB-ITEM`, `MOVE-COL`, `MOVE-COLU`, `MOVE-COLUM`, `MOVE-COLUMN`, `MOVE-TO-B`, `MOVE-TO-BO`, `MOVE-TO-BOT`, `MOVE-TO-BOTT`, `MOVE-TO-BOTTO`, `MOVE-TO-BOTTOM`, `MOVE-TO-EOF`, `MOVE-TO-T`, `MOVE-TO-TO`, `MOVE-TO-TOP`, `MPE`, `MTIME`, `MULTI-COMPILE`, `MULTIPLE`, `MULTIPLE-KEY`, `MULTITASKING-INTERVAL`, `MUST-EXIST`, `NAME`, `NAMESPACE-PREFIX`, `NAMESPACE-URI`, `NATIVE`, `NE`, `NEEDS-APPSERVER-PROMPT`, `NEEDS-PROMPT`, `NEW`, `NEW-INSTANCE`, `NEW-ROW`, `NEXT`, `NEXT-COLUMN`, `NEXT-PROMPT`, `NEXT-ROWID`, `NEXT-SIBLING`, `NEXT-TAB-I`, `NEXT-TAB-IT`, `NEXT-TAB-ITE`, `NEXT-TAB-ITEM`, `NEXT-VALUE`, `NO`, `NO-APPLY`, `NO-ARRAY-MESSAGE`, `NO-ASSIGN`, `NO-ATTR`, `NO-ATTR-`, `NO-ATTR-L`, `NO-ATTR-LI`, `NO-ATTR-LIS`, `NO-ATTR-LIST`, `NO-ATTR-S`, `NO-ATTR-SP`, `NO-ATTR-SPA`, `NO-ATTR-SPAC`, `NO-ATTR-SPACE`, `NO-AUTO-VALIDATE`, `NO-BIND-WHERE`, `NO-BOX`, `NO-CONSOLE`, `NO-CONVERT`, `NO-CONVERT-3D-COLORS`, `NO-CURRENT-VALUE`, `NO-DEBUG`, `NO-DRAG`, `NO-ECHO`, `NO-EMPTY-SPACE`, `NO-ERROR`, `NO-F`, `NO-FI`, `NO-FIL`, `NO-FILL`, `NO-FOCUS`, `NO-HELP`, `NO-HIDE`, `NO-INDEX-HINT`, `NO-INHERIT-BGC`, `NO-INHERIT-BGCO`, `NO-INHERIT-BGCOLOR`, `NO-INHERIT-FGC`, `NO-INHERIT-FGCO`, `NO-INHERIT-FGCOL`, `NO-INHERIT-FGCOLO`, `NO-INHERIT-FGCOLOR`, `NO-JOIN-BY-SQLDB`, `NO-LABE`, `NO-LABELS`, `NO-LOBS`, `NO-LOCK`, `NO-LOOKAHEAD`, `NO-MAP`, `NO-MES`, `NO-MESS`, `NO-MESSA`, `NO-MESSAG`, `NO-MESSAGE`, `NO-PAUSE`, `NO-PREFE`, `NO-PREFET`, `NO-PREFETC`, `NO-PREFETCH`, `NO-ROW-MARKERS`, `NO-SCROLLBAR-VERTICAL`, `NO-SEPARATE-CONNECTION`, `NO-SEPARATORS`, `NO-TAB-STOP`, `NO-UND`, `NO-UNDE`, `NO-UNDER`, `NO-UNDERL`, `NO-UNDERLI`, `NO-UNDERLIN`, `NO-UNDERLINE`, `NO-UNDO`, `NO-VAL`, `NO-VALI`, `NO-VALID`, `NO-VALIDA`, `NO-VALIDAT`, `NO-VALIDATE`, `NO-WAIT`, `NO-WORD-WRAP`, `NODE-VALUE-TO-MEMPTR`, `NONAMESPACE-SCHEMA-LOCATION`, `NONE`, `NORMALIZE`, `NOT`, `NOT-ACTIVE`, `NOW`, `NULL`, `NUM-ALI`, `NUM-ALIA`, `NUM-ALIAS`, `NUM-ALIASE`, `NUM-ALIASES`, `NUM-BUFFERS`, `NUM-BUT`, `NUM-BUTT`, `NUM-BUTTO`, `NUM-BUTTON`, `NUM-BUTTONS`, `NUM-COL`, `NUM-COLU`, `NUM-COLUM`, `NUM-COLUMN`, `NUM-COLUMNS`, `NUM-COPIES`, `NUM-DBS`, `NUM-DROPPED-FILES`, `NUM-ENTRIES`, `NUM-FIELDS`, `NUM-FORMATS`, `NUM-ITEMS`, `NUM-ITERATIONS`, `NUM-LINES`, `NUM-LOCKED-COL`, `NUM-LOCKED-COLU`, `NUM-LOCKED-COLUM`, `NUM-LOCKED-COLUMN`, `NUM-LOCKED-COLUMNS`, `NUM-MESSAGES`, `NUM-PARAMETERS`, `NUM-REFERENCES`, `NUM-REPLACED`, `NUM-RESULTS`, `NUM-SELECTED`, `NUM-SELECTED-`, `NUM-SELECTED-ROWS`, `NUM-SELECTED-W`, `NUM-SELECTED-WI`, `NUM-SELECTED-WID`, `NUM-SELECTED-WIDG`, `NUM-SELECTED-WIDGE`, `NUM-SELECTED-WIDGET`, `NUM-SELECTED-WIDGETS`, `NUM-TABS`, `NUM-TO-RETAIN`, `NUM-VISIBLE-COLUMNS`, `NUMERIC`, `NUMERIC-F`, `NUMERIC-FO`, `NUMERIC-FOR`, `NUMERIC-FORM`, `NUMERIC-FORMA`, `NUMERIC-FORMAT`, `OCTET-LENGTH`, `OF`, `OFF`, `OK`, `OK-CANCEL`, `OLD`, `ON`, `ON-FRAME`, `ON-FRAME-`, `ON-FRAME-B`, `ON-FRAME-BO`, `ON-FRAME-BOR`, `ON-FRAME-BORD`, `ON-FRAME-BORDE`, `ON-FRAME-BORDER`, `OPEN`, `OPSYS`, `OPTION`, `OR`, `ORDERED-JOIN`, `ORDINAL`, `OS-APPEND`, `OS-COMMAND`, `OS-COPY`, `OS-CREATE-DIR`, `OS-DELETE`, `OS-DIR`, `OS-DRIVE`, `OS-DRIVES`, `OS-ERROR`, `OS-GETENV`, `OS-RENAME`, `OTHERWISE`, `OUTPUT`, `OVERLAY`, `OVERRIDE`, `OWNER`, `PAGE`, `PAGE-BOT`, `PAGE-BOTT`, `PAGE-BOTTO`, `PAGE-BOTTOM`, `PAGE-NUM`, `PAGE-NUMB`, `PAGE-NUMBE`, `PAGE-NUMBER`, `PAGE-SIZE`, `PAGE-TOP`, `PAGE-WID`, `PAGE-WIDT`, `PAGE-WIDTH`, `PAGED`, `PARAM`, `PARAME`, `PARAMET`, `PARAMETE`, `PARAMETER`, `PARENT`, `PARSE-STATUS`, `PARTIAL-KEY`, `PASCAL`, `PASSWORD-FIELD`, `PATHNAME`, `PAUSE`, `PBE-HASH-ALG`, `PBE-HASH-ALGO`, `PBE-HASH-ALGOR`, `PBE-HASH-ALGORI`, `PBE-HASH-ALGORIT`, `PBE-HASH-ALGORITH`, `PBE-HASH-ALGORITHM`, `PBE-KEY-ROUNDS`, `PDBNAME`, `PERSIST`, `PERSISTE`, `PERSISTEN`, `PERSISTENT`, `PERSISTENT-CACHE-DISABLED`, `PFC`, `PFCO`, `PFCOL`, `PFCOLO`, `PFCOLOR`, `PIXELS`, `PIXELS-PER-COL`, `PIXELS-PER-COLU`, `PIXELS-PER-COLUM`, `PIXELS-PER-COLUMN`, `PIXELS-PER-ROW`, `POPUP-M`, `POPUP-ME`, `POPUP-MEN`, `POPUP-MENU`, `POPUP-O`, `POPUP-ON`, `POPUP-ONL`, `POPUP-ONLY`, `PORTRAIT`, `POSITION`, `PRECISION`, `PREFER-DATASET`, `PREPARE-STRING`, `PREPARED`, `PREPROC`, `PREPROCE`, `PREPROCES`, `PREPROCESS`, `PRESEL`, `PRESELE`, `PRESELEC`, `PRESELECT`, `PREV`, `PREV-COLUMN`, `PREV-SIBLING`, `PREV-TAB-I`, `PREV-TAB-IT`, `PREV-TAB-ITE`, `PREV-TAB-ITEM`, `PRIMARY`, `PRINTER`, `PRINTER-CONTROL-HANDLE`, `PRINTER-HDC`, `PRINTER-NAME`, `PRINTER-PORT`, `PRINTER-SETUP`, `PRIVATE`, `PRIVATE-D`, `PRIVATE-DA`, `PRIVATE-DAT`, `PRIVATE-DATA`, `PRIVILEGES`, `PROC-HA`, `PROC-HAN`, `PROC-HAND`, `PROC-HANDL`, `PROC-HANDLE`, `PROC-ST`, `PROC-STA`, `PROC-STAT`, `PROC-STATU`, `PROC-STATUS`, `PROC-TEXT`, `PROC-TEXT-BUFFER`, `PROCE`, `PROCED`, `PROCEDU`, `PROCEDUR`, `PROCEDURE`, `PROCEDURE-CALL-TYPE`, `PROCEDURE-TYPE`, `PROCESS`, `PROFILER`, `PROGRAM-NAME`, `PROGRESS`, `PROGRESS-S`, `PROGRESS-SO`, `PROGRESS-SOU`, `PROGRESS-SOUR`, `PROGRESS-SOURC`, `PROGRESS-SOURCE`, `PROMPT`, `PROMPT-F`, `PROMPT-FO`, `PROMPT-FOR`, `PROMSGS`, `PROPATH`, `PROPERTY`, `PROTECTED`, `PROVERS`, `PROVERSI`, `PROVERSIO`, `PROVERSION`, `PROXY`, `PROXY-PASSWORD`, `PROXY-USERID`, `PUBLIC`, `PUBLIC-ID`, `PUBLISH`, `PUBLISHED-EVENTS`, `PUT`, `PUT-BYTE`, `PUT-DOUBLE`, `PUT-FLOAT`, `PUT-INT64`, `PUT-KEY-VAL`, `PUT-KEY-VALU`, `PUT-KEY-VALUE`, `PUT-LONG`, `PUT-SHORT`, `PUT-STRING`, `PUT-UNSIGNED-LONG`, `PUTBYTE`, `QUERY`, `QUERY-CLOSE`, `QUERY-OFF-END`, `QUERY-OPEN`, `QUERY-PREPARE`, `QUERY-TUNING`, `QUESTION`, `QUIT`, `QUOTER`, `R-INDEX`, `RADIO-BUTTONS`, `RADIO-SET`, `RANDOM`, `RAW`, `RAW-TRANSFER`, `RCODE-INFO`, `RCODE-INFOR`, `RCODE-INFORM`, `RCODE-INFORMA`, `RCODE-INFORMAT`, `RCODE-INFORMATI`, `RCODE-INFORMATIO`, `RCODE-INFORMATION`, `READ-AVAILABLE`, `READ-EXACT-NUM`, `READ-FILE`, `READ-JSON`, `READ-ONLY`, `READ-XML`, `READ-XMLSCHEMA`, `READKEY`, `REAL`, `RECID`, `RECORD-LENGTH`, `RECT`, `RECTA`, `RECTAN`, `RECTANG`, `RECTANGL`, `RECTANGLE`, `RECURSIVE`, `REFERENCE-ONLY`, `REFRESH`, `REFRESH-AUDIT-POLICY`, `REFRESHABLE`, `REGISTER-DOMAIN`, `RELEASE`, `REMOTE`, `REMOVE-EVENTS-PROCEDURE`, `REMOVE-SUPER-PROCEDURE`, `REPEAT`, `REPLACE`, `REPLACE-SELECTION-TEXT`, `REPOSITION`, `REPOSITION-BACKWARD`, `REPOSITION-FORWARD`, `REPOSITION-MODE`, `REPOSITION-TO-ROW`, `REPOSITION-TO-ROWID`, `REQUEST`, `REQUEST-INFO`, `RESET`, `RESIZA`, `RESIZAB`, `RESIZABL`, `RESIZABLE`, `RESIZE`, `RESPONSE-INFO`, `RESTART-ROW`, `RESTART-ROWID`, `RETAIN`, `RETAIN-SHAPE`, `RETRY`, `RETRY-CANCEL`, `RETURN`, `RETURN-ALIGN`, `RETURN-ALIGNE`, `RETURN-INS`, `RETURN-INSE`, `RETURN-INSER`, `RETURN-INSERT`, `RETURN-INSERTE`, `RETURN-INSERTED`, `RETURN-TO-START-DI`, `RETURN-TO-START-DIR`, `RETURN-VAL`, `RETURN-VALU`, `RETURN-VALUE`, `RETURN-VALUE-DATA-TYPE`, `RETURNS`, `REVERSE-FROM`, `REVERT`, `REVOKE`, `RGB-VALUE`, `RIGHT-ALIGNED`, `RIGHT-TRIM`, `ROLES`, `ROUND`, `ROUTINE-LEVEL`, `ROW`, `ROW-HEIGHT-CHARS`, `ROW-HEIGHT-PIXELS`, `ROW-MARKERS`, `ROW-OF`, `ROW-RESIZABLE`, `ROWID`, `RULE`, `RUN`, `RUN-PROCEDURE`, `SAVE CACHE`, `SAVE`, `SAVE-AS`, `SAVE-FILE`, `SAX-COMPLE`, `SAX-COMPLET`, `SAX-COMPLETE`, `SAX-PARSE`, `SAX-PARSE-FIRST`, `SAX-PARSE-NEXT`, `SAX-PARSER-ERROR`, `SAX-RUNNING`, `SAX-UNINITIALIZED`, `SAX-WRITE-BEGIN`, `SAX-WRITE-COMPLETE`, `SAX-WRITE-CONTENT`, `SAX-WRITE-ELEMENT`, `SAX-WRITE-ERROR`, `SAX-WRITE-IDLE`, `SAX-WRITE-TAG`, `SAX-WRITER`, `SCHEMA`, `SCHEMA-LOCATION`, `SCHEMA-MARSHAL`, `SCHEMA-PATH`, `SCREEN`, `SCREEN-IO`, `SCREEN-LINES`, `SCREEN-VAL`, `SCREEN-VALU`, `SCREEN-VALUE`, `SCROLL`, `SCROLL-BARS`, `SCROLL-DELTA`, `SCROLL-OFFSET`, `SCROLL-TO-CURRENT-ROW`, `SCROLL-TO-I`, `SCROLL-TO-IT`, `SCROLL-TO-ITE`, `SCROLL-TO-ITEM`, `SCROLL-TO-SELECTED-ROW`, `SCROLLABLE`, `SCROLLBAR-H`, `SCROLLBAR-HO`, `SCROLLBAR-HOR`, `SCROLLBAR-HORI`, `SCROLLBAR-HORIZ`, `SCROLLBAR-HORIZO`, `SCROLLBAR-HORIZON`, `SCROLLBAR-HORIZONT`, `SCROLLBAR-HORIZONTA`, `SCROLLBAR-HORIZONTAL`, `SCROLLBAR-V`, `SCROLLBAR-VE`, `SCROLLBAR-VER`, `SCROLLBAR-VERT`, `SCROLLBAR-VERTI`, `SCROLLBAR-VERTIC`, `SCROLLBAR-VERTICA`, `SCROLLBAR-VERTICAL`, `SCROLLED-ROW-POS`, `SCROLLED-ROW-POSI`, `SCROLLED-ROW-POSIT`, `SCROLLED-ROW-POSITI`, `SCROLLED-ROW-POSITIO`, `SCROLLED-ROW-POSITION`, `SCROLLING`, `SDBNAME`, `SEAL`, `SEAL-TIMESTAMP`, `SEARCH`, `SEARCH-SELF`, `SEARCH-TARGET`, `SECTION`, `SECURITY-POLICY`, `SEEK`, `SELECT`, `SELECT-ALL`, `SELECT-FOCUSED-ROW`, `SELECT-NEXT-ROW`, `SELECT-PREV-ROW`, `SELECT-ROW`, `SELECTABLE`, `SELECTED`, `SELECTION`, `SELECTION-END`, `SELECTION-LIST`, `SELECTION-START`, `SELECTION-TEXT`, `SELF`, `SEND`, `SEND-SQL-STATEMENT`, `SENSITIVE`, `SEPARATE-CONNECTION`, `SEPARATOR-FGCOLOR`, `SEPARATORS`, `SERIALIZABLE`, `SERIALIZE-HIDDEN`, `SERIALIZE-NAME`, `SERVER`, `SERVER-CONNECTION-BOUND`, `SERVER-CONNECTION-BOUND-REQUEST`, `SERVER-CONNECTION-CONTEXT`, `SERVER-CONNECTION-ID`, `SERVER-OPERATING-MODE`, `SESSION`, `SESSION-ID`, `SET`, `SET-APPL-CONTEXT`, `SET-ATTR-CALL-TYPE`, `SET-ATTRIBUTE-NODE`, `SET-BLUE`, `SET-BLUE-`, `SET-BLUE-V`, `SET-BLUE-VA`, `SET-BLUE-VAL`, `SET-BLUE-VALU`, `SET-BLUE-VALUE`, `SET-BREAK`, `SET-BUFFERS`, `SET-CALLBACK`, `SET-CLIENT`, `SET-COMMIT`, `SET-CONTENTS`, `SET-CURRENT-VALUE`, `SET-DB-CLIENT`, `SET-DYNAMIC`, `SET-EVENT-MANAGER-OPTION`, `SET-GREEN`, `SET-GREEN-`, `SET-GREEN-V`, `SET-GREEN-VA`, `SET-GREEN-VAL`, `SET-GREEN-VALU`, `SET-GREEN-VALUE`, `SET-INPUT-SOURCE`, `SET-OPTION`, `SET-OUTPUT-DESTINATION`, `SET-PARAMETER`, `SET-POINTER-VALUE`, `SET-PROPERTY`, `SET-RED`, `SET-RED-`, `SET-RED-V`, `SET-RED-VA`, `SET-RED-VAL`, `SET-RED-VALU`, `SET-RED-VALUE`, `SET-REPOSITIONED-ROW`, `SET-RGB-VALUE`, `SET-ROLLBACK`, `SET-SELECTION`, `SET-SIZE`, `SET-SORT-ARROW`, `SET-WAIT-STATE`, `SETUSER`, `SETUSERI`, `SETUSERID`, `SHA1-DIGEST`, `SHARE`, `SHARE-`, `SHARE-L`, `SHARE-LO`, `SHARE-LOC`, `SHARE-LOCK`, `SHARED`, `SHOW-IN-TASKBAR`, `SHOW-STAT`, `SHOW-STATS`, `SIDE-LAB`, `SIDE-LABE`, `SIDE-LABEL`, `SIDE-LABEL-H`, `SIDE-LABEL-HA`, `SIDE-LABEL-HAN`, `SIDE-LABEL-HAND`, `SIDE-LABEL-HANDL`, `SIDE-LABEL-HANDLE`, `SIDE-LABELS`, `SIGNATURE`, `SILENT`, `SIMPLE`, `SINGLE`, `SINGLE-RUN`, `SINGLETON`, `SIZE`, `SIZE-C`, `SIZE-CH`, `SIZE-CHA`, `SIZE-CHAR`, `SIZE-CHARS`, `SIZE-P`, `SIZE-PI`, `SIZE-PIX`, `SIZE-PIXE`, `SIZE-PIXEL`, `SIZE-PIXELS`, `SKIP`, `SKIP-DELETED-RECORD`, `SLIDER`, `SMALL-ICON`, `SMALL-TITLE`, `SMALLINT`, `SOME`, `SORT`, `SORT-ASCENDING`, `SORT-NUMBER`, `SOURCE`, `SOURCE-PROCEDURE`, `SPACE`, `SQL`, `SQRT`, `SSL-SERVER-NAME`, `STANDALONE`, `START`, `START-DOCUMENT`, `START-ELEMENT`, `START-MOVE`, `START-RESIZE`, `START-ROW-RESIZE`, `STATE-DETAIL`, `STATIC`, `STATUS`, `STATUS-AREA`, `STATUS-AREA-FONT`, `STDCALL`, `STOP`, `STOP-AFTER`, `STOP-PARSING`, `STOPPE`, `STOPPED`, `STORED-PROC`, `STORED-PROCE`, `STORED-PROCED`, `STORED-PROCEDU`, `STORED-PROCEDUR`, `STORED-PROCEDURE`, `STREAM`, `STREAM-HANDLE`, `STREAM-IO`, `STRETCH-TO-FIT`, `STRICT`, `STRICT-ENTITY-RESOLUTION`, `STRING`, `STRING-VALUE`, `STRING-XREF`, `SUB-AVE`, `SUB-AVER`, `SUB-AVERA`, `SUB-AVERAG`, `SUB-AVERAGE`, `SUB-COUNT`, `SUB-MAXIMUM`, `SUB-MENU`, `SUB-MIN`, `SUB-MINIMUM`, `SUB-TOTAL`, `SUBSCRIBE`, `SUBST`, `SUBSTI`, `SUBSTIT`, `SUBSTITU`, `SUBSTITUT`, `SUBSTITUTE`, `SUBSTR`, `SUBSTRI`, `SUBSTRIN`, `SUBSTRING`, `SUBTYPE`, `SUM`, `SUM-MAX`, `SUM-MAXI`, `SUM-MAXIM`, `SUM-MAXIMU`, `SUPER`, `SUPER-PROCEDURES`, `SUPPRESS-NAMESPACE-PROCESSING`, `SUPPRESS-W`, `SUPPRESS-WA`, `SUPPRESS-WAR`, `SUPPRESS-WARN`, `SUPPRESS-WARNI`, `SUPPRESS-WARNIN`, `SUPPRESS-WARNING`, `SUPPRESS-WARNINGS`, `SYMMETRIC-ENCRYPTION-ALGORITHM`, `SYMMETRIC-ENCRYPTION-IV`, `SYMMETRIC-ENCRYPTION-KEY`, `SYMMETRIC-SUPPORT`, `SYSTEM-ALERT`, `SYSTEM-ALERT-`, `SYSTEM-ALERT-B`, `SYSTEM-ALERT-BO`, `SYSTEM-ALERT-BOX`, `SYSTEM-ALERT-BOXE`, `SYSTEM-ALERT-BOXES`, `SYSTEM-DIALOG`, `SYSTEM-HELP`, `SYSTEM-ID`, `TAB-POSITION`, `TAB-STOP`, `TABLE`, `TABLE-HANDLE`, `TABLE-NUMBER`, `TABLE-SCAN`, `TARGET`, `TARGET-PROCEDURE`, `TEMP-DIR`, `TEMP-DIRE`, `TEMP-DIREC`, `TEMP-DIRECT`, `TEMP-DIRECTO`, `TEMP-DIRECTOR`, `TEMP-DIRECTORY`, `TEMP-TABLE`, `TEMP-TABLE-PREPARE`, `TERM`, `TERMI`, `TERMIN`, `TERMINA`, `TERMINAL`, `TERMINATE`, `TEXT`, `TEXT-CURSOR`, `TEXT-SEG-GROW`, `TEXT-SELECTED`, `THEN`, `THIS-OBJECT`, `THIS-PROCEDURE`, `THREAD-SAFE`, `THREE-D`, `THROUGH`, `THROW`, `THRU`, `TIC-MARKS`, `TIME`, `TIME-SOURCE`, `TITLE`, `TITLE-BGC`, `TITLE-BGCO`, `TITLE-BGCOL`, `TITLE-BGCOLO`, `TITLE-BGCOLOR`, `TITLE-DC`, `TITLE-DCO`, `TITLE-DCOL`, `TITLE-DCOLO`, `TITLE-DCOLOR`, `TITLE-FGC`, `TITLE-FGCO`, `TITLE-FGCOL`, `TITLE-FGCOLO`, `TITLE-FGCOLOR`, `TITLE-FO`, `TITLE-FON`, `TITLE-FONT`, `TO`, `TO-ROWID`, `TODAY`, `TOGGLE-BOX`, `TOOLTIP`, `TOOLTIPS`, `TOP-NAV-QUERY`, `TOP-ONLY`, `TOPIC`, `TOTAL`, `TRAILING`, `TRANS`, `TRANS-INIT-PROCEDURE`, `TRANSACTION`, `TRANSACTION-MODE`, `TRANSPARENT`, `TRIGGER`, `TRIGGERS`, `TRIM`, `TRUE`, `TRUNC`, `TRUNCA`, `TRUNCAT`, `TRUNCATE`, `TYPE`, `TYPE-OF`, `UNBOX`, `UNBUFF`, `UNBUFFE`, `UNBUFFER`, `UNBUFFERE`, `UNBUFFERED`, `UNDERL`, `UNDERLI`, `UNDERLIN`, `UNDERLINE`, `UNDO`, `UNFORM`, `UNFORMA`, `UNFORMAT`, `UNFORMATT`, `UNFORMATTE`, `UNFORMATTED`, `UNION`, `UNIQUE`, `UNIQUE-ID`, `UNIQUE-MATCH`, `UNIX`, `UNLESS-HIDDEN`, `UNLOAD`, `UNSIGNED-LONG`, `UNSUBSCRIBE`, `UP`, `UPDATE`, `UPDATE-ATTRIBUTE`, `URL`, `URL-DECODE`, `URL-ENCODE`, `URL-PASSWORD`, `URL-USERID`, `USE`, `USE-DICT-EXPS`, `USE-FILENAME`, `USE-INDEX`, `USE-REVVIDEO`, `USE-TEXT`, `USE-UNDERLINE`, `USE-WIDGET-POOL`, `USER`, `USER-ID`, `USERID`, `USING`, `V6DISPLAY`, `V6FRAME`, `VALID-EVENT`, `VALID-HANDLE`, `VALID-OBJECT`, `VALIDATE`, `VALIDATE-EXPRESSION`, `VALIDATE-MESSAGE`, `VALIDATE-SEAL`, `VALIDATION-ENABLED`, `VALUE`, `VALUE-CHANGED`, `VALUES`, `VAR`, `VARI`, `VARIA`, `VARIAB`, `VARIABL`, `VARIABLE`, `VERBOSE`, `VERSION`, `VERT`, `VERTI`, `VERTIC`, `VERTICA`, `VERTICAL`, `VIEW`, `VIEW-AS`, `VIEW-FIRST-COLUMN-ON-REOPEN`, `VIRTUAL-HEIGHT`, `VIRTUAL-HEIGHT-`, `VIRTUAL-HEIGHT-C`, `VIRTUAL-HEIGHT-CH`, `VIRTUAL-HEIGHT-CHA`, `VIRTUAL-HEIGHT-CHAR`, `VIRTUAL-HEIGHT-CHARS`, `VIRTUAL-HEIGHT-P`, `VIRTUAL-HEIGHT-PI`, `VIRTUAL-HEIGHT-PIX`, `VIRTUAL-HEIGHT-PIXE`, `VIRTUAL-HEIGHT-PIXEL`, `VIRTUAL-HEIGHT-PIXELS`, `VIRTUAL-WIDTH`, `VIRTUAL-WIDTH-`, `VIRTUAL-WIDTH-C`, `VIRTUAL-WIDTH-CH`, `VIRTUAL-WIDTH-CHA`, `VIRTUAL-WIDTH-CHAR`, `VIRTUAL-WIDTH-CHARS`, `VIRTUAL-WIDTH-P`, `VIRTUAL-WIDTH-PI`, `VIRTUAL-WIDTH-PIX`, `VIRTUAL-WIDTH-PIXE`, `VIRTUAL-WIDTH-PIXEL`, `VIRTUAL-WIDTH-PIXELS`, `VISIBLE`, `VOID`, `WAIT`, `WAIT-FOR`, `WARNING`, `WEB-CONTEXT`, `WEEKDAY`, `WHEN`, `WHERE`, `WHILE`, `WIDGET`, `WIDGET-E`, `WIDGET-EN`, `WIDGET-ENT`, `WIDGET-ENTE`, `WIDGET-ENTER`, `WIDGET-ID`, `WIDGET-L`, `WIDGET-LE`, `WIDGET-LEA`, `WIDGET-LEAV`, `WIDGET-LEAVE`, `WIDGET-POOL`, `WIDTH`, `WIDTH-`, `WIDTH-C`, `WIDTH-CH`, `WIDTH-CHA`, `WIDTH-CHAR`, `WIDTH-CHARS`, `WIDTH-P`, `WIDTH-PI`, `WIDTH-PIX`, `WIDTH-PIXE`, `WIDTH-PIXEL`, `WIDTH-PIXELS`, `WINDOW`, `WINDOW-MAXIM`, `WINDOW-MAXIMI`, `WINDOW-MAXIMIZ`, `WINDOW-MAXIMIZE`, `WINDOW-MAXIMIZED`, `WINDOW-MINIM`, `WINDOW-MINIMI`, `WINDOW-MINIMIZ`, `WINDOW-MINIMIZE`, `WINDOW-MINIMIZED`, `WINDOW-NAME`, `WINDOW-NORMAL`, `WINDOW-STA`, `WINDOW-STAT`, `WINDOW-STATE`, `WINDOW-SYSTEM`, `WITH`, `WORD-INDEX`, `WORD-WRAP`, `WORK-AREA-HEIGHT-PIXELS`, `WORK-AREA-WIDTH-PIXELS`, `WORK-AREA-X`, `WORK-AREA-Y`, `WORK-TAB`, `WORK-TABL`, `WORK-TABLE`, `WORKFILE`, `WRITE`, `WRITE-CDATA`, `WRITE-CHARACTERS`, `WRITE-COMMENT`, `WRITE-DATA-ELEMENT`, `WRITE-EMPTY-ELEMENT`, `WRITE-ENTITY-REF`, `WRITE-EXTERNAL-DTD`, `WRITE-FRAGMENT`, `WRITE-JSON`, `WRITE-MESSAGE`, `WRITE-PROCESSING-INSTRUCTION`, `WRITE-STATUS`, `WRITE-XML`, `WRITE-XMLSCHEMA`, `X`, `X-OF`, `XCODE`, `XML-DATA-TYPE`, `XML-ENTITY-EXPANSION-LIMIT`, `XML-NODE-TYPE`, `XML-SCHEMA-PATH`, `XML-STRICT-ENTITY-RESOLUTION`, `XML-SUPPRESS-NAMESPACE-PROCESSING`, `XREF`, `XREF-XML`, `Y`, `Y-OF`, `YEAR`, `YEAR-OFFSET`, `YES`, `YES-NO`, `YES-NO-CANCEL`), KeywordReserved, nil}, // nolint
-				{`"(\\\\|\\[^\\]|[^"\\])*"`, LiteralStringDouble, nil},
-				{`'(\\\\|\\[^\\]|[^'\\])*'`, LiteralStringSingle, nil},
-				{`[0-9][0-9]*\.[0-9]+([eE][0-9]+)?[fd]?`, LiteralNumberFloat, nil},
-				{`[0-9]+`, LiteralNumberInteger, nil},
-				{`\s+`, Text, nil},
-				{`[+*/=-]`, Operator, nil},
-				{`[.:()]`, Punctuation, nil},
-				{`.`, NameVariable, nil},
-			},
-			"comment": {
-				{`[^*/]`, CommentMultiline, nil},
-				{`/\*`, CommentMultiline, Push()},
-				{`\*/`, CommentMultiline, Pop(1)},
-				{`[*/]`, CommentMultiline, nil},
-				{`\/\/`, CommentSingle, nil},
-			},
-			"preprocessor": {
-				{`[^{}]`, CommentPreproc, nil},
-				{`\{`, CommentPreproc, Push()},
-				{`\}`, CommentPreproc, Pop(1)},
-			},
-		}
-	},
-))
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/org.go
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/org.go	(revision 67)
+++ 	(revision )
@@ -1,99 +1,0 @@
-package lexers
-
-import (
-	. "github.com/alecthomas/chroma/v2" // nolint
-)
-
-// Org mode lexer.
-var Org = Register(MustNewLexer(
-	&Config{
-		Name:      "Org Mode",
-		Aliases:   []string{"org", "orgmode"},
-		Filenames: []string{"*.org"},
-		MimeTypes: []string{"text/org"}, // https://lists.gnu.org/r/emacs-orgmode/2017-09/msg00087.html
-	},
-	orgRules,
-))
-
-func orgRules() Rules {
-	return Rules{
-		"root": {
-			{`^# .*$`, Comment, nil},
-			// Headings
-			{`^(\*)( COMMENT)( .*)$`, ByGroups(GenericHeading, NameEntity, GenericStrong), nil},
-			{`^(\*\*+)( COMMENT)( .*)$`, ByGroups(GenericSubheading, NameEntity, Text), nil},
-			{`^(\*)( DONE)( .*)$`, ByGroups(GenericHeading, LiteralStringRegex, GenericStrong), nil},
-			{`^(\*\*+)( DONE)( .*)$`, ByGroups(GenericSubheading, LiteralStringRegex, Text), nil},
-			{`^(\*)( TODO)( .*)$`, ByGroups(GenericHeading, Error, GenericStrong), nil},
-			{`^(\*\*+)( TODO)( .*)$`, ByGroups(GenericSubheading, Error, Text), nil},
-			{`^(\*)( .+?)( :[a-zA-Z0-9_@:]+:)$`, ByGroups(GenericHeading, GenericStrong, GenericEmph), nil}, // Level 1 heading with tags
-			{`^(\*)( .+)$`, ByGroups(GenericHeading, GenericStrong), nil},                                   // // Level 1 heading with NO tags
-			{`^(\*\*+)( .+?)( :[a-zA-Z0-9_@:]+:)$`, ByGroups(GenericSubheading, Text, GenericEmph), nil},    // Level 2+ heading with tags
-			{`^(\*\*+)( .+)$`, ByGroups(GenericSubheading, Text), nil},                                      // Level 2+ heading with NO tags
-			// Checkbox lists
-			{`^( *)([+-] )(\[[ X]\])( .+)$`, ByGroups(Text, Keyword, Keyword, UsingSelf("inline")), nil},
-			{`^( +)(\* )(\[[ X]\])( .+)$`, ByGroups(Text, Keyword, Keyword, UsingSelf("inline")), nil},
-			// Definition lists
-			{`^( *)([+-] )([^ \n]+ ::)( .+)$`, ByGroups(Text, Keyword, Keyword, UsingSelf("inline")), nil},
-			{`^( +)(\* )([^ \n]+ ::)( .+)$`, ByGroups(Text, Keyword, Keyword, UsingSelf("inline")), nil},
-			// Unordered lists
-			{`^( *)([+-] )(.+)$`, ByGroups(Text, Keyword, UsingSelf("inline")), nil},
-			{`^( +)(\* )(.+)$`, ByGroups(Text, Keyword, UsingSelf("inline")), nil},
-			// Ordered lists
-			{`^( *)([0-9]+[.)])( \[@[0-9]+\])( .+)$`, ByGroups(Text, Keyword, GenericEmph, UsingSelf("inline")), nil},
-			{`^( *)([0-9]+[.)])( .+)$`, ByGroups(Text, Keyword, UsingSelf("inline")), nil},
-			// Dynamic Blocks
-			{`(?i)^( *#\+begin: )([^ ]+)([\w\W]*?\n)([\w\W]*?)(^ *#\+end: *$)`, ByGroups(Comment, CommentSpecial, Comment, UsingSelf("inline"), Comment), nil},
-			// Blocks
-			// - Comment Blocks
-			{`(?i)^( *#\+begin_comment *\n)([\w\W]*?)(^ *#\+end_comment *$)`, ByGroups(Comment, Comment, Comment), nil},
-			// - Src Blocks
-			{
-				`(?i)^( *#\+begin_src )([^ \n]+)(.*?\n)([\w\W]*?)(^ *#\+end_src *$)`,
-				UsingByGroup(2, 4, Comment, CommentSpecial, Comment, Text, Comment),
-				nil,
-			},
-			// - Export Blocks
-			{
-				`(?i)^( *#\+begin_export )(\w+)( *\n)([\w\W]*?)(^ *#\+end_export *$)`,
-				UsingByGroup(2, 4, Comment, CommentSpecial, Text, Text, Comment),
-				nil,
-			},
-			// - Org Special, Example, Verse, etc. Blocks
-			{`(?i)^( *#\+begin_)(\w+)( *\n)([\w\W]*?)(^ *#\+end_\2)( *$)`, ByGroups(Comment, Comment, Text, Text, Comment, Text), nil},
-			// Keywords
-			{`^(#\+\w+)(:.*)$`, ByGroups(CommentSpecial, Comment), nil}, // Other Org keywords like #+title
-			// Properties and Drawers
-			{`(?i)^( *:\w+: *\n)([\w\W]*?)(^ *:end: *$)`, ByGroups(Comment, CommentSpecial, Comment), nil},
-			// Line break operator
-			{`^(.*)(\\\\)$`, ByGroups(UsingSelf("inline"), Operator), nil},
-			// Deadline/Scheduled
-			{`(?i)^( *(?:DEADLINE|SCHEDULED): )(<[^<>]+?> *)$`, ByGroups(Comment, CommentSpecial), nil}, // DEADLINE/SCHEDULED: <datestamp>
-			// DONE state CLOSED
-			{`(?i)^( *CLOSED: )(\[[^][]+?\] *)$`, ByGroups(Comment, CommentSpecial), nil}, // CLOSED: [datestamp]
-			// All other lines
-			Include("inline"),
-		},
-		"inline": {
-			{`(\s)*(\*[^ \n*][^*]+?[^ \n*]\*)((?=\W|\n|$))`, ByGroups(Text, GenericStrong, Text), nil},                          // Bold
-			{`(\s)*(/[^/]+?/)((?=\W|\n|$))`, ByGroups(Text, GenericEmph, Text), nil},                                            // Italic
-			{`(\s)*(=[^\n=]+?=)((?=\W|\n|$))`, ByGroups(Text, NameClass, Text), nil},                                            // Verbatim
-			{`(\s)*(~[^\n~]+?~)((?=\W|\n|$))`, ByGroups(Text, NameClass, Text), nil},                                            // Code
-			{`(\s)*(\+[^+]+?\+)((?=\W|\n|$))`, ByGroups(Text, GenericDeleted, Text), nil},                                       // Strikethrough
-			{`(\s)*(_[^_]+?_)((?=\W|\n|$))`, ByGroups(Text, GenericUnderline, Text), nil},                                       // Underline
-			{`(<)([^<>]+?)(>)`, ByGroups(Text, String, Text), nil},                                                              // <datestamp>
-			{`[{]{3}[^}]+[}]{3}`, NameBuiltin, nil},                                                                             // {{{macro(foo,1)}}}
-			{`([^[])(\[fn:)([^]]+?)(\])([^]])`, ByGroups(Text, NameBuiltinPseudo, LiteralString, NameBuiltinPseudo, Text), nil}, // [fn:1]
-			// Links
-			{`(\[\[)([^][]+?)(\]\[)([^][]+)(\]\])`, ByGroups(Text, NameAttribute, Text, NameTag, Text), nil}, // [[link][descr]]
-			{`(\[\[)([^][]+?)(\]\])`, ByGroups(Text, NameAttribute, Text), nil},                              // [[link]]
-			{`(<<)([^<>]+?)(>>)`, ByGroups(Text, NameAttribute, Text), nil},                                  // <<targetlink>>
-			// Tables
-			{`^( *)(\|[ -].*?[ -]\|)$`, ByGroups(Text, String), nil},
-			// Blank lines, newlines
-			{`\n`, Text, nil},
-			// Any other text
-			{`.`, Text, nil},
-		},
-	}
-}
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/php.go
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/php.go	(revision 67)
+++ 	(revision )
@@ -1,37 +1,0 @@
-package lexers
-
-import (
-	"strings"
-
-	. "github.com/alecthomas/chroma/v2" // nolint
-)
-
-// phtml lexer is PHP in HTML.
-var _ = Register(DelegatingLexer(HTML, MustNewLexer(
-	&Config{
-		Name:            "PHTML",
-		Aliases:         []string{"phtml"},
-		Filenames:       []string{"*.phtml", "*.php", "*.php[345]", "*.inc"},
-		MimeTypes:       []string{"application/x-php", "application/x-httpd-php", "application/x-httpd-php3", "application/x-httpd-php4", "application/x-httpd-php5", "text/x-php"},
-		DotAll:          true,
-		CaseInsensitive: true,
-		EnsureNL:        true,
-		Priority:        2,
-	},
-	func() Rules {
-		return Get("PHP").(*RegexLexer).MustRules().
-			Rename("root", "php").
-			Merge(Rules{
-				"root": {
-					{`<\?(php)?`, CommentPreproc, Push("php")},
-					{`[^<]+`, Other, nil},
-					{`<`, Other, nil},
-				},
-			})
-	},
-).SetAnalyser(func(text string) float32 {
-	if strings.Contains(text, "<?php") {
-		return 0.5
-	}
-	return 0.0
-})))
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/plaintext.go
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/plaintext.go	(revision 67)
+++ 	(revision )
@@ -1,16 +1,0 @@
-package lexers
-
-import (
-	. "github.com/alecthomas/chroma/v2" // nolint
-)
-
-var Plaintext = Register(MustNewLexer(
-	&Config{
-		Name:      "plaintext",
-		Aliases:   []string{"text", "plain", "no-highlight"},
-		Filenames: []string{"*.txt"},
-		MimeTypes: []string{"text/plain"},
-		Priority:  -1,
-	},
-	PlaintextRules,
-))
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/postgres.go
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/postgres.go	(revision 67)
+++ 	(revision )
@@ -1,77 +1,0 @@
-package lexers
-
-import (
-	. "github.com/alecthomas/chroma/v2" // nolint
-)
-
-// Postgresql Sql Dialect lexer.
-var PostgreSQL = Register(MustNewLexer(
-	&Config{
-		Name:            "PostgreSQL SQL dialect",
-		Aliases:         []string{"postgresql", "postgres"},
-		Filenames:       []string{},
-		MimeTypes:       []string{"text/x-postgresql"},
-		NotMultiline:    true,
-		CaseInsensitive: true,
-	},
-	postgreSQLRules,
-))
-
-func postgreSQLRules() Rules {
-	return Rules{
-		"root": {
-			{`\s+`, Text, nil},
-			{`--.*\n?`, CommentSingle, nil},
-			{`/\*`, CommentMultiline, Push("multiline-comments")},
-			{`(bigint|bigserial|bit|bit\s+varying|bool|boolean|box|bytea|char|character|character\s+varying|cidr|circle|date|decimal|double\s+precision|float4|float8|inet|int|int2|int4|int8|integer|interval|json|jsonb|line|lseg|macaddr|money|numeric|path|pg_lsn|point|polygon|real|serial|serial2|serial4|serial8|smallint|smallserial|text|time|timestamp|timestamptz|timetz|tsquery|tsvector|txid_snapshot|uuid|varbit|varchar|with\s+time\s+zone|without\s+time\s+zone|xml|anyarray|anyelement|anyenum|anynonarray|anyrange|cstring|fdw_handler|internal|language_handler|opaque|record|void)\b`, NameBuiltin, nil},
-			{
-				`(?s)(DO)(\s+)(?:(LANGUAGE)?(\s+)('?)(\w+)?('?)(\s+))?(\$)([^$]*)(\$)(.*?)(\$)(\10)(\$)`,
-				UsingByGroup(6, 12,
-					Keyword, Text, Keyword, Text, // DO LANGUAGE
-					StringSingle, StringSingle, StringSingle, Text, // 'plpgsql'
-					StringHeredoc, StringHeredoc, StringHeredoc, // $tag$
-					StringHeredoc,                                // (code block)
-					StringHeredoc, StringHeredoc, StringHeredoc), // $tag$
-				nil,
-			},
-			{Words(``, `\b`, `ABORT`, `ABSOLUTE`, `ACCESS`, `ACTION`, `ADD`, `ADMIN`, `AFTER`, `AGGREGATE`, `ALL`, `ALSO`, `ALTER`, `ALWAYS`, `ANALYSE`, `ANALYZE`, `AND`, `ANY`, `ARRAY`, `AS`, `ASC`, `ASSERTION`, `ASSIGNMENT`, `ASYMMETRIC`, `AT`, `ATTRIBUTE`, `AUTHORIZATION`, `BACKWARD`, `BEFORE`, `BEGIN`, `BETWEEN`, `BIGINT`, `BINARY`, `BIT`, `BOOLEAN`, `BOTH`, `BY`, `CACHE`, `CALLED`, `CASCADE`, `CASCADED`, `CASE`, `CAST`, `CATALOG`, `CHAIN`, `CHAR`, `CHARACTER`, `CHARACTERISTICS`, `CHECK`, `CHECKPOINT`, `CLASS`, `CLOSE`, `CLUSTER`, `COALESCE`, `COLLATE`, `COLLATION`, `COLUMN`, `COMMENT`, `COMMENTS`, `COMMIT`, `COMMITTED`, `CONCURRENTLY`, `CONFIGURATION`, `CONNECTION`, `CONSTRAINT`, `CONSTRAINTS`, `CONTENT`, `CONTINUE`, `CONVERSION`, `COPY`, `COST`, `CREATE`, `CROSS`, `CSV`, `CURRENT`, `CURRENT_CATALOG`, `CURRENT_DATE`, `CURRENT_ROLE`, `CURRENT_SCHEMA`, `CURRENT_TIME`, `CURRENT_TIMESTAMP`, `CURRENT_USER`, `CURSOR`, `CYCLE`, `DATA`, `DATABASE`, `DAY`, `DEALLOCATE`, `DEC`, `DECIMAL`, `DECLARE`, `DEFAULT`, `DEFAULTS`, `DEFERRABLE`, `DEFERRED`, `DEFINER`, `DELETE`, `DELIMITER`, `DELIMITERS`, `DESC`, `DICTIONARY`, `DISABLE`, `DISCARD`, `DISTINCT`, `DO`, `DOCUMENT`, `DOMAIN`, `DOUBLE`, `DROP`, `EACH`, `ELSE`, `ENABLE`, `ENCODING`, `ENCRYPTED`, `END`, `ENUM`, `ESCAPE`, `EVENT`, `EXCEPT`, `EXCLUDE`, `EXCLUDING`, `EXCLUSIVE`, `EXECUTE`, `EXISTS`, `EXPLAIN`, `EXTENSION`, `EXTERNAL`, `EXTRACT`, `FALSE`, `FAMILY`, `FETCH`, `FILTER`, `FIRST`, `FLOAT`, `FOLLOWING`, `FOR`, `FORCE`, `FOREIGN`, `FORWARD`, `FREEZE`, `FROM`, `FULL`, `FUNCTION`, `FUNCTIONS`, `GLOBAL`, `GRANT`, `GRANTED`, `GREATEST`, `GROUP`, `HANDLER`, `HAVING`, `HEADER`, `HOLD`, `HOUR`, `IDENTITY`, `IF`, `ILIKE`, `IMMEDIATE`, `IMMUTABLE`, `IMPLICIT`, `IN`, `INCLUDING`, `INCREMENT`, `INDEX`, `INDEXES`, `INHERIT`, `INHERITS`, `INITIALLY`, `INLINE`, `INNER`, `INOUT`, `INPUT`, `INSENSITIVE`, `INSERT`, `INSTEAD`, `INT`, `INTEGER`, `INTERSECT`, `INTERVAL`, `INTO`, `INVOKER`, `IS`, `ISNULL`, `ISOLATION`, `JOIN`, `KEY`, `LABEL`, `LANGUAGE`, `LARGE`, `LAST`, `LATERAL`, `LC_COLLATE`, `LC_CTYPE`, `LEADING`, `LEAKPROOF`, `LEAST`, `LEFT`, `LEVEL`, `LIKE`, `LIMIT`, `LISTEN`, `LOAD`, `LOCAL`, `LOCALTIME`, `LOCALTIMESTAMP`, `LOCATION`, `LOCK`, `MAPPING`, `MATCH`, `MATERIALIZED`, `MAXVALUE`, `MINUTE`, `MINVALUE`, `MODE`, `MONTH`, `MOVE`, `NAME`, `NAMES`, `NATIONAL`, `NATURAL`, `NCHAR`, `NEXT`, `NO`, `NONE`, `NOT`, `NOTHING`, `NOTIFY`, `NOTNULL`, `NOWAIT`, `NULL`, `NULLIF`, `NULLS`, `NUMERIC`, `OBJECT`, `OF`, `OFF`, `OFFSET`, `OIDS`, `ON`, `ONLY`, `OPERATOR`, `OPTION`, `OPTIONS`, `OR`, `ORDER`, `ORDINALITY`, `OUT`, `OUTER`, `OVER`, `OVERLAPS`, `OVERLAY`, `OWNED`, `OWNER`, `PARSER`, `PARTIAL`, `PARTITION`, `PASSING`, `PASSWORD`, `PLACING`, `PLANS`, `POLICY`, `POSITION`, `PRECEDING`, `PRECISION`, `PREPARE`, `PREPARED`, `PRESERVE`, `PRIMARY`, `PRIOR`, `PRIVILEGES`, `PROCEDURAL`, `PROCEDURE`, `PROGRAM`, `QUOTE`, `RANGE`, `READ`, `REAL`, `REASSIGN`, `RECHECK`, `RECURSIVE`, `REF`, `REFERENCES`, `REFRESH`, `REINDEX`, `RELATIVE`, `RELEASE`, `RENAME`, `REPEATABLE`, `REPLACE`, `REPLICA`, `RESET`, `RESTART`, `RESTRICT`, `RETURNING`, `RETURNS`, `REVOKE`, `RIGHT`, `ROLE`, `ROLLBACK`, `ROW`, `ROWS`, `RULE`, `SAVEPOINT`, `SCHEMA`, `SCROLL`, `SEARCH`, `SECOND`, `SECURITY`, `SELECT`, `SEQUENCE`, `SEQUENCES`, `SERIALIZABLE`, `SERVER`, `SESSION`, `SESSION_USER`, `SET`, `SETOF`, `SHARE`, `SHOW`, `SIMILAR`, `SIMPLE`, `SMALLINT`, `SNAPSHOT`, `SOME`, `STABLE`, `STANDALONE`, `START`, `STATEMENT`, `STATISTICS`, `STDIN`, `STDOUT`, `STORAGE`, `STRICT`, `STRIP`, `SUBSTRING`, `SYMMETRIC`, `SYSID`, `SYSTEM`, `TABLE`, `TABLES`, `TABLESPACE`, `TEMP`, `TEMPLATE`, `TEMPORARY`, `TEXT`, `THEN`, `TIME`, `TIMESTAMP`, `TO`, `TRAILING`, `TRANSACTION`, `TREAT`, `TRIGGER`, `TRIM`, `TRUE`, `TRUNCATE`, `TRUSTED`, `TYPE`, `TYPES`, `UNBOUNDED`, `UNCOMMITTED`, `UNENCRYPTED`, `UNION`, `UNIQUE`, `UNKNOWN`, `UNLISTEN`, `UNLOGGED`, `UNTIL`, `UPDATE`, `USER`, `USING`, `VACUUM`, `VALID`, `VALIDATE`, `VALIDATOR`, `VALUE`, `VALUES`, `VARCHAR`, `VARIADIC`, `VARYING`, `VERBOSE`, `VERSION`, `VIEW`, `VIEWS`, `VOLATILE`, `WHEN`, `WHERE`, `WHITESPACE`, `WINDOW`, `WITH`, `WITHIN`, `WITHOUT`, `WORK`, `WRAPPER`, `WRITE`, `XML`, `XMLATTRIBUTES`, `XMLCONCAT`, `XMLELEMENT`, `XMLEXISTS`, `XMLFOREST`, `XMLPARSE`, `XMLPI`, `XMLROOT`, `XMLSERIALIZE`, `YEAR`, `YES`, `ZONE`), Keyword, nil},
-			{"[+*/<>=~!@#%^&|`?-]+", Operator, nil},
-			{`::`, Operator, nil},
-			{`\$\d+`, NameVariable, nil},
-			{`([0-9]*\.[0-9]*|[0-9]+)(e[+-]?[0-9]+)?`, LiteralNumberFloat, nil},
-			{`[0-9]+`, LiteralNumberInteger, nil},
-			{`((?:E|U&)?)(')`, ByGroups(LiteralStringAffix, LiteralStringSingle), Push("string")},
-			{`((?:U&)?)(")`, ByGroups(LiteralStringAffix, LiteralStringName), Push("quoted-ident")},
-			{
-				`(?s)(\$)([^$]*)(\$)(.*?)(\$)(\2)(\$)(\s+)(LANGUAGE)?(\s+)('?)(\w+)?('?)`,
-				UsingByGroup(12, 4,
-					StringHeredoc, StringHeredoc, StringHeredoc, // $tag$
-					StringHeredoc,                               // (code block)
-					StringHeredoc, StringHeredoc, StringHeredoc, // $tag$
-					Text, Keyword, Text, // <space> LANGUAGE <space>
-					StringSingle, StringSingle, StringSingle), // 'type'
-				nil,
-			},
-			{`(?s)(\$)([^$]*)(\$)(.*?)(\$)(\2)(\$)`, LiteralStringHeredoc, nil},
-			{`[a-z_]\w*`, Name, nil},
-			{`:(['"]?)[a-z]\w*\b\1`, NameVariable, nil},
-			{`[;:()\[\]{},.]`, Punctuation, nil},
-		},
-		"multiline-comments": {
-			{`/\*`, CommentMultiline, Push("multiline-comments")},
-			{`\*/`, CommentMultiline, Pop(1)},
-			{`[^/*]+`, CommentMultiline, nil},
-			{`[/*]`, CommentMultiline, nil},
-		},
-		"string": {
-			{`[^']+`, LiteralStringSingle, nil},
-			{`''`, LiteralStringSingle, nil},
-			{`'`, LiteralStringSingle, Pop(1)},
-		},
-		"quoted-ident": {
-			{`[^"]+`, LiteralStringName, nil},
-			{`""`, LiteralStringName, nil},
-			{`"`, LiteralStringName, Pop(1)},
-		},
-	}
-}
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/raku.go
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/raku.go	(revision 67)
+++ 	(revision )
@@ -1,1721 +1,0 @@
-package lexers
-
-import (
-	"regexp"
-	"strings"
-	"unicode/utf8"
-
-	"github.com/dlclark/regexp2"
-
-	. "github.com/alecthomas/chroma/v2" // nolint
-)
-
-// Raku lexer.
-var Raku Lexer = Register(MustNewLexer(
-	&Config{
-		Name:    "Raku",
-		Aliases: []string{"perl6", "pl6", "raku"},
-		Filenames: []string{
-			"*.pl", "*.pm", "*.nqp", "*.p6", "*.6pl", "*.p6l", "*.pl6", "*.6pm",
-			"*.p6m", "*.pm6", "*.t", "*.raku", "*.rakumod", "*.rakutest", "*.rakudoc",
-		},
-		MimeTypes: []string{
-			"text/x-perl6", "application/x-perl6",
-			"text/x-raku", "application/x-raku",
-		},
-		DotAll: true,
-	},
-	rakuRules,
-))
-
-func rakuRules() Rules {
-	type RakuToken int
-
-	const (
-		rakuQuote RakuToken = iota
-		rakuNameAttribute
-		rakuPod
-		rakuPodFormatter
-		rakuPodDeclaration
-		rakuMultilineComment
-		rakuMatchRegex
-		rakuSubstitutionRegex
-	)
-
-	const (
-		colonPairOpeningBrackets = `(?:<<|<|«|\(|\[|\{)`
-		colonPairClosingBrackets = `(?:>>|>|»|\)|\]|\})`
-		colonPairPattern         = `(?<!:)(?<colon>:)(?<key>\w[\w'-]*)(?<opening_delimiters>` + colonPairOpeningBrackets + `)`
-		colonPairLookahead       = `(?=(:['\w-]+` +
-			colonPairOpeningBrackets + `.+?` + colonPairClosingBrackets + `)?`
-		namePattern           = `(?:(?!` + colonPairPattern + `)(?:::|[\w':-]))+`
-		variablePattern       = `[$@%&]+[.^:?=!~]?` + namePattern
-		globalVariablePattern = `[$@%&]+\*` + namePattern
-	)
-
-	keywords := []string{
-		`BEGIN`, `CATCH`, `CHECK`, `CLOSE`, `CONTROL`, `DOC`, `END`, `ENTER`, `FIRST`, `INIT`,
-		`KEEP`, `LAST`, `LEAVE`, `NEXT`, `POST`, `PRE`, `QUIT`, `UNDO`, `anon`, `augment`, `but`,
-		`class`, `constant`, `default`, `does`, `else`, `elsif`, `enum`, `for`, `gather`, `given`,
-		`grammar`, `has`, `if`, `import`, `is`, `of`, `let`, `loop`, `made`, `make`, `method`,
-		`module`, `multi`, `my`, `need`, `orwith`, `our`, `proceed`, `proto`, `repeat`, `require`,
-		`where`, `return`, `return-rw`, `returns`, `->`, `-->`, `role`, `state`, `sub`, `no`,
-		`submethod`, `subset`, `succeed`, `supersede`, `try`, `unit`, `unless`, `until`,
-		`use`, `when`, `while`, `with`, `without`, `export`, `native`, `repr`, `required`, `rw`,
-		`symbol`, `default`, `cached`, `DEPRECATED`, `dynamic`, `hidden-from-backtrace`, `nodal`,
-		`pure`, `raw`, `start`, `react`, `supply`, `whenever`, `also`, `rule`, `token`, `regex`,
-		`dynamic-scope`, `built`, `temp`,
-	}
-
-	keywordsPattern := Words(`(?<!['\w:-])`, `(?!['\w:-])`, keywords...)
-
-	wordOperators := []string{
-		`X`, `Z`, `R`, `after`, `and`, `andthen`, `before`, `cmp`, `div`, `eq`, `eqv`, `extra`, `ge`,
-		`gt`, `le`, `leg`, `lt`, `mod`, `ne`, `or`, `orelse`, `x`, `xor`, `xx`, `gcd`, `lcm`,
-		`but`, `min`, `max`, `^fff`, `fff^`, `fff`, `^ff`, `ff^`, `ff`, `so`, `not`, `unicmp`,
-		`TR`, `o`, `(&)`, `(.)`, `(|)`, `(+)`, `(-)`, `(^)`, `coll`, `(elem)`, `(==)`,
-		`(cont)`, `(<)`, `(<=)`, `(>)`, `(>=)`, `minmax`, `notandthen`, `S`,
-	}
-
-	wordOperatorsPattern := Words(`(?<=^|\b|\s)`, `(?=$|\b|\s)`, wordOperators...)
-
-	operators := []string{
-		`++`, `--`, `-`, `**`, `!`, `+`, `~`, `?`, `+^`, `~^`, `?^`, `^`, `*`, `/`, `%`, `%%`, `+&`,
-		`+<`, `+>`, `~&`, `~<`, `~>`, `?&`, `+|`, `+^`, `~|`, `~^`, `?`, `?|`, `?^`, `&`, `^`,
-		`<=>`, `^…^`, `^…`, `…^`, `…`, `...`, `...^`, `^...`, `^...^`, `..`, `..^`, `^..`, `^..^`,
-		`::=`, `:=`, `!=`, `==`, `<=`, `<`, `>=`, `>`, `~~`, `===`, `&&`, `||`, `|`, `^^`, `//`,
-		`??`, `!!`, `^fff^`, `^ff^`, `<==`, `==>`, `<<==`, `==>>`, `=>`, `=`, `<<`, `«`, `>>`, `»`,
-		`,`, `>>.`, `».`, `.&`, `.=`, `.^`, `.?`, `.+`, `.*`, `.`, `∘`, `∩`, `⊍`, `∪`, `⊎`, `∖`,
-		`⊖`, `≠`, `≤`, `≥`, `=:=`, `=~=`, `≅`, `∈`, `∉`, `≡`, `≢`, `∋`, `∌`, `⊂`, `⊄`, `⊆`, `⊈`,
-		`⊃`, `⊅`, `⊇`, `⊉`, `:`, `!!!`, `???`, `¯`, `×`, `÷`, `−`, `⁺`, `⁻`,
-	}
-
-	operatorsPattern := Words(``, ``, operators...)
-
-	builtinTypes := []string{
-		`False`, `True`, `Order`, `More`, `Less`, `Same`, `Any`, `Array`, `Associative`, `AST`,
-		`atomicint`, `Attribute`, `Backtrace`, `Backtrace::Frame`, `Bag`, `Baggy`, `BagHash`,
-		`Blob`, `Block`, `Bool`, `Buf`, `Callable`, `CallFrame`, `Cancellation`, `Capture`,
-		`CArray`, `Channel`, `Code`, `compiler`, `Complex`, `ComplexStr`, `CompUnit`,
-		`CompUnit::PrecompilationRepository`, `CompUnit::Repository`, `Empty`,
-		`CompUnit::Repository::FileSystem`, `CompUnit::Repository::Installation`, `Cool`,
-		`CurrentThreadScheduler`, `CX::Warn`, `CX::Take`, `CX::Succeed`, `CX::Return`, `CX::Redo`,
-		`CX::Proceed`, `CX::Next`, `CX::Last`, `CX::Emit`, `CX::Done`, `Cursor`, `Date`, `Dateish`,
-		`DateTime`, `Distribution`, `Distribution::Hash`, `Distribution::Locally`,
-		`Distribution::Path`, `Distribution::Resource`, `Distro`, `Duration`, `Encoding`,
-		`Encoding::GlobalLexerRegistry`, `Endian`, `Enumeration`, `Exception`, `Failure`, `FatRat`, `Grammar`,
-		`Hash`, `HyperWhatever`, `Instant`, `Int`, `int`, `int16`, `int32`, `int64`, `int8`, `str`,
-		`IntStr`, `IO`, `IO::ArgFiles`, `IO::CatHandle`, `IO::Handle`, `IO::Notification`,
-		`IO::Notification::Change`, `IO::Path`, `IO::Path::Cygwin`, `IO::Path::Parts`,
-		`IO::Path::QNX`, `IO::Path::Unix`, `IO::Path::Win32`, `IO::Pipe`, `IO::Socket`,
-		`IO::Socket::Async`, `IO::Socket::Async::ListenSocket`, `IO::Socket::INET`, `IO::Spec`,
-		`IO::Spec::Cygwin`, `IO::Spec::QNX`, `IO::Spec::Unix`, `IO::Spec::Win32`, `IO::Special`,
-		`Iterable`, `Iterator`, `Junction`, `Kernel`, `Label`, `List`, `Lock`, `Lock::Async`,
-		`Lock::ConditionVariable`, `long`, `longlong`, `Macro`, `Map`, `Match`,
-		`Metamodel::AttributeContainer`, `Metamodel::C3MRO`, `Metamodel::ClassHOW`,
-		`Metamodel::ConcreteRoleHOW`, `Metamodel::CurriedRoleHOW`, `Metamodel::DefiniteHOW`,
-		`Metamodel::Documenting`, `Metamodel::EnumHOW`, `Metamodel::Finalization`,
-		`Metamodel::MethodContainer`, `Metamodel::Mixins`, `Metamodel::MROBasedMethodDispatch`,
-		`Metamodel::MultipleInheritance`, `Metamodel::Naming`, `Metamodel::Primitives`,
-		`Metamodel::PrivateMethodContainer`, `Metamodel::RoleContainer`, `Metamodel::RolePunning`,
-		`Metamodel::Stashing`, `Metamodel::Trusting`, `Metamodel::Versioning`, `Method`, `Mix`,
-		`MixHash`, `Mixy`, `Mu`, `NFC`, `NFD`, `NFKC`, `NFKD`, `Nil`, `Num`, `num32`, `num64`,
-		`Numeric`, `NumStr`, `ObjAt`, `Order`, `Pair`, `Parameter`, `Perl`, `Pod::Block`,
-		`Pod::Block::Code`, `Pod::Block::Comment`, `Pod::Block::Declarator`, `Pod::Block::Named`,
-		`Pod::Block::Para`, `Pod::Block::Table`, `Pod::Heading`, `Pod::Item`, `Pointer`,
-		`Positional`, `PositionalBindFailover`, `Proc`, `Proc::Async`, `Promise`, `Proxy`,
-		`PseudoStash`, `QuantHash`, `RaceSeq`, `Raku`, `Range`, `Rat`, `Rational`, `RatStr`,
-		`Real`, `Regex`, `Routine`, `Routine::WrapHandle`, `Scalar`, `Scheduler`, `Semaphore`,
-		`Seq`, `Sequence`, `Set`, `SetHash`, `Setty`, `Signature`, `size_t`, `Slip`, `Stash`,
-		`Str`, `StrDistance`, `Stringy`, `Sub`, `Submethod`, `Supplier`, `Supplier::Preserving`,
-		`Supply`, `Systemic`, `Tap`, `Telemetry`, `Telemetry::Instrument::Thread`,
-		`Telemetry::Instrument::ThreadPool`, `Telemetry::Instrument::Usage`, `Telemetry::Period`,
-		`Telemetry::Sampler`, `Thread`, `Test`, `ThreadPoolScheduler`, `UInt`, `uint16`, `uint32`,
-		`uint64`, `uint8`, `Uni`, `utf8`, `ValueObjAt`, `Variable`, `Version`, `VM`, `Whatever`,
-		`WhateverCode`, `WrapHandle`, `NativeCall`,
-		// Pragmas
-		`precompilation`, `experimental`, `worries`, `MONKEY-TYPING`, `MONKEY-SEE-NO-EVAL`,
-		`MONKEY-GUTS`, `fatal`, `lib`, `isms`, `newline`, `nqp`, `soft`,
-		`strict`, `trace`, `variables`,
-	}
-
-	builtinTypesPattern := Words(`(?<!['\w:-])`, `(?::[_UD])?(?!['\w:-])`, builtinTypes...)
-
-	builtinRoutines := []string{
-		`ACCEPTS`, `abs`, `abs2rel`, `absolute`, `accept`, `accepts_type`, `accessed`, `acos`,
-		`acosec`, `acosech`, `acosh`, `acotan`, `acotanh`, `acquire`, `act`, `action`, `actions`,
-		`add`, `add_attribute`, `add_enum_value`, `add_fallback`, `add_method`, `add_parent`,
-		`add_private_method`, `add_role`, `add_stash`, `add_trustee`, `addendum`, `adverb`, `after`,
-		`all`, `allocate`, `allof`, `allowed`, `alternative-names`, `annotations`, `antipair`,
-		`antipairs`, `any`, `anyof`, `api`, `app_lifetime`, `append`, `arch`, `archetypes`,
-		`archname`, `args`, `ARGS-TO-CAPTURE`, `arity`, `Array`, `asec`, `asech`, `asin`, `asinh`,
-		`ASSIGN-KEY`, `ASSIGN-POS`, `assuming`, `ast`, `at`, `atan`, `atan2`, `atanh`, `AT-KEY`,
-		`atomic-assign`, `atomic-dec-fetch`, `atomic-fetch`, `atomic-fetch-add`, `atomic-fetch-dec`,
-		`atomic-fetch-inc`, `atomic-fetch-sub`, `atomic-inc-fetch`, `AT-POS`, `attributes`, `auth`,
-		`await`, `backend`, `backtrace`, `Bag`, `bag`, `Baggy`, `BagHash`, `bail-out`, `base`,
-		`basename`, `base-repeating`, `base_type`, `batch`, `BIND-KEY`, `BIND-POS`, `bind-stderr`,
-		`bind-stdin`, `bind-stdout`, `bind-udp`, `bits`, `bless`, `block`, `Bool`, `bool-only`,
-		`bounds`, `break`, `Bridge`, `broken`, `BUILD`, `TWEAK`, `build-date`, `bytes`, `cache`,
-		`callframe`, `calling-package`, `CALL-ME`, `callsame`, `callwith`, `can`, `cancel`,
-		`candidates`, `cando`, `can-ok`, `canonpath`, `caps`, `caption`, `Capture`, `capture`,
-		`cas`, `catdir`, `categorize`, `categorize-list`, `catfile`, `catpath`, `cause`, `ceiling`,
-		`cglobal`, `changed`, `Channel`, `channel`, `chars`, `chdir`, `child`, `child-name`,
-		`child-typename`, `chmod`, `chomp`, `chop`, `chr`, `chrs`, `chunks`, `cis`, `classify`,
-		`classify-list`, `cleanup`, `clone`, `close`, `closed`, `close-stdin`, `cmp-ok`, `code`,
-		`codename`, `codes`, `coerce_type`, `coll`, `collate`, `column`, `comb`, `combinations`,
-		`command`, `comment`, `compiler`, `Complex`, `compose`, `composalizer`, `compose_type`,
-		`compose_values`, `composer`, `compute_mro`, `condition`, `config`, `configure_destroy`,
-		`configure_type_checking`, `conj`, `connect`, `constraints`, `construct`, `contains`,
-		`content`, `contents`, `copy`, `cos`, `cosec`, `cosech`, `cosh`, `cotan`, `cotanh`, `count`,
-		`count-only`, `cpu-cores`, `cpu-usage`, `CREATE`, `create_type`, `cross`, `cue`, `curdir`,
-		`curupdir`, `d`, `Date`, `DateTime`, `day`, `daycount`, `day-of-month`, `day-of-week`,
-		`day-of-year`, `days-in-month`, `dd-mm-yyyy`, `declaration`, `decode`, `decoder`, `deepmap`,
-		`default`, `defined`, `DEFINITE`, `definite`, `delayed`, `delete`, `delete-by-compiler`,
-		`DELETE-KEY`, `DELETE-POS`, `denominator`, `desc`, `DESTROY`, `destroyers`, `devnull`,
-		`diag`, `did-you-mean`, `die`, `dies-ok`, `dir`, `dirname`, `distribution`, `dir-sep`,
-		`DISTROnames`, `do`, `does`, `does-ok`, `done`, `done-testing`, `duckmap`, `dynamic`, `e`,
-		`eager`, `earlier`, `elems`, `emit`, `enclosing`, `encode`, `encoder`, `encoding`, `end`,
-		`endian`, `ends-with`, `enum_from_value`, `enum_value_list`, `enum_values`, `enums`, `EOF`,
-		`eof`, `EVAL`, `eval-dies-ok`, `EVALFILE`, `eval-lives-ok`, `event`, `exception`,
-		`excludes-max`, `excludes-min`, `EXISTS-KEY`, `EXISTS-POS`, `exit`, `exitcode`, `exp`,
-		`expected`, `explicitly-manage`, `expmod`, `export_callback`, `extension`, `f`, `fail`,
-		`FALLBACK`, `fails-like`, `fc`, `feature`, `file`, `filename`, `files`, `find`,
-		`find_method`, `find_method_qualified`, `finish`, `first`, `flat`, `first-date-in-month`,
-		`flatmap`, `flip`, `floor`, `flunk`, `flush`, `flush_cache`, `fmt`, `format`, `formatter`,
-		`free-memory`, `freeze`, `from`, `from-list`, `from-loop`, `from-posix`, `from-slurpy`,
-		`full`, `full-barrier`, `GENERATE-USAGE`, `generate_mixin`, `get`, `get_value`, `getc`,
-		`gist`, `got`, `grab`, `grabpairs`, `grep`, `handle`, `handled`, `handles`, `hardware`,
-		`has_accessor`, `Hash`, `hash`, `head`, `headers`, `hh-mm-ss`, `hidden`, `hides`, `hostname`,
-		`hour`, `how`, `hyper`, `id`, `illegal`, `im`, `in`, `in-timezone`, `indent`, `index`,
-		`indices`, `indir`, `infinite`, `infix`, `postcirumfix`, `cicumfix`, `install`,
-		`install_method_cache`, `Instant`, `instead`, `Int`, `int-bounds`, `interval`, `in-timezone`,
-		`invalid-str`, `invert`, `invocant`, `IO`, `IO::Notification.watch-path`, `is_trusted`,
-		`is_type`, `isa`, `is-absolute`, `isa-ok`, `is-approx`, `is-deeply`, `is-hidden`,
-		`is-initial-thread`, `is-int`, `is-lazy`, `is-leap-year`, `isNaN`, `isnt`, `is-prime`,
-		`is-relative`, `is-routine`, `is-setting`, `is-win`, `item`, `iterator`, `join`, `keep`,
-		`kept`, `KERNELnames`, `key`, `keyof`, `keys`, `kill`, `kv`, `kxxv`, `l`, `lang`, `last`,
-		`lastcall`, `later`, `lazy`, `lc`, `leading`, `level`, `like`, `line`, `lines`, `link`,
-		`List`, `list`, `listen`, `live`, `lives-ok`, `load`, `load-repo-id`, `load-unit`, `loaded`,
-		`loads`, `local`, `lock`, `log`, `log10`, `lookup`, `lsb`, `made`, `MAIN`, `make`, `Map`,
-		`map`, `match`, `max`, `maxpairs`, `merge`, `message`, `method`, `meta`, `method_table`,
-		`methods`, `migrate`, `min`, `minmax`, `minpairs`, `minute`, `misplaced`, `Mix`, `mix`,
-		`MixHash`, `mixin`, `mixin_attribute`, `Mixy`, `mkdir`, `mode`, `modified`, `month`, `move`,
-		`mro`, `msb`, `multi`, `multiness`, `name`, `named`, `named_names`, `narrow`,
-		`nativecast`, `native-descriptor`, `nativesizeof`, `need`, `new`, `new_type`,
-		`new-from-daycount`, `new-from-pairs`, `next`, `nextcallee`, `next-handle`, `nextsame`,
-		`nextwith`, `next-interesting-index`, `NFC`, `NFD`, `NFKC`, `NFKD`, `nice`, `nl-in`,
-		`nl-out`, `nodemap`, `nok`, `normalize`, `none`, `norm`, `not`, `note`, `now`, `nude`,
-		`Num`, `numerator`, `Numeric`, `of`, `offset`, `offset-in-hours`, `offset-in-minutes`,
-		`ok`, `old`, `on-close`, `one`, `on-switch`, `open`, `opened`, `operation`, `optional`,
-		`ord`, `ords`, `orig`, `os-error`, `osname`, `out-buffer`, `pack`, `package`, `package-kind`,
-		`package-name`, `packages`, `Pair`, `pair`, `pairs`, `pairup`, `parameter`, `params`,
-		`parent`, `parent-name`, `parents`, `parse`, `parse-base`, `parsefile`, `parse-names`,
-		`parts`, `pass`, `path`, `path-sep`, `payload`, `peer-host`, `peer-port`, `periods`, `perl`,
-		`permutations`, `phaser`, `pick`, `pickpairs`, `pid`, `placeholder`, `plan`, `plus`,
-		`polar`, `poll`, `polymod`, `pop`, `pos`, `positional`, `posix`, `postfix`, `postmatch`,
-		`precomp-ext`, `precomp-target`, `precompiled`, `pred`, `prefix`, `prematch`, `prepend`,
-		`primary`, `print`, `printf`, `print-nl`, `print-to`, `private`, `private_method_names`,
-		`private_method_table`, `proc`, `produce`, `Promise`, `promise`, `prompt`, `protect`,
-		`protect-or-queue-on-recursion`, `publish_method_cache`, `pull-one`, `push`, `push-all`,
-		`push-at-least`, `push-exactly`, `push-until-lazy`, `put`, `qualifier-type`, `quaternary`,
-		`quit`, `r`, `race`, `radix`, `raku`, `rand`, `Range`, `range`, `Rat`, `raw`, `re`, `read`,
-		`read-bits`, `read-int128`, `read-int16`, `read-int32`, `read-int64`, `read-int8`,
-		`read-num32`, `read-num64`, `read-ubits`, `read-uint128`, `read-uint16`, `read-uint32`,
-		`read-uint64`, `read-uint8`, `readchars`, `readonly`, `ready`, `Real`, `reallocate`,
-		`reals`, `reason`, `rebless`, `receive`, `recv`, `redispatcher`, `redo`, `reduce`,
-		`rel2abs`, `relative`, `release`, `remove`, `rename`, `repeated`, `replacement`,
-		`replace-with`, `repo`, `repo-id`, `report`, `required`, `reserved`, `resolve`, `restore`,
-		`result`, `resume`, `rethrow`, `return`, `return-rw`, `returns`, `reverse`, `right`,
-		`rindex`, `rmdir`, `role`, `roles_to_compose`, `rolish`, `roll`, `rootdir`, `roots`,
-		`rotate`, `rotor`, `round`, `roundrobin`, `routine-type`, `run`, `RUN-MAIN`, `rw`, `rwx`,
-		`samecase`, `samemark`, `samewith`, `say`, `schedule-on`, `scheduler`, `scope`, `sec`,
-		`sech`, `second`, `secondary`, `seek`, `self`, `send`, `Seq`, `Set`, `set`, `serial`,
-		`set_hidden`, `set_name`, `set_package`, `set_rw`, `set_value`, `set_api`, `set_auth`,
-		`set_composalizer`, `set_export_callback`, `set_is_mixin`, `set_mixin_attribute`,
-		`set_package`, `set_ver`, `set_why`, `SetHash`, `Setty`, `set-instruments`,
-		`setup_finalization`, `setup_mixin_cache`, `shape`, `share`, `shell`, `short-id`,
-		`short-name`, `shortname`, `shift`, `sibling`, `sigil`, `sign`, `signal`, `signals`,
-		`signature`, `sin`, `sinh`, `sink`, `sink-all`, `skip`, `skip-at-least`,
-		`skip-at-least-pull-one`, `skip-one`, `skip-rest`, `sleep`, `sleep-timer`, `sleep-until`,
-		`Slip`, `slip`, `slurp`, `slurp-rest`, `slurpy`, `snap`, `snapper`, `so`, `socket-host`,
-		`socket-port`, `sort`, `source`, `source-package`, `spawn`, `SPEC`, `splice`, `split`,
-		`splitdir`, `splitpath`, `sprintf`, `spurt`, `sqrt`, `squish`, `srand`, `stable`, `start`,
-		`started`, `starts-with`, `status`, `stderr`, `stdout`, `STORE`, `store-file`,
-		`store-repo-id`, `store-unit`, `Str`, `Stringy`, `sub_signature`, `subbuf`, `subbuf-rw`,
-		`subname`, `subparse`, `subst`, `subst-mutate`, `substr`, `substr-eq`, `substr-rw`,
-		`subtest`, `succ`, `sum`, `suffix`, `summary`, `Supply`, `symlink`, `T`, `t`, `tail`,
-		`take`, `take-rw`, `tan`, `tanh`, `tap`, `target`, `target-name`, `tc`, `tclc`, `tell`,
-		`term`, `tertiary`, `then`, `throttle`, `throw`, `throws-like`, `time`, `timezone`,
-		`tmpdir`, `to`, `today`, `todo`, `toggle`, `to-posix`, `total`, `total-memory`, `trailing`,
-		`trans`, `tree`, `trim`, `trim-leading`, `trim-trailing`, `truncate`, `truncated-to`,
-		`trusts`, `try_acquire`, `trying`, `twigil`, `type`, `type_captures`, `type_check`,
-		`typename`, `uc`, `udp`, `uncaught_handler`, `undefine`, `unimatch`, `unicmp`, `uniname`,
-		`uninames`, `uninstall`, `uniparse`, `uniprop`, `uniprops`, `unique`, `unival`, `univals`,
-		`unlike`, `unlink`, `unlock`, `unpack`, `unpolar`, `unset`, `unshift`, `unwrap`, `updir`,
-		`USAGE`, `usage-name`, `use-ok`, `utc`, `val`, `value`, `values`, `VAR`, `variable`, `ver`,
-		`verbose-config`, `Version`, `version`, `VMnames`, `volume`, `vow`, `w`, `wait`, `warn`,
-		`watch`, `watch-path`, `week`, `weekday-of-month`, `week-number`, `week-year`, `WHAT`,
-		`what`, `when`, `WHERE`, `WHEREFORE`, `WHICH`, `WHO`, `whole-second`, `WHY`, `why`,
-		`with-lock-hidden-from-recursion-check`, `wordcase`, `words`, `workaround`, `wrap`,
-		`write`, `write-bits`, `write-int128`, `write-int16`, `write-int32`, `write-int64`,
-		`write-int8`, `write-num32`, `write-num64`, `write-ubits`, `write-uint128`, `write-uint16`,
-		`write-uint32`, `write-uint64`, `write-uint8`, `write-to`, `x`, `yada`, `year`, `yield`,
-		`yyyy-mm-dd`, `z`, `zip`, `zip-latest`, `HOW`, `s`, `DEPRECATED`, `trait_mod`,
-	}
-
-	builtinRoutinesPattern := Words(`(?<!['\w:-])`, `(?!['\w-])`, builtinRoutines...)
-
-	// A map of opening and closing brackets
-	brackets := map[rune]rune{
-		'\u0028': '\u0029', '\u003c': '\u003e', '\u005b': '\u005d',
-		'\u007b': '\u007d', '\u00ab': '\u00bb', '\u0f3a': '\u0f3b',
-		'\u0f3c': '\u0f3d', '\u169b': '\u169c', '\u2018': '\u2019',
-		'\u201a': '\u2019', '\u201b': '\u2019', '\u201c': '\u201d',
-		'\u201e': '\u201d', '\u201f': '\u201d', '\u2039': '\u203a',
-		'\u2045': '\u2046', '\u207d': '\u207e', '\u208d': '\u208e',
-		'\u2208': '\u220b', '\u2209': '\u220c', '\u220a': '\u220d',
-		'\u2215': '\u29f5', '\u223c': '\u223d', '\u2243': '\u22cd',
-		'\u2252': '\u2253', '\u2254': '\u2255', '\u2264': '\u2265',
-		'\u2266': '\u2267', '\u2268': '\u2269', '\u226a': '\u226b',
-		'\u226e': '\u226f', '\u2270': '\u2271', '\u2272': '\u2273',
-		'\u2274': '\u2275', '\u2276': '\u2277', '\u2278': '\u2279',
-		'\u227a': '\u227b', '\u227c': '\u227d', '\u227e': '\u227f',
-		'\u2280': '\u2281', '\u2282': '\u2283', '\u2284': '\u2285',
-		'\u2286': '\u2287', '\u2288': '\u2289', '\u228a': '\u228b',
-		'\u228f': '\u2290', '\u2291': '\u2292', '\u2298': '\u29b8',
-		'\u22a2': '\u22a3', '\u22a6': '\u2ade', '\u22a8': '\u2ae4',
-		'\u22a9': '\u2ae3', '\u22ab': '\u2ae5', '\u22b0': '\u22b1',
-		'\u22b2': '\u22b3', '\u22b4': '\u22b5', '\u22b6': '\u22b7',
-		'\u22c9': '\u22ca', '\u22cb': '\u22cc', '\u22d0': '\u22d1',
-		'\u22d6': '\u22d7', '\u22d8': '\u22d9', '\u22da': '\u22db',
-		'\u22dc': '\u22dd', '\u22de': '\u22df', '\u22e0': '\u22e1',
-		'\u22e2': '\u22e3', '\u22e4': '\u22e5', '\u22e6': '\u22e7',
-		'\u22e8': '\u22e9', '\u22ea': '\u22eb', '\u22ec': '\u22ed',
-		'\u22f0': '\u22f1', '\u22f2': '\u22fa', '\u22f3': '\u22fb',
-		'\u22f4': '\u22fc', '\u22f6': '\u22fd', '\u22f7': '\u22fe',
-		'\u2308': '\u2309', '\u230a': '\u230b', '\u2329': '\u232a',
-		'\u23b4': '\u23b5', '\u2768': '\u2769', '\u276a': '\u276b',
-		'\u276c': '\u276d', '\u276e': '\u276f', '\u2770': '\u2771',
-		'\u2772': '\u2773', '\u2774': '\u2775', '\u27c3': '\u27c4',
-		'\u27c5': '\u27c6', '\u27d5': '\u27d6', '\u27dd': '\u27de',
-		'\u27e2': '\u27e3', '\u27e4': '\u27e5', '\u27e6': '\u27e7',
-		'\u27e8': '\u27e9', '\u27ea': '\u27eb', '\u2983': '\u2984',
-		'\u2985': '\u2986', '\u2987': '\u2988', '\u2989': '\u298a',
-		'\u298b': '\u298c', '\u298d': '\u298e', '\u298f': '\u2990',
-		'\u2991': '\u2992', '\u2993': '\u2994', '\u2995': '\u2996',
-		'\u2997': '\u2998', '\u29c0': '\u29c1', '\u29c4': '\u29c5',
-		'\u29cf': '\u29d0', '\u29d1': '\u29d2', '\u29d4': '\u29d5',
-		'\u29d8': '\u29d9', '\u29da': '\u29db', '\u29f8': '\u29f9',
-		'\u29fc': '\u29fd', '\u2a2b': '\u2a2c', '\u2a2d': '\u2a2e',
-		'\u2a34': '\u2a35', '\u2a3c': '\u2a3d', '\u2a64': '\u2a65',
-		'\u2a79': '\u2a7a', '\u2a7d': '\u2a7e', '\u2a7f': '\u2a80',
-		'\u2a81': '\u2a82', '\u2a83': '\u2a84', '\u2a8b': '\u2a8c',
-		'\u2a91': '\u2a92', '\u2a93': '\u2a94', '\u2a95': '\u2a96',
-		'\u2a97': '\u2a98', '\u2a99': '\u2a9a', '\u2a9b': '\u2a9c',
-		'\u2aa1': '\u2aa2', '\u2aa6': '\u2aa7', '\u2aa8': '\u2aa9',
-		'\u2aaa': '\u2aab', '\u2aac': '\u2aad', '\u2aaf': '\u2ab0',
-		'\u2ab3': '\u2ab4', '\u2abb': '\u2abc', '\u2abd': '\u2abe',
-		'\u2abf': '\u2ac0', '\u2ac1': '\u2ac2', '\u2ac3': '\u2ac4',
-		'\u2ac5': '\u2ac6', '\u2acd': '\u2ace', '\u2acf': '\u2ad0',
-		'\u2ad1': '\u2ad2', '\u2ad3': '\u2ad4', '\u2ad5': '\u2ad6',
-		'\u2aec': '\u2aed', '\u2af7': '\u2af8', '\u2af9': '\u2afa',
-		'\u2e02': '\u2e03', '\u2e04': '\u2e05', '\u2e09': '\u2e0a',
-		'\u2e0c': '\u2e0d', '\u2e1c': '\u2e1d', '\u2e20': '\u2e21',
-		'\u3008': '\u3009', '\u300a': '\u300b', '\u300c': '\u300d',
-		'\u300e': '\u300f', '\u3010': '\u3011', '\u3014': '\u3015',
-		'\u3016': '\u3017', '\u3018': '\u3019', '\u301a': '\u301b',
-		'\u301d': '\u301e', '\ufd3e': '\ufd3f', '\ufe17': '\ufe18',
-		'\ufe35': '\ufe36', '\ufe37': '\ufe38', '\ufe39': '\ufe3a',
-		'\ufe3b': '\ufe3c', '\ufe3d': '\ufe3e', '\ufe3f': '\ufe40',
-		'\ufe41': '\ufe42', '\ufe43': '\ufe44', '\ufe47': '\ufe48',
-		'\ufe59': '\ufe5a', '\ufe5b': '\ufe5c', '\ufe5d': '\ufe5e',
-		'\uff08': '\uff09', '\uff1c': '\uff1e', '\uff3b': '\uff3d',
-		'\uff5b': '\uff5d', '\uff5f': '\uff60', '\uff62': '\uff63',
-	}
-
-	bracketsPattern := `[` + regexp.QuoteMeta(joinRuneMap(brackets)) + `]`
-
-	// Finds opening brackets and their closing counterparts (including pod and heredoc)
-	// and modifies state groups and position accordingly
-	findBrackets := func(tokenClass RakuToken) MutatorFunc {
-		return func(state *LexerState) error {
-			var openingChars []rune
-			var adverbs []rune
-			switch tokenClass {
-			case rakuPod:
-				openingChars = []rune(strings.Join(state.Groups[1:5], ``))
-			default:
-				adverbs = []rune(state.NamedGroups[`adverbs`])
-				openingChars = []rune(state.NamedGroups[`opening_delimiters`])
-			}
-
-			openingChar := openingChars[0]
-
-			nChars := len(openingChars)
-
-			var closingChar rune
-			var closingCharExists bool
-			var closingChars []rune
-
-			switch tokenClass {
-			case rakuPod:
-				closingCharExists = true
-			default:
-				closingChar, closingCharExists = brackets[openingChar]
-			}
-
-			switch tokenClass {
-			case rakuPodFormatter:
-				formatter := StringOther
-
-				switch state.NamedGroups[`keyword`] {
-				case "B":
-					formatter = GenericStrong
-				case "I":
-					formatter = GenericEmph
-				case "U":
-					formatter = GenericUnderline
-				}
-
-				formatterRule := ruleReplacingConfig{
-					pattern:      `.+?`,
-					tokenType:    formatter,
-					mutator:      nil,
-					stateName:    `pod-formatter`,
-					rulePosition: bottomRule,
-				}
-
-				err := replaceRule(formatterRule)(state)
-				if err != nil {
-					panic(err)
-				}
-
-				err = replaceRule(ruleReplacingConfig{
-					delimiter:              []rune{closingChar},
-					tokenType:              Punctuation,
-					stateName:              `pod-formatter`,
-					pushState:              true,
-					numberOfDelimiterChars: nChars,
-					appendMutator:          popRule(formatterRule),
-				})(state)
-				if err != nil {
-					panic(err)
-				}
-
-				return nil
-			case rakuMatchRegex:
-				var delimiter []rune
-				if closingCharExists {
-					delimiter = []rune{closingChar}
-				} else {
-					delimiter = openingChars
-				}
-
-				err := replaceRule(ruleReplacingConfig{
-					delimiter: delimiter,
-					tokenType: Punctuation,
-					stateName: `regex`,
-					popState:  true,
-					pushState: true,
-				})(state)
-				if err != nil {
-					panic(err)
-				}
-
-				return nil
-			case rakuSubstitutionRegex:
-				delimiter := regexp2.Escape(string(openingChars))
-
-				err := replaceRule(ruleReplacingConfig{
-					pattern:      `(` + delimiter + `)` + `((?:\\\\|\\/|.)*?)` + `(` + delimiter + `)`,
-					tokenType:    ByGroups(Punctuation, UsingSelf(`qq`), Punctuation),
-					rulePosition: topRule,
-					stateName:    `regex`,
-					popState:     true,
-					pushState:    true,
-				})(state)
-				if err != nil {
-					panic(err)
-				}
-
-				return nil
-			}
-
-			text := state.Text
-
-			var endPos int
-
-			var nonMirroredOpeningCharPosition int
-
-			if !closingCharExists {
-				// it's not a mirrored character, which means we
-				// just need to look for the next occurrence
-				closingChars = openingChars
-				nonMirroredOpeningCharPosition = indexAt(text, closingChars, state.Pos)
-				endPos = nonMirroredOpeningCharPosition
-			} else {
-				var podRegex *regexp2.Regexp
-				if tokenClass == rakuPod {
-					podRegex = regexp2.MustCompile(
-						state.NamedGroups[`ws`]+`=end`+`\s+`+regexp2.Escape(state.NamedGroups[`name`]),
-						0,
-					)
-				} else {
-					closingChars = []rune(strings.Repeat(string(closingChar), nChars))
-				}
-
-				// we need to look for the corresponding closing character,
-				// keep nesting in mind
-				nestingLevel := 1
-
-				searchPos := state.Pos - nChars
-
-				var nextClosePos int
-
-				for nestingLevel > 0 {
-					if tokenClass == rakuPod {
-						match, err := podRegex.FindRunesMatchStartingAt(text, searchPos+nChars)
-						if err == nil {
-							closingChars = match.Runes()
-							nextClosePos = match.Index
-						} else {
-							nextClosePos = -1
-						}
-					} else {
-						nextClosePos = indexAt(text, closingChars, searchPos+nChars)
-					}
-
-					nextOpenPos := indexAt(text, openingChars, searchPos+nChars)
-
-					switch {
-					case nextClosePos == -1:
-						nextClosePos = len(text)
-						nestingLevel = 0
-					case nextOpenPos != -1 && nextOpenPos < nextClosePos:
-						nestingLevel++
-						nChars = len(openingChars)
-						searchPos = nextOpenPos
-					default: // next_close_pos < next_open_pos
-						nestingLevel--
-						nChars = len(closingChars)
-						searchPos = nextClosePos
-					}
-				}
-
-				endPos = nextClosePos
-			}
-
-			if endPos < 0 {
-				// if we didn't find a closer, just highlight the
-				// rest of the text in this class
-				endPos = len(text)
-			}
-
-			adverbre := regexp.MustCompile(`:to\b|:heredoc\b`)
-			var heredocTerminator []rune
-			var endHeredocPos int
-			if adverbre.MatchString(string(adverbs)) {
-				if endPos != len(text) {
-					heredocTerminator = text[state.Pos:endPos]
-					nChars = len(heredocTerminator)
-				} else {
-					endPos = state.Pos + 1
-					heredocTerminator = []rune{}
-					nChars = 0
-				}
-
-				if nChars > 0 {
-					endHeredocPos = indexAt(text[endPos:], heredocTerminator, 0)
-					if endHeredocPos > -1 {
-						endPos += endHeredocPos
-					} else {
-						endPos = len(text)
-					}
-				}
-			}
-
-			textBetweenBrackets := string(text[state.Pos:endPos])
-			switch tokenClass {
-			case rakuPod, rakuPodDeclaration, rakuNameAttribute:
-				state.NamedGroups[`value`] = textBetweenBrackets
-				state.NamedGroups[`closing_delimiters`] = string(closingChars)
-			case rakuQuote:
-				if len(heredocTerminator) > 0 {
-					// Length of heredoc terminator + closing chars + `;`
-					heredocFristPunctuationLen := nChars + len(openingChars) + 1
-
-					state.NamedGroups[`opening_delimiters`] = string(openingChars) +
-						string(text[state.Pos:state.Pos+heredocFristPunctuationLen])
-
-					state.NamedGroups[`value`] =
-						string(text[state.Pos+heredocFristPunctuationLen : endPos])
-
-					if endHeredocPos > -1 {
-						state.NamedGroups[`closing_delimiters`] = string(heredocTerminator)
-					}
-				} else {
-					state.NamedGroups[`value`] = textBetweenBrackets
-					if nChars > 0 {
-						state.NamedGroups[`closing_delimiters`] = string(closingChars)
-					}
-				}
-			default:
-				state.Groups = []string{state.Groups[0] + string(text[state.Pos:endPos+nChars])}
-			}
-
-			state.Pos = endPos + nChars
-
-			return nil
-		}
-	}
-
-	// Raku rules
-	// Empty capture groups are placeholders and will be replaced by mutators
-	// DO NOT REMOVE THEM!
-	return Rules{
-		"root": {
-			// Placeholder, will be overwritten by mutators, DO NOT REMOVE!
-			{`\A\z`, nil, nil},
-			Include("common"),
-			{`{`, Punctuation, Push(`root`)},
-			{`\(`, Punctuation, Push(`root`)},
-			{`[)}]`, Punctuation, Pop(1)},
-			{`;`, Punctuation, nil},
-			{`\[|\]`, Operator, nil},
-			{`.+?`, Text, nil},
-		},
-		"common": {
-			{`^#![^\n]*$`, CommentHashbang, nil},
-			Include("pod"),
-			// Multi-line, Embedded comment
-			{
-				"#`(?<opening_delimiters>(?<delimiter>" + bracketsPattern + `)\k<delimiter>*)`,
-				CommentMultiline,
-				findBrackets(rakuMultilineComment),
-			},
-			{`#[^\n]*$`, CommentSingle, nil},
-			// /regex/
-			{
-				`(?<=(?:^|\(|=|:|~~|\[|{|,|=>)\s*)(/)(?!\]|\))((?:\\\\|\\/|.)*?)((?<!(?<!\\)\\)/(?!'|"))`,
-				ByGroups(Punctuation, UsingSelf("regex"), Punctuation),
-				nil,
-			},
-			Include("variable"),
-			// ::?VARIABLE
-			{`::\?\w+(?::[_UD])?`, NameVariableGlobal, nil},
-			// Version
-			{
-				`\b(v)(\d+)((?:\.(?:\*|[\d\w]+))*)(\+)?`,
-				ByGroups(Keyword, NumberInteger, NameEntity, Operator),
-				nil,
-			},
-			Include("number"),
-			// Hyperoperator | »*«
-			{`(>>)(\S+?)(<<)`, ByGroups(Operator, UsingSelf("root"), Operator), nil},
-			{`(»)(\S+?)(«)`, ByGroups(Operator, UsingSelf("root"), Operator), nil},
-			// Hyperoperator | «*«
-			{`(<<)(\S+?)(<<)`, ByGroups(Operator, UsingSelf("root"), Operator), nil},
-			{`(«)(\S+?)(«)`, ByGroups(Operator, UsingSelf("root"), Operator), nil},
-			// Hyperoperator | »*»
-			{`(>>)(\S+?)(>>)`, ByGroups(Operator, UsingSelf("root"), Operator), nil},
-			{`(»)(\S+?)(»)`, ByGroups(Operator, UsingSelf("root"), Operator), nil},
-			// <<quoted words>>
-			{`(?<!(?:\d+|\.(?:Int|Numeric)|[$@%]\*?[\w':-]+\s+|[\])}]\s+)\s*)(<<)(?!(?:(?!>>)[^\n])+?[},;] *\n)(?!(?:(?!>>).)+?>>\S+?>>)`, Punctuation, Push("<<")},
-			// «quoted words»
-			{`(?<!(?:\d+|\.(?:Int|Numeric)|[$@%]\*?[\w':-]+\s+|[\])}]\s+)\s*)(«)(?![^»]+?[},;] *\n)(?![^»]+?»\S+?»)`, Punctuation, Push("«")},
-			// [<]
-			{`(?<=\[\\?)<(?=\])`, Operator, nil},
-			// < and > operators | something < onething > something
-			{
-				`(?<=[$@%&]?\w[\w':-]* +)(<=?)( *[^ ]+? *)(>=?)(?= *[$@%&]?\w[\w':-]*)`,
-				ByGroups(Operator, UsingSelf("root"), Operator),
-				nil,
-			},
-			// <quoted words>
-			{
-				`(?<!(?:\d+|\.(?:Int|Numeric)|[$@%]\*?[\w':-]+\s+|[\])}]\s+)\s*)(<)((?:(?![,;)}] *(?:#[^\n]+)?\n)[^<>])+?)(>)(?!\s*(?:\d+|\.(?:Int|Numeric)|[$@%]\*?\w[\w':-]*[^(]|\s+\[))`,
-				ByGroups(Punctuation, String, Punctuation),
-				nil,
-			},
-			{`C?X::['\w:-]+`, NameException, nil},
-			Include("metaoperator"),
-			// Pair | key => value
-			{
-				`(\w[\w'-]*)(\s*)(=>)`,
-				ByGroups(String, Text, Operator),
-				nil,
-			},
-			Include("colon-pair"),
-			// Token
-			{
-				`(?<=(?:^|\s)(?:regex|token|rule)(\s+))` + namePattern + colonPairLookahead + `\s*[({])`,
-				NameFunction,
-				Push("token", "name-adverb"),
-			},
-			// Substitution
-			{`(?<=^|\b|\s)(?<!\.)(ss|S|s|TR|tr)\b(\s*)`, ByGroups(Keyword, Text), Push("substitution")},
-			{keywordsPattern, Keyword, nil},
-			{builtinTypesPattern, NameBuiltin, nil},
-			{builtinRoutinesPattern, NameBuiltin, nil},
-			// Class name
-			{
-				`(?<=(?:^|\s)(?:class|grammar|role|does|but|is|subset|of)\s+)` + namePattern,
-				NameClass,
-				Push("name-adverb"),
-			},
-			//  Routine
-			{
-				`(?<=(?:^|\s)(?:sub|method|multi sub|multi)\s+)!?` + namePattern + colonPairLookahead + `\s*[({])`,
-				NameFunction,
-				Push("name-adverb"),
-			},
-			// Constant
-			{`(?<=\bconstant\s+)` + namePattern, NameConstant, Push("name-adverb")},
-			// Namespace
-			{`(?<=\b(?:use|module|package)\s+)` + namePattern, NameNamespace, Push("name-adverb")},
-			Include("operator"),
-			Include("single-quote"),
-			{`(?<!(?<!\\)\\)"`, Punctuation, Push("double-quotes")},
-			// m,rx regex
-			{`(?<=^|\b|\s)(ms|m|rx)\b(\s*)`, ByGroups(Keyword, Text), Push("rx")},
-			// Quote constructs
-			{
-				`(?<=^|\b|\s)(?<keyword>(?:qq|q|Q))(?<adverbs>(?::?(?:heredoc|to|qq|ww|q|w|s|a|h|f|c|b|to|v|x))*)(?<ws>\s*)(?<opening_delimiters>(?<delimiter>[^0-9a-zA-Z:\s])\k<delimiter>*)`,
-				EmitterFunc(quote),
-				findBrackets(rakuQuote),
-			},
-			// Function
-			{
-				`\b` + namePattern + colonPairLookahead + `\()`,
-				NameFunction,
-				Push("name-adverb"),
-			},
-			// Method
-			{
-				`(?<!\.\.[?^*+]?)(?<=(?:\.[?^*+&]?)|self!)` + namePattern + colonPairLookahead + `\b)`,
-				NameFunction,
-				Push("name-adverb"),
-			},
-			// Indirect invocant
-			{namePattern + `(?=\s+\W?['\w:-]+:\W)`, NameFunction, Push("name-adverb")},
-			{`(?<=\W)(?:∅|i|e|𝑒|tau|τ|pi|π|Inf|∞)(?=\W)`, NameConstant, nil},
-			{`(｢)([^｣]*)(｣)`, ByGroups(Punctuation, String, Punctuation), nil},
-			{`(?<=^ *)\b` + namePattern + `(?=:\s*(?:for|while|loop))`, NameLabel, nil},
-			// Sigilless variable
-			{
-				`(?<=\b(?:my|our|constant|let|temp)\s+)\\` + namePattern,
-				NameVariable,
-				Push("name-adverb"),
-			},
-			{namePattern, Name, Push("name-adverb")},
-		},
-		"rx": {
-			Include("colon-pair-attribute"),
-			{
-				`(?<opening_delimiters>(?<delimiter>[^\w:\s])\k<delimiter>*)`,
-				ByGroupNames(
-					map[string]Emitter{
-						`opening_delimiters`: Punctuation,
-						`delimiter`:          nil,
-					},
-				),
-				findBrackets(rakuMatchRegex),
-			},
-		},
-		"substitution": {
-			Include("colon-pair-attribute"),
-			// Substitution | s{regex} = value
-			{
-				`(?<opening_delimiters>(?<delimiter>` + bracketsPattern + `)\k<delimiter>*)`,
-				ByGroupNames(map[string]Emitter{
-					`opening_delimiters`: Punctuation,
-					`delimiter`:          nil,
-				}),
-				findBrackets(rakuMatchRegex),
-			},
-			// Substitution | s/regex/string/
-			{
-				`(?<opening_delimiters>[^\w:\s])`,
-				Punctuation,
-				findBrackets(rakuSubstitutionRegex),
-			},
-		},
-		"number": {
-			{`0_?[0-7]+(_[0-7]+)*`, LiteralNumberOct, nil},
-			{`0x[0-9A-Fa-f]+(_[0-9A-Fa-f]+)*`, LiteralNumberHex, nil},
-			{`0b[01]+(_[01]+)*`, LiteralNumberBin, nil},
-			{
-				`(?i)(\d*(_\d*)*\.\d+(_\d*)*|\d+(_\d*)*\.\d+(_\d*)*)(e[+-]?\d+)?`,
-				LiteralNumberFloat,
-				nil,
-			},
-			{`(?i)\d+(_\d*)*e[+-]?\d+(_\d*)*`, LiteralNumberFloat, nil},
-			{`(?<=\d+)i`, NameConstant, nil},
-			{`\d+(_\d+)*`, LiteralNumberInteger, nil},
-		},
-		"name-adverb": {
-			Include("colon-pair-attribute-keyvalue"),
-			Default(Pop(1)),
-		},
-		"colon-pair": {
-			// :key(value)
-			{colonPairPattern, colonPair(String), findBrackets(rakuNameAttribute)},
-			// :123abc
-			{
-				`(:)(\d+)(\w[\w'-]*)`,
-				ByGroups(Punctuation, UsingSelf("number"), String),
-				nil,
-			},
-			// :key
-			{`(:)(!?)(\w[\w'-]*)`, ByGroups(Punctuation, Operator, String), nil},
-			{`\s+`, Text, nil},
-		},
-		"colon-pair-attribute": {
-			// :key(value)
-			{colonPairPattern, colonPair(NameAttribute), findBrackets(rakuNameAttribute)},
-			// :123abc
-			{
-				`(:)(\d+)(\w[\w'-]*)`,
-				ByGroups(Punctuation, UsingSelf("number"), NameAttribute),
-				nil,
-			},
-			// :key
-			{`(:)(!?)(\w[\w'-]*)`, ByGroups(Punctuation, Operator, NameAttribute), nil},
-			{`\s+`, Text, nil},
-		},
-		"colon-pair-attribute-keyvalue": {
-			// :key(value)
-			{colonPairPattern, colonPair(NameAttribute), findBrackets(rakuNameAttribute)},
-		},
-		"escape-qq": {
-			{
-				`(?<!(?<!\\)\\)(\\qq)(\[)(.+?)(\])`,
-				ByGroups(StringEscape, Punctuation, UsingSelf("qq"), Punctuation),
-				nil,
-			},
-		},
-		`escape-char`: {
-			{`(?<!(?<!\\)\\)(\\[abfrnrt])`, StringEscape, nil},
-		},
-		`escape-single-quote`: {
-			{`(?<!(?<!\\)\\)(\\)(['\\])`, ByGroups(StringEscape, StringSingle), nil},
-		},
-		"escape-c-name": {
-			{
-				`(?<!(?<!\\)\\)(\\[c|C])(\[)(.+?)(\])`,
-				ByGroups(StringEscape, Punctuation, String, Punctuation),
-				nil,
-			},
-		},
-		"escape-hexadecimal": {
-			{
-				`(?<!(?<!\\)\\)(\\[x|X])(\[)([0-9a-fA-F]+)(\])`,
-				ByGroups(StringEscape, Punctuation, NumberHex, Punctuation),
-				nil,
-			},
-			{`(\\[x|X])([0-9a-fA-F]+)`, ByGroups(StringEscape, NumberHex), nil},
-		},
-		"regex": {
-			// Placeholder, will be overwritten by mutators, DO NOT REMOVE!
-			{`\A\z`, nil, nil},
-			Include("regex-escape-class"),
-			Include(`regex-character-escape`),
-			// $(code)
-			{
-				`([$@])((?<!(?<!\\)\\)\()`,
-				ByGroups(Keyword, Punctuation),
-				replaceRule(ruleReplacingConfig{
-					delimiter: []rune(`)`),
-					tokenType: Punctuation,
-					stateName: `root`,
-					pushState: true,
-				}),
-			},
-			// Exclude $/ from variables, because we can't get out of the end of the slash regex: $/;
-			{`\$(?=/)`, NameEntity, nil},
-			// Exclude $ from variables
-			{`\$(?=\z|\s|[^<(\w*!.])`, NameEntity, nil},
-			Include("variable"),
-			Include("escape-c-name"),
-			Include("escape-hexadecimal"),
-			Include("number"),
-			Include("single-quote"),
-			// :my variable code ...
-			{
-				`(?<!(?<!\\)\\)(:)(my|our|state|constant|temp|let)`,
-				ByGroups(Operator, KeywordDeclaration),
-				replaceRule(ruleReplacingConfig{
-					delimiter: []rune(`;`),
-					tokenType: Punctuation,
-					stateName: `root`,
-					pushState: true,
-				}),
-			},
-			// <{code}>
-			{
-				`(?<!(?<!\\)\\)(<)([?!.]*)((?<!(?<!\\)\\){)`,
-				ByGroups(Punctuation, Operator, Punctuation),
-				replaceRule(ruleReplacingConfig{
-					delimiter: []rune(`}>`),
-					tokenType: Punctuation,
-					stateName: `root`,
-					pushState: true,
-				}),
-			},
-			// {code}
-			Include(`closure`),
-			// Properties
-			{`(:)(\w+)`, ByGroups(Punctuation, NameAttribute), nil},
-			// Operator
-			{`\|\||\||&&|&|\.\.|\*\*|%%|%|:|!|<<|«|>>|»|\+|\*\*|\*|\?|=|~|<~~>`, Operator, nil},
-			// Anchors
-			{`\^\^|\^|\$\$|\$`, NameEntity, nil},
-			{`\.`, NameEntity, nil},
-			{`#[^\n]*\n`, CommentSingle, nil},
-			// Lookaround
-			{
-				`(?<!(?<!\\)\\)(<)(\s*)([?!.]+)(\s*)(after|before)`,
-				ByGroups(Punctuation, Text, Operator, Text, OperatorWord),
-				replaceRule(ruleReplacingConfig{
-					delimiter: []rune(`>`),
-					tokenType: Punctuation,
-					stateName: `regex`,
-					pushState: true,
-				}),
-			},
-			{
-				`(?<!(?<!\\)\\)(<)([|!?.]*)(wb|ww|ws|w)(>)`,
-				ByGroups(Punctuation, Operator, OperatorWord, Punctuation),
-				nil,
-			},
-			// <$variable>
-			{
-				`(?<!(?<!\\)\\)(<)([?!.]*)([$@]\w[\w:-]*)(>)`,
-				ByGroups(Punctuation, Operator, NameVariable, Punctuation),
-				nil,
-			},
-			// Capture markers
-			{`(?<!(?<!\\)\\)<\(|\)>`, Operator, nil},
-			{
-				`(?<!(?<!\\)\\)(<)(\w[\w:-]*)(=\.?)`,
-				ByGroups(Punctuation, NameVariable, Operator),
-				Push(`regex-variable`),
-			},
-			{
-				`(?<!(?<!\\)\\)(<)([|!?.&]*)(\w(?:(?!:\s)[\w':-])*)`,
-				ByGroups(Punctuation, Operator, NameFunction),
-				Push(`regex-function`),
-			},
-			{`(?<!(?<!\\)\\)<`, Punctuation, Push("regex-property")},
-			{`(?<!(?<!\\)\\)"`, Punctuation, Push("double-quotes")},
-			{`(?<!(?<!\\)\\)(?:\]|\))`, Punctuation, Pop(1)},
-			{`(?<!(?<!\\)\\)(?:\[|\()`, Punctuation, Push("regex")},
-			{`.+?`, StringRegex, nil},
-		},
-		"regex-class-builtin": {
-			{
-				`\b(?:alnum|alpha|blank|cntrl|digit|graph|lower|print|punct|space|upper|xdigit|same|ident)\b`,
-				NameBuiltin,
-				nil,
-			},
-		},
-		"regex-function": {
-			// <function>
-			{`(?<!(?<!\\)\\)>`, Punctuation, Pop(1)},
-			// <function(parameter)>
-			{
-				`\(`,
-				Punctuation,
-				replaceRule(ruleReplacingConfig{
-					delimiter: []rune(`)>`),
-					tokenType: Punctuation,
-					stateName: `root`,
-					popState:  true,
-					pushState: true,
-				}),
-			},
-			// <function value>
-			{
-				`\s+`,
-				StringRegex,
-				replaceRule(ruleReplacingConfig{
-					delimiter: []rune(`>`),
-					tokenType: Punctuation,
-					stateName: `regex`,
-					popState:  true,
-					pushState: true,
-				}),
-			},
-			// <function: value>
-			{
-				`:`,
-				Punctuation,
-				replaceRule(ruleReplacingConfig{
-					delimiter: []rune(`>`),
-					tokenType: Punctuation,
-					stateName: `root`,
-					popState:  true,
-					pushState: true,
-				}),
-			},
-		},
-		"regex-variable": {
-			Include(`regex-starting-operators`),
-			// <var=function(
-			{
-				`(&)?(\w(?:(?!:\s)[\w':-])*)(?=\()`,
-				ByGroups(Operator, NameFunction),
-				Mutators(Pop(1), Push(`regex-function`)),
-			},
-			// <var=function>
-			{`(&)?(\w[\w':-]*)(>)`, ByGroups(Operator, NameFunction, Punctuation), Pop(1)},
-			// <var=
-			Default(Pop(1), Push(`regex-property`)),
-		},
-		"regex-property": {
-			{`(?<!(?<!\\)\\)>`, Punctuation, Pop(1)},
-			Include("regex-class-builtin"),
-			Include("variable"),
-			Include(`regex-starting-operators`),
-			Include("colon-pair-attribute"),
-			{`(?<!(?<!\\)\\)\[`, Punctuation, Push("regex-character-class")},
-			{`\+|\-`, Operator, nil},
-			{`@[\w':-]+`, NameVariable, nil},
-			{`.+?`, StringRegex, nil},
-		},
-		`regex-starting-operators`: {
-			{`(?<=<)[|!?.]+`, Operator, nil},
-		},
-		"regex-escape-class": {
-			{`(?i)\\n|\\t|\\h|\\v|\\s|\\d|\\w`, StringEscape, nil},
-		},
-		`regex-character-escape`: {
-			{`(?<!(?<!\\)\\)(\\)(.)`, ByGroups(StringEscape, StringRegex), nil},
-		},
-		"regex-character-class": {
-			{`(?<!(?<!\\)\\)\]`, Punctuation, Pop(1)},
-			Include("regex-escape-class"),
-			Include("escape-c-name"),
-			Include("escape-hexadecimal"),
-			Include(`regex-character-escape`),
-			Include("number"),
-			{`\.\.`, Operator, nil},
-			{`.+?`, StringRegex, nil},
-		},
-		"metaoperator": {
-			// Z[=>]
-			{
-				`\b([RZX]+)\b(\[)([^\s\]]+?)(\])`,
-				ByGroups(OperatorWord, Punctuation, UsingSelf("root"), Punctuation),
-				nil,
-			},
-			// Z=>
-			{`\b([RZX]+)\b([^\s\]]+)`, ByGroups(OperatorWord, UsingSelf("operator")), nil},
-		},
-		"operator": {
-			// Word Operator
-			{wordOperatorsPattern, OperatorWord, nil},
-			// Operator
-			{operatorsPattern, Operator, nil},
-		},
-		"pod": {
-			// Single-line pod declaration
-			{`(#[|=])\s`, Keyword, Push("pod-single")},
-			// Multi-line pod declaration
-			{
-				"(?<keyword>#[|=])(?<opening_delimiters>(?<delimiter>" + bracketsPattern + `)\k<delimiter>*)(?<value>)(?<closing_delimiters>)`,
-				ByGroupNames(
-					map[string]Emitter{
-						`keyword`:            Keyword,
-						`opening_delimiters`: Punctuation,
-						`delimiter`:          nil,
-						`value`:              UsingSelf("pod-declaration"),
-						`closing_delimiters`: Punctuation,
-					}),
-				findBrackets(rakuPodDeclaration),
-			},
-			Include("pod-blocks"),
-		},
-		"pod-blocks": {
-			// =begin code
-			{
-				`(?<=^ *)(?<ws> *)(?<keyword>=begin)(?<ws2> +)(?<name>code)(?<config>[^\n]*)(?<value>.*?)(?<ws3>^\k<ws>)(?<end_keyword>=end)(?<ws4> +)\k<name>`,
-				EmitterFunc(podCode),
-				nil,
-			},
-			// =begin
-			{
-				`(?<=^ *)(?<ws> *)(?<keyword>=begin)(?<ws2> +)(?!code)(?<name>\w[\w'-]*)(?<config>[^\n]*)(?<value>)(?<closing_delimiters>)`,
-				ByGroupNames(
-					map[string]Emitter{
-						`ws`:                 Comment,
-						`keyword`:            Keyword,
-						`ws2`:                StringDoc,
-						`name`:               Keyword,
-						`config`:             EmitterFunc(podConfig),
-						`value`:              UsingSelf("pod-begin"),
-						`closing_delimiters`: Keyword,
-					}),
-				findBrackets(rakuPod),
-			},
-			// =for ...
-			{
-				`(?<=^ *)(?<ws> *)(?<keyword>=(?:for|defn))(?<ws2> +)(?<name>\w[\w'-]*)(?<config>[^\n]*\n)`,
-				ByGroups(Comment, Keyword, StringDoc, Keyword, EmitterFunc(podConfig)),
-				Push("pod-paragraph"),
-			},
-			// =config
-			{
-				`(?<=^ *)(?<ws> *)(?<keyword>=config)(?<ws2> +)(?<name>\w[\w'-]*)(?<config>[^\n]*\n)`,
-				ByGroups(Comment, Keyword, StringDoc, Keyword, EmitterFunc(podConfig)),
-				nil,
-			},
-			// =alias
-			{
-				`(?<=^ *)(?<ws> *)(?<keyword>=alias)(?<ws2> +)(?<name>\w[\w'-]*)(?<value>[^\n]*\n)`,
-				ByGroups(Comment, Keyword, StringDoc, Keyword, StringDoc),
-				nil,
-			},
-			// =encoding
-			{
-				`(?<=^ *)(?<ws> *)(?<keyword>=encoding)(?<ws2> +)(?<name>[^\n]+)`,
-				ByGroups(Comment, Keyword, StringDoc, Name),
-				nil,
-			},
-			// =para ...
-			{
-				`(?<=^ *)(?<ws> *)(?<keyword>=(?:para|table|pod))(?<config>(?<!\n\s*)[^\n]*\n)`,
-				ByGroups(Comment, Keyword, EmitterFunc(podConfig)),
-				Push("pod-paragraph"),
-			},
-			// =head1 ...
-			{
-				`(?<=^ *)(?<ws> *)(?<keyword>=head\d+)(?<ws2> *)(?<config>#?)`,
-				ByGroups(Comment, Keyword, GenericHeading, Keyword),
-				Push("pod-heading"),
-			},
-			// =item ...
-			{
-				`(?<=^ *)(?<ws> *)(?<keyword>=(?:item\d*|comment|data|[A-Z]+))(?<ws2> *)(?<config>#?)`,
-				ByGroups(Comment, Keyword, StringDoc, Keyword),
-				Push("pod-paragraph"),
-			},
-			{
-				`(?<=^ *)(?<ws> *)(?<keyword>=finish)(?<config>[^\n]*)`,
-				ByGroups(Comment, Keyword, EmitterFunc(podConfig)),
-				Push("pod-finish"),
-			},
-			// ={custom} ...
-			{
-				`(?<=^ *)(?<ws> *)(?<name>=\w[\w'-]*)(?<ws2> *)(?<config>#?)`,
-				ByGroups(Comment, Name, StringDoc, Keyword),
-				Push("pod-paragraph"),
-			},
-			// = podconfig
-			{
-				`(?<=^ *)(?<keyword> *=)(?<ws> *)(?<config>(?::\w[\w'-]*(?:` + colonPairOpeningBrackets + `.+?` +
-					colonPairClosingBrackets + `) *)*\n)`,
-				ByGroups(Keyword, StringDoc, EmitterFunc(podConfig)),
-				nil,
-			},
-		},
-		"pod-begin": {
-			Include("pod-blocks"),
-			Include("pre-pod-formatter"),
-			{`.+?`, StringDoc, nil},
-		},
-		"pod-declaration": {
-			Include("pre-pod-formatter"),
-			{`.+?`, StringDoc, nil},
-		},
-		"pod-paragraph": {
-			{`\n *\n|\n(?=^ *=)`, StringDoc, Pop(1)},
-			Include("pre-pod-formatter"),
-			{`.+?`, StringDoc, nil},
-		},
-		"pod-single": {
-			{`\n`, StringDoc, Pop(1)},
-			Include("pre-pod-formatter"),
-			{`.+?`, StringDoc, nil},
-		},
-		"pod-heading": {
-			{`\n *\n|\n(?=^ *=)`, GenericHeading, Pop(1)},
-			Include("pre-pod-formatter"),
-			{`.+?`, GenericHeading, nil},
-		},
-		"pod-finish": {
-			{`\z`, nil, Pop(1)},
-			Include("pre-pod-formatter"),
-			{`.+?`, StringDoc, nil},
-		},
-		"pre-pod-formatter": {
-			// C<code>, B<bold>, ...
-			{
-				`(?<keyword>[CBIUDTKRPAELZVMSXN])(?<opening_delimiters><+|«)`,
-				ByGroups(Keyword, Punctuation),
-				findBrackets(rakuPodFormatter),
-			},
-		},
-		"pod-formatter": {
-			// Placeholder rule, will be replaced by mutators. DO NOT REMOVE!
-			{`>`, Punctuation, Pop(1)},
-			Include("pre-pod-formatter"),
-			// Placeholder rule, will be replaced by mutators. DO NOT REMOVE!
-			{`.+?`, StringOther, nil},
-		},
-		"variable": {
-			{variablePattern, NameVariable, Push("name-adverb")},
-			{globalVariablePattern, NameVariableGlobal, Push("name-adverb")},
-			{`[$@]<[^>]+>`, NameVariable, nil},
-			{`\$[/!¢]`, NameVariable, nil},
-			{`[$@%]`, NameVariable, nil},
-		},
-		"single-quote": {
-			{`(?<!(?<!\\)\\)'`, Punctuation, Push("single-quote-inner")},
-		},
-		"single-quote-inner": {
-			{`(?<!(?<!(?<!\\)\\)\\)'`, Punctuation, Pop(1)},
-			Include("escape-single-quote"),
-			Include("escape-qq"),
-			{`(?:\\\\|\\[^\\]|[^'\\])+?`, StringSingle, nil},
-		},
-		"double-quotes": {
-			{`(?<!(?<!\\)\\)"`, Punctuation, Pop(1)},
-			Include("qq"),
-		},
-		"<<": {
-			{`>>(?!\s*(?:\d+|\.(?:Int|Numeric)|[$@%]\*?[\w':-]+|\s+\[))`, Punctuation, Pop(1)},
-			Include("ww"),
-		},
-		"«": {
-			{`»(?!\s*(?:\d+|\.(?:Int|Numeric)|[$@%]\*?[\w':-]+|\s+\[))`, Punctuation, Pop(1)},
-			Include("ww"),
-		},
-		"ww": {
-			Include("single-quote"),
-			Include("qq"),
-		},
-		"qq": {
-			Include("qq-variable"),
-			Include("closure"),
-			Include(`escape-char`),
-			Include("escape-hexadecimal"),
-			Include("escape-c-name"),
-			Include("escape-qq"),
-			{`.+?`, StringDouble, nil},
-		},
-		"qq-variable": {
-			{
-				`(?<!(?<!\\)\\)(?:` + variablePattern + `|` + globalVariablePattern + `)` + colonPairLookahead + `)`,
-				NameVariable,
-				Push("qq-variable-extras", "name-adverb"),
-			},
-		},
-		"qq-variable-extras": {
-			// Method
-			{
-				`(?<operator>\.)(?<method_name>` + namePattern + `)` + colonPairLookahead + `\()`,
-				ByGroupNames(map[string]Emitter{
-					`operator`:    Operator,
-					`method_name`: NameFunction,
-				}),
-				Push(`name-adverb`),
-			},
-			// Function/Signature
-			{
-				`\(`, Punctuation, replaceRule(
-					ruleReplacingConfig{
-						delimiter: []rune(`)`),
-						tokenType: Punctuation,
-						stateName: `root`,
-						pushState: true,
-					}),
-			},
-			Default(Pop(1)),
-		},
-		"Q": {
-			Include("escape-qq"),
-			{`.+?`, String, nil},
-		},
-		"Q-closure": {
-			Include("escape-qq"),
-			Include("closure"),
-			{`.+?`, String, nil},
-		},
-		"Q-variable": {
-			Include("escape-qq"),
-			Include("qq-variable"),
-			{`.+?`, String, nil},
-		},
-		"closure": {
-			{`(?<!(?<!\\)\\){`, Punctuation, replaceRule(
-				ruleReplacingConfig{
-					delimiter: []rune(`}`),
-					tokenType: Punctuation,
-					stateName: `root`,
-					pushState: true,
-				}),
-			},
-		},
-		"token": {
-			// Token signature
-			{`\(`, Punctuation, replaceRule(
-				ruleReplacingConfig{
-					delimiter: []rune(`)`),
-					tokenType: Punctuation,
-					stateName: `root`,
-					pushState: true,
-				}),
-			},
-			{`{`, Punctuation, replaceRule(
-				ruleReplacingConfig{
-					delimiter: []rune(`}`),
-					tokenType: Punctuation,
-					stateName: `regex`,
-					popState:  true,
-					pushState: true,
-				}),
-			},
-			{`\s*`, Text, nil},
-			Default(Pop(1)),
-		},
-	}
-}
-
-// Joins keys of rune map
-func joinRuneMap(m map[rune]rune) string {
-	runes := make([]rune, 0, len(m))
-	for k := range m {
-		runes = append(runes, k)
-	}
-
-	return string(runes)
-}
-
-// Finds the index of substring in the string starting at position n
-func indexAt(str []rune, substr []rune, pos int) int {
-	strFromPos := str[pos:]
-	text := string(strFromPos)
-
-	idx := strings.Index(text, string(substr))
-	if idx > -1 {
-		idx = utf8.RuneCountInString(text[:idx])
-
-		// Search again if the substr is escaped with backslash
-		if (idx > 1 && strFromPos[idx-1] == '\\' && strFromPos[idx-2] != '\\') ||
-			(idx == 1 && strFromPos[idx-1] == '\\') {
-			idx = indexAt(str[pos:], substr, idx+1)
-
-			idx = utf8.RuneCountInString(text[:idx])
-
-			if idx < 0 {
-				return idx
-			}
-		}
-		idx += pos
-	}
-
-	return idx
-}
-
-// Tells if an array of string contains a string
-func contains(s []string, e string) bool {
-	for _, value := range s {
-		if value == e {
-			return true
-		}
-	}
-	return false
-}
-
-type rulePosition int
-
-const (
-	topRule    rulePosition = 0
-	bottomRule              = -1
-)
-
-type ruleMakingConfig struct {
-	delimiter              []rune
-	pattern                string
-	tokenType              Emitter
-	mutator                Mutator
-	numberOfDelimiterChars int
-}
-
-type ruleReplacingConfig struct {
-	delimiter              []rune
-	pattern                string
-	tokenType              Emitter
-	numberOfDelimiterChars int
-	mutator                Mutator
-	appendMutator          Mutator
-	rulePosition           rulePosition
-	stateName              string
-	pop                    bool
-	popState               bool
-	pushState              bool
-}
-
-// Pops rule from state-stack and replaces the rule with the previous rule
-func popRule(rule ruleReplacingConfig) MutatorFunc {
-	return func(state *LexerState) error {
-		stackName := genStackName(rule.stateName, rule.rulePosition)
-
-		stack, ok := state.Get(stackName).([]ruleReplacingConfig)
-
-		if ok && len(stack) > 0 {
-			// Pop from stack
-			stack = stack[:len(stack)-1]
-			lastRule := stack[len(stack)-1]
-			lastRule.pushState = false
-			lastRule.popState = false
-			lastRule.pop = true
-			state.Set(stackName, stack)
-
-			// Call replaceRule to use the last rule
-			err := replaceRule(lastRule)(state)
-			if err != nil {
-				panic(err)
-			}
-		}
-
-		return nil
-	}
-}
-
-// Replaces a state's rule based on the rule config and position
-func replaceRule(rule ruleReplacingConfig) MutatorFunc {
-	return func(state *LexerState) error {
-		stateName := rule.stateName
-		stackName := genStackName(rule.stateName, rule.rulePosition)
-
-		stack, ok := state.Get(stackName).([]ruleReplacingConfig)
-		if !ok {
-			stack = []ruleReplacingConfig{}
-		}
-
-		// If state-stack is empty fill it with the placeholder rule
-		if len(stack) == 0 {
-			stack = []ruleReplacingConfig{
-				{
-					// Placeholder, will be overwritten by mutators, DO NOT REMOVE!
-					pattern:      `\A\z`,
-					tokenType:    nil,
-					mutator:      nil,
-					stateName:    stateName,
-					rulePosition: rule.rulePosition,
-				},
-			}
-			state.Set(stackName, stack)
-		}
-
-		var mutator Mutator
-		mutators := []Mutator{}
-
-		switch {
-		case rule.rulePosition == topRule && rule.mutator == nil:
-			// Default mutator for top rule
-			mutators = []Mutator{Pop(1), popRule(rule)}
-		case rule.rulePosition == topRule && rule.mutator != nil:
-			// Default mutator for top rule, when rule.mutator is set
-			mutators = []Mutator{rule.mutator, popRule(rule)}
-		case rule.mutator != nil:
-			mutators = []Mutator{rule.mutator}
-		}
-
-		if rule.appendMutator != nil {
-			mutators = append(mutators, rule.appendMutator)
-		}
-
-		if len(mutators) > 0 {
-			mutator = Mutators(mutators...)
-		} else {
-			mutator = nil
-		}
-
-		ruleConfig := ruleMakingConfig{
-			pattern:                rule.pattern,
-			delimiter:              rule.delimiter,
-			numberOfDelimiterChars: rule.numberOfDelimiterChars,
-			tokenType:              rule.tokenType,
-			mutator:                mutator,
-		}
-
-		cRule := makeRule(ruleConfig)
-
-		switch rule.rulePosition {
-		case topRule:
-			state.Rules[stateName][0] = cRule
-		case bottomRule:
-			state.Rules[stateName][len(state.Rules[stateName])-1] = cRule
-		}
-
-		// Pop state name from stack if asked. State should be popped first before Pushing
-		if rule.popState {
-			err := Pop(1).Mutate(state)
-			if err != nil {
-				panic(err)
-			}
-		}
-
-		// Push state name to stack if asked
-		if rule.pushState {
-			err := Push(stateName).Mutate(state)
-			if err != nil {
-				panic(err)
-			}
-		}
-
-		if !rule.pop {
-			state.Set(stackName, append(stack, rule))
-		}
-
-		return nil
-	}
-}
-
-// Generates rule replacing stack using state name and rule position
-func genStackName(stateName string, rulePosition rulePosition) (stackName string) {
-	switch rulePosition {
-	case topRule:
-		stackName = stateName + `-top-stack`
-	case bottomRule:
-		stackName = stateName + `-bottom-stack`
-	}
-	return
-}
-
-// Makes a compiled rule and returns it
-func makeRule(config ruleMakingConfig) *CompiledRule {
-	var rePattern string
-
-	if len(config.delimiter) > 0 {
-		delimiter := string(config.delimiter)
-
-		if config.numberOfDelimiterChars > 1 {
-			delimiter = strings.Repeat(delimiter, config.numberOfDelimiterChars)
-		}
-
-		rePattern = `(?<!(?<!\\)\\)` + regexp2.Escape(delimiter)
-	} else {
-		rePattern = config.pattern
-	}
-
-	regex := regexp2.MustCompile(rePattern, regexp2.None)
-
-	cRule := &CompiledRule{
-		Rule:   Rule{rePattern, config.tokenType, config.mutator},
-		Regexp: regex,
-	}
-
-	return cRule
-}
-
-// Emitter for colon pairs, changes token state based on key and brackets
-func colonPair(tokenClass TokenType) Emitter {
-	return EmitterFunc(func(groups []string, state *LexerState) Iterator {
-		iterators := []Iterator{}
-		tokens := []Token{
-			{Punctuation, state.NamedGroups[`colon`]},
-			{Punctuation, state.NamedGroups[`opening_delimiters`]},
-			{Punctuation, state.NamedGroups[`closing_delimiters`]},
-		}
-
-		// Append colon
-		iterators = append(iterators, Literator(tokens[0]))
-
-		if tokenClass == NameAttribute {
-			iterators = append(iterators, Literator(Token{NameAttribute, state.NamedGroups[`key`]}))
-		} else {
-			var keyTokenState string
-			keyre := regexp.MustCompile(`^\d+$`)
-			if keyre.MatchString(state.NamedGroups[`key`]) {
-				keyTokenState = "common"
-			} else {
-				keyTokenState = "Q"
-			}
-
-			// Use token state to Tokenise key
-			if keyTokenState != "" {
-				iterator, err := state.Lexer.Tokenise(
-					&TokeniseOptions{
-						State:  keyTokenState,
-						Nested: true,
-					}, state.NamedGroups[`key`])
-
-				if err != nil {
-					panic(err)
-				} else {
-					// Append key
-					iterators = append(iterators, iterator)
-				}
-			}
-		}
-
-		// Append punctuation
-		iterators = append(iterators, Literator(tokens[1]))
-
-		var valueTokenState string
-
-		switch state.NamedGroups[`opening_delimiters`] {
-		case "(", "{", "[":
-			valueTokenState = "root"
-		case "<<", "«":
-			valueTokenState = "ww"
-		case "<":
-			valueTokenState = "Q"
-		}
-
-		// Use token state to Tokenise value
-		if valueTokenState != "" {
-			iterator, err := state.Lexer.Tokenise(
-				&TokeniseOptions{
-					State:  valueTokenState,
-					Nested: true,
-				}, state.NamedGroups[`value`])
-
-			if err != nil {
-				panic(err)
-			} else {
-				// Append value
-				iterators = append(iterators, iterator)
-			}
-		}
-		// Append last punctuation
-		iterators = append(iterators, Literator(tokens[2]))
-
-		return Concaterator(iterators...)
-	})
-}
-
-// Emitter for quoting constructs, changes token state based on quote name and adverbs
-func quote(groups []string, state *LexerState) Iterator {
-	keyword := state.NamedGroups[`keyword`]
-	adverbsStr := state.NamedGroups[`adverbs`]
-	iterators := []Iterator{}
-	tokens := []Token{
-		{Keyword, keyword},
-		{StringAffix, adverbsStr},
-		{Text, state.NamedGroups[`ws`]},
-		{Punctuation, state.NamedGroups[`opening_delimiters`]},
-		{Punctuation, state.NamedGroups[`closing_delimiters`]},
-	}
-
-	// Append all tokens before dealing with the main string
-	iterators = append(iterators, Literator(tokens[:4]...))
-
-	var tokenStates []string
-
-	// Set tokenStates based on adverbs
-	adverbs := strings.Split(adverbsStr, ":")
-	for _, adverb := range adverbs {
-		switch adverb {
-		case "c", "closure":
-			tokenStates = append(tokenStates, "Q-closure")
-		case "qq":
-			tokenStates = append(tokenStates, "qq")
-		case "ww":
-			tokenStates = append(tokenStates, "ww")
-		case "s", "scalar", "a", "array", "h", "hash", "f", "function":
-			tokenStates = append(tokenStates, "Q-variable")
-		}
-	}
-
-	var tokenState string
-
-	switch {
-	case keyword == "qq" || contains(tokenStates, "qq"):
-		tokenState = "qq"
-	case adverbsStr == "ww" || contains(tokenStates, "ww"):
-		tokenState = "ww"
-	case contains(tokenStates, "Q-closure") && contains(tokenStates, "Q-variable"):
-		tokenState = "qq"
-	case contains(tokenStates, "Q-closure"):
-		tokenState = "Q-closure"
-	case contains(tokenStates, "Q-variable"):
-		tokenState = "Q-variable"
-	default:
-		tokenState = "Q"
-	}
-
-	iterator, err := state.Lexer.Tokenise(
-		&TokeniseOptions{
-			State:  tokenState,
-			Nested: true,
-		}, state.NamedGroups[`value`])
-
-	if err != nil {
-		panic(err)
-	} else {
-		iterators = append(iterators, iterator)
-	}
-
-	// Append the last punctuation
-	iterators = append(iterators, Literator(tokens[4]))
-
-	return Concaterator(iterators...)
-}
-
-// Emitter for pod config, tokenises the properties with "colon-pair-attribute" state
-func podConfig(groups []string, state *LexerState) Iterator {
-	// Tokenise pod config
-	iterator, err := state.Lexer.Tokenise(
-		&TokeniseOptions{
-			State:  "colon-pair-attribute",
-			Nested: true,
-		}, groups[0])
-
-	if err != nil {
-		panic(err)
-	} else {
-		return iterator
-	}
-}
-
-// Emitter for pod code, tokenises the code based on the lang specified
-func podCode(groups []string, state *LexerState) Iterator {
-	iterators := []Iterator{}
-	tokens := []Token{
-		{Comment, state.NamedGroups[`ws`]},
-		{Keyword, state.NamedGroups[`keyword`]},
-		{Keyword, state.NamedGroups[`ws2`]},
-		{Keyword, state.NamedGroups[`name`]},
-		{StringDoc, state.NamedGroups[`value`]},
-		{Comment, state.NamedGroups[`ws3`]},
-		{Keyword, state.NamedGroups[`end_keyword`]},
-		{Keyword, state.NamedGroups[`ws4`]},
-		{Keyword, state.NamedGroups[`name`]},
-	}
-
-	// Append all tokens before dealing with the pod config
-	iterators = append(iterators, Literator(tokens[:4]...))
-
-	// Tokenise pod config
-	iterators = append(iterators, podConfig([]string{state.NamedGroups[`config`]}, state))
-
-	langMatch := regexp.MustCompile(`:lang\W+(\w+)`).FindStringSubmatch(state.NamedGroups[`config`])
-	var lang string
-	if len(langMatch) > 1 {
-		lang = langMatch[1]
-	}
-
-	// Tokenise code based on lang property
-	sublexer := Get(lang)
-	if sublexer != nil {
-		iterator, err := sublexer.Tokenise(nil, state.NamedGroups[`value`])
-
-		if err != nil {
-			panic(err)
-		} else {
-			iterators = append(iterators, iterator)
-		}
-	} else {
-		iterators = append(iterators, Literator(tokens[4]))
-	}
-
-	// Append the rest of the tokens
-	iterators = append(iterators, Literator(tokens[5:]...))
-
-	return Concaterator(iterators...)
-}
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/rst.go
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/rst.go	(revision 67)
+++ 	(revision )
@@ -1,89 +1,0 @@
-package lexers
-
-import (
-	"strings"
-
-	. "github.com/alecthomas/chroma/v2" // nolint
-)
-
-// Restructuredtext lexer.
-var Restructuredtext = Register(MustNewLexer(
-	&Config{
-		Name:      "reStructuredText",
-		Aliases:   []string{"rst", "rest", "restructuredtext"},
-		Filenames: []string{"*.rst", "*.rest"},
-		MimeTypes: []string{"text/x-rst", "text/prs.fallenstein.rst"},
-	},
-	restructuredtextRules,
-))
-
-func restructuredtextRules() Rules {
-	return Rules{
-		"root": {
-			{"^(=+|-+|`+|:+|\\.+|\\'+|\"+|~+|\\^+|_+|\\*+|\\++|#+)([ \\t]*\\n)(.+)(\\n)(\\1)(\\n)", ByGroups(GenericHeading, Text, GenericHeading, Text, GenericHeading, Text), nil},
-			{"^(\\S.*)(\\n)(={3,}|-{3,}|`{3,}|:{3,}|\\.{3,}|\\'{3,}|\"{3,}|~{3,}|\\^{3,}|_{3,}|\\*{3,}|\\+{3,}|#{3,})(\\n)", ByGroups(GenericHeading, Text, GenericHeading, Text), nil},
-			{`^(\s*)([-*+])( .+\n(?:\1  .+\n)*)`, ByGroups(Text, LiteralNumber, UsingSelf("inline")), nil},
-			{`^(\s*)([0-9#ivxlcmIVXLCM]+\.)( .+\n(?:\1  .+\n)*)`, ByGroups(Text, LiteralNumber, UsingSelf("inline")), nil},
-			{`^(\s*)(\(?[0-9#ivxlcmIVXLCM]+\))( .+\n(?:\1  .+\n)*)`, ByGroups(Text, LiteralNumber, UsingSelf("inline")), nil},
-			{`^(\s*)([A-Z]+\.)( .+\n(?:\1  .+\n)+)`, ByGroups(Text, LiteralNumber, UsingSelf("inline")), nil},
-			{`^(\s*)(\(?[A-Za-z]+\))( .+\n(?:\1  .+\n)+)`, ByGroups(Text, LiteralNumber, UsingSelf("inline")), nil},
-			{`^(\s*)(\|)( .+\n(?:\|  .+\n)*)`, ByGroups(Text, Operator, UsingSelf("inline")), nil},
-			{`^( *\.\.)(\s*)((?:source)?code(?:-block)?)(::)([ \t]*)([^\n]+)(\n[ \t]*\n)([ \t]+)(.*)(\n)((?:(?:\8.*|)\n)+)`, EmitterFunc(rstCodeBlock), nil},
-			{`^( *\.\.)(\s*)([\w:-]+?)(::)(?:([ \t]*)(.*))`, ByGroups(Punctuation, Text, OperatorWord, Punctuation, Text, UsingSelf("inline")), nil},
-			{`^( *\.\.)(\s*)(_(?:[^:\\]|\\.)+:)(.*?)$`, ByGroups(Punctuation, Text, NameTag, UsingSelf("inline")), nil},
-			{`^( *\.\.)(\s*)(\[.+\])(.*?)$`, ByGroups(Punctuation, Text, NameTag, UsingSelf("inline")), nil},
-			{`^( *\.\.)(\s*)(\|.+\|)(\s*)([\w:-]+?)(::)(?:([ \t]*)(.*))`, ByGroups(Punctuation, Text, NameTag, Text, OperatorWord, Punctuation, Text, UsingSelf("inline")), nil},
-			{`^ *\.\..*(\n( +.*\n|\n)+)?`, CommentPreproc, nil},
-			{`^( *)(:[a-zA-Z-]+:)(\s*)$`, ByGroups(Text, NameClass, Text), nil},
-			{`^( *)(:.*?:)([ \t]+)(.*?)$`, ByGroups(Text, NameClass, Text, NameFunction), nil},
-			{`^(\S.*(?<!::)\n)((?:(?: +.*)\n)+)`, ByGroups(UsingSelf("inline"), UsingSelf("inline")), nil},
-			{`(::)(\n[ \t]*\n)([ \t]+)(.*)(\n)((?:(?:\3.*|)\n)+)`, ByGroups(LiteralStringEscape, Text, LiteralString, LiteralString, Text, LiteralString), nil},
-			Include("inline"),
-		},
-		"inline": {
-			{`\\.`, Text, nil},
-			{"``", LiteralString, Push("literal")},
-			{"(`.+?)(<.+?>)(`__?)", ByGroups(LiteralString, LiteralStringInterpol, LiteralString), nil},
-			{"`.+?`__?", LiteralString, nil},
-			{"(`.+?`)(:[a-zA-Z0-9:-]+?:)?", ByGroups(NameVariable, NameAttribute), nil},
-			{"(:[a-zA-Z0-9:-]+?:)(`.+?`)", ByGroups(NameAttribute, NameVariable), nil},
-			{`\*\*.+?\*\*`, GenericStrong, nil},
-			{`\*.+?\*`, GenericEmph, nil},
-			{`\[.*?\]_`, LiteralString, nil},
-			{`<.+?>`, NameTag, nil},
-			{"[^\\\\\\n\\[*`:]+", Text, nil},
-			{`.`, Text, nil},
-		},
-		"literal": {
-			{"[^`]+", LiteralString, nil},
-			{"``((?=$)|(?=[-/:.,; \\n\\x00\\\u2010\\\u2011\\\u2012\\\u2013\\\u2014\\\u00a0\\'\\\"\\)\\]\\}\\>\\\u2019\\\u201d\\\u00bb\\!\\?]))", LiteralString, Pop(1)},
-			{"`", LiteralString, nil},
-		},
-	}
-}
-
-func rstCodeBlock(groups []string, state *LexerState) Iterator {
-	iterators := []Iterator{}
-	tokens := []Token{
-		{Punctuation, groups[1]},
-		{Text, groups[2]},
-		{OperatorWord, groups[3]},
-		{Punctuation, groups[4]},
-		{Text, groups[5]},
-		{Keyword, groups[6]},
-		{Text, groups[7]},
-	}
-	code := strings.Join(groups[8:], "")
-	lexer := Get(groups[6])
-	if lexer == nil {
-		tokens = append(tokens, Token{String, code})
-		iterators = append(iterators, Literator(tokens...))
-	} else {
-		sub, err := lexer.Tokenise(nil, code)
-		if err != nil {
-			panic(err)
-		}
-		iterators = append(iterators, Literator(tokens...), sub)
-	}
-	return Concaterator(iterators...)
-}
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/smarty.go
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/smarty.go	(revision 67)
+++ 	(revision )
@@ -1,42 +1,0 @@
-package lexers
-
-import (
-	. "github.com/alecthomas/chroma/v2" // nolint
-)
-
-// Smarty lexer.
-var Smarty = Register(MustNewLexer(
-	&Config{
-		Name:      "Smarty",
-		Aliases:   []string{"smarty"},
-		Filenames: []string{"*.tpl"},
-		MimeTypes: []string{"application/x-smarty"},
-		DotAll:    true,
-	},
-	smartyRules,
-))
-
-func smartyRules() Rules {
-	return Rules{
-		"root": {
-			{`[^{]+`, Other, nil},
-			{`(\{)(\*.*?\*)(\})`, ByGroups(CommentPreproc, Comment, CommentPreproc), nil},
-			{`(\{php\})(.*?)(\{/php\})`, ByGroups(CommentPreproc, Using("PHP"), CommentPreproc), nil},
-			{`(\{)(/?[a-zA-Z_]\w*)(\s*)`, ByGroups(CommentPreproc, NameFunction, Text), Push("smarty")},
-			{`\{`, CommentPreproc, Push("smarty")},
-		},
-		"smarty": {
-			{`\s+`, Text, nil},
-			{`\{`, CommentPreproc, Push()},
-			{`\}`, CommentPreproc, Pop(1)},
-			{`#[a-zA-Z_]\w*#`, NameVariable, nil},
-			{`\$[a-zA-Z_]\w*(\.\w+)*`, NameVariable, nil},
-			{`[~!%^&*()+=|\[\]:;,.<>/?@-]`, Operator, nil},
-			{`(true|false|null)\b`, KeywordConstant, nil},
-			{`[0-9](\.[0-9]*)?(eE[+-][0-9])?[flFLdD]?|0[xX][0-9a-fA-F]+[Ll]?`, LiteralNumber, nil},
-			{`"(\\\\|\\"|[^"])*"`, LiteralStringDouble, nil},
-			{`'(\\\\|\\'|[^'])*'`, LiteralStringSingle, nil},
-			{`[a-zA-Z_]\w*`, NameAttribute, nil},
-		},
-	}
-}
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/svelte.go
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/svelte.go	(revision 67)
+++ 	(revision )
@@ -1,70 +1,0 @@
-package lexers
-
-import (
-	. "github.com/alecthomas/chroma/v2" // nolint
-)
-
-// Svelte lexer.
-var Svelte = Register(DelegatingLexer(HTML, MustNewLexer(
-	&Config{
-		Name:      "Svelte",
-		Aliases:   []string{"svelte"},
-		Filenames: []string{"*.svelte"},
-		MimeTypes: []string{"application/x-svelte"},
-		DotAll:    true,
-	},
-	svelteRules,
-)))
-
-func svelteRules() Rules {
-	return Rules{
-		"root": {
-			// Let HTML handle the comments, including comments containing script and style tags
-			{`<!--`, Other, Push("comment")},
-			{
-				// Highlight script and style tags based on lang attribute
-				// and allow attributes besides lang
-				`(<\s*(?:script|style).*?lang\s*=\s*['"])` +
-					`(.+?)(['"].*?>)` +
-					`(.+?)` +
-					`(<\s*/\s*(?:script|style)\s*>)`,
-				UsingByGroup(2, 4, Other, Other, Other, Other, Other),
-				nil,
-			},
-			{
-				// Make sure `{` is not inside script or style tags
-				`(?<!<\s*(?:script|style)(?:(?!(?:script|style)\s*>).)*?)` +
-					`{` +
-					`(?!(?:(?!<\s*(?:script|style)).)*?(?:script|style)\s*>)`,
-				Punctuation,
-				Push("templates"),
-			},
-			// on:submit|preventDefault
-			{`(?<=\s+on:\w+(?:\|\w+)*)\|(?=\w+)`, Operator, nil},
-			{`.+?`, Other, nil},
-		},
-		"comment": {
-			{`-->`, Other, Pop(1)},
-			{`.+?`, Other, nil},
-		},
-		"templates": {
-			{`}`, Punctuation, Pop(1)},
-			// Let TypeScript handle strings and the curly braces inside them
-			{`(?<!(?<!\\)\\)(['"` + "`])" + `.*?(?<!(?<!\\)\\)\1`, Using("TypeScript"), nil},
-			// If there is another opening curly brace push to templates again
-			{"{", Punctuation, Push("templates")},
-			{`@(debug|html)\b`, Keyword, nil},
-			{
-				`(#await)(\s+)(\w+)(\s+)(then|catch)(\s+)(\w+)`,
-				ByGroups(Keyword, Text, Using("TypeScript"), Text,
-					Keyword, Text, Using("TypeScript"),
-				),
-				nil,
-			},
-			{`(#|/)(await|each|if|key)\b`, Keyword, nil},
-			{`(:else)(\s+)(if)?\b`, ByGroups(Keyword, Text, Keyword), nil},
-			{`:(catch|then)\b`, Keyword, nil},
-			{`[^{}]+`, Using("TypeScript"), nil},
-		},
-	}
-}
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/typoscript.go
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/typoscript.go	(revision 67)
+++ 	(revision )
@@ -1,85 +1,0 @@
-package lexers
-
-import (
-	. "github.com/alecthomas/chroma/v2" // nolint
-)
-
-// Typoscript lexer.
-var Typoscript = Register(MustNewLexer(
-	&Config{
-		Name:      "TypoScript",
-		Aliases:   []string{"typoscript"},
-		Filenames: []string{"*.ts"},
-		MimeTypes: []string{"text/x-typoscript"},
-		DotAll:    true,
-		Priority:  0.1,
-	},
-	typoscriptRules,
-))
-
-func typoscriptRules() Rules {
-	return Rules{
-		"root": {
-			Include("comment"),
-			Include("constant"),
-			Include("html"),
-			Include("label"),
-			Include("whitespace"),
-			Include("keywords"),
-			Include("punctuation"),
-			Include("operator"),
-			Include("structure"),
-			Include("literal"),
-			Include("other"),
-		},
-		"keywords": {
-			{`(\[)(?i)(browser|compatVersion|dayofmonth|dayofweek|dayofyear|device|ELSE|END|GLOBAL|globalString|globalVar|hostname|hour|IP|language|loginUser|loginuser|minute|month|page|PIDinRootline|PIDupinRootline|system|treeLevel|useragent|userFunc|usergroup|version)([^\]]*)(\])`, ByGroups(LiteralStringSymbol, NameConstant, Text, LiteralStringSymbol), nil},
-			{`(?=[\w\-])(HTMLparser|HTMLparser_tags|addParams|cache|encapsLines|filelink|if|imageLinkWrap|imgResource|makelinks|numRows|numberFormat|parseFunc|replacement|round|select|split|stdWrap|strPad|tableStyle|tags|textStyle|typolink)(?![\w\-])`, NameFunction, nil},
-			{`(?:(=?\s*<?\s+|^\s*))(cObj|field|config|content|constants|FEData|file|frameset|includeLibs|lib|page|plugin|register|resources|sitemap|sitetitle|styles|temp|tt_[^:.\s]*|types|xmlnews|INCLUDE_TYPOSCRIPT|_CSS_DEFAULT_STYLE|_DEFAULT_PI_VARS|_LOCAL_LANG)(?![\w\-])`, ByGroups(Operator, NameBuiltin), nil},
-			{`(?=[\w\-])(CASE|CLEARGIF|COA|COA_INT|COBJ_ARRAY|COLUMNS|CONTENT|CTABLE|EDITPANEL|FILE|FILES|FLUIDTEMPLATE|FORM|HMENU|HRULER|HTML|IMAGE|IMGTEXT|IMG_RESOURCE|LOAD_REGISTER|MEDIA|MULTIMEDIA|OTABLE|PAGE|QTOBJECT|RECORDS|RESTORE_REGISTER|SEARCHRESULT|SVG|SWFOBJECT|TEMPLATE|TEXT|USER|USER_INT)(?![\w\-])`, NameClass, nil},
-			{`(?=[\w\-])(ACTIFSUBRO|ACTIFSUB|ACTRO|ACT|CURIFSUBRO|CURIFSUB|CURRO|CUR|IFSUBRO|IFSUB|NO|SPC|USERDEF1RO|USERDEF1|USERDEF2RO|USERDEF2|USRRO|USR)`, NameClass, nil},
-			{`(?=[\w\-])(GMENU_FOLDOUT|GMENU_LAYERS|GMENU|IMGMENUITEM|IMGMENU|JSMENUITEM|JSMENU|TMENUITEM|TMENU_LAYERS|TMENU)`, NameClass, nil},
-			{`(?=[\w\-])(PHP_SCRIPT(_EXT|_INT)?)`, NameClass, nil},
-			{`(?=[\w\-])(userFunc)(?![\w\-])`, NameFunction, nil},
-		},
-		"whitespace": {
-			{`\s+`, Text, nil},
-		},
-		"html": {
-			{`<\S[^\n>]*>`, Using("TypoScriptHTMLData"), nil},
-			{`&[^;\n]*;`, LiteralString, nil},
-			{`(_CSS_DEFAULT_STYLE)(\s*)(\()(?s)(.*(?=\n\)))`, ByGroups(NameClass, Text, LiteralStringSymbol, Using("TypoScriptCSSData")), nil},
-		},
-		"literal": {
-			{`0x[0-9A-Fa-f]+t?`, LiteralNumberHex, nil},
-			{`[0-9]+`, LiteralNumberInteger, nil},
-			{`(###\w+###)`, NameConstant, nil},
-		},
-		"label": {
-			{`(EXT|FILE|LLL):[^}\n"]*`, LiteralString, nil},
-			{`(?![^\w\-])([\w\-]+(?:/[\w\-]+)+/?)(\S*\n)`, ByGroups(LiteralString, LiteralString), nil},
-		},
-		"punctuation": {
-			{`[,.]`, Punctuation, nil},
-		},
-		"operator": {
-			{`[<>,:=.*%+|]`, Operator, nil},
-		},
-		"structure": {
-			{`[{}()\[\]\\]`, LiteralStringSymbol, nil},
-		},
-		"constant": {
-			{`(\{)(\$)((?:[\w\-]+\.)*)([\w\-]+)(\})`, ByGroups(LiteralStringSymbol, Operator, NameConstant, NameConstant, LiteralStringSymbol), nil},
-			{`(\{)([\w\-]+)(\s*:\s*)([\w\-]+)(\})`, ByGroups(LiteralStringSymbol, NameConstant, Operator, NameConstant, LiteralStringSymbol), nil},
-			{`(#[a-fA-F0-9]{6}\b|#[a-fA-F0-9]{3}\b)`, LiteralStringChar, nil},
-		},
-		"comment": {
-			{`(?<!(#|\'|"))(?:#(?!(?:[a-fA-F0-9]{6}|[a-fA-F0-9]{3}))[^\n#]+|//[^\n]*)`, Comment, nil},
-			{`/\*(?:(?!\*/).)*\*/`, Comment, nil},
-			{`(\s*#\s*\n)`, Comment, nil},
-		},
-		"other": {
-			{`[\w"\-!/&;]+`, Text, nil},
-		},
-	}
-}
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/v.go
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/v.go	(revision 67)
+++ 	(revision )
@@ -1,173 +1,0 @@
-package lexers
-
-import (
-	"strings"
-
-	. "github.com/alecthomas/chroma/v2" // nolint
-)
-
-// V lexer.
-var V = Register(MustNewLexer(
-	&Config{
-		Name:      "V",
-		Aliases:   []string{"v", "vlang"},
-		Filenames: []string{"*.v", "*.vv", "v.mod"},
-		MimeTypes: []string{"text/x-v"},
-		EnsureNL:  true,
-	},
-	vRules,
-).SetAnalyser(func(text string) float32 {
-	if strings.Contains(text, "import ") && strings.Contains(text, "module ") {
-		return 0.2
-	}
-	if strings.Contains(text, "module ") {
-		return 0.1
-	}
-	return 0.0
-}))
-
-const (
-	namePattern             = `[^\W\d]\w*`
-	typeNamePattern         = `[A-Z]\w*`
-	multiLineCommentPattern = `/\*(?:.|\n)*?\*/`
-)
-
-func vRules() Rules {
-	return Rules{
-		"root": {
-			{`\n`, Text, nil},
-			{`\s+`, Text, nil},
-			{`\\\n`, Text, nil},
-			{`(?<=module\s+\w[^\n]*\s+)(//[^\n]+\n)+(?=\n)`, StringDoc, nil},
-			{`(// *)(\w+)([^\n]+\n)(?=(?://[^\n]*\n)* *(?:pub +)?(?:fn|struct|union|type|interface|enum|const) +\2\b)`, ByGroups(StringDoc, GenericEmph, StringDoc), Push(`string-doc`)},
-			{`//[^\n]*\n`, CommentSingle, nil},
-			{`/\*(?:(?:` + multiLineCommentPattern + `)*|.|\n)*\*/`, CommentMultiline, nil},
-			{`\b(import|module)\b`, KeywordNamespace, nil},
-			{`\b(fn|struct|union|map|chan|type|interface|enum|const|mut|shared|pub|__global)\b`, KeywordDeclaration, nil},
-			{`\?`, KeywordDeclaration, nil},
-			{`(?<=\)\s*)!`, KeywordDeclaration, nil},
-			{`[ \t]*#include[^\n]+`, Using(`c`), nil},
-			{`[ \t]*#\w[^\n]*`, CommentPreproc, nil},
-			{`(sql)(\s+)(\w+)(\s+)({)([^}]*?)(})`, ByGroups(Keyword, Text, Name, Text, Punctuation, Using(`sql`), Punctuation), nil},
-			{`\$(?=\w)`, Operator, nil},
-			{`(?<=\$)(?:embed_file|pkgconfig|tmpl|env|compile_error|compile_warn)`, NameBuiltin, nil},
-			{`(asm)(\s+)(\w+)(\s*)({)([^}]*?)(})`, ByGroups(Keyword, Text, KeywordType, Text, Punctuation, Using(`nasm`), Punctuation), nil},
-			{`\b_(?:un)?likely_(?=\()`, NameFunctionMagic, nil},
-			{`(?<=\$if.+?(?:&&|\|\|)?)(` + Words(``, ``, `windows`, `linux`, `macos`, `mac`, `darwin`, `ios`, `android`, `mach`, `dragonfly`, `gnu`, `hpux`, `haiku`, `qnx`, `solaris`, `gcc`, `tinyc`, `clang`, `mingw`, `msvc`, `cplusplus`, `amd64`, `arm64`, `x64`, `x32`, `little_endian`, `big_endian`, `debug`, `prod`, `test`, `js`, `glibc`, `prealloc`, `no_bounds_checking`, `freestanding`, `no_segfault_handler`, `no_backtrace`, `no_main`) + `)+`, NameBuiltin, nil},
-			{`@` + Words(``, `\b`, `FN`, `METHOD`, `MOD`, `STRUCT`, `FILE`, `LINE`, `COLUMN`, `VEXE`, `VEXEROOT`, `VHASH`, `VMOD_FILE`, `VMODROOT`), NameVariableMagic, nil},
-			{Words(`\b(?<!@)`, `\b`, `break`, `select`, `match`, `defer`, `go`, `goto`, `else`, `if`, `continue`, `for`, `return`, `assert`, `or`, `as`, `atomic`, `isreftype`, `is`, `in`, `lock`, `rlock`, `sizeof`, `typeof`, `unsafe`, `volatile`, `static`, `__offsetof`), Keyword, nil},
-			{`\b(?<!@)(none|true|false|si_s_code|si_g32_code|si_g64_code)\b`, KeywordConstant, nil},
-			{Words(`\b(?<!@)`, `(?=\()`, `u8`, `u16`, `u32`, `u64`, `u128`, `int`, `i8`, `i16`, `i64`, `i128`, `f32`, `f64`, `rune`, `string`, `bool`, `usize`, `isize`, `any`, `error`, `print`, `println`, `dump`, `panic`, `eprint`, `eprintln`, `copy`, `close`, `len`, `map`, `filter`, `cap`, `delete`, `delete_many`, `delete_last`, `c_error_number_str`, `compare_strings`, `cstring_to_vstring`, `error_with_code`, `exit`, `f32_abs`, `f32_max`, `f32_min`, `f64_max`, `flush_stderr`, `flush_stdout`, `free`, `gc_check_leaks`, `get_str_intp_u32_format`, `get_str_intp_u64_format`, `isnil`, `malloc`, `malloc_noscan`, `memdup`, `memdup_noscan`, `panic_error_number`, `panic_lasterr`, `panic_optional_not_set`, `panic_result_not_set`, `print_backtrace`, `proc_pidpath`, `ptr_str`, `realloc_data`, `str_intp`, `str_intp_g32`, `str_intp_g64`, `str_intp_rune`, `str_intp_sq`, `str_intp_sub`, `string_from_wide`, `string_from_wide2`, `tos`, `tos2`, `tos3`, `tos4`, `tos5`, `tos_clone`, `utf32_decode_to_buffer`, `utf32_to_str`, `utf32_to_str_no_malloc`, `utf8_char_len`, `utf8_getchar`, `utf8_str_visible_length`, `v_realloc`, `vcalloc`, `vcalloc_noscan`, `vmemcmp`, `vmemcpy`, `vmemmove`, `vmemset`, `vstrlen`, `vstrlen_char`, `winapi_lasterr_str`, `reduce`, `string`, `join`, `free`, `join_lines`, `sort_by_len`, `sort_ignore_case`, `str`, `byterune`, `bytestr`, `clone`, `hex`, `utf8_to_utf32`, `vbytes`, `vstring`, `vstring_literal`, `vstring_literal_with_len`, `vstring_with_len`, `try_pop`, `try_push`, `strg`, `strsci`, `strlong`, `eq_epsilon`, `hex_full`, `hex2`, `msg`, `code`, `repeat`, `bytes`, `length_in_bytes`, `ascii_str`, `is_alnum`, `is_bin_digit`, `is_capital`, `is_digit`, `is_hex_digit`, `is_letter`, `is_oct_digit`, `is_space`, `str_escaped`, `repeat_to_depth`, `insert`, `prepend`, `trim`, `drop`, `first`, `last`, `pop`, `clone_to_depth`, `push_many`, `reverse_in_place`, `reverse`, `any`, `all`, `sort`, `sort_with_compare`, `contains`, `index`, `grow_cap`, `grow_len`, `pointers`, `move`, `keys`, `after`, `after_char`, `all_after`, `all_after_last`, `all_before`, `all_before_last`, `before`, `capitalize`, `compare`, `contains_any`, `contains_any_substr`, `count`, `ends_with`, `fields`, `find_between`, `hash`, `index_after`, `index_any`, `index_u8`, `is_lower`, `is_title`, `is_upper`, `last_index`, `last_index_u8`, `len_utf8`, `limit`, `match_glob`, `parse_int`, `parse_uint`, `replace`, `replace_each`, `replace_once`, `runes`, `split`, `split_any`, `split_into_lines`, `split_nth`, `starts_with`, `starts_with_capital`, `strip_margin`, `strip_margin_custom`, `substr`, `substr_ni`, `substr_with_check`, `title`, `to_lower`, `to_upper`, `to_wide`, `trim_left`, `trim_right`, `trim_space`, `trim_string_left`, `trim_string_right`, `utf32_code`), NameBuiltin, nil},
-			{Words(`\b(?<!@)`, `\b`, `ArrayFlags`, `AttributeKind`, `ChanState`, `StrIntpType`, `array`, `Error`, `FieldData`, `FunctionData`, `map`, `MethodArgs`, `SortedMap`, `string`, `StrIntpCgenData`, `StrIntpData`, `StrIntpMem`, `StructAttribute`, `VAssertMetaInfo`), NameBuiltin, nil},
-			{Words(`\b(?<!@)`, `\b`, `u8`, `u16`, `u32`, `u64`, `u128`, `int`, `i8`, `i16`, `i64`, `i128`, `f32`, `f64`, `rune`, `string`, `bool`, `usize`, `isize`, `any`, `error`, `voidptr`), KeywordType, nil},
-			{`\bit\b`, NameVariableMagic, nil},
-			{`(?<!fn\s+)(?<=\w+\s+|^)\[(?=:if +)?(?=\w+)`, Punctuation, Push(`attribute`)},
-			{`(<<=|>>=|>>>=|>>>|<<|>>|<=|>=|\^=|\+=|-=|\*=|/=|%=|&=|\|=|&&|\|\||<-|\+\+|--|==|!=|:=|\.\.\.|\.\.|[+\-*/%&|^~=#@!])`, Operator, nil},
-			{`[\d_]+(\.\d+e[+\-]?\d+|\.\d+|e[+\-]?\d+)`, LiteralNumberFloat, nil},
-			{`\.\d+(e[+\-]?\d+)?`, LiteralNumberFloat, nil},
-			{`0o[0-7_]+`, LiteralNumberOct, nil},
-			{`0x[0-9a-fA-F_]+`, LiteralNumberHex, nil},
-			{`0b[01_]+`, LiteralNumberBin, nil},
-			{`(0|[1-9][0-9_]*)`, LiteralNumberInteger, nil},
-			{"`", StringChar, Push(`char`)},
-			Include(`strings`),
-			{`@?` + typeNamePattern, NameClass, nil},
-			{`(?<=` + namePattern + `)(<)(` + typeNamePattern + `)(>)`, ByGroups(Punctuation, NameClass, Punctuation), nil},
-			{`@?` + namePattern + `(?=\()`, NameFunction, nil},
-			{`(?<=fn\s+)@?` + namePattern + `(?=\s*\()`, NameFunction, nil},
-			{`(?<=(?:continue|break|goto)\s+)\w+`, NameLabel, nil},
-			{`\b` + namePattern + `(?=:(?:$|\s+for))`, NameLabel, nil},
-			{`[<>()\[\]{}.,;:]`, Punctuation, nil},
-			{`@?` + namePattern, NameVariable, nil},
-		},
-		"strings": {
-			{`(c)?(")`, ByGroups(StringAffix, StringDouble), Push(`string-double`)},
-			{`(c)?(')`, ByGroups(StringAffix, StringSingle), Push(`string-single`)},
-			{`(r)("[^"]+")`, ByGroups(StringAffix, String), nil},
-			{`(r)('[^']+')`, ByGroups(StringAffix, String), nil},
-		},
-		"string-double": {
-			{`"`, StringDouble, Pop(1)},
-			Include(`char-escape`),
-			{`(\$)((?!\\){)`, ByGroups(Operator, Punctuation), Push(`string-curly-interpolation`)},
-			{`\$`, Operator, Push(`string-interpolation`)},
-			{`[^"]+?`, StringDouble, nil},
-		},
-		"string-single": {
-			{`'`, StringSingle, Pop(1)},
-			Include(`char-escape`),
-			{`(\$)((?!\\){)`, ByGroups(Operator, Punctuation), Push(`string-curly-interpolation`)},
-			{`\$`, Operator, Push(`string-interpolation`)},
-			{`[^']+?`, StringSingle, nil},
-		},
-		"char": {
-			{"`", StringChar, Pop(1)},
-			Include(`char-escape`),
-			{`[^\\]`, StringChar, nil},
-		},
-		"char-escape": {
-			{"\\\\[`'\"\\\\abfnrtv$]|\\\\x[0-9a-fA-F]{2}|\\\\[0-7]{1,3}|\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}", StringEscape, nil},
-		},
-		"string-doc": {
-			{`(// *)(#+ [^\n]+)(\n)`, ByGroups(StringDoc, GenericHeading, Text), nil},
-			{`// *([=_*~-])\1{2,}\n`, StringDelimiter, nil},
-			{`//[^\n]*\n`, StringDoc, nil},
-			Default(Pop(1)),
-		},
-		"string-interpolation": {
-			{`(\.)?(@)?(?:(` + namePattern + `)(\()([^)]*)(\))|(` + namePattern + `))`, ByGroups(Punctuation, Operator, NameFunction, Punctuation, UsingSelf(`root`), Punctuation, NameVariable), nil},
-			Default(Pop(1)),
-		},
-		"string-curly-interpolation": {
-			{`}`, Punctuation, Pop(1)},
-			Include(`strings`),
-			{`(:)( *?)([ 0'#+-])?(?:(\.)?([0-9]+))?([fFgeEGxXobsd])?`, ByGroups(Punctuation, Text, Operator, Punctuation, Number, StringAffix), nil},
-			{`[^}"':]+`, UsingSelf(`root`), nil},
-		},
-		"attribute": {
-			{`\]`, Punctuation, Pop(1)},
-			{`'`, Punctuation, Push(`string-single`)},
-			{`"`, Punctuation, Push(`string-double`)},
-			{`[;:]`, Punctuation, nil},
-			{`(?<=\[)if\b`, Keyword, nil},
-			{`\s+`, Text, nil},
-			{`(?<=: *)\w+`, String, nil},
-			{namePattern, NameAttribute, nil},
-		},
-	}
-}
-
-// V shell lexer.
-var VSH = Register(MustNewLexer(
-	&Config{
-		Name:      "V shell",
-		Aliases:   []string{"vsh", "vshell"},
-		Filenames: []string{"*.vsh"},
-		MimeTypes: []string{"text/x-vsh"},
-		EnsureNL:  true,
-	},
-	vshRules,
-).SetAnalyser(func(text string) float32 {
-	firstLine := strings.Split(text, "\n")[0]
-	if strings.Contains(firstLine, "#!/usr/bin/env") && strings.Contains(firstLine, "v run") {
-		return 1.0
-	}
-	if strings.Contains(firstLine, "#!/") && strings.Contains(firstLine, "/v run") {
-		return 1.0
-	}
-	return 0.0
-}))
-
-func vshRules() Rules {
-	vshRules := vRules()
-	vshRoot := []Rule{
-		{`^#![^\n]*\n`, CommentHashbang, nil},
-		{Words(`\b`, `\b`, `args`, `max_path_len`, `wd_at_startup`, `sys_write`, `sys_open`, `sys_close`, `sys_mkdir`, `sys_creat`, `path_separator`, `path_delimiter`, `s_ifmt`, `s_ifdir`, `s_iflnk`, `s_isuid`, `s_isgid`, `s_isvtx`, `s_irusr`, `s_iwusr`, `s_ixusr`, `s_irgrp`, `s_iwgrp`, `s_ixgrp`, `s_iroth`, `s_iwoth`, `s_ixoth`), NameConstant, nil},
-		{Words(`\b`, `\b`, `ProcessState`, `SeekMode`, `Signal`, `Command`, `ExecutableNotFoundError`, `File`, `FileNotOpenedError`, `Process`, `Result`, `SizeOfTypeIs0Error`, `Uname`), NameBuiltin, nil},
-		{Words(`\b`, `(?=\()`, `abs_path`, `args_after`, `args_before`, `base`, `cache_dir`, `chdir`, `chmod`, `chown`, `config_dir`, `cp`, `cp_all`, `create`, `debugger_present`, `dir`, `environ`, `executable`, `execute`, `execute_or_exit`, `execute_or_panic`, `execve`, `execvp`, `existing_path`, `exists`, `exists_in_system_path`, `expand_tilde_to_home`, `fd_close`, `fd_read`, `fd_slurp`, `fd_write`, `file_ext`, `file_last_mod_unix`, `file_name`, `file_size`, `fileno`, `find_abs_path_of_executable`, `flush`, `fork`, `get_error_msg`, `get_line`, `get_lines`, `get_lines_joined`, `get_raw_line`, `get_raw_lines_joined`, `get_raw_stdin`, `getegid`, `getenv`, `getenv_opt`, `geteuid`, `getgid`, `getpid`, `getppid`, `getuid`, `getwd`, `glob`, `home_dir`, `hostname`, `inode`, `input`, `input_opt`, `is_abs_path`, `is_atty`, `is_dir`, `is_dir_empty`, `is_executable`, `is_file`, `is_link`, `is_readable`, `is_writable`, `is_writable_folder`, `join_path`, `join_path_single`, `last_error`, `link`, `log`, `loginname`, `ls`, `mkdir`, `mkdir_all`, `mv`, `mv_by_cp`, `new_process`, `norm_path`, `open`, `open_append`, `open_file`, `open_uri`, `posix_get_error_msg`, `posix_set_permission_bit`, `quoted_path`, `read_bytes`, `read_file`, `read_file_array`, `read_lines`, `real_path`, `resource_abs_path`, `rm`, `rmdir`, `rmdir_all`, `setenv`, `sigint_to_signal_name`, `signal_opt`, `stderr`, `stdin`, `stdout`, `symlink`, `system`, `temp_dir`, `truncate`, `uname`, `unsetenv`, `user_os`, `utime`, `vfopen`, `vmodules_dir`, `vmodules_paths`, `wait`, `walk`, `walk_ext`, `walk_with_context`, `write_file`, `write_file_array`, `bitmask`, `close`, `read_line`, `start`, `msg`, `read`, `read_bytes_at`, `read_bytes_into`, `read_bytes_into_newline`, `read_from`, `read_into_ptr`, `read_raw`, `read_raw_at`, `read_struct`, `read_struct_at`, `seek`, `tell`, `write`, `write_raw`, `write_raw_at`, `write_string`, `write_struct`, `write_struct_at`, `write_to`, `writeln`, `is_alive`, `run`, `set_args`, `set_environment`, `set_redirect_stdio`, `signal_continue`, `signal_kill`, `signal_pgkill`, `signal_stop`, `stderr_read`, `stderr_slurp`, `stdin_write`, `stdout_read`, `stdout_slurp`), NameBuiltin, nil},
-	}
-
-	vshRules[`root`] = append(vshRoot, vshRules[`root`]...)
-
-	return vshRules
-}
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/vim.go
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/vim.go	(revision 67)
+++ 	(revision )
@@ -1,39 +1,0 @@
-package lexers
-
-import (
-	. "github.com/alecthomas/chroma/v2" // nolint
-)
-
-// Viml lexer.
-var Viml = Register(MustNewLexer(
-	&Config{
-		Name:      "VimL",
-		Aliases:   []string{"vim"},
-		Filenames: []string{"*.vim", ".vimrc", ".exrc", ".gvimrc", "_vimrc", "_exrc", "_gvimrc", "vimrc", "gvimrc"},
-		MimeTypes: []string{"text/x-vim"},
-	},
-	vimlRules,
-))
-
-func vimlRules() Rules {
-	return Rules{
-		"root": {
-			{`^([ \t:]*)(py(?:t(?:h(?:o(?:n)?)?)?)?)([ \t]*)(<<)([ \t]*)(.*)((?:\n|.)*)(\6)`, ByGroups(UsingSelf("root"), Keyword, Text, Operator, Text, Text, Using("Python"), Text), nil},
-			{`^([ \t:]*)(py(?:t(?:h(?:o(?:n)?)?)?)?)([ \t])(.*)`, ByGroups(UsingSelf("root"), Keyword, Text, Using("Python")), nil},
-			{`^\s*".*`, Comment, nil},
-			{`[ \t]+`, Text, nil},
-			{`/(\\\\|\\/|[^\n/])*/`, LiteralStringRegex, nil},
-			{`"(\\\\|\\"|[^\n"])*"`, LiteralStringDouble, nil},
-			{`'(''|[^\n'])*'`, LiteralStringSingle, nil},
-			{`(?<=\s)"[^\-:.%#=*].*`, Comment, nil},
-			{`-?\d+`, LiteralNumber, nil},
-			{`#[0-9a-f]{6}`, LiteralNumberHex, nil},
-			{`^:`, Punctuation, nil},
-			{`[()<>+=!|,~-]`, Punctuation, nil},
-			{`\b(let|if|else|endif|elseif|fun|function|endfunction)\b`, Keyword, nil},
-			{`\b(NONE|bold|italic|underline|dark|light)\b`, NameBuiltin, nil},
-			{`\b\w+\b`, NameOther, nil},
-			{`.`, Text, nil},
-		},
-	}
-}
Index: trunk/vendor/github.com/alecthomas/chroma/v2/lexers/zed.go
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/lexers/zed.go	(revision 67)
+++ 	(revision )
@@ -1,24 +1,0 @@
-package lexers
-
-import (
-	"strings"
-)
-
-// Zed lexer.
-func init() { // nolint: gochecknoinits
-	Get("Zed").SetAnalyser(func(text string) float32 {
-		if strings.Contains(text, "definition ") && strings.Contains(text, "relation ") && strings.Contains(text, "permission ") {
-			return 0.9
-		}
-		if strings.Contains(text, "definition ") {
-			return 0.5
-		}
-		if strings.Contains(text, "relation ") {
-			return 0.5
-		}
-		if strings.Contains(text, "permission ") {
-			return 0.25
-		}
-		return 0.0
-	})
-}
Index: trunk/vendor/github.com/alecthomas/chroma/v2/mutators.go
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/mutators.go	(revision 67)
+++ 	(revision )
@@ -1,201 +1,0 @@
-package chroma
-
-import (
-	"encoding/xml"
-	"fmt"
-	"strings"
-)
-
-// A Mutator modifies the behaviour of the lexer.
-type Mutator interface {
-	// Mutate the lexer state machine as it is processing.
-	Mutate(state *LexerState) error
-}
-
-// SerialisableMutator is a Mutator that can be serialised and deserialised.
-type SerialisableMutator interface {
-	Mutator
-	MutatorKind() string
-}
-
-// A LexerMutator is an additional interface that a Mutator can implement
-// to modify the lexer when it is compiled.
-type LexerMutator interface {
-	// MutateLexer can be implemented to mutate the lexer itself.
-	//
-	// Rules are the lexer rules, state is the state key for the rule the mutator is associated with.
-	MutateLexer(rules CompiledRules, state string, rule int) error
-}
-
-// A MutatorFunc is a Mutator that mutates the lexer state machine as it is processing.
-type MutatorFunc func(state *LexerState) error
-
-func (m MutatorFunc) Mutate(state *LexerState) error { return m(state) } // nolint
-
-type multiMutator struct {
-	Mutators []Mutator `xml:"mutator"`
-}
-
-func (m *multiMutator) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
-	for {
-		token, err := d.Token()
-		if err != nil {
-			return err
-		}
-		switch token := token.(type) {
-		case xml.StartElement:
-			mutator, err := unmarshalMutator(d, token)
-			if err != nil {
-				return err
-			}
-			m.Mutators = append(m.Mutators, mutator)
-
-		case xml.EndElement:
-			return nil
-		}
-	}
-}
-
-func (m *multiMutator) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
-	name := xml.Name{Local: "mutators"}
-	if err := e.EncodeToken(xml.StartElement{Name: name}); err != nil {
-		return err
-	}
-	for _, m := range m.Mutators {
-		if err := marshalMutator(e, m); err != nil {
-			return err
-		}
-	}
-	return e.EncodeToken(xml.EndElement{Name: name})
-}
-
-func (m *multiMutator) MutatorKind() string { return "multiple" }
-
-func (m *multiMutator) Mutate(state *LexerState) error {
-	for _, modifier := range m.Mutators {
-		if err := modifier.Mutate(state); err != nil {
-			return err
-		}
-	}
-	return nil
-}
-
-// Mutators applies a set of Mutators in order.
-func Mutators(modifiers ...Mutator) Mutator {
-	return &multiMutator{modifiers}
-}
-
-type includeMutator struct {
-	State string `xml:"state,attr"`
-}
-
-// Include the given state.
-func Include(state string) Rule {
-	return Rule{Mutator: &includeMutator{state}}
-}
-
-func (i *includeMutator) MutatorKind() string { return "include" }
-
-func (i *includeMutator) Mutate(s *LexerState) error {
-	return fmt.Errorf("should never reach here Include(%q)", i.State)
-}
-
-func (i *includeMutator) MutateLexer(rules CompiledRules, state string, rule int) error {
-	includedRules, ok := rules[i.State]
-	if !ok {
-		return fmt.Errorf("invalid include state %q", i.State)
-	}
-	rules[state] = append(rules[state][:rule], append(includedRules, rules[state][rule+1:]...)...)
-	return nil
-}
-
-type combinedMutator struct {
-	States []string `xml:"state,attr"`
-}
-
-func (c *combinedMutator) MutatorKind() string { return "combined" }
-
-// Combined creates a new anonymous state from the given states, and pushes that state.
-func Combined(states ...string) Mutator {
-	return &combinedMutator{states}
-}
-
-func (c *combinedMutator) Mutate(s *LexerState) error {
-	return fmt.Errorf("should never reach here Combined(%v)", c.States)
-}
-
-func (c *combinedMutator) MutateLexer(rules CompiledRules, state string, rule int) error {
-	name := "__combined_" + strings.Join(c.States, "__")
-	if _, ok := rules[name]; !ok {
-		combined := []*CompiledRule{}
-		for _, state := range c.States {
-			rules, ok := rules[state]
-			if !ok {
-				return fmt.Errorf("invalid combine state %q", state)
-			}
-			combined = append(combined, rules...)
-		}
-		rules[name] = combined
-	}
-	rules[state][rule].Mutator = Push(name)
-	return nil
-}
-
-type pushMutator struct {
-	States []string `xml:"state,attr"`
-}
-
-func (p *pushMutator) MutatorKind() string { return "push" }
-
-func (p *pushMutator) Mutate(s *LexerState) error {
-	if len(p.States) == 0 {
-		s.Stack = append(s.Stack, s.State)
-	} else {
-		for _, state := range p.States {
-			if state == "#pop" {
-				s.Stack = s.Stack[:len(s.Stack)-1]
-			} else {
-				s.Stack = append(s.Stack, state)
-			}
-		}
-	}
-	return nil
-}
-
-// Push states onto the stack.
-func Push(states ...string) Mutator {
-	return &pushMutator{states}
-}
-
-type popMutator struct {
-	Depth int `xml:"depth,attr"`
-}
-
-func (p *popMutator) MutatorKind() string { return "pop" }
-
-func (p *popMutator) Mutate(state *LexerState) error {
-	if len(state.Stack) == 0 {
-		return fmt.Errorf("nothing to pop")
-	}
-	state.Stack = state.Stack[:len(state.Stack)-p.Depth]
-	return nil
-}
-
-// Pop state from the stack when rule matches.
-func Pop(n int) Mutator {
-	return &popMutator{n}
-}
-
-// Default returns a Rule that applies a set of Mutators.
-func Default(mutators ...Mutator) Rule {
-	return Rule{Mutator: Mutators(mutators...)}
-}
-
-// Stringify returns the raw string for a set of tokens.
-func Stringify(tokens ...Token) string {
-	out := []string{}
-	for _, t := range tokens {
-		out = append(out, t.Value)
-	}
-	return strings.Join(out, "")
-}
Index: trunk/vendor/github.com/alecthomas/chroma/v2/pygments-lexers.txt
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/pygments-lexers.txt	(revision 67)
+++ 	(revision )
@@ -1,322 +1,0 @@
-Generated with:
-
-  g 'class.*RegexLexer' | pawk --strict -F: '"pygments.lexers.%s.%s" % (f[0].split(".")[0], f[2].split()[1].split("(")[0])' > lexers.txt
-
-kotlin:
-  invalid unicode escape sequences
-  FIXED: Have to disable wide Unicode characters in unistring.py
-
-pygments.lexers.ambient.AmbientTalkLexer
-pygments.lexers.ampl.AmplLexer
-pygments.lexers.actionscript.ActionScriptLexer
-pygments.lexers.actionscript.ActionScript3Lexer
-pygments.lexers.actionscript.MxmlLexer
-pygments.lexers.algebra.GAPLexer
-pygments.lexers.algebra.MathematicaLexer
-pygments.lexers.algebra.MuPADLexer
-pygments.lexers.algebra.BCLexer
-pygments.lexers.apl.APLLexer
-pygments.lexers.bibtex.BibTeXLexer
-pygments.lexers.bibtex.BSTLexer
-pygments.lexers.basic.BlitzMaxLexer
-pygments.lexers.basic.BlitzBasicLexer
-pygments.lexers.basic.MonkeyLexer
-pygments.lexers.basic.CbmBasicV2Lexer
-pygments.lexers.basic.QBasicLexer
-pygments.lexers.automation.AutohotkeyLexer
-pygments.lexers.automation.AutoItLexer
-pygments.lexers.archetype.AtomsLexer
-pygments.lexers.c_like.ClayLexer
-pygments.lexers.c_like.ValaLexer
-pygments.lexers.asm.GasLexer
-pygments.lexers.asm.ObjdumpLexer
-pygments.lexers.asm.HsailLexer
-pygments.lexers.asm.LlvmLexer
-pygments.lexers.asm.NasmLexer
-pygments.lexers.asm.TasmLexer
-pygments.lexers.asm.Ca65Lexer
-pygments.lexers.business.CobolLexer
-pygments.lexers.business.ABAPLexer
-pygments.lexers.business.OpenEdgeLexer
-pygments.lexers.business.GoodDataCLLexer
-pygments.lexers.business.MaqlLexer
-pygments.lexers.capnproto.CapnProtoLexer
-pygments.lexers.chapel.ChapelLexer
-pygments.lexers.clean.CleanLexer
-pygments.lexers.c_cpp.CFamilyLexer
-pygments.lexers.console.VCTreeStatusLexer
-pygments.lexers.console.PyPyLogLexer
-pygments.lexers.csound.CsoundLexer
-pygments.lexers.csound.CsoundDocumentLexer
-pygments.lexers.csound.CsoundDocumentLexer
-pygments.lexers.crystal.CrystalLexer
-pygments.lexers.dalvik.SmaliLexer
-pygments.lexers.css.CssLexer
-pygments.lexers.css.SassLexer
-pygments.lexers.css.ScssLexer
-pygments.lexers.configs.IniLexer
-pygments.lexers.configs.RegeditLexer
-pygments.lexers.configs.PropertiesLexer
-pygments.lexers.configs.KconfigLexer
-pygments.lexers.configs.Cfengine3Lexer
-pygments.lexers.configs.ApacheConfLexer
-pygments.lexers.configs.SquidConfLexer
-pygments.lexers.configs.NginxConfLexer
-pygments.lexers.configs.LighttpdConfLexer
-pygments.lexers.configs.DockerLexer
-pygments.lexers.configs.TerraformLexer
-pygments.lexers.configs.TermcapLexer
-pygments.lexers.configs.TerminfoLexer
-pygments.lexers.configs.PkgConfigLexer
-pygments.lexers.configs.PacmanConfLexer
-pygments.lexers.data.YamlLexer
-pygments.lexers.data.JsonLexer
-pygments.lexers.diff.DiffLexer
-pygments.lexers.diff.DarcsPatchLexer
-pygments.lexers.diff.WDiffLexer
-pygments.lexers.dotnet.CSharpLexer
-pygments.lexers.dotnet.NemerleLexer
-pygments.lexers.dotnet.BooLexer
-pygments.lexers.dotnet.VbNetLexer
-pygments.lexers.dotnet.GenericAspxLexer
-pygments.lexers.dotnet.FSharpLexer
-pygments.lexers.dylan.DylanLexer
-pygments.lexers.dylan.DylanLidLexer
-pygments.lexers.ecl.ECLLexer
-pygments.lexers.eiffel.EiffelLexer
-pygments.lexers.dsls.ProtoBufLexer
-pygments.lexers.dsls.ThriftLexer
-pygments.lexers.dsls.BroLexer
-pygments.lexers.dsls.PuppetLexer
-pygments.lexers.dsls.RslLexer
-pygments.lexers.dsls.MscgenLexer
-pygments.lexers.dsls.VGLLexer
-pygments.lexers.dsls.AlloyLexer
-pygments.lexers.dsls.PanLexer
-pygments.lexers.dsls.CrmshLexer
-pygments.lexers.dsls.FlatlineLexer
-pygments.lexers.dsls.SnowballLexer
-pygments.lexers.elm.ElmLexer
-pygments.lexers.erlang.ErlangLexer
-pygments.lexers.erlang.ElixirLexer
-pygments.lexers.ezhil.EzhilLexer
-pygments.lexers.esoteric.BrainfuckLexer
-pygments.lexers.esoteric.BefungeLexer
-pygments.lexers.esoteric.CAmkESLexer
-pygments.lexers.esoteric.CapDLLexer
-pygments.lexers.esoteric.RedcodeLexer
-pygments.lexers.esoteric.AheuiLexer
-pygments.lexers.factor.FactorLexer
-pygments.lexers.fantom.FantomLexer
-pygments.lexers.felix.FelixLexer
-pygments.lexers.forth.ForthLexer
-pygments.lexers.fortran.FortranLexer
-pygments.lexers.fortran.FortranFixedLexer
-pygments.lexers.go.GoLexer
-pygments.lexers.foxpro.FoxProLexer
-pygments.lexers.graph.CypherLexer
-pygments.lexers.grammar_notation.BnfLexer
-pygments.lexers.grammar_notation.AbnfLexer
-pygments.lexers.grammar_notation.JsgfLexer
-pygments.lexers.graphics.GLShaderLexer
-pygments.lexers.graphics.PostScriptLexer
-pygments.lexers.graphics.AsymptoteLexer
-pygments.lexers.graphics.GnuplotLexer
-pygments.lexers.graphics.PovrayLexer
-pygments.lexers.hexdump.HexdumpLexer
-pygments.lexers.haskell.HaskellLexer
-pygments.lexers.haskell.IdrisLexer
-pygments.lexers.haskell.AgdaLexer
-pygments.lexers.haskell.CryptolLexer
-pygments.lexers.haskell.KokaLexer
-pygments.lexers.haxe.HaxeLexer
-pygments.lexers.haxe.HxmlLexer
-pygments.lexers.hdl.VerilogLexer
-pygments.lexers.hdl.SystemVerilogLexer
-pygments.lexers.hdl.VhdlLexer
-pygments.lexers.idl.IDLLexer
-pygments.lexers.inferno.LimboLexer
-pygments.lexers.igor.IgorLexer
-pygments.lexers.html.HtmlLexer
-pygments.lexers.html.DtdLexer
-pygments.lexers.html.XmlLexer
-pygments.lexers.html.HamlLexer
-pygments.lexers.html.ScamlLexer
-pygments.lexers.html.PugLexer
-pygments.lexers.installers.NSISLexer
-pygments.lexers.installers.RPMSpecLexer
-pygments.lexers.installers.SourcesListLexer
-pygments.lexers.installers.DebianControlLexer
-pygments.lexers.iolang.IoLexer
-pygments.lexers.julia.JuliaLexer
-pygments.lexers.int_fiction.Inform6Lexer
-pygments.lexers.int_fiction.Inform7Lexer
-pygments.lexers.int_fiction.Tads3Lexer
-pygments.lexers.make.BaseMakefileLexer
-pygments.lexers.make.CMakeLexer
-pygments.lexers.javascript.JavascriptLexer
-pygments.lexers.javascript.KalLexer
-pygments.lexers.javascript.LiveScriptLexer
-pygments.lexers.javascript.DartLexer
-pygments.lexers.javascript.TypeScriptLexer
-pygments.lexers.javascript.LassoLexer
-pygments.lexers.javascript.ObjectiveJLexer
-pygments.lexers.javascript.CoffeeScriptLexer
-pygments.lexers.javascript.MaskLexer
-pygments.lexers.javascript.EarlGreyLexer
-pygments.lexers.javascript.JuttleLexer
-pygments.lexers.jvm.JavaLexer
-pygments.lexers.jvm.ScalaLexer
-pygments.lexers.jvm.GosuLexer
-pygments.lexers.jvm.GroovyLexer
-pygments.lexers.jvm.IokeLexer
-pygments.lexers.jvm.ClojureLexer
-pygments.lexers.jvm.TeaLangLexer
-pygments.lexers.jvm.CeylonLexer
-pygments.lexers.jvm.KotlinLexer
-pygments.lexers.jvm.XtendLexer
-pygments.lexers.jvm.PigLexer
-pygments.lexers.jvm.GoloLexer
-pygments.lexers.jvm.JasminLexer
-pygments.lexers.markup.BBCodeLexer
-pygments.lexers.markup.MoinWikiLexer
-pygments.lexers.markup.RstLexer
-pygments.lexers.markup.TexLexer
-pygments.lexers.markup.GroffLexer
-pygments.lexers.markup.MozPreprocHashLexer
-pygments.lexers.markup.MarkdownLexer
-pygments.lexers.ml.SMLLexer
-pygments.lexers.ml.OcamlLexer
-pygments.lexers.ml.OpaLexer
-pygments.lexers.modeling.ModelicaLexer
-pygments.lexers.modeling.BugsLexer
-pygments.lexers.modeling.JagsLexer
-pygments.lexers.modeling.StanLexer
-pygments.lexers.matlab.MatlabLexer
-pygments.lexers.matlab.OctaveLexer
-pygments.lexers.matlab.ScilabLexer
-pygments.lexers.monte.MonteLexer
-pygments.lexers.lisp.SchemeLexer
-pygments.lexers.lisp.CommonLispLexer
-pygments.lexers.lisp.HyLexer
-pygments.lexers.lisp.RacketLexer
-pygments.lexers.lisp.NewLispLexer
-pygments.lexers.lisp.EmacsLispLexer
-pygments.lexers.lisp.ShenLexer
-pygments.lexers.lisp.XtlangLexer
-pygments.lexers.modula2.Modula2Lexer
-pygments.lexers.ncl.NCLLexer
-pygments.lexers.nim.NimLexer
-pygments.lexers.nit.NitLexer
-pygments.lexers.nix.NixLexer
-pygments.lexers.oberon.ComponentPascalLexer
-pygments.lexers.ooc.OocLexer
-pygments.lexers.objective.SwiftLexer
-pygments.lexers.parasail.ParaSailLexer
-pygments.lexers.pawn.SourcePawnLexer
-pygments.lexers.pawn.PawnLexer
-pygments.lexers.pascal.AdaLexer
-pygments.lexers.parsers.RagelLexer
-pygments.lexers.parsers.RagelEmbeddedLexer
-pygments.lexers.parsers.AntlrLexer
-pygments.lexers.parsers.TreetopBaseLexer
-pygments.lexers.parsers.EbnfLexer
-pygments.lexers.php.ZephirLexer
-pygments.lexers.php.PhpLexer
-pygments.lexers.perl.PerlLexer
-pygments.lexers.perl.Perl6Lexer
-pygments.lexers.praat.PraatLexer
-pygments.lexers.prolog.PrologLexer
-pygments.lexers.prolog.LogtalkLexer
-pygments.lexers.qvt.QVToLexer
-pygments.lexers.rdf.SparqlLexer
-pygments.lexers.rdf.TurtleLexer
-pygments.lexers.python.PythonLexer
-pygments.lexers.python.Python3Lexer
-pygments.lexers.python.PythonTracebackLexer
-pygments.lexers.python.Python3TracebackLexer
-pygments.lexers.python.CythonLexer
-pygments.lexers.python.DgLexer
-pygments.lexers.rebol.RebolLexer
-pygments.lexers.rebol.RedLexer
-pygments.lexers.resource.ResourceLexer
-pygments.lexers.rnc.RNCCompactLexer
-pygments.lexers.roboconf.RoboconfGraphLexer
-pygments.lexers.roboconf.RoboconfInstancesLexer
-pygments.lexers.rust.RustLexer
-pygments.lexers.ruby.RubyLexer
-pygments.lexers.ruby.FancyLexer
-pygments.lexers.sas.SASLexer
-pygments.lexers.smalltalk.SmalltalkLexer
-pygments.lexers.smalltalk.NewspeakLexer
-pygments.lexers.smv.NuSMVLexer
-pygments.lexers.shell.BashLexer
-pygments.lexers.shell.BatchLexer
-pygments.lexers.shell.TcshLexer
-pygments.lexers.shell.PowerShellLexer
-pygments.lexers.shell.FishShellLexer
-pygments.lexers.snobol.SnobolLexer
-pygments.lexers.scripting.LuaLexer
-pygments.lexers.scripting.ChaiscriptLexer
-pygments.lexers.scripting.LSLLexer
-pygments.lexers.scripting.AppleScriptLexer
-pygments.lexers.scripting.RexxLexer
-pygments.lexers.scripting.MOOCodeLexer
-pygments.lexers.scripting.HybrisLexer
-pygments.lexers.scripting.EasytrieveLexer
-pygments.lexers.scripting.JclLexer
-pygments.lexers.supercollider.SuperColliderLexer
-pygments.lexers.stata.StataLexer
-pygments.lexers.tcl.TclLexer
-pygments.lexers.sql.PostgresLexer
-pygments.lexers.sql.PlPgsqlLexer
-pygments.lexers.sql.PsqlRegexLexer
-pygments.lexers.sql.SqlLexer
-pygments.lexers.sql.TransactSqlLexer
-pygments.lexers.sql.MySqlLexer
-pygments.lexers.sql.RqlLexer
-pygments.lexers.testing.GherkinLexer
-pygments.lexers.testing.TAPLexer
-pygments.lexers.textedit.AwkLexer
-pygments.lexers.textedit.VimLexer
-pygments.lexers.textfmts.IrcLogsLexer
-pygments.lexers.textfmts.GettextLexer
-pygments.lexers.textfmts.HttpLexer
-pygments.lexers.textfmts.TodotxtLexer
-pygments.lexers.trafficscript.RtsLexer
-pygments.lexers.theorem.CoqLexer
-pygments.lexers.theorem.IsabelleLexer
-pygments.lexers.theorem.LeanLexer
-pygments.lexers.templates.SmartyLexer
-pygments.lexers.templates.VelocityLexer
-pygments.lexers.templates.DjangoLexer
-pygments.lexers.templates.MyghtyLexer
-pygments.lexers.templates.MasonLexer
-pygments.lexers.templates.MakoLexer
-pygments.lexers.templates.CheetahLexer
-pygments.lexers.templates.GenshiTextLexer
-pygments.lexers.templates.GenshiMarkupLexer
-pygments.lexers.templates.JspRootLexer
-pygments.lexers.templates.EvoqueLexer
-pygments.lexers.templates.ColdfusionLexer
-pygments.lexers.templates.ColdfusionMarkupLexer
-pygments.lexers.templates.TeaTemplateRootLexer
-pygments.lexers.templates.HandlebarsLexer
-pygments.lexers.templates.LiquidLexer
-pygments.lexers.templates.TwigLexer
-pygments.lexers.templates.Angular2Lexer
-pygments.lexers.urbi.UrbiscriptLexer
-pygments.lexers.typoscript.TypoScriptCssDataLexer
-pygments.lexers.typoscript.TypoScriptHtmlDataLexer
-pygments.lexers.typoscript.TypoScriptLexer
-pygments.lexers.varnish.VCLLexer
-pygments.lexers.verification.BoogieLexer
-pygments.lexers.verification.SilverLexer
-pygments.lexers.x10.X10Lexer
-pygments.lexers.whiley.WhileyLexer
-pygments.lexers.xorg.XorgLexer
-pygments.lexers.webmisc.DuelLexer
-pygments.lexers.webmisc.XQueryLexer
-pygments.lexers.webmisc.QmlLexer
-pygments.lexers.webmisc.CirruLexer
-pygments.lexers.webmisc.SlimLexer
Index: trunk/vendor/github.com/alecthomas/chroma/v2/regexp.go
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/regexp.go	(revision 67)
+++ 	(revision )
@@ -1,480 +1,0 @@
-package chroma
-
-import (
-	"fmt"
-	"os"
-	"path/filepath"
-	"regexp"
-	"sort"
-	"strings"
-	"sync"
-	"time"
-	"unicode/utf8"
-
-	"github.com/dlclark/regexp2"
-)
-
-// A Rule is the fundamental matching unit of the Regex lexer state machine.
-type Rule struct {
-	Pattern string
-	Type    Emitter
-	Mutator Mutator
-}
-
-// Words creates a regex that matches any of the given literal words.
-func Words(prefix, suffix string, words ...string) string {
-	sort.Slice(words, func(i, j int) bool {
-		return len(words[j]) < len(words[i])
-	})
-	for i, word := range words {
-		words[i] = regexp.QuoteMeta(word)
-	}
-	return prefix + `(` + strings.Join(words, `|`) + `)` + suffix
-}
-
-// Tokenise text using lexer, returning tokens as a slice.
-func Tokenise(lexer Lexer, options *TokeniseOptions, text string) ([]Token, error) {
-	var out []Token
-	it, err := lexer.Tokenise(options, text)
-	if err != nil {
-		return nil, err
-	}
-	for t := it(); t != EOF; t = it() {
-		out = append(out, t)
-	}
-	return out, nil
-}
-
-// Rules maps from state to a sequence of Rules.
-type Rules map[string][]Rule
-
-// Rename clones rules then a rule.
-func (r Rules) Rename(oldRule, newRule string) Rules {
-	r = r.Clone()
-	r[newRule] = r[oldRule]
-	delete(r, oldRule)
-	return r
-}
-
-// Clone returns a clone of the Rules.
-func (r Rules) Clone() Rules {
-	out := map[string][]Rule{}
-	for key, rules := range r {
-		out[key] = make([]Rule, len(rules))
-		copy(out[key], rules)
-	}
-	return out
-}
-
-// Merge creates a clone of "r" then merges "rules" into the clone.
-func (r Rules) Merge(rules Rules) Rules {
-	out := r.Clone()
-	for k, v := range rules.Clone() {
-		out[k] = v
-	}
-	return out
-}
-
-// MustNewLexer creates a new Lexer with deferred rules generation or panics.
-func MustNewLexer(config *Config, rulesFunc func() Rules) *RegexLexer {
-	lexer, err := NewLexer(config, rulesFunc)
-	if err != nil {
-		panic(err)
-	}
-	return lexer
-}
-
-// NewLexer creates a new regex-based Lexer.
-//
-// "rules" is a state machine transition map. Each key is a state. Values are sets of rules
-// that match input, optionally modify lexer state, and output tokens.
-func NewLexer(config *Config, rulesFunc func() Rules) (*RegexLexer, error) {
-	if config == nil {
-		config = &Config{}
-	}
-	for _, glob := range append(config.Filenames, config.AliasFilenames...) {
-		_, err := filepath.Match(glob, "")
-		if err != nil {
-			return nil, fmt.Errorf("%s: %q is not a valid glob: %w", config.Name, glob, err)
-		}
-	}
-	r := &RegexLexer{
-		config:         config,
-		fetchRulesFunc: func() (Rules, error) { return rulesFunc(), nil },
-	}
-	// One-off code to generate XML lexers in the Chroma source tree.
-	// var nameCleanRe = regexp.MustCompile(`[^-+A-Za-z0-9_]`)
-	// name := strings.ToLower(nameCleanRe.ReplaceAllString(config.Name, "_"))
-	// data, err := Marshal(r)
-	// if err != nil {
-	// 	if errors.Is(err, ErrNotSerialisable) {
-	// 		fmt.Fprintf(os.Stderr, "warning: %q: %s\n", name, err)
-	// 		return r, nil
-	// 	}
-	// 	return nil, err
-	// }
-	// _, file, _, ok := runtime.Caller(2)
-	// if !ok {
-	// 	panic("??")
-	// }
-	// fmt.Println(file)
-	// if strings.Contains(file, "/lexers/") {
-	// 	dir := filepath.Join(filepath.Dir(file), "embedded")
-	// 	err = os.MkdirAll(dir, 0700)
-	// 	if err != nil {
-	// 		return nil, err
-	// 	}
-	// 	filename := filepath.Join(dir, name) + ".xml"
-	// 	fmt.Println(filename)
-	// 	err = ioutil.WriteFile(filename, data, 0600)
-	// 	if err != nil {
-	// 		return nil, err
-	// 	}
-	// }
-	return r, nil
-}
-
-// Trace enables debug tracing.
-func (r *RegexLexer) Trace(trace bool) *RegexLexer {
-	r.trace = trace
-	return r
-}
-
-// A CompiledRule is a Rule with a pre-compiled regex.
-//
-// Note that regular expressions are lazily compiled on first use of the lexer.
-type CompiledRule struct {
-	Rule
-	Regexp *regexp2.Regexp
-	flags  string
-}
-
-// CompiledRules is a map of rule name to sequence of compiled rules in that rule.
-type CompiledRules map[string][]*CompiledRule
-
-// LexerState contains the state for a single lex.
-type LexerState struct {
-	Lexer    *RegexLexer
-	Registry *LexerRegistry
-	Text     []rune
-	Pos      int
-	Rules    CompiledRules
-	Stack    []string
-	State    string
-	Rule     int
-	// Group matches.
-	Groups []string
-	// Named Group matches.
-	NamedGroups map[string]string
-	// Custum context for mutators.
-	MutatorContext map[interface{}]interface{}
-	iteratorStack  []Iterator
-	options        *TokeniseOptions
-	newlineAdded   bool
-}
-
-// Set mutator context.
-func (l *LexerState) Set(key interface{}, value interface{}) {
-	l.MutatorContext[key] = value
-}
-
-// Get mutator context.
-func (l *LexerState) Get(key interface{}) interface{} {
-	return l.MutatorContext[key]
-}
-
-// Iterator returns the next Token from the lexer.
-func (l *LexerState) Iterator() Token { // nolint: gocognit
-	end := len(l.Text)
-	if l.newlineAdded {
-		end--
-	}
-	for l.Pos < end && len(l.Stack) > 0 {
-		// Exhaust the iterator stack, if any.
-		for len(l.iteratorStack) > 0 {
-			n := len(l.iteratorStack) - 1
-			t := l.iteratorStack[n]()
-			if t == EOF {
-				l.iteratorStack = l.iteratorStack[:n]
-				continue
-			}
-			return t
-		}
-
-		l.State = l.Stack[len(l.Stack)-1]
-		if l.Lexer.trace {
-			fmt.Fprintf(os.Stderr, "%s: pos=%d, text=%q\n", l.State, l.Pos, string(l.Text[l.Pos:]))
-		}
-		selectedRule, ok := l.Rules[l.State]
-		if !ok {
-			panic("unknown state " + l.State)
-		}
-		ruleIndex, rule, groups, namedGroups := matchRules(l.Text, l.Pos, selectedRule)
-		// No match.
-		if groups == nil {
-			// From Pygments :\
-			//
-			// If the RegexLexer encounters a newline that is flagged as an error token, the stack is
-			// emptied and the lexer continues scanning in the 'root' state. This can help producing
-			// error-tolerant highlighting for erroneous input, e.g. when a single-line string is not
-			// closed.
-			if l.Text[l.Pos] == '\n' && l.State != l.options.State {
-				l.Stack = []string{l.options.State}
-				continue
-			}
-			l.Pos++
-			return Token{Error, string(l.Text[l.Pos-1 : l.Pos])}
-		}
-		l.Rule = ruleIndex
-		l.Groups = groups
-		l.NamedGroups = namedGroups
-		l.Pos += utf8.RuneCountInString(groups[0])
-		if rule.Mutator != nil {
-			if err := rule.Mutator.Mutate(l); err != nil {
-				panic(err)
-			}
-		}
-		if rule.Type != nil {
-			l.iteratorStack = append(l.iteratorStack, rule.Type.Emit(l.Groups, l))
-		}
-	}
-	// Exhaust the IteratorStack, if any.
-	// Duplicate code, but eh.
-	for len(l.iteratorStack) > 0 {
-		n := len(l.iteratorStack) - 1
-		t := l.iteratorStack[n]()
-		if t == EOF {
-			l.iteratorStack = l.iteratorStack[:n]
-			continue
-		}
-		return t
-	}
-
-	// If we get to here and we still have text, return it as an error.
-	if l.Pos != len(l.Text) && len(l.Stack) == 0 {
-		value := string(l.Text[l.Pos:])
-		l.Pos = len(l.Text)
-		return Token{Type: Error, Value: value}
-	}
-	return EOF
-}
-
-// RegexLexer is the default lexer implementation used in Chroma.
-type RegexLexer struct {
-	registry *LexerRegistry // The LexerRegistry this Lexer is associated with, if any.
-	config   *Config
-	analyser func(text string) float32
-	trace    bool
-
-	mu             sync.Mutex
-	compiled       bool
-	rawRules       Rules
-	rules          map[string][]*CompiledRule
-	fetchRulesFunc func() (Rules, error)
-	compileOnce    sync.Once
-}
-
-func (r *RegexLexer) String() string {
-	return r.config.Name
-}
-
-// Rules in the Lexer.
-func (r *RegexLexer) Rules() (Rules, error) {
-	if err := r.needRules(); err != nil {
-		return nil, err
-	}
-	return r.rawRules, nil
-}
-
-// SetRegistry the lexer will use to lookup other lexers if necessary.
-func (r *RegexLexer) SetRegistry(registry *LexerRegistry) Lexer {
-	r.registry = registry
-	return r
-}
-
-// SetAnalyser sets the analyser function used to perform content inspection.
-func (r *RegexLexer) SetAnalyser(analyser func(text string) float32) Lexer {
-	r.analyser = analyser
-	return r
-}
-
-func (r *RegexLexer) AnalyseText(text string) float32 { // nolint
-	if r.analyser != nil {
-		return r.analyser(text)
-	}
-	return 0.0
-}
-
-// SetConfig replaces the Config for this Lexer.
-func (r *RegexLexer) SetConfig(config *Config) *RegexLexer {
-	r.config = config
-	return r
-}
-
-func (r *RegexLexer) Config() *Config { // nolint
-	return r.config
-}
-
-// Regex compilation is deferred until the lexer is used. This is to avoid significant init() time costs.
-func (r *RegexLexer) maybeCompile() (err error) {
-	r.mu.Lock()
-	defer r.mu.Unlock()
-	if r.compiled {
-		return nil
-	}
-	for state, rules := range r.rules {
-		for i, rule := range rules {
-			if rule.Regexp == nil {
-				pattern := "(?:" + rule.Pattern + ")"
-				if rule.flags != "" {
-					pattern = "(?" + rule.flags + ")" + pattern
-				}
-				pattern = `\G` + pattern
-				rule.Regexp, err = regexp2.Compile(pattern, regexp2.RE2)
-				if err != nil {
-					return fmt.Errorf("failed to compile rule %s.%d: %s", state, i, err)
-				}
-				rule.Regexp.MatchTimeout = time.Millisecond * 250
-			}
-		}
-	}
-restart:
-	seen := map[LexerMutator]bool{}
-	for state := range r.rules {
-		for i := 0; i < len(r.rules[state]); i++ {
-			rule := r.rules[state][i]
-			if compile, ok := rule.Mutator.(LexerMutator); ok {
-				if seen[compile] {
-					return fmt.Errorf("saw mutator %T twice; this should not happen", compile)
-				}
-				seen[compile] = true
-				if err := compile.MutateLexer(r.rules, state, i); err != nil {
-					return err
-				}
-				// Process the rules again in case the mutator added/removed rules.
-				//
-				// This sounds bad, but shouldn't be significant in practice.
-				goto restart
-			}
-		}
-	}
-	r.compiled = true
-	return nil
-}
-
-func (r *RegexLexer) fetchRules() error {
-	rules, err := r.fetchRulesFunc()
-	if err != nil {
-		return fmt.Errorf("%s: failed to compile rules: %w", r.config.Name, err)
-	}
-	if _, ok := rules["root"]; !ok {
-		return fmt.Errorf("no \"root\" state")
-	}
-	compiledRules := map[string][]*CompiledRule{}
-	for state, rules := range rules {
-		compiledRules[state] = nil
-		for _, rule := range rules {
-			flags := ""
-			if !r.config.NotMultiline {
-				flags += "m"
-			}
-			if r.config.CaseInsensitive {
-				flags += "i"
-			}
-			if r.config.DotAll {
-				flags += "s"
-			}
-			compiledRules[state] = append(compiledRules[state], &CompiledRule{Rule: rule, flags: flags})
-		}
-	}
-
-	r.rawRules = rules
-	r.rules = compiledRules
-	return nil
-}
-
-func (r *RegexLexer) needRules() error {
-	var err error
-	if r.fetchRulesFunc != nil {
-		r.compileOnce.Do(func() {
-			err = r.fetchRules()
-		})
-	}
-	if err := r.maybeCompile(); err != nil {
-		return err
-	}
-	return err
-}
-
-func (r *RegexLexer) Tokenise(options *TokeniseOptions, text string) (Iterator, error) { // nolint
-	err := r.needRules()
-	if err != nil {
-		return nil, err
-	}
-	if options == nil {
-		options = defaultOptions
-	}
-	if options.EnsureLF {
-		text = ensureLF(text)
-	}
-	newlineAdded := false
-	if !options.Nested && r.config.EnsureNL && !strings.HasSuffix(text, "\n") {
-		text += "\n"
-		newlineAdded = true
-	}
-	state := &LexerState{
-		Registry:       r.registry,
-		newlineAdded:   newlineAdded,
-		options:        options,
-		Lexer:          r,
-		Text:           []rune(text),
-		Stack:          []string{options.State},
-		Rules:          r.rules,
-		MutatorContext: map[interface{}]interface{}{},
-	}
-	return state.Iterator, nil
-}
-
-// MustRules is like Rules() but will panic on error.
-func (r *RegexLexer) MustRules() Rules {
-	rules, err := r.Rules()
-	if err != nil {
-		panic(err)
-	}
-	return rules
-}
-
-func matchRules(text []rune, pos int, rules []*CompiledRule) (int, *CompiledRule, []string, map[string]string) {
-	for i, rule := range rules {
-		match, err := rule.Regexp.FindRunesMatchStartingAt(text, pos)
-		if match != nil && err == nil && match.Index == pos {
-			groups := []string{}
-			namedGroups := make(map[string]string)
-			for _, g := range match.Groups() {
-				namedGroups[g.Name] = g.String()
-				groups = append(groups, g.String())
-			}
-			return i, rule, groups, namedGroups
-		}
-	}
-	return 0, &CompiledRule{}, nil, nil
-}
-
-// replace \r and \r\n with \n
-// same as strings.ReplaceAll but more efficient
-func ensureLF(text string) string {
-	buf := make([]byte, len(text))
-	var j int
-	for i := 0; i < len(text); i++ {
-		c := text[i]
-		if c == '\r' {
-			if i < len(text)-1 && text[i+1] == '\n' {
-				continue
-			}
-			c = '\n'
-		}
-		buf[j] = c
-		j++
-	}
-	return string(buf[:j])
-}
Index: trunk/vendor/github.com/alecthomas/chroma/v2/registry.go
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/registry.go	(revision 67)
+++ 	(revision )
@@ -1,187 +1,0 @@
-package chroma
-
-import (
-	"path/filepath"
-	"sort"
-	"strings"
-)
-
-var (
-	ignoredSuffixes = [...]string{
-		// Editor backups
-		"~", ".bak", ".old", ".orig",
-		// Debian and derivatives apt/dpkg/ucf backups
-		".dpkg-dist", ".dpkg-old", ".ucf-dist", ".ucf-new", ".ucf-old",
-		// Red Hat and derivatives rpm backups
-		".rpmnew", ".rpmorig", ".rpmsave",
-		// Build system input/template files
-		".in",
-	}
-)
-
-// LexerRegistry is a registry of Lexers.
-type LexerRegistry struct {
-	Lexers  Lexers
-	byName  map[string]Lexer
-	byAlias map[string]Lexer
-}
-
-// NewLexerRegistry creates a new LexerRegistry of Lexers.
-func NewLexerRegistry() *LexerRegistry {
-	return &LexerRegistry{
-		byName:  map[string]Lexer{},
-		byAlias: map[string]Lexer{},
-	}
-}
-
-// Names of all lexers, optionally including aliases.
-func (l *LexerRegistry) Names(withAliases bool) []string {
-	out := []string{}
-	for _, lexer := range l.Lexers {
-		config := lexer.Config()
-		out = append(out, config.Name)
-		if withAliases {
-			out = append(out, config.Aliases...)
-		}
-	}
-	sort.Strings(out)
-	return out
-}
-
-// Get a Lexer by name, alias or file extension.
-func (l *LexerRegistry) Get(name string) Lexer {
-	if lexer := l.byName[name]; lexer != nil {
-		return lexer
-	}
-	if lexer := l.byAlias[name]; lexer != nil {
-		return lexer
-	}
-	if lexer := l.byName[strings.ToLower(name)]; lexer != nil {
-		return lexer
-	}
-	if lexer := l.byAlias[strings.ToLower(name)]; lexer != nil {
-		return lexer
-	}
-
-	candidates := PrioritisedLexers{}
-	// Try file extension.
-	if lexer := l.Match("filename." + name); lexer != nil {
-		candidates = append(candidates, lexer)
-	}
-	// Try exact filename.
-	if lexer := l.Match(name); lexer != nil {
-		candidates = append(candidates, lexer)
-	}
-	if len(candidates) == 0 {
-		return nil
-	}
-	sort.Sort(candidates)
-	return candidates[0]
-}
-
-// MatchMimeType attempts to find a lexer for the given MIME type.
-func (l *LexerRegistry) MatchMimeType(mimeType string) Lexer {
-	matched := PrioritisedLexers{}
-	for _, l := range l.Lexers {
-		for _, lmt := range l.Config().MimeTypes {
-			if mimeType == lmt {
-				matched = append(matched, l)
-			}
-		}
-	}
-	if len(matched) != 0 {
-		sort.Sort(matched)
-		return matched[0]
-	}
-	return nil
-}
-
-// Match returns the first lexer matching filename.
-func (l *LexerRegistry) Match(filename string) Lexer {
-	filename = filepath.Base(filename)
-	matched := PrioritisedLexers{}
-	// First, try primary filename matches.
-	for _, lexer := range l.Lexers {
-		config := lexer.Config()
-		for _, glob := range config.Filenames {
-			ok, err := filepath.Match(glob, filename)
-			if err != nil { // nolint
-				panic(err)
-			} else if ok {
-				matched = append(matched, lexer)
-			} else {
-				for _, suf := range &ignoredSuffixes {
-					ok, err := filepath.Match(glob+suf, filename)
-					if err != nil {
-						panic(err)
-					} else if ok {
-						matched = append(matched, lexer)
-						break
-					}
-				}
-			}
-		}
-	}
-	if len(matched) > 0 {
-		sort.Sort(matched)
-		return matched[0]
-	}
-	matched = nil
-	// Next, try filename aliases.
-	for _, lexer := range l.Lexers {
-		config := lexer.Config()
-		for _, glob := range config.AliasFilenames {
-			ok, err := filepath.Match(glob, filename)
-			if err != nil { // nolint
-				panic(err)
-			} else if ok {
-				matched = append(matched, lexer)
-			} else {
-				for _, suf := range &ignoredSuffixes {
-					ok, err := filepath.Match(glob+suf, filename)
-					if err != nil {
-						panic(err)
-					} else if ok {
-						matched = append(matched, lexer)
-						break
-					}
-				}
-			}
-		}
-	}
-	if len(matched) > 0 {
-		sort.Sort(matched)
-		return matched[0]
-	}
-	return nil
-}
-
-// Analyse text content and return the "best" lexer..
-func (l *LexerRegistry) Analyse(text string) Lexer {
-	var picked Lexer
-	highest := float32(0.0)
-	for _, lexer := range l.Lexers {
-		if analyser, ok := lexer.(Analyser); ok {
-			weight := analyser.AnalyseText(text)
-			if weight > highest {
-				picked = lexer
-				highest = weight
-			}
-		}
-	}
-	return picked
-}
-
-// Register a Lexer with the LexerRegistry.
-func (l *LexerRegistry) Register(lexer Lexer) Lexer {
-	lexer.SetRegistry(l)
-	config := lexer.Config()
-	l.byName[config.Name] = lexer
-	l.byName[strings.ToLower(config.Name)] = lexer
-	for _, alias := range config.Aliases {
-		l.byAlias[alias] = lexer
-		l.byAlias[strings.ToLower(alias)] = lexer
-	}
-	l.Lexers = append(l.Lexers, lexer)
-	return lexer
-}
Index: trunk/vendor/github.com/alecthomas/chroma/v2/remap.go
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/remap.go	(revision 67)
+++ 	(revision )
@@ -1,94 +1,0 @@
-package chroma
-
-type remappingLexer struct {
-	lexer  Lexer
-	mapper func(Token) []Token
-}
-
-// RemappingLexer remaps a token to a set of, potentially empty, tokens.
-func RemappingLexer(lexer Lexer, mapper func(Token) []Token) Lexer {
-	return &remappingLexer{lexer, mapper}
-}
-
-func (r *remappingLexer) AnalyseText(text string) float32 {
-	return r.lexer.AnalyseText(text)
-}
-
-func (r *remappingLexer) SetAnalyser(analyser func(text string) float32) Lexer {
-	r.lexer.SetAnalyser(analyser)
-	return r
-}
-
-func (r *remappingLexer) SetRegistry(registry *LexerRegistry) Lexer {
-	r.lexer.SetRegistry(registry)
-	return r
-}
-
-func (r *remappingLexer) Config() *Config {
-	return r.lexer.Config()
-}
-
-func (r *remappingLexer) Tokenise(options *TokeniseOptions, text string) (Iterator, error) {
-	it, err := r.lexer.Tokenise(options, text)
-	if err != nil {
-		return nil, err
-	}
-	var buffer []Token
-	return func() Token {
-		for {
-			if len(buffer) > 0 {
-				t := buffer[0]
-				buffer = buffer[1:]
-				return t
-			}
-			t := it()
-			if t == EOF {
-				return t
-			}
-			buffer = r.mapper(t)
-		}
-	}, nil
-}
-
-// TypeMapping defines type maps for the TypeRemappingLexer.
-type TypeMapping []struct {
-	From, To TokenType
-	Words    []string
-}
-
-// TypeRemappingLexer remaps types of tokens coming from a parent Lexer.
-//
-// eg. Map "defvaralias" tokens of type NameVariable to NameFunction:
-//
-// 		mapping := TypeMapping{
-// 			{NameVariable, NameFunction, []string{"defvaralias"},
-// 		}
-// 		lexer = TypeRemappingLexer(lexer, mapping)
-func TypeRemappingLexer(lexer Lexer, mapping TypeMapping) Lexer {
-	// Lookup table for fast remapping.
-	lut := map[TokenType]map[string]TokenType{}
-	for _, rt := range mapping {
-		km, ok := lut[rt.From]
-		if !ok {
-			km = map[string]TokenType{}
-			lut[rt.From] = km
-		}
-		if len(rt.Words) == 0 {
-			km[""] = rt.To
-		} else {
-			for _, k := range rt.Words {
-				km[k] = rt.To
-			}
-		}
-	}
-	return RemappingLexer(lexer, func(t Token) []Token {
-		if k, ok := lut[t.Type]; ok {
-			if tt, ok := k[t.Value]; ok {
-				t.Type = tt
-			} else if tt, ok := k[""]; ok {
-				t.Type = tt
-			}
-		}
-		return []Token{t}
-	})
-}
Index: trunk/vendor/github.com/alecthomas/chroma/v2/serialise.go
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/serialise.go	(revision 67)
+++ 	(revision )
@@ -1,433 +1,0 @@
-package chroma
-
-import (
-	"compress/gzip"
-	"encoding/xml"
-	"errors"
-	"fmt"
-	"io"
-	"io/fs"
-	"path/filepath"
-	"reflect"
-	"regexp"
-	"strings"
-)
-
-// Serialisation of Chroma rules to XML. The format is:
-//
-//     <rules>
-//       <state name="$STATE">
-//         <rule [pattern="$PATTERN"]>
-//           [<$EMITTER ...>]
-//           [<$MUTATOR ...>]
-//         </rule>
-//       </state>
-//     </rules>
-//
-// eg. Include("String") would become:
-//
-//     <rule>
-//       <include state="String" />
-//     </rule>
-//
-//     [null, null, {"kind": "include", "state": "String"}]
-//
-// eg. Rule{`\d+`, Text, nil} would become:
-//
-//     <rule pattern="\\d+">
-//       <token type="Text"/>
-//     </rule>
-//
-// eg. Rule{`"`, String, Push("String")}
-//
-//     <rule pattern="\"">
-//       <token type="String" />
-//       <push state="String" />
-//     </rule>
-//
-// eg. Rule{`(\w+)(\n)`, ByGroups(Keyword, Whitespace), nil},
-//
-//     <rule pattern="(\\w+)(\\n)">
-//       <bygroups token="Keyword" token="Whitespace" />
-//       <push state="String" />
-//     </rule>
-var (
-	// ErrNotSerialisable is returned if a lexer contains Rules that cannot be serialised.
-	ErrNotSerialisable = fmt.Errorf("not serialisable")
-	emitterTemplates   = func() map[string]SerialisableEmitter {
-		out := map[string]SerialisableEmitter{}
-		for _, emitter := range []SerialisableEmitter{
-			&byGroupsEmitter{},
-			&usingSelfEmitter{},
-			TokenType(0),
-			&usingEmitter{},
-			&usingByGroup{},
-		} {
-			out[emitter.EmitterKind()] = emitter
-		}
-		return out
-	}()
-	mutatorTemplates = func() map[string]SerialisableMutator {
-		out := map[string]SerialisableMutator{}
-		for _, mutator := range []SerialisableMutator{
-			&includeMutator{},
-			&combinedMutator{},
-			&multiMutator{},
-			&pushMutator{},
-			&popMutator{},
-		} {
-			out[mutator.MutatorKind()] = mutator
-		}
-		return out
-	}()
-)
-
-// fastUnmarshalConfig unmarshals only the Config from a serialised lexer.
-func fastUnmarshalConfig(from fs.FS, path string) (*Config, error) {
-	r, err := from.Open(path)
-	if err != nil {
-		return nil, err
-	}
-	defer r.Close()
-	dec := xml.NewDecoder(r)
-	for {
-		token, err := dec.Token()
-		if err != nil {
-			if errors.Is(err, io.EOF) {
-				return nil, fmt.Errorf("could not find <config> element")
-			}
-			return nil, err
-		}
-		switch se := token.(type) {
-		case xml.StartElement:
-			if se.Name.Local != "config" {
-				break
-			}
-
-			var config Config
-			err = dec.DecodeElement(&config, &se)
-			if err != nil {
-				panic(err)
-			}
-			return &config, nil
-		}
-	}
-}
-
-// MustNewXMLLexer constructs a new RegexLexer from an XML file or panics.
-func MustNewXMLLexer(from fs.FS, path string) *RegexLexer {
-	lex, err := NewXMLLexer(from, path)
-	if err != nil {
-		panic(err)
-	}
-	return lex
-}
-
-// NewXMLLexer creates a new RegexLexer from a serialised RegexLexer.
-func NewXMLLexer(from fs.FS, path string) (*RegexLexer, error) {
-	config, err := fastUnmarshalConfig(from, path)
-	if err != nil {
-		return nil, err
-	}
-	for _, glob := range append(config.Filenames, config.AliasFilenames...) {
-		_, err := filepath.Match(glob, "")
-		if err != nil {
-			return nil, fmt.Errorf("%s: %q is not a valid glob: %w", config.Name, glob, err)
-		}
-	}
-	return &RegexLexer{
-		config: config,
-		fetchRulesFunc: func() (Rules, error) {
-			var lexer struct {
-				Config
-				Rules Rules `xml:"rules"`
-			}
-			// Try to open .xml fallback to .xml.gz
-			fr, err := from.Open(path)
-			if err != nil {
-				if errors.Is(err, fs.ErrNotExist) {
-					path += ".gz"
-					fr, err = from.Open(path)
-					if err != nil {
-						return nil, err
-					}
-				} else {
-					return nil, err
-				}
-			}
-			defer fr.Close()
-			var r io.Reader = fr
-			if strings.HasSuffix(path, ".gz") {
-				r, err = gzip.NewReader(r)
-				if err != nil {
-					return nil, fmt.Errorf("%s: %w", path, err)
-				}
-			}
-			err = xml.NewDecoder(r).Decode(&lexer)
-			if err != nil {
-				return nil, fmt.Errorf("%s: %w", path, err)
-			}
-			return lexer.Rules, nil
-		},
-	}, nil
-}
-
-// Marshal a RegexLexer to XML.
-func Marshal(l *RegexLexer) ([]byte, error) {
-	type lexer struct {
-		Config Config `xml:"config"`
-		Rules  Rules  `xml:"rules"`
-	}
-
-	rules, err := l.Rules()
-	if err != nil {
-		return nil, err
-	}
-	root := &lexer{
-		Config: *l.Config(),
-		Rules:  rules,
-	}
-	data, err := xml.MarshalIndent(root, "", "  ")
-	if err != nil {
-		return nil, err
-	}
-	re := regexp.MustCompile(`></[a-zA-Z]+>`)
-	data = re.ReplaceAll(data, []byte(`/>`))
-	return data, nil
-}
-
-// Unmarshal a RegexLexer from XML.
-func Unmarshal(data []byte) (*RegexLexer, error) {
-	type lexer struct {
-		Config Config `xml:"config"`
-		Rules  Rules  `xml:"rules"`
-	}
-	root := &lexer{}
-	err := xml.Unmarshal(data, root)
-	if err != nil {
-		return nil, fmt.Errorf("invalid Lexer XML: %w", err)
-	}
-	lex, err := NewLexer(&root.Config, func() Rules { return root.Rules })
-	if err != nil {
-		return nil, err
-	}
-	return lex, nil
-}
-
-func marshalMutator(e *xml.Encoder, mutator Mutator) error {
-	if mutator == nil {
-		return nil
-	}
-	smutator, ok := mutator.(SerialisableMutator)
-	if !ok {
-		return fmt.Errorf("unsupported mutator: %w", ErrNotSerialisable)
-	}
-	return e.EncodeElement(mutator, xml.StartElement{Name: xml.Name{Local: smutator.MutatorKind()}})
-}
-
-func unmarshalMutator(d *xml.Decoder, start xml.StartElement) (Mutator, error) {
-	kind := start.Name.Local
-	mutator, ok := mutatorTemplates[kind]
-	if !ok {
-		return nil, fmt.Errorf("unknown mutator %q: %w", kind, ErrNotSerialisable)
-	}
-	value, target := newFromTemplate(mutator)
-	if err := d.DecodeElement(target, &start); err != nil {
-		return nil, err
-	}
-	return value().(SerialisableMutator), nil
-}
-
-func marshalEmitter(e *xml.Encoder, emitter Emitter) error {
-	if emitter == nil {
-		return nil
-	}
-	semitter, ok := emitter.(SerialisableEmitter)
-	if !ok {
-		return fmt.Errorf("unsupported emitter %T: %w", emitter, ErrNotSerialisable)
-	}
-	return e.EncodeElement(emitter, xml.StartElement{
-		Name: xml.Name{Local: semitter.EmitterKind()},
-	})
-}
-
-func unmarshalEmitter(d *xml.Decoder, start xml.StartElement) (Emitter, error) {
-	kind := start.Name.Local
-	mutator, ok := emitterTemplates[kind]
-	if !ok {
-		return nil, fmt.Errorf("unknown emitter %q: %w", kind, ErrNotSerialisable)
-	}
-	value, target := newFromTemplate(mutator)
-	if err := d.DecodeElement(target, &start); err != nil {
-		return nil, err
-	}
-	return value().(SerialisableEmitter), nil
-}
-
-func (r Rule) MarshalXML(e *xml.Encoder, _ xml.StartElement) error {
-	start := xml.StartElement{
-		Name: xml.Name{Local: "rule"},
-	}
-	if r.Pattern != "" {
-		start.Attr = append(start.Attr, xml.Attr{
-			Name:  xml.Name{Local: "pattern"},
-			Value: r.Pattern,
-		})
-	}
-	if err := e.EncodeToken(start); err != nil {
-		return err
-	}
-	if err := marshalEmitter(e, r.Type); err != nil {
-		return err
-	}
-	if err := marshalMutator(e, r.Mutator); err != nil {
-		return err
-	}
-	return e.EncodeToken(xml.EndElement{Name: start.Name})
-}
-
-func (r *Rule) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
-	for _, attr := range start.Attr {
-		if attr.Name.Local == "pattern" {
-			r.Pattern = attr.Value
-			break
-		}
-	}
-	for {
-		token, err := d.Token()
-		if err != nil {
-			return err
-		}
-		switch token := token.(type) {
-		case xml.StartElement:
-			mutator, err := unmarshalMutator(d, token)
-			if err != nil && !errors.Is(err, ErrNotSerialisable) {
-				return err
-			} else if err == nil {
-				if r.Mutator != nil {
-					return fmt.Errorf("duplicate mutator")
-				}
-				r.Mutator = mutator
-				continue
-			}
-			emitter, err := unmarshalEmitter(d, token)
-			if err != nil && !errors.Is(err, ErrNotSerialisable) { // nolint: gocritic
-				return err
-			} else if err == nil {
-				if r.Type != nil {
-					return fmt.Errorf("duplicate emitter")
-				}
-				r.Type = emitter
-				continue
-			} else {
-				return err
-			}
-
-		case xml.EndElement:
-			return nil
-		}
-	}
-}
-
-type xmlRuleState struct {
-	Name  string `xml:"name,attr"`
-	Rules []Rule `xml:"rule"`
-}
-
-type xmlRules struct {
-	States []xmlRuleState `xml:"state"`
-}
-
-func (r Rules) MarshalXML(e *xml.Encoder, _ xml.StartElement) error {
-	xr := xmlRules{}
-	for state, rules := range r {
-		xr.States = append(xr.States, xmlRuleState{
-			Name:  state,
-			Rules: rules,
-		})
-	}
-	return e.EncodeElement(xr, xml.StartElement{Name: xml.Name{Local: "rules"}})
-}
-
-func (r *Rules) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
-	xr := xmlRules{}
-	if err := d.DecodeElement(&xr, &start); err != nil {
-		return err
-	}
-	if *r == nil {
-		*r = Rules{}
-	}
-	for _, state := range xr.States {
-		(*r)[state.Name] = state.Rules
-	}
-	return nil
-}
-
-type xmlTokenType struct {
-	Type string `xml:"type,attr"`
-}
-
-func (t *TokenType) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
-	el := xmlTokenType{}
-	if err := d.DecodeElement(&el, &start); err != nil {
-		return err
-	}
-	for tt, text := range _TokenType_map {
-		if text == el.Type {
-			*t = tt
-			return nil
-		}
-	}
-	return fmt.Errorf("unknown TokenType %q", el.Type)
-}
-
-func (t TokenType) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
-	start.Attr = append(start.Attr, xml.Attr{Name: xml.Name{Local: "type"}, Value: t.String()})
-	if err := e.EncodeToken(start); err != nil {
-		return err
-	}
-	return e.EncodeToken(xml.EndElement{Name: start.Name})
-}
-
-// This hijinks is a bit unfortunate but without it we can't deserialise into TokenType.
-func newFromTemplate(template interface{}) (value func() interface{}, target interface{}) {
-	t := reflect.TypeOf(template)
-	if t.Kind() == reflect.Ptr {
-		v := reflect.New(t.Elem())
-		return v.Interface, v.Interface()
-	}
-	v := reflect.New(t)
-	return func() interface{} { return v.Elem().Interface() }, v.Interface()
-}
-
-func (b *Emitters) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
-	for {
-		token, err := d.Token()
-		if err != nil {
-			return err
-		}
-		switch token := token.(type) {
-		case xml.StartElement:
-			emitter, err := unmarshalEmitter(d, token)
-			if err != nil {
-				return err
-			}
-			*b = append(*b, emitter)
-
-		case xml.EndElement:
-			return nil
-		}
-	}
-}
-
-func (b Emitters) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
-	if err := e.EncodeToken(start); err != nil {
-		return err
-	}
-	for _, m := range b {
-		if err := marshalEmitter(e, m); err != nil {
-			return err
-		}
-	}
-	return e.EncodeToken(xml.EndElement{Name: start.Name})
-}
Index: trunk/vendor/github.com/alecthomas/chroma/v2/style.go
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/style.go	(revision 67)
+++ 	(revision )
@@ -1,366 +1,0 @@
-package chroma
-
-import (
-	"fmt"
-	"strings"
-)
-
-// Trilean value for StyleEntry value inheritance.
-type Trilean uint8
-
-// Trilean states.
-const (
-	Pass Trilean = iota
-	Yes
-	No
-)
-
-func (t Trilean) String() string {
-	switch t {
-	case Yes:
-		return "Yes"
-	case No:
-		return "No"
-	default:
-		return "Pass"
-	}
-}
-
-// Prefix returns s with "no" as a prefix if Trilean is no.
-func (t Trilean) Prefix(s string) string {
-	if t == Yes {
-		return s
-	} else if t == No {
-		return "no" + s
-	}
-	return ""
-}
-
-// A StyleEntry in the Style map.
-type StyleEntry struct {
-	// Hex colours.
-	Colour     Colour
-	Background Colour
-	Border     Colour
-
-	Bold      Trilean
-	Italic    Trilean
-	Underline Trilean
-	NoInherit bool
-}
-
-func (s StyleEntry) String() string {
-	out := []string{}
-	if s.Bold != Pass {
-		out = append(out, s.Bold.Prefix("bold"))
-	}
-	if s.Italic != Pass {
-		out = append(out, s.Italic.Prefix("italic"))
-	}
-	if s.Underline != Pass {
-		out = append(out, s.Underline.Prefix("underline"))
-	}
-	if s.NoInherit {
-		out = append(out, "noinherit")
-	}
-	if s.Colour.IsSet() {
-		out = append(out, s.Colour.String())
-	}
-	if s.Background.IsSet() {
-		out = append(out, "bg:"+s.Background.String())
-	}
-	if s.Border.IsSet() {
-		out = append(out, "border:"+s.Border.String())
-	}
-	return strings.Join(out, " ")
-}
-
-// Sub subtracts e from s where elements match.
-func (s StyleEntry) Sub(e StyleEntry) StyleEntry {
-	out := StyleEntry{}
-	if e.Colour != s.Colour {
-		out.Colour = s.Colour
-	}
-	if e.Background != s.Background {
-		out.Background = s.Background
-	}
-	if e.Bold != s.Bold {
-		out.Bold = s.Bold
-	}
-	if e.Italic != s.Italic {
-		out.Italic = s.Italic
-	}
-	if e.Underline != s.Underline {
-		out.Underline = s.Underline
-	}
-	if e.Border != s.Border {
-		out.Border = s.Border
-	}
-	return out
-}
-
-// Inherit styles from ancestors.
-//
-// Ancestors should be provided from oldest to newest.
-func (s StyleEntry) Inherit(ancestors ...StyleEntry) StyleEntry {
-	out := s
-	for i := len(ancestors) - 1; i >= 0; i-- {
-		if out.NoInherit {
-			return out
-		}
-		ancestor := ancestors[i]
-		if !out.Colour.IsSet() {
-			out.Colour = ancestor.Colour
-		}
-		if !out.Background.IsSet() {
-			out.Background = ancestor.Background
-		}
-		if !out.Border.IsSet() {
-			out.Border = ancestor.Border
-		}
-		if out.Bold == Pass {
-			out.Bold = ancestor.Bold
-		}
-		if out.Italic == Pass {
-			out.Italic = ancestor.Italic
-		}
-		if out.Underline == Pass {
-			out.Underline = ancestor.Underline
-		}
-	}
-	return out
-}
-
-func (s StyleEntry) IsZero() bool {
-	return s.Colour == 0 && s.Background == 0 && s.Border == 0 && s.Bold == Pass && s.Italic == Pass &&
-		s.Underline == Pass && !s.NoInherit
-}
-
-// A StyleBuilder is a mutable structure for building styles.
-//
-// Once built, a Style is immutable.
-type StyleBuilder struct {
-	entries map[TokenType]string
-	name    string
-	parent  *Style
-}
-
-func NewStyleBuilder(name string) *StyleBuilder {
-	return &StyleBuilder{name: name, entries: map[TokenType]string{}}
-}
-
-func (s *StyleBuilder) AddAll(entries StyleEntries) *StyleBuilder {
-	for ttype, entry := range entries {
-		s.entries[ttype] = entry
-	}
-	return s
-}
-
-func (s *StyleBuilder) Get(ttype TokenType) StyleEntry {
-	// This is less than ideal, but it's the price for not having to check errors on each Add().
-	entry, _ := ParseStyleEntry(s.entries[ttype])
-	if s.parent != nil {
-		entry = entry.Inherit(s.parent.Get(ttype))
-	}
-	return entry
-}
-
-// Add an entry to the Style map.
-//
-// See http://pygments.org/docs/styles/#style-rules for details.
-func (s *StyleBuilder) Add(ttype TokenType, entry string) *StyleBuilder { // nolint: gocyclo
-	s.entries[ttype] = entry
-	return s
-}
-
-func (s *StyleBuilder) AddEntry(ttype TokenType, entry StyleEntry) *StyleBuilder {
-	s.entries[ttype] = entry.String()
-	return s
-}
-
-// Transform passes each style entry currently defined in the builder to the supplied
-// function and saves the returned value. This can be used to adjust a style's colours;
-// see Colour's ClampBrightness function, for example.
-func (s *StyleBuilder) Transform(transform func(StyleEntry) StyleEntry) *StyleBuilder {
-	types := make(map[TokenType]struct{})
-	for tt := range s.entries {
-		types[tt] = struct{}{}
-	}
-	if s.parent != nil {
-		for _, tt := range s.parent.Types() {
-			types[tt] = struct{}{}
-		}
-	}
-	for tt := range types {
-		s.AddEntry(tt, transform(s.Get(tt)))
-	}
-	return s
-}
-
-func (s *StyleBuilder) Build() (*Style, error) {
-	style := &Style{
-		Name:    s.name,
-		entries: map[TokenType]StyleEntry{},
-		parent:  s.parent,
-	}
-	for ttype, descriptor := range s.entries {
-		entry, err := ParseStyleEntry(descriptor)
-		if err != nil {
-			return nil, fmt.Errorf("invalid entry for %s: %s", ttype, err)
-		}
-		style.entries[ttype] = entry
-	}
-	return style, nil
-}
-
-// StyleEntries mapping TokenType to colour definition.
-type StyleEntries map[TokenType]string
-
-// NewStyle creates a new style definition.
-func NewStyle(name string, entries StyleEntries) (*Style, error) {
-	return NewStyleBuilder(name).AddAll(entries).Build()
-}
-
-// MustNewStyle creates a new style or panics.
-func MustNewStyle(name string, entries StyleEntries) *Style {
-	style, err := NewStyle(name, entries)
-	if err != nil {
-		panic(err)
-	}
-	return style
-}
-
-// A Style definition.
-//
-// See http://pygments.org/docs/styles/ for details. Semantics are intended to be identical.
-type Style struct {
-	Name    string
-	entries map[TokenType]StyleEntry
-	parent  *Style
-}
-
-// Types that are styled.
-func (s *Style) Types() []TokenType {
-	dedupe := map[TokenType]bool{}
-	for tt := range s.entries {
-		dedupe[tt] = true
-	}
-	if s.parent != nil {
-		for _, tt := range s.parent.Types() {
-			dedupe[tt] = true
-		}
-	}
-	out := make([]TokenType, 0, len(dedupe))
-	for tt := range dedupe {
-		out = append(out, tt)
-	}
-	return out
-}
-
-// Builder creates a mutable builder from this Style.
-//
-// The builder can then be safely modified. This is a cheap operation.
-func (s *Style) Builder() *StyleBuilder {
-	return &StyleBuilder{
-		name:    s.Name,
-		entries: map[TokenType]string{},
-		parent:  s,
-	}
-}
-
-// Has checks if an exact style entry match exists for a token type.
-//
-// This is distinct from Get() which will merge parent tokens.
-func (s *Style) Has(ttype TokenType) bool {
-	return !s.get(ttype).IsZero() || s.synthesisable(ttype)
-}
-
-// Get a style entry. Will try sub-category or category if an exact match is not found, and
-// finally return the Background.
-func (s *Style) Get(ttype TokenType) StyleEntry {
-	return s.get(ttype).Inherit(
-		s.get(Background),
-		s.get(Text),
-		s.get(ttype.Category()),
-		s.get(ttype.SubCategory()))
-}
-
-func (s *Style) get(ttype TokenType) StyleEntry {
-	out := s.entries[ttype]
-	if out.IsZero() && s.parent != nil {
-		return s.parent.get(ttype)
-	}
-	if out.IsZero() && s.synthesisable(ttype) {
-		out = s.synthesise(ttype)
-	}
-	return out
-}
-
-func (s *Style) synthesise(ttype TokenType) StyleEntry {
-	bg := s.get(Background)
-	text := StyleEntry{Colour: bg.Colour}
-	text.Colour = text.Colour.BrightenOrDarken(0.5)
-
-	switch ttype {
-	// If we don't have a line highlight colour, make one that is 10% brighter/darker than the background.
-	case LineHighlight:
-		return StyleEntry{Background: bg.Background.BrightenOrDarken(0.1)}
-
-	// If we don't have line numbers, use the text colour but 20% brighter/darker
-	case LineNumbers, LineNumbersTable:
-		return text
-
-	default:
-		return StyleEntry{}
-	}
-}
-
-func (s *Style) synthesisable(ttype TokenType) bool {
-	return ttype == LineHighlight || ttype == LineNumbers || ttype == LineNumbersTable
-}
-
-// ParseStyleEntry parses a Pygments style entry.
-func ParseStyleEntry(entry string) (StyleEntry, error) { // nolint: gocyclo
-	out := StyleEntry{}
-	parts := strings.Fields(entry)
-	for _, part := range parts {
-		switch {
-		case part == "italic":
-			out.Italic = Yes
-		case part == "noitalic":
-			out.Italic = No
-		case part == "bold":
-			out.Bold = Yes
-		case part == "nobold":
-			out.Bold = No
-		case part == "underline":
-			out.Underline = Yes
-		case part == "nounderline":
-			out.Underline = No
-		case part == "inherit":
-			out.NoInherit = false
-		case part == "noinherit":
-			out.NoInherit = true
-		case part == "bg:":
-			out.Background = 0
-		case strings.HasPrefix(part, "bg:#"):
-			out.Background = ParseColour(part[3:])
-			if !out.Background.IsSet() {
-				return StyleEntry{}, fmt.Errorf("invalid background colour %q", part)
-			}
-		case strings.HasPrefix(part, "border:#"):
-			out.Border = ParseColour(part[7:])
-			if !out.Border.IsSet() {
-				return StyleEntry{}, fmt.Errorf("invalid border colour %q", part)
-			}
-		case strings.HasPrefix(part, "#"):
-			out.Colour = ParseColour(part)
-			if !out.Colour.IsSet() {
-				return StyleEntry{}, fmt.Errorf("invalid colour %q", part)
-			}
-		default:
-			return StyleEntry{}, fmt.Errorf("unknown style element %q", part)
-		}
-	}
-	return out, nil
-}
Index: trunk/vendor/github.com/alecthomas/chroma/v2/styles/abap.go
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/styles/abap.go	(revision 67)
+++ 	(revision )
@@ -1,18 +1,0 @@
-package styles
-
-import (
-	"github.com/alecthomas/chroma/v2"
-)
-
-// Abap style.
-var Abap = Register(chroma.MustNewStyle("abap", chroma.StyleEntries{
-	chroma.Comment:        "italic #888",
-	chroma.CommentSpecial: "#888",
-	chroma.Keyword:        "#00f",
-	chroma.OperatorWord:   "#00f",
-	chroma.Name:           "#000",
-	chroma.LiteralNumber:  "#3af",
-	chroma.LiteralString:  "#5a2",
-	chroma.Error:          "#F00",
-	chroma.Background:     " bg:#ffffff",
-}))
Index: trunk/vendor/github.com/alecthomas/chroma/v2/styles/algol.go
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/styles/algol.go	(revision 67)
+++ 	(revision )
@@ -1,25 +1,0 @@
-package styles
-
-import (
-	"github.com/alecthomas/chroma/v2"
-)
-
-// Algol style.
-var Algol = Register(chroma.MustNewStyle("algol", chroma.StyleEntries{
-	chroma.Comment:            "italic #888",
-	chroma.CommentPreproc:     "bold noitalic #888",
-	chroma.CommentSpecial:     "bold noitalic #888",
-	chroma.Keyword:            "underline bold",
-	chroma.KeywordDeclaration: "italic",
-	chroma.NameBuiltin:        "bold italic",
-	chroma.NameBuiltinPseudo:  "bold italic",
-	chroma.NameNamespace:      "bold italic #666",
-	chroma.NameClass:          "bold italic #666",
-	chroma.NameFunction:       "bold italic #666",
-	chroma.NameVariable:       "bold italic #666",
-	chroma.NameConstant:       "bold italic #666",
-	chroma.OperatorWord:       "bold",
-	chroma.LiteralString:      "italic #666",
-	chroma.Error:              "border:#FF0000",
-	chroma.Background:         " bg:#ffffff",
-}))
Index: trunk/vendor/github.com/alecthomas/chroma/v2/styles/algol_nu.go
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/styles/algol_nu.go	(revision 67)
+++ 	(revision )
@@ -1,25 +1,0 @@
-package styles
-
-import (
-	"github.com/alecthomas/chroma/v2"
-)
-
-// AlgolNu style.
-var AlgolNu = Register(chroma.MustNewStyle("algol_nu", chroma.StyleEntries{
-	chroma.Comment:            "italic #888",
-	chroma.CommentPreproc:     "bold noitalic #888",
-	chroma.CommentSpecial:     "bold noitalic #888",
-	chroma.Keyword:            "bold",
-	chroma.KeywordDeclaration: "italic",
-	chroma.NameBuiltin:        "bold italic",
-	chroma.NameBuiltinPseudo:  "bold italic",
-	chroma.NameNamespace:      "bold italic #666",
-	chroma.NameClass:          "bold italic #666",
-	chroma.NameFunction:       "bold italic #666",
-	chroma.NameVariable:       "bold italic #666",
-	chroma.NameConstant:       "bold italic #666",
-	chroma.OperatorWord:       "bold",
-	chroma.LiteralString:      "italic #666",
-	chroma.Error:              "border:#FF0000",
-	chroma.Background:         " bg:#ffffff",
-}))
Index: trunk/vendor/github.com/alecthomas/chroma/v2/styles/api.go
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/styles/api.go	(revision 67)
+++ 	(revision )
@@ -1,37 +1,0 @@
-package styles
-
-import (
-	"sort"
-
-	"github.com/alecthomas/chroma/v2"
-)
-
-// Registry of Styles.
-var Registry = map[string]*chroma.Style{}
-
-// Fallback style. Reassign to change the default fallback style.
-var Fallback = SwapOff
-
-// Register a chroma.Style.
-func Register(style *chroma.Style) *chroma.Style {
-	Registry[style.Name] = style
-	return style
-}
-
-// Names of all available styles.
-func Names() []string {
-	out := []string{}
-	for name := range Registry {
-		out = append(out, name)
-	}
-	sort.Strings(out)
-	return out
-}
-
-// Get named style, or Fallback.
-func Get(name string) *chroma.Style {
-	if style, ok := Registry[name]; ok {
-		return style
-	}
-	return Fallback
-}
Index: trunk/vendor/github.com/alecthomas/chroma/v2/styles/arduino.go
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/styles/arduino.go	(revision 67)
+++ 	(revision )
@@ -1,25 +1,0 @@
-package styles
-
-import (
-	"github.com/alecthomas/chroma/v2"
-)
-
-// Arduino style.
-var Arduino = Register(chroma.MustNewStyle("arduino", chroma.StyleEntries{
-	chroma.Error:           "#a61717",
-	chroma.Comment:         "#95a5a6",
-	chroma.CommentPreproc:  "#728E00",
-	chroma.Keyword:         "#728E00",
-	chroma.KeywordConstant: "#00979D",
-	chroma.KeywordPseudo:   "#00979D",
-	chroma.KeywordReserved: "#00979D",
-	chroma.KeywordType:     "#00979D",
-	chroma.Operator:        "#728E00",
-	chroma.Name:            "#434f54",
-	chroma.NameBuiltin:     "#728E00",
-	chroma.NameFunction:    "#D35400",
-	chroma.NameOther:       "#728E00",
-	chroma.LiteralNumber:   "#8A7B52",
-	chroma.LiteralString:   "#7F8C8D",
-	chroma.Background:      " bg:#ffffff",
-}))
Index: trunk/vendor/github.com/alecthomas/chroma/v2/styles/autumn.go
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/styles/autumn.go	(revision 67)
+++ 	(revision )
@@ -1,43 +1,0 @@
-package styles
-
-import (
-	"github.com/alecthomas/chroma/v2"
-)
-
-// Autumn style.
-var Autumn = Register(chroma.MustNewStyle("autumn", chroma.StyleEntries{
-	chroma.TextWhitespace:      "#bbbbbb",
-	chroma.Comment:             "italic #aaaaaa",
-	chroma.CommentPreproc:      "noitalic #4c8317",
-	chroma.CommentSpecial:      "italic #0000aa",
-	chroma.Keyword:             "#0000aa",
-	chroma.KeywordType:         "#00aaaa",
-	chroma.OperatorWord:        "#0000aa",
-	chroma.NameBuiltin:         "#00aaaa",
-	chroma.NameFunction:        "#00aa00",
-	chroma.NameClass:           "underline #00aa00",
-	chroma.NameNamespace:       "underline #00aaaa",
-	chroma.NameVariable:        "#aa0000",
-	chroma.NameConstant:        "#aa0000",
-	chroma.NameEntity:          "bold #800",
-	chroma.NameAttribute:       "#1e90ff",
-	chroma.NameTag:             "bold #1e90ff",
-	chroma.NameDecorator:       "#888888",
-	chroma.LiteralString:       "#aa5500",
-	chroma.LiteralStringSymbol: "#0000aa",
-	chroma.LiteralStringRegex:  "#009999",
-	chroma.LiteralNumber:       "#009999",
-	chroma.GenericHeading:      "bold #000080",
-	chroma.GenericSubheading:   "bold #800080",
-	chroma.GenericDeleted:      "#aa0000",
-	chroma.GenericInserted:     "#00aa00",
-	chroma.GenericError:        "#aa0000",
-	chroma.GenericEmph:         "italic",
-	chroma.GenericStrong:       "bold",
-	chroma.GenericPrompt:       "#555555",
-	chroma.GenericOutput:       "#888888",
-	chroma.GenericTraceback:    "#aa0000",
-	chroma.GenericUnderline:    "underline",
-	chroma.Error:               "#F00 bg:#FAA",
-	chroma.Background:          " bg:#ffffff",
-}))
Index: trunk/vendor/github.com/alecthomas/chroma/v2/styles/average.go
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/styles/average.go	(revision 67)
+++ 	(revision )
@@ -1,81 +1,0 @@
-package styles
-
-import (
-	"github.com/alecthomas/chroma/v2"
-)
-
-// Average style.
-var Average = Register(chroma.MustNewStyle("average", chroma.StyleEntries{
-	chroma.Comment:                  "#757575",
-	chroma.CommentHashbang:          "#757575",
-	chroma.CommentMultiline:         "#757575",
-	chroma.CommentPreproc:           "#757575",
-	chroma.CommentSingle:            "#757575",
-	chroma.CommentSpecial:           "#757575",
-	chroma.Generic:                  "#757575",
-	chroma.GenericDeleted:           "#ec0000",
-	chroma.GenericEmph:              "#757575 underline",
-	chroma.GenericError:             "#ec0000",
-	chroma.GenericHeading:           "#757575 bold",
-	chroma.GenericInserted:          "#757575 bold",
-	chroma.GenericOutput:            "#757575",
-	chroma.GenericPrompt:            "#757575",
-	chroma.GenericStrong:            "#757575 italic",
-	chroma.GenericSubheading:        "#757575 bold",
-	chroma.GenericTraceback:         "#757575",
-	chroma.GenericUnderline:         "underline",
-	chroma.Error:                    "#ec0000",
-	chroma.Keyword:                  "#ec0000",
-	chroma.KeywordConstant:          "#ec0000",
-	chroma.KeywordDeclaration:       "#ec0000",
-	chroma.KeywordNamespace:         "#ec0000",
-	chroma.KeywordPseudo:            "#ec0000",
-	chroma.KeywordReserved:          "#ec0000",
-	chroma.KeywordType:              "#5f5fff",
-	chroma.Literal:                  "#757575",
-	chroma.LiteralDate:              "#757575",
-	chroma.Name:                     "#757575",
-	chroma.NameAttribute:            "#5f5fff",
-	chroma.NameBuiltin:              "#ec0000",
-	chroma.NameBuiltinPseudo:        "#757575",
-	chroma.NameClass:                "#5f5fff",
-	chroma.NameConstant:             "#008900",
-	chroma.NameDecorator:            "#008900",
-	chroma.NameEntity:               "#757575",
-	chroma.NameException:            "#757575",
-	chroma.NameFunction:             "#5f5fff",
-	chroma.NameLabel:                "#ec0000",
-	chroma.NameNamespace:            "#757575",
-	chroma.NameOther:                "#757575",
-	chroma.NameTag:                  "#ec0000",
-	chroma.NameVariable:             "#ec0000",
-	chroma.NameVariableClass:        "#ec0000",
-	chroma.NameVariableGlobal:       "#ec0000",
-	chroma.NameVariableInstance:     "#ec0000",
-	chroma.LiteralNumber:            "#008900",
-	chroma.LiteralNumberBin:         "#008900",
-	chroma.LiteralNumberFloat:       "#008900",
-	chroma.LiteralNumberHex:         "#008900",
-	chroma.LiteralNumberInteger:     "#008900",
-	chroma.LiteralNumberIntegerLong: "#008900",
-	chroma.LiteralNumberOct:         "#008900",
-	chroma.Operator:                 "#ec0000",
-	chroma.OperatorWord:             "#ec0000",
-	chroma.Other:                    "#757575",
-	chroma.Punctuation:              "#757575",
-	chroma.LiteralString:            "#008900",
-	chroma.LiteralStringBacktick:    "#008900",
-	chroma.LiteralStringChar:        "#008900",
-	chroma.LiteralStringDoc:         "#008900",
-	chroma.LiteralStringDouble:      "#008900",
-	chroma.LiteralStringEscape:      "#008900",
-	chroma.LiteralStringHeredoc:     "#008900",
-	chroma.LiteralStringInterpol:    "#008900",
-	chroma.LiteralStringOther:       "#008900",
-	chroma.LiteralStringRegex:       "#008900",
-	chroma.LiteralStringSingle:      "#008900",
-	chroma.LiteralStringSymbol:      "#008900",
-	chroma.Text:                     "#757575",
-	chroma.TextWhitespace:           "#757575",
-	chroma.Background:               " bg:#000000",
-}))
Index: trunk/vendor/github.com/alecthomas/chroma/v2/styles/base16-snazzy.go
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/styles/base16-snazzy.go	(revision 67)
+++ 	(revision )
@@ -1,81 +1,0 @@
-package styles
-
-import (
-	"github.com/alecthomas/chroma/v2"
-)
-
-// Base16Snazzy style
-var Base16Snazzy = Register(chroma.MustNewStyle("base16-snazzy", chroma.StyleEntries{
-	chroma.Comment:                  "#78787e",
-	chroma.CommentHashbang:          "#78787e",
-	chroma.CommentMultiline:         "#78787e",
-	chroma.CommentPreproc:           "#78787e",
-	chroma.CommentSingle:            "#78787e",
-	chroma.CommentSpecial:           "#78787e",
-	chroma.Generic:                  "#e2e4e5",
-	chroma.GenericDeleted:           "#ff5c57",
-	chroma.GenericEmph:              "#e2e4e5 underline",
-	chroma.GenericError:             "#ff5c57",
-	chroma.GenericHeading:           "#e2e4e5 bold",
-	chroma.GenericInserted:          "#e2e4e5 bold",
-	chroma.GenericOutput:            "#43454f",
-	chroma.GenericPrompt:            "#e2e4e5",
-	chroma.GenericStrong:            "#e2e4e5 italic",
-	chroma.GenericSubheading:        "#e2e4e5 bold",
-	chroma.GenericTraceback:         "#e2e4e5",
-	chroma.GenericUnderline:         "underline",
-	chroma.Error:                    "#ff5c57",
-	chroma.Keyword:                  "#ff6ac1",
-	chroma.KeywordConstant:          "#ff6ac1",
-	chroma.KeywordDeclaration:       "#ff5c57",
-	chroma.KeywordNamespace:         "#ff6ac1",
-	chroma.KeywordPseudo:            "#ff6ac1",
-	chroma.KeywordReserved:          "#ff6ac1",
-	chroma.KeywordType:              "#9aedfe",
-	chroma.Literal:                  "#e2e4e5",
-	chroma.LiteralDate:              "#e2e4e5",
-	chroma.Name:                     "#e2e4e5",
-	chroma.NameAttribute:            "#57c7ff",
-	chroma.NameBuiltin:              "#ff5c57",
-	chroma.NameBuiltinPseudo:        "#e2e4e5",
-	chroma.NameClass:                "#f3f99d",
-	chroma.NameConstant:             "#ff9f43",
-	chroma.NameDecorator:            "#ff9f43",
-	chroma.NameEntity:               "#e2e4e5",
-	chroma.NameException:            "#e2e4e5",
-	chroma.NameFunction:             "#57c7ff",
-	chroma.NameLabel:                "#ff5c57",
-	chroma.NameNamespace:            "#e2e4e5",
-	chroma.NameOther:                "#e2e4e5",
-	chroma.NameTag:                  "#ff6ac1",
-	chroma.NameVariable:             "#ff5c57",
-	chroma.NameVariableClass:        "#ff5c57",
-	chroma.NameVariableGlobal:       "#ff5c57",
-	chroma.NameVariableInstance:     "#ff5c57",
-	chroma.LiteralNumber:            "#ff9f43",
-	chroma.LiteralNumberBin:         "#ff9f43",
-	chroma.LiteralNumberFloat:       "#ff9f43",
-	chroma.LiteralNumberHex:         "#ff9f43",
-	chroma.LiteralNumberInteger:     "#ff9f43",
-	chroma.LiteralNumberIntegerLong: "#ff9f43",
-	chroma.LiteralNumberOct:         "#ff9f43",
-	chroma.Operator:                 "#ff6ac1",
-	chroma.OperatorWord:             "#ff6ac1",
-	chroma.Other:                    "#e2e4e5",
-	chroma.Punctuation:              "#e2e4e5",
-	chroma.LiteralString:            "#5af78e",
-	chroma.LiteralStringBacktick:    "#5af78e",
-	chroma.LiteralStringChar:        "#5af78e",
-	chroma.LiteralStringDoc:         "#5af78e",
-	chroma.LiteralStringDouble:      "#5af78e",
-	chroma.LiteralStringEscape:      "#5af78e",
-	chroma.LiteralStringHeredoc:     "#5af78e",
-	chroma.LiteralStringInterpol:    "#5af78e",
-	chroma.LiteralStringOther:       "#5af78e",
-	chroma.LiteralStringRegex:       "#5af78e",
-	chroma.LiteralStringSingle:      "#5af78e",
-	chroma.LiteralStringSymbol:      "#5af78e",
-	chroma.Text:                     "#e2e4e5",
-	chroma.TextWhitespace:           "#e2e4e5",
-	chroma.Background:               " bg:#282a36",
-}))
Index: trunk/vendor/github.com/alecthomas/chroma/v2/styles/borland.go
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/styles/borland.go	(revision 67)
+++ 	(revision )
@@ -1,33 +1,0 @@
-package styles
-
-import (
-	"github.com/alecthomas/chroma/v2"
-)
-
-// Borland style.
-var Borland = Register(chroma.MustNewStyle("borland", chroma.StyleEntries{
-	chroma.TextWhitespace:    "#bbbbbb",
-	chroma.Comment:           "italic #008800",
-	chroma.CommentPreproc:    "noitalic #008080",
-	chroma.CommentSpecial:    "noitalic bold",
-	chroma.LiteralString:     "#0000FF",
-	chroma.LiteralStringChar: "#800080",
-	chroma.LiteralNumber:     "#0000FF",
-	chroma.Keyword:           "bold #000080",
-	chroma.OperatorWord:      "bold",
-	chroma.NameTag:           "bold #000080",
-	chroma.NameAttribute:     "#FF0000",
-	chroma.GenericHeading:    "#999999",
-	chroma.GenericSubheading: "#aaaaaa",
-	chroma.GenericDeleted:    "bg:#ffdddd #000000",
-	chroma.GenericInserted:   "bg:#ddffdd #000000",
-	chroma.GenericError:      "#aa0000",
-	chroma.GenericEmph:       "italic",
-	chroma.GenericStrong:     "bold",
-	chroma.GenericPrompt:     "#555555",
-	chroma.GenericOutput:     "#888888",
-	chroma.GenericTraceback:  "#aa0000",
-	chroma.GenericUnderline:  "underline",
-	chroma.Error:             "bg:#e3d2d2 #a61717",
-	chroma.Background:        " bg:#ffffff",
-}))
Index: trunk/vendor/github.com/alecthomas/chroma/v2/styles/bw.go
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/styles/bw.go	(revision 67)
+++ 	(revision )
@@ -1,30 +1,0 @@
-package styles
-
-import (
-	"github.com/alecthomas/chroma/v2"
-)
-
-// BlackWhite style.
-var BlackWhite = Register(chroma.MustNewStyle("bw", chroma.StyleEntries{
-	chroma.Comment:               "italic",
-	chroma.CommentPreproc:        "noitalic",
-	chroma.Keyword:               "bold",
-	chroma.KeywordPseudo:         "nobold",
-	chroma.KeywordType:           "nobold",
-	chroma.OperatorWord:          "bold",
-	chroma.NameClass:             "bold",
-	chroma.NameNamespace:         "bold",
-	chroma.NameException:         "bold",
-	chroma.NameEntity:            "bold",
-	chroma.NameTag:               "bold",
-	chroma.LiteralString:         "italic",
-	chroma.LiteralStringInterpol: "bold",
-	chroma.LiteralStringEscape:   "bold",
-	chroma.GenericHeading:        "bold",
-	chroma.GenericSubheading:     "bold",
-	chroma.GenericEmph:           "italic",
-	chroma.GenericStrong:         "bold",
-	chroma.GenericPrompt:         "bold",
-	chroma.Error:                 "border:#FF0000",
-	chroma.Background:            " bg:#ffffff",
-}))
Index: trunk/vendor/github.com/alecthomas/chroma/v2/styles/colorful.go
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/styles/colorful.go	(revision 67)
+++ 	(revision )
@@ -1,59 +1,0 @@
-package styles
-
-import (
-	"github.com/alecthomas/chroma/v2"
-)
-
-// Colorful style.
-var Colorful = Register(chroma.MustNewStyle("colorful", chroma.StyleEntries{
-	chroma.TextWhitespace:        "#bbbbbb",
-	chroma.Comment:               "#888",
-	chroma.CommentPreproc:        "#579",
-	chroma.CommentSpecial:        "bold #cc0000",
-	chroma.Keyword:               "bold #080",
-	chroma.KeywordPseudo:         "#038",
-	chroma.KeywordType:           "#339",
-	chroma.Operator:              "#333",
-	chroma.OperatorWord:          "bold #000",
-	chroma.NameBuiltin:           "#007020",
-	chroma.NameFunction:          "bold #06B",
-	chroma.NameClass:             "bold #B06",
-	chroma.NameNamespace:         "bold #0e84b5",
-	chroma.NameException:         "bold #F00",
-	chroma.NameVariable:          "#963",
-	chroma.NameVariableInstance:  "#33B",
-	chroma.NameVariableClass:     "#369",
-	chroma.NameVariableGlobal:    "bold #d70",
-	chroma.NameConstant:          "bold #036",
-	chroma.NameLabel:             "bold #970",
-	chroma.NameEntity:            "bold #800",
-	chroma.NameAttribute:         "#00C",
-	chroma.NameTag:               "#070",
-	chroma.NameDecorator:         "bold #555",
-	chroma.LiteralString:         "bg:#fff0f0",
-	chroma.LiteralStringChar:     "#04D bg:",
-	chroma.LiteralStringDoc:      "#D42 bg:",
-	chroma.LiteralStringInterpol: "bg:#eee",
-	chroma.LiteralStringEscape:   "bold #666",
-	chroma.LiteralStringRegex:    "bg:#fff0ff #000",
-	chroma.LiteralStringSymbol:   "#A60 bg:",
-	chroma.LiteralStringOther:    "#D20",
-	chroma.LiteralNumber:         "bold #60E",
-	chroma.LiteralNumberInteger:  "bold #00D",
-	chroma.LiteralNumberFloat:    "bold #60E",
-	chroma.LiteralNumberHex:      "bold #058",
-	chroma.LiteralNumberOct:      "bold #40E",
-	chroma.GenericHeading:        "bold #000080",
-	chroma.GenericSubheading:     "bold #800080",
-	chroma.GenericDeleted:        "#A00000",
-	chroma.GenericInserted:       "#00A000",
-	chroma.GenericError:          "#FF0000",
-	chroma.GenericEmph:           "italic",
-	chroma.GenericStrong:         "bold",
-	chroma.GenericPrompt:         "bold #c65d09",
-	chroma.GenericOutput:         "#888",
-	chroma.GenericTraceback:      "#04D",
-	chroma.GenericUnderline:      "underline",
-	chroma.Error:                 "#F00 bg:#FAA",
-	chroma.Background:            " bg:#ffffff",
-}))
Index: trunk/vendor/github.com/alecthomas/chroma/v2/styles/doom-one.go
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/styles/doom-one.go	(revision 67)
+++ 	(revision )
@@ -1,58 +1,0 @@
-package styles
-
-import (
-	"github.com/alecthomas/chroma/v2"
-)
-
-// Doom One style. Inspired by Atom One and Doom Emacs's Atom One theme
-var DoomOne = Register(chroma.MustNewStyle("doom-one", chroma.StyleEntries{
-	chroma.Text:                 "#b0c4de",
-	chroma.Error:                "#b0c4de",
-	chroma.Comment:              "italic #8a93a5",
-	chroma.CommentHashbang:      "bold",
-	chroma.Keyword:              "#c678dd",
-	chroma.KeywordType:          "#ef8383",
-	chroma.KeywordConstant:      "bold #b756ff",
-	chroma.Operator:             "#c7bf54",
-	chroma.OperatorWord:         "bold #b756ff",
-	chroma.Punctuation:          "#b0c4de",
-	chroma.Name:                 "#c1abea",
-	chroma.NameAttribute:        "#b3d23c",
-	chroma.NameBuiltin:          "#ef8383",
-	chroma.NameClass:            "#76a9f9",
-	chroma.NameConstant:         "bold #b756ff",
-	chroma.NameDecorator:        "#e5c07b",
-	chroma.NameEntity:           "#bda26f",
-	chroma.NameException:        "bold #fd7474",
-	chroma.NameFunction:         "#00b1f7",
-	chroma.NameProperty:         "#cebc3a",
-	chroma.NameLabel:            "#f5a40d",
-	chroma.NameNamespace:        "#76a9f9",
-	chroma.NameTag:              "#e06c75",
-	chroma.NameVariable:         "#DCAEEA",
-	chroma.NameVariableGlobal:   "bold #DCAEEA",
-	chroma.NameVariableInstance: "#e06c75",
-	chroma.Literal:              "#98c379",
-	chroma.Number:               "#d19a66",
-	chroma.String:               "#98c379",
-	chroma.StringDoc:            "#7e97c3",
-	chroma.StringDouble:         "#63c381",
-	chroma.StringEscape:         "bold #d26464",
-	chroma.StringHeredoc:        "#98c379",
-	chroma.StringInterpol:       "#98c379",
-	chroma.StringOther:          "#70b33f",
-	chroma.StringRegex:          "#56b6c2",
-	chroma.StringSingle:         "#98c379",
-	chroma.StringSymbol:         "#56b6c2",
-	chroma.Generic:              "#b0c4de",
-	chroma.GenericEmph:          "italic",
-	chroma.GenericHeading:       "bold #a2cbff",
-	chroma.GenericInserted:      "#a6e22e",
-	chroma.GenericOutput:        "#a6e22e",
-	chroma.GenericUnderline:     "underline",
-	chroma.GenericPrompt:        "#a6e22e",
-	chroma.GenericStrong:        "bold",
-	chroma.GenericSubheading:    "#a2cbff",
-	chroma.GenericTraceback:     "#a2cbff",
-	chroma.Background:           "#b0c4de bg:#282c34",
-}))
Index: trunk/vendor/github.com/alecthomas/chroma/v2/styles/doom-one2.go
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/styles/doom-one2.go	(revision 67)
+++ 	(revision )
@@ -1,71 +1,0 @@
-package styles
-
-import (
-	"github.com/alecthomas/chroma/v2"
-)
-
-// Doom One 2 style. Inspired by Atom One and Doom Emacs's Atom One theme
-var DoomOne2 = Register(chroma.MustNewStyle("doom-one2", chroma.StyleEntries{
-	chroma.Text:                 "#b0c4de",
-	chroma.Error:                "#b0c4de",
-	chroma.Comment:              "italic #8a93a5",
-	chroma.CommentHashbang:      "bold",
-	chroma.Keyword:              "#76a9f9",
-	chroma.KeywordConstant:      "#e5c07b",
-	chroma.KeywordType:          "#e5c07b",
-	chroma.Operator:             "#54b1c7",
-	chroma.OperatorWord:         "bold #b756ff",
-	chroma.Punctuation:          "#abb2bf",
-	chroma.Name:                 "#aa89ea",
-	chroma.NameAttribute:        "#cebc3a",
-	chroma.NameBuiltin:          "#e5c07b",
-	chroma.NameClass:            "#ca72ff",
-	chroma.NameConstant:         "bold",
-	chroma.NameDecorator:        "#e5c07b",
-	chroma.NameEntity:           "#bda26f",
-	chroma.NameException:        "bold #fd7474",
-	chroma.NameFunction:         "#00b1f7",
-	chroma.NameProperty:         "#cebc3a",
-	chroma.NameLabel:            "#f5a40d",
-	chroma.NameNamespace:        "#ca72ff",
-	chroma.NameTag:              "#76a9f9",
-	chroma.NameVariable:         "#DCAEEA",
-	chroma.NameVariableClass:    "#DCAEEA",
-	chroma.NameVariableGlobal:   "bold #DCAEEA",
-	chroma.NameVariableInstance: "#e06c75",
-	chroma.NameVariableMagic:    "#DCAEEA",
-	chroma.Literal:              "#98c379",
-	chroma.LiteralDate:          "#98c379",
-	chroma.Number:               "#d19a66",
-	chroma.NumberBin:            "#d19a66",
-	chroma.NumberFloat:          "#d19a66",
-	chroma.NumberHex:            "#d19a66",
-	chroma.NumberInteger:        "#d19a66",
-	chroma.NumberIntegerLong:    "#d19a66",
-	chroma.NumberOct:            "#d19a66",
-	chroma.String:               "#98c379",
-	chroma.StringAffix:          "#98c379",
-	chroma.StringBacktick:       "#98c379",
-	chroma.StringDelimiter:      "#98c379",
-	chroma.StringDoc:            "#7e97c3",
-	chroma.StringDouble:         "#63c381",
-	chroma.StringEscape:         "bold #d26464",
-	chroma.StringHeredoc:        "#98c379",
-	chroma.StringInterpol:       "#98c379",
-	chroma.StringOther:          "#70b33f",
-	chroma.StringRegex:          "#56b6c2",
-	chroma.StringSingle:         "#98c379",
-	chroma.StringSymbol:         "#56b6c2",
-	chroma.Generic:              "#b0c4de",
-	chroma.GenericDeleted:       "#b0c4de",
-	chroma.GenericEmph:          "italic",
-	chroma.GenericHeading:       "bold #a2cbff",
-	chroma.GenericInserted:      "#a6e22e",
-	chroma.GenericOutput:        "#a6e22e",
-	chroma.GenericUnderline:     "underline",
-	chroma.GenericPrompt:        "#a6e22e",
-	chroma.GenericStrong:        "bold",
-	chroma.GenericSubheading:    "#a2cbff",
-	chroma.GenericTraceback:     "#a2cbff",
-	chroma.Background:           "#b0c4de bg:#282c34",
-}))
Index: trunk/vendor/github.com/alecthomas/chroma/v2/styles/dracula.go
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/styles/dracula.go	(revision 67)
+++ 	(revision )
@@ -1,81 +1,0 @@
-package styles
-
-import (
-	"github.com/alecthomas/chroma/v2"
-)
-
-// Dracula Style
-var Dracula = Register(chroma.MustNewStyle("dracula", chroma.StyleEntries{
-	chroma.Comment:                  "#6272a4",
-	chroma.CommentHashbang:          "#6272a4",
-	chroma.CommentMultiline:         "#6272a4",
-	chroma.CommentPreproc:           "#ff79c6",
-	chroma.CommentSingle:            "#6272a4",
-	chroma.CommentSpecial:           "#6272a4",
-	chroma.Generic:                  "#f8f8f2",
-	chroma.GenericDeleted:           "#ff5555",
-	chroma.GenericEmph:              "#f8f8f2 underline",
-	chroma.GenericError:             "#f8f8f2",
-	chroma.GenericHeading:           "#f8f8f2 bold",
-	chroma.GenericInserted:          "#50fa7b bold",
-	chroma.GenericOutput:            "#44475a",
-	chroma.GenericPrompt:            "#f8f8f2",
-	chroma.GenericStrong:            "#f8f8f2",
-	chroma.GenericSubheading:        "#f8f8f2 bold",
-	chroma.GenericTraceback:         "#f8f8f2",
-	chroma.GenericUnderline:         "underline",
-	chroma.Error:                    "#f8f8f2",
-	chroma.Keyword:                  "#ff79c6",
-	chroma.KeywordConstant:          "#ff79c6",
-	chroma.KeywordDeclaration:       "#8be9fd italic",
-	chroma.KeywordNamespace:         "#ff79c6",
-	chroma.KeywordPseudo:            "#ff79c6",
-	chroma.KeywordReserved:          "#ff79c6",
-	chroma.KeywordType:              "#8be9fd",
-	chroma.Literal:                  "#f8f8f2",
-	chroma.LiteralDate:              "#f8f8f2",
-	chroma.Name:                     "#f8f8f2",
-	chroma.NameAttribute:            "#50fa7b",
-	chroma.NameBuiltin:              "#8be9fd italic",
-	chroma.NameBuiltinPseudo:        "#f8f8f2",
-	chroma.NameClass:                "#50fa7b",
-	chroma.NameConstant:             "#f8f8f2",
-	chroma.NameDecorator:            "#f8f8f2",
-	chroma.NameEntity:               "#f8f8f2",
-	chroma.NameException:            "#f8f8f2",
-	chroma.NameFunction:             "#50fa7b",
-	chroma.NameLabel:                "#8be9fd italic",
-	chroma.NameNamespace:            "#f8f8f2",
-	chroma.NameOther:                "#f8f8f2",
-	chroma.NameTag:                  "#ff79c6",
-	chroma.NameVariable:             "#8be9fd italic",
-	chroma.NameVariableClass:        "#8be9fd italic",
-	chroma.NameVariableGlobal:       "#8be9fd italic",
-	chroma.NameVariableInstance:     "#8be9fd italic",
-	chroma.LiteralNumber:            "#bd93f9",
-	chroma.LiteralNumberBin:         "#bd93f9",
-	chroma.LiteralNumberFloat:       "#bd93f9",
-	chroma.LiteralNumberHex:         "#bd93f9",
-	chroma.LiteralNumberInteger:     "#bd93f9",
-	chroma.LiteralNumberIntegerLong: "#bd93f9",
-	chroma.LiteralNumberOct:         "#bd93f9",
-	chroma.Operator:                 "#ff79c6",
-	chroma.OperatorWord:             "#ff79c6",
-	chroma.Other:                    "#f8f8f2",
-	chroma.Punctuation:              "#f8f8f2",
-	chroma.LiteralString:            "#f1fa8c",
-	chroma.LiteralStringBacktick:    "#f1fa8c",
-	chroma.LiteralStringChar:        "#f1fa8c",
-	chroma.LiteralStringDoc:         "#f1fa8c",
-	chroma.LiteralStringDouble:      "#f1fa8c",
-	chroma.LiteralStringEscape:      "#f1fa8c",
-	chroma.LiteralStringHeredoc:     "#f1fa8c",
-	chroma.LiteralStringInterpol:    "#f1fa8c",
-	chroma.LiteralStringOther:       "#f1fa8c",
-	chroma.LiteralStringRegex:       "#f1fa8c",
-	chroma.LiteralStringSingle:      "#f1fa8c",
-	chroma.LiteralStringSymbol:      "#f1fa8c",
-	chroma.Text:                     "#f8f8f2",
-	chroma.TextWhitespace:           "#f8f8f2",
-	chroma.Background:               " bg:#282a36",
-}))
Index: trunk/vendor/github.com/alecthomas/chroma/v2/styles/emacs.go
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/styles/emacs.go	(revision 67)
+++ 	(revision )
@@ -1,51 +1,0 @@
-package styles
-
-import (
-	"github.com/alecthomas/chroma/v2"
-)
-
-// Emacs style.
-var Emacs = Register(chroma.MustNewStyle("emacs", chroma.StyleEntries{
-	chroma.TextWhitespace:        "#bbbbbb",
-	chroma.Comment:               "italic #008800",
-	chroma.CommentPreproc:        "noitalic",
-	chroma.CommentSpecial:        "noitalic bold",
-	chroma.Keyword:               "bold #AA22FF",
-	chroma.KeywordPseudo:         "nobold",
-	chroma.KeywordType:           "bold #00BB00",
-	chroma.Operator:              "#666666",
-	chroma.OperatorWord:          "bold #AA22FF",
-	chroma.NameBuiltin:           "#AA22FF",
-	chroma.NameFunction:          "#00A000",
-	chroma.NameClass:             "#0000FF",
-	chroma.NameNamespace:         "bold #0000FF",
-	chroma.NameException:         "bold #D2413A",
-	chroma.NameVariable:          "#B8860B",
-	chroma.NameConstant:          "#880000",
-	chroma.NameLabel:             "#A0A000",
-	chroma.NameEntity:            "bold #999999",
-	chroma.NameAttribute:         "#BB4444",
-	chroma.NameTag:               "bold #008000",
-	chroma.NameDecorator:         "#AA22FF",
-	chroma.LiteralString:         "#BB4444",
-	chroma.LiteralStringDoc:      "italic",
-	chroma.LiteralStringInterpol: "bold #BB6688",
-	chroma.LiteralStringEscape:   "bold #BB6622",
-	chroma.LiteralStringRegex:    "#BB6688",
-	chroma.LiteralStringSymbol:   "#B8860B",
-	chroma.LiteralStringOther:    "#008000",
-	chroma.LiteralNumber:         "#666666",
-	chroma.GenericHeading:        "bold #000080",
-	chroma.GenericSubheading:     "bold #800080",
-	chroma.GenericDeleted:        "#A00000",
-	chroma.GenericInserted:       "#00A000",
-	chroma.GenericError:          "#FF0000",
-	chroma.GenericEmph:           "italic",
-	chroma.GenericStrong:         "bold",
-	chroma.GenericPrompt:         "bold #000080",
-	chroma.GenericOutput:         "#888",
-	chroma.GenericTraceback:      "#04D",
-	chroma.GenericUnderline:      "underline",
-	chroma.Error:                 "border:#FF0000",
-	chroma.Background:            " bg:#f8f8f8",
-}))
Index: trunk/vendor/github.com/alecthomas/chroma/v2/styles/friendly.go
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/styles/friendly.go	(revision 67)
+++ 	(revision )
@@ -1,51 +1,0 @@
-package styles
-
-import (
-	"github.com/alecthomas/chroma/v2"
-)
-
-// Friendly style.
-var Friendly = Register(chroma.MustNewStyle("friendly", chroma.StyleEntries{
-	chroma.TextWhitespace:        "#bbbbbb",
-	chroma.Comment:               "italic #60a0b0",
-	chroma.CommentPreproc:        "noitalic #007020",
-	chroma.CommentSpecial:        "noitalic bg:#fff0f0",
-	chroma.Keyword:               "bold #007020",
-	chroma.KeywordPseudo:         "nobold",
-	chroma.KeywordType:           "nobold #902000",
-	chroma.Operator:              "#666666",
-	chroma.OperatorWord:          "bold #007020",
-	chroma.NameBuiltin:           "#007020",
-	chroma.NameFunction:          "#06287e",
-	chroma.NameClass:             "bold #0e84b5",
-	chroma.NameNamespace:         "bold #0e84b5",
-	chroma.NameException:         "#007020",
-	chroma.NameVariable:          "#bb60d5",
-	chroma.NameConstant:          "#60add5",
-	chroma.NameLabel:             "bold #002070",
-	chroma.NameEntity:            "bold #d55537",
-	chroma.NameAttribute:         "#4070a0",
-	chroma.NameTag:               "bold #062873",
-	chroma.NameDecorator:         "bold #555555",
-	chroma.LiteralString:         "#4070a0",
-	chroma.LiteralStringDoc:      "italic",
-	chroma.LiteralStringInterpol: "#70a0d0",
-	chroma.LiteralStringEscape:   "bold #4070a0",
-	chroma.LiteralStringRegex:    "#235388",
-	chroma.LiteralStringSymbol:   "#517918",
-	chroma.LiteralStringOther:    "#c65d09",
-	chroma.LiteralNumber:         "#40a070",
-	chroma.GenericHeading:        "bold #000080",
-	chroma.GenericSubheading:     "bold #800080",
-	chroma.GenericDeleted:        "#A00000",
-	chroma.GenericInserted:       "#00A000",
-	chroma.GenericError:          "#FF0000",
-	chroma.GenericEmph:           "italic",
-	chroma.GenericStrong:         "bold",
-	chroma.GenericPrompt:         "bold #c65d09",
-	chroma.GenericOutput:         "#888",
-	chroma.GenericTraceback:      "#04D",
-	chroma.GenericUnderline:      "underline",
-	chroma.Error:                 "border:#FF0000",
-	chroma.Background:            " bg:#f0f0f0",
-}))
Index: trunk/vendor/github.com/alecthomas/chroma/v2/styles/fruity.go
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/styles/fruity.go	(revision 67)
+++ 	(revision )
@@ -1,26 +1,0 @@
-package styles
-
-import (
-	"github.com/alecthomas/chroma/v2"
-)
-
-// Fruity style.
-var Fruity = Register(chroma.MustNewStyle("fruity", chroma.StyleEntries{
-	chroma.TextWhitespace:    "#888888",
-	chroma.Background:        "#ffffff bg:#111111",
-	chroma.GenericOutput:     "#444444 bg:#222222",
-	chroma.Keyword:           "#fb660a bold",
-	chroma.KeywordPseudo:     "nobold",
-	chroma.LiteralNumber:     "#0086f7 bold",
-	chroma.NameTag:           "#fb660a bold",
-	chroma.NameVariable:      "#fb660a",
-	chroma.Comment:           "#008800 bg:#0f140f italic",
-	chroma.NameAttribute:     "#ff0086 bold",
-	chroma.LiteralString:     "#0086d2",
-	chroma.NameFunction:      "#ff0086 bold",
-	chroma.GenericHeading:    "#ffffff bold",
-	chroma.KeywordType:       "#cdcaa9 bold",
-	chroma.GenericSubheading: "#ffffff bold",
-	chroma.NameConstant:      "#0086d2",
-	chroma.CommentPreproc:    "#ff0007 bold",
-}))
Index: trunk/vendor/github.com/alecthomas/chroma/v2/styles/github-dark.go
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/styles/github-dark.go	(revision 67)
+++ 	(revision )
@@ -1,86 +1,0 @@
-package styles
-
-import (
-	"fmt"
-
-	"github.com/alecthomas/chroma/v2"
-)
-
-var (
-	// colors used from https://github.com/primer/primitives
-	ghRed2      = "#ffa198"
-	ghRed3      = "#ff7b72"
-	ghRed9      = "#490202"
-	ghOrange2   = "#ffa657"
-	ghOrange3   = "#f0883e"
-	ghGreen1    = "#7ee787"
-	ghGreen2    = "#56d364"
-	ghGreen7    = "#0f5323"
-	ghBlue1     = "#a5d6ff"
-	ghBlue2     = "#79c0ff"
-	ghPurple2   = "#d2a8ff"
-	ghGray3     = "#8b949e"
-	ghGray4     = "#6e7681"
-	ghFgSubtle  = "#6e7681"
-	ghFgDefault = "#c9d1d9"
-	ghBgDefault = "#0d1117"
-	ghDangerFg  = "#f85149"
-)
-
-// GitHub Dark style.
-var GitHubDark = Register(chroma.MustNewStyle("github-dark", chroma.StyleEntries{
-	// Default Token Style
-	chroma.Background: fmt.Sprintf("bg:%s %s", ghBgDefault, ghFgDefault),
-
-	chroma.LineNumbers: ghGray4,
-	// has transparency in VS Code theme as `colors.codemirror.activelineBg`
-	chroma.LineHighlight: ghGray4,
-
-	chroma.Error: ghDangerFg,
-
-	chroma.Keyword:         ghRed3,
-	chroma.KeywordConstant: ghBlue2,
-	chroma.KeywordPseudo:   ghBlue2,
-
-	chroma.Name:          ghFgDefault,
-	chroma.NameClass:     "bold " + ghOrange3,
-	chroma.NameConstant:  "bold " + ghBlue2,
-	chroma.NameDecorator: "bold " + ghPurple2,
-	chroma.NameEntity:    ghOrange2,
-	chroma.NameException: "bold " + ghOrange3,
-	chroma.NameFunction:  "bold " + ghPurple2,
-	chroma.NameLabel:     "bold " + ghBlue2,
-	chroma.NameNamespace: ghRed3,
-	chroma.NameProperty:  ghBlue2,
-	chroma.NameTag:       ghGreen1,
-	chroma.NameVariable:  ghBlue2,
-
-	chroma.Literal:                ghBlue1,
-	chroma.LiteralDate:            ghBlue2,
-	chroma.LiteralStringAffix:     ghBlue2,
-	chroma.LiteralStringDelimiter: ghBlue2,
-	chroma.LiteralStringEscape:    ghBlue2,
-	chroma.LiteralStringHeredoc:   ghBlue2,
-	chroma.LiteralStringRegex:     ghBlue2,
-
-	chroma.Operator: "bold " + ghRed3,
-
-	chroma.Comment:        "italic " + ghGray3,
-	chroma.CommentPreproc: "bold " + ghGray3,
-	chroma.CommentSpecial: "bold italic " + ghGray3,
-
-	chroma.Generic:           ghFgDefault,
-	chroma.GenericDeleted:    fmt.Sprintf("bg:%s %s", ghRed9, ghRed2),
-	chroma.GenericEmph:       "italic",
-	chroma.GenericError:      ghRed2,
-	chroma.GenericHeading:    "bold " + ghBlue2,
-	chroma.GenericInserted:   fmt.Sprintf("bg:%s %s", ghGreen7, ghGreen2),
-	chroma.GenericOutput:     ghGray3,
-	chroma.GenericPrompt:     ghGray3,
-	chroma.GenericStrong:     "bold",
-	chroma.GenericSubheading: ghBlue2,
-	chroma.GenericTraceback:  ghRed3,
-	chroma.GenericUnderline:  "underline",
-
-	chroma.TextWhitespace: ghFgSubtle,
-}))
Index: trunk/vendor/github.com/alecthomas/chroma/v2/styles/github.go
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/styles/github.go	(revision 67)
+++ 	(revision )
@@ -1,51 +1,0 @@
-package styles
-
-import (
-	"github.com/alecthomas/chroma/v2"
-)
-
-// GitHub style.
-var GitHub = Register(chroma.MustNewStyle("github", chroma.StyleEntries{
-	chroma.CommentMultiline:     "italic #999988",
-	chroma.CommentPreproc:       "bold #999999",
-	chroma.CommentSingle:        "italic #999988",
-	chroma.CommentSpecial:       "bold italic #999999",
-	chroma.Comment:              "italic #999988",
-	chroma.Error:                "bg:#e3d2d2 #a61717",
-	chroma.GenericDeleted:       "bg:#ffdddd #000000",
-	chroma.GenericEmph:          "italic #000000",
-	chroma.GenericError:         "#aa0000",
-	chroma.GenericHeading:       "#999999",
-	chroma.GenericInserted:      "bg:#ddffdd #000000",
-	chroma.GenericOutput:        "#888888",
-	chroma.GenericPrompt:        "#555555",
-	chroma.GenericStrong:        "bold",
-	chroma.GenericSubheading:    "#aaaaaa",
-	chroma.GenericTraceback:     "#aa0000",
-	chroma.GenericUnderline:     "underline",
-	chroma.KeywordType:          "bold #445588",
-	chroma.Keyword:              "bold #000000",
-	chroma.LiteralNumber:        "#009999",
-	chroma.LiteralStringRegex:   "#009926",
-	chroma.LiteralStringSymbol:  "#990073",
-	chroma.LiteralString:        "#d14",
-	chroma.NameAttribute:        "#008080",
-	chroma.NameBuiltinPseudo:    "#999999",
-	chroma.NameBuiltin:          "#0086B3",
-	chroma.NameClass:            "bold #445588",
-	chroma.NameConstant:         "#008080",
-	chroma.NameDecorator:        "bold #3c5d5d",
-	chroma.NameEntity:           "#800080",
-	chroma.NameException:        "bold #990000",
-	chroma.NameFunction:         "bold #990000",
-	chroma.NameLabel:            "bold #990000",
-	chroma.NameNamespace:        "#555555",
-	chroma.NameTag:              "#000080",
-	chroma.NameVariableClass:    "#008080",
-	chroma.NameVariableGlobal:   "#008080",
-	chroma.NameVariableInstance: "#008080",
-	chroma.NameVariable:         "#008080",
-	chroma.Operator:             "bold #000000",
-	chroma.TextWhitespace:       "#bbbbbb",
-	chroma.Background:           " bg:#ffffff",
-}))
Index: trunk/vendor/github.com/alecthomas/chroma/v2/styles/gruvbox-light.go
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/styles/gruvbox-light.go	(revision 67)
+++ 	(revision )
@@ -1,40 +1,0 @@
-package styles
-
-import (
-	"github.com/alecthomas/chroma/v2"
-)
-
-// Gruvbox light style.
-var GruvboxLight = Register(chroma.MustNewStyle("gruvbox-light", chroma.StyleEntries{
-	chroma.CommentPreproc:      "noinherit #427B58",
-	chroma.Comment:             "#928374 italic",
-	chroma.GenericDeleted:      "noinherit #282828 bg:#9D0006",
-	chroma.GenericEmph:         "#076678 underline",
-	chroma.GenericError:        "bg:#9D0006 bold",
-	chroma.GenericHeading:      "#79740E bold",
-	chroma.GenericInserted:     "noinherit #282828 bg:#79740E",
-	chroma.GenericOutput:       "noinherit #504945",
-	chroma.GenericPrompt:       "#3C3836",
-	chroma.GenericStrong:       "#3C3836",
-	chroma.GenericSubheading:   "#79740E bold",
-	chroma.GenericTraceback:    "bg:#3C3836 bold",
-	chroma.Generic:             "#3C3836",
-	chroma.KeywordType:         "noinherit #B57614",
-	chroma.Keyword:             "noinherit #AF3A03",
-	chroma.NameAttribute:       "#79740E bold",
-	chroma.NameBuiltin:         "#B57614",
-	chroma.NameConstant:        "noinherit #d3869b",
-	chroma.NameEntity:          "noinherit #B57614",
-	chroma.NameException:       "noinherit #fb4934",
-	chroma.NameFunction:        "#B57614",
-	chroma.NameLabel:           "noinherit #9D0006",
-	chroma.NameTag:             "noinherit #9D0006",
-	chroma.NameVariable:        "noinherit #3C3836",
-	chroma.Name:                "#3C3836",
-	chroma.LiteralNumberFloat:  "noinherit #8F3F71",
-	chroma.LiteralNumber:       "noinherit #8F3F71",
-	chroma.Operator:            "#AF3A03",
-	chroma.LiteralStringSymbol: "#076678",
-	chroma.LiteralString:       "noinherit #79740E",
-	chroma.Background:          "noinherit #3C3836 bg:#FBF1C7 bg:#FBF1C7",
-}))
Index: trunk/vendor/github.com/alecthomas/chroma/v2/styles/gruvbox.go
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/styles/gruvbox.go	(revision 67)
+++ 	(revision )
@@ -1,40 +1,0 @@
-package styles
-
-import (
-	"github.com/alecthomas/chroma/v2"
-)
-
-// Gruvbox style.
-var Gruvbox = Register(chroma.MustNewStyle("gruvbox", chroma.StyleEntries{
-	chroma.CommentPreproc:      "noinherit #8ec07c",
-	chroma.Comment:             "#928374 italic",
-	chroma.GenericDeleted:      "noinherit #282828 bg:#fb4934",
-	chroma.GenericEmph:         "#83a598 underline",
-	chroma.GenericError:        "bg:#fb4934 bold",
-	chroma.GenericHeading:      "#b8bb26 bold",
-	chroma.GenericInserted:     "noinherit #282828 bg:#b8bb26",
-	chroma.GenericOutput:       "noinherit #504945",
-	chroma.GenericPrompt:       "#ebdbb2",
-	chroma.GenericStrong:       "#ebdbb2",
-	chroma.GenericSubheading:   "#b8bb26 bold",
-	chroma.GenericTraceback:    "bg:#fb4934 bold",
-	chroma.Generic:             "#ebdbb2",
-	chroma.KeywordType:         "noinherit #fabd2f",
-	chroma.Keyword:             "noinherit #fe8019",
-	chroma.NameAttribute:       "#b8bb26 bold",
-	chroma.NameBuiltin:         "#fabd2f",
-	chroma.NameConstant:        "noinherit #d3869b",
-	chroma.NameEntity:          "noinherit #fabd2f",
-	chroma.NameException:       "noinherit #fb4934",
-	chroma.NameFunction:        "#fabd2f",
-	chroma.NameLabel:           "noinherit #fb4934",
-	chroma.NameTag:             "noinherit #fb4934",
-	chroma.NameVariable:        "noinherit #ebdbb2",
-	chroma.Name:                "#ebdbb2",
-	chroma.LiteralNumberFloat:  "noinherit #d3869b",
-	chroma.LiteralNumber:       "noinherit #d3869b",
-	chroma.Operator:            "#fe8019",
-	chroma.LiteralStringSymbol: "#83a598",
-	chroma.LiteralString:       "noinherit #b8bb26",
-	chroma.Background:          "noinherit #ebdbb2 bg:#282828 bg:#282828",
-}))
Index: trunk/vendor/github.com/alecthomas/chroma/v2/styles/hr_dark.go
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/styles/hr_dark.go	(revision 67)
+++ 	(revision )
@@ -1,17 +1,0 @@
-package styles
-
-import (
-	"github.com/alecthomas/chroma/v2"
-)
-
-// Theme based on HackerRank Dark Editor theme
-var HrDark = Register(chroma.MustNewStyle("hrdark", chroma.StyleEntries{
-	chroma.Comment:      "italic #828b96",
-	chroma.Keyword:      "#ff636f",
-	chroma.OperatorWord: "#ff636f",
-	chroma.Name:         "#58a1dd",
-	chroma.Literal:      "#a6be9d",
-	chroma.Operator:     "#ff636f",
-	chroma.Background:   "#1d2432",
-	chroma.Other:        "#fff",
-}))
Index: trunk/vendor/github.com/alecthomas/chroma/v2/styles/hr_high_contrast.go
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/styles/hr_high_contrast.go	(revision 67)
+++ 	(revision )
@@ -1,19 +1,0 @@
-package styles
-
-import (
-	"github.com/alecthomas/chroma/v2"
-)
-
-// Theme based on HackerRank High Contrast Editor Theme
-var HrHighContrast = Register(chroma.MustNewStyle("hr_high_contrast", chroma.StyleEntries{
-	chroma.Comment:              "#5a8349",
-	chroma.Keyword:              "#467faf",
-	chroma.OperatorWord:         "#467faf",
-	chroma.Name:                 "#ffffff",
-	chroma.LiteralString:        "#a87662",
-	chroma.LiteralNumber:        "#fff",
-	chroma.LiteralStringBoolean: "#467faf",
-	chroma.Operator:             "#e4e400",
-	chroma.Background:           "#000",
-	chroma.Other:                "#d5d500",
-}))
Index: trunk/vendor/github.com/alecthomas/chroma/v2/styles/igor.go
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/styles/igor.go	(revision 67)
+++ 	(revision )
@@ -1,16 +1,0 @@
-package styles
-
-import (
-	"github.com/alecthomas/chroma/v2"
-)
-
-// Igor style.
-var Igor = Register(chroma.MustNewStyle("igor", chroma.StyleEntries{
-	chroma.Comment:       "italic #FF0000",
-	chroma.Keyword:       "#0000FF",
-	chroma.NameFunction:  "#C34E00",
-	chroma.NameDecorator: "#CC00A3",
-	chroma.NameClass:     "#007575",
-	chroma.LiteralString: "#009C00",
-	chroma.Background:    " bg:#ffffff",
-}))
Index: trunk/vendor/github.com/alecthomas/chroma/v2/styles/lovelace.go
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/styles/lovelace.go	(revision 67)
+++ 	(revision )
@@ -1,60 +1,0 @@
-package styles
-
-import (
-	"github.com/alecthomas/chroma/v2"
-)
-
-// Lovelace style.
-var Lovelace = Register(chroma.MustNewStyle("lovelace", chroma.StyleEntries{
-	chroma.TextWhitespace:         "#a89028",
-	chroma.Comment:                "italic #888888",
-	chroma.CommentHashbang:        "#287088",
-	chroma.CommentMultiline:       "#888888",
-	chroma.CommentPreproc:         "noitalic #289870",
-	chroma.Keyword:                "#2838b0",
-	chroma.KeywordConstant:        "italic #444444",
-	chroma.KeywordDeclaration:     "italic",
-	chroma.KeywordType:            "italic",
-	chroma.Operator:               "#666666",
-	chroma.OperatorWord:           "#a848a8",
-	chroma.Punctuation:            "#888888",
-	chroma.NameAttribute:          "#388038",
-	chroma.NameBuiltin:            "#388038",
-	chroma.NameBuiltinPseudo:      "italic",
-	chroma.NameClass:              "#287088",
-	chroma.NameConstant:           "#b85820",
-	chroma.NameDecorator:          "#287088",
-	chroma.NameEntity:             "#709030",
-	chroma.NameException:          "#908828",
-	chroma.NameFunction:           "#785840",
-	chroma.NameFunctionMagic:      "#b85820",
-	chroma.NameLabel:              "#289870",
-	chroma.NameNamespace:          "#289870",
-	chroma.NameTag:                "#2838b0",
-	chroma.NameVariable:           "#b04040",
-	chroma.NameVariableGlobal:     "#908828",
-	chroma.NameVariableMagic:      "#b85820",
-	chroma.LiteralString:          "#b83838",
-	chroma.LiteralStringAffix:     "#444444",
-	chroma.LiteralStringChar:      "#a848a8",
-	chroma.LiteralStringDelimiter: "#b85820",
-	chroma.LiteralStringDoc:       "italic #b85820",
-	chroma.LiteralStringEscape:    "#709030",
-	chroma.LiteralStringInterpol:  "underline",
-	chroma.LiteralStringOther:     "#a848a8",
-	chroma.LiteralStringRegex:     "#a848a8",
-	chroma.LiteralNumber:          "#444444",
-	chroma.GenericDeleted:         "#c02828",
-	chroma.GenericEmph:            "italic",
-	chroma.GenericError:           "#c02828",
-	chroma.GenericHeading:         "#666666",
-	chroma.GenericSubheading:      "#444444",
-	chroma.GenericInserted:        "#388038",
-	chroma.GenericOutput:          "#666666",
-	chroma.GenericPrompt:          "#444444",
-	chroma.GenericStrong:          "bold",
-	chroma.GenericTraceback:       "#2838b0",
-	chroma.GenericUnderline:       "underline",
-	chroma.Error:                  "bg:#a848a8",
-	chroma.Background:             " bg:#ffffff",
-}))
Index: trunk/vendor/github.com/alecthomas/chroma/v2/styles/manni.go
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/styles/manni.go	(revision 67)
+++ 	(revision )
@@ -1,51 +1,0 @@
-package styles
-
-import (
-	"github.com/alecthomas/chroma/v2"
-)
-
-// Manni style.
-var Manni = Register(chroma.MustNewStyle("manni", chroma.StyleEntries{
-	chroma.TextWhitespace:        "#bbbbbb",
-	chroma.Comment:               "italic #0099FF",
-	chroma.CommentPreproc:        "noitalic #009999",
-	chroma.CommentSpecial:        "bold",
-	chroma.Keyword:               "bold #006699",
-	chroma.KeywordPseudo:         "nobold",
-	chroma.KeywordType:           "#007788",
-	chroma.Operator:              "#555555",
-	chroma.OperatorWord:          "bold #000000",
-	chroma.NameBuiltin:           "#336666",
-	chroma.NameFunction:          "#CC00FF",
-	chroma.NameClass:             "bold #00AA88",
-	chroma.NameNamespace:         "bold #00CCFF",
-	chroma.NameException:         "bold #CC0000",
-	chroma.NameVariable:          "#003333",
-	chroma.NameConstant:          "#336600",
-	chroma.NameLabel:             "#9999FF",
-	chroma.NameEntity:            "bold #999999",
-	chroma.NameAttribute:         "#330099",
-	chroma.NameTag:               "bold #330099",
-	chroma.NameDecorator:         "#9999FF",
-	chroma.LiteralString:         "#CC3300",
-	chroma.LiteralStringDoc:      "italic",
-	chroma.LiteralStringInterpol: "#AA0000",
-	chroma.LiteralStringEscape:   "bold #CC3300",
-	chroma.LiteralStringRegex:    "#33AAAA",
-	chroma.LiteralStringSymbol:   "#FFCC33",
-	chroma.LiteralStringOther:    "#CC3300",
-	chroma.LiteralNumber:         "#FF6600",
-	chroma.GenericHeading:        "bold #003300",
-	chroma.GenericSubheading:     "bold #003300",
-	chroma.GenericDeleted:        "border:#CC0000 bg:#FFCCCC",
-	chroma.GenericInserted:       "border:#00CC00 bg:#CCFFCC",
-	chroma.GenericError:          "#FF0000",
-	chroma.GenericEmph:           "italic",
-	chroma.GenericStrong:         "bold",
-	chroma.GenericPrompt:         "bold #000099",
-	chroma.GenericOutput:         "#AAAAAA",
-	chroma.GenericTraceback:      "#99CC66",
-	chroma.GenericUnderline:      "underline",
-	chroma.Error:                 "bg:#FFAAAA #AA0000",
-	chroma.Background:            " bg:#f0f3f3",
-}))
Index: trunk/vendor/github.com/alecthomas/chroma/v2/styles/monokai.go
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/styles/monokai.go	(revision 67)
+++ 	(revision )
@@ -1,36 +1,0 @@
-package styles
-
-import (
-	"github.com/alecthomas/chroma/v2"
-)
-
-// Monokai style.
-var Monokai = Register(chroma.MustNewStyle("monokai", chroma.StyleEntries{
-	chroma.Text:                "#f8f8f2",
-	chroma.Error:               "#960050 bg:#1e0010",
-	chroma.Comment:             "#75715e",
-	chroma.Keyword:             "#66d9ef",
-	chroma.KeywordNamespace:    "#f92672",
-	chroma.Operator:            "#f92672",
-	chroma.Punctuation:         "#f8f8f2",
-	chroma.Name:                "#f8f8f2",
-	chroma.NameAttribute:       "#a6e22e",
-	chroma.NameClass:           "#a6e22e",
-	chroma.NameConstant:        "#66d9ef",
-	chroma.NameDecorator:       "#a6e22e",
-	chroma.NameException:       "#a6e22e",
-	chroma.NameFunction:        "#a6e22e",
-	chroma.NameOther:           "#a6e22e",
-	chroma.NameTag:             "#f92672",
-	chroma.LiteralNumber:       "#ae81ff",
-	chroma.Literal:             "#ae81ff",
-	chroma.LiteralDate:         "#e6db74",
-	chroma.LiteralString:       "#e6db74",
-	chroma.LiteralStringEscape: "#ae81ff",
-	chroma.GenericDeleted:      "#f92672",
-	chroma.GenericEmph:         "italic",
-	chroma.GenericInserted:     "#a6e22e",
-	chroma.GenericStrong:       "bold",
-	chroma.GenericSubheading:   "#75715e",
-	chroma.Background:          "bg:#272822",
-}))
Index: trunk/vendor/github.com/alecthomas/chroma/v2/styles/monokailight.go
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/styles/monokailight.go	(revision 67)
+++ 	(revision )
@@ -1,33 +1,0 @@
-package styles
-
-import (
-	"github.com/alecthomas/chroma/v2"
-)
-
-// MonokaiLight style.
-var MonokaiLight = Register(chroma.MustNewStyle("monokailight", chroma.StyleEntries{
-	chroma.Text:                "#272822",
-	chroma.Error:               "#960050 bg:#1e0010",
-	chroma.Comment:             "#75715e",
-	chroma.Keyword:             "#00a8c8",
-	chroma.KeywordNamespace:    "#f92672",
-	chroma.Operator:            "#f92672",
-	chroma.Punctuation:         "#111111",
-	chroma.Name:                "#111111",
-	chroma.NameAttribute:       "#75af00",
-	chroma.NameClass:           "#75af00",
-	chroma.NameConstant:        "#00a8c8",
-	chroma.NameDecorator:       "#75af00",
-	chroma.NameException:       "#75af00",
-	chroma.NameFunction:        "#75af00",
-	chroma.NameOther:           "#75af00",
-	chroma.NameTag:             "#f92672",
-	chroma.LiteralNumber:       "#ae81ff",
-	chroma.Literal:             "#ae81ff",
-	chroma.LiteralDate:         "#d88200",
-	chroma.LiteralString:       "#d88200",
-	chroma.LiteralStringEscape: "#8045FF",
-	chroma.GenericEmph:         "italic",
-	chroma.GenericStrong:       "bold",
-	chroma.Background:          " bg:#fafafa",
-}))
Index: trunk/vendor/github.com/alecthomas/chroma/v2/styles/murphy.go
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/styles/murphy.go	(revision 67)
+++ 	(revision )
@@ -1,59 +1,0 @@
-package styles
-
-import (
-	"github.com/alecthomas/chroma/v2"
-)
-
-// Murphy style.
-var Murphy = Register(chroma.MustNewStyle("murphy", chroma.StyleEntries{
-	chroma.TextWhitespace:        "#bbbbbb",
-	chroma.Comment:               "#666 italic",
-	chroma.CommentPreproc:        "#579 noitalic",
-	chroma.CommentSpecial:        "#c00 bold",
-	chroma.Keyword:               "bold #289",
-	chroma.KeywordPseudo:         "#08f",
-	chroma.KeywordType:           "#66f",
-	chroma.Operator:              "#333",
-	chroma.OperatorWord:          "bold #000",
-	chroma.NameBuiltin:           "#072",
-	chroma.NameFunction:          "bold #5ed",
-	chroma.NameClass:             "bold #e9e",
-	chroma.NameNamespace:         "bold #0e84b5",
-	chroma.NameException:         "bold #F00",
-	chroma.NameVariable:          "#036",
-	chroma.NameVariableInstance:  "#aaf",
-	chroma.NameVariableClass:     "#ccf",
-	chroma.NameVariableGlobal:    "#f84",
-	chroma.NameConstant:          "bold #5ed",
-	chroma.NameLabel:             "bold #970",
-	chroma.NameEntity:            "#800",
-	chroma.NameAttribute:         "#007",
-	chroma.NameTag:               "#070",
-	chroma.NameDecorator:         "bold #555",
-	chroma.LiteralString:         "bg:#e0e0ff",
-	chroma.LiteralStringChar:     "#88F bg:",
-	chroma.LiteralStringDoc:      "#D42 bg:",
-	chroma.LiteralStringInterpol: "bg:#eee",
-	chroma.LiteralStringEscape:   "bold #666",
-	chroma.LiteralStringRegex:    "bg:#e0e0ff #000",
-	chroma.LiteralStringSymbol:   "#fc8 bg:",
-	chroma.LiteralStringOther:    "#f88",
-	chroma.LiteralNumber:         "bold #60E",
-	chroma.LiteralNumberInteger:  "bold #66f",
-	chroma.LiteralNumberFloat:    "bold #60E",
-	chroma.LiteralNumberHex:      "bold #058",
-	chroma.LiteralNumberOct:      "bold #40E",
-	chroma.GenericHeading:        "bold #000080",
-	chroma.GenericSubheading:     "bold #800080",
-	chroma.GenericDeleted:        "#A00000",
-	chroma.GenericInserted:       "#00A000",
-	chroma.GenericError:          "#FF0000",
-	chroma.GenericEmph:           "italic",
-	chroma.GenericStrong:         "bold",
-	chroma.GenericPrompt:         "bold #c65d09",
-	chroma.GenericOutput:         "#888",
-	chroma.GenericTraceback:      "#04D",
-	chroma.GenericUnderline:      "underline",
-	chroma.Error:                 "#F00 bg:#FAA",
-	chroma.Background:            " bg:#ffffff",
-}))
Index: trunk/vendor/github.com/alecthomas/chroma/v2/styles/native.go
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/styles/native.go	(revision 67)
+++ 	(revision )
@@ -1,42 +1,0 @@
-package styles
-
-import (
-	"github.com/alecthomas/chroma/v2"
-)
-
-// Native style.
-var Native = Register(chroma.MustNewStyle("native", chroma.StyleEntries{
-	chroma.Background:         "#d0d0d0 bg:#202020",
-	chroma.TextWhitespace:     "#666666",
-	chroma.Comment:            "italic #999999",
-	chroma.CommentPreproc:     "noitalic bold #cd2828",
-	chroma.CommentSpecial:     "noitalic bold #e50808 bg:#520000",
-	chroma.Keyword:            "bold #6ab825",
-	chroma.KeywordPseudo:      "nobold",
-	chroma.OperatorWord:       "bold #6ab825",
-	chroma.LiteralString:      "#ed9d13",
-	chroma.LiteralStringOther: "#ffa500",
-	chroma.LiteralNumber:      "#3677a9",
-	chroma.NameBuiltin:        "#24909d",
-	chroma.NameVariable:       "#40ffff",
-	chroma.NameConstant:       "#40ffff",
-	chroma.NameClass:          "underline #447fcf",
-	chroma.NameFunction:       "#447fcf",
-	chroma.NameNamespace:      "underline #447fcf",
-	chroma.NameException:      "#bbbbbb",
-	chroma.NameTag:            "bold #6ab825",
-	chroma.NameAttribute:      "#bbbbbb",
-	chroma.NameDecorator:      "#ffa500",
-	chroma.GenericHeading:     "bold #ffffff",
-	chroma.GenericSubheading:  "underline #ffffff",
-	chroma.GenericDeleted:     "#d22323",
-	chroma.GenericInserted:    "#589819",
-	chroma.GenericError:       "#d22323",
-	chroma.GenericEmph:        "italic",
-	chroma.GenericStrong:      "bold",
-	chroma.GenericPrompt:      "#aaaaaa",
-	chroma.GenericOutput:      "#cccccc",
-	chroma.GenericTraceback:   "#d22323",
-	chroma.GenericUnderline:   "underline",
-	chroma.Error:              "bg:#e3d2d2 #a61717",
-}))
Index: trunk/vendor/github.com/alecthomas/chroma/v2/styles/nord.go
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/styles/nord.go	(revision 67)
+++ 	(revision )
@@ -1,75 +1,0 @@
-package styles
-
-import (
-	"github.com/alecthomas/chroma/v2"
-)
-
-var (
-	// colors and palettes based on https://www.nordtheme.com/docs/colors-and-palettes
-	nord0  = "#2e3440"
-	nord1  = "#3b4252" // nolint
-	nord2  = "#434c5e" // nolint
-	nord3  = "#4c566a"
-	nord3b = "#616e87"
-
-	nord4 = "#d8dee9"
-	nord5 = "#e5e9f0" // nolint
-	nord6 = "#eceff4"
-
-	nord7  = "#8fbcbb"
-	nord8  = "#88c0d0"
-	nord9  = "#81a1c1"
-	nord10 = "#5e81ac"
-
-	nord11 = "#bf616a"
-	nord12 = "#d08770"
-	nord13 = "#ebcb8b"
-	nord14 = "#a3be8c"
-	nord15 = "#b48ead"
-)
-
-// Nord, an arctic, north-bluish color palette
-var Nord = Register(chroma.MustNewStyle("nord", chroma.StyleEntries{
-	chroma.TextWhitespace:        nord4,
-	chroma.Comment:               "italic " + nord3b,
-	chroma.CommentPreproc:        nord10,
-	chroma.Keyword:               "bold " + nord9,
-	chroma.KeywordPseudo:         "nobold " + nord9,
-	chroma.KeywordType:           "nobold " + nord9,
-	chroma.Operator:              nord9,
-	chroma.OperatorWord:          "bold " + nord9,
-	chroma.Name:                  nord4,
-	chroma.NameBuiltin:           nord9,
-	chroma.NameFunction:          nord8,
-	chroma.NameClass:             nord7,
-	chroma.NameNamespace:         nord7,
-	chroma.NameException:         nord11,
-	chroma.NameVariable:          nord4,
-	chroma.NameConstant:          nord7,
-	chroma.NameLabel:             nord7,
-	chroma.NameEntity:            nord12,
-	chroma.NameAttribute:         nord7,
-	chroma.NameTag:               nord9,
-	chroma.NameDecorator:         nord12,
-	chroma.Punctuation:           nord6,
-	chroma.LiteralString:         nord14,
-	chroma.LiteralStringDoc:      nord3b,
-	chroma.LiteralStringInterpol: nord14,
-	chroma.LiteralStringEscape:   nord13,
-	chroma.LiteralStringRegex:    nord13,
-	chroma.LiteralStringSymbol:   nord14,
-	chroma.LiteralStringOther:    nord14,
-	chroma.LiteralNumber:         nord15,
-	chroma.GenericHeading:        "bold " + nord8,
-	chroma.GenericSubheading:     "bold " + nord8,
-	chroma.GenericDeleted:        nord11,
-	chroma.GenericInserted:       nord14,
-	chroma.GenericError:          nord11,
-	chroma.GenericEmph:           "italic",
-	chroma.GenericStrong:         "bold",
-	chroma.GenericPrompt:         "bold " + nord3,
-	chroma.GenericOutput:         nord4,
-	chroma.GenericTraceback:      nord11,
-	chroma.Error:                 nord11,
-	chroma.Background:            nord4 + " bg:" + nord0,
-}))
Index: trunk/vendor/github.com/alecthomas/chroma/v2/styles/onesenterprise.go
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/styles/onesenterprise.go	(revision 67)
+++ 	(revision )
@@ -1,17 +1,0 @@
-package styles
-
-import (
-	"github.com/alecthomas/chroma/v2"
-)
-
-// 1S:Designer color palette
-var OnesEnterprise = Register(chroma.MustNewStyle("onesenterprise", chroma.StyleEntries{
-	chroma.Text:           "#000000",
-	chroma.Comment:        "#008000",
-	chroma.CommentPreproc: "#963200",
-	chroma.Operator:       "#FF0000",
-	chroma.Keyword:        "#FF0000",
-	chroma.Punctuation:    "#FF0000",
-	chroma.LiteralString:  "#000000",
-	chroma.Name:           "#0000FF",
-}))
Index: trunk/vendor/github.com/alecthomas/chroma/v2/styles/paraiso-dark.go
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/styles/paraiso-dark.go	(revision 67)
+++ 	(revision )
@@ -1,44 +1,0 @@
-package styles
-
-import (
-	"github.com/alecthomas/chroma/v2"
-)
-
-// ParaisoDark style.
-var ParaisoDark = Register(chroma.MustNewStyle("paraiso-dark", chroma.StyleEntries{
-	chroma.Text:                  "#e7e9db",
-	chroma.Error:                 "#ef6155",
-	chroma.Comment:               "#776e71",
-	chroma.Keyword:               "#815ba4",
-	chroma.KeywordNamespace:      "#5bc4bf",
-	chroma.KeywordType:           "#fec418",
-	chroma.Operator:              "#5bc4bf",
-	chroma.Punctuation:           "#e7e9db",
-	chroma.Name:                  "#e7e9db",
-	chroma.NameAttribute:         "#06b6ef",
-	chroma.NameClass:             "#fec418",
-	chroma.NameConstant:          "#ef6155",
-	chroma.NameDecorator:         "#5bc4bf",
-	chroma.NameException:         "#ef6155",
-	chroma.NameFunction:          "#06b6ef",
-	chroma.NameNamespace:         "#fec418",
-	chroma.NameOther:             "#06b6ef",
-	chroma.NameTag:               "#5bc4bf",
-	chroma.NameVariable:          "#ef6155",
-	chroma.LiteralNumber:         "#f99b15",
-	chroma.Literal:               "#f99b15",
-	chroma.LiteralDate:           "#48b685",
-	chroma.LiteralString:         "#48b685",
-	chroma.LiteralStringChar:     "#e7e9db",
-	chroma.LiteralStringDoc:      "#776e71",
-	chroma.LiteralStringEscape:   "#f99b15",
-	chroma.LiteralStringInterpol: "#f99b15",
-	chroma.GenericDeleted:        "#ef6155",
-	chroma.GenericEmph:           "italic",
-	chroma.GenericHeading:        "bold #e7e9db",
-	chroma.GenericInserted:       "#48b685",
-	chroma.GenericPrompt:         "bold #776e71",
-	chroma.GenericStrong:         "bold",
-	chroma.GenericSubheading:     "bold #5bc4bf",
-	chroma.Background:            "bg:#2f1e2e",
-}))
Index: trunk/vendor/github.com/alecthomas/chroma/v2/styles/paraiso-light.go
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/styles/paraiso-light.go	(revision 67)
+++ 	(revision )
@@ -1,44 +1,0 @@
-package styles
-
-import (
-	"github.com/alecthomas/chroma/v2"
-)
-
-// ParaisoLight style.
-var ParaisoLight = Register(chroma.MustNewStyle("paraiso-light", chroma.StyleEntries{
-	chroma.Text:                  "#2f1e2e",
-	chroma.Error:                 "#ef6155",
-	chroma.Comment:               "#8d8687",
-	chroma.Keyword:               "#815ba4",
-	chroma.KeywordNamespace:      "#5bc4bf",
-	chroma.KeywordType:           "#fec418",
-	chroma.Operator:              "#5bc4bf",
-	chroma.Punctuation:           "#2f1e2e",
-	chroma.Name:                  "#2f1e2e",
-	chroma.NameAttribute:         "#06b6ef",
-	chroma.NameClass:             "#fec418",
-	chroma.NameConstant:          "#ef6155",
-	chroma.NameDecorator:         "#5bc4bf",
-	chroma.NameException:         "#ef6155",
-	chroma.NameFunction:          "#06b6ef",
-	chroma.NameNamespace:         "#fec418",
-	chroma.NameOther:             "#06b6ef",
-	chroma.NameTag:               "#5bc4bf",
-	chroma.NameVariable:          "#ef6155",
-	chroma.LiteralNumber:         "#f99b15",
-	chroma.Literal:               "#f99b15",
-	chroma.LiteralDate:           "#48b685",
-	chroma.LiteralString:         "#48b685",
-	chroma.LiteralStringChar:     "#2f1e2e",
-	chroma.LiteralStringDoc:      "#8d8687",
-	chroma.LiteralStringEscape:   "#f99b15",
-	chroma.LiteralStringInterpol: "#f99b15",
-	chroma.GenericDeleted:        "#ef6155",
-	chroma.GenericEmph:           "italic",
-	chroma.GenericHeading:        "bold #2f1e2e",
-	chroma.GenericInserted:       "#48b685",
-	chroma.GenericPrompt:         "bold #8d8687",
-	chroma.GenericStrong:         "bold",
-	chroma.GenericSubheading:     "bold #5bc4bf",
-	chroma.Background:            "bg:#e7e9db",
-}))
Index: trunk/vendor/github.com/alecthomas/chroma/v2/styles/pastie.go
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/styles/pastie.go	(revision 67)
+++ 	(revision )
@@ -1,52 +1,0 @@
-package styles
-
-import (
-	"github.com/alecthomas/chroma/v2"
-)
-
-// Pastie style.
-var Pastie = Register(chroma.MustNewStyle("pastie", chroma.StyleEntries{
-	chroma.TextWhitespace:        "#bbbbbb",
-	chroma.Comment:               "#888888",
-	chroma.CommentPreproc:        "bold #cc0000",
-	chroma.CommentSpecial:        "bg:#fff0f0 bold #cc0000",
-	chroma.LiteralString:         "bg:#fff0f0 #dd2200",
-	chroma.LiteralStringRegex:    "bg:#fff0ff #008800",
-	chroma.LiteralStringOther:    "bg:#f0fff0 #22bb22",
-	chroma.LiteralStringSymbol:   "#aa6600",
-	chroma.LiteralStringInterpol: "#3333bb",
-	chroma.LiteralStringEscape:   "#0044dd",
-	chroma.OperatorWord:          "#008800",
-	chroma.Keyword:               "bold #008800",
-	chroma.KeywordPseudo:         "nobold",
-	chroma.KeywordType:           "#888888",
-	chroma.NameClass:             "bold #bb0066",
-	chroma.NameException:         "bold #bb0066",
-	chroma.NameFunction:          "bold #0066bb",
-	chroma.NameProperty:          "bold #336699",
-	chroma.NameNamespace:         "bold #bb0066",
-	chroma.NameBuiltin:           "#003388",
-	chroma.NameVariable:          "#336699",
-	chroma.NameVariableClass:     "#336699",
-	chroma.NameVariableInstance:  "#3333bb",
-	chroma.NameVariableGlobal:    "#dd7700",
-	chroma.NameConstant:          "bold #003366",
-	chroma.NameTag:               "bold #bb0066",
-	chroma.NameAttribute:         "#336699",
-	chroma.NameDecorator:         "#555555",
-	chroma.NameLabel:             "italic #336699",
-	chroma.LiteralNumber:         "bold #0000DD",
-	chroma.GenericHeading:        "#333",
-	chroma.GenericSubheading:     "#666",
-	chroma.GenericDeleted:        "bg:#ffdddd #000000",
-	chroma.GenericInserted:       "bg:#ddffdd #000000",
-	chroma.GenericError:          "#aa0000",
-	chroma.GenericEmph:           "italic",
-	chroma.GenericStrong:         "bold",
-	chroma.GenericPrompt:         "#555555",
-	chroma.GenericOutput:         "#888888",
-	chroma.GenericTraceback:      "#aa0000",
-	chroma.GenericUnderline:      "underline",
-	chroma.Error:                 "bg:#e3d2d2 #a61717",
-	chroma.Background:            " bg:#ffffff",
-}))
Index: trunk/vendor/github.com/alecthomas/chroma/v2/styles/perldoc.go
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/styles/perldoc.go	(revision 67)
+++ 	(revision )
@@ -1,44 +1,0 @@
-package styles
-
-import (
-	"github.com/alecthomas/chroma/v2"
-)
-
-// Perldoc style.
-var Perldoc = Register(chroma.MustNewStyle("perldoc", chroma.StyleEntries{
-	chroma.TextWhitespace:       "#bbbbbb",
-	chroma.Comment:              "#228B22",
-	chroma.CommentPreproc:       "#1e889b",
-	chroma.CommentSpecial:       "#8B008B bold",
-	chroma.LiteralString:        "#CD5555",
-	chroma.LiteralStringHeredoc: "#1c7e71 italic",
-	chroma.LiteralStringRegex:   "#1c7e71",
-	chroma.LiteralStringOther:   "#cb6c20",
-	chroma.LiteralNumber:        "#B452CD",
-	chroma.OperatorWord:         "#8B008B",
-	chroma.Keyword:              "#8B008B bold",
-	chroma.KeywordType:          "#00688B",
-	chroma.NameClass:            "#008b45 bold",
-	chroma.NameException:        "#008b45 bold",
-	chroma.NameFunction:         "#008b45",
-	chroma.NameNamespace:        "#008b45 underline",
-	chroma.NameVariable:         "#00688B",
-	chroma.NameConstant:         "#00688B",
-	chroma.NameDecorator:        "#707a7c",
-	chroma.NameTag:              "#8B008B bold",
-	chroma.NameAttribute:        "#658b00",
-	chroma.NameBuiltin:          "#658b00",
-	chroma.GenericHeading:       "bold #000080",
-	chroma.GenericSubheading:    "bold #800080",
-	chroma.GenericDeleted:       "#aa0000",
-	chroma.GenericInserted:      "#00aa00",
-	chroma.GenericError:         "#aa0000",
-	chroma.GenericEmph:          "italic",
-	chroma.GenericStrong:        "bold",
-	chroma.GenericPrompt:        "#555555",
-	chroma.GenericOutput:        "#888888",
-	chroma.GenericTraceback:     "#aa0000",
-	chroma.GenericUnderline:     "underline",
-	chroma.Error:                "bg:#e3d2d2 #a61717",
-	chroma.Background:           " bg:#eeeedd",
-}))
Index: trunk/vendor/github.com/alecthomas/chroma/v2/styles/pygments.go
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/styles/pygments.go	(revision 67)
+++ 	(revision )
@@ -1,55 +1,0 @@
-package styles
-
-import (
-	"github.com/alecthomas/chroma/v2"
-)
-
-// Pygments default theme.
-var Pygments = Register(chroma.MustNewStyle("pygments", chroma.StyleEntries{
-	chroma.Whitespace:     "#bbbbbb",
-	chroma.Comment:        "italic #408080",
-	chroma.CommentPreproc: "noitalic #BC7A00",
-
-	chroma.Keyword:       "bold #008000",
-	chroma.KeywordPseudo: "nobold",
-	chroma.KeywordType:   "nobold #B00040",
-
-	chroma.Operator:     "#666666",
-	chroma.OperatorWord: "bold #AA22FF",
-
-	chroma.NameBuiltin:   "#008000",
-	chroma.NameFunction:  "#0000FF",
-	chroma.NameClass:     "bold #0000FF",
-	chroma.NameNamespace: "bold #0000FF",
-	chroma.NameException: "bold #D2413A",
-	chroma.NameVariable:  "#19177C",
-	chroma.NameConstant:  "#880000",
-	chroma.NameLabel:     "#A0A000",
-	chroma.NameEntity:    "bold #999999",
-	chroma.NameAttribute: "#7D9029",
-	chroma.NameTag:       "bold #008000",
-	chroma.NameDecorator: "#AA22FF",
-
-	chroma.String:         "#BA2121",
-	chroma.StringDoc:      "italic",
-	chroma.StringInterpol: "bold #BB6688",
-	chroma.StringEscape:   "bold #BB6622",
-	chroma.StringRegex:    "#BB6688",
-	chroma.StringSymbol:   "#19177C",
-	chroma.StringOther:    "#008000",
-	chroma.Number:         "#666666",
-
-	chroma.GenericHeading:    "bold #000080",
-	chroma.GenericSubheading: "bold #800080",
-	chroma.GenericDeleted:    "#A00000",
-	chroma.GenericInserted:   "#00A000",
-	chroma.GenericError:      "#FF0000",
-	chroma.GenericEmph:       "italic",
-	chroma.GenericStrong:     "bold",
-	chroma.GenericPrompt:     "bold #000080",
-	chroma.GenericOutput:     "#888",
-	chroma.GenericTraceback:  "#04D",
-	chroma.GenericUnderline:  "underline",
-
-	chroma.Error: "border:#FF0000",
-}))
Index: trunk/vendor/github.com/alecthomas/chroma/v2/styles/rainbow_dash.go
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/styles/rainbow_dash.go	(revision 67)
+++ 	(revision )
@@ -1,47 +1,0 @@
-package styles
-
-import (
-	"github.com/alecthomas/chroma/v2"
-)
-
-// RainbowDash style.
-var RainbowDash = Register(chroma.MustNewStyle("rainbow_dash", chroma.StyleEntries{
-	chroma.Comment:             "italic #0080ff",
-	chroma.CommentPreproc:      "noitalic",
-	chroma.CommentSpecial:      "bold",
-	chroma.Error:               "bg:#cc0000 #ffffff",
-	chroma.GenericDeleted:      "border:#c5060b bg:#ffcccc",
-	chroma.GenericEmph:         "italic",
-	chroma.GenericError:        "#ff0000",
-	chroma.GenericHeading:      "bold #2c5dcd",
-	chroma.GenericInserted:     "border:#00cc00 bg:#ccffcc",
-	chroma.GenericOutput:       "#aaaaaa",
-	chroma.GenericPrompt:       "bold #2c5dcd",
-	chroma.GenericStrong:       "bold",
-	chroma.GenericSubheading:   "bold #2c5dcd",
-	chroma.GenericTraceback:    "#c5060b",
-	chroma.GenericUnderline:    "underline",
-	chroma.Keyword:             "bold #2c5dcd",
-	chroma.KeywordPseudo:       "nobold",
-	chroma.KeywordType:         "#5918bb",
-	chroma.NameAttribute:       "italic #2c5dcd",
-	chroma.NameBuiltin:         "bold #5918bb",
-	chroma.NameClass:           "underline",
-	chroma.NameConstant:        "#318495",
-	chroma.NameDecorator:       "bold #ff8000",
-	chroma.NameEntity:          "bold #5918bb",
-	chroma.NameException:       "bold #5918bb",
-	chroma.NameFunction:        "bold #ff8000",
-	chroma.NameTag:             "bold #2c5dcd",
-	chroma.LiteralNumber:       "bold #5918bb",
-	chroma.Operator:            "#2c5dcd",
-	chroma.OperatorWord:        "bold",
-	chroma.LiteralString:       "#00cc66",
-	chroma.LiteralStringDoc:    "italic",
-	chroma.LiteralStringEscape: "bold #c5060b",
-	chroma.LiteralStringOther:  "#318495",
-	chroma.LiteralStringSymbol: "bold #c5060b",
-	chroma.Text:                "#4d4d4d",
-	chroma.TextWhitespace:      "#cbcbcb",
-	chroma.Background:          " bg:#ffffff",
-}))
Index: trunk/vendor/github.com/alecthomas/chroma/v2/styles/rrt.go
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/styles/rrt.go	(revision 67)
+++ 	(revision )
@@ -1,20 +1,0 @@
-package styles
-
-import (
-	"github.com/alecthomas/chroma/v2"
-)
-
-// Rrt style.
-var Rrt = Register(chroma.MustNewStyle("rrt", chroma.StyleEntries{
-	chroma.CommentPreproc:      "#e5e5e5",
-	chroma.Comment:             "#00ff00",
-	chroma.KeywordType:         "#ee82ee",
-	chroma.Keyword:             "#ff0000",
-	chroma.LiteralNumber:       "#ff6600",
-	chroma.LiteralStringSymbol: "#ff6600",
-	chroma.LiteralString:       "#87ceeb",
-	chroma.NameFunction:        "#ffff00",
-	chroma.NameConstant:        "#7fffd4",
-	chroma.NameVariable:        "#eedd82",
-	chroma.Background:          "#f8f8f2 bg:#000000",
-}))
Index: trunk/vendor/github.com/alecthomas/chroma/v2/styles/solarized-dark.go
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/styles/solarized-dark.go	(revision 67)
+++ 	(revision )
@@ -1,46 +1,0 @@
-package styles
-
-import (
-	"github.com/alecthomas/chroma/v2"
-)
-
-// SolarizedDark style.
-var SolarizedDark = Register(chroma.MustNewStyle("solarized-dark", chroma.StyleEntries{
-	chroma.Keyword:               "#719e07",
-	chroma.KeywordConstant:       "#CB4B16",
-	chroma.KeywordDeclaration:    "#268BD2",
-	chroma.KeywordReserved:       "#268BD2",
-	chroma.KeywordType:           "#DC322F",
-	chroma.NameAttribute:         "#93A1A1",
-	chroma.NameBuiltin:           "#B58900",
-	chroma.NameBuiltinPseudo:     "#268BD2",
-	chroma.NameClass:             "#268BD2",
-	chroma.NameConstant:          "#CB4B16",
-	chroma.NameDecorator:         "#268BD2",
-	chroma.NameEntity:            "#CB4B16",
-	chroma.NameException:         "#CB4B16",
-	chroma.NameFunction:          "#268BD2",
-	chroma.NameTag:               "#268BD2",
-	chroma.NameVariable:          "#268BD2",
-	chroma.LiteralString:         "#2AA198",
-	chroma.LiteralStringBacktick: "#586E75",
-	chroma.LiteralStringChar:     "#2AA198",
-	chroma.LiteralStringDoc:      "#93A1A1",
-	chroma.LiteralStringEscape:   "#CB4B16",
-	chroma.LiteralStringHeredoc:  "#93A1A1",
-	chroma.LiteralStringRegex:    "#DC322F",
-	chroma.LiteralNumber:         "#2AA198",
-	chroma.Operator:              "#719e07",
-	chroma.Comment:               "#586E75",
-	chroma.CommentPreproc:        "#719e07",
-	chroma.CommentSpecial:        "#719e07",
-	chroma.GenericDeleted:        "#DC322F",
-	chroma.GenericEmph:           "italic",
-	chroma.GenericError:          "#DC322F bold",
-	chroma.GenericHeading:        "#CB4B16",
-	chroma.GenericInserted:       "#719e07",
-	chroma.GenericStrong:         "bold",
-	chroma.GenericSubheading:     "#268BD2",
-	chroma.Background:            "#93A1A1 bg:#002B36",
-	chroma.Other:                 "#CB4B16",
-}))
Index: trunk/vendor/github.com/alecthomas/chroma/v2/styles/solarized-dark256.go
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/styles/solarized-dark256.go	(revision 67)
+++ 	(revision )
@@ -1,48 +1,0 @@
-package styles
-
-import (
-	"github.com/alecthomas/chroma/v2"
-)
-
-// SolarizedDark256 style.
-var SolarizedDark256 = Register(chroma.MustNewStyle("solarized-dark256", chroma.StyleEntries{
-	chroma.Keyword:               "#5f8700",
-	chroma.KeywordConstant:       "#d75f00",
-	chroma.KeywordDeclaration:    "#0087ff",
-	chroma.KeywordNamespace:      "#d75f00",
-	chroma.KeywordReserved:       "#0087ff",
-	chroma.KeywordType:           "#af0000",
-	chroma.NameAttribute:         "#8a8a8a",
-	chroma.NameBuiltin:           "#0087ff",
-	chroma.NameBuiltinPseudo:     "#0087ff",
-	chroma.NameClass:             "#0087ff",
-	chroma.NameConstant:          "#d75f00",
-	chroma.NameDecorator:         "#0087ff",
-	chroma.NameEntity:            "#d75f00",
-	chroma.NameException:         "#af8700",
-	chroma.NameFunction:          "#0087ff",
-	chroma.NameTag:               "#0087ff",
-	chroma.NameVariable:          "#0087ff",
-	chroma.LiteralString:         "#00afaf",
-	chroma.LiteralStringBacktick: "#4e4e4e",
-	chroma.LiteralStringChar:     "#00afaf",
-	chroma.LiteralStringDoc:      "#00afaf",
-	chroma.LiteralStringEscape:   "#af0000",
-	chroma.LiteralStringHeredoc:  "#00afaf",
-	chroma.LiteralStringRegex:    "#af0000",
-	chroma.LiteralNumber:         "#00afaf",
-	chroma.Operator:              "#8a8a8a",
-	chroma.OperatorWord:          "#5f8700",
-	chroma.Comment:               "#4e4e4e",
-	chroma.CommentPreproc:        "#5f8700",
-	chroma.CommentSpecial:        "#5f8700",
-	chroma.GenericDeleted:        "#af0000",
-	chroma.GenericEmph:           "italic",
-	chroma.GenericError:          "#af0000 bold",
-	chroma.GenericHeading:        "#d75f00",
-	chroma.GenericInserted:       "#5f8700",
-	chroma.GenericStrong:         "bold",
-	chroma.GenericSubheading:     "#0087ff",
-	chroma.Background:            "#8a8a8a bg:#1c1c1c",
-	chroma.Other:                 "#d75f00",
-}))
Index: trunk/vendor/github.com/alecthomas/chroma/v2/styles/solarized-light.go
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/styles/solarized-light.go	(revision 67)
+++ 	(revision )
@@ -1,24 +1,0 @@
-package styles
-
-import (
-	"github.com/alecthomas/chroma/v2"
-)
-
-// SolarizedLight style.
-var SolarizedLight = Register(chroma.MustNewStyle("solarized-light", chroma.StyleEntries{
-	chroma.Text:             "bg: #eee8d5 #586e75",
-	chroma.Keyword:          "#859900",
-	chroma.KeywordConstant:  "bold",
-	chroma.KeywordNamespace: "#dc322f bold",
-	chroma.KeywordType:      "bold",
-	chroma.Name:             "#268bd2",
-	chroma.NameBuiltin:      "#cb4b16",
-	chroma.NameClass:        "#cb4b16",
-	chroma.NameTag:          "bold",
-	chroma.Literal:          "#2aa198",
-	chroma.LiteralNumber:    "bold",
-	chroma.OperatorWord:     "#859900",
-	chroma.Comment:          "#93a1a1 italic",
-	chroma.Generic:          "#d33682",
-	chroma.Background:       " bg:#eee8d5",
-}))
Index: trunk/vendor/github.com/alecthomas/chroma/v2/styles/swapoff.go
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/styles/swapoff.go	(revision 67)
+++ 	(revision )
@@ -1,25 +1,0 @@
-package styles
-
-import (
-	"github.com/alecthomas/chroma/v2"
-)
-
-// SwapOff theme.
-var SwapOff = Register(chroma.MustNewStyle("swapoff", chroma.StyleEntries{
-	chroma.Background:        "#lightgray bg:#black",
-	chroma.Number:            "bold #ansiyellow",
-	chroma.Comment:           "#ansiteal",
-	chroma.CommentPreproc:    "bold #ansigreen",
-	chroma.String:            "bold #ansiturquoise",
-	chroma.Keyword:           "bold #ansiwhite",
-	chroma.NameKeyword:       "bold #ansiwhite",
-	chroma.NameBuiltin:       "bold #ansiwhite",
-	chroma.GenericHeading:    "bold",
-	chroma.GenericSubheading: "bold",
-	chroma.GenericStrong:     "bold",
-	chroma.GenericUnderline:  "underline",
-	chroma.NameTag:           "bold",
-	chroma.NameAttribute:     "#ansiteal",
-	chroma.Error:             "#ansired",
-	chroma.LiteralDate:       "bold #ansiyellow",
-}))
Index: trunk/vendor/github.com/alecthomas/chroma/v2/styles/tango.go
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/styles/tango.go	(revision 67)
+++ 	(revision )
@@ -1,79 +1,0 @@
-package styles
-
-import (
-	"github.com/alecthomas/chroma/v2"
-)
-
-// Tango style.
-var Tango = Register(chroma.MustNewStyle("tango", chroma.StyleEntries{
-	chroma.TextWhitespace:           "underline #f8f8f8",
-	chroma.Error:                    "#a40000 border:#ef2929",
-	chroma.Other:                    "#000000",
-	chroma.Comment:                  "italic #8f5902",
-	chroma.CommentMultiline:         "italic #8f5902",
-	chroma.CommentPreproc:           "italic #8f5902",
-	chroma.CommentSingle:            "italic #8f5902",
-	chroma.CommentSpecial:           "italic #8f5902",
-	chroma.Keyword:                  "bold #204a87",
-	chroma.KeywordConstant:          "bold #204a87",
-	chroma.KeywordDeclaration:       "bold #204a87",
-	chroma.KeywordNamespace:         "bold #204a87",
-	chroma.KeywordPseudo:            "bold #204a87",
-	chroma.KeywordReserved:          "bold #204a87",
-	chroma.KeywordType:              "bold #204a87",
-	chroma.Operator:                 "bold #ce5c00",
-	chroma.OperatorWord:             "bold #204a87",
-	chroma.Punctuation:              "bold #000000",
-	chroma.Name:                     "#000000",
-	chroma.NameAttribute:            "#c4a000",
-	chroma.NameBuiltin:              "#204a87",
-	chroma.NameBuiltinPseudo:        "#3465a4",
-	chroma.NameClass:                "#000000",
-	chroma.NameConstant:             "#000000",
-	chroma.NameDecorator:            "bold #5c35cc",
-	chroma.NameEntity:               "#ce5c00",
-	chroma.NameException:            "bold #cc0000",
-	chroma.NameFunction:             "#000000",
-	chroma.NameProperty:             "#000000",
-	chroma.NameLabel:                "#f57900",
-	chroma.NameNamespace:            "#000000",
-	chroma.NameOther:                "#000000",
-	chroma.NameTag:                  "bold #204a87",
-	chroma.NameVariable:             "#000000",
-	chroma.NameVariableClass:        "#000000",
-	chroma.NameVariableGlobal:       "#000000",
-	chroma.NameVariableInstance:     "#000000",
-	chroma.LiteralNumber:            "bold #0000cf",
-	chroma.LiteralNumberFloat:       "bold #0000cf",
-	chroma.LiteralNumberHex:         "bold #0000cf",
-	chroma.LiteralNumberInteger:     "bold #0000cf",
-	chroma.LiteralNumberIntegerLong: "bold #0000cf",
-	chroma.LiteralNumberOct:         "bold #0000cf",
-	chroma.Literal:                  "#000000",
-	chroma.LiteralDate:              "#000000",
-	chroma.LiteralString:            "#4e9a06",
-	chroma.LiteralStringBacktick:    "#4e9a06",
-	chroma.LiteralStringChar:        "#4e9a06",
-	chroma.LiteralStringDoc:         "italic #8f5902",
-	chroma.LiteralStringDouble:      "#4e9a06",
-	chroma.LiteralStringEscape:      "#4e9a06",
-	chroma.LiteralStringHeredoc:     "#4e9a06",
-	chroma.LiteralStringInterpol:    "#4e9a06",
-	chroma.LiteralStringOther:       "#4e9a06",
-	chroma.LiteralStringRegex:       "#4e9a06",
-	chroma.LiteralStringSingle:      "#4e9a06",
-	chroma.LiteralStringSymbol:      "#4e9a06",
-	chroma.Generic:                  "#000000",
-	chroma.GenericDeleted:           "#a40000",
-	chroma.GenericEmph:              "italic #000000",
-	chroma.GenericError:             "#ef2929",
-	chroma.GenericHeading:           "bold #000080",
-	chroma.GenericInserted:          "#00A000",
-	chroma.GenericOutput:            "italic #000000",
-	chroma.GenericPrompt:            "#8f5902",
-	chroma.GenericStrong:            "bold #000000",
-	chroma.GenericSubheading:        "bold #800080",
-	chroma.GenericTraceback:         "bold #a40000",
-	chroma.GenericUnderline:         "underline",
-	chroma.Background:               " bg:#f8f8f8",
-}))
Index: trunk/vendor/github.com/alecthomas/chroma/v2/styles/trac.go
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/styles/trac.go	(revision 67)
+++ 	(revision )
@@ -1,42 +1,0 @@
-package styles
-
-import (
-	"github.com/alecthomas/chroma/v2"
-)
-
-// Trac style.
-var Trac = Register(chroma.MustNewStyle("trac", chroma.StyleEntries{
-	chroma.TextWhitespace:     "#bbbbbb",
-	chroma.Comment:            "italic #999988",
-	chroma.CommentPreproc:     "bold noitalic #999999",
-	chroma.CommentSpecial:     "bold #999999",
-	chroma.Operator:           "bold",
-	chroma.LiteralString:      "#bb8844",
-	chroma.LiteralStringRegex: "#808000",
-	chroma.LiteralNumber:      "#009999",
-	chroma.Keyword:            "bold",
-	chroma.KeywordType:        "#445588",
-	chroma.NameBuiltin:        "#999999",
-	chroma.NameFunction:       "bold #990000",
-	chroma.NameClass:          "bold #445588",
-	chroma.NameException:      "bold #990000",
-	chroma.NameNamespace:      "#555555",
-	chroma.NameVariable:       "#008080",
-	chroma.NameConstant:       "#008080",
-	chroma.NameTag:            "#000080",
-	chroma.NameAttribute:      "#008080",
-	chroma.NameEntity:         "#800080",
-	chroma.GenericHeading:     "#999999",
-	chroma.GenericSubheading:  "#aaaaaa",
-	chroma.GenericDeleted:     "bg:#ffdddd #000000",
-	chroma.GenericInserted:    "bg:#ddffdd #000000",
-	chroma.GenericError:       "#aa0000",
-	chroma.GenericEmph:        "italic",
-	chroma.GenericStrong:      "bold",
-	chroma.GenericPrompt:      "#555555",
-	chroma.GenericOutput:      "#888888",
-	chroma.GenericTraceback:   "#aa0000",
-	chroma.GenericUnderline:   "underline",
-	chroma.Error:              "bg:#e3d2d2 #a61717",
-	chroma.Background:         " bg:#ffffff",
-}))
Index: trunk/vendor/github.com/alecthomas/chroma/v2/styles/vim.go
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/styles/vim.go	(revision 67)
+++ 	(revision )
@@ -1,36 +1,0 @@
-package styles
-
-import (
-	"github.com/alecthomas/chroma/v2"
-)
-
-// Vim style.
-var Vim = Register(chroma.MustNewStyle("vim", chroma.StyleEntries{
-	chroma.Background:         "#cccccc bg:#000000",
-	chroma.Comment:            "#000080",
-	chroma.CommentSpecial:     "bold #cd0000",
-	chroma.Keyword:            "#cdcd00",
-	chroma.KeywordDeclaration: "#00cd00",
-	chroma.KeywordNamespace:   "#cd00cd",
-	chroma.KeywordType:        "#00cd00",
-	chroma.Operator:           "#3399cc",
-	chroma.OperatorWord:       "#cdcd00",
-	chroma.NameClass:          "#00cdcd",
-	chroma.NameBuiltin:        "#cd00cd",
-	chroma.NameException:      "bold #666699",
-	chroma.NameVariable:       "#00cdcd",
-	chroma.LiteralString:      "#cd0000",
-	chroma.LiteralNumber:      "#cd00cd",
-	chroma.GenericHeading:     "bold #000080",
-	chroma.GenericSubheading:  "bold #800080",
-	chroma.GenericDeleted:     "#cd0000",
-	chroma.GenericInserted:    "#00cd00",
-	chroma.GenericError:       "#FF0000",
-	chroma.GenericEmph:        "italic",
-	chroma.GenericStrong:      "bold",
-	chroma.GenericPrompt:      "bold #000080",
-	chroma.GenericOutput:      "#888",
-	chroma.GenericTraceback:   "#04D",
-	chroma.GenericUnderline:   "underline",
-	chroma.Error:              "border:#FF0000",
-}))
Index: trunk/vendor/github.com/alecthomas/chroma/v2/styles/vs.go
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/styles/vs.go	(revision 67)
+++ 	(revision )
@@ -1,23 +1,0 @@
-package styles
-
-import (
-	"github.com/alecthomas/chroma/v2"
-)
-
-// VisualStudio style.
-var VisualStudio = Register(chroma.MustNewStyle("vs", chroma.StyleEntries{
-	chroma.Comment:           "#008000",
-	chroma.CommentPreproc:    "#0000ff",
-	chroma.Keyword:           "#0000ff",
-	chroma.OperatorWord:      "#0000ff",
-	chroma.KeywordType:       "#2b91af",
-	chroma.NameClass:         "#2b91af",
-	chroma.LiteralString:     "#a31515",
-	chroma.GenericHeading:    "bold",
-	chroma.GenericSubheading: "bold",
-	chroma.GenericEmph:       "italic",
-	chroma.GenericStrong:     "bold",
-	chroma.GenericPrompt:     "bold",
-	chroma.Error:             "border:#FF0000",
-	chroma.Background:        " bg:#ffffff",
-}))
Index: trunk/vendor/github.com/alecthomas/chroma/v2/styles/vulcan.go
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/styles/vulcan.go	(revision 67)
+++ 	(revision )
@@ -1,95 +1,0 @@
-package styles
-
-import (
-	"github.com/alecthomas/chroma/v2"
-)
-
-var (
-	// inspired by Doom Emacs's One Doom Theme
-	black  = "#282C34"
-	grey   = "#3E4460"
-	grey2  = "#43454f"
-	white  = "#C9C9C9"
-	red    = "#CF5967"
-	yellow = "#ECBE7B"
-	green  = "#82CC6A"
-	cyan   = "#56B6C2"
-	blue   = "#7FBAF5"
-	blue2  = "#57C7FF"
-	purple = "#BC74C4"
-)
-
-var Vulcan = Register(chroma.MustNewStyle("vulcan", chroma.StyleEntries{
-	chroma.Comment:                  grey,
-	chroma.CommentHashbang:          grey + " italic",
-	chroma.CommentMultiline:         grey,
-	chroma.CommentPreproc:           blue,
-	chroma.CommentSingle:            grey,
-	chroma.CommentSpecial:           purple + " italic",
-	chroma.Generic:                  white,
-	chroma.GenericDeleted:           red,
-	chroma.GenericEmph:              white + " underline",
-	chroma.GenericError:             red + " bold",
-	chroma.GenericHeading:           yellow + " bold",
-	chroma.GenericInserted:          yellow,
-	chroma.GenericOutput:            grey2,
-	chroma.GenericPrompt:            white,
-	chroma.GenericStrong:            red + " bold",
-	chroma.GenericSubheading:        red + " italic",
-	chroma.GenericTraceback:         white,
-	chroma.GenericUnderline:         "underline",
-	chroma.Error:                    red,
-	chroma.Keyword:                  blue,
-	chroma.KeywordConstant:          red + " bg:" + grey2,
-	chroma.KeywordDeclaration:       blue,
-	chroma.KeywordNamespace:         purple,
-	chroma.KeywordPseudo:            purple,
-	chroma.KeywordReserved:          blue,
-	chroma.KeywordType:              blue2 + " bold",
-	chroma.Literal:                  white,
-	chroma.LiteralDate:              blue2,
-	chroma.Name:                     white,
-	chroma.NameAttribute:            purple,
-	chroma.NameBuiltin:              blue,
-	chroma.NameBuiltinPseudo:        blue,
-	chroma.NameClass:                yellow,
-	chroma.NameConstant:             yellow,
-	chroma.NameDecorator:            yellow,
-	chroma.NameEntity:               white,
-	chroma.NameException:            red,
-	chroma.NameFunction:             blue2,
-	chroma.NameLabel:                red,
-	chroma.NameNamespace:            white,
-	chroma.NameOther:                white,
-	chroma.NameTag:                  purple,
-	chroma.NameVariable:             purple + " italic",
-	chroma.NameVariableClass:        blue2 + " bold",
-	chroma.NameVariableGlobal:       yellow,
-	chroma.NameVariableInstance:     blue2,
-	chroma.LiteralNumber:            cyan,
-	chroma.LiteralNumberBin:         blue2,
-	chroma.LiteralNumberFloat:       cyan,
-	chroma.LiteralNumberHex:         blue2,
-	chroma.LiteralNumberInteger:     cyan,
-	chroma.LiteralNumberIntegerLong: cyan,
-	chroma.LiteralNumberOct:         blue2,
-	chroma.Operator:                 purple,
-	chroma.OperatorWord:             purple,
-	chroma.Other:                    white,
-	chroma.Punctuation:              cyan,
-	chroma.LiteralString:            green,
-	chroma.LiteralStringBacktick:    blue2,
-	chroma.LiteralStringChar:        blue2,
-	chroma.LiteralStringDoc:         green,
-	chroma.LiteralStringDouble:      green,
-	chroma.LiteralStringEscape:      cyan,
-	chroma.LiteralStringHeredoc:     cyan,
-	chroma.LiteralStringInterpol:    green,
-	chroma.LiteralStringOther:       green,
-	chroma.LiteralStringRegex:       blue2,
-	chroma.LiteralStringSingle:      green,
-	chroma.LiteralStringSymbol:      green,
-	chroma.Text:                     white,
-	chroma.TextWhitespace:           white,
-	chroma.Background:               " bg: " + black,
-}))
Index: trunk/vendor/github.com/alecthomas/chroma/v2/styles/witchhazel.go
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/styles/witchhazel.go	(revision 67)
+++ 	(revision )
@@ -1,52 +1,0 @@
-// Copyright 2018 Alethea Katherine Flowers
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//    http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-package styles
-
-import (
-	"github.com/alecthomas/chroma/v2"
-)
-
-// WitchHazel Style
-var WitchHazel = Register(chroma.MustNewStyle("witchhazel", chroma.StyleEntries{
-	chroma.Text:              "#F8F8F2",
-	chroma.Whitespace:        "#A8757B",
-	chroma.Error:             "#960050 bg:#1e0010",
-	chroma.Comment:           "#b0bec5",
-	chroma.Keyword:           "#C2FFDF",
-	chroma.KeywordNamespace:  "#FFB8D1",
-	chroma.Operator:          "#FFB8D1",
-	chroma.Punctuation:       "#F8F8F2",
-	chroma.Name:              "#F8F8F2",
-	chroma.NameAttribute:     "#ceb1ff",
-	chroma.NameBuiltinPseudo: "#80cbc4",
-	chroma.NameClass:         "#ceb1ff",
-	chroma.NameConstant:      "#C5A3FF",
-	chroma.NameDecorator:     "#ceb1ff",
-	chroma.NameException:     "#ceb1ff",
-	chroma.NameFunction:      "#ceb1ff",
-	chroma.NameProperty:      "#F8F8F2",
-	chroma.NameTag:           "#FFB8D1",
-	chroma.NameVariable:      "#F8F8F2",
-	chroma.Number:            "#C5A3FF",
-	chroma.Literal:           "#ae81ff",
-	chroma.LiteralDate:       "#e6db74",
-	chroma.String:            "#1bc5e0",
-	chroma.GenericDeleted:    "#f92672",
-	chroma.GenericEmph:       "italic",
-	chroma.GenericInserted:   "#a6e22e",
-	chroma.GenericStrong:     "bold",
-	chroma.GenericSubheading: "#75715e",
-	chroma.Background:        " bg:#433e56",
-}))
Index: trunk/vendor/github.com/alecthomas/chroma/v2/styles/xcode-dark.go
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/styles/xcode-dark.go	(revision 67)
+++ 	(revision )
@@ -1,62 +1,0 @@
-package styles
-
-import (
-	"github.com/alecthomas/chroma/v2"
-)
-
-var (
-	// Inspired by Apple's Xcode "Default (Dark)" Theme
-	background                  = "#1F1F24"
-	plainText                   = "#FFFFFF"
-	comments                    = "#6C7986"
-	strings                     = "#FC6A5D"
-	numbers                     = "#D0BF69"
-	keywords                    = "#FC5FA3"
-	preprocessorStatements      = "#FD8F3F"
-	typeDeclarations            = "#5DD8FF"
-	otherDeclarations           = "#41A1C0"
-	otherFunctionAndMethodNames = "#A167E6"
-	otherTypeNames              = "#D0A8FF"
-)
-
-// Xcode dark style
-var XcodeDark = Register(chroma.MustNewStyle("xcode-dark", chroma.StyleEntries{
-	chroma.Background: plainText + " bg:" + background,
-
-	chroma.Comment:          comments,
-	chroma.CommentMultiline: comments,
-	chroma.CommentPreproc:   preprocessorStatements,
-	chroma.CommentSingle:    comments,
-	chroma.CommentSpecial:   comments + " italic",
-
-	chroma.Error: "#960050",
-
-	chroma.Keyword:            keywords,
-	chroma.KeywordConstant:    keywords,
-	chroma.KeywordDeclaration: keywords,
-	chroma.KeywordReserved:    keywords,
-
-	chroma.LiteralNumber:        numbers,
-	chroma.LiteralNumberBin:     numbers,
-	chroma.LiteralNumberFloat:   numbers,
-	chroma.LiteralNumberHex:     numbers,
-	chroma.LiteralNumberInteger: numbers,
-	chroma.LiteralNumberOct:     numbers,
-
-	chroma.LiteralString:         strings,
-	chroma.LiteralStringEscape:   strings,
-	chroma.LiteralStringInterpol: plainText,
-
-	chroma.Name:              plainText,
-	chroma.NameBuiltin:       otherTypeNames,
-	chroma.NameBuiltinPseudo: otherFunctionAndMethodNames,
-	chroma.NameClass:         typeDeclarations,
-	chroma.NameFunction:      otherDeclarations,
-	chroma.NameVariable:      otherDeclarations,
-
-	chroma.Operator: plainText,
-
-	chroma.Punctuation: plainText,
-
-	chroma.Text: plainText,
-}))
Index: trunk/vendor/github.com/alecthomas/chroma/v2/styles/xcode.go
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/styles/xcode.go	(revision 67)
+++ 	(revision )
@@ -1,29 +1,0 @@
-package styles
-
-import (
-	"github.com/alecthomas/chroma/v2"
-)
-
-// Xcode style.
-var Xcode = Register(chroma.MustNewStyle("xcode", chroma.StyleEntries{
-	chroma.Comment:           "#177500",
-	chroma.CommentPreproc:    "#633820",
-	chroma.LiteralString:     "#C41A16",
-	chroma.LiteralStringChar: "#2300CE",
-	chroma.Operator:          "#000000",
-	chroma.Keyword:           "#A90D91",
-	chroma.Name:              "#000000",
-	chroma.NameAttribute:     "#836C28",
-	chroma.NameClass:         "#3F6E75",
-	chroma.NameFunction:      "#000000",
-	chroma.NameBuiltin:       "#A90D91",
-	chroma.NameBuiltinPseudo: "#5B269A",
-	chroma.NameVariable:      "#000000",
-	chroma.NameTag:           "#000000",
-	chroma.NameDecorator:     "#000000",
-	chroma.NameLabel:         "#000000",
-	chroma.Literal:           "#1C01CE",
-	chroma.LiteralNumber:     "#1C01CE",
-	chroma.Error:             "#000000",
-	chroma.Background:        " bg:#ffffff",
-}))
Index: trunk/vendor/github.com/alecthomas/chroma/v2/table.py
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/table.py	(revision 67)
+++ 	(revision )
@@ -1,32 +1,0 @@
-#!/usr/bin/env python3
-import re
-from collections import defaultdict
-from subprocess import check_output
-
-README_FILE = "README.md"
-
-
-lines = check_output(["go", "run", "./cmd/chroma/main.go", "--list"]).decode("utf-8").splitlines()
-lines = [line.strip() for line in lines if line.startswith("  ") and not line.startswith("   ")]
-lines = sorted(lines, key=lambda l: l.lower())
-
-table = defaultdict(list)
-
-for line in lines:
-    table[line[0].upper()].append(line)
-
-rows = []
-for key, value in table.items():
-    rows.append("{} | {}".format(key, ", ".join(value)))
-tbody = "\n".join(rows)
-
-with open(README_FILE, "r") as f:
-    content = f.read()
-
-with open(README_FILE, "w") as f:
-    marker = re.compile(r"(?P<start>:----: \\| --------\n).*?(?P<end>\n\n)", re.DOTALL)
-    replacement = r"\g<start>%s\g<end>" % tbody
-    updated_content = marker.sub(replacement, content)
-    f.write(updated_content)
-
-print(tbody)
Index: trunk/vendor/github.com/alecthomas/chroma/v2/tokentype_string.go
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/tokentype_string.go	(revision 67)
+++ 	(revision )
@@ -1,219 +1,0 @@
-// Code generated by "stringer -type TokenType"; DO NOT EDIT.
-
-package chroma
-
-import "strconv"
-
-func _() {
-	// An "invalid array index" compiler error signifies that the constant values have changed.
-	// Re-run the stringer command to generate them again.
-	var x [1]struct{}
-	_ = x[Background - -1]
-	_ = x[PreWrapper - -2]
-	_ = x[Line - -3]
-	_ = x[LineNumbers - -4]
-	_ = x[LineNumbersTable - -5]
-	_ = x[LineHighlight - -6]
-	_ = x[LineTable - -7]
-	_ = x[LineTableTD - -8]
-	_ = x[CodeLine - -9]
-	_ = x[Error - -10]
-	_ = x[Other - -11]
-	_ = x[None - -12]
-	_ = x[EOFType-0]
-	_ = x[Keyword-1000]
-	_ = x[KeywordConstant-1001]
-	_ = x[KeywordDeclaration-1002]
-	_ = x[KeywordNamespace-1003]
-	_ = x[KeywordPseudo-1004]
-	_ = x[KeywordReserved-1005]
-	_ = x[KeywordType-1006]
-	_ = x[Name-2000]
-	_ = x[NameAttribute-2001]
-	_ = x[NameBuiltin-2002]
-	_ = x[NameBuiltinPseudo-2003]
-	_ = x[NameClass-2004]
-	_ = x[NameConstant-2005]
-	_ = x[NameDecorator-2006]
-	_ = x[NameEntity-2007]
-	_ = x[NameException-2008]
-	_ = x[NameFunction-2009]
-	_ = x[NameFunctionMagic-2010]
-	_ = x[NameKeyword-2011]
-	_ = x[NameLabel-2012]
-	_ = x[NameNamespace-2013]
-	_ = x[NameOperator-2014]
-	_ = x[NameOther-2015]
-	_ = x[NamePseudo-2016]
-	_ = x[NameProperty-2017]
-	_ = x[NameTag-2018]
-	_ = x[NameVariable-2019]
-	_ = x[NameVariableAnonymous-2020]
-	_ = x[NameVariableClass-2021]
-	_ = x[NameVariableGlobal-2022]
-	_ = x[NameVariableInstance-2023]
-	_ = x[NameVariableMagic-2024]
-	_ = x[Literal-3000]
-	_ = x[LiteralDate-3001]
-	_ = x[LiteralOther-3002]
-	_ = x[LiteralString-3100]
-	_ = x[LiteralStringAffix-3101]
-	_ = x[LiteralStringAtom-3102]
-	_ = x[LiteralStringBacktick-3103]
-	_ = x[LiteralStringBoolean-3104]
-	_ = x[LiteralStringChar-3105]
-	_ = x[LiteralStringDelimiter-3106]
-	_ = x[LiteralStringDoc-3107]
-	_ = x[LiteralStringDouble-3108]
-	_ = x[LiteralStringEscape-3109]
-	_ = x[LiteralStringHeredoc-3110]
-	_ = x[LiteralStringInterpol-3111]
-	_ = x[LiteralStringName-3112]
-	_ = x[LiteralStringOther-3113]
-	_ = x[LiteralStringRegex-3114]
-	_ = x[LiteralStringSingle-3115]
-	_ = x[LiteralStringSymbol-3116]
-	_ = x[LiteralNumber-3200]
-	_ = x[LiteralNumberBin-3201]
-	_ = x[LiteralNumberFloat-3202]
-	_ = x[LiteralNumberHex-3203]
-	_ = x[LiteralNumberInteger-3204]
-	_ = x[LiteralNumberIntegerLong-3205]
-	_ = x[LiteralNumberOct-3206]
-	_ = x[Operator-4000]
-	_ = x[OperatorWord-4001]
-	_ = x[Punctuation-5000]
-	_ = x[Comment-6000]
-	_ = x[CommentHashbang-6001]
-	_ = x[CommentMultiline-6002]
-	_ = x[CommentSingle-6003]
-	_ = x[CommentSpecial-6004]
-	_ = x[CommentPreproc-6100]
-	_ = x[CommentPreprocFile-6101]
-	_ = x[Generic-7000]
-	_ = x[GenericDeleted-7001]
-	_ = x[GenericEmph-7002]
-	_ = x[GenericError-7003]
-	_ = x[GenericHeading-7004]
-	_ = x[GenericInserted-7005]
-	_ = x[GenericOutput-7006]
-	_ = x[GenericPrompt-7007]
-	_ = x[GenericStrong-7008]
-	_ = x[GenericSubheading-7009]
-	_ = x[GenericTraceback-7010]
-	_ = x[GenericUnderline-7011]
-	_ = x[Text-8000]
-	_ = x[TextWhitespace-8001]
-	_ = x[TextSymbol-8002]
-	_ = x[TextPunctuation-8003]
-}
-
-const _TokenType_name = "NoneOtherErrorCodeLineLineTableTDLineTableLineHighlightLineNumbersTableLineNumbersLinePreWrapperBackgroundEOFTypeKeywordKeywordConstantKeywordDeclarationKeywordNamespaceKeywordPseudoKeywordReservedKeywordTypeNameNameAttributeNameBuiltinNameBuiltinPseudoNameClassNameConstantNameDecoratorNameEntityNameExceptionNameFunctionNameFunctionMagicNameKeywordNameLabelNameNamespaceNameOperatorNameOtherNamePseudoNamePropertyNameTagNameVariableNameVariableAnonymousNameVariableClassNameVariableGlobalNameVariableInstanceNameVariableMagicLiteralLiteralDateLiteralOtherLiteralStringLiteralStringAffixLiteralStringAtomLiteralStringBacktickLiteralStringBooleanLiteralStringCharLiteralStringDelimiterLiteralStringDocLiteralStringDoubleLiteralStringEscapeLiteralStringHeredocLiteralStringInterpolLiteralStringNameLiteralStringOtherLiteralStringRegexLiteralStringSingleLiteralStringSymbolLiteralNumberLiteralNumberBinLiteralNumberFloatLiteralNumberHexLiteralNumberIntegerLiteralNumberIntegerLongLiteralNumberOctOperatorOperatorWordPunctuationCommentCommentHashbangCommentMultilineCommentSingleCommentSpecialCommentPreprocCommentPreprocFileGenericGenericDeletedGenericEmphGenericErrorGenericHeadingGenericInsertedGenericOutputGenericPromptGenericStrongGenericSubheadingGenericTracebackGenericUnderlineTextTextWhitespaceTextSymbolTextPunctuation"
-
-var _TokenType_map = map[TokenType]string{
-	-12:  _TokenType_name[0:4],
-	-11:  _TokenType_name[4:9],
-	-10:  _TokenType_name[9:14],
-	-9:   _TokenType_name[14:22],
-	-8:   _TokenType_name[22:33],
-	-7:   _TokenType_name[33:42],
-	-6:   _TokenType_name[42:55],
-	-5:   _TokenType_name[55:71],
-	-4:   _TokenType_name[71:82],
-	-3:   _TokenType_name[82:86],
-	-2:   _TokenType_name[86:96],
-	-1:   _TokenType_name[96:106],
-	0:    _TokenType_name[106:113],
-	1000: _TokenType_name[113:120],
-	1001: _TokenType_name[120:135],
-	1002: _TokenType_name[135:153],
-	1003: _TokenType_name[153:169],
-	1004: _TokenType_name[169:182],
-	1005: _TokenType_name[182:197],
-	1006: _TokenType_name[197:208],
-	2000: _TokenType_name[208:212],
-	2001: _TokenType_name[212:225],
-	2002: _TokenType_name[225:236],
-	2003: _TokenType_name[236:253],
-	2004: _TokenType_name[253:262],
-	2005: _TokenType_name[262:274],
-	2006: _TokenType_name[274:287],
-	2007: _TokenType_name[287:297],
-	2008: _TokenType_name[297:310],
-	2009: _TokenType_name[310:322],
-	2010: _TokenType_name[322:339],
-	2011: _TokenType_name[339:350],
-	2012: _TokenType_name[350:359],
-	2013: _TokenType_name[359:372],
-	2014: _TokenType_name[372:384],
-	2015: _TokenType_name[384:393],
-	2016: _TokenType_name[393:403],
-	2017: _TokenType_name[403:415],
-	2018: _TokenType_name[415:422],
-	2019: _TokenType_name[422:434],
-	2020: _TokenType_name[434:455],
-	2021: _TokenType_name[455:472],
-	2022: _TokenType_name[472:490],
-	2023: _TokenType_name[490:510],
-	2024: _TokenType_name[510:527],
-	3000: _TokenType_name[527:534],
-	3001: _TokenType_name[534:545],
-	3002: _TokenType_name[545:557],
-	3100: _TokenType_name[557:570],
-	3101: _TokenType_name[570:588],
-	3102: _TokenType_name[588:605],
-	3103: _TokenType_name[605:626],
-	3104: _TokenType_name[626:646],
-	3105: _TokenType_name[646:663],
-	3106: _TokenType_name[663:685],
-	3107: _TokenType_name[685:701],
-	3108: _TokenType_name[701:720],
-	3109: _TokenType_name[720:739],
-	3110: _TokenType_name[739:759],
-	3111: _TokenType_name[759:780],
-	3112: _TokenType_name[780:797],
-	3113: _TokenType_name[797:815],
-	3114: _TokenType_name[815:833],
-	3115: _TokenType_name[833:852],
-	3116: _TokenType_name[852:871],
-	3200: _TokenType_name[871:884],
-	3201: _TokenType_name[884:900],
-	3202: _TokenType_name[900:918],
-	3203: _TokenType_name[918:934],
-	3204: _TokenType_name[934:954],
-	3205: _TokenType_name[954:978],
-	3206: _TokenType_name[978:994],
-	4000: _TokenType_name[994:1002],
-	4001: _TokenType_name[1002:1014],
-	5000: _TokenType_name[1014:1025],
-	6000: _TokenType_name[1025:1032],
-	6001: _TokenType_name[1032:1047],
-	6002: _TokenType_name[1047:1063],
-	6003: _TokenType_name[1063:1076],
-	6004: _TokenType_name[1076:1090],
-	6100: _TokenType_name[1090:1104],
-	6101: _TokenType_name[1104:1122],
-	7000: _TokenType_name[1122:1129],
-	7001: _TokenType_name[1129:1143],
-	7002: _TokenType_name[1143:1154],
-	7003: _TokenType_name[1154:1166],
-	7004: _TokenType_name[1166:1180],
-	7005: _TokenType_name[1180:1195],
-	7006: _TokenType_name[1195:1208],
-	7007: _TokenType_name[1208:1221],
-	7008: _TokenType_name[1221:1234],
-	7009: _TokenType_name[1234:1251],
-	7010: _TokenType_name[1251:1267],
-	7011: _TokenType_name[1267:1283],
-	8000: _TokenType_name[1283:1287],
-	8001: _TokenType_name[1287:1301],
-	8002: _TokenType_name[1301:1311],
-	8003: _TokenType_name[1311:1326],
-}
-
-func (i TokenType) String() string {
-	if str, ok := _TokenType_map[i]; ok {
-		return str
-	}
-	return "TokenType(" + strconv.FormatInt(int64(i), 10) + ")"
-}
Index: trunk/vendor/github.com/alecthomas/chroma/v2/types.go
===================================================================
--- trunk/vendor/github.com/alecthomas/chroma/v2/types.go	(revision 67)
+++ 	(revision )
@@ -1,352 +1,0 @@
-package chroma
-
-import (
-	"fmt"
-)
-
-//go:generate stringer -type TokenType
-
-// TokenType is the type of token to highlight.
-//
-// It is also an Emitter, emitting a single token of itself
-type TokenType int
-
-// Set of TokenTypes.
-//
-// Categories of types are grouped in ranges of 1000, while sub-categories are in ranges of 100. For
-// example, the literal category is in the range 3000-3999. The sub-category for literal strings is
-// in the range 3100-3199.
-
-// Meta token types.
-const (
-	// Default background style.
-	Background TokenType = -1 - iota
-	// PreWrapper style.
-	PreWrapper
-	// Line style.
-	Line
-	// Line numbers in output.
-	LineNumbers
-	// Line numbers in output when in table.
-	LineNumbersTable
-	// Line higlight style.
-	LineHighlight
-	// Line numbers table wrapper style.
-	LineTable
-	// Line numbers table TD wrapper style.
-	LineTableTD
-	// Code line wrapper style.
-	CodeLine
-	// Input that could not be tokenised.
-	Error
-	// Other is used by the Delegate lexer to indicate which tokens should be handled by the delegate.
-	Other
-	// No highlighting.
-	None
-	// Used as an EOF marker / nil token
-	EOFType TokenType = 0
-)
-
-// Keywords.
-const (
-	Keyword TokenType = 1000 + iota
-	KeywordConstant
-	KeywordDeclaration
-	KeywordNamespace
-	KeywordPseudo
-	KeywordReserved
-	KeywordType
-)
-
-// Names.
-const (
-	Name TokenType = 2000 + iota
-	NameAttribute
-	NameBuiltin
-	NameBuiltinPseudo
-	NameClass
-	NameConstant
-	NameDecorator
-	NameEntity
-	NameException
-	NameFunction
-	NameFunctionMagic
-	NameKeyword
-	NameLabel
-	NameNamespace
-	NameOperator
-	NameOther
-	NamePseudo
-	NameProperty
-	NameTag
-	NameVariable
-	NameVariableAnonymous
-	NameVariableClass
-	NameVariableGlobal
-	NameVariableInstance
-	NameVariableMagic
-)
-
-// Literals.
-const (
-	Literal TokenType = 3000 + iota
-	LiteralDate
-	LiteralOther
-)
-
-// Strings.
-const (
-	LiteralString TokenType = 3100 + iota
-	LiteralStringAffix
-	LiteralStringAtom
-	LiteralStringBacktick
-	LiteralStringBoolean
-	LiteralStringChar
-	LiteralStringDelimiter
-	LiteralStringDoc
-	LiteralStringDouble
-	LiteralStringEscape
-	LiteralStringHeredoc
-	LiteralStringInterpol
-	LiteralStringName
-	LiteralStringOther
-	LiteralStringRegex
-	LiteralStringSingle
-	LiteralStringSymbol
-)
-
-// Literals.
-const (
-	LiteralNumber TokenType = 3200 + iota
-	LiteralNumberBin
-	LiteralNumberFloat
-	LiteralNumberHex
-	LiteralNumberInteger
-	LiteralNumberIntegerLong
-	LiteralNumberOct
-)
-
-// Operators.
-const (
-	Operator TokenType = 4000 + iota
-	OperatorWord
-)
-
-// Punctuation.
-const (
-	Punctuation TokenType = 5000 + iota
-)
-
-// Comments.
-const (
-	Comment TokenType = 6000 + iota
-	CommentHashbang
-	CommentMultiline
-	CommentSingle
-	CommentSpecial
-)
-
-// Preprocessor "comments".
-const (
-	CommentPreproc TokenType = 6100 + iota
-	CommentPreprocFile
-)
-
-// Generic tokens.
-const (
-	Generic TokenType = 7000 + iota
-	GenericDeleted
-	GenericEmph
-	GenericError
-	GenericHeading
-	GenericInserted
-	GenericOutput
-	GenericPrompt
-	GenericStrong
-	GenericSubheading
-	GenericTraceback
-	GenericUnderline
-)
-
-// Text.
-const (
-	Text TokenType = 8000 + iota
-	TextWhitespace
-	TextSymbol
-	TextPunctuation
-)
-
-// Aliases.
-const (
-	Whitespace = TextWhitespace
-
-	Date = LiteralDate
-
-	String          = LiteralString
-	StringAffix     = LiteralStringAffix
-	StringBacktick  = LiteralStringBacktick
-	StringChar      = LiteralStringChar
-	StringDelimiter = LiteralStringDelimiter
-	StringDoc       = LiteralStringDoc
-	StringDouble    = LiteralStringDouble
-	StringEscape    = LiteralStringEscape
-	StringHeredoc   = LiteralStringHeredoc
-	StringInterpol  = LiteralStringInterpol
-	StringOther     = LiteralStringOther
-	StringRegex     = LiteralStringRegex
-	StringSingle    = LiteralStringSingle
-	StringSymbol    = LiteralStringSymbol
-
-	Number            = LiteralNumber
-	NumberBin         = LiteralNumberBin
-	NumberFloat       = LiteralNumberFloat
-	NumberHex         = LiteralNumberHex
-	NumberInteger     = LiteralNumberInteger
-	NumberIntegerLong = LiteralNumberIntegerLong
-	NumberOct         = LiteralNumberOct
-)
-
-var (
-	StandardTypes = map[TokenType]string{
-		Background:       "bg",
-		PreWrapper:       "chroma",
-		Line:             "line",
-		LineNumbers:      "ln",
-		LineNumbersTable: "lnt",
-		LineHighlight:    "hl",
-		LineTable:        "lntable",
-		LineTableTD:      "lntd",
-		CodeLine:         "cl",
-		Text:             "",
-		Whitespace:       "w",
-		Error:            "err",
-		Other:            "x",
-		// I have no idea what this is used for...
-		// Escape:     "esc",
-
-		Keyword:            "k",
-		KeywordConstant:    "kc",
-		KeywordDeclaration: "kd",
-		KeywordNamespace:   "kn",
-		KeywordPseudo:      "kp",
-		KeywordReserved:    "kr",
-		KeywordType:        "kt",
-
-		Name:                 "n",
-		NameAttribute:        "na",
-		NameBuiltin:          "nb",
-		NameBuiltinPseudo:    "bp",
-		NameClass:            "nc",
-		NameConstant:         "no",
-		NameDecorator:        "nd",
-		NameEntity:           "ni",
-		NameException:        "ne",
-		NameFunction:         "nf",
-		NameFunctionMagic:    "fm",
-		NameProperty:         "py",
-		NameLabel:            "nl",
-		NameNamespace:        "nn",
-		NameOther:            "nx",
-		NameTag:              "nt",
-		NameVariable:         "nv",
-		NameVariableClass:    "vc",
-		NameVariableGlobal:   "vg",
-		NameVariableInstance: "vi",
-		NameVariableMagic:    "vm",
-
-		Literal:     "l",
-		LiteralDate: "ld",
-
-		String:          "s",
-		StringAffix:     "sa",
-		StringBacktick:  "sb",
-		StringChar:      "sc",
-		StringDelimiter: "dl",
-		StringDoc:       "sd",
-		StringDouble:    "s2",
-		StringEscape:    "se",
-		StringHeredoc:   "sh",
-		StringInterpol:  "si",
-		StringOther:     "sx",
-		StringRegex:     "sr",
-		StringSingle:    "s1",
-		StringSymbol:    "ss",
-
-		Number:            "m",
-		NumberBin:         "mb",
-		NumberFloat:       "mf",
-		NumberHex:         "mh",
-		NumberInteger:     "mi",
-		NumberIntegerLong: "il",
-		NumberOct:         "mo",
-
-		Operator:     "o",
-		OperatorWord: "ow",
-
-		Punctuation: "p",
-
-		Comment:            "c",
-		CommentHashbang:    "ch",
-		CommentMultiline:   "cm",
-		CommentPreproc:     "cp",
-		CommentPreprocFile: "cpf",
-		CommentSingle:      "c1",
-		CommentSpecial:     "cs",
-
-		Generic:           "g",
-		GenericDeleted:    "gd",
-		GenericEmph:       "ge",
-		GenericError:      "gr",
-		GenericHeading:    "gh",
-		GenericInserted:   "gi",
-		GenericOutput:     "go",
-		GenericPrompt:     "gp",
-		GenericStrong:     "gs",
-		GenericSubheading: "gu",
-		GenericTraceback:  "gt",
-		GenericUnderline:  "gl",
-	}
-)
-
-func (t TokenType) Parent() TokenType {
-	if t%100 != 0 {
-		return t / 100 * 100
-	}
-	if t%1000 != 0 {
-		return t / 1000 * 1000
-	}
-	return 0
-}
-
-func (t TokenType) Category() TokenType {
-	return t / 1000 * 1000
-}
-
-func (t TokenType) SubCategory() TokenType {
-	return t / 100 * 100
-}
-
-func (t TokenType) InCategory(other TokenType) bool {
-	return t/1000 == other/1000
-}
-
-func (t TokenType) InSubCategory(other TokenType) bool {
-	return t/100 == other/100
-}
-
-func (t TokenType) Emit(groups []string, _ *LexerState) Iterator {
-	return Literator(Token{Type: t, Value: groups[0]})
-}
-
-func (t TokenType) EmitterKind() string          { return "token" }
-func (t TokenType) MarshalText() ([]byte, error) { return []byte(t.String()), nil }
-func (t *TokenType) UnmarshalText(data []byte) error {
-	key := string(data)
-	for tt, text := range _TokenType_map {
-		if text == key {
-			*t = tt
-			return nil
-		}
-	}
-	return fmt.Errorf("unknown TokenType %q", data)
-}
Index: trunk/vendor/github.com/dlclark/regexp2/.gitignore
===================================================================
--- trunk/vendor/github.com/dlclark/regexp2/.gitignore	(revision 67)
+++ 	(revision )
@@ -1,27 +1,0 @@
-# Compiled Object files, Static and Dynamic libs (Shared Objects)
-*.o
-*.a
-*.so
-
-# Folders
-_obj
-_test
-
-# Architecture specific extensions/prefixes
-*.[568vq]
-[568vq].out
-
-*.cgo1.go
-*.cgo2.c
-_cgo_defun.c
-_cgo_gotypes.go
-_cgo_export.*
-
-_testmain.go
-
-*.exe
-*.test
-*.prof
-*.out
-
-.DS_Store
Index: trunk/vendor/github.com/dlclark/regexp2/.travis.yml
===================================================================
--- trunk/vendor/github.com/dlclark/regexp2/.travis.yml	(revision 67)
+++ 	(revision )
@@ -1,5 +1,0 @@
-language: go
-
-go:
-  - 1.9
-  - tip
Index: trunk/vendor/github.com/dlclark/regexp2/ATTRIB
===================================================================
--- trunk/vendor/github.com/dlclark/regexp2/ATTRIB	(revision 67)
+++ 	(revision )
@@ -1,133 +1,0 @@
-============
-These pieces of code were ported from dotnet/corefx:
-
-syntax/charclass.go (from RegexCharClass.cs): ported to use the built-in Go unicode classes.  Canonicalize is 
-    a direct port, but most of the other code required large changes because the C# implementation 
-    used a string to represent the CharSet data structure and I cleaned that up in my implementation.
-
-syntax/code.go (from RegexCode.cs): ported literally with various cleanups and layout to make it more Go-ish.
-
-syntax/escape.go (from RegexParser.cs): ported Escape method and added some optimizations.  Unescape is inspired by 
-    the C# implementation but couldn't be directly ported because of the lack of do-while syntax in Go.
-
-syntax/parser.go (from RegexpParser.cs and RegexOptions.cs): ported parser struct and associated methods as 
-    literally as possible. Several language differences required changes.  E.g. lack pre/post-fix increments as 
-    expressions, lack of do-while loops, lack of overloads, etc.
-
-syntax/prefix.go (from RegexFCD.cs and RegexBoyerMoore.cs): ported as literally as possible and added support
-    for unicode chars that are longer than the 16-bit char in C# for the 32-bit rune in Go.
-
-syntax/replacerdata.go (from RegexReplacement.cs): conceptually ported and re-organized to handle differences 
-    in charclass implementation, and fix odd code layout between RegexParser.cs, Regex.cs, and RegexReplacement.cs.
-
-syntax/tree.go (from RegexTree.cs and RegexNode.cs): ported literally as possible.
-
-syntax/writer.go (from RegexWriter.cs): ported literally with minor changes to make it more Go-ish.
-
-match.go (from RegexMatch.cs): ported, simplified, and changed to handle Go's lack of inheritence.
-
-regexp.go (from Regex.cs and RegexOptions.cs): conceptually serves the same "starting point", but is simplified 
-    and changed to handle differences in C# strings and Go strings/runes.  
-
-replace.go (from RegexReplacement.cs): ported closely and then cleaned up to combine the MatchEvaluator and 
-    simple string replace implementations.
-
-runner.go (from RegexRunner.cs): ported literally as possible.
-
-regexp_test.go (from CaptureTests.cs and GroupNamesAndNumbers.cs): conceptually ported, but the code was 
-    manually structured like Go tests.
-
-replace_test.go (from RegexReplaceStringTest0.cs): conceptually ported
-
-rtl_test.go (from RightToLeft.cs): conceptually ported
----
-dotnet/corefx was released under this license:
-
-The MIT License (MIT)
-
-Copyright (c) Microsoft Corporation
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
-
-============
-These pieces of code are copied from the Go framework:
-
-- The overall directory structure of regexp2 was inspired by the Go runtime regexp package.
-- The optimization in the escape method of syntax/escape.go is from the Go runtime QuoteMeta() func in regexp/regexp.go
-- The method signatures in regexp.go are designed to match the Go framework regexp methods closely
-- func regexp2.MustCompile and func quote are almost identifical to the regexp package versions
-- BenchmarkMatch* and TestProgramTooLong* funcs in regexp_performance_test.go were copied from the framework 
-    regexp/exec_test.go
----
-The Go framework was released under this license:
-
-Copyright (c) 2012 The Go Authors. All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are
-met:
-
-   * Redistributions of source code must retain the above copyright
-notice, this list of conditions and the following disclaimer.
-   * Redistributions in binary form must reproduce the above
-copyright notice, this list of conditions and the following disclaimer
-in the documentation and/or other materials provided with the
-distribution.
-   * Neither the name of Google Inc. nor the names of its
-contributors may be used to endorse or promote products derived from
-this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-============
-Some test data were gathered from the Mono project.
-
-regexp_mono_test.go: ported from https://github.com/mono/mono/blob/master/mcs/class/System/Test/System.Text.RegularExpressions/PerlTrials.cs
----
-Mono tests released under this license:
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
Index: trunk/vendor/github.com/dlclark/regexp2/LICENSE
===================================================================
--- trunk/vendor/github.com/dlclark/regexp2/LICENSE	(revision 67)
+++ 	(revision )
@@ -1,21 +1,0 @@
-The MIT License (MIT)
-
-Copyright (c) Doug Clark
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
Index: trunk/vendor/github.com/dlclark/regexp2/README.md
===================================================================
--- trunk/vendor/github.com/dlclark/regexp2/README.md	(revision 67)
+++ 	(revision )
@@ -1,83 +1,0 @@
-# regexp2 - full featured regular expressions for Go
-Regexp2 is a feature-rich RegExp engine for Go.  It doesn't have constant time guarantees like the built-in `regexp` package, but it allows backtracking and is compatible with Perl5 and .NET.  You'll likely be better off with the RE2 engine from the `regexp` package and should only use this if you need to write very complex patterns or require compatibility with .NET.
-
-## Basis of the engine
-The engine is ported from the .NET framework's System.Text.RegularExpressions.Regex engine.  That engine was open sourced in 2015 under the MIT license.  There are some fundamental differences between .NET strings and Go strings that required a bit of borrowing from the Go framework regex engine as well.  I cleaned up a couple of the dirtier bits during the port (regexcharclass.cs was terrible), but the parse tree, code emmitted, and therefore patterns matched should be identical.
-
-## Installing
-This is a go-gettable library, so install is easy:
-
-    go get github.com/dlclark/regexp2/...
-
-## Usage
-Usage is similar to the Go `regexp` package.  Just like in `regexp`, you start by converting a regex into a state machine via the `Compile` or `MustCompile` methods.  They ultimately do the same thing, but `MustCompile` will panic if the regex is invalid.  You can then use the provided `Regexp` struct to find matches repeatedly.  A `Regexp` struct is safe to use across goroutines.
-
-```go
-re := regexp2.MustCompile(`Your pattern`, 0)
-if isMatch, _ := re.MatchString(`Something to match`); isMatch {
-    //do something
-}
-```
-
-The only error that the `*Match*` methods *should* return is a Timeout if you set the `re.MatchTimeout` field.  Any other error is a bug in the `regexp2` package.  If you need more details about capture groups in a match then use the `FindStringMatch` method, like so:
-
-```go
-if m, _ := re.FindStringMatch(`Something to match`); m != nil {
-    // the whole match is always group 0
-    fmt.Printf("Group 0: %v\n", m.String())
-
-    // you can get all the groups too
-    gps := m.Groups()
-
-    // a group can be captured multiple times, so each cap is separately addressable
-    fmt.Printf("Group 1, first capture", gps[1].Captures[0].String())
-    fmt.Printf("Group 1, second capture", gps[1].Captures[1].String())
-}
-```
-
-Group 0 is embedded in the Match.  Group 0 is an automatically-assigned group that encompasses the whole pattern.  This means that `m.String()` is the same as `m.Group.String()` and `m.Groups()[0].String()`
-
-The __last__ capture is embedded in each group, so `g.String()` will return the same thing as `g.Capture.String()` and  `g.Captures[len(g.Captures)-1].String()`.
-
-## Compare `regexp` and `regexp2`
-| Category | regexp | regexp2 |
-| --- | --- | --- |
-| Catastrophic backtracking possible | no, constant execution time guarantees | yes, if your pattern is at risk you can use the `re.MatchTimeout` field |
-| Python-style capture groups `(?P<name>re)` | yes | no (yes in RE2 compat mode) |
-| .NET-style capture groups `(?<name>re)` or `(?'name're)` | no | yes |
-| comments `(?#comment)` | no | yes |
-| branch numbering reset `(?\|a\|b)` | no | no |
-| possessive match `(?>re)` | no | yes |
-| positive lookahead `(?=re)` | no | yes |
-| negative lookahead `(?!re)` | no | yes |
-| positive lookbehind `(?<=re)` | no | yes |
-| negative lookbehind `(?<!re)` | no | yes |
-| back reference `\1` | no | yes |
-| named back reference `\k'name'` | no | yes |
-| named ascii character class `[[:foo:]]`| yes | no (yes in RE2 compat mode) |
-| conditionals `(?(expr)yes\|no)` | no | yes |
-
-## RE2 compatibility mode
-The default behavior of `regexp2` is to match the .NET regexp engine, however the `RE2` option is provided to change the parsing to increase compatibility with RE2.  Using the `RE2` option when compiling a regexp will not take away any features, but will change the following behaviors:
-* add support for named ascii character classes (e.g. `[[:foo:]]`)
-* add support for python-style capture groups (e.g. `(P<name>re)`)
-* change singleline behavior for `$` to only match end of string (like RE2) (see [#24](https://github.com/dlclark/regexp2/issues/24))
- 
-```go
-re := regexp2.MustCompile(`Your RE2-compatible pattern`, regexp2.RE2)
-if isMatch, _ := re.MatchString(`Something to match`); isMatch {
-    //do something
-}
-```
-
-This feature is a work in progress and I'm open to ideas for more things to put here (maybe more relaxed character escaping rules?).
-
-
-## Library features that I'm still working on
-- Regex split
-
-## Potential bugs
-I've run a battery of tests against regexp2 from various sources and found the debug output matches the .NET engine, but .NET and Go handle strings very differently.  I've attempted to handle these differences, but most of my testing deals with basic ASCII with a little bit of multi-byte Unicode.  There's a chance that there are bugs in the string handling related to character sets with supplementary Unicode chars.  Right-to-Left support is coded, but not well tested either.
-
-## Find a bug?
-I'm open to new issues and pull requests with tests if you find something odd!
Index: trunk/vendor/github.com/dlclark/regexp2/match.go
===================================================================
--- trunk/vendor/github.com/dlclark/regexp2/match.go	(revision 67)
+++ 	(revision )
@@ -1,347 +1,0 @@
-package regexp2
-
-import (
-	"bytes"
-	"fmt"
-)
-
-// Match is a single regex result match that contains groups and repeated captures
-// 	-Groups
-//    -Capture
-type Match struct {
-	Group //embeded group 0
-
-	regex       *Regexp
-	otherGroups []Group
-
-	// input to the match
-	textpos   int
-	textstart int
-
-	capcount   int
-	caps       []int
-	sparseCaps map[int]int
-
-	// output from the match
-	matches    [][]int
-	matchcount []int
-
-	// whether we've done any balancing with this match.  If we
-	// have done balancing, we'll need to do extra work in Tidy().
-	balancing bool
-}
-
-// Group is an explicit or implit (group 0) matched group within the pattern
-type Group struct {
-	Capture // the last capture of this group is embeded for ease of use
-
-	Name     string    // group name
-	Captures []Capture // captures of this group
-}
-
-// Capture is a single capture of text within the larger original string
-type Capture struct {
-	// the original string
-	text []rune
-	// the position in the original string where the first character of
-	// captured substring was found.
-	Index int
-	// the length of the captured substring.
-	Length int
-}
-
-// String returns the captured text as a String
-func (c *Capture) String() string {
-	return string(c.text[c.Index : c.Index+c.Length])
-}
-
-// Runes returns the captured text as a rune slice
-func (c *Capture) Runes() []rune {
-	return c.text[c.Index : c.Index+c.Length]
-}
-
-func newMatch(regex *Regexp, capcount int, text []rune, startpos int) *Match {
-	m := Match{
-		regex:      regex,
-		matchcount: make([]int, capcount),
-		matches:    make([][]int, capcount),
-		textstart:  startpos,
-		balancing:  false,
-	}
-	m.Name = "0"
-	m.text = text
-	m.matches[0] = make([]int, 2)
-	return &m
-}
-
-func newMatchSparse(regex *Regexp, caps map[int]int, capcount int, text []rune, startpos int) *Match {
-	m := newMatch(regex, capcount, text, startpos)
-	m.sparseCaps = caps
-	return m
-}
-
-func (m *Match) reset(text []rune, textstart int) {
-	m.text = text
-	m.textstart = textstart
-	for i := 0; i < len(m.matchcount); i++ {
-		m.matchcount[i] = 0
-	}
-	m.balancing = false
-}
-
-func (m *Match) tidy(textpos int) {
-
-	interval := m.matches[0]
-	m.Index = interval[0]
-	m.Length = interval[1]
-	m.textpos = textpos
-	m.capcount = m.matchcount[0]
-	//copy our root capture to the list
-	m.Group.Captures = []Capture{m.Group.Capture}
-
-	if m.balancing {
-		// The idea here is that we want to compact all of our unbalanced captures.  To do that we
-		// use j basically as a count of how many unbalanced captures we have at any given time
-		// (really j is an index, but j/2 is the count).  First we skip past all of the real captures
-		// until we find a balance captures.  Then we check each subsequent entry.  If it's a balance
-		// capture (it's negative), we decrement j.  If it's a real capture, we increment j and copy
-		// it down to the last free position.
-		for cap := 0; cap < len(m.matchcount); cap++ {
-			limit := m.matchcount[cap] * 2
-			matcharray := m.matches[cap]
-
-			var i, j int
-
-			for i = 0; i < limit; i++ {
-				if matcharray[i] < 0 {
-					break
-				}
-			}
-
-			for j = i; i < limit; i++ {
-				if matcharray[i] < 0 {
-					// skip negative values
-					j--
-				} else {
-					// but if we find something positive (an actual capture), copy it back to the last
-					// unbalanced position.
-					if i != j {
-						matcharray[j] = matcharray[i]
-					}
-					j++
-				}
-			}
-
-			m.matchcount[cap] = j / 2
-		}
-
-		m.balancing = false
-	}
-}
-
-// isMatched tells if a group was matched by capnum
-func (m *Match) isMatched(cap int) bool {
-	return cap < len(m.matchcount) && m.matchcount[cap] > 0 && m.matches[cap][m.matchcount[cap]*2-1] != (-3+1)
-}
-
-// matchIndex returns the index of the last specified matched group by capnum
-func (m *Match) matchIndex(cap int) int {
-	i := m.matches[cap][m.matchcount[cap]*2-2]
-	if i >= 0 {
-		return i
-	}
-
-	return m.matches[cap][-3-i]
-}
-
-// matchLength returns the length of the last specified matched group by capnum
-func (m *Match) matchLength(cap int) int {
-	i := m.matches[cap][m.matchcount[cap]*2-1]
-	if i >= 0 {
-		return i
-	}
-
-	return m.matches[cap][-3-i]
-}
-
-// Nonpublic builder: add a capture to the group specified by "c"
-func (m *Match) addMatch(c, start, l int) {
-
-	if m.matches[c] == nil {
-		m.matches[c] = make([]int, 2)
-	}
-
-	capcount := m.matchcount[c]
-
-	if capcount*2+2 > len(m.matches[c]) {
-		oldmatches := m.matches[c]
-		newmatches := make([]int, capcount*8)
-		copy(newmatches, oldmatches[:capcount*2])
-		m.matches[c] = newmatches
-	}
-
-	m.matches[c][capcount*2] = start
-	m.matches[c][capcount*2+1] = l
-	m.matchcount[c] = capcount + 1
-	//log.Printf("addMatch: c=%v, i=%v, l=%v ... matches: %v", c, start, l, m.matches)
-}
-
-// Nonpublic builder: Add a capture to balance the specified group.  This is used by the
-//                     balanced match construct. (?<foo-foo2>...)
-//
-// If there were no such thing as backtracking, this would be as simple as calling RemoveMatch(c).
-// However, since we have backtracking, we need to keep track of everything.
-func (m *Match) balanceMatch(c int) {
-	m.balancing = true
-
-	// we'll look at the last capture first
-	capcount := m.matchcount[c]
-	target := capcount*2 - 2
-
-	// first see if it is negative, and therefore is a reference to the next available
-	// capture group for balancing.  If it is, we'll reset target to point to that capture.
-	if m.matches[c][target] < 0 {
-		target = -3 - m.matches[c][target]
-	}
-
-	// move back to the previous capture
-	target -= 2
-
-	// if the previous capture is a reference, just copy that reference to the end.  Otherwise, point to it.
-	if target >= 0 && m.matches[c][target] < 0 {
-		m.addMatch(c, m.matches[c][target], m.matches[c][target+1])
-	} else {
-		m.addMatch(c, -3-target, -4-target /* == -3 - (target + 1) */)
-	}
-}
-
-// Nonpublic builder: removes a group match by capnum
-func (m *Match) removeMatch(c int) {
-	m.matchcount[c]--
-}
-
-// GroupCount returns the number of groups this match has matched
-func (m *Match) GroupCount() int {
-	return len(m.matchcount)
-}
-
-// GroupByName returns a group based on the name of the group, or nil if the group name does not exist
-func (m *Match) GroupByName(name string) *Group {
-	num := m.regex.GroupNumberFromName(name)
-	if num < 0 {
-		return nil
-	}
-	return m.GroupByNumber(num)
-}
-
-// GroupByNumber returns a group based on the number of the group, or nil if the group number does not exist
-func (m *Match) GroupByNumber(num int) *Group {
-	// check our sparse map
-	if m.sparseCaps != nil {
-		if newNum, ok := m.sparseCaps[num]; ok {
-			num = newNum
-		}
-	}
-	if num >= len(m.matchcount) || num < 0 {
-		return nil
-	}
-
-	if num == 0 {
-		return &m.Group
-	}
-
-	m.populateOtherGroups()
-
-	return &m.otherGroups[num-1]
-}
-
-// Groups returns all the capture groups, starting with group 0 (the full match)
-func (m *Match) Groups() []Group {
-	m.populateOtherGroups()
-	g := make([]Group, len(m.otherGroups)+1)
-	g[0] = m.Group
-	copy(g[1:], m.otherGroups)
-	return g
-}
-
-func (m *Match) populateOtherGroups() {
-	// Construct all the Group objects first time called
-	if m.otherGroups == nil {
-		m.otherGroups = make([]Group, len(m.matchcount)-1)
-		for i := 0; i < len(m.otherGroups); i++ {
-			m.otherGroups[i] = newGroup(m.regex.GroupNameFromNumber(i+1), m.text, m.matches[i+1], m.matchcount[i+1])
-		}
-	}
-}
-
-func (m *Match) groupValueAppendToBuf(groupnum int, buf *bytes.Buffer) {
-	c := m.matchcount[groupnum]
-	if c == 0 {
-		return
-	}
-
-	matches := m.matches[groupnum]
-
-	index := matches[(c-1)*2]
-	last := index + matches[(c*2)-1]
-
-	for ; index < last; index++ {
-		buf.WriteRune(m.text[index])
-	}
-}
-
-func newGroup(name string, text []rune, caps []int, capcount int) Group {
-	g := Group{}
-	g.text = text
-	if capcount > 0 {
-		g.Index = caps[(capcount-1)*2]
-		g.Length = caps[(capcount*2)-1]
-	}
-	g.Name = name
-	g.Captures = make([]Capture, capcount)
-	for i := 0; i < capcount; i++ {
-		g.Captures[i] = Capture{
-			text:   text,
-			Index:  caps[i*2],
-			Length: caps[i*2+1],
-		}
-	}
-	//log.Printf("newGroup! capcount %v, %+v", capcount, g)
-
-	return g
-}
-
-func (m *Match) dump() string {
-	buf := &bytes.Buffer{}
-	buf.WriteRune('\n')
-	if len(m.sparseCaps) > 0 {
-		for k, v := range m.sparseCaps {
-			fmt.Fprintf(buf, "Slot %v -> %v\n", k, v)
-		}
-	}
-
-	for i, g := range m.Groups() {
-		fmt.Fprintf(buf, "Group %v (%v), %v caps:\n", i, g.Name, len(g.Captures))
-
-		for _, c := range g.Captures {
-			fmt.Fprintf(buf, "  (%v, %v) %v\n", c.Index, c.Length, c.String())
-		}
-	}
-	/*
-		for i := 0; i < len(m.matchcount); i++ {
-			fmt.Fprintf(buf, "\nGroup %v (%v):\n", i, m.regex.GroupNameFromNumber(i))
-
-			for j := 0; j < m.matchcount[i]; j++ {
-				text := ""
-
-				if m.matches[i][j*2] >= 0 {
-					start := m.matches[i][j*2]
-					text = m.text[start : start+m.matches[i][j*2+1]]
-				}
-
-				fmt.Fprintf(buf, "  (%v, %v) %v\n", m.matches[i][j*2], m.matches[i][j*2+1], text)
-			}
-		}
-	*/
-	return buf.String()
-}
Index: trunk/vendor/github.com/dlclark/regexp2/regexp.go
===================================================================
--- trunk/vendor/github.com/dlclark/regexp2/regexp.go	(revision 67)
+++ 	(revision )
@@ -1,355 +1,0 @@
-/*
-Package regexp2 is a regexp package that has an interface similar to Go's framework regexp engine but uses a
-more feature full regex engine behind the scenes.
-
-It doesn't have constant time guarantees, but it allows backtracking and is compatible with Perl5 and .NET.
-You'll likely be better off with the RE2 engine from the regexp package and should only use this if you
-need to write very complex patterns or require compatibility with .NET.
-*/
-package regexp2
-
-import (
-	"errors"
-	"math"
-	"strconv"
-	"sync"
-	"time"
-
-	"github.com/dlclark/regexp2/syntax"
-)
-
-// Default timeout used when running regexp matches -- "forever"
-var DefaultMatchTimeout = time.Duration(math.MaxInt64)
-
-// Regexp is the representation of a compiled regular expression.
-// A Regexp is safe for concurrent use by multiple goroutines.
-type Regexp struct {
-	//timeout when trying to find matches
-	MatchTimeout time.Duration
-
-	// read-only after Compile
-	pattern string       // as passed to Compile
-	options RegexOptions // options
-
-	caps     map[int]int    // capnum->index
-	capnames map[string]int //capture group name -> index
-	capslist []string       //sorted list of capture group names
-	capsize  int            // size of the capture array
-
-	code *syntax.Code // compiled program
-
-	// cache of machines for running regexp
-	muRun  sync.Mutex
-	runner []*runner
-}
-
-// Compile parses a regular expression and returns, if successful,
-// a Regexp object that can be used to match against text.
-func Compile(expr string, opt RegexOptions) (*Regexp, error) {
-	// parse it
-	tree, err := syntax.Parse(expr, syntax.RegexOptions(opt))
-	if err != nil {
-		return nil, err
-	}
-
-	// translate it to code
-	code, err := syntax.Write(tree)
-	if err != nil {
-		return nil, err
-	}
-
-	// return it
-	return &Regexp{
-		pattern:      expr,
-		options:      opt,
-		caps:         code.Caps,
-		capnames:     tree.Capnames,
-		capslist:     tree.Caplist,
-		capsize:      code.Capsize,
-		code:         code,
-		MatchTimeout: DefaultMatchTimeout,
-	}, nil
-}
-
-// MustCompile is like Compile but panics if the expression cannot be parsed.
-// It simplifies safe initialization of global variables holding compiled regular
-// expressions.
-func MustCompile(str string, opt RegexOptions) *Regexp {
-	regexp, error := Compile(str, opt)
-	if error != nil {
-		panic(`regexp2: Compile(` + quote(str) + `): ` + error.Error())
-	}
-	return regexp
-}
-
-// Escape adds backslashes to any special characters in the input string
-func Escape(input string) string {
-	return syntax.Escape(input)
-}
-
-// Unescape removes any backslashes from previously-escaped special characters in the input string
-func Unescape(input string) (string, error) {
-	return syntax.Unescape(input)
-}
-
-// String returns the source text used to compile the regular expression.
-func (re *Regexp) String() string {
-	return re.pattern
-}
-
-func quote(s string) string {
-	if strconv.CanBackquote(s) {
-		return "`" + s + "`"
-	}
-	return strconv.Quote(s)
-}
-
-// RegexOptions impact the runtime and parsing behavior
-// for each specific regex.  They are setable in code as well
-// as in the regex pattern itself.
-type RegexOptions int32
-
-const (
-	None                    RegexOptions = 0x0
-	IgnoreCase                           = 0x0001 // "i"
-	Multiline                            = 0x0002 // "m"
-	ExplicitCapture                      = 0x0004 // "n"
-	Compiled                             = 0x0008 // "c"
-	Singleline                           = 0x0010 // "s"
-	IgnorePatternWhitespace              = 0x0020 // "x"
-	RightToLeft                          = 0x0040 // "r"
-	Debug                                = 0x0080 // "d"
-	ECMAScript                           = 0x0100 // "e"
-	RE2                                  = 0x0200 // RE2 (regexp package) compatibility mode
-)
-
-func (re *Regexp) RightToLeft() bool {
-	return re.options&RightToLeft != 0
-}
-
-func (re *Regexp) Debug() bool {
-	return re.options&Debug != 0
-}
-
-// Replace searches the input string and replaces each match found with the replacement text.
-// Count will limit the number of matches attempted and startAt will allow
-// us to skip past possible matches at the start of the input (left or right depending on RightToLeft option).
-// Set startAt and count to -1 to go through the whole string
-func (re *Regexp) Replace(input, replacement string, startAt, count int) (string, error) {
-	data, err := syntax.NewReplacerData(replacement, re.caps, re.capsize, re.capnames, syntax.RegexOptions(re.options))
-	if err != nil {
-		return "", err
-	}
-	//TODO: cache ReplacerData
-
-	return replace(re, data, nil, input, startAt, count)
-}
-
-// ReplaceFunc searches the input string and replaces each match found using the string from the evaluator
-// Count will limit the number of matches attempted and startAt will allow
-// us to skip past possible matches at the start of the input (left or right depending on RightToLeft option).
-// Set startAt and count to -1 to go through the whole string.
-func (re *Regexp) ReplaceFunc(input string, evaluator MatchEvaluator, startAt, count int) (string, error) {
-	return replace(re, nil, evaluator, input, startAt, count)
-}
-
-// FindStringMatch searches the input string for a Regexp match
-func (re *Regexp) FindStringMatch(s string) (*Match, error) {
-	// convert string to runes
-	return re.run(false, -1, getRunes(s))
-}
-
-// FindRunesMatch searches the input rune slice for a Regexp match
-func (re *Regexp) FindRunesMatch(r []rune) (*Match, error) {
-	return re.run(false, -1, r)
-}
-
-// FindStringMatchStartingAt searches the input string for a Regexp match starting at the startAt index
-func (re *Regexp) FindStringMatchStartingAt(s string, startAt int) (*Match, error) {
-	if startAt > len(s) {
-		return nil, errors.New("startAt must be less than the length of the input string")
-	}
-	r, startAt := re.getRunesAndStart(s, startAt)
-	if startAt == -1 {
-		// we didn't find our start index in the string -- that's a problem
-		return nil, errors.New("startAt must align to the start of a valid rune in the input string")
-	}
-
-	return re.run(false, startAt, r)
-}
-
-// FindRunesMatchStartingAt searches the input rune slice for a Regexp match starting at the startAt index
-func (re *Regexp) FindRunesMatchStartingAt(r []rune, startAt int) (*Match, error) {
-	return re.run(false, startAt, r)
-}
-
-// FindNextMatch returns the next match in the same input string as the match parameter.
-// Will return nil if there is no next match or if given a nil match.
-func (re *Regexp) FindNextMatch(m *Match) (*Match, error) {
-	if m == nil {
-		return nil, nil
-	}
-
-	// If previous match was empty, advance by one before matching to prevent
-	// infinite loop
-	startAt := m.textpos
-	if m.Length == 0 {
-		if m.textpos == len(m.text) {
-			return nil, nil
-		}
-
-		if re.RightToLeft() {
-			startAt--
-		} else {
-			startAt++
-		}
-	}
-	return re.run(false, startAt, m.text)
-}
-
-// MatchString return true if the string matches the regex
-// error will be set if a timeout occurs
-func (re *Regexp) MatchString(s string) (bool, error) {
-	m, err := re.run(true, -1, getRunes(s))
-	if err != nil {
-		return false, err
-	}
-	return m != nil, nil
-}
-
-func (re *Regexp) getRunesAndStart(s string, startAt int) ([]rune, int) {
-	if startAt < 0 {
-		if re.RightToLeft() {
-			r := getRunes(s)
-			return r, len(r)
-		}
-		return getRunes(s), 0
-	}
-	ret := make([]rune, len(s))
-	i := 0
-	runeIdx := -1
-	for strIdx, r := range s {
-		if strIdx == startAt {
-			runeIdx = i
-		}
-		ret[i] = r
-		i++
-	}
-	if startAt == len(s) {
-		runeIdx = i
-	}
-	return ret[:i], runeIdx
-}
-
-func getRunes(s string) []rune {
-	return []rune(s)
-}
-
-// MatchRunes return true if the runes matches the regex
-// error will be set if a timeout occurs
-func (re *Regexp) MatchRunes(r []rune) (bool, error) {
-	m, err := re.run(true, -1, r)
-	if err != nil {
-		return false, err
-	}
-	return m != nil, nil
-}
-
-// GetGroupNames Returns the set of strings used to name capturing groups in the expression.
-func (re *Regexp) GetGroupNames() []string {
-	var result []string
-
-	if re.capslist == nil {
-		result = make([]string, re.capsize)
-
-		for i := 0; i < len(result); i++ {
-			result[i] = strconv.Itoa(i)
-		}
-	} else {
-		result = make([]string, len(re.capslist))
-		copy(result, re.capslist)
-	}
-
-	return result
-}
-
-// GetGroupNumbers returns the integer group numbers corresponding to a group name.
-func (re *Regexp) GetGroupNumbers() []int {
-	var result []int
-
-	if re.caps == nil {
-		result = make([]int, re.capsize)
-
-		for i := 0; i < len(result); i++ {
-			result[i] = i
-		}
-	} else {
-		result = make([]int, len(re.caps))
-
-		for k, v := range re.caps {
-			result[v] = k
-		}
-	}
-
-	return result
-}
-
-// GroupNameFromNumber retrieves a group name that corresponds to a group number.
-// It will return "" for and unknown group number.  Unnamed groups automatically
-// receive a name that is the decimal string equivalent of its number.
-func (re *Regexp) GroupNameFromNumber(i int) string {
-	if re.capslist == nil {
-		if i >= 0 && i < re.capsize {
-			return strconv.Itoa(i)
-		}
-
-		return ""
-	}
-
-	if re.caps != nil {
-		var ok bool
-		if i, ok = re.caps[i]; !ok {
-			return ""
-		}
-	}
-
-	if i >= 0 && i < len(re.capslist) {
-		return re.capslist[i]
-	}
-
-	return ""
-}
-
-// GroupNumberFromName returns a group number that corresponds to a group name.
-// Returns -1 if the name is not a recognized group name.  Numbered groups
-// automatically get a group name that is the decimal string equivalent of its number.
-func (re *Regexp) GroupNumberFromName(name string) int {
-	// look up name if we have a hashtable of names
-	if re.capnames != nil {
-		if k, ok := re.capnames[name]; ok {
-			return k
-		}
-
-		return -1
-	}
-
-	// convert to an int if it looks like a number
-	result := 0
-	for i := 0; i < len(name); i++ {
-		ch := name[i]
-
-		if ch > '9' || ch < '0' {
-			return -1
-		}
-
-		result *= 10
-		result += int(ch - '0')
-	}
-
-	// return int if it's in range
-	if result >= 0 && result < re.capsize {
-		return result
-	}
-
-	return -1
-}
Index: trunk/vendor/github.com/dlclark/regexp2/replace.go
===================================================================
--- trunk/vendor/github.com/dlclark/regexp2/replace.go	(revision 67)
+++ 	(revision )
@@ -1,177 +1,0 @@
-package regexp2
-
-import (
-	"bytes"
-	"errors"
-
-	"github.com/dlclark/regexp2/syntax"
-)
-
-const (
-	replaceSpecials     = 4
-	replaceLeftPortion  = -1
-	replaceRightPortion = -2
-	replaceLastGroup    = -3
-	replaceWholeString  = -4
-)
-
-// MatchEvaluator is a function that takes a match and returns a replacement string to be used
-type MatchEvaluator func(Match) string
-
-// Three very similar algorithms appear below: replace (pattern),
-// replace (evaluator), and split.
-
-// Replace Replaces all occurrences of the regex in the string with the
-// replacement pattern.
-//
-// Note that the special case of no matches is handled on its own:
-// with no matches, the input string is returned unchanged.
-// The right-to-left case is split out because StringBuilder
-// doesn't handle right-to-left string building directly very well.
-func replace(regex *Regexp, data *syntax.ReplacerData, evaluator MatchEvaluator, input string, startAt, count int) (string, error) {
-	if count < -1 {
-		return "", errors.New("Count too small")
-	}
-	if count == 0 {
-		return "", nil
-	}
-
-	m, err := regex.FindStringMatchStartingAt(input, startAt)
-
-	if err != nil {
-		return "", err
-	}
-	if m == nil {
-		return input, nil
-	}
-
-	buf := &bytes.Buffer{}
-	text := m.text
-
-	if !regex.RightToLeft() {
-		prevat := 0
-		for m != nil {
-			if m.Index != prevat {
-				buf.WriteString(string(text[prevat:m.Index]))
-			}
-			prevat = m.Index + m.Length
-			if evaluator == nil {
-				replacementImpl(data, buf, m)
-			} else {
-				buf.WriteString(evaluator(*m))
-			}
-
-			count--
-			if count == 0 {
-				break
-			}
-			m, err = regex.FindNextMatch(m)
-			if err != nil {
-				return "", nil
-			}
-		}
-
-		if prevat < len(text) {
-			buf.WriteString(string(text[prevat:]))
-		}
-	} else {
-		prevat := len(text)
-		var al []string
-
-		for m != nil {
-			if m.Index+m.Length != prevat {
-				al = append(al, string(text[m.Index+m.Length:prevat]))
-			}
-			prevat = m.Index
-			if evaluator == nil {
-				replacementImplRTL(data, &al, m)
-			} else {
-				al = append(al, evaluator(*m))
-			}
-
-			count--
-			if count == 0 {
-				break
-			}
-			m, err = regex.FindNextMatch(m)
-			if err != nil {
-				return "", nil
-			}
-		}
-
-		if prevat > 0 {
-			buf.WriteString(string(text[:prevat]))
-		}
-
-		for i := len(al) - 1; i >= 0; i-- {
-			buf.WriteString(al[i])
-		}
-	}
-
-	return buf.String(), nil
-}
-
-// Given a Match, emits into the StringBuilder the evaluated
-// substitution pattern.
-func replacementImpl(data *syntax.ReplacerData, buf *bytes.Buffer, m *Match) {
-	for _, r := range data.Rules {
-
-		if r >= 0 { // string lookup
-			buf.WriteString(data.Strings[r])
-		} else if r < -replaceSpecials { // group lookup
-			m.groupValueAppendToBuf(-replaceSpecials-1-r, buf)
-		} else {
-			switch -replaceSpecials - 1 - r { // special insertion patterns
-			case replaceLeftPortion:
-				for i := 0; i < m.Index; i++ {
-					buf.WriteRune(m.text[i])
-				}
-			case replaceRightPortion:
-				for i := m.Index + m.Length; i < len(m.text); i++ {
-					buf.WriteRune(m.text[i])
-				}
-			case replaceLastGroup:
-				m.groupValueAppendToBuf(m.GroupCount()-1, buf)
-			case replaceWholeString:
-				for i := 0; i < len(m.text); i++ {
-					buf.WriteRune(m.text[i])
-				}
-			}
-		}
-	}
-}
-
-func replacementImplRTL(data *syntax.ReplacerData, al *[]string, m *Match) {
-	l := *al
-	buf := &bytes.Buffer{}
-
-	for _, r := range data.Rules {
-		buf.Reset()
-		if r >= 0 { // string lookup
-			l = append(l, data.Strings[r])
-		} else if r < -replaceSpecials { // group lookup
-			m.groupValueAppendToBuf(-replaceSpecials-1-r, buf)
-			l = append(l, buf.String())
-		} else {
-			switch -replaceSpecials - 1 - r { // special insertion patterns
-			case replaceLeftPortion:
-				for i := 0; i < m.Index; i++ {
-					buf.WriteRune(m.text[i])
-				}
-			case replaceRightPortion:
-				for i := m.Index + m.Length; i < len(m.text); i++ {
-					buf.WriteRune(m.text[i])
-				}
-			case replaceLastGroup:
-				m.groupValueAppendToBuf(m.GroupCount()-1, buf)
-			case replaceWholeString:
-				for i := 0; i < len(m.text); i++ {
-					buf.WriteRune(m.text[i])
-				}
-			}
-			l = append(l, buf.String())
-		}
-	}
-
-	*al = l
-}
Index: trunk/vendor/github.com/dlclark/regexp2/runner.go
===================================================================
--- trunk/vendor/github.com/dlclark/regexp2/runner.go	(revision 67)
+++ 	(revision )
@@ -1,1634 +1,0 @@
-package regexp2
-
-import (
-	"bytes"
-	"errors"
-	"fmt"
-	"math"
-	"strconv"
-	"strings"
-	"time"
-	"unicode"
-
-	"github.com/dlclark/regexp2/syntax"
-)
-
-type runner struct {
-	re   *Regexp
-	code *syntax.Code
-
-	runtextstart int // starting point for search
-
-	runtext    []rune // text to search
-	runtextpos int    // current position in text
-	runtextend int
-
-	// The backtracking stack.  Opcodes use this to store data regarding
-	// what they have matched and where to backtrack to.  Each "frame" on
-	// the stack takes the form of [CodePosition Data1 Data2...], where
-	// CodePosition is the position of the current opcode and
-	// the data values are all optional.  The CodePosition can be negative, and
-	// these values (also called "back2") are used by the BranchMark family of opcodes
-	// to indicate whether they are backtracking after a successful or failed
-	// match.
-	// When we backtrack, we pop the CodePosition off the stack, set the current
-	// instruction pointer to that code position, and mark the opcode
-	// with a backtracking flag ("Back").  Each opcode then knows how to
-	// handle its own data.
-	runtrack    []int
-	runtrackpos int
-
-	// This stack is used to track text positions across different opcodes.
-	// For example, in /(a*b)+/, the parentheses result in a SetMark/CaptureMark
-	// pair. SetMark records the text position before we match a*b.  Then
-	// CaptureMark uses that position to figure out where the capture starts.
-	// Opcodes which push onto this stack are always paired with other opcodes
-	// which will pop the value from it later.  A successful match should mean
-	// that this stack is empty.
-	runstack    []int
-	runstackpos int
-
-	// The crawl stack is used to keep track of captures.  Every time a group
-	// has a capture, we push its group number onto the runcrawl stack.  In
-	// the case of a balanced match, we push BOTH groups onto the stack.
-	runcrawl    []int
-	runcrawlpos int
-
-	runtrackcount int // count of states that may do backtracking
-
-	runmatch *Match // result object
-
-	ignoreTimeout       bool
-	timeout             time.Duration // timeout in milliseconds (needed for actual)
-	timeoutChecksToSkip int
-	timeoutAt           time.Time
-
-	operator        syntax.InstOp
-	codepos         int
-	rightToLeft     bool
-	caseInsensitive bool
-}
-
-// run searches for matches and can continue from the previous match
-//
-// quick is usually false, but can be true to not return matches, just put it in caches
-// textstart is -1 to start at the "beginning" (depending on Right-To-Left), otherwise an index in input
-// input is the string to search for our regex pattern
-func (re *Regexp) run(quick bool, textstart int, input []rune) (*Match, error) {
-
-	// get a cached runner
-	runner := re.getRunner()
-	defer re.putRunner(runner)
-
-	if textstart < 0 {
-		if re.RightToLeft() {
-			textstart = len(input)
-		} else {
-			textstart = 0
-		}
-	}
-
-	return runner.scan(input, textstart, quick, re.MatchTimeout)
-}
-
-// Scans the string to find the first match. Uses the Match object
-// both to feed text in and as a place to store matches that come out.
-//
-// All the action is in the Go() method. Our
-// responsibility is to load up the class members before
-// calling Go.
-//
-// The optimizer can compute a set of candidate starting characters,
-// and we could use a separate method Skip() that will quickly scan past
-// any characters that we know can't match.
-func (r *runner) scan(rt []rune, textstart int, quick bool, timeout time.Duration) (*Match, error) {
-	r.timeout = timeout
-	r.ignoreTimeout = (time.Duration(math.MaxInt64) == timeout)
-	r.runtextstart = textstart
-	r.runtext = rt
-	r.runtextend = len(rt)
-
-	stoppos := r.runtextend
-	bump := 1
-
-	if r.re.RightToLeft() {
-		bump = -1
-		stoppos = 0
-	}
-
-	r.runtextpos = textstart
-	initted := false
-
-	r.startTimeoutWatch()
-	for {
-		if r.re.Debug() {
-			//fmt.Printf("\nSearch content: %v\n", string(r.runtext))
-			fmt.Printf("\nSearch range: from 0 to %v\n", r.runtextend)
-			fmt.Printf("Firstchar search starting at %v stopping at %v\n", r.runtextpos, stoppos)
-		}
-
-		if r.findFirstChar() {
-			if err := r.checkTimeout(); err != nil {
-				return nil, err
-			}
-
-			if !initted {
-				r.initMatch()
-				initted = true
-			}
-
-			if r.re.Debug() {
-				fmt.Printf("Executing engine starting at %v\n\n", r.runtextpos)
-			}
-
-			if err := r.execute(); err != nil {
-				return nil, err
-			}
-
-			if r.runmatch.matchcount[0] > 0 {
-				// We'll return a match even if it touches a previous empty match
-				return r.tidyMatch(quick), nil
-			}
-
-			// reset state for another go
-			r.runtrackpos = len(r.runtrack)
-			r.runstackpos = len(r.runstack)
-			r.runcrawlpos = len(r.runcrawl)
-		}
-
-		// failure!
-
-		if r.runtextpos == stoppos {
-			r.tidyMatch(true)
-			return nil, nil
-		}
-
-		// Recognize leading []* and various anchors, and bump on failure accordingly
-
-		// r.bump by one and start again
-
-		r.runtextpos += bump
-	}
-	// We never get here
-}
-
-func (r *runner) execute() error {
-
-	r.goTo(0)
-
-	for {
-
-		if r.re.Debug() {
-			r.dumpState()
-		}
-
-		if err := r.checkTimeout(); err != nil {
-			return err
-		}
-
-		switch r.operator {
-		case syntax.Stop:
-			return nil
-
-		case syntax.Nothing:
-			break
-
-		case syntax.Goto:
-			r.goTo(r.operand(0))
-			continue
-
-		case syntax.Testref:
-			if !r.runmatch.isMatched(r.operand(0)) {
-				break
-			}
-			r.advance(1)
-			continue
-
-		case syntax.Lazybranch:
-			r.trackPush1(r.textPos())
-			r.advance(1)
-			continue
-
-		case syntax.Lazybranch | syntax.Back:
-			r.trackPop()
-			r.textto(r.trackPeek())
-			r.goTo(r.operand(0))
-			continue
-
-		case syntax.Setmark:
-			r.stackPush(r.textPos())
-			r.trackPush()
-			r.advance(0)
-			continue
-
-		case syntax.Nullmark:
-			r.stackPush(-1)
-			r.trackPush()
-			r.advance(0)
-			continue
-
-		case syntax.Setmark | syntax.Back, syntax.Nullmark | syntax.Back:
-			r.stackPop()
-			break
-
-		case syntax.Getmark:
-			r.stackPop()
-			r.trackPush1(r.stackPeek())
-			r.textto(r.stackPeek())
-			r.advance(0)
-			continue
-
-		case syntax.Getmark | syntax.Back:
-			r.trackPop()
-			r.stackPush(r.trackPeek())
-			break
-
-		case syntax.Capturemark:
-			if r.operand(1) != -1 && !r.runmatch.isMatched(r.operand(1)) {
-				break
-			}
-			r.stackPop()
-			if r.operand(1) != -1 {
-				r.transferCapture(r.operand(0), r.operand(1), r.stackPeek(), r.textPos())
-			} else {
-				r.capture(r.operand(0), r.stackPeek(), r.textPos())
-			}
-			r.trackPush1(r.stackPeek())
-
-			r.advance(2)
-
-			continue
-
-		case syntax.Capturemark | syntax.Back:
-			r.trackPop()
-			r.stackPush(r.trackPeek())
-			r.uncapture()
-			if r.operand(0) != -1 && r.operand(1) != -1 {
-				r.uncapture()
-			}
-
-			break
-
-		case syntax.Branchmark:
-			r.stackPop()
-
-			matched := r.textPos() - r.stackPeek()
-
-			if matched != 0 { // Nonempty match -> loop now
-				r.trackPush2(r.stackPeek(), r.textPos()) // Save old mark, textpos
-				r.stackPush(r.textPos())                 // Make new mark
-				r.goTo(r.operand(0))                     // Loop
-			} else { // Empty match -> straight now
-				r.trackPushNeg1(r.stackPeek()) // Save old mark
-				r.advance(1)                   // Straight
-			}
-			continue
-
-		case syntax.Branchmark | syntax.Back:
-			r.trackPopN(2)
-			r.stackPop()
-			r.textto(r.trackPeekN(1))      // Recall position
-			r.trackPushNeg1(r.trackPeek()) // Save old mark
-			r.advance(1)                   // Straight
-			continue
-
-		case syntax.Branchmark | syntax.Back2:
-			r.trackPop()
-			r.stackPush(r.trackPeek()) // Recall old mark
-			break                      // Backtrack
-
-		case syntax.Lazybranchmark:
-			{
-				// We hit this the first time through a lazy loop and after each
-				// successful match of the inner expression.  It simply continues
-				// on and doesn't loop.
-				r.stackPop()
-
-				oldMarkPos := r.stackPeek()
-
-				if r.textPos() != oldMarkPos { // Nonempty match -> try to loop again by going to 'back' state
-					if oldMarkPos != -1 {
-						r.trackPush2(oldMarkPos, r.textPos()) // Save old mark, textpos
-					} else {
-						r.trackPush2(r.textPos(), r.textPos())
-					}
-				} else {
-					// The inner expression found an empty match, so we'll go directly to 'back2' if we
-					// backtrack.  In this case, we need to push something on the stack, since back2 pops.
-					// However, in the case of ()+? or similar, this empty match may be legitimate, so push the text
-					// position associated with that empty match.
-					r.stackPush(oldMarkPos)
-
-					r.trackPushNeg1(r.stackPeek()) // Save old mark
-				}
-				r.advance(1)
-				continue
-			}
-
-		case syntax.Lazybranchmark | syntax.Back:
-
-			// After the first time, Lazybranchmark | syntax.Back occurs
-			// with each iteration of the loop, and therefore with every attempted
-			// match of the inner expression.  We'll try to match the inner expression,
-			// then go back to Lazybranchmark if successful.  If the inner expression
-			// fails, we go to Lazybranchmark | syntax.Back2
-
-			r.trackPopN(2)
-			pos := r.trackPeekN(1)
-			r.trackPushNeg1(r.trackPeek()) // Save old mark
-			r.stackPush(pos)               // Make new mark
-			r.textto(pos)                  // Recall position
-			r.goTo(r.operand(0))           // Loop
-			continue
-
-		case syntax.Lazybranchmark | syntax.Back2:
-			// The lazy loop has failed.  We'll do a true backtrack and
-			// start over before the lazy loop.
-			r.stackPop()
-			r.trackPop()
-			r.stackPush(r.trackPeek()) // Recall old mark
-			break
-
-		case syntax.Setcount:
-			r.stackPush2(r.textPos(), r.operand(0))
-			r.trackPush()
-			r.advance(1)
-			continue
-
-		case syntax.Nullcount:
-			r.stackPush2(-1, r.operand(0))
-			r.trackPush()
-			r.advance(1)
-			continue
-
-		case syntax.Setcount | syntax.Back:
-			r.stackPopN(2)
-			break
-
-		case syntax.Nullcount | syntax.Back:
-			r.stackPopN(2)
-			break
-
-		case syntax.Branchcount:
-			// r.stackPush:
-			//  0: Mark
-			//  1: Count
-
-			r.stackPopN(2)
-			mark := r.stackPeek()
-			count := r.stackPeekN(1)
-			matched := r.textPos() - mark
-
-			if count >= r.operand(1) || (matched == 0 && count >= 0) { // Max loops or empty match -> straight now
-				r.trackPushNeg2(mark, count) // Save old mark, count
-				r.advance(2)                 // Straight
-			} else { // Nonempty match -> count+loop now
-				r.trackPush1(mark)                 // remember mark
-				r.stackPush2(r.textPos(), count+1) // Make new mark, incr count
-				r.goTo(r.operand(0))               // Loop
-			}
-			continue
-
-		case syntax.Branchcount | syntax.Back:
-			// r.trackPush:
-			//  0: Previous mark
-			// r.stackPush:
-			//  0: Mark (= current pos, discarded)
-			//  1: Count
-			r.trackPop()
-			r.stackPopN(2)
-			if r.stackPeekN(1) > 0 { // Positive -> can go straight
-				r.textto(r.stackPeek())                           // Zap to mark
-				r.trackPushNeg2(r.trackPeek(), r.stackPeekN(1)-1) // Save old mark, old count
-				r.advance(2)                                      // Straight
-				continue
-			}
-			r.stackPush2(r.trackPeek(), r.stackPeekN(1)-1) // recall old mark, old count
-			break
-
-		case syntax.Branchcount | syntax.Back2:
-			// r.trackPush:
-			//  0: Previous mark
-			//  1: Previous count
-			r.trackPopN(2)
-			r.stackPush2(r.trackPeek(), r.trackPeekN(1)) // Recall old mark, old count
-			break                                        // Backtrack
-
-		case syntax.Lazybranchcount:
-			// r.stackPush:
-			//  0: Mark
-			//  1: Count
-
-			r.stackPopN(2)
-			mark := r.stackPeek()
-			count := r.stackPeekN(1)
-
-			if count < 0 { // Negative count -> loop now
-				r.trackPushNeg1(mark)              // Save old mark
-				r.stackPush2(r.textPos(), count+1) // Make new mark, incr count
-				r.goTo(r.operand(0))               // Loop
-			} else { // Nonneg count -> straight now
-				r.trackPush3(mark, count, r.textPos()) // Save mark, count, position
-				r.advance(2)                           // Straight
-			}
-			continue
-
-		case syntax.Lazybranchcount | syntax.Back:
-			// r.trackPush:
-			//  0: Mark
-			//  1: Count
-			//  2: r.textPos
-
-			r.trackPopN(3)
-			mark := r.trackPeek()
-			textpos := r.trackPeekN(2)
-
-			if r.trackPeekN(1) < r.operand(1) && textpos != mark { // Under limit and not empty match -> loop
-				r.textto(textpos)                        // Recall position
-				r.stackPush2(textpos, r.trackPeekN(1)+1) // Make new mark, incr count
-				r.trackPushNeg1(mark)                    // Save old mark
-				r.goTo(r.operand(0))                     // Loop
-				continue
-			} else { // Max loops or empty match -> backtrack
-				r.stackPush2(r.trackPeek(), r.trackPeekN(1)) // Recall old mark, count
-				break                                        // backtrack
-			}
-
-		case syntax.Lazybranchcount | syntax.Back2:
-			// r.trackPush:
-			//  0: Previous mark
-			// r.stackPush:
-			//  0: Mark (== current pos, discarded)
-			//  1: Count
-			r.trackPop()
-			r.stackPopN(2)
-			r.stackPush2(r.trackPeek(), r.stackPeekN(1)-1) // Recall old mark, count
-			break                                          // Backtrack
-
-		case syntax.Setjump:
-			r.stackPush2(r.trackpos(), r.crawlpos())
-			r.trackPush()
-			r.advance(0)
-			continue
-
-		case syntax.Setjump | syntax.Back:
-			r.stackPopN(2)
-			break
-
-		case syntax.Backjump:
-			// r.stackPush:
-			//  0: Saved trackpos
-			//  1: r.crawlpos
-			r.stackPopN(2)
-			r.trackto(r.stackPeek())
-
-			for r.crawlpos() != r.stackPeekN(1) {
-				r.uncapture()
-			}
-
-			break
-
-		case syntax.Forejump:
-			// r.stackPush:
-			//  0: Saved trackpos
-			//  1: r.crawlpos
-			r.stackPopN(2)
-			r.trackto(r.stackPeek())
-			r.trackPush1(r.stackPeekN(1))
-			r.advance(0)
-			continue
-
-		case syntax.Forejump | syntax.Back:
-			// r.trackPush:
-			//  0: r.crawlpos
-			r.trackPop()
-
-			for r.crawlpos() != r.trackPeek() {
-				r.uncapture()
-			}
-
-			break
-
-		case syntax.Bol:
-			if r.leftchars() > 0 && r.charAt(r.textPos()-1) != '\n' {
-				break
-			}
-			r.advance(0)
-			continue
-
-		case syntax.Eol:
-			if r.rightchars() > 0 && r.charAt(r.textPos()) != '\n' {
-				break
-			}
-			r.advance(0)
-			continue
-
-		case syntax.Boundary:
-			if !r.isBoundary(r.textPos(), 0, r.runtextend) {
-				break
-			}
-			r.advance(0)
-			continue
-
-		case syntax.Nonboundary:
-			if r.isBoundary(r.textPos(), 0, r.runtextend) {
-				break
-			}
-			r.advance(0)
-			continue
-
-		case syntax.ECMABoundary:
-			if !r.isECMABoundary(r.textPos(), 0, r.runtextend) {
-				break
-			}
-			r.advance(0)
-			continue
-
-		case syntax.NonECMABoundary:
-			if r.isECMABoundary(r.textPos(), 0, r.runtextend) {
-				break
-			}
-			r.advance(0)
-			continue
-
-		case syntax.Beginning:
-			if r.leftchars() > 0 {
-				break
-			}
-			r.advance(0)
-			continue
-
-		case syntax.Start:
-			if r.textPos() != r.textstart() {
-				break
-			}
-			r.advance(0)
-			continue
-
-		case syntax.EndZ:
-			rchars := r.rightchars()
-			if rchars > 1 {
-				break
-			}
-			// RE2 and EcmaScript define $ as "asserts position at the end of the string"
-			// PCRE/.NET adds "or before the line terminator right at the end of the string (if any)"
-			if (r.re.options & (RE2 | ECMAScript)) != 0 {
-				// RE2/Ecmascript mode
-				if rchars > 0 {
-					break
-				}
-			} else if rchars == 1 && r.charAt(r.textPos()) != '\n' {
-				// "regular" mode
-				break
-			}
-
-			r.advance(0)
-			continue
-
-		case syntax.End:
-			if r.rightchars() > 0 {
-				break
-			}
-			r.advance(0)
-			continue
-
-		case syntax.One:
-			if r.forwardchars() < 1 || r.forwardcharnext() != rune(r.operand(0)) {
-				break
-			}
-
-			r.advance(1)
-			continue
-
-		case syntax.Notone:
-			if r.forwardchars() < 1 || r.forwardcharnext() == rune(r.operand(0)) {
-				break
-			}
-
-			r.advance(1)
-			continue
-
-		case syntax.Set:
-
-			if r.forwardchars() < 1 || !r.code.Sets[r.operand(0)].CharIn(r.forwardcharnext()) {
-				break
-			}
-
-			r.advance(1)
-			continue
-
-		case syntax.Multi:
-			if !r.runematch(r.code.Strings[r.operand(0)]) {
-				break
-			}
-
-			r.advance(1)
-			continue
-
-		case syntax.Ref:
-
-			capnum := r.operand(0)
-
-			if r.runmatch.isMatched(capnum) {
-				if !r.refmatch(r.runmatch.matchIndex(capnum), r.runmatch.matchLength(capnum)) {
-					break
-				}
-			} else {
-				if (r.re.options & ECMAScript) == 0 {
-					break
-				}
-			}
-
-			r.advance(1)
-			continue
-
-		case syntax.Onerep:
-
-			c := r.operand(1)
-
-			if r.forwardchars() < c {
-				break
-			}
-
-			ch := rune(r.operand(0))
-
-			for c > 0 {
-				if r.forwardcharnext() != ch {
-					goto BreakBackward
-				}
-				c--
-			}
-
-			r.advance(2)
-			continue
-
-		case syntax.Notonerep:
-
-			c := r.operand(1)
-
-			if r.forwardchars() < c {
-				break
-			}
-			ch := rune(r.operand(0))
-
-			for c > 0 {
-				if r.forwardcharnext() == ch {
-					goto BreakBackward
-				}
-				c--
-			}
-
-			r.advance(2)
-			continue
-
-		case syntax.Setrep:
-
-			c := r.operand(1)
-
-			if r.forwardchars() < c {
-				break
-			}
-
-			set := r.code.Sets[r.operand(0)]
-
-			for c > 0 {
-				if !set.CharIn(r.forwardcharnext()) {
-					goto BreakBackward
-				}
-				c--
-			}
-
-			r.advance(2)
-			continue
-
-		case syntax.Oneloop:
-
-			c := r.operand(1)
-
-			if c > r.forwardchars() {
-				c = r.forwardchars()
-			}
-
-			ch := rune(r.operand(0))
-			i := c
-
-			for ; i > 0; i-- {
-				if r.forwardcharnext() != ch {
-					r.backwardnext()
-					break
-				}
-			}
-
-			if c > i {
-				r.trackPush2(c-i-1, r.textPos()-r.bump())
-			}
-
-			r.advance(2)
-			continue
-
-		case syntax.Notoneloop:
-
-			c := r.operand(1)
-
-			if c > r.forwardchars() {
-				c = r.forwardchars()
-			}
-
-			ch := rune(r.operand(0))
-			i := c
-
-			for ; i > 0; i-- {
-				if r.forwardcharnext() == ch {
-					r.backwardnext()
-					break
-				}
-			}
-
-			if c > i {
-				r.trackPush2(c-i-1, r.textPos()-r.bump())
-			}
-
-			r.advance(2)
-			continue
-
-		case syntax.Setloop:
-
-			c := r.operand(1)
-
-			if c > r.forwardchars() {
-				c = r.forwardchars()
-			}
-
-			set := r.code.Sets[r.operand(0)]
-			i := c
-
-			for ; i > 0; i-- {
-				if !set.CharIn(r.forwardcharnext()) {
-					r.backwardnext()
-					break
-				}
-			}
-
-			if c > i {
-				r.trackPush2(c-i-1, r.textPos()-r.bump())
-			}
-
-			r.advance(2)
-			continue
-
-		case syntax.Oneloop | syntax.Back, syntax.Notoneloop | syntax.Back:
-
-			r.trackPopN(2)
-			i := r.trackPeek()
-			pos := r.trackPeekN(1)
-
-			r.textto(pos)
-
-			if i > 0 {
-				r.trackPush2(i-1, pos-r.bump())
-			}
-
-			r.advance(2)
-			continue
-
-		case syntax.Setloop | syntax.Back:
-
-			r.trackPopN(2)
-			i := r.trackPeek()
-			pos := r.trackPeekN(1)
-
-			r.textto(pos)
-
-			if i > 0 {
-				r.trackPush2(i-1, pos-r.bump())
-			}
-
-			r.advance(2)
-			continue
-
-		case syntax.Onelazy, syntax.Notonelazy:
-
-			c := r.operand(1)
-
-			if c > r.forwardchars() {
-				c = r.forwardchars()
-			}
-
-			if c > 0 {
-				r.trackPush2(c-1, r.textPos())
-			}
-
-			r.advance(2)
-			continue
-
-		case syntax.Setlazy:
-
-			c := r.operand(1)
-
-			if c > r.forwardchars() {
-				c = r.forwardchars()
-			}
-
-			if c > 0 {
-				r.trackPush2(c-1, r.textPos())
-			}
-
-			r.advance(2)
-			continue
-
-		case syntax.Onelazy | syntax.Back:
-
-			r.trackPopN(2)
-			pos := r.trackPeekN(1)
-			r.textto(pos)
-
-			if r.forwardcharnext() != rune(r.operand(0)) {
-				break
-			}
-
-			i := r.trackPeek()
-
-			if i > 0 {
-				r.trackPush2(i-1, pos+r.bump())
-			}
-
-			r.advance(2)
-			continue
-
-		case syntax.Notonelazy | syntax.Back:
-
-			r.trackPopN(2)
-			pos := r.trackPeekN(1)
-			r.textto(pos)
-
-			if r.forwardcharnext() == rune(r.operand(0)) {
-				break
-			}
-
-			i := r.trackPeek()
-
-			if i > 0 {
-				r.trackPush2(i-1, pos+r.bump())
-			}
-
-			r.advance(2)
-			continue
-
-		case syntax.Setlazy | syntax.Back:
-
-			r.trackPopN(2)
-			pos := r.trackPeekN(1)
-			r.textto(pos)
-
-			if !r.code.Sets[r.operand(0)].CharIn(r.forwardcharnext()) {
-				break
-			}
-
-			i := r.trackPeek()
-
-			if i > 0 {
-				r.trackPush2(i-1, pos+r.bump())
-			}
-
-			r.advance(2)
-			continue
-
-		default:
-			return errors.New("unknown state in regex runner")
-		}
-
-	BreakBackward:
-		;
-
-		// "break Backward" comes here:
-		r.backtrack()
-	}
-}
-
-// increase the size of stack and track storage
-func (r *runner) ensureStorage() {
-	if r.runstackpos < r.runtrackcount*4 {
-		doubleIntSlice(&r.runstack, &r.runstackpos)
-	}
-	if r.runtrackpos < r.runtrackcount*4 {
-		doubleIntSlice(&r.runtrack, &r.runtrackpos)
-	}
-}
-
-func doubleIntSlice(s *[]int, pos *int) {
-	oldLen := len(*s)
-	newS := make([]int, oldLen*2)
-
-	copy(newS[oldLen:], *s)
-	*pos += oldLen
-	*s = newS
-}
-
-// Save a number on the longjump unrolling stack
-func (r *runner) crawl(i int) {
-	if r.runcrawlpos == 0 {
-		doubleIntSlice(&r.runcrawl, &r.runcrawlpos)
-	}
-	r.runcrawlpos--
-	r.runcrawl[r.runcrawlpos] = i
-}
-
-// Remove a number from the longjump unrolling stack
-func (r *runner) popcrawl() int {
-	val := r.runcrawl[r.runcrawlpos]
-	r.runcrawlpos++
-	return val
-}
-
-// Get the height of the stack
-func (r *runner) crawlpos() int {
-	return len(r.runcrawl) - r.runcrawlpos
-}
-
-func (r *runner) advance(i int) {
-	r.codepos += (i + 1)
-	r.setOperator(r.code.Codes[r.codepos])
-}
-
-func (r *runner) goTo(newpos int) {
-	// when branching backward or in place, ensure storage
-	if newpos <= r.codepos {
-		r.ensureStorage()
-	}
-
-	r.setOperator(r.code.Codes[newpos])
-	r.codepos = newpos
-}
-
-func (r *runner) textto(newpos int) {
-	r.runtextpos = newpos
-}
-
-func (r *runner) trackto(newpos int) {
-	r.runtrackpos = len(r.runtrack) - newpos
-}
-
-func (r *runner) textstart() int {
-	return r.runtextstart
-}
-
-func (r *runner) textPos() int {
-	return r.runtextpos
-}
-
-// push onto the backtracking stack
-func (r *runner) trackpos() int {
-	return len(r.runtrack) - r.runtrackpos
-}
-
-func (r *runner) trackPush() {
-	r.runtrackpos--
-	r.runtrack[r.runtrackpos] = r.codepos
-}
-
-func (r *runner) trackPush1(I1 int) {
-	r.runtrackpos--
-	r.runtrack[r.runtrackpos] = I1
-	r.runtrackpos--
-	r.runtrack[r.runtrackpos] = r.codepos
-}
-
-func (r *runner) trackPush2(I1, I2 int) {
-	r.runtrackpos--
-	r.runtrack[r.runtrackpos] = I1
-	r.runtrackpos--
-	r.runtrack[r.runtrackpos] = I2
-	r.runtrackpos--
-	r.runtrack[r.runtrackpos] = r.codepos
-}
-
-func (r *runner) trackPush3(I1, I2, I3 int) {
-	r.runtrackpos--
-	r.runtrack[r.runtrackpos] = I1
-	r.runtrackpos--
-	r.runtrack[r.runtrackpos] = I2
-	r.runtrackpos--
-	r.runtrack[r.runtrackpos] = I3
-	r.runtrackpos--
-	r.runtrack[r.runtrackpos] = r.codepos
-}
-
-func (r *runner) trackPushNeg1(I1 int) {
-	r.runtrackpos--
-	r.runtrack[r.runtrackpos] = I1
-	r.runtrackpos--
-	r.runtrack[r.runtrackpos] = -r.codepos
-}
-
-func (r *runner) trackPushNeg2(I1, I2 int) {
-	r.runtrackpos--
-	r.runtrack[r.runtrackpos] = I1
-	r.runtrackpos--
-	r.runtrack[r.runtrackpos] = I2
-	r.runtrackpos--
-	r.runtrack[r.runtrackpos] = -r.codepos
-}
-
-func (r *runner) backtrack() {
-	newpos := r.runtrack[r.runtrackpos]
-	r.runtrackpos++
-
-	if r.re.Debug() {
-		if newpos < 0 {
-			fmt.Printf("       Backtracking (back2) to code position %v\n", -newpos)
-		} else {
-			fmt.Printf("       Backtracking to code position %v\n", newpos)
-		}
-	}
-
-	if newpos < 0 {
-		newpos = -newpos
-		r.setOperator(r.code.Codes[newpos] | syntax.Back2)
-	} else {
-		r.setOperator(r.code.Codes[newpos] | syntax.Back)
-	}
-
-	// When branching backward, ensure storage
-	if newpos < r.codepos {
-		r.ensureStorage()
-	}
-
-	r.codepos = newpos
-}
-
-func (r *runner) setOperator(op int) {
-	r.caseInsensitive = (0 != (op & syntax.Ci))
-	r.rightToLeft = (0 != (op & syntax.Rtl))
-	r.operator = syntax.InstOp(op & ^(syntax.Rtl | syntax.Ci))
-}
-
-func (r *runner) trackPop() {
-	r.runtrackpos++
-}
-
-// pop framesize items from the backtracking stack
-func (r *runner) trackPopN(framesize int) {
-	r.runtrackpos += framesize
-}
-
-// Technically we are actually peeking at items already popped.  So if you want to
-// get and pop the top item from the stack, you do
-// r.trackPop();
-// r.trackPeek();
-func (r *runner) trackPeek() int {
-	return r.runtrack[r.runtrackpos-1]
-}
-
-// get the ith element down on the backtracking stack
-func (r *runner) trackPeekN(i int) int {
-	return r.runtrack[r.runtrackpos-i-1]
-}
-
-// Push onto the grouping stack
-func (r *runner) stackPush(I1 int) {
-	r.runstackpos--
-	r.runstack[r.runstackpos] = I1
-}
-
-func (r *runner) stackPush2(I1, I2 int) {
-	r.runstackpos--
-	r.runstack[r.runstackpos] = I1
-	r.runstackpos--
-	r.runstack[r.runstackpos] = I2
-}
-
-func (r *runner) stackPop() {
-	r.runstackpos++
-}
-
-// pop framesize items from the grouping stack
-func (r *runner) stackPopN(framesize int) {
-	r.runstackpos += framesize
-}
-
-// Technically we are actually peeking at items already popped.  So if you want to
-// get and pop the top item from the stack, you do
-// r.stackPop();
-// r.stackPeek();
-func (r *runner) stackPeek() int {
-	return r.runstack[r.runstackpos-1]
-}
-
-// get the ith element down on the grouping stack
-func (r *runner) stackPeekN(i int) int {
-	return r.runstack[r.runstackpos-i-1]
-}
-
-func (r *runner) operand(i int) int {
-	return r.code.Codes[r.codepos+i+1]
-}
-
-func (r *runner) leftchars() int {
-	return r.runtextpos
-}
-
-func (r *runner) rightchars() int {
-	return r.runtextend - r.runtextpos
-}
-
-func (r *runner) bump() int {
-	if r.rightToLeft {
-		return -1
-	}
-	return 1
-}
-
-func (r *runner) forwardchars() int {
-	if r.rightToLeft {
-		return r.runtextpos
-	}
-	return r.runtextend - r.runtextpos
-}
-
-func (r *runner) forwardcharnext() rune {
-	var ch rune
-	if r.rightToLeft {
-		r.runtextpos--
-		ch = r.runtext[r.runtextpos]
-	} else {
-		ch = r.runtext[r.runtextpos]
-		r.runtextpos++
-	}
-
-	if r.caseInsensitive {
-		return unicode.ToLower(ch)
-	}
-	return ch
-}
-
-func (r *runner) runematch(str []rune) bool {
-	var pos int
-
-	c := len(str)
-	if !r.rightToLeft {
-		if r.runtextend-r.runtextpos < c {
-			return false
-		}
-
-		pos = r.runtextpos + c
-	} else {
-		if r.runtextpos-0 < c {
-			return false
-		}
-
-		pos = r.runtextpos
-	}
-
-	if !r.caseInsensitive {
-		for c != 0 {
-			c--
-			pos--
-			if str[c] != r.runtext[pos] {
-				return false
-			}
-		}
-	} else {
-		for c != 0 {
-			c--
-			pos--
-			if str[c] != unicode.ToLower(r.runtext[pos]) {
-				return false
-			}
-		}
-	}
-
-	if !r.rightToLeft {
-		pos += len(str)
-	}
-
-	r.runtextpos = pos
-
-	return true
-}
-
-func (r *runner) refmatch(index, len int) bool {
-	var c, pos, cmpos int
-
-	if !r.rightToLeft {
-		if r.runtextend-r.runtextpos < len {
-			return false
-		}
-
-		pos = r.runtextpos + len
-	} else {
-		if r.runtextpos-0 < len {
-			return false
-		}
-
-		pos = r.runtextpos
-	}
-	cmpos = index + len
-
-	c = len
-
-	if !r.caseInsensitive {
-		for c != 0 {
-			c--
-			cmpos--
-			pos--
-			if r.runtext[cmpos] != r.runtext[pos] {
-				return false
-			}
-
-		}
-	} else {
-		for c != 0 {
-			c--
-			cmpos--
-			pos--
-
-			if unicode.ToLower(r.runtext[cmpos]) != unicode.ToLower(r.runtext[pos]) {
-				return false
-			}
-		}
-	}
-
-	if !r.rightToLeft {
-		pos += len
-	}
-
-	r.runtextpos = pos
-
-	return true
-}
-
-func (r *runner) backwardnext() {
-	if r.rightToLeft {
-		r.runtextpos++
-	} else {
-		r.runtextpos--
-	}
-}
-
-func (r *runner) charAt(j int) rune {
-	return r.runtext[j]
-}
-
-func (r *runner) findFirstChar() bool {
-
-	if 0 != (r.code.Anchors & (syntax.AnchorBeginning | syntax.AnchorStart | syntax.AnchorEndZ | syntax.AnchorEnd)) {
-		if !r.code.RightToLeft {
-			if (0 != (r.code.Anchors&syntax.AnchorBeginning) && r.runtextpos > 0) ||
-				(0 != (r.code.Anchors&syntax.AnchorStart) && r.runtextpos > r.runtextstart) {
-				r.runtextpos = r.runtextend
-				return false
-			}
-			if 0 != (r.code.Anchors&syntax.AnchorEndZ) && r.runtextpos < r.runtextend-1 {
-				r.runtextpos = r.runtextend - 1
-			} else if 0 != (r.code.Anchors&syntax.AnchorEnd) && r.runtextpos < r.runtextend {
-				r.runtextpos = r.runtextend
-			}
-		} else {
-			if (0 != (r.code.Anchors&syntax.AnchorEnd) && r.runtextpos < r.runtextend) ||
-				(0 != (r.code.Anchors&syntax.AnchorEndZ) && (r.runtextpos < r.runtextend-1 ||
-					(r.runtextpos == r.runtextend-1 && r.charAt(r.runtextpos) != '\n'))) ||
-				(0 != (r.code.Anchors&syntax.AnchorStart) && r.runtextpos < r.runtextstart) {
-				r.runtextpos = 0
-				return false
-			}
-			if 0 != (r.code.Anchors&syntax.AnchorBeginning) && r.runtextpos > 0 {
-				r.runtextpos = 0
-			}
-		}
-
-		if r.code.BmPrefix != nil {
-			return r.code.BmPrefix.IsMatch(r.runtext, r.runtextpos, 0, r.runtextend)
-		}
-
-		return true // found a valid start or end anchor
-	} else if r.code.BmPrefix != nil {
-		r.runtextpos = r.code.BmPrefix.Scan(r.runtext, r.runtextpos, 0, r.runtextend)
-
-		if r.runtextpos == -1 {
-			if r.code.RightToLeft {
-				r.runtextpos = 0
-			} else {
-				r.runtextpos = r.runtextend
-			}
-			return false
-		}
-
-		return true
-	} else if r.code.FcPrefix == nil {
-		return true
-	}
-
-	r.rightToLeft = r.code.RightToLeft
-	r.caseInsensitive = r.code.FcPrefix.CaseInsensitive
-
-	set := r.code.FcPrefix.PrefixSet
-	if set.IsSingleton() {
-		ch := set.SingletonChar()
-		for i := r.forwardchars(); i > 0; i-- {
-			if ch == r.forwardcharnext() {
-				r.backwardnext()
-				return true
-			}
-		}
-	} else {
-		for i := r.forwardchars(); i > 0; i-- {
-			n := r.forwardcharnext()
-			//fmt.Printf("%v in %v: %v\n", string(n), set.String(), set.CharIn(n))
-			if set.CharIn(n) {
-				r.backwardnext()
-				return true
-			}
-		}
-	}
-
-	return false
-}
-
-func (r *runner) initMatch() {
-	// Use a hashtable'ed Match object if the capture numbers are sparse
-
-	if r.runmatch == nil {
-		if r.re.caps != nil {
-			r.runmatch = newMatchSparse(r.re, r.re.caps, r.re.capsize, r.runtext, r.runtextstart)
-		} else {
-			r.runmatch = newMatch(r.re, r.re.capsize, r.runtext, r.runtextstart)
-		}
-	} else {
-		r.runmatch.reset(r.runtext, r.runtextstart)
-	}
-
-	// note we test runcrawl, because it is the last one to be allocated
-	// If there is an alloc failure in the middle of the three allocations,
-	// we may still return to reuse this instance, and we want to behave
-	// as if the allocations didn't occur. (we used to test _trackcount != 0)
-
-	if r.runcrawl != nil {
-		r.runtrackpos = len(r.runtrack)
-		r.runstackpos = len(r.runstack)
-		r.runcrawlpos = len(r.runcrawl)
-		return
-	}
-
-	r.initTrackCount()
-
-	tracksize := r.runtrackcount * 8
-	stacksize := r.runtrackcount * 8
-
-	if tracksize < 32 {
-		tracksize = 32
-	}
-	if stacksize < 16 {
-		stacksize = 16
-	}
-
-	r.runtrack = make([]int, tracksize)
-	r.runtrackpos = tracksize
-
-	r.runstack = make([]int, stacksize)
-	r.runstackpos = stacksize
-
-	r.runcrawl = make([]int, 32)
-	r.runcrawlpos = 32
-}
-
-func (r *runner) tidyMatch(quick bool) *Match {
-	if !quick {
-		match := r.runmatch
-
-		r.runmatch = nil
-
-		match.tidy(r.runtextpos)
-		return match
-	} else {
-		// send back our match -- it's not leaving the package, so it's safe to not clean it up
-		// this reduces allocs for frequent calls to the "IsMatch" bool-only functions
-		return r.runmatch
-	}
-}
-
-// capture captures a subexpression. Note that the
-// capnum used here has already been mapped to a non-sparse
-// index (by the code generator RegexWriter).
-func (r *runner) capture(capnum, start, end int) {
-	if end < start {
-		T := end
-		end = start
-		start = T
-	}
-
-	r.crawl(capnum)
-	r.runmatch.addMatch(capnum, start, end-start)
-}
-
-// transferCapture captures a subexpression. Note that the
-// capnum used here has already been mapped to a non-sparse
-// index (by the code generator RegexWriter).
-func (r *runner) transferCapture(capnum, uncapnum, start, end int) {
-	var start2, end2 int
-
-	// these are the two intervals that are cancelling each other
-
-	if end < start {
-		T := end
-		end = start
-		start = T
-	}
-
-	start2 = r.runmatch.matchIndex(uncapnum)
-	end2 = start2 + r.runmatch.matchLength(uncapnum)
-
-	// The new capture gets the innermost defined interval
-
-	if start >= end2 {
-		end = start
-		start = end2
-	} else if end <= start2 {
-		start = start2
-	} else {
-		if end > end2 {
-			end = end2
-		}
-		if start2 > start {
-			start = start2
-		}
-	}
-
-	r.crawl(uncapnum)
-	r.runmatch.balanceMatch(uncapnum)
-
-	if capnum != -1 {
-		r.crawl(capnum)
-		r.runmatch.addMatch(capnum, start, end-start)
-	}
-}
-
-// revert the last capture
-func (r *runner) uncapture() {
-	capnum := r.popcrawl()
-	r.runmatch.removeMatch(capnum)
-}
-
-//debug
-
-func (r *runner) dumpState() {
-	back := ""
-	if r.operator&syntax.Back != 0 {
-		back = " Back"
-	}
-	if r.operator&syntax.Back2 != 0 {
-		back += " Back2"
-	}
-	fmt.Printf("Text:  %v\nTrack: %v\nStack: %v\n       %s%s\n\n",
-		r.textposDescription(),
-		r.stackDescription(r.runtrack, r.runtrackpos),
-		r.stackDescription(r.runstack, r.runstackpos),
-		r.code.OpcodeDescription(r.codepos),
-		back)
-}
-
-func (r *runner) stackDescription(a []int, index int) string {
-	buf := &bytes.Buffer{}
-
-	fmt.Fprintf(buf, "%v/%v", len(a)-index, len(a))
-	if buf.Len() < 8 {
-		buf.WriteString(strings.Repeat(" ", 8-buf.Len()))
-	}
-
-	buf.WriteRune('(')
-	for i := index; i < len(a); i++ {
-		if i > index {
-			buf.WriteRune(' ')
-		}
-
-		buf.WriteString(strconv.Itoa(a[i]))
-	}
-
-	buf.WriteRune(')')
-
-	return buf.String()
-}
-
-func (r *runner) textposDescription() string {
-	buf := &bytes.Buffer{}
-
-	buf.WriteString(strconv.Itoa(r.runtextpos))
-
-	if buf.Len() < 8 {
-		buf.WriteString(strings.Repeat(" ", 8-buf.Len()))
-	}
-
-	if r.runtextpos > 0 {
-		buf.WriteString(syntax.CharDescription(r.runtext[r.runtextpos-1]))
-	} else {
-		buf.WriteRune('^')
-	}
-
-	buf.WriteRune('>')
-
-	for i := r.runtextpos; i < r.runtextend; i++ {
-		buf.WriteString(syntax.CharDescription(r.runtext[i]))
-	}
-	if buf.Len() >= 64 {
-		buf.Truncate(61)
-		buf.WriteString("...")
-	} else {
-		buf.WriteRune('$')
-	}
-
-	return buf.String()
-}
-
-// decide whether the pos
-// at the specified index is a boundary or not. It's just not worth
-// emitting inline code for this logic.
-func (r *runner) isBoundary(index, startpos, endpos int) bool {
-	return (index > startpos && syntax.IsWordChar(r.runtext[index-1])) !=
-		(index < endpos && syntax.IsWordChar(r.runtext[index]))
-}
-
-func (r *runner) isECMABoundary(index, startpos, endpos int) bool {
-	return (index > startpos && syntax.IsECMAWordChar(r.runtext[index-1])) !=
-		(index < endpos && syntax.IsECMAWordChar(r.runtext[index]))
-}
-
-// this seems like a comment to justify randomly picking 1000 :-P
-// We have determined this value in a series of experiments where x86 retail
-// builds (ono-lab-optimized) were run on different pattern/input pairs. Larger values
-// of TimeoutCheckFrequency did not tend to increase performance; smaller values
-// of TimeoutCheckFrequency tended to slow down the execution.
-const timeoutCheckFrequency int = 1000
-
-func (r *runner) startTimeoutWatch() {
-	if r.ignoreTimeout {
-		return
-	}
-
-	r.timeoutChecksToSkip = timeoutCheckFrequency
-	r.timeoutAt = time.Now().Add(r.timeout)
-}
-
-func (r *runner) checkTimeout() error {
-	if r.ignoreTimeout {
-		return nil
-	}
-	r.timeoutChecksToSkip--
-	if r.timeoutChecksToSkip != 0 {
-		return nil
-	}
-
-	r.timeoutChecksToSkip = timeoutCheckFrequency
-	return r.doCheckTimeout()
-}
-
-func (r *runner) doCheckTimeout() error {
-	current := time.Now()
-
-	if current.Before(r.timeoutAt) {
-		return nil
-	}
-
-	if r.re.Debug() {
-		//Debug.WriteLine("")
-		//Debug.WriteLine("RegEx match timeout occurred!")
-		//Debug.WriteLine("Specified timeout:       " + TimeSpan.FromMilliseconds(_timeout).ToString())
-		//Debug.WriteLine("Timeout check frequency: " + TimeoutCheckFrequency)
-		//Debug.WriteLine("Search pattern:          " + _runregex._pattern)
-		//Debug.WriteLine("Input:                   " + r.runtext)
-		//Debug.WriteLine("About to throw RegexMatchTimeoutException.")
-	}
-
-	return fmt.Errorf("match timeout after %v on input `%v`", r.timeout, string(r.runtext))
-}
-
-func (r *runner) initTrackCount() {
-	r.runtrackcount = r.code.TrackCount
-}
-
-// getRunner returns a run to use for matching re.
-// It uses the re's runner cache if possible, to avoid
-// unnecessary allocation.
-func (re *Regexp) getRunner() *runner {
-	re.muRun.Lock()
-	if n := len(re.runner); n > 0 {
-		z := re.runner[n-1]
-		re.runner = re.runner[:n-1]
-		re.muRun.Unlock()
-		return z
-	}
-	re.muRun.Unlock()
-	z := &runner{
-		re:   re,
-		code: re.code,
-	}
-	return z
-}
-
-// putRunner returns a runner to the re's cache.
-// There is no attempt to limit the size of the cache, so it will
-// grow to the maximum number of simultaneous matches
-// run using re.  (The cache empties when re gets garbage collected.)
-func (re *Regexp) putRunner(r *runner) {
-	re.muRun.Lock()
-	re.runner = append(re.runner, r)
-	re.muRun.Unlock()
-}
Index: trunk/vendor/github.com/dlclark/regexp2/syntax/charclass.go
===================================================================
--- trunk/vendor/github.com/dlclark/regexp2/syntax/charclass.go	(revision 67)
+++ 	(revision )
@@ -1,854 +1,0 @@
-package syntax
-
-import (
-	"bytes"
-	"encoding/binary"
-	"fmt"
-	"sort"
-	"unicode"
-	"unicode/utf8"
-)
-
-// CharSet combines start-end rune ranges and unicode categories representing a set of characters
-type CharSet struct {
-	ranges     []singleRange
-	categories []category
-	sub        *CharSet //optional subtractor
-	negate     bool
-	anything   bool
-}
-
-type category struct {
-	negate bool
-	cat    string
-}
-
-type singleRange struct {
-	first rune
-	last  rune
-}
-
-const (
-	spaceCategoryText = " "
-	wordCategoryText  = "W"
-)
-
-var (
-	ecmaSpace = []rune{0x0009, 0x000e, 0x0020, 0x0021, 0x00a0, 0x00a1, 0x1680, 0x1681, 0x2000, 0x200b, 0x2028, 0x202a, 0x202f, 0x2030, 0x205f, 0x2060, 0x3000, 0x3001, 0xfeff, 0xff00}
-	ecmaWord  = []rune{0x0030, 0x003a, 0x0041, 0x005b, 0x005f, 0x0060, 0x0061, 0x007b}
-	ecmaDigit = []rune{0x0030, 0x003a}
-)
-
-var (
-	AnyClass          = getCharSetFromOldString([]rune{0}, false)
-	ECMAAnyClass      = getCharSetFromOldString([]rune{0, 0x000a, 0x000b, 0x000d, 0x000e}, false)
-	NoneClass         = getCharSetFromOldString(nil, false)
-	ECMAWordClass     = getCharSetFromOldString(ecmaWord, false)
-	NotECMAWordClass  = getCharSetFromOldString(ecmaWord, true)
-	ECMASpaceClass    = getCharSetFromOldString(ecmaSpace, false)
-	NotECMASpaceClass = getCharSetFromOldString(ecmaSpace, true)
-	ECMADigitClass    = getCharSetFromOldString(ecmaDigit, false)
-	NotECMADigitClass = getCharSetFromOldString(ecmaDigit, true)
-
-	WordClass     = getCharSetFromCategoryString(false, false, wordCategoryText)
-	NotWordClass  = getCharSetFromCategoryString(true, false, wordCategoryText)
-	SpaceClass    = getCharSetFromCategoryString(false, false, spaceCategoryText)
-	NotSpaceClass = getCharSetFromCategoryString(true, false, spaceCategoryText)
-	DigitClass    = getCharSetFromCategoryString(false, false, "Nd")
-	NotDigitClass = getCharSetFromCategoryString(false, true, "Nd")
-)
-
-var unicodeCategories = func() map[string]*unicode.RangeTable {
-	retVal := make(map[string]*unicode.RangeTable)
-	for k, v := range unicode.Scripts {
-		retVal[k] = v
-	}
-	for k, v := range unicode.Categories {
-		retVal[k] = v
-	}
-	for k, v := range unicode.Properties {
-		retVal[k] = v
-	}
-	return retVal
-}()
-
-func getCharSetFromCategoryString(negateSet bool, negateCat bool, cats ...string) func() *CharSet {
-	if negateCat && negateSet {
-		panic("BUG!  You should only negate the set OR the category in a constant setup, but not both")
-	}
-
-	c := CharSet{negate: negateSet}
-
-	c.categories = make([]category, len(cats))
-	for i, cat := range cats {
-		c.categories[i] = category{cat: cat, negate: negateCat}
-	}
-	return func() *CharSet {
-		//make a copy each time
-		local := c
-		//return that address
-		return &local
-	}
-}
-
-func getCharSetFromOldString(setText []rune, negate bool) func() *CharSet {
-	c := CharSet{}
-	if len(setText) > 0 {
-		fillFirst := false
-		l := len(setText)
-		if negate {
-			if setText[0] == 0 {
-				setText = setText[1:]
-			} else {
-				l++
-				fillFirst = true
-			}
-		}
-
-		if l%2 == 0 {
-			c.ranges = make([]singleRange, l/2)
-		} else {
-			c.ranges = make([]singleRange, l/2+1)
-		}
-
-		first := true
-		if fillFirst {
-			c.ranges[0] = singleRange{first: 0}
-			first = false
-		}
-
-		i := 0
-		for _, r := range setText {
-			if first {
-				// lower bound in a new range
-				c.ranges[i] = singleRange{first: r}
-				first = false
-			} else {
-				c.ranges[i].last = r - 1
-				i++
-				first = true
-			}
-		}
-		if !first {
-			c.ranges[i].last = utf8.MaxRune
-		}
-	}
-
-	return func() *CharSet {
-		local := c
-		return &local
-	}
-}
-
-// Copy makes a deep copy to prevent accidental mutation of a set
-func (c CharSet) Copy() CharSet {
-	ret := CharSet{
-		anything: c.anything,
-		negate:   c.negate,
-	}
-
-	ret.ranges = append(ret.ranges, c.ranges...)
-	ret.categories = append(ret.categories, c.categories...)
-
-	if c.sub != nil {
-		sub := c.sub.Copy()
-		ret.sub = &sub
-	}
-
-	return ret
-}
-
-// gets a human-readable description for a set string
-func (c CharSet) String() string {
-	buf := &bytes.Buffer{}
-	buf.WriteRune('[')
-
-	if c.IsNegated() {
-		buf.WriteRune('^')
-	}
-
-	for _, r := range c.ranges {
-
-		buf.WriteString(CharDescription(r.first))
-		if r.first != r.last {
-			if r.last-r.first != 1 {
-				//groups that are 1 char apart skip the dash
-				buf.WriteRune('-')
-			}
-			buf.WriteString(CharDescription(r.last))
-		}
-	}
-
-	for _, c := range c.categories {
-		buf.WriteString(c.String())
-	}
-
-	if c.sub != nil {
-		buf.WriteRune('-')
-		buf.WriteString(c.sub.String())
-	}
-
-	buf.WriteRune(']')
-
-	return buf.String()
-}
-
-// mapHashFill converts a charset into a buffer for use in maps
-func (c CharSet) mapHashFill(buf *bytes.Buffer) {
-	if c.negate {
-		buf.WriteByte(0)
-	} else {
-		buf.WriteByte(1)
-	}
-
-	binary.Write(buf, binary.LittleEndian, len(c.ranges))
-	binary.Write(buf, binary.LittleEndian, len(c.categories))
-	for _, r := range c.ranges {
-		buf.WriteRune(r.first)
-		buf.WriteRune(r.last)
-	}
-	for _, ct := range c.categories {
-		buf.WriteString(ct.cat)
-		if ct.negate {
-			buf.WriteByte(1)
-		} else {
-			buf.WriteByte(0)
-		}
-	}
-
-	if c.sub != nil {
-		c.sub.mapHashFill(buf)
-	}
-}
-
-// CharIn returns true if the rune is in our character set (either ranges or categories).
-// It handles negations and subtracted sub-charsets.
-func (c CharSet) CharIn(ch rune) bool {
-	val := false
-	// in s && !s.subtracted
-
-	//check ranges
-	for _, r := range c.ranges {
-		if ch < r.first {
-			continue
-		}
-		if ch <= r.last {
-			val = true
-			break
-		}
-	}
-
-	//check categories if we haven't already found a range
-	if !val && len(c.categories) > 0 {
-		for _, ct := range c.categories {
-			// special categories...then unicode
-			if ct.cat == spaceCategoryText {
-				if unicode.IsSpace(ch) {
-					// we found a space so we're done
-					// negate means this is a "bad" thing
-					val = !ct.negate
-					break
-				} else if ct.negate {
-					val = true
-					break
-				}
-			} else if ct.cat == wordCategoryText {
-				if IsWordChar(ch) {
-					val = !ct.negate
-					break
-				} else if ct.negate {
-					val = true
-					break
-				}
-			} else if unicode.Is(unicodeCategories[ct.cat], ch) {
-				// if we're in this unicode category then we're done
-				// if negate=true on this category then we "failed" our test
-				// otherwise we're good that we found it
-				val = !ct.negate
-				break
-			} else if ct.negate {
-				val = true
-				break
-			}
-		}
-	}
-
-	// negate the whole char set
-	if c.negate {
-		val = !val
-	}
-
-	// get subtracted recurse
-	if val && c.sub != nil {
-		val = !c.sub.CharIn(ch)
-	}
-
-	//log.Printf("Char '%v' in %v == %v", string(ch), c.String(), val)
-	return val
-}
-
-func (c category) String() string {
-	switch c.cat {
-	case spaceCategoryText:
-		if c.negate {
-			return "\\S"
-		}
-		return "\\s"
-	case wordCategoryText:
-		if c.negate {
-			return "\\W"
-		}
-		return "\\w"
-	}
-	if _, ok := unicodeCategories[c.cat]; ok {
-
-		if c.negate {
-			return "\\P{" + c.cat + "}"
-		}
-		return "\\p{" + c.cat + "}"
-	}
-	return "Unknown category: " + c.cat
-}
-
-// CharDescription Produces a human-readable description for a single character.
-func CharDescription(ch rune) string {
-	/*if ch == '\\' {
-		return "\\\\"
-	}
-
-	if ch > ' ' && ch <= '~' {
-		return string(ch)
-	} else if ch == '\n' {
-		return "\\n"
-	} else if ch == ' ' {
-		return "\\ "
-	}*/
-
-	b := &bytes.Buffer{}
-	escape(b, ch, false) //fmt.Sprintf("%U", ch)
-	return b.String()
-}
-
-// According to UTS#18 Unicode Regular Expressions (http://www.unicode.org/reports/tr18/)
-// RL 1.4 Simple Word Boundaries  The class of <word_character> includes all Alphabetic
-// values from the Unicode character database, from UnicodeData.txt [UData], plus the U+200C
-// ZERO WIDTH NON-JOINER and U+200D ZERO WIDTH JOINER.
-func IsWordChar(r rune) bool {
-	//"L", "Mn", "Nd", "Pc"
-	return unicode.In(r,
-		unicode.Categories["L"], unicode.Categories["Mn"],
-		unicode.Categories["Nd"], unicode.Categories["Pc"]) || r == '\u200D' || r == '\u200C'
-	//return 'A' <= r && r <= 'Z' || 'a' <= r && r <= 'z' || '0' <= r && r <= '9' || r == '_'
-}
-
-func IsECMAWordChar(r rune) bool {
-	return unicode.In(r,
-		unicode.Categories["L"], unicode.Categories["Mn"],
-		unicode.Categories["Nd"], unicode.Categories["Pc"])
-
-	//return 'A' <= r && r <= 'Z' || 'a' <= r && r <= 'z' || '0' <= r && r <= '9' || r == '_'
-}
-
-// SingletonChar will return the char from the first range without validation.
-// It assumes you have checked for IsSingleton or IsSingletonInverse and will panic given bad input
-func (c CharSet) SingletonChar() rune {
-	return c.ranges[0].first
-}
-
-func (c CharSet) IsSingleton() bool {
-	return !c.negate && //negated is multiple chars
-		len(c.categories) == 0 && len(c.ranges) == 1 && // multiple ranges and unicode classes represent multiple chars
-		c.sub == nil && // subtraction means we've got multiple chars
-		c.ranges[0].first == c.ranges[0].last // first and last equal means we're just 1 char
-}
-
-func (c CharSet) IsSingletonInverse() bool {
-	return c.negate && //same as above, but requires negated
-		len(c.categories) == 0 && len(c.ranges) == 1 && // multiple ranges and unicode classes represent multiple chars
-		c.sub == nil && // subtraction means we've got multiple chars
-		c.ranges[0].first == c.ranges[0].last // first and last equal means we're just 1 char
-}
-
-func (c CharSet) IsMergeable() bool {
-	return !c.IsNegated() && !c.HasSubtraction()
-}
-
-func (c CharSet) IsNegated() bool {
-	return c.negate
-}
-
-func (c CharSet) HasSubtraction() bool {
-	return c.sub != nil
-}
-
-func (c CharSet) IsEmpty() bool {
-	return len(c.ranges) == 0 && len(c.categories) == 0 && c.sub == nil
-}
-
-func (c *CharSet) addDigit(ecma, negate bool, pattern string) {
-	if ecma {
-		if negate {
-			c.addRanges(NotECMADigitClass().ranges)
-		} else {
-			c.addRanges(ECMADigitClass().ranges)
-		}
-	} else {
-		c.addCategories(category{cat: "Nd", negate: negate})
-	}
-}
-
-func (c *CharSet) addChar(ch rune) {
-	c.addRange(ch, ch)
-}
-
-func (c *CharSet) addSpace(ecma, negate bool) {
-	if ecma {
-		if negate {
-			c.addRanges(NotECMASpaceClass().ranges)
-		} else {
-			c.addRanges(ECMASpaceClass().ranges)
-		}
-	} else {
-		c.addCategories(category{cat: spaceCategoryText, negate: negate})
-	}
-}
-
-func (c *CharSet) addWord(ecma, negate bool) {
-	if ecma {
-		if negate {
-			c.addRanges(NotECMAWordClass().ranges)
-		} else {
-			c.addRanges(ECMAWordClass().ranges)
-		}
-	} else {
-		c.addCategories(category{cat: wordCategoryText, negate: negate})
-	}
-}
-
-// Add set ranges and categories into ours -- no deduping or anything
-func (c *CharSet) addSet(set CharSet) {
-	if c.anything {
-		return
-	}
-	if set.anything {
-		c.makeAnything()
-		return
-	}
-	// just append here to prevent double-canon
-	c.ranges = append(c.ranges, set.ranges...)
-	c.addCategories(set.categories...)
-	c.canonicalize()
-}
-
-func (c *CharSet) makeAnything() {
-	c.anything = true
-	c.categories = []category{}
-	c.ranges = AnyClass().ranges
-}
-
-func (c *CharSet) addCategories(cats ...category) {
-	// don't add dupes and remove positive+negative
-	if c.anything {
-		// if we've had a previous positive+negative group then
-		// just return, we're as broad as we can get
-		return
-	}
-
-	for _, ct := range cats {
-		found := false
-		for _, ct2 := range c.categories {
-			if ct.cat == ct2.cat {
-				if ct.negate != ct2.negate {
-					// oposite negations...this mean we just
-					// take us as anything and move on
-					c.makeAnything()
-					return
-				}
-				found = true
-				break
-			}
-		}
-
-		if !found {
-			c.categories = append(c.categories, ct)
-		}
-	}
-}
-
-// Merges new ranges to our own
-func (c *CharSet) addRanges(ranges []singleRange) {
-	if c.anything {
-		return
-	}
-	c.ranges = append(c.ranges, ranges...)
-	c.canonicalize()
-}
-
-// Merges everything but the new ranges into our own
-func (c *CharSet) addNegativeRanges(ranges []singleRange) {
-	if c.anything {
-		return
-	}
-
-	var hi rune
-
-	// convert incoming ranges into opposites, assume they are in order
-	for _, r := range ranges {
-		if hi < r.first {
-			c.ranges = append(c.ranges, singleRange{hi, r.first - 1})
-		}
-		hi = r.last + 1
-	}
-
-	if hi < utf8.MaxRune {
-		c.ranges = append(c.ranges, singleRange{hi, utf8.MaxRune})
-	}
-
-	c.canonicalize()
-}
-
-func isValidUnicodeCat(catName string) bool {
-	_, ok := unicodeCategories[catName]
-	return ok
-}
-
-func (c *CharSet) addCategory(categoryName string, negate, caseInsensitive bool, pattern string) {
-	if !isValidUnicodeCat(categoryName) {
-		// unknown unicode category, script, or property "blah"
-		panic(fmt.Errorf("Unknown unicode category, script, or property '%v'", categoryName))
-
-	}
-
-	if caseInsensitive && (categoryName == "Ll" || categoryName == "Lu" || categoryName == "Lt") {
-		// when RegexOptions.IgnoreCase is specified then {Ll} {Lu} and {Lt} cases should all match
-		c.addCategories(
-			category{cat: "Ll", negate: negate},
-			category{cat: "Lu", negate: negate},
-			category{cat: "Lt", negate: negate})
-	}
-	c.addCategories(category{cat: categoryName, negate: negate})
-}
-
-func (c *CharSet) addSubtraction(sub *CharSet) {
-	c.sub = sub
-}
-
-func (c *CharSet) addRange(chMin, chMax rune) {
-	c.ranges = append(c.ranges, singleRange{first: chMin, last: chMax})
-	c.canonicalize()
-}
-
-func (c *CharSet) addNamedASCII(name string, negate bool) bool {
-	var rs []singleRange
-
-	switch name {
-	case "alnum":
-		rs = []singleRange{singleRange{'0', '9'}, singleRange{'A', 'Z'}, singleRange{'a', 'z'}}
-	case "alpha":
-		rs = []singleRange{singleRange{'A', 'Z'}, singleRange{'a', 'z'}}
-	case "ascii":
-		rs = []singleRange{singleRange{0, 0x7f}}
-	case "blank":
-		rs = []singleRange{singleRange{'\t', '\t'}, singleRange{' ', ' '}}
-	case "cntrl":
-		rs = []singleRange{singleRange{0, 0x1f}, singleRange{0x7f, 0x7f}}
-	case "digit":
-		c.addDigit(false, negate, "")
-	case "graph":
-		rs = []singleRange{singleRange{'!', '~'}}
-	case "lower":
-		rs = []singleRange{singleRange{'a', 'z'}}
-	case "print":
-		rs = []singleRange{singleRange{' ', '~'}}
-	case "punct": //[!-/:-@[-`{-~]
-		rs = []singleRange{singleRange{'!', '/'}, singleRange{':', '@'}, singleRange{'[', '`'}, singleRange{'{', '~'}}
-	case "space":
-		c.addSpace(true, negate)
-	case "upper":
-		rs = []singleRange{singleRange{'A', 'Z'}}
-	case "word":
-		c.addWord(true, negate)
-	case "xdigit":
-		rs = []singleRange{singleRange{'0', '9'}, singleRange{'A', 'F'}, singleRange{'a', 'f'}}
-	default:
-		return false
-	}
-
-	if len(rs) > 0 {
-		if negate {
-			c.addNegativeRanges(rs)
-		} else {
-			c.addRanges(rs)
-		}
-	}
-
-	return true
-}
-
-type singleRangeSorter []singleRange
-
-func (p singleRangeSorter) Len() int           { return len(p) }
-func (p singleRangeSorter) Less(i, j int) bool { return p[i].first < p[j].first }
-func (p singleRangeSorter) Swap(i, j int)      { p[i], p[j] = p[j], p[i] }
-
-// Logic to reduce a character class to a unique, sorted form.
-func (c *CharSet) canonicalize() {
-	var i, j int
-	var last rune
-
-	//
-	// Find and eliminate overlapping or abutting ranges
-	//
-
-	if len(c.ranges) > 1 {
-		sort.Sort(singleRangeSorter(c.ranges))
-
-		done := false
-
-		for i, j = 1, 0; ; i++ {
-			for last = c.ranges[j].last; ; i++ {
-				if i == len(c.ranges) || last == utf8.MaxRune {
-					done = true
-					break
-				}
-
-				CurrentRange := c.ranges[i]
-				if CurrentRange.first > last+1 {
-					break
-				}
-
-				if last < CurrentRange.last {
-					last = CurrentRange.last
-				}
-			}
-
-			c.ranges[j] = singleRange{first: c.ranges[j].first, last: last}
-
-			j++
-
-			if done {
-				break
-			}
-
-			if j < i {
-				c.ranges[j] = c.ranges[i]
-			}
-		}
-
-		c.ranges = append(c.ranges[:j], c.ranges[len(c.ranges):]...)
-	}
-}
-
-// Adds to the class any lowercase versions of characters already
-// in the class. Used for case-insensitivity.
-func (c *CharSet) addLowercase() {
-	if c.anything {
-		return
-	}
-	toAdd := []singleRange{}
-	for i := 0; i < len(c.ranges); i++ {
-		r := c.ranges[i]
-		if r.first == r.last {
-			lower := unicode.ToLower(r.first)
-			c.ranges[i] = singleRange{first: lower, last: lower}
-		} else {
-			toAdd = append(toAdd, r)
-		}
-	}
-
-	for _, r := range toAdd {
-		c.addLowercaseRange(r.first, r.last)
-	}
-	c.canonicalize()
-}
-
-/**************************************************************************
-    Let U be the set of Unicode character values and let L be the lowercase
-    function, mapping from U to U. To perform case insensitive matching of
-    character sets, we need to be able to map an interval I in U, say
-
-        I = [chMin, chMax] = { ch : chMin <= ch <= chMax }
-
-    to a set A such that A contains L(I) and A is contained in the union of
-    I and L(I).
-
-    The table below partitions U into intervals on which L is non-decreasing.
-    Thus, for any interval J = [a, b] contained in one of these intervals,
-    L(J) is contained in [L(a), L(b)].
-
-    It is also true that for any such J, [L(a), L(b)] is contained in the
-    union of J and L(J). This does not follow from L being non-decreasing on
-    these intervals. It follows from the nature of the L on each interval.
-    On each interval, L has one of the following forms:
-
-        (1) L(ch) = constant            (LowercaseSet)
-        (2) L(ch) = ch + offset         (LowercaseAdd)
-        (3) L(ch) = ch | 1              (LowercaseBor)
-        (4) L(ch) = ch + (ch & 1)       (LowercaseBad)
-
-    It is easy to verify that for any of these forms [L(a), L(b)] is
-    contained in the union of [a, b] and L([a, b]).
-***************************************************************************/
-
-const (
-	LowercaseSet = 0 // Set to arg.
-	LowercaseAdd = 1 // Add arg.
-	LowercaseBor = 2 // Bitwise or with 1.
-	LowercaseBad = 3 // Bitwise and with 1 and add original.
-)
-
-type lcMap struct {
-	chMin, chMax rune
-	op, data     int32
-}
-
-var lcTable = []lcMap{
-	lcMap{'\u0041', '\u005A', LowercaseAdd, 32},
-	lcMap{'\u00C0', '\u00DE', LowercaseAdd, 32},
-	lcMap{'\u0100', '\u012E', LowercaseBor, 0},
-	lcMap{'\u0130', '\u0130', LowercaseSet, 0x0069},
-	lcMap{'\u0132', '\u0136', LowercaseBor, 0},
-	lcMap{'\u0139', '\u0147', LowercaseBad, 0},
-	lcMap{'\u014A', '\u0176', LowercaseBor, 0},
-	lcMap{'\u0178', '\u0178', LowercaseSet, 0x00FF},
-	lcMap{'\u0179', '\u017D', LowercaseBad, 0},
-	lcMap{'\u0181', '\u0181', LowercaseSet, 0x0253},
-	lcMap{'\u0182', '\u0184', LowercaseBor, 0},
-	lcMap{'\u0186', '\u0186', LowercaseSet, 0x0254},
-	lcMap{'\u0187', '\u0187', LowercaseSet, 0x0188},
-	lcMap{'\u0189', '\u018A', LowercaseAdd, 205},
-	lcMap{'\u018B', '\u018B', LowercaseSet, 0x018C},
-	lcMap{'\u018E', '\u018E', LowercaseSet, 0x01DD},
-	lcMap{'\u018F', '\u018F', LowercaseSet, 0x0259},
-	lcMap{'\u0190', '\u0190', LowercaseSet, 0x025B},
-	lcMap{'\u0191', '\u0191', LowercaseSet, 0x0192},
-	lcMap{'\u0193', '\u0193', LowercaseSet, 0x0260},
-	lcMap{'\u0194', '\u0194', LowercaseSet, 0x0263},
-	lcMap{'\u0196', '\u0196', LowercaseSet, 0x0269},
-	lcMap{'\u0197', '\u0197', LowercaseSet, 0x0268},
-	lcMap{'\u0198', '\u0198', LowercaseSet, 0x0199},
-	lcMap{'\u019C', '\u019C', LowercaseSet, 0x026F},
-	lcMap{'\u019D', '\u019D', LowercaseSet, 0x0272},
-	lcMap{'\u019F', '\u019F', LowercaseSet, 0x0275},
-	lcMap{'\u01A0', '\u01A4', LowercaseBor, 0},
-	lcMap{'\u01A7', '\u01A7', LowercaseSet, 0x01A8},
-	lcMap{'\u01A9', '\u01A9', LowercaseSet, 0x0283},
-	lcMap{'\u01AC', '\u01AC', LowercaseSet, 0x01AD},
-	lcMap{'\u01AE', '\u01AE', LowercaseSet, 0x0288},
-	lcMap{'\u01AF', '\u01AF', LowercaseSet, 0x01B0},
-	lcMap{'\u01B1', '\u01B2', LowercaseAdd, 217},
-	lcMap{'\u01B3', '\u01B5', LowercaseBad, 0},
-	lcMap{'\u01B7', '\u01B7', LowercaseSet, 0x0292},
-	lcMap{'\u01B8', '\u01B8', LowercaseSet, 0x01B9},
-	lcMap{'\u01BC', '\u01BC', LowercaseSet, 0x01BD},
-	lcMap{'\u01C4', '\u01C5', LowercaseSet, 0x01C6},
-	lcMap{'\u01C7', '\u01C8', LowercaseSet, 0x01C9},
-	lcMap{'\u01CA', '\u01CB', LowercaseSet, 0x01CC},
-	lcMap{'\u01CD', '\u01DB', LowercaseBad, 0},
-	lcMap{'\u01DE', '\u01EE', LowercaseBor, 0},
-	lcMap{'\u01F1', '\u01F2', LowercaseSet, 0x01F3},
-	lcMap{'\u01F4', '\u01F4', LowercaseSet, 0x01F5},
-	lcMap{'\u01FA', '\u0216', LowercaseBor, 0},
-	lcMap{'\u0386', '\u0386', LowercaseSet, 0x03AC},
-	lcMap{'\u0388', '\u038A', LowercaseAdd, 37},
-	lcMap{'\u038C', '\u038C', LowercaseSet, 0x03CC},
-	lcMap{'\u038E', '\u038F', LowercaseAdd, 63},
-	lcMap{'\u0391', '\u03AB', LowercaseAdd, 32},
-	lcMap{'\u03E2', '\u03EE', LowercaseBor, 0},
-	lcMap{'\u0401', '\u040F', LowercaseAdd, 80},
-	lcMap{'\u0410', '\u042F', LowercaseAdd, 32},
-	lcMap{'\u0460', '\u0480', LowercaseBor, 0},
-	lcMap{'\u0490', '\u04BE', LowercaseBor, 0},
-	lcMap{'\u04C1', '\u04C3', LowercaseBad, 0},
-	lcMap{'\u04C7', '\u04C7', LowercaseSet, 0x04C8},
-	lcMap{'\u04CB', '\u04CB', LowercaseSet, 0x04CC},
-	lcMap{'\u04D0', '\u04EA', LowercaseBor, 0},
-	lcMap{'\u04EE', '\u04F4', LowercaseBor, 0},
-	lcMap{'\u04F8', '\u04F8', LowercaseSet, 0x04F9},
-	lcMap{'\u0531', '\u0556', LowercaseAdd, 48},
-	lcMap{'\u10A0', '\u10C5', LowercaseAdd, 48},
-	lcMap{'\u1E00', '\u1EF8', LowercaseBor, 0},
-	lcMap{'\u1F08', '\u1F0F', LowercaseAdd, -8},
-	lcMap{'\u1F18', '\u1F1F', LowercaseAdd, -8},
-	lcMap{'\u1F28', '\u1F2F', LowercaseAdd, -8},
-	lcMap{'\u1F38', '\u1F3F', LowercaseAdd, -8},
-	lcMap{'\u1F48', '\u1F4D', LowercaseAdd, -8},
-	lcMap{'\u1F59', '\u1F59', LowercaseSet, 0x1F51},
-	lcMap{'\u1F5B', '\u1F5B', LowercaseSet, 0x1F53},
-	lcMap{'\u1F5D', '\u1F5D', LowercaseSet, 0x1F55},
-	lcMap{'\u1F5F', '\u1F5F', LowercaseSet, 0x1F57},
-	lcMap{'\u1F68', '\u1F6F', LowercaseAdd, -8},
-	lcMap{'\u1F88', '\u1F8F', LowercaseAdd, -8},
-	lcMap{'\u1F98', '\u1F9F', LowercaseAdd, -8},
-	lcMap{'\u1FA8', '\u1FAF', LowercaseAdd, -8},
-	lcMap{'\u1FB8', '\u1FB9', LowercaseAdd, -8},
-	lcMap{'\u1FBA', '\u1FBB', LowercaseAdd, -74},
-	lcMap{'\u1FBC', '\u1FBC', LowercaseSet, 0x1FB3},
-	lcMap{'\u1FC8', '\u1FCB', LowercaseAdd, -86},
-	lcMap{'\u1FCC', '\u1FCC', LowercaseSet, 0x1FC3},
-	lcMap{'\u1FD8', '\u1FD9', LowercaseAdd, -8},
-	lcMap{'\u1FDA', '\u1FDB', LowercaseAdd, -100},
-	lcMap{'\u1FE8', '\u1FE9', LowercaseAdd, -8},
-	lcMap{'\u1FEA', '\u1FEB', LowercaseAdd, -112},
-	lcMap{'\u1FEC', '\u1FEC', LowercaseSet, 0x1FE5},
-	lcMap{'\u1FF8', '\u1FF9', LowercaseAdd, -128},
-	lcMap{'\u1FFA', '\u1FFB', LowercaseAdd, -126},
-	lcMap{'\u1FFC', '\u1FFC', LowercaseSet, 0x1FF3},
-	lcMap{'\u2160', '\u216F', LowercaseAdd, 16},
-	lcMap{'\u24B6', '\u24D0', LowercaseAdd, 26},
-	lcMap{'\uFF21', '\uFF3A', LowercaseAdd, 32},
-}
-
-func (c *CharSet) addLowercaseRange(chMin, chMax rune) {
-	var i, iMax, iMid int
-	var chMinT, chMaxT rune
-	var lc lcMap
-
-	for i, iMax = 0, len(lcTable); i < iMax; {
-		iMid = (i + iMax) / 2
-		if lcTable[iMid].chMax < chMin {
-			i = iMid + 1
-		} else {
-			iMax = iMid
-		}
-	}
-
-	for ; i < len(lcTable); i++ {
-		lc = lcTable[i]
-		if lc.chMin > chMax {
-			return
-		}
-		chMinT = lc.chMin
-		if chMinT < chMin {
-			chMinT = chMin
-		}
-
-		chMaxT = lc.chMax
-		if chMaxT > chMax {
-			chMaxT = chMax
-		}
-
-		switch lc.op {
-		case LowercaseSet:
-			chMinT = rune(lc.data)
-			chMaxT = rune(lc.data)
-			break
-		case LowercaseAdd:
-			chMinT += lc.data
-			chMaxT += lc.data
-			break
-		case LowercaseBor:
-			chMinT |= 1
-			chMaxT |= 1
-			break
-		case LowercaseBad:
-			chMinT += (chMinT & 1)
-			chMaxT += (chMaxT & 1)
-			break
-		}
-
-		if chMinT < chMin || chMaxT > chMax {
-			c.addRange(chMinT, chMaxT)
-		}
-	}
-}
Index: trunk/vendor/github.com/dlclark/regexp2/syntax/code.go
===================================================================
--- trunk/vendor/github.com/dlclark/regexp2/syntax/code.go	(revision 67)
+++ 	(revision )
@@ -1,274 +1,0 @@
-package syntax
-
-import (
-	"bytes"
-	"fmt"
-	"math"
-)
-
-// similar to prog.go in the go regex package...also with comment 'may not belong in this package'
-
-// File provides operator constants for use by the Builder and the Machine.
-
-// Implementation notes:
-//
-// Regexps are built into RegexCodes, which contain an operation array,
-// a string table, and some constants.
-//
-// Each operation is one of the codes below, followed by the integer
-// operands specified for each op.
-//
-// Strings and sets are indices into a string table.
-
-type InstOp int
-
-const (
-	// 					    lef/back operands        description
-
-	Onerep    InstOp = 0 // lef,back char,min,max    a {n}
-	Notonerep        = 1 // lef,back char,min,max    .{n}
-	Setrep           = 2 // lef,back set,min,max     [\d]{n}
-
-	Oneloop    = 3 // lef,back char,min,max    a {,n}
-	Notoneloop = 4 // lef,back char,min,max    .{,n}
-	Setloop    = 5 // lef,back set,min,max     [\d]{,n}
-
-	Onelazy    = 6 // lef,back char,min,max    a {,n}?
-	Notonelazy = 7 // lef,back char,min,max    .{,n}?
-	Setlazy    = 8 // lef,back set,min,max     [\d]{,n}?
-
-	One    = 9  // lef      char            a
-	Notone = 10 // lef      char            [^a]
-	Set    = 11 // lef      set             [a-z\s]  \w \s \d
-
-	Multi = 12 // lef      string          abcd
-	Ref   = 13 // lef      group           \#
-
-	Bol         = 14 //                          ^
-	Eol         = 15 //                          $
-	Boundary    = 16 //                          \b
-	Nonboundary = 17 //                          \B
-	Beginning   = 18 //                          \A
-	Start       = 19 //                          \G
-	EndZ        = 20 //                          \Z
-	End         = 21 //                          \Z
-
-	Nothing = 22 //                          Reject!
-
-	// Primitive control structures
-
-	Lazybranch      = 23 // back     jump            straight first
-	Branchmark      = 24 // back     jump            branch first for loop
-	Lazybranchmark  = 25 // back     jump            straight first for loop
-	Nullcount       = 26 // back     val             set counter, null mark
-	Setcount        = 27 // back     val             set counter, make mark
-	Branchcount     = 28 // back     jump,limit      branch++ if zero<=c<limit
-	Lazybranchcount = 29 // back     jump,limit      same, but straight first
-	Nullmark        = 30 // back                     save position
-	Setmark         = 31 // back                     save position
-	Capturemark     = 32 // back     group           define group
-	Getmark         = 33 // back                     recall position
-	Setjump         = 34 // back                     save backtrack state
-	Backjump        = 35 //                          zap back to saved state
-	Forejump        = 36 //                          zap backtracking state
-	Testref         = 37 //                          backtrack if ref undefined
-	Goto            = 38 //          jump            just go
-
-	Prune = 39 //                          prune it baby
-	Stop  = 40 //                          done!
-
-	ECMABoundary    = 41 //                          \b
-	NonECMABoundary = 42 //                          \B
-
-	// Modifiers for alternate modes
-
-	Mask  = 63  // Mask to get unmodified ordinary operator
-	Rtl   = 64  // bit to indicate that we're reverse scanning.
-	Back  = 128 // bit to indicate that we're backtracking.
-	Back2 = 256 // bit to indicate that we're backtracking on a second branch.
-	Ci    = 512 // bit to indicate that we're case-insensitive.
-)
-
-type Code struct {
-	Codes       []int       // the code
-	Strings     [][]rune    // string table
-	Sets        []*CharSet  //character set table
-	TrackCount  int         // how many instructions use backtracking
-	Caps        map[int]int // mapping of user group numbers -> impl group slots
-	Capsize     int         // number of impl group slots
-	FcPrefix    *Prefix     // the set of candidate first characters (may be null)
-	BmPrefix    *BmPrefix   // the fixed prefix string as a Boyer-Moore machine (may be null)
-	Anchors     AnchorLoc   // the set of zero-length start anchors (RegexFCD.Bol, etc)
-	RightToLeft bool        // true if right to left
-}
-
-func opcodeBacktracks(op InstOp) bool {
-	op &= Mask
-
-	switch op {
-	case Oneloop, Notoneloop, Setloop, Onelazy, Notonelazy, Setlazy, Lazybranch, Branchmark, Lazybranchmark,
-		Nullcount, Setcount, Branchcount, Lazybranchcount, Setmark, Capturemark, Getmark, Setjump, Backjump,
-		Forejump, Goto:
-		return true
-
-	default:
-		return false
-	}
-}
-
-func opcodeSize(op InstOp) int {
-	op &= Mask
-
-	switch op {
-	case Nothing, Bol, Eol, Boundary, Nonboundary, ECMABoundary, NonECMABoundary, Beginning, Start, EndZ,
-		End, Nullmark, Setmark, Getmark, Setjump, Backjump, Forejump, Stop:
-		return 1
-
-	case One, Notone, Multi, Ref, Testref, Goto, Nullcount, Setcount, Lazybranch, Branchmark, Lazybranchmark,
-		Prune, Set:
-		return 2
-
-	case Capturemark, Branchcount, Lazybranchcount, Onerep, Notonerep, Oneloop, Notoneloop, Onelazy, Notonelazy,
-		Setlazy, Setrep, Setloop:
-		return 3
-
-	default:
-		panic(fmt.Errorf("Unexpected op code: %v", op))
-	}
-}
-
-var codeStr = []string{
-	"Onerep", "Notonerep", "Setrep",
-	"Oneloop", "Notoneloop", "Setloop",
-	"Onelazy", "Notonelazy", "Setlazy",
-	"One", "Notone", "Set",
-	"Multi", "Ref",
-	"Bol", "Eol", "Boundary", "Nonboundary", "Beginning", "Start", "EndZ", "End",
-	"Nothing",
-	"Lazybranch", "Branchmark", "Lazybranchmark",
-	"Nullcount", "Setcount", "Branchcount", "Lazybranchcount",
-	"Nullmark", "Setmark", "Capturemark", "Getmark",
-	"Setjump", "Backjump", "Forejump", "Testref", "Goto",
-	"Prune", "Stop",
-	"ECMABoundary", "NonECMABoundary",
-}
-
-func operatorDescription(op InstOp) string {
-	desc := codeStr[op&Mask]
-	if (op & Ci) != 0 {
-		desc += "-Ci"
-	}
-	if (op & Rtl) != 0 {
-		desc += "-Rtl"
-	}
-	if (op & Back) != 0 {
-		desc += "-Back"
-	}
-	if (op & Back2) != 0 {
-		desc += "-Back2"
-	}
-
-	return desc
-}
-
-// OpcodeDescription is a humman readable string of the specific offset
-func (c *Code) OpcodeDescription(offset int) string {
-	buf := &bytes.Buffer{}
-
-	op := InstOp(c.Codes[offset])
-	fmt.Fprintf(buf, "%06d ", offset)
-
-	if opcodeBacktracks(op & Mask) {
-		buf.WriteString("*")
-	} else {
-		buf.WriteString(" ")
-	}
-	buf.WriteString(operatorDescription(op))
-	buf.WriteString("(")
-	op &= Mask
-
-	switch op {
-	case One, Notone, Onerep, Notonerep, Oneloop, Notoneloop, Onelazy, Notonelazy:
-		buf.WriteString("Ch = ")
-		buf.WriteString(CharDescription(rune(c.Codes[offset+1])))
-
-	case Set, Setrep, Setloop, Setlazy:
-		buf.WriteString("Set = ")
-		buf.WriteString(c.Sets[c.Codes[offset+1]].String())
-
-	case Multi:
-		fmt.Fprintf(buf, "String = %s", string(c.Strings[c.Codes[offset+1]]))
-
-	case Ref, Testref:
-		fmt.Fprintf(buf, "Index = %d", c.Codes[offset+1])
-
-	case Capturemark:
-		fmt.Fprintf(buf, "Index = %d", c.Codes[offset+1])
-		if c.Codes[offset+2] != -1 {
-			fmt.Fprintf(buf, ", Unindex = %d", c.Codes[offset+2])
-		}
-
-	case Nullcount, Setcount:
-		fmt.Fprintf(buf, "Value = %d", c.Codes[offset+1])
-
-	case Goto, Lazybranch, Branchmark, Lazybranchmark, Branchcount, Lazybranchcount:
-		fmt.Fprintf(buf, "Addr = %d", c.Codes[offset+1])
-	}
-
-	switch op {
-	case Onerep, Notonerep, Oneloop, Notoneloop, Onelazy, Notonelazy, Setrep, Setloop, Setlazy:
-		buf.WriteString(", Rep = ")
-		if c.Codes[offset+2] == math.MaxInt32 {
-			buf.WriteString("inf")
-		} else {
-			fmt.Fprintf(buf, "%d", c.Codes[offset+2])
-		}
-
-	case Branchcount, Lazybranchcount:
-		buf.WriteString(", Limit = ")
-		if c.Codes[offset+2] == math.MaxInt32 {
-			buf.WriteString("inf")
-		} else {
-			fmt.Fprintf(buf, "%d", c.Codes[offset+2])
-		}
-
-	}
-
-	buf.WriteString(")")
-
-	return buf.String()
-}
-
-func (c *Code) Dump() string {
-	buf := &bytes.Buffer{}
-
-	if c.RightToLeft {
-		fmt.Fprintln(buf, "Direction:  right-to-left")
-	} else {
-		fmt.Fprintln(buf, "Direction:  left-to-right")
-	}
-	if c.FcPrefix == nil {
-		fmt.Fprintln(buf, "Firstchars: n/a")
-	} else {
-		fmt.Fprintf(buf, "Firstchars: %v\n", c.FcPrefix.PrefixSet.String())
-	}
-
-	if c.BmPrefix == nil {
-		fmt.Fprintln(buf, "Prefix:     n/a")
-	} else {
-		fmt.Fprintf(buf, "Prefix:     %v\n", Escape(c.BmPrefix.String()))
-	}
-
-	fmt.Fprintf(buf, "Anchors:    %v\n", c.Anchors)
-	fmt.Fprintln(buf)
-
-	if c.BmPrefix != nil {
-		fmt.Fprintln(buf, "BoyerMoore:")
-		fmt.Fprintln(buf, c.BmPrefix.Dump("    "))
-	}
-	for i := 0; i < len(c.Codes); i += opcodeSize(InstOp(c.Codes[i])) {
-		fmt.Fprintln(buf, c.OpcodeDescription(i))
-	}
-
-	return buf.String()
-}
Index: trunk/vendor/github.com/dlclark/regexp2/syntax/escape.go
===================================================================
--- trunk/vendor/github.com/dlclark/regexp2/syntax/escape.go	(revision 67)
+++ 	(revision )
@@ -1,94 +1,0 @@
-package syntax
-
-import (
-	"bytes"
-	"strconv"
-	"strings"
-	"unicode"
-)
-
-func Escape(input string) string {
-	b := &bytes.Buffer{}
-	for _, r := range input {
-		escape(b, r, false)
-	}
-	return b.String()
-}
-
-const meta = `\.+*?()|[]{}^$# `
-
-func escape(b *bytes.Buffer, r rune, force bool) {
-	if unicode.IsPrint(r) {
-		if strings.IndexRune(meta, r) >= 0 || force {
-			b.WriteRune('\\')
-		}
-		b.WriteRune(r)
-		return
-	}
-
-	switch r {
-	case '\a':
-		b.WriteString(`\a`)
-	case '\f':
-		b.WriteString(`\f`)
-	case '\n':
-		b.WriteString(`\n`)
-	case '\r':
-		b.WriteString(`\r`)
-	case '\t':
-		b.WriteString(`\t`)
-	case '\v':
-		b.WriteString(`\v`)
-	default:
-		if r < 0x100 {
-			b.WriteString(`\x`)
-			s := strconv.FormatInt(int64(r), 16)
-			if len(s) == 1 {
-				b.WriteRune('0')
-			}
-			b.WriteString(s)
-			break
-		}
-		b.WriteString(`\u`)
-		b.WriteString(strconv.FormatInt(int64(r), 16))
-	}
-}
-
-func Unescape(input string) (string, error) {
-	idx := strings.IndexRune(input, '\\')
-	// no slashes means no unescape needed
-	if idx == -1 {
-		return input, nil
-	}
-
-	buf := bytes.NewBufferString(input[:idx])
-	// get the runes for the rest of the string -- we're going full parser scan on this
-
-	p := parser{}
-	p.setPattern(input[idx+1:])
-	for {
-		if p.rightMost() {
-			return "", p.getErr(ErrIllegalEndEscape)
-		}
-		r, err := p.scanCharEscape()
-		if err != nil {
-			return "", err
-		}
-		buf.WriteRune(r)
-		// are we done?
-		if p.rightMost() {
-			return buf.String(), nil
-		}
-
-		r = p.moveRightGetChar()
-		for r != '\\' {
-			buf.WriteRune(r)
-			if p.rightMost() {
-				// we're done, no more slashes
-				return buf.String(), nil
-			}
-			// keep scanning until we get another slash
-			r = p.moveRightGetChar()
-		}
-	}
-}
Index: trunk/vendor/github.com/dlclark/regexp2/syntax/fuzz.go
===================================================================
--- trunk/vendor/github.com/dlclark/regexp2/syntax/fuzz.go	(revision 67)
+++ 	(revision )
@@ -1,20 +1,0 @@
-// +build gofuzz
-
-package syntax
-
-// Fuzz is the input point for go-fuzz
-func Fuzz(data []byte) int {
-	sdata := string(data)
-	tree, err := Parse(sdata, RegexOptions(0))
-	if err != nil {
-		return 0
-	}
-
-	// translate it to code
-	_, err = Write(tree)
-	if err != nil {
-		panic(err)
-	}
-
-	return 1
-}
Index: trunk/vendor/github.com/dlclark/regexp2/syntax/parser.go
===================================================================
--- trunk/vendor/github.com/dlclark/regexp2/syntax/parser.go	(revision 67)
+++ 	(revision )
@@ -1,2213 +1,0 @@
-package syntax
-
-import (
-	"fmt"
-	"math"
-	"os"
-	"sort"
-	"strconv"
-	"unicode"
-)
-
-type RegexOptions int32
-
-const (
-	IgnoreCase              RegexOptions = 0x0001 // "i"
-	Multiline                            = 0x0002 // "m"
-	ExplicitCapture                      = 0x0004 // "n"
-	Compiled                             = 0x0008 // "c"
-	Singleline                           = 0x0010 // "s"
-	IgnorePatternWhitespace              = 0x0020 // "x"
-	RightToLeft                          = 0x0040 // "r"
-	Debug                                = 0x0080 // "d"
-	ECMAScript                           = 0x0100 // "e"
-	RE2                                  = 0x0200 // RE2 compat mode
-)
-
-func optionFromCode(ch rune) RegexOptions {
-	// case-insensitive
-	switch ch {
-	case 'i', 'I':
-		return IgnoreCase
-	case 'r', 'R':
-		return RightToLeft
-	case 'm', 'M':
-		return Multiline
-	case 'n', 'N':
-		return ExplicitCapture
-	case 's', 'S':
-		return Singleline
-	case 'x', 'X':
-		return IgnorePatternWhitespace
-	case 'd', 'D':
-		return Debug
-	case 'e', 'E':
-		return ECMAScript
-	default:
-		return 0
-	}
-}
-
-// An Error describes a failure to parse a regular expression
-// and gives the offending expression.
-type Error struct {
-	Code ErrorCode
-	Expr string
-	Args []interface{}
-}
-
-func (e *Error) Error() string {
-	if len(e.Args) == 0 {
-		return "error parsing regexp: " + e.Code.String() + " in `" + e.Expr + "`"
-	}
-	return "error parsing regexp: " + fmt.Sprintf(e.Code.String(), e.Args...) + " in `" + e.Expr + "`"
-}
-
-// An ErrorCode describes a failure to parse a regular expression.
-type ErrorCode string
-
-const (
-	// internal issue
-	ErrInternalError ErrorCode = "regexp/syntax: internal error"
-	// Parser errors
-	ErrUnterminatedComment        = "unterminated comment"
-	ErrInvalidCharRange           = "invalid character class range"
-	ErrInvalidRepeatSize          = "invalid repeat count"
-	ErrInvalidUTF8                = "invalid UTF-8"
-	ErrCaptureGroupOutOfRange     = "capture group number out of range"
-	ErrUnexpectedParen            = "unexpected )"
-	ErrMissingParen               = "missing closing )"
-	ErrMissingBrace               = "missing closing }"
-	ErrInvalidRepeatOp            = "invalid nested repetition operator"
-	ErrMissingRepeatArgument      = "missing argument to repetition operator"
-	ErrConditionalExpression      = "illegal conditional (?(...)) expression"
-	ErrTooManyAlternates          = "too many | in (?()|)"
-	ErrUnrecognizedGrouping       = "unrecognized grouping construct: (%v"
-	ErrInvalidGroupName           = "invalid group name: group names must begin with a word character and have a matching terminator"
-	ErrCapNumNotZero              = "capture number cannot be zero"
-	ErrUndefinedBackRef           = "reference to undefined group number %v"
-	ErrUndefinedNameRef           = "reference to undefined group name %v"
-	ErrAlternationCantCapture     = "alternation conditions do not capture and cannot be named"
-	ErrAlternationCantHaveComment = "alternation conditions cannot be comments"
-	ErrMalformedReference         = "(?(%v) ) malformed"
-	ErrUndefinedReference         = "(?(%v) ) reference to undefined group"
-	ErrIllegalEndEscape           = "illegal \\ at end of pattern"
-	ErrMalformedSlashP            = "malformed \\p{X} character escape"
-	ErrIncompleteSlashP           = "incomplete \\p{X} character escape"
-	ErrUnknownSlashP              = "unknown unicode category, script, or property '%v'"
-	ErrUnrecognizedEscape         = "unrecognized escape sequence \\%v"
-	ErrMissingControl             = "missing control character"
-	ErrUnrecognizedControl        = "unrecognized control character"
-	ErrTooFewHex                  = "insufficient hexadecimal digits"
-	ErrInvalidHex                 = "hex values may not be larger than 0x10FFFF"
-	ErrMalformedNameRef           = "malformed \\k<...> named back reference"
-	ErrBadClassInCharRange        = "cannot include class \\%v in character range"
-	ErrUnterminatedBracket        = "unterminated [] set"
-	ErrSubtractionMustBeLast      = "a subtraction must be the last element in a character class"
-	ErrReversedCharRange          = "[x-y] range in reverse order"
-)
-
-func (e ErrorCode) String() string {
-	return string(e)
-}
-
-type parser struct {
-	stack         *regexNode
-	group         *regexNode
-	alternation   *regexNode
-	concatenation *regexNode
-	unit          *regexNode
-
-	patternRaw string
-	pattern    []rune
-
-	currentPos  int
-	specialCase *unicode.SpecialCase
-
-	autocap  int
-	capcount int
-	captop   int
-	capsize  int
-
-	caps     map[int]int
-	capnames map[string]int
-
-	capnumlist  []int
-	capnamelist []string
-
-	options         RegexOptions
-	optionsStack    []RegexOptions
-	ignoreNextParen bool
-}
-
-const (
-	maxValueDiv10 int = math.MaxInt32 / 10
-	maxValueMod10     = math.MaxInt32 % 10
-)
-
-// Parse converts a regex string into a parse tree
-func Parse(re string, op RegexOptions) (*RegexTree, error) {
-	p := parser{
-		options: op,
-		caps:    make(map[int]int),
-	}
-	p.setPattern(re)
-
-	if err := p.countCaptures(); err != nil {
-		return nil, err
-	}
-
-	p.reset(op)
-	root, err := p.scanRegex()
-
-	if err != nil {
-		return nil, err
-	}
-	tree := &RegexTree{
-		root:       root,
-		caps:       p.caps,
-		capnumlist: p.capnumlist,
-		captop:     p.captop,
-		Capnames:   p.capnames,
-		Caplist:    p.capnamelist,
-		options:    op,
-	}
-
-	if tree.options&Debug > 0 {
-		os.Stdout.WriteString(tree.Dump())
-	}
-
-	return tree, nil
-}
-
-func (p *parser) setPattern(pattern string) {
-	p.patternRaw = pattern
-	p.pattern = make([]rune, 0, len(pattern))
-
-	//populate our rune array to handle utf8 encoding
-	for _, r := range pattern {
-		p.pattern = append(p.pattern, r)
-	}
-}
-func (p *parser) getErr(code ErrorCode, args ...interface{}) error {
-	return &Error{Code: code, Expr: p.patternRaw, Args: args}
-}
-
-func (p *parser) noteCaptureSlot(i, pos int) {
-	if _, ok := p.caps[i]; !ok {
-		// the rhs of the hashtable isn't used in the parser
-		p.caps[i] = pos
-		p.capcount++
-
-		if p.captop <= i {
-			if i == math.MaxInt32 {
-				p.captop = i
-			} else {
-				p.captop = i + 1
-			}
-		}
-	}
-}
-
-func (p *parser) noteCaptureName(name string, pos int) {
-	if p.capnames == nil {
-		p.capnames = make(map[string]int)
-	}
-
-	if _, ok := p.capnames[name]; !ok {
-		p.capnames[name] = pos
-		p.capnamelist = append(p.capnamelist, name)
-	}
-}
-
-func (p *parser) assignNameSlots() {
-	if p.capnames != nil {
-		for _, name := range p.capnamelist {
-			for p.isCaptureSlot(p.autocap) {
-				p.autocap++
-			}
-			pos := p.capnames[name]
-			p.capnames[name] = p.autocap
-			p.noteCaptureSlot(p.autocap, pos)
-
-			p.autocap++
-		}
-	}
-
-	// if the caps array has at least one gap, construct the list of used slots
-	if p.capcount < p.captop {
-		p.capnumlist = make([]int, p.capcount)
-		i := 0
-
-		for k := range p.caps {
-			p.capnumlist[i] = k
-			i++
-		}
-
-		sort.Ints(p.capnumlist)
-	}
-
-	// merge capsnumlist into capnamelist
-	if p.capnames != nil || p.capnumlist != nil {
-		var oldcapnamelist []string
-		var next int
-		var k int
-
-		if p.capnames == nil {
-			oldcapnamelist = nil
-			p.capnames = make(map[string]int)
-			p.capnamelist = []string{}
-			next = -1
-		} else {
-			oldcapnamelist = p.capnamelist
-			p.capnamelist = []string{}
-			next = p.capnames[oldcapnamelist[0]]
-		}
-
-		for i := 0; i < p.capcount; i++ {
-			j := i
-			if p.capnumlist != nil {
-				j = p.capnumlist[i]
-			}
-
-			if next == j {
-				p.capnamelist = append(p.capnamelist, oldcapnamelist[k])
-				k++
-
-				if k == len(oldcapnamelist) {
-					next = -1
-				} else {
-					next = p.capnames[oldcapnamelist[k]]
-				}
-
-			} else {
-				//feature: culture?
-				str := strconv.Itoa(j)
-				p.capnamelist = append(p.capnamelist, str)
-				p.capnames[str] = j
-			}
-		}
-	}
-}
-
-func (p *parser) consumeAutocap() int {
-	r := p.autocap
-	p.autocap++
-	return r
-}
-
-// CountCaptures is a prescanner for deducing the slots used for
-// captures by doing a partial tokenization of the pattern.
-func (p *parser) countCaptures() error {
-	var ch rune
-
-	p.noteCaptureSlot(0, 0)
-
-	p.autocap = 1
-
-	for p.charsRight() > 0 {
-		pos := p.textpos()
-		ch = p.moveRightGetChar()
-		switch ch {
-		case '\\':
-			if p.charsRight() > 0 {
-				p.scanBackslash(true)
-			}
-
-		case '#':
-			if p.useOptionX() {
-				p.moveLeft()
-				p.scanBlank()
-			}
-
-		case '[':
-			p.scanCharSet(false, true)
-
-		case ')':
-			if !p.emptyOptionsStack() {
-				p.popOptions()
-			}
-
-		case '(':
-			if p.charsRight() >= 2 && p.rightChar(1) == '#' && p.rightChar(0) == '?' {
-				p.moveLeft()
-				p.scanBlank()
-			} else {
-				p.pushOptions()
-				if p.charsRight() > 0 && p.rightChar(0) == '?' {
-					// we have (?...
-					p.moveRight(1)
-
-					if p.charsRight() > 1 && (p.rightChar(0) == '<' || p.rightChar(0) == '\'') {
-						// named group: (?<... or (?'...
-
-						p.moveRight(1)
-						ch = p.rightChar(0)
-
-						if ch != '0' && IsWordChar(ch) {
-							if ch >= '1' && ch <= '9' {
-								dec, err := p.scanDecimal()
-								if err != nil {
-									return err
-								}
-								p.noteCaptureSlot(dec, pos)
-							} else {
-								p.noteCaptureName(p.scanCapname(), pos)
-							}
-						}
-					} else if p.useRE2() && p.charsRight() > 2 && (p.rightChar(0) == 'P' && p.rightChar(1) == '<') {
-						// RE2-compat (?P<)
-						p.moveRight(2)
-						ch = p.rightChar(0)
-						if IsWordChar(ch) {
-							p.noteCaptureName(p.scanCapname(), pos)
-						}
-
-					} else {
-						// (?...
-
-						// get the options if it's an option construct (?cimsx-cimsx...)
-						p.scanOptions()
-
-						if p.charsRight() > 0 {
-							if p.rightChar(0) == ')' {
-								// (?cimsx-cimsx)
-								p.moveRight(1)
-								p.popKeepOptions()
-							} else if p.rightChar(0) == '(' {
-								// alternation construct: (?(foo)yes|no)
-								// ignore the next paren so we don't capture the condition
-								p.ignoreNextParen = true
-
-								// break from here so we don't reset ignoreNextParen
-								continue
-							}
-						}
-					}
-				} else {
-					if !p.useOptionN() && !p.ignoreNextParen {
-						p.noteCaptureSlot(p.consumeAutocap(), pos)
-					}
-				}
-			}
-
-			p.ignoreNextParen = false
-
-		}
-	}
-
-	p.assignNameSlots()
-	return nil
-}
-
-func (p *parser) reset(topopts RegexOptions) {
-	p.currentPos = 0
-	p.autocap = 1
-	p.ignoreNextParen = false
-
-	if len(p.optionsStack) > 0 {
-		p.optionsStack = p.optionsStack[:0]
-	}
-
-	p.options = topopts
-	p.stack = nil
-}
-
-func (p *parser) scanRegex() (*regexNode, error) {
-	ch := '@' // nonspecial ch, means at beginning
-	isQuant := false
-
-	p.startGroup(newRegexNodeMN(ntCapture, p.options, 0, -1))
-
-	for p.charsRight() > 0 {
-		wasPrevQuantifier := isQuant
-		isQuant = false
-
-		if err := p.scanBlank(); err != nil {
-			return nil, err
-		}
-
-		startpos := p.textpos()
-
-		// move past all of the normal characters.  We'll stop when we hit some kind of control character,
-		// or if IgnorePatternWhiteSpace is on, we'll stop when we see some whitespace.
-		if p.useOptionX() {
-			for p.charsRight() > 0 {
-				ch = p.rightChar(0)
-				//UGLY: clean up, this is ugly
-				if !(!isStopperX(ch) || (ch == '{' && !p.isTrueQuantifier())) {
-					break
-				}
-				p.moveRight(1)
-			}
-		} else {
-			for p.charsRight() > 0 {
-				ch = p.rightChar(0)
-				if !(!isSpecial(ch) || ch == '{' && !p.isTrueQuantifier()) {
-					break
-				}
-				p.moveRight(1)
-			}
-		}
-
-		endpos := p.textpos()
-
-		p.scanBlank()
-
-		if p.charsRight() == 0 {
-			ch = '!' // nonspecial, means at end
-		} else if ch = p.rightChar(0); isSpecial(ch) {
-			isQuant = isQuantifier(ch)
-			p.moveRight(1)
-		} else {
-			ch = ' ' // nonspecial, means at ordinary char
-		}
-
-		if startpos < endpos {
-			cchUnquantified := endpos - startpos
-			if isQuant {
-				cchUnquantified--
-			}
-			wasPrevQuantifier = false
-
-			if cchUnquantified > 0 {
-				p.addToConcatenate(startpos, cchUnquantified, false)
-			}
-
-			if isQuant {
-				p.addUnitOne(p.charAt(endpos - 1))
-			}
-		}
-
-		switch ch {
-		case '!':
-			goto BreakOuterScan
-
-		case ' ':
-			goto ContinueOuterScan
-
-		case '[':
-			cc, err := p.scanCharSet(p.useOptionI(), false)
-			if err != nil {
-				return nil, err
-			}
-			p.addUnitSet(cc)
-
-		case '(':
-			p.pushOptions()
-
-			if grouper, err := p.scanGroupOpen(); err != nil {
-				return nil, err
-			} else if grouper == nil {
-				p.popKeepOptions()
-			} else {
-				p.pushGroup()
-				p.startGroup(grouper)
-			}
-
-			continue
-
-		case '|':
-			p.addAlternate()
-			goto ContinueOuterScan
-
-		case ')':
-			if p.emptyStack() {
-				return nil, p.getErr(ErrUnexpectedParen)
-			}
-
-			if err := p.addGroup(); err != nil {
-				return nil, err
-			}
-			if err := p.popGroup(); err != nil {
-				return nil, err
-			}
-			p.popOptions()
-
-			if p.unit == nil {
-				goto ContinueOuterScan
-			}
-
-		case '\\':
-			n, err := p.scanBackslash(false)
-			if err != nil {
-				return nil, err
-			}
-			p.addUnitNode(n)
-
-		case '^':
-			if p.useOptionM() {
-				p.addUnitType(ntBol)
-			} else {
-				p.addUnitType(ntBeginning)
-			}
-
-		case '$':
-			if p.useOptionM() {
-				p.addUnitType(ntEol)
-			} else {
-				p.addUnitType(ntEndZ)
-			}
-
-		case '.':
-			if p.useOptionE() {
-				p.addUnitSet(ECMAAnyClass())
-			} else if p.useOptionS() {
-				p.addUnitSet(AnyClass())
-			} else {
-				p.addUnitNotone('\n')
-			}
-
-		case '{', '*', '+', '?':
-			if p.unit == nil {
-				if wasPrevQuantifier {
-					return nil, p.getErr(ErrInvalidRepeatOp)
-				} else {
-					return nil, p.getErr(ErrMissingRepeatArgument)
-				}
-			}
-			p.moveLeft()
-
-		default:
-			return nil, p.getErr(ErrInternalError)
-		}
-
-		if err := p.scanBlank(); err != nil {
-			return nil, err
-		}
-
-		if p.charsRight() > 0 {
-			isQuant = p.isTrueQuantifier()
-		}
-		if p.charsRight() == 0 || !isQuant {
-			//maintain odd C# assignment order -- not sure if required, could clean up?
-			p.addConcatenate()
-			goto ContinueOuterScan
-		}
-
-		ch = p.moveRightGetChar()
-
-		// Handle quantifiers
-		for p.unit != nil {
-			var min, max int
-			var lazy bool
-
-			switch ch {
-			case '*':
-				min = 0
-				max = math.MaxInt32
-
-			case '?':
-				min = 0
-				max = 1
-
-			case '+':
-				min = 1
-				max = math.MaxInt32
-
-			case '{':
-				{
-					var err error
-					startpos = p.textpos()
-					if min, err = p.scanDecimal(); err != nil {
-						return nil, err
-					}
-					max = min
-					if startpos < p.textpos() {
-						if p.charsRight() > 0 && p.rightChar(0) == ',' {
-							p.moveRight(1)
-							if p.charsRight() == 0 || p.rightChar(0) == '}' {
-								max = math.MaxInt32
-							} else {
-								if max, err = p.scanDecimal(); err != nil {
-									return nil, err
-								}
-							}
-						}
-					}
-
-					if startpos == p.textpos() || p.charsRight() == 0 || p.moveRightGetChar() != '}' {
-						p.addConcatenate()
-						p.textto(startpos - 1)
-						goto ContinueOuterScan
-					}
-				}
-
-			default:
-				return nil, p.getErr(ErrInternalError)
-			}
-
-			if err := p.scanBlank(); err != nil {
-				return nil, err
-			}
-
-			if p.charsRight() == 0 || p.rightChar(0) != '?' {
-				lazy = false
-			} else {
-				p.moveRight(1)
-				lazy = true
-			}
-
-			if min > max {
-				return nil, p.getErr(ErrInvalidRepeatSize)
-			}
-
-			p.addConcatenate3(lazy, min, max)
-		}
-
-	ContinueOuterScan:
-	}
-
-BreakOuterScan:
-	;
-
-	if !p.emptyStack() {
-		return nil, p.getErr(ErrMissingParen)
-	}
-
-	if err := p.addGroup(); err != nil {
-		return nil, err
-	}
-
-	return p.unit, nil
-
-}
-
-/*
- * Simple parsing for replacement patterns
- */
-func (p *parser) scanReplacement() (*regexNode, error) {
-	var c, startpos int
-
-	p.concatenation = newRegexNode(ntConcatenate, p.options)
-
-	for {
-		c = p.charsRight()
-		if c == 0 {
-			break
-		}
-
-		startpos = p.textpos()
-
-		for c > 0 && p.rightChar(0) != '$' {
-			p.moveRight(1)
-			c--
-		}
-
-		p.addToConcatenate(startpos, p.textpos()-startpos, true)
-
-		if c > 0 {
-			if p.moveRightGetChar() == '$' {
-				n, err := p.scanDollar()
-				if err != nil {
-					return nil, err
-				}
-				p.addUnitNode(n)
-			}
-			p.addConcatenate()
-		}
-	}
-
-	return p.concatenation, nil
-}
-
-/*
- * Scans $ patterns recognized within replacement patterns
- */
-func (p *parser) scanDollar() (*regexNode, error) {
-	if p.charsRight() == 0 {
-		return newRegexNodeCh(ntOne, p.options, '$'), nil
-	}
-
-	ch := p.rightChar(0)
-	angled := false
-	backpos := p.textpos()
-	lastEndPos := backpos
-
-	// Note angle
-
-	if ch == '{' && p.charsRight() > 1 {
-		angled = true
-		p.moveRight(1)
-		ch = p.rightChar(0)
-	}
-
-	// Try to parse backreference: \1 or \{1} or \{cap}
-
-	if ch >= '0' && ch <= '9' {
-		if !angled && p.useOptionE() {
-			capnum := -1
-			newcapnum := int(ch - '0')
-			p.moveRight(1)
-			if p.isCaptureSlot(newcapnum) {
-				capnum = newcapnum
-				lastEndPos = p.textpos()
-			}
-
-			for p.charsRight() > 0 {
-				ch = p.rightChar(0)
-				if ch < '0' || ch > '9' {
-					break
-				}
-				digit := int(ch - '0')
-				if newcapnum > maxValueDiv10 || (newcapnum == maxValueDiv10 && digit > maxValueMod10) {
-					return nil, p.getErr(ErrCaptureGroupOutOfRange)
-				}
-
-				newcapnum = newcapnum*10 + digit
-
-				p.moveRight(1)
-				if p.isCaptureSlot(newcapnum) {
-					capnum = newcapnum
-					lastEndPos = p.textpos()
-				}
-			}
-			p.textto(lastEndPos)
-			if capnum >= 0 {
-				return newRegexNodeM(ntRef, p.options, capnum), nil
-			}
-		} else {
-			capnum, err := p.scanDecimal()
-			if err != nil {
-				return nil, err
-			}
-			if !angled || p.charsRight() > 0 && p.moveRightGetChar() == '}' {
-				if p.isCaptureSlot(capnum) {
-					return newRegexNodeM(ntRef, p.options, capnum), nil
-				}
-			}
-		}
-	} else if angled && IsWordChar(ch) {
-		capname := p.scanCapname()
-
-		if p.charsRight() > 0 && p.moveRightGetChar() == '}' {
-			if p.isCaptureName(capname) {
-				return newRegexNodeM(ntRef, p.options, p.captureSlotFromName(capname)), nil
-			}
-		}
-	} else if !angled {
-		capnum := 1
-
-		switch ch {
-		case '$':
-			p.moveRight(1)
-			return newRegexNodeCh(ntOne, p.options, '$'), nil
-		case '&':
-			capnum = 0
-		case '`':
-			capnum = replaceLeftPortion
-		case '\'':
-			capnum = replaceRightPortion
-		case '+':
-			capnum = replaceLastGroup
-		case '_':
-			capnum = replaceWholeString
-		}
-
-		if capnum != 1 {
-			p.moveRight(1)
-			return newRegexNodeM(ntRef, p.options, capnum), nil
-		}
-	}
-
-	// unrecognized $: literalize
-
-	p.textto(backpos)
-	return newRegexNodeCh(ntOne, p.options, '$'), nil
-}
-
-// scanGroupOpen scans chars following a '(' (not counting the '('), and returns
-// a RegexNode for the type of group scanned, or nil if the group
-// simply changed options (?cimsx-cimsx) or was a comment (#...).
-func (p *parser) scanGroupOpen() (*regexNode, error) {
-	var ch rune
-	var nt nodeType
-	var err error
-	close := '>'
-	start := p.textpos()
-
-	// just return a RegexNode if we have:
-	// 1. "(" followed by nothing
-	// 2. "(x" where x != ?
-	// 3. "(?)"
-	if p.charsRight() == 0 || p.rightChar(0) != '?' || (p.rightChar(0) == '?' && (p.charsRight() > 1 && p.rightChar(1) == ')')) {
-		if p.useOptionN() || p.ignoreNextParen {
-			p.ignoreNextParen = false
-			return newRegexNode(ntGroup, p.options), nil
-		}
-		return newRegexNodeMN(ntCapture, p.options, p.consumeAutocap(), -1), nil
-	}
-
-	p.moveRight(1)
-
-	for {
-		if p.charsRight() == 0 {
-			break
-		}
-
-		switch ch = p.moveRightGetChar(); ch {
-		case ':':
-			nt = ntGroup
-
-		case '=':
-			p.options &= ^RightToLeft
-			nt = ntRequire
-
-		case '!':
-			p.options &= ^RightToLeft
-			nt = ntPrevent
-
-		case '>':
-			nt = ntGreedy
-
-		case '\'':
-			close = '\''
-			fallthrough
-
-		case '<':
-			if p.charsRight() == 0 {
-				goto BreakRecognize
-			}
-
-			switch ch = p.moveRightGetChar(); ch {
-			case '=':
-				if close == '\'' {
-					goto BreakRecognize
-				}
-
-				p.options |= RightToLeft
-				nt = ntRequire
-
-			case '!':
-				if close == '\'' {
-					goto BreakRecognize
-				}
-
-				p.options |= RightToLeft
-				nt = ntPrevent
-
-			default:
-				p.moveLeft()
-				capnum := -1
-				uncapnum := -1
-				proceed := false
-
-				// grab part before -
-
-				if ch >= '0' && ch <= '9' {
-					if capnum, err = p.scanDecimal(); err != nil {
-						return nil, err
-					}
-
-					if !p.isCaptureSlot(capnum) {
-						capnum = -1
-					}
-
-					// check if we have bogus characters after the number
-					if p.charsRight() > 0 && !(p.rightChar(0) == close || p.rightChar(0) == '-') {
-						return nil, p.getErr(ErrInvalidGroupName)
-					}
-					if capnum == 0 {
-						return nil, p.getErr(ErrCapNumNotZero)
-					}
-				} else if IsWordChar(ch) {
-					capname := p.scanCapname()
-
-					if p.isCaptureName(capname) {
-						capnum = p.captureSlotFromName(capname)
-					}
-
-					// check if we have bogus character after the name
-					if p.charsRight() > 0 && !(p.rightChar(0) == close || p.rightChar(0) == '-') {
-						return nil, p.getErr(ErrInvalidGroupName)
-					}
-				} else if ch == '-' {
-					proceed = true
-				} else {
-					// bad group name - starts with something other than a word character and isn't a number
-					return nil, p.getErr(ErrInvalidGroupName)
-				}
-
-				// grab part after - if any
-
-				if (capnum != -1 || proceed == true) && p.charsRight() > 0 && p.rightChar(0) == '-' {
-					p.moveRight(1)
-
-					//no more chars left, no closing char, etc
-					if p.charsRight() == 0 {
-						return nil, p.getErr(ErrInvalidGroupName)
-					}
-
-					ch = p.rightChar(0)
-					if ch >= '0' && ch <= '9' {
-						if uncapnum, err = p.scanDecimal(); err != nil {
-							return nil, err
-						}
-
-						if !p.isCaptureSlot(uncapnum) {
-							return nil, p.getErr(ErrUndefinedBackRef, uncapnum)
-						}
-
-						// check if we have bogus characters after the number
-						if p.charsRight() > 0 && p.rightChar(0) != close {
-							return nil, p.getErr(ErrInvalidGroupName)
-						}
-					} else if IsWordChar(ch) {
-						uncapname := p.scanCapname()
-
-						if !p.isCaptureName(uncapname) {
-							return nil, p.getErr(ErrUndefinedNameRef, uncapname)
-						}
-						uncapnum = p.captureSlotFromName(uncapname)
-
-						// check if we have bogus character after the name
-						if p.charsRight() > 0 && p.rightChar(0) != close {
-							return nil, p.getErr(ErrInvalidGroupName)
-						}
-					} else {
-						// bad group name - starts with something other than a word character and isn't a number
-						return nil, p.getErr(ErrInvalidGroupName)
-					}
-				}
-
-				// actually make the node
-
-				if (capnum != -1 || uncapnum != -1) && p.charsRight() > 0 && p.moveRightGetChar() == close {
-					return newRegexNodeMN(ntCapture, p.options, capnum, uncapnum), nil
-				}
-				goto BreakRecognize
-			}
-
-		case '(':
-			// alternation construct (?(...) | )
-
-			parenPos := p.textpos()
-			if p.charsRight() > 0 {
-				ch = p.rightChar(0)
-
-				// check if the alternation condition is a backref
-				if ch >= '0' && ch <= '9' {
-					var capnum int
-					if capnum, err = p.scanDecimal(); err != nil {
-						return nil, err
-					}
-					if p.charsRight() > 0 && p.moveRightGetChar() == ')' {
-						if p.isCaptureSlot(capnum) {
-							return newRegexNodeM(ntTestref, p.options, capnum), nil
-						}
-						return nil, p.getErr(ErrUndefinedReference, capnum)
-					}
-
-					return nil, p.getErr(ErrMalformedReference, capnum)
-
-				} else if IsWordChar(ch) {
-					capname := p.scanCapname()
-
-					if p.isCaptureName(capname) && p.charsRight() > 0 && p.moveRightGetChar() == ')' {
-						return newRegexNodeM(ntTestref, p.options, p.captureSlotFromName(capname)), nil
-					}
-				}
-			}
-			// not a backref
-			nt = ntTestgroup
-			p.textto(parenPos - 1)   // jump to the start of the parentheses
-			p.ignoreNextParen = true // but make sure we don't try to capture the insides
-
-			charsRight := p.charsRight()
-			if charsRight >= 3 && p.rightChar(1) == '?' {
-				rightchar2 := p.rightChar(2)
-				// disallow comments in the condition
-				if rightchar2 == '#' {
-					return nil, p.getErr(ErrAlternationCantHaveComment)
-				}
-
-				// disallow named capture group (?<..>..) in the condition
-				if rightchar2 == '\'' {
-					return nil, p.getErr(ErrAlternationCantCapture)
-				}
-
-				if charsRight >= 4 && (rightchar2 == '<' && p.rightChar(3) != '!' && p.rightChar(3) != '=') {
-					return nil, p.getErr(ErrAlternationCantCapture)
-				}
-			}
-
-		case 'P':
-			if p.useRE2() {
-				// support for P<name> syntax
-				if p.charsRight() < 3 {
-					goto BreakRecognize
-				}
-
-				ch = p.moveRightGetChar()
-				if ch != '<' {
-					goto BreakRecognize
-				}
-
-				ch = p.moveRightGetChar()
-				p.moveLeft()
-
-				if IsWordChar(ch) {
-					capnum := -1
-					capname := p.scanCapname()
-
-					if p.isCaptureName(capname) {
-						capnum = p.captureSlotFromName(capname)
-					}
-
-					// check if we have bogus character after the name
-					if p.charsRight() > 0 && p.rightChar(0) != '>' {
-						return nil, p.getErr(ErrInvalidGroupName)
-					}
-
-					// actually make the node
-
-					if capnum != -1 && p.charsRight() > 0 && p.moveRightGetChar() == '>' {
-						return newRegexNodeMN(ntCapture, p.options, capnum, -1), nil
-					}
-					goto BreakRecognize
-
-				} else {
-					// bad group name - starts with something other than a word character and isn't a number
-					return nil, p.getErr(ErrInvalidGroupName)
-				}
-			}
-			// if we're not using RE2 compat mode then
-			// we just behave like normal
-			fallthrough
-
-		default:
-			p.moveLeft()
-
-			nt = ntGroup
-			// disallow options in the children of a testgroup node
-			if p.group.t != ntTestgroup {
-				p.scanOptions()
-			}
-			if p.charsRight() == 0 {
-				goto BreakRecognize
-			}
-
-			if ch = p.moveRightGetChar(); ch == ')' {
-				return nil, nil
-			}
-
-			if ch != ':' {
-				goto BreakRecognize
-			}
-
-		}
-
-		return newRegexNode(nt, p.options), nil
-	}
-
-BreakRecognize:
-
-	// break Recognize comes here
-
-	return nil, p.getErr(ErrUnrecognizedGrouping, string(p.pattern[start:p.textpos()]))
-}
-
-// scans backslash specials and basics
-func (p *parser) scanBackslash(scanOnly bool) (*regexNode, error) {
-
-	if p.charsRight() == 0 {
-		return nil, p.getErr(ErrIllegalEndEscape)
-	}
-
-	switch ch := p.rightChar(0); ch {
-	case 'b', 'B', 'A', 'G', 'Z', 'z':
-		p.moveRight(1)
-		return newRegexNode(p.typeFromCode(ch), p.options), nil
-
-	case 'w':
-		p.moveRight(1)
-		if p.useOptionE() {
-			return newRegexNodeSet(ntSet, p.options, ECMAWordClass()), nil
-		}
-		return newRegexNodeSet(ntSet, p.options, WordClass()), nil
-
-	case 'W':
-		p.moveRight(1)
-		if p.useOptionE() {
-			return newRegexNodeSet(ntSet, p.options, NotECMAWordClass()), nil
-		}
-		return newRegexNodeSet(ntSet, p.options, NotWordClass()), nil
-
-	case 's':
-		p.moveRight(1)
-		if p.useOptionE() {
-			return newRegexNodeSet(ntSet, p.options, ECMASpaceClass()), nil
-		}
-		return newRegexNodeSet(ntSet, p.options, SpaceClass()), nil
-
-	case 'S':
-		p.moveRight(1)
-		if p.useOptionE() {
-			return newRegexNodeSet(ntSet, p.options, NotECMASpaceClass()), nil
-		}
-		return newRegexNodeSet(ntSet, p.options, NotSpaceClass()), nil
-
-	case 'd':
-		p.moveRight(1)
-		if p.useOptionE() {
-			return newRegexNodeSet(ntSet, p.options, ECMADigitClass()), nil
-		}
-		return newRegexNodeSet(ntSet, p.options, DigitClass()), nil
-
-	case 'D':
-		p.moveRight(1)
-		if p.useOptionE() {
-			return newRegexNodeSet(ntSet, p.options, NotECMADigitClass()), nil
-		}
-		return newRegexNodeSet(ntSet, p.options, NotDigitClass()), nil
-
-	case 'p', 'P':
-		p.moveRight(1)
-		prop, err := p.parseProperty()
-		if err != nil {
-			return nil, err
-		}
-		cc := &CharSet{}
-		cc.addCategory(prop, (ch != 'p'), p.useOptionI(), p.patternRaw)
-		if p.useOptionI() {
-			cc.addLowercase()
-		}
-
-		return newRegexNodeSet(ntSet, p.options, cc), nil
-
-	default:
-		return p.scanBasicBackslash(scanOnly)
-	}
-}
-
-// Scans \-style backreferences and character escapes
-func (p *parser) scanBasicBackslash(scanOnly bool) (*regexNode, error) {
-	if p.charsRight() == 0 {
-		return nil, p.getErr(ErrIllegalEndEscape)
-	}
-	angled := false
-	close := '\x00'
-
-	backpos := p.textpos()
-	ch := p.rightChar(0)
-
-	// allow \k<foo> instead of \<foo>, which is now deprecated
-
-	if ch == 'k' {
-		if p.charsRight() >= 2 {
-			p.moveRight(1)
-			ch = p.moveRightGetChar()
-
-			if ch == '<' || ch == '\'' {
-				angled = true
-				if ch == '\'' {
-					close = '\''
-				} else {
-					close = '>'
-				}
-			}
-		}
-
-		if !angled || p.charsRight() <= 0 {
-			return nil, p.getErr(ErrMalformedNameRef)
-		}
-
-		ch = p.rightChar(0)
-
-	} else if (ch == '<' || ch == '\'') && p.charsRight() > 1 { // Note angle without \g
-		angled = true
-		if ch == '\'' {
-			close = '\''
-		} else {
-			close = '>'
-		}
-
-		p.moveRight(1)
-		ch = p.rightChar(0)
-	}
-
-	// Try to parse backreference: \<1> or \<cap>
-
-	if angled && ch >= '0' && ch <= '9' {
-		capnum, err := p.scanDecimal()
-		if err != nil {
-			return nil, err
-		}
-
-		if p.charsRight() > 0 && p.moveRightGetChar() == close {
-			if p.isCaptureSlot(capnum) {
-				return newRegexNodeM(ntRef, p.options, capnum), nil
-			}
-			return nil, p.getErr(ErrUndefinedBackRef, capnum)
-		}
-	} else if !angled && ch >= '1' && ch <= '9' { // Try to parse backreference or octal: \1
-		capnum, err := p.scanDecimal()
-		if err != nil {
-			return nil, err
-		}
-
-		if scanOnly {
-			return nil, nil
-		}
-
-		if p.isCaptureSlot(capnum) {
-			return newRegexNodeM(ntRef, p.options, capnum), nil
-		}
-		if capnum <= 9 && !p.useOptionE() {
-			return nil, p.getErr(ErrUndefinedBackRef, capnum)
-		}
-
-	} else if angled && IsWordChar(ch) {
-		capname := p.scanCapname()
-
-		if p.charsRight() > 0 && p.moveRightGetChar() == close {
-			if p.isCaptureName(capname) {
-				return newRegexNodeM(ntRef, p.options, p.captureSlotFromName(capname)), nil
-			}
-			return nil, p.getErr(ErrUndefinedNameRef, capname)
-		}
-	}
-
-	// Not backreference: must be char code
-
-	p.textto(backpos)
-	ch, err := p.scanCharEscape()
-	if err != nil {
-		return nil, err
-	}
-
-	if p.useOptionI() {
-		ch = unicode.ToLower(ch)
-	}
-
-	return newRegexNodeCh(ntOne, p.options, ch), nil
-}
-
-// Scans X for \p{X} or \P{X}
-func (p *parser) parseProperty() (string, error) {
-	if p.charsRight() < 3 {
-		return "", p.getErr(ErrIncompleteSlashP)
-	}
-	ch := p.moveRightGetChar()
-	if ch != '{' {
-		return "", p.getErr(ErrMalformedSlashP)
-	}
-
-	startpos := p.textpos()
-	for p.charsRight() > 0 {
-		ch = p.moveRightGetChar()
-		if !(IsWordChar(ch) || ch == '-') {
-			p.moveLeft()
-			break
-		}
-	}
-	capname := string(p.pattern[startpos:p.textpos()])
-
-	if p.charsRight() == 0 || p.moveRightGetChar() != '}' {
-		return "", p.getErr(ErrIncompleteSlashP)
-	}
-
-	if !isValidUnicodeCat(capname) {
-		return "", p.getErr(ErrUnknownSlashP, capname)
-	}
-
-	return capname, nil
-}
-
-// Returns ReNode type for zero-length assertions with a \ code.
-func (p *parser) typeFromCode(ch rune) nodeType {
-	switch ch {
-	case 'b':
-		if p.useOptionE() {
-			return ntECMABoundary
-		}
-		return ntBoundary
-	case 'B':
-		if p.useOptionE() {
-			return ntNonECMABoundary
-		}
-		return ntNonboundary
-	case 'A':
-		return ntBeginning
-	case 'G':
-		return ntStart
-	case 'Z':
-		return ntEndZ
-	case 'z':
-		return ntEnd
-	default:
-		return ntNothing
-	}
-}
-
-// Scans whitespace or x-mode comments.
-func (p *parser) scanBlank() error {
-	if p.useOptionX() {
-		for {
-			for p.charsRight() > 0 && isSpace(p.rightChar(0)) {
-				p.moveRight(1)
-			}
-
-			if p.charsRight() == 0 {
-				break
-			}
-
-			if p.rightChar(0) == '#' {
-				for p.charsRight() > 0 && p.rightChar(0) != '\n' {
-					p.moveRight(1)
-				}
-			} else if p.charsRight() >= 3 && p.rightChar(2) == '#' &&
-				p.rightChar(1) == '?' && p.rightChar(0) == '(' {
-				for p.charsRight() > 0 && p.rightChar(0) != ')' {
-					p.moveRight(1)
-				}
-				if p.charsRight() == 0 {
-					return p.getErr(ErrUnterminatedComment)
-				}
-				p.moveRight(1)
-			} else {
-				break
-			}
-		}
-	} else {
-		for {
-			if p.charsRight() < 3 || p.rightChar(2) != '#' ||
-				p.rightChar(1) != '?' || p.rightChar(0) != '(' {
-				return nil
-			}
-
-			for p.charsRight() > 0 && p.rightChar(0) != ')' {
-				p.moveRight(1)
-			}
-			if p.charsRight() == 0 {
-				return p.getErr(ErrUnterminatedComment)
-			}
-			p.moveRight(1)
-		}
-	}
-	return nil
-}
-
-func (p *parser) scanCapname() string {
-	startpos := p.textpos()
-
-	for p.charsRight() > 0 {
-		if !IsWordChar(p.moveRightGetChar()) {
-			p.moveLeft()
-			break
-		}
-	}
-
-	return string(p.pattern[startpos:p.textpos()])
-}
-
-//Scans contents of [] (not including []'s), and converts to a set.
-func (p *parser) scanCharSet(caseInsensitive, scanOnly bool) (*CharSet, error) {
-	ch := '\x00'
-	chPrev := '\x00'
-	inRange := false
-	firstChar := true
-	closed := false
-
-	var cc *CharSet
-	if !scanOnly {
-		cc = &CharSet{}
-	}
-
-	if p.charsRight() > 0 && p.rightChar(0) == '^' {
-		p.moveRight(1)
-		if !scanOnly {
-			cc.negate = true
-		}
-	}
-
-	for ; p.charsRight() > 0; firstChar = false {
-		fTranslatedChar := false
-		ch = p.moveRightGetChar()
-		if ch == ']' {
-			if !firstChar {
-				closed = true
-				break
-			} else if p.useOptionE() {
-				if !scanOnly {
-					cc.addRanges(NoneClass().ranges)
-				}
-				closed = true
-				break
-			}
-
-		} else if ch == '\\' && p.charsRight() > 0 {
-			switch ch = p.moveRightGetChar(); ch {
-			case 'D', 'd':
-				if !scanOnly {
-					if inRange {
-						return nil, p.getErr(ErrBadClassInCharRange, ch)
-					}
-					cc.addDigit(p.useOptionE(), ch == 'D', p.patternRaw)
-				}
-				continue
-
-			case 'S', 's':
-				if !scanOnly {
-					if inRange {
-						return nil, p.getErr(ErrBadClassInCharRange, ch)
-					}
-					cc.addSpace(p.useOptionE(), ch == 'S')
-				}
-				continue
-
-			case 'W', 'w':
-				if !scanOnly {
-					if inRange {
-						return nil, p.getErr(ErrBadClassInCharRange, ch)
-					}
-
-					cc.addWord(p.useOptionE(), ch == 'W')
-				}
-				continue
-
-			case 'p', 'P':
-				if !scanOnly {
-					if inRange {
-						return nil, p.getErr(ErrBadClassInCharRange, ch)
-					}
-					prop, err := p.parseProperty()
-					if err != nil {
-						return nil, err
-					}
-					cc.addCategory(prop, (ch != 'p'), caseInsensitive, p.patternRaw)
-				} else {
-					p.parseProperty()
-				}
-
-				continue
-
-			case '-':
-				if !scanOnly {
-					cc.addRange(ch, ch)
-				}
-				continue
-
-			default:
-				p.moveLeft()
-				var err error
-				ch, err = p.scanCharEscape() // non-literal character
-				if err != nil {
-					return nil, err
-				}
-				fTranslatedChar = true
-				break // this break will only break out of the switch
-			}
-		} else if ch == '[' {
-			// This is code for Posix style properties - [:Ll:] or [:IsTibetan:].
-			// It currently doesn't do anything other than skip the whole thing!
-			if p.charsRight() > 0 && p.rightChar(0) == ':' && !inRange {
-				savePos := p.textpos()
-
-				p.moveRight(1)
-				negate := false
-				if p.charsRight() > 1 && p.rightChar(0) == '^' {
-					negate = true
-					p.moveRight(1)
-				}
-
-				nm := p.scanCapname() // snag the name
-				if !scanOnly && p.useRE2() {
-					// look up the name since these are valid for RE2
-					// add the group based on the name
-					if ok := cc.addNamedASCII(nm, negate); !ok {
-						return nil, p.getErr(ErrInvalidCharRange)
-					}
-				}
-				if p.charsRight() < 2 || p.moveRightGetChar() != ':' || p.moveRightGetChar() != ']' {
-					p.textto(savePos)
-				} else if p.useRE2() {
-					// move on
-					continue
-				}
-			}
-		}
-
-		if inRange {
-			inRange = false
-			if !scanOnly {
-				if ch == '[' && !fTranslatedChar && !firstChar {
-					// We thought we were in a range, but we're actually starting a subtraction.
-					// In that case, we'll add chPrev to our char class, skip the opening [, and
-					// scan the new character class recursively.
-					cc.addChar(chPrev)
-					sub, err := p.scanCharSet(caseInsensitive, false)
-					if err != nil {
-						return nil, err
-					}
-					cc.addSubtraction(sub)
-
-					if p.charsRight() > 0 && p.rightChar(0) != ']' {
-						return nil, p.getErr(ErrSubtractionMustBeLast)
-					}
-				} else {
-					// a regular range, like a-z
-					if chPrev > ch {
-						return nil, p.getErr(ErrReversedCharRange)
-					}
-					cc.addRange(chPrev, ch)
-				}
-			}
-		} else if p.charsRight() >= 2 && p.rightChar(0) == '-' && p.rightChar(1) != ']' {
-			// this could be the start of a range
-			chPrev = ch
-			inRange = true
-			p.moveRight(1)
-		} else if p.charsRight() >= 1 && ch == '-' && !fTranslatedChar && p.rightChar(0) == '[' && !firstChar {
-			// we aren't in a range, and now there is a subtraction.  Usually this happens
-			// only when a subtraction follows a range, like [a-z-[b]]
-			if !scanOnly {
-				p.moveRight(1)
-				sub, err := p.scanCharSet(caseInsensitive, false)
-				if err != nil {
-					return nil, err
-				}
-				cc.addSubtraction(sub)
-
-				if p.charsRight() > 0 && p.rightChar(0) != ']' {
-					return nil, p.getErr(ErrSubtractionMustBeLast)
-				}
-			} else {
-				p.moveRight(1)
-				p.scanCharSet(caseInsensitive, true)
-			}
-		} else {
-			if !scanOnly {
-				cc.addRange(ch, ch)
-			}
-		}
-	}
-
-	if !closed {
-		return nil, p.getErr(ErrUnterminatedBracket)
-	}
-
-	if !scanOnly && caseInsensitive {
-		cc.addLowercase()
-	}
-
-	return cc, nil
-}
-
-// Scans any number of decimal digits (pegs value at 2^31-1 if too large)
-func (p *parser) scanDecimal() (int, error) {
-	i := 0
-	var d int
-
-	for p.charsRight() > 0 {
-		d = int(p.rightChar(0) - '0')
-		if d < 0 || d > 9 {
-			break
-		}
-		p.moveRight(1)
-
-		if i > maxValueDiv10 || (i == maxValueDiv10 && d > maxValueMod10) {
-			return 0, p.getErr(ErrCaptureGroupOutOfRange)
-		}
-
-		i *= 10
-		i += d
-	}
-
-	return int(i), nil
-}
-
-// Returns true for options allowed only at the top level
-func isOnlyTopOption(option RegexOptions) bool {
-	return option == RightToLeft || option == ECMAScript || option == RE2
-}
-
-// Scans cimsx-cimsx option string, stops at the first unrecognized char.
-func (p *parser) scanOptions() {
-
-	for off := false; p.charsRight() > 0; p.moveRight(1) {
-		ch := p.rightChar(0)
-
-		if ch == '-' {
-			off = true
-		} else if ch == '+' {
-			off = false
-		} else {
-			option := optionFromCode(ch)
-			if option == 0 || isOnlyTopOption(option) {
-				return
-			}
-
-			if off {
-				p.options &= ^option
-			} else {
-				p.options |= option
-			}
-		}
-	}
-}
-
-// Scans \ code for escape codes that map to single unicode chars.
-func (p *parser) scanCharEscape() (r rune, err error) {
-
-	ch := p.moveRightGetChar()
-
-	if ch >= '0' && ch <= '7' {
-		p.moveLeft()
-		return p.scanOctal(), nil
-	}
-
-	pos := p.textpos()
-
-	switch ch {
-	case 'x':
-		// support for \x{HEX} syntax from Perl and PCRE
-		if p.charsRight() > 0 && p.rightChar(0) == '{' {
-			if p.useOptionE() {
-				return ch, nil
-			}
-			p.moveRight(1)
-			return p.scanHexUntilBrace()
-		} else {
-			r, err = p.scanHex(2)
-		}
-	case 'u':
-		r, err = p.scanHex(4)
-	case 'a':
-		return '\u0007', nil
-	case 'b':
-		return '\b', nil
-	case 'e':
-		return '\u001B', nil
-	case 'f':
-		return '\f', nil
-	case 'n':
-		return '\n', nil
-	case 'r':
-		return '\r', nil
-	case 't':
-		return '\t', nil
-	case 'v':
-		return '\u000B', nil
-	case 'c':
-		r, err = p.scanControl()
-	default:
-		if !p.useOptionE() && IsWordChar(ch) {
-			return 0, p.getErr(ErrUnrecognizedEscape, string(ch))
-		}
-		return ch, nil
-	}
-	if err != nil && p.useOptionE() {
-		p.textto(pos)
-		return ch, nil
-	}
-	return
-}
-
-// Grabs and converts an ascii control character
-func (p *parser) scanControl() (rune, error) {
-	if p.charsRight() <= 0 {
-		return 0, p.getErr(ErrMissingControl)
-	}
-
-	ch := p.moveRightGetChar()
-
-	// \ca interpreted as \cA
-
-	if ch >= 'a' && ch <= 'z' {
-		ch = (ch - ('a' - 'A'))
-	}
-	ch = (ch - '@')
-	if ch >= 0 && ch < ' ' {
-		return ch, nil
-	}
-
-	return 0, p.getErr(ErrUnrecognizedControl)
-
-}
-
-// Scan hex digits until we hit a closing brace.
-// Non-hex digits, hex value too large for UTF-8, or running out of chars are errors
-func (p *parser) scanHexUntilBrace() (rune, error) {
-	// PCRE spec reads like unlimited hex digits are allowed, but unicode has a limit
-	// so we can enforce that
-	i := 0
-	hasContent := false
-
-	for p.charsRight() > 0 {
-		ch := p.moveRightGetChar()
-		if ch == '}' {
-			// hit our close brace, we're done here
-			// prevent \x{}
-			if !hasContent {
-				return 0, p.getErr(ErrTooFewHex)
-			}
-			return rune(i), nil
-		}
-		hasContent = true
-		// no brace needs to be hex digit
-		d := hexDigit(ch)
-		if d < 0 {
-			return 0, p.getErr(ErrMissingBrace)
-		}
-
-		i *= 0x10
-		i += d
-
-		if i > unicode.MaxRune {
-			return 0, p.getErr(ErrInvalidHex)
-		}
-	}
-
-	// we only make it here if we run out of digits without finding the brace
-	return 0, p.getErr(ErrMissingBrace)
-}
-
-// Scans exactly c hex digits (c=2 for \xFF, c=4 for \uFFFF)
-func (p *parser) scanHex(c int) (rune, error) {
-
-	i := 0
-
-	if p.charsRight() >= c {
-		for c > 0 {
-			d := hexDigit(p.moveRightGetChar())
-			if d < 0 {
-				break
-			}
-			i *= 0x10
-			i += d
-			c--
-		}
-	}
-
-	if c > 0 {
-		return 0, p.getErr(ErrTooFewHex)
-	}
-
-	return rune(i), nil
-}
-
-// Returns n <= 0xF for a hex digit.
-func hexDigit(ch rune) int {
-
-	if d := uint(ch - '0'); d <= 9 {
-		return int(d)
-	}
-
-	if d := uint(ch - 'a'); d <= 5 {
-		return int(d + 0xa)
-	}
-
-	if d := uint(ch - 'A'); d <= 5 {
-		return int(d + 0xa)
-	}
-
-	return -1
-}
-
-// Scans up to three octal digits (stops before exceeding 0377).
-func (p *parser) scanOctal() rune {
-	// Consume octal chars only up to 3 digits and value 0377
-
-	c := 3
-
-	if c > p.charsRight() {
-		c = p.charsRight()
-	}
-
-	//we know the first char is good because the caller had to check
-	i := 0
-	d := int(p.rightChar(0) - '0')
-	for c > 0 && d <= 7 && d >= 0 {
-		if i >= 0x20 && p.useOptionE() {
-			break
-		}
-		i *= 8
-		i += d
-		c--
-
-		p.moveRight(1)
-		if !p.rightMost() {
-			d = int(p.rightChar(0) - '0')
-		}
-	}
-
-	// Octal codes only go up to 255.  Any larger and the behavior that Perl follows
-	// is simply to truncate the high bits.
-	i &= 0xFF
-
-	return rune(i)
-}
-
-// Returns the current parsing position.
-func (p *parser) textpos() int {
-	return p.currentPos
-}
-
-// Zaps to a specific parsing position.
-func (p *parser) textto(pos int) {
-	p.currentPos = pos
-}
-
-// Returns the char at the right of the current parsing position and advances to the right.
-func (p *parser) moveRightGetChar() rune {
-	ch := p.pattern[p.currentPos]
-	p.currentPos++
-	return ch
-}
-
-// Moves the current position to the right.
-func (p *parser) moveRight(i int) {
-	// default would be 1
-	p.currentPos += i
-}
-
-// Moves the current parsing position one to the left.
-func (p *parser) moveLeft() {
-	p.currentPos--
-}
-
-// Returns the char left of the current parsing position.
-func (p *parser) charAt(i int) rune {
-	return p.pattern[i]
-}
-
-// Returns the char i chars right of the current parsing position.
-func (p *parser) rightChar(i int) rune {
-	// default would be 0
-	return p.pattern[p.currentPos+i]
-}
-
-// Number of characters to the right of the current parsing position.
-func (p *parser) charsRight() int {
-	return len(p.pattern) - p.currentPos
-}
-
-func (p *parser) rightMost() bool {
-	return p.currentPos == len(p.pattern)
-}
-
-// Looks up the slot number for a given name
-func (p *parser) captureSlotFromName(capname string) int {
-	return p.capnames[capname]
-}
-
-// True if the capture slot was noted
-func (p *parser) isCaptureSlot(i int) bool {
-	if p.caps != nil {
-		_, ok := p.caps[i]
-		return ok
-	}
-
-	return (i >= 0 && i < p.capsize)
-}
-
-// Looks up the slot number for a given name
-func (p *parser) isCaptureName(capname string) bool {
-	if p.capnames == nil {
-		return false
-	}
-
-	_, ok := p.capnames[capname]
-	return ok
-}
-
-// option shortcuts
-
-// True if N option disabling '(' autocapture is on.
-func (p *parser) useOptionN() bool {
-	return (p.options & ExplicitCapture) != 0
-}
-
-// True if I option enabling case-insensitivity is on.
-func (p *parser) useOptionI() bool {
-	return (p.options & IgnoreCase) != 0
-}
-
-// True if M option altering meaning of $ and ^ is on.
-func (p *parser) useOptionM() bool {
-	return (p.options & Multiline) != 0
-}
-
-// True if S option altering meaning of . is on.
-func (p *parser) useOptionS() bool {
-	return (p.options & Singleline) != 0
-}
-
-// True if X option enabling whitespace/comment mode is on.
-func (p *parser) useOptionX() bool {
-	return (p.options & IgnorePatternWhitespace) != 0
-}
-
-// True if E option enabling ECMAScript behavior on.
-func (p *parser) useOptionE() bool {
-	return (p.options & ECMAScript) != 0
-}
-
-// true to use RE2 compatibility parsing behavior.
-func (p *parser) useRE2() bool {
-	return (p.options & RE2) != 0
-}
-
-// True if options stack is empty.
-func (p *parser) emptyOptionsStack() bool {
-	return len(p.optionsStack) == 0
-}
-
-// Finish the current quantifiable (when a quantifier is not found or is not possible)
-func (p *parser) addConcatenate() {
-	// The first (| inside a Testgroup group goes directly to the group
-	p.concatenation.addChild(p.unit)
-	p.unit = nil
-}
-
-// Finish the current quantifiable (when a quantifier is found)
-func (p *parser) addConcatenate3(lazy bool, min, max int) {
-	p.concatenation.addChild(p.unit.makeQuantifier(lazy, min, max))
-	p.unit = nil
-}
-
-// Sets the current unit to a single char node
-func (p *parser) addUnitOne(ch rune) {
-	if p.useOptionI() {
-		ch = unicode.ToLower(ch)
-	}
-
-	p.unit = newRegexNodeCh(ntOne, p.options, ch)
-}
-
-// Sets the current unit to a single inverse-char node
-func (p *parser) addUnitNotone(ch rune) {
-	if p.useOptionI() {
-		ch = unicode.ToLower(ch)
-	}
-
-	p.unit = newRegexNodeCh(ntNotone, p.options, ch)
-}
-
-// Sets the current unit to a single set node
-func (p *parser) addUnitSet(set *CharSet) {
-	p.unit = newRegexNodeSet(ntSet, p.options, set)
-}
-
-// Sets the current unit to a subtree
-func (p *parser) addUnitNode(node *regexNode) {
-	p.unit = node
-}
-
-// Sets the current unit to an assertion of the specified type
-func (p *parser) addUnitType(t nodeType) {
-	p.unit = newRegexNode(t, p.options)
-}
-
-// Finish the current group (in response to a ')' or end)
-func (p *parser) addGroup() error {
-	if p.group.t == ntTestgroup || p.group.t == ntTestref {
-		p.group.addChild(p.concatenation.reverseLeft())
-		if (p.group.t == ntTestref && len(p.group.children) > 2) || len(p.group.children) > 3 {
-			return p.getErr(ErrTooManyAlternates)
-		}
-	} else {
-		p.alternation.addChild(p.concatenation.reverseLeft())
-		p.group.addChild(p.alternation)
-	}
-
-	p.unit = p.group
-	return nil
-}
-
-// Pops the option stack, but keeps the current options unchanged.
-func (p *parser) popKeepOptions() {
-	lastIdx := len(p.optionsStack) - 1
-	p.optionsStack = p.optionsStack[:lastIdx]
-}
-
-// Recalls options from the stack.
-func (p *parser) popOptions() {
-	lastIdx := len(p.optionsStack) - 1
-	// get the last item on the stack and then remove it by reslicing
-	p.options = p.optionsStack[lastIdx]
-	p.optionsStack = p.optionsStack[:lastIdx]
-}
-
-// Saves options on a stack.
-func (p *parser) pushOptions() {
-	p.optionsStack = append(p.optionsStack, p.options)
-}
-
-// Add a string to the last concatenate.
-func (p *parser) addToConcatenate(pos, cch int, isReplacement bool) {
-	var node *regexNode
-
-	if cch == 0 {
-		return
-	}
-
-	if cch > 1 {
-		str := p.pattern[pos : pos+cch]
-
-		if p.useOptionI() && !isReplacement {
-			// We do the ToLower character by character for consistency.  With surrogate chars, doing
-			// a ToLower on the entire string could actually change the surrogate pair.  This is more correct
-			// linguistically, but since Regex doesn't support surrogates, it's more important to be
-			// consistent.
-			for i := 0; i < len(str); i++ {
-				str[i] = unicode.ToLower(str[i])
-			}
-		}
-
-		node = newRegexNodeStr(ntMulti, p.options, str)
-	} else {
-		ch := p.charAt(pos)
-
-		if p.useOptionI() && !isReplacement {
-			ch = unicode.ToLower(ch)
-		}
-
-		node = newRegexNodeCh(ntOne, p.options, ch)
-	}
-
-	p.concatenation.addChild(node)
-}
-
-// Push the parser state (in response to an open paren)
-func (p *parser) pushGroup() {
-	p.group.next = p.stack
-	p.alternation.next = p.group
-	p.concatenation.next = p.alternation
-	p.stack = p.concatenation
-}
-
-// Remember the pushed state (in response to a ')')
-func (p *parser) popGroup() error {
-	p.concatenation = p.stack
-	p.alternation = p.concatenation.next
-	p.group = p.alternation.next
-	p.stack = p.group.next
-
-	// The first () inside a Testgroup group goes directly to the group
-	if p.group.t == ntTestgroup && len(p.group.children) == 0 {
-		if p.unit == nil {
-			return p.getErr(ErrConditionalExpression)
-		}
-
-		p.group.addChild(p.unit)
-		p.unit = nil
-	}
-	return nil
-}
-
-// True if the group stack is empty.
-func (p *parser) emptyStack() bool {
-	return p.stack == nil
-}
-
-// Start a new round for the parser state (in response to an open paren or string start)
-func (p *parser) startGroup(openGroup *regexNode) {
-	p.group = openGroup
-	p.alternation = newRegexNode(ntAlternate, p.options)
-	p.concatenation = newRegexNode(ntConcatenate, p.options)
-}
-
-// Finish the current concatenation (in response to a |)
-func (p *parser) addAlternate() {
-	// The | parts inside a Testgroup group go directly to the group
-
-	if p.group.t == ntTestgroup || p.group.t == ntTestref {
-		p.group.addChild(p.concatenation.reverseLeft())
-	} else {
-		p.alternation.addChild(p.concatenation.reverseLeft())
-	}
-
-	p.concatenation = newRegexNode(ntConcatenate, p.options)
-}
-
-// For categorizing ascii characters.
-
-const (
-	Q byte = 5 // quantifier
-	S      = 4 // ordinary stopper
-	Z      = 3 // ScanBlank stopper
-	X      = 2 // whitespace
-	E      = 1 // should be escaped
-)
-
-var _category = []byte{
-	//01  2  3  4  5  6  7  8  9  A  B  C  D  E  F  0  1  2  3  4  5  6  7  8  9  A  B  C  D  E  F
-	0, 0, 0, 0, 0, 0, 0, 0, 0, X, X, X, X, X, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	// !  "  #  $  %  &  '  (  )  *  +  ,  -  .  /  0  1  2  3  4  5  6  7  8  9  :  ;  <  =  >  ?
-	X, 0, 0, Z, S, 0, 0, 0, S, S, Q, Q, 0, 0, S, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, Q,
-	//@A  B  C  D  E  F  G  H  I  J  K  L  M  N  O  P  Q  R  S  T  U  V  W  X  Y  Z  [  \  ]  ^  _
-	0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, S, S, 0, S, 0,
-	//'a  b  c  d  e  f  g  h  i  j  k  l  m  n  o  p  q  r  s  t  u  v  w  x  y  z  {  |  }  ~
-	0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, Q, S, 0, 0, 0,
-}
-
-func isSpace(ch rune) bool {
-	return (ch <= ' ' && _category[ch] == X)
-}
-
-// Returns true for those characters that terminate a string of ordinary chars.
-func isSpecial(ch rune) bool {
-	return (ch <= '|' && _category[ch] >= S)
-}
-
-// Returns true for those characters that terminate a string of ordinary chars.
-func isStopperX(ch rune) bool {
-	return (ch <= '|' && _category[ch] >= X)
-}
-
-// Returns true for those characters that begin a quantifier.
-func isQuantifier(ch rune) bool {
-	return (ch <= '{' && _category[ch] >= Q)
-}
-
-func (p *parser) isTrueQuantifier() bool {
-	nChars := p.charsRight()
-	if nChars == 0 {
-		return false
-	}
-
-	startpos := p.textpos()
-	ch := p.charAt(startpos)
-	if ch != '{' {
-		return ch <= '{' && _category[ch] >= Q
-	}
-
-	//UGLY: this is ugly -- the original code was ugly too
-	pos := startpos
-	for {
-		nChars--
-		if nChars <= 0 {
-			break
-		}
-		pos++
-		ch = p.charAt(pos)
-		if ch < '0' || ch > '9' {
-			break
-		}
-	}
-
-	if nChars == 0 || pos-startpos == 1 {
-		return false
-	}
-	if ch == '}' {
-		return true
-	}
-	if ch != ',' {
-		return false
-	}
-	for {
-		nChars--
-		if nChars <= 0 {
-			break
-		}
-		pos++
-		ch = p.charAt(pos)
-		if ch < '0' || ch > '9' {
-			break
-		}
-	}
-
-	return nChars > 0 && ch == '}'
-}
Index: trunk/vendor/github.com/dlclark/regexp2/syntax/prefix.go
===================================================================
--- trunk/vendor/github.com/dlclark/regexp2/syntax/prefix.go	(revision 67)
+++ 	(revision )
@@ -1,896 +1,0 @@
-package syntax
-
-import (
-	"bytes"
-	"fmt"
-	"strconv"
-	"unicode"
-	"unicode/utf8"
-)
-
-type Prefix struct {
-	PrefixStr       []rune
-	PrefixSet       CharSet
-	CaseInsensitive bool
-}
-
-// It takes a RegexTree and computes the set of chars that can start it.
-func getFirstCharsPrefix(tree *RegexTree) *Prefix {
-	s := regexFcd{
-		fcStack:  make([]regexFc, 32),
-		intStack: make([]int, 32),
-	}
-	fc := s.regexFCFromRegexTree(tree)
-
-	if fc == nil || fc.nullable || fc.cc.IsEmpty() {
-		return nil
-	}
-	fcSet := fc.getFirstChars()
-	return &Prefix{PrefixSet: fcSet, CaseInsensitive: fc.caseInsensitive}
-}
-
-type regexFcd struct {
-	intStack        []int
-	intDepth        int
-	fcStack         []regexFc
-	fcDepth         int
-	skipAllChildren bool // don't process any more children at the current level
-	skipchild       bool // don't process the current child.
-	failed          bool
-}
-
-/*
- * The main FC computation. It does a shortcutted depth-first walk
- * through the tree and calls CalculateFC to emits code before
- * and after each child of an interior node, and at each leaf.
- */
-func (s *regexFcd) regexFCFromRegexTree(tree *RegexTree) *regexFc {
-	curNode := tree.root
-	curChild := 0
-
-	for {
-		if len(curNode.children) == 0 {
-			// This is a leaf node
-			s.calculateFC(curNode.t, curNode, 0)
-		} else if curChild < len(curNode.children) && !s.skipAllChildren {
-			// This is an interior node, and we have more children to analyze
-			s.calculateFC(curNode.t|beforeChild, curNode, curChild)
-
-			if !s.skipchild {
-				curNode = curNode.children[curChild]
-				// this stack is how we get a depth first walk of the tree.
-				s.pushInt(curChild)
-				curChild = 0
-			} else {
-				curChild++
-				s.skipchild = false
-			}
-			continue
-		}
-
-		// This is an interior node where we've finished analyzing all the children, or
-		// the end of a leaf node.
-		s.skipAllChildren = false
-
-		if s.intIsEmpty() {
-			break
-		}
-
-		curChild = s.popInt()
-		curNode = curNode.next
-
-		s.calculateFC(curNode.t|afterChild, curNode, curChild)
-		if s.failed {
-			return nil
-		}
-
-		curChild++
-	}
-
-	if s.fcIsEmpty() {
-		return nil
-	}
-
-	return s.popFC()
-}
-
-// To avoid recursion, we use a simple integer stack.
-// This is the push.
-func (s *regexFcd) pushInt(I int) {
-	if s.intDepth >= len(s.intStack) {
-		expanded := make([]int, s.intDepth*2)
-		copy(expanded, s.intStack)
-		s.intStack = expanded
-	}
-
-	s.intStack[s.intDepth] = I
-	s.intDepth++
-}
-
-// True if the stack is empty.
-func (s *regexFcd) intIsEmpty() bool {
-	return s.intDepth == 0
-}
-
-// This is the pop.
-func (s *regexFcd) popInt() int {
-	s.intDepth--
-	return s.intStack[s.intDepth]
-}
-
-// We also use a stack of RegexFC objects.
-// This is the push.
-func (s *regexFcd) pushFC(fc regexFc) {
-	if s.fcDepth >= len(s.fcStack) {
-		expanded := make([]regexFc, s.fcDepth*2)
-		copy(expanded, s.fcStack)
-		s.fcStack = expanded
-	}
-
-	s.fcStack[s.fcDepth] = fc
-	s.fcDepth++
-}
-
-// True if the stack is empty.
-func (s *regexFcd) fcIsEmpty() bool {
-	return s.fcDepth == 0
-}
-
-// This is the pop.
-func (s *regexFcd) popFC() *regexFc {
-	s.fcDepth--
-	return &s.fcStack[s.fcDepth]
-}
-
-// This is the top.
-func (s *regexFcd) topFC() *regexFc {
-	return &s.fcStack[s.fcDepth-1]
-}
-
-// Called in Beforechild to prevent further processing of the current child
-func (s *regexFcd) skipChild() {
-	s.skipchild = true
-}
-
-// FC computation and shortcut cases for each node type
-func (s *regexFcd) calculateFC(nt nodeType, node *regexNode, CurIndex int) {
-	//fmt.Printf("NodeType: %v, CurIndex: %v, Desc: %v\n", nt, CurIndex, node.description())
-	ci := false
-	rtl := false
-
-	if nt <= ntRef {
-		if (node.options & IgnoreCase) != 0 {
-			ci = true
-		}
-		if (node.options & RightToLeft) != 0 {
-			rtl = true
-		}
-	}
-
-	switch nt {
-	case ntConcatenate | beforeChild, ntAlternate | beforeChild, ntTestref | beforeChild, ntLoop | beforeChild, ntLazyloop | beforeChild:
-		break
-
-	case ntTestgroup | beforeChild:
-		if CurIndex == 0 {
-			s.skipChild()
-		}
-		break
-
-	case ntEmpty:
-		s.pushFC(regexFc{nullable: true})
-		break
-
-	case ntConcatenate | afterChild:
-		if CurIndex != 0 {
-			child := s.popFC()
-			cumul := s.topFC()
-
-			s.failed = !cumul.addFC(*child, true)
-		}
-
-		fc := s.topFC()
-		if !fc.nullable {
-			s.skipAllChildren = true
-		}
-		break
-
-	case ntTestgroup | afterChild:
-		if CurIndex > 1 {
-			child := s.popFC()
-			cumul := s.topFC()
-
-			s.failed = !cumul.addFC(*child, false)
-		}
-		break
-
-	case ntAlternate | afterChild, ntTestref | afterChild:
-		if CurIndex != 0 {
-			child := s.popFC()
-			cumul := s.topFC()
-
-			s.failed = !cumul.addFC(*child, false)
-		}
-		break
-
-	case ntLoop | afterChild, ntLazyloop | afterChild:
-		if node.m == 0 {
-			fc := s.topFC()
-			fc.nullable = true
-		}
-		break
-
-	case ntGroup | beforeChild, ntGroup | afterChild, ntCapture | beforeChild, ntCapture | afterChild, ntGreedy | beforeChild, ntGreedy | afterChild:
-		break
-
-	case ntRequire | beforeChild, ntPrevent | beforeChild:
-		s.skipChild()
-		s.pushFC(regexFc{nullable: true})
-		break
-
-	case ntRequire | afterChild, ntPrevent | afterChild:
-		break
-
-	case ntOne, ntNotone:
-		s.pushFC(newRegexFc(node.ch, nt == ntNotone, false, ci))
-		break
-
-	case ntOneloop, ntOnelazy:
-		s.pushFC(newRegexFc(node.ch, false, node.m == 0, ci))
-		break
-
-	case ntNotoneloop, ntNotonelazy:
-		s.pushFC(newRegexFc(node.ch, true, node.m == 0, ci))
-		break
-
-	case ntMulti:
-		if len(node.str) == 0 {
-			s.pushFC(regexFc{nullable: true})
-		} else if !rtl {
-			s.pushFC(newRegexFc(node.str[0], false, false, ci))
-		} else {
-			s.pushFC(newRegexFc(node.str[len(node.str)-1], false, false, ci))
-		}
-		break
-
-	case ntSet:
-		s.pushFC(regexFc{cc: node.set.Copy(), nullable: false, caseInsensitive: ci})
-		break
-
-	case ntSetloop, ntSetlazy:
-		s.pushFC(regexFc{cc: node.set.Copy(), nullable: node.m == 0, caseInsensitive: ci})
-		break
-
-	case ntRef:
-		s.pushFC(regexFc{cc: *AnyClass(), nullable: true, caseInsensitive: false})
-		break
-
-	case ntNothing, ntBol, ntEol, ntBoundary, ntNonboundary, ntECMABoundary, ntNonECMABoundary, ntBeginning, ntStart, ntEndZ, ntEnd:
-		s.pushFC(regexFc{nullable: true})
-		break
-
-	default:
-		panic(fmt.Sprintf("unexpected op code: %v", nt))
-	}
-}
-
-type regexFc struct {
-	cc              CharSet
-	nullable        bool
-	caseInsensitive bool
-}
-
-func newRegexFc(ch rune, not, nullable, caseInsensitive bool) regexFc {
-	r := regexFc{
-		caseInsensitive: caseInsensitive,
-		nullable:        nullable,
-	}
-	if not {
-		if ch > 0 {
-			r.cc.addRange('\x00', ch-1)
-		}
-		if ch < 0xFFFF {
-			r.cc.addRange(ch+1, utf8.MaxRune)
-		}
-	} else {
-		r.cc.addRange(ch, ch)
-	}
-	return r
-}
-
-func (r *regexFc) getFirstChars() CharSet {
-	if r.caseInsensitive {
-		r.cc.addLowercase()
-	}
-
-	return r.cc
-}
-
-func (r *regexFc) addFC(fc regexFc, concatenate bool) bool {
-	if !r.cc.IsMergeable() || !fc.cc.IsMergeable() {
-		return false
-	}
-
-	if concatenate {
-		if !r.nullable {
-			return true
-		}
-
-		if !fc.nullable {
-			r.nullable = false
-		}
-	} else {
-		if fc.nullable {
-			r.nullable = true
-		}
-	}
-
-	r.caseInsensitive = r.caseInsensitive || fc.caseInsensitive
-	r.cc.addSet(fc.cc)
-
-	return true
-}
-
-// This is a related computation: it takes a RegexTree and computes the
-// leading substring if it sees one. It's quite trivial and gives up easily.
-func getPrefix(tree *RegexTree) *Prefix {
-	var concatNode *regexNode
-	nextChild := 0
-
-	curNode := tree.root
-
-	for {
-		switch curNode.t {
-		case ntConcatenate:
-			if len(curNode.children) > 0 {
-				concatNode = curNode
-				nextChild = 0
-			}
-
-		case ntGreedy, ntCapture:
-			curNode = curNode.children[0]
-			concatNode = nil
-			continue
-
-		case ntOneloop, ntOnelazy:
-			if curNode.m > 0 {
-				return &Prefix{
-					PrefixStr:       repeat(curNode.ch, curNode.m),
-					CaseInsensitive: (curNode.options & IgnoreCase) != 0,
-				}
-			}
-			return nil
-
-		case ntOne:
-			return &Prefix{
-				PrefixStr:       []rune{curNode.ch},
-				CaseInsensitive: (curNode.options & IgnoreCase) != 0,
-			}
-
-		case ntMulti:
-			return &Prefix{
-				PrefixStr:       curNode.str,
-				CaseInsensitive: (curNode.options & IgnoreCase) != 0,
-			}
-
-		case ntBol, ntEol, ntBoundary, ntECMABoundary, ntBeginning, ntStart,
-			ntEndZ, ntEnd, ntEmpty, ntRequire, ntPrevent:
-
-		default:
-			return nil
-		}
-
-		if concatNode == nil || nextChild >= len(concatNode.children) {
-			return nil
-		}
-
-		curNode = concatNode.children[nextChild]
-		nextChild++
-	}
-}
-
-// repeat the rune r, c times... up to the max of MaxPrefixSize
-func repeat(r rune, c int) []rune {
-	if c > MaxPrefixSize {
-		c = MaxPrefixSize
-	}
-
-	ret := make([]rune, c)
-
-	// binary growth using copy for speed
-	ret[0] = r
-	bp := 1
-	for bp < len(ret) {
-		copy(ret[bp:], ret[:bp])
-		bp *= 2
-	}
-
-	return ret
-}
-
-// BmPrefix precomputes the Boyer-Moore
-// tables for fast string scanning. These tables allow
-// you to scan for the first occurrence of a string within
-// a large body of text without examining every character.
-// The performance of the heuristic depends on the actual
-// string and the text being searched, but usually, the longer
-// the string that is being searched for, the fewer characters
-// need to be examined.
-type BmPrefix struct {
-	positive        []int
-	negativeASCII   []int
-	negativeUnicode [][]int
-	pattern         []rune
-	lowASCII        rune
-	highASCII       rune
-	rightToLeft     bool
-	caseInsensitive bool
-}
-
-func newBmPrefix(pattern []rune, caseInsensitive, rightToLeft bool) *BmPrefix {
-
-	b := &BmPrefix{
-		rightToLeft:     rightToLeft,
-		caseInsensitive: caseInsensitive,
-		pattern:         pattern,
-	}
-
-	if caseInsensitive {
-		for i := 0; i < len(b.pattern); i++ {
-			// We do the ToLower character by character for consistency.  With surrogate chars, doing
-			// a ToLower on the entire string could actually change the surrogate pair.  This is more correct
-			// linguistically, but since Regex doesn't support surrogates, it's more important to be
-			// consistent.
-
-			b.pattern[i] = unicode.ToLower(b.pattern[i])
-		}
-	}
-
-	var beforefirst, last, bump int
-	var scan, match int
-
-	if !rightToLeft {
-		beforefirst = -1
-		last = len(b.pattern) - 1
-		bump = 1
-	} else {
-		beforefirst = len(b.pattern)
-		last = 0
-		bump = -1
-	}
-
-	// PART I - the good-suffix shift table
-	//
-	// compute the positive requirement:
-	// if char "i" is the first one from the right that doesn't match,
-	// then we know the matcher can advance by _positive[i].
-	//
-	// This algorithm is a simplified variant of the standard
-	// Boyer-Moore good suffix calculation.
-
-	b.positive = make([]int, len(b.pattern))
-
-	examine := last
-	ch := b.pattern[examine]
-	b.positive[examine] = bump
-	examine -= bump
-
-Outerloop:
-	for {
-		// find an internal char (examine) that matches the tail
-
-		for {
-			if examine == beforefirst {
-				break Outerloop
-			}
-			if b.pattern[examine] == ch {
-				break
-			}
-			examine -= bump
-		}
-
-		match = last
-		scan = examine
-
-		// find the length of the match
-		for {
-			if scan == beforefirst || b.pattern[match] != b.pattern[scan] {
-				// at the end of the match, note the difference in _positive
-				// this is not the length of the match, but the distance from the internal match
-				// to the tail suffix.
-				if b.positive[match] == 0 {
-					b.positive[match] = match - scan
-				}
-
-				// System.Diagnostics.Debug.WriteLine("Set positive[" + match + "] to " + (match - scan));
-
-				break
-			}
-
-			scan -= bump
-			match -= bump
-		}
-
-		examine -= bump
-	}
-
-	match = last - bump
-
-	// scan for the chars for which there are no shifts that yield a different candidate
-
-	// The inside of the if statement used to say
-	// "_positive[match] = last - beforefirst;"
-	// This is slightly less aggressive in how much we skip, but at worst it
-	// should mean a little more work rather than skipping a potential match.
-	for match != beforefirst {
-		if b.positive[match] == 0 {
-			b.positive[match] = bump
-		}
-
-		match -= bump
-	}
-
-	// PART II - the bad-character shift table
-	//
-	// compute the negative requirement:
-	// if char "ch" is the reject character when testing position "i",
-	// we can slide up by _negative[ch];
-	// (_negative[ch] = str.Length - 1 - str.LastIndexOf(ch))
-	//
-	// the lookup table is divided into ASCII and Unicode portions;
-	// only those parts of the Unicode 16-bit code set that actually
-	// appear in the string are in the table. (Maximum size with
-	// Unicode is 65K; ASCII only case is 512 bytes.)
-
-	b.negativeASCII = make([]int, 128)
-
-	for i := 0; i < len(b.negativeASCII); i++ {
-		b.negativeASCII[i] = last - beforefirst
-	}
-
-	b.lowASCII = 127
-	b.highASCII = 0
-
-	for examine = last; examine != beforefirst; examine -= bump {
-		ch = b.pattern[examine]
-
-		switch {
-		case ch < 128:
-			if b.lowASCII > ch {
-				b.lowASCII = ch
-			}
-
-			if b.highASCII < ch {
-				b.highASCII = ch
-			}
-
-			if b.negativeASCII[ch] == last-beforefirst {
-				b.negativeASCII[ch] = last - examine
-			}
-		case ch <= 0xffff:
-			i, j := ch>>8, ch&0xFF
-
-			if b.negativeUnicode == nil {
-				b.negativeUnicode = make([][]int, 256)
-			}
-
-			if b.negativeUnicode[i] == nil {
-				newarray := make([]int, 256)
-
-				for k := 0; k < len(newarray); k++ {
-					newarray[k] = last - beforefirst
-				}
-
-				if i == 0 {
-					copy(newarray, b.negativeASCII)
-					//TODO: this line needed?
-					b.negativeASCII = newarray
-				}
-
-				b.negativeUnicode[i] = newarray
-			}
-
-			if b.negativeUnicode[i][j] == last-beforefirst {
-				b.negativeUnicode[i][j] = last - examine
-			}
-		default:
-			// we can't do the filter because this algo doesn't support
-			// unicode chars >0xffff
-			return nil
-		}
-	}
-
-	return b
-}
-
-func (b *BmPrefix) String() string {
-	return string(b.pattern)
-}
-
-// Dump returns the contents of the filter as a human readable string
-func (b *BmPrefix) Dump(indent string) string {
-	buf := &bytes.Buffer{}
-
-	fmt.Fprintf(buf, "%sBM Pattern: %s\n%sPositive: ", indent, string(b.pattern), indent)
-	for i := 0; i < len(b.positive); i++ {
-		buf.WriteString(strconv.Itoa(b.positive[i]))
-		buf.WriteRune(' ')
-	}
-	buf.WriteRune('\n')
-
-	if b.negativeASCII != nil {
-		buf.WriteString(indent)
-		buf.WriteString("Negative table\n")
-		for i := 0; i < len(b.negativeASCII); i++ {
-			if b.negativeASCII[i] != len(b.pattern) {
-				fmt.Fprintf(buf, "%s  %s %s\n", indent, Escape(string(rune(i))), strconv.Itoa(b.negativeASCII[i]))
-			}
-		}
-	}
-
-	return buf.String()
-}
-
-// Scan uses the Boyer-Moore algorithm to find the first occurrence
-// of the specified string within text, beginning at index, and
-// constrained within beglimit and endlimit.
-//
-// The direction and case-sensitivity of the match is determined
-// by the arguments to the RegexBoyerMoore constructor.
-func (b *BmPrefix) Scan(text []rune, index, beglimit, endlimit int) int {
-	var (
-		defadv, test, test2         int
-		match, startmatch, endmatch int
-		bump, advance               int
-		chTest                      rune
-		unicodeLookup               []int
-	)
-
-	if !b.rightToLeft {
-		defadv = len(b.pattern)
-		startmatch = len(b.pattern) - 1
-		endmatch = 0
-		test = index + defadv - 1
-		bump = 1
-	} else {
-		defadv = -len(b.pattern)
-		startmatch = 0
-		endmatch = -defadv - 1
-		test = index + defadv
-		bump = -1
-	}
-
-	chMatch := b.pattern[startmatch]
-
-	for {
-		if test >= endlimit || test < beglimit {
-			return -1
-		}
-
-		chTest = text[test]
-
-		if b.caseInsensitive {
-			chTest = unicode.ToLower(chTest)
-		}
-
-		if chTest != chMatch {
-			if chTest < 128 {
-				advance = b.negativeASCII[chTest]
-			} else if chTest < 0xffff && len(b.negativeUnicode) > 0 {
-				unicodeLookup = b.negativeUnicode[chTest>>8]
-				if len(unicodeLookup) > 0 {
-					advance = unicodeLookup[chTest&0xFF]
-				} else {
-					advance = defadv
-				}
-			} else {
-				advance = defadv
-			}
-
-			test += advance
-		} else { // if (chTest == chMatch)
-			test2 = test
-			match = startmatch
-
-			for {
-				if match == endmatch {
-					if b.rightToLeft {
-						return test2 + 1
-					} else {
-						return test2
-					}
-				}
-
-				match -= bump
-				test2 -= bump
-
-				chTest = text[test2]
-
-				if b.caseInsensitive {
-					chTest = unicode.ToLower(chTest)
-				}
-
-				if chTest != b.pattern[match] {
-					advance = b.positive[match]
-					if (chTest & 0xFF80) == 0 {
-						test2 = (match - startmatch) + b.negativeASCII[chTest]
-					} else if chTest < 0xffff && len(b.negativeUnicode) > 0 {
-						unicodeLookup = b.negativeUnicode[chTest>>8]
-						if len(unicodeLookup) > 0 {
-							test2 = (match - startmatch) + unicodeLookup[chTest&0xFF]
-						} else {
-							test += advance
-							break
-						}
-					} else {
-						test += advance
-						break
-					}
-
-					if b.rightToLeft {
-						if test2 < advance {
-							advance = test2
-						}
-					} else if test2 > advance {
-						advance = test2
-					}
-
-					test += advance
-					break
-				}
-			}
-		}
-	}
-}
-
-// When a regex is anchored, we can do a quick IsMatch test instead of a Scan
-func (b *BmPrefix) IsMatch(text []rune, index, beglimit, endlimit int) bool {
-	if !b.rightToLeft {
-		if index < beglimit || endlimit-index < len(b.pattern) {
-			return false
-		}
-
-		return b.matchPattern(text, index)
-	} else {
-		if index > endlimit || index-beglimit < len(b.pattern) {
-			return false
-		}
-
-		return b.matchPattern(text, index-len(b.pattern))
-	}
-}
-
-func (b *BmPrefix) matchPattern(text []rune, index int) bool {
-	if len(text)-index < len(b.pattern) {
-		return false
-	}
-
-	if b.caseInsensitive {
-		for i := 0; i < len(b.pattern); i++ {
-			//Debug.Assert(textinfo.ToLower(_pattern[i]) == _pattern[i], "pattern should be converted to lower case in constructor!");
-			if unicode.ToLower(text[index+i]) != b.pattern[i] {
-				return false
-			}
-		}
-		return true
-	} else {
-		for i := 0; i < len(b.pattern); i++ {
-			if text[index+i] != b.pattern[i] {
-				return false
-			}
-		}
-		return true
-	}
-}
-
-type AnchorLoc int16
-
-// where the regex can be pegged
-const (
-	AnchorBeginning    AnchorLoc = 0x0001
-	AnchorBol                    = 0x0002
-	AnchorStart                  = 0x0004
-	AnchorEol                    = 0x0008
-	AnchorEndZ                   = 0x0010
-	AnchorEnd                    = 0x0020
-	AnchorBoundary               = 0x0040
-	AnchorECMABoundary           = 0x0080
-)
-
-func getAnchors(tree *RegexTree) AnchorLoc {
-
-	var concatNode *regexNode
-	nextChild, result := 0, AnchorLoc(0)
-
-	curNode := tree.root
-
-	for {
-		switch curNode.t {
-		case ntConcatenate:
-			if len(curNode.children) > 0 {
-				concatNode = curNode
-				nextChild = 0
-			}
-
-		case ntGreedy, ntCapture:
-			curNode = curNode.children[0]
-			concatNode = nil
-			continue
-
-		case ntBol, ntEol, ntBoundary, ntECMABoundary, ntBeginning,
-			ntStart, ntEndZ, ntEnd:
-			return result | anchorFromType(curNode.t)
-
-		case ntEmpty, ntRequire, ntPrevent:
-
-		default:
-			return result
-		}
-
-		if concatNode == nil || nextChild >= len(concatNode.children) {
-			return result
-		}
-
-		curNode = concatNode.children[nextChild]
-		nextChild++
-	}
-}
-
-func anchorFromType(t nodeType) AnchorLoc {
-	switch t {
-	case ntBol:
-		return AnchorBol
-	case ntEol:
-		return AnchorEol
-	case ntBoundary:
-		return AnchorBoundary
-	case ntECMABoundary:
-		return AnchorECMABoundary
-	case ntBeginning:
-		return AnchorBeginning
-	case ntStart:
-		return AnchorStart
-	case ntEndZ:
-		return AnchorEndZ
-	case ntEnd:
-		return AnchorEnd
-	default:
-		return 0
-	}
-}
-
-// anchorDescription returns a human-readable description of the anchors
-func (anchors AnchorLoc) String() string {
-	buf := &bytes.Buffer{}
-
-	if 0 != (anchors & AnchorBeginning) {
-		buf.WriteString(", Beginning")
-	}
-	if 0 != (anchors & AnchorStart) {
-		buf.WriteString(", Start")
-	}
-	if 0 != (anchors & AnchorBol) {
-		buf.WriteString(", Bol")
-	}
-	if 0 != (anchors & AnchorBoundary) {
-		buf.WriteString(", Boundary")
-	}
-	if 0 != (anchors & AnchorECMABoundary) {
-		buf.WriteString(", ECMABoundary")
-	}
-	if 0 != (anchors & AnchorEol) {
-		buf.WriteString(", Eol")
-	}
-	if 0 != (anchors & AnchorEnd) {
-		buf.WriteString(", End")
-	}
-	if 0 != (anchors & AnchorEndZ) {
-		buf.WriteString(", EndZ")
-	}
-
-	// trim off comma
-	if buf.Len() >= 2 {
-		return buf.String()[2:]
-	}
-	return "None"
-}
Index: trunk/vendor/github.com/dlclark/regexp2/syntax/replacerdata.go
===================================================================
--- trunk/vendor/github.com/dlclark/regexp2/syntax/replacerdata.go	(revision 67)
+++ 	(revision )
@@ -1,87 +1,0 @@
-package syntax
-
-import (
-	"bytes"
-	"errors"
-)
-
-type ReplacerData struct {
-	Rep     string
-	Strings []string
-	Rules   []int
-}
-
-const (
-	replaceSpecials     = 4
-	replaceLeftPortion  = -1
-	replaceRightPortion = -2
-	replaceLastGroup    = -3
-	replaceWholeString  = -4
-)
-
-//ErrReplacementError is a general error during parsing the replacement text
-var ErrReplacementError = errors.New("Replacement pattern error.")
-
-// NewReplacerData will populate a reusable replacer data struct based on the given replacement string
-// and the capture group data from a regexp
-func NewReplacerData(rep string, caps map[int]int, capsize int, capnames map[string]int, op RegexOptions) (*ReplacerData, error) {
-	p := parser{
-		options:  op,
-		caps:     caps,
-		capsize:  capsize,
-		capnames: capnames,
-	}
-	p.setPattern(rep)
-	concat, err := p.scanReplacement()
-	if err != nil {
-		return nil, err
-	}
-
-	if concat.t != ntConcatenate {
-		panic(ErrReplacementError)
-	}
-
-	sb := &bytes.Buffer{}
-	var (
-		strings []string
-		rules   []int
-	)
-
-	for _, child := range concat.children {
-		switch child.t {
-		case ntMulti:
-			child.writeStrToBuf(sb)
-
-		case ntOne:
-			sb.WriteRune(child.ch)
-
-		case ntRef:
-			if sb.Len() > 0 {
-				rules = append(rules, len(strings))
-				strings = append(strings, sb.String())
-				sb.Reset()
-			}
-			slot := child.m
-
-			if len(caps) > 0 && slot >= 0 {
-				slot = caps[slot]
-			}
-
-			rules = append(rules, -replaceSpecials-1-slot)
-
-		default:
-			panic(ErrReplacementError)
-		}
-	}
-
-	if sb.Len() > 0 {
-		rules = append(rules, len(strings))
-		strings = append(strings, sb.String())
-	}
-
-	return &ReplacerData{
-		Rep:     rep,
-		Strings: strings,
-		Rules:   rules,
-	}, nil
-}
Index: trunk/vendor/github.com/dlclark/regexp2/syntax/tree.go
===================================================================
--- trunk/vendor/github.com/dlclark/regexp2/syntax/tree.go	(revision 67)
+++ 	(revision )
@@ -1,654 +1,0 @@
-package syntax
-
-import (
-	"bytes"
-	"fmt"
-	"math"
-	"strconv"
-)
-
-type RegexTree struct {
-	root       *regexNode
-	caps       map[int]int
-	capnumlist []int
-	captop     int
-	Capnames   map[string]int
-	Caplist    []string
-	options    RegexOptions
-}
-
-// It is built into a parsed tree for a regular expression.
-
-// Implementation notes:
-//
-// Since the node tree is a temporary data structure only used
-// during compilation of the regexp to integer codes, it's
-// designed for clarity and convenience rather than
-// space efficiency.
-//
-// RegexNodes are built into a tree, linked by the n.children list.
-// Each node also has a n.parent and n.ichild member indicating
-// its parent and which child # it is in its parent's list.
-//
-// RegexNodes come in as many types as there are constructs in
-// a regular expression, for example, "concatenate", "alternate",
-// "one", "rept", "group". There are also node types for basic
-// peephole optimizations, e.g., "onerep", "notsetrep", etc.
-//
-// Because perl 5 allows "lookback" groups that scan backwards,
-// each node also gets a "direction". Normally the value of
-// boolean n.backward = false.
-//
-// During parsing, top-level nodes are also stacked onto a parse
-// stack (a stack of trees). For this purpose we have a n.next
-// pointer. [Note that to save a few bytes, we could overload the
-// n.parent pointer instead.]
-//
-// On the parse stack, each tree has a "role" - basically, the
-// nonterminal in the grammar that the parser has currently
-// assigned to the tree. That code is stored in n.role.
-//
-// Finally, some of the different kinds of nodes have data.
-// Two integers (for the looping constructs) are stored in
-// n.operands, an an object (either a string or a set)
-// is stored in n.data
-type regexNode struct {
-	t        nodeType
-	children []*regexNode
-	str      []rune
-	set      *CharSet
-	ch       rune
-	m        int
-	n        int
-	options  RegexOptions
-	next     *regexNode
-}
-
-type nodeType int32
-
-const (
-	// The following are leaves, and correspond to primitive operations
-
-	ntOnerep      nodeType = 0  // lef,back char,min,max    a {n}
-	ntNotonerep            = 1  // lef,back char,min,max    .{n}
-	ntSetrep               = 2  // lef,back set,min,max     [\d]{n}
-	ntOneloop              = 3  // lef,back char,min,max    a {,n}
-	ntNotoneloop           = 4  // lef,back char,min,max    .{,n}
-	ntSetloop              = 5  // lef,back set,min,max     [\d]{,n}
-	ntOnelazy              = 6  // lef,back char,min,max    a {,n}?
-	ntNotonelazy           = 7  // lef,back char,min,max    .{,n}?
-	ntSetlazy              = 8  // lef,back set,min,max     [\d]{,n}?
-	ntOne                  = 9  // lef      char            a
-	ntNotone               = 10 // lef      char            [^a]
-	ntSet                  = 11 // lef      set             [a-z\s]  \w \s \d
-	ntMulti                = 12 // lef      string          abcd
-	ntRef                  = 13 // lef      group           \#
-	ntBol                  = 14 //                          ^
-	ntEol                  = 15 //                          $
-	ntBoundary             = 16 //                          \b
-	ntNonboundary          = 17 //                          \B
-	ntBeginning            = 18 //                          \A
-	ntStart                = 19 //                          \G
-	ntEndZ                 = 20 //                          \Z
-	ntEnd                  = 21 //                          \Z
-
-	// Interior nodes do not correspond to primitive operations, but
-	// control structures compositing other operations
-
-	// Concat and alternate take n children, and can run forward or backwards
-
-	ntNothing     = 22 //          []
-	ntEmpty       = 23 //          ()
-	ntAlternate   = 24 //          a|b
-	ntConcatenate = 25 //          ab
-	ntLoop        = 26 // m,x      * + ? {,}
-	ntLazyloop    = 27 // m,x      *? +? ?? {,}?
-	ntCapture     = 28 // n        ()
-	ntGroup       = 29 //          (?:)
-	ntRequire     = 30 //          (?=) (?<=)
-	ntPrevent     = 31 //          (?!) (?<!)
-	ntGreedy      = 32 //          (?>) (?<)
-	ntTestref     = 33 //          (?(n) | )
-	ntTestgroup   = 34 //          (?(...) | )
-
-	ntECMABoundary    = 41 //                          \b
-	ntNonECMABoundary = 42 //                          \B
-)
-
-func newRegexNode(t nodeType, opt RegexOptions) *regexNode {
-	return &regexNode{
-		t:       t,
-		options: opt,
-	}
-}
-
-func newRegexNodeCh(t nodeType, opt RegexOptions, ch rune) *regexNode {
-	return &regexNode{
-		t:       t,
-		options: opt,
-		ch:      ch,
-	}
-}
-
-func newRegexNodeStr(t nodeType, opt RegexOptions, str []rune) *regexNode {
-	return &regexNode{
-		t:       t,
-		options: opt,
-		str:     str,
-	}
-}
-
-func newRegexNodeSet(t nodeType, opt RegexOptions, set *CharSet) *regexNode {
-	return &regexNode{
-		t:       t,
-		options: opt,
-		set:     set,
-	}
-}
-
-func newRegexNodeM(t nodeType, opt RegexOptions, m int) *regexNode {
-	return &regexNode{
-		t:       t,
-		options: opt,
-		m:       m,
-	}
-}
-func newRegexNodeMN(t nodeType, opt RegexOptions, m, n int) *regexNode {
-	return &regexNode{
-		t:       t,
-		options: opt,
-		m:       m,
-		n:       n,
-	}
-}
-
-func (n *regexNode) writeStrToBuf(buf *bytes.Buffer) {
-	for i := 0; i < len(n.str); i++ {
-		buf.WriteRune(n.str[i])
-	}
-}
-
-func (n *regexNode) addChild(child *regexNode) {
-	reduced := child.reduce()
-	n.children = append(n.children, reduced)
-	reduced.next = n
-}
-
-func (n *regexNode) insertChildren(afterIndex int, nodes []*regexNode) {
-	newChildren := make([]*regexNode, 0, len(n.children)+len(nodes))
-	n.children = append(append(append(newChildren, n.children[:afterIndex]...), nodes...), n.children[afterIndex:]...)
-}
-
-// removes children including the start but not the end index
-func (n *regexNode) removeChildren(startIndex, endIndex int) {
-	n.children = append(n.children[:startIndex], n.children[endIndex:]...)
-}
-
-// Pass type as OneLazy or OneLoop
-func (n *regexNode) makeRep(t nodeType, min, max int) {
-	n.t += (t - ntOne)
-	n.m = min
-	n.n = max
-}
-
-func (n *regexNode) reduce() *regexNode {
-	switch n.t {
-	case ntAlternate:
-		return n.reduceAlternation()
-
-	case ntConcatenate:
-		return n.reduceConcatenation()
-
-	case ntLoop, ntLazyloop:
-		return n.reduceRep()
-
-	case ntGroup:
-		return n.reduceGroup()
-
-	case ntSet, ntSetloop:
-		return n.reduceSet()
-
-	default:
-		return n
-	}
-}
-
-// Basic optimization. Single-letter alternations can be replaced
-// by faster set specifications, and nested alternations with no
-// intervening operators can be flattened:
-//
-// a|b|c|def|g|h -> [a-c]|def|[gh]
-// apple|(?:orange|pear)|grape -> apple|orange|pear|grape
-func (n *regexNode) reduceAlternation() *regexNode {
-	if len(n.children) == 0 {
-		return newRegexNode(ntNothing, n.options)
-	}
-
-	wasLastSet := false
-	lastNodeCannotMerge := false
-	var optionsLast RegexOptions
-	var i, j int
-
-	for i, j = 0, 0; i < len(n.children); i, j = i+1, j+1 {
-		at := n.children[i]
-
-		if j < i {
-			n.children[j] = at
-		}
-
-		for {
-			if at.t == ntAlternate {
-				for k := 0; k < len(at.children); k++ {
-					at.children[k].next = n
-				}
-				n.insertChildren(i+1, at.children)
-
-				j--
-			} else if at.t == ntSet || at.t == ntOne {
-				// Cannot merge sets if L or I options differ, or if either are negated.
-				optionsAt := at.options & (RightToLeft | IgnoreCase)
-
-				if at.t == ntSet {
-					if !wasLastSet || optionsLast != optionsAt || lastNodeCannotMerge || !at.set.IsMergeable() {
-						wasLastSet = true
-						lastNodeCannotMerge = !at.set.IsMergeable()
-						optionsLast = optionsAt
-						break
-					}
-				} else if !wasLastSet || optionsLast != optionsAt || lastNodeCannotMerge {
-					wasLastSet = true
-					lastNodeCannotMerge = false
-					optionsLast = optionsAt
-					break
-				}
-
-				// The last node was a Set or a One, we're a Set or One and our options are the same.
-				// Merge the two nodes.
-				j--
-				prev := n.children[j]
-
-				var prevCharClass *CharSet
-				if prev.t == ntOne {
-					prevCharClass = &CharSet{}
-					prevCharClass.addChar(prev.ch)
-				} else {
-					prevCharClass = prev.set
-				}
-
-				if at.t == ntOne {
-					prevCharClass.addChar(at.ch)
-				} else {
-					prevCharClass.addSet(*at.set)
-				}
-
-				prev.t = ntSet
-				prev.set = prevCharClass
-			} else if at.t == ntNothing {
-				j--
-			} else {
-				wasLastSet = false
-				lastNodeCannotMerge = false
-			}
-			break
-		}
-	}
-
-	if j < i {
-		n.removeChildren(j, i)
-	}
-
-	return n.stripEnation(ntNothing)
-}
-
-// Basic optimization. Adjacent strings can be concatenated.
-//
-// (?:abc)(?:def) -> abcdef
-func (n *regexNode) reduceConcatenation() *regexNode {
-	// Eliminate empties and concat adjacent strings/chars
-
-	var optionsLast RegexOptions
-	var optionsAt RegexOptions
-	var i, j int
-
-	if len(n.children) == 0 {
-		return newRegexNode(ntEmpty, n.options)
-	}
-
-	wasLastString := false
-
-	for i, j = 0, 0; i < len(n.children); i, j = i+1, j+1 {
-		var at, prev *regexNode
-
-		at = n.children[i]
-
-		if j < i {
-			n.children[j] = at
-		}
-
-		if at.t == ntConcatenate &&
-			((at.options & RightToLeft) == (n.options & RightToLeft)) {
-			for k := 0; k < len(at.children); k++ {
-				at.children[k].next = n
-			}
-
-			//insert at.children at i+1 index in n.children
-			n.insertChildren(i+1, at.children)
-
-			j--
-		} else if at.t == ntMulti || at.t == ntOne {
-			// Cannot merge strings if L or I options differ
-			optionsAt = at.options & (RightToLeft | IgnoreCase)
-
-			if !wasLastString || optionsLast != optionsAt {
-				wasLastString = true
-				optionsLast = optionsAt
-				continue
-			}
-
-			j--
-			prev = n.children[j]
-
-			if prev.t == ntOne {
-				prev.t = ntMulti
-				prev.str = []rune{prev.ch}
-			}
-
-			if (optionsAt & RightToLeft) == 0 {
-				if at.t == ntOne {
-					prev.str = append(prev.str, at.ch)
-				} else {
-					prev.str = append(prev.str, at.str...)
-				}
-			} else {
-				if at.t == ntOne {
-					// insert at the front by expanding our slice, copying the data over, and then setting the value
-					prev.str = append(prev.str, 0)
-					copy(prev.str[1:], prev.str)
-					prev.str[0] = at.ch
-				} else {
-					//insert at the front...this one we'll make a new slice and copy both into it
-					merge := make([]rune, len(prev.str)+len(at.str))
-					copy(merge, at.str)
-					copy(merge[len(at.str):], prev.str)
-					prev.str = merge
-				}
-			}
-		} else if at.t == ntEmpty {
-			j--
-		} else {
-			wasLastString = false
-		}
-	}
-
-	if j < i {
-		// remove indices j through i from the children
-		n.removeChildren(j, i)
-	}
-
-	return n.stripEnation(ntEmpty)
-}
-
-// Nested repeaters just get multiplied with each other if they're not
-// too lumpy
-func (n *regexNode) reduceRep() *regexNode {
-
-	u := n
-	t := n.t
-	min := n.m
-	max := n.n
-
-	for {
-		if len(u.children) == 0 {
-			break
-		}
-
-		child := u.children[0]
-
-		// multiply reps of the same type only
-		if child.t != t {
-			childType := child.t
-
-			if !(childType >= ntOneloop && childType <= ntSetloop && t == ntLoop ||
-				childType >= ntOnelazy && childType <= ntSetlazy && t == ntLazyloop) {
-				break
-			}
-		}
-
-		// child can be too lumpy to blur, e.g., (a {100,105}) {3} or (a {2,})?
-		// [but things like (a {2,})+ are not too lumpy...]
-		if u.m == 0 && child.m > 1 || child.n < child.m*2 {
-			break
-		}
-
-		u = child
-		if u.m > 0 {
-			if (math.MaxInt32-1)/u.m < min {
-				u.m = math.MaxInt32
-			} else {
-				u.m = u.m * min
-			}
-		}
-		if u.n > 0 {
-			if (math.MaxInt32-1)/u.n < max {
-				u.n = math.MaxInt32
-			} else {
-				u.n = u.n * max
-			}
-		}
-	}
-
-	if math.MaxInt32 == min {
-		return newRegexNode(ntNothing, n.options)
-	}
-	return u
-
-}
-
-// Simple optimization. If a concatenation or alternation has only
-// one child strip out the intermediate node. If it has zero children,
-// turn it into an empty.
-func (n *regexNode) stripEnation(emptyType nodeType) *regexNode {
-	switch len(n.children) {
-	case 0:
-		return newRegexNode(emptyType, n.options)
-	case 1:
-		return n.children[0]
-	default:
-		return n
-	}
-}
-
-func (n *regexNode) reduceGroup() *regexNode {
-	u := n
-
-	for u.t == ntGroup {
-		u = u.children[0]
-	}
-
-	return u
-}
-
-// Simple optimization. If a set is a singleton, an inverse singleton,
-// or empty, it's transformed accordingly.
-func (n *regexNode) reduceSet() *regexNode {
-	// Extract empty-set, one and not-one case as special
-
-	if n.set == nil {
-		n.t = ntNothing
-	} else if n.set.IsSingleton() {
-		n.ch = n.set.SingletonChar()
-		n.set = nil
-		n.t += (ntOne - ntSet)
-	} else if n.set.IsSingletonInverse() {
-		n.ch = n.set.SingletonChar()
-		n.set = nil
-		n.t += (ntNotone - ntSet)
-	}
-
-	return n
-}
-
-func (n *regexNode) reverseLeft() *regexNode {
-	if n.options&RightToLeft != 0 && n.t == ntConcatenate && len(n.children) > 0 {
-		//reverse children order
-		for left, right := 0, len(n.children)-1; left < right; left, right = left+1, right-1 {
-			n.children[left], n.children[right] = n.children[right], n.children[left]
-		}
-	}
-
-	return n
-}
-
-func (n *regexNode) makeQuantifier(lazy bool, min, max int) *regexNode {
-	if min == 0 && max == 0 {
-		return newRegexNode(ntEmpty, n.options)
-	}
-
-	if min == 1 && max == 1 {
-		return n
-	}
-
-	switch n.t {
-	case ntOne, ntNotone, ntSet:
-		if lazy {
-			n.makeRep(Onelazy, min, max)
-		} else {
-			n.makeRep(Oneloop, min, max)
-		}
-		return n
-
-	default:
-		var t nodeType
-		if lazy {
-			t = ntLazyloop
-		} else {
-			t = ntLoop
-		}
-		result := newRegexNodeMN(t, n.options, min, max)
-		result.addChild(n)
-		return result
-	}
-}
-
-// debug functions
-
-var typeStr = []string{
-	"Onerep", "Notonerep", "Setrep",
-	"Oneloop", "Notoneloop", "Setloop",
-	"Onelazy", "Notonelazy", "Setlazy",
-	"One", "Notone", "Set",
-	"Multi", "Ref",
-	"Bol", "Eol", "Boundary", "Nonboundary",
-	"Beginning", "Start", "EndZ", "End",
-	"Nothing", "Empty",
-	"Alternate", "Concatenate",
-	"Loop", "Lazyloop",
-	"Capture", "Group", "Require", "Prevent", "Greedy",
-	"Testref", "Testgroup",
-	"Unknown", "Unknown", "Unknown",
-	"Unknown", "Unknown", "Unknown",
-	"ECMABoundary", "NonECMABoundary",
-}
-
-func (n *regexNode) description() string {
-	buf := &bytes.Buffer{}
-
-	buf.WriteString(typeStr[n.t])
-
-	if (n.options & ExplicitCapture) != 0 {
-		buf.WriteString("-C")
-	}
-	if (n.options & IgnoreCase) != 0 {
-		buf.WriteString("-I")
-	}
-	if (n.options & RightToLeft) != 0 {
-		buf.WriteString("-L")
-	}
-	if (n.options & Multiline) != 0 {
-		buf.WriteString("-M")
-	}
-	if (n.options & Singleline) != 0 {
-		buf.WriteString("-S")
-	}
-	if (n.options & IgnorePatternWhitespace) != 0 {
-		buf.WriteString("-X")
-	}
-	if (n.options & ECMAScript) != 0 {
-		buf.WriteString("-E")
-	}
-
-	switch n.t {
-	case ntOneloop, ntNotoneloop, ntOnelazy, ntNotonelazy, ntOne, ntNotone:
-		buf.WriteString("(Ch = " + CharDescription(n.ch) + ")")
-		break
-	case ntCapture:
-		buf.WriteString("(index = " + strconv.Itoa(n.m) + ", unindex = " + strconv.Itoa(n.n) + ")")
-		break
-	case ntRef, ntTestref:
-		buf.WriteString("(index = " + strconv.Itoa(n.m) + ")")
-		break
-	case ntMulti:
-		fmt.Fprintf(buf, "(String = %s)", string(n.str))
-		break
-	case ntSet, ntSetloop, ntSetlazy:
-		buf.WriteString("(Set = " + n.set.String() + ")")
-		break
-	}
-
-	switch n.t {
-	case ntOneloop, ntNotoneloop, ntOnelazy, ntNotonelazy, ntSetloop, ntSetlazy, ntLoop, ntLazyloop:
-		buf.WriteString("(Min = ")
-		buf.WriteString(strconv.Itoa(n.m))
-		buf.WriteString(", Max = ")
-		if n.n == math.MaxInt32 {
-			buf.WriteString("inf")
-		} else {
-			buf.WriteString(strconv.Itoa(n.n))
-		}
-		buf.WriteString(")")
-
-		break
-	}
-
-	return buf.String()
-}
-
-var padSpace = []byte("                                ")
-
-func (t *RegexTree) Dump() string {
-	return t.root.dump()
-}
-
-func (n *regexNode) dump() string {
-	var stack []int
-	CurNode := n
-	CurChild := 0
-
-	buf := bytes.NewBufferString(CurNode.description())
-	buf.WriteRune('\n')
-
-	for {
-		if CurNode.children != nil && CurChild < len(CurNode.children) {
-			stack = append(stack, CurChild+1)
-			CurNode = CurNode.children[CurChild]
-			CurChild = 0
-
-			Depth := len(stack)
-			if Depth > 32 {
-				Depth = 32
-			}
-			buf.Write(padSpace[:Depth])
-			buf.WriteString(CurNode.description())
-			buf.WriteRune('\n')
-		} else {
-			if len(stack) == 0 {
-				break
-			}
-
-			CurChild = stack[len(stack)-1]
-			stack = stack[:len(stack)-1]
-			CurNode = CurNode.next
-		}
-	}
-	return buf.String()
-}
Index: trunk/vendor/github.com/dlclark/regexp2/syntax/writer.go
===================================================================
--- trunk/vendor/github.com/dlclark/regexp2/syntax/writer.go	(revision 67)
+++ 	(revision )
@@ -1,500 +1,0 @@
-package syntax
-
-import (
-	"bytes"
-	"fmt"
-	"math"
-	"os"
-)
-
-func Write(tree *RegexTree) (*Code, error) {
-	w := writer{
-		intStack:   make([]int, 0, 32),
-		emitted:    make([]int, 2),
-		stringhash: make(map[string]int),
-		sethash:    make(map[string]int),
-	}
-
-	code, err := w.codeFromTree(tree)
-
-	if tree.options&Debug > 0 && code != nil {
-		os.Stdout.WriteString(code.Dump())
-		os.Stdout.WriteString("\n")
-	}
-
-	return code, err
-}
-
-type writer struct {
-	emitted []int
-
-	intStack    []int
-	curpos      int
-	stringhash  map[string]int
-	stringtable [][]rune
-	sethash     map[string]int
-	settable    []*CharSet
-	counting    bool
-	count       int
-	trackcount  int
-	caps        map[int]int
-}
-
-const (
-	beforeChild nodeType = 64
-	afterChild           = 128
-	//MaxPrefixSize is the largest number of runes we'll use for a BoyerMoyer prefix
-	MaxPrefixSize = 50
-)
-
-// The top level RegexCode generator. It does a depth-first walk
-// through the tree and calls EmitFragment to emits code before
-// and after each child of an interior node, and at each leaf.
-//
-// It runs two passes, first to count the size of the generated
-// code, and second to generate the code.
-//
-// We should time it against the alternative, which is
-// to just generate the code and grow the array as we go.
-func (w *writer) codeFromTree(tree *RegexTree) (*Code, error) {
-	var (
-		curNode  *regexNode
-		curChild int
-		capsize  int
-	)
-	// construct sparse capnum mapping if some numbers are unused
-
-	if tree.capnumlist == nil || tree.captop == len(tree.capnumlist) {
-		capsize = tree.captop
-		w.caps = nil
-	} else {
-		capsize = len(tree.capnumlist)
-		w.caps = tree.caps
-		for i := 0; i < len(tree.capnumlist); i++ {
-			w.caps[tree.capnumlist[i]] = i
-		}
-	}
-
-	w.counting = true
-
-	for {
-		if !w.counting {
-			w.emitted = make([]int, w.count)
-		}
-
-		curNode = tree.root
-		curChild = 0
-
-		w.emit1(Lazybranch, 0)
-
-		for {
-			if len(curNode.children) == 0 {
-				w.emitFragment(curNode.t, curNode, 0)
-			} else if curChild < len(curNode.children) {
-				w.emitFragment(curNode.t|beforeChild, curNode, curChild)
-
-				curNode = curNode.children[curChild]
-
-				w.pushInt(curChild)
-				curChild = 0
-				continue
-			}
-
-			if w.emptyStack() {
-				break
-			}
-
-			curChild = w.popInt()
-			curNode = curNode.next
-
-			w.emitFragment(curNode.t|afterChild, curNode, curChild)
-			curChild++
-		}
-
-		w.patchJump(0, w.curPos())
-		w.emit(Stop)
-
-		if !w.counting {
-			break
-		}
-
-		w.counting = false
-	}
-
-	fcPrefix := getFirstCharsPrefix(tree)
-	prefix := getPrefix(tree)
-	rtl := (tree.options & RightToLeft) != 0
-
-	var bmPrefix *BmPrefix
-	//TODO: benchmark string prefixes
-	if prefix != nil && len(prefix.PrefixStr) > 0 && MaxPrefixSize > 0 {
-		if len(prefix.PrefixStr) > MaxPrefixSize {
-			// limit prefix changes to 10k
-			prefix.PrefixStr = prefix.PrefixStr[:MaxPrefixSize]
-		}
-		bmPrefix = newBmPrefix(prefix.PrefixStr, prefix.CaseInsensitive, rtl)
-	} else {
-		bmPrefix = nil
-	}
-
-	return &Code{
-		Codes:       w.emitted,
-		Strings:     w.stringtable,
-		Sets:        w.settable,
-		TrackCount:  w.trackcount,
-		Caps:        w.caps,
-		Capsize:     capsize,
-		FcPrefix:    fcPrefix,
-		BmPrefix:    bmPrefix,
-		Anchors:     getAnchors(tree),
-		RightToLeft: rtl,
-	}, nil
-}
-
-// The main RegexCode generator. It does a depth-first walk
-// through the tree and calls EmitFragment to emits code before
-// and after each child of an interior node, and at each leaf.
-func (w *writer) emitFragment(nodetype nodeType, node *regexNode, curIndex int) error {
-	bits := InstOp(0)
-
-	if nodetype <= ntRef {
-		if (node.options & RightToLeft) != 0 {
-			bits |= Rtl
-		}
-		if (node.options & IgnoreCase) != 0 {
-			bits |= Ci
-		}
-	}
-	ntBits := nodeType(bits)
-
-	switch nodetype {
-	case ntConcatenate | beforeChild, ntConcatenate | afterChild, ntEmpty:
-		break
-
-	case ntAlternate | beforeChild:
-		if curIndex < len(node.children)-1 {
-			w.pushInt(w.curPos())
-			w.emit1(Lazybranch, 0)
-		}
-
-	case ntAlternate | afterChild:
-		if curIndex < len(node.children)-1 {
-			lbPos := w.popInt()
-			w.pushInt(w.curPos())
-			w.emit1(Goto, 0)
-			w.patchJump(lbPos, w.curPos())
-		} else {
-			for i := 0; i < curIndex; i++ {
-				w.patchJump(w.popInt(), w.curPos())
-			}
-		}
-		break
-
-	case ntTestref | beforeChild:
-		if curIndex == 0 {
-			w.emit(Setjump)
-			w.pushInt(w.curPos())
-			w.emit1(Lazybranch, 0)
-			w.emit1(Testref, w.mapCapnum(node.m))
-			w.emit(Forejump)
-		}
-
-	case ntTestref | afterChild:
-		if curIndex == 0 {
-			branchpos := w.popInt()
-			w.pushInt(w.curPos())
-			w.emit1(Goto, 0)
-			w.patchJump(branchpos, w.curPos())
-			w.emit(Forejump)
-			if len(node.children) <= 1 {
-				w.patchJump(w.popInt(), w.curPos())
-			}
-		} else if curIndex == 1 {
-			w.patchJump(w.popInt(), w.curPos())
-		}
-
-	case ntTestgroup | beforeChild:
-		if curIndex == 0 {
-			w.emit(Setjump)
-			w.emit(Setmark)
-			w.pushInt(w.curPos())
-			w.emit1(Lazybranch, 0)
-		}
-
-	case ntTestgroup | afterChild:
-		if curIndex == 0 {
-			w.emit(Getmark)
-			w.emit(Forejump)
-		} else if curIndex == 1 {
-			Branchpos := w.popInt()
-			w.pushInt(w.curPos())
-			w.emit1(Goto, 0)
-			w.patchJump(Branchpos, w.curPos())
-			w.emit(Getmark)
-			w.emit(Forejump)
-			if len(node.children) <= 2 {
-				w.patchJump(w.popInt(), w.curPos())
-			}
-		} else if curIndex == 2 {
-			w.patchJump(w.popInt(), w.curPos())
-		}
-
-	case ntLoop | beforeChild, ntLazyloop | beforeChild:
-
-		if node.n < math.MaxInt32 || node.m > 1 {
-			if node.m == 0 {
-				w.emit1(Nullcount, 0)
-			} else {
-				w.emit1(Setcount, 1-node.m)
-			}
-		} else if node.m == 0 {
-			w.emit(Nullmark)
-		} else {
-			w.emit(Setmark)
-		}
-
-		if node.m == 0 {
-			w.pushInt(w.curPos())
-			w.emit1(Goto, 0)
-		}
-		w.pushInt(w.curPos())
-
-	case ntLoop | afterChild, ntLazyloop | afterChild:
-
-		startJumpPos := w.curPos()
-		lazy := (nodetype - (ntLoop | afterChild))
-
-		if node.n < math.MaxInt32 || node.m > 1 {
-			if node.n == math.MaxInt32 {
-				w.emit2(InstOp(Branchcount+lazy), w.popInt(), math.MaxInt32)
-			} else {
-				w.emit2(InstOp(Branchcount+lazy), w.popInt(), node.n-node.m)
-			}
-		} else {
-			w.emit1(InstOp(Branchmark+lazy), w.popInt())
-		}
-
-		if node.m == 0 {
-			w.patchJump(w.popInt(), startJumpPos)
-		}
-
-	case ntGroup | beforeChild, ntGroup | afterChild:
-
-	case ntCapture | beforeChild:
-		w.emit(Setmark)
-
-	case ntCapture | afterChild:
-		w.emit2(Capturemark, w.mapCapnum(node.m), w.mapCapnum(node.n))
-
-	case ntRequire | beforeChild:
-		// NOTE: the following line causes lookahead/lookbehind to be
-		// NON-BACKTRACKING. It can be commented out with (*)
-		w.emit(Setjump)
-
-		w.emit(Setmark)
-
-	case ntRequire | afterChild:
-		w.emit(Getmark)
-
-		// NOTE: the following line causes lookahead/lookbehind to be
-		// NON-BACKTRACKING. It can be commented out with (*)
-		w.emit(Forejump)
-
-	case ntPrevent | beforeChild:
-		w.emit(Setjump)
-		w.pushInt(w.curPos())
-		w.emit1(Lazybranch, 0)
-
-	case ntPrevent | afterChild:
-		w.emit(Backjump)
-		w.patchJump(w.popInt(), w.curPos())
-		w.emit(Forejump)
-
-	case ntGreedy | beforeChild:
-		w.emit(Setjump)
-
-	case ntGreedy | afterChild:
-		w.emit(Forejump)
-
-	case ntOne, ntNotone:
-		w.emit1(InstOp(node.t|ntBits), int(node.ch))
-
-	case ntNotoneloop, ntNotonelazy, ntOneloop, ntOnelazy:
-		if node.m > 0 {
-			if node.t == ntOneloop || node.t == ntOnelazy {
-				w.emit2(Onerep|bits, int(node.ch), node.m)
-			} else {
-				w.emit2(Notonerep|bits, int(node.ch), node.m)
-			}
-		}
-		if node.n > node.m {
-			if node.n == math.MaxInt32 {
-				w.emit2(InstOp(node.t|ntBits), int(node.ch), math.MaxInt32)
-			} else {
-				w.emit2(InstOp(node.t|ntBits), int(node.ch), node.n-node.m)
-			}
-		}
-
-	case ntSetloop, ntSetlazy:
-		if node.m > 0 {
-			w.emit2(Setrep|bits, w.setCode(node.set), node.m)
-		}
-		if node.n > node.m {
-			if node.n == math.MaxInt32 {
-				w.emit2(InstOp(node.t|ntBits), w.setCode(node.set), math.MaxInt32)
-			} else {
-				w.emit2(InstOp(node.t|ntBits), w.setCode(node.set), node.n-node.m)
-			}
-		}
-
-	case ntMulti:
-		w.emit1(InstOp(node.t|ntBits), w.stringCode(node.str))
-
-	case ntSet:
-		w.emit1(InstOp(node.t|ntBits), w.setCode(node.set))
-
-	case ntRef:
-		w.emit1(InstOp(node.t|ntBits), w.mapCapnum(node.m))
-
-	case ntNothing, ntBol, ntEol, ntBoundary, ntNonboundary, ntECMABoundary, ntNonECMABoundary, ntBeginning, ntStart, ntEndZ, ntEnd:
-		w.emit(InstOp(node.t))
-
-	default:
-		return fmt.Errorf("unexpected opcode in regular expression generation: %v", nodetype)
-	}
-
-	return nil
-}
-
-// To avoid recursion, we use a simple integer stack.
-// This is the push.
-func (w *writer) pushInt(i int) {
-	w.intStack = append(w.intStack, i)
-}
-
-// Returns true if the stack is empty.
-func (w *writer) emptyStack() bool {
-	return len(w.intStack) == 0
-}
-
-// This is the pop.
-func (w *writer) popInt() int {
-	//get our item
-	idx := len(w.intStack) - 1
-	i := w.intStack[idx]
-	//trim our slice
-	w.intStack = w.intStack[:idx]
-	return i
-}
-
-// Returns the current position in the emitted code.
-func (w *writer) curPos() int {
-	return w.curpos
-}
-
-// Fixes up a jump instruction at the specified offset
-// so that it jumps to the specified jumpDest.
-func (w *writer) patchJump(offset, jumpDest int) {
-	w.emitted[offset+1] = jumpDest
-}
-
-// Returns an index in the set table for a charset
-// uses a map to eliminate duplicates.
-func (w *writer) setCode(set *CharSet) int {
-	if w.counting {
-		return 0
-	}
-
-	buf := &bytes.Buffer{}
-
-	set.mapHashFill(buf)
-	hash := buf.String()
-	i, ok := w.sethash[hash]
-	if !ok {
-		i = len(w.sethash)
-		w.sethash[hash] = i
-		w.settable = append(w.settable, set)
-	}
-	return i
-}
-
-// Returns an index in the string table for a string.
-// uses a map to eliminate duplicates.
-func (w *writer) stringCode(str []rune) int {
-	if w.counting {
-		return 0
-	}
-
-	hash := string(str)
-	i, ok := w.stringhash[hash]
-	if !ok {
-		i = len(w.stringhash)
-		w.stringhash[hash] = i
-		w.stringtable = append(w.stringtable, str)
-	}
-
-	return i
-}
-
-// When generating code on a regex that uses a sparse set
-// of capture slots, we hash them to a dense set of indices
-// for an array of capture slots. Instead of doing the hash
-// at match time, it's done at compile time, here.
-func (w *writer) mapCapnum(capnum int) int {
-	if capnum == -1 {
-		return -1
-	}
-
-	if w.caps != nil {
-		return w.caps[capnum]
-	}
-
-	return capnum
-}
-
-// Emits a zero-argument operation. Note that the emit
-// functions all run in two modes: they can emit code, or
-// they can just count the size of the code.
-func (w *writer) emit(op InstOp) {
-	if w.counting {
-		w.count++
-		if opcodeBacktracks(op) {
-			w.trackcount++
-		}
-		return
-	}
-	w.emitted[w.curpos] = int(op)
-	w.curpos++
-}
-
-// Emits a one-argument operation.
-func (w *writer) emit1(op InstOp, opd1 int) {
-	if w.counting {
-		w.count += 2
-		if opcodeBacktracks(op) {
-			w.trackcount++
-		}
-		return
-	}
-	w.emitted[w.curpos] = int(op)
-	w.curpos++
-	w.emitted[w.curpos] = opd1
-	w.curpos++
-}
-
-// Emits a two-argument operation.
-func (w *writer) emit2(op InstOp, opd1, opd2 int) {
-	if w.counting {
-		w.count += 3
-		if opcodeBacktracks(op) {
-			w.trackcount++
-		}
-		return
-	}
-	w.emitted[w.curpos] = int(op)
-	w.curpos++
-	w.emitted[w.curpos] = opd1
-	w.curpos++
-	w.emitted[w.curpos] = opd2
-	w.curpos++
-}
Index: trunk/vendor/github.com/dlclark/regexp2/testoutput1
===================================================================
--- trunk/vendor/github.com/dlclark/regexp2/testoutput1	(revision 67)
+++ 	(revision )
@@ -1,7063 +1,0 @@
-# This set of tests is for features that are compatible with all versions of
-# Perl >= 5.10, in non-UTF mode. It should run clean for the 8-bit, 16-bit, and
-# 32-bit PCRE libraries, and also using the perltest.pl script.
-    
-#forbid_utf
-#newline_default lf any anycrlf
-#perltest
-
-/the quick brown fox/
-    the quick brown fox
- 0: the quick brown fox
-    What do you know about the quick brown fox?
- 0: the quick brown fox
-\= Expect no match
-    The quick brown FOX
-No match
-    What do you know about THE QUICK BROWN FOX?
-No match
-
-/The quick brown fox/i
-    the quick brown fox
- 0: the quick brown fox
-    The quick brown FOX
- 0: The quick brown FOX
-    What do you know about the quick brown fox?
- 0: the quick brown fox
-    What do you know about THE QUICK BROWN FOX?
- 0: THE QUICK BROWN FOX
-
-/abcd\t\n\r\f\a\e\071\x3b\$\\\?caxyz/
-    abcd\t\n\r\f\a\e9;\$\\?caxyz
- 0: abcd\x09\x0a\x0d\x0c\x07\x1b9;$\?caxyz
-
-/a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz/
-    abxyzpqrrrabbxyyyypqAzz
- 0: abxyzpqrrrabbxyyyypqAzz
-    abxyzpqrrrabbxyyyypqAzz
- 0: abxyzpqrrrabbxyyyypqAzz
-    aabxyzpqrrrabbxyyyypqAzz
- 0: aabxyzpqrrrabbxyyyypqAzz
-    aaabxyzpqrrrabbxyyyypqAzz
- 0: aaabxyzpqrrrabbxyyyypqAzz
-    aaaabxyzpqrrrabbxyyyypqAzz
- 0: aaaabxyzpqrrrabbxyyyypqAzz
-    abcxyzpqrrrabbxyyyypqAzz
- 0: abcxyzpqrrrabbxyyyypqAzz
-    aabcxyzpqrrrabbxyyyypqAzz
- 0: aabcxyzpqrrrabbxyyyypqAzz
-    aaabcxyzpqrrrabbxyyyypAzz
- 0: aaabcxyzpqrrrabbxyyyypAzz
-    aaabcxyzpqrrrabbxyyyypqAzz
- 0: aaabcxyzpqrrrabbxyyyypqAzz
-    aaabcxyzpqrrrabbxyyyypqqAzz
- 0: aaabcxyzpqrrrabbxyyyypqqAzz
-    aaabcxyzpqrrrabbxyyyypqqqAzz
- 0: aaabcxyzpqrrrabbxyyyypqqqAzz
-    aaabcxyzpqrrrabbxyyyypqqqqAzz
- 0: aaabcxyzpqrrrabbxyyyypqqqqAzz
-    aaabcxyzpqrrrabbxyyyypqqqqqAzz
- 0: aaabcxyzpqrrrabbxyyyypqqqqqAzz
-    aaabcxyzpqrrrabbxyyyypqqqqqqAzz
- 0: aaabcxyzpqrrrabbxyyyypqqqqqqAzz
-    aaaabcxyzpqrrrabbxyyyypqAzz
- 0: aaaabcxyzpqrrrabbxyyyypqAzz
-    abxyzzpqrrrabbxyyyypqAzz
- 0: abxyzzpqrrrabbxyyyypqAzz
-    aabxyzzzpqrrrabbxyyyypqAzz
- 0: aabxyzzzpqrrrabbxyyyypqAzz
-    aaabxyzzzzpqrrrabbxyyyypqAzz
- 0: aaabxyzzzzpqrrrabbxyyyypqAzz
-    aaaabxyzzzzpqrrrabbxyyyypqAzz
- 0: aaaabxyzzzzpqrrrabbxyyyypqAzz
-    abcxyzzpqrrrabbxyyyypqAzz
- 0: abcxyzzpqrrrabbxyyyypqAzz
-    aabcxyzzzpqrrrabbxyyyypqAzz
- 0: aabcxyzzzpqrrrabbxyyyypqAzz
-    aaabcxyzzzzpqrrrabbxyyyypqAzz
- 0: aaabcxyzzzzpqrrrabbxyyyypqAzz
-    aaaabcxyzzzzpqrrrabbxyyyypqAzz
- 0: aaaabcxyzzzzpqrrrabbxyyyypqAzz
-    aaaabcxyzzzzpqrrrabbbxyyyypqAzz
- 0: aaaabcxyzzzzpqrrrabbbxyyyypqAzz
-    aaaabcxyzzzzpqrrrabbbxyyyyypqAzz
- 0: aaaabcxyzzzzpqrrrabbbxyyyyypqAzz
-    aaabcxyzpqrrrabbxyyyypABzz
- 0: aaabcxyzpqrrrabbxyyyypABzz
-    aaabcxyzpqrrrabbxyyyypABBzz
- 0: aaabcxyzpqrrrabbxyyyypABBzz
-    >>>aaabxyzpqrrrabbxyyyypqAzz
- 0: aaabxyzpqrrrabbxyyyypqAzz
-    >aaaabxyzpqrrrabbxyyyypqAzz
- 0: aaaabxyzpqrrrabbxyyyypqAzz
-    >>>>abcxyzpqrrrabbxyyyypqAzz
- 0: abcxyzpqrrrabbxyyyypqAzz
-\= Expect no match
-    abxyzpqrrabbxyyyypqAzz
-No match
-    abxyzpqrrrrabbxyyyypqAzz
-No match
-    abxyzpqrrrabxyyyypqAzz
-No match
-    aaaabcxyzzzzpqrrrabbbxyyyyyypqAzz
-No match
-    aaaabcxyzzzzpqrrrabbbxyyypqAzz
-No match
-    aaabcxyzpqrrrabbxyyyypqqqqqqqAzz
-No match
-
-/^(abc){1,2}zz/
-    abczz
- 0: abczz
- 1: abc
-    abcabczz
- 0: abcabczz
- 1: abc
-\= Expect no match
-    zz
-No match
-    abcabcabczz
-No match
-    >>abczz
-No match
-
-/^(b+?|a){1,2}?c/
-    bc
- 0: bc
- 1: b
-    bbc
- 0: bbc
- 1: b
-    bbbc
- 0: bbbc
- 1: bb
-    bac
- 0: bac
- 1: a
-    bbac
- 0: bbac
- 1: a
-    aac
- 0: aac
- 1: a
-    abbbbbbbbbbbc
- 0: abbbbbbbbbbbc
- 1: bbbbbbbbbbb
-    bbbbbbbbbbbac
- 0: bbbbbbbbbbbac
- 1: a
-\= Expect no match
-    aaac
-No match
-    abbbbbbbbbbbac
-No match
-
-/^(b+|a){1,2}c/
-    bc
- 0: bc
- 1: b
-    bbc
- 0: bbc
- 1: bb
-    bbbc
- 0: bbbc
- 1: bbb
-    bac
- 0: bac
- 1: a
-    bbac
- 0: bbac
- 1: a
-    aac
- 0: aac
- 1: a
-    abbbbbbbbbbbc
- 0: abbbbbbbbbbbc
- 1: bbbbbbbbbbb
-    bbbbbbbbbbbac
- 0: bbbbbbbbbbbac
- 1: a
-\= Expect no match
-    aaac
-No match
-    abbbbbbbbbbbac
-No match
-
-/^(b+|a){1,2}?bc/
-    bbc
- 0: bbc
- 1: b
-
-/^(b*|ba){1,2}?bc/
-    babc
- 0: babc
- 1: ba
-    bbabc
- 0: bbabc
- 1: ba
-    bababc
- 0: bababc
- 1: ba
-\= Expect no match
-    bababbc
-No match
-    babababc
-No match
-
-/^(ba|b*){1,2}?bc/
-    babc
- 0: babc
- 1: ba
-    bbabc
- 0: bbabc
- 1: ba
-    bababc
- 0: bababc
- 1: ba
-\= Expect no match
-    bababbc
-No match
-    babababc
-No match
-
-#/^\ca\cA\c[;\c:/
-#    \x01\x01\e;z
-# 0: \x01\x01\x1b;z
-
-/^[ab\]cde]/
-    athing
- 0: a
-    bthing
- 0: b
-    ]thing
- 0: ]
-    cthing
- 0: c
-    dthing
- 0: d
-    ething
- 0: e
-\= Expect no match
-    fthing
-No match
-    [thing
-No match
-    \\thing
-No match
-
-/^[]cde]/
-    ]thing
- 0: ]
-    cthing
- 0: c
-    dthing
- 0: d
-    ething
- 0: e
-\= Expect no match
-    athing
-No match
-    fthing
-No match
-
-/^[^ab\]cde]/
-    fthing
- 0: f
-    [thing
- 0: [
-    \\thing
- 0: \
-\= Expect no match
-    athing
-No match
-    bthing
-No match
-    ]thing
-No match
-    cthing
-No match
-    dthing
-No match
-    ething
-No match
-
-/^[^]cde]/
-    athing
- 0: a
-    fthing
- 0: f
-\= Expect no match
-    ]thing
-No match
-    cthing
-No match
-    dthing
-No match
-    ething
-No match
-
-# DLC - I don't get this one
-#/^\/
-#    
-# 0: \x81
-
-#updated to handle 16-bits utf8
-/^ÿ/
-    ÿ
- 0: \xc3\xbf
-
-/^[0-9]+$/
-    0
- 0: 0
-    1
- 0: 1
-    2
- 0: 2
-    3
- 0: 3
-    4
- 0: 4
-    5
- 0: 5
-    6
- 0: 6
-    7
- 0: 7
-    8
- 0: 8
-    9
- 0: 9
-    10
- 0: 10
-    100
- 0: 100
-\= Expect no match
-    abc
-No match
-
-/^.*nter/
-    enter
- 0: enter
-    inter
- 0: inter
-    uponter
- 0: uponter
-
-/^xxx[0-9]+$/
-    xxx0
- 0: xxx0
-    xxx1234
- 0: xxx1234
-\= Expect no match
-    xxx
-No match
-
-/^.+[0-9][0-9][0-9]$/
-    x123
- 0: x123
-    x1234
- 0: x1234
-    xx123
- 0: xx123
-    123456
- 0: 123456
-\= Expect no match
-    123
-No match
-
-/^.+?[0-9][0-9][0-9]$/
-    x123
- 0: x123
-    x1234
- 0: x1234
-    xx123
- 0: xx123
-    123456
- 0: 123456
-\= Expect no match
-    123
-No match
-
-/^([^!]+)!(.+)=apquxz\.ixr\.zzz\.ac\.uk$/
-    abc!pqr=apquxz.ixr.zzz.ac.uk
- 0: abc!pqr=apquxz.ixr.zzz.ac.uk
- 1: abc
- 2: pqr
-\= Expect no match
-    !pqr=apquxz.ixr.zzz.ac.uk
-No match
-    abc!=apquxz.ixr.zzz.ac.uk
-No match
-    abc!pqr=apquxz:ixr.zzz.ac.uk
-No match
-    abc!pqr=apquxz.ixr.zzz.ac.ukk
-No match
-
-/:/
-    Well, we need a colon: somewhere
- 0: :
-\= Expect no match
-    Fail without a colon
-No match
-
-/([\da-f:]+)$/i
-    0abc
- 0: 0abc
- 1: 0abc
-    abc
- 0: abc
- 1: abc
-    fed
- 0: fed
- 1: fed
-    E
- 0: E
- 1: E
-    ::
- 0: ::
- 1: ::
-    5f03:12C0::932e
- 0: 5f03:12C0::932e
- 1: 5f03:12C0::932e
-    fed def
- 0: def
- 1: def
-    Any old stuff
- 0: ff
- 1: ff
-\= Expect no match
-    0zzz
-No match
-    gzzz
-No match
-    fed\x20
-No match
-    Any old rubbish
-No match
-
-/^.*\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/
-    .1.2.3
- 0: .1.2.3
- 1: 1
- 2: 2
- 3: 3
-    A.12.123.0
- 0: A.12.123.0
- 1: 12
- 2: 123
- 3: 0
-\= Expect no match
-    .1.2.3333
-No match
-    1.2.3
-No match
-    1234.2.3
-No match
-
-/^(\d+)\s+IN\s+SOA\s+(\S+)\s+(\S+)\s*\(\s*$/
-    1 IN SOA non-sp1 non-sp2(
- 0: 1 IN SOA non-sp1 non-sp2(
- 1: 1
- 2: non-sp1
- 3: non-sp2
-    1    IN    SOA    non-sp1    non-sp2   (
- 0: 1    IN    SOA    non-sp1    non-sp2   (
- 1: 1
- 2: non-sp1
- 3: non-sp2
-\= Expect no match
-    1IN SOA non-sp1 non-sp2(
-No match
-
-/^[a-zA-Z\d][a-zA-Z\d\-]*(\.[a-zA-Z\d][a-zA-z\d\-]*)*\.$/
-    a.
- 0: a.
-    Z.
- 0: Z.
-    2.
- 0: 2.
-    ab-c.pq-r.
- 0: ab-c.pq-r.
- 1: .pq-r
-    sxk.zzz.ac.uk.
- 0: sxk.zzz.ac.uk.
- 1: .uk
-    x-.y-.
- 0: x-.y-.
- 1: .y-
-\= Expect no match
-    -abc.peq.
-No match
-
-/^\*\.[a-z]([a-z\-\d]*[a-z\d]+)?(\.[a-z]([a-z\-\d]*[a-z\d]+)?)*$/
-    *.a
- 0: *.a
-    *.b0-a
- 0: *.b0-a
- 1: 0-a
-    *.c3-b.c
- 0: *.c3-b.c
- 1: 3-b
- 2: .c
-    *.c-a.b-c
- 0: *.c-a.b-c
- 1: -a
- 2: .b-c
- 3: -c
-\= Expect no match
-    *.0
-No match
-    *.a-
-No match
-    *.a-b.c-
-No match
-    *.c-a.0-c
-No match
-
-/^(?=ab(de))(abd)(e)/
-    abde
- 0: abde
- 1: de
- 2: abd
- 3: e
-
-/^(?!(ab)de|x)(abd)(f)/
-    abdf
- 0: abdf
- 1: <unset>
- 2: abd
- 3: f
-
-/^(?=(ab(cd)))(ab)/
-    abcd
- 0: ab
- 1: abcd
- 2: cd
- 3: ab
-
-/^[\da-f](\.[\da-f])*$/i
-    a.b.c.d
- 0: a.b.c.d
- 1: .d
-    A.B.C.D
- 0: A.B.C.D
- 1: .D
-    a.b.c.1.2.3.C
- 0: a.b.c.1.2.3.C
- 1: .C
-
-/^\".*\"\s*(;.*)?$/
-    \"1234\"
- 0: "1234"
-    \"abcd\" ;
- 0: "abcd" ;
- 1: ;
-    \"\" ; rhubarb
- 0: "" ; rhubarb
- 1: ; rhubarb
-\= Expect no match
-    \"1234\" : things
-No match
-
-/^$/
-    \
- 0: 
-\= Expect no match
-    A non-empty line
-No match
-
-/   ^    a   (?# begins with a)  b\sc (?# then b c) $ (?# then end)/x
-    ab c
- 0: ab c
-\= Expect no match
-    abc
-No match
-    ab cde
-No match
-
-/(?x)   ^    a   (?# begins with a)  b\sc (?# then b c) $ (?# then end)/
-    ab c
- 0: ab c
-\= Expect no match
-    abc
-No match
-    ab cde
-No match
-
-/^   a\ b[c ]d       $/x
-    a bcd
- 0: a bcd
-    a b d
- 0: a b d
-\= Expect no match
-    abcd
-No match
-    ab d
-No match
-
-/^(a(b(c)))(d(e(f)))(h(i(j)))(k(l(m)))$/
-    abcdefhijklm
- 0: abcdefhijklm
- 1: abc
- 2: bc
- 3: c
- 4: def
- 5: ef
- 6: f
- 7: hij
- 8: ij
- 9: j
-10: klm
-11: lm
-12: m
-
-/^(?:a(b(c)))(?:d(e(f)))(?:h(i(j)))(?:k(l(m)))$/
-    abcdefhijklm
- 0: abcdefhijklm
- 1: bc
- 2: c
- 3: ef
- 4: f
- 5: ij
- 6: j
- 7: lm
- 8: m
-
-#/^[\w][\W][\s][\S][\d][\D][\b][\n][\c]][\022]/
-#    a+ Z0+\x08\n\x1d\x12
-# 0: a+ Z0+\x08\x0a\x1d\x12
-
-/^[.^$|()*+?{,}]+/
-    .^\$(*+)|{?,?}
- 0: .^$(*+)|{?,?}
-
-/^a*\w/
-    z
- 0: z
-    az
- 0: az
-    aaaz
- 0: aaaz
-    a
- 0: a
-    aa
- 0: aa
-    aaaa
- 0: aaaa
-    a+
- 0: a
-    aa+
- 0: aa
-
-/^a*?\w/
-    z
- 0: z
-    az
- 0: a
-    aaaz
- 0: a
-    a
- 0: a
-    aa
- 0: a
-    aaaa
- 0: a
-    a+
- 0: a
-    aa+
- 0: a
-
-/^a+\w/
-    az
- 0: az
-    aaaz
- 0: aaaz
-    aa
- 0: aa
-    aaaa
- 0: aaaa
-    aa+
- 0: aa
-
-/^a+?\w/
-    az
- 0: az
-    aaaz
- 0: aa
-    aa
- 0: aa
-    aaaa
- 0: aa
-    aa+
- 0: aa
-
-/^\d{8}\w{2,}/
-    1234567890
- 0: 1234567890
-    12345678ab
- 0: 12345678ab
-    12345678__
- 0: 12345678__
-\= Expect no match
-    1234567
-No match
-
-/^[aeiou\d]{4,5}$/
-    uoie
- 0: uoie
-    1234
- 0: 1234
-    12345
- 0: 12345
-    aaaaa
- 0: aaaaa
-\= Expect no match
-    123456
-No match
-
-/^[aeiou\d]{4,5}?/
-    uoie
- 0: uoie
-    1234
- 0: 1234
-    12345
- 0: 1234
-    aaaaa
- 0: aaaa
-    123456
- 0: 1234
-
-/\A(abc|def)=(\1){2,3}\Z/
-    abc=abcabc
- 0: abc=abcabc
- 1: abc
- 2: abc
-    def=defdefdef
- 0: def=defdefdef
- 1: def
- 2: def
-\= Expect no match
-    abc=defdef
-No match
-
-/^(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)\11*(\3\4)\1(?#)2$/
-    abcdefghijkcda2
- 0: abcdefghijkcda2
- 1: a
- 2: b
- 3: c
- 4: d
- 5: e
- 6: f
- 7: g
- 8: h
- 9: i
-10: j
-11: k
-12: cd
-    abcdefghijkkkkcda2
- 0: abcdefghijkkkkcda2
- 1: a
- 2: b
- 3: c
- 4: d
- 5: e
- 6: f
- 7: g
- 8: h
- 9: i
-10: j
-11: k
-12: cd
-
-/(cat(a(ract|tonic)|erpillar)) \1()2(3)/
-    cataract cataract23
- 0: cataract cataract23
- 1: cataract
- 2: aract
- 3: ract
- 4: 
- 5: 3
-    catatonic catatonic23
- 0: catatonic catatonic23
- 1: catatonic
- 2: atonic
- 3: tonic
- 4: 
- 5: 3
-    caterpillar caterpillar23
- 0: caterpillar caterpillar23
- 1: caterpillar
- 2: erpillar
- 3: <unset>
- 4: 
- 5: 3
-
-
-/^From +([^ ]+) +[a-zA-Z][a-zA-Z][a-zA-Z] +[a-zA-Z][a-zA-Z][a-zA-Z] +[0-9]?[0-9] +[0-9][0-9]:[0-9][0-9]/
-    From abcd  Mon Sep 01 12:33:02 1997
- 0: From abcd  Mon Sep 01 12:33
- 1: abcd
-
-/^From\s+\S+\s+([a-zA-Z]{3}\s+){2}\d{1,2}\s+\d\d:\d\d/
-    From abcd  Mon Sep 01 12:33:02 1997
- 0: From abcd  Mon Sep 01 12:33
- 1: Sep 
-    From abcd  Mon Sep  1 12:33:02 1997
- 0: From abcd  Mon Sep  1 12:33
- 1: Sep  
-\= Expect no match
-    From abcd  Sep 01 12:33:02 1997
-No match
-
-/^12.34/s
-    12\n34
- 0: 12\x0a34
-    12\r34
- 0: 12\x0d34
-
-/\w+(?=\t)/
-    the quick brown\t fox
- 0: brown
-
-/foo(?!bar)(.*)/
-    foobar is foolish see?
- 0: foolish see?
- 1: lish see?
-
-/(?:(?!foo)...|^.{0,2})bar(.*)/
-    foobar crowbar etc
- 0: rowbar etc
- 1:  etc
-    barrel
- 0: barrel
- 1: rel
-    2barrel
- 0: 2barrel
- 1: rel
-    A barrel
- 0: A barrel
- 1: rel
-
-/^(\D*)(?=\d)(?!123)/
-    abc456
- 0: abc
- 1: abc
-\= Expect no match
-    abc123
-No match
-
-/^1234(?# test newlines
-  inside)/
-    1234
- 0: 1234
-
-/^1234 #comment in extended re
-  /x
-    1234
- 0: 1234
-
-/#rhubarb
-  abcd/x
-    abcd
- 0: abcd
-
-/^abcd#rhubarb/x
-    abcd
- 0: abcd
-
-/^(a)\1{2,3}(.)/
-    aaab
- 0: aaab
- 1: a
- 2: b
-    aaaab
- 0: aaaab
- 1: a
- 2: b
-    aaaaab
- 0: aaaaa
- 1: a
- 2: a
-    aaaaaab
- 0: aaaaa
- 1: a
- 2: a
-
-/(?!^)abc/
-    the abc
- 0: abc
-\= Expect no match
-    abc
-No match
-
-/(?=^)abc/
-    abc
- 0: abc
-\= Expect no match
-    the abc
-No match
-
-/^[ab]{1,3}(ab*|b)/
-    aabbbbb
- 0: aabb
- 1: b
-
-/^[ab]{1,3}?(ab*|b)/
-    aabbbbb
- 0: aabbbbb
- 1: abbbbb
-
-/^[ab]{1,3}?(ab*?|b)/
-    aabbbbb
- 0: aa
- 1: a
-
-/^[ab]{1,3}(ab*?|b)/
-    aabbbbb
- 0: aabb
- 1: b
-
-/  (?: [\040\t] |  \(
-(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
-\)  )*                          # optional leading comment
-(?:    (?:
-[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
-(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
-|
-" (?:                      # opening quote...
-[^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
-|                     #    or
-\\ [^\x80-\xff]           #   Escaped something (something != CR)
-)* "  # closing quote
-)                    # initial word
-(?:  (?: [\040\t] |  \(
-(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
-\)  )*  \.  (?: [\040\t] |  \(
-(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
-\)  )*   (?:
-[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
-(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
-|
-" (?:                      # opening quote...
-[^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
-|                     #    or
-\\ [^\x80-\xff]           #   Escaped something (something != CR)
-)* "  # closing quote
-)  )* # further okay, if led by a period
-(?: [\040\t] |  \(
-(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
-\)  )*  @  (?: [\040\t] |  \(
-(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
-\)  )*    (?:
-[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
-(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
-|   \[                         # [
-(?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
-\]                        #           ]
-)                           # initial subdomain
-(?:                                  #
-(?: [\040\t] |  \(
-(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
-\)  )*  \.                        # if led by a period...
-(?: [\040\t] |  \(
-(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
-\)  )*   (?:
-[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
-(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
-|   \[                         # [
-(?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
-\]                        #           ]
-)                     #   ...further okay
-)*
-# address
-|                     #  or
-(?:
-[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
-(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
-|
-" (?:                      # opening quote...
-[^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
-|                     #    or
-\\ [^\x80-\xff]           #   Escaped something (something != CR)
-)* "  # closing quote
-)             # one word, optionally followed by....
-(?:
-[^()<>@,;:".\\\[\]\x80-\xff\000-\010\012-\037]  |  # atom and space parts, or...
-\(
-(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
-\)       |  # comments, or...
-
-" (?:                      # opening quote...
-[^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
-|                     #    or
-\\ [^\x80-\xff]           #   Escaped something (something != CR)
-)* "  # closing quote
-# quoted strings
-)*
-<  (?: [\040\t] |  \(
-(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
-\)  )*                     # leading <
-(?:  @  (?: [\040\t] |  \(
-(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
-\)  )*    (?:
-[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
-(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
-|   \[                         # [
-(?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
-\]                        #           ]
-)                           # initial subdomain
-(?:                                  #
-(?: [\040\t] |  \(
-(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
-\)  )*  \.                        # if led by a period...
-(?: [\040\t] |  \(
-(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
-\)  )*   (?:
-[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
-(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
-|   \[                         # [
-(?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
-\]                        #           ]
-)                     #   ...further okay
-)*
-
-(?:  (?: [\040\t] |  \(
-(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
-\)  )*  ,  (?: [\040\t] |  \(
-(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
-\)  )*  @  (?: [\040\t] |  \(
-(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
-\)  )*    (?:
-[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
-(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
-|   \[                         # [
-(?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
-\]                        #           ]
-)                           # initial subdomain
-(?:                                  #
-(?: [\040\t] |  \(
-(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
-\)  )*  \.                        # if led by a period...
-(?: [\040\t] |  \(
-(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
-\)  )*   (?:
-[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
-(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
-|   \[                         # [
-(?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
-\]                        #           ]
-)                     #   ...further okay
-)*
-)* # further okay, if led by comma
-:                                # closing colon
-(?: [\040\t] |  \(
-(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
-\)  )*  )? #       optional route
-(?:
-[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
-(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
-|
-" (?:                      # opening quote...
-[^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
-|                     #    or
-\\ [^\x80-\xff]           #   Escaped something (something != CR)
-)* "  # closing quote
-)                    # initial word
-(?:  (?: [\040\t] |  \(
-(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
-\)  )*  \.  (?: [\040\t] |  \(
-(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
-\)  )*   (?:
-[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
-(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
-|
-" (?:                      # opening quote...
-[^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
-|                     #    or
-\\ [^\x80-\xff]           #   Escaped something (something != CR)
-)* "  # closing quote
-)  )* # further okay, if led by a period
-(?: [\040\t] |  \(
-(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
-\)  )*  @  (?: [\040\t] |  \(
-(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
-\)  )*    (?:
-[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
-(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
-|   \[                         # [
-(?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
-\]                        #           ]
-)                           # initial subdomain
-(?:                                  #
-(?: [\040\t] |  \(
-(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
-\)  )*  \.                        # if led by a period...
-(?: [\040\t] |  \(
-(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
-\)  )*   (?:
-[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
-(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
-|   \[                         # [
-(?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
-\]                        #           ]
-)                     #   ...further okay
-)*
-#       address spec
-(?: [\040\t] |  \(
-(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
-\)  )*  > #                  trailing >
-# name and address
-)  (?: [\040\t] |  \(
-(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
-\)  )*                       # optional trailing comment
-/x
-    Alan Other <user\@dom.ain>
- 0: Alan Other <user@dom.ain>
-    <user\@dom.ain>
- 0: user@dom.ain
-    user\@dom.ain
- 0: user@dom.ain
-    \"A. Other\" <user.1234\@dom.ain> (a comment)
- 0: "A. Other" <user.1234@dom.ain> (a comment)
-    A. Other <user.1234\@dom.ain> (a comment)
- 0:  Other <user.1234@dom.ain> (a comment)
-    \"/s=user/ou=host/o=place/prmd=uu.yy/admd= /c=gb/\"\@x400-re.lay
- 0: "/s=user/ou=host/o=place/prmd=uu.yy/admd= /c=gb/"@x400-re.lay
-    A missing angle <user\@some.where
- 0: user@some.where
-\= Expect no match
-    The quick brown fox
-No match
-
-/[\040\t]*                    # Nab whitespace.
-(?:
-\(                              #  (
-[^\\\x80-\xff\n\015()] *                             #     normal*
-(?:                                 #       (
-(?:  \\ [^\x80-\xff]  |
-\(                            #  (
-[^\\\x80-\xff\n\015()] *                            #     normal*
-(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
-\)                           #                       )
-)    #         special
-[^\\\x80-\xff\n\015()] *                         #         normal*
-)*                                  #            )*
-\)                             #                )
-[\040\t]* )*    # If comment found, allow more spaces.
-# optional leading comment
-(?:
-(?:
-[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
-(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
-# Atom
-|                       #  or
-"                                     # "
-[^\\\x80-\xff\n\015"] *                            #   normal
-(?:  \\ [^\x80-\xff]  [^\\\x80-\xff\n\015"] * )*        #   ( special normal* )*
-"                                     #        "
-# Quoted string
-)
-[\040\t]*                    # Nab whitespace.
-(?:
-\(                              #  (
-[^\\\x80-\xff\n\015()] *                             #     normal*
-(?:                                 #       (
-(?:  \\ [^\x80-\xff]  |
-\(                            #  (
-[^\\\x80-\xff\n\015()] *                            #     normal*
-(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
-\)                           #                       )
-)    #         special
-[^\\\x80-\xff\n\015()] *                         #         normal*
-)*                                  #            )*
-\)                             #                )
-[\040\t]* )*    # If comment found, allow more spaces.
-(?:
-\.
-[\040\t]*                    # Nab whitespace.
-(?:
-\(                              #  (
-[^\\\x80-\xff\n\015()] *                             #     normal*
-(?:                                 #       (
-(?:  \\ [^\x80-\xff]  |
-\(                            #  (
-[^\\\x80-\xff\n\015()] *                            #     normal*
-(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
-\)                           #                       )
-)    #         special
-[^\\\x80-\xff\n\015()] *                         #         normal*
-)*                                  #            )*
-\)                             #                )
-[\040\t]* )*    # If comment found, allow more spaces.
-(?:
-[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
-(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
-# Atom
-|                       #  or
-"                                     # "
-[^\\\x80-\xff\n\015"] *                            #   normal
-(?:  \\ [^\x80-\xff]  [^\\\x80-\xff\n\015"] * )*        #   ( special normal* )*
-"                                     #        "
-# Quoted string
-)
-[\040\t]*                    # Nab whitespace.
-(?:
-\(                              #  (
-[^\\\x80-\xff\n\015()] *                             #     normal*
-(?:                                 #       (
-(?:  \\ [^\x80-\xff]  |
-\(                            #  (
-[^\\\x80-\xff\n\015()] *                            #     normal*
-(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
-\)                           #                       )
-)    #         special
-[^\\\x80-\xff\n\015()] *                         #         normal*
-)*                                  #            )*
-\)                             #                )
-[\040\t]* )*    # If comment found, allow more spaces.
-# additional words
-)*
-@
-[\040\t]*                    # Nab whitespace.
-(?:
-\(                              #  (
-[^\\\x80-\xff\n\015()] *                             #     normal*
-(?:                                 #       (
-(?:  \\ [^\x80-\xff]  |
-\(                            #  (
-[^\\\x80-\xff\n\015()] *                            #     normal*
-(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
-\)                           #                       )
-)    #         special
-[^\\\x80-\xff\n\015()] *                         #         normal*
-)*                                  #            )*
-\)                             #                )
-[\040\t]* )*    # If comment found, allow more spaces.
-(?:
-[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
-(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
-|
-\[                            # [
-(?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*     #    stuff
-\]                           #           ]
-)
-[\040\t]*                    # Nab whitespace.
-(?:
-\(                              #  (
-[^\\\x80-\xff\n\015()] *                             #     normal*
-(?:                                 #       (
-(?:  \\ [^\x80-\xff]  |
-\(                            #  (
-[^\\\x80-\xff\n\015()] *                            #     normal*
-(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
-\)                           #                       )
-)    #         special
-[^\\\x80-\xff\n\015()] *                         #         normal*
-)*                                  #            )*
-\)                             #                )
-[\040\t]* )*    # If comment found, allow more spaces.
-# optional trailing comments
-(?:
-\.
-[\040\t]*                    # Nab whitespace.
-(?:
-\(                              #  (
-[^\\\x80-\xff\n\015()] *                             #     normal*
-(?:                                 #       (
-(?:  \\ [^\x80-\xff]  |
-\(                            #  (
-[^\\\x80-\xff\n\015()] *                            #     normal*
-(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
-\)                           #                       )
-)    #         special
-[^\\\x80-\xff\n\015()] *                         #         normal*
-)*                                  #            )*
-\)                             #                )
-[\040\t]* )*    # If comment found, allow more spaces.
-(?:
-[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
-(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
-|
-\[                            # [
-(?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*     #    stuff
-\]                           #           ]
-)
-[\040\t]*                    # Nab whitespace.
-(?:
-\(                              #  (
-[^\\\x80-\xff\n\015()] *                             #     normal*
-(?:                                 #       (
-(?:  \\ [^\x80-\xff]  |
-\(                            #  (
-[^\\\x80-\xff\n\015()] *                            #     normal*
-(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
-\)                           #                       )
-)    #         special
-[^\\\x80-\xff\n\015()] *                         #         normal*
-)*                                  #            )*
-\)                             #                )
-[\040\t]* )*    # If comment found, allow more spaces.
-# optional trailing comments
-)*
-# address
-|                             #  or
-(?:
-[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
-(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
-# Atom
-|                       #  or
-"                                     # "
-[^\\\x80-\xff\n\015"] *                            #   normal
-(?:  \\ [^\x80-\xff]  [^\\\x80-\xff\n\015"] * )*        #   ( special normal* )*
-"                                     #        "
-# Quoted string
-)
-# leading word
-[^()<>@,;:".\\\[\]\x80-\xff\000-\010\012-\037] *               # "normal" atoms and or spaces
-(?:
-(?:
-\(                              #  (
-[^\\\x80-\xff\n\015()] *                             #     normal*
-(?:                                 #       (
-(?:  \\ [^\x80-\xff]  |
-\(                            #  (
-[^\\\x80-\xff\n\015()] *                            #     normal*
-(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
-\)                           #                       )
-)    #         special
-[^\\\x80-\xff\n\015()] *                         #         normal*
-)*                                  #            )*
-\)                             #                )
-|
-"                                     # "
-[^\\\x80-\xff\n\015"] *                            #   normal
-(?:  \\ [^\x80-\xff]  [^\\\x80-\xff\n\015"] * )*        #   ( special normal* )*
-"                                     #        "
-) # "special" comment or quoted string
-[^()<>@,;:".\\\[\]\x80-\xff\000-\010\012-\037] *            #  more "normal"
-)*
-<
-[\040\t]*                    # Nab whitespace.
-(?:
-\(                              #  (
-[^\\\x80-\xff\n\015()] *                             #     normal*
-(?:                                 #       (
-(?:  \\ [^\x80-\xff]  |
-\(                            #  (
-[^\\\x80-\xff\n\015()] *                            #     normal*
-(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
-\)                           #                       )
-)    #         special
-[^\\\x80-\xff\n\015()] *                         #         normal*
-)*                                  #            )*
-\)                             #                )
-[\040\t]* )*    # If comment found, allow more spaces.
-# <
-(?:
-@
-[\040\t]*                    # Nab whitespace.
-(?:
-\(                              #  (
-[^\\\x80-\xff\n\015()] *                             #     normal*
-(?:                                 #       (
-(?:  \\ [^\x80-\xff]  |
-\(                            #  (
-[^\\\x80-\xff\n\015()] *                            #     normal*
-(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
-\)                           #                       )
-)    #         special
-[^\\\x80-\xff\n\015()] *                         #         normal*
-)*                                  #            )*
-\)                             #                )
-[\040\t]* )*    # If comment found, allow more spaces.
-(?:
-[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
-(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
-|
-\[                            # [
-(?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*     #    stuff
-\]                           #           ]
-)
-[\040\t]*                    # Nab whitespace.
-(?:
-\(                              #  (
-[^\\\x80-\xff\n\015()] *                             #     normal*
-(?:                                 #       (
-(?:  \\ [^\x80-\xff]  |
-\(                            #  (
-[^\\\x80-\xff\n\015()] *                            #     normal*
-(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
-\)                           #                       )
-)    #         special
-[^\\\x80-\xff\n\015()] *                         #         normal*
-)*                                  #            )*
-\)                             #                )
-[\040\t]* )*    # If comment found, allow more spaces.
-# optional trailing comments
-(?:
-\.
-[\040\t]*                    # Nab whitespace.
-(?:
-\(                              #  (
-[^\\\x80-\xff\n\015()] *                             #     normal*
-(?:                                 #       (
-(?:  \\ [^\x80-\xff]  |
-\(                            #  (
-[^\\\x80-\xff\n\015()] *                            #     normal*
-(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
-\)                           #                       )
-)    #         special
-[^\\\x80-\xff\n\015()] *                         #         normal*
-)*                                  #            )*
-\)                             #                )
-[\040\t]* )*    # If comment found, allow more spaces.
-(?:
-[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
-(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
-|
-\[                            # [
-(?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*     #    stuff
-\]                           #           ]
-)
-[\040\t]*                    # Nab whitespace.
-(?:
-\(                              #  (
-[^\\\x80-\xff\n\015()] *                             #     normal*
-(?:                                 #       (
-(?:  \\ [^\x80-\xff]  |
-\(                            #  (
-[^\\\x80-\xff\n\015()] *                            #     normal*
-(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
-\)                           #                       )
-)    #         special
-[^\\\x80-\xff\n\015()] *                         #         normal*
-)*                                  #            )*
-\)                             #                )
-[\040\t]* )*    # If comment found, allow more spaces.
-# optional trailing comments
-)*
-(?: ,
-[\040\t]*                    # Nab whitespace.
-(?:
-\(                              #  (
-[^\\\x80-\xff\n\015()] *                             #     normal*
-(?:                                 #       (
-(?:  \\ [^\x80-\xff]  |
-\(                            #  (
-[^\\\x80-\xff\n\015()] *                            #     normal*
-(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
-\)                           #                       )
-)    #         special
-[^\\\x80-\xff\n\015()] *                         #         normal*
-)*                                  #            )*
-\)                             #                )
-[\040\t]* )*    # If comment found, allow more spaces.
-@
-[\040\t]*                    # Nab whitespace.
-(?:
-\(                              #  (
-[^\\\x80-\xff\n\015()] *                             #     normal*
-(?:                                 #       (
-(?:  \\ [^\x80-\xff]  |
-\(                            #  (
-[^\\\x80-\xff\n\015()] *                            #     normal*
-(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
-\)                           #                       )
-)    #         special
-[^\\\x80-\xff\n\015()] *                         #         normal*
-)*                                  #            )*
-\)                             #                )
-[\040\t]* )*    # If comment found, allow more spaces.
-(?:
-[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
-(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
-|
-\[                            # [
-(?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*     #    stuff
-\]                           #           ]
-)
-[\040\t]*                    # Nab whitespace.
-(?:
-\(                              #  (
-[^\\\x80-\xff\n\015()] *                             #     normal*
-(?:                                 #       (
-(?:  \\ [^\x80-\xff]  |
-\(                            #  (
-[^\\\x80-\xff\n\015()] *                            #     normal*
-(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
-\)                           #                       )
-)    #         special
-[^\\\x80-\xff\n\015()] *                         #         normal*
-)*                                  #            )*
-\)                             #                )
-[\040\t]* )*    # If comment found, allow more spaces.
-# optional trailing comments
-(?:
-\.
-[\040\t]*                    # Nab whitespace.
-(?:
-\(                              #  (
-[^\\\x80-\xff\n\015()] *                             #     normal*
-(?:                                 #       (
-(?:  \\ [^\x80-\xff]  |
-\(                            #  (
-[^\\\x80-\xff\n\015()] *                            #     normal*
-(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
-\)                           #                       )
-)    #         special
-[^\\\x80-\xff\n\015()] *                         #         normal*
-)*                                  #            )*
-\)                             #                )
-[\040\t]* )*    # If comment found, allow more spaces.
-(?:
-[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
-(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
-|
-\[                            # [
-(?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*     #    stuff
-\]                           #           ]
-)
-[\040\t]*                    # Nab whitespace.
-(?:
-\(                              #  (
-[^\\\x80-\xff\n\015()] *                             #     normal*
-(?:                                 #       (
-(?:  \\ [^\x80-\xff]  |
-\(                            #  (
-[^\\\x80-\xff\n\015()] *                            #     normal*
-(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
-\)                           #                       )
-)    #         special
-[^\\\x80-\xff\n\015()] *                         #         normal*
-)*                                  #            )*
-\)                             #                )
-[\040\t]* )*    # If comment found, allow more spaces.
-# optional trailing comments
-)*
-)*  # additional domains
-:
-[\040\t]*                    # Nab whitespace.
-(?:
-\(                              #  (
-[^\\\x80-\xff\n\015()] *                             #     normal*
-(?:                                 #       (
-(?:  \\ [^\x80-\xff]  |
-\(                            #  (
-[^\\\x80-\xff\n\015()] *                            #     normal*
-(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
-\)                           #                       )
-)    #         special
-[^\\\x80-\xff\n\015()] *                         #         normal*
-)*                                  #            )*
-\)                             #                )
-[\040\t]* )*    # If comment found, allow more spaces.
-# optional trailing comments
-)?     #       optional route
-(?:
-[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
-(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
-# Atom
-|                       #  or
-"                                     # "
-[^\\\x80-\xff\n\015"] *                            #   normal
-(?:  \\ [^\x80-\xff]  [^\\\x80-\xff\n\015"] * )*        #   ( special normal* )*
-"                                     #        "
-# Quoted string
-)
-[\040\t]*                    # Nab whitespace.
-(?:
-\(                              #  (
-[^\\\x80-\xff\n\015()] *                             #     normal*
-(?:                                 #       (
-(?:  \\ [^\x80-\xff]  |
-\(                            #  (
-[^\\\x80-\xff\n\015()] *                            #     normal*
-(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
-\)                           #                       )
-)    #         special
-[^\\\x80-\xff\n\015()] *                         #         normal*
-)*                                  #            )*
-\)                             #                )
-[\040\t]* )*    # If comment found, allow more spaces.
-(?:
-\.
-[\040\t]*                    # Nab whitespace.
-(?:
-\(                              #  (
-[^\\\x80-\xff\n\015()] *                             #     normal*
-(?:                                 #       (
-(?:  \\ [^\x80-\xff]  |
-\(                            #  (
-[^\\\x80-\xff\n\015()] *                            #     normal*
-(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
-\)                           #                       )
-)    #         special
-[^\\\x80-\xff\n\015()] *                         #         normal*
-)*                                  #            )*
-\)                             #                )
-[\040\t]* )*    # If comment found, allow more spaces.
-(?:
-[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
-(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
-# Atom
-|                       #  or
-"                                     # "
-[^\\\x80-\xff\n\015"] *                            #   normal
-(?:  \\ [^\x80-\xff]  [^\\\x80-\xff\n\015"] * )*        #   ( special normal* )*
-"                                     #        "
-# Quoted string
-)
-[\040\t]*                    # Nab whitespace.
-(?:
-\(                              #  (
-[^\\\x80-\xff\n\015()] *                             #     normal*
-(?:                                 #       (
-(?:  \\ [^\x80-\xff]  |
-\(                            #  (
-[^\\\x80-\xff\n\015()] *                            #     normal*
-(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
-\)                           #                       )
-)    #         special
-[^\\\x80-\xff\n\015()] *                         #         normal*
-)*                                  #            )*
-\)                             #                )
-[\040\t]* )*    # If comment found, allow more spaces.
-# additional words
-)*
-@
-[\040\t]*                    # Nab whitespace.
-(?:
-\(                              #  (
-[^\\\x80-\xff\n\015()] *                             #     normal*
-(?:                                 #       (
-(?:  \\ [^\x80-\xff]  |
-\(                            #  (
-[^\\\x80-\xff\n\015()] *                            #     normal*
-(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
-\)                           #                       )
-)    #         special
-[^\\\x80-\xff\n\015()] *                         #         normal*
-)*                                  #            )*
-\)                             #                )
-[\040\t]* )*    # If comment found, allow more spaces.
-(?:
-[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
-(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
-|
-\[                            # [
-(?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*     #    stuff
-\]                           #           ]
-)
-[\040\t]*                    # Nab whitespace.
-(?:
-\(                              #  (
-[^\\\x80-\xff\n\015()] *                             #     normal*
-(?:                                 #       (
-(?:  \\ [^\x80-\xff]  |
-\(                            #  (
-[^\\\x80-\xff\n\015()] *                            #     normal*
-(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
-\)                           #                       )
-)    #         special
-[^\\\x80-\xff\n\015()] *                         #         normal*
-)*                                  #            )*
-\)                             #                )
-[\040\t]* )*    # If comment found, allow more spaces.
-# optional trailing comments
-(?:
-\.
-[\040\t]*                    # Nab whitespace.
-(?:
-\(                              #  (
-[^\\\x80-\xff\n\015()] *                             #     normal*
-(?:                                 #       (
-(?:  \\ [^\x80-\xff]  |
-\(                            #  (
-[^\\\x80-\xff\n\015()] *                            #     normal*
-(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
-\)                           #                       )
-)    #         special
-[^\\\x80-\xff\n\015()] *                         #         normal*
-)*                                  #            )*
-\)                             #                )
-[\040\t]* )*    # If comment found, allow more spaces.
-(?:
-[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
-(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
-|
-\[                            # [
-(?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*     #    stuff
-\]                           #           ]
-)
-[\040\t]*                    # Nab whitespace.
-(?:
-\(                              #  (
-[^\\\x80-\xff\n\015()] *                             #     normal*
-(?:                                 #       (
-(?:  \\ [^\x80-\xff]  |
-\(                            #  (
-[^\\\x80-\xff\n\015()] *                            #     normal*
-(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
-\)                           #                       )
-)    #         special
-[^\\\x80-\xff\n\015()] *                         #         normal*
-)*                                  #            )*
-\)                             #                )
-[\040\t]* )*    # If comment found, allow more spaces.
-# optional trailing comments
-)*
-#       address spec
->                    #                 >
-# name and address
-)
-/x
-    Alan Other <user\@dom.ain>
- 0: Alan Other <user@dom.ain>
-    <user\@dom.ain>
- 0: user@dom.ain
-    user\@dom.ain
- 0: user@dom.ain
-    \"A. Other\" <user.1234\@dom.ain> (a comment)
- 0: "A. Other" <user.1234@dom.ain>
-    A. Other <user.1234\@dom.ain> (a comment)
- 0:  Other <user.1234@dom.ain>
-    \"/s=user/ou=host/o=place/prmd=uu.yy/admd= /c=gb/\"\@x400-re.lay
- 0: "/s=user/ou=host/o=place/prmd=uu.yy/admd= /c=gb/"@x400-re.lay
-    A missing angle <user\@some.where
- 0: user@some.where
-\= Expect no match
-    The quick brown fox
-No match
-
-/abc\0def\00pqr\000xyz\0000AB/
-    abc\0def\00pqr\000xyz\0000AB
- 0: abc\x00def\x00pqr\x00xyz\x000AB
-    abc456 abc\0def\00pqr\000xyz\0000ABCDE
- 0: abc\x00def\x00pqr\x00xyz\x000AB
-
-/abc\x0def\x00pqr\x000xyz\x0000AB/
-    abc\x0def\x00pqr\x000xyz\x0000AB
- 0: abc\x0def\x00pqr\x000xyz\x0000AB
-    abc456 abc\x0def\x00pqr\x000xyz\x0000ABCDE
- 0: abc\x0def\x00pqr\x000xyz\x0000AB
-
-/^[\000-\037]/
-    \0A
- 0: \x00
-    \01B
- 0: \x01
-    \037C
- 0: \x1f
-
-#.NET doesn't do octal with 1 number
-
-/^(cow|)\1(bell)/
-    cowcowbell
- 0: cowcowbell
- 1: cow
- 2: bell
-    bell
- 0: bell
- 1: 
- 2: bell
-\= Expect no match
-    cowbell
-No match
-
-/^\s/
-    \040abc
- 0:  
-    \x0cabc
- 0: \x0c
-    \nabc
- 0: \x0a
-    \rabc
- 0: \x0d
-    \tabc
- 0: \x09
-\= Expect no match
-    abc
-No match
-
-/^a	b
-    
-  c/x
-    abc
- 0: abc
-
-/^(a|)\1*b/
-    ab
- 0: ab
- 1: a
-    aaaab
- 0: aaaab
- 1: a
-    b
- 0: b
- 1: 
-\= Expect no match
-    acb
-No match
-
-/^(a|)\1+b/
-    aab
- 0: aab
- 1: a
-    aaaab
- 0: aaaab
- 1: a
-    b
- 0: b
- 1: 
-\= Expect no match
-    ab
-No match
-
-/^(a|)\1?b/
-    ab
- 0: ab
- 1: a
-    aab
- 0: aab
- 1: a
-    b
- 0: b
- 1: 
-\= Expect no match
-    acb
-No match
-
-/^(a|)\1{2}b/
-    aaab
- 0: aaab
- 1: a
-    b
- 0: b
- 1: 
-\= Expect no match
-    ab
-No match
-    aab
-No match
-    aaaab
-No match
-
-/^(a|)\1{2,3}b/
-    aaab
- 0: aaab
- 1: a
-    aaaab
- 0: aaaab
- 1: a
-    b
- 0: b
- 1: 
-\= Expect no match
-    ab
-No match
-    aab
-No match
-    aaaaab
-No match
-
-/ab{1,3}bc/
-    abbbbc
- 0: abbbbc
-    abbbc
- 0: abbbc
-    abbc
- 0: abbc
-\= Expect no match
-    abc
-No match
-    abbbbbc
-No match
-
-/([^.]*)\.([^:]*):[T ]+(.*)/
-    track1.title:TBlah blah blah
- 0: track1.title:TBlah blah blah
- 1: track1
- 2: title
- 3: Blah blah blah
-
-/([^.]*)\.([^:]*):[T ]+(.*)/i
-    track1.title:TBlah blah blah
- 0: track1.title:TBlah blah blah
- 1: track1
- 2: title
- 3: Blah blah blah
-
-/([^.]*)\.([^:]*):[t ]+(.*)/i
-    track1.title:TBlah blah blah
- 0: track1.title:TBlah blah blah
- 1: track1
- 2: title
- 3: Blah blah blah
-
-/^[W-c]+$/
-    WXY_^abc
- 0: WXY_^abc
-\= Expect no match
-    wxy
-No match
-
-/^[W-c]+$/i
-    WXY_^abc
- 0: WXY_^abc
-    wxy_^ABC
- 0: wxy_^ABC
-
-/^[\x3f-\x5F]+$/i
-    WXY_^abc
- 0: WXY_^abc
-    wxy_^ABC
- 0: wxy_^ABC
-
-/^abc$/m
-    abc
- 0: abc
-    qqq\nabc
- 0: abc
-    abc\nzzz
- 0: abc
-    qqq\nabc\nzzz
- 0: abc
-
-/^abc$/
-    abc
- 0: abc
-\= Expect no match
-    qqq\nabc
-No match
-    abc\nzzz
-No match
-    qqq\nabc\nzzz
-No match
-
-/\Aabc\Z/m
-    abc
- 0: abc
-    abc\n 
- 0: abc
-\= Expect no match
-    qqq\nabc
-No match
-    abc\nzzz
-No match
-    qqq\nabc\nzzz
-No match
-    
-/\A(.)*\Z/s
-    abc\ndef
- 0: abc\x0adef
- 1: f
-
-/\A(.)*\Z/m
-\= Expect no match
-    abc\ndef
-No match
-
-/(?:b)|(?::+)/
-    b::c
- 0: b
-    c::b
- 0: ::
-
-/[-az]+/
-    az-
- 0: az-
-\= Expect no match
-    b
-No match
-
-/[az-]+/
-    za-
- 0: za-
-\= Expect no match
-    b
-No match
-
-/[a\-z]+/
-    a-z
- 0: a-z
-\= Expect no match
-    b
-No match
-
-/[a-z]+/
-    abcdxyz
- 0: abcdxyz
-
-/[\d-]+/
-    12-34
- 0: 12-34
-\= Expect no match
-    aaa
-No match
-
-/[\d-z]+/
-    12-34z
- 0: 12-34z
-\= Expect no match
-    aaa
-No match
-
-/\x5c/
-    \\
- 0: \
-
-/\x20Z/
-    the Zoo
- 0:  Z
-\= Expect no match
-    Zulu
-No match
-
-/(abc)\1/i
-    abcabc
- 0: abcabc
- 1: abc
-    ABCabc
- 0: ABCabc
- 1: ABC
-    abcABC
- 0: abcABC
- 1: abc
-
-/abc$/
-    abc
- 0: abc
-    abc\n
- 0: abc
-\= Expect no match
-    abc\ndef
-No match
-
-/(abc)\123/
-    abc\x53
- 0: abcS
- 1: abc
-
-/(abc)\100/
-    abc\x40
- 0: abc@
- 1: abc
-    abc\100
- 0: abc@
- 1: abc
-
-/(abc)\1000/
-    abc\x400
- 0: abc@0
- 1: abc
-    abc\x40\x30
- 0: abc@0
- 1: abc
-    abc\1000
- 0: abc@0
- 1: abc
-    abc\100\x30
- 0: abc@0
- 1: abc
-    abc\100\060
- 0: abc@0
- 1: abc
-    abc\100\60
- 0: abc@0
- 1: abc
-    
-/^(A)(B)(C)(D)(E)(F)(G)(H)(I)\8\9$/
-    ABCDEFGHIHI 
- 0: ABCDEFGHIHI
- 1: A
- 2: B
- 3: C
- 4: D
- 5: E
- 6: F
- 7: G
- 8: H
- 9: I
-
-/(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)(l)\12\123/
-    abcdefghijkllS
- 0: abcdefghijkllS
- 1: a
- 2: b
- 3: c
- 4: d
- 5: e
- 6: f
- 7: g
- 8: h
- 9: i
-10: j
-11: k
-12: l
-
-/(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)\12\123/
-    abcdefghijk\12S
- 0: abcdefghijk\x0aS
- 1: a
- 2: b
- 3: c
- 4: d
- 5: e
- 6: f
- 7: g
- 8: h
- 9: i
-10: j
-11: k
-
-/a{0}bc/
-    bc
- 0: bc
-
-/(a|(bc)){0,0}?xyz/
-    xyz
- 0: xyz
-
-/abc[\10]de/
-    abc\010de
- 0: abc\x08de
-
-/abc[\1]de/
-    abc\1de
- 0: abc\x01de
-
-/(abc)[\1]de/
-    abc\1de
- 0: abc\x01de
- 1: abc
-
-/(?s)a.b/
-    a\nb
- 0: a\x0ab
-
-/^([^a])([^\b])([^c]*)([^d]{3,4})/
-    baNOTccccd
- 0: baNOTcccc
- 1: b
- 2: a
- 3: NOT
- 4: cccc
-    baNOTcccd
- 0: baNOTccc
- 1: b
- 2: a
- 3: NOT
- 4: ccc
-    baNOTccd
- 0: baNOTcc
- 1: b
- 2: a
- 3: NO
- 4: Tcc
-    bacccd
- 0: baccc
- 1: b
- 2: a
- 3: 
- 4: ccc
-\= Expect no match
-    anything
-No match
-    b\bc   
-No match
-    baccd
-No match
-
-/[^a]/
-    Abc
- 0: A
-  
-/[^a]/i
-    Abc 
- 0: b
-
-/[^a]+/
-    AAAaAbc
- 0: AAA
-  
-/[^a]+/i
-    AAAaAbc
- 0: bc
-
-/[^a]+/
-    bbb\nccc
- 0: bbb\x0accc
-   
-/[^k]$/
-    abc
- 0: c
-\= Expect no match
-    abk
-No match
-   
-/[^k]{2,3}$/
-    abc
- 0: abc
-    kbc
- 0: bc
-    kabc
- 0: abc
-\= Expect no match
-    abk
-No match
-    akb
-No match
-    akk
-No match
-
-/^\d{8,}\@.+[^k]$/
-    12345678\@a.b.c.d
- 0: 12345678@a.b.c.d
-    123456789\@x.y.z
- 0: 123456789@x.y.z
-\= Expect no match
-    12345678\@x.y.uk
-No match
-    1234567\@a.b.c.d       
-No match
-
-/(a)\1{8,}/
-    aaaaaaaaa
- 0: aaaaaaaaa
- 1: a
-    aaaaaaaaaa
- 0: aaaaaaaaaa
- 1: a
-\= Expect no match
-    aaaaaaa   
-No match
-
-/[^a]/
-    aaaabcd
- 0: b
-    aaAabcd 
- 0: A
-
-/[^a]/i
-    aaaabcd
- 0: b
-    aaAabcd 
- 0: b
-
-/[^az]/
-    aaaabcd
- 0: b
-    aaAabcd 
- 0: A
-
-/[^az]/i
-    aaaabcd
- 0: b
-    aaAabcd 
- 0: b
-
-# trimmed upper ascii since Go is UTF-8
-/\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065\066\067\070\071\072\073\074\075\076\077\100\101\102\103\104\105\106\107\110\111\112\113\114\115\116\117\120\121\122\123\124\125\126\127\130\131\132\133\134\135\136\137\140\141\142\143\144\145\146\147\150\151\152\153\154\155\156\157\160\161\162\163\164\165\166\167\170\171\172\173\174\175\176\177/
-    \000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065\066\067\070\071\072\073\074\075\076\077\100\101\102\103\104\105\106\107\110\111\112\113\114\115\116\117\120\121\122\123\124\125\126\127\130\131\132\133\134\135\136\137\140\141\142\143\144\145\146\147\150\151\152\153\154\155\156\157\160\161\162\163\164\165\166\167\170\171\172\173\174\175\176\177
- 0: \x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~\x7f
-
-/P[^*]TAIRE[^*]{1,6}?LL/
-    xxxxxxxxxxxPSTAIREISLLxxxxxxxxx
- 0: PSTAIREISLL
-
-/P[^*]TAIRE[^*]{1,}?LL/
-    xxxxxxxxxxxPSTAIREISLLxxxxxxxxx
- 0: PSTAIREISLL
-
-/(\.\d\d[1-9]?)\d+/
-    1.230003938
- 0: .230003938
- 1: .23
-    1.875000282   
- 0: .875000282
- 1: .875
-    1.235  
- 0: .235
- 1: .23
-                  
-/(\.\d\d((?=0)|\d(?=\d)))/
-    1.230003938      
- 0: .23
- 1: .23
- 2: 
-    1.875000282
- 0: .875
- 1: .875
- 2: 5
-\= Expect no match 
-    1.235 
-No match
-     
-/\b(foo)\s+(\w+)/i
-    Food is on the foo table
- 0: foo table
- 1: foo
- 2: table
-    
-/foo(.*)bar/
-    The food is under the bar in the barn.
- 0: food is under the bar in the bar
- 1: d is under the bar in the 
-    
-/foo(.*?)bar/
-    The food is under the bar in the barn.
- 0: food is under the bar
- 1: d is under the 
-
-/(.*)(\d*)/
-    I have 2 numbers: 53147
- 0: I have 2 numbers: 53147
- 1: I have 2 numbers: 53147
- 2: 
-    
-/(.*)(\d+)/
-    I have 2 numbers: 53147
- 0: I have 2 numbers: 53147
- 1: I have 2 numbers: 5314
- 2: 7
- 
-/(.*?)(\d*)/
-    I have 2 numbers: 53147
- 0: 
- 1: 
- 2: 
-
-/(.*?)(\d+)/
-    I have 2 numbers: 53147
- 0: I have 2
- 1: I have 
- 2: 2
-
-/(.*)(\d+)$/
-    I have 2 numbers: 53147
- 0: I have 2 numbers: 53147
- 1: I have 2 numbers: 5314
- 2: 7
-
-/(.*?)(\d+)$/
-    I have 2 numbers: 53147
- 0: I have 2 numbers: 53147
- 1: I have 2 numbers: 
- 2: 53147
-
-/(.*)\b(\d+)$/
-    I have 2 numbers: 53147
- 0: I have 2 numbers: 53147
- 1: I have 2 numbers: 
- 2: 53147
-
-/(.*\D)(\d+)$/
-    I have 2 numbers: 53147
- 0: I have 2 numbers: 53147
- 1: I have 2 numbers: 
- 2: 53147
-
-/^\D*(?!123)/
-    ABC123
- 0: AB
-     
-/^(\D*)(?=\d)(?!123)/
-    ABC445
- 0: ABC
- 1: ABC
-\= Expect no match
-    ABC123
-No match
-    
-/^[W-]46]/
-    W46]789 
- 0: W46]
-    -46]789
- 0: -46]
-\= Expect no match
-    Wall
-No match
-    Zebra
-No match
-    42
-No match
-    [abcd] 
-No match
-    ]abcd[
-No match
-       
-/^[W-\]46]/
-    W46]789 
- 0: W
-    Wall
- 0: W
-    Zebra
- 0: Z
-    Xylophone  
- 0: X
-    42
- 0: 4
-    [abcd] 
- 0: [
-    ]abcd[
- 0: ]
-    \\backslash 
- 0: \
-\= Expect no match
-    -46]789
-No match
-    well
-No match
-    
-/\d\d\/\d\d\/\d\d\d\d/
-    01/01/2000
- 0: 01/01/2000
-
-/word (?:[a-zA-Z0-9]+ ){0,10}otherword/
-    word cat dog elephant mussel cow horse canary baboon snake shark otherword
- 0: word cat dog elephant mussel cow horse canary baboon snake shark otherword
-\= Expect no match
-    word cat dog elephant mussel cow horse canary baboon snake shark
-No match
-
-/word (?:[a-zA-Z0-9]+ ){0,300}otherword/
-\= Expect no match
-    word cat dog elephant mussel cow horse canary baboon snake shark the quick brown fox and the lazy dog and several other words getting close to thirty by now I hope
-No match
-
-/^(a){0,0}/
-    bcd
- 0: 
-    abc
- 0: 
-    aab     
- 0: 
-
-/^(a){0,1}/
-    bcd
- 0: 
-    abc
- 0: a
- 1: a
-    aab  
- 0: a
- 1: a
-
-/^(a){0,2}/
-    bcd
- 0: 
-    abc
- 0: a
- 1: a
-    aab  
- 0: aa
- 1: a
-
-/^(a){0,3}/
-    bcd
- 0: 
-    abc
- 0: a
- 1: a
-    aab
- 0: aa
- 1: a
-    aaa   
- 0: aaa
- 1: a
-
-/^(a){0,}/
-    bcd
- 0: 
-    abc
- 0: a
- 1: a
-    aab
- 0: aa
- 1: a
-    aaa
- 0: aaa
- 1: a
-    aaaaaaaa    
- 0: aaaaaaaa
- 1: a
-
-/^(a){1,1}/
-    abc
- 0: a
- 1: a
-    aab  
- 0: a
- 1: a
-\= Expect no match
-    bcd
-No match
-
-/^(a){1,2}/
-    abc
- 0: a
- 1: a
-    aab  
- 0: aa
- 1: a
-\= Expect no match
-    bcd
-No match
-
-/^(a){1,3}/
-    abc
- 0: a
- 1: a
-    aab
- 0: aa
- 1: a
-    aaa   
- 0: aaa
- 1: a
-\= Expect no match
-    bcd
-No match
-
-/^(a){1,}/
-    abc
- 0: a
- 1: a
-    aab
- 0: aa
- 1: a
-    aaa
- 0: aaa
- 1: a
-    aaaaaaaa    
- 0: aaaaaaaa
- 1: a
-\= Expect no match
-    bcd
-No match
-
-/.*\.gif/
-    borfle\nbib.gif\nno
- 0: bib.gif
-
-/.{0,}\.gif/
-    borfle\nbib.gif\nno
- 0: bib.gif
-
-/.*\.gif/m
-    borfle\nbib.gif\nno
- 0: bib.gif
-
-/.*\.gif/s
-    borfle\nbib.gif\nno
- 0: borfle\x0abib.gif
-
-/.*\.gif/ms
-    borfle\nbib.gif\nno
- 0: borfle\x0abib.gif
-    
-/.*$/
-    borfle\nbib.gif\nno
- 0: no
-
-/.*$/m
-    borfle\nbib.gif\nno
- 0: borfle
-
-/.*$/s
-    borfle\nbib.gif\nno
- 0: borfle\x0abib.gif\x0ano
-
-/.*$/ms
-    borfle\nbib.gif\nno
- 0: borfle\x0abib.gif\x0ano
-    
-/.*$/
-    borfle\nbib.gif\nno\n
- 0: no
-
-/.*$/m
-    borfle\nbib.gif\nno\n
- 0: borfle
-
-/.*$/s
-    borfle\nbib.gif\nno\n
- 0: borfle\x0abib.gif\x0ano\x0a
-
-/.*$/ms
-    borfle\nbib.gif\nno\n
- 0: borfle\x0abib.gif\x0ano\x0a
-    
-/(.*X|^B)/
-    abcde\n1234Xyz
- 0: 1234X
- 1: 1234X
-    BarFoo 
- 0: B
- 1: B
-\= Expect no match
-    abcde\nBar  
-No match
-
-/(.*X|^B)/m
-    abcde\n1234Xyz
- 0: 1234X
- 1: 1234X
-    BarFoo 
- 0: B
- 1: B
-    abcde\nBar  
- 0: B
- 1: B
-
-/(.*X|^B)/s
-    abcde\n1234Xyz
- 0: abcde\x0a1234X
- 1: abcde\x0a1234X
-    BarFoo 
- 0: B
- 1: B
-\= Expect no match
-    abcde\nBar  
-No match
-
-/(.*X|^B)/ms
-    abcde\n1234Xyz
- 0: abcde\x0a1234X
- 1: abcde\x0a1234X
-    BarFoo 
- 0: B
- 1: B
-    abcde\nBar  
- 0: B
- 1: B
-
-/(?s)(.*X|^B)/
-    abcde\n1234Xyz
- 0: abcde\x0a1234X
- 1: abcde\x0a1234X
-    BarFoo 
- 0: B
- 1: B
-\= Expect no match 
-    abcde\nBar  
-No match
-
-/(?s:.*X|^B)/
-    abcde\n1234Xyz
- 0: abcde\x0a1234X
-    BarFoo 
- 0: B
-\= Expect no match 
-    abcde\nBar  
-No match
-
-/^.*B/
-\= Expect no match
-    abc\nB
-No match
-     
-/(?s)^.*B/
-    abc\nB
- 0: abc\x0aB
-
-/(?m)^.*B/
-    abc\nB
- 0: B
-     
-/(?ms)^.*B/
-    abc\nB
- 0: abc\x0aB
-
-/(?ms)^B/
-    abc\nB
- 0: B
-
-/(?s)B$/
-    B\n
- 0: B
-
-/^[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]/
-    123456654321
- 0: 123456654321
-  
-/^\d\d\d\d\d\d\d\d\d\d\d\d/
-    123456654321 
- 0: 123456654321
-
-/^[\d][\d][\d][\d][\d][\d][\d][\d][\d][\d][\d][\d]/
-    123456654321
- 0: 123456654321
-  
-/^[abc]{12}/
-    abcabcabcabc
- 0: abcabcabcabc
-    
-/^[a-c]{12}/
-    abcabcabcabc
- 0: abcabcabcabc
-    
-/^(a|b|c){12}/
-    abcabcabcabc 
- 0: abcabcabcabc
- 1: c
-
-/^[abcdefghijklmnopqrstuvwxy0123456789]/
-    n
- 0: n
-\= Expect no match 
-    z 
-No match
-
-/abcde{0,0}/
-    abcd
- 0: abcd
-\= Expect no match
-    abce  
-No match
-
-/ab[cd]{0,0}e/
-    abe
- 0: abe
-\= Expect no match
-    abcde 
-No match
-    
-/ab(c){0,0}d/
-    abd
- 0: abd
-\= Expect no match
-    abcd   
-No match
-
-/a(b*)/
-    a
- 0: a
- 1: 
-    ab
- 0: ab
- 1: b
-    abbbb
- 0: abbbb
- 1: bbbb
-\= Expect no match
-    bbbbb    
-No match
-    
-/ab\d{0}e/
-    abe
- 0: abe
-\= Expect no match
-    ab1e   
-No match
-    
-/"([^\\"]+|\\.)*"/
-    the \"quick\" brown fox
- 0: "quick"
- 1: quick
-    \"the \\\"quick\\\" brown fox\" 
- 0: "the \"quick\" brown fox"
- 1:  brown fox
-
-/<tr([\w\W\s\d][^<>]{0,})><TD([\w\W\s\d][^<>]{0,})>([\d]{0,}\.)(.*)((<BR>([\w\W\s\d][^<>]{0,})|[\s]{0,}))<\/a><\/TD><TD([\w\W\s\d][^<>]{0,})>([\w\W\s\d][^<>]{0,})<\/TD><TD([\w\W\s\d][^<>]{0,})>([\w\W\s\d][^<>]{0,})<\/TD><\/TR>/is
-    <TR BGCOLOR='#DBE9E9'><TD align=left valign=top>43.<a href='joblist.cfm?JobID=94 6735&Keyword='>Word Processor<BR>(N-1286)</a></TD><TD align=left valign=top>Lega lstaff.com</TD><TD align=left valign=top>CA - Statewide</TD></TR>
- 0: <TR BGCOLOR='#DBE9E9'><TD align=left valign=top>43.<a href='joblist.cfm?JobID=94 6735&Keyword='>Word Processor<BR>(N-1286)</a></TD><TD align=left valign=top>Lega lstaff.com</TD><TD align=left valign=top>CA - Statewide</TD></TR>
- 1:  BGCOLOR='#DBE9E9'
- 2:  align=left valign=top
- 3: 43.
- 4: <a href='joblist.cfm?JobID=94 6735&Keyword='>Word Processor<BR>(N-1286)
- 5: 
- 6: 
- 7: <unset>
- 8:  align=left valign=top
- 9: Lega lstaff.com
-10:  align=left valign=top
-11: CA - Statewide
-
-/a[^a]b/
-    acb
- 0: acb
-    a\nb
- 0: a\x0ab
-    
-/a.b/
-    acb
- 0: acb
-\= Expect no match 
-    a\nb   
-No match
-    
-/a[^a]b/s
-    acb
- 0: acb
-    a\nb  
- 0: a\x0ab
-    
-/a.b/s
-    acb
- 0: acb
-    a\nb  
- 0: a\x0ab
-
-/^(b+?|a){1,2}?c/
-    bac
- 0: bac
- 1: a
-    bbac
- 0: bbac
- 1: a
-    bbbac
- 0: bbbac
- 1: a
-    bbbbac
- 0: bbbbac
- 1: a
-    bbbbbac 
- 0: bbbbbac
- 1: a
-
-/^(b+|a){1,2}?c/
-    bac
- 0: bac
- 1: a
-    bbac
- 0: bbac
- 1: a
-    bbbac
- 0: bbbac
- 1: a
-    bbbbac
- 0: bbbbac
- 1: a
-    bbbbbac 
- 0: bbbbbac
- 1: a
-    
-/(?!\A)x/m
-    a\bx\n
- 0: x
-    a\nx\n
- 0: x
-\= Expect no match     
-    x\nb\n
-No match
-    
-/(A|B)*?CD/
-    CD 
- 0: CD
-    
-/(A|B)*CD/
-    CD 
- 0: CD
-
-/(AB)*?\1/
-    ABABAB
- 0: ABAB
- 1: AB
-
-/(AB)*\1/
-    ABABAB
- 0: ABABAB
- 1: AB
-    
-/(?<!bar)foo/
-    foo
- 0: foo
-    catfood
- 0: foo
-    arfootle
- 0: foo
-    rfoosh
- 0: foo
-\= Expect no match
-    barfoo
-No match
-    towbarfoo
-No match
-
-/\w{3}(?<!bar)foo/
-    catfood
- 0: catfoo
-\= Expect no match
-    foo
-No match
-    barfoo
-No match
-    towbarfoo
-No match
-
-/(?<=(foo)a)bar/
-    fooabar
- 0: bar
- 1: foo
-\= Expect no match
-    bar
-No match
-    foobbar
-No match
-      
-/\Aabc\z/m
-    abc
- 0: abc
-\= Expect no match
-    abc\n   
-No match
-    qqq\nabc
-No match
-    abc\nzzz
-No match
-    qqq\nabc\nzzz
-No match
-
-"(?>.*/)foo"
-    /this/is/a/very/long/line/in/deed/with/very/many/slashes/in/and/foo
- 0: /this/is/a/very/long/line/in/deed/with/very/many/slashes/in/and/foo
-\= Expect no match     
-    /this/is/a/very/long/line/in/deed/with/very/many/slashes/in/it/you/see/
-No match
-
-/(?>(\.\d\d[1-9]?))\d+/
-    1.230003938
- 0: .230003938
- 1: .23
-    1.875000282
- 0: .875000282
- 1: .875
-\= Expect no match 
-    1.235 
-No match
-
-/^((?>\w+)|(?>\s+))*$/
-    now is the time for all good men to come to the aid of the party
- 0: now is the time for all good men to come to the aid of the party
- 1: party
-\= Expect no match
-    this is not a line with only words and spaces!
-No match
-    
-/(\d+)(\w)/
-    12345a
- 0: 12345a
- 1: 12345
- 2: a
-    12345+ 
- 0: 12345
- 1: 1234
- 2: 5
-
-/((?>\d+))(\w)/
-    12345a
- 0: 12345a
- 1: 12345
- 2: a
-\= Expect no match
-    12345+ 
-No match
-
-/(?>a+)b/
-    aaab
- 0: aaab
-
-/((?>a+)b)/
-    aaab
- 0: aaab
- 1: aaab
-
-/(?>(a+))b/
-    aaab
- 0: aaab
- 1: aaa
-
-/(?>b)+/
-    aaabbbccc
- 0: bbb
-
-/(?>a+|b+|c+)*c/
-    aaabbbbccccd
- 0: aaabbbbc
-
-/((?>[^()]+)|\([^()]*\))+/
-    ((abc(ade)ufh()()x
- 0: abc(ade)ufh()()x
- 1: x
-    
-/\(((?>[^()]+)|\([^()]+\))+\)/
-    (abc)
- 0: (abc)
- 1: abc
-    (abc(def)xyz)
- 0: (abc(def)xyz)
- 1: xyz
-\= Expect no match
-    ((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa   
-No match
-
-/a(?-i)b/i
-    ab
- 0: ab
-    Ab
- 0: Ab
-\= Expect no match 
-    aB
-No match
-    AB
-No match
-        
-/(a (?x)b c)d e/
-    a bcd e
- 0: a bcd e
- 1: a bc
-\= Expect no match
-    a b cd e
-No match
-    abcd e   
-No match
-    a bcde 
-No match
- 
-/(a b(?x)c d (?-x)e f)/
-    a bcde f
- 0: a bcde f
- 1: a bcde f
-\= Expect no match
-    abcdef  
-No match
-
-/(a(?i)b)c/
-    abc
- 0: abc
- 1: ab
-    aBc
- 0: aBc
- 1: aB
-\= Expect no match
-    abC
-No match
-    aBC  
-No match
-    Abc
-No match
-    ABc
-No match
-    ABC
-No match
-    AbC
-No match
-    
-/a(?i:b)c/
-    abc
- 0: abc
-    aBc
- 0: aBc
-\= Expect no match 
-    ABC
-No match
-    abC
-No match
-    aBC
-No match
-    
-/a(?i:b)*c/
-    aBc
- 0: aBc
-    aBBc
- 0: aBBc
-\= Expect no match 
-    aBC
-No match
-    aBBC
-No match
-    
-/a(?=b(?i)c)\w\wd/
-    abcd
- 0: abcd
-    abCd
- 0: abCd
-\= Expect no match
-    aBCd
-No match
-    abcD     
-No match
-    
-/(?s-i:more.*than).*million/i
-    more than million
- 0: more than million
-    more than MILLION
- 0: more than MILLION
-    more \n than Million 
- 0: more \x0a than Million
-\= Expect no match
-    MORE THAN MILLION    
-No match
-    more \n than \n million 
-No match
-
-/(?:(?s-i)more.*than).*million/i
-    more than million
- 0: more than million
-    more than MILLION
- 0: more than MILLION
-    more \n than Million 
- 0: more \x0a than Million
-\= Expect no match
-    MORE THAN MILLION    
-No match
-    more \n than \n million 
-No match
-    
-/(?>a(?i)b+)+c/
-    abc
- 0: abc
-    aBbc
- 0: aBbc
-    aBBc 
- 0: aBBc
-\= Expect no match
-    Abc
-No match
-    abAb    
-No match
-    abbC 
-No match
-    
-/(?=a(?i)b)\w\wc/
-    abc
- 0: abc
-    aBc
- 0: aBc
-\= Expect no match
-    Ab 
-No match
-    abC
-No match
-    aBC     
-No match
-    
-/(?<=a(?i)b)(\w\w)c/
-    abxxc
- 0: xxc
- 1: xx
-    aBxxc
- 0: xxc
- 1: xx
-\= Expect no match
-    Abxxc
-No match
-    ABxxc
-No match
-    abxxC      
-No match
-
-/(?:(a)|b)(?(1)A|B)/
-    aA
- 0: aA
- 1: a
-    bB
- 0: bB
-\= Expect no match
-    aB
-No match
-    bA    
-No match
-
-/^(a)?(?(1)a|b)+$/
-    aa
- 0: aa
- 1: a
-    b
- 0: b
-    bb  
- 0: bb
-\= Expect no match
-    ab   
-No match
-    
-# Perl gets this next one wrong if the pattern ends with $; in that case it
-# fails to match "12". 
-
-/^(?(?=abc)\w{3}:|\d\d)/
-    abc:
- 0: abc:
-    12
- 0: 12
-    123
- 0: 12
-\= Expect no match
-    xyz    
-No match
-
-/^(?(?!abc)\d\d|\w{3}:)$/
-    abc:
- 0: abc:
-    12
- 0: 12
-\= Expect no match
-    123
-No match
-    xyz    
-No match
-    
-/(?(?<=foo)bar|cat)/
-    foobar
- 0: bar
-    cat
- 0: cat
-    fcat
- 0: cat
-    focat   
- 0: cat
-\= Expect no match
-    foocat  
-No match
-
-/(?(?<!foo)cat|bar)/
-    foobar
- 0: bar
-    cat
- 0: cat
-    fcat
- 0: cat
-    focat   
- 0: cat
-\= Expect no match
-    foocat  
-No match
-
-/( \( )? [^()]+ (?(1) \) |) /x
-    abcd
- 0: abcd
-    (abcd)
- 0: (abcd)
- 1: (
-    the quick (abcd) fox
- 0: the quick 
-    (abcd   
- 0: abcd
-
-/( \( )? [^()]+ (?(1) \) ) /x
-    abcd
- 0: abcd
-    (abcd)
- 0: (abcd)
- 1: (
-    the quick (abcd) fox
- 0: the quick 
-    (abcd   
- 0: abcd
-
-/^(?(2)a|(1)(2))+$/
-    12
- 0: 12
- 1: 1
- 2: 2
-    12a
- 0: 12a
- 1: 1
- 2: 2
-    12aa
- 0: 12aa
- 1: 1
- 2: 2
-\= Expect no match
-    1234    
-No match
-
-/((?i)blah)\s+\1/
-    blah blah
- 0: blah blah
- 1: blah
-    BLAH BLAH
- 0: BLAH BLAH
- 1: BLAH
-    Blah Blah
- 0: Blah Blah
- 1: Blah
-    blaH blaH
- 0: blaH blaH
- 1: blaH
-\= Expect no match
-    blah BLAH
-No match
-    Blah blah      
-No match
-    blaH blah 
-No match
-
-/((?i)blah)\s+(?i:\1)/
-    blah blah
- 0: blah blah
- 1: blah
-    BLAH BLAH
- 0: BLAH BLAH
- 1: BLAH
-    Blah Blah
- 0: Blah Blah
- 1: Blah
-    blaH blaH
- 0: blaH blaH
- 1: blaH
-    blah BLAH
- 0: blah BLAH
- 1: blah
-    Blah blah      
- 0: Blah blah
- 1: Blah
-    blaH blah 
- 0: blaH blah
- 1: blaH
-
-/(?>a*)*/
-    a
- 0: a
-    aa
- 0: aa
-    aaaa
- 0: aaaa
-    
-/(abc|)+/
-    abc
- 0: abc
- 1: 
-    abcabc
- 0: abcabc
- 1: 
-    abcabcabc
- 0: abcabcabc
- 1: 
-    xyz      
- 0: 
- 1: 
-
-/([a]*)*/
-    a
- 0: a
- 1: 
-    aaaaa 
- 0: aaaaa
- 1: 
- 
-/([ab]*)*/
-    a
- 0: a
- 1: 
-    b
- 0: b
- 1: 
-    ababab
- 0: ababab
- 1: 
-    aaaabcde
- 0: aaaab
- 1: 
-    bbbb    
- 0: bbbb
- 1: 
- 
-/([^a]*)*/
-    b
- 0: b
- 1: 
-    bbbb
- 0: bbbb
- 1: 
-    aaa   
- 0: 
- 1: 
- 
-/([^ab]*)*/
-    cccc
- 0: cccc
- 1: 
-    abab  
- 0: 
- 1: 
- 
-/([a]*?)*/
-    a
- 0: 
- 1: 
-    aaaa 
- 0: 
- 1: 
- 
-/([ab]*?)*/
-    a
- 0: 
- 1: 
-    b
- 0: 
- 1: 
-    abab
- 0: 
- 1: 
-    baba   
- 0: 
- 1: 
- 
-/([^a]*?)*/
-    b
- 0: 
- 1: 
-    bbbb
- 0: 
- 1: 
-    aaa   
- 0: 
- 1: 
- 
-/([^ab]*?)*/
-    c
- 0: 
- 1: 
-    cccc
- 0: 
- 1: 
-    baba   
- 0: 
- 1: 
- 
-/(?>a*)*/
-    a
- 0: a
-    aaabcde 
- 0: aaa
- 
-/((?>a*))*/
-    aaaaa
- 0: aaaaa
- 1: 
-    aabbaa 
- 0: aa
- 1: 
- 
-/((?>a*?))*/
-    aaaaa
- 0: 
- 1: 
-    aabbaa 
- 0: 
- 1: 
-
-/(?(?=[^a-z]+[a-z])  \d{2}-[a-z]{3}-\d{2}  |  \d{2}-\d{2}-\d{2} ) /x
-    12-sep-98
- 0: 12-sep-98
-    12-09-98
- 0: 12-09-98
-\= Expect no match
-    sep-12-98
-No match
-        
-/(?<=(foo))bar\1/
-    foobarfoo
- 0: barfoo
- 1: foo
-    foobarfootling 
- 0: barfoo
- 1: foo
-\= Expect no match
-    foobar
-No match
-    barfoo   
-No match
-
-/(?i:saturday|sunday)/
-    saturday
- 0: saturday
-    sunday
- 0: sunday
-    Saturday
- 0: Saturday
-    Sunday
- 0: Sunday
-    SATURDAY
- 0: SATURDAY
-    SUNDAY
- 0: SUNDAY
-    SunDay
- 0: SunDay
-    
-/(a(?i)bc|BB)x/
-    abcx
- 0: abcx
- 1: abc
-    aBCx
- 0: aBCx
- 1: aBC
-    bbx
- 0: bbx
- 1: bb
-    BBx
- 0: BBx
- 1: BB
-\= Expect no match
-    abcX
-No match
-    aBCX
-No match
-    bbX
-No match
-    BBX               
-No match
-
-/^([ab](?i)[cd]|[ef])/
-    ac
- 0: ac
- 1: ac
-    aC
- 0: aC
- 1: aC
-    bD
- 0: bD
- 1: bD
-    elephant
- 0: e
- 1: e
-    Europe 
- 0: E
- 1: E
-    frog
- 0: f
- 1: f
-    France
- 0: F
- 1: F
-\= Expect no match
-    Africa     
-No match
-
-/^(ab|a(?i)[b-c](?m-i)d|x(?i)y|z)/
-    ab
- 0: ab
- 1: ab
-    aBd
- 0: aBd
- 1: aBd
-    xy
- 0: xy
- 1: xy
-    xY
- 0: xY
- 1: xY
-    zebra
- 0: z
- 1: z
-    Zambesi
- 0: Z
- 1: Z
-\= Expect no match
-    aCD  
-No match
-    XY  
-No match
-
-/(?<=foo\n)^bar/m
-    foo\nbar
- 0: bar
-\= Expect no match
-    bar
-No match
-    baz\nbar   
-No match
-
-/(?<=(?<!foo)bar)baz/
-    barbaz
- 0: baz
-    barbarbaz 
- 0: baz
-    koobarbaz 
- 0: baz
-\= Expect no match
-    baz
-No match
-    foobarbaz 
-No match
-
-# The cases of aaaa and aaaaaa are missed out below because Perl does things
-# differently. We know that odd, and maybe incorrect, things happen with
-# recursive references in Perl, as far as 5.11.3 - see some stuff in test #2.
-
-/^(a\1?){4}$/
-    aaaaa
- 0: aaaaa
- 1: a
-    aaaaaaa
- 0: aaaaaaa
- 1: a
-    aaaaaaaaaa
- 0: aaaaaaaaaa
- 1: aaaa
-\= Expect no match
-    a
-No match
-    aa
-No match
-    aaa
-No match
-    aaaaaaaa
-No match
-    aaaaaaaaa
-No match
-    aaaaaaaaaaa
-No match
-    aaaaaaaaaaaa
-No match
-    aaaaaaaaaaaaa
-No match
-    aaaaaaaaaaaaaa
-No match
-    aaaaaaaaaaaaaaa
-No match
-    aaaaaaaaaaaaaaaa
-No match
-
-/^(a\1?)(a\1?)(a\2?)(a\3?)$/
-    aaaa
- 0: aaaa
- 1: a
- 2: a
- 3: a
- 4: a
-    aaaaa
- 0: aaaaa
- 1: a
- 2: aa
- 3: a
- 4: a
-    aaaaaa
- 0: aaaaaa
- 1: a
- 2: aa
- 3: a
- 4: aa
-    aaaaaaa
- 0: aaaaaaa
- 1: a
- 2: aa
- 3: aaa
- 4: a
-    aaaaaaaaaa
- 0: aaaaaaaaaa
- 1: a
- 2: aa
- 3: aaa
- 4: aaaa
-\= Expect no match
-    a
-No match
-    aa
-No match
-    aaa
-No match
-    aaaaaaaa
-No match
-    aaaaaaaaa
-No match
-    aaaaaaaaaaa
-No match
-    aaaaaaaaaaaa
-No match
-    aaaaaaaaaaaaa
-No match
-    aaaaaaaaaaaaaa
-No match
-    aaaaaaaaaaaaaaa
-No match
-    aaaaaaaaaaaaaaaa               
-No match
-
-# The following tests are taken from the Perl 5.005 test suite; some of them
-# are compatible with 5.004, but I'd rather not have to sort them out.
-
-/abc/
-    abc
- 0: abc
-    xabcy
- 0: abc
-    ababc
- 0: abc
-\= Expect no match
-    xbc
-No match
-    axc
-No match
-    abx
-No match
-
-/ab*c/
-    abc
- 0: abc
-
-/ab*bc/
-    abc
- 0: abc
-    abbc
- 0: abbc
-    abbbbc
- 0: abbbbc
-
-/.{1}/
-    abbbbc
- 0: a
-
-/.{3,4}/
-    abbbbc
- 0: abbb
-
-/ab{0,}bc/
-    abbbbc
- 0: abbbbc
-
-/ab+bc/
-    abbc
- 0: abbc
-\= Expect no match
-    abc
-No match
-    abq
-No match
-
-/ab{1,}bc/
-
-/ab+bc/
-    abbbbc
- 0: abbbbc
-
-/ab{1,}bc/
-    abbbbc
- 0: abbbbc
-
-/ab{1,3}bc/
-    abbbbc
- 0: abbbbc
-
-/ab{3,4}bc/
-    abbbbc
- 0: abbbbc
-
-/ab{4,5}bc/
-\= Expect no match
-    abq
-No match
-    abbbbc
-No match
-
-/ab?bc/
-    abbc
- 0: abbc
-    abc
- 0: abc
-
-/ab{0,1}bc/
-    abc
- 0: abc
-
-/ab?bc/
-
-/ab?c/
-    abc
- 0: abc
-
-/ab{0,1}c/
-    abc
- 0: abc
-
-/^abc$/
-    abc
- 0: abc
-\= Expect no match
-    abbbbc
-No match
-    abcc
-No match
-
-/^abc/
-    abcc
- 0: abc
-
-/^abc$/
-
-/abc$/
-    aabc
- 0: abc
-\= Expect no match
-    aabcd
-No match
-
-/^/
-    abc
- 0: 
-
-/$/
-    abc
- 0: 
-
-/a.c/
-    abc
- 0: abc
-    axc
- 0: axc
-
-/a.*c/
-    axyzc
- 0: axyzc
-
-/a[bc]d/
-    abd
- 0: abd
-\= Expect no match
-    axyzd
-No match
-    abc
-No match
-
-/a[b-d]e/
-    ace
- 0: ace
-
-/a[b-d]/
-    aac
- 0: ac
-
-/a[-b]/
-    a-
- 0: a-
-
-/a[b-]/
-    a-
- 0: a-
-
-/a]/
-    a]
- 0: a]
-
-/a[]]b/
-    a]b
- 0: a]b
-
-/a[^bc]d/
-    aed
- 0: aed
-\= Expect no match
-    abd
-No match
-    abd
-No match
-
-/a[^-b]c/
-    adc
- 0: adc
-
-/a[^]b]c/
-    adc
- 0: adc
-    a-c
- 0: a-c
-\= Expect no match
-    a]c
-No match
-
-/\ba\b/
-    a-
- 0: a
-    -a
- 0: a
-    -a-
- 0: a
-
-/\by\b/
-\= Expect no match
-    xy
-No match
-    yz
-No match
-    xyz
-No match
-
-/\Ba\B/
-\= Expect no match
-    a-
-No match
-    -a
-No match
-    -a-
-No match
-
-/\By\b/
-    xy
- 0: y
-
-/\by\B/
-    yz
- 0: y
-
-/\By\B/
-    xyz
- 0: y
-
-/\w/
-    a
- 0: a
-
-/\W/
-    -
- 0: -
-\= Expect no match
-    a
-No match
-
-/a\sb/
-    a b
- 0: a b
-
-/a\Sb/
-    a-b
- 0: a-b
-\= Expect no match
-    a b
-No match
-
-/\d/
-    1
- 0: 1
-
-/\D/
-    -
- 0: -
-\= Expect no match
-    1
-No match
-
-/[\w]/
-    a
- 0: a
-
-/[\W]/
-    -
- 0: -
-\= Expect no match
-    a
-No match
-
-/a[\s]b/
-    a b
- 0: a b
-
-/a[\S]b/
-    a-b
- 0: a-b
-\= Expect no match
-    a b
-No match
-
-/[\d]/
-    1
- 0: 1
-
-/[\D]/
-    -
- 0: -
-\= Expect no match
-    1
-No match
-
-/ab|cd/
-    abc
- 0: ab
-    abcd
- 0: ab
-
-/()ef/
-    def
- 0: ef
- 1: 
-
-/$b/
-
-/a\(b/
-    a(b
- 0: a(b
-
-/a\(*b/
-    ab
- 0: ab
-    a((b
- 0: a((b
-
-/a\\b/
-    a\\b
- 0: a\b
-
-/((a))/
-    abc
- 0: a
- 1: a
- 2: a
-
-/(a)b(c)/
-    abc
- 0: abc
- 1: a
- 2: c
-
-/a+b+c/
-    aabbabc
- 0: abc
-
-/a{1,}b{1,}c/
-    aabbabc
- 0: abc
-
-/a.+?c/
-    abcabc
- 0: abc
-
-/(a+|b)*/
-    ab
- 0: ab
- 1: b
-
-/(a+|b){0,}/
-    ab
- 0: ab
- 1: b
-
-/(a+|b)+/
-    ab
- 0: ab
- 1: b
-
-/(a+|b){1,}/
-    ab
- 0: ab
- 1: b
-
-/(a+|b)?/
-    ab
- 0: a
- 1: a
-
-/(a+|b){0,1}/
-    ab
- 0: a
- 1: a
-
-/[^ab]*/
-    cde
- 0: cde
-
-/abc/
-\= Expect no match
-    b
-No match
-
-/a*/
-    \
- 0: 
-
-/([abc])*d/
-    abbbcd
- 0: abbbcd
- 1: c
-
-/([abc])*bcd/
-    abcd
- 0: abcd
- 1: a
-
-/a|b|c|d|e/
-    e
- 0: e
-
-/(a|b|c|d|e)f/
-    ef
- 0: ef
- 1: e
-
-/abcd*efg/
-    abcdefg
- 0: abcdefg
-
-/ab*/
-    xabyabbbz
- 0: ab
-    xayabbbz
- 0: a
-
-/(ab|cd)e/
-    abcde
- 0: cde
- 1: cd
-
-/[abhgefdc]ij/
-    hij
- 0: hij
-
-/^(ab|cd)e/
-
-/(abc|)ef/
-    abcdef
- 0: ef
- 1: 
-
-/(a|b)c*d/
-    abcd
- 0: bcd
- 1: b
-
-/(ab|ab*)bc/
-    abc
- 0: abc
- 1: a
-
-/a([bc]*)c*/
-    abc
- 0: abc
- 1: bc
-
-/a([bc]*)(c*d)/
-    abcd
- 0: abcd
- 1: bc
- 2: d
-
-/a([bc]+)(c*d)/
-    abcd
- 0: abcd
- 1: bc
- 2: d
-
-/a([bc]*)(c+d)/
-    abcd
- 0: abcd
- 1: b
- 2: cd
-
-/a[bcd]*dcdcde/
-    adcdcde
- 0: adcdcde
-
-/a[bcd]+dcdcde/
-\= Expect no match
-    abcde
-No match
-    adcdcde
-No match
-
-/(ab|a)b*c/
-    abc
- 0: abc
- 1: ab
-
-/((a)(b)c)(d)/
-    abcd
- 0: abcd
- 1: abc
- 2: a
- 3: b
- 4: d
-
-/[a-zA-Z_][a-zA-Z0-9_]*/
-    alpha
- 0: alpha
-
-/^a(bc+|b[eh])g|.h$/
-    abh
- 0: bh
-
-/(bc+d$|ef*g.|h?i(j|k))/
-    effgz
- 0: effgz
- 1: effgz
-    ij
- 0: ij
- 1: ij
- 2: j
-    reffgz
- 0: effgz
- 1: effgz
-\= Expect no match
-    effg
-No match
-    bcdd
-No match
-
-/((((((((((a))))))))))/
-    a
- 0: a
- 1: a
- 2: a
- 3: a
- 4: a
- 5: a
- 6: a
- 7: a
- 8: a
- 9: a
-10: a
-
-/((((((((((a))))))))))\10/
-    aa
- 0: aa
- 1: a
- 2: a
- 3: a
- 4: a
- 5: a
- 6: a
- 7: a
- 8: a
- 9: a
-10: a
-
-/(((((((((a)))))))))/
-    a
- 0: a
- 1: a
- 2: a
- 3: a
- 4: a
- 5: a
- 6: a
- 7: a
- 8: a
- 9: a
-
-/multiple words of text/
-\= Expect no match
-    aa
-No match
-    uh-uh
-No match
-
-/multiple words/
-    multiple words, yeah
- 0: multiple words
-
-/(.*)c(.*)/
-    abcde
- 0: abcde
- 1: ab
- 2: de
-
-/\((.*), (.*)\)/
-    (a, b)
- 0: (a, b)
- 1: a
- 2: b
-
-/[k]/
-
-/abcd/
-    abcd
- 0: abcd
-
-/a(bc)d/
-    abcd
- 0: abcd
- 1: bc
-
-/a[-]?c/
-    ac
- 0: ac
-
-/(abc)\1/
-    abcabc
- 0: abcabc
- 1: abc
-
-/([a-c]*)\1/
-    abcabc
- 0: abcabc
- 1: abc
-
-/(a)|\1/
-    a
- 0: a
- 1: a
-    ab
- 0: a
- 1: a
-\= Expect no match
-    x
-No match
-
-/(([a-c])b*?\2)*/
-    ababbbcbc
- 0: ababb
- 1: bb
- 2: b
-
-/(([a-c])b*?\2){3}/
-    ababbbcbc
- 0: ababbbcbc
- 1: cbc
- 2: c
-
-/((\3|b)\2(a)x)+/
-    aaaxabaxbaaxbbax
- 0: bbax
- 1: bbax
- 2: b
- 3: a
-
-/((\3|b)\2(a)){2,}/
-    bbaababbabaaaaabbaaaabba
- 0: bbaaaabba
- 1: bba
- 2: b
- 3: a
-
-/abc/i
-    ABC
- 0: ABC
-    XABCY
- 0: ABC
-    ABABC
- 0: ABC
-\= Expect no match
-    aaxabxbaxbbx
-No match
-    XBC
-No match
-    AXC
-No match
-    ABX
-No match
-
-/ab*c/i
-    ABC
- 0: ABC
-
-/ab*bc/i
-    ABC
- 0: ABC
-    ABBC
- 0: ABBC
-
-/ab*?bc/i
-    ABBBBC
- 0: ABBBBC
-
-/ab{0,}?bc/i
-    ABBBBC
- 0: ABBBBC
-
-/ab+?bc/i
-    ABBC
- 0: ABBC
-
-/ab+bc/i
-\= Expect no match
-    ABC
-No match
-    ABQ
-No match
-
-/ab{1,}bc/i
-
-/ab+bc/i
-    ABBBBC
- 0: ABBBBC
-
-/ab{1,}?bc/i
-    ABBBBC
- 0: ABBBBC
-
-/ab{1,3}?bc/i
-    ABBBBC
- 0: ABBBBC
-
-/ab{3,4}?bc/i
-    ABBBBC
- 0: ABBBBC
-
-/ab{4,5}?bc/i
-\= Expect no match
-    ABQ
-No match
-    ABBBBC
-No match
-
-/ab??bc/i
-    ABBC
- 0: ABBC
-    ABC
- 0: ABC
-
-/ab{0,1}?bc/i
-    ABC
- 0: ABC
-
-/ab??bc/i
-
-/ab??c/i
-    ABC
- 0: ABC
-
-/ab{0,1}?c/i
-    ABC
- 0: ABC
-
-/^abc$/i
-    ABC
- 0: ABC
-\= Expect no match
-    ABBBBC
-No match
-    ABCC
-No match
-
-/^abc/i
-    ABCC
- 0: ABC
-
-/^abc$/i
-
-/abc$/i
-    AABC
- 0: ABC
-
-/^/i
-    ABC
- 0: 
-
-/$/i
-    ABC
- 0: 
-
-/a.c/i
-    ABC
- 0: ABC
-    AXC
- 0: AXC
-
-/a.*?c/i
-    AXYZC
- 0: AXYZC
-
-/a.*c/i
-    AABC
- 0: AABC
-\= Expect no match
-    AXYZD
-No match
-
-/a[bc]d/i
-    ABD
- 0: ABD
-
-/a[b-d]e/i
-    ACE
- 0: ACE
-\= Expect no match
-    ABC
-No match
-    ABD
-No match
-
-/a[b-d]/i
-    AAC
- 0: AC
-
-/a[-b]/i
-    A-
- 0: A-
-
-/a[b-]/i
-    A-
- 0: A-
-
-/a]/i
-    A]
- 0: A]
-
-/a[]]b/i
-    A]B
- 0: A]B
-
-/a[^bc]d/i
-    AED
- 0: AED
-
-/a[^-b]c/i
-    ADC
- 0: ADC
-\= Expect no match
-    ABD
-No match
-    A-C
-No match
-
-/a[^]b]c/i
-    ADC
- 0: ADC
-
-/ab|cd/i
-    ABC
- 0: AB
-    ABCD
- 0: AB
-
-/()ef/i
-    DEF
- 0: EF
- 1: 
-
-/$b/i
-\= Expect no match
-    A]C
-No match
-    B
-No match
-
-/a\(b/i
-    A(B
- 0: A(B
-
-/a\(*b/i
-    AB
- 0: AB
-    A((B
- 0: A((B
-
-/a\\b/i
-    A\\b
- 0: A\b
-    a\\B 
- 0: a\B
-
-/((a))/i
-    ABC
- 0: A
- 1: A
- 2: A
-
-/(a)b(c)/i
-    ABC
- 0: ABC
- 1: A
- 2: C
-
-/a+b+c/i
-    AABBABC
- 0: ABC
-
-/a{1,}b{1,}c/i
-    AABBABC
- 0: ABC
-
-/a.+?c/i
-    ABCABC
- 0: ABC
-
-/a.*?c/i
-    ABCABC
- 0: ABC
-
-/a.{0,5}?c/i
-    ABCABC
- 0: ABC
-
-/(a+|b)*/i
-    AB
- 0: AB
- 1: B
-
-/(a+|b){0,}/i
-    AB
- 0: AB
- 1: B
-
-/(a+|b)+/i
-    AB
- 0: AB
- 1: B
-
-/(a+|b){1,}/i
-    AB
- 0: AB
- 1: B
-
-/(a+|b)?/i
-    AB
- 0: A
- 1: A
-
-/(a+|b){0,1}/i
-    AB
- 0: A
- 1: A
-
-/(a+|b){0,1}?/i
-    AB
- 0: 
-
-/[^ab]*/i
-    CDE
- 0: CDE
-
-/([abc])*d/i
-    ABBBCD
- 0: ABBBCD
- 1: C
-
-/([abc])*bcd/i
-    ABCD
- 0: ABCD
- 1: A
-
-/a|b|c|d|e/i
-    E
- 0: E
-
-/(a|b|c|d|e)f/i
-    EF
- 0: EF
- 1: E
-
-/abcd*efg/i
-    ABCDEFG
- 0: ABCDEFG
-
-/ab*/i
-    XABYABBBZ
- 0: AB
-    XAYABBBZ
- 0: A
-
-/(ab|cd)e/i
-    ABCDE
- 0: CDE
- 1: CD
-
-/[abhgefdc]ij/i
-    HIJ
- 0: HIJ
-
-/^(ab|cd)e/i
-\= Expect no match
-    ABCDE
-No match
-
-/(abc|)ef/i
-    ABCDEF
- 0: EF
- 1: 
-
-/(a|b)c*d/i
-    ABCD
- 0: BCD
- 1: B
-
-/(ab|ab*)bc/i
-    ABC
- 0: ABC
- 1: A
-
-/a([bc]*)c*/i
-    ABC
- 0: ABC
- 1: BC
-
-/a([bc]*)(c*d)/i
-    ABCD
- 0: ABCD
- 1: BC
- 2: D
-
-/a([bc]+)(c*d)/i
-    ABCD
- 0: ABCD
- 1: BC
- 2: D
-
-/a([bc]*)(c+d)/i
-    ABCD
- 0: ABCD
- 1: B
- 2: CD
-
-/a[bcd]*dcdcde/i
-    ADCDCDE
- 0: ADCDCDE
-
-/a[bcd]+dcdcde/i
-
-/(ab|a)b*c/i
-    ABC
- 0: ABC
- 1: AB
-
-/((a)(b)c)(d)/i
-    ABCD
- 0: ABCD
- 1: ABC
- 2: A
- 3: B
- 4: D
-
-/[a-zA-Z_][a-zA-Z0-9_]*/i
-    ALPHA
- 0: ALPHA
-
-/^a(bc+|b[eh])g|.h$/i
-    ABH
- 0: BH
-
-/(bc+d$|ef*g.|h?i(j|k))/i
-    EFFGZ
- 0: EFFGZ
- 1: EFFGZ
-    IJ
- 0: IJ
- 1: IJ
- 2: J
-    REFFGZ
- 0: EFFGZ
- 1: EFFGZ
-\= Expect no match
-    ADCDCDE
-No match
-    EFFG
-No match
-    BCDD
-No match
-
-/((((((((((a))))))))))/i
-    A
- 0: A
- 1: A
- 2: A
- 3: A
- 4: A
- 5: A
- 6: A
- 7: A
- 8: A
- 9: A
-10: A
-
-/((((((((((a))))))))))\10/i
-    AA
- 0: AA
- 1: A
- 2: A
- 3: A
- 4: A
- 5: A
- 6: A
- 7: A
- 8: A
- 9: A
-10: A
-
-/(((((((((a)))))))))/i
-    A
- 0: A
- 1: A
- 2: A
- 3: A
- 4: A
- 5: A
- 6: A
- 7: A
- 8: A
- 9: A
-
-/(?:(?:(?:(?:(?:(?:(?:(?:(?:(a))))))))))/i
-    A
- 0: A
- 1: A
-
-/(?:(?:(?:(?:(?:(?:(?:(?:(?:(a|b|c))))))))))/i
-    C
- 0: C
- 1: C
-
-/multiple words of text/i
-\= Expect no match
-    AA
-No match
-    UH-UH
-No match
-
-/multiple words/i
-    MULTIPLE WORDS, YEAH
- 0: MULTIPLE WORDS
-
-/(.*)c(.*)/i
-    ABCDE
- 0: ABCDE
- 1: AB
- 2: DE
-
-/\((.*), (.*)\)/i
-    (A, B)
- 0: (A, B)
- 1: A
- 2: B
-
-/[k]/i
-
-/abcd/i
-    ABCD
- 0: ABCD
-
-/a(bc)d/i
-    ABCD
- 0: ABCD
- 1: BC
-
-/a[-]?c/i
-    AC
- 0: AC
-
-/(abc)\1/i
-    ABCABC
- 0: ABCABC
- 1: ABC
-
-/([a-c]*)\1/i
-    ABCABC
- 0: ABCABC
- 1: ABC
-
-/a(?!b)./
-    abad
- 0: ad
-
-/a(?=d)./
-    abad
- 0: ad
-
-/a(?=c|d)./
-    abad
- 0: ad
-
-/a(?:b|c|d)(.)/
-    ace
- 0: ace
- 1: e
-
-/a(?:b|c|d)*(.)/
-    ace
- 0: ace
- 1: e
-
-/a(?:b|c|d)+?(.)/
-    ace
- 0: ace
- 1: e
-    acdbcdbe
- 0: acd
- 1: d
-
-/a(?:b|c|d)+(.)/
-    acdbcdbe
- 0: acdbcdbe
- 1: e
-
-/a(?:b|c|d){2}(.)/
-    acdbcdbe
- 0: acdb
- 1: b
-
-/a(?:b|c|d){4,5}(.)/
-    acdbcdbe
- 0: acdbcdb
- 1: b
-
-/a(?:b|c|d){4,5}?(.)/
-    acdbcdbe
- 0: acdbcd
- 1: d
-
-/((foo)|(bar))*/
-    foobar
- 0: foobar
- 1: bar
- 2: foo
- 3: bar
-
-/a(?:b|c|d){6,7}(.)/
-    acdbcdbe
- 0: acdbcdbe
- 1: e
-
-/a(?:b|c|d){6,7}?(.)/
-    acdbcdbe
- 0: acdbcdbe
- 1: e
-
-/a(?:b|c|d){5,6}(.)/
-    acdbcdbe
- 0: acdbcdbe
- 1: e
-
-/a(?:b|c|d){5,6}?(.)/
-    acdbcdbe
- 0: acdbcdb
- 1: b
-
-/a(?:b|c|d){5,7}(.)/
-    acdbcdbe
- 0: acdbcdbe
- 1: e
-
-/a(?:b|c|d){5,7}?(.)/
-    acdbcdbe
- 0: acdbcdb
- 1: b
-
-/a(?:b|(c|e){1,2}?|d)+?(.)/
-    ace
- 0: ace
- 1: c
- 2: e
-
-/^(.+)?B/
-    AB
- 0: AB
- 1: A
-
-/^([^a-z])|(\^)$/
-    .
- 0: .
- 1: .
-
-/^[<>]&/
-    <&OUT
- 0: <&
-
-/^(a\1?){4}$/
-    aaaaaaaaaa
- 0: aaaaaaaaaa
- 1: aaaa
-\= Expect no match
-    AB
-No match
-    aaaaaaaaa
-No match
-    aaaaaaaaaaa
-No match
-
-/^(a(?(1)\1)){4}$/
-    aaaaaaaaaa
- 0: aaaaaaaaaa
- 1: aaaa
-\= Expect no match
-    aaaaaaaaa
-No match
-    aaaaaaaaaaa
-No match
-
-/(?:(f)(o)(o)|(b)(a)(r))*/
-    foobar
- 0: foobar
- 1: f
- 2: o
- 3: o
- 4: b
- 5: a
- 6: r
-
-/(?<=a)b/
-    ab
- 0: b
-\= Expect no match
-    cb
-No match
-    b
-No match
-
-/(?<!c)b/
-    ab
- 0: b
-    b
- 0: b
-    b
- 0: b
-
-/(?:..)*a/
-    aba
- 0: aba
-
-/(?:..)*?a/
-    aba
- 0: a
-
-/^(?:b|a(?=(.)))*\1/
-    abc
- 0: ab
- 1: b
-
-/^(){3,5}/
-    abc
- 0: 
- 1: 
-
-/^(a+)*ax/
-    aax
- 0: aax
- 1: a
-
-/^((a|b)+)*ax/
-    aax
- 0: aax
- 1: a
- 2: a
-
-/^((a|bc)+)*ax/
-    aax
- 0: aax
- 1: a
- 2: a
-
-/(a|x)*ab/
-    cab
- 0: ab
-
-/(a)*ab/
-    cab
- 0: ab
-
-/(?:(?i)a)b/
-    ab
- 0: ab
-
-/((?i)a)b/
-    ab
- 0: ab
- 1: a
-
-/(?:(?i)a)b/
-    Ab
- 0: Ab
-
-/((?i)a)b/
-    Ab
- 0: Ab
- 1: A
-
-/(?:(?i)a)b/
-\= Expect no match
-    cb
-No match
-    aB
-No match
-
-/((?i)a)b/
-
-/(?i:a)b/
-    ab
- 0: ab
-
-/((?i:a))b/
-    ab
- 0: ab
- 1: a
-
-/(?i:a)b/
-    Ab
- 0: Ab
-
-/((?i:a))b/
-    Ab
- 0: Ab
- 1: A
-
-/(?i:a)b/
-\= Expect no match
-    aB
-No match
-    aB
-No match
-
-/((?i:a))b/
-
-/(?:(?-i)a)b/i
-    ab
- 0: ab
-
-/((?-i)a)b/i
-    ab
- 0: ab
- 1: a
-
-/(?:(?-i)a)b/i
-    aB
- 0: aB
-
-/((?-i)a)b/i
-    aB
- 0: aB
- 1: a
-
-/(?:(?-i)a)b/i
-    aB
- 0: aB
-\= Expect no match
-    Ab
-No match
-    AB
-No match
-
-/(?-i:a)b/i
-    ab
- 0: ab
-
-/((?-i:a))b/i
-    ab
- 0: ab
- 1: a
-
-/(?-i:a)b/i
-    aB
- 0: aB
-
-/((?-i:a))b/i
-    aB
- 0: aB
- 1: a
-
-/(?-i:a)b/i
-\= Expect no match
-    AB
-No match
-    Ab
-No match
-
-/((?-i:a))b/i
-
-/(?-i:a)b/i
-    aB
- 0: aB
-
-/((?-i:a))b/i
-    aB
- 0: aB
- 1: a
-
-/(?-i:a)b/i
-\= Expect no match
-    Ab
-No match
-    AB
-No match
-
-/((?-i:a))b/i
-
-/((?-i:a.))b/i
-\= Expect no match
-    AB
-No match
-    a\nB
-No match
-
-/((?s-i:a.))b/i
-    a\nB
- 0: a\x0aB
- 1: a\x0a
-
-/(?:c|d)(?:)(?:a(?:)(?:b)(?:b(?:))(?:b(?:)(?:b)))/
-    cabbbb
- 0: cabbbb
-
-/(?:c|d)(?:)(?:aaaaaaaa(?:)(?:bbbbbbbb)(?:bbbbbbbb(?:))(?:bbbbbbbb(?:)(?:bbbbbbbb)))/
-    caaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
- 0: caaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
-
-/(ab)\d\1/i
-    Ab4ab
- 0: Ab4ab
- 1: Ab
-    ab4Ab
- 0: ab4Ab
- 1: ab
-
-/foo\w*\d{4}baz/
-    foobar1234baz
- 0: foobar1234baz
-
-/x(~~)*(?:(?:F)?)?/
-    x~~
- 0: x~~
- 1: ~~
-
-/^a(?#xxx){3}c/
-    aaac
- 0: aaac
-
-/^a (?#xxx) (?#yyy) {3}c/x
-    aaac
- 0: aaac
-
-/(?<![cd])b/
-\= Expect no match
-    B\nB
-No match
-    dbcb
-No match
-
-/(?<![cd])[ab]/
-    dbaacb
- 0: a
-
-/(?<!(c|d))b/
-
-/(?<!(c|d))[ab]/
-    dbaacb
- 0: a
-
-/(?<!cd)[ab]/
-    cdaccb
- 0: b
-
-/^(?:a?b?)*$/
-    \
- 0: 
-    a
- 0: a
-    ab
- 0: ab
-    aaa   
- 0: aaa
-\= Expect no match
-    dbcb
-No match
-    a--
-No match
-    aa-- 
-No match
-
-/((?s)^a(.))((?m)^b$)/
-    a\nb\nc\n
- 0: a\x0ab
- 1: a\x0a
- 2: \x0a
- 3: b
-
-/((?m)^b$)/
-    a\nb\nc\n
- 0: b
- 1: b
-
-/(?m)^b/
-    a\nb\n
- 0: b
-
-/(?m)^(b)/
-    a\nb\n
- 0: b
- 1: b
-
-/((?m)^b)/
-    a\nb\n
- 0: b
- 1: b
-
-/\n((?m)^b)/
-    a\nb\n
- 0: \x0ab
- 1: b
-
-/((?s).)c(?!.)/
-    a\nb\nc\n
- 0: \x0ac
- 1: \x0a
-    a\nb\nc\n
- 0: \x0ac
- 1: \x0a
-
-/((?s)b.)c(?!.)/
-    a\nb\nc\n
- 0: b\x0ac
- 1: b\x0a
-    a\nb\nc\n
- 0: b\x0ac
- 1: b\x0a
-
-/^b/
-
-/()^b/
-\= Expect no match
-    a\nb\nc\n
-No match
-    a\nb\nc\n
-No match
-
-/((?m)^b)/
-    a\nb\nc\n
- 0: b
- 1: b
-
-/(x)?(?(1)a|b)/
-\= Expect no match
-    a
-No match
-    a
-No match
-
-/(x)?(?(1)b|a)/
-    a
- 0: a
-
-/()?(?(1)b|a)/
-    a
- 0: a
-
-/()(?(1)b|a)/
-
-/()?(?(1)a|b)/
-    a
- 0: a
- 1: 
-
-/^(\()?blah(?(1)(\)))$/
-    (blah)
- 0: (blah)
- 1: (
- 2: )
-    blah
- 0: blah
-\= Expect no match
-    a
-No match
-    blah)
-No match
-    (blah
-No match
-
-/^(\(+)?blah(?(1)(\)))$/
-    (blah)
- 0: (blah)
- 1: (
- 2: )
-    blah
- 0: blah
-\= Expect no match
-    blah)
-No match
-    (blah
-No match
-
-/(?(?!a)a|b)/
-
-/(?(?!a)b|a)/
-    a
- 0: a
-
-/(?(?=a)b|a)/
-\= Expect no match
-    a
-No match
-    a
-No match
-
-/(?(?=a)a|b)/
-    a
- 0: a
-
-/(?=(a+?))(\1ab)/
-    aaab
- 0: aab
- 1: a
- 2: aab
-
-/^(?=(a+?))\1ab/
-
-/(\w+:)+/
-    one:
- 0: one:
- 1: one:
-
-/$(?<=^(a))/
-    a
- 0: 
- 1: a
-
-/(?=(a+?))(\1ab)/
-    aaab
- 0: aab
- 1: a
- 2: aab
-
-/^(?=(a+?))\1ab/
-\= Expect no match
-    aaab
-No match
-    aaab
-No match
-
-/([\w:]+::)?(\w+)$/
-    abcd
- 0: abcd
- 1: <unset>
- 2: abcd
-    xy:z:::abcd
- 0: xy:z:::abcd
- 1: xy:z:::
- 2: abcd
-
-/^[^bcd]*(c+)/
-    aexycd
- 0: aexyc
- 1: c
-
-/(a*)b+/
-    caab
- 0: aab
- 1: aa
-
-/([\w:]+::)?(\w+)$/
-    abcd
- 0: abcd
- 1: <unset>
- 2: abcd
-    xy:z:::abcd
- 0: xy:z:::abcd
- 1: xy:z:::
- 2: abcd
-\= Expect no match
-    abcd:
-No match
-    abcd:
-No match
-
-/^[^bcd]*(c+)/
-    aexycd
- 0: aexyc
- 1: c
-
-/(>a+)ab/
-
-/(?>a+)b/
-    aaab
- 0: aaab
-
-/([[:]+)/
-    a:[b]:
- 0: :[
- 1: :[
-
-/([[=]+)/
-    a=[b]=
- 0: =[
- 1: =[
-
-/([[.]+)/
-    a.[b].
- 0: .[
- 1: .[
-
-/((?>a+)b)/
-    aaab
- 0: aaab
- 1: aaab
-
-/(?>(a+))b/
-    aaab
- 0: aaab
- 1: aaa
-
-/((?>[^()]+)|\([^()]*\))+/
-    ((abc(ade)ufh()()x
- 0: abc(ade)ufh()()x
- 1: x
-
-/a\Z/
-\= Expect no match
-    aaab
-No match
-    a\nb\n
-No match
-
-/b\Z/
-    a\nb\n
- 0: b
-
-/b\z/
-
-/b\Z/
-    a\nb
- 0: b
-
-/b\z/
-    a\nb
- 0: b
-    
-/^(?>(?(1)\.|())[^\W_](?>[a-z0-9-]*[^\W_])?)+$/
-    a
- 0: a
- 1: 
-    abc
- 0: abc
- 1: 
-    a-b
- 0: a-b
- 1: 
-    0-9
- 0: 0-9
- 1: 
-    a.b
- 0: a.b
- 1: 
-    5.6.7
- 0: 5.6.7
- 1: 
-    the.quick.brown.fox
- 0: the.quick.brown.fox
- 1: 
-    a100.b200.300c
- 0: a100.b200.300c
- 1: 
-    12-ab.1245
- 0: 12-ab.1245
- 1: 
-\= Expect no match
-    \
-No match
-    .a
-No match
-    -a
-No match
-    a-
-No match
-    a.
-No match
-    a_b
-No match
-    a.-
-No match
-    a..
-No match
-    ab..bc
-No match
-    the.quick.brown.fox-
-No match
-    the.quick.brown.fox.
-No match
-    the.quick.brown.fox_
-No match
-    the.quick.brown.fox+
-No match
-
-/(?>.*)(?<=(abcd|wxyz))/
-    alphabetabcd
- 0: alphabetabcd
- 1: abcd
-    endingwxyz
- 0: endingwxyz
- 1: wxyz
-\= Expect no match
-    a rather long string that doesn't end with one of them
-No match
-
-/word (?>(?:(?!otherword)[a-zA-Z0-9]+ ){0,30})otherword/
-    word cat dog elephant mussel cow horse canary baboon snake shark otherword
- 0: word cat dog elephant mussel cow horse canary baboon snake shark otherword
-\= Expect no match
-    word cat dog elephant mussel cow horse canary baboon snake shark
-No match
-  
-/word (?>[a-zA-Z0-9]+ ){0,30}otherword/
-\= Expect no match
-    word cat dog elephant mussel cow horse canary baboon snake shark the quick brown fox and the lazy dog and several other words getting close to thirty by now I hope
-No match
-
-/(?<=\d{3}(?!999))foo/
-    999foo
- 0: foo
-    123999foo 
- 0: foo
-\= Expect no match
-    123abcfoo
-No match
-    
-/(?<=(?!...999)\d{3})foo/
-    999foo
- 0: foo
-    123999foo 
- 0: foo
-\= Expect no match
-    123abcfoo
-No match
-
-/(?<=\d{3}(?!999)...)foo/
-    123abcfoo
- 0: foo
-    123456foo 
- 0: foo
-\= Expect no match
-    123999foo  
-No match
-    
-/(?<=\d{3}...)(?<!999)foo/
-    123abcfoo   
- 0: foo
-    123456foo 
- 0: foo
-\= Expect no match
-    123999foo  
-No match
-
-/<a[\s]+href[\s]*=[\s]*          # find <a href=
- ([\"\'])?                       # find single or double quote
- (?(1) (.*?)\1 | ([^\s]+))       # if quote found, match up to next matching
-                                 # quote, otherwise match up to next space
-/isx
-    <a href=abcd xyz
- 0: <a href=abcd
- 1: <unset>
- 2: <unset>
- 3: abcd
-    <a href=\"abcd xyz pqr\" cats
- 0: <a href="abcd xyz pqr"
- 1: "
- 2: abcd xyz pqr
-    <a href=\'abcd xyz pqr\' cats
- 0: <a href='abcd xyz pqr'
- 1: '
- 2: abcd xyz pqr
-
-/<a\s+href\s*=\s*                # find <a href=
- (["'])?                         # find single or double quote
- (?(1) (.*?)\1 | (\S+))          # if quote found, match up to next matching
-                                 # quote, otherwise match up to next space
-/isx
-    <a href=abcd xyz
- 0: <a href=abcd
- 1: <unset>
- 2: <unset>
- 3: abcd
-    <a href=\"abcd xyz pqr\" cats
- 0: <a href="abcd xyz pqr"
- 1: "
- 2: abcd xyz pqr
-    <a href       =       \'abcd xyz pqr\' cats
- 0: <a href       =       'abcd xyz pqr'
- 1: '
- 2: abcd xyz pqr
-
-/<a\s+href(?>\s*)=(?>\s*)        # find <a href=
- (["'])?                         # find single or double quote
- (?(1) (.*?)\1 | (\S+))          # if quote found, match up to next matching
-                                 # quote, otherwise match up to next space
-/isx
-    <a href=abcd xyz
- 0: <a href=abcd
- 1: <unset>
- 2: <unset>
- 3: abcd
-    <a href=\"abcd xyz pqr\" cats
- 0: <a href="abcd xyz pqr"
- 1: "
- 2: abcd xyz pqr
-    <a href       =       \'abcd xyz pqr\' cats
- 0: <a href       =       'abcd xyz pqr'
- 1: '
- 2: abcd xyz pqr
-
-/((Z)+|A)*/
-    ZABCDEFG
- 0: ZA
- 1: A
- 2: Z
-
-/(Z()|A)*/
-    ZABCDEFG
- 0: ZA
- 1: A
- 2: 
-
-/(Z(())|A)*/
-    ZABCDEFG
- 0: ZA
- 1: A
- 2: 
- 3: 
-
-/((?>Z)+|A)*/
-    ZABCDEFG
- 0: ZA
- 1: A
-
-/((?>)+|A)*/
-    ZABCDEFG
- 0: 
- 1: 
-
-/^[\d-a]/
-    abcde
- 0: a
-    -things
- 0: -
-    0digit
- 0: 0
-\= Expect no match
-    bcdef    
-No match
-    
-/[\s]+/
-    > \x09\x0a\x0c\x0d\x0b<
- 0:  \x09\x0a\x0c\x0d\x0b
-     
-/\s+/
-    > \x09\x0a\x0c\x0d\x0b<
- 0:  \x09\x0a\x0c\x0d\x0b
-     
-/a
-b/x
-    ab
- 0: ab
-
-/(?!\A)x/m
-    a\nxb\n
- 0: x
-
-/(?!^)x/m
-\= Expect no match
-    a\nxb\n
-No match
-
-#/abc\Qabc\Eabc/
-#    abcabcabc
-# 0: abcabcabc
-    
-#/abc\Q(*+|\Eabc/
-#    abc(*+|abc 
-# 0: abc(*+|abc
-
-#/   abc\Q abc\Eabc/x
-#    abc abcabc
-# 0: abc abcabc
-#\= Expect no match
-#    abcabcabc  
-#No match
-    
-#/abc#comment
-#    \Q#not comment
-#    literal\E/x
-#    abc#not comment\n    literal     
-# 0: abc#not comment\x0a    literal
-
-#/abc#comment
-#    \Q#not comment
-#    literal/x
-#    abc#not comment\n    literal     
-# 0: abc#not comment\x0a    literal
-
-#/abc#comment
-#    \Q#not comment
-#    literal\E #more comment
-#    /x
-#    abc#not comment\n    literal     
-# 0: abc#not comment\x0a    literal
-
-#/abc#comment
-#    \Q#not comment
-#    literal\E #more comment/x
-#    abc#not comment\n    literal     
-# 0: abc#not comment\x0a    literal
-
-#/\Qabc\$xyz\E/
-#    abc\\\$xyz
-# 0: abc\$xyz
-
-#/\Qabc\E\$\Qxyz\E/
-#    abc\$xyz
-# 0: abc$xyz
-
-/\Gabc/
-    abc
- 0: abc
-\= Expect no match
-    xyzabc  
-No match
-
-/a(?x: b c )d/
-    XabcdY
- 0: abcd
-\= Expect no match 
-    Xa b c d Y 
-No match
-
-/((?x)x y z | a b c)/
-    XabcY
- 0: abc
- 1: abc
-    AxyzB 
- 0: xyz
- 1: xyz
-
-/(?i)AB(?-i)C/
-    XabCY
- 0: abC
-\= Expect no match
-    XabcY  
-No match
-
-/((?i)AB(?-i)C|D)E/
-    abCE
- 0: abCE
- 1: abC
-    DE
- 0: DE
- 1: D
-\= Expect no match
-    abcE
-No match
-    abCe  
-No match
-    dE
-No match
-    De    
-No match
-
-/(.*)\d+\1/
-    abc123abc
- 0: abc123abc
- 1: abc
-    abc123bc 
- 0: bc123bc
- 1: bc
-
-/(.*)\d+\1/s
-    abc123abc
- 0: abc123abc
- 1: abc
-    abc123bc 
- 0: bc123bc
- 1: bc
-    
-/((.*))\d+\1/
-    abc123abc
- 0: abc123abc
- 1: abc
- 2: abc
-    abc123bc  
- 0: bc123bc
- 1: bc
- 2: bc
-
-# This tests for an IPv6 address in the form where it can have up to
-# eight components, one and only one of which is empty. This must be
-# an internal component. 
-
-/^(?!:)                       # colon disallowed at start
-  (?:                         # start of item
-    (?: [0-9a-f]{1,4} |       # 1-4 hex digits or
-    (?(1)0 | () ) )           # if null previously matched, fail; else null
-    :                         # followed by colon
-  ){1,7}                      # end item; 1-7 of them required               
-  [0-9a-f]{1,4} $             # final hex number at end of string
-  (?(1)|.)                    # check that there was an empty component
-  /ix
-    a123::a123
- 0: a123::a123
- 1: 
-    a123:b342::abcd
- 0: a123:b342::abcd
- 1: 
-    a123:b342::324e:abcd
- 0: a123:b342::324e:abcd
- 1: 
-    a123:ddde:b342::324e:abcd
- 0: a123:ddde:b342::324e:abcd
- 1: 
-    a123:ddde:b342::324e:dcba:abcd
- 0: a123:ddde:b342::324e:dcba:abcd
- 1: 
-    a123:ddde:9999:b342::324e:dcba:abcd
- 0: a123:ddde:9999:b342::324e:dcba:abcd
- 1: 
-\= Expect no match
-    1:2:3:4:5:6:7:8
-No match
-    a123:bce:ddde:9999:b342::324e:dcba:abcd
-No match
-    a123::9999:b342::324e:dcba:abcd
-No match
-    abcde:2:3:4:5:6:7:8
-No match
-    ::1
-No match
-    abcd:fee0:123::   
-No match
-    :1
-No match
-    1:  
-No match
-
-#/[z\Qa-d]\E]/
-#    z
-# 0: z
-#    a
-# 0: a
-#    -
-# 0: -
-#    d
-# 0: d
-#    ] 
-# 0: ]
-#\= Expect no match
-#    b     
-#No match
-
-#TODO: PCRE has an optimization to make this workable, .NET does not
-#/(a+)*b/
-#\= Expect no match
-#    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 
-#No match
-
-# All these had to be updated because we understand unicode
-# and this looks like it's expecting single byte matches
-
-# .NET generates \xe4...not sure what's up, might just be different code pages
-/(?i)reg(?:ul(?:[aä]|ae)r|ex)/
-    REGular
- 0: REGular
-    regulaer
- 0: regulaer
-    Regex  
- 0: Regex
-    regulär 
- 0: regul\xc3\xa4r
-
-#/Åæåä[à-ÿÀ-ß]+/
-#    Åæåäà
-# 0: \xc5\xe6\xe5\xe4\xe0
-#    Åæåäÿ
-# 0: \xc5\xe6\xe5\xe4\xff
-#    ÅæåäÀ
-# 0: \xc5\xe6\xe5\xe4\xc0
-#    Åæåäß
-# 0: \xc5\xe6\xe5\xe4\xdf
-
-/(?<=Z)X./
-    \x84XAZXB
- 0: XB
-
-/ab cd (?x) de fg/
-    ab cd defg
- 0: ab cd defg
-
-/ab cd(?x) de fg/
-    ab cddefg
- 0: ab cddefg
-\= Expect no match 
-    abcddefg
-No match
-
-/(?<![^f]oo)(bar)/
-    foobarX 
- 0: bar
- 1: bar
-\= Expect no match 
-    boobarX
-No match
-
-/(?<![^f])X/
-    offX
- 0: X
-\= Expect no match
-    onyX  
-No match
-
-/(?<=[^f])X/
-    onyX
- 0: X
-\= Expect no match
-    offX 
-No match
-
-/(?:(?(1)a|b)(X))+/
-    bXaX
- 0: bXaX
- 1: X
-
-/(?:(?(1)\1a|b)(X|Y))+/
-    bXXaYYaY
- 0: bXXaYYaY
- 1: Y
-    bXYaXXaX  
- 0: bX
- 1: X
-
-# TODO: I think this is a difference caused by the 
-# collision of group numbers, but not sure 
-#/()()()()()()()()()(?:(?(10)\10a|b)(X|Y))+/
-#    bXXaYYaY
-# 0: bX
-# 1: 
-# 2: 
-# 3: 
-# 4: 
-# 5: 
-# 6: 
-# 7: 
-# 8: 
-# 9: 
-#10: X
-
-/[[,abc,]+]/
-    abc]
- 0: abc]
-    a,b]
- 0: a,b]
-    [a,b,c]  
- 0: [a,b,c]
-
-/(?-x: )/x
-    A\x20B
- 0:  
-    
-"(?x)(?-x: \s*#\s*)"
-    A # B
- 0:  # 
-\= Expect no match
-    #  
-No match
-
-"(?x-is)(?:(?-ixs) \s*#\s*) include"
-    A #include
- 0:  #include
-\= Expect no match
-    A#include  
-No match
-    A #Include
-No match
-
-/a*b*\w/
-    aaabbbb
- 0: aaabbbb
-    aaaa
- 0: aaaa
-    a
- 0: a
-
-/a*b?\w/
-    aaabbbb
- 0: aaabb
-    aaaa
- 0: aaaa
-    a
- 0: a
-
-/a*b{0,4}\w/
-    aaabbbb
- 0: aaabbbb
-    aaaa
- 0: aaaa
-    a
- 0: a
-
-/a*b{0,}\w/
-    aaabbbb
- 0: aaabbbb
-    aaaa
- 0: aaaa
-    a
- 0: a
-    
-/a*\d*\w/
-    0a
- 0: 0a
-    a 
- 0: a
-    
-/a*b *\w/x
-    a 
- 0: a
-
-/a*b#comment
-  *\w/x
-    a 
- 0: a
-
-/a* b *\w/x
-    a 
- 0: a
-
-/^\w+=.*(\\\n.*)*/
-    abc=xyz\\\npqr
- 0: abc=xyz\
-
-/(?=(\w+))\1:/
-    abcd:
- 0: abcd:
- 1: abcd
-
-/^(?=(\w+))\1:/
-    abcd:
- 0: abcd:
- 1: abcd
-
-#/^\Eabc/
-#    abc
-# 0: abc
-    
-#/^[\Eabc]/
-#    a
-# 0: a
-#\= Expect no match 
-#    E 
-#No match
-    
-#/^[a-\Ec]/
-#    b
-# 0: b
-#\= Expect no match
-#    -
-#No match
-#    E    
-#No match
-
-#/^[a\E\E-\Ec]/
-#    b
-# 0: b
-#\= Expect no match
-#    -
-#No match
-#    E    
-#No match
-
-#/^[\E\Qa\E-\Qz\E]+/
-#    b
-# 0: b
-#\= Expect no match
-#    -  
-#No match
-    
-#/^[a\Q]bc\E]/
-#    a
-# 0: a
-#    ]
-# 0: ]
-#    c
-# 0: c
-    
-#/^[a-\Q\E]/
-#    a
-# 0: a
-#    -     
-# 0: -
-
-/^(a()*)*/
-    aaaa
- 0: aaaa
- 1: a
- 2: 
-
-/^(?:a(?:(?:))*)*/
-    aaaa
- 0: aaaa
-
-/^(a()+)+/
-    aaaa
- 0: aaaa
- 1: a
- 2: 
-
-/^(?:a(?:(?:))+)+/
-    aaaa
- 0: aaaa
-
-/(a){0,3}(?(1)b|(c|))*D/
-    abbD
- 0: abbD
- 1: a
-    ccccD
- 0: ccccD
- 1: <unset>
- 2: 
-    D  
- 0: D
- 1: <unset>
- 2: 
-
-# this is really long with debug -- removing for now
-#/(a|)*\d/
-#    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4
-# 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4
-# 1: 
-#\= Expect no match
-#    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-#No match
-
-/(?>a|)*\d/
-    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4
- 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4
-\= Expect no match
-    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-No match
-
-/(?:a|)*\d/
-    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4
- 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4
-\= Expect no match
-    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-No match
-
-/^(?s)(?>.*)(?<!\n)/
-    abc
- 0: abc
-\= Expect no match
-    abc\n  
-No match
-
-/^(?![^\n]*\n\z)/
-    abc
- 0: 
-\= Expect no match
-    abc\n 
-No match
-  
-/\z(?<!\n)/
-    abc
- 0: 
-\= Expect no match
-    abc\n  
-No match
-
-/(.*(.)?)*/
-    abcd
- 0: abcd
- 1: 
-
-/( (A | (?(1)0|) )*   )/x
-    abcd
- 0: 
- 1: 
- 2: 
-
-/( ( (?(1)0|) )*   )/x
-    abcd
- 0: 
- 1: 
- 2: 
-
-/(  (?(1)0|)*   )/x
-    abcd
- 0: 
- 1: 
-
-/[[:abcd:xyz]]/
-    a]
- 0: a]
-    :] 
- 0: :]
-    
-/[abc[:x\]pqr]/
-    a
- 0: a
-    [
- 0: [
-    :
- 0: :
-    ]
- 0: ]
-    p    
- 0: p
-
-/.*[op][xyz]/
-\= Expect no match
-    fooabcfoo
-No match
-
-/(?(?=.*b)b|^)/
-    adc
- 0: 
-    abc 
- 0: b
-
-/(?(?=^.*b)b|^)/
-    adc
- 0: 
-\= Expect no match
-    abc 
-No match
-
-/(?(?=.*b)b|^)*/
-    adc
- 0: 
-    abc 
- 0: 
-
-/(?(?=.*b)b|^)+/
-    adc
- 0: 
-    abc 
- 0: b
-
-/(?(?=b).*b|^d)/
-    abc
- 0: b
-
-/(?(?=.*b).*b|^d)/
-    abc
- 0: ab
-
-/^%((?(?=[a])[^%])|b)*%$/
-    %ab%
- 0: %ab%
- 1: 
-
-/(?i)a(?-i)b|c/
-    XabX
- 0: ab
-    XAbX
- 0: Ab
-    CcC 
- 0: c
-\= Expect no match
-    XABX   
-No match
-
-/[\x00-\xff\s]+/
-    \x0a\x0b\x0c\x0d
- 0: \x0a\x0b\x0c\x0d
-
-/(abc)\1/i
-\= Expect no match
-    abc
-No match
-
-/(abc)\1/
-\= Expect no match
-    abc
-No match
-
-/[^a]*/i
-    12abc
- 0: 12
-    12ABC
- 0: 12
-
-#Posses
-/[^a]*/i
-    12abc
- 0: 12
-    12ABC
- 0: 12
-
-/[^a]*?X/i
-\= Expect no match
-    12abc
-No match
-    12ABC
-No match
-    
-/[^a]+?X/i
-\= Expect no match
-    12abc
-No match
-    12ABC
-No match
-
-/[^a]?X/i
-    12aXbcX
- 0: X
-    12AXBCX
- 0: X
-    BCX 
- 0: CX
-
-/[^a]??X/i
-    12aXbcX
- 0: X
-    12AXBCX
- 0: X
-    BCX
- 0: CX
-
-/[^a]{2,3}/i
-    abcdef
- 0: bcd
-    ABCDEF  
- 0: BCD
-
-/[^a]{2,3}?/i
-    abcdef
- 0: bc
-    ABCDEF  
- 0: BC
-
-/((a|)+)+Z/
-    Z
- 0: Z
- 1: 
- 2: 
-
-/(a)b|(a)c/
-    ac
- 0: ac
- 1: <unset>
- 2: a
-
-/(?>(a))b|(a)c/
-    ac
- 0: ac
- 1: <unset>
- 2: a
-
-/(?=(a))ab|(a)c/
-    ac
- 0: ac
- 1: <unset>
- 2: a
-
-/((?>(a))b|(a)c)/
-    ac
- 0: ac
- 1: ac
- 2: <unset>
- 3: a
-
-/(?=(?>(a))b|(a)c)(..)/
-    ac
- 0: ac
- 1: <unset>
- 2: a
- 3: ac
-
-/(?>(?>(a))b|(a)c)/
-    ac
- 0: ac
- 1: <unset>
- 2: a
-
-/((?>(a+)b)+(aabab))/
-    aaaabaaabaabab
- 0: aaaabaaabaabab
- 1: aaaabaaabaabab
- 2: aaa
- 3: aabab
-
-/(?>a+|ab)+?c/
-\= Expect no match
-    aabc
-No match
-
-/(?>a+|ab)+c/
-\= Expect no match
-    aabc
-No match
-
-/(?:a+|ab)+c/
-    aabc
- 0: aabc
-
-/^(?:a|ab)+c/
-    aaaabc
- 0: aaaabc
-
-/(?=abc){0}xyz/
-    xyz 
- 0: xyz
-
-/(?=abc){1}xyz/
-\= Expect no match
-    xyz 
-No match
-    
-/(?=(a))?./
-    ab
- 0: a
- 1: a
-    bc
- 0: b
-      
-/(?=(a))??./
-    ab
- 0: a
-    bc
- 0: b
-
-/^(?!a){0}\w+/
-    aaaaa
- 0: aaaaa
-
-/(?<=(abc))?xyz/
-    abcxyz
- 0: xyz
- 1: abc
-    pqrxyz 
- 0: xyz
-
-/^[g<a>]+/
-    ggg<<<aaa>>>
- 0: ggg<<<aaa>>>
-\= Expect no match
-    \\ga  
-No match
-    
-/^[ga]+/
-    gggagagaxyz 
- 0: gggagaga
-   
-/[:a]xxx[b:]/
-     :xxx:
- 0: :xxx:
-     
-/(?<=a{2})b/i
-    xaabc
- 0: b
-\= Expect no match
-    xabc  
-No match
-
-/(?<!a{2})b/i
-    xabc
- 0: b
-\= Expect no match
-    xaabc  
-No match
-    
-/(?<=[^a]{2})b/
-    axxbc
- 0: b
-    aAAbc 
- 0: b
-\= Expect no match
-    xaabc    
-No match
-
-/(?<=[^a]{2})b/i
-    axxbc  
- 0: b
-\= Expect no match
-    aAAbc 
-No match
-    xaabc    
-No match
-
-#/(?|(abc)|(xyz))\1/
-#    abcabc
-# 0: abcabc
-# 1: abc
-#    xyzxyz 
-# 0: xyzxyz
-# 1: xyz
-#\= Expect no match
-#    abcxyz
-#No match
-#    xyzabc   
-#No match
-    
-#/(?|(abc)|(xyz))(?1)/
-#    abcabc
-# 0: abcabc
-# 1: abc
-#    xyzabc 
-# 0: xyzabc
-# 1: xyz
-#\= Expect no match 
-#    xyzxyz 
-#No match
- 
-#/^X(?5)(a)(?|(b)|(q))(c)(d)(Y)/
-#    XYabcdY
-# 0: XYabcdY
-# 1: a
-# 2: b
-# 3: c
-# 4: d
-# 5: Y
-
-#/^X(?7)(a)(?|(b|(r)(s))|(q))(c)(d)(Y)/
-#    XYabcdY
-# 0: XYabcdY
-# 1: a
-# 2: b
-# 3: <unset>
-# 4: <unset>
-# 5: c
-# 6: d
-# 7: Y
-
-#/^X(?7)(a)(?|(b|(?|(r)|(t))(s))|(q))(c)(d)(Y)/
-#    XYabcdY
-# 0: XYabcdY
-# 1: a
-# 2: b
-# 3: <unset>
-# 4: <unset>
-# 5: c
-# 6: d
-# 7: Y
-
-/(?'abc'\w+):\k<abc>{2}/
-    a:aaxyz
- 0: a:aa
- 1: a
-    ab:ababxyz
- 0: ab:abab
- 1: ab
-\= Expect no match
-    a:axyz
-No match
-    ab:abxyz
-No match
-
-/^(?<ab>a)? (?(ab)b|c) (?(ab)d|e)/x
-    abd
- 0: abd
- 1: a
-    ce
- 0: ce
-    
-# .NET has more consistent grouping numbers with these dupe groups for the two options
-/(?:a(?<quote> (?<apostrophe>')|(?<realquote>")) |b(?<quote> (?<apostrophe>')|(?<realquote>")) ) (?(quote)[a-z]+|[0-9]+)/x,dupnames
-    a\"aaaaa
- 0: a"aaaaa
- 1: "
- 2: <unset>
- 3: "
-    b\"aaaaa
- 0: b"aaaaa
- 1: "
- 2: <unset>
- 3: "
-\= Expect no match 
-    b\"11111
-No match
-
-#/(?P<L1>(?P<L2>0)(?P>L1)|(?P>L2))/
-#    0
-# 0: 0
-# 1: 0
-#    00
-# 0: 00
-# 1: 00
-# 2: 0
-#    0000  
-# 0: 0000
-# 1: 0000
-# 2: 0
-
-#/(?P<L1>(?P<L2>0)|(?P>L2)(?P>L1))/
-#    0
-# 0: 0
-# 1: 0
-# 2: 0
-#    00
-# 0: 0
-# 1: 0
-# 2: 0
-#    0000  
-# 0: 0
-# 1: 0
-# 2: 0
-
-# Check the use of names for failure
-
-# Check opening parens in comment when seeking forward reference.
-
-#/(?P<abn>(?P=abn)xxx|)+/
-#    xxx
-# 0: 
-# 1: 
-
-#Posses
-/^(a)?(\w)/
-    aaaaX
- 0: aa
- 1: a
- 2: a
-    YZ 
- 0: Y
- 1: <unset>
- 2: Y
-
-#Posses
-/^(?:a)?(\w)/
-    aaaaX
- 0: aa
- 1: a
-    YZ 
- 0: Y
- 1: Y
-
-/\A.*?(a|bc)/
-    ba
- 0: ba
- 1: a
-
-/\A.*?(?:a|bc|d)/
-    ba
- 0: ba
-
-# --------------------------
-
-/(another)?(\1?)test/
-    hello world test
- 0: test
- 1: <unset>
- 2: 
-
-/(another)?(\1+)test/
-\= Expect no match
-    hello world test
-No match
-
-/((?:a?)*)*c/
-    aac   
- 0: aac
- 1: 
-
-/((?>a?)*)*c/
-    aac   
- 0: aac
- 1: 
-
-/(?>.*?a)(?<=ba)/
-    aba
- 0: ba
-
-/(?:.*?a)(?<=ba)/
-    aba
- 0: aba
-
-/(?>.*?a)b/s
-    aab
- 0: ab
-
-/(?>.*?a)b/
-    aab
- 0: ab
-
-/(?>^a)b/s
-\= Expect no match
-    aab
-No match
-
-/(?>.*?)(?<=(abcd)|(wxyz))/
-    alphabetabcd
- 0: 
- 1: abcd
-    endingwxyz 
- 0: 
- 1: <unset>
- 2: wxyz
-
-/(?>.*)(?<=(abcd)|(wxyz))/
-    alphabetabcd
- 0: alphabetabcd
- 1: abcd
-    endingwxyz
- 0: endingwxyz
- 1: <unset>
- 2: wxyz
-
-"(?>.*)foo"
-\= Expect no match
-    abcdfooxyz
-No match
-    
-"(?>.*?)foo"
-    abcdfooxyz
- 0: foo
-
-# Tests that try to figure out how Perl works. My hypothesis is that the first
-# verb that is backtracked onto is the one that acts. This seems to be the case
-# almost all the time, but there is one exception that is perhaps a bug.
- 
-/a(?=bc).|abd/
-    abd
- 0: abd
-    abc 
- 0: ab
-  
-/a(?>bc)d|abd/
-    abceabd 
- 0: abd
-
-# These tests were formerly in test 2, but changes in PCRE and Perl have
-# made them compatible. 
-    
-/^(a)?(?(1)a|b)+$/
-\= Expect no match
-    a
-No match
-
-# ----
-
-/^\d*\w{4}/
-    1234
- 0: 1234
-\= Expect no match
-    123 
-No match
-
-/^[^b]*\w{4}/
-    aaaa
- 0: aaaa
-\= Expect no match
-    aaa     
-No match
-
-/^[^b]*\w{4}/i
-    aaaa
- 0: aaaa
-\= Expect no match
-    aaa     
-No match
-
-/^a*\w{4}/
-    aaaa
- 0: aaaa
-\= Expect no match
-    aaa     
-No match
-
-/^a*\w{4}/i
-    aaaa
- 0: aaaa
-\= Expect no match
-    aaa     
-No match
-
-/(?:(?<n>foo)|(?<n>bar))\k<n>/dupnames
-    foofoo
- 0: foofoo
- 1: foo
-    barbar
- 0: barbar
- 1: bar
-
-# A notable difference between PCRE and .NET.  According to
-# the PCRE docs:
-# If you make a subroutine call to a non-unique named 
-# subpattern, the one that corresponds  to  the first 
-# occurrence of the name is used. In the absence of 
-# duplicate numbers (see the previous section) this is 
-# the one with the lowest number.
-# .NET takes the most recently captured number according to MSDN:
-# A backreference refers to the most recent definition of 
-# a group (the definition most immediately to the left, 
-# when matching left to right). When a group makes multiple
-# captures, a backreference refers to the most recent capture.
-
-#/(?<n>A)(?:(?<n>foo)|(?<n>bar))\k<n>/dupnames
-#    AfooA
-# 0: AfooA
-# 1: A
-# 2: foo
-#    AbarA  
-# 0: AbarA
-# 1: A
-# 2: <unset>
-# 3: bar
-#\= Expect no match 
-#    Afoofoo
-#No match
-#    Abarbar
-#No match
-
-/^(\d+)\s+IN\s+SOA\s+(\S+)\s+(\S+)\s*\(\s*$/
-    1 IN SOA non-sp1 non-sp2(
- 0: 1 IN SOA non-sp1 non-sp2(
- 1: 1
- 2: non-sp1
- 3: non-sp2
-
-# TODO: .NET's group number ordering here in the second example is a bit odd
-/^ (?:(?<A>A)|(?'B'B)(?<A>A)) (?(A)x) (?(B)y)$/x,dupnames
-    Ax
- 0: Ax
- 1: A
-    BAxy
- 0: BAxy
- 1: A
- 2: B
- 
-/ ^ a + b $ /x
-    aaaab
- 0: aaaab
-    
-/ ^ a + #comment
-   b $ /x
-    aaaab
- 0: aaaab
-    
-/ ^ a + #comment
-  #comment
-   b $ /x
-    aaaab
- 0: aaaab
-    
-/ ^ (?> a + ) b $ /x
-    aaaab 
- 0: aaaab
-
-/ ^ ( a + ) + \w $ /x
-    aaaab 
- 0: aaaab
- 1: aaaa
-
-/(?:x|(?:(xx|yy)+|x|x|x|x|x)|a|a|a)bc/
-\= Expect no match
-    acb
-No match
-
-#Posses
-#/\A(?:[^\"]+|\"(?:[^\"]*|\"\")*\")+/
-#    NON QUOTED \"QUOT\"\"ED\" AFTER \"NOT MATCHED
-# 0: NON QUOTED "QUOT""ED" AFTER 
-
-#Posses
-#/\A(?:[^\"]+|\"(?:[^\"]+|\"\")*\")+/
-#    NON QUOTED \"QUOT\"\"ED\" AFTER \"NOT MATCHED
-# 0: NON QUOTED "QUOT""ED" AFTER 
-
-#Posses
-#/\A(?:[^\"]+|\"(?:[^\"]+|\"\")+\")+/
-#    NON QUOTED \"QUOT\"\"ED\" AFTER \"NOT MATCHED
-# 0: NON QUOTED "QUOT""ED" AFTER 
-
-#Posses
-#/\A([^\"1]+|[\"2]([^\"3]*|[\"4][\"5])*[\"6])+/
-#    NON QUOTED \"QUOT\"\"ED\" AFTER \"NOT MATCHED
-# 0: NON QUOTED "QUOT""ED" AFTER 
-# 1:  AFTER 
-# 2: 
-
-/^\w+(?>\s*)(?<=\w)/
-    test test
- 0: tes
-
-#/(?P<Name>a)?(?P<Name2>b)?(?(<Name>)c|d)*l/
-#    acl
-# 0: acl
-# 1: a
-#    bdl
-# 0: bdl
-# 1: <unset>
-# 2: b
-#    adl
-# 0: dl
-#    bcl    
-# 0: l
-
-/\sabc/
-    \x0babc
- 0: \x0babc
-
-#/[\Qa]\E]+/
-#    aa]]
-# 0: aa]]
-
-#/[\Q]a\E]+/
-#    aa]]
-# 0: aa]]
-
-/A((((((((a))))))))\8B/ 
-    AaaB
- 0: AaaB
- 1: a
- 2: a
- 3: a
- 4: a
- 5: a
- 6: a
- 7: a
- 8: a
-
-/A(((((((((a)))))))))\9B/ 
-    AaaB
- 0: AaaB
- 1: a
- 2: a
- 3: a
- 4: a
- 5: a
- 6: a
- 7: a
- 8: a
- 9: a
-    
-/(|ab)*?d/
-    abd
- 0: abd
- 1: ab
-    xyd 
- 0: d
-
-/(\2|a)(\1)/
-    aaa
- 0: aa
- 1: a
- 2: a
-
-/(\2)(\1)/
-
-"Z*(|d*){216}"
-
-/((((((((((((x))))))))))))\12/
-    xx
- 0: xx
- 1: x
- 2: x
- 3: x
- 4: x
- 5: x
- 6: x
- 7: x
- 8: x
- 9: x
-10: x
-11: x
-12: x
-
-#"(?|(\k'Pm')|(?'Pm'))"
-#    abcd
-# 0: 
-# 1: 
-
-#/(?|(aaa)|(b))\g{1}/
-#    aaaaaa
-# 0: aaaaaa
-# 1: aaa
-#    bb 
-# 0: bb
-# 1: b
-
-#/(?|(aaa)|(b))(?1)/
-#    aaaaaa
-# 0: aaaaaa
-# 1: aaa
-#    baaa 
-# 0: baaa
-# 1: b
-#\= Expect no match 
-#    bb 
-#No match
-
-#/(?|(aaa)|(b))/
-#    xaaa
-# 0: aaa
-# 1: aaa
-#    xbc 
-# 0: b
-# 1: b
-
-#/(?|(?'a'aaa)|(?'a'b))\k'a'/
-#    aaaaaa
-# 0: aaaaaa
-# 1: aaa
-#    bb 
-# 0: bb
-# 1: b
-
-#/(?|(?'a'aaa)|(?'a'b))(?'a'cccc)\k'a'/dupnames
-#    aaaccccaaa
-# 0: aaaccccaaa
-# 1: aaa
-# 2: cccc
-#    bccccb 
-# 0: bccccb
-# 1: b
-# 2: cccc
-
-# End of testinput1 
