You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
hotkeys/static/js/main.ec4559bf.chunk.js.map

1 line
2.3 MiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

{"version":3,"sources":["../node_modules/micromark/dist/character/markdown-line-ending.js","../node_modules/micromark/dist/tokenize/factory-space.js","../node_modules/mdast-util-to-hast/lib/all.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/classCallCheck.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/createClass.js","../node_modules/unist-builder/index.js","../node_modules/refractor/lang/markup-templating.js","../node_modules/micromark/dist/character/markdown-space.js","../node_modules/micromark/dist/util/chunked-splice.js","../node_modules/micromark/dist/character/markdown-line-ending-or-space.js","../node_modules/parse5/lib/utils/mixin.js","../node_modules/unist-util-visit/index.js","../node_modules/micromark/dist/util/regex-check.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/inherits.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/createSuper.js","../node_modules/prop-types/index.js","../node_modules/micromark/dist/util/shallow.js","../node_modules/refractor/lang/c.js","styles/index.module.less","../node_modules/property-information/lib/util/create.js","../node_modules/parse5/lib/common/html.js","../node_modules/@babel/runtime/helpers/objectSpread2.js","../node_modules/micromark/dist/constant/assign.js","../node_modules/micromark/dist/util/prefix-size.js","../node_modules/micromark/dist/character/ascii-alphanumeric.js","../node_modules/mdast-util-to-hast/lib/wrap.js","../node_modules/property-information/html.js","../node_modules/property-information/svg.js","../node_modules/property-information/find.js","../node_modules/@babel/runtime/helpers/extends.js","../node_modules/micromark/dist/constant/from-char-code.js","../node_modules/micromark/dist/tokenize/partial-blank-line.js","../node_modules/micromark/dist/util/resolve-all.js","../node_modules/micromark/dist/character/ascii-alpha.js","../node_modules/mdurl/encode.js","../node_modules/property-information/lib/util/types.js","../node_modules/parse5/lib/tokenizer/index.js","../node_modules/refractor/lang/ruby.js","../node_modules/refractor/lang/javadoclike.js","../node_modules/refractor/lang/php.js","../node_modules/@babel/runtime/helpers/objectWithoutProperties.js","../node_modules/object-assign/index.js","../node_modules/micromark/dist/util/normalize-identifier.js","../node_modules/micromark/dist/util/miniflat.js","../node_modules/micromark/dist/util/chunked-push.js","../node_modules/micromark/dist/character/unicode-punctuation.js","../node_modules/micromark/dist/character/unicode-whitespace.js","../node_modules/micromark/dist/character/ascii-control.js","../node_modules/parse-entities/decode-entity.browser.js","../node_modules/micromark/dist/tokenize/label-end.js","../node_modules/unist-util-is/convert.js","../node_modules/unist-util-position/index.js","../node_modules/xtend/immutable.js","../node_modules/property-information/normalize.js","../node_modules/space-separated-tokens/index.js","../node_modules/comma-separated-tokens/index.js","../node_modules/repeat-string/index.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/defineProperty.js","../node_modules/parse5/lib/common/unicode.js","../node_modules/parse5/lib/common/error-codes.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/getPrototypeOf.js","../node_modules/parse5/lib/extensions/error-reporting/mixin-base.js","../node_modules/refractor/lang/sql.js","../node_modules/refractor/lang/csharp.js","../node_modules/refractor/lang/java.js","../node_modules/refractor/lang/typescript.js","../node_modules/refractor/lang/json.js","../node_modules/refractor/lang/scheme.js","../node_modules/refractor/lang/t4-templating.js","../node_modules/extend/index.js","../node_modules/@babel/runtime/helpers/toConsumableArray.js","../node_modules/@babel/runtime/helpers/arrayLikeToArray.js","../node_modules/vfile/index.js","../node_modules/unist-util-stringify-position/index.js","../node_modules/is-buffer/index.js","../node_modules/micromark/dist/constant/has-own-property.js","../node_modules/micromark/dist/util/size-chunks.js","../node_modules/micromark/dist/util/subtokenize.js","../node_modules/micromark/dist/initialize/text.js","../node_modules/micromark/dist/util/combine-extensions.js","../node_modules/micromark/dist/util/classify-character.js","../node_modules/micromark/dist/character/ascii-digit.js","../node_modules/micromark/dist/tokenize/factory-destination.js","../node_modules/micromark/dist/tokenize/factory-label.js","../node_modules/micromark/dist/tokenize/factory-whitespace.js","../node_modules/micromark/dist/tokenize/factory-title.js","../node_modules/micromark/dist/tokenize/thematic-break.js","../node_modules/unist-util-visit-parents/index.js","../node_modules/mdast-util-to-hast/lib/one.js","../node_modules/mdast-util-to-hast/lib/handlers/thematic-break.js","../node_modules/mdast-util-to-hast/lib/handlers/list.js","../node_modules/mdast-util-to-hast/lib/handlers/footnote-reference.js","../node_modules/mdast-util-to-hast/lib/revert.js","../node_modules/property-information/lib/util/merge.js","../node_modules/property-information/lib/util/schema.js","../node_modules/property-information/lib/xlink.js","../node_modules/property-information/lib/util/defined-info.js","../node_modules/property-information/lib/util/info.js","../node_modules/property-information/lib/xml.js","../node_modules/property-information/lib/xmlns.js","../node_modules/property-information/lib/util/case-insensitive-transform.js","../node_modules/property-information/lib/util/case-sensitive-transform.js","../node_modules/property-information/lib/aria.js","../node_modules/style-to-object/index.js","../node_modules/mdast-util-to-markdown/lib/util/container-phrasing.js","../node_modules/parse5/lib/extensions/location-info/tokenizer-mixin.js","../node_modules/parse5/lib/extensions/position-tracking/preprocessor-mixin.js","../node_modules/hastscript/factory.js","../node_modules/hastscript/index.js","../node_modules/zwitch/index.js","../node_modules/webpack/buildin/global.js","../node_modules/is-decimal/index.js","../node_modules/refractor/lang/cpp.js","../node_modules/refractor/lang/bash.js","../node_modules/refractor/lang/basic.js","../node_modules/refractor/lang/lua.js","../node_modules/refractor/lang/haskell.js","../node_modules/refractor/lang/jsx.js","../node_modules/refractor/lang/turtle.js","../node_modules/refractor/lang/vbnet.js","../node_modules/refractor/lang/yaml.js","../node_modules/@babel/runtime/helpers/typeof.js","../node_modules/react-markdown/src/react-markdown.js","../node_modules/remark-gfm/index.js","../node_modules/remark-slug/index.js","../node_modules/rehype-raw/index.js","../node_modules/@mapbox/rehype-prism/index.js","../../src/index.ts","components/Footer.module.less","../node_modules/scheduler/index.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/@babel/runtime/helpers/defineProperty.js","../node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js","../node_modules/@babel/runtime/helpers/arrayWithoutHoles.js","../node_modules/@babel/runtime/helpers/iterableToArray.js","../node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js","../node_modules/@babel/runtime/helpers/nonIterableSpread.js","../node_modules/vfile/lib/index.js","../node_modules/vfile-message/index.js","../node_modules/vfile/lib/core.js","../node_modules/vfile/lib/minpath.browser.js","../node_modules/vfile/lib/minproc.browser.js","../node_modules/unified/index.js","../node_modules/bail/index.js","../node_modules/is-plain-obj/index.js","../node_modules/trough/index.js","../node_modules/trough/wrap.js","../node_modules/remark-parse/index.js","../node_modules/mdast-util-from-markdown/index.js","../node_modules/mdast-util-from-markdown/dist/index.js","../node_modules/mdast-util-to-string/index.js","../node_modules/micromark/dist/util/safe-from-int.js","../node_modules/micromark/dist/parse.js","../node_modules/micromark/dist/initialize/content.js","../node_modules/micromark/dist/initialize/document.js","../node_modules/micromark/dist/initialize/flow.js","../node_modules/micromark/dist/tokenize/content.js","../node_modules/micromark/dist/constant/splice.js","../node_modules/micromark/dist/util/create-tokenizer.js","../node_modules/micromark/dist/util/serialize-chunks.js","../node_modules/micromark/dist/util/slice-chunks.js","../node_modules/micromark/dist/constructs.js","../node_modules/micromark/dist/tokenize/attention.js","../node_modules/micromark/dist/constant/unicode-punctuation-regex.js","../node_modules/micromark/dist/util/move-point.js","../node_modules/micromark/dist/tokenize/autolink.js","../node_modules/micromark/dist/character/ascii-atext.js","../node_modules/micromark/dist/tokenize/block-quote.js","../node_modules/micromark/dist/tokenize/character-escape.js","../node_modules/micromark/dist/character/ascii-punctuation.js","../node_modules/micromark/dist/tokenize/character-reference.js","../node_modules/micromark/dist/character/ascii-hex-digit.js","../node_modules/micromark/dist/tokenize/code-fenced.js","../node_modules/micromark/dist/tokenize/code-indented.js","../node_modules/micromark/dist/tokenize/code-text.js","../node_modules/micromark/dist/tokenize/definition.js","../node_modules/micromark/dist/tokenize/hard-break-escape.js","../node_modules/micromark/dist/tokenize/heading-atx.js","../node_modules/micromark/dist/tokenize/html-flow.js","../node_modules/micromark/dist/constant/html-block-names.js","../node_modules/micromark/dist/constant/html-raw-names.js","../node_modules/micromark/dist/tokenize/html-text.js","../node_modules/micromark/dist/tokenize/label-start-image.js","../node_modules/micromark/dist/tokenize/label-start-link.js","../node_modules/micromark/dist/tokenize/line-ending.js","../node_modules/micromark/dist/tokenize/list.js","../node_modules/micromark/dist/tokenize/setext-underline.js","../node_modules/micromark/dist/preprocess.js","../node_modules/micromark/dist/postprocess.js","../node_modules/remark-rehype/index.js","../node_modules/mdast-util-to-hast/index.js","../node_modules/mdast-util-to-hast/lib/index.js","../node_modules/unist-util-visit-parents/color.browser.js","../node_modules/unist-util-generated/index.js","../node_modules/mdast-util-definitions/index.js","../node_modules/mdast-util-to-hast/lib/footer.js","../node_modules/mdast-util-to-hast/lib/handlers/index.js","../node_modules/mdast-util-to-hast/lib/handlers/blockquote.js","../node_modules/mdast-util-to-hast/lib/handlers/break.js","../node_modules/mdast-util-to-hast/lib/handlers/code.js","../node_modules/mdast-util-to-hast/lib/handlers/delete.js","../node_modules/mdast-util-to-hast/lib/handlers/emphasis.js","../node_modules/mdast-util-to-hast/lib/handlers/footnote.js","../node_modules/mdast-util-to-hast/lib/handlers/heading.js","../node_modules/mdast-util-to-hast/lib/handlers/html.js","../node_modules/mdast-util-to-hast/lib/handlers/image-reference.js","../node_modules/mdast-util-to-hast/lib/handlers/image.js","../node_modules/mdast-util-to-hast/lib/handlers/inline-code.js","../node_modules/mdast-util-to-hast/lib/handlers/link-reference.js","../node_modules/mdast-util-to-hast/lib/handlers/link.js","../node_modules/mdast-util-to-hast/lib/handlers/list-item.js","../node_modules/mdast-util-to-hast/lib/handlers/paragraph.js","../node_modules/mdast-util-to-hast/lib/handlers/root.js","../node_modules/mdast-util-to-hast/lib/handlers/strong.js","../node_modules/mdast-util-to-hast/lib/handlers/table.js","../node_modules/mdast-util-to-hast/lib/handlers/text.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/property-information/lib/html.js","../node_modules/react-markdown/src/rehype-filter.js","../node_modules/react-markdown/src/uri-transformer.js","../node_modules/react-markdown/src/ast-to-react.js","../node_modules/react-markdown/node_modules/react-is/index.js","../node_modules/react-markdown/node_modules/react-is/cjs/react-is.production.min.js","../node_modules/property-information/lib/svg.js","../node_modules/inline-style-parser/index.js","../node_modules/micromark-extension-gfm/index.js","../node_modules/micromark-extension-gfm/syntax.js","../node_modules/micromark-extension-gfm-autolink-literal/index.js","../node_modules/micromark-extension-gfm-autolink-literal/syntax.js","../node_modules/micromark-extension-gfm-strikethrough/index.js","../node_modules/micromark-extension-gfm-table/index.js","../node_modules/micromark-extension-gfm-table/syntax.js","../node_modules/micromark-extension-gfm-task-list-item/index.js","../node_modules/micromark-extension-gfm-task-list-item/syntax.js","../node_modules/mdast-util-gfm/from-markdown.js","../node_modules/mdast-util-gfm-autolink-literal/from-markdown.js","../node_modules/ccount/index.js","../node_modules/mdast-util-find-and-replace/index.js","../node_modules/escape-string-regexp/index.js","../node_modules/mdast-util-gfm-strikethrough/from-markdown.js","../node_modules/mdast-util-gfm-table/from-markdown.js","../node_modules/mdast-util-gfm-task-list-item/from-markdown.js","../node_modules/mdast-util-gfm/to-markdown.js","../node_modules/mdast-util-gfm-autolink-literal/to-markdown.js","../node_modules/mdast-util-gfm-strikethrough/to-markdown.js","../node_modules/mdast-util-gfm-table/to-markdown.js","../node_modules/mdast-util-to-markdown/lib/handle/inline-code.js","../node_modules/mdast-util-to-markdown/lib/util/pattern-compile.js","../node_modules/markdown-table/index.js","../node_modules/mdast-util-gfm-task-list-item/to-markdown.js","../node_modules/mdast-util-to-markdown/lib/handle/list-item.js","../node_modules/mdast-util-to-markdown/lib/util/check-bullet.js","../node_modules/mdast-util-to-markdown/lib/util/check-list-item-indent.js","../node_modules/mdast-util-to-markdown/lib/util/container-flow.js","../node_modules/mdast-util-to-markdown/lib/util/indent-lines.js","../node_modules/mdast-util-to-markdown/lib/configure.js","../node_modules/remark-slug/node_modules/mdast-util-to-string/index.js","../node_modules/github-slugger/index.js","../node_modules/github-slugger/node_modules/emoji-regex/index.js","../node_modules/hast-util-raw/index.js","../node_modules/parse5/lib/parser/index.js","../node_modules/parse5/lib/tokenizer/preprocessor.js","../node_modules/parse5/lib/tokenizer/named-entity-data.js","../node_modules/parse5/lib/parser/open-element-stack.js","../node_modules/parse5/lib/parser/formatting-element-list.js","../node_modules/parse5/lib/extensions/location-info/parser-mixin.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/setPrototypeOf.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/isNativeReflectConstruct.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/possibleConstructorReturn.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/typeof.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/assertThisInitialized.js","../node_modules/parse5/lib/extensions/location-info/open-element-stack-mixin.js","../node_modules/parse5/lib/extensions/error-reporting/parser-mixin.js","../node_modules/parse5/lib/extensions/error-reporting/tokenizer-mixin.js","../node_modules/parse5/lib/extensions/error-reporting/preprocessor-mixin.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/get.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/superPropBase.js","../node_modules/parse5/lib/tree-adapters/default.js","../node_modules/parse5/lib/utils/merge-options.js","../node_modules/parse5/lib/common/doctype.js","../node_modules/parse5/lib/common/foreign-content.js","../node_modules/hast-util-from-parse5/index.js","../node_modules/hastscript/svg.js","../node_modules/hast-util-parse-selector/index.js","../node_modules/hastscript/html.js","../node_modules/vfile-location/index.js","../node_modules/hast-util-to-parse5/index.js","../node_modules/hast-to-hyperscript/index.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/createForOfIteratorHelper.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/arrayLikeToArray.js","../node_modules/hast-util-to-string/index.js","../node_modules/refractor/index.js","../node_modules/refractor/core.js","../node_modules/parse-entities/index.js","../node_modules/is-hexadecimal/index.js","../node_modules/is-alphanumerical/index.js","../node_modules/is-alphabetical/index.js","../node_modules/prismjs/components/prism-core.js","../node_modules/refractor/lang/markup.js","../node_modules/refractor/lang/css.js","../node_modules/refractor/lang/clike.js","../node_modules/refractor/lang/javascript.js","../node_modules/refractor/lang/abap.js","../node_modules/refractor/lang/abnf.js","../node_modules/refractor/lang/actionscript.js","../node_modules/refractor/lang/ada.js","../node_modules/refractor/lang/agda.js","../node_modules/refractor/lang/al.js","../node_modules/refractor/lang/antlr4.js","../node_modules/refractor/lang/apacheconf.js","../node_modules/refractor/lang/apex.js","../node_modules/refractor/lang/apl.js","../node_modules/refractor/lang/applescript.js","../node_modules/refractor/lang/aql.js","../node_modules/refractor/lang/arduino.js","../node_modules/refractor/lang/arff.js","../node_modules/refractor/lang/asciidoc.js","../node_modules/refractor/lang/asm6502.js","../node_modules/refractor/lang/aspnet.js","../node_modules/refractor/lang/autohotkey.js","../node_modules/refractor/lang/autoit.js","../node_modules/refractor/lang/batch.js","../node_modules/refractor/lang/bbcode.js","../node_modules/refractor/lang/birb.js","../node_modules/refractor/lang/bison.js","../node_modules/refractor/lang/bnf.js","../node_modules/refractor/lang/brainfuck.js","../node_modules/refractor/lang/brightscript.js","../node_modules/refractor/lang/bro.js","../node_modules/refractor/lang/bsl.js","../node_modules/refractor/lang/cil.js","../node_modules/refractor/lang/clojure.js","../node_modules/refractor/lang/cmake.js","../node_modules/refractor/lang/coffeescript.js","../node_modules/refractor/lang/concurnas.js","../node_modules/refractor/lang/crystal.js","../node_modules/refractor/lang/csp.js","../node_modules/refractor/lang/css-extras.js","../node_modules/refractor/lang/cypher.js","../node_modules/refractor/lang/d.js","../node_modules/refractor/lang/dart.js","../node_modules/refractor/lang/dataweave.js","../node_modules/refractor/lang/dax.js","../node_modules/refractor/lang/dhall.js","../node_modules/refractor/lang/diff.js","../node_modules/refractor/lang/django.js","../node_modules/refractor/lang/dns-zone-file.js","../node_modules/refractor/lang/docker.js","../node_modules/refractor/lang/ebnf.js","../node_modules/refractor/lang/editorconfig.js","../node_modules/refractor/lang/eiffel.js","../node_modules/refractor/lang/ejs.js","../node_modules/refractor/lang/elixir.js","../node_modules/refractor/lang/elm.js","../node_modules/refractor/lang/erb.js","../node_modules/refractor/lang/erlang.js","../node_modules/refractor/lang/etlua.js","../node_modules/refractor/lang/excel-formula.js","../node_modules/refractor/lang/factor.js","../node_modules/refractor/lang/firestore-security-rules.js","../node_modules/refractor/lang/flow.js","../node_modules/refractor/lang/fortran.js","../node_modules/refractor/lang/fsharp.js","../node_modules/refractor/lang/ftl.js","../node_modules/refractor/lang/gcode.js","../node_modules/refractor/lang/gdscript.js","../node_modules/refractor/lang/gedcom.js","../node_modules/refractor/lang/gherkin.js","../node_modules/refractor/lang/git.js","../node_modules/refractor/lang/glsl.js","../node_modules/refractor/lang/gml.js","../node_modules/refractor/lang/go.js","../node_modules/refractor/lang/graphql.js","../node_modules/refractor/lang/groovy.js","../node_modules/refractor/lang/haml.js","../node_modules/refractor/lang/handlebars.js","../node_modules/refractor/lang/haxe.js","../node_modules/refractor/lang/hcl.js","../node_modules/refractor/lang/hlsl.js","../node_modules/refractor/lang/hpkp.js","../node_modules/refractor/lang/hsts.js","../node_modules/refractor/lang/http.js","../node_modules/refractor/lang/ichigojam.js","../node_modules/refractor/lang/icon.js","../node_modules/refractor/lang/iecst.js","../node_modules/refractor/lang/ignore.js","../node_modules/refractor/lang/inform7.js","../node_modules/refractor/lang/ini.js","../node_modules/refractor/lang/io.js","../node_modules/refractor/lang/j.js","../node_modules/refractor/lang/javadoc.js","../node_modules/refractor/lang/javastacktrace.js","../node_modules/refractor/lang/jolie.js","../node_modules/refractor/lang/jq.js","../node_modules/refractor/lang/js-extras.js","../node_modules/refractor/lang/js-templates.js","../node_modules/refractor/lang/jsdoc.js","../node_modules/refractor/lang/json5.js","../node_modules/refractor/lang/jsonp.js","../node_modules/refractor/lang/jsstacktrace.js","../node_modules/refractor/lang/julia.js","../node_modules/refractor/lang/keyman.js","../node_modules/refractor/lang/kotlin.js","../node_modules/refractor/lang/latex.js","../node_modules/refractor/lang/latte.js","../node_modules/refractor/lang/less.js","../node_modules/refractor/lang/lilypond.js","../node_modules/refractor/lang/liquid.js","../node_modules/refractor/lang/lisp.js","../node_modules/refractor/lang/livescript.js","../node_modules/refractor/lang/llvm.js","../node_modules/refractor/lang/lolcode.js","../node_modules/refractor/lang/makefile.js","../node_modules/refractor/lang/markdown.js","../node_modules/refractor/lang/matlab.js","../node_modules/refractor/lang/mel.js","../node_modules/refractor/lang/mizar.js","../node_modules/refractor/lang/mongodb.js","../node_modules/refractor/lang/monkey.js","../node_modules/refractor/lang/moonscript.js","../node_modules/refractor/lang/n1ql.js","../node_modules/refractor/lang/n4js.js","../node_modules/refractor/lang/nand2tetris-hdl.js","../node_modules/refractor/lang/naniscript.js","../node_modules/refractor/lang/nasm.js","../node_modules/refractor/lang/neon.js","../node_modules/refractor/lang/nginx.js","../node_modules/refractor/lang/nim.js","../node_modules/refractor/lang/nix.js","../node_modules/refractor/lang/nsis.js","../node_modules/refractor/lang/objectivec.js","../node_modules/refractor/lang/ocaml.js","../node_modules/refractor/lang/opencl.js","../node_modules/refractor/lang/oz.js","../node_modules/refractor/lang/parigp.js","../node_modules/refractor/lang/parser.js","../node_modules/refractor/lang/pascal.js","../node_modules/refractor/lang/pascaligo.js","../node_modules/refractor/lang/pcaxis.js","../node_modules/refractor/lang/peoplecode.js","../node_modules/refractor/lang/perl.js","../node_modules/refractor/lang/php-extras.js","../node_modules/refractor/lang/phpdoc.js","../node_modules/refractor/lang/plsql.js","../node_modules/refractor/lang/powerquery.js","../node_modules/refractor/lang/powershell.js","../node_modules/refractor/lang/processing.js","../node_modules/refractor/lang/prolog.js","../node_modules/refractor/lang/promql.js","../node_modules/refractor/lang/properties.js","../node_modules/refractor/lang/protobuf.js","../node_modules/refractor/lang/pug.js","../node_modules/refractor/lang/puppet.js","../node_modules/refractor/lang/pure.js","../node_modules/refractor/lang/purebasic.js","../node_modules/refractor/lang/purescript.js","../node_modules/refractor/lang/python.js","../node_modules/refractor/lang/q.js","../node_modules/refractor/lang/qml.js","../node_modules/refractor/lang/qore.js","../node_modules/refractor/lang/r.js","../node_modules/refractor/lang/racket.js","../node_modules/refractor/lang/reason.js","../node_modules/refractor/lang/regex.js","../node_modules/refractor/lang/renpy.js","../node_modules/refractor/lang/rest.js","../node_modules/refractor/lang/rip.js","../node_modules/refractor/lang/roboconf.js","../node_modules/refractor/lang/robotframework.js","../node_modules/refractor/lang/rust.js","../node_modules/refractor/lang/sas.js","../node_modules/refractor/lang/sass.js","../node_modules/refractor/lang/scala.js","../node_modules/refractor/lang/scss.js","../node_modules/refractor/lang/shell-session.js","../node_modules/refractor/lang/smali.js","../node_modules/refractor/lang/smalltalk.js","../node_modules/refractor/lang/smarty.js","../node_modules/refractor/lang/sml.js","../node_modules/refractor/lang/solidity.js","../node_modules/refractor/lang/solution-file.js","../node_modules/refractor/lang/soy.js","../node_modules/refractor/lang/sparql.js","../node_modules/refractor/lang/splunk-spl.js","../node_modules/refractor/lang/sqf.js","../node_modules/refractor/lang/stan.js","../node_modules/refractor/lang/stylus.js","../node_modules/refractor/lang/swift.js","../node_modules/refractor/lang/t4-cs.js","../node_modules/refractor/lang/t4-vb.js","../node_modules/refractor/lang/tap.js","../node_modules/refractor/lang/tcl.js","../node_modules/refractor/lang/textile.js","../node_modules/refractor/lang/toml.js","../node_modules/refractor/lang/tsx.js","../node_modules/refractor/lang/tt2.js","../node_modules/refractor/lang/twig.js","../node_modules/refractor/lang/typoscript.js","../node_modules/refractor/lang/unrealscript.js","../node_modules/refractor/lang/vala.js","../node_modules/refractor/lang/velocity.js","../node_modules/refractor/lang/verilog.js","../node_modules/refractor/lang/vhdl.js","../node_modules/refractor/lang/vim.js","../node_modules/refractor/lang/visual-basic.js","../node_modules/refractor/lang/warpscript.js","../node_modules/refractor/lang/wasm.js","../node_modules/refractor/lang/wiki.js","../node_modules/refractor/lang/xeora.js","../node_modules/refractor/lang/xml-doc.js","../node_modules/refractor/lang/xojo.js","../node_modules/refractor/lang/xquery.js","../node_modules/refractor/lang/yang.js","../node_modules/refractor/lang/zig.js","../../src/visit.ts","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/createClass.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/createSuper.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","../../../src/index.tsx","../node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/inherits.js","../node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","../node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/@babel/runtime/helpers/esm/createClass.js","../../../../src/common/Container.tsx","../../../../src/common/Base.tsx","../../../../src/github/Issues.tsx","../../../../src/github/Size.tsx","../../../../src/github/Downloads.tsx","../../../../src/github/Activity.tsx","../../../../src/github/Version.tsx","../../../../src/github/License.tsx","../../../../src/github/Analysis.tsx","../../../../src/github/Social.tsx","../../../../src/github/Github.tsx","../../../../src/github/index.tsx","../../../../src/coverages/Coverages.tsx","../../../../src/coverages/Codacy.tsx","../../../../src/coverages/Coverage.tsx","../../../../src/npm/Version.tsx","../../../../src/npm/Size.tsx","../../../../src/npm/Npm.tsx","../../../../src/npm/index.tsx","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../node_modules/remark-autolink-headings/src/index.js","../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","components/Footer.js","../README.md","../dist/hotkeys.esm.js","App.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/inherits.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/classCallCheck.js","index.js"],"names":["module","exports","code","markdownSpace","require","effects","ok","type","max","limit","Infinity","size","enter","prefix","consume","exit","h","parent","result","head","nodes","children","length","values","index","one","value","replace","concat","instance","Constructor","TypeError","_defineProperties","target","props","i","descriptor","enumerable","configurable","writable","Object","defineProperty","key","protoProps","staticProps","prototype","node","undefined","Array","isArray","assign","String","markupTemplating","Prism","getPlaceholder","language","toUpperCase","defineProperties","languages","buildPlaceholders","env","placeholderPattern","replaceFilter","tokenStack","match","placeholder","indexOf","grammar","markup","tokenizePlaceholders","j","keys","walkTokens","tokens","token","content","k","t","s","before","substring","middle","Token","tokenize","after","replacement","push","apply","splice","displayName","aliases","list","start","remove","items","parameters","end","chunkStart","from","unshift","slice","Mixin","host","originalMethods","overriddenMethods","this","_getOverriddenMethods","Error","install","Ctor","opts","__mixins","constructor","mixin","visit","visitParents","CONTINUE","SKIP","EXIT","tree","test","visitor","reverse","parents","fromCharCode","regex","setPrototypeOf","subClass","superClass","create","getPrototypeOf","isNativeReflectConstruct","possibleConstructorReturn","Derived","hasNativeReflectConstruct","Super","NewTarget","Reflect","construct","arguments","object","c","extend","comment","pattern","greedy","lookbehind","keyword","function","number","operator","insertBefore","macro","alias","inside","string","directive","punctuation","expression","constant","normalize","Schema","DefinedInfo","definition","prop","info","space","mustUseProperty","attributes","properties","transform","property","normal","attribute","NS","NAMESPACES","HTML","MATHML","SVG","XLINK","XML","XMLNS","ATTRS","TYPE","ACTION","ENCODING","PROMPT","NAME","COLOR","FACE","SIZE","DOCUMENT_MODE","NO_QUIRKS","QUIRKS","LIMITED_QUIRKS","$","TAG_NAMES","A","ADDRESS","ANNOTATION_XML","APPLET","AREA","ARTICLE","ASIDE","B","BASE","BASEFONT","BGSOUND","BIG","BLOCKQUOTE","BODY","BR","BUTTON","CAPTION","CENTER","CODE","COL","COLGROUP","DD","DESC","DETAILS","DIALOG","DIR","DIV","DL","DT","EM","EMBED","FIELDSET","FIGCAPTION","FIGURE","FONT","FOOTER","FOREIGN_OBJECT","FORM","FRAME","FRAMESET","H1","H2","H3","H4","H5","H6","HEAD","HEADER","HGROUP","HR","I","IMG","IMAGE","INPUT","IFRAME","KEYGEN","LABEL","LI","LINK","LISTING","MAIN","MALIGNMARK","MARQUEE","MATH","MENU","META","MGLYPH","MI","MO","MN","MS","MTEXT","NAV","NOBR","NOFRAMES","NOEMBED","NOSCRIPT","OBJECT","OL","OPTGROUP","OPTION","P","PARAM","PLAINTEXT","PRE","RB","RP","RT","RTC","RUBY","S","SCRIPT","SECTION","SELECT","SOURCE","SMALL","SPAN","STRIKE","STRONG","STYLE","SUB","SUMMARY","SUP","TABLE","TBODY","TEMPLATE","TEXTAREA","TFOOT","TD","TH","THEAD","TITLE","TR","TRACK","TT","U","UL","VAR","WBR","XMP","SPECIAL_ELEMENTS","ownKeys","enumerableOnly","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","source","forEach","getOwnPropertyDescriptors","__esModule","sizeChunks","events","tail","sliceStream","asciiAlphanumeric","regexCheck","loose","u","merge","xlink","xml","xmlns","aria","html","svg","Info","data","schema","Type","valid","charAt","dash","camelcase","datasetToProperty","cap","kebab","datasetToAttribute","$0","toLowerCase","_extends","hasOwnProperty","call","markdownLineEnding","factorySpace","partialBlankLine","nok","partial","constructs","context","resolve","called","resolveAll","asciiAlpha","encodeCache","encode","exclude","keepEscaped","l","nextCode","cache","defaultChars","ch","toString","charCodeAt","getEncodeCache","encodeURIComponent","componentChars","powers","increment","Math","pow","boolean","booleanish","overloadedBoolean","spaceSeparated","commaSeparated","commaOrSpaceSeparated","Preprocessor","unicode","neTree","ERR","CODE_POINTS","$$","CODE_POINT_SEQUENCES","C1_CONTROLS_REFERENCE_REPLACEMENTS","DATA_STATE","RCDATA_STATE","RAWTEXT_STATE","SCRIPT_DATA_STATE","PLAINTEXT_STATE","TAG_OPEN_STATE","END_TAG_OPEN_STATE","TAG_NAME_STATE","RCDATA_LESS_THAN_SIGN_STATE","RCDATA_END_TAG_OPEN_STATE","RCDATA_END_TAG_NAME_STATE","RAWTEXT_LESS_THAN_SIGN_STATE","RAWTEXT_END_TAG_OPEN_STATE","RAWTEXT_END_TAG_NAME_STATE","SCRIPT_DATA_LESS_THAN_SIGN_STATE","SCRIPT_DATA_END_TAG_OPEN_STATE","SCRIPT_DATA_END_TAG_NAME_STATE","SCRIPT_DATA_ESCAPE_START_STATE","SCRIPT_DATA_ESCAPE_START_DASH_STATE","SCRIPT_DATA_ESCAPED_STATE","SCRIPT_DATA_ESCAPED_DASH_STATE","SCRIPT_DATA_ESCAPED_DASH_DASH_STATE","SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN_STATE","SCRIPT_DATA_ESCAPED_END_TAG_OPEN_STATE","SCRIPT_DATA_ESCAPED_END_TAG_NAME_STATE","SCRIPT_DATA_DOUBLE_ESCAPE_START_STATE","SCRIPT_DATA_DOUBLE_ESCAPED_STATE","SCRIPT_DATA_DOUBLE_ESCAPED_DASH_STATE","SCRIPT_DATA_DOUBLE_ESCAPED_DASH_DASH_STATE","SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN_STATE","SCRIPT_DATA_DOUBLE_ESCAPE_END_STATE","BEFORE_ATTRIBUTE_NAME_STATE","ATTRIBUTE_NAME_STATE","AFTER_ATTRIBUTE_NAME_STATE","BEFORE_ATTRIBUTE_VALUE_STATE","ATTRIBUTE_VALUE_DOUBLE_QUOTED_STATE","ATTRIBUTE_VALUE_SINGLE_QUOTED_STATE","ATTRIBUTE_VALUE_UNQUOTED_STATE","AFTER_ATTRIBUTE_VALUE_QUOTED_STATE","SELF_CLOSING_START_TAG_STATE","BOGUS_COMMENT_STATE","MARKUP_DECLARATION_OPEN_STATE","COMMENT_START_STATE","COMMENT_START_DASH_STATE","COMMENT_STATE","COMMENT_LESS_THAN_SIGN_STATE","COMMENT_LESS_THAN_SIGN_BANG_STATE","COMMENT_LESS_THAN_SIGN_BANG_DASH_STATE","COMMENT_LESS_THAN_SIGN_BANG_DASH_DASH_STATE","COMMENT_END_DASH_STATE","COMMENT_END_STATE","COMMENT_END_BANG_STATE","DOCTYPE_STATE","BEFORE_DOCTYPE_NAME_STATE","DOCTYPE_NAME_STATE","AFTER_DOCTYPE_NAME_STATE","AFTER_DOCTYPE_PUBLIC_KEYWORD_STATE","BEFORE_DOCTYPE_PUBLIC_IDENTIFIER_STATE","DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED_STATE","DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED_STATE","AFTER_DOCTYPE_PUBLIC_IDENTIFIER_STATE","BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS_STATE","AFTER_DOCTYPE_SYSTEM_KEYWORD_STATE","BEFORE_DOCTYPE_SYSTEM_IDENTIFIER_STATE","DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED_STATE","DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED_STATE","AFTER_DOCTYPE_SYSTEM_IDENTIFIER_STATE","BOGUS_DOCTYPE_STATE","CDATA_SECTION_STATE","CDATA_SECTION_BRACKET_STATE","CDATA_SECTION_END_STATE","CHARACTER_REFERENCE_STATE","NAMED_CHARACTER_REFERENCE_STATE","AMBIGUOUS_AMPERSAND_STATE","NUMERIC_CHARACTER_REFERENCE_STATE","HEXADEMICAL_CHARACTER_REFERENCE_START_STATE","DECIMAL_CHARACTER_REFERENCE_START_STATE","HEXADEMICAL_CHARACTER_REFERENCE_STATE","DECIMAL_CHARACTER_REFERENCE_STATE","NUMERIC_CHARACTER_REFERENCE_END_STATE","isWhitespace","cp","SPACE","LINE_FEED","TABULATION","FORM_FEED","isAsciiDigit","DIGIT_0","DIGIT_9","isAsciiUpper","LATIN_CAPITAL_A","LATIN_CAPITAL_Z","isAsciiLower","LATIN_SMALL_A","LATIN_SMALL_Z","isAsciiLetter","isAsciiAlphaNumeric","isAsciiUpperHexDigit","LATIN_CAPITAL_F","isAsciiLowerHexDigit","LATIN_SMALL_F","toAsciiLowerCodePoint","toChar","toAsciiLowerChar","findNamedEntityTreeBranch","nodeIx","branchCount","lo","hi","mid","midCp","Tokenizer","preprocessor","tokenQueue","allowCDATA","state","returnState","charRefCode","tempBuff","lastStartTagName","consumedAfterSnapshot","active","currentCharacterToken","currentToken","currentAttr","err","_consume","_err","_unconsume","_ensureHibernation","shift","chunk","isLastChunk","write","insertHtmlAtCurrentPos","endOfChunkHit","retreat","HIBERNATION_TOKEN","advance","startCp","caseSensitive","consumedCount","isMatch","patternLength","patternPos","patternCp","EOF","SCRIPT_STRING","START_TAG_TOKEN","tagName","selfClosing","ackSelfClosing","attrs","END_TAG_TOKEN","COMMENT_TOKEN","initialName","DOCTYPE_TOKEN","name","forceQuirks","publicId","systemId","chars","EOF_TOKEN","attrNameFirstCh","toState","getTokenAttr","duplicateAttribute","_emitCurrentCharacterToken","ct","endTagWithAttributes","endTagWithTrailingSolidus","_createEOFToken","_emitCurrentToken","_createCharacterToken","CHARACTER_TOKEN","WHITESPACE_CHARACTER_TOKEN","NULL","NULL_CHARACTER_TOKEN","_appendCharToCurrentCharacterToken","codePoints","_emitCodePoint","excess","current","inNode","HAS_DATA_FLAG","pop","withSemicolon","_isCharacterReferenceInAttribute","nextCp","EQUALS_SIGN","_emitSeveralCodePoints","dropParsedChunk","LESS_THAN_SIGN","AMPERSAND","unexpectedNullCharacter","_emitEOFToken","_emitChars","REPLACEMENT_CHARACTER","EXCLAMATION_MARK","SOLIDUS","_createStartTagToken","_reconsumeInState","QUESTION_MARK","unexpectedQuestionMarkInsteadOfTagName","_createCommentToken","eofBeforeTagName","invalidFirstCharacterOfTagName","_createEndTagToken","GREATER_THAN_SIGN","missingEndTagName","eofInTag","HYPHEN_MINUS","eofInScriptHtmlCommentLikeText","_isTempBufferEqualToScriptString","unexpectedEqualsSignBeforeAttributeName","_createAttr","_leaveAttrName","QUOTATION_MARK","APOSTROPHE","unexpectedCharacterInAttributeName","missingAttributeValue","_leaveAttrValue","GRAVE_ACCENT","unexpectedCharacterInUnquotedAttributeValue","missingWhitespaceBetweenAttributes","unexpectedSolidusInTag","_consumeSequenceIfMatch","DASH_DASH_STRING","DOCTYPE_STRING","CDATA_START_STRING","cdataInHtmlContent","incorrectlyOpenedComment","abruptClosingOfEmptyComment","eofInComment","nestedComment","incorrectlyClosedComment","eofInDoctype","_createDoctypeToken","missingWhitespaceBeforeDoctypeName","missingDoctypeName","PUBLIC_STRING","SYSTEM_STRING","invalidCharacterSequenceAfterDoctypeName","missingWhitespaceAfterDoctypePublicKeyword","missingDoctypePublicIdentifier","missingQuoteBeforeDoctypePublicIdentifier","abruptDoctypePublicIdentifier","missingWhitespaceBetweenDoctypePublicAndSystemIdentifiers","missingQuoteBeforeDoctypeSystemIdentifier","missingWhitespaceAfterDoctypeSystemKeyword","missingDoctypeSystemIdentifier","abruptDoctypeSystemIdentifier","unexpectedCharacterAfterDoctypeSystemIdentifier","RIGHT_SQUARE_BRACKET","eofInCdata","NUMBER_SIGN","_flushCodePointsConsumedAsCharacterReference","matchResult","_matchNamedCharacterReference","SEMICOLON","_isCharacterReferenceAttributeQuirk","_errOnNextCodePoint","missingSemicolonAfterCharacterReference","unknownNamedCharacterReference","LATIN_SMALL_X","LATIN_CAPITAL_X","isAsciiHexDigit","absenceOfDigitsInNumericCharacterReference","nullCharacterReference","characterReferenceOutsideUnicodeRange","isSurrogate","surrogateCharacterReference","isUndefinedCodePoint","noncharacterCharacterReference","isControlCodePoint","CARRIAGE_RETURN","controlCharacterReference","MODE","DATA","RCDATA","RAWTEXT","SCRIPT_DATA","attrName","ruby","interpolation","delimiter","rest","RegExp","join","variable","symbol","builtin","rb","javadoclike","javaDocLike","parameter","docLanguage","lang","callback","tokenName","docCommentSupport","addSupport","refractorMarkupTemplating","php","register","package","string_interpolation","hooks","add","objectWithoutPropertiesLoose","excluded","sourceSymbolKeys","propertyIsEnumerable","propIsEnumerable","toObject","val","test1","getOwnPropertyNames","test2","map","n","test3","split","letter","shouldUseNative","to","chunkedSplice","unicodePunctuationRegex","unicodePunctuation","unicodeWhitespace","el","characters","char","entity","document","createElement","innerHTML","textContent","markdownLineEndingOrSpace","chunkedPush","normalizeIdentifier","shallow","factoryDestination","factoryLabel","factoryTitle","factoryWhitespace","labelEnd","labelStart","defined","self","_balanced","_inactive","balanced","parser","sliceSerialize","now","afterLabelEnd","attempt","resourceConstruct","fullReferenceConstruct","collapsedReferenceConstruct","resolveTo","group","label","text","open","close","media","offset","insideSpan","null","_used","destinationAfter","between","afterLabel","convert","Boolean","typeFactory","tests","checks","any","anyFactory","all","allFactory","factory","position","point","line","column","isNaN","parse","input","trim","whiteSpace","stringify","lastIndex","options","settings","left","padLeft","right","padRight","res","str","num","substr","obj","UNDEFINED_CODE_POINTS","isSurrogatePair","getSurrogatePairCodePoint","cp1","cp2","controlCharacterInInputStream","noncharacterInInputStream","surrogateInInputStream","nonVoidHtmlElementStartTagWithTrailingSolidus","nonConformingDoctype","missingDoctype","misplacedDoctype","endTagWithoutMatchingOpenElement","closingOfElementWithOpenChildElements","disallowedContentInNoscriptInHead","openElementsLeftAfterEof","abandonedHeadElementChild","misplacedStartTagForHeadElement","nestedNoscriptInHead","eofInElementThatCanContainOnlyText","_getPrototypeOf","o","__proto__","ErrorReportingMixinBase","posTracker","onParseError","startLine","endLine","startCol","endCol","col","startOffset","endOffset","_setErrorLocation","mxn","_reportError","sql","csharp","replacements","m","re","flags","nested","depthLog2","keywordKinds","keywordsToPattern","words","typeDeclarationKeywords","keywords","nonTypeKeywords","nonContextualKeywords","generic","nestedRound","genericName","identifier","array","typeExpressionWithoutTuple","tupleElement","tuple","typeExpression","typeInside","character","regularString","verbatimString","range","namespace","regularStringOrCharacter","regularStringCharacterOrComment","roundExpression","attrTarget","attr","formatString","mInterpolationRound","mInterpolation","sInterpolationRound","sInterpolation","createInterpolationInside","interpolationRound","dotnet","cs","java","classNamePrefix","className","clike","annotation","generics","typescript","ts","json","webmanifest","scheme","SortedBNF","t4Templating","createBlock","contentAlias","insideLang","block","standard","hasOwn","toStr","gOPD","arr","isPlainObject","hasOwnConstructor","hasIsPrototypeOf","setProperty","newValue","getProperty","src","copy","copyIsArray","clone","deep","arrayWithoutHoles","iterableToArray","unsupportedIterableToArray","nonIterableSpread","len","arr2","own","pos","isBuffer","chunks","subcontent","eventIndex","stream","previous","entered","adjust","startPosition","startPositions","tokenizer","_tokenizer","contentType","childEvents","jumps","gaps","next","defineSkip","isInFirstContentOfListItem","_gfmTasklistFirstContentOfListItem","event","lineIndex","otherIndex","otherEvent","subevents","more","_container","_movePreviousLineEndings","initializeFactory","resolver","createResolver","field","notText","atBreak","resolveAllLineSuffixes","extraResolver","bufferIndex","tabs","_index","_bufferIndex","miniflat","extension","hook","existing","extensions","asciiDigit","asciiControl","literalType","literalMarkerType","rawType","stringType","balance","destinationEnclosedBefore","destinationRaw","destinationEnclosed","destinationEnclosedEscape","destinationRawEscape","markerType","labelEscape","seen","marker","atFirstTitleBreak","atTitleBreak","title","titleEscape","thematicBreak","sequence","color","step","is","subresult","grandparents","toResult","fn","handlers","passThrough","returnNode","unknownHandler","unknown","augment","ordered","wrap","footnoteOrder","id","href","contents","subtype","referenceType","suffix","alt","xtend","definitions","proto","_","xLinkActuate","xLinkArcRole","xLinkHref","xLinkRole","xLinkShow","xLinkTitle","xLinkType","types","checksLength","mask","check","mark","xmlLang","xmlBase","xmlSpace","caseInsensitiveTransform","xmlnsxlink","xmlnsXLink","caseSensitiveTransform","ariaActiveDescendant","ariaAtomic","ariaAutoComplete","ariaBusy","ariaChecked","ariaColCount","ariaColIndex","ariaColSpan","ariaControls","ariaCurrent","ariaDescribedBy","ariaDetails","ariaDisabled","ariaDropEffect","ariaErrorMessage","ariaExpanded","ariaFlowTo","ariaGrabbed","ariaHasPopup","ariaHidden","ariaInvalid","ariaKeyShortcuts","ariaLabel","ariaLabelledBy","ariaLevel","ariaLive","ariaModal","ariaMultiLine","ariaMultiSelectable","ariaOrientation","ariaOwns","ariaPlaceholder","ariaPosInSet","ariaPressed","ariaReadOnly","ariaRelevant","ariaRequired","ariaRoleDescription","ariaRowCount","ariaRowIndex","ariaRowSpan","ariaSelected","ariaSetSize","ariaSort","ariaValueMax","ariaValueMin","ariaValueNow","ariaValueText","role","style","iterator","declaration","output","declarations","hasIterator","safeOptions","handle","child","results","peek","PositionTrackingPreprocessorMixin","LocationInfoTokenizerMixin","currentAttrLocation","ctLoc","location","orig","methods","_getCurrentLocation","_attachCurrentAttrLocationInfo","modeName","isEol","lineStartPos","droppedBufferSize","prevPos","reduction","find","parseSelector","spaces","commas","defaultTagName","createAdjustMap","selector","isChildren","addProperty","addChild","parsePrimitive","parsePrimitives","isNode","positiveNumber","Number","invalid","noop","Function","g","e","window","refractorC","cpp","bash","envVars","commandAfterHeredoc","insideString","environment","shebang","toBeCopied","shell","basic","lua","haskell","hvariable","hs","jsx","javascript","util","tag","spread","script","stringifyToken","openedTags","notTagNorBrace","openedBraces","plainText","turtle","url","trig","refractorBasic","vbnet","yaml","anchorOrAlias","plainKey","createValuePattern","scalar","datetime","important","yml","_typeof","Symbol","React","vfile","unified","remarkRehype","PropTypes","uriTransformer","childrenToReact","hastChildrenToReact","ReactMarkdown","deprecated","renderers","astPlugins","allowDangerousHtml","escapeHtml","allowNode","allowedTypes","disallowedTypes","includeNodeIndex","deprecation","console","warn","file","processor","use","remarkPlugins","plugins","rehypePlugins","hastNode","runSync","Fragment","listDepth","defaultProps","transformLinkUri","propTypes","allowElement","func","allowedElements","arrayOf","disallowedElements","unwrapDisallowed","bool","oneOfType","sourcePos","rawSourcePos","skipHtml","includeElementIndex","linkTarget","transformImageUri","components","warningIssued","syntax","fromMarkdown","toMarkdown","Parser","blockTokenizers","Compiler","visitors","slugs","transformer","ast","reset","hProperties","slug","hastUtilRaw","nodeToString","refractor","classListItem","getLanguage","highlight","ignoreMissing","message","f","performance","unstable_now","p","Date","q","MessageChannel","w","a","b","setTimeout","clearTimeout","unstable_shouldYield","unstable_forceFrameRate","x","y","z","cancelAnimationFrame","requestAnimationFrame","error","C","D","E","floor","F","G","port2","port1","onmessage","postMessage","H","d","J","K","v","r","sortIndex","L","M","N","O","Q","R","T","startTime","expirationTime","V","priorityLevel","W","unstable_IdlePriority","unstable_ImmediatePriority","unstable_LowPriority","unstable_NormalPriority","unstable_Profiling","unstable_UserBlockingPriority","unstable_cancelCallback","unstable_continueExecution","unstable_getCurrentPriorityLevel","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","unstable_requestPaint","unstable_runWithPriority","unstable_scheduleCallback","delay","unstable_wrapCallback","sourceKeys","arrayLikeToArray","iter","minLen","VMessage","VFile","reason","origin","path","fatal","messages","fail","VMessagePrototype","parts","parseOrigin","stack","ruleId","proc","buffer","order","history","cwd","assertPart","part","sep","assertNonEmpty","assertPath","encoding","get","set","dirname","basename","extname","stem","absolute","allowAboveRoot","lastSlashIndex","lastSegmentLength","lastSlash","dots","lastIndexOf","normalizeString","JSON","ext","firstNonSlashEnd","seenNonSlash","extIndex","unmatchedSlash","startDot","startPart","preDotState","joined","bail","plain","trough","frozen","attachers","transformers","freezeIndex","assertUnfrozen","freeze","addPlugin","addList","addPreset","plugin","entry","doc","assertParser","newable","assertCompiler","assertNode","compile","run","complete","done","assertDone","process","processSync","destination","cb","Promise","executor","reject","pipeline","ctx","asyncName","fns","middleware","params","invoked","then","mdastExtensions","config","configure","transforms","canContainEols","autolink","opener","link","autolinkProtocol","onenterdata","autolinkEmail","atxHeading","heading","blockQuote","characterEscape","characterReference","codeFenced","codeFlow","codeFencedFenceInfo","codeFencedFenceMeta","codeIndented","codeText","codeTextData","codeFlowValue","definitionDestinationString","definitionLabelString","definitionTitleString","emphasis","hardBreakEscape","hardBreak","hardBreakTrailing","htmlFlow","htmlFlowData","htmlText","htmlTextData","image","listItem","listItemValue","onenterlistitemvalue","listOrdered","onenterlistordered","listUnordered","paragraph","reference","onenterreference","referenceString","resourceDestinationString","resourceTitleString","setextHeading","strong","closer","atxHeadingSequence","onexitatxheadingsequence","onexitautolinkemail","onexitautolinkprotocol","characterEscapeValue","onexitdata","characterReferenceMarkerHexadecimal","onexitcharacterreferencemarker","characterReferenceMarkerNumeric","characterReferenceValue","onexitcharacterreferencevalue","onexitcodefenced","codeFencedFence","onexitcodefencedfence","onexitcodefencedfenceinfo","onexitcodefencedfencemeta","onexitcodeindented","onexitcodetext","onexitdefinitiondestinationstring","onexitdefinitionlabelstring","onexitdefinitiontitlestring","onexithardbreak","onexithtmlflow","onexithtmltext","onexitimage","onexitlabel","labelText","onexitlabeltext","lineEnding","onexitlineending","onexitlink","onexitreferencestring","onexitresourcedestinationstring","onexitresourcetitlestring","resource","onexitresource","onexitsetextheading","setextHeadingLineSequence","onexitsetextheadinglinesequence","setextHeadingText","onexitsetextheadingtext","handler","listStack","resume","setData","getData","prepareList","stringifyPosition","tailIndex","tailEvent","firstBlankLineIndex","atMarker","containerBalance","listSpread","_spread","and","parseInt","meta","depth","siblings","fragment","safeFromInt","decode","checked","compiler","postprocess","base","flow","combineExtensions","createTokenizer","initializer","contentStart","contentInitial","lineStart","inspectResult","childFlow","childToken","continued","inspectConstruct","subcontinued","inspectStart","containerState","continuation","inspectContinue","inspectLess","currentConstruct","concrete","flowContinue","inspectDone","interrupt","interruptible","containerConstruct","inspectFlowEnd","_closeFlow","lazy","lazyFlowConstruct","inspectLazy","flowEnd","documentContinue","documentContinued","flowStart","containerContinue","exitContainers","continueFlow","documentAfterPeek","disable","initial","flowInitial","afterConstruct","prefixSize","subtokenize","contentEnd","continuationConstruct","contentContinue","prefixed","serializeChunks","sliceChunks","initialize","columnStart","resolveAllConstructs","accountForPotentialSkip","fields","constructFactory","addResult","onsuccessfulcheck","main","chunkIndex","go","restore","onreturn","bogusState","listOfConstructs","constructIndex","handleListOfConstructs","handleConstruct","startPoint","startPrevious","startCurrentConstruct","startEventsIndex","startStack","store","atTab","view","startIndex","startBufferIndex","endIndex","endBufferIndex","text$1","attention","headingAtx","labelStartImage","labelStartLink","setextUnderline","42","43","45","48","49","50","51","52","53","54","55","56","57","62","91","32","35","60","61","95","96","126","38","92","33","93","classifyCharacter","movePoint","_open","_close","openingSequence","closingSequence","nextEvents","asciiAtext","schemeOrEmailAtext","emailAtext","schemeInsideOrEmailAtext","urlInside","emailAtSignOrDot","emailLabel","emailValue","asciiPunctuation","decodeEntity","asciiHexDigit","_interopDefaultLegacy","default","decodeEntity__default","numeric","closingFenceConstruct","closingSequenceStart","sizeOpen","closingSequenceEnd","initialPrefix","sequenceOpen","infoOpen","openAfter","infoAfter","indentedContentConstruct","afterPrefix","gap","tailExitIndex","headEnterIndex","labelAfter","titleConstruct","fenceOpenInside","headingBreak","htmlBlockNames","htmlRawNames","kind","startTag","declarationStart","tagCloseStart","continuationDeclarationInside","commentOpenInside","cdataOpenInside","basicSelfClosing","completeAttributeNameBefore","completeClosingTagAfter","completeEnd","completeAttributeName","completeAttributeNameAfter","completeAttributeValueBefore","completeAttributeValueQuoted","completeAttributeValueUnquoted","completeAttributeValueQuotedAfter","completeAfter","continuationCommentInside","continuationRawTagOpen","continuationClose","continuationCharacterDataInside","continuationAtLineEnding","nextBlankConstruct","htmlContinueStart","continuationRawEndTag","declarationOpen","instruction","tagOpen","commentOpen","cdataOpen","commentStart","commentStartDash","commentClose","atLineEnding","cdata","cdataClose","cdataEnd","instructionClose","tagClose","tagCloseBetween","tagOpenBetween","tagOpenAttributeName","tagOpenAttributeNameAfter","tagOpenAttributeValueBefore","tagOpenAttributeValueQuoted","tagOpenAttributeValueUnquoted","tagOpenAttributeValueQuotedAfter","initialSize","onBlank","listItemPrefixWhitespaceConstruct","endOfPrefix","otherPrefix","initialBlankLine","furtherBlankLines","notInCurrentItem","indentConstruct","search","atCarriageReturn","endPosition","exec","ceil","mdast2hast","bridge","mutate","allowDangerousHTML","deprecationWarningIssued","dangerous","footnoteById","onfootnotedefinition","hName","hChildren","generated","foot","footer","getter","normalise","getterFactory","ondefinition","gather","def","backReference","listItems","ignore","blockquote","break","delete","footnoteReference","footnote","imageReference","inlineCode","linkReference","root","table","toml","footnoteDefinition","revert","listItemLoose","listLoose","wrapped","disabled","row","out","cell","rows","align","alignLength","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","resetWarningCache","shim","propName","componentName","propFullName","secret","getShim","isRequired","ReactPropTypes","element","elementType","instanceOf","objectOf","oneOf","shape","exact","checkPropTypes","acceptcharset","classname","htmlfor","httpequiv","abbr","accept","acceptCharset","accessKey","action","allow","allowFullScreen","allowPaymentRequest","allowUserMedia","as","async","autoCapitalize","autoComplete","autoFocus","autoPlay","capture","charSet","cite","cols","colSpan","contentEditable","controls","controlsList","coords","crossOrigin","dateTime","decoding","defer","dir","dirName","download","draggable","encType","enterKeyHint","form","formAction","formEncType","formMethod","formNoValidate","formTarget","headers","height","hidden","high","hrefLang","htmlFor","httpEquiv","imageSizes","imageSrcSet","inputMode","integrity","isMap","itemId","itemProp","itemRef","itemScope","itemType","loading","loop","low","manifest","maxLength","method","min","minLength","multiple","muted","nonce","noModule","noValidate","onAbort","onAfterPrint","onAuxClick","onBeforePrint","onBeforeUnload","onBlur","onCancel","onCanPlay","onCanPlayThrough","onChange","onClick","onClose","onContextMenu","onCopy","onCueChange","onCut","onDblClick","onDrag","onDragEnd","onDragEnter","onDragExit","onDragLeave","onDragOver","onDragStart","onDrop","onDurationChange","onEmptied","onEnded","onError","onFocus","onFormData","onHashChange","onInput","onInvalid","onKeyDown","onKeyPress","onKeyUp","onLanguageChange","onLoad","onLoadedData","onLoadedMetadata","onLoadEnd","onLoadStart","onMessage","onMessageError","onMouseDown","onMouseEnter","onMouseLeave","onMouseMove","onMouseOut","onMouseOver","onMouseUp","onOffline","onOnline","onPageHide","onPageShow","onPaste","onPause","onPlay","onPlaying","onPopState","onProgress","onRateChange","onRejectionHandled","onReset","onResize","onScroll","onSecurityPolicyViolation","onSeeked","onSeeking","onSelect","onSlotChange","onStalled","onStorage","onSubmit","onSuspend","onTimeUpdate","onToggle","onUnhandledRejection","onUnload","onVolumeChange","onWaiting","onWheel","optimum","ping","playsInline","poster","preload","readOnly","referrerPolicy","rel","required","reversed","rowSpan","sandbox","scope","scoped","seamless","selected","sizes","slot","span","spellCheck","srcDoc","srcLang","srcSet","tabIndex","translate","typeMustMatch","useMap","width","aLink","archive","axis","background","bgColor","border","borderColor","bottomMargin","cellPadding","cellSpacing","charOff","classId","clear","codeBase","codeType","compact","declare","face","frame","frameBorder","hSpace","leftMargin","longDesc","lowSrc","marginHeight","marginWidth","noResize","noHref","noShade","noWrap","profile","prompt","rev","rightMargin","rules","scrolling","standby","summary","topMargin","valueType","version","vAlign","vLink","vSpace","allowTransparency","autoCorrect","autoSave","disablePictureInPicture","disableRemotePlayback","security","unselectable","onelement","includes","protocols","uri","first","colon","protocol","ReactIs","hastToReact","toReact","tableElements","Set","childIndex","has","parentSchema","component","isValidElementType","inline","level","getInputElement","getElementsBeforeCount","textAlign","isHeader","sourcePosition","siblingCount","count","styleReplacer","parseStyle","$1","for","$$typeof","ContextConsumer","ContextProvider","Element","ForwardRef","Lazy","Memo","Portal","Profiler","StrictMode","Suspense","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isElement","isForwardRef","isFragment","isLazy","isMemo","isPortal","isProfiler","isStrictMode","isSuspense","typeOf","accentHeight","alignmentBaseline","arabicForm","baselineShift","capHeight","clipPath","clipRule","colorInterpolation","colorInterpolationFilters","colorProfile","colorRendering","dataType","dominantBaseline","enableBackground","fillOpacity","fillRule","floodColor","floodOpacity","fontFamily","fontSize","fontSizeAdjust","fontStretch","fontStyle","fontVariant","fontWeight","glyphName","glyphOrientationHorizontal","glyphOrientationVertical","horizAdvX","horizOriginX","horizOriginY","imageRendering","letterSpacing","lightingColor","markerEnd","markerMid","markerStart","navDown","navDownLeft","navDownRight","navLeft","navNext","navPrev","navRight","navUp","navUpLeft","navUpRight","onActivate","onBegin","onEnd","onFocusIn","onFocusOut","onMouseWheel","onRepeat","onShow","onZoom","overlinePosition","overlineThickness","paintOrder","panose1","pointerEvents","renderingIntent","shapeRendering","stopColor","stopOpacity","strikethroughPosition","strikethroughThickness","strokeDashArray","strokeDashOffset","strokeLineCap","strokeLineJoin","strokeMiterLimit","strokeOpacity","strokeWidth","textAnchor","textDecoration","textRendering","underlinePosition","underlineThickness","unicodeBidi","unicodeRange","unitsPerEm","vAlphabetic","vHanging","vIdeographic","vMathematical","vectorEffect","vertAdvY","vertOriginX","vertOriginY","wordSpacing","writingMode","xHeight","playbackOrder","timelineBegin","about","accumulate","additive","alphabetic","amplitude","ascent","attributeName","attributeType","azimuth","bandwidth","baseFrequency","baseProfile","bbox","begin","bias","by","calcMode","clip","clipPathUnits","contentScriptType","contentStyleType","cursor","cx","cy","defaultAction","descent","diffuseConstant","direction","display","dur","divisor","dx","dy","edgeMode","editable","elevation","exponent","externalResourcesRequired","fill","filterRes","filterUnits","focusable","focusHighlight","format","fr","fx","fy","g1","g2","glyphRef","gradientTransform","gradientUnits","hanging","hatchContentUnits","hatchUnits","ideographic","initialVisibility","in","in2","intercept","k1","k2","k3","k4","kernelMatrix","kernelUnitLength","keyPoints","keySplines","keyTimes","kerning","lengthAdjust","limitingConeAngle","local","markerHeight","markerUnits","markerWidth","maskContentUnits","maskUnits","mathematical","mediaCharacterEncoding","mediaContentEncodings","mediaSize","mediaTime","mode","numOctaves","observer","opacity","orient","orientation","overflow","overlay","pathLength","patternContentUnits","patternTransform","patternUnits","phase","pitch","points","pointsAtX","pointsAtY","pointsAtZ","preserveAlpha","preserveAspectRatio","primitiveUnits","propagate","radius","refX","refY","repeatCount","repeatDur","requiredExtensions","requiredFeatures","requiredFonts","requiredFormats","restart","rotate","rx","ry","scale","seed","side","slope","snapshotTime","specularConstant","specularExponent","spreadMethod","spacing","stdDeviation","stemh","stemv","stitchTiles","stroke","surfaceScale","syncBehavior","syncBehaviorDefault","syncMaster","syncTolerance","syncToleranceDefault","systemLanguage","tableValues","targetX","targetY","textLength","transformBehavior","u1","u2","viewBox","viewTarget","visibility","widths","x1","x2","xChannelSelector","y1","y2","yChannelSelector","zoomAndPan","COMMENT_REGEX","NEWLINE_REGEX","WHITESPACE_REGEX","PROPERTY_REGEX","COLON_REGEX","VALUE_REGEX","SEMICOLON_REGEX","TRIM_REGEX","EMPTY_STRING","lineno","updatePosition","lines","Position","whitespace","errorsList","msg","filename","silent","comments","ret","decl","decls","combine","strikethrough","tasklist","www","w2","w3","dot","domain","hasUnderscoreInLastSegment","hasUnderscoreInLastLastSegment","namedCharacterReference","punctuationContinuation","inPath","continuedPunctuation","parenAtPathEnd","pathEnd","trailingPunctuation","wwwAutolink","previousWww","httpAutolink","previousHttp","t1","t2","slash1","slash2","emailAutolink","hasDot","gfmAtext","previousEmail","atext","dotContinuation","dashOrUnderscoreContinuation","afterDashOrUnderscore","single","singleTilde","removeRemainingSequences","seenDelimiter","hasDash","tableHeaderCount","_align","cellDividerHead","inCellContentHead","cellBreakHead","setextUnderlineMini","createSpace","rowStartDelimiter","atRowEndHead","inWhitespaceHead","inCellContentEscapeHead","atDelimiterRowBreak","rowEndDelimiter","inWhitespaceDelimiter","inFillerDelimiter","afterLeftAlignment","afterRightAlignment","tableClose","nextPrefixedOrBlank","tableContinue","bodyStart","rowStartBody","cellDividerBody","inCellContentBody","cellBreakBody","tableBodyClose","tableBodyContinue","atRowEndBody","inWhitespaceBody","inCellContentEscapeBody","inHead","inDelimiterRow","inRow","cellStart","spaceFactory","tasklistCheck","spaceThenNonSpace","autolinkLiteral","taskListItem","ccount","findAndReplace","enterLiteralAutolinkValue","findUrl","isCorrectDomain","closingParenIndex","openingParens","closingParens","trail","splitUrl","findEmail","email","literalAutolink","literalAutolinkEmail","literalAutolinkHttp","literalAutolinkWww","handlerFactory","pairs","pair","subhandler","global","toExpression","toFunction","toPairs","escape","ignored","grandparent","enterCell","tableData","tableHeader","tableRow","exitCheck","taskListCheckValueChecked","taskListCheckValueUnchecked","firstParaghraph","unsafe","inConstruct","notInConstruct","phrasing","handleDelete","defaultInlineCode","markdownTable","padding","tableCellPadding","alignDelimiters","tablePipeAlign","stringLength","around","serializeData","subexit","handleTableRowAsData","handleTableAsData","tableCell","handleTableCell","matrix","patternCompile","_compiled","repeat","cells","columnIndex","columnLength","largest","delimiterStart","delimiterEnd","alignments","defaultStringLength","rowIndex","rowLength","cellMatrix","sizeMatrix","longestCellByColumn","mostCellsPerRow","toAlignment","trailingWhitespace","defaultListItem","bullet","checkBullet","listItemIndent","checkListItemIndent","incrementListMarker","indentLines","blank","eol","emoji","BananaSlug","specials","slugger","maintainCase","originalSlug","occurrences","fromParse5","toParse5","voids","ns","zwitch","stitches","locationTracker","parseOptions","resetTokenizer","_processToken","createParse5Location","endTag","endTagToken","characterToken","doctype","p5","doctypeToken","raw","lastGapPos","lastCharPos","gapStack","skipNextNewLine","lastChunkWritten","_runParsingLoop","stitch","documentMode","treeAdapter","createDocument","_bootstrap","nodeName","namespaceURI","childNodes","mock","_pushTmplInsertionMode","inTemplateMode","_initTokenizerForFragmentParsing","_insertFakeRootElement","_resetInsertionMode","_findFormInFragmentContext","_adoptNodes","sourceCodeLocationInfo","scriptingEnabled","OpenElementStack","FormattingElementList","LocationInfoParserMixin","ErrorReportingParserMixin","defaultTreeAdapter","mergeOptions","foreignContent","DEFAULT_OPTIONS","HIDDEN_INPUT_TYPE","INITIAL_MODE","BEFORE_HTML_MODE","BEFORE_HEAD_MODE","IN_HEAD_MODE","IN_HEAD_NO_SCRIPT_MODE","AFTER_HEAD_MODE","IN_BODY_MODE","TEXT_MODE","IN_TABLE_MODE","IN_TABLE_TEXT_MODE","IN_CAPTION_MODE","IN_COLUMN_GROUP_MODE","IN_TABLE_BODY_MODE","IN_ROW_MODE","IN_CELL_MODE","IN_SELECT_MODE","IN_SELECT_IN_TABLE_MODE","IN_TEMPLATE_MODE","AFTER_BODY_MODE","IN_FRAMESET_MODE","AFTER_FRAMESET_MODE","AFTER_AFTER_BODY_MODE","AFTER_AFTER_FRAMESET_MODE","INSERTION_MODE_RESET_MAP","TEMPLATE_INSERTION_MODE_SWITCH_MAP","TOKEN_HANDLERS","tokenInInitialMode","ignoreToken","appendComment","_setDocumentType","getDocumentMode","isConforming","setDocumentMode","insertionMode","tokenBeforeHtml","_insertElement","tn","tokenBeforeHead","startTagInBody","headElement","openElements","tokenInHead","insertCharacters","startTagInHead","endTagInHead","tokenInHeadNoScript","tokenAfterHead","framesetOk","characterInBody","whitespaceCharacterInBody","endTagInBody","eofInBody","pendingScript","originalInsertionMode","characterInTable","startTagInTable","endTagInTable","pendingCharacterTokens","hasNonWhitespacePendingCharacterToken","tokenInTableText","hasInTableScope","generateImpliedEndTags","popUntilTagNamePopped","activeFormattingElements","clearToLastMarker","tokenInColumnGroup","_appendElement","currentTagName","clearBackToTableBodyContext","_insertFakeElement","hasTableBodyContextInTableScope","clearBackToTableRowContext","insertMarker","_closeTableCell","startTagInSelect","endTagInSelect","newInsertionMode","_popTmplInsertionMode","eofInTemplate","tokenAfterBody","_appendCommentNode","fragmentContext","stopParsing","isRootHtmlElementCurrent","tokenAfterAfterBody","appendCommentToDocument","documentMock","getTagName","rootElement","getFirstChild","createDocumentFragment","stopped","formElement","tmplInsertionModeStack","tmplInsertionModeStackTop","currentTmplInsertionMode","fosterParentingEnabled","scriptHandler","_setupTokenizerCDATAMode","getNextToken","_processInputToken","writeCallback","_getAdjustedCurrentElement","getNamespaceURI","_isIntegrationPoint","nextTokenizerState","stackTop","getParentNode","setDocumentType","_shouldFosterParentOnInsertion","_fosterParentElement","currentTmplContent","appendChild","_attachElementToTree","tmpl","setTemplateContent","commentNode","createCommentNode","_fosterParentText","insertText","donor","recipient","detachNode","isCharacterToken","_insertCharacters","characterInForeignContent","nullCharacterInForeignContent","causesExit","currentNs","adjustTokenMathMLAttrs","adjustTokenSVGTagName","adjustTokenSVGAttrs","adjustTokenXMLAttrs","startTagInForeignContent","popUntilElementPopped","endTagInForeignContent","_shouldProcessTokenInForeignContent","_processTokenInForeignContent","foreignNS","getAttrList","isIntegrationPoint","listLength","unopenIdx","entries","MARKER_ENTRY","contains","popUntilTableCellPopped","generateImpliedEndTagsWithExclusion","last","_resetInsertionModeForSelect","selectIdx","ancestor","_isElementCausesFosterParenting","beforeElement","openElement","getTemplateContent","_findFosterParentingLocation","insertTextBefore","aaObtainFormattingElementEntry","formattingElementEntry","getElementEntryInScopeWithTagName","hasInScope","removeEntry","genericEndTagInBody","aaObtainFurthestBlock","furthestBlock","_isSpecialElement","aaInnerLoop","formattingElement","lastElement","nextElement","getCommonAncestor","elementEntry","getElementEntry","counterOverflow","aaRecreateElementFromEntry","bookmark","newElement","aaInsertLastNodeInCommonAncestor","commonAncestor","aaReplaceFormattingElement","insertElementAfterBookmark","insertAfter","callAdoptionAgency","beforeToken","_switchToTextParsing","_insertTemplate","tmplCount","generateImpliedEndTagsThoroughly","errCode","_reconstructActiveFormattingElements","addressStartTagInBody","hasInButtonScope","_closePElement","preStartTagInBody","bStartTagInBody","pushElement","appletStartTagInBody","areaStartTagInBody","paramStartTagInBody","noembedStartTagInBody","optgroupStartTagInBody","rbStartTagInBody","genericStartTagInBody","activeElementEntry","aStartTagInBody","numberedHeaderStartTagInBody","elementTn","closeTn","listItemStartTagInBody","hrStartTagInBody","rtStartTagInBody","xmpStartTagInBody","svgStartTagInBody","adoptAttributes","htmlStartTagInBody","bodyElement","tryPeekProperlyNestedBodyElement","bodyStartTagInBody","inTemplate","formStartTagInBody","nobrStartTagInBody","mathStartTagInBody","menuStartTagInBody","tableStartTagInBody","inputType","inputStartTagInBody","imageStartTagInBody","buttonStartTagInBody","iframeStartTagInBody","selectStartTagInBody","popAllUpToHtmlElement","framesetStartTagInBody","textareaStartTagInBody","plaintextStartTagInBody","addressEndTagInBody","appletEndTagInBody","pEndTagInBody","hasInListItemScope","liEndTagInBody","ddEndTagInBody","hasNumberedHeaderInScope","popUntilNumberedHeaderPopped","numberedHeaderEndTagInBody","brEndTagInBody","bodyEndTagInBody","htmlEndTagInBody","formEndTagInBody","curTn","tokenInTable","clearBackToTableContext","tdStartTagInTable","colStartTagInTable","formStartTagInTable","tableStartTagInTable","tbodyStartTagInTable","inputStartTagInTable","captionStartTagInTable","colgroupStartTagInTable","savedFosterParentingState","_processTokenInBodyMode","hasInSelectScope","prevOpenElement","prevOpenElementTn","bufferWaterline","_addGap","_processSurrogate","_checkForProblematicCharacters","Uint16Array","isImpliedEndTagRequired","isImpliedEndTagRequiredThoroughly","isScopingElement","idx","_isInTemplate","_updateCurrentElement","oldElement","_indexOf","referenceElement","insertionIdx","poppedElement","elementIdx","exclusionTagName","candidates","neAttrsLength","neTagName","neNamespaceURI","elementAttrs","_getNoahArkConditionCandidates","cLength","neAttrs","neAttrsMap","neAttr","cAttr","NOAH_ARK_CAPACITY","_ensureNoahArkCondition","ELEMENT_ENTRY","bookmarkIdx","LocationInfoOpenElementStackMixin","lastStartTagToken","lastFosterParentingLocation","loc","setNodeSourceCodeLocation","closingToken","getNodeSourceCodeLocation","endLoc","updateNodeSourceCodeLocation","tokenizerMixin","onItemPop","_setEndLocation","documentChildren","getChildNodes","cnLength","isDocumentTypeNode","_setStartLocation","tmplContent","hasFosterParent","textNodeIdx","textNode","_setPrototypeOf","sham","Proxy","assertThisInitialized","ReferenceError","ErrorReportingTokenizerMixin","locBeforeToken","ErrorReportingPreprocessorMixin","preprocessorMixin","lastErrOffset","superPropBase","_get","receiver","desc","parentNode","createTextNode","newNode","referenceNode","templateElement","contentElement","doctypeNode","prevNode","recipientAttrsMap","getTextNodeContent","getCommentNodeContent","getDocumentTypeNodeName","getDocumentTypeNodePublicId","getDocumentTypeNodeSystemId","isTextNode","isCommentNode","isElementNode","sourceCodeLocation","endLocation","defaults","reduce","merged","optObj","VALID_DOCTYPE_NAME","QUIRKS_MODE_PUBLIC_ID_PREFIXES","QUIRKS_MODE_NO_SYSTEM_ID_PUBLIC_ID_PREFIXES","QUIRKS_MODE_PUBLIC_IDS","LIMITED_QUIRKS_PUBLIC_ID_PREFIXES","LIMITED_QUIRKS_WITH_SYSTEM_ID_PUBLIC_ID_PREFIXES","enquoteDoctypeId","quote","hasPrefix","prefixes","serializeContent","MIME_TYPES","SVG_ATTRS_ADJUSTMENT_MAP","attributename","attributetype","basefrequency","baseprofile","calcmode","clippathunits","diffuseconstant","edgemode","filterunits","glyphref","gradienttransform","gradientunits","kernelmatrix","kernelunitlength","keypoints","keysplines","keytimes","lengthadjust","limitingconeangle","markerheight","markerunits","markerwidth","maskcontentunits","maskunits","numoctaves","pathlength","patterncontentunits","patterntransform","patternunits","pointsatx","pointsaty","pointsatz","preservealpha","preserveaspectratio","primitiveunits","refx","refy","repeatcount","repeatdur","requiredextensions","requiredfeatures","specularconstant","specularexponent","spreadmethod","startoffset","stddeviation","stitchtiles","surfacescale","systemlanguage","tablevalues","targetx","targety","textlength","viewbox","viewtarget","xchannelselector","ychannelselector","zoomandpan","XML_ATTRS_ADJUSTMENT_MAP","SVG_TAG_NAMES_ADJUSTMENT_MAP","altglyph","altglyphdef","altglyphitem","animatecolor","animatemotion","animatetransform","clippath","feblend","fecolormatrix","fecomponenttransfer","fecomposite","feconvolvematrix","fediffuselighting","fedisplacementmap","fedistantlight","feflood","fefunca","fefuncb","fefuncg","fefuncr","fegaussianblur","feimage","femerge","femergenode","femorphology","feoffset","fepointlight","fespecularlighting","fespotlight","fetile","feturbulence","foreignobject","lineargradient","radialgradient","textpath","EXITS_FOREIGN_CONTENT","startTagToken","adjustedAttrName","adjustedAttrEntry","adjustedTagName","isHtmlIntegrationPoint","isMathMLTextIntegrationPoint","vfileLocation","verbose","public","system","quirksMode","toPoint","opening","closing","subvalue","indices","offsetToPoint","toPosition","toOffset","toH","ignoredSpaces","patch","addAttribute","vdom","subprop","vue","hyperscript","react","cleanup","_isVue","vd","allowArrayLike","it","_e","normalCompletion","didErr","_e2","globalThis","manual","disableWorkerMessageHandler","css","js","Refractor","refract","sup","registered","listLanguages","stringifyAll","classes","legacy","decimal","hexadecimal","alphanumerical","option","indent","entityCharacters","namedEntity","terminated","following","warning","prev","diff","additional","nonTerminated","handleText","handleReference","handleWarning","textContext","referenceContext","warningContext","queue","parseError","hexa","deci","prohibited","bases","disallowed","flush","alphabetical","_self","uniqueId","objId","deepClone","visited","parentElement","currentScript","scripts","getElementsByTagName","isActive","defaultActivation","no","classList","redef","insert","newToken","old","DFS","propertyType","highlightAll","highlightAllUnder","container","elements","querySelectorAll","highlightElement","insertHighlightedCode","highlightedCode","Worker","worker","evt","immediateClose","tokenList","LinkedList","addAfter","matchGrammar","toArray","callbacks","matchedStr","matchPattern","lookbehindLength","startNode","startPos","rematch","patterns","cause","patternObj","currentNode","reach","removeCount","matchStr","removeFrom","removeRange","addEventListener","highlightAutomaticallyCallback","hasAttribute","readyState","WorkerGlobalScope","prolog","includedCdataInside","mathml","ssml","atom","rss","atrule","rule","addInlined","abap","abnf","coreRules","terminal","repetition","actionscript","ada","agda","al","antlr4","command","g4","apacheconf","refractorSql","apex","insertClassName","classNameInside","trigger","apl","statement","assignment","dfn","applescript","class","aql","refractorCpp","arduino","arff","asciidoc","quoted","interpreted","specifiers","hr","admonition","callout","italic","bold","copyFromAsciiDoc","adoc","asm6502","opcode","hexnumber","binarynumber","decimalnumber","refractorCsharp","aspnet","autohotkey","autoit","batch","bbcode","shortcode","birb","metadata","bison","bnf","rbnf","brainfuck","pointer","decrement","branching","brightscript","bro","bsl","oscript","cil","clojure","cmake","inserted","coffeescript","coffee","concurnas","langext","conc","refractorRuby","crystal","expansion","csp","safe","cssExtras","selectorInside","combinator","unit","hexcode","cypher","relationship","dart","dataweave","date","dax","measure","dhall","hash","coord","PREFIXES","unchanged","django","jinja2","dnsZoneFile","docker","dockerfile","ebnf","special","editorconfig","section","eiffel","ejs","eta","elixir","argument","elm","erb","erlang","refractorLua","etlua","excelFormula","sheet","factor","comment_inside","string_inside","regexp","combinators","arrToWordsRegExp","builtins","firestoreSecurityRules","fortran","fsharp","ftl","FTL_EXPR","gcode","checksum","gdscript","gedcom","gherkin","pystring","feature","scenario","outline","td","th","git","deleted","glsl","gml","gamemakerlanguage","graphql","description","markdown","groovy","haml","filters","all_filters","handlebars","brackets","haxe","reification","hcl","heredoc","hlsl","hpkp","hsts","http","langs","httpLanguages","suffixTypes","getSuffixPattern","ichigojam","icon","iecst","gitignore","hgignore","npmignore","inform7","substitution","verb","ini","io","adverb","conjunction","refractorJava","refractorJavadoclike","javadoc","codeLinePattern","memberReference","javastacktrace","exceptions","jolie","aggregates","redirects","jq","stringInterpolation","jsExtras","withId","imports","arrow","dom","maybeClassNameTokens","jsTemplates","templateString","templateLiteralPattern","interpolationObject","interpolationPunctuationObject","interpolationPattern","createTemplate","counter","tokenizeWithHooks","tokenizeInterpolationExpression","tempGrammar","args","tokenizeEmbedded","_tokens","placeholderCounter","placeholderMap","embeddedTokens","interpolationExpression","placeholders","afterTokens","supportedLanguages","tsx","stringContent","findTemplateStrings","embedded","refractorTypescript","jsdoc","parameterPrefix","example","refractorJson","json5","jsonp","jsstacktrace","julia","keyman","kotlin","kt","kts","latex","funcPattern","insideEqu","equation","headline","tex","refractorPhp","latte","ld","rd","markupLatte","less","refractorScheme","lilypond","schemeExpression","ly","liquid","lisp","simple_form","primitive","par","endpar","interactive","defvar","defun","lambda","car","arg","varform","forms","arglist","sublist","elisp","emacs","livescript","llvm","lolcode","makefile","inner","createInline","tableLine","strike","codeLang","codeBlock","cls","autoloader","valueOf","random","loadLanguages","ele","getElementById","md","matlab","mel","flag","mizar","mongodb","operators","operatorsSource","monkey","moonscript","moon","n1ql","n4js","n4jsd","nand2tetrisHdl","naniscript","expressionDef","getTextContent","define","nani","bracket","bracketsIndex","isBracketsBalanced","nasm","neon","literal","nginx","nim","nix","antiquotation","nsis","objectivec","objc","ocaml","variant","opencl","oz","parigp","pascal","objectpascal","pascaligo","braces","accum","pcaxis","tlist","px","peoplecode","pcode","perl","filehandle","vstring","phpExtras","phpdoc","plsql","powerquery","pq","mscript","powershell","stringInside","processing","promql","vectorMatching","protobuf","builtinTypes","pug","each","branch","filter_pattern","puppet","datatype","pure","inlineLanguageRe","purebasic","asm","pbfasm","refractorHaskell","purescript","purs","python","decorator","py","qml","jsString","jsComment","jsExpr","qore","ellipsis","racket","rkt","specialEscape","rangeChar","groupName","charset","charclass","backreference","anchor","quantifier","alternation","renpy","rpy","rip","time","roboconf","optional","wildcard","robotframework","createSection","extendecInside","docTag","testNameLike","testPropertyLike","documentation","variables","tasks","robot","rust","multilineComment","sas","stringPattern","numericConstant","macroVariable","macroKeyword","equals","altformat","globalStatements","submitStatement","actionSets","casActions","datalines","sass","scala","scss","refractorBash","shellSession","strings","user","smali","smalltalk","smarty","smartyLitteralMode","sml","word","smlnj","solidity","sol","solutionFile","guid","soy","numberPattern","soyLitteralMode","refractorTurtle","sparql","rq","splunkSpl","sqf","stan","constraint","stylus","swift","refractorT4Templating","t4Cs","t4","createT4","refractorVbnet","t4Vb","refractorYaml","tap","pass","pragma","bailout","plan","subtest","yamlish","tcl","textile","modifierRegex","parenthesesRegex","withModifier","modifierTokens","phrase","modifier","acronym","phraseInside","nestedPatterns","phraseInlineInside","phraseTableInside","insertKey","refractorJsx","tt2","twig","other","typoscript","tsconfig","unrealscript","category","uc","uscript","vala","velocity","unparsed","verilog","vhdl","vim","visualBasic","vb","vba","warpscript","wasm","wiki","nowiki","xeora","xeoracube","xmlDoc","insertDocComment","docComment","slashDocComment","tickDocComment","xojo","xquery","yang","zig","IDENTIFIER","ALIGN","item","_assertThisInitialized","_possibleConstructorReturn","_createSuper","fixed","bottom","zIndex","otherProps","styl","top","transformOrigin","_defineProperty","Container","Component","Base","getUrl","platform","Issue","repo","Size","Activity","total","baseData","interval","Version","typePath","License","Analysis","query","Social","Github","Issues","Downloads","Coverages","Codacy","projectId","Coverage","packageName","dependency","dependencyScope","registryUri","Npm","_objectSpread2","behaviors","prepend","append","behavior","attacher","linkProperties","behaviour","inject","toProps","toChildren","grouping","toGrouping","deepAssign","toNode","rehypeRewriteHandle","warpperElement","mdp","useImperativeHandle","_objectWithoutProperties","keyCodeData","keycode","MacKeyBoard","prefixCls","keyCode","data-key","Footer","year","isff","navigator","userAgent","addEvent","attachEvent","getMods","mods","getKeys","_keyMap","backspace","tab","return","esc","up","down","del","ins","home","pageup","pagedown","capslock","num_0","num_1","num_2","num_3","num_4","num_5","num_6","num_7","num_8","num_9","num_multiply","num_add","num_enter","num_subtract","num_decimal","num_divide","'","_modifier","ctrl","control","cmd","modifierMap","16","18","17","shiftKey","ctrlKey","altKey","metaKey","_mods","_handlers","_downKeys","_scope","elementHasBindEvent","setScope","getScope","eachUnbind","_ref","_ref$splitKey","splitKey","originKey","unbindKeys","lastKey","record","a1","a2","arr1","isIndex","compareArray","eventHandler","modifiersMatch","shortcut","preventDefault","returnValue","stopPropagation","cancelBubble","dispatch","asterisk","which","charCode","hotkeys","keyName","keyNum","getModifierState","keydown","keyup","_i","keyShortcut","_downKeysCurrent","sort","isElementBind","clearModifier","_api","deleteScope","newScope","getPressedKeyCodes","isPressed","srcElement","isContentEditable","unbind","keysInfo","_len","_key","_hotkeys","noConflict","App","keyStr","onKeyUpEvent","bind","pkeys","pkeysStr","keysStr","evn","setState","removeEventListener","DocumentStrSource","DocumentStr","styles","openVersionWebsite","pkg","keyCodeInfo","header","github","onKeyBoardMouseDown","onKeyBoardMouseUp","maxWidth","margin","ReactDOM","render"],"mappings":"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IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,IAAI,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,GAAG,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,EAAE,KAAK,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,EAAE,KAAK,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,EAAE,KAAK,GAAG,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,IAAI,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,GAAG,EAAE,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,GAAG,EAAE,IAAI,GAAG,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,GAAG,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,GAAG,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,GAAG,GAAG,EAAE,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,KAAK,EAAE,GAAG,IAAI,IAAI,GAAG,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,GAAG,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,GAAG,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,GAAG,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,KAAK,KAAK,KAAK,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,GAAG,EAAE,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,KAAK,EAAE,GAAG,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,IAAI,GAAG,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,KAAK,IAAK,KAAK,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,GAAG,EAAE,IAAI,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,GAAG,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,GAAG,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,GAAG,GAAG,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,EAAE,MAAM,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,KAAK,EAAE,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,GAAG,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,GAAG,GAAG,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,GAAG,GAAG,GAAG,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,GAAG,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,KAAK,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,GAAG,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,GAAG,GAAG,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,MAAM,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,KAAK,EAAE,GAAG,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,GAAG,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,EAAE,GAAG,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,GAAG,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,GAAG,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,KAAK,KAAK,KAAK,EAAE,GAAG,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,KAAK,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,KAAK,MAAM,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,GAAG,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,GAAG,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,MAAM,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,MAAM,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,GAAG,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,KAAK,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,GAAG,EAAE,KAAK,IAAI,GAAG,GAAG,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,GAAG,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,KAAK,KAAK,KAAK,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,IAAI,GAAG,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,EAAE,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,GAAG,IAAI,GAAG,EAAE,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,GAAG,EAAE,MAAM,MAAM,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,EAAE,MAAM,GAAG,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,GAAG,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,GAAG,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,GAAG,EAAE,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,IAAM,MAAM,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,GAAG,MAAM,MAAM,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,GAAG,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,MAAM,GAAG,GAAG,EAAE,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,GAAG,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,MAAM,GAAG,GAAG,EAAE,KAAK,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,GAAG,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,KAAK,GAAG,EAAE,MAAM,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,GAAG,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,GAAG,EAAE,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,MAAM,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,IAAI,GAAG,EAAE,GAAG,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,GAAG,GAAG,EAAE,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,MAAM,GAAG,GAAG,EAAE,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,MAAM,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,MAAM,GAAG,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,GAAG,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,EAAE,GAAG,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,GAAG,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,MAAM,GAAG,GAAG,EAAE,KAAK,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,GAAG,EAAE,MAAM,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,KAAM,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,KAAK,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,GAAG,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,MAAM,MAAM,MAAM,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,GAAG,MAAM,MAAM,MAAM,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,EAAE,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,KAAK,KAAK,GAAG,EAAE,GAAG,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,KAAK,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,GAAG,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,GAAG,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,GAAG,EAAE,IAAI,GAAG,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,GAAG,IAAI,IAAI,GAAG,EAAE,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,GAAG,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,KAAK,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,EAAE,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,GAAG,EAAE,GAAG,MAAM,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,IAAI,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,IAAI,GAAG,EAAE,GAAG,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,GAAG,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,EAAE,GAAG,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,IAAI,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,EAAE,MAAM,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,EAAE,MAAM,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,KAAK,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,GAAG,GAAG,EAAE,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,GAAG,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,MAAM,MAAM,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,GAAG,GAAG,EAAE,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,GAAG,EAAE,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,MAAM,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,MAAM,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,EAAE,KAAK,KAAK,GAAG,EAAE,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,EAAE,MAAM,MAAM,GAAG,EAAE,KAAK,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,EAAE,MAAM,MAAM,GAAG,EAAE,KAAK,MAAM,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,GAAG,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,GAAG,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,Q,+CCFrvvE5nF,EAAO5K,EAAQ,IAGf+L,EAAInB,EAAKoB,UACTtB,EAAKE,EAAKD,WAMhB,SAAS8nF,EAAwBzO,GAC7B,OAAQA,EAAG9iF,QACP,KAAK,EACD,OAAO8iF,IAAOj4E,EAAEmF,EAEpB,KAAK,EACD,OAAO8yE,IAAOj4E,EAAEuF,IAAM0yE,IAAOj4E,EAAEwF,IAAMyyE,IAAOj4E,EAAEyF,IAAMwyE,IAAOj4E,EAAEuB,IAAM02E,IAAOj4E,EAAE8B,IAAMm2E,IAAOj4E,EAAE2D,GAE/F,KAAK,EACD,OAAOs0E,IAAOj4E,EAAE0F,IAEpB,KAAK,EACD,OAAOuyE,IAAOj4E,EAAEkF,OAEpB,KAAK,EACD,OAAO+yE,IAAOj4E,EAAEiF,SAGxB,OAAO,EAGX,SAAS0hF,EAAkC1O,GACvC,OAAQA,EAAG9iF,QACP,KAAK,EACD,OAAO8iF,IAAOj4E,EAAEmF,EAEpB,KAAK,EACD,OACI8yE,IAAOj4E,EAAEuF,IACT0yE,IAAOj4E,EAAEwF,IACTyyE,IAAOj4E,EAAEyF,IACTwyE,IAAOj4E,EAAEuB,IACT02E,IAAOj4E,EAAE8B,IACTm2E,IAAOj4E,EAAE2D,IACTs0E,IAAOj4E,EAAE8G,IACTmxE,IAAOj4E,EAAE+G,IACTkxE,IAAOj4E,EAAEkH,GAGjB,KAAK,EACD,OAAO+wE,IAAOj4E,EAAE0F,IAEpB,KAAK,EACD,OAAOuyE,IAAOj4E,EAAE0G,OAASuxE,IAAOj4E,EAAE6G,OAASoxE,IAAOj4E,EAAEgH,MAExD,KAAK,EACD,OAAOixE,IAAOj4E,EAAEkF,OAEpB,KAAK,EACD,OAAO+yE,IAAOj4E,EAAEkB,QAEpB,KAAK,EACD,OAAO+2E,IAAOj4E,EAAEiF,UAAYgzE,IAAOj4E,EAAEsB,SAG7C,OAAO,EAGX,SAASslF,EAAiB3O,EAAIpF,GAC1B,OAAQoF,EAAG9iF,QACP,KAAK,EACD,GAAI8iF,IAAOj4E,EAAE8G,IAAMmxE,IAAOj4E,EAAE+G,GACxB,OAAO8rE,IAAOl0E,EAAGE,KACd,GAAIo5E,IAAOj4E,EAAEqE,IAAM4zE,IAAOj4E,EAAEsE,IAAM2zE,IAAOj4E,EAAEuE,IAAM0zE,IAAOj4E,EAAEwE,GAC7D,OAAOquE,IAAOl0E,EAAGG,OAGrB,MAEJ,KAAK,EACD,GAAIm5E,IAAOj4E,EAAEnB,KACT,OAAOg0E,IAAOl0E,EAAGE,KACd,GAAIo5E,IAAOj4E,EAAEwB,KAChB,OAAOqxE,IAAOl0E,EAAGI,IAGrB,MAEJ,KAAK,EACD,GAAIk5E,IAAOj4E,EAAEyG,MACT,OAAOosE,IAAOl0E,EAAGE,KACd,GAAIo5E,IAAOj4E,EAAEyE,MAChB,OAAOouE,IAAOl0E,EAAGG,OACd,GAAIm5E,IAAOj4E,EAAEiH,MAChB,OAAO4rE,IAAOl0E,EAAGI,IAGrB,MAEJ,KAAK,EACD,OAAQk5E,IAAOj4E,EAAEK,QAAU43E,IAAOj4E,EAAE+E,SAAW8tE,IAAOl0E,EAAGE,KAE7D,KAAK,EACD,OAAQo5E,IAAOj4E,EAAEkB,SAAW+2E,IAAOj4E,EAAEgE,UAAY6uE,IAAOl0E,EAAGE,KAE/D,KAAK,EACD,OAAOo5E,IAAOj4E,EAAE2G,UAAYksE,IAAOl0E,EAAGE,KAE1C,KAAK,GACD,OAAOo5E,IAAOj4E,EAAEsC,gBAAkBuwE,IAAOl0E,EAAGI,IAEhD,KAAK,GACD,OAAOk5E,IAAOj4E,EAAEI,gBAAkByyE,IAAOl0E,EAAGG,OAGpD,OAAO,E,IAILs2E,E,WACF,WAAYrzD,EAAUqyD,GAAa,UAC/B95E,KAAKiiF,UAAY,EACjBjiF,KAAKX,MAAQ,GACbW,KAAKie,QAAUwJ,EACfznB,KAAK0/E,eAAiB,KACtB1/E,KAAKsiF,mBAAqB,KAC1BtiF,KAAKknF,UAAY,EACjBlnF,KAAK85E,YAAcA,E,kCAIvB,SAAS9vB,GAGL,IAFA,IAAIuiC,GAAO,EAEF7wF,EAAIsE,KAAKiiF,SAAUvmF,GAAK,EAAGA,IAChC,GAAIsE,KAAKX,MAAM3D,KAAOsuD,EAAS,CAC3BuiC,EAAM7wF,EACN,MAGR,OAAO6wF,I,2BAIX,WACI,OAAOvsF,KAAK0/E,iBAAmBh6E,EAAE2G,UAAYrM,KAAK85E,YAAYgI,gBAAgB9hF,KAAKie,WAAa5Z,EAAGE,O,mCAGvG,WACIvE,KAAKie,QAAUje,KAAKX,MAAMW,KAAKiiF,UAC/BjiF,KAAK0/E,eAAiB1/E,KAAKie,SAAWje,KAAK85E,YAAYgH,WAAW9gF,KAAKie,SAEvEje,KAAKsiF,mBAAqBtiF,KAAKwsF,gBAAkBxsF,KAAK85E,YAAYoL,mBAAmBllF,KAAKie,SAAW,O,kBAIzG,SAAK+rC,GACDhqD,KAAKX,QAAQW,KAAKiiF,UAAYj4B,EAC9BhqD,KAAKysF,wBAEDzsF,KAAKwsF,iBACLxsF,KAAKknF,c,iBAIb,WACIlnF,KAAKiiF,WAEDjiF,KAAKknF,UAAY,GAAKlnF,KAAKwsF,iBAC3BxsF,KAAKknF,YAGTlnF,KAAKysF,0B,qBAGT,SAAQC,EAAYlG,GAChB,IAAM+F,EAAMvsF,KAAK2sF,SAASD,GAE1B1sF,KAAKX,MAAMktF,GAAO/F,EAEd+F,IAAQvsF,KAAKiiF,UACbjiF,KAAKysF,0B,yBAIb,SAAYG,EAAkBpG,GAC1B,IAAMqG,EAAe7sF,KAAK2sF,SAASC,GAAoB,EAEvD5sF,KAAKX,MAAMN,OAAO8tF,EAAc,EAAGrG,GAE/BqG,MAAmB7sF,KAAKiiF,UACxBjiF,KAAKysF,0B,mCAIb,SAAsBzwE,GAClB,KAAOhc,KAAKiiF,UAAY,GAAG,CACvB,IAAMtE,EAAK39E,KAAK0/E,eACVnH,EAAKv4E,KAAK85E,YAAYgI,gBAAgB9hF,KAAKie,SAIjD,GAFAje,KAAKoe,MAEDu/D,IAAO3hE,GAAWu8D,IAAOl0E,EAAGE,KAC5B,S,mCAKZ,SAAsBylD,GAClB,KAAOhqD,KAAKiiF,UAAY,GAAG,CACvB,IAAM6K,EAAgB9sF,KAAKie,QAI3B,GAFAje,KAAKoe,MAED0uE,IAAkB9iC,EAClB,S,0CAKZ,WACI,KAAOhqD,KAAKiiF,UAAY,GAAG,CACvB,IAAMtE,EAAK39E,KAAK0/E,eACVnH,EAAKv4E,KAAK85E,YAAYgI,gBAAgB9hF,KAAKie,SAIjD,GAFAje,KAAKoe,MAGDu/D,IAAOj4E,EAAE0C,IACTu1E,IAAOj4E,EAAE2C,IACTs1E,IAAOj4E,EAAE4C,IACTq1E,IAAOj4E,EAAE6C,IACTo1E,IAAOj4E,EAAE8C,IACRm1E,IAAOj4E,EAAE+C,IAAM8vE,IAAOl0E,EAAGE,KAE1B,S,qCAKZ,WACI,KAAOvE,KAAKiiF,UAAY,GAAG,CACvB,IAAMtE,EAAK39E,KAAK0/E,eACVnH,EAAKv4E,KAAK85E,YAAYgI,gBAAgB9hF,KAAKie,SAIjD,GAFAje,KAAKoe,MAEDu/D,IAAOj4E,EAAE8G,IAAOmxE,IAAOj4E,EAAE+G,IAAM8rE,IAAOl0E,EAAGE,KACzC,S,mCAKZ,WAGIvE,KAAKiiF,SAAW,EAChBjiF,KAAKysF,0B,qCAGT,WACI,KACKzsF,KAAK0/E,iBAAmBh6E,EAAEyG,OAASnM,KAAK0/E,iBAAmBh6E,EAAE2G,UAAYrM,KAAK0/E,iBAAmBh6E,EAAEnB,MACpGvE,KAAK85E,YAAYgI,gBAAgB9hF,KAAKie,WAAa5Z,EAAGE,MAEtDvE,KAAKoe,Q,yCAIb,WACI,KACKpe,KAAK0/E,iBAAmBh6E,EAAE0G,OACvBpM,KAAK0/E,iBAAmBh6E,EAAE6G,OAC1BvM,KAAK0/E,iBAAmBh6E,EAAEgH,OAC1B1M,KAAK0/E,iBAAmBh6E,EAAE2G,UAC1BrM,KAAK0/E,iBAAmBh6E,EAAEnB,MAC9BvE,KAAK85E,YAAYgI,gBAAgB9hF,KAAKie,WAAa5Z,EAAGE,MAEtDvE,KAAKoe,Q,wCAIb,WACI,KACKpe,KAAK0/E,iBAAmBh6E,EAAEkH,IAAM5M,KAAK0/E,iBAAmBh6E,EAAE2G,UAAYrM,KAAK0/E,iBAAmBh6E,EAAEnB,MACjGvE,KAAK85E,YAAYgI,gBAAgB9hF,KAAKie,WAAa5Z,EAAGE,MAEtDvE,KAAKoe,Q,oBAIb,SAAO4rC,GACH,IAAK,IAAItuD,EAAIsE,KAAKiiF,SAAUvmF,GAAK,EAAGA,IAChC,GAAIsE,KAAKX,MAAM3D,KAAOsuD,EAAS,CAC3BhqD,KAAKX,MAAMN,OAAOrD,EAAG,GACrBsE,KAAKiiF,WACLjiF,KAAKysF,wBACL,S,8CAMZ,WAEI,IAAMziC,EAAUhqD,KAAKX,MAAM,GAE3B,OAAO2qD,GAAWhqD,KAAK85E,YAAYgH,WAAW92B,KAAatkD,EAAEe,KAAOujD,EAAU,O,sBAGlF,SAASA,GACL,OAAOhqD,KAAK2sF,SAAS3iC,IAAY,I,+BAGrC,SAAkBA,GACd,IAAI+iC,EAAa/sF,KAAK2sF,SAAS3iC,GAE/B,QAAS+iC,GAAc,EAAI/sF,KAAKX,MAAM0tF,GAAc,O,sCAGxD,WACI,OAAyB,IAAlB/sF,KAAKiiF,UAAkBjiF,KAAK0/E,iBAAmBh6E,EAAEnB,O,wBAI5D,SAAWyX,GACP,IAAK,IAAItgB,EAAIsE,KAAKiiF,SAAUvmF,GAAK,EAAGA,IAAK,CACrC,IAAMiiF,EAAK39E,KAAK85E,YAAYgH,WAAW9gF,KAAKX,MAAM3D,IAC5C68E,EAAKv4E,KAAK85E,YAAYgI,gBAAgB9hF,KAAKX,MAAM3D,IAEvD,GAAIiiF,IAAO3hE,GAAWu8D,IAAOl0E,EAAGE,KAC5B,OAAO,EAGX,GAAI+nF,EAAiB3O,EAAIpF,GACrB,OAAO,EAIf,OAAO,I,sCAGX,WACI,IAAK,IAAI78E,EAAIsE,KAAKiiF,SAAUvmF,GAAK,EAAGA,IAAK,CACrC,IAAMiiF,EAAK39E,KAAK85E,YAAYgH,WAAW9gF,KAAKX,MAAM3D,IAC5C68E,EAAKv4E,KAAK85E,YAAYgI,gBAAgB9hF,KAAKX,MAAM3D,IAEvD,IACKiiF,IAAOj4E,EAAE0C,IAAMu1E,IAAOj4E,EAAE2C,IAAMs1E,IAAOj4E,EAAE4C,IAAMq1E,IAAOj4E,EAAE6C,IAAMo1E,IAAOj4E,EAAE8C,IAAMm1E,IAAOj4E,EAAE+C,KACrF8vE,IAAOl0E,EAAGE,KAEV,OAAO,EAGX,GAAI+nF,EAAiB3O,EAAIpF,GACrB,OAAO,EAIf,OAAO,I,gCAGX,SAAmBv8D,GACf,IAAK,IAAItgB,EAAIsE,KAAKiiF,SAAUvmF,GAAK,EAAGA,IAAK,CACrC,IAAMiiF,EAAK39E,KAAK85E,YAAYgH,WAAW9gF,KAAKX,MAAM3D,IAC5C68E,EAAKv4E,KAAK85E,YAAYgI,gBAAgB9hF,KAAKX,MAAM3D,IAEvD,GAAIiiF,IAAO3hE,GAAWu8D,IAAOl0E,EAAGE,KAC5B,OAAO,EAGX,IAAMo5E,IAAOj4E,EAAEsH,IAAM2wE,IAAOj4E,EAAEgF,KAAO6tE,IAAOl0E,EAAGE,MAAS+nF,EAAiB3O,EAAIpF,GACzE,OAAO,EAIf,OAAO,I,8BAGX,SAAiBv8D,GACb,IAAK,IAAItgB,EAAIsE,KAAKiiF,SAAUvmF,GAAK,EAAGA,IAAK,CACrC,IAAMiiF,EAAK39E,KAAK85E,YAAYgH,WAAW9gF,KAAKX,MAAM3D,IAC5C68E,EAAKv4E,KAAK85E,YAAYgI,gBAAgB9hF,KAAKX,MAAM3D,IAEvD,GAAIiiF,IAAO3hE,GAAWu8D,IAAOl0E,EAAGE,KAC5B,OAAO,EAGX,GAAKo5E,IAAOj4E,EAAEiB,QAAU4xE,IAAOl0E,EAAGE,MAAS+nF,EAAiB3O,EAAIpF,GAC5D,OAAO,EAIf,OAAO,I,6BAGX,SAAgBv8D,GACZ,IAAK,IAAItgB,EAAIsE,KAAKiiF,SAAUvmF,GAAK,EAAGA,IAAK,CACrC,IAAMiiF,EAAK39E,KAAK85E,YAAYgH,WAAW9gF,KAAKX,MAAM3D,IAGlD,GAFWsE,KAAK85E,YAAYgI,gBAAgB9hF,KAAKX,MAAM3D,MAE5C2I,EAAGE,KAAd,CAIA,GAAIo5E,IAAO3hE,EACP,OAAO,EAGX,GAAI2hE,IAAOj4E,EAAEyG,OAASwxE,IAAOj4E,EAAE2G,UAAYsxE,IAAOj4E,EAAEnB,KAChD,OAAO,GAIf,OAAO,I,6CAGX,WACI,IAAK,IAAI7I,EAAIsE,KAAKiiF,SAAUvmF,GAAK,EAAGA,IAAK,CACrC,IAAMiiF,EAAK39E,KAAK85E,YAAYgH,WAAW9gF,KAAKX,MAAM3D,IAGlD,GAFWsE,KAAK85E,YAAYgI,gBAAgB9hF,KAAKX,MAAM3D,MAE5C2I,EAAGE,KAAd,CAIA,GAAIo5E,IAAOj4E,EAAE0G,OAASuxE,IAAOj4E,EAAEgH,OAASixE,IAAOj4E,EAAE6G,MAC7C,OAAO,EAGX,GAAIoxE,IAAOj4E,EAAEyG,OAASwxE,IAAOj4E,EAAEnB,KAC3B,OAAO,GAIf,OAAO,I,8BAGX,SAAiByX,GACb,IAAK,IAAItgB,EAAIsE,KAAKiiF,SAAUvmF,GAAK,EAAGA,IAAK,CACrC,IAAMiiF,EAAK39E,KAAK85E,YAAYgH,WAAW9gF,KAAKX,MAAM3D,IAGlD,GAFWsE,KAAK85E,YAAYgI,gBAAgB9hF,KAAKX,MAAM3D,MAE5C2I,EAAGE,KAAd,CAIA,GAAIo5E,IAAO3hE,EACP,OAAO,EAGX,GAAI2hE,IAAOj4E,EAAEkF,QAAU+yE,IAAOj4E,EAAEiF,SAC5B,OAAO,GAIf,OAAO,I,oCAIX,WACI,KAAOyhF,EAAwBpsF,KAAK0/E,iBAChC1/E,KAAKoe,Q,8CAIb,WACI,KAAOiuE,EAAkCrsF,KAAK0/E,iBAC1C1/E,KAAKoe,Q,iDAIb,SAAoC4uE,GAChC,KAAOZ,EAAwBpsF,KAAK0/E,iBAAmB1/E,KAAK0/E,iBAAmBsN,GAC3EhtF,KAAKoe,U,KAKjB7kB,EAAOC,QAAUshF,G,+CC3dXC,E,WACF,WAAYjB,GAAa,UACrB95E,KAAKnF,OAAS,EACdmF,KAAKskF,QAAU,GACftkF,KAAK85E,YAAcA,EACnB95E,KAAKumF,SAAW,K,wDAMpB,SAA+BC,GAC3B,IAAMyG,EAAa,GAEnB,GAAIjtF,KAAKnF,QAjBS,EAsBd,IAJA,IAAMqyF,EAAgBltF,KAAK85E,YAAYoK,YAAYsC,GAAY3rF,OACzDsyF,EAAYntF,KAAK85E,YAAYgH,WAAW0F,GACxC4G,EAAiBptF,KAAK85E,YAAYgI,gBAAgB0E,GAE/C9qF,EAAIsE,KAAKnF,OAAS,EAAGa,GAAK,EAAGA,IAAK,CACvC,IAAMq0C,EAAQ/vC,KAAKskF,QAAQ5oF,GAE3B,GAAIq0C,EAAMj2C,OAASihF,EAAsBwJ,aACrC,MAGJ,IAAMv6B,EAAUja,EAAMia,QAChBqjC,EAAertF,KAAK85E,YAAYoK,YAAYl6B,GAG9ChqD,KAAK85E,YAAYgH,WAAW92B,KAAamjC,GACzCntF,KAAK85E,YAAYgI,gBAAgB93B,KAAaojC,GAC9CC,EAAaxyF,SAAWqyF,GAGxBD,EAAWpuF,KAAK,CAAE0tF,IAAK7wF,EAAGygB,MAAOkxE,IAK7C,OAAOJ,EAAWpyF,OA3CA,EA2C6B,GAAKoyF,I,qCAGxD,SAAwBzG,GACpB,IAAMyG,EAAajtF,KAAKstF,+BAA+B9G,GACnD+G,EAAUN,EAAWpyF,OAEzB,GAAI0yF,EAAS,CAMT,IALA,IAAMC,EAAUxtF,KAAK85E,YAAYoK,YAAYsC,GACvC0G,EAAgBM,EAAQ3yF,OACxB4yF,EAAa1xF,OAAOyF,OAAO,MAGxB9F,EAAI,EAAGA,EAAIwxF,EAAexxF,IAAK,CACpC,IAAMgyF,EAASF,EAAQ9xF,GAEvB+xF,EAAWC,EAAOlxE,MAAQkxE,EAAOzyF,MAGrC,IAAK,IAAIS,EAAI,EAAGA,EAAIwxF,EAAexxF,IAC/B,IAAK,IAAImC,EAAI,EAAGA,EAAI0vF,EAAS1vF,IAAK,CAC9B,IAAM8vF,EAAQV,EAAWpvF,GAAGse,MAAMzgB,GAOlC,GALI+xF,EAAWE,EAAMnxE,QAAUmxE,EAAM1yF,QACjCgyF,EAAWluF,OAAOlB,EAAG,GACrB0vF,KAGAN,EAAWpyF,OAvET,EAwEF,OAMZ,IAAK,IAAIa,EAAI6xF,EAAU,EAAG7xF,GAAKkyF,EAAuBlyF,IAClDsE,KAAKskF,QAAQvlF,OAAOkuF,EAAWvxF,GAAG6wF,IAAK,GACvCvsF,KAAKnF,Y,0BAMjB,WACImF,KAAKskF,QAAQzlF,KAAK,CAAE/E,KAAMihF,EAAsBwJ,eAChDvkF,KAAKnF,W,yBAGT,SAAYmvD,EAAS/rD,GACjB+B,KAAK6tF,wBAAwB7jC,GAE7BhqD,KAAKskF,QAAQzlF,KAAK,CACd/E,KAAMihF,EAAsB+S,cAC5B9jC,QAASA,EACT/rD,MAAOA,IAGX+B,KAAKnF,W,wCAGT,SAA2BmvD,EAAS/rD,GAGhC,IAFA,IAAI8vF,EAAc/tF,KAAKnF,OAAS,EAEzBkzF,GAAe,GACd/tF,KAAKskF,QAAQyJ,KAAiB/tF,KAAKumF,SADlBwH,KAMzB/tF,KAAKskF,QAAQvlF,OAAOgvF,EAAc,EAAG,EAAG,CACpCj0F,KAAMihF,EAAsB+S,cAC5B9jC,QAASA,EACT/rD,MAAOA,IAGX+B,KAAKnF,W,yBAGT,SAAYk1C,GACR,IAAK,IAAIr0C,EAAIsE,KAAKnF,OAAS,EAAGa,GAAK,EAAGA,IAClC,GAAIsE,KAAKskF,QAAQ5oF,KAAOq0C,EAAO,CAC3B/vC,KAAKskF,QAAQvlF,OAAOrD,EAAG,GACvBsE,KAAKnF,SACL,S,+BAKZ,WACI,KAAOmF,KAAKnF,QAAQ,CAChB,IAAMk1C,EAAQ/vC,KAAKskF,QAAQlmE,MAI3B,GAFApe,KAAKnF,SAEDk1C,EAAMj2C,OAASihF,EAAsBwJ,aACrC,S,+CAMZ,SAAkCvoE,GAC9B,IAAK,IAAItgB,EAAIsE,KAAKnF,OAAS,EAAGa,GAAK,EAAGA,IAAK,CACvC,IAAMq0C,EAAQ/vC,KAAKskF,QAAQ5oF,GAE3B,GAAIq0C,EAAMj2C,OAASihF,EAAsBwJ,aACrC,OAAO,KAGX,GAAIvkF,KAAK85E,YAAYgH,WAAW/wC,EAAMia,WAAahuC,EAC/C,OAAO+zB,EAIf,OAAO,O,6BAGX,SAAgBia,GACZ,IAAK,IAAItuD,EAAIsE,KAAKnF,OAAS,EAAGa,GAAK,EAAGA,IAAK,CACvC,IAAMq0C,EAAQ/vC,KAAKskF,QAAQ5oF,GAE3B,GAAIq0C,EAAMj2C,OAASihF,EAAsB+S,eAAiB/9C,EAAMia,UAAYA,EACxE,OAAOja,EAIf,OAAO,S,KAKfgrC,EAAsBwJ,aAAe,eACrCxJ,EAAsB+S,cAAgB,gBAEtCv0F,EAAOC,QAAUuhF,G,+DClLXn7E,EAAQjG,EAAQ,IAChB+f,EAAY/f,EAAQ,IACpB8kC,EAA6B9kC,EAAQ,KACrCq0F,EAAoCr0F,EAAQ,KAI5C+L,EAHO/L,EAAQ,IAGNgM,UAETq1E,E,8BACF,WAAYpyD,GAAQ,wBAChB,cAAMA,IAEDA,OAASA,EACd,EAAKkxD,YAAc,EAAKlxD,OAAOkxD,YAC/B,EAAKpsD,WAAa,KAClB,EAAKugE,kBAAoB,KACzB,EAAKC,4BAA8B,KACnC,EAAK5zE,aAAe,KARJ,E,2CAWpB,SAAkB0vC,GACd,IAAImkC,EAAM,KAENnuF,KAAKiuF,qBACLE,EAAMpyF,OAAOU,OAAO,GAAIuD,KAAKiuF,kBAAkBrvD,WAC3C8jB,SAAW1iD,KAAKiuF,kBAAkBrvD,UAG1C5+B,KAAK85E,YAAYsU,0BAA0BpkC,EAASmkC,K,6BAGxD,SAAgBnkC,EAASqkC,GAGrB,GAFYruF,KAAK85E,YAAYwU,0BAA0BtkC,IAG/CqkC,EAAazvD,SAAU,CACvB,IAAMD,EAAQ0vD,EAAazvD,SACrB++C,EAAK39E,KAAK85E,YAAYgH,WAAW92B,GAKjCukC,EAAS,GADSF,EAAav0F,OAAS4f,EAAU0C,eAAiBuhE,IAAO0Q,EAAaryE,SAGzFuyE,EAAOxV,OAASh9E,OAAOU,OAAO,GAAIkiC,GAClC4vD,EAAO1gE,QAAU8Q,EAAM9Q,QACvB0gE,EAAOxgE,OAAS4Q,EAAM5Q,OACtBwgE,EAAOrgE,UAAYyQ,EAAMzQ,YAEzBqgE,EAAO1gE,QAAU8Q,EAAM/Q,UACvB2gE,EAAOxgE,OAAS4Q,EAAM7Q,SACtBygE,EAAOrgE,UAAYyQ,EAAM1Q,aAG7BjuB,KAAK85E,YAAY0U,6BAA6BxkC,EAASukC,M,mCAKnE,SAAsBngE,EAAKyQ,GACvB,MAAO,CACHm7C,WADG,SACQvyD,EAAU+4D,GACjB3hD,EAAKm7C,WAAWjqE,KAAK/P,KAAMynB,EAAU+4D,GAErCpyD,EAAI6/D,kBAAoB,KACxB7/D,EAAI8/D,4BAA8B,KAClC9/D,EAAI9T,aAAe,KAEnB,IAAMm0E,EAAiB7uF,EAAMO,QAAQH,KAAKq0B,UAAWoK,GAErDrQ,EAAIV,WAAa+gE,EAAe/gE,WAEhC9tB,EAAMO,QAAQH,KAAK+9E,aAAciQ,EAAmC,CAChEU,UAAW,SAAS1kC,GAChB57B,EAAIugE,gBAAgB3kC,EAAS57B,EAAI9T,kBAK7Cq/D,gBAnBG,SAmBa6H,GACZ3iD,EAAK86C,gBAAgB5pE,KAAK/P,KAAMwhF,GAIhC,IAAK,IAAI9lF,EAAIsE,KAAK+9E,aAAakE,SAAUvmF,GAAK,EAAGA,IAC7C0yB,EAAIugE,gBAAgB3uF,KAAK+9E,aAAa1+E,MAAM3D,GAAI0yB,EAAI9T,eAK5D0pE,8BA9BG,SA8B2B/lF,GAC1BmwB,EAAI9T,aAAerc,EACnB4gC,EAAKmlD,8BAA8Bj0E,KAAK/P,KAAM/B,IAGlD46E,cAnCG,SAmCW56E,GAUV,GATAmwB,EAAI9T,aAAerc,EACnB4gC,EAAKg6C,cAAc9oE,KAAK/P,KAAM/B,GAK1BA,EAAMnE,OAAS4f,EAAU0C,gBACxBne,EAAM+d,UAAYtW,EAAEnB,MAAStG,EAAM+d,UAAYtW,EAAEe,MAAQzG,KAAK+9E,aAAayH,WAAW9/E,EAAEe,OAGzF,IAAK,IAAI/K,EAAIsE,KAAK+9E,aAAakE,SAAUvmF,GAAK,EAAGA,IAAK,CAClD,IAAMsuD,EAAUhqD,KAAK+9E,aAAa1+E,MAAM3D,GAExC,GAAIsE,KAAK85E,YAAYgH,WAAW92B,KAAa/rD,EAAM+d,QAAS,CACxDoS,EAAIugE,gBAAgB3kC,EAAS/rD,GAC7B,SAOhBm/E,iBA1DG,SA0Dcn/E,GACb4gC,EAAKu+C,iBAAiBrtE,KAAK/P,KAAM/B,GAKjC,IAHA,IAAM2wF,EAAmB5uF,KAAK85E,YAAY+U,cAAc7uF,KAAKynB,UACvDqnE,EAAWF,EAAiB/zF,OAEzBa,EAAI,EAAGA,EAAIozF,EAAUpzF,IAAK,CAC/B,IAAMW,EAAOuyF,EAAiBlzF,GAE9B,GAAIsE,KAAK85E,YAAYiV,mBAAmB1yF,GAAO,CAC3C2D,KAAK85E,YAAYsU,0BAA0B/xF,EAAM4B,EAAM2gC,UACvD,SAMZ4jD,qBA3EG,SA2EkBx4B,GAGjB57B,EAAI4gE,kBAAkBhlC,GACtB57B,EAAI6/D,kBAAoB,KACxBpvD,EAAK2jD,qBAAqBzyE,KAAK/P,KAAMgqD,IAGzCy1B,eAnFG,SAmFYxhF,EAAOi8E,GAClB9rD,EAAI6/D,kBAAoBhwF,EACxB4gC,EAAK4gD,eAAe1vE,KAAK/P,KAAM/B,EAAOi8E,IAG1CwD,eAxFG,SAwFYz/E,EAAOi8E,GAClB9rD,EAAI6/D,kBAAoBhwF,EACxB4gC,EAAK6+C,eAAe3tE,KAAK/P,KAAM/B,EAAOi8E,IAG1C+M,gBA7FG,SA6FahpF,GACZmwB,EAAI6/D,kBAAoBhwF,EACxB4gC,EAAKooD,gBAAgBl3E,KAAK/P,KAAM/B,GAEhC,IAAMgxF,EAAcjvF,KAAK85E,YAAYoL,mBAAmBllF,KAAK+9E,aAAa9/D,SAE1Eje,KAAK85E,YAAYsU,0BAA0Ba,EAAa,OAG5DzU,uBAtGG,WAuGC37C,EAAK27C,uBAAuBzqE,KAAK/P,MACjCA,KAAK85E,YAAYsU,0BAA0BpuF,KAAK+9E,aAAa9/D,QAAS,OAI1EsiE,mBA5GG,SA4GgBtiF,EAAOzD,GACtBqkC,EAAK0hD,mBAAmBxwE,KAAK/P,KAAM/B,EAAOzD,GAE1C,IAAMI,EAAWoF,KAAK85E,YAAY+U,cAAcr0F,GAC1CmoF,EAAc/nF,EAASA,EAASC,OAAS,GAE/CmF,KAAK85E,YAAYsU,0BAA0BzL,EAAa1kF,EAAM2gC,WAIlEumD,6BAtHG,WA2HC,OAFA/2D,EAAI8/D,4BAA8BrvD,EAAKsmD,6BAA6Bp1E,KAAK/P,MAElEouB,EAAI8/D,6BAGf/K,kBA9HG,SA8HellF,GACd4gC,EAAKskD,kBAAkBpzE,KAAK/P,KAAM/B,GAElC,IAAMixF,EAAkBlvF,KAAKoiF,iCAEvB5nF,EACD00F,GAAmB9gE,EAAI8/D,4BAA4B1zF,QACpDwF,KAAK+9E,aAAauE,oBAClBtiF,KAAK+9E,aAAa9/D,QAEhBs6B,EAAWv4C,KAAK85E,YAAY+U,cAAcr0F,GAE1C20F,EACFD,GAAmB9gE,EAAI8/D,4BAA4BlJ,cAC7CzsC,EAAS96C,QAAQ2wB,EAAI8/D,4BAA4BlJ,eAAiB,EAClEzsC,EAAS19C,OAAS,EAEtBu0F,EAAW72C,EAAS42C,GAK1B,GAFcnvF,KAAK85E,YAAYwU,0BAA0Bc,GAE9C,CACP,MAAuCnxF,EAAM2gC,SAArC/Q,EAAR,EAAQA,QAASE,EAAjB,EAAiBA,OAAQG,EAAzB,EAAyBA,UACzBluB,KAAK85E,YAAY0U,6BAA6BY,EAAU,CAAEvhE,UAASE,SAAQG,mBAE3EluB,KAAK85E,YAAYsU,0BAA0BgB,EAAUnxF,EAAM2gC,gB,GA5MzCh/B,GAmNtCrG,EAAOC,QAAUwhF,G,cC9NjB,SAASqU,EAAgB9hE,EAAGwa,GAM1B,OALAxuC,EAAOC,QAAU61F,EAAkBtzF,OAAOsF,gBAAkB,SAAyBksB,EAAGwa,GAEtF,OADAxa,EAAEC,UAAYua,EACPxa,GAGF8hE,EAAgB9hE,EAAGwa,GAG5BxuC,EAAOC,QAAU61F,G,cCIjB91F,EAAOC,QAbP,WACE,GAAuB,qBAAZwI,UAA4BA,QAAQC,UAAW,OAAO,EACjE,GAAID,QAAQC,UAAUqtF,KAAM,OAAO,EACnC,GAAqB,oBAAVC,MAAsB,OAAO,EAExC,IAEE,OADAvnD,KAAK5rC,UAAUgV,SAASrB,KAAK/N,QAAQC,UAAU+lC,KAAM,IAAI,iBAClD,EACP,MAAOtH,GACP,OAAO,K,gBCTX,IAAIyC,EAAU,EAAQ,KAElBqsD,EAAwB,EAAQ,KAUpCj2F,EAAOC,QARP,SAAoCgvB,EAAMzY,GACxC,OAAIA,GAA2B,WAAlBozB,EAAQpzB,IAAsC,oBAATA,EAI3Cy/E,EAAsBhnE,GAHpBzY,I,cCNX,SAASozB,EAAQlX,GAaf,MAVsB,oBAAXmX,QAAoD,kBAApBA,OAAOtF,SAChDvkC,EAAOC,QAAU2pC,EAAU,SAAiBlX,GAC1C,cAAcA,GAGhB1yB,EAAOC,QAAU2pC,EAAU,SAAiBlX,GAC1C,OAAOA,GAAyB,oBAAXmX,QAAyBnX,EAAI1rB,cAAgB6iC,QAAUnX,IAAQmX,OAAOhnC,UAAY,gBAAkB6vB,GAItHkX,EAAQlX,GAGjB1yB,EAAOC,QAAU2pC,G,cCRjB5pC,EAAOC,QARP,SAAgCgvB,GAC9B,QAAa,IAATA,EACF,MAAM,IAAIinE,eAAe,6DAG3B,OAAOjnE,I,+DCDHwlE,E,8BACF,WAAYnhD,EAAOxsC,GAAM,wBACrB,cAAMwsC,IAED6hD,UAAYruF,EAAKquF,UAHD,E,+CAMzB,SAAsBtgE,EAAKyQ,GACvB,MAAO,CACHzgB,IADG,WAECgQ,EAAIsgE,UAAU1uF,KAAKie,SACnB4gB,EAAKzgB,IAAIrO,KAAK/P,OAGlB8pF,sBANG,WAOC,IAAK,IAAIpuF,EAAIsE,KAAKiiF,SAAUvmF,EAAI,EAAGA,IAC/B0yB,EAAIsgE,UAAU1uF,KAAKX,MAAM3D,IAG7BmjC,EAAKirD,sBAAsB/5E,KAAK/P,OAGpCZ,OAdG,SAcI4qD,GACH57B,EAAIsgE,UAAU1uF,KAAKie,SACnB4gB,EAAKz/B,OAAO2Q,KAAK/P,KAAMgqD,S,GA1BzBrwD,EAAQ,KAgCtBJ,EAAOC,QAAUw0F,G,+DChCXvgE,EAA0B9zB,EAAQ,IAClC+1F,EAA+B/1F,EAAQ,KACvC8kC,EAA6B9kC,EAAQ,KACrCiG,EAAQjG,EAAQ,IAEhBshF,E,8BACF,WAAYryD,EAAQvoB,GAAM,wBACtB,cAAMuoB,EAAQvoB,IAETA,KAAOA,EACZ,EAAKs+B,MAAQ,KACb,EAAKgxD,gBAAiB,EALA,E,2CAQ1B,SAAkBn1E,GACVxa,KAAK2+B,QACLnkB,EAAIoT,UAAY5tB,KAAK2+B,MAAM/Q,UAC3BpT,EAAIsT,SAAW9tB,KAAK2+B,MAAM7Q,SAC1BtT,EAAIyT,YAAcjuB,KAAK2+B,MAAM1Q,YAE7BzT,EAAIqT,QAAU7tB,KAAK2vF,eAAiB3vF,KAAK2+B,MAAM/Q,UAAY5tB,KAAK2+B,MAAM9Q,QACtErT,EAAIuT,OAAS/tB,KAAK2vF,eAAiB3vF,KAAK2+B,MAAM7Q,SAAW9tB,KAAK2+B,MAAM5Q,OACpEvT,EAAI0T,UAAYluB,KAAK2vF,eAAiB3vF,KAAK2+B,MAAM1Q,YAAcjuB,KAAK2+B,MAAMzQ,a,mCAIlF,SAAsBE,EAAKyQ,GACvB,MAAO,CACHm7C,WADG,SACQvyD,EAAU+4D,GACjB3hD,EAAKm7C,WAAWjqE,KAAK/P,KAAMynB,EAAU+4D,GAErC5gF,EAAMO,QAAQH,KAAKq0B,UAAWq7D,EAA8BthE,EAAI/tB,MAChET,EAAMO,QAAQH,KAAKq0B,UAAWoK,IAGlCkjD,mBARG,SAQgB1jF,GACfmwB,EAAIuQ,MAAQ1gC,EAAM2gC,SAElBC,EAAK8iD,mBAAmB5xE,KAAK/P,KAAM/B,IAGvCyc,KAdG,SAcEjhB,EAAM8xB,GACP6C,EAAIuhE,eAAiBpkE,GAAWA,EAAQw7D,YACxC34D,EAAIC,aAAa50B,S,GAtCOg0B,GA4CxCl0B,EAAOC,QAAUyhF,G,wDCjDXxtD,EAA0B9zB,EAAQ,IAClCi2F,EAAkCj2F,EAAQ,KAC1CiG,EAAQjG,EAAQ,IAEhB+1F,E,8BACF,WAAYr7D,EAAWh0B,GAAM,gBACzB,cAAMg0B,EAAWh0B,GAEjB,IAAMwvF,EAAoBjwF,EAAMO,QAAQk0B,EAAU1a,aAAci2E,EAAiCvvF,GAHxE,OAKzB,EAAKqtB,WAAamiE,EAAkBniE,WALX,E,UADUD,GAU3Cl0B,EAAOC,QAAUk2F,G,gFCdXjiE,EAA0B9zB,EAAQ,IAClC6kC,EAAoC7kC,EAAQ,KAC5CiG,EAAQjG,EAAQ,IAEhBi2F,E,8BACF,WAAYj2E,EAActZ,GAAM,wBAC5B,cAAMsZ,EAActZ,IAEfqtB,WAAa9tB,EAAMO,QAAQwZ,EAAc6kB,GAC9C,EAAKsxD,eAAiB,EAJM,E,sCAOhC,SAAar2F,GAELuG,KAAK8vF,gBAAkB9vF,KAAK0tB,WAAW/D,SACvC3pB,KAAK8vF,cAAgB9vF,KAAK0tB,WAAW/D,OACrC,gDAAmBlwB,Q,GAZeg0B,GAiB9Cl0B,EAAOC,QAAUo2F,G,gBCvBjB,IAAIG,EAAgB,EAAQ,KAE5B,SAASC,EAAKx0F,EAAQ0I,EAAU+rF,GAiB9B,MAhBuB,qBAAZjuF,SAA2BA,QAAQ0rC,IAC5Cn0C,EAAOC,QAAUw2F,EAAOhuF,QAAQ0rC,IAEhCn0C,EAAOC,QAAUw2F,EAAO,SAAcx0F,EAAQ0I,EAAU+rF,GACtD,IAAIn3C,EAAOi3C,EAAcv0F,EAAQ0I,GACjC,GAAK40C,EAAL,CACA,IAAIo3C,EAAOn0F,OAAO4R,yBAAyBmrC,EAAM50C,GAEjD,OAAIgsF,EAAKxiD,IACAwiD,EAAKxiD,IAAI39B,KAAKkgF,GAGhBC,EAAKj1F,QAIT+0F,EAAKx0F,EAAQ0I,EAAU+rF,GAAYz0F,GAG5CjC,EAAOC,QAAUw2F,G,gBCtBjB,IAAIvuF,EAAiB,EAAQ,IAW7BlI,EAAOC,QATP,SAAwB2I,EAAQ+B,GAC9B,MAAQnI,OAAOK,UAAU0T,eAAeC,KAAK5N,EAAQ+B,IAEpC,QADf/B,EAASV,EAAeU,MAI1B,OAAOA,I,6BCNT,IAAQmD,EAAkB3L,EAAQ,IAA1B2L,cAGR9L,EAAQugF,eAAiB,WACrB,MAAO,CACHE,SAAU,YACVpS,KAAMviE,EAAcC,UACpB40E,WAAY,KAIpB3gF,EAAQynF,uBAAyB,WAC7B,MAAO,CACHhH,SAAU,qBACVE,WAAY,KAIpB3gF,EAAQkuB,cAAgB,SAAS1L,EAASk+D,EAAc/9D,GACpD,MAAO,CACH89D,SAAUj+D,EACVA,QAASA,EACTG,MAAOA,EACP+9D,aAAcA,EACdC,WAAY,GACZgW,WAAY,OAIpB32F,EAAQopF,kBAAoB,SAAS5zE,GACjC,MAAO,CACHirE,SAAU,WACVjrE,KAAMA,EACNmhF,WAAY,OAIpB,IAAMC,EAAiB,SAASn1F,GAC5B,MAAO,CACHg/E,SAAU,QACVh/E,MAAOA,EACPk1F,WAAY,OAKd5N,EAAe/oF,EAAQ+oF,YAAc,SAAS4N,EAAYE,GAC5DF,EAAWhW,WAAWt7E,KAAKwxF,GAC3BA,EAAQF,WAAaA,GAGnBrtF,EAAgBtJ,EAAQsJ,aAAe,SAASqtF,EAAYE,EAASC,GACvE,IAAMzD,EAAesD,EAAWhW,WAAW18E,QAAQ6yF,GAEnDH,EAAWhW,WAAWp7E,OAAO8tF,EAAc,EAAGwD,GAC9CA,EAAQF,WAAaA,GAGzB32F,EAAQkpF,mBAAqB,SAAS6N,EAAiBC,GACnDD,EAAgBryF,QAAUsyF,GAG9Bh3F,EAAQ0rF,mBAAqB,SAASqL,GAClC,OAAOA,EAAgBryF,SAG3B1E,EAAQ2oF,gBAAkB,SAAS16D,EAAUjL,EAAME,EAAUC,GAGzD,IAFA,IAAI8zE,EAAc,KAET/0F,EAAI,EAAGA,EAAI+rB,EAAS0yD,WAAWt/E,OAAQa,IAC5C,GAAwC,kBAApC+rB,EAAS0yD,WAAWz+E,GAAGu+E,SAA8B,CACrDwW,EAAchpE,EAAS0yD,WAAWz+E,GAClC,MAIJ+0F,GACAA,EAAYj0E,KAAOA,EACnBi0E,EAAY/zE,SAAWA,EACvB+zE,EAAY9zE,SAAWA,GAEvB4lE,EAAY96D,EAAU,CAClBwyD,SAAU,gBACVz9D,KAAMA,EACNE,SAAUA,EACVC,SAAUA,KAKtBnjB,EAAQ+jF,gBAAkB,SAAS91D,EAAUogD,GACzCpgD,EAASogD,KAAOA,GAGpBruE,EAAQ6jF,gBAAkB,SAAS51D,GAC/B,OAAOA,EAASogD,MAGpBruE,EAAQypF,WAAa,SAAS5mF,GAC1B,GAAIA,EAAK8zF,WAAY,CACjB,IAAM5D,EAAMlwF,EAAK8zF,WAAWhW,WAAW18E,QAAQpB,GAE/CA,EAAK8zF,WAAWhW,WAAWp7E,OAAOwtF,EAAK,GACvClwF,EAAK8zF,WAAa,OAI1B32F,EAAQspF,WAAa,SAASqN,EAAY5mE,GACtC,GAAI4mE,EAAWhW,WAAWt/E,OAAQ,CAC9B,IAAM61F,EAAWP,EAAWhW,WAAWgW,EAAWhW,WAAWt/E,OAAS,GAEtE,GAA0B,UAAtB61F,EAASzW,SAET,YADAyW,EAASz1F,OAASsuB,GAK1Bg5D,EAAY4N,EAAYC,EAAe7mE,KAG3C/vB,EAAQ4rF,iBAAmB,SAAS+K,EAAY5mE,EAAM+mE,GAClD,IAAMI,EAAWP,EAAWhW,WAAWgW,EAAWhW,WAAW18E,QAAQ6yF,GAAiB,GAElFI,GAAkC,UAAtBA,EAASzW,SACrByW,EAASz1F,OAASsuB,EAElBzmB,EAAaqtF,EAAYC,EAAe7mE,GAAO+mE,IAIvD92F,EAAQqvF,gBAAkB,SAAS7F,EAAW7mE,GAG1C,IAFA,IAAMw0E,EAAoB,GAEjBj1F,EAAI,EAAGA,EAAIsnF,EAAU7mE,MAAMthB,OAAQa,IACxCi1F,EAAkB9xF,KAAKmkF,EAAU7mE,MAAMzgB,GAAG8gB,MAG9C,IAAK,IAAI3e,EAAI,EAAGA,EAAIse,EAAMthB,OAAQgD,KACoB,IAA9C8yF,EAAkBlzF,QAAQ0e,EAAMte,GAAG2e,OACnCwmE,EAAU7mE,MAAMtd,KAAKsd,EAAMte,KAMvCrE,EAAQwnF,cAAgB,SAAS3kF,GAC7B,OAAOA,EAAK89E,WAAW,IAG3B3gF,EAAQq1F,cAAgB,SAASxyF,GAC7B,OAAOA,EAAK89E,YAGhB3gF,EAAQ0oF,cAAgB,SAAS7lF,GAC7B,OAAOA,EAAK8zF,YAGhB32F,EAAQ0qF,YAAc,SAASl6B,GAC3B,OAAOA,EAAQ7tC,OAInB3iB,EAAQsnF,WAAa,SAAS92B,GAC1B,OAAOA,EAAQhuC,SAGnBxiB,EAAQsoF,gBAAkB,SAAS93B,GAC/B,OAAOA,EAAQkwB,cAGnB1gF,EAAQo3F,mBAAqB,SAASxB,GAClC,OAAOA,EAASn0F,OAGpBzB,EAAQq3F,sBAAwB,SAASlO,GACrC,OAAOA,EAAY3zE,MAGvBxV,EAAQs3F,wBAA0B,SAASL,GACvC,OAAOA,EAAYj0E,MAGvBhjB,EAAQu3F,4BAA8B,SAASN,GAC3C,OAAOA,EAAY/zE,UAGvBljB,EAAQw3F,4BAA8B,SAASP,GAC3C,OAAOA,EAAY9zE,UAIvBnjB,EAAQy3F,WAAa,SAAS50F,GAC1B,MAAyB,UAAlBA,EAAK49E,UAGhBzgF,EAAQ03F,cAAgB,SAAS70F,GAC7B,MAAyB,aAAlBA,EAAK49E,UAGhBzgF,EAAQu1F,mBAAqB,SAAS1yF,GAClC,MAAyB,kBAAlBA,EAAK49E,UAGhBzgF,EAAQ23F,cAAgB,SAAS90F,GAC7B,QAASA,EAAK2f,SAIlBxiB,EAAQ40F,0BAA4B,SAAS/xF,EAAMuiC,GAC/CviC,EAAK+0F,mBAAqBxyD,GAG9BplC,EAAQ80F,0BAA4B,SAASjyF,GACzC,OAAOA,EAAK+0F,oBAGhB53F,EAAQg1F,6BAA+B,SAASnyF,EAAMg1F,GAClDh1F,EAAK+0F,mBAAqBr1F,OAAOU,OAAOJ,EAAK+0F,mBAAoBC,K,6BCzNrE93F,EAAOC,QAAU,SAAsB83F,EAAU/lE,GAG7C,MAAO,CAAC+lE,EAFR/lE,EAAUA,GAAWxvB,OAAOyF,OAAO,OAER+vF,QAAO,SAACC,EAAQC,GAKvC,OAJA11F,OAAO+B,KAAK2zF,GAAQ5jF,SAAQ,SAAA5R,GACxBu1F,EAAOv1F,GAAOw1F,EAAOx1F,MAGlBu1F,IACRz1F,OAAOyF,OAAO,S,6BCTrB,IAAQ8D,EAAkB3L,EAAQ,IAA1B2L,cAGFosF,EAAqB,OAIrBC,EAAiC,CACnC,6CACA,6CACA,uDACA,kCACA,kCACA,yCACA,yCACA,iCACA,0BACA,2BACA,0BACA,gCACA,0BACA,wBACA,8BACA,8BACA,8BACA,8BACA,qCACA,qCACA,qCACA,qCACA,6BACA,sBACA,2CACA,wDACA,iDACA,mDACA,wDACA,iDACA,mDACA,sCACA,6CACA,6CACA,sDACA,8DACA,8CACA,iFACA,wEACA,uCACA,gDACA,uDACA,kCACA,+BACA,+BACA,yBACA,gCACA,kCACA,sCACA,2CACA,yCACA,wBACA,4BACA,sCACA,mCAGEC,EAA8CD,EAA+Bx2F,OAAO,CACtF,mCACA,yCAGE02F,EAAyB,CAAC,uCAAwC,qCAAsC,QACxGC,EAAoC,CAAC,mCAAoC,wCAEzEC,EAAmDD,EAAkC32F,OAAO,CAC9F,mCACA,yCAIJ,SAAS62F,EAAiBl5D,GACtB,IAAMm5D,GAA6B,IAArBn5D,EAAGr7B,QAAQ,KAAc,IAAM,IAE7C,OAAOw0F,EAAQn5D,EAAKm5D,EAGxB,SAASC,EAAUx1E,EAAUy1E,GACzB,IAAK,IAAIz2F,EAAI,EAAGA,EAAIy2F,EAASt3F,OAAQa,IACjC,GAAsC,IAAlCghB,EAASjf,QAAQ00F,EAASz2F,IAC1B,OAAO,EAIf,OAAO,EAIXlC,EAAQ8jF,aAAe,SAASr/E,GAC5B,OACIA,EAAMue,OAASk1E,GACI,OAAnBzzF,EAAMye,WACc,OAAnBze,EAAM0e,UAhGS,wBAgGY1e,EAAM0e,WAI1CnjB,EAAQ6jF,gBAAkB,SAASp/E,GAC/B,GAAIA,EAAMue,OAASk1E,EACf,OAAOpsF,EAAcE,OAGzB,IAAMmX,EAAW1e,EAAM0e,SAEvB,GAAIA,GA1GsB,+DA0GVA,EAAS/M,cACrB,OAAOtK,EAAcE,OAGzB,IAAIkX,EAAWze,EAAMye,SAErB,GAAiB,OAAbA,EAAmB,CAGnB,GAFAA,EAAWA,EAAS9M,cAEhBiiF,EAAuBp0F,QAAQif,IAAa,EAC5C,OAAOpX,EAAcE,OAGzB,IAAI2sF,EAAwB,OAAbx1E,EAAoBi1E,EAA8CD,EAEjF,GAAIO,EAAUx1E,EAAUy1E,GACpB,OAAO7sF,EAAcE,OAMzB,GAAI0sF,EAAUx1E,EAHdy1E,EACiB,OAAbx1E,EAAoBm1E,EAAoCC,GAGxD,OAAOzsF,EAAcG,eAI7B,OAAOH,EAAcC,WAGzB/L,EAAQ44F,iBAAmB,SAAS51E,EAAME,EAAUC,GAChD,IAAImP,EAAM,YAgBV,OAdItP,IACAsP,GAAOtP,GAGPE,EACAoP,GAAO,WAAakmE,EAAiBt1E,GAC9BC,IACPmP,GAAO,WAGM,OAAbnP,IACAmP,GAAO,IAAMkmE,EAAiBr1E,IAG3BmP,I,2CC9JLpS,EAAY/f,EAAQ,IACpB4K,EAAO5K,EAAQ,IAGf+L,EAAInB,EAAKoB,UACTtB,EAAKE,EAAKD,WACVO,EAAQN,EAAKM,MAGbwtF,EACS,YADTA,EAEe,wBAMfC,EAA2B,CAC7BC,cAAe,gBACfC,cAAe,gBACfC,cAAe,gBACfC,YAAa,cACbC,SAAU,WACVC,cAAe,gBACfC,gBAAiB,kBACjBC,SAAU,WACVC,YAAa,cACbC,SAAU,WACVC,kBAAmB,oBACnBC,cAAe,gBACfC,aAAc,eACdC,iBAAkB,mBAClBC,UAAW,YACXC,WAAY,aACZC,SAAU,WACVC,aAAc,eACdC,kBAAmB,oBACnBC,aAAc,eACdC,YAAa,cACbC,YAAa,cACbC,iBAAkB,mBAClBC,UAAW,YACXC,WAAY,aACZC,WAAY,aACZC,oBAAqB,sBACrBC,iBAAkB,mBAClBC,aAAc,eACdC,UAAW,YACXC,UAAW,YACXC,UAAW,YACXC,cAAe,gBACfC,oBAAqB,sBACrBC,eAAgB,iBAChBC,KAAM,OACNC,KAAM,OACNC,YAAa,cACbC,UAAW,YACXC,mBAAoB,qBACpBC,iBAAkB,mBAClBC,iBAAkB,mBAClBC,iBAAkB,mBAClBC,aAAc,eACdC,YAAa,cACbC,aAAc,eACdC,YAAa,cACbC,aAAc,eACdC,eAAgB,iBAChBC,YAAa,cACbC,QAAS,UACTC,QAAS,UACTC,WAAY,aACZC,QAAS,UACTC,WAAY,aACZC,iBAAkB,mBAClBC,iBAAkB,mBAClBC,WAAY,cAGVC,EAA2B,CAC7B,gBAAiB,CAAE77F,OAAQ,QAASoiB,KAAM,UAAW2T,UAAW9rB,EAAGK,OACnE,gBAAiB,CAAEtK,OAAQ,QAASoiB,KAAM,UAAW2T,UAAW9rB,EAAGK,OACnE,aAAc,CAAEtK,OAAQ,QAASoiB,KAAM,OAAQ2T,UAAW9rB,EAAGK,OAC7D,aAAc,CAAEtK,OAAQ,QAASoiB,KAAM,OAAQ2T,UAAW9rB,EAAGK,OAC7D,aAAc,CAAEtK,OAAQ,QAASoiB,KAAM,OAAQ2T,UAAW9rB,EAAGK,OAC7D,cAAe,CAAEtK,OAAQ,QAASoiB,KAAM,QAAS2T,UAAW9rB,EAAGK,OAC/D,aAAc,CAAEtK,OAAQ,QAASoiB,KAAM,OAAQ2T,UAAW9rB,EAAGK,OAC7D,WAAY,CAAEtK,OAAQ,MAAOoiB,KAAM,OAAQ2T,UAAW9rB,EAAGM,KACzD,WAAY,CAAEvK,OAAQ,MAAOoiB,KAAM,OAAQ2T,UAAW9rB,EAAGM,KACzD,YAAa,CAAEvK,OAAQ,MAAOoiB,KAAM,QAAS2T,UAAW9rB,EAAGM,KAC3DgK,MAAO,CAAEvU,OAAQ,GAAIoiB,KAAM,QAAS2T,UAAW9rB,EAAGO,OAClD,cAAe,CAAExK,OAAQ,QAASoiB,KAAM,QAAS2T,UAAW9rB,EAAGO,QAI7DsxF,EAAgC18F,EAAQ08F,6BAA+B,CACzEC,SAAU,WACVC,YAAa,cACbC,aAAc,eACdC,aAAc,eACdC,cAAe,gBACfC,iBAAkB,mBAClBC,SAAU,WACVC,QAAS,UACTC,cAAe,gBACfC,oBAAqB,sBACrBC,YAAa,cACbC,iBAAkB,mBAClBC,kBAAmB,oBACnBC,kBAAmB,oBACnBC,eAAgB,iBAChBC,QAAS,UACTC,QAAS,UACTC,QAAS,UACTC,QAAS,UACTC,QAAS,UACTC,eAAgB,iBAChBC,QAAS,UACTC,QAAS,UACTC,YAAa,cACbC,aAAc,eACdC,SAAU,WACVC,aAAc,eACdC,mBAAoB,qBACpBC,YAAa,cACbC,OAAQ,SACRC,aAAc,eACdC,cAAe,gBACflF,SAAU,WACVmF,eAAgB,iBAChBC,eAAgB,iBAChBC,SAAU,YAIRC,GAAqB,OACtB5yF,EAAES,GAAI,GADgB,IAEtBT,EAAEa,KAAM,GAFc,IAGtBb,EAAEc,YAAa,GAHO,IAItBd,EAAEe,MAAO,GAJa,IAKtBf,EAAEgB,IAAK,GALe,IAMtBhB,EAAEmB,QAAS,GANW,IAOtBnB,EAAEoB,MAAO,GAPa,IAQtBpB,EAAEuB,IAAK,GARe,IAStBvB,EAAE4B,KAAM,GATc,IAUtB5B,EAAE6B,IAAK,GAVe,IAWtB7B,EAAE8B,IAAK,GAXe,IAYtB9B,EAAE+B,IAAK,GAZe,IAatB/B,EAAEgC,OAAQ,GAbY,IActBhC,EAAE0C,IAAK,GAde,IAetB1C,EAAE2C,IAAK,GAfe,IAgBtB3C,EAAE4C,IAAK,GAhBe,IAiBtB5C,EAAE6C,IAAK,GAjBe,IAkBtB7C,EAAE8C,IAAK,GAlBe,IAmBtB9C,EAAE+C,IAAK,GAnBe,IAoBtB/C,EAAEgD,MAAO,GApBa,IAqBtBhD,EAAEmD,IAAK,GArBe,IAsBtBnD,EAAEoD,GAAI,GAtBgB,IAuBtBpD,EAAEqD,KAAM,GAvBc,IAwBtBrD,EAAE2D,IAAK,GAxBe,IAyBtB3D,EAAE6D,SAAU,GAzBU,IA0BtB7D,EAAEkE,MAAO,GA1Ba,IA2BtBlE,EAAEmE,MAAO,GA3Ba,IA4BtBnE,EAAE2E,MAAO,GA5Ba,IA6BtB3E,EAAEgF,IAAK,GA7Be,IA8BtBhF,EAAEmF,GAAI,GA9BgB,IA+BtBnF,EAAEsF,KAAM,GA/Bc,IAgCtBtF,EAAE2F,MAAO,GAhCa,IAiCtB3F,EAAE4F,GAAI,GAjCgB,IAkCtB5F,EAAEiG,OAAQ,GAlCY,IAmCtBjG,EAAEkG,MAAO,GAnCa,IAoCtBlG,EAAEoG,QAAS,GApCW,IAqCtBpG,EAAEmG,QAAS,GArCW,IAsCtBnG,EAAEsG,KAAM,GAtCc,IAuCtBtG,EAAEwG,KAAM,GAvCc,IAwCtBxG,EAAEyG,OAAQ,GAxCY,IAyCtBzG,EAAEoH,IAAK,GAzCe,IA0CtBpH,EAAEqH,GAAI,GA1CgB,IA2CtBrH,EAAEsH,IAAK,GA3Ce,IA4CtBtH,EAAEuH,KAAM,GA5Cc,GAgD3BzT,EAAQ8pF,WAAa,SAASiV,GAC1B,IAAM5a,EAAK4a,EAAcv8E,QAOzB,SALI2hE,IAAOj4E,EAAEoC,OAC+C,OAAvD4R,EAAUsD,aAAau7E,EAAe1zF,EAAMM,QACa,OAAtDuU,EAAUsD,aAAau7E,EAAe1zF,EAAMQ,OACU,OAAtDqU,EAAUsD,aAAau7E,EAAe1zF,EAAMO,SAEpBkzF,EAAsB3a,IAI1DnkF,EAAQgqF,uBAAyB,SAASvlF,GACtC,IAAK,IAAIvC,EAAI,EAAGA,EAAIuC,EAAMke,MAAMthB,OAAQa,IACpC,GArLoB,kBAqLhBuC,EAAMke,MAAMzgB,GAAG8gB,KAA8B,CAC7Cve,EAAMke,MAAMzgB,GAAG8gB,KArLU,gBAsLzB,QAKZhjB,EAAQkqF,oBAAsB,SAASzlF,GACnC,IAAK,IAAIvC,EAAI,EAAGA,EAAIuC,EAAMke,MAAMthB,OAAQa,IAAK,CACzC,IAAM88F,EAAmBlG,EAAyBr0F,EAAMke,MAAMzgB,GAAG8gB,MAE7Dg8E,IACAv6F,EAAMke,MAAMzgB,GAAG8gB,KAAOg8E,KAKlCh/F,EAAQmqF,oBAAsB,SAAS1lF,GACnC,IAAK,IAAIvC,EAAI,EAAGA,EAAIuC,EAAMke,MAAMthB,OAAQa,IAAK,CACzC,IAAM+8F,EAAoBxC,EAAyBh4F,EAAMke,MAAMzgB,GAAG8gB,MAE9Di8E,IACAx6F,EAAMke,MAAMzgB,GAAGtB,OAASq+F,EAAkBr+F,OAC1C6D,EAAMke,MAAMzgB,GAAG8gB,KAAOi8E,EAAkBj8E,KACxCve,EAAMke,MAAMzgB,GAAGy0B,UAAYsoE,EAAkBtoE,aAKzD32B,EAAQiqF,sBAAwB,SAASxlF,GACrC,IAAMy6F,EAAkBxC,EAA6Bj4F,EAAM+d,SAEvD08E,IACAz6F,EAAM+d,QAAU08E,IAuBxBl/F,EAAQ2qF,mBAAqB,SAASxG,EAAIpF,EAAIp8D,EAAO8nE,GACjD,QAAMA,GAAaA,IAAc5/E,EAAGE,OAfxC,SAAgCo5E,EAAIpF,EAAIp8D,GACpC,GAAIo8D,IAAOl0E,EAAGG,QAAUm5E,IAAOj4E,EAAEI,eAC7B,IAAK,IAAIpK,EAAI,EAAGA,EAAIygB,EAAMthB,OAAQa,IAC9B,GAAIygB,EAAMzgB,GAAG8gB,OAAS3X,EAAMG,SAAU,CAClC,IAAM/J,EAAQkhB,EAAMzgB,GAAGT,MAAM2U,cAE7B,OAAO3U,IAAUo3F,GAAwBp3F,IAAUo3F,EAK/D,OAAO9Z,IAAOl0E,EAAGI,MAAQk5E,IAAOj4E,EAAEsC,gBAAkB21E,IAAOj4E,EAAEwB,MAAQy2E,IAAOj4E,EAAEiH,OAIjCgsF,CAAuBhb,EAAIpF,EAAIp8D,OAItE8nE,GAAaA,IAAc5/E,EAAGG,SAvBxC,SAAsCm5E,EAAIpF,GACtC,OAAOA,IAAOl0E,EAAGG,SAAWm5E,IAAOj4E,EAAEqE,IAAM4zE,IAAOj4E,EAAEsE,IAAM2zE,IAAOj4E,EAAEuE,IAAM0zE,IAAOj4E,EAAEwE,IAAMyzE,IAAOj4E,EAAEyE,OAsBlDyuF,CAA6Bjb,EAAIpF,M,6BCjQpF,IAAIl6E,EAAI1E,EAAQ,KACZY,EAAIZ,EAAQ,KACZ4lC,EAAO5lC,EAAQ,IACfkV,EAAOlV,EAAQ,IACfmV,EAAMnV,EAAQ,IACdk/F,EAAgBl/F,EAAQ,KACxB4+E,EAAK5+E,EAAQ,IAEjBJ,EAAOC,QAcP,SAAiBwtC,EAAKzb,GACpB,IACImZ,EADAlZ,EAAWD,GAAW,GAGtBC,EAASghB,UACX9H,EAAOlZ,EACPA,EAAW,IAEXkZ,EAAOlZ,EAASkZ,KAGlB,OAAOzgC,EAAU+iC,EAAK,CACpB/3B,OAA2B,QAAnBuc,EAAS3nB,MAAkBiL,EAAMD,EACzC61B,KAAMA,EACNo0D,QAASttE,EAASstE,WA1BtB,IAAIrlE,EAAM,GAAG3jB,eAGT4W,EAAM,CACR,YAAa2hC,EACb,qBAAsBA,EACtB,QAsGF,SAAcrhB,GACZ,MAAO,CAACltC,KAAM,OAAQmB,MAAO+rC,EAAI/rC,QAtGjC,WA0GF,SAAiB+rC,GACf,MAAO,CAACltC,KAAM,UAAWmB,MAAO+rC,EAAIh4B,OA1GpC,gBA0FF,SAAiBg4B,GACf,MAAO,CACLltC,KAAM,UACN0iB,KAAMwqB,EAAIxqB,MAAQ,GAClBu8E,OAAQ/xD,EAAItqB,UAAY,KACxBs8E,OAAQhyD,EAAIrqB,UAAY,QAxE5B,SAAS1Y,EAAU+iC,EAAK0K,GACtB,IAEI92C,EACAH,EACAmwB,EAJA3b,EAASyiC,EAAOziC,OAChBmpB,EAAK3E,EAAI1jB,KAAK2W,EAAKsgB,EAAIizC,UAAYvzD,EAAIsgB,EAAIizC,UAAYjwB,EA0B3D,OArBI5xB,IAAO4xB,IACTtY,EAAOziC,OAAS+3B,EAAIkzC,eAAiB3B,EAAGzpE,IAAMA,EAAMD,GAGlDm4B,EAAImzC,aACNv/E,EAoBJ,SAAeA,EAAU82C,GACvB,IAAI32C,GAAS,EACTN,EAAS,GAEb,OAASM,EAAQH,EAASC,QACxBJ,EAAOM,GAASkJ,EAAUrJ,EAASG,GAAQ22C,GAG7C,OAAOj3C,EA5BME,CAAMqsC,EAAImzC,WAAYzoC,IAGnCj3C,EAAS29B,EAAG4O,EAAKpsC,EAAU82C,GAEvB1K,EAAIoqD,oBAAsB1/C,EAAOhN,OACnC9Z,EAAWgU,EAASnkC,EAAQusC,EAAIoqD,mBAAoB1/C,MAGlDA,EAAO9S,UAAW,EAClBnkC,EAAOmwB,SAAWA,GAItB8mB,EAAOziC,OAASA,EAETxU,EAiBT,SAAS4tD,EAAKrhB,EAAKpsC,EAAU82C,GAC3B,IAKI1B,EACApR,EANAnkC,EAAS,CACXX,KAAM,OACNc,SAAUA,EACVoU,KAAM,CAACiqF,WAAyB,WAAbjyD,EAAI6gC,MAAkC,mBAAb7gC,EAAI6gC,OAclD,OATIn2B,EAAOhN,MAAQgN,EAAO9S,WACxBoR,EAAMtzC,OAAOg1C,EAAOhN,MACpB9F,EAAWi6D,EAAc7oD,GACzBv1C,EAAOmwB,SAAW,CAChBzrB,MAAOy/B,EAASs6D,QAAQ,GACxB35F,IAAKq/B,EAASs6D,QAAQlpD,EAAIn1C,UAIvBJ,EAwBT,SAASuvD,EAAQhjB,EAAKpsC,EAAU82C,GAU9B,IATA,IAGIj3C,EACA2J,EACAsvB,EACAv0B,EACAI,EAPA64B,EAA6B,QAAxBsZ,EAAOziC,OAAOpL,MAAkBxF,EAAI9D,EACzCkB,EAAQ,GACRV,GAAS,IAOJA,EAAQisC,EAAI7qB,MAAMthB,QAEzBY,IADA2I,EAAY4iC,EAAI7qB,MAAMphB,IACLX,OAASgK,EAAUhK,OAAS,IAAM,IAAMgK,EAAUoY,MACjEpY,EAAUnJ,MAiBd,MAZuB,cAFvBR,EAAS29B,EAAG4O,EAAIhrB,QAASvgB,EAAOb,IAErBohB,SAA0B,YAAagrB,IAEhD7nC,GADAu0B,EAAMsT,EAAIoqD,qBACK19D,EAAIgvB,UAAY93B,EAAS8I,EAAIgvB,UAAUnjD,IACtDA,EAAMm0B,GAAOA,EAAIqlD,QAAUnuD,EAAS8I,EAAIqlD,QAAQ55E,MAEhD1E,EAAOyD,QAAU+F,EAAU+iC,EAAI9oC,QAASwzC,IAEnCvyC,GAASI,IAAQmyC,EAAOhN,OAC3BjqC,EAAOyD,QAAQ0sB,SAAW,CAACzrB,MAAOA,EAAOI,IAAKA,KAI3C9E,EAIT,SAASmkC,EAASviC,EAAMuiC,EAAU8S,GAChC,IACIxjC,EACAjS,EACAR,EAHAhB,EAASmwB,EAASgU,GAKtB,GAAkB,YAAdviC,EAAKvC,OACPoU,EAAO7R,EAAKzB,SAASyB,EAAKzB,SAASC,OAAS,IAIvC+jC,EAASm6C,QAAU7qE,GAAQA,EAAK0c,UAAY1c,EAAK0c,SAASrrB,MAC7D9E,EAAO8E,IAAMxD,OAAOU,OAAO,GAAIyR,EAAK0c,SAASrrB,MAG3CmyC,EAAOonD,SAAS,CAGlB,IAAK78F,KAFLR,EAAQ,GAEImjC,EAASziB,MACnB1gB,EAAM8jC,EAAKmS,EAAOziC,OAAQhT,GAAKiI,UAAY0mB,EAASgU,EAASziB,MAAMlgB,IAGrEI,EAAK2S,KAAO,CACV4b,SAAU,CACRuuE,QAASvuE,EAASgU,EAAS8jB,UAC3B02C,QAASx6D,EAASm6C,OAASnuD,EAASgU,EAASm6C,QAAU,KACvD/0E,WAAYvI,IAMpB,OAAOhB,EAGT,SAASmwB,EAASujE,GAChB,IAAIhvF,EAAQ0rB,EAAM,CAChBC,KAAMqjE,EAAIvgE,UACV7C,OAAQojE,EAAIrgE,SACZnE,OAAQwkE,EAAIlgE,cAEV1uB,EAAMsrB,EAAM,CACdC,KAAMqjE,EAAItgE,QACV9C,OAAQojE,EAAIpgE,OACZpE,OAAQwkE,EAAIjgE,YAEd,OAAO/uB,GAASI,EAAM,CAACJ,MAAOA,EAAOI,IAAKA,GAAO,KAGnD,SAASsrB,EAAMA,GACb,OAAOA,EAAMC,MAAQD,EAAME,OAASF,EAAQ,O,6BCpN9C,IAAI5b,EAAStV,EAAQ,IACjB4hB,EAAgB5hB,EAAQ,KAGxBmV,EAFUnV,EAAQ,IAEZgxB,CAAQ1b,EAAQ,IAAKsM,GAC/BzM,EAAI9P,YAAc,MAElBzF,EAAOC,QAAUsV,G,2mBCPjBvV,EAAOC,QAKP,SAAeqmC,EAAUF,GACvB,IAII05D,EACArlE,EACAz2B,EANAtC,EAAQ4kC,GAAY,GACpBrjB,EAAOmjB,GAAkB,MACzBlkC,EAAQ,GACR0D,EAAQ,EAKZ,KAAOA,EAAQlE,EAAMJ,QACnBqrD,EAAO56B,UAAYnsB,EACnB5B,EAAQ2oD,EAAOG,KAAKprD,IACpBo+F,EAAWp+F,EAAM0E,MAAMR,EAAO5B,EAAQA,EAAMxC,MAAQE,EAAMJ,WAGnDm5B,EAEmB,MAAbA,EACTv4B,EAAMq9B,GAAKugE,EACF59F,EAAM21B,UACf31B,EAAM21B,UAAUvyB,KAAKw6F,GAErB59F,EAAM21B,UAAY,CAACioE,GANnB78E,EAAO68E,EASTl6F,GAASk6F,EAASx+F,QAGhB0C,IACFy2B,EAAWz2B,EAAM,GACjB4B,KAIJ,MAAO,CAACrF,KAAM,UAAWkiB,QAASQ,EAAMxY,WAAYvI,EAAOb,SAAU,KArCvE,IAAIsrD,EAAS,S,6BCFb,IAAIj3C,EAAStV,EAAQ,IAGjBkV,EAFUlV,EAAQ,IAEXgxB,CAAQ1b,EAAQ,OAC3BJ,EAAK7P,YAAc,OAEnBzF,EAAOC,QAAUqV,G,6BCNjBtV,EAAOC,QAEP,SAAiBkrC,GACf,IAAIzpC,EAAQyB,OAAOgoC,GACf40D,EAAU,GACVpzC,EAAS,YAEb,KAAOA,EAAOG,KAAKprD,IACjBq+F,EAAQz6F,KAAKqnD,EAAO56B,WAKtB,OAFAguE,EAAQz6F,KAAK5D,EAAMJ,OAAS,GAErB,CACLq+F,QAASK,EACTC,WAAYD,EACZE,SAwBF,SAAuB5uE,GACrB,IAEIlB,EAFAmB,EAAOD,GAASA,EAAMC,KACtBC,EAASF,GAASA,EAAME,OAGvBC,MAAMF,IAAUE,MAAMD,MAAWD,EAAO,KAAKwuE,KAChD3vE,GAAU2vE,EAAQxuE,EAAO,IAAM,GAAKC,EAAS,GAAK,GAGpD,OAAOpB,GAAU,GAAKA,EAAS2vE,EAAQA,EAAQz+F,OAAS,GAAK8uB,GAAU,IA7BzE,SAAS4vE,EAAc5vE,GACrB,IAAI5uB,GAAS,EAEb,GAAI4uB,GAAU,GAAKA,EAAS2vE,EAAQA,EAAQz+F,OAAS,GACnD,OAASE,EAAQu+F,EAAQz+F,QACvB,GAAIy+F,EAAQv+F,GAAS4uB,EACnB,MAAO,CACLmB,KAAM/vB,EAAQ,EACdgwB,OAAQpB,GAAU2vE,EAAQv+F,EAAQ,IAAM,GAAK,EAC7C4uB,OAAQA,GAMhB,MAAO,M,6BCnCX,IAAI0P,EAAQ1/B,EAAQ,IAChBkV,EAAOlV,EAAQ,IACfmV,EAAMnV,EAAQ,IACd4lC,EAAO5lC,EAAQ,IACf+/F,EAAM//F,EAAQ,KACd4+E,EAAK5+E,EAAQ,IACb6+E,EAAS7+E,EAAQ,KAErBJ,EAAOC,QAaP,SAAmBsH,EAAM+C,GACvB,OAAO7I,EAAI8F,EAAgB,QAAV+C,EAAkBiL,EAAMD,IAZ3C,IAAI8qF,EAAgB,CAAC,MAAO,QAExB3+F,EAAMw9E,EAAO,QAiGjB,SAASohB,EAAMv9F,EAAM88E,EAAIjf,GACvB,IAMI77B,EANApvB,EAASirD,EACTtvC,EAAWvuB,EAAKuuB,SAChBhwB,EAAWyB,EAAKzB,SAChBu/E,EAAa,GACbt/E,EAASD,EAAWA,EAASC,OAAS,EACtCE,GAAS,EAWb,IARkB,YAAdsB,EAAKvC,OACc,SAAjBmV,EAAOpL,OAAqC,QAAjBxH,EAAK2f,UAClC/M,EAASH,GAGXqqE,EAAGe,aAAe3B,EAAGtpE,EAAOpL,UAGrB9I,EAAQF,IACfwjC,EAAQrjC,EAAIJ,EAASG,GAAQkU,IACvBkhF,WAAahX,EACnBgB,EAAWp/E,GAASsjC,EAkBtB,MAfkB,YAAdhiC,EAAKvC,MAAoC,SAAduC,EAAKvC,OAClCq/E,EAAGgB,WAAaA,GAGdvvD,GAAYA,EAASzrB,OAASyrB,EAASrrB,MACzC45E,EAAGiY,mBAAqB,CACtBxjE,UAAWhD,EAASzrB,MAAM2rB,KAC1BgD,SAAUlD,EAASzrB,MAAM4rB,OACzBkD,YAAarD,EAASzrB,MAAMwqB,OAC5BkE,QAASjD,EAASrrB,IAAIurB,KACtBiD,OAAQnD,EAASrrB,IAAIwrB,OACrBmD,UAAWtD,EAASrrB,IAAIoqB,SAIrBwvD,EArITn+E,EAAIq9B,SAASgwB,KAWb,SAAchsD,EAAM4S,GAClB,IACI44D,GADOxrE,EAAK2S,MAAQ,IACRiqF,WAAa,SAAW,YAExC,OAAOW,EAAMv9F,EAAM,CAAC49E,SAAU,YAAapS,KAAMA,GAAO54D,IAd1DjU,EAAIq9B,SAAS2xB,QA0Cb,SAAiB3tD,EAAM4S,GACrB,IAAIpL,EAAQoL,EAAOpL,MACfmkB,EAAUqR,EAAMh9B,EAAM,CAACzB,SAAU,KAErC,OAAO8+F,GAEP,SAAWl9E,EAAML,GACf,IACIg9D,EACA3oD,EACAv1B,EACAgB,EACA2H,EACA8vB,EANA54B,EAAS,GAQb,IAAKmB,KAAOkgB,EACVvY,EAAO27B,EAAKtwB,EAAQhT,IAGP,KAFbu0B,EAAOrU,EAAMlgB,KAEU2H,EAAKiO,UAAY2e,IAIxCv1B,EAAQ,CAACuhB,KAAMvgB,EAAKhB,OAAgB,IAATu1B,EAAgB,GAAK9zB,OAAO8zB,IAEnD5sB,EAAKC,QAAgD,IAAvC81F,EAAcl8F,QAAQmG,EAAKC,UAG9B,KAFb6vB,EAAMz3B,EAAIwB,QAAQ,MAGhBxC,EAAMb,OAAS,IAEfa,EAAMuhB,KAAOvgB,EAAI0D,MAAM+zB,EAAM,GAC7Bz4B,EAAMb,OAAS6B,EAAI0D,MAAM,EAAG+zB,IAG9Bz4B,EAAMk1B,UAAYooD,EAAG30E,EAAKC,QAG5B/I,EAAO+D,KAAK5D,IAGdk+E,EAAKygB,EAAMv9F,EAAM,CAAC49E,SAAUz9D,EAAMR,QAASQ,EAAML,MAAOrhB,GAASmU,GAEpD,aAATuN,IACF28D,EAAGj7E,QArET,SAAkB7B,EAAM4S,GACtB,OAAO2qF,EAAMv9F,EAAM,CAAC49E,SAAU,sBAAuBhrE,GAoEpCupC,CAASxwB,EAAQ9pB,QAAS+Q,IAGzC,OAAOkqE,IA3CKnxD,EAAS,CAACnkB,MAAOA,KA7CjC7I,EAAIq9B,SAAS9O,KAiCb,SAAcltB,EAAM4S,GAClB,OAAO2qF,EAAMv9F,EAAM,CAAC49E,SAAU,QAASh/E,MAAOoB,EAAKpB,OAAQgU,IAjC7DjU,EAAIq9B,SAAS/1B,QAoCb,SAAiBjG,EAAM4S,GACrB,OAAO2qF,EAAMv9F,EAAM,CAAC49E,SAAU,WAAYjrE,KAAM3S,EAAKpB,OAAQgU,IApC/DjU,EAAIq9B,SAAS6gD,QAkBb,SAAiB78E,EAAM4S,GACrB,OAAO2qF,EACLv9F,EACA,CACE49E,SAAU,gBACVz9D,KAAMngB,EAAKmgB,KACXE,SAAUrgB,EAAK08F,QAAU,GACzBp8E,SAAUtgB,EAAK28F,QAAU,IAE3B/pF,K,6BC7CJ,IAAIJ,EAAOlV,EAAQ,IACfmV,EAAMnV,EAAQ,IACd4lC,EAAO5lC,EAAQ,IACfigE,EAAcjgE,EAAQ,KACtB8lC,EAAS9lC,EAAQ,IACjB+lC,EAAS/lC,EAAQ,IACjBkkC,EAAQlkC,EAAQ,KAChB4+E,EAAK5+E,EAAQ,IACbuwB,EAAUvwB,EAAQ,IAElB0uD,EAAOn+B,EAAQ,QACf8/B,EAAU9/B,EAAQ,WAClBX,EAAOW,EAAQ,QAkDnB,SAASwvE,EAAIn/F,EAAG8B,EAAM60C,GACpB,IAMIj1C,EACAhB,EAPAi/D,EAAehpB,EAAIjiC,OACnBA,EAASirD,EACT19C,EAAOngB,EAAK2f,QACZjY,EAAa,GACbpJ,EAAQ,GACRI,GAAS,EASb,IAAKkB,IALsB,SAAvBi+D,EAAar2D,OAA2C,QAAvB2Y,EAAK5M,gBACxCX,EAASH,EACToiC,EAAIjiC,OAASA,GAGH5S,EAAK2H,WACf61F,EAAa91F,EAAY9H,EAAKI,EAAK2H,WAAW/H,GAAMi1C,EAAK10B,GAgB3D,GAbI00B,EAAI4oD,OACe,SAAjB7qF,EAAOpL,MACT2Y,EAAOA,EAAKzf,cAEZgH,EAAWosB,UAAYooD,EAAGtpE,EAAOpL,QAIjCqtC,EAAI92C,SACN82C,EAAIj1C,MACJ8H,EAAW9H,IAAMi1C,EAAI92C,OAAS82C,EAAIj1C,KAGhCI,EAAKzB,SACP,OAASG,EAAQsB,EAAKzB,SAASC,QAC7BI,EAAQoB,EAAKzB,SAASG,GAElBivD,EAAQ/uD,GACVN,EAAMkE,KAAK66F,EAAIn/F,EAAGU,EAAOi2C,IAChB3nB,EAAKtuB,IACdN,EAAMkE,KAAK5D,EAAMA,OAUvB,OAJAi2C,EAAIjiC,OAASirD,EAINv/D,EAAME,OACTN,EAAEwV,KAAK1T,EAAMmgB,EAAMzY,EAAYpJ,GAC/BJ,EAAEwV,KAAK1T,EAAMmgB,EAAMzY,GAGzB,SAAS81F,EAAap+F,EAAOkI,EAAM1I,EAAOi2C,EAAK10B,GAC7C,IACIu9E,EADAn2F,EAAO27B,EAAK2R,EAAIjiC,OAAQtL,GAMjB,MAAT1I,GACAA,IAAUA,IACC,IAAVA,IAAoBi2C,EAAI8oD,KAAO9oD,EAAI4oD,MAAQ5oD,EAAI+oD,eAC9Ch/F,GAAS2I,EAAKiO,UAAYq/B,EAAI8oD,KAAO9oD,EAAI4oD,MAAQ5oD,EAAI+oD,eAKrDh/F,GAA0B,kBAAVA,GAAsB,WAAYA,IAGpDA,GAAS2I,EAAKqO,eAAiBytB,EAASD,GAAQpU,UAAUpwB,IAIxD2I,EAAKiO,SAAWq/B,EAAI+oD,cACtBh/F,EAAQ,IAKU,UAAlB2I,EAAKM,UACY,kBAAVjJ,IACNi2C,EAAIgpD,OAAShpD,EAAI8oD,KAAO9oD,EAAI4oD,QAE7B7+F,EA8CJ,SAAoBA,EAAO+gB,GACzB,IAAIvhB,EAAS,GAEb,IACEojC,EAAM5iC,EAAO6iC,GACb,MAAOiL,GAGP,MAFAA,EAAMpB,QACJ3rB,EAAU,UAAY+sB,EAAMpB,QAAQhoC,MAAM,YAAY9E,QAClDkuC,EAGR,OAAOtuC,EAEP,SAASqjC,EAASthB,EAAMvhB,GACG,SAArBuhB,EAAK7c,MAAM,EAAG,KAAe6c,EAAO,MAAQA,EAAK7c,MAAM,IAC3DlF,EAAO+hB,EAAKthB,QAAQ,YAAa4/D,IAAkB7/D,GA7D3C8/D,CAAW9/D,EAAOuhB,IAGxB00B,EAAI8oD,IACgB,UAAlBp2F,EAAKM,WAAsB61F,EAAU,SAC/Bn2F,EAAKE,kBACXotC,EAAI4oD,KACgB,UAAlBl2F,EAAKM,WAAsB61F,EAAU,cAChC7oD,EAAI+oD,cACbF,EAAU,UAIVA,GACGt+F,EAAMs+F,KAAUt+F,EAAMs+F,GAAW,IACtCt+F,EAAMs+F,GAASn2F,EAAKQ,WAAanJ,GACxB2I,EAAKC,OAASqtC,EAAIgpD,MAC3Bz+F,EAAMm+D,EAAYh2D,EAAKM,WAAaN,EAAKM,UAAYjJ,EAErDQ,EAAMmI,EAAKQ,WAAanJ,GAa5B,SAASg/F,EAAY1/F,GACnB,OAAO4vB,QAAQ5vB,GAAKA,EAAE+V,SAAW/V,EAAE4/F,SAgCrC,SAASr/B,EAAcnrD,EAAIqrD,GACzB,OAAOA,EAAGj+D,cAxMZxD,EAAOC,QAEP,SAAiBe,EAAG8B,EAAMkvB,GACxB,IAIInxB,EAJAoxB,EAAWD,GAAW,GACtBwe,EA0JN,SAAexvC,GACb,IAAI8B,EAAO9B,GAAKA,EAAE,OAClB,OAAO4vB,QACL9tB,IAAS,WAAYA,GAAQ,WAAYA,IAAqB,MAAZA,EAAKJ,KA7JjDi+F,CAAM3/F,GACVuvC,EA0KN,SAAavvC,GACX,IAAI8B,EAAO9B,GAAKA,EAAE,OAClB,OAAO4vB,QAAQ9tB,GAAQA,EAAKiU,SAAWjU,EAAKiU,QAAQ8pF,QA5K5CJ,CAAIz/F,GACR8/F,EAqKN,SAAc9/F,GACZ,OAAOA,GAAuB,gBAAlBA,EAAE,OAAOT,KAtKZggG,CAAKv/F,GAGd,GAAiB,oBAANA,EACT,MAAM,IAAI2F,MAAM,uBAGM,kBAAbsrB,GAA6C,mBAAbA,GACzCpxB,EAASoxB,EACTA,EAAW,IAEXpxB,EAASoxB,EAASpxB,OAGpB,GAAIiuD,EAAKhsD,GACPA,EAC2B,IAAzBA,EAAKzB,SAASC,QAAgBmvD,EAAQ3tD,EAAKzB,SAAS,IAChDyB,EAAKzB,SAAS,GACd,CACEd,KAAM,UACNkiB,QAAS,MACThY,WAAY,GACZpJ,SAAUyB,EAAKzB,eAElB,IAAKovD,EAAQ3tD,GAClB,MAAM,IAAI6D,MACR,mCAAsC7D,GAAQA,EAAKvC,MAASuC,GAAQ,KAIxE,OAAOq9F,EAAIn/F,EAAG8B,EAAM,CAClB4S,OAA2B,QAAnBuc,EAAS3nB,MAAkBiL,EAAMD,EACzCzU,OAAkB,MAAVA,EAAkB2vC,GAAKD,GAAKuwD,EAAK,KAAO,KAAQjgG,EACxD6B,IAAK,EACLi+F,MAAOnwD,EACPiwD,IAAKlwD,EACLgwD,KAAMO,EACNJ,YAAaA,EAAY1/F,O,8OC3D7B,IAAI84B,EAA6B,EAAQ,KA2DzC95B,EAAOC,QAzDP,SAAoC+zB,EAAG+sE,GACrC,IAAIC,EAEJ,GAAsB,qBAAXn3D,QAAgD,MAAtB7V,EAAE6V,OAAOtF,UAAmB,CAC/D,GAAIvhC,MAAMC,QAAQ+wB,KAAOgtE,EAAKlnE,EAA2B9F,KAAO+sE,GAAkB/sE,GAAyB,kBAAbA,EAAE1yB,OAAqB,CAC/G0/F,IAAIhtE,EAAIgtE,GACZ,IAAI7+F,EAAI,EAEJ0tC,EAAI,aAER,MAAO,CACL/qC,EAAG+qC,EACHziB,EAAG,WACD,OAAIjrB,GAAK6xB,EAAE1yB,OAAe,CACxB21C,MAAM,GAED,CACLA,MAAM,EACNv1C,MAAOsyB,EAAE7xB,OAGbglC,EAAG,SAAW85D,GACZ,MAAMA,GAER5yD,EAAGwB,GAIP,MAAM,IAAI9tC,UAAU,yIAGtB,IAEIkf,EAFAigF,GAAmB,EACnBC,GAAS,EAEb,MAAO,CACLr8F,EAAG,WACDk8F,EAAKhtE,EAAE6V,OAAOtF,aAEhBnX,EAAG,WACD,IAAIoR,EAAOwiE,EAAG5lE,OAEd,OADA8lE,EAAmB1iE,EAAKyY,KACjBzY,GAET2I,EAAG,SAAWi6D,GACZD,GAAS,EACTlgF,EAAMmgF,GAER/yD,EAAG,WACD,IACO6yD,GAAoC,MAAhBF,EAAW,QAAWA,EAAW,SAC1D,QACA,GAAIG,EAAQ,MAAMlgF,O,gBCrD1B,IAAIuxB,EAAmB,EAAQ,KAW/BxyC,EAAOC,QATP,SAAqC+zB,EAAG0e,GACtC,GAAK1e,EAAL,CACA,GAAiB,kBAANA,EAAgB,OAAOwe,EAAiBxe,EAAG0e,GACtD,IAAItlB,EAAI5qB,OAAOK,UAAUgV,SAASrB,KAAKwd,GAAG5tB,MAAM,GAAI,GAEpD,MADU,WAANgnB,GAAkB4G,EAAEhtB,cAAaomB,EAAI4G,EAAEhtB,YAAYic,MAC7C,QAANmK,GAAqB,QAANA,EAAoBpqB,MAAMkD,KAAK8tB,GACxC,cAAN5G,GAAqB,2CAA2C5lB,KAAK4lB,GAAWolB,EAAiBxe,EAAG0e,QAAxG,K,cCEF1yC,EAAOC,QAVP,SAA2B+4B,EAAKgB,IACnB,MAAPA,GAAeA,EAAMhB,EAAI13B,UAAQ04B,EAAMhB,EAAI13B,QAE/C,IAAK,IAAIa,EAAI,EAAG83B,EAAO,IAAIj3B,MAAMg3B,GAAM73B,EAAI63B,EAAK73B,IAC9C83B,EAAK93B,GAAK62B,EAAI72B,GAGhB,OAAO83B,I,6BC+BT,SAASx4B,EAAIqB,GACX,MAAkB,SAAdA,EAAKvC,KACAuC,EAAKpB,MAGPoB,EAAKzB,SAAW6vB,EAAIpuB,GAAQ,GAGrC,SAASouB,EAAIpuB,GAMX,IALA,IAAIzB,EAAWyB,EAAKzB,SAChBC,EAASD,EAASC,OAClBE,GAAS,EACTN,EAAS,KAEJM,EAAQF,GACfJ,EAAOM,GAASC,EAAIJ,EAASG,IAG/B,OAAON,EAAOkqB,KAAK,IA/BrBprB,EAAOC,QAEP,SAAkB6C,GAGhB,GAAI,aAAcA,EAChB,OAAOouB,EAAIpuB,GAIb,MAAO,UAAWA,EAAOA,EAAKpB,MAAQ,K,6BCjCxC,IAAIqsC,EAAY3tC,EAAQ,KAExBJ,EAAOC,QAAU8tC,EAEjBA,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,KAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,KAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,KAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,KAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,KAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,IAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,KAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,KAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,KAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,KAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,KAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3B2tC,EAAU3hB,SAAShsB,EAAQ,MAC3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WACA,OACA,OACA,QACA,WACA,OACA,QACA,OACA,MACA,IACA,IACA,QACA,QACA,QACA,OACA,kBACA,MACA,SACA,MACA,QACA,OACA,QACA,SACA,OACA,UACA,UACA,OACA,UACA,MACA,gBACA,WACA,QACA,QACA,QACA,OACA,OACA,OACA,OACA,MACA,OACA,OACA,QACA,UACA,YACA,OACA,QACA,OACA,SACA,gBACA,SACA,QACA,YACA,WACA,oBACA,kBACA,OACA,YACA,MACA,QACA,MACA,QACA,MACA,iBACA,WAEF,uBAAwB,CAEtB,UACA,YACA,YACA,KACA,SACA,MACA,IACA,WACA,KACA,SACA,QACA,SACA,YACA,aACA,WACA,SACA,UACA,gBACA,oBACA,YACA,UACA,mBACA,KACA,WACA,IACA,KACA,MAEF,oBAAqB,CACnB,aACA,WACA,SACA,mBACA,SACA,aACA,aACA,YACA,mBACA,kBACA,WACA,aACA,OACA,WACA,UACA,aACA,YACA,WACA,OACA,OACA,MACA,WACA,UACA,SACA,UACA,aACA,aACA,SACA,QACA,UACA,oBACA,aACA,cACA,OACA,SACA,gBACA,oBACA,gCACA,iCACA,YACA,UACA,WACA,SACA,aACA,aACA,UACA,SACA,OACA,eACA,eACA,QACA,OACA,SACA,YACA,UACA,QACA,WACA,cACA,WACA,QACA,YACA,aACA,aACA,qBACA,SACA,SACA,WACA,eACA,UACA,aACA,OACA,UACA,QACA,SACA,SACA,OACA,aACA,WACA,YACA,MACA,aACA,UACA,aACA,SACA,cACA,YACA,OACA,YACA,SACA,YACA,iBACA,UACA,eACA,UACA,gBACA,eACA,YACA,mBACA,UACA,SACA,WACA,OACA,aACA,oBACA,YACA,UACA,UACA,YACA,WACA,WACA,aACA,OACA,cACA,iBACA,QACA,UACA,YACA,gBACA,cACA,oBACA,MACA,UACA,OACA,SACA,OACA,sBACA,aACA,aACA,mBACA,UACA,cACA,SACA,aACA,WACA,kBACA,OACA,OACA,QACA,QACA,QACA,YACA,SACA,eACA,eACA,WACA,WACA,MACA,aACA,YACA,WACA,QACA,oBACA,eACA,OACA,cACA,QACA,UACA,UACA,OACA,cACA,SACA,OACA,gBACA,YACA,eAEF,eAAgB,CACd,UACA,kBACA,MACA,cACA,iBACA,aACA,UACA,eACA,UACA,WACA,cACA,MACA,IACA,IACA,cACA,IACA,MACA,IACA,KACA,SACA,cACA,wBACA,OACA,IACA,OACA,IACA,WACA,SACA,cACA,KACA,QACA,aACA,SACA,QACA,SACA,QACA,QACA,QACA,UACA,SACA,UACA,WACA,KACA,iBACA,KACA,MACA,UACA,aACA,KACA,KACA,MACA,QACA,WACA,SACA,KACA,UACA,UACA,MACA,SACA,KACA,SACA,QACA,OACA,WACA,aACA,UACA,WACA,OACA,YACA,cACA,QACA,MACA,iBACA,YACA,yBACA,aACA,QACA,aACA,QACA,UACA,MACA,SACA,wBACA,MACA,OACA,KACA,OACA,WACA,QACA,YACA,cAGJntG,OAAO+B,KAAKorG,GAAUr7F,SAAQ,SAAU1P,GACtCyqG,EAAOzqG,GAAGoE,QAAU0mG,EAAiBC,EAAS/qG,OA0NhDyqG,EAAOI,YAAYzmG,QAAU0mG,EAxNX,CAEhB,MACA,QACA,OACA,MACA,OACA,QACA,QACA,OACA,QACA,UACA,MACA,MACA,OACA,QACA,QACA,UACA,SACA,OACA,OACA,QACA,QACA,MACA,SACA,KACA,UACA,YACA,MACA,OACA,YACA,QACA,OACA,QACA,OACA,QACA,UACA,KACA,QACA,OACA,SACA,aACA,aACA,WACA,QACA,UACA,OACA,KACA,OACA,SACA,QACA,OACA,SACA,MACA,OACA,SACA,MACA,WACA,YACA,iBACA,kBACA,SACA,YACA,QACA,YACA,YACA,WACA,cACA,UACA,YACA,gBACA,mBACA,SACA,MACA,UACA,cACA,aACA,SACA,cACA,OACA,eACA,YACA,UACA,eACA,eACA,aACA,kBACA,QACA,aACA,SACA,eACA,YACA,eACA,WACA,SACA,WACA,aACA,OACA,YACA,gBACA,eACA,OACA,UACA,UACA,YACA,gBACA,iBACA,kBACA,gBACA,UACA,OACA,YACA,cACA,UACA,cACA,aACA,OACA,aACA,iBACA,aACA,OACA,eACA,cACA,WACA,gBACA,YACA,UACA,QACA,aACA,QACA,OACA,aACA,UACA,aACA,aACA,QACA,OACA,YACA,iBACA,YACA,UACA,eACA,cACA,iBACA,YACA,oBACA,kBACA,QACA,iBACA,eACA,gBACA,kBACA,cACA,gBACA,gBACA,kBACA,cACA,OACA,UACA,YACA,YACA,UACA,eACA,iBACA,aACA,OACA,SACA,cACA,qBACA,SACA,mBACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,gBACA,cACA,iBACA,cACA,eACA,aACA,cACA,WACA,iBACA,oBACA,cACA,qBACA,WACA,eACA,mBACA,oBACA,iBACA,UACA,iBACA,iBACA,cACA,SACA,gBACA,eACA,eACA,aACA,aACA,UACA,oBACA,eACA,YACA,cACA,wBACA,oBAGFrsG,EAAMK,UAAU2rG,OAASA,EA/4B1B,CAg5BEhsG,GAp5BLrD,EAAOC,QAAUovG,EACjBA,EAAO5pG,YAAc,SACrB4pG,EAAO3pG,QAAU,I,6BCCjB,SAASkqG,EAAuBvsG,GAC9BA,EAAMK,UAAU,4BAA8BL,EAAMK,UAAUoF,OAC5D,QACA,CACEC,QAAS,SACTI,QAAS,oEACTG,SAAU,kDAGPjG,EAAMK,UAAU,4BAA4B,cACnDL,EAAMK,UAAU6F,aAAa,2BAA4B,UAAW,CAClEwpC,KAAM,CACJ/pC,QAAS,gGACTE,YAAY,EACZD,QAAQ,EACRS,OAAQ,CACN2hB,SAAU,CACRriB,QAAS,yDACTU,OAAQ,CACNJ,SAAU,IACVH,QAAS,OACTU,YAAa,aAGjBA,YAAa,QAGjBsrD,OAAQ,CAENnsD,QAAS,kDACTE,YAAY,EACZO,MAAO,UACPC,OAAQ,CACNG,YAAa,QApCrB7J,EAAOC,QAAU2vG,EACjBA,EAAuBnqG,YAAc,yBACrCmqG,EAAuBlqG,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SAAU,yufACVE,SAAU,CACR,8CACA,CAEEN,QAAS,iBACTE,YAAY,GAEd,CAEEF,QAAS,iBACTE,YAAY,IAGhBW,YAAa,yBAEfxG,EAAMK,UAAUs2G,IAAhB,KAA4BtwG,OAAOwhB,KAAO7nB,EAAMK,UAAUs2G,IA5C5Dh6G,EAAOC,QAAU+5G,EACjBA,EAAIv0G,YAAc,MAClBu0G,EAAIt0G,QAAU,I,6BCCd,SAASw0G,EAAM72G,GACbA,EAAMK,UAAUw2G,MAAQ,CACtBnxG,QAAS,OACTI,QAAS,s0BACTwiB,UAAW,CACT3iB,QAAS,cACTS,MAAO,YAET4hB,SAAU,WACVhiB,OAAQ,gBACRC,SAAU,mBACVO,YAAa,yBAdjB7J,EAAOC,QAAUi6G,EACjBA,EAAMz0G,YAAc,QACpBy0G,EAAMx0G,QAAU,I,6BCChB,SAASy0G,EAAQ92G,IACd,SAAWA,GACV,IAAI+2G,EAAY,CAEd,MACA,MACA,OACA,MACA,MACA,OACA,MACA,OACA,OACA,OACA,OACA,MACA,UACA,QACA,QACA,cACA,OACA,SACA,QACA,SACA,iBACA,aACA,QACA,cACA,OACA,aACA,QACA,gBACA,cACA,gBACA,cACA,WACA,aACA,QACA,SACA,eACA,OACA,OACA,OACA,OACA,UACA,OACA,eACA,SACA,YACA,OACA,QACA,QACA,WACA,QACA,YACA,SACA,QACA,OACA,aACA,UACA,cACA,aACA,SACA,aACA,SACA,WACA,eACA,SACA,cACA,SACA,qBACA,gBACA,UACA,SACA,SACA,OACA,kBACA,WACA,UACA,eACA,eACA,UACA,OACA,QACA,QACA,eACA,aACA,SACA,UACA,OACA,eACA,QACA,SACA,OACA,YACA,mBACA,OACA,kBACA,eACA,iBACA,QACA,SACA,QACA,SACA,SACA,OACA,cACA,YACA,QACA,OACA,UACA,gBACA,QACA,WACA,OACA,iBACA,eACA,kBACA,gBACA,cACA,aACA,aACA,oBACA,UACA,MACA,OACA,UACA,SACA,SACA,YACA,MACA,OACA,QACA,UACA,MACA,gBACA,gBACA,aACA,WACA,YACA,gBACA,WACA,eACA,QACA,QACA,OACA,WACA,MACA,OACA,SACA,MACA,OACA,SACA,OACA,OACA,gBACA,QACA,OACA,eACA,UACA,OACA,SACA,YACA,MACA,OACA,iBACA,MACA,OACA,QACA,oBACA,SACA,UACA,aACA,gBACA,cACA,cACA,cACA,gBACA,SACA,SACA,UACA,iBACA,aACA,mBACA,eACA,YACA,QACA,OACA,SACA,SACA,QACA,aACA,cACA,cACA,eACA,YACA,UACA,eACA,YACA,YACA,OACA,UACA,OACA,UACA,UACA,aACA,YACA,SACA,UACA,cACA,YACA,WACA,WACA,QACA,SACA,QACA,QACA,QACA,OACA,WACA,WACA,QACA,OACA,aACA,OACA,WACA,SACA,aACA,eACA,YAmBEC,EAAkB,OAHtBD,EAAYA,EAAUjtF,KAAI,SAAU7jB,GAClC,OAAOA,EAAS3H,QAAQ,IAAK,WAESypB,KAAK,KAAO,OACpD/nB,EAAMK,UAAUy2G,QAAU92G,EAAMK,UAAUoF,OAAO,aAAc,IAC/DzF,EAAMK,UAAU6F,aAAa,UAAW,SAAU,CAChDoB,SAAU,CACR3B,QAAS,oHACTC,QAAQ,EACRS,OAAQ,CACNP,QAASgiB,OAAO,YAAckvF,EAAkB,iBAItDh3G,EAAMK,UAAUy2G,QAAQxwG,OAAOD,OAAS,CACtCs/B,IAAK,CAEHhgC,QAAS,yEACTC,QAAQ,GAEVglB,OAAQ,CAENjlB,QAAS,gGACTC,QAAQ,IAGZ5F,EAAMK,UAAU6F,aAAa,UAAW,WAAY,CAClDgiB,QAAS,CACPviB,QAASmiB,OAAO,SA1CG,CACrB,WACA,OACA,UACA,QACA,YACA,aACA,gBACA,SACA,SACA,SACA,UACA,QA8B8CC,KAAK,KAAO,QACxD3hB,MAAO,aAjRZ,CAoREpG,GAxRLrD,EAAOC,QAAUk6G,EACjBA,EAAQ10G,YAAc,UACtB00G,EAAQz0G,QAAU,I,6BCClB,SAAS40G,EAAOj3G,GACdA,EAAMK,UAAU42G,OAAS,CACvB3wG,OAAQ,cACRZ,QAAS,CACP,CACEC,QAAS,yBACTC,QAAQ,GAE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","file":"static/js/main.ec4559bf.chunk.js","sourcesContent":["'use strict'\n\nfunction markdownLineEnding(code) {\n return code < -2\n}\n\nmodule.exports = markdownLineEnding\n","'use strict'\n\nvar markdownSpace = require('../character/markdown-space.js')\n\nfunction spaceFactory(effects, ok, type, max) {\n var limit = max ? max - 1 : Infinity\n var size = 0\n return start\n\n function start(code) {\n if (markdownSpace(code)) {\n effects.enter(type)\n return prefix(code)\n }\n\n return ok(code)\n }\n\n function prefix(code) {\n if (markdownSpace(code) && size++ < limit) {\n effects.consume(code)\n return prefix\n }\n\n effects.exit(type)\n return ok(code)\n }\n}\n\nmodule.exports = spaceFactory\n","'use strict'\n\nmodule.exports = all\n\nvar one = require('./one')\n\nfunction all(h, parent) {\n var nodes = parent.children || []\n var length = nodes.length\n var values = []\n var index = -1\n var result\n var head\n\n while (++index < length) {\n result = one(h, nodes[index], parent)\n\n if (result) {\n if (index && nodes[index - 1].type === 'break') {\n if (result.value) {\n result.value = result.value.replace(/^\\s+/, '')\n }\n\n head = result.children && result.children[0]\n\n if (head && head.value) {\n head.value = head.value.replace(/^\\s+/, '')\n }\n }\n\n values = values.concat(result)\n }\n }\n\n return values\n}\n","function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nmodule.exports = _classCallCheck;","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nmodule.exports = _createClass;","'use strict'\n\nmodule.exports = u\n\nfunction u(type, props, value) {\n var node\n\n if (\n (value === null || value === undefined) &&\n (typeof props !== 'object' || Array.isArray(props))\n ) {\n value = props\n props = {}\n }\n\n node = Object.assign({type: String(type)}, props)\n\n if (Array.isArray(value)) {\n node.children = value\n } else if (value !== null && value !== undefined) {\n node.value = String(value)\n }\n\n return node\n}\n","'use strict'\n\nmodule.exports = markupTemplating\nmarkupTemplating.displayName = 'markupTemplating'\nmarkupTemplating.aliases = []\nfunction markupTemplating(Prism) {\n ;(function (Prism) {\n /**\n * Returns the placeholder for the given language id and index.\n *\n * @param {string} language\n * @param {string|number} index\n * @returns {string}\n */\n function getPlaceholder(language, index) {\n return '___' + language.toUpperCase() + index + '___'\n }\n Object.defineProperties((Prism.languages['markup-templating'] = {}), {\n buildPlaceholders: {\n /**\n * Tokenize all inline templating expressions matching `placeholderPattern`.\n *\n * If `replaceFilter` is provided, only matches of `placeholderPattern` for which `replaceFilter` returns\n * `true` will be replaced.\n *\n * @param {object} env The environment of the `before-tokenize` hook.\n * @param {string} language The language id.\n * @param {RegExp} placeholderPattern The matches of this pattern will be replaced by placeholders.\n * @param {(match: string) => boolean} [replaceFilter]\n */\n value: function (env, language, placeholderPattern, replaceFilter) {\n if (env.language !== language) {\n return\n }\n var tokenStack = (env.tokenStack = [])\n env.code = env.code.replace(placeholderPattern, function (match) {\n if (typeof replaceFilter === 'function' && !replaceFilter(match)) {\n return match\n }\n var i = tokenStack.length\n var placeholder // Check for existing strings\n while (\n env.code.indexOf((placeholder = getPlaceholder(language, i))) !==\n -1\n )\n ++i // Create a sparse array\n tokenStack[i] = match\n return placeholder\n }) // Switch the grammar to markup\n env.grammar = Prism.languages.markup\n }\n },\n tokenizePlaceholders: {\n /**\n * Replace placeholders with proper tokens after tokenizing.\n *\n * @param {object} env The environment of the `after-tokenize` hook.\n * @param {string} language The language id.\n */\n value: function (env, language) {\n if (env.language !== language || !env.tokenStack) {\n return\n } // Switch the grammar back\n env.grammar = Prism.languages[language]\n var j = 0\n var keys = Object.keys(env.tokenStack)\n function walkTokens(tokens) {\n for (var i = 0; i < tokens.length; i++) {\n // all placeholders are replaced already\n if (j >= keys.length) {\n break\n }\n var token = tokens[i]\n if (\n typeof token === 'string' ||\n (token.content && typeof token.content === 'string')\n ) {\n var k = keys[j]\n var t = env.tokenStack[k]\n var s = typeof token === 'string' ? token : token.content\n var placeholder = getPlaceholder(language, k)\n var index = s.indexOf(placeholder)\n if (index > -1) {\n ++j\n var before = s.substring(0, index)\n var middle = new Prism.Token(\n language,\n Prism.tokenize(t, env.grammar),\n 'language-' + language,\n t\n )\n var after = s.substring(index + placeholder.length)\n var replacement = []\n if (before) {\n replacement.push.apply(replacement, walkTokens([before]))\n }\n replacement.push(middle)\n if (after) {\n replacement.push.apply(replacement, walkTokens([after]))\n }\n if (typeof token === 'string') {\n tokens.splice.apply(tokens, [i, 1].concat(replacement))\n } else {\n token.content = replacement\n }\n }\n } else if (\n token.content\n /* && typeof token.content !== 'string' */\n ) {\n walkTokens(token.content)\n }\n }\n return tokens\n }\n walkTokens(env.tokens)\n }\n }\n })\n })(Prism)\n}\n","'use strict'\n\nfunction markdownSpace(code) {\n return code === -2 || code === -1 || code === 32\n}\n\nmodule.exports = markdownSpace\n","'use strict'\n\nvar splice = require('../constant/splice.js')\n\n// causes a stack overflow in V8 when trying to insert 100k items for instance.\n\nfunction chunkedSplice(list, start, remove, items) {\n var end = list.length\n var chunkStart = 0\n var parameters // Make start between zero and `end` (included).\n\n if (start < 0) {\n start = -start > end ? 0 : end + start\n } else {\n start = start > end ? end : start\n }\n\n remove = remove > 0 ? remove : 0 // No need to chunk the items if theres only a couple (10k) items.\n\n if (items.length < 10000) {\n parameters = Array.from(items)\n parameters.unshift(start, remove)\n splice.apply(list, parameters)\n } else {\n // Delete `remove` items starting from `start`\n if (remove) splice.apply(list, [start, remove]) // Insert the items in chunks to not cause stack overflows.\n\n while (chunkStart < items.length) {\n parameters = items.slice(chunkStart, chunkStart + 10000)\n parameters.unshift(start, 0)\n splice.apply(list, parameters)\n chunkStart += 10000\n start += 10000\n }\n }\n}\n\nmodule.exports = chunkedSplice\n","'use strict'\n\nfunction markdownLineEndingOrSpace(code) {\n return code < 0 || code === 32\n}\n\nmodule.exports = markdownLineEndingOrSpace\n","'use strict';\n\nclass Mixin {\n constructor(host) {\n const originalMethods = {};\n const overriddenMethods = this._getOverriddenMethods(this, originalMethods);\n\n for (const key of Object.keys(overriddenMethods)) {\n if (typeof overriddenMethods[key] === 'function') {\n originalMethods[key] = host[key];\n host[key] = overriddenMethods[key];\n }\n }\n }\n\n _getOverriddenMethods() {\n throw new Error('Not implemented');\n }\n}\n\nMixin.install = function(host, Ctor, opts) {\n if (!host.__mixins) {\n host.__mixins = [];\n }\n\n for (let i = 0; i < host.__mixins.length; i++) {\n if (host.__mixins[i].constructor === Ctor) {\n return host.__mixins[i];\n }\n }\n\n const mixin = new Ctor(host, opts);\n\n host.__mixins.push(mixin);\n\n return mixin;\n};\n\nmodule.exports = Mixin;\n","'use strict'\n\nmodule.exports = visit\n\nvar visitParents = require('unist-util-visit-parents')\n\nvar CONTINUE = visitParents.CONTINUE\nvar SKIP = visitParents.SKIP\nvar EXIT = visitParents.EXIT\n\nvisit.CONTINUE = CONTINUE\nvisit.SKIP = SKIP\nvisit.EXIT = EXIT\n\nfunction visit(tree, test, visitor, reverse) {\n if (typeof test === 'function' && typeof visitor !== 'function') {\n reverse = visitor\n visitor = test\n test = null\n }\n\n visitParents(tree, test, overload, reverse)\n\n function overload(node, parents) {\n var parent = parents[parents.length - 1]\n var index = parent ? parent.children.indexOf(node) : null\n return visitor(node, index, parent)\n }\n}\n","'use strict'\n\nvar fromCharCode = require('../constant/from-char-code.js')\n\nfunction regexCheck(regex) {\n return check\n\n function check(code) {\n return regex.test(fromCharCode(code))\n }\n}\n\nmodule.exports = regexCheck\n","var setPrototypeOf = require(\"./setPrototypeOf\");\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}\n\nmodule.exports = _inherits;","var getPrototypeOf = require(\"./getPrototypeOf\");\n\nvar isNativeReflectConstruct = require(\"./isNativeReflectConstruct\");\n\nvar possibleConstructorReturn = require(\"./possibleConstructorReturn\");\n\nfunction _createSuper(Derived) {\n var hasNativeReflectConstruct = isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return possibleConstructorReturn(this, result);\n };\n}\n\nmodule.exports = _createSuper;","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","'use strict'\n\nvar assign = require('../constant/assign.js')\n\nfunction shallow(object) {\n return assign({}, object)\n}\n\nmodule.exports = shallow\n","'use strict'\n\nmodule.exports = c\nc.displayName = 'c'\nc.aliases = []\nfunction c(Prism) {\n Prism.languages.c = Prism.languages.extend('clike', {\n comment: {\n pattern: /\\/\\/(?:[^\\r\\n\\\\]|\\\\(?:\\r\\n?|\\n|(?![\\r\\n])))*|\\/\\*[\\s\\S]*?(?:\\*\\/|$)/,\n greedy: true\n },\n 'class-name': {\n pattern: /(\\b(?:enum|struct)\\s+(?:__attribute__\\s*\\(\\([\\s\\S]*?\\)\\)\\s*)?)\\w+|\\b[a-z]\\w*_t\\b/,\n lookbehind: true\n },\n keyword: /\\b(?:__attribute__|_Alignas|_Alignof|_Atomic|_Bool|_Complex|_Generic|_Imaginary|_Noreturn|_Static_assert|_Thread_local|asm|typeof|inline|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|union|unsigned|void|volatile|while)\\b/,\n function: /[a-z_]\\w*(?=\\s*\\()/i,\n number: /(?:\\b0x(?:[\\da-f]+(?:\\.[\\da-f]*)?|\\.[\\da-f]+)(?:p[+-]?\\d+)?|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e[+-]?\\d+)?)[ful]{0,4}/i,\n operator: />>=?|<<=?|->|([-+&|:])\\1|[?:~]|[-+*/%&|^!=<>]=?/\n })\n Prism.languages.insertBefore('c', 'string', {\n macro: {\n // allow for multiline macro definitions\n // spaces after the # character compile fine with gcc\n pattern: /(^\\s*)#\\s*[a-z](?:[^\\r\\n\\\\/]|\\/(?!\\*)|\\/\\*(?:[^*]|\\*(?!\\/))*\\*\\/|\\\\(?:\\r\\n|[\\s\\S]))*/im,\n lookbehind: true,\n greedy: true,\n alias: 'property',\n inside: {\n string: [\n {\n // highlight the path of the include statement as a string\n pattern: /^(#\\s*include\\s*)<[^>]+>/,\n lookbehind: true\n },\n Prism.languages.c['string']\n ],\n comment: Prism.languages.c['comment'],\n 'macro-name': [\n {\n pattern: /(^#\\s*define\\s+)\\w+\\b(?!\\()/i,\n lookbehind: true\n },\n {\n pattern: /(^#\\s*define\\s+)\\w+\\b(?=\\()/i,\n lookbehind: true,\n alias: 'function'\n }\n ],\n // highlight macro directives as keywords\n directive: {\n pattern: /^(#\\s*)[a-z]+/,\n lookbehind: true,\n alias: 'keyword'\n },\n 'directive-hash': /^#/,\n punctuation: /##|\\\\(?=[\\r\\n])/,\n expression: {\n pattern: /\\S[\\s\\S]*/,\n inside: Prism.languages.c\n }\n }\n },\n // highlight predefined macros as constants\n constant: /\\b(?:__FILE__|__LINE__|__DATE__|__TIME__|__TIMESTAMP__|__func__|EOF|NULL|SEEK_CUR|SEEK_END|SEEK_SET|stdin|stdout|stderr)\\b/\n })\n delete Prism.languages.c['boolean']\n}\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"version\":\"index_version__2esNS\",\"keyCodeInfo\":\"index_keyCodeInfo__PjAzv\",\"header\":\"index_header__xIIvk\",\"title\":\"index_title__2l0LC\",\"lang\":\"index_lang__2TgEC\",\"info\":\"index_info__2NfVw\",\"github\":\"index_github__WH0-j\"};","'use strict'\n\nvar normalize = require('../../normalize')\nvar Schema = require('./schema')\nvar DefinedInfo = require('./defined-info')\n\nmodule.exports = create\n\nfunction create(definition) {\n var space = definition.space\n var mustUseProperty = definition.mustUseProperty || []\n var attributes = definition.attributes || {}\n var props = definition.properties\n var transform = definition.transform\n var property = {}\n var normal = {}\n var prop\n var info\n\n for (prop in props) {\n info = new DefinedInfo(\n prop,\n transform(attributes, prop),\n props[prop],\n space\n )\n\n if (mustUseProperty.indexOf(prop) !== -1) {\n info.mustUseProperty = true\n }\n\n property[prop] = info\n\n normal[normalize(prop)] = prop\n normal[normalize(info.attribute)] = prop\n }\n\n return new Schema(property, normal, space)\n}\n","'use strict';\n\nconst NS = (exports.NAMESPACES = {\n HTML: 'http://www.w3.org/1999/xhtml',\n MATHML: 'http://www.w3.org/1998/Math/MathML',\n SVG: 'http://www.w3.org/2000/svg',\n XLINK: 'http://www.w3.org/1999/xlink',\n XML: 'http://www.w3.org/XML/1998/namespace',\n XMLNS: 'http://www.w3.org/2000/xmlns/'\n});\n\nexports.ATTRS = {\n TYPE: 'type',\n ACTION: 'action',\n ENCODING: 'encoding',\n PROMPT: 'prompt',\n NAME: 'name',\n COLOR: 'color',\n FACE: 'face',\n SIZE: 'size'\n};\n\nexports.DOCUMENT_MODE = {\n NO_QUIRKS: 'no-quirks',\n QUIRKS: 'quirks',\n LIMITED_QUIRKS: 'limited-quirks'\n};\n\nconst $ = (exports.TAG_NAMES = {\n A: 'a',\n ADDRESS: 'address',\n ANNOTATION_XML: 'annotation-xml',\n APPLET: 'applet',\n AREA: 'area',\n ARTICLE: 'article',\n ASIDE: 'aside',\n\n B: 'b',\n BASE: 'base',\n BASEFONT: 'basefont',\n BGSOUND: 'bgsound',\n BIG: 'big',\n BLOCKQUOTE: 'blockquote',\n BODY: 'body',\n BR: 'br',\n BUTTON: 'button',\n\n CAPTION: 'caption',\n CENTER: 'center',\n CODE: 'code',\n COL: 'col',\n COLGROUP: 'colgroup',\n\n DD: 'dd',\n DESC: 'desc',\n DETAILS: 'details',\n DIALOG: 'dialog',\n DIR: 'dir',\n DIV: 'div',\n DL: 'dl',\n DT: 'dt',\n\n EM: 'em',\n EMBED: 'embed',\n\n FIELDSET: 'fieldset',\n FIGCAPTION: 'figcaption',\n FIGURE: 'figure',\n FONT: 'font',\n FOOTER: 'footer',\n FOREIGN_OBJECT: 'foreignObject',\n FORM: 'form',\n FRAME: 'frame',\n FRAMESET: 'frameset',\n\n H1: 'h1',\n H2: 'h2',\n H3: 'h3',\n H4: 'h4',\n H5: 'h5',\n H6: 'h6',\n HEAD: 'head',\n HEADER: 'header',\n HGROUP: 'hgroup',\n HR: 'hr',\n HTML: 'html',\n\n I: 'i',\n IMG: 'img',\n IMAGE: 'image',\n INPUT: 'input',\n IFRAME: 'iframe',\n\n KEYGEN: 'keygen',\n\n LABEL: 'label',\n LI: 'li',\n LINK: 'link',\n LISTING: 'listing',\n\n MAIN: 'main',\n MALIGNMARK: 'malignmark',\n MARQUEE: 'marquee',\n MATH: 'math',\n MENU: 'menu',\n META: 'meta',\n MGLYPH: 'mglyph',\n MI: 'mi',\n MO: 'mo',\n MN: 'mn',\n MS: 'ms',\n MTEXT: 'mtext',\n\n NAV: 'nav',\n NOBR: 'nobr',\n NOFRAMES: 'noframes',\n NOEMBED: 'noembed',\n NOSCRIPT: 'noscript',\n\n OBJECT: 'object',\n OL: 'ol',\n OPTGROUP: 'optgroup',\n OPTION: 'option',\n\n P: 'p',\n PARAM: 'param',\n PLAINTEXT: 'plaintext',\n PRE: 'pre',\n\n RB: 'rb',\n RP: 'rp',\n RT: 'rt',\n RTC: 'rtc',\n RUBY: 'ruby',\n\n S: 's',\n SCRIPT: 'script',\n SECTION: 'section',\n SELECT: 'select',\n SOURCE: 'source',\n SMALL: 'small',\n SPAN: 'span',\n STRIKE: 'strike',\n STRONG: 'strong',\n STYLE: 'style',\n SUB: 'sub',\n SUMMARY: 'summary',\n SUP: 'sup',\n\n TABLE: 'table',\n TBODY: 'tbody',\n TEMPLATE: 'template',\n TEXTAREA: 'textarea',\n TFOOT: 'tfoot',\n TD: 'td',\n TH: 'th',\n THEAD: 'thead',\n TITLE: 'title',\n TR: 'tr',\n TRACK: 'track',\n TT: 'tt',\n\n U: 'u',\n UL: 'ul',\n\n SVG: 'svg',\n\n VAR: 'var',\n\n WBR: 'wbr',\n\n XMP: 'xmp'\n});\n\nexports.SPECIAL_ELEMENTS = {\n [NS.HTML]: {\n [$.ADDRESS]: true,\n [$.APPLET]: true,\n [$.AREA]: true,\n [$.ARTICLE]: true,\n [$.ASIDE]: true,\n [$.BASE]: true,\n [$.BASEFONT]: true,\n [$.BGSOUND]: true,\n [$.BLOCKQUOTE]: true,\n [$.BODY]: true,\n [$.BR]: true,\n [$.BUTTON]: true,\n [$.CAPTION]: true,\n [$.CENTER]: true,\n [$.COL]: true,\n [$.COLGROUP]: true,\n [$.DD]: true,\n [$.DETAILS]: true,\n [$.DIR]: true,\n [$.DIV]: true,\n [$.DL]: true,\n [$.DT]: true,\n [$.EMBED]: true,\n [$.FIELDSET]: true,\n [$.FIGCAPTION]: true,\n [$.FIGURE]: true,\n [$.FOOTER]: true,\n [$.FORM]: true,\n [$.FRAME]: true,\n [$.FRAMESET]: true,\n [$.H1]: true,\n [$.H2]: true,\n [$.H3]: true,\n [$.H4]: true,\n [$.H5]: true,\n [$.H6]: true,\n [$.HEAD]: true,\n [$.HEADER]: true,\n [$.HGROUP]: true,\n [$.HR]: true,\n [$.HTML]: true,\n [$.IFRAME]: true,\n [$.IMG]: true,\n [$.INPUT]: true,\n [$.LI]: true,\n [$.LINK]: true,\n [$.LISTING]: true,\n [$.MAIN]: true,\n [$.MARQUEE]: true,\n [$.MENU]: true,\n [$.META]: true,\n [$.NAV]: true,\n [$.NOEMBED]: true,\n [$.NOFRAMES]: true,\n [$.NOSCRIPT]: true,\n [$.OBJECT]: true,\n [$.OL]: true,\n [$.P]: true,\n [$.PARAM]: true,\n [$.PLAINTEXT]: true,\n [$.PRE]: true,\n [$.SCRIPT]: true,\n [$.SECTION]: true,\n [$.SELECT]: true,\n [$.SOURCE]: true,\n [$.STYLE]: true,\n [$.SUMMARY]: true,\n [$.TABLE]: true,\n [$.TBODY]: true,\n [$.TD]: true,\n [$.TEMPLATE]: true,\n [$.TEXTAREA]: true,\n [$.TFOOT]: true,\n [$.TH]: true,\n [$.THEAD]: true,\n [$.TITLE]: true,\n [$.TR]: true,\n [$.TRACK]: true,\n [$.UL]: true,\n [$.WBR]: true,\n [$.XMP]: true\n },\n [NS.MATHML]: {\n [$.MI]: true,\n [$.MO]: true,\n [$.MN]: true,\n [$.MS]: true,\n [$.MTEXT]: true,\n [$.ANNOTATION_XML]: true\n },\n [NS.SVG]: {\n [$.TITLE]: true,\n [$.FOREIGN_OBJECT]: true,\n [$.DESC]: true\n }\n};\n","var defineProperty = require(\"./defineProperty.js\");\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nmodule.exports = _objectSpread2;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","'use strict'\n\nvar assign = Object.assign\n\nmodule.exports = assign\n","'use strict'\n\nvar sizeChunks = require('./size-chunks.js')\n\nfunction prefixSize(events, type) {\n var tail = events[events.length - 1]\n if (!tail || tail[1].type !== type) return 0\n return sizeChunks(tail[2].sliceStream(tail[1]))\n}\n\nmodule.exports = prefixSize\n","'use strict'\n\nvar regexCheck = require('../util/regex-check.js')\n\nvar asciiAlphanumeric = regexCheck(/[\\dA-Za-z]/)\n\nmodule.exports = asciiAlphanumeric\n","'use strict'\n\nmodule.exports = wrap\n\nvar u = require('unist-builder')\n\n// Wrap `nodes` with line feeds between each entry.\n// Optionally adds line feeds at the start and end.\nfunction wrap(nodes, loose) {\n var result = []\n var index = -1\n var length = nodes.length\n\n if (loose) {\n result.push(u('text', '\\n'))\n }\n\n while (++index < length) {\n if (index) {\n result.push(u('text', '\\n'))\n }\n\n result.push(nodes[index])\n }\n\n if (loose && nodes.length > 0) {\n result.push(u('text', '\\n'))\n }\n\n return result\n}\n","'use strict'\n\nvar merge = require('./lib/util/merge')\nvar xlink = require('./lib/xlink')\nvar xml = require('./lib/xml')\nvar xmlns = require('./lib/xmlns')\nvar aria = require('./lib/aria')\nvar html = require('./lib/html')\n\nmodule.exports = merge([xml, xlink, xmlns, aria, html])\n","'use strict'\n\nvar merge = require('./lib/util/merge')\nvar xlink = require('./lib/xlink')\nvar xml = require('./lib/xml')\nvar xmlns = require('./lib/xmlns')\nvar aria = require('./lib/aria')\nvar svg = require('./lib/svg')\n\nmodule.exports = merge([xml, xlink, xmlns, aria, svg])\n","'use strict'\n\nvar normalize = require('./normalize')\nvar DefinedInfo = require('./lib/util/defined-info')\nvar Info = require('./lib/util/info')\n\nvar data = 'data'\n\nmodule.exports = find\n\nvar valid = /^data[-\\w.:]+$/i\nvar dash = /-[a-z]/g\nvar cap = /[A-Z]/g\n\nfunction find(schema, value) {\n var normal = normalize(value)\n var prop = value\n var Type = Info\n\n if (normal in schema.normal) {\n return schema.property[schema.normal[normal]]\n }\n\n if (normal.length > 4 && normal.slice(0, 4) === data && valid.test(value)) {\n // Attribute or property.\n if (value.charAt(4) === '-') {\n prop = datasetToProperty(value)\n } else {\n value = datasetToAttribute(value)\n }\n\n Type = DefinedInfo\n }\n\n return new Type(prop, value)\n}\n\nfunction datasetToProperty(attribute) {\n var value = attribute.slice(5).replace(dash, camelcase)\n return data + value.charAt(0).toUpperCase() + value.slice(1)\n}\n\nfunction datasetToAttribute(property) {\n var value = property.slice(4)\n\n if (dash.test(value)) {\n return property\n }\n\n value = value.replace(cap, kebab)\n\n if (value.charAt(0) !== '-') {\n value = '-' + value\n }\n\n return data + value\n}\n\nfunction kebab($0) {\n return '-' + $0.toLowerCase()\n}\n\nfunction camelcase($0) {\n return $0.charAt(1).toUpperCase()\n}\n","function _extends() {\n module.exports = _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n return _extends.apply(this, arguments);\n}\n\nmodule.exports = _extends;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","'use strict'\n\nvar fromCharCode = String.fromCharCode\n\nmodule.exports = fromCharCode\n","'use strict'\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar factorySpace = require('./factory-space.js')\n\nvar partialBlankLine = {\n tokenize: tokenizePartialBlankLine,\n partial: true\n}\n\nfunction tokenizePartialBlankLine(effects, ok, nok) {\n return factorySpace(effects, afterWhitespace, 'linePrefix')\n\n function afterWhitespace(code) {\n return code === null || markdownLineEnding(code) ? ok(code) : nok(code)\n }\n}\n\nmodule.exports = partialBlankLine\n","'use strict'\n\nfunction resolveAll(constructs, events, context) {\n var called = []\n var index = -1\n var resolve\n\n while (++index < constructs.length) {\n resolve = constructs[index].resolveAll\n\n if (resolve && called.indexOf(resolve) < 0) {\n events = resolve(events, context)\n called.push(resolve)\n }\n }\n\n return events\n}\n\nmodule.exports = resolveAll\n","'use strict'\n\nvar regexCheck = require('../util/regex-check.js')\n\nvar asciiAlpha = regexCheck(/[A-Za-z]/)\n\nmodule.exports = asciiAlpha\n","\n'use strict';\n\n\nvar encodeCache = {};\n\n\n// Create a lookup array where anything but characters in `chars` string\n// and alphanumeric chars is percent-encoded.\n//\nfunction getEncodeCache(exclude) {\n var i, ch, cache = encodeCache[exclude];\n if (cache) { return cache; }\n\n cache = encodeCache[exclude] = [];\n\n for (i = 0; i < 128; i++) {\n ch = String.fromCharCode(i);\n\n if (/^[0-9a-z]$/i.test(ch)) {\n // always allow unencoded alphanumeric characters\n cache.push(ch);\n } else {\n cache.push('%' + ('0' + i.toString(16).toUpperCase()).slice(-2));\n }\n }\n\n for (i = 0; i < exclude.length; i++) {\n cache[exclude.charCodeAt(i)] = exclude[i];\n }\n\n return cache;\n}\n\n\n// Encode unsafe characters with percent-encoding, skipping already\n// encoded sequences.\n//\n// - string - string to encode\n// - exclude - list of characters to ignore (in addition to a-zA-Z0-9)\n// - keepEscaped - don't encode '%' in a correct escape sequence (default: true)\n//\nfunction encode(string, exclude, keepEscaped) {\n var i, l, code, nextCode, cache,\n result = '';\n\n if (typeof exclude !== 'string') {\n // encode(string, keepEscaped)\n keepEscaped = exclude;\n exclude = encode.defaultChars;\n }\n\n if (typeof keepEscaped === 'undefined') {\n keepEscaped = true;\n }\n\n cache = getEncodeCache(exclude);\n\n for (i = 0, l = string.length; i < l; i++) {\n code = string.charCodeAt(i);\n\n if (keepEscaped && code === 0x25 /* % */ && i + 2 < l) {\n if (/^[0-9a-f]{2}$/i.test(string.slice(i + 1, i + 3))) {\n result += string.slice(i, i + 3);\n i += 2;\n continue;\n }\n }\n\n if (code < 128) {\n result += cache[code];\n continue;\n }\n\n if (code >= 0xD800 && code <= 0xDFFF) {\n if (code >= 0xD800 && code <= 0xDBFF && i + 1 < l) {\n nextCode = string.charCodeAt(i + 1);\n if (nextCode >= 0xDC00 && nextCode <= 0xDFFF) {\n result += encodeURIComponent(string[i] + string[i + 1]);\n i++;\n continue;\n }\n }\n result += '%EF%BF%BD';\n continue;\n }\n\n result += encodeURIComponent(string[i]);\n }\n\n return result;\n}\n\nencode.defaultChars = \";/?:@&=+$,-_.!~*'()#\";\nencode.componentChars = \"-_.!~*'()\";\n\n\nmodule.exports = encode;\n","'use strict'\n\nvar powers = 0\n\nexports.boolean = increment()\nexports.booleanish = increment()\nexports.overloadedBoolean = increment()\nexports.number = increment()\nexports.spaceSeparated = increment()\nexports.commaSeparated = increment()\nexports.commaOrSpaceSeparated = increment()\n\nfunction increment() {\n return Math.pow(2, ++powers)\n}\n","'use strict';\n\nconst Preprocessor = require('./preprocessor');\nconst unicode = require('../common/unicode');\nconst neTree = require('./named-entity-data');\nconst ERR = require('../common/error-codes');\n\n//Aliases\nconst $ = unicode.CODE_POINTS;\nconst $$ = unicode.CODE_POINT_SEQUENCES;\n\n//C1 Unicode control character reference replacements\nconst C1_CONTROLS_REFERENCE_REPLACEMENTS = {\n 0x80: 0x20ac,\n 0x82: 0x201a,\n 0x83: 0x0192,\n 0x84: 0x201e,\n 0x85: 0x2026,\n 0x86: 0x2020,\n 0x87: 0x2021,\n 0x88: 0x02c6,\n 0x89: 0x2030,\n 0x8a: 0x0160,\n 0x8b: 0x2039,\n 0x8c: 0x0152,\n 0x8e: 0x017d,\n 0x91: 0x2018,\n 0x92: 0x2019,\n 0x93: 0x201c,\n 0x94: 0x201d,\n 0x95: 0x2022,\n 0x96: 0x2013,\n 0x97: 0x2014,\n 0x98: 0x02dc,\n 0x99: 0x2122,\n 0x9a: 0x0161,\n 0x9b: 0x203a,\n 0x9c: 0x0153,\n 0x9e: 0x017e,\n 0x9f: 0x0178\n};\n\n// Named entity tree flags\nconst HAS_DATA_FLAG = 1 << 0;\nconst DATA_DUPLET_FLAG = 1 << 1;\nconst HAS_BRANCHES_FLAG = 1 << 2;\nconst MAX_BRANCH_MARKER_VALUE = HAS_DATA_FLAG | DATA_DUPLET_FLAG | HAS_BRANCHES_FLAG;\n\n//States\nconst DATA_STATE = 'DATA_STATE';\nconst RCDATA_STATE = 'RCDATA_STATE';\nconst RAWTEXT_STATE = 'RAWTEXT_STATE';\nconst SCRIPT_DATA_STATE = 'SCRIPT_DATA_STATE';\nconst PLAINTEXT_STATE = 'PLAINTEXT_STATE';\nconst TAG_OPEN_STATE = 'TAG_OPEN_STATE';\nconst END_TAG_OPEN_STATE = 'END_TAG_OPEN_STATE';\nconst TAG_NAME_STATE = 'TAG_NAME_STATE';\nconst RCDATA_LESS_THAN_SIGN_STATE = 'RCDATA_LESS_THAN_SIGN_STATE';\nconst RCDATA_END_TAG_OPEN_STATE = 'RCDATA_END_TAG_OPEN_STATE';\nconst RCDATA_END_TAG_NAME_STATE = 'RCDATA_END_TAG_NAME_STATE';\nconst RAWTEXT_LESS_THAN_SIGN_STATE = 'RAWTEXT_LESS_THAN_SIGN_STATE';\nconst RAWTEXT_END_TAG_OPEN_STATE = 'RAWTEXT_END_TAG_OPEN_STATE';\nconst RAWTEXT_END_TAG_NAME_STATE = 'RAWTEXT_END_TAG_NAME_STATE';\nconst SCRIPT_DATA_LESS_THAN_SIGN_STATE = 'SCRIPT_DATA_LESS_THAN_SIGN_STATE';\nconst SCRIPT_DATA_END_TAG_OPEN_STATE = 'SCRIPT_DATA_END_TAG_OPEN_STATE';\nconst SCRIPT_DATA_END_TAG_NAME_STATE = 'SCRIPT_DATA_END_TAG_NAME_STATE';\nconst SCRIPT_DATA_ESCAPE_START_STATE = 'SCRIPT_DATA_ESCAPE_START_STATE';\nconst SCRIPT_DATA_ESCAPE_START_DASH_STATE = 'SCRIPT_DATA_ESCAPE_START_DASH_STATE';\nconst SCRIPT_DATA_ESCAPED_STATE = 'SCRIPT_DATA_ESCAPED_STATE';\nconst SCRIPT_DATA_ESCAPED_DASH_STATE = 'SCRIPT_DATA_ESCAPED_DASH_STATE';\nconst SCRIPT_DATA_ESCAPED_DASH_DASH_STATE = 'SCRIPT_DATA_ESCAPED_DASH_DASH_STATE';\nconst SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN_STATE = 'SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN_STATE';\nconst SCRIPT_DATA_ESCAPED_END_TAG_OPEN_STATE = 'SCRIPT_DATA_ESCAPED_END_TAG_OPEN_STATE';\nconst SCRIPT_DATA_ESCAPED_END_TAG_NAME_STATE = 'SCRIPT_DATA_ESCAPED_END_TAG_NAME_STATE';\nconst SCRIPT_DATA_DOUBLE_ESCAPE_START_STATE = 'SCRIPT_DATA_DOUBLE_ESCAPE_START_STATE';\nconst SCRIPT_DATA_DOUBLE_ESCAPED_STATE = 'SCRIPT_DATA_DOUBLE_ESCAPED_STATE';\nconst SCRIPT_DATA_DOUBLE_ESCAPED_DASH_STATE = 'SCRIPT_DATA_DOUBLE_ESCAPED_DASH_STATE';\nconst SCRIPT_DATA_DOUBLE_ESCAPED_DASH_DASH_STATE = 'SCRIPT_DATA_DOUBLE_ESCAPED_DASH_DASH_STATE';\nconst SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN_STATE = 'SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN_STATE';\nconst SCRIPT_DATA_DOUBLE_ESCAPE_END_STATE = 'SCRIPT_DATA_DOUBLE_ESCAPE_END_STATE';\nconst BEFORE_ATTRIBUTE_NAME_STATE = 'BEFORE_ATTRIBUTE_NAME_STATE';\nconst ATTRIBUTE_NAME_STATE = 'ATTRIBUTE_NAME_STATE';\nconst AFTER_ATTRIBUTE_NAME_STATE = 'AFTER_ATTRIBUTE_NAME_STATE';\nconst BEFORE_ATTRIBUTE_VALUE_STATE = 'BEFORE_ATTRIBUTE_VALUE_STATE';\nconst ATTRIBUTE_VALUE_DOUBLE_QUOTED_STATE = 'ATTRIBUTE_VALUE_DOUBLE_QUOTED_STATE';\nconst ATTRIBUTE_VALUE_SINGLE_QUOTED_STATE = 'ATTRIBUTE_VALUE_SINGLE_QUOTED_STATE';\nconst ATTRIBUTE_VALUE_UNQUOTED_STATE = 'ATTRIBUTE_VALUE_UNQUOTED_STATE';\nconst AFTER_ATTRIBUTE_VALUE_QUOTED_STATE = 'AFTER_ATTRIBUTE_VALUE_QUOTED_STATE';\nconst SELF_CLOSING_START_TAG_STATE = 'SELF_CLOSING_START_TAG_STATE';\nconst BOGUS_COMMENT_STATE = 'BOGUS_COMMENT_STATE';\nconst MARKUP_DECLARATION_OPEN_STATE = 'MARKUP_DECLARATION_OPEN_STATE';\nconst COMMENT_START_STATE = 'COMMENT_START_STATE';\nconst COMMENT_START_DASH_STATE = 'COMMENT_START_DASH_STATE';\nconst COMMENT_STATE = 'COMMENT_STATE';\nconst COMMENT_LESS_THAN_SIGN_STATE = 'COMMENT_LESS_THAN_SIGN_STATE';\nconst COMMENT_LESS_THAN_SIGN_BANG_STATE = 'COMMENT_LESS_THAN_SIGN_BANG_STATE';\nconst COMMENT_LESS_THAN_SIGN_BANG_DASH_STATE = 'COMMENT_LESS_THAN_SIGN_BANG_DASH_STATE';\nconst COMMENT_LESS_THAN_SIGN_BANG_DASH_DASH_STATE = 'COMMENT_LESS_THAN_SIGN_BANG_DASH_DASH_STATE';\nconst COMMENT_END_DASH_STATE = 'COMMENT_END_DASH_STATE';\nconst COMMENT_END_STATE = 'COMMENT_END_STATE';\nconst COMMENT_END_BANG_STATE = 'COMMENT_END_BANG_STATE';\nconst DOCTYPE_STATE = 'DOCTYPE_STATE';\nconst BEFORE_DOCTYPE_NAME_STATE = 'BEFORE_DOCTYPE_NAME_STATE';\nconst DOCTYPE_NAME_STATE = 'DOCTYPE_NAME_STATE';\nconst AFTER_DOCTYPE_NAME_STATE = 'AFTER_DOCTYPE_NAME_STATE';\nconst AFTER_DOCTYPE_PUBLIC_KEYWORD_STATE = 'AFTER_DOCTYPE_PUBLIC_KEYWORD_STATE';\nconst BEFORE_DOCTYPE_PUBLIC_IDENTIFIER_STATE = 'BEFORE_DOCTYPE_PUBLIC_IDENTIFIER_STATE';\nconst DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED_STATE = 'DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED_STATE';\nconst DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED_STATE = 'DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED_STATE';\nconst AFTER_DOCTYPE_PUBLIC_IDENTIFIER_STATE = 'AFTER_DOCTYPE_PUBLIC_IDENTIFIER_STATE';\nconst BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS_STATE = 'BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS_STATE';\nconst AFTER_DOCTYPE_SYSTEM_KEYWORD_STATE = 'AFTER_DOCTYPE_SYSTEM_KEYWORD_STATE';\nconst BEFORE_DOCTYPE_SYSTEM_IDENTIFIER_STATE = 'BEFORE_DOCTYPE_SYSTEM_IDENTIFIER_STATE';\nconst DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED_STATE = 'DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED_STATE';\nconst DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED_STATE = 'DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED_STATE';\nconst AFTER_DOCTYPE_SYSTEM_IDENTIFIER_STATE = 'AFTER_DOCTYPE_SYSTEM_IDENTIFIER_STATE';\nconst BOGUS_DOCTYPE_STATE = 'BOGUS_DOCTYPE_STATE';\nconst CDATA_SECTION_STATE = 'CDATA_SECTION_STATE';\nconst CDATA_SECTION_BRACKET_STATE = 'CDATA_SECTION_BRACKET_STATE';\nconst CDATA_SECTION_END_STATE = 'CDATA_SECTION_END_STATE';\nconst CHARACTER_REFERENCE_STATE = 'CHARACTER_REFERENCE_STATE';\nconst NAMED_CHARACTER_REFERENCE_STATE = 'NAMED_CHARACTER_REFERENCE_STATE';\nconst AMBIGUOUS_AMPERSAND_STATE = 'AMBIGUOS_AMPERSAND_STATE';\nconst NUMERIC_CHARACTER_REFERENCE_STATE = 'NUMERIC_CHARACTER_REFERENCE_STATE';\nconst HEXADEMICAL_CHARACTER_REFERENCE_START_STATE = 'HEXADEMICAL_CHARACTER_REFERENCE_START_STATE';\nconst DECIMAL_CHARACTER_REFERENCE_START_STATE = 'DECIMAL_CHARACTER_REFERENCE_START_STATE';\nconst HEXADEMICAL_CHARACTER_REFERENCE_STATE = 'HEXADEMICAL_CHARACTER_REFERENCE_STATE';\nconst DECIMAL_CHARACTER_REFERENCE_STATE = 'DECIMAL_CHARACTER_REFERENCE_STATE';\nconst NUMERIC_CHARACTER_REFERENCE_END_STATE = 'NUMERIC_CHARACTER_REFERENCE_END_STATE';\n\n//Utils\n\n//OPTIMIZATION: these utility functions should not be moved out of this module. V8 Crankshaft will not inline\n//this functions if they will be situated in another module due to context switch.\n//Always perform inlining check before modifying this functions ('node --trace-inlining').\nfunction isWhitespace(cp) {\n return cp === $.SPACE || cp === $.LINE_FEED || cp === $.TABULATION || cp === $.FORM_FEED;\n}\n\nfunction isAsciiDigit(cp) {\n return cp >= $.DIGIT_0 && cp <= $.DIGIT_9;\n}\n\nfunction isAsciiUpper(cp) {\n return cp >= $.LATIN_CAPITAL_A && cp <= $.LATIN_CAPITAL_Z;\n}\n\nfunction isAsciiLower(cp) {\n return cp >= $.LATIN_SMALL_A && cp <= $.LATIN_SMALL_Z;\n}\n\nfunction isAsciiLetter(cp) {\n return isAsciiLower(cp) || isAsciiUpper(cp);\n}\n\nfunction isAsciiAlphaNumeric(cp) {\n return isAsciiLetter(cp) || isAsciiDigit(cp);\n}\n\nfunction isAsciiUpperHexDigit(cp) {\n return cp >= $.LATIN_CAPITAL_A && cp <= $.LATIN_CAPITAL_F;\n}\n\nfunction isAsciiLowerHexDigit(cp) {\n return cp >= $.LATIN_SMALL_A && cp <= $.LATIN_SMALL_F;\n}\n\nfunction isAsciiHexDigit(cp) {\n return isAsciiDigit(cp) || isAsciiUpperHexDigit(cp) || isAsciiLowerHexDigit(cp);\n}\n\nfunction toAsciiLowerCodePoint(cp) {\n return cp + 0x0020;\n}\n\n//NOTE: String.fromCharCode() function can handle only characters from BMP subset.\n//So, we need to workaround this manually.\n//(see: https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/String/fromCharCode#Getting_it_to_work_with_higher_values)\nfunction toChar(cp) {\n if (cp <= 0xffff) {\n return String.fromCharCode(cp);\n }\n\n cp -= 0x10000;\n return String.fromCharCode(((cp >>> 10) & 0x3ff) | 0xd800) + String.fromCharCode(0xdc00 | (cp & 0x3ff));\n}\n\nfunction toAsciiLowerChar(cp) {\n return String.fromCharCode(toAsciiLowerCodePoint(cp));\n}\n\nfunction findNamedEntityTreeBranch(nodeIx, cp) {\n const branchCount = neTree[++nodeIx];\n let lo = ++nodeIx;\n let hi = lo + branchCount - 1;\n\n while (lo <= hi) {\n const mid = (lo + hi) >>> 1;\n const midCp = neTree[mid];\n\n if (midCp < cp) {\n lo = mid + 1;\n } else if (midCp > cp) {\n hi = mid - 1;\n } else {\n return neTree[mid + branchCount];\n }\n }\n\n return -1;\n}\n\n//Tokenizer\nclass Tokenizer {\n constructor() {\n this.preprocessor = new Preprocessor();\n\n this.tokenQueue = [];\n\n this.allowCDATA = false;\n\n this.state = DATA_STATE;\n this.returnState = '';\n\n this.charRefCode = -1;\n this.tempBuff = [];\n this.lastStartTagName = '';\n\n this.consumedAfterSnapshot = -1;\n this.active = false;\n\n this.currentCharacterToken = null;\n this.currentToken = null;\n this.currentAttr = null;\n }\n\n //Errors\n _err() {\n // NOTE: err reporting is noop by default. Enabled by mixin.\n }\n\n _errOnNextCodePoint(err) {\n this._consume();\n this._err(err);\n this._unconsume();\n }\n\n //API\n getNextToken() {\n while (!this.tokenQueue.length && this.active) {\n this.consumedAfterSnapshot = 0;\n\n const cp = this._consume();\n\n if (!this._ensureHibernation()) {\n this[this.state](cp);\n }\n }\n\n return this.tokenQueue.shift();\n }\n\n write(chunk, isLastChunk) {\n this.active = true;\n this.preprocessor.write(chunk, isLastChunk);\n }\n\n insertHtmlAtCurrentPos(chunk) {\n this.active = true;\n this.preprocessor.insertHtmlAtCurrentPos(chunk);\n }\n\n //Hibernation\n _ensureHibernation() {\n if (this.preprocessor.endOfChunkHit) {\n for (; this.consumedAfterSnapshot > 0; this.consumedAfterSnapshot--) {\n this.preprocessor.retreat();\n }\n\n this.active = false;\n this.tokenQueue.push({ type: Tokenizer.HIBERNATION_TOKEN });\n\n return true;\n }\n\n return false;\n }\n\n //Consumption\n _consume() {\n this.consumedAfterSnapshot++;\n return this.preprocessor.advance();\n }\n\n _unconsume() {\n this.consumedAfterSnapshot--;\n this.preprocessor.retreat();\n }\n\n _reconsumeInState(state) {\n this.state = state;\n this._unconsume();\n }\n\n _consumeSequenceIfMatch(pattern, startCp, caseSensitive) {\n let consumedCount = 0;\n let isMatch = true;\n const patternLength = pattern.length;\n let patternPos = 0;\n let cp = startCp;\n let patternCp = void 0;\n\n for (; patternPos < patternLength; patternPos++) {\n if (patternPos > 0) {\n cp = this._consume();\n consumedCount++;\n }\n\n if (cp === $.EOF) {\n isMatch = false;\n break;\n }\n\n patternCp = pattern[patternPos];\n\n if (cp !== patternCp && (caseSensitive || cp !== toAsciiLowerCodePoint(patternCp))) {\n isMatch = false;\n break;\n }\n }\n\n if (!isMatch) {\n while (consumedCount--) {\n this._unconsume();\n }\n }\n\n return isMatch;\n }\n\n //Temp buffer\n _isTempBufferEqualToScriptString() {\n if (this.tempBuff.length !== $$.SCRIPT_STRING.length) {\n return false;\n }\n\n for (let i = 0; i < this.tempBuff.length; i++) {\n if (this.tempBuff[i] !== $$.SCRIPT_STRING[i]) {\n return false;\n }\n }\n\n return true;\n }\n\n //Token creation\n _createStartTagToken() {\n this.currentToken = {\n type: Tokenizer.START_TAG_TOKEN,\n tagName: '',\n selfClosing: false,\n ackSelfClosing: false,\n attrs: []\n };\n }\n\n _createEndTagToken() {\n this.currentToken = {\n type: Tokenizer.END_TAG_TOKEN,\n tagName: '',\n selfClosing: false,\n attrs: []\n };\n }\n\n _createCommentToken() {\n this.currentToken = {\n type: Tokenizer.COMMENT_TOKEN,\n data: ''\n };\n }\n\n _createDoctypeToken(initialName) {\n this.currentToken = {\n type: Tokenizer.DOCTYPE_TOKEN,\n name: initialName,\n forceQuirks: false,\n publicId: null,\n systemId: null\n };\n }\n\n _createCharacterToken(type, ch) {\n this.currentCharacterToken = {\n type: type,\n chars: ch\n };\n }\n\n _createEOFToken() {\n this.currentToken = { type: Tokenizer.EOF_TOKEN };\n }\n\n //Tag attributes\n _createAttr(attrNameFirstCh) {\n this.currentAttr = {\n name: attrNameFirstCh,\n value: ''\n };\n }\n\n _leaveAttrName(toState) {\n if (Tokenizer.getTokenAttr(this.currentToken, this.currentAttr.name) === null) {\n this.currentToken.attrs.push(this.currentAttr);\n } else {\n this._err(ERR.duplicateAttribute);\n }\n\n this.state = toState;\n }\n\n _leaveAttrValue(toState) {\n this.state = toState;\n }\n\n //Token emission\n _emitCurrentToken() {\n this._emitCurrentCharacterToken();\n\n const ct = this.currentToken;\n\n this.currentToken = null;\n\n //NOTE: store emited start tag's tagName to determine is the following end tag token is appropriate.\n if (ct.type === Tokenizer.START_TAG_TOKEN) {\n this.lastStartTagName = ct.tagName;\n } else if (ct.type === Tokenizer.END_TAG_TOKEN) {\n if (ct.attrs.length > 0) {\n this._err(ERR.endTagWithAttributes);\n }\n\n if (ct.selfClosing) {\n this._err(ERR.endTagWithTrailingSolidus);\n }\n }\n\n this.tokenQueue.push(ct);\n }\n\n _emitCurrentCharacterToken() {\n if (this.currentCharacterToken) {\n this.tokenQueue.push(this.currentCharacterToken);\n this.currentCharacterToken = null;\n }\n }\n\n _emitEOFToken() {\n this._createEOFToken();\n this._emitCurrentToken();\n }\n\n //Characters emission\n\n //OPTIMIZATION: specification uses only one type of character tokens (one token per character).\n //This causes a huge memory overhead and a lot of unnecessary parser loops. parse5 uses 3 groups of characters.\n //If we have a sequence of characters that belong to the same group, parser can process it\n //as a single solid character token.\n //So, there are 3 types of character tokens in parse5:\n //1)NULL_CHARACTER_TOKEN - \\u0000-character sequences (e.g. '\\u0000\\u0000\\u0000')\n //2)WHITESPACE_CHARACTER_TOKEN - any whitespace/new-line character sequences (e.g. '\\n \\r\\t \\f')\n //3)CHARACTER_TOKEN - any character sequence which don't belong to groups 1 and 2 (e.g. 'abcdef1234@@#$%^')\n _appendCharToCurrentCharacterToken(type, ch) {\n if (this.currentCharacterToken && this.currentCharacterToken.type !== type) {\n this._emitCurrentCharacterToken();\n }\n\n if (this.currentCharacterToken) {\n this.currentCharacterToken.chars += ch;\n } else {\n this._createCharacterToken(type, ch);\n }\n }\n\n _emitCodePoint(cp) {\n let type = Tokenizer.CHARACTER_TOKEN;\n\n if (isWhitespace(cp)) {\n type = Tokenizer.WHITESPACE_CHARACTER_TOKEN;\n } else if (cp === $.NULL) {\n type = Tokenizer.NULL_CHARACTER_TOKEN;\n }\n\n this._appendCharToCurrentCharacterToken(type, toChar(cp));\n }\n\n _emitSeveralCodePoints(codePoints) {\n for (let i = 0; i < codePoints.length; i++) {\n this._emitCodePoint(codePoints[i]);\n }\n }\n\n //NOTE: used then we emit character explicitly. This is always a non-whitespace and a non-null character.\n //So we can avoid additional checks here.\n _emitChars(ch) {\n this._appendCharToCurrentCharacterToken(Tokenizer.CHARACTER_TOKEN, ch);\n }\n\n // Character reference helpers\n _matchNamedCharacterReference(startCp) {\n let result = null;\n let excess = 1;\n let i = findNamedEntityTreeBranch(0, startCp);\n\n this.tempBuff.push(startCp);\n\n while (i > -1) {\n const current = neTree[i];\n const inNode = current < MAX_BRANCH_MARKER_VALUE;\n const nodeWithData = inNode && current & HAS_DATA_FLAG;\n\n if (nodeWithData) {\n //NOTE: we use greedy search, so we continue lookup at this point\n result = current & DATA_DUPLET_FLAG ? [neTree[++i], neTree[++i]] : [neTree[++i]];\n excess = 0;\n }\n\n const cp = this._consume();\n\n this.tempBuff.push(cp);\n excess++;\n\n if (cp === $.EOF) {\n break;\n }\n\n if (inNode) {\n i = current & HAS_BRANCHES_FLAG ? findNamedEntityTreeBranch(i, cp) : -1;\n } else {\n i = cp === current ? ++i : -1;\n }\n }\n\n while (excess--) {\n this.tempBuff.pop();\n this._unconsume();\n }\n\n return result;\n }\n\n _isCharacterReferenceInAttribute() {\n return (\n this.returnState === ATTRIBUTE_VALUE_DOUBLE_QUOTED_STATE ||\n this.returnState === ATTRIBUTE_VALUE_SINGLE_QUOTED_STATE ||\n this.returnState === ATTRIBUTE_VALUE_UNQUOTED_STATE\n );\n }\n\n _isCharacterReferenceAttributeQuirk(withSemicolon) {\n if (!withSemicolon && this._isCharacterReferenceInAttribute()) {\n const nextCp = this._consume();\n\n this._unconsume();\n\n return nextCp === $.EQUALS_SIGN || isAsciiAlphaNumeric(nextCp);\n }\n\n return false;\n }\n\n _flushCodePointsConsumedAsCharacterReference() {\n if (this._isCharacterReferenceInAttribute()) {\n for (let i = 0; i < this.tempBuff.length; i++) {\n this.currentAttr.value += toChar(this.tempBuff[i]);\n }\n } else {\n this._emitSeveralCodePoints(this.tempBuff);\n }\n\n this.tempBuff = [];\n }\n\n // State machine\n\n // Data state\n //------------------------------------------------------------------\n [DATA_STATE](cp) {\n this.preprocessor.dropParsedChunk();\n\n if (cp === $.LESS_THAN_SIGN) {\n this.state = TAG_OPEN_STATE;\n } else if (cp === $.AMPERSAND) {\n this.returnState = DATA_STATE;\n this.state = CHARACTER_REFERENCE_STATE;\n } else if (cp === $.NULL) {\n this._err(ERR.unexpectedNullCharacter);\n this._emitCodePoint(cp);\n } else if (cp === $.EOF) {\n this._emitEOFToken();\n } else {\n this._emitCodePoint(cp);\n }\n }\n\n // RCDATA state\n //------------------------------------------------------------------\n [RCDATA_STATE](cp) {\n this.preprocessor.dropParsedChunk();\n\n if (cp === $.AMPERSAND) {\n this.returnState = RCDATA_STATE;\n this.state = CHARACTER_REFERENCE_STATE;\n } else if (cp === $.LESS_THAN_SIGN) {\n this.state = RCDATA_LESS_THAN_SIGN_STATE;\n } else if (cp === $.NULL) {\n this._err(ERR.unexpectedNullCharacter);\n this._emitChars(unicode.REPLACEMENT_CHARACTER);\n } else if (cp === $.EOF) {\n this._emitEOFToken();\n } else {\n this._emitCodePoint(cp);\n }\n }\n\n // RAWTEXT state\n //------------------------------------------------------------------\n [RAWTEXT_STATE](cp) {\n this.preprocessor.dropParsedChunk();\n\n if (cp === $.LESS_THAN_SIGN) {\n this.state = RAWTEXT_LESS_THAN_SIGN_STATE;\n } else if (cp === $.NULL) {\n this._err(ERR.unexpectedNullCharacter);\n this._emitChars(unicode.REPLACEMENT_CHARACTER);\n } else if (cp === $.EOF) {\n this._emitEOFToken();\n } else {\n this._emitCodePoint(cp);\n }\n }\n\n // Script data state\n //------------------------------------------------------------------\n [SCRIPT_DATA_STATE](cp) {\n this.preprocessor.dropParsedChunk();\n\n if (cp === $.LESS_THAN_SIGN) {\n this.state = SCRIPT_DATA_LESS_THAN_SIGN_STATE;\n } else if (cp === $.NULL) {\n this._err(ERR.unexpectedNullCharacter);\n this._emitChars(unicode.REPLACEMENT_CHARACTER);\n } else if (cp === $.EOF) {\n this._emitEOFToken();\n } else {\n this._emitCodePoint(cp);\n }\n }\n\n // PLAINTEXT state\n //------------------------------------------------------------------\n [PLAINTEXT_STATE](cp) {\n this.preprocessor.dropParsedChunk();\n\n if (cp === $.NULL) {\n this._err(ERR.unexpectedNullCharacter);\n this._emitChars(unicode.REPLACEMENT_CHARACTER);\n } else if (cp === $.EOF) {\n this._emitEOFToken();\n } else {\n this._emitCodePoint(cp);\n }\n }\n\n // Tag open state\n //------------------------------------------------------------------\n [TAG_OPEN_STATE](cp) {\n if (cp === $.EXCLAMATION_MARK) {\n this.state = MARKUP_DECLARATION_OPEN_STATE;\n } else if (cp === $.SOLIDUS) {\n this.state = END_TAG_OPEN_STATE;\n } else if (isAsciiLetter(cp)) {\n this._createStartTagToken();\n this._reconsumeInState(TAG_NAME_STATE);\n } else if (cp === $.QUESTION_MARK) {\n this._err(ERR.unexpectedQuestionMarkInsteadOfTagName);\n this._createCommentToken();\n this._reconsumeInState(BOGUS_COMMENT_STATE);\n } else if (cp === $.EOF) {\n this._err(ERR.eofBeforeTagName);\n this._emitChars('<');\n this._emitEOFToken();\n } else {\n this._err(ERR.invalidFirstCharacterOfTagName);\n this._emitChars('<');\n this._reconsumeInState(DATA_STATE);\n }\n }\n\n // End tag open state\n //------------------------------------------------------------------\n [END_TAG_OPEN_STATE](cp) {\n if (isAsciiLetter(cp)) {\n this._createEndTagToken();\n this._reconsumeInState(TAG_NAME_STATE);\n } else if (cp === $.GREATER_THAN_SIGN) {\n this._err(ERR.missingEndTagName);\n this.state = DATA_STATE;\n } else if (cp === $.EOF) {\n this._err(ERR.eofBeforeTagName);\n this._emitChars('</');\n this._emitEOFToken();\n } else {\n this._err(ERR.invalidFirstCharacterOfTagName);\n this._createCommentToken();\n this._reconsumeInState(BOGUS_COMMENT_STATE);\n }\n }\n\n // Tag name state\n //------------------------------------------------------------------\n [TAG_NAME_STATE](cp) {\n if (isWhitespace(cp)) {\n this.state = BEFORE_ATTRIBUTE_NAME_STATE;\n } else if (cp === $.SOLIDUS) {\n this.state = SELF_CLOSING_START_TAG_STATE;\n } else if (cp === $.GREATER_THAN_SIGN) {\n this.state = DATA_STATE;\n this._emitCurrentToken();\n } else if (isAsciiUpper(cp)) {\n this.currentToken.tagName += toAsciiLowerChar(cp);\n } else if (cp === $.NULL) {\n this._err(ERR.unexpectedNullCharacter);\n this.currentToken.tagName += unicode.REPLACEMENT_CHARACTER;\n } else if (cp === $.EOF) {\n this._err(ERR.eofInTag);\n this._emitEOFToken();\n } else {\n this.currentToken.tagName += toChar(cp);\n }\n }\n\n // RCDATA less-than sign state\n //------------------------------------------------------------------\n [RCDATA_LESS_THAN_SIGN_STATE](cp) {\n if (cp === $.SOLIDUS) {\n this.tempBuff = [];\n this.state = RCDATA_END_TAG_OPEN_STATE;\n } else {\n this._emitChars('<');\n this._reconsumeInState(RCDATA_STATE);\n }\n }\n\n // RCDATA end tag open state\n //------------------------------------------------------------------\n [RCDATA_END_TAG_OPEN_STATE](cp) {\n if (isAsciiLetter(cp)) {\n this._createEndTagToken();\n this._reconsumeInState(RCDATA_END_TAG_NAME_STATE);\n } else {\n this._emitChars('</');\n this._reconsumeInState(RCDATA_STATE);\n }\n }\n\n // RCDATA end tag name state\n //------------------------------------------------------------------\n [RCDATA_END_TAG_NAME_STATE](cp) {\n if (isAsciiUpper(cp)) {\n this.currentToken.tagName += toAsciiLowerChar(cp);\n this.tempBuff.push(cp);\n } else if (isAsciiLower(cp)) {\n this.currentToken.tagName += toChar(cp);\n this.tempBuff.push(cp);\n } else {\n if (this.lastStartTagName === this.currentToken.tagName) {\n if (isWhitespace(cp)) {\n this.state = BEFORE_ATTRIBUTE_NAME_STATE;\n return;\n }\n\n if (cp === $.SOLIDUS) {\n this.state = SELF_CLOSING_START_TAG_STATE;\n return;\n }\n\n if (cp === $.GREATER_THAN_SIGN) {\n this.state = DATA_STATE;\n this._emitCurrentToken();\n return;\n }\n }\n\n this._emitChars('</');\n this._emitSeveralCodePoints(this.tempBuff);\n this._reconsumeInState(RCDATA_STATE);\n }\n }\n\n // RAWTEXT less-than sign state\n //------------------------------------------------------------------\n [RAWTEXT_LESS_THAN_SIGN_STATE](cp) {\n if (cp === $.SOLIDUS) {\n this.tempBuff = [];\n this.state = RAWTEXT_END_TAG_OPEN_STATE;\n } else {\n this._emitChars('<');\n this._reconsumeInState(RAWTEXT_STATE);\n }\n }\n\n // RAWTEXT end tag open state\n //------------------------------------------------------------------\n [RAWTEXT_END_TAG_OPEN_STATE](cp) {\n if (isAsciiLetter(cp)) {\n this._createEndTagToken();\n this._reconsumeInState(RAWTEXT_END_TAG_NAME_STATE);\n } else {\n this._emitChars('</');\n this._reconsumeInState(RAWTEXT_STATE);\n }\n }\n\n // RAWTEXT end tag name state\n //------------------------------------------------------------------\n [RAWTEXT_END_TAG_NAME_STATE](cp) {\n if (isAsciiUpper(cp)) {\n this.currentToken.tagName += toAsciiLowerChar(cp);\n this.tempBuff.push(cp);\n } else if (isAsciiLower(cp)) {\n this.currentToken.tagName += toChar(cp);\n this.tempBuff.push(cp);\n } else {\n if (this.lastStartTagName === this.currentToken.tagName) {\n if (isWhitespace(cp)) {\n this.state = BEFORE_ATTRIBUTE_NAME_STATE;\n return;\n }\n\n if (cp === $.SOLIDUS) {\n this.state = SELF_CLOSING_START_TAG_STATE;\n return;\n }\n\n if (cp === $.GREATER_THAN_SIGN) {\n this._emitCurrentToken();\n this.state = DATA_STATE;\n return;\n }\n }\n\n this._emitChars('</');\n this._emitSeveralCodePoints(this.tempBuff);\n this._reconsumeInState(RAWTEXT_STATE);\n }\n }\n\n // Script data less-than sign state\n //------------------------------------------------------------------\n [SCRIPT_DATA_LESS_THAN_SIGN_STATE](cp) {\n if (cp === $.SOLIDUS) {\n this.tempBuff = [];\n this.state = SCRIPT_DATA_END_TAG_OPEN_STATE;\n } else if (cp === $.EXCLAMATION_MARK) {\n this.state = SCRIPT_DATA_ESCAPE_START_STATE;\n this._emitChars('<!');\n } else {\n this._emitChars('<');\n this._reconsumeInState(SCRIPT_DATA_STATE);\n }\n }\n\n // Script data end tag open state\n //------------------------------------------------------------------\n [SCRIPT_DATA_END_TAG_OPEN_STATE](cp) {\n if (isAsciiLetter(cp)) {\n this._createEndTagToken();\n this._reconsumeInState(SCRIPT_DATA_END_TAG_NAME_STATE);\n } else {\n this._emitChars('</');\n this._reconsumeInState(SCRIPT_DATA_STATE);\n }\n }\n\n // Script data end tag name state\n //------------------------------------------------------------------\n [SCRIPT_DATA_END_TAG_NAME_STATE](cp) {\n if (isAsciiUpper(cp)) {\n this.currentToken.tagName += toAsciiLowerChar(cp);\n this.tempBuff.push(cp);\n } else if (isAsciiLower(cp)) {\n this.currentToken.tagName += toChar(cp);\n this.tempBuff.push(cp);\n } else {\n if (this.lastStartTagName === this.currentToken.tagName) {\n if (isWhitespace(cp)) {\n this.state = BEFORE_ATTRIBUTE_NAME_STATE;\n return;\n } else if (cp === $.SOLIDUS) {\n this.state = SELF_CLOSING_START_TAG_STATE;\n return;\n } else if (cp === $.GREATER_THAN_SIGN) {\n this._emitCurrentToken();\n this.state = DATA_STATE;\n return;\n }\n }\n\n this._emitChars('</');\n this._emitSeveralCodePoints(this.tempBuff);\n this._reconsumeInState(SCRIPT_DATA_STATE);\n }\n }\n\n // Script data escape start state\n //------------------------------------------------------------------\n [SCRIPT_DATA_ESCAPE_START_STATE](cp) {\n if (cp === $.HYPHEN_MINUS) {\n this.state = SCRIPT_DATA_ESCAPE_START_DASH_STATE;\n this._emitChars('-');\n } else {\n this._reconsumeInState(SCRIPT_DATA_STATE);\n }\n }\n\n // Script data escape start dash state\n //------------------------------------------------------------------\n [SCRIPT_DATA_ESCAPE_START_DASH_STATE](cp) {\n if (cp === $.HYPHEN_MINUS) {\n this.state = SCRIPT_DATA_ESCAPED_DASH_DASH_STATE;\n this._emitChars('-');\n } else {\n this._reconsumeInState(SCRIPT_DATA_STATE);\n }\n }\n\n // Script data escaped state\n //------------------------------------------------------------------\n [SCRIPT_DATA_ESCAPED_STATE](cp) {\n if (cp === $.HYPHEN_MINUS) {\n this.state = SCRIPT_DATA_ESCAPED_DASH_STATE;\n this._emitChars('-');\n } else if (cp === $.LESS_THAN_SIGN) {\n this.state = SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN_STATE;\n } else if (cp === $.NULL) {\n this._err(ERR.unexpectedNullCharacter);\n this._emitChars(unicode.REPLACEMENT_CHARACTER);\n } else if (cp === $.EOF) {\n this._err(ERR.eofInScriptHtmlCommentLikeText);\n this._emitEOFToken();\n } else {\n this._emitCodePoint(cp);\n }\n }\n\n // Script data escaped dash state\n //------------------------------------------------------------------\n [SCRIPT_DATA_ESCAPED_DASH_STATE](cp) {\n if (cp === $.HYPHEN_MINUS) {\n this.state = SCRIPT_DATA_ESCAPED_DASH_DASH_STATE;\n this._emitChars('-');\n } else if (cp === $.LESS_THAN_SIGN) {\n this.state = SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN_STATE;\n } else if (cp === $.NULL) {\n this._err(ERR.unexpectedNullCharacter);\n this.state = SCRIPT_DATA_ESCAPED_STATE;\n this._emitChars(unicode.REPLACEMENT_CHARACTER);\n } else if (cp === $.EOF) {\n this._err(ERR.eofInScriptHtmlCommentLikeText);\n this._emitEOFToken();\n } else {\n this.state = SCRIPT_DATA_ESCAPED_STATE;\n this._emitCodePoint(cp);\n }\n }\n\n // Script data escaped dash dash state\n //------------------------------------------------------------------\n [SCRIPT_DATA_ESCAPED_DASH_DASH_STATE](cp) {\n if (cp === $.HYPHEN_MINUS) {\n this._emitChars('-');\n } else if (cp === $.LESS_THAN_SIGN) {\n this.state = SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN_STATE;\n } else if (cp === $.GREATER_THAN_SIGN) {\n this.state = SCRIPT_DATA_STATE;\n this._emitChars('>');\n } else if (cp === $.NULL) {\n this._err(ERR.unexpectedNullCharacter);\n this.state = SCRIPT_DATA_ESCAPED_STATE;\n this._emitChars(unicode.REPLACEMENT_CHARACTER);\n } else if (cp === $.EOF) {\n this._err(ERR.eofInScriptHtmlCommentLikeText);\n this._emitEOFToken();\n } else {\n this.state = SCRIPT_DATA_ESCAPED_STATE;\n this._emitCodePoint(cp);\n }\n }\n\n // Script data escaped less-than sign state\n //------------------------------------------------------------------\n [SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN_STATE](cp) {\n if (cp === $.SOLIDUS) {\n this.tempBuff = [];\n this.state = SCRIPT_DATA_ESCAPED_END_TAG_OPEN_STATE;\n } else if (isAsciiLetter(cp)) {\n this.tempBuff = [];\n this._emitChars('<');\n this._reconsumeInState(SCRIPT_DATA_DOUBLE_ESCAPE_START_STATE);\n } else {\n this._emitChars('<');\n this._reconsumeInState(SCRIPT_DATA_ESCAPED_STATE);\n }\n }\n\n // Script data escaped end tag open state\n //------------------------------------------------------------------\n [SCRIPT_DATA_ESCAPED_END_TAG_OPEN_STATE](cp) {\n if (isAsciiLetter(cp)) {\n this._createEndTagToken();\n this._reconsumeInState(SCRIPT_DATA_ESCAPED_END_TAG_NAME_STATE);\n } else {\n this._emitChars('</');\n this._reconsumeInState(SCRIPT_DATA_ESCAPED_STATE);\n }\n }\n\n // Script data escaped end tag name state\n //------------------------------------------------------------------\n [SCRIPT_DATA_ESCAPED_END_TAG_NAME_STATE](cp) {\n if (isAsciiUpper(cp)) {\n this.currentToken.tagName += toAsciiLowerChar(cp);\n this.tempBuff.push(cp);\n } else if (isAsciiLower(cp)) {\n this.currentToken.tagName += toChar(cp);\n this.tempBuff.push(cp);\n } else {\n if (this.lastStartTagName === this.currentToken.tagName) {\n if (isWhitespace(cp)) {\n this.state = BEFORE_ATTRIBUTE_NAME_STATE;\n return;\n }\n\n if (cp === $.SOLIDUS) {\n this.state = SELF_CLOSING_START_TAG_STATE;\n return;\n }\n\n if (cp === $.GREATER_THAN_SIGN) {\n this._emitCurrentToken();\n this.state = DATA_STATE;\n return;\n }\n }\n\n this._emitChars('</');\n this._emitSeveralCodePoints(this.tempBuff);\n this._reconsumeInState(SCRIPT_DATA_ESCAPED_STATE);\n }\n }\n\n // Script data double escape start state\n //------------------------------------------------------------------\n [SCRIPT_DATA_DOUBLE_ESCAPE_START_STATE](cp) {\n if (isWhitespace(cp) || cp === $.SOLIDUS || cp === $.GREATER_THAN_SIGN) {\n this.state = this._isTempBufferEqualToScriptString()\n ? SCRIPT_DATA_DOUBLE_ESCAPED_STATE\n : SCRIPT_DATA_ESCAPED_STATE;\n this._emitCodePoint(cp);\n } else if (isAsciiUpper(cp)) {\n this.tempBuff.push(toAsciiLowerCodePoint(cp));\n this._emitCodePoint(cp);\n } else if (isAsciiLower(cp)) {\n this.tempBuff.push(cp);\n this._emitCodePoint(cp);\n } else {\n this._reconsumeInState(SCRIPT_DATA_ESCAPED_STATE);\n }\n }\n\n // Script data double escaped state\n //------------------------------------------------------------------\n [SCRIPT_DATA_DOUBLE_ESCAPED_STATE](cp) {\n if (cp === $.HYPHEN_MINUS) {\n this.state = SCRIPT_DATA_DOUBLE_ESCAPED_DASH_STATE;\n this._emitChars('-');\n } else if (cp === $.LESS_THAN_SIGN) {\n this.state = SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN_STATE;\n this._emitChars('<');\n } else if (cp === $.NULL) {\n this._err(ERR.unexpectedNullCharacter);\n this._emitChars(unicode.REPLACEMENT_CHARACTER);\n } else if (cp === $.EOF) {\n this._err(ERR.eofInScriptHtmlCommentLikeText);\n this._emitEOFToken();\n } else {\n this._emitCodePoint(cp);\n }\n }\n\n // Script data double escaped dash state\n //------------------------------------------------------------------\n [SCRIPT_DATA_DOUBLE_ESCAPED_DASH_STATE](cp) {\n if (cp === $.HYPHEN_MINUS) {\n this.state = SCRIPT_DATA_DOUBLE_ESCAPED_DASH_DASH_STATE;\n this._emitChars('-');\n } else if (cp === $.LESS_THAN_SIGN) {\n this.state = SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN_STATE;\n this._emitChars('<');\n } else if (cp === $.NULL) {\n this._err(ERR.unexpectedNullCharacter);\n this.state = SCRIPT_DATA_DOUBLE_ESCAPED_STATE;\n this._emitChars(unicode.REPLACEMENT_CHARACTER);\n } else if (cp === $.EOF) {\n this._err(ERR.eofInScriptHtmlCommentLikeText);\n this._emitEOFToken();\n } else {\n this.state = SCRIPT_DATA_DOUBLE_ESCAPED_STATE;\n this._emitCodePoint(cp);\n }\n }\n\n // Script data double escaped dash dash state\n //------------------------------------------------------------------\n [SCRIPT_DATA_DOUBLE_ESCAPED_DASH_DASH_STATE](cp) {\n if (cp === $.HYPHEN_MINUS) {\n this._emitChars('-');\n } else if (cp === $.LESS_THAN_SIGN) {\n this.state = SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN_STATE;\n this._emitChars('<');\n } else if (cp === $.GREATER_THAN_SIGN) {\n this.state = SCRIPT_DATA_STATE;\n this._emitChars('>');\n } else if (cp === $.NULL) {\n this._err(ERR.unexpectedNullCharacter);\n this.state = SCRIPT_DATA_DOUBLE_ESCAPED_STATE;\n this._emitChars(unicode.REPLACEMENT_CHARACTER);\n } else if (cp === $.EOF) {\n this._err(ERR.eofInScriptHtmlCommentLikeText);\n this._emitEOFToken();\n } else {\n this.state = SCRIPT_DATA_DOUBLE_ESCAPED_STATE;\n this._emitCodePoint(cp);\n }\n }\n\n // Script data double escaped less-than sign state\n //------------------------------------------------------------------\n [SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN_STATE](cp) {\n if (cp === $.SOLIDUS) {\n this.tempBuff = [];\n this.state = SCRIPT_DATA_DOUBLE_ESCAPE_END_STATE;\n this._emitChars('/');\n } else {\n this._reconsumeInState(SCRIPT_DATA_DOUBLE_ESCAPED_STATE);\n }\n }\n\n // Script data double escape end state\n //------------------------------------------------------------------\n [SCRIPT_DATA_DOUBLE_ESCAPE_END_STATE](cp) {\n if (isWhitespace(cp) || cp === $.SOLIDUS || cp === $.GREATER_THAN_SIGN) {\n this.state = this._isTempBufferEqualToScriptString()\n ? SCRIPT_DATA_ESCAPED_STATE\n : SCRIPT_DATA_DOUBLE_ESCAPED_STATE;\n\n this._emitCodePoint(cp);\n } else if (isAsciiUpper(cp)) {\n this.tempBuff.push(toAsciiLowerCodePoint(cp));\n this._emitCodePoint(cp);\n } else if (isAsciiLower(cp)) {\n this.tempBuff.push(cp);\n this._emitCodePoint(cp);\n } else {\n this._reconsumeInState(SCRIPT_DATA_DOUBLE_ESCAPED_STATE);\n }\n }\n\n // Before attribute name state\n //------------------------------------------------------------------\n [BEFORE_ATTRIBUTE_NAME_STATE](cp) {\n if (isWhitespace(cp)) {\n return;\n }\n\n if (cp === $.SOLIDUS || cp === $.GREATER_THAN_SIGN || cp === $.EOF) {\n this._reconsumeInState(AFTER_ATTRIBUTE_NAME_STATE);\n } else if (cp === $.EQUALS_SIGN) {\n this._err(ERR.unexpectedEqualsSignBeforeAttributeName);\n this._createAttr('=');\n this.state = ATTRIBUTE_NAME_STATE;\n } else {\n this._createAttr('');\n this._reconsumeInState(ATTRIBUTE_NAME_STATE);\n }\n }\n\n // Attribute name state\n //------------------------------------------------------------------\n [ATTRIBUTE_NAME_STATE](cp) {\n if (isWhitespace(cp) || cp === $.SOLIDUS || cp === $.GREATER_THAN_SIGN || cp === $.EOF) {\n this._leaveAttrName(AFTER_ATTRIBUTE_NAME_STATE);\n this._unconsume();\n } else if (cp === $.EQUALS_SIGN) {\n this._leaveAttrName(BEFORE_ATTRIBUTE_VALUE_STATE);\n } else if (isAsciiUpper(cp)) {\n this.currentAttr.name += toAsciiLowerChar(cp);\n } else if (cp === $.QUOTATION_MARK || cp === $.APOSTROPHE || cp === $.LESS_THAN_SIGN) {\n this._err(ERR.unexpectedCharacterInAttributeName);\n this.currentAttr.name += toChar(cp);\n } else if (cp === $.NULL) {\n this._err(ERR.unexpectedNullCharacter);\n this.currentAttr.name += unicode.REPLACEMENT_CHARACTER;\n } else {\n this.currentAttr.name += toChar(cp);\n }\n }\n\n // After attribute name state\n //------------------------------------------------------------------\n [AFTER_ATTRIBUTE_NAME_STATE](cp) {\n if (isWhitespace(cp)) {\n return;\n }\n\n if (cp === $.SOLIDUS) {\n this.state = SELF_CLOSING_START_TAG_STATE;\n } else if (cp === $.EQUALS_SIGN) {\n this.state = BEFORE_ATTRIBUTE_VALUE_STATE;\n } else if (cp === $.GREATER_THAN_SIGN) {\n this.state = DATA_STATE;\n this._emitCurrentToken();\n } else if (cp === $.EOF) {\n this._err(ERR.eofInTag);\n this._emitEOFToken();\n } else {\n this._createAttr('');\n this._reconsumeInState(ATTRIBUTE_NAME_STATE);\n }\n }\n\n // Before attribute value state\n //------------------------------------------------------------------\n [BEFORE_ATTRIBUTE_VALUE_STATE](cp) {\n if (isWhitespace(cp)) {\n return;\n }\n\n if (cp === $.QUOTATION_MARK) {\n this.state = ATTRIBUTE_VALUE_DOUBLE_QUOTED_STATE;\n } else if (cp === $.APOSTROPHE) {\n this.state = ATTRIBUTE_VALUE_SINGLE_QUOTED_STATE;\n } else if (cp === $.GREATER_THAN_SIGN) {\n this._err(ERR.missingAttributeValue);\n this.state = DATA_STATE;\n this._emitCurrentToken();\n } else {\n this._reconsumeInState(ATTRIBUTE_VALUE_UNQUOTED_STATE);\n }\n }\n\n // Attribute value (double-quoted) state\n //------------------------------------------------------------------\n [ATTRIBUTE_VALUE_DOUBLE_QUOTED_STATE](cp) {\n if (cp === $.QUOTATION_MARK) {\n this.state = AFTER_ATTRIBUTE_VALUE_QUOTED_STATE;\n } else if (cp === $.AMPERSAND) {\n this.returnState = ATTRIBUTE_VALUE_DOUBLE_QUOTED_STATE;\n this.state = CHARACTER_REFERENCE_STATE;\n } else if (cp === $.NULL) {\n this._err(ERR.unexpectedNullCharacter);\n this.currentAttr.value += unicode.REPLACEMENT_CHARACTER;\n } else if (cp === $.EOF) {\n this._err(ERR.eofInTag);\n this._emitEOFToken();\n } else {\n this.currentAttr.value += toChar(cp);\n }\n }\n\n // Attribute value (single-quoted) state\n //------------------------------------------------------------------\n [ATTRIBUTE_VALUE_SINGLE_QUOTED_STATE](cp) {\n if (cp === $.APOSTROPHE) {\n this.state = AFTER_ATTRIBUTE_VALUE_QUOTED_STATE;\n } else if (cp === $.AMPERSAND) {\n this.returnState = ATTRIBUTE_VALUE_SINGLE_QUOTED_STATE;\n this.state = CHARACTER_REFERENCE_STATE;\n } else if (cp === $.NULL) {\n this._err(ERR.unexpectedNullCharacter);\n this.currentAttr.value += unicode.REPLACEMENT_CHARACTER;\n } else if (cp === $.EOF) {\n this._err(ERR.eofInTag);\n this._emitEOFToken();\n } else {\n this.currentAttr.value += toChar(cp);\n }\n }\n\n // Attribute value (unquoted) state\n //------------------------------------------------------------------\n [ATTRIBUTE_VALUE_UNQUOTED_STATE](cp) {\n if (isWhitespace(cp)) {\n this._leaveAttrValue(BEFORE_ATTRIBUTE_NAME_STATE);\n } else if (cp === $.AMPERSAND) {\n this.returnState = ATTRIBUTE_VALUE_UNQUOTED_STATE;\n this.state = CHARACTER_REFERENCE_STATE;\n } else if (cp === $.GREATER_THAN_SIGN) {\n this._leaveAttrValue(DATA_STATE);\n this._emitCurrentToken();\n } else if (cp === $.NULL) {\n this._err(ERR.unexpectedNullCharacter);\n this.currentAttr.value += unicode.REPLACEMENT_CHARACTER;\n } else if (\n cp === $.QUOTATION_MARK ||\n cp === $.APOSTROPHE ||\n cp === $.LESS_THAN_SIGN ||\n cp === $.EQUALS_SIGN ||\n cp === $.GRAVE_ACCENT\n ) {\n this._err(ERR.unexpectedCharacterInUnquotedAttributeValue);\n this.currentAttr.value += toChar(cp);\n } else if (cp === $.EOF) {\n this._err(ERR.eofInTag);\n this._emitEOFToken();\n } else {\n this.currentAttr.value += toChar(cp);\n }\n }\n\n // After attribute value (quoted) state\n //------------------------------------------------------------------\n [AFTER_ATTRIBUTE_VALUE_QUOTED_STATE](cp) {\n if (isWhitespace(cp)) {\n this._leaveAttrValue(BEFORE_ATTRIBUTE_NAME_STATE);\n } else if (cp === $.SOLIDUS) {\n this._leaveAttrValue(SELF_CLOSING_START_TAG_STATE);\n } else if (cp === $.GREATER_THAN_SIGN) {\n this._leaveAttrValue(DATA_STATE);\n this._emitCurrentToken();\n } else if (cp === $.EOF) {\n this._err(ERR.eofInTag);\n this._emitEOFToken();\n } else {\n this._err(ERR.missingWhitespaceBetweenAttributes);\n this._reconsumeInState(BEFORE_ATTRIBUTE_NAME_STATE);\n }\n }\n\n // Self-closing start tag state\n //------------------------------------------------------------------\n [SELF_CLOSING_START_TAG_STATE](cp) {\n if (cp === $.GREATER_THAN_SIGN) {\n this.currentToken.selfClosing = true;\n this.state = DATA_STATE;\n this._emitCurrentToken();\n } else if (cp === $.EOF) {\n this._err(ERR.eofInTag);\n this._emitEOFToken();\n } else {\n this._err(ERR.unexpectedSolidusInTag);\n this._reconsumeInState(BEFORE_ATTRIBUTE_NAME_STATE);\n }\n }\n\n // Bogus comment state\n //------------------------------------------------------------------\n [BOGUS_COMMENT_STATE](cp) {\n if (cp === $.GREATER_THAN_SIGN) {\n this.state = DATA_STATE;\n this._emitCurrentToken();\n } else if (cp === $.EOF) {\n this._emitCurrentToken();\n this._emitEOFToken();\n } else if (cp === $.NULL) {\n this._err(ERR.unexpectedNullCharacter);\n this.currentToken.data += unicode.REPLACEMENT_CHARACTER;\n } else {\n this.currentToken.data += toChar(cp);\n }\n }\n\n // Markup declaration open state\n //------------------------------------------------------------------\n [MARKUP_DECLARATION_OPEN_STATE](cp) {\n if (this._consumeSequenceIfMatch($$.DASH_DASH_STRING, cp, true)) {\n this._createCommentToken();\n this.state = COMMENT_START_STATE;\n } else if (this._consumeSequenceIfMatch($$.DOCTYPE_STRING, cp, false)) {\n this.state = DOCTYPE_STATE;\n } else if (this._consumeSequenceIfMatch($$.CDATA_START_STRING, cp, true)) {\n if (this.allowCDATA) {\n this.state = CDATA_SECTION_STATE;\n } else {\n this._err(ERR.cdataInHtmlContent);\n this._createCommentToken();\n this.currentToken.data = '[CDATA[';\n this.state = BOGUS_COMMENT_STATE;\n }\n }\n\n //NOTE: sequence lookup can be abrupted by hibernation. In that case lookup\n //results are no longer valid and we will need to start over.\n else if (!this._ensureHibernation()) {\n this._err(ERR.incorrectlyOpenedComment);\n this._createCommentToken();\n this._reconsumeInState(BOGUS_COMMENT_STATE);\n }\n }\n\n // Comment start state\n //------------------------------------------------------------------\n [COMMENT_START_STATE](cp) {\n if (cp === $.HYPHEN_MINUS) {\n this.state = COMMENT_START_DASH_STATE;\n } else if (cp === $.GREATER_THAN_SIGN) {\n this._err(ERR.abruptClosingOfEmptyComment);\n this.state = DATA_STATE;\n this._emitCurrentToken();\n } else {\n this._reconsumeInState(COMMENT_STATE);\n }\n }\n\n // Comment start dash state\n //------------------------------------------------------------------\n [COMMENT_START_DASH_STATE](cp) {\n if (cp === $.HYPHEN_MINUS) {\n this.state = COMMENT_END_STATE;\n } else if (cp === $.GREATER_THAN_SIGN) {\n this._err(ERR.abruptClosingOfEmptyComment);\n this.state = DATA_STATE;\n this._emitCurrentToken();\n } else if (cp === $.EOF) {\n this._err(ERR.eofInComment);\n this._emitCurrentToken();\n this._emitEOFToken();\n } else {\n this.currentToken.data += '-';\n this._reconsumeInState(COMMENT_STATE);\n }\n }\n\n // Comment state\n //------------------------------------------------------------------\n [COMMENT_STATE](cp) {\n if (cp === $.HYPHEN_MINUS) {\n this.state = COMMENT_END_DASH_STATE;\n } else if (cp === $.LESS_THAN_SIGN) {\n this.currentToken.data += '<';\n this.state = COMMENT_LESS_THAN_SIGN_STATE;\n } else if (cp === $.NULL) {\n this._err(ERR.unexpectedNullCharacter);\n this.currentToken.data += unicode.REPLACEMENT_CHARACTER;\n } else if (cp === $.EOF) {\n this._err(ERR.eofInComment);\n this._emitCurrentToken();\n this._emitEOFToken();\n } else {\n this.currentToken.data += toChar(cp);\n }\n }\n\n // Comment less-than sign state\n //------------------------------------------------------------------\n [COMMENT_LESS_THAN_SIGN_STATE](cp) {\n if (cp === $.EXCLAMATION_MARK) {\n this.currentToken.data += '!';\n this.state = COMMENT_LESS_THAN_SIGN_BANG_STATE;\n } else if (cp === $.LESS_THAN_SIGN) {\n this.currentToken.data += '!';\n } else {\n this._reconsumeInState(COMMENT_STATE);\n }\n }\n\n // Comment less-than sign bang state\n //------------------------------------------------------------------\n [COMMENT_LESS_THAN_SIGN_BANG_STATE](cp) {\n if (cp === $.HYPHEN_MINUS) {\n this.state = COMMENT_LESS_THAN_SIGN_BANG_DASH_STATE;\n } else {\n this._reconsumeInState(COMMENT_STATE);\n }\n }\n\n // Comment less-than sign bang dash state\n //------------------------------------------------------------------\n [COMMENT_LESS_THAN_SIGN_BANG_DASH_STATE](cp) {\n if (cp === $.HYPHEN_MINUS) {\n this.state = COMMENT_LESS_THAN_SIGN_BANG_DASH_DASH_STATE;\n } else {\n this._reconsumeInState(COMMENT_END_DASH_STATE);\n }\n }\n\n // Comment less-than sign bang dash dash state\n //------------------------------------------------------------------\n [COMMENT_LESS_THAN_SIGN_BANG_DASH_DASH_STATE](cp) {\n if (cp !== $.GREATER_THAN_SIGN && cp !== $.EOF) {\n this._err(ERR.nestedComment);\n }\n\n this._reconsumeInState(COMMENT_END_STATE);\n }\n\n // Comment end dash state\n //------------------------------------------------------------------\n [COMMENT_END_DASH_STATE](cp) {\n if (cp === $.HYPHEN_MINUS) {\n this.state = COMMENT_END_STATE;\n } else if (cp === $.EOF) {\n this._err(ERR.eofInComment);\n this._emitCurrentToken();\n this._emitEOFToken();\n } else {\n this.currentToken.data += '-';\n this._reconsumeInState(COMMENT_STATE);\n }\n }\n\n // Comment end state\n //------------------------------------------------------------------\n [COMMENT_END_STATE](cp) {\n if (cp === $.GREATER_THAN_SIGN) {\n this.state = DATA_STATE;\n this._emitCurrentToken();\n } else if (cp === $.EXCLAMATION_MARK) {\n this.state = COMMENT_END_BANG_STATE;\n } else if (cp === $.HYPHEN_MINUS) {\n this.currentToken.data += '-';\n } else if (cp === $.EOF) {\n this._err(ERR.eofInComment);\n this._emitCurrentToken();\n this._emitEOFToken();\n } else {\n this.currentToken.data += '--';\n this._reconsumeInState(COMMENT_STATE);\n }\n }\n\n // Comment end bang state\n //------------------------------------------------------------------\n [COMMENT_END_BANG_STATE](cp) {\n if (cp === $.HYPHEN_MINUS) {\n this.currentToken.data += '--!';\n this.state = COMMENT_END_DASH_STATE;\n } else if (cp === $.GREATER_THAN_SIGN) {\n this._err(ERR.incorrectlyClosedComment);\n this.state = DATA_STATE;\n this._emitCurrentToken();\n } else if (cp === $.EOF) {\n this._err(ERR.eofInComment);\n this._emitCurrentToken();\n this._emitEOFToken();\n } else {\n this.currentToken.data += '--!';\n this._reconsumeInState(COMMENT_STATE);\n }\n }\n\n // DOCTYPE state\n //------------------------------------------------------------------\n [DOCTYPE_STATE](cp) {\n if (isWhitespace(cp)) {\n this.state = BEFORE_DOCTYPE_NAME_STATE;\n } else if (cp === $.GREATER_THAN_SIGN) {\n this._reconsumeInState(BEFORE_DOCTYPE_NAME_STATE);\n } else if (cp === $.EOF) {\n this._err(ERR.eofInDoctype);\n this._createDoctypeToken(null);\n this.currentToken.forceQuirks = true;\n this._emitCurrentToken();\n this._emitEOFToken();\n } else {\n this._err(ERR.missingWhitespaceBeforeDoctypeName);\n this._reconsumeInState(BEFORE_DOCTYPE_NAME_STATE);\n }\n }\n\n // Before DOCTYPE name state\n //------------------------------------------------------------------\n [BEFORE_DOCTYPE_NAME_STATE](cp) {\n if (isWhitespace(cp)) {\n return;\n }\n\n if (isAsciiUpper(cp)) {\n this._createDoctypeToken(toAsciiLowerChar(cp));\n this.state = DOCTYPE_NAME_STATE;\n } else if (cp === $.NULL) {\n this._err(ERR.unexpectedNullCharacter);\n this._createDoctypeToken(unicode.REPLACEMENT_CHARACTER);\n this.state = DOCTYPE_NAME_STATE;\n } else if (cp === $.GREATER_THAN_SIGN) {\n this._err(ERR.missingDoctypeName);\n this._createDoctypeToken(null);\n this.currentToken.forceQuirks = true;\n this._emitCurrentToken();\n this.state = DATA_STATE;\n } else if (cp === $.EOF) {\n this._err(ERR.eofInDoctype);\n this._createDoctypeToken(null);\n this.currentToken.forceQuirks = true;\n this._emitCurrentToken();\n this._emitEOFToken();\n } else {\n this._createDoctypeToken(toChar(cp));\n this.state = DOCTYPE_NAME_STATE;\n }\n }\n\n // DOCTYPE name state\n //------------------------------------------------------------------\n [DOCTYPE_NAME_STATE](cp) {\n if (isWhitespace(cp)) {\n this.state = AFTER_DOCTYPE_NAME_STATE;\n } else if (cp === $.GREATER_THAN_SIGN) {\n this.state = DATA_STATE;\n this._emitCurrentToken();\n } else if (isAsciiUpper(cp)) {\n this.currentToken.name += toAsciiLowerChar(cp);\n } else if (cp === $.NULL) {\n this._err(ERR.unexpectedNullCharacter);\n this.currentToken.name += unicode.REPLACEMENT_CHARACTER;\n } else if (cp === $.EOF) {\n this._err(ERR.eofInDoctype);\n this.currentToken.forceQuirks = true;\n this._emitCurrentToken();\n this._emitEOFToken();\n } else {\n this.currentToken.name += toChar(cp);\n }\n }\n\n // After DOCTYPE name state\n //------------------------------------------------------------------\n [AFTER_DOCTYPE_NAME_STATE](cp) {\n if (isWhitespace(cp)) {\n return;\n }\n\n if (cp === $.GREATER_THAN_SIGN) {\n this.state = DATA_STATE;\n this._emitCurrentToken();\n } else if (cp === $.EOF) {\n this._err(ERR.eofInDoctype);\n this.currentToken.forceQuirks = true;\n this._emitCurrentToken();\n this._emitEOFToken();\n } else if (this._consumeSequenceIfMatch($$.PUBLIC_STRING, cp, false)) {\n this.state = AFTER_DOCTYPE_PUBLIC_KEYWORD_STATE;\n } else if (this._consumeSequenceIfMatch($$.SYSTEM_STRING, cp, false)) {\n this.state = AFTER_DOCTYPE_SYSTEM_KEYWORD_STATE;\n }\n //NOTE: sequence lookup can be abrupted by hibernation. In that case lookup\n //results are no longer valid and we will need to start over.\n else if (!this._ensureHibernation()) {\n this._err(ERR.invalidCharacterSequenceAfterDoctypeName);\n this.currentToken.forceQuirks = true;\n this._reconsumeInState(BOGUS_DOCTYPE_STATE);\n }\n }\n\n // After DOCTYPE public keyword state\n //------------------------------------------------------------------\n [AFTER_DOCTYPE_PUBLIC_KEYWORD_STATE](cp) {\n if (isWhitespace(cp)) {\n this.state = BEFORE_DOCTYPE_PUBLIC_IDENTIFIER_STATE;\n } else if (cp === $.QUOTATION_MARK) {\n this._err(ERR.missingWhitespaceAfterDoctypePublicKeyword);\n this.currentToken.publicId = '';\n this.state = DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED_STATE;\n } else if (cp === $.APOSTROPHE) {\n this._err(ERR.missingWhitespaceAfterDoctypePublicKeyword);\n this.currentToken.publicId = '';\n this.state = DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED_STATE;\n } else if (cp === $.GREATER_THAN_SIGN) {\n this._err(ERR.missingDoctypePublicIdentifier);\n this.currentToken.forceQuirks = true;\n this.state = DATA_STATE;\n this._emitCurrentToken();\n } else if (cp === $.EOF) {\n this._err(ERR.eofInDoctype);\n this.currentToken.forceQuirks = true;\n this._emitCurrentToken();\n this._emitEOFToken();\n } else {\n this._err(ERR.missingQuoteBeforeDoctypePublicIdentifier);\n this.currentToken.forceQuirks = true;\n this._reconsumeInState(BOGUS_DOCTYPE_STATE);\n }\n }\n\n // Before DOCTYPE public identifier state\n //------------------------------------------------------------------\n [BEFORE_DOCTYPE_PUBLIC_IDENTIFIER_STATE](cp) {\n if (isWhitespace(cp)) {\n return;\n }\n\n if (cp === $.QUOTATION_MARK) {\n this.currentToken.publicId = '';\n this.state = DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED_STATE;\n } else if (cp === $.APOSTROPHE) {\n this.currentToken.publicId = '';\n this.state = DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED_STATE;\n } else if (cp === $.GREATER_THAN_SIGN) {\n this._err(ERR.missingDoctypePublicIdentifier);\n this.currentToken.forceQuirks = true;\n this.state = DATA_STATE;\n this._emitCurrentToken();\n } else if (cp === $.EOF) {\n this._err(ERR.eofInDoctype);\n this.currentToken.forceQuirks = true;\n this._emitCurrentToken();\n this._emitEOFToken();\n } else {\n this._err(ERR.missingQuoteBeforeDoctypePublicIdentifier);\n this.currentToken.forceQuirks = true;\n this._reconsumeInState(BOGUS_DOCTYPE_STATE);\n }\n }\n\n // DOCTYPE public identifier (double-quoted) state\n //------------------------------------------------------------------\n [DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED_STATE](cp) {\n if (cp === $.QUOTATION_MARK) {\n this.state = AFTER_DOCTYPE_PUBLIC_IDENTIFIER_STATE;\n } else if (cp === $.NULL) {\n this._err(ERR.unexpectedNullCharacter);\n this.currentToken.publicId += unicode.REPLACEMENT_CHARACTER;\n } else if (cp === $.GREATER_THAN_SIGN) {\n this._err(ERR.abruptDoctypePublicIdentifier);\n this.currentToken.forceQuirks = true;\n this._emitCurrentToken();\n this.state = DATA_STATE;\n } else if (cp === $.EOF) {\n this._err(ERR.eofInDoctype);\n this.currentToken.forceQuirks = true;\n this._emitCurrentToken();\n this._emitEOFToken();\n } else {\n this.currentToken.publicId += toChar(cp);\n }\n }\n\n // DOCTYPE public identifier (single-quoted) state\n //------------------------------------------------------------------\n [DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED_STATE](cp) {\n if (cp === $.APOSTROPHE) {\n this.state = AFTER_DOCTYPE_PUBLIC_IDENTIFIER_STATE;\n } else if (cp === $.NULL) {\n this._err(ERR.unexpectedNullCharacter);\n this.currentToken.publicId += unicode.REPLACEMENT_CHARACTER;\n } else if (cp === $.GREATER_THAN_SIGN) {\n this._err(ERR.abruptDoctypePublicIdentifier);\n this.currentToken.forceQuirks = true;\n this._emitCurrentToken();\n this.state = DATA_STATE;\n } else if (cp === $.EOF) {\n this._err(ERR.eofInDoctype);\n this.currentToken.forceQuirks = true;\n this._emitCurrentToken();\n this._emitEOFToken();\n } else {\n this.currentToken.publicId += toChar(cp);\n }\n }\n\n // After DOCTYPE public identifier state\n //------------------------------------------------------------------\n [AFTER_DOCTYPE_PUBLIC_IDENTIFIER_STATE](cp) {\n if (isWhitespace(cp)) {\n this.state = BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS_STATE;\n } else if (cp === $.GREATER_THAN_SIGN) {\n this.state = DATA_STATE;\n this._emitCurrentToken();\n } else if (cp === $.QUOTATION_MARK) {\n this._err(ERR.missingWhitespaceBetweenDoctypePublicAndSystemIdentifiers);\n this.currentToken.systemId = '';\n this.state = DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED_STATE;\n } else if (cp === $.APOSTROPHE) {\n this._err(ERR.missingWhitespaceBetweenDoctypePublicAndSystemIdentifiers);\n this.currentToken.systemId = '';\n this.state = DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED_STATE;\n } else if (cp === $.EOF) {\n this._err(ERR.eofInDoctype);\n this.currentToken.forceQuirks = true;\n this._emitCurrentToken();\n this._emitEOFToken();\n } else {\n this._err(ERR.missingQuoteBeforeDoctypeSystemIdentifier);\n this.currentToken.forceQuirks = true;\n this._reconsumeInState(BOGUS_DOCTYPE_STATE);\n }\n }\n\n // Between DOCTYPE public and system identifiers state\n //------------------------------------------------------------------\n [BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS_STATE](cp) {\n if (isWhitespace(cp)) {\n return;\n }\n\n if (cp === $.GREATER_THAN_SIGN) {\n this._emitCurrentToken();\n this.state = DATA_STATE;\n } else if (cp === $.QUOTATION_MARK) {\n this.currentToken.systemId = '';\n this.state = DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED_STATE;\n } else if (cp === $.APOSTROPHE) {\n this.currentToken.systemId = '';\n this.state = DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED_STATE;\n } else if (cp === $.EOF) {\n this._err(ERR.eofInDoctype);\n this.currentToken.forceQuirks = true;\n this._emitCurrentToken();\n this._emitEOFToken();\n } else {\n this._err(ERR.missingQuoteBeforeDoctypeSystemIdentifier);\n this.currentToken.forceQuirks = true;\n this._reconsumeInState(BOGUS_DOCTYPE_STATE);\n }\n }\n\n // After DOCTYPE system keyword state\n //------------------------------------------------------------------\n [AFTER_DOCTYPE_SYSTEM_KEYWORD_STATE](cp) {\n if (isWhitespace(cp)) {\n this.state = BEFORE_DOCTYPE_SYSTEM_IDENTIFIER_STATE;\n } else if (cp === $.QUOTATION_MARK) {\n this._err(ERR.missingWhitespaceAfterDoctypeSystemKeyword);\n this.currentToken.systemId = '';\n this.state = DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED_STATE;\n } else if (cp === $.APOSTROPHE) {\n this._err(ERR.missingWhitespaceAfterDoctypeSystemKeyword);\n this.currentToken.systemId = '';\n this.state = DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED_STATE;\n } else if (cp === $.GREATER_THAN_SIGN) {\n this._err(ERR.missingDoctypeSystemIdentifier);\n this.currentToken.forceQuirks = true;\n this.state = DATA_STATE;\n this._emitCurrentToken();\n } else if (cp === $.EOF) {\n this._err(ERR.eofInDoctype);\n this.currentToken.forceQuirks = true;\n this._emitCurrentToken();\n this._emitEOFToken();\n } else {\n this._err(ERR.missingQuoteBeforeDoctypeSystemIdentifier);\n this.currentToken.forceQuirks = true;\n this._reconsumeInState(BOGUS_DOCTYPE_STATE);\n }\n }\n\n // Before DOCTYPE system identifier state\n //------------------------------------------------------------------\n [BEFORE_DOCTYPE_SYSTEM_IDENTIFIER_STATE](cp) {\n if (isWhitespace(cp)) {\n return;\n }\n\n if (cp === $.QUOTATION_MARK) {\n this.currentToken.systemId = '';\n this.state = DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED_STATE;\n } else if (cp === $.APOSTROPHE) {\n this.currentToken.systemId = '';\n this.state = DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED_STATE;\n } else if (cp === $.GREATER_THAN_SIGN) {\n this._err(ERR.missingDoctypeSystemIdentifier);\n this.currentToken.forceQuirks = true;\n this.state = DATA_STATE;\n this._emitCurrentToken();\n } else if (cp === $.EOF) {\n this._err(ERR.eofInDoctype);\n this.currentToken.forceQuirks = true;\n this._emitCurrentToken();\n this._emitEOFToken();\n } else {\n this._err(ERR.missingQuoteBeforeDoctypeSystemIdentifier);\n this.currentToken.forceQuirks = true;\n this._reconsumeInState(BOGUS_DOCTYPE_STATE);\n }\n }\n\n // DOCTYPE system identifier (double-quoted) state\n //------------------------------------------------------------------\n [DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED_STATE](cp) {\n if (cp === $.QUOTATION_MARK) {\n this.state = AFTER_DOCTYPE_SYSTEM_IDENTIFIER_STATE;\n } else if (cp === $.NULL) {\n this._err(ERR.unexpectedNullCharacter);\n this.currentToken.systemId += unicode.REPLACEMENT_CHARACTER;\n } else if (cp === $.GREATER_THAN_SIGN) {\n this._err(ERR.abruptDoctypeSystemIdentifier);\n this.currentToken.forceQuirks = true;\n this._emitCurrentToken();\n this.state = DATA_STATE;\n } else if (cp === $.EOF) {\n this._err(ERR.eofInDoctype);\n this.currentToken.forceQuirks = true;\n this._emitCurrentToken();\n this._emitEOFToken();\n } else {\n this.currentToken.systemId += toChar(cp);\n }\n }\n\n // DOCTYPE system identifier (single-quoted) state\n //------------------------------------------------------------------\n [DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED_STATE](cp) {\n if (cp === $.APOSTROPHE) {\n this.state = AFTER_DOCTYPE_SYSTEM_IDENTIFIER_STATE;\n } else if (cp === $.NULL) {\n this._err(ERR.unexpectedNullCharacter);\n this.currentToken.systemId += unicode.REPLACEMENT_CHARACTER;\n } else if (cp === $.GREATER_THAN_SIGN) {\n this._err(ERR.abruptDoctypeSystemIdentifier);\n this.currentToken.forceQuirks = true;\n this._emitCurrentToken();\n this.state = DATA_STATE;\n } else if (cp === $.EOF) {\n this._err(ERR.eofInDoctype);\n this.currentToken.forceQuirks = true;\n this._emitCurrentToken();\n this._emitEOFToken();\n } else {\n this.currentToken.systemId += toChar(cp);\n }\n }\n\n // After DOCTYPE system identifier state\n //------------------------------------------------------------------\n [AFTER_DOCTYPE_SYSTEM_IDENTIFIER_STATE](cp) {\n if (isWhitespace(cp)) {\n return;\n }\n\n if (cp === $.GREATER_THAN_SIGN) {\n this._emitCurrentToken();\n this.state = DATA_STATE;\n } else if (cp === $.EOF) {\n this._err(ERR.eofInDoctype);\n this.currentToken.forceQuirks = true;\n this._emitCurrentToken();\n this._emitEOFToken();\n } else {\n this._err(ERR.unexpectedCharacterAfterDoctypeSystemIdentifier);\n this._reconsumeInState(BOGUS_DOCTYPE_STATE);\n }\n }\n\n // Bogus DOCTYPE state\n //------------------------------------------------------------------\n [BOGUS_DOCTYPE_STATE](cp) {\n if (cp === $.GREATER_THAN_SIGN) {\n this._emitCurrentToken();\n this.state = DATA_STATE;\n } else if (cp === $.NULL) {\n this._err(ERR.unexpectedNullCharacter);\n } else if (cp === $.EOF) {\n this._emitCurrentToken();\n this._emitEOFToken();\n }\n }\n\n // CDATA section state\n //------------------------------------------------------------------\n [CDATA_SECTION_STATE](cp) {\n if (cp === $.RIGHT_SQUARE_BRACKET) {\n this.state = CDATA_SECTION_BRACKET_STATE;\n } else if (cp === $.EOF) {\n this._err(ERR.eofInCdata);\n this._emitEOFToken();\n } else {\n this._emitCodePoint(cp);\n }\n }\n\n // CDATA section bracket state\n //------------------------------------------------------------------\n [CDATA_SECTION_BRACKET_STATE](cp) {\n if (cp === $.RIGHT_SQUARE_BRACKET) {\n this.state = CDATA_SECTION_END_STATE;\n } else {\n this._emitChars(']');\n this._reconsumeInState(CDATA_SECTION_STATE);\n }\n }\n\n // CDATA section end state\n //------------------------------------------------------------------\n [CDATA_SECTION_END_STATE](cp) {\n if (cp === $.GREATER_THAN_SIGN) {\n this.state = DATA_STATE;\n } else if (cp === $.RIGHT_SQUARE_BRACKET) {\n this._emitChars(']');\n } else {\n this._emitChars(']]');\n this._reconsumeInState(CDATA_SECTION_STATE);\n }\n }\n\n // Character reference state\n //------------------------------------------------------------------\n [CHARACTER_REFERENCE_STATE](cp) {\n this.tempBuff = [$.AMPERSAND];\n\n if (cp === $.NUMBER_SIGN) {\n this.tempBuff.push(cp);\n this.state = NUMERIC_CHARACTER_REFERENCE_STATE;\n } else if (isAsciiAlphaNumeric(cp)) {\n this._reconsumeInState(NAMED_CHARACTER_REFERENCE_STATE);\n } else {\n this._flushCodePointsConsumedAsCharacterReference();\n this._reconsumeInState(this.returnState);\n }\n }\n\n // Named character reference state\n //------------------------------------------------------------------\n [NAMED_CHARACTER_REFERENCE_STATE](cp) {\n const matchResult = this._matchNamedCharacterReference(cp);\n\n //NOTE: matching can be abrupted by hibernation. In that case match\n //results are no longer valid and we will need to start over.\n if (this._ensureHibernation()) {\n this.tempBuff = [$.AMPERSAND];\n } else if (matchResult) {\n const withSemicolon = this.tempBuff[this.tempBuff.length - 1] === $.SEMICOLON;\n\n if (!this._isCharacterReferenceAttributeQuirk(withSemicolon)) {\n if (!withSemicolon) {\n this._errOnNextCodePoint(ERR.missingSemicolonAfterCharacterReference);\n }\n\n this.tempBuff = matchResult;\n }\n\n this._flushCodePointsConsumedAsCharacterReference();\n this.state = this.returnState;\n } else {\n this._flushCodePointsConsumedAsCharacterReference();\n this.state = AMBIGUOUS_AMPERSAND_STATE;\n }\n }\n\n // Ambiguos ampersand state\n //------------------------------------------------------------------\n [AMBIGUOUS_AMPERSAND_STATE](cp) {\n if (isAsciiAlphaNumeric(cp)) {\n if (this._isCharacterReferenceInAttribute()) {\n this.currentAttr.value += toChar(cp);\n } else {\n this._emitCodePoint(cp);\n }\n } else {\n if (cp === $.SEMICOLON) {\n this._err(ERR.unknownNamedCharacterReference);\n }\n\n this._reconsumeInState(this.returnState);\n }\n }\n\n // Numeric character reference state\n //------------------------------------------------------------------\n [NUMERIC_CHARACTER_REFERENCE_STATE](cp) {\n this.charRefCode = 0;\n\n if (cp === $.LATIN_SMALL_X || cp === $.LATIN_CAPITAL_X) {\n this.tempBuff.push(cp);\n this.state = HEXADEMICAL_CHARACTER_REFERENCE_START_STATE;\n } else {\n this._reconsumeInState(DECIMAL_CHARACTER_REFERENCE_START_STATE);\n }\n }\n\n // Hexademical character reference start state\n //------------------------------------------------------------------\n [HEXADEMICAL_CHARACTER_REFERENCE_START_STATE](cp) {\n if (isAsciiHexDigit(cp)) {\n this._reconsumeInState(HEXADEMICAL_CHARACTER_REFERENCE_STATE);\n } else {\n this._err(ERR.absenceOfDigitsInNumericCharacterReference);\n this._flushCodePointsConsumedAsCharacterReference();\n this._reconsumeInState(this.returnState);\n }\n }\n\n // Decimal character reference start state\n //------------------------------------------------------------------\n [DECIMAL_CHARACTER_REFERENCE_START_STATE](cp) {\n if (isAsciiDigit(cp)) {\n this._reconsumeInState(DECIMAL_CHARACTER_REFERENCE_STATE);\n } else {\n this._err(ERR.absenceOfDigitsInNumericCharacterReference);\n this._flushCodePointsConsumedAsCharacterReference();\n this._reconsumeInState(this.returnState);\n }\n }\n\n // Hexademical character reference state\n //------------------------------------------------------------------\n [HEXADEMICAL_CHARACTER_REFERENCE_STATE](cp) {\n if (isAsciiUpperHexDigit(cp)) {\n this.charRefCode = this.charRefCode * 16 + cp - 0x37;\n } else if (isAsciiLowerHexDigit(cp)) {\n this.charRefCode = this.charRefCode * 16 + cp - 0x57;\n } else if (isAsciiDigit(cp)) {\n this.charRefCode = this.charRefCode * 16 + cp - 0x30;\n } else if (cp === $.SEMICOLON) {\n this.state = NUMERIC_CHARACTER_REFERENCE_END_STATE;\n } else {\n this._err(ERR.missingSemicolonAfterCharacterReference);\n this._reconsumeInState(NUMERIC_CHARACTER_REFERENCE_END_STATE);\n }\n }\n\n // Decimal character reference state\n //------------------------------------------------------------------\n [DECIMAL_CHARACTER_REFERENCE_STATE](cp) {\n if (isAsciiDigit(cp)) {\n this.charRefCode = this.charRefCode * 10 + cp - 0x30;\n } else if (cp === $.SEMICOLON) {\n this.state = NUMERIC_CHARACTER_REFERENCE_END_STATE;\n } else {\n this._err(ERR.missingSemicolonAfterCharacterReference);\n this._reconsumeInState(NUMERIC_CHARACTER_REFERENCE_END_STATE);\n }\n }\n\n // Numeric character reference end state\n //------------------------------------------------------------------\n [NUMERIC_CHARACTER_REFERENCE_END_STATE]() {\n if (this.charRefCode === $.NULL) {\n this._err(ERR.nullCharacterReference);\n this.charRefCode = $.REPLACEMENT_CHARACTER;\n } else if (this.charRefCode > 0x10ffff) {\n this._err(ERR.characterReferenceOutsideUnicodeRange);\n this.charRefCode = $.REPLACEMENT_CHARACTER;\n } else if (unicode.isSurrogate(this.charRefCode)) {\n this._err(ERR.surrogateCharacterReference);\n this.charRefCode = $.REPLACEMENT_CHARACTER;\n } else if (unicode.isUndefinedCodePoint(this.charRefCode)) {\n this._err(ERR.noncharacterCharacterReference);\n } else if (unicode.isControlCodePoint(this.charRefCode) || this.charRefCode === $.CARRIAGE_RETURN) {\n this._err(ERR.controlCharacterReference);\n\n const replacement = C1_CONTROLS_REFERENCE_REPLACEMENTS[this.charRefCode];\n\n if (replacement) {\n this.charRefCode = replacement;\n }\n }\n\n this.tempBuff = [this.charRefCode];\n\n this._flushCodePointsConsumedAsCharacterReference();\n this._reconsumeInState(this.returnState);\n }\n}\n\n//Token types\nTokenizer.CHARACTER_TOKEN = 'CHARACTER_TOKEN';\nTokenizer.NULL_CHARACTER_TOKEN = 'NULL_CHARACTER_TOKEN';\nTokenizer.WHITESPACE_CHARACTER_TOKEN = 'WHITESPACE_CHARACTER_TOKEN';\nTokenizer.START_TAG_TOKEN = 'START_TAG_TOKEN';\nTokenizer.END_TAG_TOKEN = 'END_TAG_TOKEN';\nTokenizer.COMMENT_TOKEN = 'COMMENT_TOKEN';\nTokenizer.DOCTYPE_TOKEN = 'DOCTYPE_TOKEN';\nTokenizer.EOF_TOKEN = 'EOF_TOKEN';\nTokenizer.HIBERNATION_TOKEN = 'HIBERNATION_TOKEN';\n\n//Tokenizer initial states for different modes\nTokenizer.MODE = {\n DATA: DATA_STATE,\n RCDATA: RCDATA_STATE,\n RAWTEXT: RAWTEXT_STATE,\n SCRIPT_DATA: SCRIPT_DATA_STATE,\n PLAINTEXT: PLAINTEXT_STATE\n};\n\n//Static\nTokenizer.getTokenAttr = function(token, attrName) {\n for (let i = token.attrs.length - 1; i >= 0; i--) {\n if (token.attrs[i].name === attrName) {\n return token.attrs[i].value;\n }\n }\n\n return null;\n};\n\nmodule.exports = Tokenizer;\n","'use strict'\n\nmodule.exports = ruby\nruby.displayName = 'ruby'\nruby.aliases = ['rb']\nfunction ruby(Prism) {\n /**\n * Original by Samuel Flores\n *\n * Adds the following new token classes:\n * constant, builtin, variable, symbol, regex\n */\n ;(function (Prism) {\n Prism.languages.ruby = Prism.languages.extend('clike', {\n comment: [\n /#.*/,\n {\n pattern: /^=begin\\s[\\s\\S]*?^=end/m,\n greedy: true\n }\n ],\n 'class-name': {\n pattern: /(\\b(?:class)\\s+|\\bcatch\\s+\\()[\\w.\\\\]+/i,\n lookbehind: true,\n inside: {\n punctuation: /[.\\\\]/\n }\n },\n keyword: /\\b(?:alias|and|BEGIN|begin|break|case|class|def|define_method|defined|do|each|else|elsif|END|end|ensure|extend|for|if|in|include|module|new|next|nil|not|or|prepend|protected|private|public|raise|redo|require|rescue|retry|return|self|super|then|throw|undef|unless|until|when|while|yield)\\b/\n })\n var interpolation = {\n pattern: /#\\{[^}]+\\}/,\n inside: {\n delimiter: {\n pattern: /^#\\{|\\}$/,\n alias: 'tag'\n },\n rest: Prism.languages.ruby\n }\n }\n delete Prism.languages.ruby.function\n Prism.languages.insertBefore('ruby', 'keyword', {\n regex: [\n {\n pattern: RegExp(\n /%r/.source +\n '(?:' +\n [\n /([^a-zA-Z0-9\\s{(\\[<])(?:(?!\\1)[^\\\\]|\\\\[\\s\\S])*\\1[gim]{0,3}/\n .source,\n /\\((?:[^()\\\\]|\\\\[\\s\\S])*\\)[gim]{0,3}/.source, // Here we need to specifically allow interpolation\n /\\{(?:[^#{}\\\\]|#(?:\\{[^}]+\\})?|\\\\[\\s\\S])*\\}[gim]{0,3}/.source,\n /\\[(?:[^\\[\\]\\\\]|\\\\[\\s\\S])*\\][gim]{0,3}/.source,\n /<(?:[^<>\\\\]|\\\\[\\s\\S])*>[gim]{0,3}/.source\n ].join('|') +\n ')'\n ),\n greedy: true,\n inside: {\n interpolation: interpolation\n }\n },\n {\n pattern: /(^|[^/])\\/(?!\\/)(?:\\[[^\\r\\n\\]]+\\]|\\\\.|[^[/\\\\\\r\\n])+\\/[gim]{0,3}(?=\\s*(?:$|[\\r\\n,.;})]))/,\n lookbehind: true,\n greedy: true\n }\n ],\n variable: /[@$]+[a-zA-Z_]\\w*(?:[?!]|\\b)/,\n symbol: {\n pattern: /(^|[^:]):[a-zA-Z_]\\w*(?:[?!]|\\b)/,\n lookbehind: true\n },\n 'method-definition': {\n pattern: /(\\bdef\\s+)[\\w.]+/,\n lookbehind: true,\n inside: {\n function: /\\w+$/,\n rest: Prism.languages.ruby\n }\n }\n })\n Prism.languages.insertBefore('ruby', 'number', {\n builtin: /\\b(?:Array|Bignum|Binding|Class|Continuation|Dir|Exception|FalseClass|File|Stat|Fixnum|Float|Hash|Integer|IO|MatchData|Method|Module|NilClass|Numeric|Object|Proc|Range|Regexp|String|Struct|TMS|Symbol|ThreadGroup|Thread|Time|TrueClass)\\b/,\n constant: /\\b[A-Z]\\w*(?:[?!]|\\b)/\n })\n Prism.languages.ruby.string = [\n {\n pattern: RegExp(\n /%[qQiIwWxs]?/.source +\n '(?:' +\n [\n /([^a-zA-Z0-9\\s{(\\[<])(?:(?!\\1)[^\\\\]|\\\\[\\s\\S])*\\1/.source,\n /\\((?:[^()\\\\]|\\\\[\\s\\S])*\\)/.source, // Here we need to specifically allow interpolation\n /\\{(?:[^#{}\\\\]|#(?:\\{[^}]+\\})?|\\\\[\\s\\S])*\\}/.source,\n /\\[(?:[^\\[\\]\\\\]|\\\\[\\s\\S])*\\]/.source,\n /<(?:[^<>\\\\]|\\\\[\\s\\S])*>/.source\n ].join('|') +\n ')'\n ),\n greedy: true,\n inside: {\n interpolation: interpolation\n }\n },\n {\n pattern: /(\"|')(?:#\\{[^}]+\\}|#(?!\\{)|\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\#\\r\\n])*\\1/,\n greedy: true,\n inside: {\n interpolation: interpolation\n }\n }\n ]\n Prism.languages.rb = Prism.languages.ruby\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = javadoclike\njavadoclike.displayName = 'javadoclike'\njavadoclike.aliases = []\nfunction javadoclike(Prism) {\n ;(function (Prism) {\n var javaDocLike = (Prism.languages.javadoclike = {\n parameter: {\n pattern: /(^\\s*(?:\\/{3}|\\*|\\/\\*\\*)\\s*@(?:param|arg|arguments)\\s+)\\w+/m,\n lookbehind: true\n },\n keyword: {\n // keywords are the first word in a line preceded be an `@` or surrounded by curly braces.\n // @word, {@word}\n pattern: /(^\\s*(?:\\/{3}|\\*|\\/\\*\\*)\\s*|\\{)@[a-z][a-zA-Z-]+\\b/m,\n lookbehind: true\n },\n punctuation: /[{}]/\n })\n /**\n * Adds doc comment support to the given language and calls a given callback on each doc comment pattern.\n *\n * @param {string} lang the language add doc comment support to.\n * @param {(pattern: {inside: {rest: undefined}}) => void} callback the function called with each doc comment pattern as argument.\n */\n function docCommentSupport(lang, callback) {\n var tokenName = 'doc-comment'\n var grammar = Prism.languages[lang]\n if (!grammar) {\n return\n }\n var token = grammar[tokenName]\n if (!token) {\n // add doc comment: /** */\n var definition = {}\n definition[tokenName] = {\n pattern: /(^|[^\\\\])\\/\\*\\*[^/][\\s\\S]*?(?:\\*\\/|$)/,\n lookbehind: true,\n alias: 'comment'\n }\n grammar = Prism.languages.insertBefore(lang, 'comment', definition)\n token = grammar[tokenName]\n }\n if (token instanceof RegExp) {\n // convert regex to object\n token = grammar[tokenName] = {\n pattern: token\n }\n }\n if (Array.isArray(token)) {\n for (var i = 0, l = token.length; i < l; i++) {\n if (token[i] instanceof RegExp) {\n token[i] = {\n pattern: token[i]\n }\n }\n callback(token[i])\n }\n } else {\n callback(token)\n }\n }\n /**\n * Adds doc-comment support to the given languages for the given documentation language.\n *\n * @param {string[]|string} languages\n * @param {Object} docLanguage\n */\n function addSupport(languages, docLanguage) {\n if (typeof languages === 'string') {\n languages = [languages]\n }\n languages.forEach(function (lang) {\n docCommentSupport(lang, function (pattern) {\n if (!pattern.inside) {\n pattern.inside = {}\n }\n pattern.inside.rest = docLanguage\n })\n })\n }\n Object.defineProperty(javaDocLike, 'addSupport', {\n value: addSupport\n })\n javaDocLike.addSupport(['java', 'javascript', 'php'], javaDocLike)\n })(Prism)\n}\n","'use strict'\nvar refractorMarkupTemplating = require('./markup-templating.js')\nmodule.exports = php\nphp.displayName = 'php'\nphp.aliases = []\nfunction php(Prism) {\n Prism.register(refractorMarkupTemplating)\n /**\n * Original by Aaron Harun: http://aahacreative.com/2012/07/31/php-syntax-highlighting-prism/\n * Modified by Miles Johnson: http://milesj.me\n * Rewritten by Tom Pavelec\n *\n * Supports PHP 5.3 - 8.0\n */\n ;(function (Prism) {\n var comment = /\\/\\*[\\s\\S]*?\\*\\/|\\/\\/.*|#(?!\\[).*/\n var constant = [\n {\n pattern: /\\b(?:false|true)\\b/i,\n alias: 'boolean'\n },\n /\\b[A-Z_][A-Z0-9_]*\\b(?!\\s*\\()/,\n /\\b(?:null)\\b/i\n ]\n var number = /\\b0b[01]+\\b|\\b0x[\\da-f]+\\b|(?:\\b\\d+(?:_\\d+)*(?:\\.(?:\\d+(?:_\\d+)*)?)?|\\B\\.\\d+)(?:e[+-]?\\d+)?/i\n var operator = /<?=>|\\?\\?=?|\\.{3}|\\??->|[!=]=?=?|::|\\*\\*=?|--|\\+\\+|&&|\\|\\||<<|>>|[?~]|[/^|%*&<>.+-]=?/\n var punctuation = /[{}\\[\\](),:;]/\n Prism.languages.php = {\n delimiter: {\n pattern: /\\?>$|^<\\?(?:php(?=\\s)|=)?/i,\n alias: 'important'\n },\n comment: comment,\n variable: /\\$+(?:\\w+\\b|(?={))/i,\n package: {\n pattern: /(namespace\\s+|use\\s+(?:function\\s+)?)(?:\\\\?\\b[a-z_]\\w*)+\\b(?!\\\\)/i,\n lookbehind: true,\n inside: {\n punctuation: /\\\\/\n }\n },\n keyword: [\n {\n pattern: /(\\(\\s*)\\b(?:bool|boolean|int|integer|float|string|object|array)\\b(?=\\s*\\))/i,\n alias: 'type-casting',\n greedy: true,\n lookbehind: true\n },\n {\n pattern: /([(,?]\\s*)\\b(?:bool|int|float|string|object|array(?!\\s*\\()|mixed|self|static|callable|iterable|(?:null|false)(?=\\s*\\|))\\b(?=\\s*\\$)/i,\n alias: 'type-hint',\n greedy: true,\n lookbehind: true\n },\n {\n pattern: /([(,?]\\s*[a-z0-9_|]\\|\\s*)(?:null|false)\\b(?=\\s*\\$)/i,\n alias: 'type-hint',\n greedy: true,\n lookbehind: true\n },\n {\n pattern: /(\\)\\s*:\\s*(?:\\?\\s*)?)\\b(?:bool|int|float|string|object|void|array(?!\\s*\\()|mixed|self|static|callable|iterable|(?:null|false)(?=\\s*\\|))\\b/i,\n alias: 'return-type',\n greedy: true,\n lookbehind: true\n },\n {\n pattern: /(\\)\\s*:\\s*(?:\\?\\s*)?[a-z0-9_|]\\|\\s*)(?:null|false)\\b/i,\n alias: 'return-type',\n greedy: true,\n lookbehind: true\n },\n {\n pattern: /\\b(?:bool|int|float|string|object|void|array(?!\\s*\\()|mixed|iterable|(?:null|false)(?=\\s*\\|))\\b/i,\n alias: 'type-declaration',\n greedy: true\n },\n {\n pattern: /(\\|\\s*)(?:null|false)\\b/i,\n alias: 'type-declaration',\n greedy: true,\n lookbehind: true\n },\n {\n pattern: /\\b(?:parent|self|static)(?=\\s*::)/i,\n alias: 'static-context',\n greedy: true\n },\n /\\b(?:__halt_compiler|abstract|and|array|as|break|callable|case|catch|class|clone|const|continue|declare|default|die|do|echo|else|elseif|empty|enddeclare|endfor|endforeach|endif|endswitch|endwhile|eval|exit|extends|final|finally|for|foreach|function|global|goto|if|implements|include|include_once|instanceof|insteadof|interface|isset|list|namespace|match|new|or|parent|print|private|protected|public|require|require_once|return|self|static|switch|throw|trait|try|unset|use|var|while|xor|yield)\\b/i\n ],\n 'argument-name': /\\b[a-z_]\\w*(?=\\s*:(?!:))/i,\n 'class-name': [\n {\n pattern: /(\\b(?:class|interface|extends|implements|trait|instanceof|new(?!\\s+self|\\s+static))\\s+|\\bcatch\\s*\\()\\b[a-z_]\\w*(?!\\\\)\\b/i,\n greedy: true,\n lookbehind: true\n },\n {\n pattern: /(\\|\\s*)\\b[a-z_]\\w*(?!\\\\)\\b/i,\n greedy: true,\n lookbehind: true\n },\n {\n pattern: /\\b[a-z_]\\w*(?!\\\\)\\b(?=\\s*\\|)/i,\n greedy: true\n },\n {\n pattern: /(\\|\\s*)(?:\\\\?\\b[a-z_]\\w*)+\\b/i,\n alias: 'class-name-fully-qualified',\n greedy: true,\n lookbehind: true,\n inside: {\n punctuation: /\\\\/\n }\n },\n {\n pattern: /(?:\\\\?\\b[a-z_]\\w*)+\\b(?=\\s*\\|)/i,\n alias: 'class-name-fully-qualified',\n greedy: true,\n inside: {\n punctuation: /\\\\/\n }\n },\n {\n pattern: /(\\b(?:extends|implements|instanceof|new(?!\\s+self\\b|\\s+static\\b))\\s+|\\bcatch\\s*\\()(?:\\\\?\\b[a-z_]\\w*)+\\b(?!\\\\)/i,\n alias: 'class-name-fully-qualified',\n greedy: true,\n lookbehind: true,\n inside: {\n punctuation: /\\\\/\n }\n },\n {\n pattern: /\\b[a-z_]\\w*(?=\\s*\\$)/i,\n alias: 'type-declaration',\n greedy: true\n },\n {\n pattern: /(?:\\\\?\\b[a-z_]\\w*)+(?=\\s*\\$)/i,\n alias: ['class-name-fully-qualified', 'type-declaration'],\n greedy: true,\n inside: {\n punctuation: /\\\\/\n }\n },\n {\n pattern: /\\b[a-z_]\\w*(?=\\s*::)/i,\n alias: 'static-context',\n greedy: true\n },\n {\n pattern: /(?:\\\\?\\b[a-z_]\\w*)+(?=\\s*::)/i,\n alias: ['class-name-fully-qualified', 'static-context'],\n greedy: true,\n inside: {\n punctuation: /\\\\/\n }\n },\n {\n pattern: /([(,?]\\s*)[a-z_]\\w*(?=\\s*\\$)/i,\n alias: 'type-hint',\n greedy: true,\n lookbehind: true\n },\n {\n pattern: /([(,?]\\s*)(?:\\\\?\\b[a-z_]\\w*)+(?=\\s*\\$)/i,\n alias: ['class-name-fully-qualified', 'type-hint'],\n greedy: true,\n lookbehind: true,\n inside: {\n punctuation: /\\\\/\n }\n },\n {\n pattern: /(\\)\\s*:\\s*(?:\\?\\s*)?)\\b[a-z_]\\w*(?!\\\\)\\b/i,\n alias: 'return-type',\n greedy: true,\n lookbehind: true\n },\n {\n pattern: /(\\)\\s*:\\s*(?:\\?\\s*)?)(?:\\\\?\\b[a-z_]\\w*)+\\b(?!\\\\)/i,\n alias: ['class-name-fully-qualified', 'return-type'],\n greedy: true,\n lookbehind: true,\n inside: {\n punctuation: /\\\\/\n }\n }\n ],\n constant: constant,\n function: /\\w+\\s*(?=\\()/,\n property: {\n pattern: /(->)[\\w]+/,\n lookbehind: true\n },\n number: number,\n operator: operator,\n punctuation: punctuation\n }\n var string_interpolation = {\n pattern: /{\\$(?:{(?:{[^{}]+}|[^{}]+)}|[^{}])+}|(^|[^\\\\{])\\$+(?:\\w+(?:\\[[^\\r\\n\\[\\]]+\\]|->\\w+)*)/,\n lookbehind: true,\n inside: Prism.languages.php\n }\n var string = [\n {\n pattern: /<<<'([^']+)'[\\r\\n](?:.*[\\r\\n])*?\\1;/,\n alias: 'nowdoc-string',\n greedy: true,\n inside: {\n delimiter: {\n pattern: /^<<<'[^']+'|[a-z_]\\w*;$/i,\n alias: 'symbol',\n inside: {\n punctuation: /^<<<'?|[';]$/\n }\n }\n }\n },\n {\n pattern: /<<<(?:\"([^\"]+)\"[\\r\\n](?:.*[\\r\\n])*?\\1;|([a-z_]\\w*)[\\r\\n](?:.*[\\r\\n])*?\\2;)/i,\n alias: 'heredoc-string',\n greedy: true,\n inside: {\n delimiter: {\n pattern: /^<<<(?:\"[^\"]+\"|[a-z_]\\w*)|[a-z_]\\w*;$/i,\n alias: 'symbol',\n inside: {\n punctuation: /^<<<\"?|[\";]$/\n }\n },\n interpolation: string_interpolation // See below\n }\n },\n {\n pattern: /`(?:\\\\[\\s\\S]|[^\\\\`])*`/,\n alias: 'backtick-quoted-string',\n greedy: true\n },\n {\n pattern: /'(?:\\\\[\\s\\S]|[^\\\\'])*'/,\n alias: 'single-quoted-string',\n greedy: true\n },\n {\n pattern: /\"(?:\\\\[\\s\\S]|[^\\\\\"])*\"/,\n alias: 'double-quoted-string',\n greedy: true,\n inside: {\n interpolation: string_interpolation // See below\n }\n }\n ]\n Prism.languages.insertBefore('php', 'variable', {\n string: string\n })\n Prism.languages.insertBefore('php', 'variable', {\n attribute: {\n pattern: /#\\[(?:[^\"'\\/#]|\\/(?![*/])|\\/\\/.*$|#(?!\\[).*$|\\/\\*(?:[^*]|\\*(?!\\/))*\\*\\/|\"(?:\\\\[\\s\\S]|[^\\\\\"])*\"|'(?:\\\\[\\s\\S]|[^\\\\'])*')+\\](?=\\s*[a-z$#])/im,\n greedy: true,\n inside: {\n 'attribute-content': {\n pattern: /^(#\\[)[\\s\\S]+(?=]$)/,\n lookbehind: true,\n // inside can appear subset of php\n inside: {\n comment: comment,\n string: string,\n 'attribute-class-name': [\n {\n pattern: /([^:]|^)\\b[a-z_]\\w*(?!\\\\)\\b/i,\n alias: 'class-name',\n greedy: true,\n lookbehind: true\n },\n {\n pattern: /([^:]|^)(?:\\\\?\\b[a-z_]\\w*)+/i,\n alias: ['class-name', 'class-name-fully-qualified'],\n greedy: true,\n lookbehind: true,\n inside: {\n punctuation: /\\\\/\n }\n }\n ],\n constant: constant,\n number: number,\n operator: operator,\n punctuation: punctuation\n }\n },\n delimiter: {\n pattern: /^#\\[|]$/,\n alias: 'punctuation'\n }\n }\n }\n })\n Prism.hooks.add('before-tokenize', function (env) {\n if (!/<\\?/.test(env.code)) {\n return\n }\n var phpPattern = /<\\?(?:[^\"'/#]|\\/(?![*/])|(\"|')(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1|(?:\\/\\/|#(?!\\[))(?:[^?\\n\\r]|\\?(?!>))*(?=$|\\?>|[\\r\\n])|#\\[|\\/\\*(?:[^*]|\\*(?!\\/))*(?:\\*\\/|$))*?(?:\\?>|$)/gi\n Prism.languages['markup-templating'].buildPlaceholders(\n env,\n 'php',\n phpPattern\n )\n })\n Prism.hooks.add('after-tokenize', function (env) {\n Prism.languages['markup-templating'].tokenizePlaceholders(env, 'php')\n })\n })(Prism)\n}\n","var objectWithoutPropertiesLoose = require(\"./objectWithoutPropertiesLoose.js\");\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nmodule.exports = _objectWithoutProperties;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","'use strict'\n\nfunction normalizeIdentifier(value) {\n return (\n value // Collapse Markdown whitespace.\n .replace(/[\\t\\n\\r ]+/g, ' ') // Trim.\n .replace(/^ | $/g, '') // Some characters are considered “uppercase”, but if their lowercase\n // counterpart is uppercased will result in a different uppercase\n // character.\n // Hence, to get that form, we perform both lower- and uppercase.\n // Upper case makes sure keys will not interact with default prototypal\n // methods: no object method is uppercase.\n .toLowerCase()\n .toUpperCase()\n )\n}\n\nmodule.exports = normalizeIdentifier\n","'use strict'\n\nfunction miniflat(value) {\n return value === null || value === undefined\n ? []\n : 'length' in value\n ? value\n : [value]\n}\n\nmodule.exports = miniflat\n","'use strict'\n\nvar chunkedSplice = require('./chunked-splice.js')\n\nfunction chunkedPush(list, items) {\n if (list.length) {\n chunkedSplice(list, list.length, 0, items)\n return list\n }\n\n return items\n}\n\nmodule.exports = chunkedPush\n","'use strict'\n\nvar unicodePunctuationRegex = require('../constant/unicode-punctuation-regex.js')\nvar regexCheck = require('../util/regex-check.js')\n\n// In fact adds to the bundle size.\n\nvar unicodePunctuation = regexCheck(unicodePunctuationRegex)\n\nmodule.exports = unicodePunctuation\n","'use strict'\n\nvar regexCheck = require('../util/regex-check.js')\n\nvar unicodeWhitespace = regexCheck(/\\s/)\n\nmodule.exports = unicodeWhitespace\n","'use strict'\n\n// Note: EOF is seen as ASCII control here, because `null < 32 == true`.\nfunction asciiControl(code) {\n return (\n // Special whitespace codes (which have negative values), C0 and Control\n // character DEL\n code < 32 || code === 127\n )\n}\n\nmodule.exports = asciiControl\n","'use strict'\n\n/* eslint-env browser */\n\nvar el\n\nvar semicolon = 59 // ';'\n\nmodule.exports = decodeEntity\n\nfunction decodeEntity(characters) {\n var entity = '&' + characters + ';'\n var char\n\n el = el || document.createElement('i')\n el.innerHTML = entity\n char = el.textContent\n\n // Some entities do not require the closing semicolon (`&not` - for instance),\n // which leads to situations where parsing the assumed entity of &notit; will\n // result in the string `¬it;`. When we encounter a trailing semicolon after\n // parsing and the entity to decode was not a semicolon (`&semi;`), we can\n // assume that the matching was incomplete\n if (char.charCodeAt(char.length - 1) === semicolon && characters !== 'semi') {\n return false\n }\n\n // If the decoded string is equal to the input, the entity was not valid\n return char === entity ? false : char\n}\n","'use strict'\n\nvar markdownLineEndingOrSpace = require('../character/markdown-line-ending-or-space.js')\nvar chunkedPush = require('../util/chunked-push.js')\nvar chunkedSplice = require('../util/chunked-splice.js')\nvar normalizeIdentifier = require('../util/normalize-identifier.js')\nvar resolveAll = require('../util/resolve-all.js')\nvar shallow = require('../util/shallow.js')\nvar factoryDestination = require('./factory-destination.js')\nvar factoryLabel = require('./factory-label.js')\nvar factoryTitle = require('./factory-title.js')\nvar factoryWhitespace = require('./factory-whitespace.js')\n\nvar labelEnd = {\n name: 'labelEnd',\n tokenize: tokenizeLabelEnd,\n resolveTo: resolveToLabelEnd,\n resolveAll: resolveAllLabelEnd\n}\nvar resourceConstruct = {\n tokenize: tokenizeResource\n}\nvar fullReferenceConstruct = {\n tokenize: tokenizeFullReference\n}\nvar collapsedReferenceConstruct = {\n tokenize: tokenizeCollapsedReference\n}\n\nfunction resolveAllLabelEnd(events) {\n var index = -1\n var token\n\n while (++index < events.length) {\n token = events[index][1]\n\n if (\n !token._used &&\n (token.type === 'labelImage' ||\n token.type === 'labelLink' ||\n token.type === 'labelEnd')\n ) {\n // Remove the marker.\n events.splice(index + 1, token.type === 'labelImage' ? 4 : 2)\n token.type = 'data'\n index++\n }\n }\n\n return events\n}\n\nfunction resolveToLabelEnd(events, context) {\n var index = events.length\n var offset = 0\n var group\n var label\n var text\n var token\n var open\n var close\n var media // Find an opening.\n\n while (index--) {\n token = events[index][1]\n\n if (open) {\n // If we see another link, or inactive link label, weve been here before.\n if (\n token.type === 'link' ||\n (token.type === 'labelLink' && token._inactive)\n ) {\n break\n } // Mark other link openings as inactive, as we cant have links in\n // links.\n\n if (events[index][0] === 'enter' && token.type === 'labelLink') {\n token._inactive = true\n }\n } else if (close) {\n if (\n events[index][0] === 'enter' &&\n (token.type === 'labelImage' || token.type === 'labelLink') &&\n !token._balanced\n ) {\n open = index\n\n if (token.type !== 'labelLink') {\n offset = 2\n break\n }\n }\n } else if (token.type === 'labelEnd') {\n close = index\n }\n }\n\n group = {\n type: events[open][1].type === 'labelLink' ? 'link' : 'image',\n start: shallow(events[open][1].start),\n end: shallow(events[events.length - 1][1].end)\n }\n label = {\n type: 'label',\n start: shallow(events[open][1].start),\n end: shallow(events[close][1].end)\n }\n text = {\n type: 'labelText',\n start: shallow(events[open + offset + 2][1].end),\n end: shallow(events[close - 2][1].start)\n }\n media = [\n ['enter', group, context],\n ['enter', label, context]\n ] // Opening marker.\n\n media = chunkedPush(media, events.slice(open + 1, open + offset + 3)) // Text open.\n\n media = chunkedPush(media, [['enter', text, context]]) // Between.\n\n media = chunkedPush(\n media,\n resolveAll(\n context.parser.constructs.insideSpan.null,\n events.slice(open + offset + 4, close - 3),\n context\n )\n ) // Text close, marker close, label close.\n\n media = chunkedPush(media, [\n ['exit', text, context],\n events[close - 2],\n events[close - 1],\n ['exit', label, context]\n ]) // Reference, resource, or so.\n\n media = chunkedPush(media, events.slice(close + 1)) // Media close.\n\n media = chunkedPush(media, [['exit', group, context]])\n chunkedSplice(events, open, events.length, media)\n return events\n}\n\nfunction tokenizeLabelEnd(effects, ok, nok) {\n var self = this\n var index = self.events.length\n var labelStart\n var defined // Find an opening.\n\n while (index--) {\n if (\n (self.events[index][1].type === 'labelImage' ||\n self.events[index][1].type === 'labelLink') &&\n !self.events[index][1]._balanced\n ) {\n labelStart = self.events[index][1]\n break\n }\n }\n\n return start\n\n function start(code) {\n if (!labelStart) {\n return nok(code)\n } // Its a balanced bracket, but contains a link.\n\n if (labelStart._inactive) return balanced(code)\n defined =\n self.parser.defined.indexOf(\n normalizeIdentifier(\n self.sliceSerialize({\n start: labelStart.end,\n end: self.now()\n })\n )\n ) > -1\n effects.enter('labelEnd')\n effects.enter('labelMarker')\n effects.consume(code)\n effects.exit('labelMarker')\n effects.exit('labelEnd')\n return afterLabelEnd\n }\n\n function afterLabelEnd(code) {\n // Resource: `[asd](fgh)`.\n if (code === 40) {\n return effects.attempt(\n resourceConstruct,\n ok,\n defined ? ok : balanced\n )(code)\n } // Collapsed (`[asd][]`) or full (`[asd][fgh]`) reference?\n\n if (code === 91) {\n return effects.attempt(\n fullReferenceConstruct,\n ok,\n defined\n ? effects.attempt(collapsedReferenceConstruct, ok, balanced)\n : balanced\n )(code)\n } // Shortcut reference: `[asd]`?\n\n return defined ? ok(code) : balanced(code)\n }\n\n function balanced(code) {\n labelStart._balanced = true\n return nok(code)\n }\n}\n\nfunction tokenizeResource(effects, ok, nok) {\n return start\n\n function start(code) {\n effects.enter('resource')\n effects.enter('resourceMarker')\n effects.consume(code)\n effects.exit('resourceMarker')\n return factoryWhitespace(effects, open)\n }\n\n function open(code) {\n if (code === 41) {\n return end(code)\n }\n\n return factoryDestination(\n effects,\n destinationAfter,\n nok,\n 'resourceDestination',\n 'resourceDestinationLiteral',\n 'resourceDestinationLiteralMarker',\n 'resourceDestinationRaw',\n 'resourceDestinationString',\n 3\n )(code)\n }\n\n function destinationAfter(code) {\n return markdownLineEndingOrSpace(code)\n ? factoryWhitespace(effects, between)(code)\n : end(code)\n }\n\n function between(code) {\n if (code === 34 || code === 39 || code === 40) {\n return factoryTitle(\n effects,\n factoryWhitespace(effects, end),\n nok,\n 'resourceTitle',\n 'resourceTitleMarker',\n 'resourceTitleString'\n )(code)\n }\n\n return end(code)\n }\n\n function end(code) {\n if (code === 41) {\n effects.enter('resourceMarker')\n effects.consume(code)\n effects.exit('resourceMarker')\n effects.exit('resource')\n return ok\n }\n\n return nok(code)\n }\n}\n\nfunction tokenizeFullReference(effects, ok, nok) {\n var self = this\n return start\n\n function start(code) {\n return factoryLabel.call(\n self,\n effects,\n afterLabel,\n nok,\n 'reference',\n 'referenceMarker',\n 'referenceString'\n )(code)\n }\n\n function afterLabel(code) {\n return self.parser.defined.indexOf(\n normalizeIdentifier(\n self.sliceSerialize(self.events[self.events.length - 1][1]).slice(1, -1)\n )\n ) < 0\n ? nok(code)\n : ok(code)\n }\n}\n\nfunction tokenizeCollapsedReference(effects, ok, nok) {\n return start\n\n function start(code) {\n effects.enter('reference')\n effects.enter('referenceMarker')\n effects.consume(code)\n effects.exit('referenceMarker')\n return open\n }\n\n function open(code) {\n if (code === 93) {\n effects.enter('referenceMarker')\n effects.consume(code)\n effects.exit('referenceMarker')\n effects.exit('reference')\n return ok\n }\n\n return nok(code)\n }\n}\n\nmodule.exports = labelEnd\n","'use strict'\n\nmodule.exports = convert\n\nfunction convert(test) {\n if (test == null) {\n return ok\n }\n\n if (typeof test === 'string') {\n return typeFactory(test)\n }\n\n if (typeof test === 'object') {\n return 'length' in test ? anyFactory(test) : allFactory(test)\n }\n\n if (typeof test === 'function') {\n return test\n }\n\n throw new Error('Expected function, string, or object as test')\n}\n\n// Utility assert each property in `test` is represented in `node`, and each\n// values are strictly equal.\nfunction allFactory(test) {\n return all\n\n function all(node) {\n var key\n\n for (key in test) {\n if (node[key] !== test[key]) return false\n }\n\n return true\n }\n}\n\nfunction anyFactory(tests) {\n var checks = []\n var index = -1\n\n while (++index < tests.length) {\n checks[index] = convert(tests[index])\n }\n\n return any\n\n function any() {\n var index = -1\n\n while (++index < checks.length) {\n if (checks[index].apply(this, arguments)) {\n return true\n }\n }\n\n return false\n }\n}\n\n// Utility to convert a string into a function which checks a given nodes type\n// for said string.\nfunction typeFactory(test) {\n return type\n\n function type(node) {\n return Boolean(node && node.type === test)\n }\n}\n\n// Utility to return true.\nfunction ok() {\n return true\n}\n","'use strict'\n\nvar start = factory('start')\nvar end = factory('end')\n\nmodule.exports = position\n\nposition.start = start\nposition.end = end\n\nfunction position(node) {\n return {start: start(node), end: end(node)}\n}\n\nfunction factory(type) {\n point.displayName = type\n\n return point\n\n function point(node) {\n var point = (node && node.position && node.position[type]) || {}\n\n return {\n line: point.line || null,\n column: point.column || null,\n offset: isNaN(point.offset) ? null : point.offset\n }\n }\n}\n","module.exports = extend\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nfunction extend() {\n var target = {}\n\n for (var i = 0; i < arguments.length; i++) {\n var source = arguments[i]\n\n for (var key in source) {\n if (hasOwnProperty.call(source, key)) {\n target[key] = source[key]\n }\n }\n }\n\n return target\n}\n","'use strict'\n\nmodule.exports = normalize\n\nfunction normalize(value) {\n return value.toLowerCase()\n}\n","'use strict'\n\nexports.parse = parse\nexports.stringify = stringify\n\nvar empty = ''\nvar space = ' '\nvar whiteSpace = /[ \\t\\n\\r\\f]+/g\n\nfunction parse(value) {\n var input = String(value || empty).trim()\n return input === empty ? [] : input.split(whiteSpace)\n}\n\nfunction stringify(values) {\n return values.join(space).trim()\n}\n","'use strict'\n\nexports.parse = parse\nexports.stringify = stringify\n\nvar comma = ','\nvar space = ' '\nvar empty = ''\n\n// Parse comma-separated tokens to an array.\nfunction parse(value) {\n var values = []\n var input = String(value || empty)\n var index = input.indexOf(comma)\n var lastIndex = 0\n var end = false\n var val\n\n while (!end) {\n if (index === -1) {\n index = input.length\n end = true\n }\n\n val = input.slice(lastIndex, index).trim()\n\n if (val || !end) {\n values.push(val)\n }\n\n lastIndex = index + 1\n index = input.indexOf(comma, lastIndex)\n }\n\n return values\n}\n\n// Compile an array to comma-separated tokens.\n// `options.padLeft` (default: `true`) pads a space left of each token, and\n// `options.padRight` (default: `false`) pads a space to the right of each token.\nfunction stringify(values, options) {\n var settings = options || {}\n var left = settings.padLeft === false ? empty : space\n var right = settings.padRight ? space : empty\n\n // Ensure the last empty entry is seen.\n if (values[values.length - 1] === empty) {\n values = values.concat(empty)\n }\n\n return values.join(right + comma + left).trim()\n}\n","/*!\n * repeat-string <https://github.com/jonschlinkert/repeat-string>\n *\n * Copyright (c) 2014-2015, Jon Schlinkert.\n * Licensed under the MIT License.\n */\n\n'use strict';\n\n/**\n * Results cache\n */\n\nvar res = '';\nvar cache;\n\n/**\n * Expose `repeat`\n */\n\nmodule.exports = repeat;\n\n/**\n * Repeat the given `string` the specified `number`\n * of times.\n *\n * **Example:**\n *\n * ```js\n * var repeat = require('repeat-string');\n * repeat('A', 5);\n * //=> AAAAA\n * ```\n *\n * @param {String} `string` The string to repeat\n * @param {Number} `number` The number of times to repeat the string\n * @return {String} Repeated string\n * @api public\n */\n\nfunction repeat(str, num) {\n if (typeof str !== 'string') {\n throw new TypeError('expected a string');\n }\n\n // cover common, quick use cases\n if (num === 1) return str;\n if (num === 2) return str + str;\n\n var max = str.length * num;\n if (cache !== str || typeof cache === 'undefined') {\n cache = str;\n res = '';\n } else if (res.length >= max) {\n return res.substr(0, max);\n }\n\n while (max > res.length && num > 1) {\n if (num & 1) {\n res += str;\n }\n\n num >>= 1;\n str += str;\n }\n\n res += str;\n res = res.substr(0, max);\n return res;\n}\n","function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nmodule.exports = _defineProperty;","'use strict';\n\nconst UNDEFINED_CODE_POINTS = [\n 0xfffe,\n 0xffff,\n 0x1fffe,\n 0x1ffff,\n 0x2fffe,\n 0x2ffff,\n 0x3fffe,\n 0x3ffff,\n 0x4fffe,\n 0x4ffff,\n 0x5fffe,\n 0x5ffff,\n 0x6fffe,\n 0x6ffff,\n 0x7fffe,\n 0x7ffff,\n 0x8fffe,\n 0x8ffff,\n 0x9fffe,\n 0x9ffff,\n 0xafffe,\n 0xaffff,\n 0xbfffe,\n 0xbffff,\n 0xcfffe,\n 0xcffff,\n 0xdfffe,\n 0xdffff,\n 0xefffe,\n 0xeffff,\n 0xffffe,\n 0xfffff,\n 0x10fffe,\n 0x10ffff\n];\n\nexports.REPLACEMENT_CHARACTER = '\\uFFFD';\n\nexports.CODE_POINTS = {\n EOF: -1,\n NULL: 0x00,\n TABULATION: 0x09,\n CARRIAGE_RETURN: 0x0d,\n LINE_FEED: 0x0a,\n FORM_FEED: 0x0c,\n SPACE: 0x20,\n EXCLAMATION_MARK: 0x21,\n QUOTATION_MARK: 0x22,\n NUMBER_SIGN: 0x23,\n AMPERSAND: 0x26,\n APOSTROPHE: 0x27,\n HYPHEN_MINUS: 0x2d,\n SOLIDUS: 0x2f,\n DIGIT_0: 0x30,\n DIGIT_9: 0x39,\n SEMICOLON: 0x3b,\n LESS_THAN_SIGN: 0x3c,\n EQUALS_SIGN: 0x3d,\n GREATER_THAN_SIGN: 0x3e,\n QUESTION_MARK: 0x3f,\n LATIN_CAPITAL_A: 0x41,\n LATIN_CAPITAL_F: 0x46,\n LATIN_CAPITAL_X: 0x58,\n LATIN_CAPITAL_Z: 0x5a,\n RIGHT_SQUARE_BRACKET: 0x5d,\n GRAVE_ACCENT: 0x60,\n LATIN_SMALL_A: 0x61,\n LATIN_SMALL_F: 0x66,\n LATIN_SMALL_X: 0x78,\n LATIN_SMALL_Z: 0x7a,\n REPLACEMENT_CHARACTER: 0xfffd\n};\n\nexports.CODE_POINT_SEQUENCES = {\n DASH_DASH_STRING: [0x2d, 0x2d], //--\n DOCTYPE_STRING: [0x44, 0x4f, 0x43, 0x54, 0x59, 0x50, 0x45], //DOCTYPE\n CDATA_START_STRING: [0x5b, 0x43, 0x44, 0x41, 0x54, 0x41, 0x5b], //[CDATA[\n SCRIPT_STRING: [0x73, 0x63, 0x72, 0x69, 0x70, 0x74], //script\n PUBLIC_STRING: [0x50, 0x55, 0x42, 0x4c, 0x49, 0x43], //PUBLIC\n SYSTEM_STRING: [0x53, 0x59, 0x53, 0x54, 0x45, 0x4d] //SYSTEM\n};\n\n//Surrogates\nexports.isSurrogate = function(cp) {\n return cp >= 0xd800 && cp <= 0xdfff;\n};\n\nexports.isSurrogatePair = function(cp) {\n return cp >= 0xdc00 && cp <= 0xdfff;\n};\n\nexports.getSurrogatePairCodePoint = function(cp1, cp2) {\n return (cp1 - 0xd800) * 0x400 + 0x2400 + cp2;\n};\n\n//NOTE: excluding NULL and ASCII whitespace\nexports.isControlCodePoint = function(cp) {\n return (\n (cp !== 0x20 && cp !== 0x0a && cp !== 0x0d && cp !== 0x09 && cp !== 0x0c && cp >= 0x01 && cp <= 0x1f) ||\n (cp >= 0x7f && cp <= 0x9f)\n );\n};\n\nexports.isUndefinedCodePoint = function(cp) {\n return (cp >= 0xfdd0 && cp <= 0xfdef) || UNDEFINED_CODE_POINTS.indexOf(cp) > -1;\n};\n","'use strict';\n\nmodule.exports = {\n controlCharacterInInputStream: 'control-character-in-input-stream',\n noncharacterInInputStream: 'noncharacter-in-input-stream',\n surrogateInInputStream: 'surrogate-in-input-stream',\n nonVoidHtmlElementStartTagWithTrailingSolidus: 'non-void-html-element-start-tag-with-trailing-solidus',\n endTagWithAttributes: 'end-tag-with-attributes',\n endTagWithTrailingSolidus: 'end-tag-with-trailing-solidus',\n unexpectedSolidusInTag: 'unexpected-solidus-in-tag',\n unexpectedNullCharacter: 'unexpected-null-character',\n unexpectedQuestionMarkInsteadOfTagName: 'unexpected-question-mark-instead-of-tag-name',\n invalidFirstCharacterOfTagName: 'invalid-first-character-of-tag-name',\n unexpectedEqualsSignBeforeAttributeName: 'unexpected-equals-sign-before-attribute-name',\n missingEndTagName: 'missing-end-tag-name',\n unexpectedCharacterInAttributeName: 'unexpected-character-in-attribute-name',\n unknownNamedCharacterReference: 'unknown-named-character-reference',\n missingSemicolonAfterCharacterReference: 'missing-semicolon-after-character-reference',\n unexpectedCharacterAfterDoctypeSystemIdentifier: 'unexpected-character-after-doctype-system-identifier',\n unexpectedCharacterInUnquotedAttributeValue: 'unexpected-character-in-unquoted-attribute-value',\n eofBeforeTagName: 'eof-before-tag-name',\n eofInTag: 'eof-in-tag',\n missingAttributeValue: 'missing-attribute-value',\n missingWhitespaceBetweenAttributes: 'missing-whitespace-between-attributes',\n missingWhitespaceAfterDoctypePublicKeyword: 'missing-whitespace-after-doctype-public-keyword',\n missingWhitespaceBetweenDoctypePublicAndSystemIdentifiers:\n 'missing-whitespace-between-doctype-public-and-system-identifiers',\n missingWhitespaceAfterDoctypeSystemKeyword: 'missing-whitespace-after-doctype-system-keyword',\n missingQuoteBeforeDoctypePublicIdentifier: 'missing-quote-before-doctype-public-identifier',\n missingQuoteBeforeDoctypeSystemIdentifier: 'missing-quote-before-doctype-system-identifier',\n missingDoctypePublicIdentifier: 'missing-doctype-public-identifier',\n missingDoctypeSystemIdentifier: 'missing-doctype-system-identifier',\n abruptDoctypePublicIdentifier: 'abrupt-doctype-public-identifier',\n abruptDoctypeSystemIdentifier: 'abrupt-doctype-system-identifier',\n cdataInHtmlContent: 'cdata-in-html-content',\n incorrectlyOpenedComment: 'incorrectly-opened-comment',\n eofInScriptHtmlCommentLikeText: 'eof-in-script-html-comment-like-text',\n eofInDoctype: 'eof-in-doctype',\n nestedComment: 'nested-comment',\n abruptClosingOfEmptyComment: 'abrupt-closing-of-empty-comment',\n eofInComment: 'eof-in-comment',\n incorrectlyClosedComment: 'incorrectly-closed-comment',\n eofInCdata: 'eof-in-cdata',\n absenceOfDigitsInNumericCharacterReference: 'absence-of-digits-in-numeric-character-reference',\n nullCharacterReference: 'null-character-reference',\n surrogateCharacterReference: 'surrogate-character-reference',\n characterReferenceOutsideUnicodeRange: 'character-reference-outside-unicode-range',\n controlCharacterReference: 'control-character-reference',\n noncharacterCharacterReference: 'noncharacter-character-reference',\n missingWhitespaceBeforeDoctypeName: 'missing-whitespace-before-doctype-name',\n missingDoctypeName: 'missing-doctype-name',\n invalidCharacterSequenceAfterDoctypeName: 'invalid-character-sequence-after-doctype-name',\n duplicateAttribute: 'duplicate-attribute',\n nonConformingDoctype: 'non-conforming-doctype',\n missingDoctype: 'missing-doctype',\n misplacedDoctype: 'misplaced-doctype',\n endTagWithoutMatchingOpenElement: 'end-tag-without-matching-open-element',\n closingOfElementWithOpenChildElements: 'closing-of-element-with-open-child-elements',\n disallowedContentInNoscriptInHead: 'disallowed-content-in-noscript-in-head',\n openElementsLeftAfterEof: 'open-elements-left-after-eof',\n abandonedHeadElementChild: 'abandoned-head-element-child',\n misplacedStartTagForHeadElement: 'misplaced-start-tag-for-head-element',\n nestedNoscriptInHead: 'nested-noscript-in-head',\n eofInElementThatCanContainOnlyText: 'eof-in-element-that-can-contain-only-text'\n};\n","function _getPrototypeOf(o) {\n module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nmodule.exports = _getPrototypeOf;","'use strict';\n\nconst Mixin = require('../../utils/mixin');\n\nclass ErrorReportingMixinBase extends Mixin {\n constructor(host, opts) {\n super(host);\n\n this.posTracker = null;\n this.onParseError = opts.onParseError;\n }\n\n _setErrorLocation(err) {\n err.startLine = err.endLine = this.posTracker.line;\n err.startCol = err.endCol = this.posTracker.col;\n err.startOffset = err.endOffset = this.posTracker.offset;\n }\n\n _reportError(code) {\n const err = {\n code: code,\n startLine: -1,\n startCol: -1,\n startOffset: -1,\n endLine: -1,\n endCol: -1,\n endOffset: -1\n };\n\n this._setErrorLocation(err);\n this.onParseError(err);\n }\n\n _getOverriddenMethods(mxn) {\n return {\n _err(code) {\n mxn._reportError(code);\n }\n };\n }\n}\n\nmodule.exports = ErrorReportingMixinBase;\n","'use strict'\n\nmodule.exports = sql\nsql.displayName = 'sql'\nsql.aliases = []\nfunction sql(Prism) {\n Prism.languages.sql = {\n comment: {\n pattern: /(^|[^\\\\])(?:\\/\\*[\\s\\S]*?\\*\\/|(?:--|\\/\\/|#).*)/,\n lookbehind: true\n },\n variable: [\n {\n pattern: /@([\"'`])(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])+\\1/,\n greedy: true\n },\n /@[\\w.$]+/\n ],\n string: {\n pattern: /(^|[^@\\\\])(\"|')(?:\\\\[\\s\\S]|(?!\\2)[^\\\\]|\\2\\2)*\\2/,\n greedy: true,\n lookbehind: true\n },\n function: /\\b(?:AVG|COUNT|FIRST|FORMAT|LAST|LCASE|LEN|MAX|MID|MIN|MOD|NOW|ROUND|SUM|UCASE)(?=\\s*\\()/i,\n // Should we highlight user defined functions too?\n keyword: /\\b(?:ACTION|ADD|AFTER|ALGORITHM|ALL|ALTER|ANALYZE|ANY|APPLY|AS|ASC|AUTHORIZATION|AUTO_INCREMENT|BACKUP|BDB|BEGIN|BERKELEYDB|BIGINT|BINARY|BIT|BLOB|BOOL|BOOLEAN|BREAK|BROWSE|BTREE|BULK|BY|CALL|CASCADED?|CASE|CHAIN|CHAR(?:ACTER|SET)?|CHECK(?:POINT)?|CLOSE|CLUSTERED|COALESCE|COLLATE|COLUMNS?|COMMENT|COMMIT(?:TED)?|COMPUTE|CONNECT|CONSISTENT|CONSTRAINT|CONTAINS(?:TABLE)?|CONTINUE|CONVERT|CREATE|CROSS|CURRENT(?:_DATE|_TIME|_TIMESTAMP|_USER)?|CURSOR|CYCLE|DATA(?:BASES?)?|DATE(?:TIME)?|DAY|DBCC|DEALLOCATE|DEC|DECIMAL|DECLARE|DEFAULT|DEFINER|DELAYED|DELETE|DELIMITERS?|DENY|DESC|DESCRIBE|DETERMINISTIC|DISABLE|DISCARD|DISK|DISTINCT|DISTINCTROW|DISTRIBUTED|DO|DOUBLE|DROP|DUMMY|DUMP(?:FILE)?|DUPLICATE|ELSE(?:IF)?|ENABLE|ENCLOSED|END|ENGINE|ENUM|ERRLVL|ERRORS|ESCAPED?|EXCEPT|EXEC(?:UTE)?|EXISTS|EXIT|EXPLAIN|EXTENDED|FETCH|FIELDS|FILE|FILLFACTOR|FIRST|FIXED|FLOAT|FOLLOWING|FOR(?: EACH ROW)?|FORCE|FOREIGN|FREETEXT(?:TABLE)?|FROM|FULL|FUNCTION|GEOMETRY(?:COLLECTION)?|GLOBAL|GOTO|GRANT|GROUP|HANDLER|HASH|HAVING|HOLDLOCK|HOUR|IDENTITY(?:_INSERT|COL)?|IF|IGNORE|IMPORT|INDEX|INFILE|INNER|INNODB|INOUT|INSERT|INT|INTEGER|INTERSECT|INTERVAL|INTO|INVOKER|ISOLATION|ITERATE|JOIN|KEYS?|KILL|LANGUAGE|LAST|LEAVE|LEFT|LEVEL|LIMIT|LINENO|LINES|LINESTRING|LOAD|LOCAL|LOCK|LONG(?:BLOB|TEXT)|LOOP|MATCH(?:ED)?|MEDIUM(?:BLOB|INT|TEXT)|MERGE|MIDDLEINT|MINUTE|MODE|MODIFIES|MODIFY|MONTH|MULTI(?:LINESTRING|POINT|POLYGON)|NATIONAL|NATURAL|NCHAR|NEXT|NO|NONCLUSTERED|NULLIF|NUMERIC|OFF?|OFFSETS?|ON|OPEN(?:DATASOURCE|QUERY|ROWSET)?|OPTIMIZE|OPTION(?:ALLY)?|ORDER|OUT(?:ER|FILE)?|OVER|PARTIAL|PARTITION|PERCENT|PIVOT|PLAN|POINT|POLYGON|PRECEDING|PRECISION|PREPARE|PREV|PRIMARY|PRINT|PRIVILEGES|PROC(?:EDURE)?|PUBLIC|PURGE|QUICK|RAISERROR|READS?|REAL|RECONFIGURE|REFERENCES|RELEASE|RENAME|REPEAT(?:ABLE)?|REPLACE|REPLICATION|REQUIRE|RESIGNAL|RESTORE|RESTRICT|RETURN(?:S|ING)?|REVOKE|RIGHT|ROLLBACK|ROUTINE|ROW(?:COUNT|GUIDCOL|S)?|RTREE|RULE|SAVE(?:POINT)?|SCHEMA|SECOND|SELECT|SERIAL(?:IZABLE)?|SESSION(?:_USER)?|SET(?:USER)?|SHARE|SHOW|SHUTDOWN|SIMPLE|SMALLINT|SNAPSHOT|SOME|SONAME|SQL|START(?:ING)?|STATISTICS|STATUS|STRIPED|SYSTEM_USER|TABLES?|TABLESPACE|TEMP(?:ORARY|TABLE)?|TERMINATED|TEXT(?:SIZE)?|THEN|TIME(?:STAMP)?|TINY(?:BLOB|INT|TEXT)|TOP?|TRAN(?:SACTIONS?)?|TRIGGER|TRUNCATE|TSEQUAL|TYPES?|UNBOUNDED|UNCOMMITTED|UNDEFINED|UNION|UNIQUE|UNLOCK|UNPIVOT|UNSIGNED|UPDATE(?:TEXT)?|USAGE|USE|USER|USING|VALUES?|VAR(?:BINARY|CHAR|CHARACTER|YING)|VIEW|WAITFOR|WARNINGS|WHEN|WHERE|WHILE|WITH(?: ROLLUP|IN)?|WORK|WRITE(?:TEXT)?|YEAR)\\b/i,\n boolean: /\\b(?:TRUE|FALSE|NULL)\\b/i,\n number: /\\b0x[\\da-f]+\\b|\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+\\b/i,\n operator: /[-+*\\/=%^~]|&&?|\\|\\|?|!=?|<(?:=>?|<|>)?|>[>=]?|\\b(?:AND|BETWEEN|IN|LIKE|NOT|OR|IS|DIV|REGEXP|RLIKE|SOUNDS LIKE|XOR)\\b/i,\n punctuation: /[;[\\]()`,.]/\n }\n}\n","'use strict'\n\nmodule.exports = csharp\ncsharp.displayName = 'csharp'\ncsharp.aliases = ['dotnet', 'cs']\nfunction csharp(Prism) {\n ;(function (Prism) {\n /**\n * Replaces all placeholders \"<<n>>\" of given pattern with the n-th replacement (zero based).\n *\n * Note: This is a simple text based replacement. Be careful when using backreferences!\n *\n * @param {string} pattern the given pattern.\n * @param {string[]} replacements a list of replacement which can be inserted into the given pattern.\n * @returns {string} the pattern with all placeholders replaced with their corresponding replacements.\n * @example replace(/a<<0>>a/.source, [/b+/.source]) === /a(?:b+)a/.source\n */\n function replace(pattern, replacements) {\n return pattern.replace(/<<(\\d+)>>/g, function (m, index) {\n return '(?:' + replacements[+index] + ')'\n })\n }\n /**\n * @param {string} pattern\n * @param {string[]} replacements\n * @param {string} [flags]\n * @returns {RegExp}\n */\n function re(pattern, replacements, flags) {\n return RegExp(replace(pattern, replacements), flags || '')\n }\n /**\n * Creates a nested pattern where all occurrences of the string `<<self>>` are replaced with the pattern itself.\n *\n * @param {string} pattern\n * @param {number} depthLog2\n * @returns {string}\n */\n function nested(pattern, depthLog2) {\n for (var i = 0; i < depthLog2; i++) {\n pattern = pattern.replace(/<<self>>/g, function () {\n return '(?:' + pattern + ')'\n })\n }\n return pattern.replace(/<<self>>/g, '[^\\\\s\\\\S]')\n } // https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/\n var keywordKinds = {\n // keywords which represent a return or variable type\n type:\n 'bool byte char decimal double dynamic float int long object sbyte short string uint ulong ushort var void',\n // keywords which are used to declare a type\n typeDeclaration: 'class enum interface struct',\n // contextual keywords\n // (\"var\" and \"dynamic\" are missing because they are used like types)\n contextual:\n 'add alias and ascending async await by descending from get global group into join let nameof not notnull on or orderby partial remove select set unmanaged value when where',\n // all other keywords\n other:\n 'abstract as base break case catch checked const continue default delegate do else event explicit extern finally fixed for foreach goto if implicit in internal is lock namespace new null operator out override params private protected public readonly ref return sealed sizeof stackalloc static switch this throw try typeof unchecked unsafe using virtual volatile while yield'\n } // keywords\n function keywordsToPattern(words) {\n return '\\\\b(?:' + words.trim().replace(/ /g, '|') + ')\\\\b'\n }\n var typeDeclarationKeywords = keywordsToPattern(\n keywordKinds.typeDeclaration\n )\n var keywords = RegExp(\n keywordsToPattern(\n keywordKinds.type +\n ' ' +\n keywordKinds.typeDeclaration +\n ' ' +\n keywordKinds.contextual +\n ' ' +\n keywordKinds.other\n )\n )\n var nonTypeKeywords = keywordsToPattern(\n keywordKinds.typeDeclaration +\n ' ' +\n keywordKinds.contextual +\n ' ' +\n keywordKinds.other\n )\n var nonContextualKeywords = keywordsToPattern(\n keywordKinds.type +\n ' ' +\n keywordKinds.typeDeclaration +\n ' ' +\n keywordKinds.other\n ) // types\n var generic = nested(/<(?:[^<>;=+\\-*/%&|^]|<<self>>)*>/.source, 2) // the idea behind the other forbidden characters is to prevent false positives. Same for tupleElement.\n var nestedRound = nested(/\\((?:[^()]|<<self>>)*\\)/.source, 2)\n var name = /@?\\b[A-Za-z_]\\w*\\b/.source\n var genericName = replace(/<<0>>(?:\\s*<<1>>)?/.source, [name, generic])\n var identifier = replace(/(?!<<0>>)<<1>>(?:\\s*\\.\\s*<<1>>)*/.source, [\n nonTypeKeywords,\n genericName\n ])\n var array = /\\[\\s*(?:,\\s*)*\\]/.source\n var typeExpressionWithoutTuple = replace(\n /<<0>>(?:\\s*(?:\\?\\s*)?<<1>>)*(?:\\s*\\?)?/.source,\n [identifier, array]\n )\n var tupleElement = replace(\n /[^,()<>[\\];=+\\-*/%&|^]|<<0>>|<<1>>|<<2>>/.source,\n [generic, nestedRound, array]\n )\n var tuple = replace(/\\(<<0>>+(?:,<<0>>+)+\\)/.source, [tupleElement])\n var typeExpression = replace(\n /(?:<<0>>|<<1>>)(?:\\s*(?:\\?\\s*)?<<2>>)*(?:\\s*\\?)?/.source,\n [tuple, identifier, array]\n )\n var typeInside = {\n keyword: keywords,\n punctuation: /[<>()?,.:[\\]]/\n } // strings & characters\n // https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/lexical-structure#character-literals\n // https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/lexical-structure#string-literals\n var character = /'(?:[^\\r\\n'\\\\]|\\\\.|\\\\[Uux][\\da-fA-F]{1,8})'/.source // simplified pattern\n var regularString = /\"(?:\\\\.|[^\\\\\"\\r\\n])*\"/.source\n var verbatimString = /@\"(?:\"\"|\\\\[\\s\\S]|[^\\\\\"])*\"(?!\")/.source\n Prism.languages.csharp = Prism.languages.extend('clike', {\n string: [\n {\n pattern: re(/(^|[^$\\\\])<<0>>/.source, [verbatimString]),\n lookbehind: true,\n greedy: true\n },\n {\n pattern: re(/(^|[^@$\\\\])<<0>>/.source, [regularString]),\n lookbehind: true,\n greedy: true\n },\n {\n pattern: RegExp(character),\n greedy: true,\n alias: 'character'\n }\n ],\n 'class-name': [\n {\n // Using static\n // using static System.Math;\n pattern: re(/(\\busing\\s+static\\s+)<<0>>(?=\\s*;)/.source, [\n identifier\n ]),\n lookbehind: true,\n inside: typeInside\n },\n {\n // Using alias (type)\n // using Project = PC.MyCompany.Project;\n pattern: re(/(\\busing\\s+<<0>>\\s*=\\s*)<<1>>(?=\\s*;)/.source, [\n name,\n typeExpression\n ]),\n lookbehind: true,\n inside: typeInside\n },\n {\n // Using alias (alias)\n // using Project = PC.MyCompany.Project;\n pattern: re(/(\\busing\\s+)<<0>>(?=\\s*=)/.source, [name]),\n lookbehind: true\n },\n {\n // Type declarations\n // class Foo<A, B>\n // interface Foo<out A, B>\n pattern: re(/(\\b<<0>>\\s+)<<1>>/.source, [\n typeDeclarationKeywords,\n genericName\n ]),\n lookbehind: true,\n inside: typeInside\n },\n {\n // Single catch exception declaration\n // catch(Foo)\n // (things like catch(Foo e) is covered by variable declaration)\n pattern: re(/(\\bcatch\\s*\\(\\s*)<<0>>/.source, [identifier]),\n lookbehind: true,\n inside: typeInside\n },\n {\n // Name of the type parameter of generic constraints\n // where Foo : class\n pattern: re(/(\\bwhere\\s+)<<0>>/.source, [name]),\n lookbehind: true\n },\n {\n // Casts and checks via as and is.\n // as Foo<A>, is Bar<B>\n // (things like if(a is Foo b) is covered by variable declaration)\n pattern: re(/(\\b(?:is(?:\\s+not)?|as)\\s+)<<0>>/.source, [\n typeExpressionWithoutTuple\n ]),\n lookbehind: true,\n inside: typeInside\n },\n {\n // Variable, field and parameter declaration\n // (Foo bar, Bar baz, Foo[,,] bay, Foo<Bar, FooBar<Bar>> bax)\n pattern: re(\n /\\b<<0>>(?=\\s+(?!<<1>>)<<2>>(?:\\s*[=,;:{)\\]]|\\s+(?:in|when)\\b))/\n .source,\n [typeExpression, nonContextualKeywords, name]\n ),\n inside: typeInside\n }\n ],\n keyword: keywords,\n // https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/lexical-structure#literals\n number: /(?:\\b0(?:x[\\da-f_]*[\\da-f]|b[01_]*[01])|(?:\\B\\.\\d+(?:_+\\d+)*|\\b\\d+(?:_+\\d+)*(?:\\.\\d+(?:_+\\d+)*)?)(?:e[-+]?\\d+(?:_+\\d+)*)?)(?:ul|lu|[dflmu])?\\b/i,\n operator: />>=?|<<=?|[-=]>|([-+&|])\\1|~|\\?\\?=?|[-+*/%&|^!=<>]=?/,\n punctuation: /\\?\\.?|::|[{}[\\];(),.:]/\n })\n Prism.languages.insertBefore('csharp', 'number', {\n range: {\n pattern: /\\.\\./,\n alias: 'operator'\n }\n })\n Prism.languages.insertBefore('csharp', 'punctuation', {\n 'named-parameter': {\n pattern: re(/([(,]\\s*)<<0>>(?=\\s*:)/.source, [name]),\n lookbehind: true,\n alias: 'punctuation'\n }\n })\n Prism.languages.insertBefore('csharp', 'class-name', {\n namespace: {\n // namespace Foo.Bar {}\n // using Foo.Bar;\n pattern: re(\n /(\\b(?:namespace|using)\\s+)<<0>>(?:\\s*\\.\\s*<<0>>)*(?=\\s*[;{])/.source,\n [name]\n ),\n lookbehind: true,\n inside: {\n punctuation: /\\./\n }\n },\n 'type-expression': {\n // default(Foo), typeof(Foo<Bar>), sizeof(int)\n pattern: re(\n /(\\b(?:default|typeof|sizeof)\\s*\\(\\s*(?!\\s))(?:[^()\\s]|\\s(?!\\s)|<<0>>)*(?=\\s*\\))/\n .source,\n [nestedRound]\n ),\n lookbehind: true,\n alias: 'class-name',\n inside: typeInside\n },\n 'return-type': {\n // Foo<Bar> ForBar(); Foo IFoo.Bar() => 0\n // int this[int index] => 0; T IReadOnlyList<T>.this[int index] => this[index];\n // int Foo => 0; int Foo { get; set } = 0;\n pattern: re(\n /<<0>>(?=\\s+(?:<<1>>\\s*(?:=>|[({]|\\.\\s*this\\s*\\[)|this\\s*\\[))/.source,\n [typeExpression, identifier]\n ),\n inside: typeInside,\n alias: 'class-name'\n },\n 'constructor-invocation': {\n // new List<Foo<Bar[]>> { }\n pattern: re(/(\\bnew\\s+)<<0>>(?=\\s*[[({])/.source, [typeExpression]),\n lookbehind: true,\n inside: typeInside,\n alias: 'class-name'\n },\n /*'explicit-implementation': {\n// int IFoo<Foo>.Bar => 0; void IFoo<Foo<Foo>>.Foo<T>();\npattern: replace(/\\b<<0>>(?=\\.<<1>>)/, className, methodOrPropertyDeclaration),\ninside: classNameInside,\nalias: 'class-name'\n},*/\n 'generic-method': {\n // foo<Bar>()\n pattern: re(/<<0>>\\s*<<1>>(?=\\s*\\()/.source, [name, generic]),\n inside: {\n function: re(/^<<0>>/.source, [name]),\n generic: {\n pattern: RegExp(generic),\n alias: 'class-name',\n inside: typeInside\n }\n }\n },\n 'type-list': {\n // The list of types inherited or of generic constraints\n // class Foo<F> : Bar, IList<FooBar>\n // where F : Bar, IList<int>\n pattern: re(\n /\\b((?:<<0>>\\s+<<1>>|where\\s+<<2>>)\\s*:\\s*)(?:<<3>>|<<4>>)(?:\\s*,\\s*(?:<<3>>|<<4>>))*(?=\\s*(?:where|[{;]|=>|$))/\n .source,\n [\n typeDeclarationKeywords,\n genericName,\n name,\n typeExpression,\n keywords.source\n ]\n ),\n lookbehind: true,\n inside: {\n keyword: keywords,\n 'class-name': {\n pattern: RegExp(typeExpression),\n greedy: true,\n inside: typeInside\n },\n punctuation: /,/\n }\n },\n preprocessor: {\n pattern: /(^\\s*)#.*/m,\n lookbehind: true,\n alias: 'property',\n inside: {\n // highlight preprocessor directives as keywords\n directive: {\n pattern: /(\\s*#)\\b(?:define|elif|else|endif|endregion|error|if|line|pragma|region|undef|warning)\\b/,\n lookbehind: true,\n alias: 'keyword'\n }\n }\n }\n }) // attributes\n var regularStringOrCharacter = regularString + '|' + character\n var regularStringCharacterOrComment = replace(\n /\\/(?![*/])|\\/\\/[^\\r\\n]*[\\r\\n]|\\/\\*(?:[^*]|\\*(?!\\/))*\\*\\/|<<0>>/.source,\n [regularStringOrCharacter]\n )\n var roundExpression = nested(\n replace(/[^\"'/()]|<<0>>|\\(<<self>>*\\)/.source, [\n regularStringCharacterOrComment\n ]),\n 2\n ) // https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/concepts/attributes/#attribute-targets\n var attrTarget = /\\b(?:assembly|event|field|method|module|param|property|return|type)\\b/\n .source\n var attr = replace(/<<0>>(?:\\s*\\(<<1>>*\\))?/.source, [\n identifier,\n roundExpression\n ])\n Prism.languages.insertBefore('csharp', 'class-name', {\n attribute: {\n // Attributes\n // [Foo], [Foo(1), Bar(2, Prop = \"foo\")], [return: Foo(1), Bar(2)], [assembly: Foo(Bar)]\n pattern: re(\n /((?:^|[^\\s\\w>)?])\\s*\\[\\s*)(?:<<0>>\\s*:\\s*)?<<1>>(?:\\s*,\\s*<<1>>)*(?=\\s*\\])/\n .source,\n [attrTarget, attr]\n ),\n lookbehind: true,\n greedy: true,\n inside: {\n target: {\n pattern: re(/^<<0>>(?=\\s*:)/.source, [attrTarget]),\n alias: 'keyword'\n },\n 'attribute-arguments': {\n pattern: re(/\\(<<0>>*\\)/.source, [roundExpression]),\n inside: Prism.languages.csharp\n },\n 'class-name': {\n pattern: RegExp(identifier),\n inside: {\n punctuation: /\\./\n }\n },\n punctuation: /[:,]/\n }\n }\n }) // string interpolation\n var formatString = /:[^}\\r\\n]+/.source // multi line\n var mInterpolationRound = nested(\n replace(/[^\"'/()]|<<0>>|\\(<<self>>*\\)/.source, [\n regularStringCharacterOrComment\n ]),\n 2\n )\n var mInterpolation = replace(/\\{(?!\\{)(?:(?![}:])<<0>>)*<<1>>?\\}/.source, [\n mInterpolationRound,\n formatString\n ]) // single line\n var sInterpolationRound = nested(\n replace(\n /[^\"'/()]|\\/(?!\\*)|\\/\\*(?:[^*]|\\*(?!\\/))*\\*\\/|<<0>>|\\(<<self>>*\\)/\n .source,\n [regularStringOrCharacter]\n ),\n 2\n )\n var sInterpolation = replace(/\\{(?!\\{)(?:(?![}:])<<0>>)*<<1>>?\\}/.source, [\n sInterpolationRound,\n formatString\n ])\n function createInterpolationInside(interpolation, interpolationRound) {\n return {\n interpolation: {\n pattern: re(/((?:^|[^{])(?:\\{\\{)*)<<0>>/.source, [interpolation]),\n lookbehind: true,\n inside: {\n 'format-string': {\n pattern: re(/(^\\{(?:(?![}:])<<0>>)*)<<1>>(?=\\}$)/.source, [\n interpolationRound,\n formatString\n ]),\n lookbehind: true,\n inside: {\n punctuation: /^:/\n }\n },\n punctuation: /^\\{|\\}$/,\n expression: {\n pattern: /[\\s\\S]+/,\n alias: 'language-csharp',\n inside: Prism.languages.csharp\n }\n }\n },\n string: /[\\s\\S]+/\n }\n }\n Prism.languages.insertBefore('csharp', 'string', {\n 'interpolation-string': [\n {\n pattern: re(\n /(^|[^\\\\])(?:\\$@|@\\$)\"(?:\"\"|\\\\[\\s\\S]|\\{\\{|<<0>>|[^\\\\{\"])*\"/.source,\n [mInterpolation]\n ),\n lookbehind: true,\n greedy: true,\n inside: createInterpolationInside(mInterpolation, mInterpolationRound)\n },\n {\n pattern: re(/(^|[^@\\\\])\\$\"(?:\\\\.|\\{\\{|<<0>>|[^\\\\\"{])*\"/.source, [\n sInterpolation\n ]),\n lookbehind: true,\n greedy: true,\n inside: createInterpolationInside(sInterpolation, sInterpolationRound)\n }\n ]\n })\n })(Prism)\n Prism.languages.dotnet = Prism.languages.cs = Prism.languages.csharp\n}\n","'use strict'\n\nmodule.exports = java\njava.displayName = 'java'\njava.aliases = []\nfunction java(Prism) {\n ;(function (Prism) {\n var keywords = /\\b(?:abstract|assert|boolean|break|byte|case|catch|char|class|const|continue|default|do|double|else|enum|exports|extends|final|finally|float|for|goto|if|implements|import|instanceof|int|interface|long|module|native|new|non-sealed|null|open|opens|package|permits|private|protected|provides|public|record|requires|return|sealed|short|static|strictfp|super|switch|synchronized|this|throw|throws|to|transient|transitive|try|uses|var|void|volatile|while|with|yield)\\b/ // full package (optional) + parent classes (optional)\n var classNamePrefix = /(^|[^\\w.])(?:[a-z]\\w*\\s*\\.\\s*)*(?:[A-Z]\\w*\\s*\\.\\s*)*/\n .source // based on the java naming conventions\n var className = {\n pattern: RegExp(classNamePrefix + /[A-Z](?:[\\d_A-Z]*[a-z]\\w*)?\\b/.source),\n lookbehind: true,\n inside: {\n namespace: {\n pattern: /^[a-z]\\w*(?:\\s*\\.\\s*[a-z]\\w*)*(?:\\s*\\.)?/,\n inside: {\n punctuation: /\\./\n }\n },\n punctuation: /\\./\n }\n }\n Prism.languages.java = Prism.languages.extend('clike', {\n 'class-name': [\n className,\n {\n // variables and parameters\n // this to support class names (or generic parameters) which do not contain a lower case letter (also works for methods)\n pattern: RegExp(\n classNamePrefix + /[A-Z]\\w*(?=\\s+\\w+\\s*[;,=())])/.source\n ),\n lookbehind: true,\n inside: className.inside\n }\n ],\n keyword: keywords,\n function: [\n Prism.languages.clike.function,\n {\n pattern: /(\\:\\:\\s*)[a-z_]\\w*/,\n lookbehind: true\n }\n ],\n number: /\\b0b[01][01_]*L?\\b|\\b0x(?:\\.[\\da-f_p+-]+|[\\da-f_]+(?:\\.[\\da-f_p+-]+)?)\\b|(?:\\b\\d[\\d_]*(?:\\.[\\d_]*)?|\\B\\.\\d[\\d_]*)(?:e[+-]?\\d[\\d_]*)?[dfl]?/i,\n operator: {\n pattern: /(^|[^.])(?:<<=?|>>>?=?|->|--|\\+\\+|&&|\\|\\||::|[?:~]|[-+*/%&|^!=<>]=?)/m,\n lookbehind: true\n }\n })\n Prism.languages.insertBefore('java', 'string', {\n 'triple-quoted-string': {\n // http://openjdk.java.net/jeps/355#Description\n pattern: /\"\"\"[ \\t]*[\\r\\n](?:(?:\"|\"\")?(?:\\\\.|[^\"\\\\]))*\"\"\"/,\n greedy: true,\n alias: 'string'\n }\n })\n Prism.languages.insertBefore('java', 'class-name', {\n annotation: {\n pattern: /(^|[^.])@\\w+(?:\\s*\\.\\s*\\w+)*/,\n lookbehind: true,\n alias: 'punctuation'\n },\n generics: {\n pattern: /<(?:[\\w\\s,.&?]|<(?:[\\w\\s,.&?]|<(?:[\\w\\s,.&?]|<[\\w\\s,.&?]*>)*>)*>)*>/,\n inside: {\n 'class-name': className,\n keyword: keywords,\n punctuation: /[<>(),.:]/,\n operator: /[?&|]/\n }\n },\n namespace: {\n pattern: RegExp(\n /(\\b(?:exports|import(?:\\s+static)?|module|open|opens|package|provides|requires|to|transitive|uses|with)\\s+)(?!<keyword>)[a-z]\\w*(?:\\.[a-z]\\w*)*\\.?/.source.replace(\n /<keyword>/g,\n function () {\n return keywords.source\n }\n )\n ),\n lookbehind: true,\n inside: {\n punctuation: /\\./\n }\n }\n })\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = typescript\ntypescript.displayName = 'typescript'\ntypescript.aliases = ['ts']\nfunction typescript(Prism) {\n ;(function (Prism) {\n Prism.languages.typescript = Prism.languages.extend('javascript', {\n 'class-name': {\n pattern: /(\\b(?:class|extends|implements|instanceof|interface|new|type)\\s+)(?!keyof\\b)(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?:\\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>)?/,\n lookbehind: true,\n greedy: true,\n inside: null // see below\n },\n // From JavaScript Prism keyword list and TypeScript language spec: https://github.com/Microsoft/TypeScript/blob/master/doc/spec.md#221-reserved-words\n keyword: /\\b(?:abstract|as|asserts|async|await|break|case|catch|class|const|constructor|continue|debugger|declare|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|is|keyof|let|module|namespace|new|null|of|package|private|protected|public|readonly|return|require|set|static|super|switch|this|throw|try|type|typeof|undefined|var|void|while|with|yield)\\b/,\n builtin: /\\b(?:string|Function|any|number|boolean|Array|symbol|console|Promise|unknown|never)\\b/\n }) // doesn't work with TS because TS is too complex\n delete Prism.languages.typescript['parameter'] // a version of typescript specifically for highlighting types\n var typeInside = Prism.languages.extend('typescript', {})\n delete typeInside['class-name']\n Prism.languages.typescript['class-name'].inside = typeInside\n Prism.languages.insertBefore('typescript', 'function', {\n 'generic-function': {\n // e.g. foo<T extends \"bar\" | \"baz\">( ...\n pattern: /#?(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*\\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>(?=\\s*\\()/,\n greedy: true,\n inside: {\n function: /^#?(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*/,\n generic: {\n pattern: /<[\\s\\S]+/,\n // everything after the first <\n alias: 'class-name',\n inside: typeInside\n }\n }\n }\n })\n Prism.languages.ts = Prism.languages.typescript\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = json\njson.displayName = 'json'\njson.aliases = ['webmanifest']\nfunction json(Prism) {\n // https://www.json.org/json-en.html\n Prism.languages.json = {\n property: {\n pattern: /\"(?:\\\\.|[^\\\\\"\\r\\n])*\"(?=\\s*:)/,\n greedy: true\n },\n string: {\n pattern: /\"(?:\\\\.|[^\\\\\"\\r\\n])*\"(?!\\s*:)/,\n greedy: true\n },\n comment: {\n pattern: /\\/\\/.*|\\/\\*[\\s\\S]*?(?:\\*\\/|$)/,\n greedy: true\n },\n number: /-?\\b\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?\\b/i,\n punctuation: /[{}[\\],]/,\n operator: /:/,\n boolean: /\\b(?:true|false)\\b/,\n null: {\n pattern: /\\bnull\\b/,\n alias: 'keyword'\n }\n }\n Prism.languages.webmanifest = Prism.languages.json\n}\n","'use strict'\n\nmodule.exports = scheme\nscheme.displayName = 'scheme'\nscheme.aliases = []\nfunction scheme(Prism) {\n ;(function (Prism) {\n Prism.languages.scheme = {\n // this supports \"normal\" single-line comments:\n // ; comment\n // and (potentially nested) multiline comments:\n // #| comment #| nested |# still comment |#\n // (only 1 level of nesting is supported)\n comment: /;.*|#;\\s*\\((?:[^()]|\\([^()]*\\))*\\)|#\\|(?:[^#|]|#(?!\\|)|\\|(?!#)|#\\|(?:[^#|]|#(?!\\|)|\\|(?!#))*\\|#)*\\|#/,\n string: {\n pattern: /\"(?:[^\"\\\\]|\\\\.)*\"/,\n greedy: true\n },\n symbol: {\n pattern: /'[^()#'\\s]+/,\n greedy: true\n },\n character: {\n pattern: /#\\\\(?:[ux][a-fA-F\\d]+\\b|[-a-zA-Z]+\\b|\\S)/,\n greedy: true,\n alias: 'string'\n },\n 'lambda-parameter': [\n // https://www.cs.cmu.edu/Groups/AI/html/r4rs/r4rs_6.html#SEC30\n {\n pattern: /((?:^|[^'`#])\\(lambda\\s+)(?:[^|()'\\s]+|\\|(?:[^\\\\|]|\\\\.)*\\|)/,\n lookbehind: true\n },\n {\n pattern: /((?:^|[^'`#])\\(lambda\\s+\\()[^()']+/,\n lookbehind: true\n }\n ],\n keyword: {\n pattern: /((?:^|[^'`#])\\()(?:begin|case(?:-lambda)?|cond(?:-expand)?|define(?:-library|-macro|-record-type|-syntax|-values)?|defmacro|delay(?:-force)?|do|else|export|except|guard|if|import|include(?:-ci|-library-declarations)?|lambda|let(?:rec)?(?:-syntax|-values|\\*)?|let\\*-values|only|parameterize|prefix|(?:quasi-?)?quote|rename|set!|syntax-(?:case|rules)|unless|unquote(?:-splicing)?|when)(?=[()\\s]|$)/,\n lookbehind: true\n },\n builtin: {\n // all functions of the base library of R7RS plus some of built-ins of R5Rs\n pattern: /((?:^|[^'`#])\\()(?:abs|and|append|apply|assoc|ass[qv]|binary-port\\?|boolean=?\\?|bytevector(?:-append|-copy|-copy!|-length|-u8-ref|-u8-set!|\\?)?|caar|cadr|call-with-(?:current-continuation|port|values)|call\\/cc|car|cdar|cddr|cdr|ceiling|char(?:->integer|-ready\\?|\\?|<\\?|<=\\?|=\\?|>\\?|>=\\?)|close-(?:input-port|output-port|port)|complex\\?|cons|current-(?:error|input|output)-port|denominator|dynamic-wind|eof-object\\??|eq\\?|equal\\?|eqv\\?|error|error-object(?:-irritants|-message|\\?)|eval|even\\?|exact(?:-integer-sqrt|-integer\\?|\\?)?|expt|features|file-error\\?|floor(?:-quotient|-remainder|\\/)?|flush-output-port|for-each|gcd|get-output-(?:bytevector|string)|inexact\\??|input-port(?:-open\\?|\\?)|integer(?:->char|\\?)|lcm|length|list(?:->string|->vector|-copy|-ref|-set!|-tail|\\?)?|make-(?:bytevector|list|parameter|string|vector)|map|max|member|memq|memv|min|modulo|negative\\?|newline|not|null\\?|number(?:->string|\\?)|numerator|odd\\?|open-(?:input|output)-(?:bytevector|string)|or|output-port(?:-open\\?|\\?)|pair\\?|peek-char|peek-u8|port\\?|positive\\?|procedure\\?|quotient|raise|raise-continuable|rational\\?|rationalize|read-(?:bytevector|bytevector!|char|error\\?|line|string|u8)|real\\?|remainder|reverse|round|set-c[ad]r!|square|string(?:->list|->number|->symbol|->utf8|->vector|-append|-copy|-copy!|-fill!|-for-each|-length|-map|-ref|-set!|\\?|<\\?|<=\\?|=\\?|>\\?|>=\\?)?|substring|symbol(?:->string|\\?|=\\?)|syntax-error|textual-port\\?|truncate(?:-quotient|-remainder|\\/)?|u8-ready\\?|utf8->string|values|vector(?:->list|->string|-append|-copy|-copy!|-fill!|-for-each|-length|-map|-ref|-set!|\\?)?|with-exception-handler|write-(?:bytevector|char|string|u8)|zero\\?)(?=[()\\s]|$)/,\n lookbehind: true\n },\n operator: {\n pattern: /((?:^|[^'`#])\\()(?:[-+*%/]|[<>]=?|=>?)(?=[()\\s]|$)/,\n lookbehind: true\n },\n number: {\n // The number pattern from [the R7RS spec](https://small.r7rs.org/attachment/r7rs.pdf).\n //\n // <number> := <num 2>|<num 8>|<num 10>|<num 16>\n // <num R> := <prefix R><complex R>\n // <complex R> := <real R>(?:@<real R>|<imaginary R>)?|<imaginary R>\n // <imaginary R> := [+-](?:<ureal R>|(?:inf|nan)\\.0)?i\n // <real R> := [+-]?<ureal R>|[+-](?:inf|nan)\\.0\n // <ureal R> := <uint R>(?:\\/<uint R>)?\n // | <decimal R>\n //\n // <decimal 10> := (?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:e[+-]?\\d+)?\n // <uint R> := <digit R>+\n // <prefix R> := <radix R>(?:#[ei])?|(?:#[ei])?<radix R>\n // <radix 2> := #b\n // <radix 8> := #o\n // <radix 10> := (?:#d)?\n // <radix 16> := #x\n // <digit 2> := [01]\n // <digit 8> := [0-7]\n // <digit 10> := \\d\n // <digit 16> := [0-9a-f]\n //\n // The problem with this grammar is that the resulting regex is way to complex, so we simplify by grouping all\n // non-decimal bases together. This results in a decimal (dec) and combined binary, octal, and hexadecimal (box)\n // pattern:\n pattern: RegExp(\n SortedBNF({\n '<ureal dec>': /\\d+(?:\\/\\d+)?|(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:e[+-]?\\d+)?/\n .source,\n '<real dec>': /[+-]?<ureal dec>|[+-](?:inf|nan)\\.0/.source,\n '<imaginary dec>': /[+-](?:<ureal dec>|(?:inf|nan)\\.0)?i/.source,\n '<complex dec>': /<real dec>(?:@<real dec>|<imaginary dec>)?|<imaginary dec>/\n .source,\n '<num dec>': /(?:#d(?:#[ei])?|#[ei](?:#d)?)?<complex dec>/.source,\n '<ureal box>': /[0-9a-f]+(?:\\/[0-9a-f]+)?/.source,\n '<real box>': /[+-]?<ureal box>|[+-](?:inf|nan)\\.0/.source,\n '<imaginary box>': /[+-](?:<ureal box>|(?:inf|nan)\\.0)?i/.source,\n '<complex box>': /<real box>(?:@<real box>|<imaginary box>)?|<imaginary box>/\n .source,\n '<num box>': /#[box](?:#[ei])?|(?:#[ei])?#[box]<complex box>/\n .source,\n '<number>': /(^|[\\s()])(?:<num dec>|<num box>)(?=[()\\s]|$)/.source\n }),\n 'i'\n ),\n lookbehind: true\n },\n boolean: {\n pattern: /(^|[\\s()])#(?:[ft]|false|true)(?=[()\\s]|$)/,\n lookbehind: true\n },\n function: {\n pattern: /((?:^|[^'`#])\\()(?:[^|()'\\s]+|\\|(?:[^\\\\|]|\\\\.)*\\|)(?=[()\\s]|$)/,\n lookbehind: true\n },\n identifier: {\n pattern: /(^|[\\s()])\\|(?:[^\\\\|]|\\\\.)*\\|(?=[()\\s]|$)/,\n lookbehind: true,\n greedy: true\n },\n punctuation: /[()']/\n }\n /**\n * Given a topologically sorted BNF grammar, this will return the RegExp source of last rule of the grammar.\n *\n * @param {Record<string, string>} grammar\n * @returns {string}\n */\n function SortedBNF(grammar) {\n for (var key in grammar) {\n grammar[key] = grammar[key].replace(/<[\\w\\s]+>/g, function (key) {\n return '(?:' + grammar[key].trim() + ')'\n })\n } // return the last item\n return grammar[key]\n }\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = t4Templating\nt4Templating.displayName = 't4Templating'\nt4Templating.aliases = []\nfunction t4Templating(Prism) {\n ;(function (Prism) {\n function createBlock(prefix, inside, contentAlias) {\n return {\n pattern: RegExp('<#' + prefix + '[\\\\s\\\\S]*?#>'),\n alias: 'block',\n inside: {\n delimiter: {\n pattern: RegExp('^<#' + prefix + '|#>$'),\n alias: 'important'\n },\n content: {\n pattern: /[\\s\\S]+/,\n inside: inside,\n alias: contentAlias\n }\n }\n }\n }\n function createT4(insideLang) {\n var grammar = Prism.languages[insideLang]\n var className = 'language-' + insideLang\n return {\n block: {\n pattern: /<#[\\s\\S]+?#>/,\n inside: {\n directive: createBlock('@', {\n 'attr-value': {\n pattern: /=(?:(\"|')(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1|[^\\s'\">=]+)/,\n inside: {\n punctuation: /^=|^[\"']|[\"']$/\n }\n },\n keyword: /\\w+(?=\\s)/,\n 'attr-name': /\\w+/\n }),\n expression: createBlock('=', grammar, className),\n 'class-feature': createBlock('\\\\+', grammar, className),\n standard: createBlock('', grammar, className)\n }\n }\n }\n }\n Prism.languages['t4-templating'] = Object.defineProperty({}, 'createT4', {\n value: createT4\n })\n })(Prism)\n}\n","'use strict';\n\nvar hasOwn = Object.prototype.hasOwnProperty;\nvar toStr = Object.prototype.toString;\nvar defineProperty = Object.defineProperty;\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nvar isArray = function isArray(arr) {\n\tif (typeof Array.isArray === 'function') {\n\t\treturn Array.isArray(arr);\n\t}\n\n\treturn toStr.call(arr) === '[object Array]';\n};\n\nvar isPlainObject = function isPlainObject(obj) {\n\tif (!obj || toStr.call(obj) !== '[object Object]') {\n\t\treturn false;\n\t}\n\n\tvar hasOwnConstructor = hasOwn.call(obj, 'constructor');\n\tvar hasIsPrototypeOf = obj.constructor && obj.constructor.prototype && hasOwn.call(obj.constructor.prototype, 'isPrototypeOf');\n\t// Not own constructor property must be Object\n\tif (obj.constructor && !hasOwnConstructor && !hasIsPrototypeOf) {\n\t\treturn false;\n\t}\n\n\t// Own properties are enumerated firstly, so to speed up,\n\t// if last one is own, then all properties are own.\n\tvar key;\n\tfor (key in obj) { /**/ }\n\n\treturn typeof key === 'undefined' || hasOwn.call(obj, key);\n};\n\n// If name is '__proto__', and Object.defineProperty is available, define __proto__ as an own property on target\nvar setProperty = function setProperty(target, options) {\n\tif (defineProperty && options.name === '__proto__') {\n\t\tdefineProperty(target, options.name, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\t\t\tvalue: options.newValue,\n\t\t\twritable: true\n\t\t});\n\t} else {\n\t\ttarget[options.name] = options.newValue;\n\t}\n};\n\n// Return undefined instead of __proto__ if '__proto__' is not an own property\nvar getProperty = function getProperty(obj, name) {\n\tif (name === '__proto__') {\n\t\tif (!hasOwn.call(obj, name)) {\n\t\t\treturn void 0;\n\t\t} else if (gOPD) {\n\t\t\t// In early versions of node, obj['__proto__'] is buggy when obj has\n\t\t\t// __proto__ as an own property. Object.getOwnPropertyDescriptor() works.\n\t\t\treturn gOPD(obj, name).value;\n\t\t}\n\t}\n\n\treturn obj[name];\n};\n\nmodule.exports = function extend() {\n\tvar options, name, src, copy, copyIsArray, clone;\n\tvar target = arguments[0];\n\tvar i = 1;\n\tvar length = arguments.length;\n\tvar deep = false;\n\n\t// Handle a deep copy situation\n\tif (typeof target === 'boolean') {\n\t\tdeep = target;\n\t\ttarget = arguments[1] || {};\n\t\t// skip the boolean and the target\n\t\ti = 2;\n\t}\n\tif (target == null || (typeof target !== 'object' && typeof target !== 'function')) {\n\t\ttarget = {};\n\t}\n\n\tfor (; i < length; ++i) {\n\t\toptions = arguments[i];\n\t\t// Only deal with non-null/undefined values\n\t\tif (options != null) {\n\t\t\t// Extend the base object\n\t\t\tfor (name in options) {\n\t\t\t\tsrc = getProperty(target, name);\n\t\t\t\tcopy = getProperty(options, name);\n\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif (target !== copy) {\n\t\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\t\tif (deep && copy && (isPlainObject(copy) || (copyIsArray = isArray(copy)))) {\n\t\t\t\t\t\tif (copyIsArray) {\n\t\t\t\t\t\t\tcopyIsArray = false;\n\t\t\t\t\t\t\tclone = src && isArray(src) ? src : [];\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tclone = src && isPlainObject(src) ? src : {};\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\t\tsetProperty(target, { name: name, newValue: extend(deep, clone, copy) });\n\n\t\t\t\t\t// Don't bring in undefined values\n\t\t\t\t\t} else if (typeof copy !== 'undefined') {\n\t\t\t\t\t\tsetProperty(target, { name: name, newValue: copy });\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return the modified object\n\treturn target;\n};\n","var arrayWithoutHoles = require(\"./arrayWithoutHoles.js\");\n\nvar iterableToArray = require(\"./iterableToArray.js\");\n\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\n\nvar nonIterableSpread = require(\"./nonIterableSpread.js\");\n\nfunction _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}\n\nmodule.exports = _toConsumableArray;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nmodule.exports = _arrayLikeToArray;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","'use strict'\n\nmodule.exports = require('./lib')\n","'use strict'\n\nvar own = {}.hasOwnProperty\n\nmodule.exports = stringify\n\nfunction stringify(value) {\n // Nothing.\n if (!value || typeof value !== 'object') {\n return ''\n }\n\n // Node.\n if (own.call(value, 'position') || own.call(value, 'type')) {\n return position(value.position)\n }\n\n // Position.\n if (own.call(value, 'start') || own.call(value, 'end')) {\n return position(value)\n }\n\n // Point.\n if (own.call(value, 'line') || own.call(value, 'column')) {\n return point(value)\n }\n\n // ?\n return ''\n}\n\nfunction point(point) {\n if (!point || typeof point !== 'object') {\n point = {}\n }\n\n return index(point.line) + ':' + index(point.column)\n}\n\nfunction position(pos) {\n if (!pos || typeof pos !== 'object') {\n pos = {}\n }\n\n return point(pos.start) + '-' + point(pos.end)\n}\n\nfunction index(value) {\n return value && typeof value === 'number' ? value : 1\n}\n","/*!\n * Determine if an object is a Buffer\n *\n * @author Feross Aboukhadijeh <https://feross.org>\n * @license MIT\n */\n\nmodule.exports = function isBuffer (obj) {\n return obj != null && obj.constructor != null &&\n typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)\n}\n","'use strict'\n\nvar own = {}.hasOwnProperty\n\nmodule.exports = own\n","'use strict'\n\n// Counts tabs based on their expanded size, and CR+LF as one character.\n\nfunction sizeChunks(chunks) {\n var index = -1\n var size = 0\n\n while (++index < chunks.length) {\n size += typeof chunks[index] === 'string' ? chunks[index].length : 1\n }\n\n return size\n}\n\nmodule.exports = sizeChunks\n","'use strict'\n\nvar assign = require('../constant/assign.js')\nvar chunkedSplice = require('./chunked-splice.js')\nvar shallow = require('./shallow.js')\n\nfunction subtokenize(events) {\n var jumps = {}\n var index = -1\n var event\n var lineIndex\n var otherIndex\n var otherEvent\n var parameters\n var subevents\n var more\n\n while (++index < events.length) {\n while (index in jumps) {\n index = jumps[index]\n }\n\n event = events[index] // Add a hook for the GFM tasklist extension, which needs to know if text\n // is in the first content of a list item.\n\n if (\n index &&\n event[1].type === 'chunkFlow' &&\n events[index - 1][1].type === 'listItemPrefix'\n ) {\n subevents = event[1]._tokenizer.events\n otherIndex = 0\n\n if (\n otherIndex < subevents.length &&\n subevents[otherIndex][1].type === 'lineEndingBlank'\n ) {\n otherIndex += 2\n }\n\n if (\n otherIndex < subevents.length &&\n subevents[otherIndex][1].type === 'content'\n ) {\n while (++otherIndex < subevents.length) {\n if (subevents[otherIndex][1].type === 'content') {\n break\n }\n\n if (subevents[otherIndex][1].type === 'chunkText') {\n subevents[otherIndex][1].isInFirstContentOfListItem = true\n otherIndex++\n }\n }\n }\n } // Enter.\n\n if (event[0] === 'enter') {\n if (event[1].contentType) {\n assign(jumps, subcontent(events, index))\n index = jumps[index]\n more = true\n }\n } // Exit.\n else if (event[1]._container || event[1]._movePreviousLineEndings) {\n otherIndex = index\n lineIndex = undefined\n\n while (otherIndex--) {\n otherEvent = events[otherIndex]\n\n if (\n otherEvent[1].type === 'lineEnding' ||\n otherEvent[1].type === 'lineEndingBlank'\n ) {\n if (otherEvent[0] === 'enter') {\n if (lineIndex) {\n events[lineIndex][1].type = 'lineEndingBlank'\n }\n\n otherEvent[1].type = 'lineEnding'\n lineIndex = otherIndex\n }\n } else {\n break\n }\n }\n\n if (lineIndex) {\n // Fix position.\n event[1].end = shallow(events[lineIndex][1].start) // Switch container exit w/ line endings.\n\n parameters = events.slice(lineIndex, index)\n parameters.unshift(event)\n chunkedSplice(events, lineIndex, index - lineIndex + 1, parameters)\n }\n }\n }\n\n return !more\n}\n\nfunction subcontent(events, eventIndex) {\n var token = events[eventIndex][1]\n var context = events[eventIndex][2]\n var startPosition = eventIndex - 1\n var startPositions = []\n var tokenizer =\n token._tokenizer || context.parser[token.contentType](token.start)\n var childEvents = tokenizer.events\n var jumps = []\n var gaps = {}\n var stream\n var previous\n var index\n var entered\n var end\n var adjust // Loop forward through the linked tokens to pass them in order to the\n // subtokenizer.\n\n while (token) {\n // Find the position of the event for this token.\n while (events[++startPosition][1] !== token) {\n // Empty.\n }\n\n startPositions.push(startPosition)\n\n if (!token._tokenizer) {\n stream = context.sliceStream(token)\n\n if (!token.next) {\n stream.push(null)\n }\n\n if (previous) {\n tokenizer.defineSkip(token.start)\n }\n\n if (token.isInFirstContentOfListItem) {\n tokenizer._gfmTasklistFirstContentOfListItem = true\n }\n\n tokenizer.write(stream)\n\n if (token.isInFirstContentOfListItem) {\n tokenizer._gfmTasklistFirstContentOfListItem = undefined\n }\n } // Unravel the next token.\n\n previous = token\n token = token.next\n } // Now, loop back through all events (and linked tokens), to figure out which\n // parts belong where.\n\n token = previous\n index = childEvents.length\n\n while (index--) {\n // Make sure weve at least seen something (final eol is part of the last\n // token).\n if (childEvents[index][0] === 'enter') {\n entered = true\n } else if (\n // Find a void token that includes a break.\n entered &&\n childEvents[index][1].type === childEvents[index - 1][1].type &&\n childEvents[index][1].start.line !== childEvents[index][1].end.line\n ) {\n add(childEvents.slice(index + 1, end))\n // Help GC.\n token._tokenizer = token.next = undefined\n token = token.previous\n end = index + 1\n }\n }\n\n // Help GC.\n tokenizer.events = token._tokenizer = token.next = undefined // Do head:\n\n add(childEvents.slice(0, end))\n index = -1\n adjust = 0\n\n while (++index < jumps.length) {\n gaps[adjust + jumps[index][0]] = adjust + jumps[index][1]\n adjust += jumps[index][1] - jumps[index][0] - 1\n }\n\n return gaps\n\n function add(slice) {\n var start = startPositions.pop()\n jumps.unshift([start, start + slice.length - 1])\n chunkedSplice(events, start, 2, slice)\n }\n}\n\nmodule.exports = subtokenize\n","'use strict'\n\nObject.defineProperty(exports, '__esModule', {value: true})\n\nvar assign = require('../constant/assign.js')\nvar shallow = require('../util/shallow.js')\n\nvar text = initializeFactory('text')\nvar string = initializeFactory('string')\nvar resolver = {\n resolveAll: createResolver()\n}\n\nfunction initializeFactory(field) {\n return {\n tokenize: initializeText,\n resolveAll: createResolver(\n field === 'text' ? resolveAllLineSuffixes : undefined\n )\n }\n\n function initializeText(effects) {\n var self = this\n var constructs = this.parser.constructs[field]\n var text = effects.attempt(constructs, start, notText)\n return start\n\n function start(code) {\n return atBreak(code) ? text(code) : notText(code)\n }\n\n function notText(code) {\n if (code === null) {\n effects.consume(code)\n return\n }\n\n effects.enter('data')\n effects.consume(code)\n return data\n }\n\n function data(code) {\n if (atBreak(code)) {\n effects.exit('data')\n return text(code)\n } // Data.\n\n effects.consume(code)\n return data\n }\n\n function atBreak(code) {\n var list = constructs[code]\n var index = -1\n\n if (code === null) {\n return true\n }\n\n if (list) {\n while (++index < list.length) {\n if (\n !list[index].previous ||\n list[index].previous.call(self, self.previous)\n ) {\n return true\n }\n }\n }\n }\n }\n}\n\nfunction createResolver(extraResolver) {\n return resolveAllText\n\n function resolveAllText(events, context) {\n var index = -1\n var enter // A rather boring computation (to merge adjacent `data` events) which\n // improves mm performance by 29%.\n\n while (++index <= events.length) {\n if (enter === undefined) {\n if (events[index] && events[index][1].type === 'data') {\n enter = index\n index++\n }\n } else if (!events[index] || events[index][1].type !== 'data') {\n // Dont do anything if there is one data token.\n if (index !== enter + 2) {\n events[enter][1].end = events[index - 1][1].end\n events.splice(enter + 2, index - enter - 2)\n index = enter + 2\n }\n\n enter = undefined\n }\n }\n\n return extraResolver ? extraResolver(events, context) : events\n }\n} // A rather ugly set of instructions which again looks at chunks in the input\n// stream.\n// The reason to do this here is that it is *much* faster to parse in reverse.\n// And that we cant hook into `null` to split the line suffix before an EOF.\n// To do: figure out if we can make this into a clean utility, or even in core.\n// As it will be useful for GFMs literal autolink extension (and maybe even\n// tables?)\n\nfunction resolveAllLineSuffixes(events, context) {\n var eventIndex = -1\n var chunks\n var data\n var chunk\n var index\n var bufferIndex\n var size\n var tabs\n var token\n\n while (++eventIndex <= events.length) {\n if (\n (eventIndex === events.length ||\n events[eventIndex][1].type === 'lineEnding') &&\n events[eventIndex - 1][1].type === 'data'\n ) {\n data = events[eventIndex - 1][1]\n chunks = context.sliceStream(data)\n index = chunks.length\n bufferIndex = -1\n size = 0\n tabs = undefined\n\n while (index--) {\n chunk = chunks[index]\n\n if (typeof chunk === 'string') {\n bufferIndex = chunk.length\n\n while (chunk.charCodeAt(bufferIndex - 1) === 32) {\n size++\n bufferIndex--\n }\n\n if (bufferIndex) break\n bufferIndex = -1\n } // Number\n else if (chunk === -2) {\n tabs = true\n size++\n } else if (chunk === -1);\n else {\n // Replacement character, exit.\n index++\n break\n }\n }\n\n if (size) {\n token = {\n type:\n eventIndex === events.length || tabs || size < 2\n ? 'lineSuffix'\n : 'hardBreakTrailing',\n start: {\n line: data.end.line,\n column: data.end.column - size,\n offset: data.end.offset - size,\n _index: data.start._index + index,\n _bufferIndex: index\n ? bufferIndex\n : data.start._bufferIndex + bufferIndex\n },\n end: shallow(data.end)\n }\n data.end = shallow(token.start)\n\n if (data.start.offset === data.end.offset) {\n assign(data, token)\n } else {\n events.splice(\n eventIndex,\n 0,\n ['enter', token, context],\n ['exit', token, context]\n )\n eventIndex += 2\n }\n }\n\n eventIndex++\n }\n }\n\n return events\n}\n\nexports.resolver = resolver\nexports.string = string\nexports.text = text\n","'use strict'\n\nvar hasOwnProperty = require('../constant/has-own-property.js')\nvar chunkedSplice = require('./chunked-splice.js')\nvar miniflat = require('./miniflat.js')\n\nfunction combineExtensions(extensions) {\n var all = {}\n var index = -1\n\n while (++index < extensions.length) {\n extension(all, extensions[index])\n }\n\n return all\n}\n\nfunction extension(all, extension) {\n var hook\n var left\n var right\n var code\n\n for (hook in extension) {\n left = hasOwnProperty.call(all, hook) ? all[hook] : (all[hook] = {})\n right = extension[hook]\n\n for (code in right) {\n left[code] = constructs(\n miniflat(right[code]),\n hasOwnProperty.call(left, code) ? left[code] : []\n )\n }\n }\n}\n\nfunction constructs(list, existing) {\n var index = -1\n var before = []\n\n while (++index < list.length) {\n ;(list[index].add === 'after' ? existing : before).push(list[index])\n }\n\n chunkedSplice(existing, 0, 0, before)\n return existing\n}\n\nmodule.exports = combineExtensions\n","'use strict'\n\nvar markdownLineEndingOrSpace = require('../character/markdown-line-ending-or-space.js')\nvar unicodePunctuation = require('../character/unicode-punctuation.js')\nvar unicodeWhitespace = require('../character/unicode-whitespace.js')\n\n// Classify whether a character is unicode whitespace, unicode punctuation, or\n// anything else.\n// Used for attention (emphasis, strong), whose sequences can open or close\n// based on the class of surrounding characters.\nfunction classifyCharacter(code) {\n if (\n code === null ||\n markdownLineEndingOrSpace(code) ||\n unicodeWhitespace(code)\n ) {\n return 1\n }\n\n if (unicodePunctuation(code)) {\n return 2\n }\n}\n\nmodule.exports = classifyCharacter\n","'use strict'\n\nvar regexCheck = require('../util/regex-check.js')\n\nvar asciiDigit = regexCheck(/\\d/)\n\nmodule.exports = asciiDigit\n","'use strict'\n\nvar asciiControl = require('../character/ascii-control.js')\nvar markdownLineEndingOrSpace = require('../character/markdown-line-ending-or-space.js')\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\n\n// eslint-disable-next-line max-params\nfunction destinationFactory(\n effects,\n ok,\n nok,\n type,\n literalType,\n literalMarkerType,\n rawType,\n stringType,\n max\n) {\n var limit = max || Infinity\n var balance = 0\n return start\n\n function start(code) {\n if (code === 60) {\n effects.enter(type)\n effects.enter(literalType)\n effects.enter(literalMarkerType)\n effects.consume(code)\n effects.exit(literalMarkerType)\n return destinationEnclosedBefore\n }\n\n if (asciiControl(code) || code === 41) {\n return nok(code)\n }\n\n effects.enter(type)\n effects.enter(rawType)\n effects.enter(stringType)\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return destinationRaw(code)\n }\n\n function destinationEnclosedBefore(code) {\n if (code === 62) {\n effects.enter(literalMarkerType)\n effects.consume(code)\n effects.exit(literalMarkerType)\n effects.exit(literalType)\n effects.exit(type)\n return ok\n }\n\n effects.enter(stringType)\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return destinationEnclosed(code)\n }\n\n function destinationEnclosed(code) {\n if (code === 62) {\n effects.exit('chunkString')\n effects.exit(stringType)\n return destinationEnclosedBefore(code)\n }\n\n if (code === null || code === 60 || markdownLineEnding(code)) {\n return nok(code)\n }\n\n effects.consume(code)\n return code === 92 ? destinationEnclosedEscape : destinationEnclosed\n }\n\n function destinationEnclosedEscape(code) {\n if (code === 60 || code === 62 || code === 92) {\n effects.consume(code)\n return destinationEnclosed\n }\n\n return destinationEnclosed(code)\n }\n\n function destinationRaw(code) {\n if (code === 40) {\n if (++balance > limit) return nok(code)\n effects.consume(code)\n return destinationRaw\n }\n\n if (code === 41) {\n if (!balance--) {\n effects.exit('chunkString')\n effects.exit(stringType)\n effects.exit(rawType)\n effects.exit(type)\n return ok(code)\n }\n\n effects.consume(code)\n return destinationRaw\n }\n\n if (code === null || markdownLineEndingOrSpace(code)) {\n if (balance) return nok(code)\n effects.exit('chunkString')\n effects.exit(stringType)\n effects.exit(rawType)\n effects.exit(type)\n return ok(code)\n }\n\n if (asciiControl(code)) return nok(code)\n effects.consume(code)\n return code === 92 ? destinationRawEscape : destinationRaw\n }\n\n function destinationRawEscape(code) {\n if (code === 40 || code === 41 || code === 92) {\n effects.consume(code)\n return destinationRaw\n }\n\n return destinationRaw(code)\n }\n}\n\nmodule.exports = destinationFactory\n","'use strict'\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar markdownSpace = require('../character/markdown-space.js')\n\n// eslint-disable-next-line max-params\nfunction labelFactory(effects, ok, nok, type, markerType, stringType) {\n var self = this\n var size = 0\n var data\n return start\n\n function start(code) {\n effects.enter(type)\n effects.enter(markerType)\n effects.consume(code)\n effects.exit(markerType)\n effects.enter(stringType)\n return atBreak\n }\n\n function atBreak(code) {\n if (\n code === null ||\n code === 91 ||\n (code === 93 && !data) ||\n /* c8 ignore next */\n (code === 94 &&\n /* c8 ignore next */\n !size &&\n /* c8 ignore next */\n '_hiddenFootnoteSupport' in self.parser.constructs) ||\n size > 999\n ) {\n return nok(code)\n }\n\n if (code === 93) {\n effects.exit(stringType)\n effects.enter(markerType)\n effects.consume(code)\n effects.exit(markerType)\n effects.exit(type)\n return ok\n }\n\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return atBreak\n }\n\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return label(code)\n }\n\n function label(code) {\n if (\n code === null ||\n code === 91 ||\n code === 93 ||\n markdownLineEnding(code) ||\n size++ > 999\n ) {\n effects.exit('chunkString')\n return atBreak(code)\n }\n\n effects.consume(code)\n data = data || !markdownSpace(code)\n return code === 92 ? labelEscape : label\n }\n\n function labelEscape(code) {\n if (code === 91 || code === 92 || code === 93) {\n effects.consume(code)\n size++\n return label\n }\n\n return label(code)\n }\n}\n\nmodule.exports = labelFactory\n","'use strict'\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar markdownSpace = require('../character/markdown-space.js')\nvar factorySpace = require('./factory-space.js')\n\nfunction whitespaceFactory(effects, ok) {\n var seen\n return start\n\n function start(code) {\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n seen = true\n return start\n }\n\n if (markdownSpace(code)) {\n return factorySpace(\n effects,\n start,\n seen ? 'linePrefix' : 'lineSuffix'\n )(code)\n }\n\n return ok(code)\n }\n}\n\nmodule.exports = whitespaceFactory\n","'use strict'\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar factorySpace = require('./factory-space.js')\n\nfunction titleFactory(effects, ok, nok, type, markerType, stringType) {\n var marker\n return start\n\n function start(code) {\n effects.enter(type)\n effects.enter(markerType)\n effects.consume(code)\n effects.exit(markerType)\n marker = code === 40 ? 41 : code\n return atFirstTitleBreak\n }\n\n function atFirstTitleBreak(code) {\n if (code === marker) {\n effects.enter(markerType)\n effects.consume(code)\n effects.exit(markerType)\n effects.exit(type)\n return ok\n }\n\n effects.enter(stringType)\n return atTitleBreak(code)\n }\n\n function atTitleBreak(code) {\n if (code === marker) {\n effects.exit(stringType)\n return atFirstTitleBreak(marker)\n }\n\n if (code === null) {\n return nok(code)\n } // Note: blank lines cant exist in content.\n\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return factorySpace(effects, atTitleBreak, 'linePrefix')\n }\n\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return title(code)\n }\n\n function title(code) {\n if (code === marker || code === null || markdownLineEnding(code)) {\n effects.exit('chunkString')\n return atTitleBreak(code)\n }\n\n effects.consume(code)\n return code === 92 ? titleEscape : title\n }\n\n function titleEscape(code) {\n if (code === marker || code === 92) {\n effects.consume(code)\n return title\n }\n\n return title(code)\n }\n}\n\nmodule.exports = titleFactory\n","'use strict'\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar markdownSpace = require('../character/markdown-space.js')\nvar factorySpace = require('./factory-space.js')\n\nvar thematicBreak = {\n name: 'thematicBreak',\n tokenize: tokenizeThematicBreak\n}\n\nfunction tokenizeThematicBreak(effects, ok, nok) {\n var size = 0\n var marker\n return start\n\n function start(code) {\n effects.enter('thematicBreak')\n marker = code\n return atBreak(code)\n }\n\n function atBreak(code) {\n if (code === marker) {\n effects.enter('thematicBreakSequence')\n return sequence(code)\n }\n\n if (markdownSpace(code)) {\n return factorySpace(effects, atBreak, 'whitespace')(code)\n }\n\n if (size < 3 || (code !== null && !markdownLineEnding(code))) {\n return nok(code)\n }\n\n effects.exit('thematicBreak')\n return ok(code)\n }\n\n function sequence(code) {\n if (code === marker) {\n effects.consume(code)\n size++\n return sequence\n }\n\n effects.exit('thematicBreakSequence')\n return atBreak(code)\n }\n}\n\nmodule.exports = thematicBreak\n","'use strict'\n\nmodule.exports = visitParents\n\nvar convert = require('unist-util-is/convert')\nvar color = require('./color')\n\nvar CONTINUE = true\nvar SKIP = 'skip'\nvar EXIT = false\n\nvisitParents.CONTINUE = CONTINUE\nvisitParents.SKIP = SKIP\nvisitParents.EXIT = EXIT\n\nfunction visitParents(tree, test, visitor, reverse) {\n var step\n var is\n\n if (typeof test === 'function' && typeof visitor !== 'function') {\n reverse = visitor\n visitor = test\n test = null\n }\n\n is = convert(test)\n step = reverse ? -1 : 1\n\n factory(tree, null, [])()\n\n function factory(node, index, parents) {\n var value = typeof node === 'object' && node !== null ? node : {}\n var name\n\n if (typeof value.type === 'string') {\n name =\n typeof value.tagName === 'string'\n ? value.tagName\n : typeof value.name === 'string'\n ? value.name\n : undefined\n\n visit.displayName =\n 'node (' + color(value.type + (name ? '<' + name + '>' : '')) + ')'\n }\n\n return visit\n\n function visit() {\n var grandparents = parents.concat(node)\n var result = []\n var subresult\n var offset\n\n if (!test || is(node, index, parents[parents.length - 1] || null)) {\n result = toResult(visitor(node, parents))\n\n if (result[0] === EXIT) {\n return result\n }\n }\n\n if (node.children && result[0] !== SKIP) {\n offset = (reverse ? node.children.length : -1) + step\n\n while (offset > -1 && offset < node.children.length) {\n subresult = factory(node.children[offset], offset, grandparents)()\n\n if (subresult[0] === EXIT) {\n return subresult\n }\n\n offset =\n typeof subresult[1] === 'number' ? subresult[1] : offset + step\n }\n }\n\n return result\n }\n }\n}\n\nfunction toResult(value) {\n if (value !== null && typeof value === 'object' && 'length' in value) {\n return value\n }\n\n if (typeof value === 'number') {\n return [CONTINUE, value]\n }\n\n return [value]\n}\n","'use strict'\n\nmodule.exports = one\n\nvar u = require('unist-builder')\nvar all = require('./all')\n\nvar own = {}.hasOwnProperty\n\n// Transform an unknown node.\nfunction unknown(h, node) {\n if (text(node)) {\n return h.augment(node, u('text', node.value))\n }\n\n return h(node, 'div', all(h, node))\n}\n\n// Visit a node.\nfunction one(h, node, parent) {\n var type = node && node.type\n var fn\n\n // Fail on non-nodes.\n if (!type) {\n throw new Error('Expected node, got `' + node + '`')\n }\n\n if (own.call(h.handlers, type)) {\n fn = h.handlers[type]\n } else if (h.passThrough && h.passThrough.indexOf(type) > -1) {\n fn = returnNode\n } else {\n fn = h.unknownHandler\n }\n\n return (typeof fn === 'function' ? fn : unknown)(h, node, parent)\n}\n\n// Check if the node should be renderered as a text node.\nfunction text(node) {\n var data = node.data || {}\n\n if (\n own.call(data, 'hName') ||\n own.call(data, 'hProperties') ||\n own.call(data, 'hChildren')\n ) {\n return false\n }\n\n return 'value' in node\n}\n\nfunction returnNode(h, node) {\n var clone\n\n if (node.children) {\n clone = Object.assign({}, node)\n clone.children = all(h, node)\n return clone\n }\n\n return node\n}\n","'use strict'\n\nmodule.exports = thematicBreak\n\nfunction thematicBreak(h, node) {\n return h(node, 'hr')\n}\n","'use strict'\n\nmodule.exports = list\n\nvar wrap = require('../wrap')\nvar all = require('../all')\n\nfunction list(h, node) {\n var props = {}\n var name = node.ordered ? 'ol' : 'ul'\n var items\n var index = -1\n var length\n\n if (typeof node.start === 'number' && node.start !== 1) {\n props.start = node.start\n }\n\n items = all(h, node)\n length = items.length\n\n // Like GitHub, add a class for custom styling.\n while (++index < length) {\n if (\n items[index].properties.className &&\n items[index].properties.className.indexOf('task-list-item') !== -1\n ) {\n props.className = ['contains-task-list']\n break\n }\n }\n\n return h(node, name, props, wrap(items, true))\n}\n","'use strict'\n\nmodule.exports = footnoteReference\n\nvar u = require('unist-builder')\n\nfunction footnoteReference(h, node) {\n var footnoteOrder = h.footnoteOrder\n var identifier = String(node.identifier)\n\n if (footnoteOrder.indexOf(identifier) === -1) {\n footnoteOrder.push(identifier)\n }\n\n return h(node.position, 'sup', {id: 'fnref-' + identifier}, [\n h(node, 'a', {href: '#fn-' + identifier, className: ['footnote-ref']}, [\n u('text', node.label || identifier)\n ])\n ])\n}\n","'use strict'\n\nmodule.exports = revert\n\nvar u = require('unist-builder')\nvar all = require('./all')\n\n// Return the content of a reference without definition as Markdown.\nfunction revert(h, node) {\n var subtype = node.referenceType\n var suffix = ']'\n var contents\n var head\n var tail\n\n if (subtype === 'collapsed') {\n suffix += '[]'\n } else if (subtype === 'full') {\n suffix += '[' + (node.label || node.identifier) + ']'\n }\n\n if (node.type === 'imageReference') {\n return u('text', '![' + node.alt + suffix)\n }\n\n contents = all(h, node)\n head = contents[0]\n\n if (head && head.type === 'text') {\n head.value = '[' + head.value\n } else {\n contents.unshift(u('text', '['))\n }\n\n tail = contents[contents.length - 1]\n\n if (tail && tail.type === 'text') {\n tail.value += suffix\n } else {\n contents.push(u('text', suffix))\n }\n\n return contents\n}\n","'use strict'\n\nvar xtend = require('xtend')\nvar Schema = require('./schema')\n\nmodule.exports = merge\n\nfunction merge(definitions) {\n var length = definitions.length\n var property = []\n var normal = []\n var index = -1\n var info\n var space\n\n while (++index < length) {\n info = definitions[index]\n property.push(info.property)\n normal.push(info.normal)\n space = info.space\n }\n\n return new Schema(\n xtend.apply(null, property),\n xtend.apply(null, normal),\n space\n )\n}\n","'use strict'\n\nmodule.exports = Schema\n\nvar proto = Schema.prototype\n\nproto.space = null\nproto.normal = {}\nproto.property = {}\n\nfunction Schema(property, normal, space) {\n this.property = property\n this.normal = normal\n\n if (space) {\n this.space = space\n }\n}\n","'use strict'\n\nvar create = require('./util/create')\n\nmodule.exports = create({\n space: 'xlink',\n transform: xlinkTransform,\n properties: {\n xLinkActuate: null,\n xLinkArcRole: null,\n xLinkHref: null,\n xLinkRole: null,\n xLinkShow: null,\n xLinkTitle: null,\n xLinkType: null\n }\n})\n\nfunction xlinkTransform(_, prop) {\n return 'xlink:' + prop.slice(5).toLowerCase()\n}\n","'use strict'\n\nvar Info = require('./info')\nvar types = require('./types')\n\nmodule.exports = DefinedInfo\n\nDefinedInfo.prototype = new Info()\nDefinedInfo.prototype.defined = true\n\nvar checks = [\n 'boolean',\n 'booleanish',\n 'overloadedBoolean',\n 'number',\n 'commaSeparated',\n 'spaceSeparated',\n 'commaOrSpaceSeparated'\n]\nvar checksLength = checks.length\n\nfunction DefinedInfo(property, attribute, mask, space) {\n var index = -1\n var check\n\n mark(this, 'space', space)\n\n Info.call(this, property, attribute)\n\n while (++index < checksLength) {\n check = checks[index]\n mark(this, check, (mask & types[check]) === types[check])\n }\n}\n\nfunction mark(values, key, value) {\n if (value) {\n values[key] = value\n }\n}\n","'use strict'\n\nmodule.exports = Info\n\nvar proto = Info.prototype\n\nproto.space = null\nproto.attribute = null\nproto.property = null\nproto.boolean = false\nproto.booleanish = false\nproto.overloadedBoolean = false\nproto.number = false\nproto.commaSeparated = false\nproto.spaceSeparated = false\nproto.commaOrSpaceSeparated = false\nproto.mustUseProperty = false\nproto.defined = false\n\nfunction Info(property, attribute) {\n this.property = property\n this.attribute = attribute\n}\n","'use strict'\n\nvar create = require('./util/create')\n\nmodule.exports = create({\n space: 'xml',\n transform: xmlTransform,\n properties: {\n xmlLang: null,\n xmlBase: null,\n xmlSpace: null\n }\n})\n\nfunction xmlTransform(_, prop) {\n return 'xml:' + prop.slice(3).toLowerCase()\n}\n","'use strict'\n\nvar create = require('./util/create')\nvar caseInsensitiveTransform = require('./util/case-insensitive-transform')\n\nmodule.exports = create({\n space: 'xmlns',\n attributes: {\n xmlnsxlink: 'xmlns:xlink'\n },\n transform: caseInsensitiveTransform,\n properties: {\n xmlns: null,\n xmlnsXLink: null\n }\n})\n","'use strict'\n\nvar caseSensitiveTransform = require('./case-sensitive-transform')\n\nmodule.exports = caseInsensitiveTransform\n\nfunction caseInsensitiveTransform(attributes, property) {\n return caseSensitiveTransform(attributes, property.toLowerCase())\n}\n","'use strict'\n\nmodule.exports = caseSensitiveTransform\n\nfunction caseSensitiveTransform(attributes, attribute) {\n return attribute in attributes ? attributes[attribute] : attribute\n}\n","'use strict'\n\nvar types = require('./util/types')\nvar create = require('./util/create')\n\nvar booleanish = types.booleanish\nvar number = types.number\nvar spaceSeparated = types.spaceSeparated\n\nmodule.exports = create({\n transform: ariaTransform,\n properties: {\n ariaActiveDescendant: null,\n ariaAtomic: booleanish,\n ariaAutoComplete: null,\n ariaBusy: booleanish,\n ariaChecked: booleanish,\n ariaColCount: number,\n ariaColIndex: number,\n ariaColSpan: number,\n ariaControls: spaceSeparated,\n ariaCurrent: null,\n ariaDescribedBy: spaceSeparated,\n ariaDetails: null,\n ariaDisabled: booleanish,\n ariaDropEffect: spaceSeparated,\n ariaErrorMessage: null,\n ariaExpanded: booleanish,\n ariaFlowTo: spaceSeparated,\n ariaGrabbed: booleanish,\n ariaHasPopup: null,\n ariaHidden: booleanish,\n ariaInvalid: null,\n ariaKeyShortcuts: null,\n ariaLabel: null,\n ariaLabelledBy: spaceSeparated,\n ariaLevel: number,\n ariaLive: null,\n ariaModal: booleanish,\n ariaMultiLine: booleanish,\n ariaMultiSelectable: booleanish,\n ariaOrientation: null,\n ariaOwns: spaceSeparated,\n ariaPlaceholder: null,\n ariaPosInSet: number,\n ariaPressed: booleanish,\n ariaReadOnly: booleanish,\n ariaRelevant: null,\n ariaRequired: booleanish,\n ariaRoleDescription: spaceSeparated,\n ariaRowCount: number,\n ariaRowIndex: number,\n ariaRowSpan: number,\n ariaSelected: booleanish,\n ariaSetSize: number,\n ariaSort: null,\n ariaValueMax: number,\n ariaValueMin: number,\n ariaValueNow: number,\n ariaValueText: null,\n role: null\n }\n})\n\nfunction ariaTransform(_, prop) {\n return prop === 'role' ? prop : 'aria-' + prop.slice(4).toLowerCase()\n}\n","var parse = require('inline-style-parser');\n\n/**\n * Parses inline style to object.\n *\n * @example\n * // returns { 'line-height': '42' }\n * StyleToObject('line-height: 42;');\n *\n * @param {String} style - The inline style.\n * @param {Function} [iterator] - The iterator function.\n * @return {null|Object}\n */\nfunction StyleToObject(style, iterator) {\n var output = null;\n if (!style || typeof style !== 'string') {\n return output;\n }\n\n var declaration;\n var declarations = parse(style);\n var hasIterator = typeof iterator === 'function';\n var property;\n var value;\n\n for (var i = 0, len = declarations.length; i < len; i++) {\n declaration = declarations[i];\n property = declaration.property;\n value = declaration.value;\n\n if (hasIterator) {\n iterator(property, value, declaration);\n } else if (value) {\n output || (output = {});\n output[property] = value;\n }\n }\n\n return output;\n}\n\nmodule.exports = StyleToObject;\n","module.exports = phrasing\n\nfunction phrasing(parent, context, safeOptions) {\n var children = parent.children || []\n var results = []\n var index = -1\n var before = safeOptions.before\n var after\n var handle\n var child\n\n while (++index < children.length) {\n child = children[index]\n\n if (index + 1 < children.length) {\n handle = context.handle.handlers[children[index + 1].type]\n if (handle && handle.peek) handle = handle.peek\n after = handle\n ? handle(children[index + 1], parent, context, {\n before: '',\n after: ''\n }).charAt(0)\n : ''\n } else {\n after = safeOptions.after\n }\n\n // In some cases, html (text) can be found in phrasing right after an eol.\n // When wed serialize that, in most cases that would be seen as html\n // (flow).\n // As we cant escape or so to prevent it from happening, we take a somewhat\n // reasonable approach: replace that eol with a space.\n // See: <https://github.com/syntax-tree/mdast-util-to-markdown/issues/15>\n if (\n results.length > 0 &&\n (before === '\\r' || before === '\\n') &&\n child.type === 'html'\n ) {\n results[results.length - 1] = results[results.length - 1].replace(\n /(\\r?\\n|\\r)$/,\n ' '\n )\n before = ' '\n }\n\n results.push(\n context.handle(child, parent, context, {\n before: before,\n after: after\n })\n )\n\n before = results[results.length - 1].slice(-1)\n }\n\n return results.join('')\n}\n","'use strict';\n\nconst Mixin = require('../../utils/mixin');\nconst Tokenizer = require('../../tokenizer');\nconst PositionTrackingPreprocessorMixin = require('../position-tracking/preprocessor-mixin');\n\nclass LocationInfoTokenizerMixin extends Mixin {\n constructor(tokenizer) {\n super(tokenizer);\n\n this.tokenizer = tokenizer;\n this.posTracker = Mixin.install(tokenizer.preprocessor, PositionTrackingPreprocessorMixin);\n this.currentAttrLocation = null;\n this.ctLoc = null;\n }\n\n _getCurrentLocation() {\n return {\n startLine: this.posTracker.line,\n startCol: this.posTracker.col,\n startOffset: this.posTracker.offset,\n endLine: -1,\n endCol: -1,\n endOffset: -1\n };\n }\n\n _attachCurrentAttrLocationInfo() {\n this.currentAttrLocation.endLine = this.posTracker.line;\n this.currentAttrLocation.endCol = this.posTracker.col;\n this.currentAttrLocation.endOffset = this.posTracker.offset;\n\n const currentToken = this.tokenizer.currentToken;\n const currentAttr = this.tokenizer.currentAttr;\n\n if (!currentToken.location.attrs) {\n currentToken.location.attrs = Object.create(null);\n }\n\n currentToken.location.attrs[currentAttr.name] = this.currentAttrLocation;\n }\n\n _getOverriddenMethods(mxn, orig) {\n const methods = {\n _createStartTagToken() {\n orig._createStartTagToken.call(this);\n this.currentToken.location = mxn.ctLoc;\n },\n\n _createEndTagToken() {\n orig._createEndTagToken.call(this);\n this.currentToken.location = mxn.ctLoc;\n },\n\n _createCommentToken() {\n orig._createCommentToken.call(this);\n this.currentToken.location = mxn.ctLoc;\n },\n\n _createDoctypeToken(initialName) {\n orig._createDoctypeToken.call(this, initialName);\n this.currentToken.location = mxn.ctLoc;\n },\n\n _createCharacterToken(type, ch) {\n orig._createCharacterToken.call(this, type, ch);\n this.currentCharacterToken.location = mxn.ctLoc;\n },\n\n _createEOFToken() {\n orig._createEOFToken.call(this);\n this.currentToken.location = mxn._getCurrentLocation();\n },\n\n _createAttr(attrNameFirstCh) {\n orig._createAttr.call(this, attrNameFirstCh);\n mxn.currentAttrLocation = mxn._getCurrentLocation();\n },\n\n _leaveAttrName(toState) {\n orig._leaveAttrName.call(this, toState);\n mxn._attachCurrentAttrLocationInfo();\n },\n\n _leaveAttrValue(toState) {\n orig._leaveAttrValue.call(this, toState);\n mxn._attachCurrentAttrLocationInfo();\n },\n\n _emitCurrentToken() {\n const ctLoc = this.currentToken.location;\n\n //NOTE: if we have pending character token make it's end location equal to the\n //current token's start location.\n if (this.currentCharacterToken) {\n this.currentCharacterToken.location.endLine = ctLoc.startLine;\n this.currentCharacterToken.location.endCol = ctLoc.startCol;\n this.currentCharacterToken.location.endOffset = ctLoc.startOffset;\n }\n\n if (this.currentToken.type === Tokenizer.EOF_TOKEN) {\n ctLoc.endLine = ctLoc.startLine;\n ctLoc.endCol = ctLoc.startCol;\n ctLoc.endOffset = ctLoc.startOffset;\n } else {\n ctLoc.endLine = mxn.posTracker.line;\n ctLoc.endCol = mxn.posTracker.col + 1;\n ctLoc.endOffset = mxn.posTracker.offset + 1;\n }\n\n orig._emitCurrentToken.call(this);\n },\n\n _emitCurrentCharacterToken() {\n const ctLoc = this.currentCharacterToken && this.currentCharacterToken.location;\n\n //NOTE: if we have character token and it's location wasn't set in the _emitCurrentToken(),\n //then set it's location at the current preprocessor position.\n //We don't need to increment preprocessor position, since character token\n //emission is always forced by the start of the next character token here.\n //So, we already have advanced position.\n if (ctLoc && ctLoc.endOffset === -1) {\n ctLoc.endLine = mxn.posTracker.line;\n ctLoc.endCol = mxn.posTracker.col;\n ctLoc.endOffset = mxn.posTracker.offset;\n }\n\n orig._emitCurrentCharacterToken.call(this);\n }\n };\n\n //NOTE: patch initial states for each mode to obtain token start position\n Object.keys(Tokenizer.MODE).forEach(modeName => {\n const state = Tokenizer.MODE[modeName];\n\n methods[state] = function(cp) {\n mxn.ctLoc = mxn._getCurrentLocation();\n orig[state].call(this, cp);\n };\n });\n\n return methods;\n }\n}\n\nmodule.exports = LocationInfoTokenizerMixin;\n","'use strict';\n\nconst Mixin = require('../../utils/mixin');\n\nclass PositionTrackingPreprocessorMixin extends Mixin {\n constructor(preprocessor) {\n super(preprocessor);\n\n this.preprocessor = preprocessor;\n this.isEol = false;\n this.lineStartPos = 0;\n this.droppedBufferSize = 0;\n\n this.offset = 0;\n this.col = 0;\n this.line = 1;\n }\n\n _getOverriddenMethods(mxn, orig) {\n return {\n advance() {\n const pos = this.pos + 1;\n const ch = this.html[pos];\n\n //NOTE: LF should be in the last column of the line\n if (mxn.isEol) {\n mxn.isEol = false;\n mxn.line++;\n mxn.lineStartPos = pos;\n }\n\n if (ch === '\\n' || (ch === '\\r' && this.html[pos + 1] !== '\\n')) {\n mxn.isEol = true;\n }\n\n mxn.col = pos - mxn.lineStartPos + 1;\n mxn.offset = mxn.droppedBufferSize + pos;\n\n return orig.advance.call(this);\n },\n\n retreat() {\n orig.retreat.call(this);\n\n mxn.isEol = false;\n mxn.col = this.pos - mxn.lineStartPos + 1;\n },\n\n dropParsedChunk() {\n const prevPos = this.pos;\n\n orig.dropParsedChunk.call(this);\n\n const reduction = prevPos - this.pos;\n\n mxn.lineStartPos -= reduction;\n mxn.droppedBufferSize += reduction;\n mxn.offset = mxn.droppedBufferSize + this.pos;\n }\n };\n }\n}\n\nmodule.exports = PositionTrackingPreprocessorMixin;\n","'use strict'\n\nvar find = require('property-information/find')\nvar normalize = require('property-information/normalize')\nvar parseSelector = require('hast-util-parse-selector')\nvar spaces = require('space-separated-tokens').parse\nvar commas = require('comma-separated-tokens').parse\n\nmodule.exports = factory\n\nvar own = {}.hasOwnProperty\n\nfunction factory(schema, defaultTagName, caseSensitive) {\n var adjust = caseSensitive ? createAdjustMap(caseSensitive) : null\n\n return h\n\n // Hyperscript compatible DSL for creating virtual hast trees.\n function h(selector, properties) {\n var node = parseSelector(selector, defaultTagName)\n var children = Array.prototype.slice.call(arguments, 2)\n var name = node.tagName.toLowerCase()\n var property\n\n node.tagName = adjust && own.call(adjust, name) ? adjust[name] : name\n\n if (properties && isChildren(properties, node)) {\n children.unshift(properties)\n properties = null\n }\n\n if (properties) {\n for (property in properties) {\n addProperty(node.properties, property, properties[property])\n }\n }\n\n addChild(node.children, children)\n\n if (node.tagName === 'template') {\n node.content = {type: 'root', children: node.children}\n node.children = []\n }\n\n return node\n }\n\n function addProperty(properties, key, value) {\n var info\n var property\n var result\n\n // Ignore nullish and NaN values.\n if (value === null || value === undefined || value !== value) {\n return\n }\n\n info = find(schema, key)\n property = info.property\n result = value\n\n // Handle list values.\n if (typeof result === 'string') {\n if (info.spaceSeparated) {\n result = spaces(result)\n } else if (info.commaSeparated) {\n result = commas(result)\n } else if (info.commaOrSpaceSeparated) {\n result = spaces(commas(result).join(' '))\n }\n }\n\n // Accept `object` on style.\n if (property === 'style' && typeof value !== 'string') {\n result = style(result)\n }\n\n // Class-names (which can be added both on the `selector` and here).\n if (property === 'className' && properties.className) {\n result = properties.className.concat(result)\n }\n\n properties[property] = parsePrimitives(info, property, result)\n }\n}\n\nfunction isChildren(value, node) {\n return (\n typeof value === 'string' ||\n 'length' in value ||\n isNode(node.tagName, value)\n )\n}\n\nfunction isNode(tagName, value) {\n var type = value.type\n\n if (tagName === 'input' || !type || typeof type !== 'string') {\n return false\n }\n\n if (typeof value.children === 'object' && 'length' in value.children) {\n return true\n }\n\n type = type.toLowerCase()\n\n if (tagName === 'button') {\n return (\n type !== 'menu' &&\n type !== 'submit' &&\n type !== 'reset' &&\n type !== 'button'\n )\n }\n\n return 'value' in value\n}\n\nfunction addChild(nodes, value) {\n var index\n var length\n\n if (typeof value === 'string' || typeof value === 'number') {\n nodes.push({type: 'text', value: String(value)})\n return\n }\n\n if (typeof value === 'object' && 'length' in value) {\n index = -1\n length = value.length\n\n while (++index < length) {\n addChild(nodes, value[index])\n }\n\n return\n }\n\n if (typeof value !== 'object' || !('type' in value)) {\n throw new Error('Expected node, nodes, or string, got `' + value + '`')\n }\n\n nodes.push(value)\n}\n\n// Parse a (list of) primitives.\nfunction parsePrimitives(info, name, value) {\n var index\n var length\n var result\n\n if (typeof value !== 'object' || !('length' in value)) {\n return parsePrimitive(info, name, value)\n }\n\n length = value.length\n index = -1\n result = []\n\n while (++index < length) {\n result[index] = parsePrimitive(info, name, value[index])\n }\n\n return result\n}\n\n// Parse a single primitives.\nfunction parsePrimitive(info, name, value) {\n var result = value\n\n if (info.number || info.positiveNumber) {\n if (!isNaN(result) && result !== '') {\n result = Number(result)\n }\n } else if (info.boolean || info.overloadedBoolean) {\n // Accept `boolean` and `string`.\n if (\n typeof result === 'string' &&\n (result === '' || normalize(value) === normalize(name))\n ) {\n result = true\n }\n }\n\n return result\n}\n\nfunction style(value) {\n var result = []\n var key\n\n for (key in value) {\n result.push([key, value[key]].join(': '))\n }\n\n return result.join('; ')\n}\n\nfunction createAdjustMap(values) {\n var length = values.length\n var index = -1\n var result = {}\n var value\n\n while (++index < length) {\n value = values[index]\n result[value.toLowerCase()] = value\n }\n\n return result\n}\n","'use strict'\n\nmodule.exports = require('./html')\n","'use strict'\n\nmodule.exports = factory\n\nvar noop = Function.prototype\nvar own = {}.hasOwnProperty\n\n// Handle values based on a property.\nfunction factory(key, options) {\n var settings = options || {}\n\n function one(value) {\n var fn = one.invalid\n var handlers = one.handlers\n\n if (value && own.call(value, key)) {\n fn = own.call(handlers, value[key]) ? handlers[value[key]] : one.unknown\n }\n\n return (fn || noop).apply(this, arguments)\n }\n\n one.handlers = settings.handlers || {}\n one.invalid = settings.invalid\n one.unknown = settings.unknown\n\n return one\n}\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","'use strict'\n\nmodule.exports = decimal\n\n// Check if the given character code, or the character code at the first\n// character, is decimal.\nfunction decimal(character) {\n var code = typeof character === 'string' ? character.charCodeAt(0) : character\n\n return code >= 48 && code <= 57 /* 0-9 */\n}\n","'use strict'\nvar refractorC = require('./c.js')\nmodule.exports = cpp\ncpp.displayName = 'cpp'\ncpp.aliases = []\nfunction cpp(Prism) {\n Prism.register(refractorC)\n ;(function (Prism) {\n var keyword = /\\b(?:alignas|alignof|asm|auto|bool|break|case|catch|char|char8_t|char16_t|char32_t|class|compl|concept|const|consteval|constexpr|constinit|const_cast|continue|co_await|co_return|co_yield|decltype|default|delete|do|double|dynamic_cast|else|enum|explicit|export|extern|float|for|friend|goto|if|inline|int|int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_t|long|mutable|namespace|new|noexcept|nullptr|operator|private|protected|public|register|reinterpret_cast|requires|return|short|signed|sizeof|static|static_assert|static_cast|struct|switch|template|this|thread_local|throw|try|typedef|typeid|typename|union|unsigned|using|virtual|void|volatile|wchar_t|while)\\b/\n Prism.languages.cpp = Prism.languages.extend('c', {\n 'class-name': [\n {\n pattern: RegExp(\n /(\\b(?:class|concept|enum|struct|typename)\\s+)(?!<keyword>)\\w+/.source.replace(\n /<keyword>/g,\n function () {\n return keyword.source\n }\n )\n ),\n lookbehind: true\n }, // This is intended to capture the class name of method implementations like:\n // void foo::bar() const {}\n // However! The `foo` in the above example could also be a namespace, so we only capture the class name if\n // it starts with an uppercase letter. This approximation should give decent results.\n /\\b[A-Z]\\w*(?=\\s*::\\s*\\w+\\s*\\()/, // This will capture the class name before destructors like:\n // Foo::~Foo() {}\n /\\b[A-Z_]\\w*(?=\\s*::\\s*~\\w+\\s*\\()/i, // This also intends to capture the class name of method implementations but here the class has template\n // parameters, so it can't be a namespace (until C++ adds generic namespaces).\n /\\w+(?=\\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>\\s*::\\s*\\w+\\s*\\()/\n ],\n keyword: keyword,\n number: {\n pattern: /(?:\\b0b[01']+|\\b0x(?:[\\da-f']+(?:\\.[\\da-f']*)?|\\.[\\da-f']+)(?:p[+-]?[\\d']+)?|(?:\\b[\\d']+(?:\\.[\\d']*)?|\\B\\.[\\d']+)(?:e[+-]?[\\d']+)?)[ful]{0,4}/i,\n greedy: true\n },\n operator: />>=?|<<=?|->|([-+&|:])\\1|[?:~]|<=>|[-+*/%&|^!=<>]=?|\\b(?:and|and_eq|bitand|bitor|not|not_eq|or|or_eq|xor|xor_eq)\\b/,\n boolean: /\\b(?:true|false)\\b/\n })\n Prism.languages.insertBefore('cpp', 'string', {\n 'raw-string': {\n pattern: /R\"([^()\\\\ ]{0,16})\\([\\s\\S]*?\\)\\1\"/,\n alias: 'string',\n greedy: true\n }\n })\n Prism.languages.insertBefore('cpp', 'class-name', {\n // the base clause is an optional list of parent classes\n // https://en.cppreference.com/w/cpp/language/class\n 'base-clause': {\n pattern: /(\\b(?:class|struct)\\s+\\w+\\s*:\\s*)[^;{}\"'\\s]+(?:\\s+[^;{}\"'\\s]+)*(?=\\s*[;{])/,\n lookbehind: true,\n greedy: true,\n inside: Prism.languages.extend('cpp', {})\n }\n })\n Prism.languages.insertBefore(\n 'inside',\n 'operator',\n {\n // All untokenized words that are not namespaces should be class names\n 'class-name': /\\b[a-z_]\\w*\\b(?!\\s*::)/i\n },\n Prism.languages.cpp['base-clause']\n )\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = bash\nbash.displayName = 'bash'\nbash.aliases = ['shell']\nfunction bash(Prism) {\n ;(function (Prism) {\n // $ set | grep '^[A-Z][^[:space:]]*=' | cut -d= -f1 | tr '\\n' '|'\n // + LC_ALL, RANDOM, REPLY, SECONDS.\n // + make sure PS1..4 are here as they are not always set,\n // - some useless things.\n var envVars =\n '\\\\b(?:BASH|BASHOPTS|BASH_ALIASES|BASH_ARGC|BASH_ARGV|BASH_CMDS|BASH_COMPLETION_COMPAT_DIR|BASH_LINENO|BASH_REMATCH|BASH_SOURCE|BASH_VERSINFO|BASH_VERSION|COLORTERM|COLUMNS|COMP_WORDBREAKS|DBUS_SESSION_BUS_ADDRESS|DEFAULTS_PATH|DESKTOP_SESSION|DIRSTACK|DISPLAY|EUID|GDMSESSION|GDM_LANG|GNOME_KEYRING_CONTROL|GNOME_KEYRING_PID|GPG_AGENT_INFO|GROUPS|HISTCONTROL|HISTFILE|HISTFILESIZE|HISTSIZE|HOME|HOSTNAME|HOSTTYPE|IFS|INSTANCE|JOB|LANG|LANGUAGE|LC_ADDRESS|LC_ALL|LC_IDENTIFICATION|LC_MEASUREMENT|LC_MONETARY|LC_NAME|LC_NUMERIC|LC_PAPER|LC_TELEPHONE|LC_TIME|LESSCLOSE|LESSOPEN|LINES|LOGNAME|LS_COLORS|MACHTYPE|MAILCHECK|MANDATORY_PATH|NO_AT_BRIDGE|OLDPWD|OPTERR|OPTIND|ORBIT_SOCKETDIR|OSTYPE|PAPERSIZE|PATH|PIPESTATUS|PPID|PS1|PS2|PS3|PS4|PWD|RANDOM|REPLY|SECONDS|SELINUX_INIT|SESSION|SESSIONTYPE|SESSION_MANAGER|SHELL|SHELLOPTS|SHLVL|SSH_AUTH_SOCK|TERM|UID|UPSTART_EVENTS|UPSTART_INSTANCE|UPSTART_JOB|UPSTART_SESSION|USER|WINDOWID|XAUTHORITY|XDG_CONFIG_DIRS|XDG_CURRENT_DESKTOP|XDG_DATA_DIRS|XDG_GREETER_DATA_DIR|XDG_MENU_PREFIX|XDG_RUNTIME_DIR|XDG_SEAT|XDG_SEAT_PATH|XDG_SESSION_DESKTOP|XDG_SESSION_ID|XDG_SESSION_PATH|XDG_SESSION_TYPE|XDG_VTNR|XMODIFIERS)\\\\b'\n var commandAfterHeredoc = {\n pattern: /(^([\"']?)\\w+\\2)[ \\t]+\\S.*/,\n lookbehind: true,\n alias: 'punctuation',\n // this looks reasonably well in all themes\n inside: null // see below\n }\n var insideString = {\n bash: commandAfterHeredoc,\n environment: {\n pattern: RegExp('\\\\$' + envVars),\n alias: 'constant'\n },\n variable: [\n // [0]: Arithmetic Environment\n {\n pattern: /\\$?\\(\\([\\s\\S]+?\\)\\)/,\n greedy: true,\n inside: {\n // If there is a $ sign at the beginning highlight $(( and )) as variable\n variable: [\n {\n pattern: /(^\\$\\(\\([\\s\\S]+)\\)\\)/,\n lookbehind: true\n },\n /^\\$\\(\\(/\n ],\n number: /\\b0x[\\dA-Fa-f]+\\b|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:[Ee]-?\\d+)?/,\n // Operators according to https://www.gnu.org/software/bash/manual/bashref.html#Shell-Arithmetic\n operator: /--?|-=|\\+\\+?|\\+=|!=?|~|\\*\\*?|\\*=|\\/=?|%=?|<<=?|>>=?|<=?|>=?|==?|&&?|&=|\\^=?|\\|\\|?|\\|=|\\?|:/,\n // If there is no $ sign at the beginning highlight (( and )) as punctuation\n punctuation: /\\(\\(?|\\)\\)?|,|;/\n }\n }, // [1]: Command Substitution\n {\n pattern: /\\$\\((?:\\([^)]+\\)|[^()])+\\)|`[^`]+`/,\n greedy: true,\n inside: {\n variable: /^\\$\\(|^`|\\)$|`$/\n }\n }, // [2]: Brace expansion\n {\n pattern: /\\$\\{[^}]+\\}/,\n greedy: true,\n inside: {\n operator: /:[-=?+]?|[!\\/]|##?|%%?|\\^\\^?|,,?/,\n punctuation: /[\\[\\]]/,\n environment: {\n pattern: RegExp('(\\\\{)' + envVars),\n lookbehind: true,\n alias: 'constant'\n }\n }\n },\n /\\$(?:\\w+|[#?*!@$])/\n ],\n // Escape sequences from echo and printf's manuals, and escaped quotes.\n entity: /\\\\(?:[abceEfnrtv\\\\\"]|O?[0-7]{1,3}|x[0-9a-fA-F]{1,2}|u[0-9a-fA-F]{4}|U[0-9a-fA-F]{8})/\n }\n Prism.languages.bash = {\n shebang: {\n pattern: /^#!\\s*\\/.*/,\n alias: 'important'\n },\n comment: {\n pattern: /(^|[^\"{\\\\$])#.*/,\n lookbehind: true\n },\n 'function-name': [\n // a) function foo {\n // b) foo() {\n // c) function foo() {\n // but not “foo {”\n {\n // a) and c)\n pattern: /(\\bfunction\\s+)\\w+(?=(?:\\s*\\(?:\\s*\\))?\\s*\\{)/,\n lookbehind: true,\n alias: 'function'\n },\n {\n // b)\n pattern: /\\b\\w+(?=\\s*\\(\\s*\\)\\s*\\{)/,\n alias: 'function'\n }\n ],\n // Highlight variable names as variables in for and select beginnings.\n 'for-or-select': {\n pattern: /(\\b(?:for|select)\\s+)\\w+(?=\\s+in\\s)/,\n alias: 'variable',\n lookbehind: true\n },\n // Highlight variable names as variables in the left-hand part\n // of assignments (“=” and “+=”).\n 'assign-left': {\n pattern: /(^|[\\s;|&]|[<>]\\()\\w+(?=\\+?=)/,\n inside: {\n environment: {\n pattern: RegExp('(^|[\\\\s;|&]|[<>]\\\\()' + envVars),\n lookbehind: true,\n alias: 'constant'\n }\n },\n alias: 'variable',\n lookbehind: true\n },\n string: [\n // Support for Here-documents https://en.wikipedia.org/wiki/Here_document\n {\n pattern: /((?:^|[^<])<<-?\\s*)(\\w+?)\\s[\\s\\S]*?(?:\\r?\\n|\\r)\\2/,\n lookbehind: true,\n greedy: true,\n inside: insideString\n }, // Here-document with quotes around the tag\n // → No expansion (so no “inside”).\n {\n pattern: /((?:^|[^<])<<-?\\s*)([\"'])(\\w+)\\2\\s[\\s\\S]*?(?:\\r?\\n|\\r)\\3/,\n lookbehind: true,\n greedy: true,\n inside: {\n bash: commandAfterHeredoc\n }\n }, // “Normal” string\n {\n pattern: /(^|[^\\\\](?:\\\\\\\\)*)([\"'])(?:\\\\[\\s\\S]|\\$\\([^)]+\\)|\\$(?!\\()|`[^`]+`|(?!\\2)[^\\\\`$])*\\2/,\n lookbehind: true,\n greedy: true,\n inside: insideString\n }\n ],\n environment: {\n pattern: RegExp('\\\\$?' + envVars),\n alias: 'constant'\n },\n variable: insideString.variable,\n function: {\n pattern: /(^|[\\s;|&]|[<>]\\()(?:add|apropos|apt|aptitude|apt-cache|apt-get|aspell|automysqlbackup|awk|basename|bash|bc|bconsole|bg|bzip2|cal|cat|cfdisk|chgrp|chkconfig|chmod|chown|chroot|cksum|clear|cmp|column|comm|composer|cp|cron|crontab|csplit|curl|cut|date|dc|dd|ddrescue|debootstrap|df|diff|diff3|dig|dir|dircolors|dirname|dirs|dmesg|du|egrep|eject|env|ethtool|expand|expect|expr|fdformat|fdisk|fg|fgrep|file|find|fmt|fold|format|free|fsck|ftp|fuser|gawk|git|gparted|grep|groupadd|groupdel|groupmod|groups|grub-mkconfig|gzip|halt|head|hg|history|host|hostname|htop|iconv|id|ifconfig|ifdown|ifup|import|install|ip|jobs|join|kill|killall|less|link|ln|locate|logname|logrotate|look|lpc|lpr|lprint|lprintd|lprintq|lprm|ls|lsof|lynx|make|man|mc|mdadm|mkconfig|mkdir|mke2fs|mkfifo|mkfs|mkisofs|mknod|mkswap|mmv|more|most|mount|mtools|mtr|mutt|mv|nano|nc|netstat|nice|nl|nohup|notify-send|npm|nslookup|op|open|parted|passwd|paste|pathchk|ping|pkill|pnpm|popd|pr|printcap|printenv|ps|pushd|pv|quota|quotacheck|quotactl|ram|rar|rcp|reboot|remsync|rename|renice|rev|rm|rmdir|rpm|rsync|scp|screen|sdiff|sed|sendmail|seq|service|sftp|sh|shellcheck|shuf|shutdown|sleep|slocate|sort|split|ssh|stat|strace|su|sudo|sum|suspend|swapon|sync|tac|tail|tar|tee|time|timeout|top|touch|tr|traceroute|tsort|tty|umount|uname|unexpand|uniq|units|unrar|unshar|unzip|update-grub|uptime|useradd|userdel|usermod|users|uudecode|uuencode|v|vdir|vi|vim|virsh|vmstat|wait|watch|wc|wget|whereis|which|who|whoami|write|xargs|xdg-open|yarn|yes|zenity|zip|zsh|zypper)(?=$|[)\\s;|&])/,\n lookbehind: true\n },\n keyword: {\n pattern: /(^|[\\s;|&]|[<>]\\()(?:if|then|else|elif|fi|for|while|in|case|esac|function|select|do|done|until)(?=$|[)\\s;|&])/,\n lookbehind: true\n },\n // https://www.gnu.org/software/bash/manual/html_node/Shell-Builtin-Commands.html\n builtin: {\n pattern: /(^|[\\s;|&]|[<>]\\()(?:\\.|:|break|cd|continue|eval|exec|exit|export|getopts|hash|pwd|readonly|return|shift|test|times|trap|umask|unset|alias|bind|builtin|caller|command|declare|echo|enable|help|let|local|logout|mapfile|printf|read|readarray|source|type|typeset|ulimit|unalias|set|shopt)(?=$|[)\\s;|&])/,\n lookbehind: true,\n // Alias added to make those easier to distinguish from strings.\n alias: 'class-name'\n },\n boolean: {\n pattern: /(^|[\\s;|&]|[<>]\\()(?:true|false)(?=$|[)\\s;|&])/,\n lookbehind: true\n },\n 'file-descriptor': {\n pattern: /\\B&\\d\\b/,\n alias: 'important'\n },\n operator: {\n // Lots of redirections here, but not just that.\n pattern: /\\d?<>|>\\||\\+=|==?|!=?|=~|<<[<-]?|[&\\d]?>>|\\d?[<>]&?|&[>&]?|\\|[&|]?|<=?|>=?/,\n inside: {\n 'file-descriptor': {\n pattern: /^\\d/,\n alias: 'important'\n }\n }\n },\n punctuation: /\\$?\\(\\(?|\\)\\)?|\\.\\.|[{}[\\];\\\\]/,\n number: {\n pattern: /(^|\\s)(?:[1-9]\\d*|0)(?:[.,]\\d+)?\\b/,\n lookbehind: true\n }\n }\n commandAfterHeredoc.inside = Prism.languages.bash\n /* Patterns in command substitution. */\n var toBeCopied = [\n 'comment',\n 'function-name',\n 'for-or-select',\n 'assign-left',\n 'string',\n 'environment',\n 'function',\n 'keyword',\n 'builtin',\n 'boolean',\n 'file-descriptor',\n 'operator',\n 'punctuation',\n 'number'\n ]\n var inside = insideString.variable[1].inside\n for (var i = 0; i < toBeCopied.length; i++) {\n inside[toBeCopied[i]] = Prism.languages.bash[toBeCopied[i]]\n }\n Prism.languages.shell = Prism.languages.bash\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = basic\nbasic.displayName = 'basic'\nbasic.aliases = []\nfunction basic(Prism) {\n Prism.languages.basic = {\n comment: {\n pattern: /(?:!|REM\\b).+/i,\n inside: {\n keyword: /^REM/i\n }\n },\n string: {\n pattern: /\"(?:\"\"|[!#$%&'()*,\\/:;<=>?^_ +\\-.A-Z\\d])*\"/i,\n greedy: true\n },\n number: /(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:E[+-]?\\d+)?/i,\n keyword: /\\b(?:AS|BEEP|BLOAD|BSAVE|CALL(?: ABSOLUTE)?|CASE|CHAIN|CHDIR|CLEAR|CLOSE|CLS|COM|COMMON|CONST|DATA|DECLARE|DEF(?: FN| SEG|DBL|INT|LNG|SNG|STR)|DIM|DO|DOUBLE|ELSE|ELSEIF|END|ENVIRON|ERASE|ERROR|EXIT|FIELD|FILES|FOR|FUNCTION|GET|GOSUB|GOTO|IF|INPUT|INTEGER|IOCTL|KEY|KILL|LINE INPUT|LOCATE|LOCK|LONG|LOOP|LSET|MKDIR|NAME|NEXT|OFF|ON(?: COM| ERROR| KEY| TIMER)?|OPEN|OPTION BASE|OUT|POKE|PUT|READ|REDIM|REM|RESTORE|RESUME|RETURN|RMDIR|RSET|RUN|SHARED|SINGLE|SELECT CASE|SHELL|SLEEP|STATIC|STEP|STOP|STRING|SUB|SWAP|SYSTEM|THEN|TIMER|TO|TROFF|TRON|TYPE|UNLOCK|UNTIL|USING|VIEW PRINT|WAIT|WEND|WHILE|WRITE)(?:\\$|\\b)/i,\n function: /\\b(?:ABS|ACCESS|ACOS|ANGLE|AREA|ARITHMETIC|ARRAY|ASIN|ASK|AT|ATN|BASE|BEGIN|BREAK|CAUSE|CEIL|CHR|CLIP|COLLATE|COLOR|CON|COS|COSH|COT|CSC|DATE|DATUM|DEBUG|DECIMAL|DEF|DEG|DEGREES|DELETE|DET|DEVICE|DISPLAY|DOT|ELAPSED|EPS|ERASABLE|EXLINE|EXP|EXTERNAL|EXTYPE|FILETYPE|FIXED|FP|GO|GRAPH|HANDLER|IDN|IMAGE|IN|INT|INTERNAL|IP|IS|KEYED|LBOUND|LCASE|LEFT|LEN|LENGTH|LET|LINE|LINES|LOG|LOG10|LOG2|LTRIM|MARGIN|MAT|MAX|MAXNUM|MID|MIN|MISSING|MOD|NATIVE|NUL|NUMERIC|OF|OPTION|ORD|ORGANIZATION|OUTIN|OUTPUT|PI|POINT|POINTER|POINTS|POS|PRINT|PROGRAM|PROMPT|RAD|RADIANS|RANDOMIZE|RECORD|RECSIZE|RECTYPE|RELATIVE|REMAINDER|REPEAT|REST|RETRY|REWRITE|RIGHT|RND|ROUND|RTRIM|SAME|SEC|SELECT|SEQUENTIAL|SET|SETTER|SGN|SIN|SINH|SIZE|SKIP|SQR|STANDARD|STATUS|STR|STREAM|STYLE|TAB|TAN|TANH|TEMPLATE|TEXT|THERE|TIME|TIMEOUT|TRACE|TRANSFORM|TRUNCATE|UBOUND|UCASE|USE|VAL|VARIABLE|VIEWPORT|WHEN|WINDOW|WITH|ZER|ZONEWIDTH)(?:\\$|\\b)/i,\n operator: /<[=>]?|>=?|[+\\-*\\/^=&]|\\b(?:AND|EQV|IMP|NOT|OR|XOR)\\b/i,\n punctuation: /[,;:()]/\n }\n}\n","'use strict'\n\nmodule.exports = lua\nlua.displayName = 'lua'\nlua.aliases = []\nfunction lua(Prism) {\n Prism.languages.lua = {\n comment: /^#!.+|--(?:\\[(=*)\\[[\\s\\S]*?\\]\\1\\]|.*)/m,\n // \\z may be used to skip the following space\n string: {\n pattern: /([\"'])(?:(?!\\1)[^\\\\\\r\\n]|\\\\z(?:\\r\\n|\\s)|\\\\(?:\\r\\n|[^z]))*\\1|\\[(=*)\\[[\\s\\S]*?\\]\\2\\]/,\n greedy: true\n },\n number: /\\b0x[a-f\\d]+(?:\\.[a-f\\d]*)?(?:p[+-]?\\d+)?\\b|\\b\\d+(?:\\.\\B|(?:\\.\\d*)?(?:e[+-]?\\d+)?\\b)|\\B\\.\\d+(?:e[+-]?\\d+)?\\b/i,\n keyword: /\\b(?:and|break|do|else|elseif|end|false|for|function|goto|if|in|local|nil|not|or|repeat|return|then|true|until|while)\\b/,\n function: /(?!\\d)\\w+(?=\\s*(?:[({]))/,\n operator: [\n /[-+*%^&|#]|\\/\\/?|<[<=]?|>[>=]?|[=~]=?/,\n {\n // Match \"..\" but don't break \"...\"\n pattern: /(^|[^.])\\.\\.(?!\\.)/,\n lookbehind: true\n }\n ],\n punctuation: /[\\[\\](){},;]|\\.+|:+/\n }\n}\n","'use strict'\n\nmodule.exports = haskell\nhaskell.displayName = 'haskell'\nhaskell.aliases = ['hs']\nfunction haskell(Prism) {\n Prism.languages.haskell = {\n comment: {\n pattern: /(^|[^-!#$%*+=?&@|~.:<>^\\\\\\/])(?:--(?:(?=.)[^-!#$%*+=?&@|~.:<>^\\\\\\/].*|$)|{-[\\s\\S]*?-})/m,\n lookbehind: true\n },\n char: {\n pattern: /'(?:[^\\\\']|\\\\(?:[abfnrtv\\\\\"'&]|\\^[A-Z@[\\]^_]|NUL|SOH|STX|ETX|EOT|ENQ|ACK|BEL|BS|HT|LF|VT|FF|CR|SO|SI|DLE|DC1|DC2|DC3|DC4|NAK|SYN|ETB|CAN|EM|SUB|ESC|FS|GS|RS|US|SP|DEL|\\d+|o[0-7]+|x[0-9a-fA-F]+))'/,\n alias: 'string'\n },\n string: {\n pattern: /\"(?:[^\\\\\"]|\\\\(?:\\S|\\s+\\\\))*\"/,\n greedy: true\n },\n keyword: /\\b(?:case|class|data|deriving|do|else|if|in|infixl|infixr|instance|let|module|newtype|of|primitive|then|type|where)\\b/,\n 'import-statement': {\n // The imported or hidden names are not included in this import\n // statement. This is because we want to highlight those exactly like\n // we do for the names in the program.\n pattern: /(^\\s*)import\\s+(?:qualified\\s+)?(?:[A-Z][\\w']*)(?:\\.[A-Z][\\w']*)*(?:\\s+as\\s+(?:[A-Z][\\w']*)(?:\\.[A-Z][\\w']*)*)?(?:\\s+hiding\\b)?/m,\n lookbehind: true,\n inside: {\n keyword: /\\b(?:import|qualified|as|hiding)\\b/\n }\n },\n // These are builtin variables only. Constructors are highlighted later as a constant.\n builtin: /\\b(?:abs|acos|acosh|all|and|any|appendFile|approxRational|asTypeOf|asin|asinh|atan|atan2|atanh|basicIORun|break|catch|ceiling|chr|compare|concat|concatMap|const|cos|cosh|curry|cycle|decodeFloat|denominator|digitToInt|div|divMod|drop|dropWhile|either|elem|encodeFloat|enumFrom|enumFromThen|enumFromThenTo|enumFromTo|error|even|exp|exponent|fail|filter|flip|floatDigits|floatRadix|floatRange|floor|fmap|foldl|foldl1|foldr|foldr1|fromDouble|fromEnum|fromInt|fromInteger|fromIntegral|fromRational|fst|gcd|getChar|getContents|getLine|group|head|id|inRange|index|init|intToDigit|interact|ioError|isAlpha|isAlphaNum|isAscii|isControl|isDenormalized|isDigit|isHexDigit|isIEEE|isInfinite|isLower|isNaN|isNegativeZero|isOctDigit|isPrint|isSpace|isUpper|iterate|last|lcm|length|lex|lexDigits|lexLitChar|lines|log|logBase|lookup|map|mapM|mapM_|max|maxBound|maximum|maybe|min|minBound|minimum|mod|negate|not|notElem|null|numerator|odd|or|ord|otherwise|pack|pi|pred|primExitWith|print|product|properFraction|putChar|putStr|putStrLn|quot|quotRem|range|rangeSize|read|readDec|readFile|readFloat|readHex|readIO|readInt|readList|readLitChar|readLn|readOct|readParen|readSigned|reads|readsPrec|realToFrac|recip|rem|repeat|replicate|return|reverse|round|scaleFloat|scanl|scanl1|scanr|scanr1|seq|sequence|sequence_|show|showChar|showInt|showList|showLitChar|showParen|showSigned|showString|shows|showsPrec|significand|signum|sin|sinh|snd|sort|span|splitAt|sqrt|subtract|succ|sum|tail|take|takeWhile|tan|tanh|threadToIOResult|toEnum|toInt|toInteger|toLower|toRational|toUpper|truncate|uncurry|undefined|unlines|until|unwords|unzip|unzip3|userError|words|writeFile|zip|zip3|zipWith|zipWith3)\\b/,\n // decimal integers and floating point numbers | octal integers | hexadecimal integers\n number: /\\b(?:\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?|0o[0-7]+|0x[0-9a-f]+)\\b/i,\n // Most of this is needed because of the meaning of a single '.'.\n // If it stands alone freely, it is the function composition.\n // It may also be a separator between a module name and an identifier => no\n // operator. If it comes together with other special characters it is an\n // operator too.\n operator: /\\s\\.\\s|[-!#$%*+=?&@|~:<>^\\\\\\/]*\\.[-!#$%*+=?&@|~.:<>^\\\\\\/]+|[-!#$%*+=?&@|~.:<>^\\\\\\/]+\\.[-!#$%*+=?&@|~:<>^\\\\\\/]*|[-!#$%*+=?&@|~:<>^\\\\\\/]+|`(?:[A-Z][\\w']*\\.)*[_a-z][\\w']*`/,\n // In Haskell, nearly everything is a variable, do not highlight these.\n hvariable: /\\b(?:[A-Z][\\w']*\\.)*[_a-z][\\w']*\\b/,\n constant: /\\b(?:[A-Z][\\w']*\\.)*[A-Z][\\w']*\\b/,\n punctuation: /[{}[\\];(),.:]/\n }\n Prism.languages.hs = Prism.languages.haskell\n}\n","'use strict'\n\nmodule.exports = jsx\njsx.displayName = 'jsx'\njsx.aliases = []\nfunction jsx(Prism) {\n ;(function (Prism) {\n var javascript = Prism.util.clone(Prism.languages.javascript)\n Prism.languages.jsx = Prism.languages.extend('markup', javascript)\n Prism.languages.jsx.tag.pattern = /<\\/?(?:[\\w.:-]+(?:\\s+(?:[\\w.:$-]+(?:=(?:\"(?:\\\\[^]|[^\\\\\"])*\"|'(?:\\\\[^]|[^\\\\'])*'|[^\\s{'\">=]+|\\{(?:\\{(?:\\{[^{}]*\\}|[^{}])*\\}|[^{}])+\\}))?|\\{\\s*\\.{3}\\s*[a-z_$][\\w$]*(?:\\.[a-z_$][\\w$]*)*\\s*\\}))*\\s*\\/?)?>/i\n Prism.languages.jsx.tag.inside['tag'].pattern = /^<\\/?[^\\s>\\/]*/i\n Prism.languages.jsx.tag.inside[\n 'attr-value'\n ].pattern = /=(?!\\{)(?:\"(?:\\\\[^]|[^\\\\\"])*\"|'(?:\\\\[^]|[^\\\\'])*'|[^\\s'\">]+)/i\n Prism.languages.jsx.tag.inside['tag'].inside[\n 'class-name'\n ] = /^[A-Z]\\w*(?:\\.[A-Z]\\w*)*$/\n Prism.languages.insertBefore(\n 'inside',\n 'attr-name',\n {\n spread: {\n pattern: /\\{\\s*\\.{3}\\s*[a-z_$][\\w$]*(?:\\.[a-z_$][\\w$]*)*\\s*\\}/,\n inside: {\n punctuation: /\\.{3}|[{}.]/,\n 'attr-value': /\\w+/\n }\n }\n },\n Prism.languages.jsx.tag\n )\n Prism.languages.insertBefore(\n 'inside',\n 'attr-value',\n {\n script: {\n // Allow for two levels of nesting\n pattern: /=(?:\\{(?:\\{(?:\\{[^{}]*\\}|[^{}])*\\}|[^{}])+\\})/i,\n inside: {\n 'script-punctuation': {\n pattern: /^=(?={)/,\n alias: 'punctuation'\n },\n rest: Prism.languages.jsx\n },\n alias: 'language-javascript'\n }\n },\n Prism.languages.jsx.tag\n ) // The following will handle plain text inside tags\n var stringifyToken = function (token) {\n if (!token) {\n return ''\n }\n if (typeof token === 'string') {\n return token\n }\n if (typeof token.content === 'string') {\n return token.content\n }\n return token.content.map(stringifyToken).join('')\n }\n var walkTokens = function (tokens) {\n var openedTags = []\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i]\n var notTagNorBrace = false\n if (typeof token !== 'string') {\n if (\n token.type === 'tag' &&\n token.content[0] &&\n token.content[0].type === 'tag'\n ) {\n // We found a tag, now find its kind\n if (token.content[0].content[0].content === '</') {\n // Closing tag\n if (\n openedTags.length > 0 &&\n openedTags[openedTags.length - 1].tagName ===\n stringifyToken(token.content[0].content[1])\n ) {\n // Pop matching opening tag\n openedTags.pop()\n }\n } else {\n if (token.content[token.content.length - 1].content === '/>') {\n // Autoclosed tag, ignore\n } else {\n // Opening tag\n openedTags.push({\n tagName: stringifyToken(token.content[0].content[1]),\n openedBraces: 0\n })\n }\n }\n } else if (\n openedTags.length > 0 &&\n token.type === 'punctuation' &&\n token.content === '{'\n ) {\n // Here we might have entered a JSX context inside a tag\n openedTags[openedTags.length - 1].openedBraces++\n } else if (\n openedTags.length > 0 &&\n openedTags[openedTags.length - 1].openedBraces > 0 &&\n token.type === 'punctuation' &&\n token.content === '}'\n ) {\n // Here we might have left a JSX context inside a tag\n openedTags[openedTags.length - 1].openedBraces--\n } else {\n notTagNorBrace = true\n }\n }\n if (notTagNorBrace || typeof token === 'string') {\n if (\n openedTags.length > 0 &&\n openedTags[openedTags.length - 1].openedBraces === 0\n ) {\n // Here we are inside a tag, and not inside a JSX context.\n // That's plain text: drop any tokens matched.\n var plainText = stringifyToken(token) // And merge text with adjacent text\n if (\n i < tokens.length - 1 &&\n (typeof tokens[i + 1] === 'string' ||\n tokens[i + 1].type === 'plain-text')\n ) {\n plainText += stringifyToken(tokens[i + 1])\n tokens.splice(i + 1, 1)\n }\n if (\n i > 0 &&\n (typeof tokens[i - 1] === 'string' ||\n tokens[i - 1].type === 'plain-text')\n ) {\n plainText = stringifyToken(tokens[i - 1]) + plainText\n tokens.splice(i - 1, 1)\n i--\n }\n tokens[i] = new Prism.Token(\n 'plain-text',\n plainText,\n null,\n plainText\n )\n }\n }\n if (token.content && typeof token.content !== 'string') {\n walkTokens(token.content)\n }\n }\n }\n Prism.hooks.add('after-tokenize', function (env) {\n if (env.language !== 'jsx' && env.language !== 'tsx') {\n return\n }\n walkTokens(env.tokens)\n })\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = turtle\nturtle.displayName = 'turtle'\nturtle.aliases = []\nfunction turtle(Prism) {\n Prism.languages.turtle = {\n comment: {\n pattern: /#.*/,\n greedy: true\n },\n 'multiline-string': {\n pattern: /\"\"\"(?:(?:\"\"?)?(?:[^\"\\\\]|\\\\.))*\"\"\"|'''(?:(?:''?)?(?:[^'\\\\]|\\\\.))*'''/,\n greedy: true,\n alias: 'string',\n inside: {\n comment: /#.*/\n }\n },\n string: {\n pattern: /\"(?:[^\\\\\"\\r\\n]|\\\\.)*\"|'(?:[^\\\\'\\r\\n]|\\\\.)*'/,\n greedy: true\n },\n url: {\n pattern: /<(?:[^\\x00-\\x20<>\"{}|^`\\\\]|\\\\(?:u[\\da-fA-F]{4}|U[\\da-fA-F]{8}))*>/,\n greedy: true,\n inside: {\n punctuation: /[<>]/\n }\n },\n function: {\n pattern: /(?:(?![-.\\d\\xB7])[-.\\w\\xB7\\xC0-\\uFFFD]+)?:(?:(?![-.])(?:[-.:\\w\\xC0-\\uFFFD]|%[\\da-f]{2}|\\\\.)+)?/i,\n inside: {\n 'local-name': {\n pattern: /([^:]*:)[\\s\\S]+/,\n lookbehind: true\n },\n prefix: {\n pattern: /[\\s\\S]+/,\n inside: {\n punctuation: /:/\n }\n }\n }\n },\n number: /[+-]?\\b\\d+(?:\\.\\d*)?(?:e[+-]?\\d+)?/i,\n punctuation: /[{}.,;()[\\]]|\\^\\^/,\n boolean: /\\b(?:true|false)\\b/,\n keyword: [/(?:\\ba|@prefix|@base)\\b|=/, /\\b(?:graph|base|prefix)\\b/i],\n tag: {\n pattern: /@[a-z]+(?:-[a-z\\d]+)*/i,\n inside: {\n punctuation: /@/\n }\n }\n }\n Prism.languages.trig = Prism.languages['turtle']\n}\n","'use strict'\nvar refractorBasic = require('./basic.js')\nmodule.exports = vbnet\nvbnet.displayName = 'vbnet'\nvbnet.aliases = []\nfunction vbnet(Prism) {\n Prism.register(refractorBasic)\n Prism.languages.vbnet = Prism.languages.extend('basic', {\n comment: [\n {\n pattern: /(?:!|REM\\b).+/i,\n inside: {\n keyword: /^REM/i\n }\n },\n {\n pattern: /(^|[^\\\\:])'.*/,\n lookbehind: true\n }\n ],\n keyword: /(?:\\b(?:ADDHANDLER|ADDRESSOF|ALIAS|AND|ANDALSO|AS|BEEP|BLOAD|BOOLEAN|BSAVE|BYREF|BYTE|BYVAL|CALL(?: ABSOLUTE)?|CASE|CATCH|CBOOL|CBYTE|CCHAR|CDATE|CDEC|CDBL|CHAIN|CHAR|CHDIR|CINT|CLASS|CLEAR|CLNG|CLOSE|CLS|COBJ|COM|COMMON|CONST|CONTINUE|CSBYTE|CSHORT|CSNG|CSTR|CTYPE|CUINT|CULNG|CUSHORT|DATA|DATE|DECIMAL|DECLARE|DEFAULT|DEF(?: FN| SEG|DBL|INT|LNG|SNG|STR)|DELEGATE|DIM|DIRECTCAST|DO|DOUBLE|ELSE|ELSEIF|END|ENUM|ENVIRON|ERASE|ERROR|EVENT|EXIT|FALSE|FIELD|FILES|FINALLY|FOR(?: EACH)?|FRIEND|FUNCTION|GET|GETTYPE|GETXMLNAMESPACE|GLOBAL|GOSUB|GOTO|HANDLES|IF|IMPLEMENTS|IMPORTS|IN|INHERITS|INPUT|INTEGER|INTERFACE|IOCTL|IS|ISNOT|KEY|KILL|LINE INPUT|LET|LIB|LIKE|LOCATE|LOCK|LONG|LOOP|LSET|ME|MKDIR|MOD|MODULE|MUSTINHERIT|MUSTOVERRIDE|MYBASE|MYCLASS|NAME|NAMESPACE|NARROWING|NEW|NEXT|NOT|NOTHING|NOTINHERITABLE|NOTOVERRIDABLE|OBJECT|OF|OFF|ON(?: COM| ERROR| KEY| TIMER)?|OPERATOR|OPEN|OPTION(?: BASE)?|OPTIONAL|OR|ORELSE|OUT|OVERLOADS|OVERRIDABLE|OVERRIDES|PARAMARRAY|PARTIAL|POKE|PRIVATE|PROPERTY|PROTECTED|PUBLIC|PUT|RAISEEVENT|READ|READONLY|REDIM|REM|REMOVEHANDLER|RESTORE|RESUME|RETURN|RMDIR|RSET|RUN|SBYTE|SELECT(?: CASE)?|SET|SHADOWS|SHARED|SHORT|SINGLE|SHELL|SLEEP|STATIC|STEP|STOP|STRING|STRUCTURE|SUB|SYNCLOCK|SWAP|SYSTEM|THEN|THROW|TIMER|TO|TROFF|TRON|TRUE|TRY|TRYCAST|TYPE|TYPEOF|UINTEGER|ULONG|UNLOCK|UNTIL|USHORT|USING|VIEW PRINT|WAIT|WEND|WHEN|WHILE|WIDENING|WITH|WITHEVENTS|WRITE|WRITEONLY|XOR)|\\B(?:#CONST|#ELSE|#ELSEIF|#END|#IF))(?:\\$|\\b)/i\n })\n}\n","'use strict'\n\nmodule.exports = yaml\nyaml.displayName = 'yaml'\nyaml.aliases = ['yml']\nfunction yaml(Prism) {\n ;(function (Prism) {\n // https://yaml.org/spec/1.2/spec.html#c-ns-anchor-property\n // https://yaml.org/spec/1.2/spec.html#c-ns-alias-node\n var anchorOrAlias = /[*&][^\\s[\\]{},]+/ // https://yaml.org/spec/1.2/spec.html#c-ns-tag-property\n var tag = /!(?:<[\\w\\-%#;/?:@&=+$,.!~*'()[\\]]+>|(?:[a-zA-Z\\d-]*!)?[\\w\\-%#;/?:@&=+$.~*'()]+)?/ // https://yaml.org/spec/1.2/spec.html#c-ns-properties(n,c)\n var properties =\n '(?:' +\n tag.source +\n '(?:[ \\t]+' +\n anchorOrAlias.source +\n ')?|' +\n anchorOrAlias.source +\n '(?:[ \\t]+' +\n tag.source +\n ')?)' // https://yaml.org/spec/1.2/spec.html#ns-plain(n,c)\n // This is a simplified version that doesn't support \"#\" and multiline keys\n // All these long scarry character classes are simplified versions of YAML's characters\n var plainKey = /(?:[^\\s\\x00-\\x08\\x0e-\\x1f!\"#%&'*,\\-:>?@[\\]`{|}\\x7f-\\x84\\x86-\\x9f\\ud800-\\udfff\\ufffe\\uffff]|[?:-]<PLAIN>)(?:[ \\t]*(?:(?![#:])<PLAIN>|:<PLAIN>))*/.source.replace(\n /<PLAIN>/g,\n function () {\n return /[^\\s\\x00-\\x08\\x0e-\\x1f,[\\]{}\\x7f-\\x84\\x86-\\x9f\\ud800-\\udfff\\ufffe\\uffff]/\n .source\n }\n )\n var string = /\"(?:[^\"\\\\\\r\\n]|\\\\.)*\"|'(?:[^'\\\\\\r\\n]|\\\\.)*'/.source\n /**\n *\n * @param {string} value\n * @param {string} [flags]\n * @returns {RegExp}\n */\n function createValuePattern(value, flags) {\n flags = (flags || '').replace(/m/g, '') + 'm' // add m flag\n var pattern = /([:\\-,[{]\\s*(?:\\s<<prop>>[ \\t]+)?)(?:<<value>>)(?=[ \\t]*(?:$|,|]|}|(?:[\\r\\n]\\s*)?#))/.source\n .replace(/<<prop>>/g, function () {\n return properties\n })\n .replace(/<<value>>/g, function () {\n return value\n })\n return RegExp(pattern, flags)\n }\n Prism.languages.yaml = {\n scalar: {\n pattern: RegExp(\n /([\\-:]\\s*(?:\\s<<prop>>[ \\t]+)?[|>])[ \\t]*(?:((?:\\r?\\n|\\r)[ \\t]+)\\S[^\\r\\n]*(?:\\2[^\\r\\n]+)*)/.source.replace(\n /<<prop>>/g,\n function () {\n return properties\n }\n )\n ),\n lookbehind: true,\n alias: 'string'\n },\n comment: /#.*/,\n key: {\n pattern: RegExp(\n /((?:^|[:\\-,[{\\r\\n?])[ \\t]*(?:<<prop>>[ \\t]+)?)<<key>>(?=\\s*:\\s)/.source\n .replace(/<<prop>>/g, function () {\n return properties\n })\n .replace(/<<key>>/g, function () {\n return '(?:' + plainKey + '|' + string + ')'\n })\n ),\n lookbehind: true,\n greedy: true,\n alias: 'atrule'\n },\n directive: {\n pattern: /(^[ \\t]*)%.+/m,\n lookbehind: true,\n alias: 'important'\n },\n datetime: {\n pattern: createValuePattern(\n /\\d{4}-\\d\\d?-\\d\\d?(?:[tT]|[ \\t]+)\\d\\d?:\\d{2}:\\d{2}(?:\\.\\d*)?(?:[ \\t]*(?:Z|[-+]\\d\\d?(?::\\d{2})?))?|\\d{4}-\\d{2}-\\d{2}|\\d\\d?:\\d{2}(?::\\d{2}(?:\\.\\d*)?)?/\n .source\n ),\n lookbehind: true,\n alias: 'number'\n },\n boolean: {\n pattern: createValuePattern(/true|false/.source, 'i'),\n lookbehind: true,\n alias: 'important'\n },\n null: {\n pattern: createValuePattern(/null|~/.source, 'i'),\n lookbehind: true,\n alias: 'important'\n },\n string: {\n pattern: createValuePattern(string),\n lookbehind: true,\n greedy: true\n },\n number: {\n pattern: createValuePattern(\n /[+-]?(?:0x[\\da-f]+|0o[0-7]+|(?:\\d+(?:\\.\\d*)?|\\.?\\d+)(?:e[+-]?\\d+)?|\\.inf|\\.nan)/\n .source,\n 'i'\n ),\n lookbehind: true\n },\n tag: tag,\n important: anchorOrAlias,\n punctuation: /---|[:[\\]{}\\-,|>?]|\\.\\.\\./\n }\n Prism.languages.yml = Prism.languages.yaml\n })(Prism)\n}\n","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n module.exports = _typeof = function _typeof(obj) {\n return typeof obj;\n };\n\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n } else {\n module.exports = _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n }\n\n return _typeof(obj);\n}\n\nmodule.exports = _typeof;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","'use strict'\n\nconst React = require('react')\nconst vfile = require('vfile')\nconst unified = require('unified')\nconst parse = require('remark-parse')\nconst remarkRehype = require('remark-rehype')\nconst PropTypes = require('prop-types')\n// @ts-ignore remove when typed\nconst html = require('property-information/html')\nconst filter = require('./rehype-filter')\nconst uriTransformer = require('./uri-transformer')\nconst childrenToReact = require('./ast-to-react.js').hastChildrenToReact\n\n/**\n * @typedef {import('react').ReactNode} ReactNode\n * @typedef {import('react').ReactElement<{}>} ReactElement\n * @typedef {import('unified').PluggableList} PluggableList\n * @typedef {import('hast').Root} Root\n * @typedef {import('./rehype-filter.js').RehypeFilterOptions} FilterOptions\n * @typedef {import('./ast-to-react.js').TransformOptions} TransformOptions\n *\n * @typedef {Object} CoreOptions\n * @property {string} children\n *\n * @typedef {Object} PluginOptions\n * @property {PluggableList} [plugins=[]] **deprecated**: use `remarkPlugins` instead\n * @property {PluggableList} [remarkPlugins=[]]\n * @property {PluggableList} [rehypePlugins=[]]\n *\n * @typedef {Object} LayoutOptions\n * @property {string} [className]\n *\n * @typedef {CoreOptions & PluginOptions & LayoutOptions & FilterOptions & TransformOptions} ReactMarkdownOptions\n */\n\nmodule.exports = ReactMarkdown\n\nconst own = {}.hasOwnProperty\nconst changelog =\n 'https://github.com/remarkjs/react-markdown/blob/main/changelog.md'\n\n/**\n * @typedef {Object} Deprecation\n * @property {string} id\n * @property {string} [to]\n */\n\n/**\n * @type {Object.<string, Deprecation>}\n */\nconst deprecated = {\n renderers: {to: 'components', id: 'change-renderers-to-components'},\n astPlugins: {id: 'remove-buggy-html-in-markdown-parser'},\n allowDangerousHtml: {id: 'remove-buggy-html-in-markdown-parser'},\n escapeHtml: {id: 'remove-buggy-html-in-markdown-parser'},\n source: {to: 'children', id: 'change-source-to-children'},\n allowNode: {\n to: 'allowElement',\n id: 'replace-allownode-allowedtypes-and-disallowedtypes'\n },\n allowedTypes: {\n to: 'allowedElements',\n id: 'replace-allownode-allowedtypes-and-disallowedtypes'\n },\n disallowedTypes: {\n to: 'disallowedElements',\n id: 'replace-allownode-allowedtypes-and-disallowedtypes'\n },\n includeNodeIndex: {\n to: 'includeElementIndex',\n id: 'change-includenodeindex-to-includeelementindex'\n }\n}\n\n/**\n * @param {ReactMarkdownOptions} options\n * @returns {ReactElement}\n */\nfunction ReactMarkdown(options) {\n for (const key in deprecated) {\n if (own.call(deprecated, key) && own.call(options, key)) {\n /** @type {Deprecation} */\n const deprecation = deprecated[key]\n console.warn(\n `[react-markdown] Warning: please ${\n deprecation.to ? `use \\`${deprecation.to}\\` instead of` : 'remove'\n } \\`${key}\\` (see <${changelog}#${deprecation.id}> for more info)`\n )\n delete deprecated[key]\n }\n }\n\n const processor = unified()\n .use(parse)\n // TODO: deprecate `plugins` in v7.0.0.\n .use(options.remarkPlugins || options.plugins || [])\n .use(remarkRehype, {allowDangerousHtml: true})\n .use(options.rehypePlugins || [])\n .use(filter, options)\n\n /** @type {vfile} */\n let file\n\n if (typeof options.children === 'string') {\n file = vfile(options.children)\n } else {\n if (options.children !== undefined && options.children !== null) {\n console.warn(\n `[react-markdown] Warning: please pass a string as \\`children\\` (not: \\`${options.children}\\`)`\n )\n }\n\n file = vfile()\n }\n\n /** @type {Root} */\n // @ts-ignore well throw if it isnt a root next.\n const hastNode = processor.runSync(processor.parse(file), file)\n\n if (hastNode.type !== 'root') {\n throw new TypeError('Expected a `root` node')\n }\n\n /** @type {ReactElement} */\n let result = React.createElement(\n React.Fragment,\n {},\n childrenToReact({options: options, schema: html, listDepth: 0}, hastNode)\n )\n\n if (options.className) {\n result = React.createElement('div', {className: options.className}, result)\n }\n\n return result\n}\n\nReactMarkdown.defaultProps = {transformLinkUri: uriTransformer}\n\nReactMarkdown.propTypes = {\n // Core options:\n children: PropTypes.string,\n // Layout options:\n className: PropTypes.string,\n // Filter options:\n allowElement: PropTypes.func,\n allowedElements: PropTypes.arrayOf(PropTypes.string),\n disallowedElements: PropTypes.arrayOf(PropTypes.string),\n unwrapDisallowed: PropTypes.bool,\n // Plugin options:\n // type-coverage:ignore-next-line\n remarkPlugins: PropTypes.arrayOf(\n PropTypes.oneOfType([\n PropTypes.object,\n PropTypes.func,\n PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.object, PropTypes.func]))\n ])\n ),\n // type-coverage:ignore-next-line\n rehypePlugins: PropTypes.arrayOf(\n PropTypes.oneOfType([\n PropTypes.object,\n PropTypes.func,\n PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.object, PropTypes.func]))\n ])\n ),\n // Transform options:\n sourcePos: PropTypes.bool,\n rawSourcePos: PropTypes.bool,\n skipHtml: PropTypes.bool,\n includeElementIndex: PropTypes.bool,\n transformLinkUri: PropTypes.oneOfType([PropTypes.func, PropTypes.bool]),\n linkTarget: PropTypes.oneOfType([PropTypes.func, PropTypes.string]),\n transformImageUri: PropTypes.func,\n components: PropTypes.object\n}\n\nReactMarkdown.uriTransformer = uriTransformer\n","'use strict'\n\nvar syntax = require('micromark-extension-gfm')\nvar fromMarkdown = require('mdast-util-gfm/from-markdown')\nvar toMarkdown = require('mdast-util-gfm/to-markdown')\n\nvar warningIssued\n\nmodule.exports = gfm\n\nfunction gfm(options) {\n var data = this.data()\n\n /* istanbul ignore next - old remark. */\n if (\n !warningIssued &&\n ((this.Parser &&\n this.Parser.prototype &&\n this.Parser.prototype.blockTokenizers) ||\n (this.Compiler &&\n this.Compiler.prototype &&\n this.Compiler.prototype.visitors))\n ) {\n warningIssued = true\n console.warn(\n '[remark-gfm] Warning: please upgrade to remark 13 to use this plugin'\n )\n }\n\n add('micromarkExtensions', syntax(options))\n add('fromMarkdownExtensions', fromMarkdown)\n add('toMarkdownExtensions', toMarkdown(options))\n\n function add(field, value) {\n /* istanbul ignore if - other extensions. */\n if (data[field]) data[field].push(value)\n else data[field] = [value]\n }\n}\n","'use strict'\n\nvar toString = require('mdast-util-to-string')\nvar visit = require('unist-util-visit')\nvar slugs = require('github-slugger')()\n\nmodule.exports = slug\n\nfunction slug() {\n return transformer\n}\n\n// Patch slugs on heading nodes.\nfunction transformer(ast) {\n slugs.reset()\n\n visit(ast, 'heading', visitor)\n\n function visitor(node) {\n var data = node.data || (node.data = {})\n var props = data.hProperties || (data.hProperties = {})\n var id = props.id\n\n id = id ? slugs.slug(id, true) : slugs.slug(toString(node))\n\n data.id = id\n props.id = id\n }\n}\n","'use strict'\n\nvar hastUtilRaw = require('hast-util-raw')\n\nmodule.exports = rehypeRaw\n\nfunction rehypeRaw(options) {\n return transform\n function transform(tree, file) {\n return hastUtilRaw(tree, file, options)\n }\n}\n","'use strict';\n\nconst visit = require('unist-util-visit');\nconst nodeToString = require('hast-util-to-string');\nconst refractor = require('refractor');\n\nmodule.exports = (options) => {\n options = options || {};\n\n return (tree) => {\n visit(tree, 'element', visitor);\n };\n\n function visitor(node, index, parent) {\n if (!parent || parent.tagName !== 'pre' || node.tagName !== 'code') {\n return;\n }\n\n const lang = getLanguage(node);\n\n if (lang === null) {\n return;\n }\n\n let result;\n try {\n parent.properties.className = (parent.properties.className || []).concat(\n 'language-' + lang\n );\n result = refractor.highlight(nodeToString(node), lang);\n } catch (err) {\n if (options.ignoreMissing && /Unknown language/.test(err.message)) {\n return;\n }\n throw err;\n }\n\n node.children = result;\n }\n};\n\nfunction getLanguage(node) {\n const className = node.properties.className || [];\n\n for (const classListItem of className) {\n if (classListItem.slice(0, 9) === 'language-') {\n return classListItem.slice(9).toLowerCase();\n }\n }\n\n return null;\n}\n","import { Root, Parent, Content } from 'ts-mdast'\nimport { Plugin } from 'unified'\nimport visit from './visit'\n\nexport type MdastTransformer = (tree: Root) => void\nexport type RehypeRewriteHandle = (node: Content, index: number, parent: Parent) => void\n\nconst remarkRewrite: Plugin<[RehypeRewriteHandle?]> = (handle): MdastTransformer =>{\n return (tree: Root) => {\n visit(tree, (node: Content, index: number, parent: Parent) => {\n if (handle && typeof handle === 'function') {\n handle(node, index, parent)\n }\n })\n }\n}\n\nexport default remarkRewrite\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"footer\":\"Footer_footer__3gQpi\"};","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","/** @license React v0.20.2\n * scheduler.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var f,g,h,k;if(\"object\"===typeof performance&&\"function\"===typeof performance.now){var l=performance;exports.unstable_now=function(){return l.now()}}else{var p=Date,q=p.now();exports.unstable_now=function(){return p.now()-q}}\nif(\"undefined\"===typeof window||\"function\"!==typeof MessageChannel){var t=null,u=null,w=function(){if(null!==t)try{var a=exports.unstable_now();t(!0,a);t=null}catch(b){throw setTimeout(w,0),b;}};f=function(a){null!==t?setTimeout(f,0,a):(t=a,setTimeout(w,0))};g=function(a,b){u=setTimeout(a,b)};h=function(){clearTimeout(u)};exports.unstable_shouldYield=function(){return!1};k=exports.unstable_forceFrameRate=function(){}}else{var x=window.setTimeout,y=window.clearTimeout;if(\"undefined\"!==typeof console){var z=\nwindow.cancelAnimationFrame;\"function\"!==typeof window.requestAnimationFrame&&console.error(\"This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills\");\"function\"!==typeof z&&console.error(\"This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills\")}var A=!1,B=null,C=-1,D=5,E=0;exports.unstable_shouldYield=function(){return exports.unstable_now()>=\nE};k=function(){};exports.unstable_forceFrameRate=function(a){0>a||125<a?console.error(\"forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported\"):D=0<a?Math.floor(1E3/a):5};var F=new MessageChannel,G=F.port2;F.port1.onmessage=function(){if(null!==B){var a=exports.unstable_now();E=a+D;try{B(!0,a)?G.postMessage(null):(A=!1,B=null)}catch(b){throw G.postMessage(null),b;}}else A=!1};f=function(a){B=a;A||(A=!0,G.postMessage(null))};g=function(a,b){C=\nx(function(){a(exports.unstable_now())},b)};h=function(){y(C);C=-1}}function H(a,b){var c=a.length;a.push(b);a:for(;;){var d=c-1>>>1,e=a[d];if(void 0!==e&&0<I(e,b))a[d]=b,a[c]=e,c=d;else break a}}function J(a){a=a[0];return void 0===a?null:a}\nfunction K(a){var b=a[0];if(void 0!==b){var c=a.pop();if(c!==b){a[0]=c;a:for(var d=0,e=a.length;d<e;){var m=2*(d+1)-1,n=a[m],v=m+1,r=a[v];if(void 0!==n&&0>I(n,c))void 0!==r&&0>I(r,n)?(a[d]=r,a[v]=c,d=v):(a[d]=n,a[m]=c,d=m);else if(void 0!==r&&0>I(r,c))a[d]=r,a[v]=c,d=v;else break a}}return b}return null}function I(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}var L=[],M=[],N=1,O=null,P=3,Q=!1,R=!1,S=!1;\nfunction T(a){for(var b=J(M);null!==b;){if(null===b.callback)K(M);else if(b.startTime<=a)K(M),b.sortIndex=b.expirationTime,H(L,b);else break;b=J(M)}}function U(a){S=!1;T(a);if(!R)if(null!==J(L))R=!0,f(V);else{var b=J(M);null!==b&&g(U,b.startTime-a)}}\nfunction V(a,b){R=!1;S&&(S=!1,h());Q=!0;var c=P;try{T(b);for(O=J(L);null!==O&&(!(O.expirationTime>b)||a&&!exports.unstable_shouldYield());){var d=O.callback;if(\"function\"===typeof d){O.callback=null;P=O.priorityLevel;var e=d(O.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?O.callback=e:O===J(L)&&K(L);T(b)}else K(L);O=J(L)}if(null!==O)var m=!0;else{var n=J(M);null!==n&&g(U,n.startTime-b);m=!1}return m}finally{O=null,P=c,Q=!1}}var W=k;exports.unstable_IdlePriority=5;\nexports.unstable_ImmediatePriority=1;exports.unstable_LowPriority=4;exports.unstable_NormalPriority=3;exports.unstable_Profiling=null;exports.unstable_UserBlockingPriority=2;exports.unstable_cancelCallback=function(a){a.callback=null};exports.unstable_continueExecution=function(){R||Q||(R=!0,f(V))};exports.unstable_getCurrentPriorityLevel=function(){return P};exports.unstable_getFirstCallbackNode=function(){return J(L)};\nexports.unstable_next=function(a){switch(P){case 1:case 2:case 3:var b=3;break;default:b=P}var c=P;P=b;try{return a()}finally{P=c}};exports.unstable_pauseExecution=function(){};exports.unstable_requestPaint=W;exports.unstable_runWithPriority=function(a,b){switch(a){case 1:case 2:case 3:case 4:case 5:break;default:a=3}var c=P;P=a;try{return b()}finally{P=c}};\nexports.unstable_scheduleCallback=function(a,b,c){var d=exports.unstable_now();\"object\"===typeof c&&null!==c?(c=c.delay,c=\"number\"===typeof c&&0<c?d+c:d):c=d;switch(a){case 1:var e=-1;break;case 2:e=250;break;case 5:e=1073741823;break;case 4:e=1E4;break;default:e=5E3}e=c+e;a={id:N++,callback:b,priorityLevel:a,startTime:c,expirationTime:e,sortIndex:-1};c>d?(a.sortIndex=c,H(M,a),null===J(L)&&a===J(M)&&(S?h():S=!0,g(U,c-d))):(a.sortIndex=e,H(L,a),R||Q||(R=!0,f(V)));return a};\nexports.unstable_wrapCallback=function(a){var b=P;return function(){var c=P;P=b;try{return a.apply(this,arguments)}finally{P=c}}};\n","function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nmodule.exports = _defineProperty;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nmodule.exports = _objectWithoutPropertiesLoose;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","var arrayLikeToArray = require(\"./arrayLikeToArray.js\");\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}\n\nmodule.exports = _arrayWithoutHoles;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}\n\nmodule.exports = _iterableToArray;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","var arrayLikeToArray = require(\"./arrayLikeToArray.js\");\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}\n\nmodule.exports = _unsupportedIterableToArray;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nmodule.exports = _nonIterableSpread;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","'use strict'\n\nvar VMessage = require('vfile-message')\nvar VFile = require('./core.js')\n\nmodule.exports = VFile\n\nVFile.prototype.message = message\nVFile.prototype.info = info\nVFile.prototype.fail = fail\n\n// Create a message with `reason` at `position`.\n// When an error is passed in as `reason`, copies the stack.\nfunction message(reason, position, origin) {\n var message = new VMessage(reason, position, origin)\n\n if (this.path) {\n message.name = this.path + ':' + message.name\n message.file = this.path\n }\n\n message.fatal = false\n\n this.messages.push(message)\n\n return message\n}\n\n// Fail: creates a vmessage, associates it with the file, and throws it.\nfunction fail() {\n var message = this.message.apply(this, arguments)\n\n message.fatal = true\n\n throw message\n}\n\n// Info: creates a vmessage, associates it with the file, and marks the fatality\n// as null.\nfunction info() {\n var message = this.message.apply(this, arguments)\n\n message.fatal = null\n\n return message\n}\n","'use strict'\n\nvar stringify = require('unist-util-stringify-position')\n\nmodule.exports = VMessage\n\n// Inherit from `Error#`.\nfunction VMessagePrototype() {}\nVMessagePrototype.prototype = Error.prototype\nVMessage.prototype = new VMessagePrototype()\n\n// Message properties.\nvar proto = VMessage.prototype\n\nproto.file = ''\nproto.name = ''\nproto.reason = ''\nproto.message = ''\nproto.stack = ''\nproto.fatal = null\nproto.column = null\nproto.line = null\n\n// Construct a new VMessage.\n//\n// Note: We cannot invoke `Error` on the created context, as that adds readonly\n// `line` and `column` attributes on Safari 9, thus throwing and failing the\n// data.\nfunction VMessage(reason, position, origin) {\n var parts\n var range\n var location\n\n if (typeof position === 'string') {\n origin = position\n position = null\n }\n\n parts = parseOrigin(origin)\n range = stringify(position) || '1:1'\n\n location = {\n start: {line: null, column: null},\n end: {line: null, column: null}\n }\n\n // Node.\n if (position && position.position) {\n position = position.position\n }\n\n if (position) {\n // Position.\n if (position.start) {\n location = position\n position = position.start\n } else {\n // Point.\n location.start = position\n }\n }\n\n if (reason.stack) {\n this.stack = reason.stack\n reason = reason.message\n }\n\n this.message = reason\n this.name = range\n this.reason = reason\n this.line = position ? position.line : null\n this.column = position ? position.column : null\n this.location = location\n this.source = parts[0]\n this.ruleId = parts[1]\n}\n\nfunction parseOrigin(origin) {\n var result = [null, null]\n var index\n\n if (typeof origin === 'string') {\n index = origin.indexOf(':')\n\n if (index === -1) {\n result[1] = origin\n } else {\n result[0] = origin.slice(0, index)\n result[1] = origin.slice(index + 1)\n }\n }\n\n return result\n}\n","'use strict'\n\nvar p = require('./minpath')\nvar proc = require('./minproc')\nvar buffer = require('is-buffer')\n\nmodule.exports = VFile\n\nvar own = {}.hasOwnProperty\n\n// Order of setting (least specific to most), we need this because otherwise\n// `{stem: 'a', path: '~/b.js'}` would throw, as a path is needed before a\n// stem can be set.\nvar order = ['history', 'path', 'basename', 'stem', 'extname', 'dirname']\n\nVFile.prototype.toString = toString\n\n// Access full path (`~/index.min.js`).\nObject.defineProperty(VFile.prototype, 'path', {get: getPath, set: setPath})\n\n// Access parent path (`~`).\nObject.defineProperty(VFile.prototype, 'dirname', {\n get: getDirname,\n set: setDirname\n})\n\n// Access basename (`index.min.js`).\nObject.defineProperty(VFile.prototype, 'basename', {\n get: getBasename,\n set: setBasename\n})\n\n// Access extname (`.js`).\nObject.defineProperty(VFile.prototype, 'extname', {\n get: getExtname,\n set: setExtname\n})\n\n// Access stem (`index.min`).\nObject.defineProperty(VFile.prototype, 'stem', {get: getStem, set: setStem})\n\n// Construct a new file.\nfunction VFile(options) {\n var prop\n var index\n\n if (!options) {\n options = {}\n } else if (typeof options === 'string' || buffer(options)) {\n options = {contents: options}\n } else if ('message' in options && 'messages' in options) {\n return options\n }\n\n if (!(this instanceof VFile)) {\n return new VFile(options)\n }\n\n this.data = {}\n this.messages = []\n this.history = []\n this.cwd = proc.cwd()\n\n // Set path related properties in the correct order.\n index = -1\n\n while (++index < order.length) {\n prop = order[index]\n\n if (own.call(options, prop)) {\n this[prop] = options[prop]\n }\n }\n\n // Set non-path related properties.\n for (prop in options) {\n if (order.indexOf(prop) < 0) {\n this[prop] = options[prop]\n }\n }\n}\n\nfunction getPath() {\n return this.history[this.history.length - 1]\n}\n\nfunction setPath(path) {\n assertNonEmpty(path, 'path')\n\n if (this.path !== path) {\n this.history.push(path)\n }\n}\n\nfunction getDirname() {\n return typeof this.path === 'string' ? p.dirname(this.path) : undefined\n}\n\nfunction setDirname(dirname) {\n assertPath(this.path, 'dirname')\n this.path = p.join(dirname || '', this.basename)\n}\n\nfunction getBasename() {\n return typeof this.path === 'string' ? p.basename(this.path) : undefined\n}\n\nfunction setBasename(basename) {\n assertNonEmpty(basename, 'basename')\n assertPart(basename, 'basename')\n this.path = p.join(this.dirname || '', basename)\n}\n\nfunction getExtname() {\n return typeof this.path === 'string' ? p.extname(this.path) : undefined\n}\n\nfunction setExtname(extname) {\n assertPart(extname, 'extname')\n assertPath(this.path, 'extname')\n\n if (extname) {\n if (extname.charCodeAt(0) !== 46 /* `.` */) {\n throw new Error('`extname` must start with `.`')\n }\n\n if (extname.indexOf('.', 1) > -1) {\n throw new Error('`extname` cannot contain multiple dots')\n }\n }\n\n this.path = p.join(this.dirname, this.stem + (extname || ''))\n}\n\nfunction getStem() {\n return typeof this.path === 'string'\n ? p.basename(this.path, this.extname)\n : undefined\n}\n\nfunction setStem(stem) {\n assertNonEmpty(stem, 'stem')\n assertPart(stem, 'stem')\n this.path = p.join(this.dirname || '', stem + (this.extname || ''))\n}\n\n// Get the value of the file.\nfunction toString(encoding) {\n return (this.contents || '').toString(encoding)\n}\n\n// Assert that `part` is not a path (i.e., does not contain `p.sep`).\nfunction assertPart(part, name) {\n if (part && part.indexOf(p.sep) > -1) {\n throw new Error(\n '`' + name + '` cannot be a path: did not expect `' + p.sep + '`'\n )\n }\n}\n\n// Assert that `part` is not empty.\nfunction assertNonEmpty(part, name) {\n if (!part) {\n throw new Error('`' + name + '` cannot be empty')\n }\n}\n\n// Assert `path` exists.\nfunction assertPath(path, name) {\n if (!path) {\n throw new Error('Setting `' + name + '` requires `path` to be set too')\n }\n}\n","'use strict'\n\n// A derivative work based on:\n// <https://github.com/browserify/path-browserify>.\n// Which is licensed:\n//\n// MIT License\n//\n// Copyright (c) 2013 James Halliday\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy of\n// this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to\n// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\n// the Software, and to permit persons to whom the Software is furnished to do so,\n// subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in all\n// copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\n// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\n// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\n// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n// A derivative work based on:\n//\n// Parts of that are extracted from Nodes internal `path` module:\n// <https://github.com/nodejs/node/blob/master/lib/path.js>.\n// Which is licensed:\n//\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nexports.basename = basename\nexports.dirname = dirname\nexports.extname = extname\nexports.join = join\nexports.sep = '/'\n\nfunction basename(path, ext) {\n var start = 0\n var end = -1\n var index\n var firstNonSlashEnd\n var seenNonSlash\n var extIndex\n\n if (ext !== undefined && typeof ext !== 'string') {\n throw new TypeError('\"ext\" argument must be a string')\n }\n\n assertPath(path)\n index = path.length\n\n if (ext === undefined || !ext.length || ext.length > path.length) {\n while (index--) {\n if (path.charCodeAt(index) === 47 /* `/` */) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now.\n if (seenNonSlash) {\n start = index + 1\n break\n }\n } else if (end < 0) {\n // We saw the first non-path separator, mark this as the end of our\n // path component.\n seenNonSlash = true\n end = index + 1\n }\n }\n\n return end < 0 ? '' : path.slice(start, end)\n }\n\n if (ext === path) {\n return ''\n }\n\n firstNonSlashEnd = -1\n extIndex = ext.length - 1\n\n while (index--) {\n if (path.charCodeAt(index) === 47 /* `/` */) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now.\n if (seenNonSlash) {\n start = index + 1\n break\n }\n } else {\n if (firstNonSlashEnd < 0) {\n // We saw the first non-path separator, remember this index in case\n // we need it if the extension ends up not matching.\n seenNonSlash = true\n firstNonSlashEnd = index + 1\n }\n\n if (extIndex > -1) {\n // Try to match the explicit extension.\n if (path.charCodeAt(index) === ext.charCodeAt(extIndex--)) {\n if (extIndex < 0) {\n // We matched the extension, so mark this as the end of our path\n // component\n end = index\n }\n } else {\n // Extension does not match, so our result is the entire path\n // component\n extIndex = -1\n end = firstNonSlashEnd\n }\n }\n }\n }\n\n if (start === end) {\n end = firstNonSlashEnd\n } else if (end < 0) {\n end = path.length\n }\n\n return path.slice(start, end)\n}\n\nfunction dirname(path) {\n var end\n var unmatchedSlash\n var index\n\n assertPath(path)\n\n if (!path.length) {\n return '.'\n }\n\n end = -1\n index = path.length\n\n // Prefix `--` is important to not run on `0`.\n while (--index) {\n if (path.charCodeAt(index) === 47 /* `/` */) {\n if (unmatchedSlash) {\n end = index\n break\n }\n } else if (!unmatchedSlash) {\n // We saw the first non-path separator\n unmatchedSlash = true\n }\n }\n\n return end < 0\n ? path.charCodeAt(0) === 47 /* `/` */\n ? '/'\n : '.'\n : end === 1 && path.charCodeAt(0) === 47 /* `/` */\n ? '//'\n : path.slice(0, end)\n}\n\nfunction extname(path) {\n var startDot = -1\n var startPart = 0\n var end = -1\n // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find.\n var preDotState = 0\n var unmatchedSlash\n var code\n var index\n\n assertPath(path)\n\n index = path.length\n\n while (index--) {\n code = path.charCodeAt(index)\n\n if (code === 47 /* `/` */) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now.\n if (unmatchedSlash) {\n startPart = index + 1\n break\n }\n\n continue\n }\n\n if (end < 0) {\n // We saw the first non-path separator, mark this as the end of our\n // extension.\n unmatchedSlash = true\n end = index + 1\n }\n\n if (code === 46 /* `.` */) {\n // If this is our first dot, mark it as the start of our extension.\n if (startDot < 0) {\n startDot = index\n } else if (preDotState !== 1) {\n preDotState = 1\n }\n } else if (startDot > -1) {\n // We saw a non-dot and non-path separator before our dot, so we should\n // have a good chance at having a non-empty extension.\n preDotState = -1\n }\n }\n\n if (\n startDot < 0 ||\n end < 0 ||\n // We saw a non-dot character immediately before the dot.\n preDotState === 0 ||\n // The (right-most) trimmed path component is exactly `..`.\n (preDotState === 1 && startDot === end - 1 && startDot === startPart + 1)\n ) {\n return ''\n }\n\n return path.slice(startDot, end)\n}\n\nfunction join() {\n var index = -1\n var joined\n\n while (++index < arguments.length) {\n assertPath(arguments[index])\n\n if (arguments[index]) {\n joined =\n joined === undefined\n ? arguments[index]\n : joined + '/' + arguments[index]\n }\n }\n\n return joined === undefined ? '.' : normalize(joined)\n}\n\n// Note: `normalize` is not exposed as `path.normalize`, so some code is\n// manually removed from it.\nfunction normalize(path) {\n var absolute\n var value\n\n assertPath(path)\n\n absolute = path.charCodeAt(0) === 47 /* `/` */\n\n // Normalize the path according to POSIX rules.\n value = normalizeString(path, !absolute)\n\n if (!value.length && !absolute) {\n value = '.'\n }\n\n if (value.length && path.charCodeAt(path.length - 1) === 47 /* / */) {\n value += '/'\n }\n\n return absolute ? '/' + value : value\n}\n\n// Resolve `.` and `..` elements in a path with directory names.\nfunction normalizeString(path, allowAboveRoot) {\n var result = ''\n var lastSegmentLength = 0\n var lastSlash = -1\n var dots = 0\n var index = -1\n var code\n var lastSlashIndex\n\n while (++index <= path.length) {\n if (index < path.length) {\n code = path.charCodeAt(index)\n } else if (code === 47 /* `/` */) {\n break\n } else {\n code = 47 /* `/` */\n }\n\n if (code === 47 /* `/` */) {\n if (lastSlash === index - 1 || dots === 1) {\n // Empty.\n } else if (lastSlash !== index - 1 && dots === 2) {\n if (\n result.length < 2 ||\n lastSegmentLength !== 2 ||\n result.charCodeAt(result.length - 1) !== 46 /* `.` */ ||\n result.charCodeAt(result.length - 2) !== 46 /* `.` */\n ) {\n if (result.length > 2) {\n lastSlashIndex = result.lastIndexOf('/')\n\n /* istanbul ignore else - No clue how to cover it. */\n if (lastSlashIndex !== result.length - 1) {\n if (lastSlashIndex < 0) {\n result = ''\n lastSegmentLength = 0\n } else {\n result = result.slice(0, lastSlashIndex)\n lastSegmentLength = result.length - 1 - result.lastIndexOf('/')\n }\n\n lastSlash = index\n dots = 0\n continue\n }\n } else if (result.length) {\n result = ''\n lastSegmentLength = 0\n lastSlash = index\n dots = 0\n continue\n }\n }\n\n if (allowAboveRoot) {\n result = result.length ? result + '/..' : '..'\n lastSegmentLength = 2\n }\n } else {\n if (result.length) {\n result += '/' + path.slice(lastSlash + 1, index)\n } else {\n result = path.slice(lastSlash + 1, index)\n }\n\n lastSegmentLength = index - lastSlash - 1\n }\n\n lastSlash = index\n dots = 0\n } else if (code === 46 /* `.` */ && dots > -1) {\n dots++\n } else {\n dots = -1\n }\n }\n\n return result\n}\n\nfunction assertPath(path) {\n if (typeof path !== 'string') {\n throw new TypeError(\n 'Path must be a string. Received ' + JSON.stringify(path)\n )\n }\n}\n","'use strict'\n\n// Somewhat based on:\n// <https://github.com/defunctzombie/node-process/blob/master/browser.js>.\n// But I dont think one tiny line of code can be copyrighted. 😅\nexports.cwd = cwd\n\nfunction cwd() {\n return '/'\n}\n","'use strict'\n\nvar bail = require('bail')\nvar buffer = require('is-buffer')\nvar extend = require('extend')\nvar plain = require('is-plain-obj')\nvar trough = require('trough')\nvar vfile = require('vfile')\n\n// Expose a frozen processor.\nmodule.exports = unified().freeze()\n\nvar slice = [].slice\nvar own = {}.hasOwnProperty\n\n// Process pipeline.\nvar pipeline = trough()\n .use(pipelineParse)\n .use(pipelineRun)\n .use(pipelineStringify)\n\nfunction pipelineParse(p, ctx) {\n ctx.tree = p.parse(ctx.file)\n}\n\nfunction pipelineRun(p, ctx, next) {\n p.run(ctx.tree, ctx.file, done)\n\n function done(error, tree, file) {\n if (error) {\n next(error)\n } else {\n ctx.tree = tree\n ctx.file = file\n next()\n }\n }\n}\n\nfunction pipelineStringify(p, ctx) {\n var result = p.stringify(ctx.tree, ctx.file)\n\n if (result === undefined || result === null) {\n // Empty.\n } else if (typeof result === 'string' || buffer(result)) {\n ctx.file.contents = result\n } else {\n ctx.file.result = result\n }\n}\n\n// Function to create the first processor.\nfunction unified() {\n var attachers = []\n var transformers = trough()\n var namespace = {}\n var freezeIndex = -1\n var frozen\n\n // Data management.\n processor.data = data\n\n // Lock.\n processor.freeze = freeze\n\n // Plugins.\n processor.attachers = attachers\n processor.use = use\n\n // API.\n processor.parse = parse\n processor.stringify = stringify\n processor.run = run\n processor.runSync = runSync\n processor.process = process\n processor.processSync = processSync\n\n // Expose.\n return processor\n\n // Create a new processor based on the processor in the current scope.\n function processor() {\n var destination = unified()\n var index = -1\n\n while (++index < attachers.length) {\n destination.use.apply(null, attachers[index])\n }\n\n destination.data(extend(true, {}, namespace))\n\n return destination\n }\n\n // Freeze: used to signal a processor that has finished configuration.\n //\n // For example, take unified itself: its frozen.\n // Plugins should not be added to it.\n // Rather, it should be extended, by invoking it, before modifying it.\n //\n // In essence, always invoke this when exporting a processor.\n function freeze() {\n var values\n var transformer\n\n if (frozen) {\n return processor\n }\n\n while (++freezeIndex < attachers.length) {\n values = attachers[freezeIndex]\n\n if (values[1] === false) {\n continue\n }\n\n if (values[1] === true) {\n values[1] = undefined\n }\n\n transformer = values[0].apply(processor, values.slice(1))\n\n if (typeof transformer === 'function') {\n transformers.use(transformer)\n }\n }\n\n frozen = true\n freezeIndex = Infinity\n\n return processor\n }\n\n // Data management.\n // Getter / setter for processor-specific informtion.\n function data(key, value) {\n if (typeof key === 'string') {\n // Set `key`.\n if (arguments.length === 2) {\n assertUnfrozen('data', frozen)\n namespace[key] = value\n return processor\n }\n\n // Get `key`.\n return (own.call(namespace, key) && namespace[key]) || null\n }\n\n // Set space.\n if (key) {\n assertUnfrozen('data', frozen)\n namespace = key\n return processor\n }\n\n // Get space.\n return namespace\n }\n\n // Plugin management.\n //\n // Pass it:\n // * an attacher and options,\n // * a preset,\n // * a list of presets, attachers, and arguments (list of attachers and\n // options).\n function use(value) {\n var settings\n\n assertUnfrozen('use', frozen)\n\n if (value === null || value === undefined) {\n // Empty.\n } else if (typeof value === 'function') {\n addPlugin.apply(null, arguments)\n } else if (typeof value === 'object') {\n if ('length' in value) {\n addList(value)\n } else {\n addPreset(value)\n }\n } else {\n throw new Error('Expected usable value, not `' + value + '`')\n }\n\n if (settings) {\n namespace.settings = extend(namespace.settings || {}, settings)\n }\n\n return processor\n\n function addPreset(result) {\n addList(result.plugins)\n\n if (result.settings) {\n settings = extend(settings || {}, result.settings)\n }\n }\n\n function add(value) {\n if (typeof value === 'function') {\n addPlugin(value)\n } else if (typeof value === 'object') {\n if ('length' in value) {\n addPlugin.apply(null, value)\n } else {\n addPreset(value)\n }\n } else {\n throw new Error('Expected usable value, not `' + value + '`')\n }\n }\n\n function addList(plugins) {\n var index = -1\n\n if (plugins === null || plugins === undefined) {\n // Empty.\n } else if (typeof plugins === 'object' && 'length' in plugins) {\n while (++index < plugins.length) {\n add(plugins[index])\n }\n } else {\n throw new Error('Expected a list of plugins, not `' + plugins + '`')\n }\n }\n\n function addPlugin(plugin, value) {\n var entry = find(plugin)\n\n if (entry) {\n if (plain(entry[1]) && plain(value)) {\n value = extend(true, entry[1], value)\n }\n\n entry[1] = value\n } else {\n attachers.push(slice.call(arguments))\n }\n }\n }\n\n function find(plugin) {\n var index = -1\n\n while (++index < attachers.length) {\n if (attachers[index][0] === plugin) {\n return attachers[index]\n }\n }\n }\n\n // Parse a file (in string or vfile representation) into a unist node using\n // the `Parser` on the processor.\n function parse(doc) {\n var file = vfile(doc)\n var Parser\n\n freeze()\n Parser = processor.Parser\n assertParser('parse', Parser)\n\n if (newable(Parser, 'parse')) {\n return new Parser(String(file), file).parse()\n }\n\n return Parser(String(file), file) // eslint-disable-line new-cap\n }\n\n // Run transforms on a unist node representation of a file (in string or\n // vfile representation), async.\n function run(node, file, cb) {\n assertNode(node)\n freeze()\n\n if (!cb && typeof file === 'function') {\n cb = file\n file = null\n }\n\n if (!cb) {\n return new Promise(executor)\n }\n\n executor(null, cb)\n\n function executor(resolve, reject) {\n transformers.run(node, vfile(file), done)\n\n function done(error, tree, file) {\n tree = tree || node\n if (error) {\n reject(error)\n } else if (resolve) {\n resolve(tree)\n } else {\n cb(null, tree, file)\n }\n }\n }\n }\n\n // Run transforms on a unist node representation of a file (in string or\n // vfile representation), sync.\n function runSync(node, file) {\n var result\n var complete\n\n run(node, file, done)\n\n assertDone('runSync', 'run', complete)\n\n return result\n\n function done(error, tree) {\n complete = true\n result = tree\n bail(error)\n }\n }\n\n // Stringify a unist node representation of a file (in string or vfile\n // representation) into a string using the `Compiler` on the processor.\n function stringify(node, doc) {\n var file = vfile(doc)\n var Compiler\n\n freeze()\n Compiler = processor.Compiler\n assertCompiler('stringify', Compiler)\n assertNode(node)\n\n if (newable(Compiler, 'compile')) {\n return new Compiler(node, file).compile()\n }\n\n return Compiler(node, file) // eslint-disable-line new-cap\n }\n\n // Parse a file (in string or vfile representation) into a unist node using\n // the `Parser` on the processor, then run transforms on that node, and\n // compile the resulting node using the `Compiler` on the processor, and\n // store that result on the vfile.\n function process(doc, cb) {\n freeze()\n assertParser('process', processor.Parser)\n assertCompiler('process', processor.Compiler)\n\n if (!cb) {\n return new Promise(executor)\n }\n\n executor(null, cb)\n\n function executor(resolve, reject) {\n var file = vfile(doc)\n\n pipeline.run(processor, {file: file}, done)\n\n function done(error) {\n if (error) {\n reject(error)\n } else if (resolve) {\n resolve(file)\n } else {\n cb(null, file)\n }\n }\n }\n }\n\n // Process the given document (in string or vfile representation), sync.\n function processSync(doc) {\n var file\n var complete\n\n freeze()\n assertParser('processSync', processor.Parser)\n assertCompiler('processSync', processor.Compiler)\n file = vfile(doc)\n\n process(file, done)\n\n assertDone('processSync', 'process', complete)\n\n return file\n\n function done(error) {\n complete = true\n bail(error)\n }\n }\n}\n\n// Check if `value` is a constructor.\nfunction newable(value, name) {\n return (\n typeof value === 'function' &&\n value.prototype &&\n // A function with keys in its prototype is probably a constructor.\n // Classes prototype methods are not enumerable, so we check if some value\n // exists in the prototype.\n (keys(value.prototype) || name in value.prototype)\n )\n}\n\n// Check if `value` is an object with keys.\nfunction keys(value) {\n var key\n for (key in value) {\n return true\n }\n\n return false\n}\n\n// Assert a parser is available.\nfunction assertParser(name, Parser) {\n if (typeof Parser !== 'function') {\n throw new Error('Cannot `' + name + '` without `Parser`')\n }\n}\n\n// Assert a compiler is available.\nfunction assertCompiler(name, Compiler) {\n if (typeof Compiler !== 'function') {\n throw new Error('Cannot `' + name + '` without `Compiler`')\n }\n}\n\n// Assert the processor is not frozen.\nfunction assertUnfrozen(name, frozen) {\n if (frozen) {\n throw new Error(\n 'Cannot invoke `' +\n name +\n '` on a frozen processor.\\nCreate a new processor first, by invoking it: use `processor()` instead of `processor`.'\n )\n }\n}\n\n// Assert `node` is a unist node.\nfunction assertNode(node) {\n if (!node || typeof node.type !== 'string') {\n throw new Error('Expected node, got `' + node + '`')\n }\n}\n\n// Assert that `complete` is `true`.\nfunction assertDone(name, asyncName, complete) {\n if (!complete) {\n throw new Error(\n '`' + name + '` finished async. Use `' + asyncName + '` instead'\n )\n }\n}\n","'use strict'\n\nmodule.exports = bail\n\nfunction bail(err) {\n if (err) {\n throw err\n }\n}\n","'use strict';\n\nmodule.exports = value => {\n\tif (Object.prototype.toString.call(value) !== '[object Object]') {\n\t\treturn false;\n\t}\n\n\tconst prototype = Object.getPrototypeOf(value);\n\treturn prototype === null || prototype === Object.prototype;\n};\n","'use strict'\n\nvar wrap = require('./wrap.js')\n\nmodule.exports = trough\n\ntrough.wrap = wrap\n\nvar slice = [].slice\n\n// Create new middleware.\nfunction trough() {\n var fns = []\n var middleware = {}\n\n middleware.run = run\n middleware.use = use\n\n return middleware\n\n // Run `fns`. Last argument must be a completion handler.\n function run() {\n var index = -1\n var input = slice.call(arguments, 0, -1)\n var done = arguments[arguments.length - 1]\n\n if (typeof done !== 'function') {\n throw new Error('Expected function as last argument, not ' + done)\n }\n\n next.apply(null, [null].concat(input))\n\n // Run the next `fn`, if any.\n function next(err) {\n var fn = fns[++index]\n var params = slice.call(arguments, 0)\n var values = params.slice(1)\n var length = input.length\n var pos = -1\n\n if (err) {\n done(err)\n return\n }\n\n // Copy non-nully input into values.\n while (++pos < length) {\n if (values[pos] === null || values[pos] === undefined) {\n values[pos] = input[pos]\n }\n }\n\n input = values\n\n // Next or done.\n if (fn) {\n wrap(fn, next).apply(null, input)\n } else {\n done.apply(null, [null].concat(input))\n }\n }\n }\n\n // Add `fn` to the list.\n function use(fn) {\n if (typeof fn !== 'function') {\n throw new Error('Expected `fn` to be a function, not ' + fn)\n }\n\n fns.push(fn)\n\n return middleware\n }\n}\n","'use strict'\n\nvar slice = [].slice\n\nmodule.exports = wrap\n\n// Wrap `fn`.\n// Can be sync or async; return a promise, receive a completion handler, return\n// new values and errors.\nfunction wrap(fn, callback) {\n var invoked\n\n return wrapped\n\n function wrapped() {\n var params = slice.call(arguments, 0)\n var callback = fn.length > params.length\n var result\n\n if (callback) {\n params.push(done)\n }\n\n try {\n result = fn.apply(null, params)\n } catch (error) {\n // Well, this is quite the pickle.\n // `fn` received a callback and invoked it (thus continuing the pipeline),\n // but later also threw an error.\n // Were not about to restart the pipeline again, so the only thing left\n // to do is to throw the thing instead.\n if (callback && invoked) {\n throw error\n }\n\n return done(error)\n }\n\n if (!callback) {\n if (result && typeof result.then === 'function') {\n result.then(then, done)\n } else if (result instanceof Error) {\n done(result)\n } else {\n then(result)\n }\n }\n }\n\n // Invoke `next`, only once.\n function done() {\n if (!invoked) {\n invoked = true\n\n callback.apply(null, arguments)\n }\n }\n\n // Invoke `done` with one value.\n // Tracks if an error is passed, too.\n function then(value) {\n done(null, value)\n }\n}\n","'use strict'\n\nmodule.exports = parse\n\nvar fromMarkdown = require('mdast-util-from-markdown')\n\nfunction parse(options) {\n var self = this\n\n this.Parser = parse\n\n function parse(doc) {\n return fromMarkdown(\n doc,\n Object.assign({}, self.data('settings'), options, {\n // Note: these options are not in the readme.\n // The goal is for them to be set by plugins on `data` instead of being\n // passed by users.\n extensions: self.data('micromarkExtensions') || [],\n mdastExtensions: self.data('fromMarkdownExtensions') || []\n })\n )\n }\n}\n","'use strict'\n\nmodule.exports = require('./dist')\n","'use strict'\n\nmodule.exports = fromMarkdown\n\n// These three are compiled away in the `dist/`\n\nvar toString = require('mdast-util-to-string')\nvar assign = require('micromark/dist/constant/assign')\nvar own = require('micromark/dist/constant/has-own-property')\nvar normalizeIdentifier = require('micromark/dist/util/normalize-identifier')\nvar safeFromInt = require('micromark/dist/util/safe-from-int')\nvar parser = require('micromark/dist/parse')\nvar preprocessor = require('micromark/dist/preprocess')\nvar postprocess = require('micromark/dist/postprocess')\nvar decode = require('parse-entities/decode-entity')\nvar stringifyPosition = require('unist-util-stringify-position')\n\nfunction fromMarkdown(value, encoding, options) {\n if (typeof encoding !== 'string') {\n options = encoding\n encoding = undefined\n }\n\n return compiler(options)(\n postprocess(\n parser(options).document().write(preprocessor()(value, encoding, true))\n )\n )\n}\n\n// Note this compiler only understand complete buffering, not streaming.\nfunction compiler(options) {\n var settings = options || {}\n var config = configure(\n {\n transforms: [],\n canContainEols: [\n 'emphasis',\n 'fragment',\n 'heading',\n 'paragraph',\n 'strong'\n ],\n\n enter: {\n autolink: opener(link),\n autolinkProtocol: onenterdata,\n autolinkEmail: onenterdata,\n atxHeading: opener(heading),\n blockQuote: opener(blockQuote),\n characterEscape: onenterdata,\n characterReference: onenterdata,\n codeFenced: opener(codeFlow),\n codeFencedFenceInfo: buffer,\n codeFencedFenceMeta: buffer,\n codeIndented: opener(codeFlow, buffer),\n codeText: opener(codeText, buffer),\n codeTextData: onenterdata,\n data: onenterdata,\n codeFlowValue: onenterdata,\n definition: opener(definition),\n definitionDestinationString: buffer,\n definitionLabelString: buffer,\n definitionTitleString: buffer,\n emphasis: opener(emphasis),\n hardBreakEscape: opener(hardBreak),\n hardBreakTrailing: opener(hardBreak),\n htmlFlow: opener(html, buffer),\n htmlFlowData: onenterdata,\n htmlText: opener(html, buffer),\n htmlTextData: onenterdata,\n image: opener(image),\n label: buffer,\n link: opener(link),\n listItem: opener(listItem),\n listItemValue: onenterlistitemvalue,\n listOrdered: opener(list, onenterlistordered),\n listUnordered: opener(list),\n paragraph: opener(paragraph),\n reference: onenterreference,\n referenceString: buffer,\n resourceDestinationString: buffer,\n resourceTitleString: buffer,\n setextHeading: opener(heading),\n strong: opener(strong),\n thematicBreak: opener(thematicBreak)\n },\n\n exit: {\n atxHeading: closer(),\n atxHeadingSequence: onexitatxheadingsequence,\n autolink: closer(),\n autolinkEmail: onexitautolinkemail,\n autolinkProtocol: onexitautolinkprotocol,\n blockQuote: closer(),\n characterEscapeValue: onexitdata,\n characterReferenceMarkerHexadecimal: onexitcharacterreferencemarker,\n characterReferenceMarkerNumeric: onexitcharacterreferencemarker,\n characterReferenceValue: onexitcharacterreferencevalue,\n codeFenced: closer(onexitcodefenced),\n codeFencedFence: onexitcodefencedfence,\n codeFencedFenceInfo: onexitcodefencedfenceinfo,\n codeFencedFenceMeta: onexitcodefencedfencemeta,\n codeFlowValue: onexitdata,\n codeIndented: closer(onexitcodeindented),\n codeText: closer(onexitcodetext),\n codeTextData: onexitdata,\n data: onexitdata,\n definition: closer(),\n definitionDestinationString: onexitdefinitiondestinationstring,\n definitionLabelString: onexitdefinitionlabelstring,\n definitionTitleString: onexitdefinitiontitlestring,\n emphasis: closer(),\n hardBreakEscape: closer(onexithardbreak),\n hardBreakTrailing: closer(onexithardbreak),\n htmlFlow: closer(onexithtmlflow),\n htmlFlowData: onexitdata,\n htmlText: closer(onexithtmltext),\n htmlTextData: onexitdata,\n image: closer(onexitimage),\n label: onexitlabel,\n labelText: onexitlabeltext,\n lineEnding: onexitlineending,\n link: closer(onexitlink),\n listItem: closer(),\n listOrdered: closer(),\n listUnordered: closer(),\n paragraph: closer(),\n referenceString: onexitreferencestring,\n resourceDestinationString: onexitresourcedestinationstring,\n resourceTitleString: onexitresourcetitlestring,\n resource: onexitresource,\n setextHeading: closer(onexitsetextheading),\n setextHeadingLineSequence: onexitsetextheadinglinesequence,\n setextHeadingText: onexitsetextheadingtext,\n strong: closer(),\n thematicBreak: closer()\n }\n },\n\n settings.mdastExtensions || []\n )\n\n var data = {}\n\n return compile\n\n function compile(events) {\n var tree = {type: 'root', children: []}\n var stack = [tree]\n var tokenStack = []\n var listStack = []\n var index = -1\n var handler\n var listStart\n\n var context = {\n stack: stack,\n tokenStack: tokenStack,\n config: config,\n enter: enter,\n exit: exit,\n buffer: buffer,\n resume: resume,\n setData: setData,\n getData: getData\n }\n\n while (++index < events.length) {\n // We preprocess lists to add `listItem` tokens, and to infer whether\n // items the list itself are spread out.\n if (\n events[index][1].type === 'listOrdered' ||\n events[index][1].type === 'listUnordered'\n ) {\n if (events[index][0] === 'enter') {\n listStack.push(index)\n } else {\n listStart = listStack.pop(index)\n index = prepareList(events, listStart, index)\n }\n }\n }\n\n index = -1\n\n while (++index < events.length) {\n handler = config[events[index][0]]\n\n if (own.call(handler, events[index][1].type)) {\n handler[events[index][1].type].call(\n assign({sliceSerialize: events[index][2].sliceSerialize}, context),\n events[index][1]\n )\n }\n }\n\n if (tokenStack.length) {\n throw new Error(\n 'Cannot close document, a token (`' +\n tokenStack[tokenStack.length - 1].type +\n '`, ' +\n stringifyPosition({\n start: tokenStack[tokenStack.length - 1].start,\n end: tokenStack[tokenStack.length - 1].end\n }) +\n ') is still open'\n )\n }\n\n // Figure out `root` position.\n tree.position = {\n start: point(\n events.length ? events[0][1].start : {line: 1, column: 1, offset: 0}\n ),\n\n end: point(\n events.length\n ? events[events.length - 2][1].end\n : {line: 1, column: 1, offset: 0}\n )\n }\n\n index = -1\n while (++index < config.transforms.length) {\n tree = config.transforms[index](tree) || tree\n }\n\n return tree\n }\n\n function prepareList(events, start, length) {\n var index = start - 1\n var containerBalance = -1\n var listSpread = false\n var listItem\n var tailIndex\n var lineIndex\n var tailEvent\n var event\n var firstBlankLineIndex\n var atMarker\n\n while (++index <= length) {\n event = events[index]\n\n if (\n event[1].type === 'listUnordered' ||\n event[1].type === 'listOrdered' ||\n event[1].type === 'blockQuote'\n ) {\n if (event[0] === 'enter') {\n containerBalance++\n } else {\n containerBalance--\n }\n\n atMarker = undefined\n } else if (event[1].type === 'lineEndingBlank') {\n if (event[0] === 'enter') {\n if (\n listItem &&\n !atMarker &&\n !containerBalance &&\n !firstBlankLineIndex\n ) {\n firstBlankLineIndex = index\n }\n\n atMarker = undefined\n }\n } else if (\n event[1].type === 'linePrefix' ||\n event[1].type === 'listItemValue' ||\n event[1].type === 'listItemMarker' ||\n event[1].type === 'listItemPrefix' ||\n event[1].type === 'listItemPrefixWhitespace'\n ) {\n // Empty.\n } else {\n atMarker = undefined\n }\n\n if (\n (!containerBalance &&\n event[0] === 'enter' &&\n event[1].type === 'listItemPrefix') ||\n (containerBalance === -1 &&\n event[0] === 'exit' &&\n (event[1].type === 'listUnordered' ||\n event[1].type === 'listOrdered'))\n ) {\n if (listItem) {\n tailIndex = index\n lineIndex = undefined\n\n while (tailIndex--) {\n tailEvent = events[tailIndex]\n\n if (\n tailEvent[1].type === 'lineEnding' ||\n tailEvent[1].type === 'lineEndingBlank'\n ) {\n if (tailEvent[0] === 'exit') continue\n\n if (lineIndex) {\n events[lineIndex][1].type = 'lineEndingBlank'\n listSpread = true\n }\n\n tailEvent[1].type = 'lineEnding'\n lineIndex = tailIndex\n } else if (\n tailEvent[1].type === 'linePrefix' ||\n tailEvent[1].type === 'blockQuotePrefix' ||\n tailEvent[1].type === 'blockQuotePrefixWhitespace' ||\n tailEvent[1].type === 'blockQuoteMarker' ||\n tailEvent[1].type === 'listItemIndent'\n ) {\n // Empty\n } else {\n break\n }\n }\n\n if (\n firstBlankLineIndex &&\n (!lineIndex || firstBlankLineIndex < lineIndex)\n ) {\n listItem._spread = true\n }\n\n // Fix position.\n listItem.end = point(\n lineIndex ? events[lineIndex][1].start : event[1].end\n )\n\n events.splice(lineIndex || index, 0, ['exit', listItem, event[2]])\n index++\n length++\n }\n\n // Create a new list item.\n if (event[1].type === 'listItemPrefix') {\n listItem = {\n type: 'listItem',\n _spread: false,\n start: point(event[1].start)\n }\n\n events.splice(index, 0, ['enter', listItem, event[2]])\n index++\n length++\n firstBlankLineIndex = undefined\n atMarker = true\n }\n }\n }\n\n events[start][1]._spread = listSpread\n return length\n }\n\n function setData(key, value) {\n data[key] = value\n }\n\n function getData(key) {\n return data[key]\n }\n\n function point(d) {\n return {line: d.line, column: d.column, offset: d.offset}\n }\n\n function opener(create, and) {\n return open\n\n function open(token) {\n enter.call(this, create(token), token)\n if (and) and.call(this, token)\n }\n }\n\n function buffer() {\n this.stack.push({type: 'fragment', children: []})\n }\n\n function enter(node, token) {\n this.stack[this.stack.length - 1].children.push(node)\n this.stack.push(node)\n this.tokenStack.push(token)\n node.position = {start: point(token.start)}\n return node\n }\n\n function closer(and) {\n return close\n\n function close(token) {\n if (and) and.call(this, token)\n exit.call(this, token)\n }\n }\n\n function exit(token) {\n var node = this.stack.pop()\n var open = this.tokenStack.pop()\n\n if (!open) {\n throw new Error(\n 'Cannot close `' +\n token.type +\n '` (' +\n stringifyPosition({start: token.start, end: token.end}) +\n '): its not open'\n )\n } else if (open.type !== token.type) {\n throw new Error(\n 'Cannot close `' +\n token.type +\n '` (' +\n stringifyPosition({start: token.start, end: token.end}) +\n '): a different token (`' +\n open.type +\n '`, ' +\n stringifyPosition({start: open.start, end: open.end}) +\n ') is open'\n )\n }\n\n node.position.end = point(token.end)\n return node\n }\n\n function resume() {\n return toString(this.stack.pop())\n }\n\n //\n // Handlers.\n //\n\n function onenterlistordered() {\n setData('expectingFirstListItemValue', true)\n }\n\n function onenterlistitemvalue(token) {\n if (getData('expectingFirstListItemValue')) {\n this.stack[this.stack.length - 2].start = parseInt(\n this.sliceSerialize(token),\n 10\n )\n\n setData('expectingFirstListItemValue')\n }\n }\n\n function onexitcodefencedfenceinfo() {\n var data = this.resume()\n this.stack[this.stack.length - 1].lang = data\n }\n\n function onexitcodefencedfencemeta() {\n var data = this.resume()\n this.stack[this.stack.length - 1].meta = data\n }\n\n function onexitcodefencedfence() {\n // Exit if this is the closing fence.\n if (getData('flowCodeInside')) return\n this.buffer()\n setData('flowCodeInside', true)\n }\n\n function onexitcodefenced() {\n var data = this.resume()\n this.stack[this.stack.length - 1].value = data.replace(\n /^(\\r?\\n|\\r)|(\\r?\\n|\\r)$/g,\n ''\n )\n\n setData('flowCodeInside')\n }\n\n function onexitcodeindented() {\n var data = this.resume()\n this.stack[this.stack.length - 1].value = data\n }\n\n function onexitdefinitionlabelstring(token) {\n // Discard label, use the source content instead.\n var label = this.resume()\n this.stack[this.stack.length - 1].label = label\n this.stack[this.stack.length - 1].identifier = normalizeIdentifier(\n this.sliceSerialize(token)\n ).toLowerCase()\n }\n\n function onexitdefinitiontitlestring() {\n var data = this.resume()\n this.stack[this.stack.length - 1].title = data\n }\n\n function onexitdefinitiondestinationstring() {\n var data = this.resume()\n this.stack[this.stack.length - 1].url = data\n }\n\n function onexitatxheadingsequence(token) {\n if (!this.stack[this.stack.length - 1].depth) {\n this.stack[this.stack.length - 1].depth = this.sliceSerialize(\n token\n ).length\n }\n }\n\n function onexitsetextheadingtext() {\n setData('setextHeadingSlurpLineEnding', true)\n }\n\n function onexitsetextheadinglinesequence(token) {\n this.stack[this.stack.length - 1].depth =\n this.sliceSerialize(token).charCodeAt(0) === 61 ? 1 : 2\n }\n\n function onexitsetextheading() {\n setData('setextHeadingSlurpLineEnding')\n }\n\n function onenterdata(token) {\n var siblings = this.stack[this.stack.length - 1].children\n var tail = siblings[siblings.length - 1]\n\n if (!tail || tail.type !== 'text') {\n // Add a new text node.\n tail = text()\n tail.position = {start: point(token.start)}\n this.stack[this.stack.length - 1].children.push(tail)\n }\n\n this.stack.push(tail)\n }\n\n function onexitdata(token) {\n var tail = this.stack.pop()\n tail.value += this.sliceSerialize(token)\n tail.position.end = point(token.end)\n }\n\n function onexitlineending(token) {\n var context = this.stack[this.stack.length - 1]\n\n // If were at a hard break, include the line ending in there.\n if (getData('atHardBreak')) {\n context.children[context.children.length - 1].position.end = point(\n token.end\n )\n\n setData('atHardBreak')\n return\n }\n\n if (\n !getData('setextHeadingSlurpLineEnding') &&\n config.canContainEols.indexOf(context.type) > -1\n ) {\n onenterdata.call(this, token)\n onexitdata.call(this, token)\n }\n }\n\n function onexithardbreak() {\n setData('atHardBreak', true)\n }\n\n function onexithtmlflow() {\n var data = this.resume()\n this.stack[this.stack.length - 1].value = data\n }\n\n function onexithtmltext() {\n var data = this.resume()\n this.stack[this.stack.length - 1].value = data\n }\n\n function onexitcodetext() {\n var data = this.resume()\n this.stack[this.stack.length - 1].value = data\n }\n\n function onexitlink() {\n var context = this.stack[this.stack.length - 1]\n\n // To do: clean.\n if (getData('inReference')) {\n context.type += 'Reference'\n context.referenceType = getData('referenceType') || 'shortcut'\n delete context.url\n delete context.title\n } else {\n delete context.identifier\n delete context.label\n delete context.referenceType\n }\n\n setData('referenceType')\n }\n\n function onexitimage() {\n var context = this.stack[this.stack.length - 1]\n\n // To do: clean.\n if (getData('inReference')) {\n context.type += 'Reference'\n context.referenceType = getData('referenceType') || 'shortcut'\n delete context.url\n delete context.title\n } else {\n delete context.identifier\n delete context.label\n delete context.referenceType\n }\n\n setData('referenceType')\n }\n\n function onexitlabeltext(token) {\n this.stack[this.stack.length - 2].identifier = normalizeIdentifier(\n this.sliceSerialize(token)\n ).toLowerCase()\n }\n\n function onexitlabel() {\n var fragment = this.stack[this.stack.length - 1]\n var value = this.resume()\n\n this.stack[this.stack.length - 1].label = value\n\n // Assume a reference.\n setData('inReference', true)\n\n if (this.stack[this.stack.length - 1].type === 'link') {\n this.stack[this.stack.length - 1].children = fragment.children\n } else {\n this.stack[this.stack.length - 1].alt = value\n }\n }\n\n function onexitresourcedestinationstring() {\n var data = this.resume()\n this.stack[this.stack.length - 1].url = data\n }\n\n function onexitresourcetitlestring() {\n var data = this.resume()\n this.stack[this.stack.length - 1].title = data\n }\n\n function onexitresource() {\n setData('inReference')\n }\n\n function onenterreference() {\n setData('referenceType', 'collapsed')\n }\n\n function onexitreferencestring(token) {\n var label = this.resume()\n this.stack[this.stack.length - 1].label = label\n this.stack[this.stack.length - 1].identifier = normalizeIdentifier(\n this.sliceSerialize(token)\n ).toLowerCase()\n setData('referenceType', 'full')\n }\n\n function onexitcharacterreferencemarker(token) {\n setData('characterReferenceType', token.type)\n }\n\n function onexitcharacterreferencevalue(token) {\n var data = this.sliceSerialize(token)\n var type = getData('characterReferenceType')\n var value\n var tail\n\n if (type) {\n value = safeFromInt(\n data,\n type === 'characterReferenceMarkerNumeric' ? 10 : 16\n )\n\n setData('characterReferenceType')\n } else {\n value = decode(data)\n }\n\n tail = this.stack.pop()\n tail.value += value\n tail.position.end = point(token.end)\n }\n\n function onexitautolinkprotocol(token) {\n onexitdata.call(this, token)\n this.stack[this.stack.length - 1].url = this.sliceSerialize(token)\n }\n\n function onexitautolinkemail(token) {\n onexitdata.call(this, token)\n this.stack[this.stack.length - 1].url =\n 'mailto:' + this.sliceSerialize(token)\n }\n\n //\n // Creaters.\n //\n\n function blockQuote() {\n return {type: 'blockquote', children: []}\n }\n\n function codeFlow() {\n return {type: 'code', lang: null, meta: null, value: ''}\n }\n\n function codeText() {\n return {type: 'inlineCode', value: ''}\n }\n\n function definition() {\n return {\n type: 'definition',\n identifier: '',\n label: null,\n title: null,\n url: ''\n }\n }\n\n function emphasis() {\n return {type: 'emphasis', children: []}\n }\n\n function heading() {\n return {type: 'heading', depth: undefined, children: []}\n }\n\n function hardBreak() {\n return {type: 'break'}\n }\n\n function html() {\n return {type: 'html', value: ''}\n }\n\n function image() {\n return {type: 'image', title: null, url: '', alt: null}\n }\n\n function link() {\n return {type: 'link', title: null, url: '', children: []}\n }\n\n function list(token) {\n return {\n type: 'list',\n ordered: token.type === 'listOrdered',\n start: null,\n spread: token._spread,\n children: []\n }\n }\n\n function listItem(token) {\n return {\n type: 'listItem',\n spread: token._spread,\n checked: null,\n children: []\n }\n }\n\n function paragraph() {\n return {type: 'paragraph', children: []}\n }\n\n function strong() {\n return {type: 'strong', children: []}\n }\n\n function text() {\n return {type: 'text', value: ''}\n }\n\n function thematicBreak() {\n return {type: 'thematicBreak'}\n }\n}\n\nfunction configure(config, extensions) {\n var index = -1\n\n while (++index < extensions.length) {\n extension(config, extensions[index])\n }\n\n return config\n}\n\nfunction extension(config, extension) {\n var key\n var left\n\n for (key in extension) {\n left = own.call(config, key) ? config[key] : (config[key] = {})\n\n if (key === 'canContainEols' || key === 'transforms') {\n config[key] = [].concat(left, extension[key])\n } else {\n Object.assign(left, extension[key])\n }\n }\n}\n","'use strict'\n\nmodule.exports = toString\n\n// Get the text content of a node.\n// Prefer the nodes plain-text fields, otherwise serialize its children,\n// and if the given value is an array, serialize the nodes in it.\nfunction toString(node) {\n return (\n (node &&\n (node.value ||\n node.alt ||\n node.title ||\n ('children' in node && all(node.children)) ||\n ('length' in node && all(node)))) ||\n ''\n )\n}\n\nfunction all(values) {\n var result = []\n var index = -1\n\n while (++index < values.length) {\n result[index] = toString(values[index])\n }\n\n return result.join('')\n}\n","'use strict'\n\nvar fromCharCode = require('../constant/from-char-code.js')\n\nfunction safeFromInt(value, base) {\n var code = parseInt(value, base)\n\n if (\n // C0 except for HT, LF, FF, CR, space\n code < 9 ||\n code === 11 ||\n (code > 13 && code < 32) || // Control character (DEL) of the basic block and C1 controls.\n (code > 126 && code < 160) || // Lone high surrogates and low surrogates.\n (code > 55295 && code < 57344) || // Noncharacters.\n (code > 64975 && code < 65008) ||\n (code & 65535) === 65535 ||\n (code & 65535) === 65534 || // Out of range\n code > 1114111\n ) {\n return '\\uFFFD'\n }\n\n return fromCharCode(code)\n}\n\nmodule.exports = safeFromInt\n","'use strict'\n\nvar content = require('./initialize/content.js')\nvar document = require('./initialize/document.js')\nvar flow = require('./initialize/flow.js')\nvar text = require('./initialize/text.js')\nvar combineExtensions = require('./util/combine-extensions.js')\nvar createTokenizer = require('./util/create-tokenizer.js')\nvar miniflat = require('./util/miniflat.js')\nvar constructs = require('./constructs.js')\n\nfunction parse(options) {\n var settings = options || {}\n var parser = {\n defined: [],\n constructs: combineExtensions(\n [constructs].concat(miniflat(settings.extensions))\n ),\n content: create(content),\n document: create(document),\n flow: create(flow),\n string: create(text.string),\n text: create(text.text)\n }\n return parser\n\n function create(initializer) {\n return creator\n\n function creator(from) {\n return createTokenizer(parser, initializer, from)\n }\n }\n}\n\nmodule.exports = parse\n","'use strict'\n\nObject.defineProperty(exports, '__esModule', {value: true})\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar factorySpace = require('../tokenize/factory-space.js')\n\nvar tokenize = initializeContent\n\nfunction initializeContent(effects) {\n var contentStart = effects.attempt(\n this.parser.constructs.contentInitial,\n afterContentStartConstruct,\n paragraphInitial\n )\n var previous\n return contentStart\n\n function afterContentStartConstruct(code) {\n if (code === null) {\n effects.consume(code)\n return\n }\n\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return factorySpace(effects, contentStart, 'linePrefix')\n }\n\n function paragraphInitial(code) {\n effects.enter('paragraph')\n return lineStart(code)\n }\n\n function lineStart(code) {\n var token = effects.enter('chunkText', {\n contentType: 'text',\n previous: previous\n })\n\n if (previous) {\n previous.next = token\n }\n\n previous = token\n return data(code)\n }\n\n function data(code) {\n if (code === null) {\n effects.exit('chunkText')\n effects.exit('paragraph')\n effects.consume(code)\n return\n }\n\n if (markdownLineEnding(code)) {\n effects.consume(code)\n effects.exit('chunkText')\n return lineStart\n } // Data.\n\n effects.consume(code)\n return data\n }\n}\n\nexports.tokenize = tokenize\n","'use strict'\n\nObject.defineProperty(exports, '__esModule', {value: true})\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar factorySpace = require('../tokenize/factory-space.js')\nvar partialBlankLine = require('../tokenize/partial-blank-line.js')\n\nvar tokenize = initializeDocument\nvar containerConstruct = {\n tokenize: tokenizeContainer\n}\nvar lazyFlowConstruct = {\n tokenize: tokenizeLazyFlow\n}\n\nfunction initializeDocument(effects) {\n var self = this\n var stack = []\n var continued = 0\n var inspectConstruct = {\n tokenize: tokenizeInspect,\n partial: true\n }\n var inspectResult\n var childFlow\n var childToken\n return start\n\n function start(code) {\n if (continued < stack.length) {\n self.containerState = stack[continued][1]\n return effects.attempt(\n stack[continued][0].continuation,\n documentContinue,\n documentContinued\n )(code)\n }\n\n return documentContinued(code)\n }\n\n function documentContinue(code) {\n continued++\n return start(code)\n }\n\n function documentContinued(code) {\n // If were in a concrete construct (such as when expecting another line of\n // HTML, or we resulted in lazy content), we can immediately start flow.\n if (inspectResult && inspectResult.flowContinue) {\n return flowStart(code)\n }\n\n self.interrupt =\n childFlow &&\n childFlow.currentConstruct &&\n childFlow.currentConstruct.interruptible\n self.containerState = {}\n return effects.attempt(\n containerConstruct,\n containerContinue,\n flowStart\n )(code)\n }\n\n function containerContinue(code) {\n stack.push([self.currentConstruct, self.containerState])\n self.containerState = undefined\n return documentContinued(code)\n }\n\n function flowStart(code) {\n if (code === null) {\n exitContainers(0, true)\n effects.consume(code)\n return\n }\n\n childFlow = childFlow || self.parser.flow(self.now())\n effects.enter('chunkFlow', {\n contentType: 'flow',\n previous: childToken,\n _tokenizer: childFlow\n })\n return flowContinue(code)\n }\n\n function flowContinue(code) {\n if (code === null) {\n continueFlow(effects.exit('chunkFlow'))\n return flowStart(code)\n }\n\n if (markdownLineEnding(code)) {\n effects.consume(code)\n continueFlow(effects.exit('chunkFlow'))\n return effects.check(inspectConstruct, documentAfterPeek)\n }\n\n effects.consume(code)\n return flowContinue\n }\n\n function documentAfterPeek(code) {\n exitContainers(\n inspectResult.continued,\n inspectResult && inspectResult.flowEnd\n )\n continued = 0\n return start(code)\n }\n\n function continueFlow(token) {\n if (childToken) childToken.next = token\n childToken = token\n childFlow.lazy = inspectResult && inspectResult.lazy\n childFlow.defineSkip(token.start)\n childFlow.write(self.sliceStream(token))\n }\n\n function exitContainers(size, end) {\n var index = stack.length // Close the flow.\n\n if (childFlow && end) {\n childFlow.write([null])\n childToken = childFlow = undefined\n } // Exit open containers.\n\n while (index-- > size) {\n self.containerState = stack[index][1]\n stack[index][0].exit.call(self, effects)\n }\n\n stack.length = size\n }\n\n function tokenizeInspect(effects, ok) {\n var subcontinued = 0\n inspectResult = {}\n return inspectStart\n\n function inspectStart(code) {\n if (subcontinued < stack.length) {\n self.containerState = stack[subcontinued][1]\n return effects.attempt(\n stack[subcontinued][0].continuation,\n inspectContinue,\n inspectLess\n )(code)\n } // If were continued but in a concrete flow, we cant have more\n // containers.\n\n if (childFlow.currentConstruct && childFlow.currentConstruct.concrete) {\n inspectResult.flowContinue = true\n return inspectDone(code)\n }\n\n self.interrupt =\n childFlow.currentConstruct && childFlow.currentConstruct.interruptible\n self.containerState = {}\n return effects.attempt(\n containerConstruct,\n inspectFlowEnd,\n inspectDone\n )(code)\n }\n\n function inspectContinue(code) {\n subcontinued++\n return self.containerState._closeFlow\n ? inspectFlowEnd(code)\n : inspectStart(code)\n }\n\n function inspectLess(code) {\n if (childFlow.currentConstruct && childFlow.currentConstruct.lazy) {\n // Maybe another container?\n self.containerState = {}\n return effects.attempt(\n containerConstruct,\n inspectFlowEnd, // Maybe flow, or a blank line?\n effects.attempt(\n lazyFlowConstruct,\n inspectFlowEnd,\n effects.check(partialBlankLine, inspectFlowEnd, inspectLazy)\n )\n )(code)\n } // Otherwise were interrupting.\n\n return inspectFlowEnd(code)\n }\n\n function inspectLazy(code) {\n // Act as if all containers are continued.\n subcontinued = stack.length\n inspectResult.lazy = true\n inspectResult.flowContinue = true\n return inspectDone(code)\n } // Were done with flow if we have more containers, or an interruption.\n\n function inspectFlowEnd(code) {\n inspectResult.flowEnd = true\n return inspectDone(code)\n }\n\n function inspectDone(code) {\n inspectResult.continued = subcontinued\n self.interrupt = self.containerState = undefined\n return ok(code)\n }\n }\n}\n\nfunction tokenizeContainer(effects, ok, nok) {\n return factorySpace(\n effects,\n effects.attempt(this.parser.constructs.document, ok, nok),\n 'linePrefix',\n this.parser.constructs.disable.null.indexOf('codeIndented') > -1\n ? undefined\n : 4\n )\n}\n\nfunction tokenizeLazyFlow(effects, ok, nok) {\n return factorySpace(\n effects,\n effects.lazy(this.parser.constructs.flow, ok, nok),\n 'linePrefix',\n this.parser.constructs.disable.null.indexOf('codeIndented') > -1\n ? undefined\n : 4\n )\n}\n\nexports.tokenize = tokenize\n","'use strict'\n\nObject.defineProperty(exports, '__esModule', {value: true})\n\nvar content = require('../tokenize/content.js')\nvar factorySpace = require('../tokenize/factory-space.js')\nvar partialBlankLine = require('../tokenize/partial-blank-line.js')\n\nvar tokenize = initializeFlow\n\nfunction initializeFlow(effects) {\n var self = this\n var initial = effects.attempt(\n // Try to parse a blank line.\n partialBlankLine,\n atBlankEnding, // Try to parse initial flow (essentially, only code).\n effects.attempt(\n this.parser.constructs.flowInitial,\n afterConstruct,\n factorySpace(\n effects,\n effects.attempt(\n this.parser.constructs.flow,\n afterConstruct,\n effects.attempt(content, afterConstruct)\n ),\n 'linePrefix'\n )\n )\n )\n return initial\n\n function atBlankEnding(code) {\n if (code === null) {\n effects.consume(code)\n return\n }\n\n effects.enter('lineEndingBlank')\n effects.consume(code)\n effects.exit('lineEndingBlank')\n self.currentConstruct = undefined\n return initial\n }\n\n function afterConstruct(code) {\n if (code === null) {\n effects.consume(code)\n return\n }\n\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n self.currentConstruct = undefined\n return initial\n }\n}\n\nexports.tokenize = tokenize\n","'use strict'\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar prefixSize = require('../util/prefix-size.js')\nvar subtokenize = require('../util/subtokenize.js')\nvar factorySpace = require('./factory-space.js')\n\n// No name because it must not be turned off.\nvar content = {\n tokenize: tokenizeContent,\n resolve: resolveContent,\n interruptible: true,\n lazy: true\n}\nvar continuationConstruct = {\n tokenize: tokenizeContinuation,\n partial: true\n} // Content is transparent: its parsed right now. That way, definitions are also\n// parsed right now: before text in paragraphs (specifically, media) are parsed.\n\nfunction resolveContent(events) {\n subtokenize(events)\n return events\n}\n\nfunction tokenizeContent(effects, ok) {\n var previous\n return start\n\n function start(code) {\n effects.enter('content')\n previous = effects.enter('chunkContent', {\n contentType: 'content'\n })\n return data(code)\n }\n\n function data(code) {\n if (code === null) {\n return contentEnd(code)\n }\n\n if (markdownLineEnding(code)) {\n return effects.check(\n continuationConstruct,\n contentContinue,\n contentEnd\n )(code)\n } // Data.\n\n effects.consume(code)\n return data\n }\n\n function contentEnd(code) {\n effects.exit('chunkContent')\n effects.exit('content')\n return ok(code)\n }\n\n function contentContinue(code) {\n effects.consume(code)\n effects.exit('chunkContent')\n previous = previous.next = effects.enter('chunkContent', {\n contentType: 'content',\n previous: previous\n })\n return data\n }\n}\n\nfunction tokenizeContinuation(effects, ok, nok) {\n var self = this\n return startLookahead\n\n function startLookahead(code) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return factorySpace(effects, prefixed, 'linePrefix')\n }\n\n function prefixed(code) {\n if (code === null || markdownLineEnding(code)) {\n return nok(code)\n }\n\n if (\n self.parser.constructs.disable.null.indexOf('codeIndented') > -1 ||\n prefixSize(self.events, 'linePrefix') < 4\n ) {\n return effects.interrupt(self.parser.constructs.flow, nok, ok)(code)\n }\n\n return ok(code)\n }\n}\n\nmodule.exports = content\n","'use strict'\n\nvar splice = [].splice\n\nmodule.exports = splice\n","'use strict'\n\nvar assign = require('../constant/assign.js')\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar chunkedPush = require('./chunked-push.js')\nvar chunkedSplice = require('./chunked-splice.js')\nvar miniflat = require('./miniflat.js')\nvar resolveAll = require('./resolve-all.js')\nvar serializeChunks = require('./serialize-chunks.js')\nvar shallow = require('./shallow.js')\nvar sliceChunks = require('./slice-chunks.js')\n\n// Create a tokenizer.\n// Tokenizers deal with one type of data (e.g., containers, flow, text).\n// The parser is the object dealing with it all.\n// `initialize` works like other constructs, except that only its `tokenize`\n// function is used, in which case it doesnt receive an `ok` or `nok`.\n// `from` can be given to set the point before the first character, although\n// when further lines are indented, they must be set with `defineSkip`.\nfunction createTokenizer(parser, initialize, from) {\n var point = from\n ? shallow(from)\n : {\n line: 1,\n column: 1,\n offset: 0\n }\n var columnStart = {}\n var resolveAllConstructs = []\n var chunks = []\n var stack = []\n\n var effects = {\n consume: consume,\n enter: enter,\n exit: exit,\n attempt: constructFactory(onsuccessfulconstruct),\n check: constructFactory(onsuccessfulcheck),\n interrupt: constructFactory(onsuccessfulcheck, {\n interrupt: true\n }),\n lazy: constructFactory(onsuccessfulcheck, {\n lazy: true\n })\n } // State and tools for resolving and serializing.\n\n var context = {\n previous: null,\n events: [],\n parser: parser,\n sliceStream: sliceStream,\n sliceSerialize: sliceSerialize,\n now: now,\n defineSkip: skip,\n write: write\n } // The state function.\n\n var state = initialize.tokenize.call(context, effects) // Track which character we expect to be consumed, to catch bugs.\n\n if (initialize.resolveAll) {\n resolveAllConstructs.push(initialize)\n } // Store where we are in the input stream.\n\n point._index = 0\n point._bufferIndex = -1\n return context\n\n function write(slice) {\n chunks = chunkedPush(chunks, slice)\n main() // Exit if were not done, resolve might change stuff.\n\n if (chunks[chunks.length - 1] !== null) {\n return []\n }\n\n addResult(initialize, 0) // Otherwise, resolve, and exit.\n\n context.events = resolveAll(resolveAllConstructs, context.events, context)\n return context.events\n } //\n // Tools.\n //\n\n function sliceSerialize(token) {\n return serializeChunks(sliceStream(token))\n }\n\n function sliceStream(token) {\n return sliceChunks(chunks, token)\n }\n\n function now() {\n return shallow(point)\n }\n\n function skip(value) {\n columnStart[value.line] = value.column\n accountForPotentialSkip()\n } //\n // State management.\n //\n // Main loop (note that `_index` and `_bufferIndex` in `point` are modified by\n // `consume`).\n // Here is where we walk through the chunks, which either include strings of\n // several characters, or numerical character codes.\n // The reason to do this in a loop instead of a call is so the stack can\n // drain.\n\n function main() {\n var chunkIndex\n var chunk\n\n while (point._index < chunks.length) {\n chunk = chunks[point._index] // If were in a buffer chunk, loop through it.\n\n if (typeof chunk === 'string') {\n chunkIndex = point._index\n\n if (point._bufferIndex < 0) {\n point._bufferIndex = 0\n }\n\n while (\n point._index === chunkIndex &&\n point._bufferIndex < chunk.length\n ) {\n go(chunk.charCodeAt(point._bufferIndex))\n }\n } else {\n go(chunk)\n }\n }\n } // Deal with one code.\n\n function go(code) {\n state = state(code)\n } // Move a character forward.\n\n function consume(code) {\n if (markdownLineEnding(code)) {\n point.line++\n point.column = 1\n point.offset += code === -3 ? 2 : 1\n accountForPotentialSkip()\n } else if (code !== -1) {\n point.column++\n point.offset++\n } // Not in a string chunk.\n\n if (point._bufferIndex < 0) {\n point._index++\n } else {\n point._bufferIndex++ // At end of string chunk.\n\n if (point._bufferIndex === chunks[point._index].length) {\n point._bufferIndex = -1\n point._index++\n }\n } // Expose the previous character.\n\n context.previous = code // Mark as consumed.\n } // Start a token.\n\n function enter(type, fields) {\n var token = fields || {}\n token.type = type\n token.start = now()\n context.events.push(['enter', token, context])\n stack.push(token)\n return token\n } // Stop a token.\n\n function exit(type) {\n var token = stack.pop()\n token.end = now()\n context.events.push(['exit', token, context])\n return token\n } // Use results.\n\n function onsuccessfulconstruct(construct, info) {\n addResult(construct, info.from)\n } // Discard results.\n\n function onsuccessfulcheck(construct, info) {\n info.restore()\n } // Factory to attempt/check/interrupt.\n\n function constructFactory(onreturn, fields) {\n return hook // Handle either an object mapping codes to constructs, a list of\n // constructs, or a single construct.\n\n function hook(constructs, returnState, bogusState) {\n var listOfConstructs\n var constructIndex\n var currentConstruct\n var info\n return constructs.tokenize || 'length' in constructs\n ? handleListOfConstructs(miniflat(constructs))\n : handleMapOfConstructs\n\n function handleMapOfConstructs(code) {\n if (code in constructs || null in constructs) {\n return handleListOfConstructs(\n constructs.null\n ? /* c8 ignore next */\n miniflat(constructs[code]).concat(miniflat(constructs.null))\n : constructs[code]\n )(code)\n }\n\n return bogusState(code)\n }\n\n function handleListOfConstructs(list) {\n listOfConstructs = list\n constructIndex = 0\n return handleConstruct(list[constructIndex])\n }\n\n function handleConstruct(construct) {\n return start\n\n function start(code) {\n // To do: not nede to store if there is no bogus state, probably?\n // Currently doesnt work because `inspect` in document does a check\n // w/o a bogus, which doesnt make sense. But it does seem to help perf\n // by not storing.\n info = store()\n currentConstruct = construct\n\n if (!construct.partial) {\n context.currentConstruct = construct\n }\n\n if (\n construct.name &&\n context.parser.constructs.disable.null.indexOf(construct.name) > -1\n ) {\n return nok()\n }\n\n return construct.tokenize.call(\n fields ? assign({}, context, fields) : context,\n effects,\n ok,\n nok\n )(code)\n }\n }\n\n function ok(code) {\n onreturn(currentConstruct, info)\n return returnState\n }\n\n function nok(code) {\n info.restore()\n\n if (++constructIndex < listOfConstructs.length) {\n return handleConstruct(listOfConstructs[constructIndex])\n }\n\n return bogusState\n }\n }\n }\n\n function addResult(construct, from) {\n if (construct.resolveAll && resolveAllConstructs.indexOf(construct) < 0) {\n resolveAllConstructs.push(construct)\n }\n\n if (construct.resolve) {\n chunkedSplice(\n context.events,\n from,\n context.events.length - from,\n construct.resolve(context.events.slice(from), context)\n )\n }\n\n if (construct.resolveTo) {\n context.events = construct.resolveTo(context.events, context)\n }\n }\n\n function store() {\n var startPoint = now()\n var startPrevious = context.previous\n var startCurrentConstruct = context.currentConstruct\n var startEventsIndex = context.events.length\n var startStack = Array.from(stack)\n return {\n restore: restore,\n from: startEventsIndex\n }\n\n function restore() {\n point = startPoint\n context.previous = startPrevious\n context.currentConstruct = startCurrentConstruct\n context.events.length = startEventsIndex\n stack = startStack\n accountForPotentialSkip()\n }\n }\n\n function accountForPotentialSkip() {\n if (point.line in columnStart && point.column < 2) {\n point.column = columnStart[point.line]\n point.offset += columnStart[point.line] - 1\n }\n }\n}\n\nmodule.exports = createTokenizer\n","'use strict'\n\nvar fromCharCode = require('../constant/from-char-code.js')\n\nfunction serializeChunks(chunks) {\n var index = -1\n var result = []\n var chunk\n var value\n var atTab\n\n while (++index < chunks.length) {\n chunk = chunks[index]\n\n if (typeof chunk === 'string') {\n value = chunk\n } else if (chunk === -5) {\n value = '\\r'\n } else if (chunk === -4) {\n value = '\\n'\n } else if (chunk === -3) {\n value = '\\r' + '\\n'\n } else if (chunk === -2) {\n value = '\\t'\n } else if (chunk === -1) {\n if (atTab) continue\n value = ' '\n } else {\n // Currently only replacement character.\n value = fromCharCode(chunk)\n }\n\n atTab = chunk === -2\n result.push(value)\n }\n\n return result.join('')\n}\n\nmodule.exports = serializeChunks\n","'use strict'\n\nfunction sliceChunks(chunks, token) {\n var startIndex = token.start._index\n var startBufferIndex = token.start._bufferIndex\n var endIndex = token.end._index\n var endBufferIndex = token.end._bufferIndex\n var view\n\n if (startIndex === endIndex) {\n view = [chunks[startIndex].slice(startBufferIndex, endBufferIndex)]\n } else {\n view = chunks.slice(startIndex, endIndex)\n\n if (startBufferIndex > -1) {\n view[0] = view[0].slice(startBufferIndex)\n }\n\n if (endBufferIndex > 0) {\n view.push(chunks[endIndex].slice(0, endBufferIndex))\n }\n }\n\n return view\n}\n\nmodule.exports = sliceChunks\n","'use strict'\n\nObject.defineProperty(exports, '__esModule', {value: true})\n\nvar text$1 = require('./initialize/text.js')\nvar attention = require('./tokenize/attention.js')\nvar autolink = require('./tokenize/autolink.js')\nvar blockQuote = require('./tokenize/block-quote.js')\nvar characterEscape = require('./tokenize/character-escape.js')\nvar characterReference = require('./tokenize/character-reference.js')\nvar codeFenced = require('./tokenize/code-fenced.js')\nvar codeIndented = require('./tokenize/code-indented.js')\nvar codeText = require('./tokenize/code-text.js')\nvar definition = require('./tokenize/definition.js')\nvar hardBreakEscape = require('./tokenize/hard-break-escape.js')\nvar headingAtx = require('./tokenize/heading-atx.js')\nvar htmlFlow = require('./tokenize/html-flow.js')\nvar htmlText = require('./tokenize/html-text.js')\nvar labelEnd = require('./tokenize/label-end.js')\nvar labelStartImage = require('./tokenize/label-start-image.js')\nvar labelStartLink = require('./tokenize/label-start-link.js')\nvar lineEnding = require('./tokenize/line-ending.js')\nvar list = require('./tokenize/list.js')\nvar setextUnderline = require('./tokenize/setext-underline.js')\nvar thematicBreak = require('./tokenize/thematic-break.js')\n\nvar document = {\n 42: list,\n // Asterisk\n 43: list,\n // Plus sign\n 45: list,\n // Dash\n 48: list,\n // 0\n 49: list,\n // 1\n 50: list,\n // 2\n 51: list,\n // 3\n 52: list,\n // 4\n 53: list,\n // 5\n 54: list,\n // 6\n 55: list,\n // 7\n 56: list,\n // 8\n 57: list,\n // 9\n 62: blockQuote // Greater than\n}\nvar contentInitial = {\n 91: definition // Left square bracket\n}\nvar flowInitial = {\n '-2': codeIndented,\n // Horizontal tab\n '-1': codeIndented,\n // Virtual space\n 32: codeIndented // Space\n}\nvar flow = {\n 35: headingAtx,\n // Number sign\n 42: thematicBreak,\n // Asterisk\n 45: [setextUnderline, thematicBreak],\n // Dash\n 60: htmlFlow,\n // Less than\n 61: setextUnderline,\n // Equals to\n 95: thematicBreak,\n // Underscore\n 96: codeFenced,\n // Grave accent\n 126: codeFenced // Tilde\n}\nvar string = {\n 38: characterReference,\n // Ampersand\n 92: characterEscape // Backslash\n}\nvar text = {\n '-5': lineEnding,\n // Carriage return\n '-4': lineEnding,\n // Line feed\n '-3': lineEnding,\n // Carriage return + line feed\n 33: labelStartImage,\n // Exclamation mark\n 38: characterReference,\n // Ampersand\n 42: attention,\n // Asterisk\n 60: [autolink, htmlText],\n // Less than\n 91: labelStartLink,\n // Left square bracket\n 92: [hardBreakEscape, characterEscape],\n // Backslash\n 93: labelEnd,\n // Right square bracket\n 95: attention,\n // Underscore\n 96: codeText // Grave accent\n}\nvar insideSpan = {\n null: [attention, text$1.resolver]\n}\nvar disable = {\n null: []\n}\n\nexports.contentInitial = contentInitial\nexports.disable = disable\nexports.document = document\nexports.flow = flow\nexports.flowInitial = flowInitial\nexports.insideSpan = insideSpan\nexports.string = string\nexports.text = text\n","'use strict'\n\nvar chunkedPush = require('../util/chunked-push.js')\nvar chunkedSplice = require('../util/chunked-splice.js')\nvar classifyCharacter = require('../util/classify-character.js')\nvar movePoint = require('../util/move-point.js')\nvar resolveAll = require('../util/resolve-all.js')\nvar shallow = require('../util/shallow.js')\n\nvar attention = {\n name: 'attention',\n tokenize: tokenizeAttention,\n resolveAll: resolveAllAttention\n}\n\nfunction resolveAllAttention(events, context) {\n var index = -1\n var open\n var group\n var text\n var openingSequence\n var closingSequence\n var use\n var nextEvents\n var offset // Walk through all events.\n //\n // Note: performance of this is fine on an mb of normal markdown, but its\n // a bottleneck for malicious stuff.\n\n while (++index < events.length) {\n // Find a token that can close.\n if (\n events[index][0] === 'enter' &&\n events[index][1].type === 'attentionSequence' &&\n events[index][1]._close\n ) {\n open = index // Now walk back to find an opener.\n\n while (open--) {\n // Find a token that can open the closer.\n if (\n events[open][0] === 'exit' &&\n events[open][1].type === 'attentionSequence' &&\n events[open][1]._open && // If the markers are the same:\n context.sliceSerialize(events[open][1]).charCodeAt(0) ===\n context.sliceSerialize(events[index][1]).charCodeAt(0)\n ) {\n // If the opening can close or the closing can open,\n // and the close size *is not* a multiple of three,\n // but the sum of the opening and closing size *is* multiple of three,\n // then dont match.\n if (\n (events[open][1]._close || events[index][1]._open) &&\n (events[index][1].end.offset - events[index][1].start.offset) % 3 &&\n !(\n (events[open][1].end.offset -\n events[open][1].start.offset +\n events[index][1].end.offset -\n events[index][1].start.offset) %\n 3\n )\n ) {\n continue\n } // Number of markers to use from the sequence.\n\n use =\n events[open][1].end.offset - events[open][1].start.offset > 1 &&\n events[index][1].end.offset - events[index][1].start.offset > 1\n ? 2\n : 1\n openingSequence = {\n type: use > 1 ? 'strongSequence' : 'emphasisSequence',\n start: movePoint(shallow(events[open][1].end), -use),\n end: shallow(events[open][1].end)\n }\n closingSequence = {\n type: use > 1 ? 'strongSequence' : 'emphasisSequence',\n start: shallow(events[index][1].start),\n end: movePoint(shallow(events[index][1].start), use)\n }\n text = {\n type: use > 1 ? 'strongText' : 'emphasisText',\n start: shallow(events[open][1].end),\n end: shallow(events[index][1].start)\n }\n group = {\n type: use > 1 ? 'strong' : 'emphasis',\n start: shallow(openingSequence.start),\n end: shallow(closingSequence.end)\n }\n events[open][1].end = shallow(openingSequence.start)\n events[index][1].start = shallow(closingSequence.end)\n nextEvents = [] // If there are more markers in the opening, add them before.\n\n if (events[open][1].end.offset - events[open][1].start.offset) {\n nextEvents = chunkedPush(nextEvents, [\n ['enter', events[open][1], context],\n ['exit', events[open][1], context]\n ])\n } // Opening.\n\n nextEvents = chunkedPush(nextEvents, [\n ['enter', group, context],\n ['enter', openingSequence, context],\n ['exit', openingSequence, context],\n ['enter', text, context]\n ]) // Between.\n\n nextEvents = chunkedPush(\n nextEvents,\n resolveAll(\n context.parser.constructs.insideSpan.null,\n events.slice(open + 1, index),\n context\n )\n ) // Closing.\n\n nextEvents = chunkedPush(nextEvents, [\n ['exit', text, context],\n ['enter', closingSequence, context],\n ['exit', closingSequence, context],\n ['exit', group, context]\n ]) // If there are more markers in the closing, add them after.\n\n if (events[index][1].end.offset - events[index][1].start.offset) {\n offset = 2\n nextEvents = chunkedPush(nextEvents, [\n ['enter', events[index][1], context],\n ['exit', events[index][1], context]\n ])\n } else {\n offset = 0\n }\n\n chunkedSplice(events, open - 1, index - open + 3, nextEvents)\n index = open + nextEvents.length - offset - 2\n break\n }\n }\n }\n } // Remove remaining sequences.\n\n index = -1\n\n while (++index < events.length) {\n if (events[index][1].type === 'attentionSequence') {\n events[index][1].type = 'data'\n }\n }\n\n return events\n}\n\nfunction tokenizeAttention(effects, ok) {\n var before = classifyCharacter(this.previous)\n var marker\n return start\n\n function start(code) {\n effects.enter('attentionSequence')\n marker = code\n return sequence(code)\n }\n\n function sequence(code) {\n var token\n var after\n var open\n var close\n\n if (code === marker) {\n effects.consume(code)\n return sequence\n }\n\n token = effects.exit('attentionSequence')\n after = classifyCharacter(code)\n open = !after || (after === 2 && before)\n close = !before || (before === 2 && after)\n token._open = marker === 42 ? open : open && (before || !close)\n token._close = marker === 42 ? close : close && (after || !open)\n return ok(code)\n }\n}\n\nmodule.exports = attention\n","'use strict'\n\n// This module is generated by `script/`.\n//\n// CommonMark handles attention (emphasis, strong) markers based on what comes\n// before or after them.\n// One such difference is if those characters are Unicode punctuation.\n// This script is generated from the Unicode data.\nvar unicodePunctuation = /[!-\\/:-@\\[-`\\{-~\\xA1\\xA7\\xAB\\xB6\\xB7\\xBB\\xBF\\u037E\\u0387\\u055A-\\u055F\\u0589\\u058A\\u05BE\\u05C0\\u05C3\\u05C6\\u05F3\\u05F4\\u0609\\u060A\\u060C\\u060D\\u061B\\u061E\\u061F\\u066A-\\u066D\\u06D4\\u0700-\\u070D\\u07F7-\\u07F9\\u0830-\\u083E\\u085E\\u0964\\u0965\\u0970\\u09FD\\u0A76\\u0AF0\\u0C77\\u0C84\\u0DF4\\u0E4F\\u0E5A\\u0E5B\\u0F04-\\u0F12\\u0F14\\u0F3A-\\u0F3D\\u0F85\\u0FD0-\\u0FD4\\u0FD9\\u0FDA\\u104A-\\u104F\\u10FB\\u1360-\\u1368\\u1400\\u166E\\u169B\\u169C\\u16EB-\\u16ED\\u1735\\u1736\\u17D4-\\u17D6\\u17D8-\\u17DA\\u1800-\\u180A\\u1944\\u1945\\u1A1E\\u1A1F\\u1AA0-\\u1AA6\\u1AA8-\\u1AAD\\u1B5A-\\u1B60\\u1BFC-\\u1BFF\\u1C3B-\\u1C3F\\u1C7E\\u1C7F\\u1CC0-\\u1CC7\\u1CD3\\u2010-\\u2027\\u2030-\\u2043\\u2045-\\u2051\\u2053-\\u205E\\u207D\\u207E\\u208D\\u208E\\u2308-\\u230B\\u2329\\u232A\\u2768-\\u2775\\u27C5\\u27C6\\u27E6-\\u27EF\\u2983-\\u2998\\u29D8-\\u29DB\\u29FC\\u29FD\\u2CF9-\\u2CFC\\u2CFE\\u2CFF\\u2D70\\u2E00-\\u2E2E\\u2E30-\\u2E4F\\u2E52\\u3001-\\u3003\\u3008-\\u3011\\u3014-\\u301F\\u3030\\u303D\\u30A0\\u30FB\\uA4FE\\uA4FF\\uA60D-\\uA60F\\uA673\\uA67E\\uA6F2-\\uA6F7\\uA874-\\uA877\\uA8CE\\uA8CF\\uA8F8-\\uA8FA\\uA8FC\\uA92E\\uA92F\\uA95F\\uA9C1-\\uA9CD\\uA9DE\\uA9DF\\uAA5C-\\uAA5F\\uAADE\\uAADF\\uAAF0\\uAAF1\\uABEB\\uFD3E\\uFD3F\\uFE10-\\uFE19\\uFE30-\\uFE52\\uFE54-\\uFE61\\uFE63\\uFE68\\uFE6A\\uFE6B\\uFF01-\\uFF03\\uFF05-\\uFF0A\\uFF0C-\\uFF0F\\uFF1A\\uFF1B\\uFF1F\\uFF20\\uFF3B-\\uFF3D\\uFF3F\\uFF5B\\uFF5D\\uFF5F-\\uFF65]/\n\nmodule.exports = unicodePunctuation\n","'use strict'\n\n// chunks (replacement characters, tabs, or line endings).\n\nfunction movePoint(point, offset) {\n point.column += offset\n point.offset += offset\n point._bufferIndex += offset\n return point\n}\n\nmodule.exports = movePoint\n","'use strict'\n\nvar asciiAlpha = require('../character/ascii-alpha.js')\nvar asciiAlphanumeric = require('../character/ascii-alphanumeric.js')\nvar asciiAtext = require('../character/ascii-atext.js')\nvar asciiControl = require('../character/ascii-control.js')\n\nvar autolink = {\n name: 'autolink',\n tokenize: tokenizeAutolink\n}\n\nfunction tokenizeAutolink(effects, ok, nok) {\n var size = 1\n return start\n\n function start(code) {\n effects.enter('autolink')\n effects.enter('autolinkMarker')\n effects.consume(code)\n effects.exit('autolinkMarker')\n effects.enter('autolinkProtocol')\n return open\n }\n\n function open(code) {\n if (asciiAlpha(code)) {\n effects.consume(code)\n return schemeOrEmailAtext\n }\n\n return asciiAtext(code) ? emailAtext(code) : nok(code)\n }\n\n function schemeOrEmailAtext(code) {\n return code === 43 || code === 45 || code === 46 || asciiAlphanumeric(code)\n ? schemeInsideOrEmailAtext(code)\n : emailAtext(code)\n }\n\n function schemeInsideOrEmailAtext(code) {\n if (code === 58) {\n effects.consume(code)\n return urlInside\n }\n\n if (\n (code === 43 || code === 45 || code === 46 || asciiAlphanumeric(code)) &&\n size++ < 32\n ) {\n effects.consume(code)\n return schemeInsideOrEmailAtext\n }\n\n return emailAtext(code)\n }\n\n function urlInside(code) {\n if (code === 62) {\n effects.exit('autolinkProtocol')\n return end(code)\n }\n\n if (code === 32 || code === 60 || asciiControl(code)) {\n return nok(code)\n }\n\n effects.consume(code)\n return urlInside\n }\n\n function emailAtext(code) {\n if (code === 64) {\n effects.consume(code)\n size = 0\n return emailAtSignOrDot\n }\n\n if (asciiAtext(code)) {\n effects.consume(code)\n return emailAtext\n }\n\n return nok(code)\n }\n\n function emailAtSignOrDot(code) {\n return asciiAlphanumeric(code) ? emailLabel(code) : nok(code)\n }\n\n function emailLabel(code) {\n if (code === 46) {\n effects.consume(code)\n size = 0\n return emailAtSignOrDot\n }\n\n if (code === 62) {\n // Exit, then change the type.\n effects.exit('autolinkProtocol').type = 'autolinkEmail'\n return end(code)\n }\n\n return emailValue(code)\n }\n\n function emailValue(code) {\n if ((code === 45 || asciiAlphanumeric(code)) && size++ < 63) {\n effects.consume(code)\n return code === 45 ? emailValue : emailLabel\n }\n\n return nok(code)\n }\n\n function end(code) {\n effects.enter('autolinkMarker')\n effects.consume(code)\n effects.exit('autolinkMarker')\n effects.exit('autolink')\n return ok\n }\n}\n\nmodule.exports = autolink\n","'use strict'\n\nvar regexCheck = require('../util/regex-check.js')\n\nvar asciiAtext = regexCheck(/[#-'*+\\--9=?A-Z^-~]/)\n\nmodule.exports = asciiAtext\n","'use strict'\n\nvar markdownSpace = require('../character/markdown-space.js')\nvar factorySpace = require('./factory-space.js')\n\nvar blockQuote = {\n name: 'blockQuote',\n tokenize: tokenizeBlockQuoteStart,\n continuation: {\n tokenize: tokenizeBlockQuoteContinuation\n },\n exit: exit\n}\n\nfunction tokenizeBlockQuoteStart(effects, ok, nok) {\n var self = this\n return start\n\n function start(code) {\n if (code === 62) {\n if (!self.containerState.open) {\n effects.enter('blockQuote', {\n _container: true\n })\n self.containerState.open = true\n }\n\n effects.enter('blockQuotePrefix')\n effects.enter('blockQuoteMarker')\n effects.consume(code)\n effects.exit('blockQuoteMarker')\n return after\n }\n\n return nok(code)\n }\n\n function after(code) {\n if (markdownSpace(code)) {\n effects.enter('blockQuotePrefixWhitespace')\n effects.consume(code)\n effects.exit('blockQuotePrefixWhitespace')\n effects.exit('blockQuotePrefix')\n return ok\n }\n\n effects.exit('blockQuotePrefix')\n return ok(code)\n }\n}\n\nfunction tokenizeBlockQuoteContinuation(effects, ok, nok) {\n return factorySpace(\n effects,\n effects.attempt(blockQuote, ok, nok),\n 'linePrefix',\n this.parser.constructs.disable.null.indexOf('codeIndented') > -1\n ? undefined\n : 4\n )\n}\n\nfunction exit(effects) {\n effects.exit('blockQuote')\n}\n\nmodule.exports = blockQuote\n","'use strict'\n\nvar asciiPunctuation = require('../character/ascii-punctuation.js')\n\nvar characterEscape = {\n name: 'characterEscape',\n tokenize: tokenizeCharacterEscape\n}\n\nfunction tokenizeCharacterEscape(effects, ok, nok) {\n return start\n\n function start(code) {\n effects.enter('characterEscape')\n effects.enter('escapeMarker')\n effects.consume(code)\n effects.exit('escapeMarker')\n return open\n }\n\n function open(code) {\n if (asciiPunctuation(code)) {\n effects.enter('characterEscapeValue')\n effects.consume(code)\n effects.exit('characterEscapeValue')\n effects.exit('characterEscape')\n return ok\n }\n\n return nok(code)\n }\n}\n\nmodule.exports = characterEscape\n","'use strict'\n\nvar regexCheck = require('../util/regex-check.js')\n\nvar asciiPunctuation = regexCheck(/[!-/:-@[-`{-~]/)\n\nmodule.exports = asciiPunctuation\n","'use strict'\n\nvar decodeEntity = require('parse-entities/decode-entity.js')\nvar asciiAlphanumeric = require('../character/ascii-alphanumeric.js')\nvar asciiDigit = require('../character/ascii-digit.js')\nvar asciiHexDigit = require('../character/ascii-hex-digit.js')\n\nfunction _interopDefaultLegacy(e) {\n return e && typeof e === 'object' && 'default' in e ? e : {default: e}\n}\n\nvar decodeEntity__default = /*#__PURE__*/ _interopDefaultLegacy(decodeEntity)\n\nvar characterReference = {\n name: 'characterReference',\n tokenize: tokenizeCharacterReference\n}\n\nfunction tokenizeCharacterReference(effects, ok, nok) {\n var self = this\n var size = 0\n var max\n var test\n return start\n\n function start(code) {\n effects.enter('characterReference')\n effects.enter('characterReferenceMarker')\n effects.consume(code)\n effects.exit('characterReferenceMarker')\n return open\n }\n\n function open(code) {\n if (code === 35) {\n effects.enter('characterReferenceMarkerNumeric')\n effects.consume(code)\n effects.exit('characterReferenceMarkerNumeric')\n return numeric\n }\n\n effects.enter('characterReferenceValue')\n max = 31\n test = asciiAlphanumeric\n return value(code)\n }\n\n function numeric(code) {\n if (code === 88 || code === 120) {\n effects.enter('characterReferenceMarkerHexadecimal')\n effects.consume(code)\n effects.exit('characterReferenceMarkerHexadecimal')\n effects.enter('characterReferenceValue')\n max = 6\n test = asciiHexDigit\n return value\n }\n\n effects.enter('characterReferenceValue')\n max = 7\n test = asciiDigit\n return value(code)\n }\n\n function value(code) {\n var token\n\n if (code === 59 && size) {\n token = effects.exit('characterReferenceValue')\n\n if (\n test === asciiAlphanumeric &&\n !decodeEntity__default['default'](self.sliceSerialize(token))\n ) {\n return nok(code)\n }\n\n effects.enter('characterReferenceMarker')\n effects.consume(code)\n effects.exit('characterReferenceMarker')\n effects.exit('characterReference')\n return ok\n }\n\n if (test(code) && size++ < max) {\n effects.consume(code)\n return value\n }\n\n return nok(code)\n }\n}\n\nmodule.exports = characterReference\n","'use strict'\n\nvar regexCheck = require('../util/regex-check.js')\n\nvar asciiHexDigit = regexCheck(/[\\dA-Fa-f]/)\n\nmodule.exports = asciiHexDigit\n","'use strict'\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar markdownLineEndingOrSpace = require('../character/markdown-line-ending-or-space.js')\nvar prefixSize = require('../util/prefix-size.js')\nvar factorySpace = require('./factory-space.js')\n\nvar codeFenced = {\n name: 'codeFenced',\n tokenize: tokenizeCodeFenced,\n concrete: true\n}\n\nfunction tokenizeCodeFenced(effects, ok, nok) {\n var self = this\n var closingFenceConstruct = {\n tokenize: tokenizeClosingFence,\n partial: true\n }\n var initialPrefix = prefixSize(this.events, 'linePrefix')\n var sizeOpen = 0\n var marker\n return start\n\n function start(code) {\n effects.enter('codeFenced')\n effects.enter('codeFencedFence')\n effects.enter('codeFencedFenceSequence')\n marker = code\n return sequenceOpen(code)\n }\n\n function sequenceOpen(code) {\n if (code === marker) {\n effects.consume(code)\n sizeOpen++\n return sequenceOpen\n }\n\n effects.exit('codeFencedFenceSequence')\n return sizeOpen < 3\n ? nok(code)\n : factorySpace(effects, infoOpen, 'whitespace')(code)\n }\n\n function infoOpen(code) {\n if (code === null || markdownLineEnding(code)) {\n return openAfter(code)\n }\n\n effects.enter('codeFencedFenceInfo')\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return info(code)\n }\n\n function info(code) {\n if (code === null || markdownLineEndingOrSpace(code)) {\n effects.exit('chunkString')\n effects.exit('codeFencedFenceInfo')\n return factorySpace(effects, infoAfter, 'whitespace')(code)\n }\n\n if (code === 96 && code === marker) return nok(code)\n effects.consume(code)\n return info\n }\n\n function infoAfter(code) {\n if (code === null || markdownLineEnding(code)) {\n return openAfter(code)\n }\n\n effects.enter('codeFencedFenceMeta')\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return meta(code)\n }\n\n function meta(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('chunkString')\n effects.exit('codeFencedFenceMeta')\n return openAfter(code)\n }\n\n if (code === 96 && code === marker) return nok(code)\n effects.consume(code)\n return meta\n }\n\n function openAfter(code) {\n effects.exit('codeFencedFence')\n return self.interrupt ? ok(code) : content(code)\n }\n\n function content(code) {\n if (code === null) {\n return after(code)\n }\n\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return effects.attempt(\n closingFenceConstruct,\n after,\n initialPrefix\n ? factorySpace(effects, content, 'linePrefix', initialPrefix + 1)\n : content\n )\n }\n\n effects.enter('codeFlowValue')\n return contentContinue(code)\n }\n\n function contentContinue(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('codeFlowValue')\n return content(code)\n }\n\n effects.consume(code)\n return contentContinue\n }\n\n function after(code) {\n effects.exit('codeFenced')\n return ok(code)\n }\n\n function tokenizeClosingFence(effects, ok, nok) {\n var size = 0\n return factorySpace(\n effects,\n closingSequenceStart,\n 'linePrefix',\n this.parser.constructs.disable.null.indexOf('codeIndented') > -1\n ? undefined\n : 4\n )\n\n function closingSequenceStart(code) {\n effects.enter('codeFencedFence')\n effects.enter('codeFencedFenceSequence')\n return closingSequence(code)\n }\n\n function closingSequence(code) {\n if (code === marker) {\n effects.consume(code)\n size++\n return closingSequence\n }\n\n if (size < sizeOpen) return nok(code)\n effects.exit('codeFencedFenceSequence')\n return factorySpace(effects, closingSequenceEnd, 'whitespace')(code)\n }\n\n function closingSequenceEnd(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('codeFencedFence')\n return ok(code)\n }\n\n return nok(code)\n }\n }\n}\n\nmodule.exports = codeFenced\n","'use strict'\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar chunkedSplice = require('../util/chunked-splice.js')\nvar prefixSize = require('../util/prefix-size.js')\nvar factorySpace = require('./factory-space.js')\n\nvar codeIndented = {\n name: 'codeIndented',\n tokenize: tokenizeCodeIndented,\n resolve: resolveCodeIndented\n}\nvar indentedContentConstruct = {\n tokenize: tokenizeIndentedContent,\n partial: true\n}\n\nfunction resolveCodeIndented(events, context) {\n var code = {\n type: 'codeIndented',\n start: events[0][1].start,\n end: events[events.length - 1][1].end\n }\n chunkedSplice(events, 0, 0, [['enter', code, context]])\n chunkedSplice(events, events.length, 0, [['exit', code, context]])\n return events\n}\n\nfunction tokenizeCodeIndented(effects, ok, nok) {\n return effects.attempt(indentedContentConstruct, afterPrefix, nok)\n\n function afterPrefix(code) {\n if (code === null) {\n return ok(code)\n }\n\n if (markdownLineEnding(code)) {\n return effects.attempt(indentedContentConstruct, afterPrefix, ok)(code)\n }\n\n effects.enter('codeFlowValue')\n return content(code)\n }\n\n function content(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('codeFlowValue')\n return afterPrefix(code)\n }\n\n effects.consume(code)\n return content\n }\n}\n\nfunction tokenizeIndentedContent(effects, ok, nok) {\n var self = this\n return factorySpace(effects, afterPrefix, 'linePrefix', 4 + 1)\n\n function afterPrefix(code) {\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return factorySpace(effects, afterPrefix, 'linePrefix', 4 + 1)\n }\n\n return prefixSize(self.events, 'linePrefix') < 4 ? nok(code) : ok(code)\n }\n}\n\nmodule.exports = codeIndented\n","'use strict'\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\n\nvar codeText = {\n name: 'codeText',\n tokenize: tokenizeCodeText,\n resolve: resolveCodeText,\n previous: previous\n}\n\nfunction resolveCodeText(events) {\n var tailExitIndex = events.length - 4\n var headEnterIndex = 3\n var index\n var enter // If we start and end with an EOL or a space.\n\n if (\n (events[headEnterIndex][1].type === 'lineEnding' ||\n events[headEnterIndex][1].type === 'space') &&\n (events[tailExitIndex][1].type === 'lineEnding' ||\n events[tailExitIndex][1].type === 'space')\n ) {\n index = headEnterIndex // And we have data.\n\n while (++index < tailExitIndex) {\n if (events[index][1].type === 'codeTextData') {\n // Then we have padding.\n events[tailExitIndex][1].type = events[headEnterIndex][1].type =\n 'codeTextPadding'\n headEnterIndex += 2\n tailExitIndex -= 2\n break\n }\n }\n } // Merge adjacent spaces and data.\n\n index = headEnterIndex - 1\n tailExitIndex++\n\n while (++index <= tailExitIndex) {\n if (enter === undefined) {\n if (index !== tailExitIndex && events[index][1].type !== 'lineEnding') {\n enter = index\n }\n } else if (\n index === tailExitIndex ||\n events[index][1].type === 'lineEnding'\n ) {\n events[enter][1].type = 'codeTextData'\n\n if (index !== enter + 2) {\n events[enter][1].end = events[index - 1][1].end\n events.splice(enter + 2, index - enter - 2)\n tailExitIndex -= index - enter - 2\n index = enter + 2\n }\n\n enter = undefined\n }\n }\n\n return events\n}\n\nfunction previous(code) {\n // If there is a previous code, there will always be a tail.\n return (\n code !== 96 ||\n this.events[this.events.length - 1][1].type === 'characterEscape'\n )\n}\n\nfunction tokenizeCodeText(effects, ok, nok) {\n var sizeOpen = 0\n var size\n var token\n return start\n\n function start(code) {\n effects.enter('codeText')\n effects.enter('codeTextSequence')\n return openingSequence(code)\n }\n\n function openingSequence(code) {\n if (code === 96) {\n effects.consume(code)\n sizeOpen++\n return openingSequence\n }\n\n effects.exit('codeTextSequence')\n return gap(code)\n }\n\n function gap(code) {\n // EOF.\n if (code === null) {\n return nok(code)\n } // Closing fence?\n // Could also be data.\n\n if (code === 96) {\n token = effects.enter('codeTextSequence')\n size = 0\n return closingSequence(code)\n } // Tabs dont work, and virtual spaces dont make sense.\n\n if (code === 32) {\n effects.enter('space')\n effects.consume(code)\n effects.exit('space')\n return gap\n }\n\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return gap\n } // Data.\n\n effects.enter('codeTextData')\n return data(code)\n } // In code.\n\n function data(code) {\n if (\n code === null ||\n code === 32 ||\n code === 96 ||\n markdownLineEnding(code)\n ) {\n effects.exit('codeTextData')\n return gap(code)\n }\n\n effects.consume(code)\n return data\n } // Closing fence.\n\n function closingSequence(code) {\n // More.\n if (code === 96) {\n effects.consume(code)\n size++\n return closingSequence\n } // Done!\n\n if (size === sizeOpen) {\n effects.exit('codeTextSequence')\n effects.exit('codeText')\n return ok(code)\n } // More or less accents: mark as data.\n\n token.type = 'codeTextData'\n return data(code)\n }\n}\n\nmodule.exports = codeText\n","'use strict'\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar markdownLineEndingOrSpace = require('../character/markdown-line-ending-or-space.js')\nvar normalizeIdentifier = require('../util/normalize-identifier.js')\nvar factoryDestination = require('./factory-destination.js')\nvar factoryLabel = require('./factory-label.js')\nvar factorySpace = require('./factory-space.js')\nvar factoryWhitespace = require('./factory-whitespace.js')\nvar factoryTitle = require('./factory-title.js')\n\nvar definition = {\n name: 'definition',\n tokenize: tokenizeDefinition\n}\nvar titleConstruct = {\n tokenize: tokenizeTitle,\n partial: true\n}\n\nfunction tokenizeDefinition(effects, ok, nok) {\n var self = this\n var identifier\n return start\n\n function start(code) {\n effects.enter('definition')\n return factoryLabel.call(\n self,\n effects,\n labelAfter,\n nok,\n 'definitionLabel',\n 'definitionLabelMarker',\n 'definitionLabelString'\n )(code)\n }\n\n function labelAfter(code) {\n identifier = normalizeIdentifier(\n self.sliceSerialize(self.events[self.events.length - 1][1]).slice(1, -1)\n )\n\n if (code === 58) {\n effects.enter('definitionMarker')\n effects.consume(code)\n effects.exit('definitionMarker') // Note: blank lines cant exist in content.\n\n return factoryWhitespace(\n effects,\n factoryDestination(\n effects,\n effects.attempt(\n titleConstruct,\n factorySpace(effects, after, 'whitespace'),\n factorySpace(effects, after, 'whitespace')\n ),\n nok,\n 'definitionDestination',\n 'definitionDestinationLiteral',\n 'definitionDestinationLiteralMarker',\n 'definitionDestinationRaw',\n 'definitionDestinationString'\n )\n )\n }\n\n return nok(code)\n }\n\n function after(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('definition')\n\n if (self.parser.defined.indexOf(identifier) < 0) {\n self.parser.defined.push(identifier)\n }\n\n return ok(code)\n }\n\n return nok(code)\n }\n}\n\nfunction tokenizeTitle(effects, ok, nok) {\n return start\n\n function start(code) {\n return markdownLineEndingOrSpace(code)\n ? factoryWhitespace(effects, before)(code)\n : nok(code)\n }\n\n function before(code) {\n if (code === 34 || code === 39 || code === 40) {\n return factoryTitle(\n effects,\n factorySpace(effects, after, 'whitespace'),\n nok,\n 'definitionTitle',\n 'definitionTitleMarker',\n 'definitionTitleString'\n )(code)\n }\n\n return nok(code)\n }\n\n function after(code) {\n return code === null || markdownLineEnding(code) ? ok(code) : nok(code)\n }\n}\n\nmodule.exports = definition\n","'use strict'\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\n\nvar hardBreakEscape = {\n name: 'hardBreakEscape',\n tokenize: tokenizeHardBreakEscape\n}\n\nfunction tokenizeHardBreakEscape(effects, ok, nok) {\n return start\n\n function start(code) {\n effects.enter('hardBreakEscape')\n effects.enter('escapeMarker')\n effects.consume(code)\n return open\n }\n\n function open(code) {\n if (markdownLineEnding(code)) {\n effects.exit('escapeMarker')\n effects.exit('hardBreakEscape')\n return ok(code)\n }\n\n return nok(code)\n }\n}\n\nmodule.exports = hardBreakEscape\n","'use strict'\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar markdownLineEndingOrSpace = require('../character/markdown-line-ending-or-space.js')\nvar markdownSpace = require('../character/markdown-space.js')\nvar chunkedSplice = require('../util/chunked-splice.js')\nvar factorySpace = require('./factory-space.js')\n\nvar headingAtx = {\n name: 'headingAtx',\n tokenize: tokenizeHeadingAtx,\n resolve: resolveHeadingAtx\n}\n\nfunction resolveHeadingAtx(events, context) {\n var contentEnd = events.length - 2\n var contentStart = 3\n var content\n var text // Prefix whitespace, part of the opening.\n\n if (events[contentStart][1].type === 'whitespace') {\n contentStart += 2\n } // Suffix whitespace, part of the closing.\n\n if (\n contentEnd - 2 > contentStart &&\n events[contentEnd][1].type === 'whitespace'\n ) {\n contentEnd -= 2\n }\n\n if (\n events[contentEnd][1].type === 'atxHeadingSequence' &&\n (contentStart === contentEnd - 1 ||\n (contentEnd - 4 > contentStart &&\n events[contentEnd - 2][1].type === 'whitespace'))\n ) {\n contentEnd -= contentStart + 1 === contentEnd ? 2 : 4\n }\n\n if (contentEnd > contentStart) {\n content = {\n type: 'atxHeadingText',\n start: events[contentStart][1].start,\n end: events[contentEnd][1].end\n }\n text = {\n type: 'chunkText',\n start: events[contentStart][1].start,\n end: events[contentEnd][1].end,\n contentType: 'text'\n }\n chunkedSplice(events, contentStart, contentEnd - contentStart + 1, [\n ['enter', content, context],\n ['enter', text, context],\n ['exit', text, context],\n ['exit', content, context]\n ])\n }\n\n return events\n}\n\nfunction tokenizeHeadingAtx(effects, ok, nok) {\n var self = this\n var size = 0\n return start\n\n function start(code) {\n effects.enter('atxHeading')\n effects.enter('atxHeadingSequence')\n return fenceOpenInside(code)\n }\n\n function fenceOpenInside(code) {\n if (code === 35 && size++ < 6) {\n effects.consume(code)\n return fenceOpenInside\n }\n\n if (code === null || markdownLineEndingOrSpace(code)) {\n effects.exit('atxHeadingSequence')\n return self.interrupt ? ok(code) : headingBreak(code)\n }\n\n return nok(code)\n }\n\n function headingBreak(code) {\n if (code === 35) {\n effects.enter('atxHeadingSequence')\n return sequence(code)\n }\n\n if (code === null || markdownLineEnding(code)) {\n effects.exit('atxHeading')\n return ok(code)\n }\n\n if (markdownSpace(code)) {\n return factorySpace(effects, headingBreak, 'whitespace')(code)\n }\n\n effects.enter('atxHeadingText')\n return data(code)\n }\n\n function sequence(code) {\n if (code === 35) {\n effects.consume(code)\n return sequence\n }\n\n effects.exit('atxHeadingSequence')\n return headingBreak(code)\n }\n\n function data(code) {\n if (code === null || code === 35 || markdownLineEndingOrSpace(code)) {\n effects.exit('atxHeadingText')\n return headingBreak(code)\n }\n\n effects.consume(code)\n return data\n }\n}\n\nmodule.exports = headingAtx\n","'use strict'\n\nvar asciiAlpha = require('../character/ascii-alpha.js')\nvar asciiAlphanumeric = require('../character/ascii-alphanumeric.js')\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar markdownLineEndingOrSpace = require('../character/markdown-line-ending-or-space.js')\nvar markdownSpace = require('../character/markdown-space.js')\nvar fromCharCode = require('../constant/from-char-code.js')\nvar htmlBlockNames = require('../constant/html-block-names.js')\nvar htmlRawNames = require('../constant/html-raw-names.js')\nvar partialBlankLine = require('./partial-blank-line.js')\n\nvar htmlFlow = {\n name: 'htmlFlow',\n tokenize: tokenizeHtmlFlow,\n resolveTo: resolveToHtmlFlow,\n concrete: true\n}\nvar nextBlankConstruct = {\n tokenize: tokenizeNextBlank,\n partial: true\n}\n\nfunction resolveToHtmlFlow(events) {\n var index = events.length\n\n while (index--) {\n if (events[index][0] === 'enter' && events[index][1].type === 'htmlFlow') {\n break\n }\n }\n\n if (index > 1 && events[index - 2][1].type === 'linePrefix') {\n // Add the prefix start to the HTML token.\n events[index][1].start = events[index - 2][1].start // Add the prefix start to the HTML line token.\n\n events[index + 1][1].start = events[index - 2][1].start // Remove the line prefix.\n\n events.splice(index - 2, 2)\n }\n\n return events\n}\n\nfunction tokenizeHtmlFlow(effects, ok, nok) {\n var self = this\n var kind\n var startTag\n var buffer\n var index\n var marker\n return start\n\n function start(code) {\n effects.enter('htmlFlow')\n effects.enter('htmlFlowData')\n effects.consume(code)\n return open\n }\n\n function open(code) {\n if (code === 33) {\n effects.consume(code)\n return declarationStart\n }\n\n if (code === 47) {\n effects.consume(code)\n return tagCloseStart\n }\n\n if (code === 63) {\n effects.consume(code)\n kind = 3 // While were in an instruction instead of a declaration, were on a `?`\n // right now, so we do need to search for `>`, similar to declarations.\n\n return self.interrupt ? ok : continuationDeclarationInside\n }\n\n if (asciiAlpha(code)) {\n effects.consume(code)\n buffer = fromCharCode(code)\n startTag = true\n return tagName\n }\n\n return nok(code)\n }\n\n function declarationStart(code) {\n if (code === 45) {\n effects.consume(code)\n kind = 2\n return commentOpenInside\n }\n\n if (code === 91) {\n effects.consume(code)\n kind = 5\n buffer = 'CDATA['\n index = 0\n return cdataOpenInside\n }\n\n if (asciiAlpha(code)) {\n effects.consume(code)\n kind = 4\n return self.interrupt ? ok : continuationDeclarationInside\n }\n\n return nok(code)\n }\n\n function commentOpenInside(code) {\n if (code === 45) {\n effects.consume(code)\n return self.interrupt ? ok : continuationDeclarationInside\n }\n\n return nok(code)\n }\n\n function cdataOpenInside(code) {\n if (code === buffer.charCodeAt(index++)) {\n effects.consume(code)\n return index === buffer.length\n ? self.interrupt\n ? ok\n : continuation\n : cdataOpenInside\n }\n\n return nok(code)\n }\n\n function tagCloseStart(code) {\n if (asciiAlpha(code)) {\n effects.consume(code)\n buffer = fromCharCode(code)\n return tagName\n }\n\n return nok(code)\n }\n\n function tagName(code) {\n if (\n code === null ||\n code === 47 ||\n code === 62 ||\n markdownLineEndingOrSpace(code)\n ) {\n if (\n code !== 47 &&\n startTag &&\n htmlRawNames.indexOf(buffer.toLowerCase()) > -1\n ) {\n kind = 1\n return self.interrupt ? ok(code) : continuation(code)\n }\n\n if (htmlBlockNames.indexOf(buffer.toLowerCase()) > -1) {\n kind = 6\n\n if (code === 47) {\n effects.consume(code)\n return basicSelfClosing\n }\n\n return self.interrupt ? ok(code) : continuation(code)\n }\n\n kind = 7 // Do not support complete HTML when interrupting.\n\n return self.interrupt\n ? nok(code)\n : startTag\n ? completeAttributeNameBefore(code)\n : completeClosingTagAfter(code)\n }\n\n if (code === 45 || asciiAlphanumeric(code)) {\n effects.consume(code)\n buffer += fromCharCode(code)\n return tagName\n }\n\n return nok(code)\n }\n\n function basicSelfClosing(code) {\n if (code === 62) {\n effects.consume(code)\n return self.interrupt ? ok : continuation\n }\n\n return nok(code)\n }\n\n function completeClosingTagAfter(code) {\n if (markdownSpace(code)) {\n effects.consume(code)\n return completeClosingTagAfter\n }\n\n return completeEnd(code)\n }\n\n function completeAttributeNameBefore(code) {\n if (code === 47) {\n effects.consume(code)\n return completeEnd\n }\n\n if (code === 58 || code === 95 || asciiAlpha(code)) {\n effects.consume(code)\n return completeAttributeName\n }\n\n if (markdownSpace(code)) {\n effects.consume(code)\n return completeAttributeNameBefore\n }\n\n return completeEnd(code)\n }\n\n function completeAttributeName(code) {\n if (\n code === 45 ||\n code === 46 ||\n code === 58 ||\n code === 95 ||\n asciiAlphanumeric(code)\n ) {\n effects.consume(code)\n return completeAttributeName\n }\n\n return completeAttributeNameAfter(code)\n }\n\n function completeAttributeNameAfter(code) {\n if (code === 61) {\n effects.consume(code)\n return completeAttributeValueBefore\n }\n\n if (markdownSpace(code)) {\n effects.consume(code)\n return completeAttributeNameAfter\n }\n\n return completeAttributeNameBefore(code)\n }\n\n function completeAttributeValueBefore(code) {\n if (\n code === null ||\n code === 60 ||\n code === 61 ||\n code === 62 ||\n code === 96\n ) {\n return nok(code)\n }\n\n if (code === 34 || code === 39) {\n effects.consume(code)\n marker = code\n return completeAttributeValueQuoted\n }\n\n if (markdownSpace(code)) {\n effects.consume(code)\n return completeAttributeValueBefore\n }\n\n marker = undefined\n return completeAttributeValueUnquoted(code)\n }\n\n function completeAttributeValueQuoted(code) {\n if (code === marker) {\n effects.consume(code)\n return completeAttributeValueQuotedAfter\n }\n\n if (code === null || markdownLineEnding(code)) {\n return nok(code)\n }\n\n effects.consume(code)\n return completeAttributeValueQuoted\n }\n\n function completeAttributeValueUnquoted(code) {\n if (\n code === null ||\n code === 34 ||\n code === 39 ||\n code === 60 ||\n code === 61 ||\n code === 62 ||\n code === 96 ||\n markdownLineEndingOrSpace(code)\n ) {\n return completeAttributeNameAfter(code)\n }\n\n effects.consume(code)\n return completeAttributeValueUnquoted\n }\n\n function completeAttributeValueQuotedAfter(code) {\n if (code === 47 || code === 62 || markdownSpace(code)) {\n return completeAttributeNameBefore(code)\n }\n\n return nok(code)\n }\n\n function completeEnd(code) {\n if (code === 62) {\n effects.consume(code)\n return completeAfter\n }\n\n return nok(code)\n }\n\n function completeAfter(code) {\n if (markdownSpace(code)) {\n effects.consume(code)\n return completeAfter\n }\n\n return code === null || markdownLineEnding(code)\n ? continuation(code)\n : nok(code)\n }\n\n function continuation(code) {\n if (code === 45 && kind === 2) {\n effects.consume(code)\n return continuationCommentInside\n }\n\n if (code === 60 && kind === 1) {\n effects.consume(code)\n return continuationRawTagOpen\n }\n\n if (code === 62 && kind === 4) {\n effects.consume(code)\n return continuationClose\n }\n\n if (code === 63 && kind === 3) {\n effects.consume(code)\n return continuationDeclarationInside\n }\n\n if (code === 93 && kind === 5) {\n effects.consume(code)\n return continuationCharacterDataInside\n }\n\n if (markdownLineEnding(code) && (kind === 6 || kind === 7)) {\n return effects.check(\n nextBlankConstruct,\n continuationClose,\n continuationAtLineEnding\n )(code)\n }\n\n if (code === null || markdownLineEnding(code)) {\n return continuationAtLineEnding(code)\n }\n\n effects.consume(code)\n return continuation\n }\n\n function continuationAtLineEnding(code) {\n effects.exit('htmlFlowData')\n return htmlContinueStart(code)\n }\n\n function htmlContinueStart(code) {\n if (code === null) {\n return done(code)\n }\n\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return htmlContinueStart\n }\n\n effects.enter('htmlFlowData')\n return continuation(code)\n }\n\n function continuationCommentInside(code) {\n if (code === 45) {\n effects.consume(code)\n return continuationDeclarationInside\n }\n\n return continuation(code)\n }\n\n function continuationRawTagOpen(code) {\n if (code === 47) {\n effects.consume(code)\n buffer = ''\n return continuationRawEndTag\n }\n\n return continuation(code)\n }\n\n function continuationRawEndTag(code) {\n if (code === 62 && htmlRawNames.indexOf(buffer.toLowerCase()) > -1) {\n effects.consume(code)\n return continuationClose\n }\n\n if (asciiAlpha(code) && buffer.length < 8) {\n effects.consume(code)\n buffer += fromCharCode(code)\n return continuationRawEndTag\n }\n\n return continuation(code)\n }\n\n function continuationCharacterDataInside(code) {\n if (code === 93) {\n effects.consume(code)\n return continuationDeclarationInside\n }\n\n return continuation(code)\n }\n\n function continuationDeclarationInside(code) {\n if (code === 62) {\n effects.consume(code)\n return continuationClose\n }\n\n return continuation(code)\n }\n\n function continuationClose(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('htmlFlowData')\n return done(code)\n }\n\n effects.consume(code)\n return continuationClose\n }\n\n function done(code) {\n effects.exit('htmlFlow')\n return ok(code)\n }\n}\n\nfunction tokenizeNextBlank(effects, ok, nok) {\n return start\n\n function start(code) {\n effects.exit('htmlFlowData')\n effects.enter('lineEndingBlank')\n effects.consume(code)\n effects.exit('lineEndingBlank')\n return effects.attempt(partialBlankLine, ok, nok)\n }\n}\n\nmodule.exports = htmlFlow\n","'use strict'\n\n// This module is copied from <https://spec.commonmark.org/0.29/#html-blocks>.\nvar basics = [\n 'address',\n 'article',\n 'aside',\n 'base',\n 'basefont',\n 'blockquote',\n 'body',\n 'caption',\n 'center',\n 'col',\n 'colgroup',\n 'dd',\n 'details',\n 'dialog',\n 'dir',\n 'div',\n 'dl',\n 'dt',\n 'fieldset',\n 'figcaption',\n 'figure',\n 'footer',\n 'form',\n 'frame',\n 'frameset',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'head',\n 'header',\n 'hr',\n 'html',\n 'iframe',\n 'legend',\n 'li',\n 'link',\n 'main',\n 'menu',\n 'menuitem',\n 'nav',\n 'noframes',\n 'ol',\n 'optgroup',\n 'option',\n 'p',\n 'param',\n 'section',\n 'source',\n 'summary',\n 'table',\n 'tbody',\n 'td',\n 'tfoot',\n 'th',\n 'thead',\n 'title',\n 'tr',\n 'track',\n 'ul'\n]\n\nmodule.exports = basics\n","'use strict'\n\n// This module is copied from <https://spec.commonmark.org/0.29/#html-blocks>.\nvar raws = ['pre', 'script', 'style', 'textarea']\n\nmodule.exports = raws\n","'use strict'\n\nvar asciiAlpha = require('../character/ascii-alpha.js')\nvar asciiAlphanumeric = require('../character/ascii-alphanumeric.js')\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar markdownLineEndingOrSpace = require('../character/markdown-line-ending-or-space.js')\nvar markdownSpace = require('../character/markdown-space.js')\nvar factorySpace = require('./factory-space.js')\n\nvar htmlText = {\n name: 'htmlText',\n tokenize: tokenizeHtmlText\n}\n\nfunction tokenizeHtmlText(effects, ok, nok) {\n var self = this\n var marker\n var buffer\n var index\n var returnState\n return start\n\n function start(code) {\n effects.enter('htmlText')\n effects.enter('htmlTextData')\n effects.consume(code)\n return open\n }\n\n function open(code) {\n if (code === 33) {\n effects.consume(code)\n return declarationOpen\n }\n\n if (code === 47) {\n effects.consume(code)\n return tagCloseStart\n }\n\n if (code === 63) {\n effects.consume(code)\n return instruction\n }\n\n if (asciiAlpha(code)) {\n effects.consume(code)\n return tagOpen\n }\n\n return nok(code)\n }\n\n function declarationOpen(code) {\n if (code === 45) {\n effects.consume(code)\n return commentOpen\n }\n\n if (code === 91) {\n effects.consume(code)\n buffer = 'CDATA['\n index = 0\n return cdataOpen\n }\n\n if (asciiAlpha(code)) {\n effects.consume(code)\n return declaration\n }\n\n return nok(code)\n }\n\n function commentOpen(code) {\n if (code === 45) {\n effects.consume(code)\n return commentStart\n }\n\n return nok(code)\n }\n\n function commentStart(code) {\n if (code === null || code === 62) {\n return nok(code)\n }\n\n if (code === 45) {\n effects.consume(code)\n return commentStartDash\n }\n\n return comment(code)\n }\n\n function commentStartDash(code) {\n if (code === null || code === 62) {\n return nok(code)\n }\n\n return comment(code)\n }\n\n function comment(code) {\n if (code === null) {\n return nok(code)\n }\n\n if (code === 45) {\n effects.consume(code)\n return commentClose\n }\n\n if (markdownLineEnding(code)) {\n returnState = comment\n return atLineEnding(code)\n }\n\n effects.consume(code)\n return comment\n }\n\n function commentClose(code) {\n if (code === 45) {\n effects.consume(code)\n return end\n }\n\n return comment(code)\n }\n\n function cdataOpen(code) {\n if (code === buffer.charCodeAt(index++)) {\n effects.consume(code)\n return index === buffer.length ? cdata : cdataOpen\n }\n\n return nok(code)\n }\n\n function cdata(code) {\n if (code === null) {\n return nok(code)\n }\n\n if (code === 93) {\n effects.consume(code)\n return cdataClose\n }\n\n if (markdownLineEnding(code)) {\n returnState = cdata\n return atLineEnding(code)\n }\n\n effects.consume(code)\n return cdata\n }\n\n function cdataClose(code) {\n if (code === 93) {\n effects.consume(code)\n return cdataEnd\n }\n\n return cdata(code)\n }\n\n function cdataEnd(code) {\n if (code === 62) {\n return end(code)\n }\n\n if (code === 93) {\n effects.consume(code)\n return cdataEnd\n }\n\n return cdata(code)\n }\n\n function declaration(code) {\n if (code === null || code === 62) {\n return end(code)\n }\n\n if (markdownLineEnding(code)) {\n returnState = declaration\n return atLineEnding(code)\n }\n\n effects.consume(code)\n return declaration\n }\n\n function instruction(code) {\n if (code === null) {\n return nok(code)\n }\n\n if (code === 63) {\n effects.consume(code)\n return instructionClose\n }\n\n if (markdownLineEnding(code)) {\n returnState = instruction\n return atLineEnding(code)\n }\n\n effects.consume(code)\n return instruction\n }\n\n function instructionClose(code) {\n return code === 62 ? end(code) : instruction(code)\n }\n\n function tagCloseStart(code) {\n if (asciiAlpha(code)) {\n effects.consume(code)\n return tagClose\n }\n\n return nok(code)\n }\n\n function tagClose(code) {\n if (code === 45 || asciiAlphanumeric(code)) {\n effects.consume(code)\n return tagClose\n }\n\n return tagCloseBetween(code)\n }\n\n function tagCloseBetween(code) {\n if (markdownLineEnding(code)) {\n returnState = tagCloseBetween\n return atLineEnding(code)\n }\n\n if (markdownSpace(code)) {\n effects.consume(code)\n return tagCloseBetween\n }\n\n return end(code)\n }\n\n function tagOpen(code) {\n if (code === 45 || asciiAlphanumeric(code)) {\n effects.consume(code)\n return tagOpen\n }\n\n if (code === 47 || code === 62 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code)\n }\n\n return nok(code)\n }\n\n function tagOpenBetween(code) {\n if (code === 47) {\n effects.consume(code)\n return end\n }\n\n if (code === 58 || code === 95 || asciiAlpha(code)) {\n effects.consume(code)\n return tagOpenAttributeName\n }\n\n if (markdownLineEnding(code)) {\n returnState = tagOpenBetween\n return atLineEnding(code)\n }\n\n if (markdownSpace(code)) {\n effects.consume(code)\n return tagOpenBetween\n }\n\n return end(code)\n }\n\n function tagOpenAttributeName(code) {\n if (\n code === 45 ||\n code === 46 ||\n code === 58 ||\n code === 95 ||\n asciiAlphanumeric(code)\n ) {\n effects.consume(code)\n return tagOpenAttributeName\n }\n\n return tagOpenAttributeNameAfter(code)\n }\n\n function tagOpenAttributeNameAfter(code) {\n if (code === 61) {\n effects.consume(code)\n return tagOpenAttributeValueBefore\n }\n\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeNameAfter\n return atLineEnding(code)\n }\n\n if (markdownSpace(code)) {\n effects.consume(code)\n return tagOpenAttributeNameAfter\n }\n\n return tagOpenBetween(code)\n }\n\n function tagOpenAttributeValueBefore(code) {\n if (\n code === null ||\n code === 60 ||\n code === 61 ||\n code === 62 ||\n code === 96\n ) {\n return nok(code)\n }\n\n if (code === 34 || code === 39) {\n effects.consume(code)\n marker = code\n return tagOpenAttributeValueQuoted\n }\n\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeValueBefore\n return atLineEnding(code)\n }\n\n if (markdownSpace(code)) {\n effects.consume(code)\n return tagOpenAttributeValueBefore\n }\n\n effects.consume(code)\n marker = undefined\n return tagOpenAttributeValueUnquoted\n }\n\n function tagOpenAttributeValueQuoted(code) {\n if (code === marker) {\n effects.consume(code)\n return tagOpenAttributeValueQuotedAfter\n }\n\n if (code === null) {\n return nok(code)\n }\n\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeValueQuoted\n return atLineEnding(code)\n }\n\n effects.consume(code)\n return tagOpenAttributeValueQuoted\n }\n\n function tagOpenAttributeValueQuotedAfter(code) {\n if (code === 62 || code === 47 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code)\n }\n\n return nok(code)\n }\n\n function tagOpenAttributeValueUnquoted(code) {\n if (\n code === null ||\n code === 34 ||\n code === 39 ||\n code === 60 ||\n code === 61 ||\n code === 96\n ) {\n return nok(code)\n }\n\n if (code === 62 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code)\n }\n\n effects.consume(code)\n return tagOpenAttributeValueUnquoted\n } // We cant have blank lines in content, so no need to worry about empty\n // tokens.\n\n function atLineEnding(code) {\n effects.exit('htmlTextData')\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return factorySpace(\n effects,\n afterPrefix,\n 'linePrefix',\n self.parser.constructs.disable.null.indexOf('codeIndented') > -1\n ? undefined\n : 4\n )\n }\n\n function afterPrefix(code) {\n effects.enter('htmlTextData')\n return returnState(code)\n }\n\n function end(code) {\n if (code === 62) {\n effects.consume(code)\n effects.exit('htmlTextData')\n effects.exit('htmlText')\n return ok\n }\n\n return nok(code)\n }\n}\n\nmodule.exports = htmlText\n","'use strict'\n\nvar labelEnd = require('./label-end.js')\n\nvar labelStartImage = {\n name: 'labelStartImage',\n tokenize: tokenizeLabelStartImage,\n resolveAll: labelEnd.resolveAll\n}\n\nfunction tokenizeLabelStartImage(effects, ok, nok) {\n var self = this\n return start\n\n function start(code) {\n effects.enter('labelImage')\n effects.enter('labelImageMarker')\n effects.consume(code)\n effects.exit('labelImageMarker')\n return open\n }\n\n function open(code) {\n if (code === 91) {\n effects.enter('labelMarker')\n effects.consume(code)\n effects.exit('labelMarker')\n effects.exit('labelImage')\n return after\n }\n\n return nok(code)\n }\n\n function after(code) {\n /* c8 ignore next */\n return code === 94 &&\n /* c8 ignore next */\n '_hiddenFootnoteSupport' in self.parser.constructs\n ? /* c8 ignore next */\n nok(code)\n : ok(code)\n }\n}\n\nmodule.exports = labelStartImage\n","'use strict'\n\nvar labelEnd = require('./label-end.js')\n\nvar labelStartLink = {\n name: 'labelStartLink',\n tokenize: tokenizeLabelStartLink,\n resolveAll: labelEnd.resolveAll\n}\n\nfunction tokenizeLabelStartLink(effects, ok, nok) {\n var self = this\n return start\n\n function start(code) {\n effects.enter('labelLink')\n effects.enter('labelMarker')\n effects.consume(code)\n effects.exit('labelMarker')\n effects.exit('labelLink')\n return after\n }\n\n function after(code) {\n /* c8 ignore next */\n return code === 94 &&\n /* c8 ignore next */\n '_hiddenFootnoteSupport' in self.parser.constructs\n ? /* c8 ignore next */\n nok(code)\n : ok(code)\n }\n}\n\nmodule.exports = labelStartLink\n","'use strict'\n\nvar factorySpace = require('./factory-space.js')\n\nvar lineEnding = {\n name: 'lineEnding',\n tokenize: tokenizeLineEnding\n}\n\nfunction tokenizeLineEnding(effects, ok) {\n return start\n\n function start(code) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return factorySpace(effects, ok, 'linePrefix')\n }\n}\n\nmodule.exports = lineEnding\n","'use strict'\n\nvar asciiDigit = require('../character/ascii-digit.js')\nvar markdownSpace = require('../character/markdown-space.js')\nvar prefixSize = require('../util/prefix-size.js')\nvar sizeChunks = require('../util/size-chunks.js')\nvar factorySpace = require('./factory-space.js')\nvar partialBlankLine = require('./partial-blank-line.js')\nvar thematicBreak = require('./thematic-break.js')\n\nvar list = {\n name: 'list',\n tokenize: tokenizeListStart,\n continuation: {\n tokenize: tokenizeListContinuation\n },\n exit: tokenizeListEnd\n}\nvar listItemPrefixWhitespaceConstruct = {\n tokenize: tokenizeListItemPrefixWhitespace,\n partial: true\n}\nvar indentConstruct = {\n tokenize: tokenizeIndent,\n partial: true\n}\n\nfunction tokenizeListStart(effects, ok, nok) {\n var self = this\n var initialSize = prefixSize(self.events, 'linePrefix')\n var size = 0\n return start\n\n function start(code) {\n var kind =\n self.containerState.type ||\n (code === 42 || code === 43 || code === 45\n ? 'listUnordered'\n : 'listOrdered')\n\n if (\n kind === 'listUnordered'\n ? !self.containerState.marker || code === self.containerState.marker\n : asciiDigit(code)\n ) {\n if (!self.containerState.type) {\n self.containerState.type = kind\n effects.enter(kind, {\n _container: true\n })\n }\n\n if (kind === 'listUnordered') {\n effects.enter('listItemPrefix')\n return code === 42 || code === 45\n ? effects.check(thematicBreak, nok, atMarker)(code)\n : atMarker(code)\n }\n\n if (!self.interrupt || code === 49) {\n effects.enter('listItemPrefix')\n effects.enter('listItemValue')\n return inside(code)\n }\n }\n\n return nok(code)\n }\n\n function inside(code) {\n if (asciiDigit(code) && ++size < 10) {\n effects.consume(code)\n return inside\n }\n\n if (\n (!self.interrupt || size < 2) &&\n (self.containerState.marker\n ? code === self.containerState.marker\n : code === 41 || code === 46)\n ) {\n effects.exit('listItemValue')\n return atMarker(code)\n }\n\n return nok(code)\n }\n\n function atMarker(code) {\n effects.enter('listItemMarker')\n effects.consume(code)\n effects.exit('listItemMarker')\n self.containerState.marker = self.containerState.marker || code\n return effects.check(\n partialBlankLine, // Cant be empty when interrupting.\n self.interrupt ? nok : onBlank,\n effects.attempt(\n listItemPrefixWhitespaceConstruct,\n endOfPrefix,\n otherPrefix\n )\n )\n }\n\n function onBlank(code) {\n self.containerState.initialBlankLine = true\n initialSize++\n return endOfPrefix(code)\n }\n\n function otherPrefix(code) {\n if (markdownSpace(code)) {\n effects.enter('listItemPrefixWhitespace')\n effects.consume(code)\n effects.exit('listItemPrefixWhitespace')\n return endOfPrefix\n }\n\n return nok(code)\n }\n\n function endOfPrefix(code) {\n self.containerState.size =\n initialSize + sizeChunks(self.sliceStream(effects.exit('listItemPrefix')))\n return ok(code)\n }\n}\n\nfunction tokenizeListContinuation(effects, ok, nok) {\n var self = this\n self.containerState._closeFlow = undefined\n return effects.check(partialBlankLine, onBlank, notBlank)\n\n function onBlank(code) {\n self.containerState.furtherBlankLines =\n self.containerState.furtherBlankLines ||\n self.containerState.initialBlankLine // We have a blank line.\n // Still, try to consume at most the items size.\n\n return factorySpace(\n effects,\n ok,\n 'listItemIndent',\n self.containerState.size + 1\n )(code)\n }\n\n function notBlank(code) {\n if (self.containerState.furtherBlankLines || !markdownSpace(code)) {\n self.containerState.furtherBlankLines = self.containerState.initialBlankLine = undefined\n return notInCurrentItem(code)\n }\n\n self.containerState.furtherBlankLines = self.containerState.initialBlankLine = undefined\n return effects.attempt(indentConstruct, ok, notInCurrentItem)(code)\n }\n\n function notInCurrentItem(code) {\n // While we do continue, we signal that the flow should be closed.\n self.containerState._closeFlow = true // As were closing flow, were no longer interrupting.\n\n self.interrupt = undefined\n return factorySpace(\n effects,\n effects.attempt(list, ok, nok),\n 'linePrefix',\n self.parser.constructs.disable.null.indexOf('codeIndented') > -1\n ? undefined\n : 4\n )(code)\n }\n}\n\nfunction tokenizeIndent(effects, ok, nok) {\n var self = this\n return factorySpace(\n effects,\n afterPrefix,\n 'listItemIndent',\n self.containerState.size + 1\n )\n\n function afterPrefix(code) {\n return prefixSize(self.events, 'listItemIndent') ===\n self.containerState.size\n ? ok(code)\n : nok(code)\n }\n}\n\nfunction tokenizeListEnd(effects) {\n effects.exit(this.containerState.type)\n}\n\nfunction tokenizeListItemPrefixWhitespace(effects, ok, nok) {\n var self = this\n return factorySpace(\n effects,\n afterPrefix,\n 'listItemPrefixWhitespace',\n self.parser.constructs.disable.null.indexOf('codeIndented') > -1\n ? undefined\n : 4 + 1\n )\n\n function afterPrefix(code) {\n return markdownSpace(code) ||\n !prefixSize(self.events, 'listItemPrefixWhitespace')\n ? nok(code)\n : ok(code)\n }\n}\n\nmodule.exports = list\n","'use strict'\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar shallow = require('../util/shallow.js')\nvar factorySpace = require('./factory-space.js')\n\nvar setextUnderline = {\n name: 'setextUnderline',\n tokenize: tokenizeSetextUnderline,\n resolveTo: resolveToSetextUnderline\n}\n\nfunction resolveToSetextUnderline(events, context) {\n var index = events.length\n var content\n var text\n var definition\n var heading // Find the opening of the content.\n // Itll always exist: we dont tokenize if it isnt there.\n\n while (index--) {\n if (events[index][0] === 'enter') {\n if (events[index][1].type === 'content') {\n content = index\n break\n }\n\n if (events[index][1].type === 'paragraph') {\n text = index\n }\n } // Exit\n else {\n if (events[index][1].type === 'content') {\n // Remove the content end (if needed well add it later)\n events.splice(index, 1)\n }\n\n if (!definition && events[index][1].type === 'definition') {\n definition = index\n }\n }\n }\n\n heading = {\n type: 'setextHeading',\n start: shallow(events[text][1].start),\n end: shallow(events[events.length - 1][1].end)\n } // Change the paragraph to setext heading text.\n\n events[text][1].type = 'setextHeadingText' // If we have definitions in the content, well keep on having content,\n // but we need move it.\n\n if (definition) {\n events.splice(text, 0, ['enter', heading, context])\n events.splice(definition + 1, 0, ['exit', events[content][1], context])\n events[content][1].end = shallow(events[definition][1].end)\n } else {\n events[content][1] = heading\n } // Add the heading exit at the end.\n\n events.push(['exit', heading, context])\n return events\n}\n\nfunction tokenizeSetextUnderline(effects, ok, nok) {\n var self = this\n var index = self.events.length\n var marker\n var paragraph // Find an opening.\n\n while (index--) {\n // Skip enter/exit of line ending, line prefix, and content.\n // We can now either have a definition or a paragraph.\n if (\n self.events[index][1].type !== 'lineEnding' &&\n self.events[index][1].type !== 'linePrefix' &&\n self.events[index][1].type !== 'content'\n ) {\n paragraph = self.events[index][1].type === 'paragraph'\n break\n }\n }\n\n return start\n\n function start(code) {\n if (!self.lazy && (self.interrupt || paragraph)) {\n effects.enter('setextHeadingLine')\n effects.enter('setextHeadingLineSequence')\n marker = code\n return closingSequence(code)\n }\n\n return nok(code)\n }\n\n function closingSequence(code) {\n if (code === marker) {\n effects.consume(code)\n return closingSequence\n }\n\n effects.exit('setextHeadingLineSequence')\n return factorySpace(effects, closingSequenceEnd, 'lineSuffix')(code)\n }\n\n function closingSequenceEnd(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('setextHeadingLine')\n return ok(code)\n }\n\n return nok(code)\n }\n}\n\nmodule.exports = setextUnderline\n","'use strict'\n\nvar search = /[\\0\\t\\n\\r]/g\n\nfunction preprocess() {\n var start = true\n var column = 1\n var buffer = ''\n var atCarriageReturn\n return preprocessor\n\n function preprocessor(value, encoding, end) {\n var chunks = []\n var match\n var next\n var startPosition\n var endPosition\n var code\n value = buffer + value.toString(encoding)\n startPosition = 0\n buffer = ''\n\n if (start) {\n if (value.charCodeAt(0) === 65279) {\n startPosition++\n }\n\n start = undefined\n }\n\n while (startPosition < value.length) {\n search.lastIndex = startPosition\n match = search.exec(value)\n endPosition = match ? match.index : value.length\n code = value.charCodeAt(endPosition)\n\n if (!match) {\n buffer = value.slice(startPosition)\n break\n }\n\n if (code === 10 && startPosition === endPosition && atCarriageReturn) {\n chunks.push(-3)\n atCarriageReturn = undefined\n } else {\n if (atCarriageReturn) {\n chunks.push(-5)\n atCarriageReturn = undefined\n }\n\n if (startPosition < endPosition) {\n chunks.push(value.slice(startPosition, endPosition))\n column += endPosition - startPosition\n }\n\n if (code === 0) {\n chunks.push(65533)\n column++\n } else if (code === 9) {\n next = Math.ceil(column / 4) * 4\n chunks.push(-2)\n\n while (column++ < next) chunks.push(-1)\n } else if (code === 10) {\n chunks.push(-4)\n column = 1\n } // Must be carriage return.\n else {\n atCarriageReturn = true\n column = 1\n }\n }\n\n startPosition = endPosition + 1\n }\n\n if (end) {\n if (atCarriageReturn) chunks.push(-5)\n if (buffer) chunks.push(buffer)\n chunks.push(null)\n }\n\n return chunks\n }\n}\n\nmodule.exports = preprocess\n","'use strict'\n\nvar subtokenize = require('./util/subtokenize.js')\n\nfunction postprocess(events) {\n while (!subtokenize(events)) {\n // Empty\n }\n\n return events\n}\n\nmodule.exports = postprocess\n","'use strict'\n\nvar mdast2hast = require('mdast-util-to-hast')\n\nmodule.exports = remark2rehype\n\n// Attacher.\n// If a destination is given, runs the destination with the new hast tree\n// (bridge mode).\n// Without destination, returns the tree: further plugins run on that tree\n// (mutate mode).\nfunction remark2rehype(destination, options) {\n if (destination && !destination.process) {\n options = destination\n destination = null\n }\n\n return destination ? bridge(destination, options) : mutate(options)\n}\n\n// Bridge mode.\n// Runs the destination with the new hast tree.\nfunction bridge(destination, options) {\n return transformer\n\n function transformer(node, file, next) {\n destination.run(mdast2hast(node, options), file, done)\n\n function done(error) {\n next(error)\n }\n }\n}\n\n// Mutate-mode.\n// Further transformers run on the hast tree.\nfunction mutate(options) {\n return transformer\n\n function transformer(node) {\n return mdast2hast(node, options)\n }\n}\n","'use strict'\nmodule.exports = require('./lib')\n","'use strict'\n\nmodule.exports = toHast\n\nvar u = require('unist-builder')\nvar visit = require('unist-util-visit')\nvar position = require('unist-util-position')\nvar generated = require('unist-util-generated')\nvar definitions = require('mdast-util-definitions')\nvar one = require('./one')\nvar footer = require('./footer')\nvar handlers = require('./handlers')\n\nvar own = {}.hasOwnProperty\n\nvar deprecationWarningIssued = false\n\n// Factory to transform.\nfunction factory(tree, options) {\n var settings = options || {}\n\n // Issue a warning if the deprecated tag 'allowDangerousHTML' is used\n if (settings.allowDangerousHTML !== undefined && !deprecationWarningIssued) {\n deprecationWarningIssued = true\n console.warn(\n 'mdast-util-to-hast: deprecation: `allowDangerousHTML` is nonstandard, use `allowDangerousHtml` instead'\n )\n }\n\n var dangerous = settings.allowDangerousHtml || settings.allowDangerousHTML\n var footnoteById = {}\n\n h.dangerous = dangerous\n h.definition = definitions(tree)\n h.footnoteById = footnoteById\n h.footnoteOrder = []\n h.augment = augment\n h.handlers = Object.assign({}, handlers, settings.handlers)\n h.unknownHandler = settings.unknownHandler\n h.passThrough = settings.passThrough\n\n visit(tree, 'footnoteDefinition', onfootnotedefinition)\n\n return h\n\n // Finalise the created `right`, a hast node, from `left`, an mdast node.\n function augment(left, right) {\n var data\n var ctx\n\n // Handle `data.hName`, `data.hProperties, `data.hChildren`.\n if (left && left.data) {\n data = left.data\n\n if (data.hName) {\n if (right.type !== 'element') {\n right = {\n type: 'element',\n tagName: '',\n properties: {},\n children: []\n }\n }\n\n right.tagName = data.hName\n }\n\n if (right.type === 'element' && data.hProperties) {\n right.properties = Object.assign({}, right.properties, data.hProperties)\n }\n\n if (right.children && data.hChildren) {\n right.children = data.hChildren\n }\n }\n\n ctx = left && left.position ? left : {position: left}\n\n if (!generated(ctx)) {\n right.position = {\n start: position.start(ctx),\n end: position.end(ctx)\n }\n }\n\n return right\n }\n\n // Create an element for `node`.\n function h(node, tagName, props, children) {\n if (\n (children === undefined || children === null) &&\n typeof props === 'object' &&\n 'length' in props\n ) {\n children = props\n props = {}\n }\n\n return augment(node, {\n type: 'element',\n tagName: tagName,\n properties: props || {},\n children: children || []\n })\n }\n\n function onfootnotedefinition(definition) {\n var id = String(definition.identifier).toUpperCase()\n\n // Mimick CM behavior of link definitions.\n // See: <https://github.com/syntax-tree/mdast-util-definitions/blob/8290999/index.js#L26>.\n if (!own.call(footnoteById, id)) {\n footnoteById[id] = definition\n }\n }\n}\n\n// Transform `tree`, which is an mdast node, to a hast node.\nfunction toHast(tree, options) {\n var h = factory(tree, options)\n var node = one(h, tree)\n var foot = footer(h)\n\n if (foot) {\n node.children = node.children.concat(u('text', '\\n'), foot)\n }\n\n return node\n}\n","module.exports = identity\nfunction identity(d) {\n return d\n}\n","'use strict'\n\nmodule.exports = generated\n\nfunction generated(node) {\n return (\n !node ||\n !node.position ||\n !node.position.start ||\n !node.position.start.line ||\n !node.position.start.column ||\n !node.position.end ||\n !node.position.end.line ||\n !node.position.end.column\n )\n}\n","'use strict'\n\nvar visit = require('unist-util-visit')\n\nmodule.exports = getDefinitionFactory\n\nvar own = {}.hasOwnProperty\n\n// Get a definition in `node` by `identifier`.\nfunction getDefinitionFactory(node, options) {\n return getterFactory(gather(node, options))\n}\n\n// Gather all definitions in `node`\nfunction gather(node) {\n var cache = {}\n\n if (!node || !node.type) {\n throw new Error('mdast-util-definitions expected node')\n }\n\n visit(node, 'definition', ondefinition)\n\n return cache\n\n function ondefinition(definition) {\n var id = normalise(definition.identifier)\n if (!own.call(cache, id)) {\n cache[id] = definition\n }\n }\n}\n\n// Factory to get a node from the given definition-cache.\nfunction getterFactory(cache) {\n return getter\n\n // Get a node from the bound definition-cache.\n function getter(identifier) {\n var id = identifier && normalise(identifier)\n return id && own.call(cache, id) ? cache[id] : null\n }\n}\n\nfunction normalise(identifier) {\n return identifier.toUpperCase()\n}\n","'use strict'\n\nmodule.exports = generateFootnotes\n\nvar thematicBreak = require('./handlers/thematic-break')\nvar list = require('./handlers/list')\nvar wrap = require('./wrap')\n\nfunction generateFootnotes(h) {\n var footnoteById = h.footnoteById\n var footnoteOrder = h.footnoteOrder\n var length = footnoteOrder.length\n var index = -1\n var listItems = []\n var def\n var backReference\n var content\n var tail\n\n while (++index < length) {\n def = footnoteById[footnoteOrder[index].toUpperCase()]\n\n if (!def) {\n continue\n }\n\n content = def.children.concat()\n tail = content[content.length - 1]\n backReference = {\n type: 'link',\n url: '#fnref-' + def.identifier,\n data: {hProperties: {className: ['footnote-backref']}},\n children: [{type: 'text', value: '↩'}]\n }\n\n if (!tail || tail.type !== 'paragraph') {\n tail = {type: 'paragraph', children: []}\n content.push(tail)\n }\n\n tail.children.push(backReference)\n\n listItems.push({\n type: 'listItem',\n data: {hProperties: {id: 'fn-' + def.identifier}},\n children: content,\n position: def.position\n })\n }\n\n if (listItems.length === 0) {\n return null\n }\n\n return h(\n null,\n 'div',\n {className: ['footnotes']},\n wrap(\n [\n thematicBreak(h),\n list(h, {type: 'list', ordered: true, children: listItems})\n ],\n true\n )\n )\n}\n","'use strict'\n\nmodule.exports = {\n blockquote: require('./blockquote'),\n break: require('./break'),\n code: require('./code'),\n delete: require('./delete'),\n emphasis: require('./emphasis'),\n footnoteReference: require('./footnote-reference'),\n footnote: require('./footnote'),\n heading: require('./heading'),\n html: require('./html'),\n imageReference: require('./image-reference'),\n image: require('./image'),\n inlineCode: require('./inline-code'),\n linkReference: require('./link-reference'),\n link: require('./link'),\n listItem: require('./list-item'),\n list: require('./list'),\n paragraph: require('./paragraph'),\n root: require('./root'),\n strong: require('./strong'),\n table: require('./table'),\n text: require('./text'),\n thematicBreak: require('./thematic-break'),\n toml: ignore,\n yaml: ignore,\n definition: ignore,\n footnoteDefinition: ignore\n}\n\n// Return nothing for nodes that are ignored.\nfunction ignore() {\n return null\n}\n","'use strict'\n\nmodule.exports = blockquote\n\nvar wrap = require('../wrap')\nvar all = require('../all')\n\nfunction blockquote(h, node) {\n return h(node, 'blockquote', wrap(all(h, node), true))\n}\n","'use strict'\n\nmodule.exports = hardBreak\n\nvar u = require('unist-builder')\n\nfunction hardBreak(h, node) {\n return [h(node, 'br'), u('text', '\\n')]\n}\n","'use strict'\n\nmodule.exports = code\n\nvar u = require('unist-builder')\n\nfunction code(h, node) {\n var value = node.value ? node.value + '\\n' : ''\n // To do: next major, use `node.lang` w/o regex, the splittings been going\n // on for years in remark now.\n var lang = node.lang && node.lang.match(/^[^ \\t]+(?=[ \\t]|$)/)\n var props = {}\n var code\n\n if (lang) {\n props.className = ['language-' + lang]\n }\n\n code = h(node, 'code', props, [u('text', value)])\n\n if (node.meta) {\n code.data = {meta: node.meta}\n }\n\n return h(node.position, 'pre', [code])\n}\n","'use strict'\n\nmodule.exports = strikethrough\n\nvar all = require('../all')\n\nfunction strikethrough(h, node) {\n return h(node, 'del', all(h, node))\n}\n","'use strict'\n\nmodule.exports = emphasis\n\nvar all = require('../all')\n\nfunction emphasis(h, node) {\n return h(node, 'em', all(h, node))\n}\n","'use strict'\n\nmodule.exports = footnote\n\nvar footnoteReference = require('./footnote-reference')\n\nfunction footnote(h, node) {\n var footnoteById = h.footnoteById\n var footnoteOrder = h.footnoteOrder\n var identifier = 1\n\n while (identifier in footnoteById) {\n identifier++\n }\n\n identifier = String(identifier)\n\n // No need to check if `identifier` exists in `footnoteOrder`, its guaranteed\n // to not exist because we just generated it.\n footnoteOrder.push(identifier)\n\n footnoteById[identifier] = {\n type: 'footnoteDefinition',\n identifier: identifier,\n children: [{type: 'paragraph', children: node.children}],\n position: node.position\n }\n\n return footnoteReference(h, {\n type: 'footnoteReference',\n identifier: identifier,\n position: node.position\n })\n}\n","'use strict'\n\nmodule.exports = heading\n\nvar all = require('../all')\n\nfunction heading(h, node) {\n return h(node, 'h' + node.depth, all(h, node))\n}\n","'use strict'\n\nmodule.exports = html\n\nvar u = require('unist-builder')\n\n// Return either a `raw` node in dangerous mode, otherwise nothing.\nfunction html(h, node) {\n return h.dangerous ? h.augment(node, u('raw', node.value)) : null\n}\n","'use strict'\n\nmodule.exports = imageReference\n\nvar normalize = require('mdurl/encode')\nvar revert = require('../revert')\n\nfunction imageReference(h, node) {\n var def = h.definition(node.identifier)\n var props\n\n if (!def) {\n return revert(h, node)\n }\n\n props = {src: normalize(def.url || ''), alt: node.alt}\n\n if (def.title !== null && def.title !== undefined) {\n props.title = def.title\n }\n\n return h(node, 'img', props)\n}\n","'use strict'\n\nvar normalize = require('mdurl/encode')\n\nmodule.exports = image\n\nfunction image(h, node) {\n var props = {src: normalize(node.url), alt: node.alt}\n\n if (node.title !== null && node.title !== undefined) {\n props.title = node.title\n }\n\n return h(node, 'img', props)\n}\n","'use strict'\n\nmodule.exports = inlineCode\n\nvar u = require('unist-builder')\n\nfunction inlineCode(h, node) {\n var value = node.value.replace(/\\r?\\n|\\r/g, ' ')\n return h(node, 'code', [u('text', value)])\n}\n","'use strict'\n\nmodule.exports = linkReference\n\nvar normalize = require('mdurl/encode')\nvar revert = require('../revert')\nvar all = require('../all')\n\nfunction linkReference(h, node) {\n var def = h.definition(node.identifier)\n var props\n\n if (!def) {\n return revert(h, node)\n }\n\n props = {href: normalize(def.url || '')}\n\n if (def.title !== null && def.title !== undefined) {\n props.title = def.title\n }\n\n return h(node, 'a', props, all(h, node))\n}\n","'use strict'\n\nvar normalize = require('mdurl/encode')\nvar all = require('../all')\n\nmodule.exports = link\n\nfunction link(h, node) {\n var props = {href: normalize(node.url)}\n\n if (node.title !== null && node.title !== undefined) {\n props.title = node.title\n }\n\n return h(node, 'a', props, all(h, node))\n}\n","'use strict'\n\nmodule.exports = listItem\n\nvar u = require('unist-builder')\nvar all = require('../all')\n\nfunction listItem(h, node, parent) {\n var result = all(h, node)\n var head = result[0]\n var loose = parent ? listLoose(parent) : listItemLoose(node)\n var props = {}\n var wrapped = []\n var length\n var index\n var child\n\n if (typeof node.checked === 'boolean') {\n if (!head || head.tagName !== 'p') {\n head = h(null, 'p', [])\n result.unshift(head)\n }\n\n if (head.children.length > 0) {\n head.children.unshift(u('text', ' '))\n }\n\n head.children.unshift(\n h(null, 'input', {\n type: 'checkbox',\n checked: node.checked,\n disabled: true\n })\n )\n\n // According to github-markdown-css, this class hides bullet.\n // See: <https://github.com/sindresorhus/github-markdown-css>.\n props.className = ['task-list-item']\n }\n\n length = result.length\n index = -1\n\n while (++index < length) {\n child = result[index]\n\n // Add eols before nodes, except if this is a loose, first paragraph.\n if (loose || index !== 0 || child.tagName !== 'p') {\n wrapped.push(u('text', '\\n'))\n }\n\n if (child.tagName === 'p' && !loose) {\n wrapped = wrapped.concat(child.children)\n } else {\n wrapped.push(child)\n }\n }\n\n // Add a final eol.\n if (length && (loose || child.tagName !== 'p')) {\n wrapped.push(u('text', '\\n'))\n }\n\n return h(node, 'li', props, wrapped)\n}\n\nfunction listLoose(node) {\n var loose = node.spread\n var children = node.children\n var length = children.length\n var index = -1\n\n while (!loose && ++index < length) {\n loose = listItemLoose(children[index])\n }\n\n return loose\n}\n\nfunction listItemLoose(node) {\n var spread = node.spread\n\n return spread === undefined || spread === null\n ? node.children.length > 1\n : spread\n}\n","'use strict'\n\nmodule.exports = paragraph\n\nvar all = require('../all')\n\nfunction paragraph(h, node) {\n return h(node, 'p', all(h, node))\n}\n","'use strict'\n\nmodule.exports = root\n\nvar u = require('unist-builder')\nvar wrap = require('../wrap')\nvar all = require('../all')\n\nfunction root(h, node) {\n return h.augment(node, u('root', wrap(all(h, node))))\n}\n","'use strict'\n\nmodule.exports = strong\n\nvar all = require('../all')\n\nfunction strong(h, node) {\n return h(node, 'strong', all(h, node))\n}\n","'use strict'\n\nmodule.exports = table\n\nvar position = require('unist-util-position')\nvar wrap = require('../wrap')\nvar all = require('../all')\n\nfunction table(h, node) {\n var rows = node.children\n var index = rows.length\n var align = node.align || []\n var alignLength = align.length\n var result = []\n var pos\n var row\n var out\n var name\n var cell\n\n while (index--) {\n row = rows[index].children\n name = index === 0 ? 'th' : 'td'\n pos = alignLength || row.length\n out = []\n\n while (pos--) {\n cell = row[pos]\n out[pos] = h(cell, name, {align: align[pos]}, cell ? all(h, cell) : [])\n }\n\n result[index] = h(rows[index], 'tr', wrap(out, true))\n }\n\n return h(\n node,\n 'table',\n wrap(\n [h(result[0].position, 'thead', wrap([result[0]], true))].concat(\n result[1]\n ? h(\n {\n start: position.start(result[1]),\n end: position.end(result[result.length - 1])\n },\n 'tbody',\n wrap(result.slice(1), true)\n )\n : []\n ),\n true\n )\n )\n}\n","'use strict'\n\nmodule.exports = text\n\nvar u = require('unist-builder')\n\nfunction text(h, node) {\n return h.augment(\n node,\n u('text', String(node.value).replace(/[ \\t]*(\\r?\\n|\\r)[ \\t]*/g, '$1'))\n )\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","'use strict'\n\nvar types = require('./util/types')\nvar create = require('./util/create')\nvar caseInsensitiveTransform = require('./util/case-insensitive-transform')\n\nvar boolean = types.boolean\nvar overloadedBoolean = types.overloadedBoolean\nvar booleanish = types.booleanish\nvar number = types.number\nvar spaceSeparated = types.spaceSeparated\nvar commaSeparated = types.commaSeparated\n\nmodule.exports = create({\n space: 'html',\n attributes: {\n acceptcharset: 'accept-charset',\n classname: 'class',\n htmlfor: 'for',\n httpequiv: 'http-equiv'\n },\n transform: caseInsensitiveTransform,\n mustUseProperty: ['checked', 'multiple', 'muted', 'selected'],\n properties: {\n // Standard Properties.\n abbr: null,\n accept: commaSeparated,\n acceptCharset: spaceSeparated,\n accessKey: spaceSeparated,\n action: null,\n allow: null,\n allowFullScreen: boolean,\n allowPaymentRequest: boolean,\n allowUserMedia: boolean,\n alt: null,\n as: null,\n async: boolean,\n autoCapitalize: null,\n autoComplete: spaceSeparated,\n autoFocus: boolean,\n autoPlay: boolean,\n capture: boolean,\n charSet: null,\n checked: boolean,\n cite: null,\n className: spaceSeparated,\n cols: number,\n colSpan: null,\n content: null,\n contentEditable: booleanish,\n controls: boolean,\n controlsList: spaceSeparated,\n coords: number | commaSeparated,\n crossOrigin: null,\n data: null,\n dateTime: null,\n decoding: null,\n default: boolean,\n defer: boolean,\n dir: null,\n dirName: null,\n disabled: boolean,\n download: overloadedBoolean,\n draggable: booleanish,\n encType: null,\n enterKeyHint: null,\n form: null,\n formAction: null,\n formEncType: null,\n formMethod: null,\n formNoValidate: boolean,\n formTarget: null,\n headers: spaceSeparated,\n height: number,\n hidden: boolean,\n high: number,\n href: null,\n hrefLang: null,\n htmlFor: spaceSeparated,\n httpEquiv: spaceSeparated,\n id: null,\n imageSizes: null,\n imageSrcSet: commaSeparated,\n inputMode: null,\n integrity: null,\n is: null,\n isMap: boolean,\n itemId: null,\n itemProp: spaceSeparated,\n itemRef: spaceSeparated,\n itemScope: boolean,\n itemType: spaceSeparated,\n kind: null,\n label: null,\n lang: null,\n language: null,\n list: null,\n loading: null,\n loop: boolean,\n low: number,\n manifest: null,\n max: null,\n maxLength: number,\n media: null,\n method: null,\n min: null,\n minLength: number,\n multiple: boolean,\n muted: boolean,\n name: null,\n nonce: null,\n noModule: boolean,\n noValidate: boolean,\n onAbort: null,\n onAfterPrint: null,\n onAuxClick: null,\n onBeforePrint: null,\n onBeforeUnload: null,\n onBlur: null,\n onCancel: null,\n onCanPlay: null,\n onCanPlayThrough: null,\n onChange: null,\n onClick: null,\n onClose: null,\n onContextMenu: null,\n onCopy: null,\n onCueChange: null,\n onCut: null,\n onDblClick: null,\n onDrag: null,\n onDragEnd: null,\n onDragEnter: null,\n onDragExit: null,\n onDragLeave: null,\n onDragOver: null,\n onDragStart: null,\n onDrop: null,\n onDurationChange: null,\n onEmptied: null,\n onEnded: null,\n onError: null,\n onFocus: null,\n onFormData: null,\n onHashChange: null,\n onInput: null,\n onInvalid: null,\n onKeyDown: null,\n onKeyPress: null,\n onKeyUp: null,\n onLanguageChange: null,\n onLoad: null,\n onLoadedData: null,\n onLoadedMetadata: null,\n onLoadEnd: null,\n onLoadStart: null,\n onMessage: null,\n onMessageError: null,\n onMouseDown: null,\n onMouseEnter: null,\n onMouseLeave: null,\n onMouseMove: null,\n onMouseOut: null,\n onMouseOver: null,\n onMouseUp: null,\n onOffline: null,\n onOnline: null,\n onPageHide: null,\n onPageShow: null,\n onPaste: null,\n onPause: null,\n onPlay: null,\n onPlaying: null,\n onPopState: null,\n onProgress: null,\n onRateChange: null,\n onRejectionHandled: null,\n onReset: null,\n onResize: null,\n onScroll: null,\n onSecurityPolicyViolation: null,\n onSeeked: null,\n onSeeking: null,\n onSelect: null,\n onSlotChange: null,\n onStalled: null,\n onStorage: null,\n onSubmit: null,\n onSuspend: null,\n onTimeUpdate: null,\n onToggle: null,\n onUnhandledRejection: null,\n onUnload: null,\n onVolumeChange: null,\n onWaiting: null,\n onWheel: null,\n open: boolean,\n optimum: number,\n pattern: null,\n ping: spaceSeparated,\n placeholder: null,\n playsInline: boolean,\n poster: null,\n preload: null,\n readOnly: boolean,\n referrerPolicy: null,\n rel: spaceSeparated,\n required: boolean,\n reversed: boolean,\n rows: number,\n rowSpan: number,\n sandbox: spaceSeparated,\n scope: null,\n scoped: boolean,\n seamless: boolean,\n selected: boolean,\n shape: null,\n size: number,\n sizes: null,\n slot: null,\n span: number,\n spellCheck: booleanish,\n src: null,\n srcDoc: null,\n srcLang: null,\n srcSet: commaSeparated,\n start: number,\n step: null,\n style: null,\n tabIndex: number,\n target: null,\n title: null,\n translate: null,\n type: null,\n typeMustMatch: boolean,\n useMap: null,\n value: booleanish,\n width: number,\n wrap: null,\n\n // Legacy.\n // See: https://html.spec.whatwg.org/#other-elements,-attributes-and-apis\n align: null, // Several. Use CSS `text-align` instead,\n aLink: null, // `<body>`. Use CSS `a:active {color}` instead\n archive: spaceSeparated, // `<object>`. List of URIs to archives\n axis: null, // `<td>` and `<th>`. Use `scope` on `<th>`\n background: null, // `<body>`. Use CSS `background-image` instead\n bgColor: null, // `<body>` and table elements. Use CSS `background-color` instead\n border: number, // `<table>`. Use CSS `border-width` instead,\n borderColor: null, // `<table>`. Use CSS `border-color` instead,\n bottomMargin: number, // `<body>`\n cellPadding: null, // `<table>`\n cellSpacing: null, // `<table>`\n char: null, // Several table elements. When `align=char`, sets the character to align on\n charOff: null, // Several table elements. When `char`, offsets the alignment\n classId: null, // `<object>`\n clear: null, // `<br>`. Use CSS `clear` instead\n code: null, // `<object>`\n codeBase: null, // `<object>`\n codeType: null, // `<object>`\n color: null, // `<font>` and `<hr>`. Use CSS instead\n compact: boolean, // Lists. Use CSS to reduce space between items instead\n declare: boolean, // `<object>`\n event: null, // `<script>`\n face: null, // `<font>`. Use CSS instead\n frame: null, // `<table>`\n frameBorder: null, // `<iframe>`. Use CSS `border` instead\n hSpace: number, // `<img>` and `<object>`\n leftMargin: number, // `<body>`\n link: null, // `<body>`. Use CSS `a:link {color: *}` instead\n longDesc: null, // `<frame>`, `<iframe>`, and `<img>`. Use an `<a>`\n lowSrc: null, // `<img>`. Use a `<picture>`\n marginHeight: number, // `<body>`\n marginWidth: number, // `<body>`\n noResize: boolean, // `<frame>`\n noHref: boolean, // `<area>`. Use no href instead of an explicit `nohref`\n noShade: boolean, // `<hr>`. Use background-color and height instead of borders\n noWrap: boolean, // `<td>` and `<th>`\n object: null, // `<applet>`\n profile: null, // `<head>`\n prompt: null, // `<isindex>`\n rev: null, // `<link>`\n rightMargin: number, // `<body>`\n rules: null, // `<table>`\n scheme: null, // `<meta>`\n scrolling: booleanish, // `<frame>`. Use overflow in the child context\n standby: null, // `<object>`\n summary: null, // `<table>`\n text: null, // `<body>`. Use CSS `color` instead\n topMargin: number, // `<body>`\n valueType: null, // `<param>`\n version: null, // `<html>`. Use a doctype.\n vAlign: null, // Several. Use CSS `vertical-align` instead\n vLink: null, // `<body>`. Use CSS `a:visited {color}` instead\n vSpace: number, // `<img>` and `<object>`\n\n // Non-standard Properties.\n allowTransparency: null,\n autoCorrect: null,\n autoSave: null,\n disablePictureInPicture: boolean,\n disableRemotePlayback: boolean,\n prefix: null,\n property: null,\n results: number,\n security: null,\n unselectable: null\n }\n})\n","const visit = require('unist-util-visit')\n\nconst splice = [].splice\n\nmodule.exports = rehypeFilter\n\n/**\n * @typedef {import('hast').Root} Root\n * @typedef {import('hast').Element} Element\n *\n * @callback AllowElement\n * @param {Element} element\n * @param {number} index\n * @param {Element|Root} parent\n * @returns {boolean}\n *\n * @typedef {Object} RehypeFilterOptions\n * @property {Array.<string>} [allowedElements]\n * @property {Array.<string>} [disallowedElements=[]]\n * @property {AllowElement} [allowElement]\n * @property {boolean} [unwrapDisallowed=false]\n */\n\n/**\n * @param {RehypeFilterOptions} options\n */\nfunction rehypeFilter(options) {\n if (options.allowedElements && options.disallowedElements) {\n throw new TypeError(\n 'Only one of `allowedElements` and `disallowedElements` should be defined'\n )\n }\n\n return options.allowedElements ||\n options.disallowedElements ||\n options.allowElement\n ? transform\n : undefined\n\n /**\n * @param {Root} tree\n */\n function transform(tree) {\n visit(tree, 'element', onelement)\n }\n\n /**\n * @param {Element} node\n * @param {number} index\n * @param {Element|Root} parent\n * @returns {number|void}\n */\n function onelement(node, index, parent) {\n /** @type {boolean} */\n let remove\n\n if (options.allowedElements) {\n remove = !options.allowedElements.includes(node.tagName)\n } else if (options.disallowedElements) {\n remove = options.disallowedElements.includes(node.tagName)\n }\n\n if (!remove && options.allowElement) {\n remove = !options.allowElement(node, index, parent)\n }\n\n if (remove) {\n /** @type {Array.<unknown>} */\n let parameters = [index, 1]\n\n if (options.unwrapDisallowed && node.children) {\n parameters = parameters.concat(node.children)\n }\n\n splice.apply(parent.children, parameters)\n return index\n }\n\n return undefined\n }\n}\n","const protocols = ['http', 'https', 'mailto', 'tel']\n\nmodule.exports = uriTransformer\n\n/**\n * @param {string} uri\n * @returns {string}\n */\nfunction uriTransformer(uri) {\n const url = (uri || '').trim()\n const first = url.charAt(0)\n\n if (first === '#' || first === '/') {\n return url\n }\n\n const colon = url.indexOf(':')\n if (colon === -1) {\n return url\n }\n\n let index = -1\n\n while (++index < protocols.length) {\n const protocol = protocols[index]\n\n if (\n colon === protocol.length &&\n url.slice(0, protocol.length).toLowerCase() === protocol\n ) {\n return url\n }\n }\n\n index = url.indexOf('?')\n if (index !== -1 && colon > index) {\n return url\n }\n\n index = url.indexOf('#')\n if (index !== -1 && colon > index) {\n return url\n }\n\n // eslint-disable-next-line no-script-url\n return 'javascript:void(0)'\n}\n","'use strict'\n\nconst React = require('react')\nconst ReactIs = require('react-is')\n// @ts-ignore remove when typed\nconst svg = require('property-information/svg')\n// @ts-ignore remove when typed\nconst find = require('property-information/find')\n// @ts-ignore remove when typed\nconst hastToReact = require('property-information/hast-to-react.json')\n// @ts-ignore remove when typed\nconst spaces = require('space-separated-tokens')\n// @ts-ignore remove when typed\nconst commas = require('comma-separated-tokens')\nconst style = require('style-to-object')\n\nexports.hastToReact = toReact\nexports.hastChildrenToReact = childrenToReact\n\n/**\n * @typedef {JSX.IntrinsicElements} IntrinsicElements\n * @typedef {import('react').ReactNode} ReactNode\n * @typedef {import('unist').Position} Position\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Root} Root\n * @typedef {import('hast').Text} Text\n * @typedef {import('hast').Comment} Comment\n * @typedef {import('hast').DocType} Doctype\n */\n\n/**\n * @typedef {Object} Info\n * @property {string?} space\n * @property {string?} attribute\n * @property {string?} property\n * @property {boolean} boolean\n * @property {boolean} booleanish\n * @property {boolean} overloadedBoolean\n * @property {boolean} number\n * @property {boolean} commaSeparated\n * @property {boolean} spaceSeparated\n * @property {boolean} commaOrSpaceSeparated\n * @property {boolean} mustUseProperty\n * @property {boolean} defined\n *\n * @typedef {Object} Schema\n * @property {Object.<string, Info>} property\n * @property {Object.<string, string>} normal\n * @property {string?} space\n *\n * @typedef {Object} Raw\n * @property {'raw'} type\n * @property {string} value\n *\n * @typedef {Object} Context\n * @property {TransformOptions} options\n * @property {Schema} schema\n * @property {number} listDepth\n *\n * @callback TransformLink\n * @param {string} href\n * @param {Array.<Comment|Element|Text>} children\n * @param {string?} title\n * @returns {string}\n *\n * @callback TransformImage\n * @param {string} src\n * @param {string} alt\n * @param {string?} title\n * @returns {string}\n *\n * @callback TransformLinkTarget\n * @param {string} href\n * @param {Array.<Comment|Element|Text>} children\n * @param {string?} title\n * @returns {string}\n *\n * @typedef {keyof IntrinsicElements} ReactMarkdownNames\n *\n * @typedef {{ [key: string]: unknown, className?: string }} ReactBaseProps\n *\n * To do: is `data-sourcepos` typeable?\n *\n * @typedef {Object} ReactMarkdownProps\n * @property {Element} node\n * @property {string} key\n * @property {ReactNode[]} children\n * @property {Position?} [sourcePosition] Passed when `options.rawSourcePos` is given\n * @property {number} [index] Passed when `options.includeElementIndex` is given\n * @property {number} [siblingCount] Passed when `options.includeElementIndex` is given\n *\n * @callback NormalComponent\n * @param {ReactBaseProps & ReactMarkdownProps} props\n * @returns {ReactNode}\n *\n * @callback CodeComponent\n * @param {ReactBaseProps & ReactMarkdownProps & {inline?: boolean}} props\n * @returns {ReactNode}\n *\n * @callback HeadingComponent\n * @param {ReactBaseProps & ReactMarkdownProps & {level: number}} props\n * @returns {ReactNode}\n *\n * @callback LiComponent\n * @param {ReactBaseProps & ReactMarkdownProps & {checked: boolean|null, index: number, ordered: boolean}} props\n * @returns {ReactNode}\n *\n * @callback OrderedListComponent\n * @param {ReactBaseProps & ReactMarkdownProps & {depth: number, ordered: true}} props\n * @returns {ReactNode}\n *\n * @callback TableCellComponent\n * @param {ReactBaseProps & ReactMarkdownProps & {style?: Object.<string, unknown>, isHeader: boolean}} props\n * @returns {ReactNode}\n *\n * @callback TableRowComponent\n * @param {ReactBaseProps & ReactMarkdownProps & {isHeader: boolean}} props\n * @returns {ReactNode}\n *\n * @callback UnorderedListComponent\n * @param {ReactBaseProps & ReactMarkdownProps & {depth: number, ordered: false}} props\n * @returns {ReactNode}\n *\n * @typedef {Object} SpecialComponents\n * @property {CodeComponent|ReactMarkdownNames} code\n * @property {HeadingComponent|ReactMarkdownNames} h1\n * @property {HeadingComponent|ReactMarkdownNames} h2\n * @property {HeadingComponent|ReactMarkdownNames} h3\n * @property {HeadingComponent|ReactMarkdownNames} h4\n * @property {HeadingComponent|ReactMarkdownNames} h5\n * @property {HeadingComponent|ReactMarkdownNames} h6\n * @property {LiComponent|ReactMarkdownNames} li\n * @property {OrderedListComponent|ReactMarkdownNames} ol\n * @property {TableCellComponent|ReactMarkdownNames} td\n * @property {TableCellComponent|ReactMarkdownNames} th\n * @property {TableRowComponent|ReactMarkdownNames} tr\n * @property {UnorderedListComponent|ReactMarkdownNames} ul\n *\n * @typedef {Record<Exclude<ReactMarkdownNames, keyof SpecialComponents>, NormalComponent|ReactMarkdownNames>} NormalComponents\n * @typedef {Partial<NormalComponents & SpecialComponents>} Components\n */\n\n/**\n * @typedef {Object} TransformOptions\n * @property {boolean} [sourcePos=false]\n * @property {boolean} [rawSourcePos=false]\n * @property {boolean} [skipHtml=false]\n * @property {boolean} [includeElementIndex=false]\n * @property {false|TransformLink} [transformLinkUri]\n * @property {TransformImage} [transformImageUri]\n * @property {string|TransformLinkTarget} [linkTarget]\n * @property {Components} [components]\n */\n\nconst own = {}.hasOwnProperty\n\n// The table-related elements that must not contain whitespace text according\n// to React.\nconst tableElements = new Set(['table', 'thead', 'tbody', 'tfoot', 'tr'])\n\n/**\n * @param {Context} context\n * @param {Element|Root} node\n */\nfunction childrenToReact(context, node) {\n /** @type {Array.<ReactNode>} */\n const children = []\n let childIndex = -1\n /** @type {Comment|Doctype|Element|Raw|Text} */\n let child\n\n while (++childIndex < node.children.length) {\n child = node.children[childIndex]\n\n if (child.type === 'element') {\n children.push(toReact(context, child, childIndex, node))\n } else if (child.type === 'text') {\n // React does not permit whitespace text elements as children of table:\n // cf. https://github.com/remarkjs/react-markdown/issues/576\n if (\n node.type !== 'element' ||\n !tableElements.has(node.tagName) ||\n child.value !== '\\n'\n ) {\n children.push(child.value)\n }\n }\n // @ts-ignore `raw` nodes are non-standard\n else if (child.type === 'raw' && !context.options.skipHtml) {\n // Default behavior is to show (encoded) HTML.\n // @ts-ignore `raw` nodes are non-standard\n children.push(child.value)\n }\n }\n\n return children\n}\n\n/**\n * @param {Context} context\n * @param {Element} node\n * @param {number} index\n * @param {Element|Root} parent\n */\nfunction toReact(context, node, index, parent) {\n const options = context.options\n const parentSchema = context.schema\n /** @type {ReactMarkdownNames} */\n // @ts-ignore assume a known HTML/SVG element.\n const name = node.tagName\n /** @type {Object.<string, unknown>} */\n const properties = {}\n let schema = parentSchema\n /** @type {string} */\n let property\n\n if (parentSchema.space === 'html' && name === 'svg') {\n schema = svg\n context.schema = schema\n }\n\n for (property in node.properties) {\n /* istanbul ignore else - prototype polution. */\n if (own.call(node.properties, property)) {\n addProperty(properties, property, node.properties[property], context)\n }\n }\n\n if (name === 'ol' || name === 'ul') {\n context.listDepth++\n }\n\n const children = childrenToReact(context, node)\n\n if (name === 'ol' || name === 'ul') {\n context.listDepth--\n }\n\n // Restore parent schema.\n context.schema = parentSchema\n\n // Nodes created by plugins do not have positional info, in which case we use\n // an object that matches the positon interface.\n const position = node.position || {\n start: {line: null, column: null, offset: null},\n end: {line: null, column: null, offset: null}\n }\n /** @type {NormalComponent|SpecialComponents[keyof SpecialComponents]|ReactMarkdownNames} */\n const component =\n options.components && own.call(options.components, name)\n ? options.components[name]\n : name\n const basic = typeof component === 'string' || component === React.Fragment\n\n if (!ReactIs.isValidElementType(component)) {\n throw new TypeError(\n `Component for name \\`${name}\\` not defined or is not renderable`\n )\n }\n\n properties.key = [\n name,\n position.start.line,\n position.start.column,\n index\n ].join('-')\n\n if (name === 'a' && options.linkTarget) {\n properties.target =\n typeof options.linkTarget === 'function'\n ? // @ts-ignore assume `href` is a string\n options.linkTarget(properties.href, node.children, properties.title)\n : options.linkTarget\n }\n\n if (name === 'a' && options.transformLinkUri) {\n properties.href = options.transformLinkUri(\n // @ts-ignore assume `href` is a string\n properties.href,\n node.children,\n properties.title\n )\n }\n\n if (!basic && name === 'code' && parent.tagName !== 'pre') {\n properties.inline = true\n }\n\n if (\n !basic &&\n (name === 'h1' ||\n name === 'h2' ||\n name === 'h3' ||\n name === 'h4' ||\n name === 'h5' ||\n name === 'h6')\n ) {\n properties.level = parseInt(name.charAt(1), 10)\n }\n\n if (name === 'img' && options.transformImageUri) {\n properties.src = options.transformImageUri(\n // @ts-ignore assume `src` is a string\n properties.src,\n properties.alt,\n properties.title\n )\n }\n\n if (!basic && name === 'li') {\n const input = getInputElement(node)\n properties.checked = input ? Boolean(input.properties.checked) : null\n properties.index = getElementsBeforeCount(parent, node)\n properties.ordered = parent.tagName === 'ol'\n }\n\n if (!basic && (name === 'ol' || name === 'ul')) {\n properties.ordered = name === 'ol'\n properties.depth = context.listDepth\n }\n\n if (name === 'td' || name === 'th') {\n if (properties.align) {\n if (!properties.style) properties.style = {}\n // @ts-ignore assume `style` is an object\n properties.style.textAlign = properties.align\n delete properties.align\n }\n\n if (!basic) {\n properties.isHeader = name === 'th'\n }\n }\n\n if (!basic && name === 'tr') {\n properties.isHeader = Boolean(parent.tagName === 'thead')\n }\n\n // If `sourcePos` is given, pass source information (line/column info from markdown source).\n if (options.sourcePos) {\n properties['data-sourcepos'] = flattenPosition(position)\n }\n\n if (!basic && options.rawSourcePos) {\n properties.sourcePosition = node.position\n }\n\n // If `includeElementIndex` is given, pass node index info to components.\n if (!basic && options.includeElementIndex) {\n properties.index = getElementsBeforeCount(parent, node)\n properties.siblingCount = getElementsBeforeCount(parent)\n }\n\n if (!basic) {\n properties.node = node\n }\n\n // Ensure no React warnings are emitted for void elements w/ children.\n return children.length > 0\n ? React.createElement(component, properties, children)\n : React.createElement(component, properties)\n}\n\n/**\n * @param {Element|Root} node\n * @returns {Element?}\n */\nfunction getInputElement(node) {\n let index = -1\n\n while (++index < node.children.length) {\n const child = node.children[index]\n\n if (child.type === 'element' && child.tagName === 'input') {\n return child\n }\n }\n\n return null\n}\n\n/**\n * @param {Element|Root} parent\n * @param {Element} [node]\n * @returns {number}\n */\nfunction getElementsBeforeCount(parent, node) {\n let index = -1\n let count = 0\n\n while (++index < parent.children.length) {\n if (parent.children[index] === node) break\n if (parent.children[index].type === 'element') count++\n }\n\n return count\n}\n\n/**\n * @param {Object.<string, unknown>} props\n * @param {string} prop\n * @param {unknown} value\n * @param {Context} ctx\n */\nfunction addProperty(props, prop, value, ctx) {\n /** @type {Info} */\n const info = find(ctx.schema, prop)\n let result = value\n\n // Ignore nullish and `NaN` values.\n // eslint-disable-next-line no-self-compare\n if (result === null || result === undefined || result !== result) {\n return\n }\n\n // Accept `array`.\n // Most props are space-separated.\n if (result && typeof result === 'object' && 'length' in result) {\n // type-coverage:ignore-next-line remove when typed.\n result = (info.commaSeparated ? commas : spaces).stringify(result)\n }\n\n if (info.property === 'style' && typeof result === 'string') {\n result = parseStyle(result)\n }\n\n if (info.space) {\n props[\n own.call(hastToReact, info.property)\n ? hastToReact[info.property]\n : info.property\n ] = result\n } else {\n props[info.attribute] = result\n }\n}\n\n/**\n * @param {string} value\n * @returns {Object.<string, string>}\n */\nfunction parseStyle(value) {\n /** @type {Object.<string, string>} */\n const result = {}\n\n try {\n style(value, iterator)\n } catch (/** @type {Error} */ _) {\n // Silent.\n }\n\n return result\n\n /**\n * @param {string} name\n * @param {string} v\n */\n function iterator(name, v) {\n const k = name.slice(0, 4) === '-ms-' ? `ms-${name.slice(4)}` : name\n result[k.replace(/-([a-z])/g, styleReplacer)] = v\n }\n}\n\n/**\n * @param {unknown} _\n * @param {string} $1\n */\nfunction styleReplacer(_, $1) {\n return $1.toUpperCase()\n}\n\n/**\n * @param {Position} pos\n * @returns {string}\n */\nfunction flattenPosition(pos) {\n return [\n pos.start.line,\n ':',\n pos.start.column,\n '-',\n pos.end.line,\n ':',\n pos.end.column\n ]\n .map((d) => String(d))\n .join('')\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","/** @license React v17.0.2\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var b=60103,c=60106,d=60107,e=60108,f=60114,g=60109,h=60110,k=60112,l=60113,m=60120,n=60115,p=60116,q=60121,r=60122,u=60117,v=60129,w=60131;\nif(\"function\"===typeof Symbol&&Symbol.for){var x=Symbol.for;b=x(\"react.element\");c=x(\"react.portal\");d=x(\"react.fragment\");e=x(\"react.strict_mode\");f=x(\"react.profiler\");g=x(\"react.provider\");h=x(\"react.context\");k=x(\"react.forward_ref\");l=x(\"react.suspense\");m=x(\"react.suspense_list\");n=x(\"react.memo\");p=x(\"react.lazy\");q=x(\"react.block\");r=x(\"react.server.block\");u=x(\"react.fundamental\");v=x(\"react.debug_trace_mode\");w=x(\"react.legacy_hidden\")}\nfunction y(a){if(\"object\"===typeof a&&null!==a){var t=a.$$typeof;switch(t){case b:switch(a=a.type,a){case d:case f:case e:case l:case m:return a;default:switch(a=a&&a.$$typeof,a){case h:case k:case p:case n:case g:return a;default:return t}}case c:return t}}}var z=g,A=b,B=k,C=d,D=p,E=n,F=c,G=f,H=e,I=l;exports.ContextConsumer=h;exports.ContextProvider=z;exports.Element=A;exports.ForwardRef=B;exports.Fragment=C;exports.Lazy=D;exports.Memo=E;exports.Portal=F;exports.Profiler=G;exports.StrictMode=H;\nexports.Suspense=I;exports.isAsyncMode=function(){return!1};exports.isConcurrentMode=function(){return!1};exports.isContextConsumer=function(a){return y(a)===h};exports.isContextProvider=function(a){return y(a)===g};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===b};exports.isForwardRef=function(a){return y(a)===k};exports.isFragment=function(a){return y(a)===d};exports.isLazy=function(a){return y(a)===p};exports.isMemo=function(a){return y(a)===n};\nexports.isPortal=function(a){return y(a)===c};exports.isProfiler=function(a){return y(a)===f};exports.isStrictMode=function(a){return y(a)===e};exports.isSuspense=function(a){return y(a)===l};exports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===d||a===f||a===v||a===e||a===l||a===m||a===w||\"object\"===typeof a&&null!==a&&(a.$$typeof===p||a.$$typeof===n||a.$$typeof===g||a.$$typeof===h||a.$$typeof===k||a.$$typeof===u||a.$$typeof===q||a[0]===r)?!0:!1};\nexports.typeOf=y;\n","'use strict'\n\nvar types = require('./util/types')\nvar create = require('./util/create')\nvar caseSensitiveTransform = require('./util/case-sensitive-transform')\n\nvar boolean = types.boolean\nvar number = types.number\nvar spaceSeparated = types.spaceSeparated\nvar commaSeparated = types.commaSeparated\nvar commaOrSpaceSeparated = types.commaOrSpaceSeparated\n\nmodule.exports = create({\n space: 'svg',\n attributes: {\n accentHeight: 'accent-height',\n alignmentBaseline: 'alignment-baseline',\n arabicForm: 'arabic-form',\n baselineShift: 'baseline-shift',\n capHeight: 'cap-height',\n className: 'class',\n clipPath: 'clip-path',\n clipRule: 'clip-rule',\n colorInterpolation: 'color-interpolation',\n colorInterpolationFilters: 'color-interpolation-filters',\n colorProfile: 'color-profile',\n colorRendering: 'color-rendering',\n crossOrigin: 'crossorigin',\n dataType: 'datatype',\n dominantBaseline: 'dominant-baseline',\n enableBackground: 'enable-background',\n fillOpacity: 'fill-opacity',\n fillRule: 'fill-rule',\n floodColor: 'flood-color',\n floodOpacity: 'flood-opacity',\n fontFamily: 'font-family',\n fontSize: 'font-size',\n fontSizeAdjust: 'font-size-adjust',\n fontStretch: 'font-stretch',\n fontStyle: 'font-style',\n fontVariant: 'font-variant',\n fontWeight: 'font-weight',\n glyphName: 'glyph-name',\n glyphOrientationHorizontal: 'glyph-orientation-horizontal',\n glyphOrientationVertical: 'glyph-orientation-vertical',\n hrefLang: 'hreflang',\n horizAdvX: 'horiz-adv-x',\n horizOriginX: 'horiz-origin-x',\n horizOriginY: 'horiz-origin-y',\n imageRendering: 'image-rendering',\n letterSpacing: 'letter-spacing',\n lightingColor: 'lighting-color',\n markerEnd: 'marker-end',\n markerMid: 'marker-mid',\n markerStart: 'marker-start',\n navDown: 'nav-down',\n navDownLeft: 'nav-down-left',\n navDownRight: 'nav-down-right',\n navLeft: 'nav-left',\n navNext: 'nav-next',\n navPrev: 'nav-prev',\n navRight: 'nav-right',\n navUp: 'nav-up',\n navUpLeft: 'nav-up-left',\n navUpRight: 'nav-up-right',\n onAbort: 'onabort',\n onActivate: 'onactivate',\n onAfterPrint: 'onafterprint',\n onBeforePrint: 'onbeforeprint',\n onBegin: 'onbegin',\n onCancel: 'oncancel',\n onCanPlay: 'oncanplay',\n onCanPlayThrough: 'oncanplaythrough',\n onChange: 'onchange',\n onClick: 'onclick',\n onClose: 'onclose',\n onCopy: 'oncopy',\n onCueChange: 'oncuechange',\n onCut: 'oncut',\n onDblClick: 'ondblclick',\n onDrag: 'ondrag',\n onDragEnd: 'ondragend',\n onDragEnter: 'ondragenter',\n onDragExit: 'ondragexit',\n onDragLeave: 'ondragleave',\n onDragOver: 'ondragover',\n onDragStart: 'ondragstart',\n onDrop: 'ondrop',\n onDurationChange: 'ondurationchange',\n onEmptied: 'onemptied',\n onEnd: 'onend',\n onEnded: 'onended',\n onError: 'onerror',\n onFocus: 'onfocus',\n onFocusIn: 'onfocusin',\n onFocusOut: 'onfocusout',\n onHashChange: 'onhashchange',\n onInput: 'oninput',\n onInvalid: 'oninvalid',\n onKeyDown: 'onkeydown',\n onKeyPress: 'onkeypress',\n onKeyUp: 'onkeyup',\n onLoad: 'onload',\n onLoadedData: 'onloadeddata',\n onLoadedMetadata: 'onloadedmetadata',\n onLoadStart: 'onloadstart',\n onMessage: 'onmessage',\n onMouseDown: 'onmousedown',\n onMouseEnter: 'onmouseenter',\n onMouseLeave: 'onmouseleave',\n onMouseMove: 'onmousemove',\n onMouseOut: 'onmouseout',\n onMouseOver: 'onmouseover',\n onMouseUp: 'onmouseup',\n onMouseWheel: 'onmousewheel',\n onOffline: 'onoffline',\n onOnline: 'ononline',\n onPageHide: 'onpagehide',\n onPageShow: 'onpageshow',\n onPaste: 'onpaste',\n onPause: 'onpause',\n onPlay: 'onplay',\n onPlaying: 'onplaying',\n onPopState: 'onpopstate',\n onProgress: 'onprogress',\n onRateChange: 'onratechange',\n onRepeat: 'onrepeat',\n onReset: 'onreset',\n onResize: 'onresize',\n onScroll: 'onscroll',\n onSeeked: 'onseeked',\n onSeeking: 'onseeking',\n onSelect: 'onselect',\n onShow: 'onshow',\n onStalled: 'onstalled',\n onStorage: 'onstorage',\n onSubmit: 'onsubmit',\n onSuspend: 'onsuspend',\n onTimeUpdate: 'ontimeupdate',\n onToggle: 'ontoggle',\n onUnload: 'onunload',\n onVolumeChange: 'onvolumechange',\n onWaiting: 'onwaiting',\n onZoom: 'onzoom',\n overlinePosition: 'overline-position',\n overlineThickness: 'overline-thickness',\n paintOrder: 'paint-order',\n panose1: 'panose-1',\n pointerEvents: 'pointer-events',\n referrerPolicy: 'referrerpolicy',\n renderingIntent: 'rendering-intent',\n shapeRendering: 'shape-rendering',\n stopColor: 'stop-color',\n stopOpacity: 'stop-opacity',\n strikethroughPosition: 'strikethrough-position',\n strikethroughThickness: 'strikethrough-thickness',\n strokeDashArray: 'stroke-dasharray',\n strokeDashOffset: 'stroke-dashoffset',\n strokeLineCap: 'stroke-linecap',\n strokeLineJoin: 'stroke-linejoin',\n strokeMiterLimit: 'stroke-miterlimit',\n strokeOpacity: 'stroke-opacity',\n strokeWidth: 'stroke-width',\n tabIndex: 'tabindex',\n textAnchor: 'text-anchor',\n textDecoration: 'text-decoration',\n textRendering: 'text-rendering',\n typeOf: 'typeof',\n underlinePosition: 'underline-position',\n underlineThickness: 'underline-thickness',\n unicodeBidi: 'unicode-bidi',\n unicodeRange: 'unicode-range',\n unitsPerEm: 'units-per-em',\n vAlphabetic: 'v-alphabetic',\n vHanging: 'v-hanging',\n vIdeographic: 'v-ideographic',\n vMathematical: 'v-mathematical',\n vectorEffect: 'vector-effect',\n vertAdvY: 'vert-adv-y',\n vertOriginX: 'vert-origin-x',\n vertOriginY: 'vert-origin-y',\n wordSpacing: 'word-spacing',\n writingMode: 'writing-mode',\n xHeight: 'x-height',\n // These were camelcased in Tiny. Now lowercased in SVG 2\n playbackOrder: 'playbackorder',\n timelineBegin: 'timelinebegin'\n },\n transform: caseSensitiveTransform,\n properties: {\n about: commaOrSpaceSeparated,\n accentHeight: number,\n accumulate: null,\n additive: null,\n alignmentBaseline: null,\n alphabetic: number,\n amplitude: number,\n arabicForm: null,\n ascent: number,\n attributeName: null,\n attributeType: null,\n azimuth: number,\n bandwidth: null,\n baselineShift: null,\n baseFrequency: null,\n baseProfile: null,\n bbox: null,\n begin: null,\n bias: number,\n by: null,\n calcMode: null,\n capHeight: number,\n className: spaceSeparated,\n clip: null,\n clipPath: null,\n clipPathUnits: null,\n clipRule: null,\n color: null,\n colorInterpolation: null,\n colorInterpolationFilters: null,\n colorProfile: null,\n colorRendering: null,\n content: null,\n contentScriptType: null,\n contentStyleType: null,\n crossOrigin: null,\n cursor: null,\n cx: null,\n cy: null,\n d: null,\n dataType: null,\n defaultAction: null,\n descent: number,\n diffuseConstant: number,\n direction: null,\n display: null,\n dur: null,\n divisor: number,\n dominantBaseline: null,\n download: boolean,\n dx: null,\n dy: null,\n edgeMode: null,\n editable: null,\n elevation: number,\n enableBackground: null,\n end: null,\n event: null,\n exponent: number,\n externalResourcesRequired: null,\n fill: null,\n fillOpacity: number,\n fillRule: null,\n filter: null,\n filterRes: null,\n filterUnits: null,\n floodColor: null,\n floodOpacity: null,\n focusable: null,\n focusHighlight: null,\n fontFamily: null,\n fontSize: null,\n fontSizeAdjust: null,\n fontStretch: null,\n fontStyle: null,\n fontVariant: null,\n fontWeight: null,\n format: null,\n fr: null,\n from: null,\n fx: null,\n fy: null,\n g1: commaSeparated,\n g2: commaSeparated,\n glyphName: commaSeparated,\n glyphOrientationHorizontal: null,\n glyphOrientationVertical: null,\n glyphRef: null,\n gradientTransform: null,\n gradientUnits: null,\n handler: null,\n hanging: number,\n hatchContentUnits: null,\n hatchUnits: null,\n height: null,\n href: null,\n hrefLang: null,\n horizAdvX: number,\n horizOriginX: number,\n horizOriginY: number,\n id: null,\n ideographic: number,\n imageRendering: null,\n initialVisibility: null,\n in: null,\n in2: null,\n intercept: number,\n k: number,\n k1: number,\n k2: number,\n k3: number,\n k4: number,\n kernelMatrix: commaOrSpaceSeparated,\n kernelUnitLength: null,\n keyPoints: null, // SEMI_COLON_SEPARATED\n keySplines: null, // SEMI_COLON_SEPARATED\n keyTimes: null, // SEMI_COLON_SEPARATED\n kerning: null,\n lang: null,\n lengthAdjust: null,\n letterSpacing: null,\n lightingColor: null,\n limitingConeAngle: number,\n local: null,\n markerEnd: null,\n markerMid: null,\n markerStart: null,\n markerHeight: null,\n markerUnits: null,\n markerWidth: null,\n mask: null,\n maskContentUnits: null,\n maskUnits: null,\n mathematical: null,\n max: null,\n media: null,\n mediaCharacterEncoding: null,\n mediaContentEncodings: null,\n mediaSize: number,\n mediaTime: null,\n method: null,\n min: null,\n mode: null,\n name: null,\n navDown: null,\n navDownLeft: null,\n navDownRight: null,\n navLeft: null,\n navNext: null,\n navPrev: null,\n navRight: null,\n navUp: null,\n navUpLeft: null,\n navUpRight: null,\n numOctaves: null,\n observer: null,\n offset: null,\n onAbort: null,\n onActivate: null,\n onAfterPrint: null,\n onBeforePrint: null,\n onBegin: null,\n onCancel: null,\n onCanPlay: null,\n onCanPlayThrough: null,\n onChange: null,\n onClick: null,\n onClose: null,\n onCopy: null,\n onCueChange: null,\n onCut: null,\n onDblClick: null,\n onDrag: null,\n onDragEnd: null,\n onDragEnter: null,\n onDragExit: null,\n onDragLeave: null,\n onDragOver: null,\n onDragStart: null,\n onDrop: null,\n onDurationChange: null,\n onEmptied: null,\n onEnd: null,\n onEnded: null,\n onError: null,\n onFocus: null,\n onFocusIn: null,\n onFocusOut: null,\n onHashChange: null,\n onInput: null,\n onInvalid: null,\n onKeyDown: null,\n onKeyPress: null,\n onKeyUp: null,\n onLoad: null,\n onLoadedData: null,\n onLoadedMetadata: null,\n onLoadStart: null,\n onMessage: null,\n onMouseDown: null,\n onMouseEnter: null,\n onMouseLeave: null,\n onMouseMove: null,\n onMouseOut: null,\n onMouseOver: null,\n onMouseUp: null,\n onMouseWheel: null,\n onOffline: null,\n onOnline: null,\n onPageHide: null,\n onPageShow: null,\n onPaste: null,\n onPause: null,\n onPlay: null,\n onPlaying: null,\n onPopState: null,\n onProgress: null,\n onRateChange: null,\n onRepeat: null,\n onReset: null,\n onResize: null,\n onScroll: null,\n onSeeked: null,\n onSeeking: null,\n onSelect: null,\n onShow: null,\n onStalled: null,\n onStorage: null,\n onSubmit: null,\n onSuspend: null,\n onTimeUpdate: null,\n onToggle: null,\n onUnload: null,\n onVolumeChange: null,\n onWaiting: null,\n onZoom: null,\n opacity: null,\n operator: null,\n order: null,\n orient: null,\n orientation: null,\n origin: null,\n overflow: null,\n overlay: null,\n overlinePosition: number,\n overlineThickness: number,\n paintOrder: null,\n panose1: null,\n path: null,\n pathLength: number,\n patternContentUnits: null,\n patternTransform: null,\n patternUnits: null,\n phase: null,\n ping: spaceSeparated,\n pitch: null,\n playbackOrder: null,\n pointerEvents: null,\n points: null,\n pointsAtX: number,\n pointsAtY: number,\n pointsAtZ: number,\n preserveAlpha: null,\n preserveAspectRatio: null,\n primitiveUnits: null,\n propagate: null,\n property: commaOrSpaceSeparated,\n r: null,\n radius: null,\n referrerPolicy: null,\n refX: null,\n refY: null,\n rel: commaOrSpaceSeparated,\n rev: commaOrSpaceSeparated,\n renderingIntent: null,\n repeatCount: null,\n repeatDur: null,\n requiredExtensions: commaOrSpaceSeparated,\n requiredFeatures: commaOrSpaceSeparated,\n requiredFonts: commaOrSpaceSeparated,\n requiredFormats: commaOrSpaceSeparated,\n resource: null,\n restart: null,\n result: null,\n rotate: null,\n rx: null,\n ry: null,\n scale: null,\n seed: null,\n shapeRendering: null,\n side: null,\n slope: null,\n snapshotTime: null,\n specularConstant: number,\n specularExponent: number,\n spreadMethod: null,\n spacing: null,\n startOffset: null,\n stdDeviation: null,\n stemh: null,\n stemv: null,\n stitchTiles: null,\n stopColor: null,\n stopOpacity: null,\n strikethroughPosition: number,\n strikethroughThickness: number,\n string: null,\n stroke: null,\n strokeDashArray: commaOrSpaceSeparated,\n strokeDashOffset: null,\n strokeLineCap: null,\n strokeLineJoin: null,\n strokeMiterLimit: number,\n strokeOpacity: number,\n strokeWidth: null,\n style: null,\n surfaceScale: number,\n syncBehavior: null,\n syncBehaviorDefault: null,\n syncMaster: null,\n syncTolerance: null,\n syncToleranceDefault: null,\n systemLanguage: commaOrSpaceSeparated,\n tabIndex: number,\n tableValues: null,\n target: null,\n targetX: number,\n targetY: number,\n textAnchor: null,\n textDecoration: null,\n textRendering: null,\n textLength: null,\n timelineBegin: null,\n title: null,\n transformBehavior: null,\n type: null,\n typeOf: commaOrSpaceSeparated,\n to: null,\n transform: null,\n u1: null,\n u2: null,\n underlinePosition: number,\n underlineThickness: number,\n unicode: null,\n unicodeBidi: null,\n unicodeRange: null,\n unitsPerEm: number,\n values: null,\n vAlphabetic: number,\n vMathematical: number,\n vectorEffect: null,\n vHanging: number,\n vIdeographic: number,\n version: null,\n vertAdvY: number,\n vertOriginX: number,\n vertOriginY: number,\n viewBox: null,\n viewTarget: null,\n visibility: null,\n width: null,\n widths: null,\n wordSpacing: null,\n writingMode: null,\n x: null,\n x1: null,\n x2: null,\n xChannelSelector: null,\n xHeight: number,\n y: null,\n y1: null,\n y2: null,\n yChannelSelector: null,\n z: null,\n zoomAndPan: null\n }\n})\n","// http://www.w3.org/TR/CSS21/grammar.html\n// https://github.com/visionmedia/css-parse/pull/49#issuecomment-30088027\nvar COMMENT_REGEX = /\\/\\*[^*]*\\*+([^/*][^*]*\\*+)*\\//g;\n\nvar NEWLINE_REGEX = /\\n/g;\nvar WHITESPACE_REGEX = /^\\s*/;\n\n// declaration\nvar PROPERTY_REGEX = /^(\\*?[-#/*\\\\\\w]+(\\[[0-9a-z_-]+\\])?)\\s*/;\nvar COLON_REGEX = /^:\\s*/;\nvar VALUE_REGEX = /^((?:'(?:\\\\'|.)*?'|\"(?:\\\\\"|.)*?\"|\\([^)]*?\\)|[^};])+)/;\nvar SEMICOLON_REGEX = /^[;\\s]*/;\n\n// https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String/Trim#Polyfill\nvar TRIM_REGEX = /^\\s+|\\s+$/g;\n\n// strings\nvar NEWLINE = '\\n';\nvar FORWARD_SLASH = '/';\nvar ASTERISK = '*';\nvar EMPTY_STRING = '';\n\n// types\nvar TYPE_COMMENT = 'comment';\nvar TYPE_DECLARATION = 'declaration';\n\n/**\n * @param {String} style\n * @param {Object} [options]\n * @return {Object[]}\n * @throws {TypeError}\n * @throws {Error}\n */\nmodule.exports = function(style, options) {\n if (typeof style !== 'string') {\n throw new TypeError('First argument must be a string');\n }\n\n if (!style) return [];\n\n options = options || {};\n\n /**\n * Positional.\n */\n var lineno = 1;\n var column = 1;\n\n /**\n * Update lineno and column based on `str`.\n *\n * @param {String} str\n */\n function updatePosition(str) {\n var lines = str.match(NEWLINE_REGEX);\n if (lines) lineno += lines.length;\n var i = str.lastIndexOf(NEWLINE);\n column = ~i ? str.length - i : column + str.length;\n }\n\n /**\n * Mark position and patch `node.position`.\n *\n * @return {Function}\n */\n function position() {\n var start = { line: lineno, column: column };\n return function(node) {\n node.position = new Position(start);\n whitespace();\n return node;\n };\n }\n\n /**\n * Store position information for a node.\n *\n * @constructor\n * @property {Object} start\n * @property {Object} end\n * @property {undefined|String} source\n */\n function Position(start) {\n this.start = start;\n this.end = { line: lineno, column: column };\n this.source = options.source;\n }\n\n /**\n * Non-enumerable source string.\n */\n Position.prototype.content = style;\n\n var errorsList = [];\n\n /**\n * Error `msg`.\n *\n * @param {String} msg\n * @throws {Error}\n */\n function error(msg) {\n var err = new Error(\n options.source + ':' + lineno + ':' + column + ': ' + msg\n );\n err.reason = msg;\n err.filename = options.source;\n err.line = lineno;\n err.column = column;\n err.source = style;\n\n if (options.silent) {\n errorsList.push(err);\n } else {\n throw err;\n }\n }\n\n /**\n * Match `re` and return captures.\n *\n * @param {RegExp} re\n * @return {undefined|Array}\n */\n function match(re) {\n var m = re.exec(style);\n if (!m) return;\n var str = m[0];\n updatePosition(str);\n style = style.slice(str.length);\n return m;\n }\n\n /**\n * Parse whitespace.\n */\n function whitespace() {\n match(WHITESPACE_REGEX);\n }\n\n /**\n * Parse comments.\n *\n * @param {Object[]} [rules]\n * @return {Object[]}\n */\n function comments(rules) {\n var c;\n rules = rules || [];\n while ((c = comment())) {\n if (c !== false) {\n rules.push(c);\n }\n }\n return rules;\n }\n\n /**\n * Parse comment.\n *\n * @return {Object}\n * @throws {Error}\n */\n function comment() {\n var pos = position();\n if (FORWARD_SLASH != style.charAt(0) || ASTERISK != style.charAt(1)) return;\n\n var i = 2;\n while (\n EMPTY_STRING != style.charAt(i) &&\n (ASTERISK != style.charAt(i) || FORWARD_SLASH != style.charAt(i + 1))\n ) {\n ++i;\n }\n i += 2;\n\n if (EMPTY_STRING === style.charAt(i - 1)) {\n return error('End of comment missing');\n }\n\n var str = style.slice(2, i - 2);\n column += 2;\n updatePosition(str);\n style = style.slice(i);\n column += 2;\n\n return pos({\n type: TYPE_COMMENT,\n comment: str\n });\n }\n\n /**\n * Parse declaration.\n *\n * @return {Object}\n * @throws {Error}\n */\n function declaration() {\n var pos = position();\n\n // prop\n var prop = match(PROPERTY_REGEX);\n if (!prop) return;\n comment();\n\n // :\n if (!match(COLON_REGEX)) return error(\"property missing ':'\");\n\n // val\n var val = match(VALUE_REGEX);\n\n var ret = pos({\n type: TYPE_DECLARATION,\n property: trim(prop[0].replace(COMMENT_REGEX, EMPTY_STRING)),\n value: val\n ? trim(val[0].replace(COMMENT_REGEX, EMPTY_STRING))\n : EMPTY_STRING\n });\n\n // ;\n match(SEMICOLON_REGEX);\n\n return ret;\n }\n\n /**\n * Parse declarations.\n *\n * @return {Object[]}\n */\n function declarations() {\n var decls = [];\n\n comments(decls);\n\n // declarations\n var decl;\n while ((decl = declaration())) {\n if (decl !== false) {\n decls.push(decl);\n comments(decls);\n }\n }\n\n return decls;\n }\n\n whitespace();\n return declarations();\n};\n\n/**\n * Trim `str`.\n *\n * @param {String} str\n * @return {String}\n */\nfunction trim(str) {\n return str ? str.replace(TRIM_REGEX, EMPTY_STRING) : EMPTY_STRING;\n}\n","module.exports = require('./syntax')\n","var combine = require('micromark/dist/util/combine-extensions')\nvar autolink = require('micromark-extension-gfm-autolink-literal')\nvar strikethrough = require('micromark-extension-gfm-strikethrough')\nvar table = require('micromark-extension-gfm-table')\nvar tasklist = require('micromark-extension-gfm-task-list-item')\n\nmodule.exports = create\n\nfunction create(options) {\n return combine([autolink, strikethrough(options), table, tasklist])\n}\n","module.exports = require('./syntax')\n","var asciiAlpha = require('micromark/dist/character/ascii-alpha')\nvar asciiAlphanumeric = require('micromark/dist/character/ascii-alphanumeric')\nvar asciiControl = require('micromark/dist/character/ascii-control')\nvar markdownLineEnding = require('micromark/dist/character/markdown-line-ending')\nvar unicodePunctuation = require('micromark/dist/character/unicode-punctuation')\nvar unicodeWhitespace = require('micromark/dist/character/unicode-whitespace')\n\nvar www = {tokenize: tokenizeWww, partial: true}\nvar domain = {tokenize: tokenizeDomain, partial: true}\nvar path = {tokenize: tokenizePath, partial: true}\nvar punctuation = {tokenize: tokenizePunctuation, partial: true}\nvar namedCharacterReference = {\n tokenize: tokenizeNamedCharacterReference,\n partial: true\n}\n\nvar wwwAutolink = {tokenize: tokenizeWwwAutolink, previous: previousWww}\nvar httpAutolink = {tokenize: tokenizeHttpAutolink, previous: previousHttp}\nvar emailAutolink = {tokenize: tokenizeEmailAutolink, previous: previousEmail}\n\nvar text = {}\n\n// Export hooked constructs.\nexports.text = text\n\n// `0`\nvar code = 48\n\n// While the code is smaller than `{`.\nwhile (code < 123) {\n text[code] = emailAutolink\n code++\n // Jump from `:` -> `A`\n if (code === 58) code = 65\n // Jump from `[` -> `a`\n else if (code === 91) code = 97\n}\n\n// `+`\ntext[43] = emailAutolink\n// `-`\ntext[45] = emailAutolink\n// `.`\ntext[46] = emailAutolink\n// `_`\ntext[95] = emailAutolink\n// `h`.\ntext[72] = [emailAutolink, httpAutolink]\ntext[104] = [emailAutolink, httpAutolink]\n// `w`.\ntext[87] = [emailAutolink, wwwAutolink]\ntext[119] = [emailAutolink, wwwAutolink]\n\nfunction tokenizeEmailAutolink(effects, ok, nok) {\n var self = this\n var hasDot\n\n return start\n\n function start(code) {\n /* istanbul ignore next - hooks. */\n if (\n !gfmAtext(code) ||\n !previousEmail(self.previous) ||\n previous(self.events)\n ) {\n return nok(code)\n }\n\n effects.enter('literalAutolink')\n effects.enter('literalAutolinkEmail')\n return atext(code)\n }\n\n function atext(code) {\n if (gfmAtext(code)) {\n effects.consume(code)\n return atext\n }\n\n // `@`\n if (code === 64) {\n effects.consume(code)\n return label\n }\n\n return nok(code)\n }\n\n function label(code) {\n // `.`\n if (code === 46) {\n return effects.check(punctuation, done, dotContinuation)(code)\n }\n\n if (\n // `-`\n code === 45 ||\n // `_`\n code === 95\n ) {\n return effects.check(punctuation, nok, dashOrUnderscoreContinuation)(code)\n }\n\n if (asciiAlphanumeric(code)) {\n effects.consume(code)\n return label\n }\n\n return done(code)\n }\n\n function dotContinuation(code) {\n effects.consume(code)\n hasDot = true\n return label\n }\n\n function dashOrUnderscoreContinuation(code) {\n effects.consume(code)\n return afterDashOrUnderscore\n }\n\n function afterDashOrUnderscore(code) {\n // `.`\n if (code === 46) {\n return effects.check(punctuation, nok, dotContinuation)(code)\n }\n\n return label(code)\n }\n\n function done(code) {\n if (hasDot) {\n effects.exit('literalAutolinkEmail')\n effects.exit('literalAutolink')\n return ok(code)\n }\n\n return nok(code)\n }\n}\n\nfunction tokenizeWwwAutolink(effects, ok, nok) {\n var self = this\n\n return start\n\n function start(code) {\n /* istanbul ignore next - hooks. */\n if (\n (code !== 87 && code - 32 !== 87) ||\n !previousWww(self.previous) ||\n previous(self.events)\n ) {\n return nok(code)\n }\n\n effects.enter('literalAutolink')\n effects.enter('literalAutolinkWww')\n // For `www.` we check instead of attempt, because when it matches, GH\n // treats it as part of a domain (yes, it says a valid domain must come\n // after `www.`, but thats not how its implemented by them).\n return effects.check(\n www,\n effects.attempt(domain, effects.attempt(path, done), nok),\n nok\n )(code)\n }\n\n function done(code) {\n effects.exit('literalAutolinkWww')\n effects.exit('literalAutolink')\n return ok(code)\n }\n}\n\nfunction tokenizeHttpAutolink(effects, ok, nok) {\n var self = this\n\n return start\n\n function start(code) {\n /* istanbul ignore next - hooks. */\n if (\n (code !== 72 && code - 32 !== 72) ||\n !previousHttp(self.previous) ||\n previous(self.events)\n ) {\n return nok(code)\n }\n\n effects.enter('literalAutolink')\n effects.enter('literalAutolinkHttp')\n effects.consume(code)\n return t1\n }\n\n function t1(code) {\n // `t`\n if (code === 84 || code - 32 === 84) {\n effects.consume(code)\n return t2\n }\n\n return nok(code)\n }\n\n function t2(code) {\n // `t`\n if (code === 84 || code - 32 === 84) {\n effects.consume(code)\n return p\n }\n\n return nok(code)\n }\n\n function p(code) {\n // `p`\n if (code === 80 || code - 32 === 80) {\n effects.consume(code)\n return s\n }\n\n return nok(code)\n }\n\n function s(code) {\n // `s`\n if (code === 83 || code - 32 === 83) {\n effects.consume(code)\n return colon\n }\n\n return colon(code)\n }\n\n function colon(code) {\n // `:`\n if (code === 58) {\n effects.consume(code)\n return slash1\n }\n\n return nok(code)\n }\n\n function slash1(code) {\n // `/`\n if (code === 47) {\n effects.consume(code)\n return slash2\n }\n\n return nok(code)\n }\n\n function slash2(code) {\n // `/`\n if (code === 47) {\n effects.consume(code)\n return after\n }\n\n return nok(code)\n }\n\n function after(code) {\n return asciiControl(code) ||\n unicodeWhitespace(code) ||\n unicodePunctuation(code)\n ? nok(code)\n : effects.attempt(domain, effects.attempt(path, done), nok)(code)\n }\n\n function done(code) {\n effects.exit('literalAutolinkHttp')\n effects.exit('literalAutolink')\n return ok(code)\n }\n}\n\nfunction tokenizeWww(effects, ok, nok) {\n return start\n\n function start(code) {\n // Assume a `w`.\n effects.consume(code)\n return w2\n }\n\n function w2(code) {\n // `w`\n if (code === 87 || code - 32 === 87) {\n effects.consume(code)\n return w3\n }\n\n return nok(code)\n }\n\n function w3(code) {\n // `w`\n if (code === 87 || code - 32 === 87) {\n effects.consume(code)\n return dot\n }\n\n return nok(code)\n }\n\n function dot(code) {\n // `.`\n if (code === 46) {\n effects.consume(code)\n return after\n }\n\n return nok(code)\n }\n\n function after(code) {\n return code === null || markdownLineEnding(code) ? nok(code) : ok(code)\n }\n}\n\nfunction tokenizeDomain(effects, ok, nok) {\n var hasUnderscoreInLastSegment\n var hasUnderscoreInLastLastSegment\n\n return domain\n\n function domain(code) {\n // `&`\n if (code === 38) {\n return effects.check(\n namedCharacterReference,\n done,\n punctuationContinuation\n )(code)\n }\n\n if (code === 46 /* `.` */ || code === 95 /* `_` */) {\n return effects.check(punctuation, done, punctuationContinuation)(code)\n }\n\n // GH documents that only alphanumerics (other than `-`, `.`, and `_`) can\n // occur, which sounds like ASCII only, but they also support `www.點看.com`,\n // so thats Unicode.\n // Instead of some new production for Unicode alphanumerics, markdown\n // already has that for Unicode punctuation and whitespace, so use those.\n if (\n asciiControl(code) ||\n unicodeWhitespace(code) ||\n (code !== 45 /* `-` */ && unicodePunctuation(code))\n ) {\n return done(code)\n }\n\n effects.consume(code)\n return domain\n }\n\n function punctuationContinuation(code) {\n // `.`\n if (code === 46) {\n hasUnderscoreInLastLastSegment = hasUnderscoreInLastSegment\n hasUnderscoreInLastSegment = undefined\n effects.consume(code)\n return domain\n }\n\n // `_`\n if (code === 95) hasUnderscoreInLastSegment = true\n\n effects.consume(code)\n return domain\n }\n\n function done(code) {\n if (!hasUnderscoreInLastLastSegment && !hasUnderscoreInLastSegment) {\n return ok(code)\n }\n\n return nok(code)\n }\n}\n\nfunction tokenizePath(effects, ok) {\n var balance = 0\n\n return inPath\n\n function inPath(code) {\n // `&`\n if (code === 38) {\n return effects.check(\n namedCharacterReference,\n ok,\n continuedPunctuation\n )(code)\n }\n\n // `(`\n if (code === 40) {\n balance++\n }\n\n // `)`\n if (code === 41) {\n return effects.check(\n punctuation,\n parenAtPathEnd,\n continuedPunctuation\n )(code)\n }\n\n if (pathEnd(code)) {\n return ok(code)\n }\n\n if (trailingPunctuation(code)) {\n return effects.check(punctuation, ok, continuedPunctuation)(code)\n }\n\n effects.consume(code)\n return inPath\n }\n\n function continuedPunctuation(code) {\n effects.consume(code)\n return inPath\n }\n\n function parenAtPathEnd(code) {\n balance--\n return balance < 0 ? ok(code) : continuedPunctuation(code)\n }\n}\n\nfunction tokenizeNamedCharacterReference(effects, ok, nok) {\n return start\n\n function start(code) {\n // Assume an ampersand.\n effects.consume(code)\n return inside\n }\n\n function inside(code) {\n if (asciiAlpha(code)) {\n effects.consume(code)\n return inside\n }\n\n // `;`\n if (code === 59) {\n effects.consume(code)\n return after\n }\n\n return nok(code)\n }\n\n function after(code) {\n // If the named character reference is followed by the end of the path, its\n // not continued punctuation.\n return pathEnd(code) ? ok(code) : nok(code)\n }\n}\n\nfunction tokenizePunctuation(effects, ok, nok) {\n return start\n\n function start(code) {\n // Always a valid trailing punctuation marker.\n effects.consume(code)\n return after\n }\n\n function after(code) {\n // Check the next.\n if (trailingPunctuation(code)) {\n effects.consume(code)\n return after\n }\n\n // If the punctuation marker is followed by the end of the path, its not\n // continued punctuation.\n return pathEnd(code) ? ok(code) : nok(code)\n }\n}\n\nfunction trailingPunctuation(code) {\n return (\n // `!`\n code === 33 ||\n // `\"`\n code === 34 ||\n // `'`\n code === 39 ||\n // `)`\n code === 41 ||\n // `*`\n code === 42 ||\n // `,`\n code === 44 ||\n // `.`\n code === 46 ||\n // `:`\n code === 58 ||\n // `;`\n code === 59 ||\n // `<`\n code === 60 ||\n // `?`\n code === 63 ||\n // `_`.\n code === 95 ||\n // `~`\n code === 126\n )\n}\n\nfunction pathEnd(code) {\n return (\n // EOF.\n code === null ||\n // CR, LF, CRLF, HT, VS.\n code < 0 ||\n // Space.\n code === 32 ||\n // `<`\n code === 60\n )\n}\n\nfunction gfmAtext(code) {\n return (\n code === 43 /* `+` */ ||\n code === 45 /* `-` */ ||\n code === 46 /* `.` */ ||\n code === 95 /* `_` */ ||\n asciiAlphanumeric(code)\n )\n}\n\nfunction previousWww(code) {\n return (\n code === null ||\n code < 0 ||\n code === 32 /* ` ` */ ||\n code === 40 /* `(` */ ||\n code === 42 /* `*` */ ||\n code === 95 /* `_` */ ||\n code === 126 /* `~` */\n )\n}\n\nfunction previousHttp(code) {\n return code === null || !asciiAlpha(code)\n}\n\nfunction previousEmail(code) {\n return code !== 47 /* `/` */ && previousHttp(code)\n}\n\nfunction previous(events) {\n var index = events.length\n\n while (index--) {\n if (\n (events[index][1].type === 'labelLink' ||\n events[index][1].type === 'labelImage') &&\n !events[index][1]._balanced\n ) {\n return true\n }\n }\n}\n","module.exports = create\n\nvar classifyCharacter = require('micromark/dist/util/classify-character')\nvar chunkedSplice = require('micromark/dist/util/chunked-splice')\nvar resolveAll = require('micromark/dist/util/resolve-all')\nvar shallow = require('micromark/dist/util/shallow')\n\nfunction create(options) {\n var settings = options || {}\n var single = settings.singleTilde\n var tokenizer = {\n tokenize: tokenizeStrikethrough,\n resolveAll: resolveAllStrikethrough\n }\n\n if (single === null || single === undefined) {\n single = true\n }\n\n return {text: {126: tokenizer}, insideSpan: {null: tokenizer}}\n\n // Take events and resolve strikethrough.\n function resolveAllStrikethrough(events, context) {\n var index = -1\n var strikethrough\n var text\n var open\n var nextEvents\n\n // Walk through all events.\n while (++index < events.length) {\n // Find a token that can close.\n if (\n events[index][0] === 'enter' &&\n events[index][1].type === 'strikethroughSequenceTemporary' &&\n events[index][1]._close\n ) {\n open = index\n\n // Now walk back to find an opener.\n while (open--) {\n // Find a token that can open the closer.\n if (\n events[open][0] === 'exit' &&\n events[open][1].type === 'strikethroughSequenceTemporary' &&\n events[open][1]._open &&\n // If the sizes are the same:\n events[index][1].end.offset - events[index][1].start.offset ===\n events[open][1].end.offset - events[open][1].start.offset\n ) {\n events[index][1].type = 'strikethroughSequence'\n events[open][1].type = 'strikethroughSequence'\n\n strikethrough = {\n type: 'strikethrough',\n start: shallow(events[open][1].start),\n end: shallow(events[index][1].end)\n }\n\n text = {\n type: 'strikethroughText',\n start: shallow(events[open][1].end),\n end: shallow(events[index][1].start)\n }\n\n // Opening.\n nextEvents = [\n ['enter', strikethrough, context],\n ['enter', events[open][1], context],\n ['exit', events[open][1], context],\n ['enter', text, context]\n ]\n\n // Between.\n chunkedSplice(\n nextEvents,\n nextEvents.length,\n 0,\n resolveAll(\n context.parser.constructs.insideSpan.null,\n events.slice(open + 1, index),\n context\n )\n )\n\n // Closing.\n chunkedSplice(nextEvents, nextEvents.length, 0, [\n ['exit', text, context],\n ['enter', events[index][1], context],\n ['exit', events[index][1], context],\n ['exit', strikethrough, context]\n ])\n\n chunkedSplice(events, open - 1, index - open + 3, nextEvents)\n\n index = open + nextEvents.length - 2\n break\n }\n }\n }\n }\n\n return removeRemainingSequences(events)\n }\n\n function removeRemainingSequences(events) {\n var index = -1\n var length = events.length\n\n while (++index < length) {\n if (events[index][1].type === 'strikethroughSequenceTemporary') {\n events[index][1].type = 'data'\n }\n }\n\n return events\n }\n\n function tokenizeStrikethrough(effects, ok, nok) {\n var previous = this.previous\n var events = this.events\n var size = 0\n\n return start\n\n function start(code) {\n if (\n code !== 126 ||\n (previous === 126 &&\n events[events.length - 1][1].type !== 'characterEscape')\n ) {\n return nok(code)\n }\n\n effects.enter('strikethroughSequenceTemporary')\n return more(code)\n }\n\n function more(code) {\n var before = classifyCharacter(previous)\n var token\n var after\n\n if (code === 126) {\n // If this is the third marker, exit.\n if (size > 1) return nok(code)\n effects.consume(code)\n size++\n return more\n }\n\n if (size < 2 && !single) return nok(code)\n token = effects.exit('strikethroughSequenceTemporary')\n after = classifyCharacter(code)\n token._open = !after || (after === 2 && before)\n token._close = !before || (before === 2 && after)\n return ok(code)\n }\n }\n}\n","module.exports = require('./syntax')\n","exports.flow = {\n null: {tokenize: tokenizeTable, resolve: resolveTable, interruptible: true}\n}\n\nvar createSpace = require('micromark/dist/tokenize/factory-space')\n\nvar setextUnderlineMini = {tokenize: tokenizeSetextUnderlineMini, partial: true}\nvar nextPrefixedOrBlank = {tokenize: tokenizeNextPrefixedOrBlank, partial: true}\n\nfunction resolveTable(events, context) {\n var length = events.length\n var index = -1\n var token\n var inHead\n var inDelimiterRow\n var inRow\n var cell\n var content\n var text\n var contentStart\n var contentEnd\n var cellStart\n\n while (++index < length) {\n token = events[index][1]\n\n if (inRow) {\n if (token.type === 'temporaryTableCellContent') {\n contentStart = contentStart || index\n contentEnd = index\n }\n\n if (\n // Combine separate content parts into one.\n (token.type === 'tableCellDivider' || token.type === 'tableRow') &&\n contentEnd\n ) {\n content = {\n type: 'tableContent',\n start: events[contentStart][1].start,\n end: events[contentEnd][1].end\n }\n text = {\n type: 'chunkText',\n start: content.start,\n end: content.end,\n contentType: 'text'\n }\n\n events.splice(\n contentStart,\n contentEnd - contentStart + 1,\n ['enter', content, context],\n ['enter', text, context],\n ['exit', text, context],\n ['exit', content, context]\n )\n index -= contentEnd - contentStart - 3\n length = events.length\n contentStart = undefined\n contentEnd = undefined\n }\n }\n\n if (\n events[index][0] === 'exit' &&\n cellStart &&\n cellStart + 1 < index &&\n (token.type === 'tableCellDivider' ||\n (token.type === 'tableRow' &&\n (cellStart + 3 < index ||\n events[cellStart][1].type !== 'whitespace')))\n ) {\n cell = {\n type: inDelimiterRow\n ? 'tableDelimiter'\n : inHead\n ? 'tableHeader'\n : 'tableData',\n start: events[cellStart][1].start,\n end: events[index][1].end\n }\n events.splice(index + (token.type === 'tableCellDivider' ? 1 : 0), 0, [\n 'exit',\n cell,\n context\n ])\n events.splice(cellStart, 0, ['enter', cell, context])\n index += 2\n length = events.length\n cellStart = index + 1\n }\n\n if (token.type === 'tableRow') {\n inRow = events[index][0] === 'enter'\n\n if (inRow) {\n cellStart = index + 1\n }\n }\n\n if (token.type === 'tableDelimiterRow') {\n inDelimiterRow = events[index][0] === 'enter'\n\n if (inDelimiterRow) {\n cellStart = index + 1\n }\n }\n\n if (token.type === 'tableHead') {\n inHead = events[index][0] === 'enter'\n }\n }\n\n return events\n}\n\nfunction tokenizeTable(effects, ok, nok) {\n var align = []\n var tableHeaderCount = 0\n var seenDelimiter\n var hasDash\n\n return start\n\n function start(code) {\n /* istanbul ignore if - used to be passed in beta micromark versions. */\n if (code === null || code === -5 || code === -4 || code === -3) {\n return nok(code)\n }\n\n effects.enter('table')._align = align\n effects.enter('tableHead')\n effects.enter('tableRow')\n\n // If we start with a pipe, we open a cell marker.\n if (code === 124) {\n return cellDividerHead(code)\n }\n\n tableHeaderCount++\n effects.enter('temporaryTableCellContent')\n // Cant be space or eols at the start of a construct, so were in a cell.\n return inCellContentHead(code)\n }\n\n function cellDividerHead(code) {\n // Always a pipe.\n effects.enter('tableCellDivider')\n effects.consume(code)\n effects.exit('tableCellDivider')\n seenDelimiter = true\n return cellBreakHead\n }\n\n function cellBreakHead(code) {\n // EOF, CR, LF, CRLF.\n if (code === null || code === -5 || code === -4 || code === -3) {\n return atRowEndHead(code)\n }\n\n // HT, VS, SP.\n if (code === -2 || code === -1 || code === 32) {\n effects.enter('whitespace')\n effects.consume(code)\n return inWhitespaceHead\n }\n\n if (seenDelimiter) {\n seenDelimiter = undefined\n tableHeaderCount++\n }\n\n // `|`\n if (code === 124) {\n return cellDividerHead(code)\n }\n\n // Anything else is cell content.\n effects.enter('temporaryTableCellContent')\n return inCellContentHead(code)\n }\n\n function inWhitespaceHead(code) {\n // HT, VS, SP.\n if (code === -2 || code === -1 || code === 32) {\n effects.consume(code)\n return inWhitespaceHead\n }\n\n effects.exit('whitespace')\n return cellBreakHead(code)\n }\n\n function inCellContentHead(code) {\n // EOF, whitespace, pipe\n if (code === null || code < 0 || code === 32 || code === 124) {\n effects.exit('temporaryTableCellContent')\n return cellBreakHead(code)\n }\n\n effects.consume(code)\n // `\\`\n return code === 92 ? inCellContentEscapeHead : inCellContentHead\n }\n\n function inCellContentEscapeHead(code) {\n // `\\` or `|`\n if (code === 92 || code === 124) {\n effects.consume(code)\n return inCellContentHead\n }\n\n // Anything else.\n return inCellContentHead(code)\n }\n\n function atRowEndHead(code) {\n if (code === null) {\n return nok(code)\n }\n\n effects.exit('tableRow')\n effects.exit('tableHead')\n\n // Always a line ending.\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n\n // If a setext heading, exit.\n return effects.check(\n setextUnderlineMini,\n nok,\n // Support an indent before the delimiter row.\n createSpace(effects, rowStartDelimiter, 'linePrefix', 4)\n )\n }\n\n function rowStartDelimiter(code) {\n // If theres another space, or were at the EOL/EOF, exit.\n if (code === null || code < 0 || code === 32) {\n return nok(code)\n }\n\n effects.enter('tableDelimiterRow')\n return atDelimiterRowBreak(code)\n }\n\n function atDelimiterRowBreak(code) {\n // EOF, CR, LF, CRLF.\n if (code === null || code === -5 || code === -4 || code === -3) {\n return rowEndDelimiter(code)\n }\n\n // HT, VS, SP.\n if (code === -2 || code === -1 || code === 32) {\n effects.enter('whitespace')\n effects.consume(code)\n return inWhitespaceDelimiter\n }\n\n // `-`\n if (code === 45) {\n effects.enter('tableDelimiterFiller')\n effects.consume(code)\n hasDash = true\n align.push(null)\n return inFillerDelimiter\n }\n\n // `:`\n if (code === 58) {\n effects.enter('tableDelimiterAlignment')\n effects.consume(code)\n effects.exit('tableDelimiterAlignment')\n align.push('left')\n return afterLeftAlignment\n }\n\n // If we start with a pipe, we open a cell marker.\n if (code === 124) {\n effects.enter('tableCellDivider')\n effects.consume(code)\n effects.exit('tableCellDivider')\n return atDelimiterRowBreak\n }\n\n return nok(code)\n }\n\n function inWhitespaceDelimiter(code) {\n // HT, VS, SP.\n if (code === -2 || code === -1 || code === 32) {\n effects.consume(code)\n return inWhitespaceDelimiter\n }\n\n effects.exit('whitespace')\n return atDelimiterRowBreak(code)\n }\n\n function inFillerDelimiter(code) {\n // `-`\n if (code === 45) {\n effects.consume(code)\n return inFillerDelimiter\n }\n\n effects.exit('tableDelimiterFiller')\n\n // `:`\n if (code === 58) {\n effects.enter('tableDelimiterAlignment')\n effects.consume(code)\n effects.exit('tableDelimiterAlignment')\n\n align[align.length - 1] =\n align[align.length - 1] === 'left' ? 'center' : 'right'\n\n return afterRightAlignment\n }\n\n return atDelimiterRowBreak(code)\n }\n\n function afterLeftAlignment(code) {\n // `-`\n if (code === 45) {\n effects.enter('tableDelimiterFiller')\n effects.consume(code)\n hasDash = true\n return inFillerDelimiter\n }\n\n // Anything else is not ok.\n return nok(code)\n }\n\n function afterRightAlignment(code) {\n // EOF, CR, LF, CRLF.\n if (code === null || code === -5 || code === -4 || code === -3) {\n return rowEndDelimiter(code)\n }\n\n // HT, VS, SP.\n if (code === -2 || code === -1 || code === 32) {\n effects.enter('whitespace')\n effects.consume(code)\n return inWhitespaceDelimiter\n }\n\n // `|`\n if (code === 124) {\n effects.enter('tableCellDivider')\n effects.consume(code)\n effects.exit('tableCellDivider')\n return atDelimiterRowBreak\n }\n\n return nok(code)\n }\n\n function rowEndDelimiter(code) {\n effects.exit('tableDelimiterRow')\n\n // Exit if there was no dash at all, or if the header cell count is not the\n // delimiter cell count.\n if (!hasDash || tableHeaderCount !== align.length) {\n return nok(code)\n }\n\n if (code === null) {\n return tableClose(code)\n }\n\n return effects.check(nextPrefixedOrBlank, tableClose, tableContinue)(code)\n }\n\n function tableClose(code) {\n effects.exit('table')\n return ok(code)\n }\n\n function tableContinue(code) {\n // Always a line ending.\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n // We checked that its not a prefixed or blank line, so were certain a\n // body is coming, though it may be indented.\n return createSpace(effects, bodyStart, 'linePrefix', 4)\n }\n\n function bodyStart(code) {\n effects.enter('tableBody')\n return rowStartBody(code)\n }\n\n function rowStartBody(code) {\n effects.enter('tableRow')\n\n // If we start with a pipe, we open a cell marker.\n if (code === 124) {\n return cellDividerBody(code)\n }\n\n effects.enter('temporaryTableCellContent')\n // Cant be space or eols at the start of a construct, so were in a cell.\n return inCellContentBody(code)\n }\n\n function cellDividerBody(code) {\n // Always a pipe.\n effects.enter('tableCellDivider')\n effects.consume(code)\n effects.exit('tableCellDivider')\n return cellBreakBody\n }\n\n function cellBreakBody(code) {\n // EOF, CR, LF, CRLF.\n if (code === null || code === -5 || code === -4 || code === -3) {\n return atRowEndBody(code)\n }\n\n // HT, VS, SP.\n if (code === -2 || code === -1 || code === 32) {\n effects.enter('whitespace')\n effects.consume(code)\n return inWhitespaceBody\n }\n\n // `|`\n if (code === 124) {\n return cellDividerBody(code)\n }\n\n // Anything else is cell content.\n effects.enter('temporaryTableCellContent')\n return inCellContentBody(code)\n }\n\n function inWhitespaceBody(code) {\n // HT, VS, SP.\n if (code === -2 || code === -1 || code === 32) {\n effects.consume(code)\n return inWhitespaceBody\n }\n\n effects.exit('whitespace')\n return cellBreakBody(code)\n }\n\n function inCellContentBody(code) {\n // EOF, whitespace, pipe\n if (code === null || code < 0 || code === 32 || code === 124) {\n effects.exit('temporaryTableCellContent')\n return cellBreakBody(code)\n }\n\n effects.consume(code)\n // `\\`\n return code === 92 ? inCellContentEscapeBody : inCellContentBody\n }\n\n function inCellContentEscapeBody(code) {\n // `\\` or `|`\n if (code === 92 || code === 124) {\n effects.consume(code)\n return inCellContentBody\n }\n\n // Anything else.\n return inCellContentBody(code)\n }\n\n function atRowEndBody(code) {\n effects.exit('tableRow')\n\n if (code === null) {\n return tableBodyClose(code)\n }\n\n return effects.check(\n nextPrefixedOrBlank,\n tableBodyClose,\n tableBodyContinue\n )(code)\n }\n\n function tableBodyClose(code) {\n effects.exit('tableBody')\n return tableClose(code)\n }\n\n function tableBodyContinue(code) {\n // Always a line ending.\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n // Support an optional prefix, then start a body row.\n return createSpace(effects, rowStartBody, 'linePrefix', 4)\n }\n}\n\n// Based on micromark, but that wont work as were in a table, and that expects\n// content.\n// <https://github.com/micromark/micromark/blob/main/lib/tokenize/setext-underline.js>\nfunction tokenizeSetextUnderlineMini(effects, ok, nok) {\n return start\n\n function start(code) {\n // `-`\n if (code !== 45) {\n return nok(code)\n }\n\n effects.enter('setextUnderline')\n return sequence(code)\n }\n\n function sequence(code) {\n if (code === 45) {\n effects.consume(code)\n return sequence\n }\n\n return whitespace(code)\n }\n\n function whitespace(code) {\n if (code === -2 || code === -1 || code === 32) {\n effects.consume(code)\n return whitespace\n }\n\n if (code === null || code === -5 || code === -4 || code === -3) {\n return ok(code)\n }\n\n return nok(code)\n }\n}\n\nfunction tokenizeNextPrefixedOrBlank(effects, ok, nok) {\n var size = 0\n\n return start\n\n function start(code) {\n // This is a check, so we dont care about tokens, but we open a bogus one\n // so were valid.\n effects.enter('check')\n // EOL.\n effects.consume(code)\n return whitespace\n }\n\n function whitespace(code) {\n // VS or SP.\n if (code === -1 || code === 32) {\n effects.consume(code)\n size++\n return size === 4 ? ok : whitespace\n }\n\n // EOF or whitespace\n if (code === null || code < 0) {\n return ok(code)\n }\n\n // Anything else.\n return nok(code)\n }\n}\n","module.exports = require('./syntax')\n","var markdownLineEndingOrSpace = require('micromark/dist/character/markdown-line-ending-or-space')\nvar spaceFactory = require('micromark/dist/tokenize/factory-space')\nvar prefixSize = require('micromark/dist/util/prefix-size')\n\nvar tasklistCheck = {tokenize: tokenizeTasklistCheck}\n\nexports.text = {91: tasklistCheck}\n\nfunction tokenizeTasklistCheck(effects, ok, nok) {\n var self = this\n\n return open\n\n function open(code) {\n if (\n // Exit if not `[`.\n code !== 91 ||\n // Exit if theres stuff before.\n self.previous !== null ||\n // Exit if not in the first content that is the first child of a list\n // item.\n !self._gfmTasklistFirstContentOfListItem\n ) {\n return nok(code)\n }\n\n effects.enter('taskListCheck')\n effects.enter('taskListCheckMarker')\n effects.consume(code)\n effects.exit('taskListCheckMarker')\n return inside\n }\n\n function inside(code) {\n // Tab or space.\n if (code === -2 || code === 32) {\n effects.enter('taskListCheckValueUnchecked')\n effects.consume(code)\n effects.exit('taskListCheckValueUnchecked')\n return close\n }\n\n // Upper- and lower `x`.\n if (code === 88 || code === 120) {\n effects.enter('taskListCheckValueChecked')\n effects.consume(code)\n effects.exit('taskListCheckValueChecked')\n return close\n }\n\n return nok(code)\n }\n\n function close(code) {\n // `]`\n if (code === 93) {\n effects.enter('taskListCheckMarker')\n effects.consume(code)\n effects.exit('taskListCheckMarker')\n effects.exit('taskListCheck')\n return effects.check({tokenize: spaceThenNonSpace}, ok, nok)\n }\n\n return nok(code)\n }\n}\n\nfunction spaceThenNonSpace(effects, ok, nok) {\n var self = this\n\n return spaceFactory(effects, after, 'whitespace')\n\n function after(code) {\n return prefixSize(self.events, 'whitespace') &&\n code !== null &&\n !markdownLineEndingOrSpace(code)\n ? ok(code)\n : nok(code)\n }\n}\n","var autolinkLiteral = require('mdast-util-gfm-autolink-literal/from-markdown')\nvar strikethrough = require('mdast-util-gfm-strikethrough/from-markdown')\nvar table = require('mdast-util-gfm-table/from-markdown')\nvar taskListItem = require('mdast-util-gfm-task-list-item/from-markdown')\n\nvar own = {}.hasOwnProperty\n\nmodule.exports = configure([\n autolinkLiteral,\n strikethrough,\n table,\n taskListItem\n])\n\nfunction configure(extensions) {\n var config = {transforms: [], canContainEols: []}\n var length = extensions.length\n var index = -1\n\n while (++index < length) {\n extension(config, extensions[index])\n }\n\n return config\n}\n\nfunction extension(config, extension) {\n var key\n var left\n var right\n\n for (key in extension) {\n left = own.call(config, key) ? config[key] : (config[key] = {})\n right = extension[key]\n\n if (key === 'canContainEols' || key === 'transforms') {\n config[key] = [].concat(left, right)\n } else {\n Object.assign(left, right)\n }\n }\n}\n","var ccount = require('ccount')\nvar findAndReplace = require('mdast-util-find-and-replace')\nvar unicodePunctuation = require('micromark/dist/character/unicode-punctuation')\nvar unicodeWhitespace = require('micromark/dist/character/unicode-whitespace')\n\nexports.transforms = [transformGfmAutolinkLiterals]\nexports.enter = {\n literalAutolink: enterLiteralAutolink,\n literalAutolinkEmail: enterLiteralAutolinkValue,\n literalAutolinkHttp: enterLiteralAutolinkValue,\n literalAutolinkWww: enterLiteralAutolinkValue\n}\nexports.exit = {\n literalAutolink: exitLiteralAutolink,\n literalAutolinkEmail: exitLiteralAutolinkEmail,\n literalAutolinkHttp: exitLiteralAutolinkHttp,\n literalAutolinkWww: exitLiteralAutolinkWww\n}\n\nfunction enterLiteralAutolink(token) {\n this.enter({type: 'link', title: null, url: '', children: []}, token)\n}\n\nfunction enterLiteralAutolinkValue(token) {\n this.config.enter.autolinkProtocol.call(this, token)\n}\n\nfunction exitLiteralAutolinkHttp(token) {\n this.config.exit.autolinkProtocol.call(this, token)\n}\n\nfunction exitLiteralAutolinkWww(token) {\n this.config.exit.data.call(this, token)\n this.stack[this.stack.length - 1].url = 'http://' + this.sliceSerialize(token)\n}\n\nfunction exitLiteralAutolinkEmail(token) {\n this.config.exit.autolinkEmail.call(this, token)\n}\n\nfunction exitLiteralAutolink(token) {\n this.exit(token)\n}\n\nfunction transformGfmAutolinkLiterals(tree) {\n findAndReplace(\n tree,\n [\n [/(https?:\\/\\/|www(?=\\.))([-.\\w]+)([^ \\t\\r\\n]*)/i, findUrl],\n [/([-.\\w+]+)@([-\\w]+(?:\\.[-\\w]+)+)/, findEmail]\n ],\n {ignore: ['link', 'linkReference']}\n )\n}\n\nfunction findUrl($0, protocol, domain, path, match) {\n var prefix = ''\n var parts\n var result\n\n // Not an expected previous character.\n if (!previous(match)) {\n return false\n }\n\n // Treat `www` as part of the domain.\n if (/^w/i.test(protocol)) {\n domain = protocol + domain\n protocol = ''\n prefix = 'http://'\n }\n\n if (!isCorrectDomain(domain)) {\n return false\n }\n\n parts = splitUrl(domain + path)\n\n if (!parts[0]) return false\n\n result = {\n type: 'link',\n title: null,\n url: prefix + protocol + parts[0],\n children: [{type: 'text', value: protocol + parts[0]}]\n }\n\n if (parts[1]) {\n result = [result, {type: 'text', value: parts[1]}]\n }\n\n return result\n}\n\nfunction findEmail($0, atext, label, match) {\n // Not an expected previous character.\n if (!previous(match, true) || /[_-]$/.test(label)) {\n return false\n }\n\n return {\n type: 'link',\n title: null,\n url: 'mailto:' + atext + '@' + label,\n children: [{type: 'text', value: atext + '@' + label}]\n }\n}\n\nfunction isCorrectDomain(domain) {\n var parts = domain.split('.')\n\n if (\n parts.length < 2 ||\n (parts[parts.length - 1] &&\n (/_/.test(parts[parts.length - 1]) ||\n !/[a-zA-Z\\d]/.test(parts[parts.length - 1]))) ||\n (parts[parts.length - 2] &&\n (/_/.test(parts[parts.length - 2]) ||\n !/[a-zA-Z\\d]/.test(parts[parts.length - 2])))\n ) {\n return false\n }\n\n return true\n}\n\nfunction splitUrl(url) {\n var trail = /[!\"&'),.:;<>?\\]}]+$/.exec(url)\n var closingParenIndex\n var openingParens\n var closingParens\n\n if (trail) {\n url = url.slice(0, trail.index)\n trail = trail[0]\n closingParenIndex = trail.indexOf(')')\n openingParens = ccount(url, '(')\n closingParens = ccount(url, ')')\n\n while (closingParenIndex !== -1 && openingParens > closingParens) {\n url += trail.slice(0, closingParenIndex + 1)\n trail = trail.slice(closingParenIndex + 1)\n closingParenIndex = trail.indexOf(')')\n closingParens++\n }\n }\n\n return [url, trail]\n}\n\nfunction previous(match, email) {\n var code = match.input.charCodeAt(match.index - 1)\n return (\n (code !== code || unicodeWhitespace(code) || unicodePunctuation(code)) &&\n (!email || code !== 47)\n )\n}\n","'use strict'\n\nmodule.exports = ccount\n\nfunction ccount(source, character) {\n var value = String(source)\n var count = 0\n var index\n\n if (typeof character !== 'string') {\n throw new Error('Expected character')\n }\n\n index = value.indexOf(character)\n\n while (index !== -1) {\n count++\n index = value.indexOf(character, index + character.length)\n }\n\n return count\n}\n","'use strict'\n\nmodule.exports = findAndReplace\n\nvar visit = require('unist-util-visit-parents')\nvar convert = require('unist-util-is/convert')\nvar escape = require('escape-string-regexp')\n\nvar splice = [].splice\n\nfunction findAndReplace(tree, find, replace, options) {\n var settings\n var schema\n\n if (typeof find === 'string' || (find && typeof find.exec === 'function')) {\n schema = [[find, replace]]\n } else {\n schema = find\n options = replace\n }\n\n settings = options || {}\n\n search(tree, settings, handlerFactory(toPairs(schema)))\n\n return tree\n\n function handlerFactory(pairs) {\n var pair = pairs[0]\n\n return handler\n\n function handler(node, parent) {\n var find = pair[0]\n var replace = pair[1]\n var nodes = []\n var start = 0\n var index = parent.children.indexOf(node)\n var position\n var match\n var subhandler\n var value\n\n find.lastIndex = 0\n\n match = find.exec(node.value)\n\n while (match) {\n position = match.index\n value = replace.apply(\n null,\n [].concat(match, {index: match.index, input: match.input})\n )\n\n if (value !== false) {\n if (start !== position) {\n nodes.push({type: 'text', value: node.value.slice(start, position)})\n }\n\n if (typeof value === 'string' && value.length > 0) {\n value = {type: 'text', value: value}\n }\n\n if (value) {\n nodes = [].concat(nodes, value)\n }\n\n start = position + match[0].length\n }\n\n if (!find.global) {\n break\n }\n\n match = find.exec(node.value)\n }\n\n if (position === undefined) {\n nodes = [node]\n index--\n } else {\n if (start < node.value.length) {\n nodes.push({type: 'text', value: node.value.slice(start)})\n }\n\n nodes.unshift(index, 1)\n splice.apply(parent.children, nodes)\n }\n\n if (pairs.length > 1) {\n subhandler = handlerFactory(pairs.slice(1))\n position = -1\n\n while (++position < nodes.length) {\n node = nodes[position]\n\n if (node.type === 'text') {\n subhandler(node, parent)\n } else {\n search(node, settings, subhandler)\n }\n }\n }\n\n return index + nodes.length + 1\n }\n }\n}\n\nfunction search(tree, settings, handler) {\n var ignored = convert(settings.ignore || [])\n var result = []\n\n visit(tree, 'text', visitor)\n\n return result\n\n function visitor(node, parents) {\n var index = -1\n var parent\n var grandparent\n\n while (++index < parents.length) {\n parent = parents[index]\n\n if (\n ignored(\n parent,\n grandparent ? grandparent.children.indexOf(parent) : undefined,\n grandparent\n )\n ) {\n return\n }\n\n grandparent = parent\n }\n\n return handler(node, grandparent)\n }\n}\n\nfunction toPairs(schema) {\n var result = []\n var key\n var index\n\n if (typeof schema !== 'object') {\n throw new Error('Expected array or object as schema')\n }\n\n if ('length' in schema) {\n index = -1\n\n while (++index < schema.length) {\n result.push([\n toExpression(schema[index][0]),\n toFunction(schema[index][1])\n ])\n }\n } else {\n for (key in schema) {\n result.push([toExpression(key), toFunction(schema[key])])\n }\n }\n\n return result\n}\n\nfunction toExpression(find) {\n return typeof find === 'string' ? new RegExp(escape(find), 'g') : find\n}\n\nfunction toFunction(replace) {\n return typeof replace === 'function' ? replace : returner\n\n function returner() {\n return replace\n }\n}\n","'use strict';\n\nmodule.exports = string => {\n\tif (typeof string !== 'string') {\n\t\tthrow new TypeError('Expected a string');\n\t}\n\n\t// Escape characters with special meaning either inside or outside character sets.\n\t// Use a simple backslash escape when its always valid, and a \\unnnn escape when the simpler form would be disallowed by Unicode patterns stricter grammar.\n\treturn string\n\t\t.replace(/[|\\\\{}()[\\]^$+*?.]/g, '\\\\$&')\n\t\t.replace(/-/g, '\\\\x2d');\n};\n","exports.canContainEols = ['delete']\nexports.enter = {strikethrough: enterStrikethrough}\nexports.exit = {strikethrough: exitStrikethrough}\n\nfunction enterStrikethrough(token) {\n this.enter({type: 'delete', children: []}, token)\n}\n\nfunction exitStrikethrough(token) {\n this.exit(token)\n}\n","exports.enter = {\n table: enterTable,\n tableData: enterCell,\n tableHeader: enterCell,\n tableRow: enterRow\n}\nexports.exit = {\n codeText: exitCodeText,\n table: exitTable,\n tableData: exit,\n tableHeader: exit,\n tableRow: exit\n}\n\nfunction enterTable(token) {\n this.enter({type: 'table', align: token._align, children: []}, token)\n this.setData('inTable', true)\n}\n\nfunction exitTable(token) {\n this.exit(token)\n this.setData('inTable')\n}\n\nfunction enterRow(token) {\n this.enter({type: 'tableRow', children: []}, token)\n}\n\nfunction exit(token) {\n this.exit(token)\n}\n\nfunction enterCell(token) {\n this.enter({type: 'tableCell', children: []}, token)\n}\n\n// Overwrite the default code text data handler to unescape escaped pipes when\n// they are in tables.\nfunction exitCodeText(token) {\n var value = this.resume()\n\n if (this.getData('inTable')) {\n value = value.replace(/\\\\([\\\\|])/g, replace)\n }\n\n this.stack[this.stack.length - 1].value = value\n this.exit(token)\n}\n\nfunction replace($0, $1) {\n // Pipes work, backslashes dont (but cant escape pipes).\n return $1 === '|' ? $1 : $0\n}\n","exports.exit = {\n taskListCheckValueChecked: exitCheck,\n taskListCheckValueUnchecked: exitCheck,\n paragraph: exitParagraphWithTaskListItem\n}\n\nfunction exitCheck(token) {\n // Were always in a paragraph, in a list item.\n this.stack[this.stack.length - 2].checked =\n token.type === 'taskListCheckValueChecked'\n}\n\nfunction exitParagraphWithTaskListItem(token) {\n var parent = this.stack[this.stack.length - 2]\n var node = this.stack[this.stack.length - 1]\n var siblings = parent.children\n var head = node.children[0]\n var index = -1\n var firstParaghraph\n\n if (\n parent &&\n parent.type === 'listItem' &&\n typeof parent.checked === 'boolean' &&\n head &&\n head.type === 'text'\n ) {\n while (++index < siblings.length) {\n if (siblings[index].type === 'paragraph') {\n firstParaghraph = siblings[index]\n break\n }\n }\n\n if (firstParaghraph === node) {\n // Must start with a space or a tab.\n head.value = head.value.slice(1)\n\n if (head.value.length === 0) {\n node.children.shift()\n } else {\n head.position.start.column++\n head.position.start.offset++\n node.position.start = Object.assign({}, head.position.start)\n }\n }\n }\n\n this.exit(token)\n}\n","var autolinkLiteral = require('mdast-util-gfm-autolink-literal/to-markdown')\nvar strikethrough = require('mdast-util-gfm-strikethrough/to-markdown')\nvar table = require('mdast-util-gfm-table/to-markdown')\nvar taskListItem = require('mdast-util-gfm-task-list-item/to-markdown')\nvar configure = require('mdast-util-to-markdown/lib/configure')\n\nmodule.exports = toMarkdown\n\nfunction toMarkdown(options) {\n var config = configure(\n {handlers: {}, join: [], unsafe: [], options: {}},\n {\n extensions: [autolinkLiteral, strikethrough, table(options), taskListItem]\n }\n )\n\n return Object.assign(config.options, {\n handlers: config.handlers,\n join: config.join,\n unsafe: config.unsafe\n })\n}\n","var inConstruct = 'phrasing'\nvar notInConstruct = ['autolink', 'link', 'image', 'label']\n\nexports.unsafe = [\n {\n character: '@',\n before: '[+\\\\-.\\\\w]',\n after: '[\\\\-.\\\\w]',\n inConstruct: inConstruct,\n notInConstruct: notInConstruct\n },\n {\n character: '.',\n before: '[Ww]',\n after: '[\\\\-.\\\\w]',\n inConstruct: inConstruct,\n notInConstruct: notInConstruct\n },\n {\n character: ':',\n before: '[ps]',\n after: '\\\\/',\n inConstruct: inConstruct,\n notInConstruct: notInConstruct\n }\n]\n","var phrasing = require('mdast-util-to-markdown/lib/util/container-phrasing')\n\nexports.unsafe = [{character: '~', inConstruct: 'phrasing'}]\nexports.handlers = {delete: handleDelete}\n\nhandleDelete.peek = peekDelete\n\nfunction handleDelete(node, _, context) {\n var exit = context.enter('emphasis')\n var value = phrasing(node, context, {before: '~', after: '~'})\n exit()\n return '~~' + value + '~~'\n}\n\nfunction peekDelete() {\n return '~'\n}\n","var phrasing = require('mdast-util-to-markdown/lib/util/container-phrasing')\nvar defaultInlineCode = require('mdast-util-to-markdown/lib/handle/inline-code')\nvar markdownTable = require('markdown-table')\n\nmodule.exports = toMarkdown\n\nfunction toMarkdown(options) {\n var settings = options || {}\n var padding = settings.tableCellPadding\n var alignDelimiters = settings.tablePipeAlign\n var stringLength = settings.stringLength\n var around = padding ? ' ' : '|'\n\n return {\n unsafe: [\n {character: '\\r', inConstruct: 'tableCell'},\n {character: '\\n', inConstruct: 'tableCell'},\n // A pipe, when followed by a tab or space (padding), or a dash or colon\n // (unpadded delimiter row), could result in a table.\n {atBreak: true, character: '|', after: '[\\t :-]'},\n // A pipe in a cell must be encoded.\n {character: '|', inConstruct: 'tableCell'},\n // A colon must be followed by a dash, in which case it could start a\n // delimiter row.\n {atBreak: true, character: ':', after: '-'},\n // A delimiter row can also start with a dash, when followed by more\n // dashes, a colon, or a pipe.\n // This is a stricter version than the built in check for lists, thematic\n // breaks, and setex heading underlines though:\n // <https://github.com/syntax-tree/mdast-util-to-markdown/blob/51a2038/lib/unsafe.js#L57>\n {atBreak: true, character: '-', after: '[:|-]'}\n ],\n handlers: {\n table: handleTable,\n tableRow: handleTableRow,\n tableCell: handleTableCell,\n inlineCode: inlineCodeWithTable\n }\n }\n\n function handleTable(node, _, context) {\n return serializeData(handleTableAsData(node, context), node.align)\n }\n\n // This function isnt really used normally, because we handle rows at the\n // table level.\n // But, if someone passes in a table row, this ensures we make somewhat sense.\n function handleTableRow(node, _, context) {\n var row = handleTableRowAsData(node, context)\n // `markdown-table` will always add an align row\n var value = serializeData([row])\n return value.slice(0, value.indexOf('\\n'))\n }\n\n function handleTableCell(node, _, context) {\n var exit = context.enter('tableCell')\n var value = phrasing(node, context, {before: around, after: around})\n exit()\n return value\n }\n\n function serializeData(matrix, align) {\n return markdownTable(matrix, {\n align: align,\n alignDelimiters: alignDelimiters,\n padding: padding,\n stringLength: stringLength\n })\n }\n\n function handleTableAsData(node, context) {\n var children = node.children\n var index = -1\n var length = children.length\n var result = []\n var subexit = context.enter('table')\n\n while (++index < length) {\n result[index] = handleTableRowAsData(children[index], context)\n }\n\n subexit()\n\n return result\n }\n\n function handleTableRowAsData(node, context) {\n var children = node.children\n var index = -1\n var length = children.length\n var result = []\n var subexit = context.enter('tableRow')\n\n while (++index < length) {\n result[index] = handleTableCell(children[index], node, context)\n }\n\n subexit()\n\n return result\n }\n\n function inlineCodeWithTable(node, parent, context) {\n var value = defaultInlineCode(node, parent, context)\n\n if (context.stack.indexOf('tableCell') !== -1) {\n value = value.replace(/\\|/g, '\\\\$&')\n }\n\n return value\n }\n}\n","module.exports = inlineCode\ninlineCode.peek = inlineCodePeek\n\nvar patternCompile = require('../util/pattern-compile')\n\nfunction inlineCode(node, parent, context) {\n var value = node.value || ''\n var sequence = '`'\n var index = -1\n var pattern\n var expression\n var match\n var position\n\n // If there is a single grave accent on its own in the code, use a fence of\n // two.\n // If there are two in a row, use one.\n while (new RegExp('(^|[^`])' + sequence + '([^`]|$)').test(value)) {\n sequence += '`'\n }\n\n // If this is not just spaces or eols (tabs dont count), and either the\n // first or last character are a space, eol, or tick, then pad with spaces.\n if (\n /[^ \\r\\n]/.test(value) &&\n (/[ \\r\\n`]/.test(value.charAt(0)) ||\n /[ \\r\\n`]/.test(value.charAt(value.length - 1)))\n ) {\n value = ' ' + value + ' '\n }\n\n // We have a potential problem: certain characters after eols could result in\n // blocks being seen.\n // For example, if someone injected the string `'\\n# b'`, then that would\n // result in an ATX heading.\n // We cant escape characters in `inlineCode`, but because eols are\n // transformed to spaces when going from markdown to HTML anyway, we can swap\n // them out.\n while (++index < context.unsafe.length) {\n pattern = context.unsafe[index]\n\n // Only look for `atBreak`s.\n // Btw: note that `atBreak` patterns will always start the regex at LF or\n // CR.\n if (!pattern.atBreak) continue\n\n expression = patternCompile(pattern)\n\n while ((match = expression.exec(value))) {\n position = match.index\n\n // Support CRLF (patterns only look for one of the characters).\n if (\n value.charCodeAt(position) === 10 /* `\\n` */ &&\n value.charCodeAt(position - 1) === 13 /* `\\r` */\n ) {\n position--\n }\n\n value = value.slice(0, position) + ' ' + value.slice(match.index + 1)\n }\n }\n\n return sequence + value + sequence\n}\n\nfunction inlineCodePeek() {\n return '`'\n}\n","module.exports = patternCompile\n\nfunction patternCompile(pattern) {\n var before\n var after\n\n if (!pattern._compiled) {\n before = pattern.before ? '(?:' + pattern.before + ')' : ''\n after = pattern.after ? '(?:' + pattern.after + ')' : ''\n\n if (pattern.atBreak) {\n before = '[\\\\r\\\\n][\\\\t ]*' + before\n }\n\n pattern._compiled = new RegExp(\n (before ? '(' + before + ')' : '') +\n (/[|\\\\{}()[\\]^$+*?.-]/.test(pattern.character) ? '\\\\' : '') +\n pattern.character +\n (after || ''),\n 'g'\n )\n }\n\n return pattern._compiled\n}\n","'use strict'\n\nvar repeat = require('repeat-string')\n\nmodule.exports = markdownTable\n\nvar trailingWhitespace = / +$/\n\n// Characters.\nvar space = ' '\nvar lineFeed = '\\n'\nvar dash = '-'\nvar colon = ':'\nvar verticalBar = '|'\n\nvar x = 0\nvar C = 67\nvar L = 76\nvar R = 82\nvar c = 99\nvar l = 108\nvar r = 114\n\n// Create a table from a matrix of strings.\nfunction markdownTable(table, options) {\n var settings = options || {}\n var padding = settings.padding !== false\n var start = settings.delimiterStart !== false\n var end = settings.delimiterEnd !== false\n var align = (settings.align || []).concat()\n var alignDelimiters = settings.alignDelimiters !== false\n var alignments = []\n var stringLength = settings.stringLength || defaultStringLength\n var rowIndex = -1\n var rowLength = table.length\n var cellMatrix = []\n var sizeMatrix = []\n var row = []\n var sizes = []\n var longestCellByColumn = []\n var mostCellsPerRow = 0\n var cells\n var columnIndex\n var columnLength\n var largest\n var size\n var cell\n var lines\n var line\n var before\n var after\n var code\n\n // This is a superfluous loop if we dont align delimiters, but otherwise wed\n // do superfluous work when aligning, so optimize for aligning.\n while (++rowIndex < rowLength) {\n cells = table[rowIndex]\n columnIndex = -1\n columnLength = cells.length\n row = []\n sizes = []\n\n if (columnLength > mostCellsPerRow) {\n mostCellsPerRow = columnLength\n }\n\n while (++columnIndex < columnLength) {\n cell = serialize(cells[columnIndex])\n\n if (alignDelimiters === true) {\n size = stringLength(cell)\n sizes[columnIndex] = size\n\n largest = longestCellByColumn[columnIndex]\n\n if (largest === undefined || size > largest) {\n longestCellByColumn[columnIndex] = size\n }\n }\n\n row.push(cell)\n }\n\n cellMatrix[rowIndex] = row\n sizeMatrix[rowIndex] = sizes\n }\n\n // Figure out which alignments to use.\n columnIndex = -1\n columnLength = mostCellsPerRow\n\n if (typeof align === 'object' && 'length' in align) {\n while (++columnIndex < columnLength) {\n alignments[columnIndex] = toAlignment(align[columnIndex])\n }\n } else {\n code = toAlignment(align)\n\n while (++columnIndex < columnLength) {\n alignments[columnIndex] = code\n }\n }\n\n // Inject the alignment row.\n columnIndex = -1\n columnLength = mostCellsPerRow\n row = []\n sizes = []\n\n while (++columnIndex < columnLength) {\n code = alignments[columnIndex]\n before = ''\n after = ''\n\n if (code === l) {\n before = colon\n } else if (code === r) {\n after = colon\n } else if (code === c) {\n before = colon\n after = colon\n }\n\n // There *must* be at least one hyphen-minus in each alignment cell.\n size = alignDelimiters\n ? Math.max(\n 1,\n longestCellByColumn[columnIndex] - before.length - after.length\n )\n : 1\n\n cell = before + repeat(dash, size) + after\n\n if (alignDelimiters === true) {\n size = before.length + size + after.length\n\n if (size > longestCellByColumn[columnIndex]) {\n longestCellByColumn[columnIndex] = size\n }\n\n sizes[columnIndex] = size\n }\n\n row[columnIndex] = cell\n }\n\n // Inject the alignment row.\n cellMatrix.splice(1, 0, row)\n sizeMatrix.splice(1, 0, sizes)\n\n rowIndex = -1\n rowLength = cellMatrix.length\n lines = []\n\n while (++rowIndex < rowLength) {\n row = cellMatrix[rowIndex]\n sizes = sizeMatrix[rowIndex]\n columnIndex = -1\n columnLength = mostCellsPerRow\n line = []\n\n while (++columnIndex < columnLength) {\n cell = row[columnIndex] || ''\n before = ''\n after = ''\n\n if (alignDelimiters === true) {\n size = longestCellByColumn[columnIndex] - (sizes[columnIndex] || 0)\n code = alignments[columnIndex]\n\n if (code === r) {\n before = repeat(space, size)\n } else if (code === c) {\n if (size % 2 === 0) {\n before = repeat(space, size / 2)\n after = before\n } else {\n before = repeat(space, size / 2 + 0.5)\n after = repeat(space, size / 2 - 0.5)\n }\n } else {\n after = repeat(space, size)\n }\n }\n\n if (start === true && columnIndex === 0) {\n line.push(verticalBar)\n }\n\n if (\n padding === true &&\n // Dont add the opening space if were not aligning and the cell is\n // empty: there will be a closing space.\n !(alignDelimiters === false && cell === '') &&\n (start === true || columnIndex !== 0)\n ) {\n line.push(space)\n }\n\n if (alignDelimiters === true) {\n line.push(before)\n }\n\n line.push(cell)\n\n if (alignDelimiters === true) {\n line.push(after)\n }\n\n if (padding === true) {\n line.push(space)\n }\n\n if (end === true || columnIndex !== columnLength - 1) {\n line.push(verticalBar)\n }\n }\n\n line = line.join('')\n\n if (end === false) {\n line = line.replace(trailingWhitespace, '')\n }\n\n lines.push(line)\n }\n\n return lines.join(lineFeed)\n}\n\nfunction serialize(value) {\n return value === null || value === undefined ? '' : String(value)\n}\n\nfunction defaultStringLength(value) {\n return value.length\n}\n\nfunction toAlignment(value) {\n var code = typeof value === 'string' ? value.charCodeAt(0) : x\n\n return code === L || code === l\n ? l\n : code === R || code === r\n ? r\n : code === C || code === c\n ? c\n : x\n}\n","var defaultListItem = require('mdast-util-to-markdown/lib/handle/list-item')\n\nexports.unsafe = [{atBreak: true, character: '-', after: '[:|-]'}]\n\nexports.handlers = {\n listItem: listItemWithTaskListItem\n}\n\nfunction listItemWithTaskListItem(node, parent, context) {\n var value = defaultListItem(node, parent, context)\n var head = node.children[0]\n\n if (typeof node.checked === 'boolean' && head && head.type === 'paragraph') {\n value = value.replace(/^(?:[*+-]|\\d+\\.)([\\r\\n]| {1,3})/, check)\n }\n\n return value\n\n function check($0) {\n return $0 + '[' + (node.checked ? 'x' : ' ') + '] '\n }\n}\n","module.exports = listItem\n\nvar repeat = require('repeat-string')\nvar checkBullet = require('../util/check-bullet')\nvar checkListItemIndent = require('../util/check-list-item-indent')\nvar flow = require('../util/container-flow')\nvar indentLines = require('../util/indent-lines')\n\nfunction listItem(node, parent, context) {\n var bullet = checkBullet(context)\n var listItemIndent = checkListItemIndent(context)\n var size\n var value\n var exit\n\n if (parent && parent.ordered) {\n bullet =\n (parent.start > -1 ? parent.start : 1) +\n (context.options.incrementListMarker === false\n ? 0\n : parent.children.indexOf(node)) +\n '.'\n }\n\n size = bullet.length + 1\n\n if (\n listItemIndent === 'tab' ||\n (listItemIndent === 'mixed' && ((parent && parent.spread) || node.spread))\n ) {\n size = Math.ceil(size / 4) * 4\n }\n\n exit = context.enter('listItem')\n value = indentLines(flow(node, context), map)\n exit()\n\n return value\n\n function map(line, index, blank) {\n if (index) {\n return (blank ? '' : repeat(' ', size)) + line\n }\n\n return (blank ? bullet : bullet + repeat(' ', size - bullet.length)) + line\n }\n}\n","module.exports = checkBullet\n\nfunction checkBullet(context) {\n var marker = context.options.bullet || '*'\n\n if (marker !== '*' && marker !== '+' && marker !== '-') {\n throw new Error(\n 'Cannot serialize items with `' +\n marker +\n '` for `options.bullet`, expected `*`, `+`, or `-`'\n )\n }\n\n return marker\n}\n","module.exports = checkListItemIndent\n\nfunction checkListItemIndent(context) {\n var style = context.options.listItemIndent || 'tab'\n\n if (style === 1 || style === '1') {\n return 'one'\n }\n\n if (style !== 'tab' && style !== 'one' && style !== 'mixed') {\n throw new Error(\n 'Cannot serialize items with `' +\n style +\n '` for `options.listItemIndent`, expected `tab`, `one`, or `mixed`'\n )\n }\n\n return style\n}\n","module.exports = flow\n\nvar repeat = require('repeat-string')\n\nfunction flow(parent, context) {\n var children = parent.children || []\n var results = []\n var index = -1\n var child\n\n while (++index < children.length) {\n child = children[index]\n\n results.push(\n context.handle(child, parent, context, {before: '\\n', after: '\\n'})\n )\n\n if (index + 1 < children.length) {\n results.push(between(child, children[index + 1]))\n }\n }\n\n return results.join('')\n\n function between(left, right) {\n var index = -1\n var result\n\n while (++index < context.join.length) {\n result = context.join[index](left, right, parent, context)\n\n if (result === true || result === 1) {\n break\n }\n\n if (typeof result === 'number') {\n return repeat('\\n', 1 + Number(result))\n }\n\n if (result === false) {\n return '\\n\\n<!---->\\n\\n'\n }\n }\n\n return '\\n\\n'\n }\n}\n","module.exports = indentLines\n\nvar eol = /\\r?\\n|\\r/g\n\nfunction indentLines(value, map) {\n var result = []\n var start = 0\n var line = 0\n var match\n\n while ((match = eol.exec(value))) {\n one(value.slice(start, match.index))\n result.push(match[0])\n start = match.index + match[0].length\n line++\n }\n\n one(value.slice(start))\n\n return result.join('')\n\n function one(value) {\n result.push(map(value, line, !value))\n }\n}\n","module.exports = configure\n\nfunction configure(base, extension) {\n var index = -1\n var key\n\n // First do subextensions.\n if (extension.extensions) {\n while (++index < extension.extensions.length) {\n configure(base, extension.extensions[index])\n }\n }\n\n for (key in extension) {\n if (key === 'extensions') {\n // Empty.\n } else if (key === 'unsafe' || key === 'join') {\n base[key] = base[key].concat(extension[key] || [])\n } else if (key === 'handlers') {\n base[key] = Object.assign(base[key], extension[key] || {})\n } else {\n base.options[key] = extension[key]\n }\n }\n\n return base\n}\n","'use strict'\n\nmodule.exports = toString\n\n// Get the text content of a node.\n// Prefer the nodes plain-text fields, otherwise serialize its children,\n// and if the given value is an array, serialize the nodes in it.\nfunction toString(node) {\n return (\n (node &&\n (node.value ||\n node.alt ||\n node.title ||\n ('children' in node && all(node.children)) ||\n ('length' in node && all(node)))) ||\n ''\n )\n}\n\nfunction all(values) {\n var result = []\n var length = values.length\n var index = -1\n\n while (++index < length) {\n result[index] = toString(values[index])\n }\n\n return result.join('')\n}\n","var emoji = require('emoji-regex')\r\n\r\nmodule.exports = BananaSlug\r\n\r\nvar own = Object.hasOwnProperty\r\nvar whitespace = /\\s/g\r\nvar specials = /[\\u2000-\\u206F\\u2E00-\\u2E7F\\\\'!\"#$%&()*+,./:;<=>?@[\\]^`{|}~]/g\r\n\r\nfunction BananaSlug () {\r\n var self = this\r\n\r\n if (!(self instanceof BananaSlug)) return new BananaSlug()\r\n\r\n self.reset()\r\n}\r\n\r\n/**\r\n * Generate a unique slug.\r\n * @param {string} value String of text to slugify\r\n * @param {boolean} [false] Keep the current case, otherwise make all lowercase\r\n * @return {string} A unique slug string\r\n */\r\nBananaSlug.prototype.slug = function (value, maintainCase) {\r\n var self = this\r\n var slug = slugger(value, maintainCase === true)\r\n var originalSlug = slug\r\n\r\n while (own.call(self.occurrences, slug)) {\r\n self.occurrences[originalSlug]++\r\n slug = originalSlug + '-' + self.occurrences[originalSlug]\r\n }\r\n\r\n self.occurrences[slug] = 0\r\n\r\n return slug\r\n}\r\n\r\n/**\r\n * Reset - Forget all previous slugs\r\n * @return void\r\n */\r\nBananaSlug.prototype.reset = function () {\r\n this.occurrences = Object.create(null)\r\n}\r\n\r\nfunction slugger (string, maintainCase) {\r\n if (typeof string !== 'string') return ''\r\n if (!maintainCase) string = string.toLowerCase()\r\n\r\n return string.trim()\r\n .replace(specials, '')\r\n .replace(emoji(), '')\r\n .replace(whitespace, '-')\r\n}\r\n\r\nBananaSlug.slug = slugger\r\n","module.exports = function() {\n\treturn /[\\xA9\\xAE\\u203C\\u2049\\u2122\\u2139\\u2194-\\u2199\\u21A9\\u21AA\\u231A\\u231B\\u2328\\u23CF\\u23E9-\\u23F3\\u23F8-\\u23FA\\u24C2\\u25AA\\u25AB\\u25B6\\u25C0\\u25FB-\\u25FE\\u2600-\\u2604\\u260E\\u2611\\u2614\\u2615\\u2618\\u261D\\u2620\\u2622\\u2623\\u2626\\u262A\\u262E\\u262F\\u2638-\\u263A\\u2648-\\u2653\\u2660\\u2663\\u2665\\u2666\\u2668\\u267B\\u267F\\u2692-\\u2694\\u2696\\u2697\\u2699\\u269B\\u269C\\u26A0\\u26A1\\u26AA\\u26AB\\u26B0\\u26B1\\u26BD\\u26BE\\u26C4\\u26C5\\u26C8\\u26CE\\u26CF\\u26D1\\u26D3\\u26D4\\u26E9\\u26EA\\u26F0-\\u26F5\\u26F7-\\u26FA\\u26FD\\u2702\\u2705\\u2708-\\u270D\\u270F\\u2712\\u2714\\u2716\\u271D\\u2721\\u2728\\u2733\\u2734\\u2744\\u2747\\u274C\\u274E\\u2753-\\u2755\\u2757\\u2763\\u2764\\u2795-\\u2797\\u27A1\\u27B0\\u27BF\\u2934\\u2935\\u2B05-\\u2B07\\u2B1B\\u2B1C\\u2B50\\u2B55\\u3030\\u303D\\u3297\\u3299]|\\uD83C[\\uDC04\\uDCCF\\uDD70\\uDD71\\uDD7E\\uDD7F\\uDD8E\\uDD91-\\uDD9A\\uDE01\\uDE02\\uDE1A\\uDE2F\\uDE32-\\uDE3A\\uDE50\\uDE51\\uDF00-\\uDF21\\uDF24-\\uDF93\\uDF96\\uDF97\\uDF99-\\uDF9B\\uDF9E-\\uDFF0\\uDFF3-\\uDFF5\\uDFF7-\\uDFFF]|\\uD83D[\\uDC00-\\uDCFD\\uDCFF-\\uDD3D\\uDD49-\\uDD4E\\uDD50-\\uDD67\\uDD6F\\uDD70\\uDD73-\\uDD79\\uDD87\\uDD8A-\\uDD8D\\uDD90\\uDD95\\uDD96\\uDDA5\\uDDA8\\uDDB1\\uDDB2\\uDDBC\\uDDC2-\\uDDC4\\uDDD1-\\uDDD3\\uDDDC-\\uDDDE\\uDDE1\\uDDE3\\uDDEF\\uDDF3\\uDDFA-\\uDE4F\\uDE80-\\uDEC5\\uDECB-\\uDED0\\uDEE0-\\uDEE5\\uDEE9\\uDEEB\\uDEEC\\uDEF0\\uDEF3]|\\uD83E[\\uDD10-\\uDD18\\uDD80-\\uDD84\\uDDC0]|\\uD83C\\uDDFF\\uD83C[\\uDDE6\\uDDF2\\uDDFC]|\\uD83C\\uDDFE\\uD83C[\\uDDEA\\uDDF9]|\\uD83C\\uDDFD\\uD83C\\uDDF0|\\uD83C\\uDDFC\\uD83C[\\uDDEB\\uDDF8]|\\uD83C\\uDDFB\\uD83C[\\uDDE6\\uDDE8\\uDDEA\\uDDEC\\uDDEE\\uDDF3\\uDDFA]|\\uD83C\\uDDFA\\uD83C[\\uDDE6\\uDDEC\\uDDF2\\uDDF8\\uDDFE\\uDDFF]|\\uD83C\\uDDF9\\uD83C[\\uDDE6\\uDDE8\\uDDE9\\uDDEB-\\uDDED\\uDDEF-\\uDDF4\\uDDF7\\uDDF9\\uDDFB\\uDDFC\\uDDFF]|\\uD83C\\uDDF8\\uD83C[\\uDDE6-\\uDDEA\\uDDEC-\\uDDF4\\uDDF7-\\uDDF9\\uDDFB\\uDDFD-\\uDDFF]|\\uD83C\\uDDF7\\uD83C[\\uDDEA\\uDDF4\\uDDF8\\uDDFA\\uDDFC]|\\uD83C\\uDDF6\\uD83C\\uDDE6|\\uD83C\\uDDF5\\uD83C[\\uDDE6\\uDDEA-\\uDDED\\uDDF0-\\uDDF3\\uDDF7-\\uDDF9\\uDDFC\\uDDFE]|\\uD83C\\uDDF4\\uD83C\\uDDF2|\\uD83C\\uDDF3\\uD83C[\\uDDE6\\uDDE8\\uDDEA-\\uDDEC\\uDDEE\\uDDF1\\uDDF4\\uDDF5\\uDDF7\\uDDFA\\uDDFF]|\\uD83C\\uDDF2\\uD83C[\\uDDE6\\uDDE8-\\uDDED\\uDDF0-\\uDDFF]|\\uD83C\\uDDF1\\uD83C[\\uDDE6-\\uDDE8\\uDDEE\\uDDF0\\uDDF7-\\uDDFB\\uDDFE]|\\uD83C\\uDDF0\\uD83C[\\uDDEA\\uDDEC-\\uDDEE\\uDDF2\\uDDF3\\uDDF5\\uDDF7\\uDDFC\\uDDFE\\uDDFF]|\\uD83C\\uDDEF\\uD83C[\\uDDEA\\uDDF2\\uDDF4\\uDDF5]|\\uD83C\\uDDEE\\uD83C[\\uDDE8-\\uDDEA\\uDDF1-\\uDDF4\\uDDF6-\\uDDF9]|\\uD83C\\uDDED\\uD83C[\\uDDF0\\uDDF2\\uDDF3\\uDDF7\\uDDF9\\uDDFA]|\\uD83C\\uDDEC\\uD83C[\\uDDE6\\uDDE7\\uDDE9-\\uDDEE\\uDDF1-\\uDDF3\\uDDF5-\\uDDFA\\uDDFC\\uDDFE]|\\uD83C\\uDDEB\\uD83C[\\uDDEE-\\uDDF0\\uDDF2\\uDDF4\\uDDF7]|\\uD83C\\uDDEA\\uD83C[\\uDDE6\\uDDE8\\uDDEA\\uDDEC\\uDDED\\uDDF7-\\uDDFA]|\\uD83C\\uDDE9\\uD83C[\\uDDEA\\uDDEC\\uDDEF\\uDDF0\\uDDF2\\uDDF4\\uDDFF]|\\uD83C\\uDDE8\\uD83C[\\uDDE6\\uDDE8\\uDDE9\\uDDEB-\\uDDEE\\uDDF0-\\uDDF5\\uDDF7\\uDDFA-\\uDDFF]|\\uD83C\\uDDE7\\uD83C[\\uDDE6\\uDDE7\\uDDE9-\\uDDEF\\uDDF1-\\uDDF4\\uDDF6-\\uDDF9\\uDDFB\\uDDFC\\uDDFE\\uDDFF]|\\uD83C\\uDDE6\\uD83C[\\uDDE8-\\uDDEC\\uDDEE\\uDDF1\\uDDF2\\uDDF4\\uDDF6-\\uDDFA\\uDDFC\\uDDFD\\uDDFF]|[#\\*0-9]\\u20E3/g;\n};\n","'use strict'\n\nvar Parser = require('parse5/lib/parser')\nvar pos = require('unist-util-position')\nvar visit = require('unist-util-visit')\nvar fromParse5 = require('hast-util-from-parse5')\nvar toParse5 = require('hast-util-to-parse5')\nvar voids = require('html-void-elements')\nvar ns = require('web-namespaces')\nvar zwitch = require('zwitch')\nvar xtend = require('xtend')\n\nmodule.exports = wrap\n\nvar inTemplateMode = 'IN_TEMPLATE_MODE'\nvar dataState = 'DATA_STATE'\nvar characterToken = 'CHARACTER_TOKEN'\nvar startTagToken = 'START_TAG_TOKEN'\nvar endTagToken = 'END_TAG_TOKEN'\nvar commentToken = 'COMMENT_TOKEN'\nvar doctypeToken = 'DOCTYPE_TOKEN'\n\nvar parseOptions = {sourceCodeLocationInfo: true, scriptingEnabled: false}\n\nfunction wrap(tree, file, options) {\n var parser = new Parser(parseOptions)\n var one = zwitch('type', {\n handlers: {\n root: root,\n element: element,\n text: text,\n comment: comment,\n doctype: doctype,\n raw: raw\n },\n unknown: unknown\n })\n var stitches\n var tokenizer\n var preprocessor\n var posTracker\n var locationTracker\n var result\n var index\n\n if (file && !('contents' in file)) {\n options = file\n file = undefined\n }\n\n if (options && options.passThrough) {\n index = -1\n\n while (++index < options.passThrough.length) {\n one.handlers[options.passThrough[index]] = stitch\n }\n }\n\n result = fromParse5(documentMode(tree) ? document() : fragment(), file)\n\n if (stitches) {\n visit(result, 'comment', mend)\n }\n\n // Unpack if possible and when not given a `root`.\n if (tree.type !== 'root' && result.children.length === 1) {\n return result.children[0]\n }\n\n return result\n\n function mend(node, index, parent) {\n if (node.value.stitch) {\n parent.children[index] = node.value.stitch\n return index\n }\n }\n\n function fragment() {\n var context = {\n nodeName: 'template',\n tagName: 'template',\n attrs: [],\n namespaceURI: ns.html,\n childNodes: []\n }\n var mock = {\n nodeName: 'documentmock',\n tagName: 'documentmock',\n attrs: [],\n namespaceURI: ns.html,\n childNodes: []\n }\n var doc = {nodeName: '#document-fragment', childNodes: []}\n\n parser._bootstrap(mock, context)\n parser._pushTmplInsertionMode(inTemplateMode)\n parser._initTokenizerForFragmentParsing()\n parser._insertFakeRootElement()\n parser._resetInsertionMode()\n parser._findFormInFragmentContext()\n\n tokenizer = parser.tokenizer\n preprocessor = tokenizer.preprocessor\n locationTracker = tokenizer.__mixins[0]\n posTracker = locationTracker.posTracker\n\n one(tree)\n\n parser._adoptNodes(mock.childNodes[0], doc)\n\n return doc\n }\n\n function document() {\n var doc = parser.treeAdapter.createDocument()\n\n parser._bootstrap(doc, null)\n tokenizer = parser.tokenizer\n preprocessor = tokenizer.preprocessor\n locationTracker = tokenizer.__mixins[0]\n posTracker = locationTracker.posTracker\n\n one(tree)\n\n return doc\n }\n\n function all(nodes) {\n var index = -1\n\n /* istanbul ignore else - invalid nodes, see rehypejs/rehype-raw#7. */\n if (nodes) {\n while (++index < nodes.length) {\n one(nodes[index])\n }\n }\n }\n\n function root(node) {\n all(node.children)\n }\n\n function element(node) {\n resetTokenizer()\n parser._processToken(startTag(node), ns.html)\n\n all(node.children)\n\n if (voids.indexOf(node.tagName) < 0) {\n resetTokenizer()\n parser._processToken(endTag(node))\n }\n }\n\n function text(node) {\n resetTokenizer()\n parser._processToken({\n type: characterToken,\n chars: node.value,\n location: createParse5Location(node)\n })\n }\n\n function doctype(node) {\n var p5 = toParse5(node)\n resetTokenizer()\n parser._processToken({\n type: doctypeToken,\n name: p5.name,\n forceQuirks: false,\n publicId: p5.publicId,\n systemId: p5.systemId,\n location: createParse5Location(node)\n })\n }\n\n function comment(node) {\n resetTokenizer()\n parser._processToken({\n type: commentToken,\n data: node.value,\n location: createParse5Location(node)\n })\n }\n\n function raw(node) {\n var start = pos.start(node)\n var line = start.line || 1\n var column = start.column || 1\n var offset = start.offset || 0\n var token\n\n // Reset preprocessor:\n // See: <https://github.com/inikulin/parse5/blob/9c683e1/packages/parse5/lib/tokenizer/preprocessor.js>.\n preprocessor.html = null\n preprocessor.pos = -1\n preprocessor.lastGapPos = -1\n preprocessor.lastCharPos = -1\n preprocessor.gapStack = []\n preprocessor.skipNextNewLine = false\n preprocessor.lastChunkWritten = false\n preprocessor.endOfChunkHit = false\n\n // Reset preprocessor mixin:\n // See: <https://github.com/inikulin/parse5/blob/9c683e1/packages/parse5/lib/extensions/position-tracking/preprocessor-mixin.js>.\n posTracker.isEol = false\n posTracker.lineStartPos = -column + 1 // Looks weird, but ensures we get correct positional info.\n posTracker.droppedBufferSize = offset\n posTracker.offset = 0\n posTracker.col = 1\n posTracker.line = line\n\n // Reset location tracker:\n // See: <https://github.com/inikulin/parse5/blob/9c683e1/packages/parse5/lib/extensions/location-info/tokenizer-mixin.js>.\n locationTracker.currentAttrLocation = null\n locationTracker.ctLoc = createParse5Location(node)\n\n // See the code for `parse` and `parseFragment`:\n // See: <https://github.com/inikulin/parse5/blob/9c683e1/packages/parse5/lib/parser/index.js#L371>.\n tokenizer.write(node.value)\n parser._runParsingLoop(null)\n\n // Process final characters if theyre still there after hibernating.\n // Similar to:\n // See: <https://github.com/inikulin/parse5/blob/9c683e1/packages/parse5/lib/extensions/location-info/tokenizer-mixin.js#L95>.\n token = tokenizer.currentCharacterToken\n\n if (token) {\n token.location.endLine = posTracker.line\n token.location.endCol = posTracker.col + 1\n token.location.endOffset = posTracker.offset + 1\n parser._processToken(token)\n }\n }\n\n function stitch(node) {\n var clone = Object.assign({}, node)\n\n stitches = true\n\n // Recurse, because to somewhat handle `[<x>]</x>` (where `[]` denotes the\n // passed through node).\n if (node.children) {\n clone.children = wrap(\n {type: 'root', children: node.children},\n file,\n options\n ).children\n }\n\n // Hack: `value` is supposed to be a string, but as none of the tools\n // (`parse5` or `hast-util-from-parse5`) looks at it, we can pass nodes\n // through.\n comment({value: {stitch: clone}})\n }\n\n function resetTokenizer() {\n // Reset tokenizer:\n // See: <https://github.com/inikulin/parse5/blob/9c683e1/packages/parse5/lib/tokenizer/index.js#L218-L234>.\n // Especially putting it back in the `data` state is useful: some elements,\n // like textareas and iframes, change the state.\n // See GH-7.\n // But also if broken HTML is in `raw`, and then a correct element is given.\n // See GH-11.\n tokenizer.tokenQueue = []\n tokenizer.state = dataState\n tokenizer.returnState = ''\n tokenizer.charRefCode = -1\n tokenizer.tempBuff = []\n tokenizer.lastStartTagName = ''\n tokenizer.consumedAfterSnapshot = -1\n tokenizer.active = false\n tokenizer.currentCharacterToken = null\n tokenizer.currentToken = null\n tokenizer.currentAttr = null\n }\n}\n\nfunction startTag(node) {\n var location = createParse5Location(node)\n\n location.startTag = xtend(location)\n\n return {\n type: startTagToken,\n tagName: node.tagName,\n selfClosing: false,\n attrs: attributes(node),\n location: location\n }\n}\n\nfunction attributes(node) {\n return toParse5({\n tagName: node.tagName,\n type: 'element',\n properties: node.properties\n }).attrs\n}\n\nfunction endTag(node) {\n var location = createParse5Location(node)\n\n location.endTag = xtend(location)\n\n return {\n type: endTagToken,\n tagName: node.tagName,\n attrs: [],\n location: location\n }\n}\n\nfunction unknown(node) {\n throw new Error('Cannot compile `' + node.type + '` node')\n}\n\nfunction documentMode(node) {\n var head = node.type === 'root' ? node.children[0] : node\n\n return head && (head.type === 'doctype' || head.tagName === 'html')\n}\n\nfunction createParse5Location(node) {\n var start = pos.start(node)\n var end = pos.end(node)\n\n return {\n startLine: start.line,\n startCol: start.column,\n startOffset: start.offset,\n endLine: end.line,\n endCol: end.column,\n endOffset: end.offset\n }\n}\n","'use strict';\n\nconst Tokenizer = require('../tokenizer');\nconst OpenElementStack = require('./open-element-stack');\nconst FormattingElementList = require('./formatting-element-list');\nconst LocationInfoParserMixin = require('../extensions/location-info/parser-mixin');\nconst ErrorReportingParserMixin = require('../extensions/error-reporting/parser-mixin');\nconst Mixin = require('../utils/mixin');\nconst defaultTreeAdapter = require('../tree-adapters/default');\nconst mergeOptions = require('../utils/merge-options');\nconst doctype = require('../common/doctype');\nconst foreignContent = require('../common/foreign-content');\nconst ERR = require('../common/error-codes');\nconst unicode = require('../common/unicode');\nconst HTML = require('../common/html');\n\n//Aliases\nconst $ = HTML.TAG_NAMES;\nconst NS = HTML.NAMESPACES;\nconst ATTRS = HTML.ATTRS;\n\nconst DEFAULT_OPTIONS = {\n scriptingEnabled: true,\n sourceCodeLocationInfo: false,\n onParseError: null,\n treeAdapter: defaultTreeAdapter\n};\n\n//Misc constants\nconst HIDDEN_INPUT_TYPE = 'hidden';\n\n//Adoption agency loops iteration count\nconst AA_OUTER_LOOP_ITER = 8;\nconst AA_INNER_LOOP_ITER = 3;\n\n//Insertion modes\nconst INITIAL_MODE = 'INITIAL_MODE';\nconst BEFORE_HTML_MODE = 'BEFORE_HTML_MODE';\nconst BEFORE_HEAD_MODE = 'BEFORE_HEAD_MODE';\nconst IN_HEAD_MODE = 'IN_HEAD_MODE';\nconst IN_HEAD_NO_SCRIPT_MODE = 'IN_HEAD_NO_SCRIPT_MODE';\nconst AFTER_HEAD_MODE = 'AFTER_HEAD_MODE';\nconst IN_BODY_MODE = 'IN_BODY_MODE';\nconst TEXT_MODE = 'TEXT_MODE';\nconst IN_TABLE_MODE = 'IN_TABLE_MODE';\nconst IN_TABLE_TEXT_MODE = 'IN_TABLE_TEXT_MODE';\nconst IN_CAPTION_MODE = 'IN_CAPTION_MODE';\nconst IN_COLUMN_GROUP_MODE = 'IN_COLUMN_GROUP_MODE';\nconst IN_TABLE_BODY_MODE = 'IN_TABLE_BODY_MODE';\nconst IN_ROW_MODE = 'IN_ROW_MODE';\nconst IN_CELL_MODE = 'IN_CELL_MODE';\nconst IN_SELECT_MODE = 'IN_SELECT_MODE';\nconst IN_SELECT_IN_TABLE_MODE = 'IN_SELECT_IN_TABLE_MODE';\nconst IN_TEMPLATE_MODE = 'IN_TEMPLATE_MODE';\nconst AFTER_BODY_MODE = 'AFTER_BODY_MODE';\nconst IN_FRAMESET_MODE = 'IN_FRAMESET_MODE';\nconst AFTER_FRAMESET_MODE = 'AFTER_FRAMESET_MODE';\nconst AFTER_AFTER_BODY_MODE = 'AFTER_AFTER_BODY_MODE';\nconst AFTER_AFTER_FRAMESET_MODE = 'AFTER_AFTER_FRAMESET_MODE';\n\n//Insertion mode reset map\nconst INSERTION_MODE_RESET_MAP = {\n [$.TR]: IN_ROW_MODE,\n [$.TBODY]: IN_TABLE_BODY_MODE,\n [$.THEAD]: IN_TABLE_BODY_MODE,\n [$.TFOOT]: IN_TABLE_BODY_MODE,\n [$.CAPTION]: IN_CAPTION_MODE,\n [$.COLGROUP]: IN_COLUMN_GROUP_MODE,\n [$.TABLE]: IN_TABLE_MODE,\n [$.BODY]: IN_BODY_MODE,\n [$.FRAMESET]: IN_FRAMESET_MODE\n};\n\n//Template insertion mode switch map\nconst TEMPLATE_INSERTION_MODE_SWITCH_MAP = {\n [$.CAPTION]: IN_TABLE_MODE,\n [$.COLGROUP]: IN_TABLE_MODE,\n [$.TBODY]: IN_TABLE_MODE,\n [$.TFOOT]: IN_TABLE_MODE,\n [$.THEAD]: IN_TABLE_MODE,\n [$.COL]: IN_COLUMN_GROUP_MODE,\n [$.TR]: IN_TABLE_BODY_MODE,\n [$.TD]: IN_ROW_MODE,\n [$.TH]: IN_ROW_MODE\n};\n\n//Token handlers map for insertion modes\nconst TOKEN_HANDLERS = {\n [INITIAL_MODE]: {\n [Tokenizer.CHARACTER_TOKEN]: tokenInInitialMode,\n [Tokenizer.NULL_CHARACTER_TOKEN]: tokenInInitialMode,\n [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: ignoreToken,\n [Tokenizer.COMMENT_TOKEN]: appendComment,\n [Tokenizer.DOCTYPE_TOKEN]: doctypeInInitialMode,\n [Tokenizer.START_TAG_TOKEN]: tokenInInitialMode,\n [Tokenizer.END_TAG_TOKEN]: tokenInInitialMode,\n [Tokenizer.EOF_TOKEN]: tokenInInitialMode\n },\n [BEFORE_HTML_MODE]: {\n [Tokenizer.CHARACTER_TOKEN]: tokenBeforeHtml,\n [Tokenizer.NULL_CHARACTER_TOKEN]: tokenBeforeHtml,\n [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: ignoreToken,\n [Tokenizer.COMMENT_TOKEN]: appendComment,\n [Tokenizer.DOCTYPE_TOKEN]: ignoreToken,\n [Tokenizer.START_TAG_TOKEN]: startTagBeforeHtml,\n [Tokenizer.END_TAG_TOKEN]: endTagBeforeHtml,\n [Tokenizer.EOF_TOKEN]: tokenBeforeHtml\n },\n [BEFORE_HEAD_MODE]: {\n [Tokenizer.CHARACTER_TOKEN]: tokenBeforeHead,\n [Tokenizer.NULL_CHARACTER_TOKEN]: tokenBeforeHead,\n [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: ignoreToken,\n [Tokenizer.COMMENT_TOKEN]: appendComment,\n [Tokenizer.DOCTYPE_TOKEN]: misplacedDoctype,\n [Tokenizer.START_TAG_TOKEN]: startTagBeforeHead,\n [Tokenizer.END_TAG_TOKEN]: endTagBeforeHead,\n [Tokenizer.EOF_TOKEN]: tokenBeforeHead\n },\n [IN_HEAD_MODE]: {\n [Tokenizer.CHARACTER_TOKEN]: tokenInHead,\n [Tokenizer.NULL_CHARACTER_TOKEN]: tokenInHead,\n [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: insertCharacters,\n [Tokenizer.COMMENT_TOKEN]: appendComment,\n [Tokenizer.DOCTYPE_TOKEN]: misplacedDoctype,\n [Tokenizer.START_TAG_TOKEN]: startTagInHead,\n [Tokenizer.END_TAG_TOKEN]: endTagInHead,\n [Tokenizer.EOF_TOKEN]: tokenInHead\n },\n [IN_HEAD_NO_SCRIPT_MODE]: {\n [Tokenizer.CHARACTER_TOKEN]: tokenInHeadNoScript,\n [Tokenizer.NULL_CHARACTER_TOKEN]: tokenInHeadNoScript,\n [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: insertCharacters,\n [Tokenizer.COMMENT_TOKEN]: appendComment,\n [Tokenizer.DOCTYPE_TOKEN]: misplacedDoctype,\n [Tokenizer.START_TAG_TOKEN]: startTagInHeadNoScript,\n [Tokenizer.END_TAG_TOKEN]: endTagInHeadNoScript,\n [Tokenizer.EOF_TOKEN]: tokenInHeadNoScript\n },\n [AFTER_HEAD_MODE]: {\n [Tokenizer.CHARACTER_TOKEN]: tokenAfterHead,\n [Tokenizer.NULL_CHARACTER_TOKEN]: tokenAfterHead,\n [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: insertCharacters,\n [Tokenizer.COMMENT_TOKEN]: appendComment,\n [Tokenizer.DOCTYPE_TOKEN]: misplacedDoctype,\n [Tokenizer.START_TAG_TOKEN]: startTagAfterHead,\n [Tokenizer.END_TAG_TOKEN]: endTagAfterHead,\n [Tokenizer.EOF_TOKEN]: tokenAfterHead\n },\n [IN_BODY_MODE]: {\n [Tokenizer.CHARACTER_TOKEN]: characterInBody,\n [Tokenizer.NULL_CHARACTER_TOKEN]: ignoreToken,\n [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: whitespaceCharacterInBody,\n [Tokenizer.COMMENT_TOKEN]: appendComment,\n [Tokenizer.DOCTYPE_TOKEN]: ignoreToken,\n [Tokenizer.START_TAG_TOKEN]: startTagInBody,\n [Tokenizer.END_TAG_TOKEN]: endTagInBody,\n [Tokenizer.EOF_TOKEN]: eofInBody\n },\n [TEXT_MODE]: {\n [Tokenizer.CHARACTER_TOKEN]: insertCharacters,\n [Tokenizer.NULL_CHARACTER_TOKEN]: insertCharacters,\n [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: insertCharacters,\n [Tokenizer.COMMENT_TOKEN]: ignoreToken,\n [Tokenizer.DOCTYPE_TOKEN]: ignoreToken,\n [Tokenizer.START_TAG_TOKEN]: ignoreToken,\n [Tokenizer.END_TAG_TOKEN]: endTagInText,\n [Tokenizer.EOF_TOKEN]: eofInText\n },\n [IN_TABLE_MODE]: {\n [Tokenizer.CHARACTER_TOKEN]: characterInTable,\n [Tokenizer.NULL_CHARACTER_TOKEN]: characterInTable,\n [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: characterInTable,\n [Tokenizer.COMMENT_TOKEN]: appendComment,\n [Tokenizer.DOCTYPE_TOKEN]: ignoreToken,\n [Tokenizer.START_TAG_TOKEN]: startTagInTable,\n [Tokenizer.END_TAG_TOKEN]: endTagInTable,\n [Tokenizer.EOF_TOKEN]: eofInBody\n },\n [IN_TABLE_TEXT_MODE]: {\n [Tokenizer.CHARACTER_TOKEN]: characterInTableText,\n [Tokenizer.NULL_CHARACTER_TOKEN]: ignoreToken,\n [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: whitespaceCharacterInTableText,\n [Tokenizer.COMMENT_TOKEN]: tokenInTableText,\n [Tokenizer.DOCTYPE_TOKEN]: tokenInTableText,\n [Tokenizer.START_TAG_TOKEN]: tokenInTableText,\n [Tokenizer.END_TAG_TOKEN]: tokenInTableText,\n [Tokenizer.EOF_TOKEN]: tokenInTableText\n },\n [IN_CAPTION_MODE]: {\n [Tokenizer.CHARACTER_TOKEN]: characterInBody,\n [Tokenizer.NULL_CHARACTER_TOKEN]: ignoreToken,\n [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: whitespaceCharacterInBody,\n [Tokenizer.COMMENT_TOKEN]: appendComment,\n [Tokenizer.DOCTYPE_TOKEN]: ignoreToken,\n [Tokenizer.START_TAG_TOKEN]: startTagInCaption,\n [Tokenizer.END_TAG_TOKEN]: endTagInCaption,\n [Tokenizer.EOF_TOKEN]: eofInBody\n },\n [IN_COLUMN_GROUP_MODE]: {\n [Tokenizer.CHARACTER_TOKEN]: tokenInColumnGroup,\n [Tokenizer.NULL_CHARACTER_TOKEN]: tokenInColumnGroup,\n [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: insertCharacters,\n [Tokenizer.COMMENT_TOKEN]: appendComment,\n [Tokenizer.DOCTYPE_TOKEN]: ignoreToken,\n [Tokenizer.START_TAG_TOKEN]: startTagInColumnGroup,\n [Tokenizer.END_TAG_TOKEN]: endTagInColumnGroup,\n [Tokenizer.EOF_TOKEN]: eofInBody\n },\n [IN_TABLE_BODY_MODE]: {\n [Tokenizer.CHARACTER_TOKEN]: characterInTable,\n [Tokenizer.NULL_CHARACTER_TOKEN]: characterInTable,\n [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: characterInTable,\n [Tokenizer.COMMENT_TOKEN]: appendComment,\n [Tokenizer.DOCTYPE_TOKEN]: ignoreToken,\n [Tokenizer.START_TAG_TOKEN]: startTagInTableBody,\n [Tokenizer.END_TAG_TOKEN]: endTagInTableBody,\n [Tokenizer.EOF_TOKEN]: eofInBody\n },\n [IN_ROW_MODE]: {\n [Tokenizer.CHARACTER_TOKEN]: characterInTable,\n [Tokenizer.NULL_CHARACTER_TOKEN]: characterInTable,\n [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: characterInTable,\n [Tokenizer.COMMENT_TOKEN]: appendComment,\n [Tokenizer.DOCTYPE_TOKEN]: ignoreToken,\n [Tokenizer.START_TAG_TOKEN]: startTagInRow,\n [Tokenizer.END_TAG_TOKEN]: endTagInRow,\n [Tokenizer.EOF_TOKEN]: eofInBody\n },\n [IN_CELL_MODE]: {\n [Tokenizer.CHARACTER_TOKEN]: characterInBody,\n [Tokenizer.NULL_CHARACTER_TOKEN]: ignoreToken,\n [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: whitespaceCharacterInBody,\n [Tokenizer.COMMENT_TOKEN]: appendComment,\n [Tokenizer.DOCTYPE_TOKEN]: ignoreToken,\n [Tokenizer.START_TAG_TOKEN]: startTagInCell,\n [Tokenizer.END_TAG_TOKEN]: endTagInCell,\n [Tokenizer.EOF_TOKEN]: eofInBody\n },\n [IN_SELECT_MODE]: {\n [Tokenizer.CHARACTER_TOKEN]: insertCharacters,\n [Tokenizer.NULL_CHARACTER_TOKEN]: ignoreToken,\n [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: insertCharacters,\n [Tokenizer.COMMENT_TOKEN]: appendComment,\n [Tokenizer.DOCTYPE_TOKEN]: ignoreToken,\n [Tokenizer.START_TAG_TOKEN]: startTagInSelect,\n [Tokenizer.END_TAG_TOKEN]: endTagInSelect,\n [Tokenizer.EOF_TOKEN]: eofInBody\n },\n [IN_SELECT_IN_TABLE_MODE]: {\n [Tokenizer.CHARACTER_TOKEN]: insertCharacters,\n [Tokenizer.NULL_CHARACTER_TOKEN]: ignoreToken,\n [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: insertCharacters,\n [Tokenizer.COMMENT_TOKEN]: appendComment,\n [Tokenizer.DOCTYPE_TOKEN]: ignoreToken,\n [Tokenizer.START_TAG_TOKEN]: startTagInSelectInTable,\n [Tokenizer.END_TAG_TOKEN]: endTagInSelectInTable,\n [Tokenizer.EOF_TOKEN]: eofInBody\n },\n [IN_TEMPLATE_MODE]: {\n [Tokenizer.CHARACTER_TOKEN]: characterInBody,\n [Tokenizer.NULL_CHARACTER_TOKEN]: ignoreToken,\n [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: whitespaceCharacterInBody,\n [Tokenizer.COMMENT_TOKEN]: appendComment,\n [Tokenizer.DOCTYPE_TOKEN]: ignoreToken,\n [Tokenizer.START_TAG_TOKEN]: startTagInTemplate,\n [Tokenizer.END_TAG_TOKEN]: endTagInTemplate,\n [Tokenizer.EOF_TOKEN]: eofInTemplate\n },\n [AFTER_BODY_MODE]: {\n [Tokenizer.CHARACTER_TOKEN]: tokenAfterBody,\n [Tokenizer.NULL_CHARACTER_TOKEN]: tokenAfterBody,\n [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: whitespaceCharacterInBody,\n [Tokenizer.COMMENT_TOKEN]: appendCommentToRootHtmlElement,\n [Tokenizer.DOCTYPE_TOKEN]: ignoreToken,\n [Tokenizer.START_TAG_TOKEN]: startTagAfterBody,\n [Tokenizer.END_TAG_TOKEN]: endTagAfterBody,\n [Tokenizer.EOF_TOKEN]: stopParsing\n },\n [IN_FRAMESET_MODE]: {\n [Tokenizer.CHARACTER_TOKEN]: ignoreToken,\n [Tokenizer.NULL_CHARACTER_TOKEN]: ignoreToken,\n [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: insertCharacters,\n [Tokenizer.COMMENT_TOKEN]: appendComment,\n [Tokenizer.DOCTYPE_TOKEN]: ignoreToken,\n [Tokenizer.START_TAG_TOKEN]: startTagInFrameset,\n [Tokenizer.END_TAG_TOKEN]: endTagInFrameset,\n [Tokenizer.EOF_TOKEN]: stopParsing\n },\n [AFTER_FRAMESET_MODE]: {\n [Tokenizer.CHARACTER_TOKEN]: ignoreToken,\n [Tokenizer.NULL_CHARACTER_TOKEN]: ignoreToken,\n [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: insertCharacters,\n [Tokenizer.COMMENT_TOKEN]: appendComment,\n [Tokenizer.DOCTYPE_TOKEN]: ignoreToken,\n [Tokenizer.START_TAG_TOKEN]: startTagAfterFrameset,\n [Tokenizer.END_TAG_TOKEN]: endTagAfterFrameset,\n [Tokenizer.EOF_TOKEN]: stopParsing\n },\n [AFTER_AFTER_BODY_MODE]: {\n [Tokenizer.CHARACTER_TOKEN]: tokenAfterAfterBody,\n [Tokenizer.NULL_CHARACTER_TOKEN]: tokenAfterAfterBody,\n [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: whitespaceCharacterInBody,\n [Tokenizer.COMMENT_TOKEN]: appendCommentToDocument,\n [Tokenizer.DOCTYPE_TOKEN]: ignoreToken,\n [Tokenizer.START_TAG_TOKEN]: startTagAfterAfterBody,\n [Tokenizer.END_TAG_TOKEN]: tokenAfterAfterBody,\n [Tokenizer.EOF_TOKEN]: stopParsing\n },\n [AFTER_AFTER_FRAMESET_MODE]: {\n [Tokenizer.CHARACTER_TOKEN]: ignoreToken,\n [Tokenizer.NULL_CHARACTER_TOKEN]: ignoreToken,\n [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: whitespaceCharacterInBody,\n [Tokenizer.COMMENT_TOKEN]: appendCommentToDocument,\n [Tokenizer.DOCTYPE_TOKEN]: ignoreToken,\n [Tokenizer.START_TAG_TOKEN]: startTagAfterAfterFrameset,\n [Tokenizer.END_TAG_TOKEN]: ignoreToken,\n [Tokenizer.EOF_TOKEN]: stopParsing\n }\n};\n\n//Parser\nclass Parser {\n constructor(options) {\n this.options = mergeOptions(DEFAULT_OPTIONS, options);\n\n this.treeAdapter = this.options.treeAdapter;\n this.pendingScript = null;\n\n if (this.options.sourceCodeLocationInfo) {\n Mixin.install(this, LocationInfoParserMixin);\n }\n\n if (this.options.onParseError) {\n Mixin.install(this, ErrorReportingParserMixin, { onParseError: this.options.onParseError });\n }\n }\n\n // API\n parse(html) {\n const document = this.treeAdapter.createDocument();\n\n this._bootstrap(document, null);\n this.tokenizer.write(html, true);\n this._runParsingLoop(null);\n\n return document;\n }\n\n parseFragment(html, fragmentContext) {\n //NOTE: use <template> element as a fragment context if context element was not provided,\n //so we will parse in \"forgiving\" manner\n if (!fragmentContext) {\n fragmentContext = this.treeAdapter.createElement($.TEMPLATE, NS.HTML, []);\n }\n\n //NOTE: create fake element which will be used as 'document' for fragment parsing.\n //This is important for jsdom there 'document' can't be recreated, therefore\n //fragment parsing causes messing of the main `document`.\n const documentMock = this.treeAdapter.createElement('documentmock', NS.HTML, []);\n\n this._bootstrap(documentMock, fragmentContext);\n\n if (this.treeAdapter.getTagName(fragmentContext) === $.TEMPLATE) {\n this._pushTmplInsertionMode(IN_TEMPLATE_MODE);\n }\n\n this._initTokenizerForFragmentParsing();\n this._insertFakeRootElement();\n this._resetInsertionMode();\n this._findFormInFragmentContext();\n this.tokenizer.write(html, true);\n this._runParsingLoop(null);\n\n const rootElement = this.treeAdapter.getFirstChild(documentMock);\n const fragment = this.treeAdapter.createDocumentFragment();\n\n this._adoptNodes(rootElement, fragment);\n\n return fragment;\n }\n\n //Bootstrap parser\n _bootstrap(document, fragmentContext) {\n this.tokenizer = new Tokenizer(this.options);\n\n this.stopped = false;\n\n this.insertionMode = INITIAL_MODE;\n this.originalInsertionMode = '';\n\n this.document = document;\n this.fragmentContext = fragmentContext;\n\n this.headElement = null;\n this.formElement = null;\n\n this.openElements = new OpenElementStack(this.document, this.treeAdapter);\n this.activeFormattingElements = new FormattingElementList(this.treeAdapter);\n\n this.tmplInsertionModeStack = [];\n this.tmplInsertionModeStackTop = -1;\n this.currentTmplInsertionMode = null;\n\n this.pendingCharacterTokens = [];\n this.hasNonWhitespacePendingCharacterToken = false;\n\n this.framesetOk = true;\n this.skipNextNewLine = false;\n this.fosterParentingEnabled = false;\n }\n\n //Errors\n _err() {\n // NOTE: err reporting is noop by default. Enabled by mixin.\n }\n\n //Parsing loop\n _runParsingLoop(scriptHandler) {\n while (!this.stopped) {\n this._setupTokenizerCDATAMode();\n\n const token = this.tokenizer.getNextToken();\n\n if (token.type === Tokenizer.HIBERNATION_TOKEN) {\n break;\n }\n\n if (this.skipNextNewLine) {\n this.skipNextNewLine = false;\n\n if (token.type === Tokenizer.WHITESPACE_CHARACTER_TOKEN && token.chars[0] === '\\n') {\n if (token.chars.length === 1) {\n continue;\n }\n\n token.chars = token.chars.substr(1);\n }\n }\n\n this._processInputToken(token);\n\n if (scriptHandler && this.pendingScript) {\n break;\n }\n }\n }\n\n runParsingLoopForCurrentChunk(writeCallback, scriptHandler) {\n this._runParsingLoop(scriptHandler);\n\n if (scriptHandler && this.pendingScript) {\n const script = this.pendingScript;\n\n this.pendingScript = null;\n\n scriptHandler(script);\n\n return;\n }\n\n if (writeCallback) {\n writeCallback();\n }\n }\n\n //Text parsing\n _setupTokenizerCDATAMode() {\n const current = this._getAdjustedCurrentElement();\n\n this.tokenizer.allowCDATA =\n current &&\n current !== this.document &&\n this.treeAdapter.getNamespaceURI(current) !== NS.HTML &&\n !this._isIntegrationPoint(current);\n }\n\n _switchToTextParsing(currentToken, nextTokenizerState) {\n this._insertElement(currentToken, NS.HTML);\n this.tokenizer.state = nextTokenizerState;\n this.originalInsertionMode = this.insertionMode;\n this.insertionMode = TEXT_MODE;\n }\n\n switchToPlaintextParsing() {\n this.insertionMode = TEXT_MODE;\n this.originalInsertionMode = IN_BODY_MODE;\n this.tokenizer.state = Tokenizer.MODE.PLAINTEXT;\n }\n\n //Fragment parsing\n _getAdjustedCurrentElement() {\n return this.openElements.stackTop === 0 && this.fragmentContext\n ? this.fragmentContext\n : this.openElements.current;\n }\n\n _findFormInFragmentContext() {\n let node = this.fragmentContext;\n\n do {\n if (this.treeAdapter.getTagName(node) === $.FORM) {\n this.formElement = node;\n break;\n }\n\n node = this.treeAdapter.getParentNode(node);\n } while (node);\n }\n\n _initTokenizerForFragmentParsing() {\n if (this.treeAdapter.getNamespaceURI(this.fragmentContext) === NS.HTML) {\n const tn = this.treeAdapter.getTagName(this.fragmentContext);\n\n if (tn === $.TITLE || tn === $.TEXTAREA) {\n this.tokenizer.state = Tokenizer.MODE.RCDATA;\n } else if (\n tn === $.STYLE ||\n tn === $.XMP ||\n tn === $.IFRAME ||\n tn === $.NOEMBED ||\n tn === $.NOFRAMES ||\n tn === $.NOSCRIPT\n ) {\n this.tokenizer.state = Tokenizer.MODE.RAWTEXT;\n } else if (tn === $.SCRIPT) {\n this.tokenizer.state = Tokenizer.MODE.SCRIPT_DATA;\n } else if (tn === $.PLAINTEXT) {\n this.tokenizer.state = Tokenizer.MODE.PLAINTEXT;\n }\n }\n }\n\n //Tree mutation\n _setDocumentType(token) {\n const name = token.name || '';\n const publicId = token.publicId || '';\n const systemId = token.systemId || '';\n\n this.treeAdapter.setDocumentType(this.document, name, publicId, systemId);\n }\n\n _attachElementToTree(element) {\n if (this._shouldFosterParentOnInsertion()) {\n this._fosterParentElement(element);\n } else {\n const parent = this.openElements.currentTmplContent || this.openElements.current;\n\n this.treeAdapter.appendChild(parent, element);\n }\n }\n\n _appendElement(token, namespaceURI) {\n const element = this.treeAdapter.createElement(token.tagName, namespaceURI, token.attrs);\n\n this._attachElementToTree(element);\n }\n\n _insertElement(token, namespaceURI) {\n const element = this.treeAdapter.createElement(token.tagName, namespaceURI, token.attrs);\n\n this._attachElementToTree(element);\n this.openElements.push(element);\n }\n\n _insertFakeElement(tagName) {\n const element = this.treeAdapter.createElement(tagName, NS.HTML, []);\n\n this._attachElementToTree(element);\n this.openElements.push(element);\n }\n\n _insertTemplate(token) {\n const tmpl = this.treeAdapter.createElement(token.tagName, NS.HTML, token.attrs);\n const content = this.treeAdapter.createDocumentFragment();\n\n this.treeAdapter.setTemplateContent(tmpl, content);\n this._attachElementToTree(tmpl);\n this.openElements.push(tmpl);\n }\n\n _insertFakeRootElement() {\n const element = this.treeAdapter.createElement($.HTML, NS.HTML, []);\n\n this.treeAdapter.appendChild(this.openElements.current, element);\n this.openElements.push(element);\n }\n\n _appendCommentNode(token, parent) {\n const commentNode = this.treeAdapter.createCommentNode(token.data);\n\n this.treeAdapter.appendChild(parent, commentNode);\n }\n\n _insertCharacters(token) {\n if (this._shouldFosterParentOnInsertion()) {\n this._fosterParentText(token.chars);\n } else {\n const parent = this.openElements.currentTmplContent || this.openElements.current;\n\n this.treeAdapter.insertText(parent, token.chars);\n }\n }\n\n _adoptNodes(donor, recipient) {\n for (let child = this.treeAdapter.getFirstChild(donor); child; child = this.treeAdapter.getFirstChild(donor)) {\n this.treeAdapter.detachNode(child);\n this.treeAdapter.appendChild(recipient, child);\n }\n }\n\n //Token processing\n _shouldProcessTokenInForeignContent(token) {\n const current = this._getAdjustedCurrentElement();\n\n if (!current || current === this.document) {\n return false;\n }\n\n const ns = this.treeAdapter.getNamespaceURI(current);\n\n if (ns === NS.HTML) {\n return false;\n }\n\n if (\n this.treeAdapter.getTagName(current) === $.ANNOTATION_XML &&\n ns === NS.MATHML &&\n token.type === Tokenizer.START_TAG_TOKEN &&\n token.tagName === $.SVG\n ) {\n return false;\n }\n\n const isCharacterToken =\n token.type === Tokenizer.CHARACTER_TOKEN ||\n token.type === Tokenizer.NULL_CHARACTER_TOKEN ||\n token.type === Tokenizer.WHITESPACE_CHARACTER_TOKEN;\n\n const isMathMLTextStartTag =\n token.type === Tokenizer.START_TAG_TOKEN && token.tagName !== $.MGLYPH && token.tagName !== $.MALIGNMARK;\n\n if ((isMathMLTextStartTag || isCharacterToken) && this._isIntegrationPoint(current, NS.MATHML)) {\n return false;\n }\n\n if (\n (token.type === Tokenizer.START_TAG_TOKEN || isCharacterToken) &&\n this._isIntegrationPoint(current, NS.HTML)\n ) {\n return false;\n }\n\n return token.type !== Tokenizer.EOF_TOKEN;\n }\n\n _processToken(token) {\n TOKEN_HANDLERS[this.insertionMode][token.type](this, token);\n }\n\n _processTokenInBodyMode(token) {\n TOKEN_HANDLERS[IN_BODY_MODE][token.type](this, token);\n }\n\n _processTokenInForeignContent(token) {\n if (token.type === Tokenizer.CHARACTER_TOKEN) {\n characterInForeignContent(this, token);\n } else if (token.type === Tokenizer.NULL_CHARACTER_TOKEN) {\n nullCharacterInForeignContent(this, token);\n } else if (token.type === Tokenizer.WHITESPACE_CHARACTER_TOKEN) {\n insertCharacters(this, token);\n } else if (token.type === Tokenizer.COMMENT_TOKEN) {\n appendComment(this, token);\n } else if (token.type === Tokenizer.START_TAG_TOKEN) {\n startTagInForeignContent(this, token);\n } else if (token.type === Tokenizer.END_TAG_TOKEN) {\n endTagInForeignContent(this, token);\n }\n }\n\n _processInputToken(token) {\n if (this._shouldProcessTokenInForeignContent(token)) {\n this._processTokenInForeignContent(token);\n } else {\n this._processToken(token);\n }\n\n if (token.type === Tokenizer.START_TAG_TOKEN && token.selfClosing && !token.ackSelfClosing) {\n this._err(ERR.nonVoidHtmlElementStartTagWithTrailingSolidus);\n }\n }\n\n //Integration points\n _isIntegrationPoint(element, foreignNS) {\n const tn = this.treeAdapter.getTagName(element);\n const ns = this.treeAdapter.getNamespaceURI(element);\n const attrs = this.treeAdapter.getAttrList(element);\n\n return foreignContent.isIntegrationPoint(tn, ns, attrs, foreignNS);\n }\n\n //Active formatting elements reconstruction\n _reconstructActiveFormattingElements() {\n const listLength = this.activeFormattingElements.length;\n\n if (listLength) {\n let unopenIdx = listLength;\n let entry = null;\n\n do {\n unopenIdx--;\n entry = this.activeFormattingElements.entries[unopenIdx];\n\n if (entry.type === FormattingElementList.MARKER_ENTRY || this.openElements.contains(entry.element)) {\n unopenIdx++;\n break;\n }\n } while (unopenIdx > 0);\n\n for (let i = unopenIdx; i < listLength; i++) {\n entry = this.activeFormattingElements.entries[i];\n this._insertElement(entry.token, this.treeAdapter.getNamespaceURI(entry.element));\n entry.element = this.openElements.current;\n }\n }\n }\n\n //Close elements\n _closeTableCell() {\n this.openElements.generateImpliedEndTags();\n this.openElements.popUntilTableCellPopped();\n this.activeFormattingElements.clearToLastMarker();\n this.insertionMode = IN_ROW_MODE;\n }\n\n _closePElement() {\n this.openElements.generateImpliedEndTagsWithExclusion($.P);\n this.openElements.popUntilTagNamePopped($.P);\n }\n\n //Insertion modes\n _resetInsertionMode() {\n for (let i = this.openElements.stackTop, last = false; i >= 0; i--) {\n let element = this.openElements.items[i];\n\n if (i === 0) {\n last = true;\n\n if (this.fragmentContext) {\n element = this.fragmentContext;\n }\n }\n\n const tn = this.treeAdapter.getTagName(element);\n const newInsertionMode = INSERTION_MODE_RESET_MAP[tn];\n\n if (newInsertionMode) {\n this.insertionMode = newInsertionMode;\n break;\n } else if (!last && (tn === $.TD || tn === $.TH)) {\n this.insertionMode = IN_CELL_MODE;\n break;\n } else if (!last && tn === $.HEAD) {\n this.insertionMode = IN_HEAD_MODE;\n break;\n } else if (tn === $.SELECT) {\n this._resetInsertionModeForSelect(i);\n break;\n } else if (tn === $.TEMPLATE) {\n this.insertionMode = this.currentTmplInsertionMode;\n break;\n } else if (tn === $.HTML) {\n this.insertionMode = this.headElement ? AFTER_HEAD_MODE : BEFORE_HEAD_MODE;\n break;\n } else if (last) {\n this.insertionMode = IN_BODY_MODE;\n break;\n }\n }\n }\n\n _resetInsertionModeForSelect(selectIdx) {\n if (selectIdx > 0) {\n for (let i = selectIdx - 1; i > 0; i--) {\n const ancestor = this.openElements.items[i];\n const tn = this.treeAdapter.getTagName(ancestor);\n\n if (tn === $.TEMPLATE) {\n break;\n } else if (tn === $.TABLE) {\n this.insertionMode = IN_SELECT_IN_TABLE_MODE;\n return;\n }\n }\n }\n\n this.insertionMode = IN_SELECT_MODE;\n }\n\n _pushTmplInsertionMode(mode) {\n this.tmplInsertionModeStack.push(mode);\n this.tmplInsertionModeStackTop++;\n this.currentTmplInsertionMode = mode;\n }\n\n _popTmplInsertionMode() {\n this.tmplInsertionModeStack.pop();\n this.tmplInsertionModeStackTop--;\n this.currentTmplInsertionMode = this.tmplInsertionModeStack[this.tmplInsertionModeStackTop];\n }\n\n //Foster parenting\n _isElementCausesFosterParenting(element) {\n const tn = this.treeAdapter.getTagName(element);\n\n return tn === $.TABLE || tn === $.TBODY || tn === $.TFOOT || tn === $.THEAD || tn === $.TR;\n }\n\n _shouldFosterParentOnInsertion() {\n return this.fosterParentingEnabled && this._isElementCausesFosterParenting(this.openElements.current);\n }\n\n _findFosterParentingLocation() {\n const location = {\n parent: null,\n beforeElement: null\n };\n\n for (let i = this.openElements.stackTop; i >= 0; i--) {\n const openElement = this.openElements.items[i];\n const tn = this.treeAdapter.getTagName(openElement);\n const ns = this.treeAdapter.getNamespaceURI(openElement);\n\n if (tn === $.TEMPLATE && ns === NS.HTML) {\n location.parent = this.treeAdapter.getTemplateContent(openElement);\n break;\n } else if (tn === $.TABLE) {\n location.parent = this.treeAdapter.getParentNode(openElement);\n\n if (location.parent) {\n location.beforeElement = openElement;\n } else {\n location.parent = this.openElements.items[i - 1];\n }\n\n break;\n }\n }\n\n if (!location.parent) {\n location.parent = this.openElements.items[0];\n }\n\n return location;\n }\n\n _fosterParentElement(element) {\n const location = this._findFosterParentingLocation();\n\n if (location.beforeElement) {\n this.treeAdapter.insertBefore(location.parent, element, location.beforeElement);\n } else {\n this.treeAdapter.appendChild(location.parent, element);\n }\n }\n\n _fosterParentText(chars) {\n const location = this._findFosterParentingLocation();\n\n if (location.beforeElement) {\n this.treeAdapter.insertTextBefore(location.parent, chars, location.beforeElement);\n } else {\n this.treeAdapter.insertText(location.parent, chars);\n }\n }\n\n //Special elements\n _isSpecialElement(element) {\n const tn = this.treeAdapter.getTagName(element);\n const ns = this.treeAdapter.getNamespaceURI(element);\n\n return HTML.SPECIAL_ELEMENTS[ns][tn];\n }\n}\n\nmodule.exports = Parser;\n\n//Adoption agency algorithm\n//(see: http://www.whatwg.org/specs/web-apps/current-work/multipage/tree-construction.html#adoptionAgency)\n//------------------------------------------------------------------\n\n//Steps 5-8 of the algorithm\nfunction aaObtainFormattingElementEntry(p, token) {\n let formattingElementEntry = p.activeFormattingElements.getElementEntryInScopeWithTagName(token.tagName);\n\n if (formattingElementEntry) {\n if (!p.openElements.contains(formattingElementEntry.element)) {\n p.activeFormattingElements.removeEntry(formattingElementEntry);\n formattingElementEntry = null;\n } else if (!p.openElements.hasInScope(token.tagName)) {\n formattingElementEntry = null;\n }\n } else {\n genericEndTagInBody(p, token);\n }\n\n return formattingElementEntry;\n}\n\n//Steps 9 and 10 of the algorithm\nfunction aaObtainFurthestBlock(p, formattingElementEntry) {\n let furthestBlock = null;\n\n for (let i = p.openElements.stackTop; i >= 0; i--) {\n const element = p.openElements.items[i];\n\n if (element === formattingElementEntry.element) {\n break;\n }\n\n if (p._isSpecialElement(element)) {\n furthestBlock = element;\n }\n }\n\n if (!furthestBlock) {\n p.openElements.popUntilElementPopped(formattingElementEntry.element);\n p.activeFormattingElements.removeEntry(formattingElementEntry);\n }\n\n return furthestBlock;\n}\n\n//Step 13 of the algorithm\nfunction aaInnerLoop(p, furthestBlock, formattingElement) {\n let lastElement = furthestBlock;\n let nextElement = p.openElements.getCommonAncestor(furthestBlock);\n\n for (let i = 0, element = nextElement; element !== formattingElement; i++, element = nextElement) {\n //NOTE: store next element for the next loop iteration (it may be deleted from the stack by step 9.5)\n nextElement = p.openElements.getCommonAncestor(element);\n\n const elementEntry = p.activeFormattingElements.getElementEntry(element);\n const counterOverflow = elementEntry && i >= AA_INNER_LOOP_ITER;\n const shouldRemoveFromOpenElements = !elementEntry || counterOverflow;\n\n if (shouldRemoveFromOpenElements) {\n if (counterOverflow) {\n p.activeFormattingElements.removeEntry(elementEntry);\n }\n\n p.openElements.remove(element);\n } else {\n element = aaRecreateElementFromEntry(p, elementEntry);\n\n if (lastElement === furthestBlock) {\n p.activeFormattingElements.bookmark = elementEntry;\n }\n\n p.treeAdapter.detachNode(lastElement);\n p.treeAdapter.appendChild(element, lastElement);\n lastElement = element;\n }\n }\n\n return lastElement;\n}\n\n//Step 13.7 of the algorithm\nfunction aaRecreateElementFromEntry(p, elementEntry) {\n const ns = p.treeAdapter.getNamespaceURI(elementEntry.element);\n const newElement = p.treeAdapter.createElement(elementEntry.token.tagName, ns, elementEntry.token.attrs);\n\n p.openElements.replace(elementEntry.element, newElement);\n elementEntry.element = newElement;\n\n return newElement;\n}\n\n//Step 14 of the algorithm\nfunction aaInsertLastNodeInCommonAncestor(p, commonAncestor, lastElement) {\n if (p._isElementCausesFosterParenting(commonAncestor)) {\n p._fosterParentElement(lastElement);\n } else {\n const tn = p.treeAdapter.getTagName(commonAncestor);\n const ns = p.treeAdapter.getNamespaceURI(commonAncestor);\n\n if (tn === $.TEMPLATE && ns === NS.HTML) {\n commonAncestor = p.treeAdapter.getTemplateContent(commonAncestor);\n }\n\n p.treeAdapter.appendChild(commonAncestor, lastElement);\n }\n}\n\n//Steps 15-19 of the algorithm\nfunction aaReplaceFormattingElement(p, furthestBlock, formattingElementEntry) {\n const ns = p.treeAdapter.getNamespaceURI(formattingElementEntry.element);\n const token = formattingElementEntry.token;\n const newElement = p.treeAdapter.createElement(token.tagName, ns, token.attrs);\n\n p._adoptNodes(furthestBlock, newElement);\n p.treeAdapter.appendChild(furthestBlock, newElement);\n\n p.activeFormattingElements.insertElementAfterBookmark(newElement, formattingElementEntry.token);\n p.activeFormattingElements.removeEntry(formattingElementEntry);\n\n p.openElements.remove(formattingElementEntry.element);\n p.openElements.insertAfter(furthestBlock, newElement);\n}\n\n//Algorithm entry point\nfunction callAdoptionAgency(p, token) {\n let formattingElementEntry;\n\n for (let i = 0; i < AA_OUTER_LOOP_ITER; i++) {\n formattingElementEntry = aaObtainFormattingElementEntry(p, token, formattingElementEntry);\n\n if (!formattingElementEntry) {\n break;\n }\n\n const furthestBlock = aaObtainFurthestBlock(p, formattingElementEntry);\n\n if (!furthestBlock) {\n break;\n }\n\n p.activeFormattingElements.bookmark = formattingElementEntry;\n\n const lastElement = aaInnerLoop(p, furthestBlock, formattingElementEntry.element);\n const commonAncestor = p.openElements.getCommonAncestor(formattingElementEntry.element);\n\n p.treeAdapter.detachNode(lastElement);\n aaInsertLastNodeInCommonAncestor(p, commonAncestor, lastElement);\n aaReplaceFormattingElement(p, furthestBlock, formattingElementEntry);\n }\n}\n\n//Generic token handlers\n//------------------------------------------------------------------\nfunction ignoreToken() {\n //NOTE: do nothing =)\n}\n\nfunction misplacedDoctype(p) {\n p._err(ERR.misplacedDoctype);\n}\n\nfunction appendComment(p, token) {\n p._appendCommentNode(token, p.openElements.currentTmplContent || p.openElements.current);\n}\n\nfunction appendCommentToRootHtmlElement(p, token) {\n p._appendCommentNode(token, p.openElements.items[0]);\n}\n\nfunction appendCommentToDocument(p, token) {\n p._appendCommentNode(token, p.document);\n}\n\nfunction insertCharacters(p, token) {\n p._insertCharacters(token);\n}\n\nfunction stopParsing(p) {\n p.stopped = true;\n}\n\n// The \"initial\" insertion mode\n//------------------------------------------------------------------\nfunction doctypeInInitialMode(p, token) {\n p._setDocumentType(token);\n\n const mode = token.forceQuirks ? HTML.DOCUMENT_MODE.QUIRKS : doctype.getDocumentMode(token);\n\n if (!doctype.isConforming(token)) {\n p._err(ERR.nonConformingDoctype);\n }\n\n p.treeAdapter.setDocumentMode(p.document, mode);\n\n p.insertionMode = BEFORE_HTML_MODE;\n}\n\nfunction tokenInInitialMode(p, token) {\n p._err(ERR.missingDoctype, { beforeToken: true });\n p.treeAdapter.setDocumentMode(p.document, HTML.DOCUMENT_MODE.QUIRKS);\n p.insertionMode = BEFORE_HTML_MODE;\n p._processToken(token);\n}\n\n// The \"before html\" insertion mode\n//------------------------------------------------------------------\nfunction startTagBeforeHtml(p, token) {\n if (token.tagName === $.HTML) {\n p._insertElement(token, NS.HTML);\n p.insertionMode = BEFORE_HEAD_MODE;\n } else {\n tokenBeforeHtml(p, token);\n }\n}\n\nfunction endTagBeforeHtml(p, token) {\n const tn = token.tagName;\n\n if (tn === $.HTML || tn === $.HEAD || tn === $.BODY || tn === $.BR) {\n tokenBeforeHtml(p, token);\n }\n}\n\nfunction tokenBeforeHtml(p, token) {\n p._insertFakeRootElement();\n p.insertionMode = BEFORE_HEAD_MODE;\n p._processToken(token);\n}\n\n// The \"before head\" insertion mode\n//------------------------------------------------------------------\nfunction startTagBeforeHead(p, token) {\n const tn = token.tagName;\n\n if (tn === $.HTML) {\n startTagInBody(p, token);\n } else if (tn === $.HEAD) {\n p._insertElement(token, NS.HTML);\n p.headElement = p.openElements.current;\n p.insertionMode = IN_HEAD_MODE;\n } else {\n tokenBeforeHead(p, token);\n }\n}\n\nfunction endTagBeforeHead(p, token) {\n const tn = token.tagName;\n\n if (tn === $.HEAD || tn === $.BODY || tn === $.HTML || tn === $.BR) {\n tokenBeforeHead(p, token);\n } else {\n p._err(ERR.endTagWithoutMatchingOpenElement);\n }\n}\n\nfunction tokenBeforeHead(p, token) {\n p._insertFakeElement($.HEAD);\n p.headElement = p.openElements.current;\n p.insertionMode = IN_HEAD_MODE;\n p._processToken(token);\n}\n\n// The \"in head\" insertion mode\n//------------------------------------------------------------------\nfunction startTagInHead(p, token) {\n const tn = token.tagName;\n\n if (tn === $.HTML) {\n startTagInBody(p, token);\n } else if (tn === $.BASE || tn === $.BASEFONT || tn === $.BGSOUND || tn === $.LINK || tn === $.META) {\n p._appendElement(token, NS.HTML);\n token.ackSelfClosing = true;\n } else if (tn === $.TITLE) {\n p._switchToTextParsing(token, Tokenizer.MODE.RCDATA);\n } else if (tn === $.NOSCRIPT) {\n if (p.options.scriptingEnabled) {\n p._switchToTextParsing(token, Tokenizer.MODE.RAWTEXT);\n } else {\n p._insertElement(token, NS.HTML);\n p.insertionMode = IN_HEAD_NO_SCRIPT_MODE;\n }\n } else if (tn === $.NOFRAMES || tn === $.STYLE) {\n p._switchToTextParsing(token, Tokenizer.MODE.RAWTEXT);\n } else if (tn === $.SCRIPT) {\n p._switchToTextParsing(token, Tokenizer.MODE.SCRIPT_DATA);\n } else if (tn === $.TEMPLATE) {\n p._insertTemplate(token, NS.HTML);\n p.activeFormattingElements.insertMarker();\n p.framesetOk = false;\n p.insertionMode = IN_TEMPLATE_MODE;\n p._pushTmplInsertionMode(IN_TEMPLATE_MODE);\n } else if (tn === $.HEAD) {\n p._err(ERR.misplacedStartTagForHeadElement);\n } else {\n tokenInHead(p, token);\n }\n}\n\nfunction endTagInHead(p, token) {\n const tn = token.tagName;\n\n if (tn === $.HEAD) {\n p.openElements.pop();\n p.insertionMode = AFTER_HEAD_MODE;\n } else if (tn === $.BODY || tn === $.BR || tn === $.HTML) {\n tokenInHead(p, token);\n } else if (tn === $.TEMPLATE) {\n if (p.openElements.tmplCount > 0) {\n p.openElements.generateImpliedEndTagsThoroughly();\n\n if (p.openElements.currentTagName !== $.TEMPLATE) {\n p._err(ERR.closingOfElementWithOpenChildElements);\n }\n\n p.openElements.popUntilTagNamePopped($.TEMPLATE);\n p.activeFormattingElements.clearToLastMarker();\n p._popTmplInsertionMode();\n p._resetInsertionMode();\n } else {\n p._err(ERR.endTagWithoutMatchingOpenElement);\n }\n } else {\n p._err(ERR.endTagWithoutMatchingOpenElement);\n }\n}\n\nfunction tokenInHead(p, token) {\n p.openElements.pop();\n p.insertionMode = AFTER_HEAD_MODE;\n p._processToken(token);\n}\n\n// The \"in head no script\" insertion mode\n//------------------------------------------------------------------\nfunction startTagInHeadNoScript(p, token) {\n const tn = token.tagName;\n\n if (tn === $.HTML) {\n startTagInBody(p, token);\n } else if (\n tn === $.BASEFONT ||\n tn === $.BGSOUND ||\n tn === $.HEAD ||\n tn === $.LINK ||\n tn === $.META ||\n tn === $.NOFRAMES ||\n tn === $.STYLE\n ) {\n startTagInHead(p, token);\n } else if (tn === $.NOSCRIPT) {\n p._err(ERR.nestedNoscriptInHead);\n } else {\n tokenInHeadNoScript(p, token);\n }\n}\n\nfunction endTagInHeadNoScript(p, token) {\n const tn = token.tagName;\n\n if (tn === $.NOSCRIPT) {\n p.openElements.pop();\n p.insertionMode = IN_HEAD_MODE;\n } else if (tn === $.BR) {\n tokenInHeadNoScript(p, token);\n } else {\n p._err(ERR.endTagWithoutMatchingOpenElement);\n }\n}\n\nfunction tokenInHeadNoScript(p, token) {\n const errCode =\n token.type === Tokenizer.EOF_TOKEN ? ERR.openElementsLeftAfterEof : ERR.disallowedContentInNoscriptInHead;\n\n p._err(errCode);\n p.openElements.pop();\n p.insertionMode = IN_HEAD_MODE;\n p._processToken(token);\n}\n\n// The \"after head\" insertion mode\n//------------------------------------------------------------------\nfunction startTagAfterHead(p, token) {\n const tn = token.tagName;\n\n if (tn === $.HTML) {\n startTagInBody(p, token);\n } else if (tn === $.BODY) {\n p._insertElement(token, NS.HTML);\n p.framesetOk = false;\n p.insertionMode = IN_BODY_MODE;\n } else if (tn === $.FRAMESET) {\n p._insertElement(token, NS.HTML);\n p.insertionMode = IN_FRAMESET_MODE;\n } else if (\n tn === $.BASE ||\n tn === $.BASEFONT ||\n tn === $.BGSOUND ||\n tn === $.LINK ||\n tn === $.META ||\n tn === $.NOFRAMES ||\n tn === $.SCRIPT ||\n tn === $.STYLE ||\n tn === $.TEMPLATE ||\n tn === $.TITLE\n ) {\n p._err(ERR.abandonedHeadElementChild);\n p.openElements.push(p.headElement);\n startTagInHead(p, token);\n p.openElements.remove(p.headElement);\n } else if (tn === $.HEAD) {\n p._err(ERR.misplacedStartTagForHeadElement);\n } else {\n tokenAfterHead(p, token);\n }\n}\n\nfunction endTagAfterHead(p, token) {\n const tn = token.tagName;\n\n if (tn === $.BODY || tn === $.HTML || tn === $.BR) {\n tokenAfterHead(p, token);\n } else if (tn === $.TEMPLATE) {\n endTagInHead(p, token);\n } else {\n p._err(ERR.endTagWithoutMatchingOpenElement);\n }\n}\n\nfunction tokenAfterHead(p, token) {\n p._insertFakeElement($.BODY);\n p.insertionMode = IN_BODY_MODE;\n p._processToken(token);\n}\n\n// The \"in body\" insertion mode\n//------------------------------------------------------------------\nfunction whitespaceCharacterInBody(p, token) {\n p._reconstructActiveFormattingElements();\n p._insertCharacters(token);\n}\n\nfunction characterInBody(p, token) {\n p._reconstructActiveFormattingElements();\n p._insertCharacters(token);\n p.framesetOk = false;\n}\n\nfunction htmlStartTagInBody(p, token) {\n if (p.openElements.tmplCount === 0) {\n p.treeAdapter.adoptAttributes(p.openElements.items[0], token.attrs);\n }\n}\n\nfunction bodyStartTagInBody(p, token) {\n const bodyElement = p.openElements.tryPeekProperlyNestedBodyElement();\n\n if (bodyElement && p.openElements.tmplCount === 0) {\n p.framesetOk = false;\n p.treeAdapter.adoptAttributes(bodyElement, token.attrs);\n }\n}\n\nfunction framesetStartTagInBody(p, token) {\n const bodyElement = p.openElements.tryPeekProperlyNestedBodyElement();\n\n if (p.framesetOk && bodyElement) {\n p.treeAdapter.detachNode(bodyElement);\n p.openElements.popAllUpToHtmlElement();\n p._insertElement(token, NS.HTML);\n p.insertionMode = IN_FRAMESET_MODE;\n }\n}\n\nfunction addressStartTagInBody(p, token) {\n if (p.openElements.hasInButtonScope($.P)) {\n p._closePElement();\n }\n\n p._insertElement(token, NS.HTML);\n}\n\nfunction numberedHeaderStartTagInBody(p, token) {\n if (p.openElements.hasInButtonScope($.P)) {\n p._closePElement();\n }\n\n const tn = p.openElements.currentTagName;\n\n if (tn === $.H1 || tn === $.H2 || tn === $.H3 || tn === $.H4 || tn === $.H5 || tn === $.H6) {\n p.openElements.pop();\n }\n\n p._insertElement(token, NS.HTML);\n}\n\nfunction preStartTagInBody(p, token) {\n if (p.openElements.hasInButtonScope($.P)) {\n p._closePElement();\n }\n\n p._insertElement(token, NS.HTML);\n //NOTE: If the next token is a U+000A LINE FEED (LF) character token, then ignore that token and move\n //on to the next one. (Newlines at the start of pre blocks are ignored as an authoring convenience.)\n p.skipNextNewLine = true;\n p.framesetOk = false;\n}\n\nfunction formStartTagInBody(p, token) {\n const inTemplate = p.openElements.tmplCount > 0;\n\n if (!p.formElement || inTemplate) {\n if (p.openElements.hasInButtonScope($.P)) {\n p._closePElement();\n }\n\n p._insertElement(token, NS.HTML);\n\n if (!inTemplate) {\n p.formElement = p.openElements.current;\n }\n }\n}\n\nfunction listItemStartTagInBody(p, token) {\n p.framesetOk = false;\n\n const tn = token.tagName;\n\n for (let i = p.openElements.stackTop; i >= 0; i--) {\n const element = p.openElements.items[i];\n const elementTn = p.treeAdapter.getTagName(element);\n let closeTn = null;\n\n if (tn === $.LI && elementTn === $.LI) {\n closeTn = $.LI;\n } else if ((tn === $.DD || tn === $.DT) && (elementTn === $.DD || elementTn === $.DT)) {\n closeTn = elementTn;\n }\n\n if (closeTn) {\n p.openElements.generateImpliedEndTagsWithExclusion(closeTn);\n p.openElements.popUntilTagNamePopped(closeTn);\n break;\n }\n\n if (elementTn !== $.ADDRESS && elementTn !== $.DIV && elementTn !== $.P && p._isSpecialElement(element)) {\n break;\n }\n }\n\n if (p.openElements.hasInButtonScope($.P)) {\n p._closePElement();\n }\n\n p._insertElement(token, NS.HTML);\n}\n\nfunction plaintextStartTagInBody(p, token) {\n if (p.openElements.hasInButtonScope($.P)) {\n p._closePElement();\n }\n\n p._insertElement(token, NS.HTML);\n p.tokenizer.state = Tokenizer.MODE.PLAINTEXT;\n}\n\nfunction buttonStartTagInBody(p, token) {\n if (p.openElements.hasInScope($.BUTTON)) {\n p.openElements.generateImpliedEndTags();\n p.openElements.popUntilTagNamePopped($.BUTTON);\n }\n\n p._reconstructActiveFormattingElements();\n p._insertElement(token, NS.HTML);\n p.framesetOk = false;\n}\n\nfunction aStartTagInBody(p, token) {\n const activeElementEntry = p.activeFormattingElements.getElementEntryInScopeWithTagName($.A);\n\n if (activeElementEntry) {\n callAdoptionAgency(p, token);\n p.openElements.remove(activeElementEntry.element);\n p.activeFormattingElements.removeEntry(activeElementEntry);\n }\n\n p._reconstructActiveFormattingElements();\n p._insertElement(token, NS.HTML);\n p.activeFormattingElements.pushElement(p.openElements.current, token);\n}\n\nfunction bStartTagInBody(p, token) {\n p._reconstructActiveFormattingElements();\n p._insertElement(token, NS.HTML);\n p.activeFormattingElements.pushElement(p.openElements.current, token);\n}\n\nfunction nobrStartTagInBody(p, token) {\n p._reconstructActiveFormattingElements();\n\n if (p.openElements.hasInScope($.NOBR)) {\n callAdoptionAgency(p, token);\n p._reconstructActiveFormattingElements();\n }\n\n p._insertElement(token, NS.HTML);\n p.activeFormattingElements.pushElement(p.openElements.current, token);\n}\n\nfunction appletStartTagInBody(p, token) {\n p._reconstructActiveFormattingElements();\n p._insertElement(token, NS.HTML);\n p.activeFormattingElements.insertMarker();\n p.framesetOk = false;\n}\n\nfunction tableStartTagInBody(p, token) {\n if (\n p.treeAdapter.getDocumentMode(p.document) !== HTML.DOCUMENT_MODE.QUIRKS &&\n p.openElements.hasInButtonScope($.P)\n ) {\n p._closePElement();\n }\n\n p._insertElement(token, NS.HTML);\n p.framesetOk = false;\n p.insertionMode = IN_TABLE_MODE;\n}\n\nfunction areaStartTagInBody(p, token) {\n p._reconstructActiveFormattingElements();\n p._appendElement(token, NS.HTML);\n p.framesetOk = false;\n token.ackSelfClosing = true;\n}\n\nfunction inputStartTagInBody(p, token) {\n p._reconstructActiveFormattingElements();\n p._appendElement(token, NS.HTML);\n\n const inputType = Tokenizer.getTokenAttr(token, ATTRS.TYPE);\n\n if (!inputType || inputType.toLowerCase() !== HIDDEN_INPUT_TYPE) {\n p.framesetOk = false;\n }\n\n token.ackSelfClosing = true;\n}\n\nfunction paramStartTagInBody(p, token) {\n p._appendElement(token, NS.HTML);\n token.ackSelfClosing = true;\n}\n\nfunction hrStartTagInBody(p, token) {\n if (p.openElements.hasInButtonScope($.P)) {\n p._closePElement();\n }\n\n p._appendElement(token, NS.HTML);\n p.framesetOk = false;\n token.ackSelfClosing = true;\n}\n\nfunction imageStartTagInBody(p, token) {\n token.tagName = $.IMG;\n areaStartTagInBody(p, token);\n}\n\nfunction textareaStartTagInBody(p, token) {\n p._insertElement(token, NS.HTML);\n //NOTE: If the next token is a U+000A LINE FEED (LF) character token, then ignore that token and move\n //on to the next one. (Newlines at the start of textarea elements are ignored as an authoring convenience.)\n p.skipNextNewLine = true;\n p.tokenizer.state = Tokenizer.MODE.RCDATA;\n p.originalInsertionMode = p.insertionMode;\n p.framesetOk = false;\n p.insertionMode = TEXT_MODE;\n}\n\nfunction xmpStartTagInBody(p, token) {\n if (p.openElements.hasInButtonScope($.P)) {\n p._closePElement();\n }\n\n p._reconstructActiveFormattingElements();\n p.framesetOk = false;\n p._switchToTextParsing(token, Tokenizer.MODE.RAWTEXT);\n}\n\nfunction iframeStartTagInBody(p, token) {\n p.framesetOk = false;\n p._switchToTextParsing(token, Tokenizer.MODE.RAWTEXT);\n}\n\n//NOTE: here we assume that we always act as an user agent with enabled plugins, so we parse\n//<noembed> as a rawtext.\nfunction noembedStartTagInBody(p, token) {\n p._switchToTextParsing(token, Tokenizer.MODE.RAWTEXT);\n}\n\nfunction selectStartTagInBody(p, token) {\n p._reconstructActiveFormattingElements();\n p._insertElement(token, NS.HTML);\n p.framesetOk = false;\n\n if (\n p.insertionMode === IN_TABLE_MODE ||\n p.insertionMode === IN_CAPTION_MODE ||\n p.insertionMode === IN_TABLE_BODY_MODE ||\n p.insertionMode === IN_ROW_MODE ||\n p.insertionMode === IN_CELL_MODE\n ) {\n p.insertionMode = IN_SELECT_IN_TABLE_MODE;\n } else {\n p.insertionMode = IN_SELECT_MODE;\n }\n}\n\nfunction optgroupStartTagInBody(p, token) {\n if (p.openElements.currentTagName === $.OPTION) {\n p.openElements.pop();\n }\n\n p._reconstructActiveFormattingElements();\n p._insertElement(token, NS.HTML);\n}\n\nfunction rbStartTagInBody(p, token) {\n if (p.openElements.hasInScope($.RUBY)) {\n p.openElements.generateImpliedEndTags();\n }\n\n p._insertElement(token, NS.HTML);\n}\n\nfunction rtStartTagInBody(p, token) {\n if (p.openElements.hasInScope($.RUBY)) {\n p.openElements.generateImpliedEndTagsWithExclusion($.RTC);\n }\n\n p._insertElement(token, NS.HTML);\n}\n\nfunction menuStartTagInBody(p, token) {\n if (p.openElements.hasInButtonScope($.P)) {\n p._closePElement();\n }\n\n p._insertElement(token, NS.HTML);\n}\n\nfunction mathStartTagInBody(p, token) {\n p._reconstructActiveFormattingElements();\n\n foreignContent.adjustTokenMathMLAttrs(token);\n foreignContent.adjustTokenXMLAttrs(token);\n\n if (token.selfClosing) {\n p._appendElement(token, NS.MATHML);\n } else {\n p._insertElement(token, NS.MATHML);\n }\n\n token.ackSelfClosing = true;\n}\n\nfunction svgStartTagInBody(p, token) {\n p._reconstructActiveFormattingElements();\n\n foreignContent.adjustTokenSVGAttrs(token);\n foreignContent.adjustTokenXMLAttrs(token);\n\n if (token.selfClosing) {\n p._appendElement(token, NS.SVG);\n } else {\n p._insertElement(token, NS.SVG);\n }\n\n token.ackSelfClosing = true;\n}\n\nfunction genericStartTagInBody(p, token) {\n p._reconstructActiveFormattingElements();\n p._insertElement(token, NS.HTML);\n}\n\n//OPTIMIZATION: Integer comparisons are low-cost, so we can use very fast tag name length filters here.\n//It's faster than using dictionary.\nfunction startTagInBody(p, token) {\n const tn = token.tagName;\n\n switch (tn.length) {\n case 1:\n if (tn === $.I || tn === $.S || tn === $.B || tn === $.U) {\n bStartTagInBody(p, token);\n } else if (tn === $.P) {\n addressStartTagInBody(p, token);\n } else if (tn === $.A) {\n aStartTagInBody(p, token);\n } else {\n genericStartTagInBody(p, token);\n }\n\n break;\n\n case 2:\n if (tn === $.DL || tn === $.OL || tn === $.UL) {\n addressStartTagInBody(p, token);\n } else if (tn === $.H1 || tn === $.H2 || tn === $.H3 || tn === $.H4 || tn === $.H5 || tn === $.H6) {\n numberedHeaderStartTagInBody(p, token);\n } else if (tn === $.LI || tn === $.DD || tn === $.DT) {\n listItemStartTagInBody(p, token);\n } else if (tn === $.EM || tn === $.TT) {\n bStartTagInBody(p, token);\n } else if (tn === $.BR) {\n areaStartTagInBody(p, token);\n } else if (tn === $.HR) {\n hrStartTagInBody(p, token);\n } else if (tn === $.RB) {\n rbStartTagInBody(p, token);\n } else if (tn === $.RT || tn === $.RP) {\n rtStartTagInBody(p, token);\n } else if (tn !== $.TH && tn !== $.TD && tn !== $.TR) {\n genericStartTagInBody(p, token);\n }\n\n break;\n\n case 3:\n if (tn === $.DIV || tn === $.DIR || tn === $.NAV) {\n addressStartTagInBody(p, token);\n } else if (tn === $.PRE) {\n preStartTagInBody(p, token);\n } else if (tn === $.BIG) {\n bStartTagInBody(p, token);\n } else if (tn === $.IMG || tn === $.WBR) {\n areaStartTagInBody(p, token);\n } else if (tn === $.XMP) {\n xmpStartTagInBody(p, token);\n } else if (tn === $.SVG) {\n svgStartTagInBody(p, token);\n } else if (tn === $.RTC) {\n rbStartTagInBody(p, token);\n } else if (tn !== $.COL) {\n genericStartTagInBody(p, token);\n }\n\n break;\n\n case 4:\n if (tn === $.HTML) {\n htmlStartTagInBody(p, token);\n } else if (tn === $.BASE || tn === $.LINK || tn === $.META) {\n startTagInHead(p, token);\n } else if (tn === $.BODY) {\n bodyStartTagInBody(p, token);\n } else if (tn === $.MAIN || tn === $.MENU) {\n addressStartTagInBody(p, token);\n } else if (tn === $.FORM) {\n formStartTagInBody(p, token);\n } else if (tn === $.CODE || tn === $.FONT) {\n bStartTagInBody(p, token);\n } else if (tn === $.NOBR) {\n nobrStartTagInBody(p, token);\n } else if (tn === $.AREA) {\n areaStartTagInBody(p, token);\n } else if (tn === $.MATH) {\n mathStartTagInBody(p, token);\n } else if (tn === $.MENU) {\n menuStartTagInBody(p, token);\n } else if (tn !== $.HEAD) {\n genericStartTagInBody(p, token);\n }\n\n break;\n\n case 5:\n if (tn === $.STYLE || tn === $.TITLE) {\n startTagInHead(p, token);\n } else if (tn === $.ASIDE) {\n addressStartTagInBody(p, token);\n } else if (tn === $.SMALL) {\n bStartTagInBody(p, token);\n } else if (tn === $.TABLE) {\n tableStartTagInBody(p, token);\n } else if (tn === $.EMBED) {\n areaStartTagInBody(p, token);\n } else if (tn === $.INPUT) {\n inputStartTagInBody(p, token);\n } else if (tn === $.PARAM || tn === $.TRACK) {\n paramStartTagInBody(p, token);\n } else if (tn === $.IMAGE) {\n imageStartTagInBody(p, token);\n } else if (tn !== $.FRAME && tn !== $.TBODY && tn !== $.TFOOT && tn !== $.THEAD) {\n genericStartTagInBody(p, token);\n }\n\n break;\n\n case 6:\n if (tn === $.SCRIPT) {\n startTagInHead(p, token);\n } else if (\n tn === $.CENTER ||\n tn === $.FIGURE ||\n tn === $.FOOTER ||\n tn === $.HEADER ||\n tn === $.HGROUP ||\n tn === $.DIALOG\n ) {\n addressStartTagInBody(p, token);\n } else if (tn === $.BUTTON) {\n buttonStartTagInBody(p, token);\n } else if (tn === $.STRIKE || tn === $.STRONG) {\n bStartTagInBody(p, token);\n } else if (tn === $.APPLET || tn === $.OBJECT) {\n appletStartTagInBody(p, token);\n } else if (tn === $.KEYGEN) {\n areaStartTagInBody(p, token);\n } else if (tn === $.SOURCE) {\n paramStartTagInBody(p, token);\n } else if (tn === $.IFRAME) {\n iframeStartTagInBody(p, token);\n } else if (tn === $.SELECT) {\n selectStartTagInBody(p, token);\n } else if (tn === $.OPTION) {\n optgroupStartTagInBody(p, token);\n } else {\n genericStartTagInBody(p, token);\n }\n\n break;\n\n case 7:\n if (tn === $.BGSOUND) {\n startTagInHead(p, token);\n } else if (\n tn === $.DETAILS ||\n tn === $.ADDRESS ||\n tn === $.ARTICLE ||\n tn === $.SECTION ||\n tn === $.SUMMARY\n ) {\n addressStartTagInBody(p, token);\n } else if (tn === $.LISTING) {\n preStartTagInBody(p, token);\n } else if (tn === $.MARQUEE) {\n appletStartTagInBody(p, token);\n } else if (tn === $.NOEMBED) {\n noembedStartTagInBody(p, token);\n } else if (tn !== $.CAPTION) {\n genericStartTagInBody(p, token);\n }\n\n break;\n\n case 8:\n if (tn === $.BASEFONT) {\n startTagInHead(p, token);\n } else if (tn === $.FRAMESET) {\n framesetStartTagInBody(p, token);\n } else if (tn === $.FIELDSET) {\n addressStartTagInBody(p, token);\n } else if (tn === $.TEXTAREA) {\n textareaStartTagInBody(p, token);\n } else if (tn === $.TEMPLATE) {\n startTagInHead(p, token);\n } else if (tn === $.NOSCRIPT) {\n if (p.options.scriptingEnabled) {\n noembedStartTagInBody(p, token);\n } else {\n genericStartTagInBody(p, token);\n }\n } else if (tn === $.OPTGROUP) {\n optgroupStartTagInBody(p, token);\n } else if (tn !== $.COLGROUP) {\n genericStartTagInBody(p, token);\n }\n\n break;\n\n case 9:\n if (tn === $.PLAINTEXT) {\n plaintextStartTagInBody(p, token);\n } else {\n genericStartTagInBody(p, token);\n }\n\n break;\n\n case 10:\n if (tn === $.BLOCKQUOTE || tn === $.FIGCAPTION) {\n addressStartTagInBody(p, token);\n } else {\n genericStartTagInBody(p, token);\n }\n\n break;\n\n default:\n genericStartTagInBody(p, token);\n }\n}\n\nfunction bodyEndTagInBody(p) {\n if (p.openElements.hasInScope($.BODY)) {\n p.insertionMode = AFTER_BODY_MODE;\n }\n}\n\nfunction htmlEndTagInBody(p, token) {\n if (p.openElements.hasInScope($.BODY)) {\n p.insertionMode = AFTER_BODY_MODE;\n p._processToken(token);\n }\n}\n\nfunction addressEndTagInBody(p, token) {\n const tn = token.tagName;\n\n if (p.openElements.hasInScope(tn)) {\n p.openElements.generateImpliedEndTags();\n p.openElements.popUntilTagNamePopped(tn);\n }\n}\n\nfunction formEndTagInBody(p) {\n const inTemplate = p.openElements.tmplCount > 0;\n const formElement = p.formElement;\n\n if (!inTemplate) {\n p.formElement = null;\n }\n\n if ((formElement || inTemplate) && p.openElements.hasInScope($.FORM)) {\n p.openElements.generateImpliedEndTags();\n\n if (inTemplate) {\n p.openElements.popUntilTagNamePopped($.FORM);\n } else {\n p.openElements.remove(formElement);\n }\n }\n}\n\nfunction pEndTagInBody(p) {\n if (!p.openElements.hasInButtonScope($.P)) {\n p._insertFakeElement($.P);\n }\n\n p._closePElement();\n}\n\nfunction liEndTagInBody(p) {\n if (p.openElements.hasInListItemScope($.LI)) {\n p.openElements.generateImpliedEndTagsWithExclusion($.LI);\n p.openElements.popUntilTagNamePopped($.LI);\n }\n}\n\nfunction ddEndTagInBody(p, token) {\n const tn = token.tagName;\n\n if (p.openElements.hasInScope(tn)) {\n p.openElements.generateImpliedEndTagsWithExclusion(tn);\n p.openElements.popUntilTagNamePopped(tn);\n }\n}\n\nfunction numberedHeaderEndTagInBody(p) {\n if (p.openElements.hasNumberedHeaderInScope()) {\n p.openElements.generateImpliedEndTags();\n p.openElements.popUntilNumberedHeaderPopped();\n }\n}\n\nfunction appletEndTagInBody(p, token) {\n const tn = token.tagName;\n\n if (p.openElements.hasInScope(tn)) {\n p.openElements.generateImpliedEndTags();\n p.openElements.popUntilTagNamePopped(tn);\n p.activeFormattingElements.clearToLastMarker();\n }\n}\n\nfunction brEndTagInBody(p) {\n p._reconstructActiveFormattingElements();\n p._insertFakeElement($.BR);\n p.openElements.pop();\n p.framesetOk = false;\n}\n\nfunction genericEndTagInBody(p, token) {\n const tn = token.tagName;\n\n for (let i = p.openElements.stackTop; i > 0; i--) {\n const element = p.openElements.items[i];\n\n if (p.treeAdapter.getTagName(element) === tn) {\n p.openElements.generateImpliedEndTagsWithExclusion(tn);\n p.openElements.popUntilElementPopped(element);\n break;\n }\n\n if (p._isSpecialElement(element)) {\n break;\n }\n }\n}\n\n//OPTIMIZATION: Integer comparisons are low-cost, so we can use very fast tag name length filters here.\n//It's faster than using dictionary.\nfunction endTagInBody(p, token) {\n const tn = token.tagName;\n\n switch (tn.length) {\n case 1:\n if (tn === $.A || tn === $.B || tn === $.I || tn === $.S || tn === $.U) {\n callAdoptionAgency(p, token);\n } else if (tn === $.P) {\n pEndTagInBody(p, token);\n } else {\n genericEndTagInBody(p, token);\n }\n\n break;\n\n case 2:\n if (tn === $.DL || tn === $.UL || tn === $.OL) {\n addressEndTagInBody(p, token);\n } else if (tn === $.LI) {\n liEndTagInBody(p, token);\n } else if (tn === $.DD || tn === $.DT) {\n ddEndTagInBody(p, token);\n } else if (tn === $.H1 || tn === $.H2 || tn === $.H3 || tn === $.H4 || tn === $.H5 || tn === $.H6) {\n numberedHeaderEndTagInBody(p, token);\n } else if (tn === $.BR) {\n brEndTagInBody(p, token);\n } else if (tn === $.EM || tn === $.TT) {\n callAdoptionAgency(p, token);\n } else {\n genericEndTagInBody(p, token);\n }\n\n break;\n\n case 3:\n if (tn === $.BIG) {\n callAdoptionAgency(p, token);\n } else if (tn === $.DIR || tn === $.DIV || tn === $.NAV || tn === $.PRE) {\n addressEndTagInBody(p, token);\n } else {\n genericEndTagInBody(p, token);\n }\n\n break;\n\n case 4:\n if (tn === $.BODY) {\n bodyEndTagInBody(p, token);\n } else if (tn === $.HTML) {\n htmlEndTagInBody(p, token);\n } else if (tn === $.FORM) {\n formEndTagInBody(p, token);\n } else if (tn === $.CODE || tn === $.FONT || tn === $.NOBR) {\n callAdoptionAgency(p, token);\n } else if (tn === $.MAIN || tn === $.MENU) {\n addressEndTagInBody(p, token);\n } else {\n genericEndTagInBody(p, token);\n }\n\n break;\n\n case 5:\n if (tn === $.ASIDE) {\n addressEndTagInBody(p, token);\n } else if (tn === $.SMALL) {\n callAdoptionAgency(p, token);\n } else {\n genericEndTagInBody(p, token);\n }\n\n break;\n\n case 6:\n if (\n tn === $.CENTER ||\n tn === $.FIGURE ||\n tn === $.FOOTER ||\n tn === $.HEADER ||\n tn === $.HGROUP ||\n tn === $.DIALOG\n ) {\n addressEndTagInBody(p, token);\n } else if (tn === $.APPLET || tn === $.OBJECT) {\n appletEndTagInBody(p, token);\n } else if (tn === $.STRIKE || tn === $.STRONG) {\n callAdoptionAgency(p, token);\n } else {\n genericEndTagInBody(p, token);\n }\n\n break;\n\n case 7:\n if (\n tn === $.ADDRESS ||\n tn === $.ARTICLE ||\n tn === $.DETAILS ||\n tn === $.SECTION ||\n tn === $.SUMMARY ||\n tn === $.LISTING\n ) {\n addressEndTagInBody(p, token);\n } else if (tn === $.MARQUEE) {\n appletEndTagInBody(p, token);\n } else {\n genericEndTagInBody(p, token);\n }\n\n break;\n\n case 8:\n if (tn === $.FIELDSET) {\n addressEndTagInBody(p, token);\n } else if (tn === $.TEMPLATE) {\n endTagInHead(p, token);\n } else {\n genericEndTagInBody(p, token);\n }\n\n break;\n\n case 10:\n if (tn === $.BLOCKQUOTE || tn === $.FIGCAPTION) {\n addressEndTagInBody(p, token);\n } else {\n genericEndTagInBody(p, token);\n }\n\n break;\n\n default:\n genericEndTagInBody(p, token);\n }\n}\n\nfunction eofInBody(p, token) {\n if (p.tmplInsertionModeStackTop > -1) {\n eofInTemplate(p, token);\n } else {\n p.stopped = true;\n }\n}\n\n// The \"text\" insertion mode\n//------------------------------------------------------------------\nfunction endTagInText(p, token) {\n if (token.tagName === $.SCRIPT) {\n p.pendingScript = p.openElements.current;\n }\n\n p.openElements.pop();\n p.insertionMode = p.originalInsertionMode;\n}\n\nfunction eofInText(p, token) {\n p._err(ERR.eofInElementThatCanContainOnlyText);\n p.openElements.pop();\n p.insertionMode = p.originalInsertionMode;\n p._processToken(token);\n}\n\n// The \"in table\" insertion mode\n//------------------------------------------------------------------\nfunction characterInTable(p, token) {\n const curTn = p.openElements.currentTagName;\n\n if (curTn === $.TABLE || curTn === $.TBODY || curTn === $.TFOOT || curTn === $.THEAD || curTn === $.TR) {\n p.pendingCharacterTokens = [];\n p.hasNonWhitespacePendingCharacterToken = false;\n p.originalInsertionMode = p.insertionMode;\n p.insertionMode = IN_TABLE_TEXT_MODE;\n p._processToken(token);\n } else {\n tokenInTable(p, token);\n }\n}\n\nfunction captionStartTagInTable(p, token) {\n p.openElements.clearBackToTableContext();\n p.activeFormattingElements.insertMarker();\n p._insertElement(token, NS.HTML);\n p.insertionMode = IN_CAPTION_MODE;\n}\n\nfunction colgroupStartTagInTable(p, token) {\n p.openElements.clearBackToTableContext();\n p._insertElement(token, NS.HTML);\n p.insertionMode = IN_COLUMN_GROUP_MODE;\n}\n\nfunction colStartTagInTable(p, token) {\n p.openElements.clearBackToTableContext();\n p._insertFakeElement($.COLGROUP);\n p.insertionMode = IN_COLUMN_GROUP_MODE;\n p._processToken(token);\n}\n\nfunction tbodyStartTagInTable(p, token) {\n p.openElements.clearBackToTableContext();\n p._insertElement(token, NS.HTML);\n p.insertionMode = IN_TABLE_BODY_MODE;\n}\n\nfunction tdStartTagInTable(p, token) {\n p.openElements.clearBackToTableContext();\n p._insertFakeElement($.TBODY);\n p.insertionMode = IN_TABLE_BODY_MODE;\n p._processToken(token);\n}\n\nfunction tableStartTagInTable(p, token) {\n if (p.openElements.hasInTableScope($.TABLE)) {\n p.openElements.popUntilTagNamePopped($.TABLE);\n p._resetInsertionMode();\n p._processToken(token);\n }\n}\n\nfunction inputStartTagInTable(p, token) {\n const inputType = Tokenizer.getTokenAttr(token, ATTRS.TYPE);\n\n if (inputType && inputType.toLowerCase() === HIDDEN_INPUT_TYPE) {\n p._appendElement(token, NS.HTML);\n } else {\n tokenInTable(p, token);\n }\n\n token.ackSelfClosing = true;\n}\n\nfunction formStartTagInTable(p, token) {\n if (!p.formElement && p.openElements.tmplCount === 0) {\n p._insertElement(token, NS.HTML);\n p.formElement = p.openElements.current;\n p.openElements.pop();\n }\n}\n\nfunction startTagInTable(p, token) {\n const tn = token.tagName;\n\n switch (tn.length) {\n case 2:\n if (tn === $.TD || tn === $.TH || tn === $.TR) {\n tdStartTagInTable(p, token);\n } else {\n tokenInTable(p, token);\n }\n\n break;\n\n case 3:\n if (tn === $.COL) {\n colStartTagInTable(p, token);\n } else {\n tokenInTable(p, token);\n }\n\n break;\n\n case 4:\n if (tn === $.FORM) {\n formStartTagInTable(p, token);\n } else {\n tokenInTable(p, token);\n }\n\n break;\n\n case 5:\n if (tn === $.TABLE) {\n tableStartTagInTable(p, token);\n } else if (tn === $.STYLE) {\n startTagInHead(p, token);\n } else if (tn === $.TBODY || tn === $.TFOOT || tn === $.THEAD) {\n tbodyStartTagInTable(p, token);\n } else if (tn === $.INPUT) {\n inputStartTagInTable(p, token);\n } else {\n tokenInTable(p, token);\n }\n\n break;\n\n case 6:\n if (tn === $.SCRIPT) {\n startTagInHead(p, token);\n } else {\n tokenInTable(p, token);\n }\n\n break;\n\n case 7:\n if (tn === $.CAPTION) {\n captionStartTagInTable(p, token);\n } else {\n tokenInTable(p, token);\n }\n\n break;\n\n case 8:\n if (tn === $.COLGROUP) {\n colgroupStartTagInTable(p, token);\n } else if (tn === $.TEMPLATE) {\n startTagInHead(p, token);\n } else {\n tokenInTable(p, token);\n }\n\n break;\n\n default:\n tokenInTable(p, token);\n }\n}\n\nfunction endTagInTable(p, token) {\n const tn = token.tagName;\n\n if (tn === $.TABLE) {\n if (p.openElements.hasInTableScope($.TABLE)) {\n p.openElements.popUntilTagNamePopped($.TABLE);\n p._resetInsertionMode();\n }\n } else if (tn === $.TEMPLATE) {\n endTagInHead(p, token);\n } else if (\n tn !== $.BODY &&\n tn !== $.CAPTION &&\n tn !== $.COL &&\n tn !== $.COLGROUP &&\n tn !== $.HTML &&\n tn !== $.TBODY &&\n tn !== $.TD &&\n tn !== $.TFOOT &&\n tn !== $.TH &&\n tn !== $.THEAD &&\n tn !== $.TR\n ) {\n tokenInTable(p, token);\n }\n}\n\nfunction tokenInTable(p, token) {\n const savedFosterParentingState = p.fosterParentingEnabled;\n\n p.fosterParentingEnabled = true;\n p._processTokenInBodyMode(token);\n p.fosterParentingEnabled = savedFosterParentingState;\n}\n\n// The \"in table text\" insertion mode\n//------------------------------------------------------------------\nfunction whitespaceCharacterInTableText(p, token) {\n p.pendingCharacterTokens.push(token);\n}\n\nfunction characterInTableText(p, token) {\n p.pendingCharacterTokens.push(token);\n p.hasNonWhitespacePendingCharacterToken = true;\n}\n\nfunction tokenInTableText(p, token) {\n let i = 0;\n\n if (p.hasNonWhitespacePendingCharacterToken) {\n for (; i < p.pendingCharacterTokens.length; i++) {\n tokenInTable(p, p.pendingCharacterTokens[i]);\n }\n } else {\n for (; i < p.pendingCharacterTokens.length; i++) {\n p._insertCharacters(p.pendingCharacterTokens[i]);\n }\n }\n\n p.insertionMode = p.originalInsertionMode;\n p._processToken(token);\n}\n\n// The \"in caption\" insertion mode\n//------------------------------------------------------------------\nfunction startTagInCaption(p, token) {\n const tn = token.tagName;\n\n if (\n tn === $.CAPTION ||\n tn === $.COL ||\n tn === $.COLGROUP ||\n tn === $.TBODY ||\n tn === $.TD ||\n tn === $.TFOOT ||\n tn === $.TH ||\n tn === $.THEAD ||\n tn === $.TR\n ) {\n if (p.openElements.hasInTableScope($.CAPTION)) {\n p.openElements.generateImpliedEndTags();\n p.openElements.popUntilTagNamePopped($.CAPTION);\n p.activeFormattingElements.clearToLastMarker();\n p.insertionMode = IN_TABLE_MODE;\n p._processToken(token);\n }\n } else {\n startTagInBody(p, token);\n }\n}\n\nfunction endTagInCaption(p, token) {\n const tn = token.tagName;\n\n if (tn === $.CAPTION || tn === $.TABLE) {\n if (p.openElements.hasInTableScope($.CAPTION)) {\n p.openElements.generateImpliedEndTags();\n p.openElements.popUntilTagNamePopped($.CAPTION);\n p.activeFormattingElements.clearToLastMarker();\n p.insertionMode = IN_TABLE_MODE;\n\n if (tn === $.TABLE) {\n p._processToken(token);\n }\n }\n } else if (\n tn !== $.BODY &&\n tn !== $.COL &&\n tn !== $.COLGROUP &&\n tn !== $.HTML &&\n tn !== $.TBODY &&\n tn !== $.TD &&\n tn !== $.TFOOT &&\n tn !== $.TH &&\n tn !== $.THEAD &&\n tn !== $.TR\n ) {\n endTagInBody(p, token);\n }\n}\n\n// The \"in column group\" insertion mode\n//------------------------------------------------------------------\nfunction startTagInColumnGroup(p, token) {\n const tn = token.tagName;\n\n if (tn === $.HTML) {\n startTagInBody(p, token);\n } else if (tn === $.COL) {\n p._appendElement(token, NS.HTML);\n token.ackSelfClosing = true;\n } else if (tn === $.TEMPLATE) {\n startTagInHead(p, token);\n } else {\n tokenInColumnGroup(p, token);\n }\n}\n\nfunction endTagInColumnGroup(p, token) {\n const tn = token.tagName;\n\n if (tn === $.COLGROUP) {\n if (p.openElements.currentTagName === $.COLGROUP) {\n p.openElements.pop();\n p.insertionMode = IN_TABLE_MODE;\n }\n } else if (tn === $.TEMPLATE) {\n endTagInHead(p, token);\n } else if (tn !== $.COL) {\n tokenInColumnGroup(p, token);\n }\n}\n\nfunction tokenInColumnGroup(p, token) {\n if (p.openElements.currentTagName === $.COLGROUP) {\n p.openElements.pop();\n p.insertionMode = IN_TABLE_MODE;\n p._processToken(token);\n }\n}\n\n// The \"in table body\" insertion mode\n//------------------------------------------------------------------\nfunction startTagInTableBody(p, token) {\n const tn = token.tagName;\n\n if (tn === $.TR) {\n p.openElements.clearBackToTableBodyContext();\n p._insertElement(token, NS.HTML);\n p.insertionMode = IN_ROW_MODE;\n } else if (tn === $.TH || tn === $.TD) {\n p.openElements.clearBackToTableBodyContext();\n p._insertFakeElement($.TR);\n p.insertionMode = IN_ROW_MODE;\n p._processToken(token);\n } else if (\n tn === $.CAPTION ||\n tn === $.COL ||\n tn === $.COLGROUP ||\n tn === $.TBODY ||\n tn === $.TFOOT ||\n tn === $.THEAD\n ) {\n if (p.openElements.hasTableBodyContextInTableScope()) {\n p.openElements.clearBackToTableBodyContext();\n p.openElements.pop();\n p.insertionMode = IN_TABLE_MODE;\n p._processToken(token);\n }\n } else {\n startTagInTable(p, token);\n }\n}\n\nfunction endTagInTableBody(p, token) {\n const tn = token.tagName;\n\n if (tn === $.TBODY || tn === $.TFOOT || tn === $.THEAD) {\n if (p.openElements.hasInTableScope(tn)) {\n p.openElements.clearBackToTableBodyContext();\n p.openElements.pop();\n p.insertionMode = IN_TABLE_MODE;\n }\n } else if (tn === $.TABLE) {\n if (p.openElements.hasTableBodyContextInTableScope()) {\n p.openElements.clearBackToTableBodyContext();\n p.openElements.pop();\n p.insertionMode = IN_TABLE_MODE;\n p._processToken(token);\n }\n } else if (\n (tn !== $.BODY && tn !== $.CAPTION && tn !== $.COL && tn !== $.COLGROUP) ||\n (tn !== $.HTML && tn !== $.TD && tn !== $.TH && tn !== $.TR)\n ) {\n endTagInTable(p, token);\n }\n}\n\n// The \"in row\" insertion mode\n//------------------------------------------------------------------\nfunction startTagInRow(p, token) {\n const tn = token.tagName;\n\n if (tn === $.TH || tn === $.TD) {\n p.openElements.clearBackToTableRowContext();\n p._insertElement(token, NS.HTML);\n p.insertionMode = IN_CELL_MODE;\n p.activeFormattingElements.insertMarker();\n } else if (\n tn === $.CAPTION ||\n tn === $.COL ||\n tn === $.COLGROUP ||\n tn === $.TBODY ||\n tn === $.TFOOT ||\n tn === $.THEAD ||\n tn === $.TR\n ) {\n if (p.openElements.hasInTableScope($.TR)) {\n p.openElements.clearBackToTableRowContext();\n p.openElements.pop();\n p.insertionMode = IN_TABLE_BODY_MODE;\n p._processToken(token);\n }\n } else {\n startTagInTable(p, token);\n }\n}\n\nfunction endTagInRow(p, token) {\n const tn = token.tagName;\n\n if (tn === $.TR) {\n if (p.openElements.hasInTableScope($.TR)) {\n p.openElements.clearBackToTableRowContext();\n p.openElements.pop();\n p.insertionMode = IN_TABLE_BODY_MODE;\n }\n } else if (tn === $.TABLE) {\n if (p.openElements.hasInTableScope($.TR)) {\n p.openElements.clearBackToTableRowContext();\n p.openElements.pop();\n p.insertionMode = IN_TABLE_BODY_MODE;\n p._processToken(token);\n }\n } else if (tn === $.TBODY || tn === $.TFOOT || tn === $.THEAD) {\n if (p.openElements.hasInTableScope(tn) || p.openElements.hasInTableScope($.TR)) {\n p.openElements.clearBackToTableRowContext();\n p.openElements.pop();\n p.insertionMode = IN_TABLE_BODY_MODE;\n p._processToken(token);\n }\n } else if (\n (tn !== $.BODY && tn !== $.CAPTION && tn !== $.COL && tn !== $.COLGROUP) ||\n (tn !== $.HTML && tn !== $.TD && tn !== $.TH)\n ) {\n endTagInTable(p, token);\n }\n}\n\n// The \"in cell\" insertion mode\n//------------------------------------------------------------------\nfunction startTagInCell(p, token) {\n const tn = token.tagName;\n\n if (\n tn === $.CAPTION ||\n tn === $.COL ||\n tn === $.COLGROUP ||\n tn === $.TBODY ||\n tn === $.TD ||\n tn === $.TFOOT ||\n tn === $.TH ||\n tn === $.THEAD ||\n tn === $.TR\n ) {\n if (p.openElements.hasInTableScope($.TD) || p.openElements.hasInTableScope($.TH)) {\n p._closeTableCell();\n p._processToken(token);\n }\n } else {\n startTagInBody(p, token);\n }\n}\n\nfunction endTagInCell(p, token) {\n const tn = token.tagName;\n\n if (tn === $.TD || tn === $.TH) {\n if (p.openElements.hasInTableScope(tn)) {\n p.openElements.generateImpliedEndTags();\n p.openElements.popUntilTagNamePopped(tn);\n p.activeFormattingElements.clearToLastMarker();\n p.insertionMode = IN_ROW_MODE;\n }\n } else if (tn === $.TABLE || tn === $.TBODY || tn === $.TFOOT || tn === $.THEAD || tn === $.TR) {\n if (p.openElements.hasInTableScope(tn)) {\n p._closeTableCell();\n p._processToken(token);\n }\n } else if (tn !== $.BODY && tn !== $.CAPTION && tn !== $.COL && tn !== $.COLGROUP && tn !== $.HTML) {\n endTagInBody(p, token);\n }\n}\n\n// The \"in select\" insertion mode\n//------------------------------------------------------------------\nfunction startTagInSelect(p, token) {\n const tn = token.tagName;\n\n if (tn === $.HTML) {\n startTagInBody(p, token);\n } else if (tn === $.OPTION) {\n if (p.openElements.currentTagName === $.OPTION) {\n p.openElements.pop();\n }\n\n p._insertElement(token, NS.HTML);\n } else if (tn === $.OPTGROUP) {\n if (p.openElements.currentTagName === $.OPTION) {\n p.openElements.pop();\n }\n\n if (p.openElements.currentTagName === $.OPTGROUP) {\n p.openElements.pop();\n }\n\n p._insertElement(token, NS.HTML);\n } else if (tn === $.INPUT || tn === $.KEYGEN || tn === $.TEXTAREA || tn === $.SELECT) {\n if (p.openElements.hasInSelectScope($.SELECT)) {\n p.openElements.popUntilTagNamePopped($.SELECT);\n p._resetInsertionMode();\n\n if (tn !== $.SELECT) {\n p._processToken(token);\n }\n }\n } else if (tn === $.SCRIPT || tn === $.TEMPLATE) {\n startTagInHead(p, token);\n }\n}\n\nfunction endTagInSelect(p, token) {\n const tn = token.tagName;\n\n if (tn === $.OPTGROUP) {\n const prevOpenElement = p.openElements.items[p.openElements.stackTop - 1];\n const prevOpenElementTn = prevOpenElement && p.treeAdapter.getTagName(prevOpenElement);\n\n if (p.openElements.currentTagName === $.OPTION && prevOpenElementTn === $.OPTGROUP) {\n p.openElements.pop();\n }\n\n if (p.openElements.currentTagName === $.OPTGROUP) {\n p.openElements.pop();\n }\n } else if (tn === $.OPTION) {\n if (p.openElements.currentTagName === $.OPTION) {\n p.openElements.pop();\n }\n } else if (tn === $.SELECT && p.openElements.hasInSelectScope($.SELECT)) {\n p.openElements.popUntilTagNamePopped($.SELECT);\n p._resetInsertionMode();\n } else if (tn === $.TEMPLATE) {\n endTagInHead(p, token);\n }\n}\n\n//12.2.5.4.17 The \"in select in table\" insertion mode\n//------------------------------------------------------------------\nfunction startTagInSelectInTable(p, token) {\n const tn = token.tagName;\n\n if (\n tn === $.CAPTION ||\n tn === $.TABLE ||\n tn === $.TBODY ||\n tn === $.TFOOT ||\n tn === $.THEAD ||\n tn === $.TR ||\n tn === $.TD ||\n tn === $.TH\n ) {\n p.openElements.popUntilTagNamePopped($.SELECT);\n p._resetInsertionMode();\n p._processToken(token);\n } else {\n startTagInSelect(p, token);\n }\n}\n\nfunction endTagInSelectInTable(p, token) {\n const tn = token.tagName;\n\n if (\n tn === $.CAPTION ||\n tn === $.TABLE ||\n tn === $.TBODY ||\n tn === $.TFOOT ||\n tn === $.THEAD ||\n tn === $.TR ||\n tn === $.TD ||\n tn === $.TH\n ) {\n if (p.openElements.hasInTableScope(tn)) {\n p.openElements.popUntilTagNamePopped($.SELECT);\n p._resetInsertionMode();\n p._processToken(token);\n }\n } else {\n endTagInSelect(p, token);\n }\n}\n\n// The \"in template\" insertion mode\n//------------------------------------------------------------------\nfunction startTagInTemplate(p, token) {\n const tn = token.tagName;\n\n if (\n tn === $.BASE ||\n tn === $.BASEFONT ||\n tn === $.BGSOUND ||\n tn === $.LINK ||\n tn === $.META ||\n tn === $.NOFRAMES ||\n tn === $.SCRIPT ||\n tn === $.STYLE ||\n tn === $.TEMPLATE ||\n tn === $.TITLE\n ) {\n startTagInHead(p, token);\n } else {\n const newInsertionMode = TEMPLATE_INSERTION_MODE_SWITCH_MAP[tn] || IN_BODY_MODE;\n\n p._popTmplInsertionMode();\n p._pushTmplInsertionMode(newInsertionMode);\n p.insertionMode = newInsertionMode;\n p._processToken(token);\n }\n}\n\nfunction endTagInTemplate(p, token) {\n if (token.tagName === $.TEMPLATE) {\n endTagInHead(p, token);\n }\n}\n\nfunction eofInTemplate(p, token) {\n if (p.openElements.tmplCount > 0) {\n p.openElements.popUntilTagNamePopped($.TEMPLATE);\n p.activeFormattingElements.clearToLastMarker();\n p._popTmplInsertionMode();\n p._resetInsertionMode();\n p._processToken(token);\n } else {\n p.stopped = true;\n }\n}\n\n// The \"after body\" insertion mode\n//------------------------------------------------------------------\nfunction startTagAfterBody(p, token) {\n if (token.tagName === $.HTML) {\n startTagInBody(p, token);\n } else {\n tokenAfterBody(p, token);\n }\n}\n\nfunction endTagAfterBody(p, token) {\n if (token.tagName === $.HTML) {\n if (!p.fragmentContext) {\n p.insertionMode = AFTER_AFTER_BODY_MODE;\n }\n } else {\n tokenAfterBody(p, token);\n }\n}\n\nfunction tokenAfterBody(p, token) {\n p.insertionMode = IN_BODY_MODE;\n p._processToken(token);\n}\n\n// The \"in frameset\" insertion mode\n//------------------------------------------------------------------\nfunction startTagInFrameset(p, token) {\n const tn = token.tagName;\n\n if (tn === $.HTML) {\n startTagInBody(p, token);\n } else if (tn === $.FRAMESET) {\n p._insertElement(token, NS.HTML);\n } else if (tn === $.FRAME) {\n p._appendElement(token, NS.HTML);\n token.ackSelfClosing = true;\n } else if (tn === $.NOFRAMES) {\n startTagInHead(p, token);\n }\n}\n\nfunction endTagInFrameset(p, token) {\n if (token.tagName === $.FRAMESET && !p.openElements.isRootHtmlElementCurrent()) {\n p.openElements.pop();\n\n if (!p.fragmentContext && p.openElements.currentTagName !== $.FRAMESET) {\n p.insertionMode = AFTER_FRAMESET_MODE;\n }\n }\n}\n\n// The \"after frameset\" insertion mode\n//------------------------------------------------------------------\nfunction startTagAfterFrameset(p, token) {\n const tn = token.tagName;\n\n if (tn === $.HTML) {\n startTagInBody(p, token);\n } else if (tn === $.NOFRAMES) {\n startTagInHead(p, token);\n }\n}\n\nfunction endTagAfterFrameset(p, token) {\n if (token.tagName === $.HTML) {\n p.insertionMode = AFTER_AFTER_FRAMESET_MODE;\n }\n}\n\n// The \"after after body\" insertion mode\n//------------------------------------------------------------------\nfunction startTagAfterAfterBody(p, token) {\n if (token.tagName === $.HTML) {\n startTagInBody(p, token);\n } else {\n tokenAfterAfterBody(p, token);\n }\n}\n\nfunction tokenAfterAfterBody(p, token) {\n p.insertionMode = IN_BODY_MODE;\n p._processToken(token);\n}\n\n// The \"after after frameset\" insertion mode\n//------------------------------------------------------------------\nfunction startTagAfterAfterFrameset(p, token) {\n const tn = token.tagName;\n\n if (tn === $.HTML) {\n startTagInBody(p, token);\n } else if (tn === $.NOFRAMES) {\n startTagInHead(p, token);\n }\n}\n\n// The rules for parsing tokens in foreign content\n//------------------------------------------------------------------\nfunction nullCharacterInForeignContent(p, token) {\n token.chars = unicode.REPLACEMENT_CHARACTER;\n p._insertCharacters(token);\n}\n\nfunction characterInForeignContent(p, token) {\n p._insertCharacters(token);\n p.framesetOk = false;\n}\n\nfunction startTagInForeignContent(p, token) {\n if (foreignContent.causesExit(token) && !p.fragmentContext) {\n while (\n p.treeAdapter.getNamespaceURI(p.openElements.current) !== NS.HTML &&\n !p._isIntegrationPoint(p.openElements.current)\n ) {\n p.openElements.pop();\n }\n\n p._processToken(token);\n } else {\n const current = p._getAdjustedCurrentElement();\n const currentNs = p.treeAdapter.getNamespaceURI(current);\n\n if (currentNs === NS.MATHML) {\n foreignContent.adjustTokenMathMLAttrs(token);\n } else if (currentNs === NS.SVG) {\n foreignContent.adjustTokenSVGTagName(token);\n foreignContent.adjustTokenSVGAttrs(token);\n }\n\n foreignContent.adjustTokenXMLAttrs(token);\n\n if (token.selfClosing) {\n p._appendElement(token, currentNs);\n } else {\n p._insertElement(token, currentNs);\n }\n\n token.ackSelfClosing = true;\n }\n}\n\nfunction endTagInForeignContent(p, token) {\n for (let i = p.openElements.stackTop; i > 0; i--) {\n const element = p.openElements.items[i];\n\n if (p.treeAdapter.getNamespaceURI(element) === NS.HTML) {\n p._processToken(token);\n break;\n }\n\n if (p.treeAdapter.getTagName(element).toLowerCase() === token.tagName) {\n p.openElements.popUntilElementPopped(element);\n break;\n }\n }\n}\n","'use strict';\n\nconst unicode = require('../common/unicode');\nconst ERR = require('../common/error-codes');\n\n//Aliases\nconst $ = unicode.CODE_POINTS;\n\n//Const\nconst DEFAULT_BUFFER_WATERLINE = 1 << 16;\n\n//Preprocessor\n//NOTE: HTML input preprocessing\n//(see: http://www.whatwg.org/specs/web-apps/current-work/multipage/parsing.html#preprocessing-the-input-stream)\nclass Preprocessor {\n constructor() {\n this.html = null;\n\n this.pos = -1;\n this.lastGapPos = -1;\n this.lastCharPos = -1;\n\n this.gapStack = [];\n\n this.skipNextNewLine = false;\n\n this.lastChunkWritten = false;\n this.endOfChunkHit = false;\n this.bufferWaterline = DEFAULT_BUFFER_WATERLINE;\n }\n\n _err() {\n // NOTE: err reporting is noop by default. Enabled by mixin.\n }\n\n _addGap() {\n this.gapStack.push(this.lastGapPos);\n this.lastGapPos = this.pos;\n }\n\n _processSurrogate(cp) {\n //NOTE: try to peek a surrogate pair\n if (this.pos !== this.lastCharPos) {\n const nextCp = this.html.charCodeAt(this.pos + 1);\n\n if (unicode.isSurrogatePair(nextCp)) {\n //NOTE: we have a surrogate pair. Peek pair character and recalculate code point.\n this.pos++;\n\n //NOTE: add gap that should be avoided during retreat\n this._addGap();\n\n return unicode.getSurrogatePairCodePoint(cp, nextCp);\n }\n }\n\n //NOTE: we are at the end of a chunk, therefore we can't infer surrogate pair yet.\n else if (!this.lastChunkWritten) {\n this.endOfChunkHit = true;\n return $.EOF;\n }\n\n //NOTE: isolated surrogate\n this._err(ERR.surrogateInInputStream);\n\n return cp;\n }\n\n dropParsedChunk() {\n if (this.pos > this.bufferWaterline) {\n this.lastCharPos -= this.pos;\n this.html = this.html.substring(this.pos);\n this.pos = 0;\n this.lastGapPos = -1;\n this.gapStack = [];\n }\n }\n\n write(chunk, isLastChunk) {\n if (this.html) {\n this.html += chunk;\n } else {\n this.html = chunk;\n }\n\n this.lastCharPos = this.html.length - 1;\n this.endOfChunkHit = false;\n this.lastChunkWritten = isLastChunk;\n }\n\n insertHtmlAtCurrentPos(chunk) {\n this.html = this.html.substring(0, this.pos + 1) + chunk + this.html.substring(this.pos + 1, this.html.length);\n\n this.lastCharPos = this.html.length - 1;\n this.endOfChunkHit = false;\n }\n\n advance() {\n this.pos++;\n\n if (this.pos > this.lastCharPos) {\n this.endOfChunkHit = !this.lastChunkWritten;\n return $.EOF;\n }\n\n let cp = this.html.charCodeAt(this.pos);\n\n //NOTE: any U+000A LINE FEED (LF) characters that immediately follow a U+000D CARRIAGE RETURN (CR) character\n //must be ignored.\n if (this.skipNextNewLine && cp === $.LINE_FEED) {\n this.skipNextNewLine = false;\n this._addGap();\n return this.advance();\n }\n\n //NOTE: all U+000D CARRIAGE RETURN (CR) characters must be converted to U+000A LINE FEED (LF) characters\n if (cp === $.CARRIAGE_RETURN) {\n this.skipNextNewLine = true;\n return $.LINE_FEED;\n }\n\n this.skipNextNewLine = false;\n\n if (unicode.isSurrogate(cp)) {\n cp = this._processSurrogate(cp);\n }\n\n //OPTIMIZATION: first check if code point is in the common allowed\n //range (ASCII alphanumeric, whitespaces, big chunk of BMP)\n //before going into detailed performance cost validation.\n const isCommonValidRange =\n (cp > 0x1f && cp < 0x7f) || cp === $.LINE_FEED || cp === $.CARRIAGE_RETURN || (cp > 0x9f && cp < 0xfdd0);\n\n if (!isCommonValidRange) {\n this._checkForProblematicCharacters(cp);\n }\n\n return cp;\n }\n\n _checkForProblematicCharacters(cp) {\n if (unicode.isControlCodePoint(cp)) {\n this._err(ERR.controlCharacterInInputStream);\n } else if (unicode.isUndefinedCodePoint(cp)) {\n this._err(ERR.noncharacterInInputStream);\n }\n }\n\n retreat() {\n if (this.pos === this.lastGapPos) {\n this.lastGapPos = this.gapStack.pop();\n this.pos--;\n }\n\n this.pos--;\n }\n}\n\nmodule.exports = Preprocessor;\n","'use strict';\n\n//NOTE: this file contains auto-generated array mapped radix tree that is used for the named entity references consumption\n//(details: https://github.com/inikulin/parse5/tree/master/scripts/generate-named-entity-data/README.md)\nmodule.exports = new Uint16Array([4,52,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,106,303,412,810,1432,1701,1796,1987,2114,2360,2420,2484,3170,3251,4140,4393,4575,4610,5106,5512,5728,6117,6274,6315,6345,6427,6516,7002,7910,8733,9323,9870,10170,10631,10893,11318,11386,11467,12773,13092,14474,14922,15448,15542,16419,17666,18166,18611,19004,19095,19298,19397,4,16,69,77,97,98,99,102,103,108,109,110,111,112,114,115,116,117,140,150,158,169,176,194,199,210,216,222,226,242,256,266,283,294,108,105,103,5,198,1,59,148,1,198,80,5,38,1,59,156,1,38,99,117,116,101,5,193,1,59,167,1,193,114,101,118,101,59,1,258,4,2,105,121,182,191,114,99,5,194,1,59,189,1,194,59,1,1040,114,59,3,55349,56580,114,97,118,101,5,192,1,59,208,1,192,112,104,97,59,1,913,97,99,114,59,1,256,100,59,1,10835,4,2,103,112,232,237,111,110,59,1,260,102,59,3,55349,56632,112,108,121,70,117,110,99,116,105,111,110,59,1,8289,105,110,103,5,197,1,59,264,1,197,4,2,99,115,272,277,114,59,3,55349,56476,105,103,110,59,1,8788,105,108,100,101,5,195,1,59,292,1,195,109,108,5,196,1,59,301,1,196,4,8,97,99,101,102,111,114,115,117,321,350,354,383,388,394,400,405,4,2,99,114,327,336,107,115,108,97,115,104,59,1,8726,4,2,118,119,342,345,59,1,10983,101,100,59,1,8966,121,59,1,1041,4,3,99,114,116,362,369,379,97,117,115,101,59,1,8757,110,111,117,108,108,105,115,59,1,8492,97,59,1,914,114,59,3,55349,56581,112,102,59,3,55349,56633,101,118,101,59,1,728,99,114,59,1,8492,109,112,101,113,59,1,8782,4,14,72,79,97,99,100,101,102,104,105,108,111,114,115,117,442,447,456,504,542,547,569,573,577,616,678,784,790,796,99,121,59,1,1063,80,89,5,169,1,59,454,1,169,4,3,99,112,121,464,470,497,117,116,101,59,1,262,4,2,59,105,476,478,1,8914,116,97,108,68,105,102,102,101,114,101,110,116,105,97,108,68,59,1,8517,108,101,121,115,59,1,8493,4,4,97,101,105,111,514,520,530,535,114,111,110,59,1,268,100,105,108,5,199,1,59,528,1,199,114,99,59,1,264,110,105,110,116,59,1,8752,111,116,59,1,266,4,2,100,110,553,560,105,108,108,97,59,1,184,116,101,114,68,111,116,59,1,183,114,59,1,8493,105,59,1,935,114,99,108,101,4,4,68,77,80,84,591,596,603,609,111,116,59,1,8857,105,110,117,115,59,1,8854,108,117,115,59,1,8853,105,109,101,115,59,1,8855,111,4,2,99,115,623,646,107,119,105,115,101,67,111,110,116,111,117,114,73,110,116,101,103,114,97,108,59,1,8754,101,67,117,114,108,121,4,2,68,81,658,671,111,117,98,108,101,81,117,111,116,101,59,1,8221,117,111,116,101,59,1,8217,4,4,108,110,112,117,688,701,736,753,111,110,4,2,59,101,696,698,1,8759,59,1,10868,4,3,103,105,116,709,717,722,114,117,101,110,116,59,1,8801,110,116,59,1,8751,111,117,114,73,110,116,101,103,114,97,108,59,1,8750,4,2,102,114,742,745,59,1,8450,111,100,117,99,116,59,1,8720,110,116,101,114,67,108,111,99,107,119,105,115,101,67,111,110,116,111,117,114,73,110,116,101,103,114,97,108,59,1,8755,111,115,115,59,1,10799,99,114,59,3,55349,56478,112,4,2,59,67,803,805,1,8915,97,112,59,1,8781,4,11,68,74,83,90,97,99,101,102,105,111,115,834,850,855,860,865,888,903,916,921,1011,1415,4,2,59,111,840,842,1,8517,116,114,97,104,100,59,1,10513,99,121,59,1,1026,99,121,59,1,1029,99,121,59,1,1039,4,3,103,114,115,873,879,883,103,101,114,59,1,8225,114,59,1,8609,104,118,59,1,10980,4,2,97,121,894,900,114,111,110,59,1,270,59,1,1044,108,4,2,59,116,910,912,1,8711,97,59,1,916,114,59,3,55349,56583,4,2,97,102,927,998,4,2,99,109,933,992,114,105,116,105,99,97,108,4,4,65,68,71,84,950,957,978,985,99,117,116,101,59,1,180,111,4,2,116,117,964,967,59,1,729,98,108,101,65,99,117,116,101,59,1,733,114,97,118,101,59,1,96,105,108,100,101,59,1,732,111,110,100,59,1,8900,102,101,114,101,110,116,105,97,108,68,59,1,8518,4,4,112,116,117,119,1021,1026,1048,1249,102,59,3,55349,56635,4,3,59,68,69,1034,1036,1041,1,168,111,116,59,1,8412,113,117,97,108,59,1,8784,98,108,101,4,6,67,68,76,82,85,86,1065,1082,1101,1189,1211,1236,111,110,116,111,117,114,73,110,116,101,103,114,97,108,59,1,8751,111,4,2,116,119,1089,1092,59,1,168,110,65,114,114,111,119,59,1,8659,4,2,101,111,1107,1141,102,116,4,3,65,82,84,1117,1124,1136,114,114,111,119,59,1,8656,105,103,104,116,65,114,114,111,119,59,1,8660,101,101,59,1,10980,110,103,4,2,76,82,1149,1177,101,102,116,4,2,65,82,1158,1165,114,114,111,119,59,1,10232,105,103,104,116,65,114,114,111,119,59,1,10234,105,103,104,116,65,114,114,111,119,59,1,10233,105,103,104,116,4,2,65,84,1199,1206,114,114,111,119,59,1,8658,101,101,59,1,8872,112,4,2,65,68,1218,1225,114,114,111,119,59,1,8657,111,119,110,65,114,114,111,119,59,1,8661,101,114,116,105,99,97,108,66,97,114,59,1,8741,110,4,6,65,66,76,82,84,97,1264,1292,1299,1352,1391,1408,114,114,111,119,4,3,59,66,85,1276,1278,1283,1,8595,97,114,59,1,10515,112,65,114,114,111,119,59,1,8693,114,101,118,101,59,1,785,101,102,116,4,3,82,84,86,1310,1323,1334,105,103,104,116,86,101,99,116,111,114,59,1,10576,101,101,86,101,99,116,111,114,59,1,10590,101,99,116,111,114,4,2,59,66,1345,1347,1,8637,97,114,59,1,10582,105,103,104,116,4,2,84,86,1362,1373,101,101,86,101,99,116,111,114,59,1,10591,101,99,116,111,114,4,2,59,66,1384,1386,1,8641,97,114,59,1,10583,101,101,4,2,59,65,1399,1401,1,8868,114,114,111,119,59,1,8615,114,114,111,119,59,1,8659,4,2,99,116,1421,1426,114,59,3,55349,56479,114,111,107,59,1,272,4,16,78,84,97,99,100,102,103,108,109,111,112,113,115,116,117,120,1466,1470,1478,1489,1515,1520,1525,1536,1544,1593,1609,1617,1650,1664,1668,1677,71,59,1,330,72,5,208,1,59,1476,1,208,99,117,116,101,5,201,1,59,1487,1,201,4,3,97,105,121,1497,1503,1512,114,111,110,59,1,282,114,99,5,202,1,59,1510,1,202,59,1,1069,111,116,59,1,278,114,59,3,55349,56584,114,97,118,101,5,200,1,59,1534,1,200,101,109,101,110,116,59,1,8712,4,2,97,112,1550,1555,99,114,59,1,274,116,121,4,2,83,86,1563,1576,109,97,108,108,83,113,117,97,114,101,59,1,9723,101,114,121,83,109,97,108,108,83,113,117,97,114,101,59,1,9643,4,2,103,112,1599,1604,111,110,59,1,280,102,59,3,55349,56636,115,105,108,111,110,59,1,917,117,4,2,97,105,1624,1640,108,4,2,59,84,1631,1633,1,10869,105,108,100,101,59,1,8770,108,105,98,114,105,117,109,59,1,8652,4,2,99,105,1656,1660,114,59,1,8496,109,59,1,10867,97,59,1,919,109,108,5,203,1,59,1675,1,203,4,2,105,112,1683,1689,115,116,115,59,1,8707,111,110,101,110,116,105,97,108,69,59,1,8519,4,5,99,102,105,111,115,1713,1717,1722,1762,1791,121,59,1,1060,114,59,3,55349,56585,108,108,101,100,4,2,83,86,1732,1745,109,97,108,108,83,113,117,97,114,101,59,1,9724,101,114,121,83,109,97,108,108,83,113,117,97,114,101,59,1,9642,4,3,112,114,117,1770,1775,1781,102,59,3,55349,56637,65,108,108,59,1,8704,114,105,101,114,116,114,102,59,1,8497,99,114,59,1,8497,4,12,74,84,97,98,99,100,102,103,111,114,115,116,1822,1827,1834,1848,1855,1877,1882,1887,1890,1896,1978,1984,99,121,59,1,1027,5,62,1,59,1832,1,62,109,109,97,4,2,59,100,1843,1845,1,915,59,1,988,114,101,118,101,59,1,286,4,3,101,105,121,1863,1869,1874,100,105,108,59,1,290,114,99,59,1,284,59,1,1043,111,116,59,1,288,114,59,3,55349,56586,59,1,8921,112,102,59,3,55349,56638,101,97,116,101,114,4,6,69,70,71,76,83,84,1915,1933,1944,1953,1959,1971,113,117,97,108,4,2,59,76,1925,1927,1,8805,101,115,115,59,1,8923,117,108,108,69,113,117,97,108,59,1,8807,114,101,97,116,101,114,59,1,10914,101,115,115,59,1,8823,108,97,110,116,69,113,117,97,108,59,1,10878,105,108,100,101,59,1,8819,99,114,59,3,55349,56482,59,1,8811,4,8,65,97,99,102,105,111,115,117,2005,2012,2026,2032,2036,2049,2073,2089,82,68,99,121,59,1,1066,4,2,99,116,2018,2023,101,107,59,1,711,59,1,94,105,114,99,59,1,292,114,59,1,8460,108,98,101,114,116,83,112,97,99,101,59,1,8459,4,2,112,114,2055,2059,102,59,1,8461,105,122,111,110,116,97,108,76,105,110,101,59,1,9472,4,2,99,116,2079,2083,114,59,1,8459,114,111,107,59,1,294,109,112,4,2,68,69,2097,2107,111,119,110,72,117,109,112,59,1,8782,113,117,97,108,59,1,8783,4,14,69,74,79,97,99,100,102,103,109,110,111,115,116,117,2144,2149,2155,2160,2171,2189,2194,2198,2209,2245,2307,2329,2334,2341,99,121,59,1,1045,108,105,103,59,1,306,99,121,59,1,1025,99,117,116,101,5,205,1,59,2169,1,205,4,2,105,121,2177,2186,114,99,5,206,1,59,2184,1,206,59,1,1048,111,116,59,1,304,114,59,1,8465,114,97,118,101,5,204,1,59,2207,1,204,4,3,59,97,112,2217,2219,2238,1,8465,4,2,99,103,2225,2229,114,59,1,298,105,110,97,114,121,73,59,1,8520,108,105,101,115,59,1,8658,4,2,116,118,2251,2281,4,2,59,101,2257,2259,1,8748,4,2,103,114,2265,2271,114,97,108,59,1,8747,115,101,99,116,105,111,110,59,1,8898,105,115,105,98,108,101,4,2,67,84,2293,2300,111,109,109,97,59,1,8291,105,109,101,115,59,1,8290,4,3,103,112,116,2315,2320,2325,111,110,59,1,302,102,59,3,55349,56640,97,59,1,921,99,114,59,1,8464,105,108,100,101,59,1,296,4,2,107,109,2347,2352,99,121,59,1,1030,108,5,207,1,59,2358,1,207,4,5,99,102,111,115,117,2372,2386,2391,2397,2414,4,2,105,121,2378,2383,114,99,59,1,308,59,1,1049,114,59,3,55349,56589,112,102,59,3,55349,56641,4,2,99,101,2403,2408,114,59,3,55349,56485,114,99,121,59,1,1032,107,99,121,59,1,1028,4,7,72,74,97,99,102,111,115,2436,2441,2446,2452,2467,2472,2478,99,121,59,1,1061,99,121,59,1,1036,112,112,97,59,1,922,4,2,101,121,2458,2464,100,105,108,59,1,310,59,1,1050,114,59,3,55349,56590,112,102,59,3,55349,56642,99,114,59,3,55349,56486,4,11,74,84,97,99,101,102,108,109,111,115,116,2508,2513,2520,2562,2585,2981,2986,3004,3011,3146,3167,99,121,59,1,1033,5,60,1,59,2518,1,60,4,5,99,109,110,112,114,2532,2538,2544,2548,2558,117,116,101,59,1,313,98,100,97,59,1,923,103,59,1,10218,108,97,99,101,116,114,102,59,1,8466,114,59,1,8606,4,3,97,101,121,2570,2576,2582,114,111,110,59,1,317,100,105,108,59,1,315,59,1,1051,4,2,102,115,2591,2907,116,4,10,65,67,68,70,82,84,85,86,97,114,2614,2663,2672,2728,2735,2760,2820,2870,2888,2895,4,2,110,114,2620,2633,103,108,101,66,114,97,99,107,101,116,59,1,10216,114,111,119,4,3,59,66,82,2644,2646,2651,1,8592,97,114,59,1,8676,105,103,104,116,65,114,114,111,119,59,1,8646,101,105,108,105,110,103,59,1,8968,111,4,2,117,119,2679,2692,98,108,101,66,114,97,99,107,101,116,59,1,10214,110,4,2,84,86,2699,2710,101,101,86,101,99,116,111,114,59,1,10593,101,99,116,111,114,4,2,59,66,2721,2723,1,8643,97,114,59,1,10585,108,111,111,114,59,1,8970,105,103,104,116,4,2,65,86,2745,2752,114,114,111,119,59,1,8596,101,99,116,111,114,59,1,10574,4,2,101,114,2766,2792,101,4,3,59,65,86,2775,2777,2784,1,8867,114,114,111,119,59,1,8612,101,99,116,111,114,59,1,10586,105,97,110,103,108,101,4,3,59,66,69,2806,2808,2813,1,8882,97,114,59,1,10703,113,117,97,108,59,1,8884,112,4,3,68,84,86,2829,2841,2852,111,119,110,86,101,99,116,111,114,59,1,10577,101,101,86,101,99,116,111,114,59,1,10592,101,99,116,111,114,4,2,59,66,2863,2865,1,8639,97,114,59,1,10584,101,99,116,111,114,4,2,59,66,2881,2883,1,8636,97,114,59,1,10578,114,114,111,119,59,1,8656,105,103,104,116,97,114,114,111,119,59,1,8660,115,4,6,69,70,71,76,83,84,2922,2936,2947,2956,2962,2974,113,117,97,108,71,114,101,97,116,101,114,59,1,8922,117,108,108,69,113,117,97,108,59,1,8806,114,101,97,116,101,114,59,1,8822,101,115,115,59,1,10913,108,97,110,116,69,113,117,97,108,59,1,10877,105,108,100,101,59,1,8818,114,59,3,55349,56591,4,2,59,101,2992,2994,1,8920,102,116,97,114,114,111,119,59,1,8666,105,100,111,116,59,1,319,4,3,110,112,119,3019,3110,3115,103,4,4,76,82,108,114,3030,3058,3070,3098,101,102,116,4,2,65,82,3039,3046,114,114,111,119,59,1,10229,105,103,104,116,65,114,114,111,119,59,1,10231,105,103,104,116,65,114,114,111,119,59,1,10230,101,102,116,4,2,97,114,3079,3086,114,114,111,119,59,1,10232,105,103,104,116,97,114,114,111,119,59,1,10234,105,103,104,116,97,114,114,111,119,59,1,10233,102,59,3,55349,56643,101,114,4,2,76,82,3123,3134,101,102,116,65,114,114,111,119,59,1,8601,105,103,104,116,65,114,114,111,119,59,1,8600,4,3,99,104,116,3154,3158,3161,114,59,1,8466,59,1,8624,114,111,107,59,1,321,59,1,8810,4,8,97,99,101,102,105,111,115,117,3188,3192,3196,3222,3227,3237,3243,3248,112,59,1,10501,121,59,1,1052,4,2,100,108,3202,3213,105,117,109,83,112,97,99,101,59,1,8287,108,105,110,116,114,102,59,1,8499,114,59,3,55349,56592,110,117,115,80,108,117,115,59,1,8723,112,102,59,3,55349,56644,99,114,59,1,8499,59,1,924,4,9,74,97,99,101,102,111,115,116,117,3271,3276,3283,3306,3422,3427,4120,4126,4137,99,121,59,1,1034,99,117,116,101,59,1,323,4,3,97,101,121,3291,3297,3303,114,111,110,59,1,327,100,105,108,59,1,325,59,1,1053,4,3,103,115,119,3314,3380,3415,97,116,105,118,101,4,3,77,84,86,3327,3340,3365,101,100,105,117,109,83,112,97,99,101,59,1,8203,104,105,4,2,99,110,3348,3357,107,83,112,97,99,101,59,1,8203,83,112,97,99,101,59,1,8203,101,114,121,84,104,105,110,83,112,97,99,101,59,1,8203,116,101,100,4,2,71,76,3389,3405,114,101,97,116,101,114,71,114,101,97,116,101,114,59,1,8811,101,115,115,76,101,115,115,59,1,8810,76,105,110,101,59,1,10,114,59,3,55349,56593,4,4,66,110,112,116,3437,3444,3460,3464,114,101,97,107,59,1,8288,66,114,101,97,107,105,110,103,83,112,97,99,101,59,1,160,102,59,1,8469,4,13,59,67,68,69,71,72,76,78,80,82,83,84,86,3492,3494,3517,3536,3578,3657,3685,3784,3823,3860,3915,4066,4107,1,10988,4,2,111,117,3500,3510,110,103,114,117,101,110,116,59,1,8802,112,67,97,112,59,1,8813,111,117,98,108,101,86,101,114,116,105,99,97,108,66,97,114,59,1,8742,4,3,108,113,120,3544,3552,3571,101,109,101,110,116,59,1,8713,117,97,108,4,2,59,84,3561,3563,1,8800,105,108,100,101,59,3,8770,824,105,115,116,115,59,1,8708,114,101,97,116,101,114,4,7,59,69,70,71,76,83,84,3600,3602,3609,3621,3631,3637,3650,1,8815,113,117,97,108,59,1,8817,117,108,108,69,113,117,97,108,59,3,8807,824,114,101,97,116,101,114,59,3,8811,824,101,115,115,59,1,8825,108,97,110,116,69,113,117,97,108,59,3,10878,824,105,108,100,101,59,1,8821,117,109,112,4,2,68,69,3666,3677,111,119,110,72,117,109,112,59,3,8782,824,113,117,97,108,59,3,8783,824,101,4,2,102,115,3692,3724,116,84,114,105,97,110,103,108,101,4,3,59,66,69,3709,3711,3717,1,8938,97,114,59,3,10703,824,113,117,97,108,59,1,8940,115,4,6,59,69,71,76,83,84,3739,3741,3748,3757,3764,3777,1,8814,113,117,97,108,59,1,8816,114,101,97,116,101,114,59,1,8824,101,115,115,59,3,8810,824,108,97,110,116,69,113,117,97,108,59,3,10877,824,105,108,100,101,59,1,8820,101,115,116,101,100,4,2,71,76,3795,3812,114,101,97,116,101,114,71,114,101,97,116,101,114,59,3,10914,824,101,115,115,76,101,115,115,59,3,10913,824,114,101,99,101,100,101,115,4,3,59,69,83,3838,3840,3848,1,8832,113,117,97,108,59,3,10927,824,108,97,110,116,69,113,117,97,108,59,1,8928,4,2,101,105,3866,3881,118,101,114,115,101,69,108,101,109,101,110,116,59,1,8716,103,104,116,84,114,105,97,110,103,108,101,4,3,59,66,69,3900,3902,3908,1,8939,97,114,59,3,10704,824,113,117,97,108,59,1,8941,4,2,113,117,3921,3973,117,97,114,101,83,117,4,2,98,112,3933,3952,115,101,116,4,2,59,69,3942,3945,3,8847,824,113,117,97,108,59,1,8930,101,114,115,101,116,4,2,59,69,3963,3966,3,8848,824,113,117,97,108,59,1,8931,4,3,98,99,112,3981,4000,4045,115,101,116,4,2,59,69,3990,3993,3,8834,8402,113,117,97,108,59,1,8840,99,101,101,100,115,4,4,59,69,83,84,4015,4017,4025,4037,1,8833,113,117,97,108,59,3,10928,824,108,97,110,116,69,113,117,97,108,59,1,8929,105,108,100,101,59,3,8831,824,101,114,115,101,116,4,2,59,69,4056,4059,3,8835,8402,113,117,97,108,59,1,8841,105,108,100,101,4,4,59,69,70,84,4080,4082,4089,4100,1,8769,113,117,97,108,59,1,8772,117,108,108,69,113,117,97,108,59,1,8775,105,108,100,101,59,1,8777,101,114,116,105,99,97,108,66,97,114,59,1,8740,99,114,59,3,55349,56489,105,108,100,101,5,209,1,59,4135,1,209,59,1,925,4,14,69,97,99,100,102,103,109,111,112,114,115,116,117,118,4170,4176,4187,4205,4212,4217,4228,4253,4259,4292,4295,4316,4337,4346,108,105,103,59,1,338,99,117,116,101,5,211,1,59,4185,1,211,4,2,105,121,4193,4202,114,99,5,212,1,59,4200,1,212,59,1,1054,98,108,97,99,59,1,336,114,59,3,55349,56594,114,97,118,101,5,210,1,59,4226,1,210,4,3,97,101,105,4236,4241,4246,99,114,59,1,332,103,97,59,1,937,99,114,111,110,59,1,927,112,102,59,3,55349,56646,101,110,67,117,114,108,121,4,2,68,81,4272,4285,111,117,98,108,101,81,117,111,116,101,59,1,8220,117,111,116,101,59,1,8216,59,1,10836,4,2,99,108,4301,4306,114,59,3,55349,56490,97,115,104,5,216,1,59,4314,1,216,105,4,2,108,109,4323,4332,100,101,5,213,1,59,4330,1,213,101,115,59,1,10807,109,108,5,214,1,59,4344,1,214,101,114,4,2,66,80,4354,4380,4,2,97,114,4360,4364,114,59,1,8254,97,99,4,2,101,107,4372,4375,59,1,9182,101,116,59,1,9140,97,114,101,110,116,104,101,115,105,115,59,1,9180,4,9,97,99,102,104,105,108,111,114,115,4413,4422,4426,4431,4435,4438,4448,4471,4561,114,116,105,97,108,68,59,1,8706,121,59,1,1055,114,59,3,55349,56595,105,59,1,934,59,1,928,117,115,77,105,110,117,115,59,1,177,4,2,105,112,4454,4467,110,99,97,114,101,112,108,97,110,101,59,1,8460,102,59,1,8473,4,4,59,101,105,111,4481,4483,4526,4531,1,10939,99,101,100,101,115,4,4,59,69,83,84,4498,4500,4507,4519,1,8826,113,117,97,108,59,1,10927,108,97,110,116,69,113,117,97,108,59,1,8828,105,108,100,101,59,1,8830,109,101,59,1,8243,4,2,100,112,4537,4543,117,99,116,59,1,8719,111,114,116,105,111,110,4,2,59,97,4555,4557,1,8759,108,59,1,8733,4,2,99,105,4567,4572,114,59,3,55349,56491,59,1,936,4,4,85,102,111,115,4585,4594,4599,4604,79,84,5,34,1,59,4592,1,34,114,59,3,55349,56596,112,102,59,1,8474,99,114,59,3,55349,56492,4,12,66,69,97,99,101,102,104,105,111,114,115,117,4636,4642,4650,4681,4704,4763,4767,4771,5047,5069,5081,5094,97,114,114,59,1,10512,71,5,174,1,59,4648,1,174,4,3,99,110,114,4658,4664,4668,117,116,101,59,1,340,103,59,1,10219,114,4,2,59,116,4675,4677,1,8608,108,59,1,10518,4,3,97,101,121,4689,4695,4701,114,111,110,59,1,344,100,105,108,59,1,342,59,1,1056,4,2,59,118,4710,4712,1,8476,101,114,115,101,4,2,69,85,4722,4748,4,2,108,113,4728,4736,101,109,101,110,116,59,1,8715,117,105,108,105,98,114,105,117,109,59,1,8651,112,69,113,117,105,108,105,98,114,105,117,109,59,1,10607,114,59,1,8476,111,59,1,929,103,104,116,4,8,65,67,68,70,84,85,86,97,4792,4840,4849,4905,4912,4972,5022,5040,4,2,110,114,4798,4811,103,108,101,66,114,97,99,107,101,116,59,1,10217,114,111,119,4,3,59,66,76,4822,4824,4829,1,8594,97,114,59,1,8677,101,102,116,65,114,114,111,119,59,1,8644,101,105,108,105,110,103,59,1,8969,111,4,2,117,119,4856,4869,98,108,101,66,114,97,99,107,101,116,59,1,10215,110,4,2,84,86,4876,4887,101,101,86,101,99,116,111,114,59,1,10589,101,99,116,111,114,4,2,59,66,4898,4900,1,8642,97,114,59,1,10581,108,111,111,114,59,1,8971,4,2,101,114,4918,4944,101,4,3,59,65,86,4927,4929,4936,1,8866,114,114,111,119,59,1,8614,101,99,116,111,114,59,1,10587,105,97,110,103,108,101,4,3,59,66,69,4958,4960,4965,1,8883,97,114,59,1,10704,113,117,97,108,59,1,8885,112,4,3,68,84,86,4981,4993,5004,111,119,110,86,101,99,116,111,114,59,1,10575,101,101,86,101,99,116,111,114,59,1,10588,101,99,116,111,114,4,2,59,66,5015,5017,1,8638,97,114,59,1,10580,101,99,116,111,114,4,2,59,66,5033,5035,1,8640,97,114,59,1,10579,114,114,111,119,59,1,8658,4,2,112,117,5053,5057,102,59,1,8477,110,100,73,109,112,108,105,101,115,59,1,10608,105,103,104,116,97,114,114,111,119,59,1,8667,4,2,99,104,5087,5091,114,59,1,8475,59,1,8625,108,101,68,101,108,97,121,101,100,59,1,10740,4,13,72,79,97,99,102,104,105,109,111,113,115,116,117,5134,5150,5157,5164,5198,5203,5259,5265,5277,5283,5374,5380,5385,4,2,67,99,5140,5146,72,99,121,59,1,1065,121,59,1,1064,70,84,99,121,59,1,1068,99,117,116,101,59,1,346,4,5,59,97,101,105,121,5176,5178,5184,5190,5195,1,10940,114,111,110,59,1,352,100,105,108,59,1,350,114,99,59,1,348,59,1,1057,114,59,3,55349,56598,111,114,116,4,4,68,76,82,85,5216,5227,5238,5250,111,119,110,65,114,114,111,119,59,1,8595,101,102,116,65,114,114,111,119,59,1,8592,105,103,104,116,65,114,114,111,119,59,1,8594,112,65,114,114,111,119,59,1,8593,103,109,97,59,1,931,97,108,108,67,105,114,99,108,101,59,1,8728,112,102,59,3,55349,56650,4,2,114,117,5289,5293,116,59,1,8730,97,114,101,4,4,59,73,83,85,5306,5308,5322,5367,1,9633,110,116,101,114,115,101,99,116,105,111,110,59,1,8851,117,4,2,98,112,5329,5347,115,101,116,4,2,59,69,5338,5340,1,8847,113,117,97,108,59,1,8849,101,114,115,101,116,4,2,59,69,5358,5360,1,8848,113,117,97,108,59,1,8850,110,105,111,110,59,1,8852,99,114,59,3,55349,56494,97,114,59,1,8902,4,4,98,99,109,112,5395,5420,5475,5478,4,2,59,115,5401,5403,1,8912,101,116,4,2,59,69,5411,5413,1,8912,113,117,97,108,59,1,8838,4,2,99,104,5426,5468,101,101,100,115,4,4,59,69,83,84,5440,5442,5449,5461,1,8827,113,117,97,108,59,1,10928,108,97,110,116,69,113,117,97,108,59,1,8829,105,108,100,101,59,1,8831,84,104,97,116,59,1,8715,59,1,8721,4,3,59,101,115,5486,5488,5507,1,8913,114,115,101,116,4,2,59,69,5498,5500,1,8835,113,117,97,108,59,1,8839,101,116,59,1,8913,4,11,72,82,83,97,99,102,104,105,111,114,115,5536,5546,5552,5567,5579,5602,5607,5655,5695,5701,5711,79,82,78,5,222,1,59,5544,1,222,65,68,69,59,1,8482,4,2,72,99,5558,5563,99,121,59,1,1035,121,59,1,1062,4,2,98,117,5573,5576,59,1,9,59,1,932,4,3,97,101,121,5587,5593,5599,114,111,110,59,1,356,100,105,108,59,1,354,59,1,1058,114,59,3,55349,56599,4,2,101,105,5613,5631,4,2,114,116,5619,5627,101,102,111,114,101,59,1,8756,97,59,1,920,4,2,99,110,5637,5647,107,83,112,97,99,101,59,3,8287,8202,83,112,97,99,101,59,1,8201,108,100,101,4,4,59,69,70,84,5668,5670,5677,5688,1,8764,113,117,97,108,59,1,8771,117,108,108,69,113,117,97,108,59,1,8773,105,108,100,101,59,1,8776,112,102,59,3,55349,56651,105,112,108,101,68,111,116,59,1,8411,4,2,99,116,5717,5722,114,59,3,55349,56495,114,111,107,59,1,358,4,14,97,98,99,100,102,103,109,110,111,112,114,115,116,117,5758,5789,5805,5823,5830,5835,5846,5852,5921,5937,6089,6095,6101,6108,4,2,99,114,5764,5774,117,116,101,5,218,1,59,5772,1,218,114,4,2,59,111,5781,5783,1,8607,99,105,114,59,1,10569,114,4,2,99,101,5796,5800,121,59,1,1038,118,101,59,1,364,4,2,105,121,5811,5820,114,99,5,219,1,59,5818,1,219,59,1,1059,98,108,97,99,59,1,368,114,59,3,55349,56600,114,97,118,101,5,217,1,59,5844,1,217,97,99,114,59,1,362,4,2,100,105,5858,5905,101,114,4,2,66,80,5866,5892,4,2,97,114,5872,5876,114,59,1,95,97,99,4,2,101,107,5884,5887,59,1,9183,101,116,59,1,9141,97,114,101,110,116,104,101,115,105,115,59,1,9181,111,110,4,2,59,80,5913,5915,1,8899,108,117,115,59,1,8846,4,2,103,112,5927,5932,111,110,59,1,370,102,59,3,55349,56652,4,8,65,68,69,84,97,100,112,115,5955,5985,5996,6009,6026,6033,6044,6075,114,114,111,119,4,3,59,66,68,5967,5969,5974,1,8593,97,114,59,1,10514,111,119,110,65,114,114,111,119,59,1,8645,111,119,110,65,114,114,111,119,59,1,8597,113,117,105,108,105,98,114,105,117,109,59,1,10606,101,101,4,2,59,65,6017,6019,1,8869,114,114,111,119,59,1,8613,114,114,111,119,59,1,8657,111,119,110,97,114,114,111,119,59,1,8661,101,114,4,2,76,82,6052,6063,101,102,116,65,114,114,111,119,59,1,8598,105,103,104,116,65,114,114,111,119,59,1,8599,105,4,2,59,108,6082,6084,1,978,111,110,59,1,933,105,110,103,59,1,366,99,114,59,3,55349,56496,105,108,100,101,59,1,360,109,108,5,220,1,59,6115,1,220,4,9,68,98,99,100,101,102,111,115,118,6137,6143,6148,6152,6166,6250,6255,6261,6267,97,115,104,59,1,8875,97,114,59,1,10987,121,59,1,1042,97,115,104,4,2,59,108,6161,6163,1,8873,59,1,10982,4,2,101,114,6172,6175,59,1,8897,4,3,98,116,121,6183,6188,6238,97,114,59,1,8214,4,2,59,105,6194,6196,1,8214,99,97,108,4,4,66,76,83,84,6209,6214,6220,6231,97,114,59,1,8739,105,110,101,59,1,124,101,112,97,114,97,116,111,114,59,1,10072,105,108,100,101,59,1,8768,84,104,105,110,83,112,97,99,101,59,1,8202,114,59,3,55349,56601,112,102,59,3,55349,56653,99,114,59,3,55349,56497,100,97,115,104,59,1,8874,4,5,99,101,102,111,115,6286,6292,6298,6303,6309,105,114,99,59,1,372,100,103,101,59,1,8896,114,59,3,55349,56602,112,102,59,3,55349,56654,99,114,59,3,55349,56498,4,4,102,105,111,115,6325,6330,6333,6339,114,59,3,55349,56603,59,1,926,112,102,59,3,55349,56655,99,114,59,3,55349,56499,4,9,65,73,85,97,99,102,111,115,117,6365,6370,6375,6380,6391,6405,6410,6416,6422,99,121,59,1,1071,99,121,59,1,1031,99,121,59,1,1070,99,117,116,101,5,221,1,59,6389,1,221,4,2,105,121,6397,6402,114,99,59,1,374,59,1,1067,114,59,3,55349,56604,112,102,59,3,55349,56656,99,114,59,3,55349,56500,109,108,59,1,376,4,8,72,97,99,100,101,102,111,115,6445,6450,6457,6472,6477,6501,6505,6510,99,121,59,1,1046,99,117,116,101,59,1,377,4,2,97,121,6463,6469,114,111,110,59,1,381,59,1,1047,111,116,59,1,379,4,2,114,116,6483,6497,111,87,105,100,116,104,83,112,97,99,101,59,1,8203,97,59,1,918,114,59,1,8488,112,102,59,1,8484,99,114,59,3,55349,56501,4,16,97,98,99,101,102,103,108,109,110,111,112,114,115,116,117,119,6550,6561,6568,6612,6622,6634,6645,6672,6699,6854,6870,6923,6933,6963,6974,6983,99,117,116,101,5,225,1,59,6559,1,225,114,101,118,101,59,1,259,4,6,59,69,100,105,117,121,6582,6584,6588,6591,6600,6609,1,8766,59,3,8766,819,59,1,8767,114,99,5,226,1,59,6598,1,226,116,101,5,180,1,59,6607,1,180,59,1,1072,108,105,103,5,230,1,59,6620,1,230,4,2,59,114,6628,6630,1,8289,59,3,55349,56606,114,97,118,101,5,224,1,59,6643,1,224,4,2,101,112,6651,6667,4,2,102,112,6657,6663,115,121,109,59,1,8501,104,59,1,8501,104,97,59,1,945,4,2,97,112,6678,6692,4,2,99,108,6684,6688,114,59,1,257,103,59,1,10815,5,38,1,59,6697,1,38,4,2,100,103,6705,6737,4,5,59,97,100,115,118,6717,6719,6724,6727,6734,1,8743,110,100,59,1,10837,59,1,10844,108,111,112,101,59,1,10840,59,1,10842,4,7,59,101,108,109,114,115,122,6753,6755,6758,6762,6814,6835,6848,1,8736,59,1,10660,101,59,1,8736,115,100,4,2,59,97,6770,6772,1,8737,4,8,97,98,99,100,101,102,103,104,6790,6793,6796,6799,6802,6805,6808,6811,59,1,10664,59,1,10665,59,1,10666,59,1,10667,59,1,10668,59,1,10669,59,1,10670,59,1,10671,116,4,2,59,118,6821,6823,1,8735,98,4,2,59,100,6830,6832,1,8894,59,1,10653,4,2,112,116,6841,6845,104,59,1,8738,59,1,197,97,114,114,59,1,9084,4,2,103,112,6860,6865,111,110,59,1,261,102,59,3,55349,56658,4,7,59,69,97,101,105,111,112,6886,6888,6891,6897,6900,6904,6908,1,8776,59,1,10864,99,105,114,59,1,10863,59,1,8778,100,59,1,8779,115,59,1,39,114,111,120,4,2,59,101,6917,6919,1,8776,113,59,1,8778,105,110,103,5,229,1,59,6931,1,229,4,3,99,116,121,6941,6946,6949,114,59,3,55349,56502,59,1,42,109,112,4,2,59,101,6957,6959,1,8776,113,59,1,8781,105,108,100,101,5,227,1,59,6972,1,227,109,108,5,228,1,59,6981,1,228,4,2,99,105,6989,6997,111,110,105,110,116,59,1,8755,110,116,59,1,10769,4,16,78,97,98,99,100,101,102,105,107,108,110,111,112,114,115,117,7036,7041,7119,7135,7149,7155,7219,7224,7347,7354,7463,7489,7786,7793,7814,7866,111,116,59,1,10989,4,2,99,114,7047,7094,107,4,4,99,101,112,115,7058,7064,7073,7080,111,110,103,59,1,8780,112,115,105,108,111,110,59,1,1014,114,105,109,101,59,1,8245,105,109,4,2,59,101,7088,7090,1,8765,113,59,1,8909,4,2,118,119,7100,7105,101,101,59,1,8893,101,100,4,2,59,103,7113,7115,1,8965,101,59,1,8965,114,107,4,2,59,116,7127,7129,1,9141,98,114,107,59,1,9142,4,2,111,121,7141,7146,110,103,59,1,8780,59,1,1073,113,117,111,59,1,8222,4,5,99,109,112,114,116,7167,7181,7188,7193,7199,97,117,115,4,2,59,101,7176,7178,1,8757,59,1,8757,112,116,121,118,59,1,10672,115,105,59,1,1014,110,111,117,59,1,8492,4,3,97,104,119,7207,7210,7213,59,1,946,59,1,8502,101,101,110,59,1,8812,114,59,3,55349,56607,103,4,7,99,111,115,116,117,118,119,7241,7262,7288,7305,7328,7335,7340,4,3,97,105,117,7249,7253,7258,112,59,1,8898,114,99,59,1,9711,112,59,1,8899,4,3,100,112,116,7270,7275,7281,111,116,59,1,10752,108,117,115,59,1,10753,105,109,101,115,59,1,10754,4,2,113,116,7294,7300,99,117,112,59,1,10758,97,114,59,1,9733,114,105,97,110,103,108,101,4,2,100,117,7318,7324,111,119,110,59,1,9661,112,59,1,9651,112,108,117,115,59,1,10756,101,101,59,1,8897,101,100,103,101,59,1,8896,97,114,111,119,59,1,10509,4,3,97,107,111,7362,7436,7458,4,2,99,110,7368,7432,107,4,3,108,115,116,7377,7386,7394,111,122,101,110,103,101,59,1,10731,113,117,97,114,101,59,1,9642,114,105,97,110,103,108,101,4,4,59,100,108,114,7411,7413,7419,7425,1,9652,111,119,110,59,1,9662,101,102,116,59,1,9666,105,103,104,116,59,1,9656,107,59,1,9251,4,2,49,51,7442,7454,4,2,50,52,7448,7451,59,1,9618,59,1,9617,52,59,1,9619,99,107,59,1,9608,4,2,101,111,7469,7485,4,2,59,113,7475,7478,3,61,8421,117,105,118,59,3,8801,8421,116,59,1,8976,4,4,112,116,119,120,7499,7504,7517,7523,102,59,3,55349,56659,4,2,59,116,7510,7512,1,8869,111,109,59,1,8869,116,105,101,59,1,8904,4,12,68,72,85,86,98,100,104,109,112,116,117,118,7549,7571,7597,7619,7655,7660,7682,7708,7715,7721,7728,7750,4,4,76,82,108,114,7559,7562,7565,7568,59,1,9559,59,1,9556,59,1,9558,59,1,9555,4,5,59,68,85,100,117,7583,7585,7588,7591,7594,1,9552,59,1,9574,59,1,9577,59,1,9572,59,1,9575,4,4,76,82,108,114,7607,7610,7613,7616,59,1,9565,59,1,9562,59,1,9564,59,1,9561,4,7,59,72,76,82,104,108,114,7635,7637,7640,7643,7646,7649,7652,1,9553,59,1,9580,59,1,9571,59,1,9568,59,1,9579,59,1,9570,59,1,9567,111,120,59,1,10697,4,4,76,82,108,114,7670,7673,7676,7679,59,1,9557,59,1,9554,59,1,9488,59,1,9484,4,5,59,68,85,100,117,7694,7696,7699,7702,7705,1,9472,59,1,9573,59,1,9576,59,1,9516,59,1,9524,105,110,117,115,59,1,8863,108,117,115,59,1,8862,105,109,101,115,59,1,8864,4,4,76,82,108,114,7738,7741,7744,7747,59,1,9563,59,1,9560,59,1,9496,59,1,9492,4,7,59,72,76,82,104,108,114,7766,7768,7771,7774,7777,7780,7783,1,9474,59,1,9578,59,1,9569,59,1,9566,59,1,9532,59,1,9508,59,1,9500,114,105,109,101,59,1,8245,4,2,101,118,7799,7804,118,101,59,1,728,98,97,114,5,166,1,59,7812,1,166,4,4,99,101,105,111,7824,7829,7834,7846,114,59,3,55349,56503,109,105,59,1,8271,109,4,2,59,101,7841,7843,1,8765,59,1,8909,108,4,3,59,98,104,7855,7857,7860,1,92,59,1,10693,115,117,98,59,1,10184,4,2,108,109,7872,7885,108,4,2,59,101,7879,7881,1,8226,116,59,1,8226,112,4,3,59,69,101,7894,7896,7899,1,8782,59,1,10926,4,2,59,113,7905,7907,1,8783,59,1,8783,4,15,97,99,100,101,102,104,105,108,111,114,115,116,117,119,121,7942,8021,8075,8080,8121,8126,8157,8279,8295,8430,8446,8485,8491,8707,8726,4,3,99,112,114,7950,7956,8007,117,116,101,59,1,263,4,6,59,97,98,99,100,115,7970,7972,7977,7984,7998,8003,1,8745,110,100,59,1,10820,114,99,117,112,59,1,10825,4,2,97,117,7990,7994,112,59,1,10827,112,59,1,10823,111,116,59,1,10816,59,3,8745,65024,4,2,101,111,8013,8017,116,59,1,8257,110,59,1,711,4,4,97,101,105,117,8031,8046,8056,8061,4,2,112,114,8037,8041,115,59,1,10829,111,110,59,1,269,100,105,108,5,231,1,59,8054,1,231,114,99,59,1,265,112,115,4,2,59,115,8069,8071,1,10828,109,59,1,10832,111,116,59,1,267,4,3,100,109,110,8088,8097,8104,105,108,5,184,1,59,8095,1,184,112,116,121,118,59,1,10674,116,5,162,2,59,101,8112,8114,1,162,114,100,111,116,59,1,183,114,59,3,55349,56608,4,3,99,101,105,8134,8138,8154,121,59,1,1095,99,107,4,2,59,109,8146,8148,1,10003,97,114,107,59,1,10003,59,1,967,114,4,7,59,69,99,101,102,109,115,8174,8176,8179,8258,8261,8268,8273,1,9675,59,1,10691,4,3,59,101,108,8187,8189,8193,1,710,113,59,1,8791,101,4,2,97,100,8200,8223,114,114,111,119,4,2,108,114,8210,8216,101,102,116,59,1,8634,105,103,104,116,59,1,8635,4,5,82,83,97,99,100,8235,8238,8241,8246,8252,59,1,174,59,1,9416,115,116,59,1,8859,105,114,99,59,1,8858,97,115,104,59,1,8861,59,1,8791,110,105,110,116,59,1,10768,105,100,59,1,10991,99,105,114,59,1,10690,117,98,115,4,2,59,117,8288,8290,1,9827,105,116,59,1,9827,4,4,108,109,110,112,8305,8326,8376,8400,111,110,4,2,59,101,8313,8315,1,58,4,2,59,113,8321,8323,1,8788,59,1,8788,4,2,109,112,8332,8344,97,4,2,59,116,8339,8341,1,44,59,1,64,4,3,59,102,108,8352,8354,8358,1,8705,110,59,1,8728,101,4,2,109,120,8365,8371,101,110,116,59,1,8705,101,115,59,1,8450,4,2,103,105,8382,8395,4,2,59,100,8388,8390,1,8773,111,116,59,1,10861,110,116,59,1,8750,4,3,102,114,121,8408,8412,8417,59,3,55349,56660,111,100,59,1,8720,5,169,2,59,115,8424,8426,1,169,114,59,1,8471,4,2,97,111,8436,8441,114,114,59,1,8629,115,115,59,1,10007,4,2,99,117,8452,8457,114,59,3,55349,56504,4,2,98,112,8463,8474,4,2,59,101,8469,8471,1,10959,59,1,10961,4,2,59,101,8480,8482,1,10960,59,1,10962,100,111,116,59,1,8943,4,7,100,101,108,112,114,118,119,8507,8522,8536,8550,8600,8697,8702,97,114,114,4,2,108,114,8516,8519,59,1,10552,59,1,10549,4,2,112,115,8528,8532,114,59,1,8926,99,59,1,8927,97,114,114,4,2,59,112,8545,8547,1,8630,59,1,10557,4,6,59,98,99,100,111,115,8564,8566,8573,8587,8592,8596,1,8746,114,99,97,112,59,1,10824,4,2,97,117,8579,8583,112,59,1,10822,112,59,1,10826,111,116,59,1,8845,114,59,1,10821,59,3,8746,65024,4,4,97,108,114,118,8610,8623,8663,8672,114,114,4,2,59,109,8618,8620,1,8631,59,1,10556,121,4,3,101,118,119,8632,8651,8656,113,4,2,112,115,8639,8645,114,101,99,59,1,8926,117,99,99,59,1,8927,101,101,59,1,8910,101,100,103,101,59,1,8911,101,110,5,164,1,59,8670,1,164,101,97,114,114,111,119,4,2,108,114,8684,8690,101,102,116,59,1,8630,105,103,104,116,59,1,8631,101,101,59,1,8910,101,100,59,1,8911,4,2,99,105,8713,8721,111,110,105,110,116,59,1,8754,110,116,59,1,8753,108,99,116,121,59,1,9005,4,19,65,72,97,98,99,100,101,102,104,105,106,108,111,114,115,116,117,119,122,8773,8778,8783,8821,8839,8854,8887,8914,8930,8944,9036,9041,9058,9197,9227,9258,9281,9297,9305,114,114,59,1,8659,97,114,59,1,10597,4,4,103,108,114,115,8793,8799,8805,8809,103,101,114,59,1,8224,101,116,104,59,1,8504,114,59,1,8595,104,4,2,59,118,8816,8818,1,8208,59,1,8867,4,2,107,108,8827,8834,97,114,111,119,59,1,10511,97,99,59,1,733,4,2,97,121,8845,8851,114,111,110,59,1,271,59,1,1076,4,3,59,97,111,8862,8864,8880,1,8518,4,2,103,114,8870,8876,103,101,114,59,1,8225,114,59,1,8650,116,115,101,113,59,1,10871,4,3,103,108,109,8895,8902,8907,5,176,1,59,8900,1,176,116,97,59,1,948,112,116,121,118,59,1,10673,4,2,105,114,8920,8926,115,104,116,59,1,10623,59,3,55349,56609,97,114,4,2,108,114,8938,8941,59,1,8643,59,1,8642,4,5,97,101,103,115,118,8956,8986,8989,8996,9001,109,4,3,59,111,115,8965,8967,8983,1,8900,110,100,4,2,59,115,8975,8977,1,8900,117,105,116,59,1,9830,59,1,9830,59,1,168,97,109,109,97,59,1,989,105,110,59,1,8946,4,3,59,105,111,9009,9011,9031,1,247,100,101,5,247,2,59,111,9020,9022,1,247,110,116,105,109,101,115,59,1,8903,110,120,59,1,8903,99,121,59,1,1106,99,4,2,111,114,9048,9053,114,110,59,1,8990,111,112,59,1,8973,4,5,108,112,116,117,119,9070,9076,9081,9130,9144,108,97,114,59,1,36,102,59,3,55349,56661,4,5,59,101,109,112,115,9093,9095,9109,9116,9122,1,729,113,4,2,59,100,9102,9104,1,8784,111,116,59,1,8785,105,110,117,115,59,1,8760,108,117,115,59,1,8724,113,117,97,114,101,59,1,8865,98,108,101,98,97,114,119,101,100,103,101,59,1,8966,110,4,3,97,100,104,9153,9160,9172,114,114,111,119,59,1,8595,111,119,110,97,114,114,111,119,115,59,1,8650,97,114,112,111,111,110,4,2,108,114,9184,9190,101,102,116,59,1,8643,105,103,104,116,59,1,8642,4,2,98,99,9203,9211,107,97,114,111,119,59,1,10512,4,2,111,114,9217,9222,114,110,59,1,8991,111,112,59,1,8972,4,3,99,111,116,9235,9248,9252,4,2,114,121,9241,9245,59,3,55349,56505,59,1,1109,108,59,1,10742,114,111,107,59,1,273,4,2,100,114,9264,9269,111,116,59,1,8945,105,4,2,59,102,9276,9278,1,9663,59,1,9662,4,2,97,104,9287,9292,114,114,59,1,8693,97,114,59,1,10607,97,110,103,108,101,59,1,10662,4,2,99,105,9311,9315,121,59,1,1119,103,114,97,114,114,59,1,10239,4,18,68,97,99,100,101,102,103,108,109,110,111,112,113,114,115,116,117,120,9361,9376,9398,9439,9444,9447,9462,9495,9531,9585,9598,9614,9659,9755,9771,9792,9808,9826,4,2,68,111,9367,9372,111,116,59,1,10871,116,59,1,8785,4,2,99,115,9382,9392,117,116,101,5,233,1,59,9390,1,233,116,101,114,59,1,10862,4,4,97,105,111,121,9408,9414,9430,9436,114,111,110,59,1,283,114,4,2,59,99,9421,9423,1,8790,5,234,1,59,9428,1,234,108,111,110,59,1,8789,59,1,1101,111,116,59,1,279,59,1,8519,4,2,68,114,9453,9458,111,116,59,1,8786,59,3,55349,56610,4,3,59,114,115,9470,9472,9482,1,10906,97,118,101,5,232,1,59,9480,1,232,4,2,59,100,9488,9490,1,10902,111,116,59,1,10904,4,4,59,105,108,115,9505,9507,9515,9518,1,10905,110,116,101,114,115,59,1,9191,59,1,8467,4,2,59,100,9524,9526,1,10901,111,116,59,1,10903,4,3,97,112,115,9539,9544,9564,99,114,59,1,275,116,121,4,3,59,115,118,9554,9556,9561,1,8709,101,116,59,1,8709,59,1,8709,112,4,2,49,59,9571,9583,4,2,51,52,9577,9580,59,1,8196,59,1,8197,1,8195,4,2,103,115,9591,9594,59,1,331,112,59,1,8194,4,2,103,112,9604,9609,111,110,59,1,281,102,59,3,55349,56662,4,3,97,108,115,9622,9635,9640,114,4,2,59,115,9629,9631,1,8917,108,59,1,10723,117,115,59,1,10865,105,4,3,59,108,118,9649,9651,9656,1,949,111,110,59,1,949,59,1,1013,4,4,99,115,117,118,9669,9686,9716,9747,4,2,105,111,9675,9680,114,99,59,1,8790,108,111,110,59,1,8789,4,2,105,108,9692,9696,109,59,1,8770,97,110,116,4,2,103,108,9705,9710,116,114,59,1,10902,101,115,115,59,1,10901,4,3,97,101,105,9724,9729,9734,108,115,59,1,61,115,116,59,1,8799,118,4,2,59,68,9741,9743,1,8801,68,59,1,10872,112,97,114,115,108,59,1,10725,4,2,68,97,9761,9766,111,116,59,1,8787,114,114,59,1,10609,4,3,99,100,105,9779,9783,9788,114,59,1,8495,111,116,59,1,8784,109,59,1,8770,4,2,97,104,9798,9801,59,1,951,5,240,1,59,9806,1,240,4,2,109,114,9814,9822,108,5,235,1,59,9820,1,235,111,59,1,8364,4,3,99,105,112,9834,9838,9843,108,59,1,33,115,116,59,1,8707,4,2,101,111,9849,9859,99,116,97,116,105,111,110,59,1,8496,110,101,110,116,105,97,108,101,59,1,8519,4,12,97,99,101,102,105,106,108,110,111,112,114,115,9896,9910,9914,9921,9954,9960,9967,9989,9994,10027,10036,10164,108,108,105,110,103,100,111,116,115,101,113,59,1,8786,121,59,1,1092,109,97,108,101,59,1,9792,4,3,105,108,114,9929,9935,9950,108,105,103,59,1,64259,4,2,105,108,9941,9945,103,59,1,64256,105,103,59,1,64260,59,3,55349,56611,108,105,103,59,1,64257,108,105,103,59,3,102,106,4,3,97,108,116,9975,9979,9984,116,59,1,9837,105,103,59,1,64258,110,115,59,1,9649,111,102,59,1,402,4,2,112,114,10000,10005,102,59,3,55349,56663,4,2,97,107,10011,10016,108,108,59,1,8704,4,2,59,118,10022,10024,1,8916,59,1,10969,97,114,116,105,110,116,59,1,10765,4,2,97,111,10042,10159,4,2,99,115,10048,10155,4,6,49,50,51,52,53,55,10062,10102,10114,10135,10139,10151,4,6,50,51,52,53,54,56,10076,10083,10086,10093,10096,10099,5,189,1,59,10081,1,189,59,1,8531,5,188,1,59,10091,1,188,59,1,8533,59,1,8537,59,1,8539,4,2,51,53,10108,10111,59,1,8532,59,1,8534,4,3,52,53,56,10122,10129,10132,5,190,1,59,10127,1,190,59,1,8535,59,1,8540,53,59,1,8536,4,2,54,56,10145,10148,59,1,8538,59,1,8541,56,59,1,8542,108,59,1,8260,119,110,59,1,8994,99,114,59,3,55349,56507,4,17,69,97,98,99,100,101,102,103,105,106,108,110,111,114,115,116,118,10206,10217,10247,10254,10268,10273,10358,10363,10374,10380,10385,10406,10458,10464,10470,10497,10610,4,2,59,108,10212,10214,1,8807,59,1,10892,4,3,99,109,112,10225,10231,10244,117,116,101,59,1,501,109,97,4,2,59,100,10239,10241,1,947,59,1,989,59,1,10886,114,101,118,101,59,1,287,4,2,105,121,10260,10265,114,99,59,1,285,59,1,1075,111,116,59,1,289,4,4,59,108,113,115,10283,10285,10288,10308,1,8805,59,1,8923,4,3,59,113,115,10296,10298,10301,1,8805,59,1,8807,108,97,110,116,59,1,10878,4,4,59,99,100,108,10318,10320,10324,10345,1,10878,99,59,1,10921,111,116,4,2,59,111,10332,10334,1,10880,4,2,59,108,10340,10342,1,10882,59,1,10884,4,2,59,101,10351,10354,3,8923,65024,115,59,1,10900,114,59,3,55349,56612,4,2,59,103,10369,10371,1,8811,59,1,8921,109,101,108,59,1,8503,99,121,59,1,1107,4,4,59,69,97,106,10395,10397,10400,10403,1,8823,59,1,10898,59,1,10917,59,1,10916,4,4,69,97,101,115,10416,10419,10434,10453,59,1,8809,112,4,2,59,112,10426,10428,1,10890,114,111,120,59,1,10890,4,2,59,113,10440,10442,1,10888,4,2,59,113,10448,10450,1,10888,59,1,8809,105,109,59,1,8935,112,102,59,3,55349,56664,97,118,101,59,1,96,4,2,99,105,10476,10480,114,59,1,8458,109,4,3,59,101,108,10489,10491,10494,1,8819,59,1,10894,59,1,10896,5,62,6,59,99,100,108,113,114,10512,10514,10527,10532,10538,10545,1,62,4,2,99,105,10520,10523,59,1,10919,114,59,1,10874,111,116,59,1,8919,80,97,114,59,1,10645,117,101,115,116,59,1,10876,4,5,97,100,101,108,115,10557,10574,10579,10599,10605,4,2,112,114,10563,10570,112,114,111,120,59,1,10886,114,59,1,10616,111,116,59,1,8919,113,4,2,108,113,10586,10592,101,115,115,59,1,8923,108,101,115,115,59,1,10892,101,115,115,59,1,8823,105,109,59,1,8819,4,2,101,110,10616,10626,114,116,110,101,113,113,59,3,8809,65024,69,59,3,8809,65024,4,10,65,97,98,99,101,102,107,111,115,121,10653,10658,10713,10718,10724,10760,10765,10786,10850,10875,114,114,59,1,8660,4,4,105,108,109,114,10668,10674,10678,10684,114,115,112,59,1,8202,102,59,1,189,105,108,116,59,1,8459,4,2,100,114,10690,10695,99,121,59,1,1098,4,3,59,99,119,10703,10705,10710,1,8596,105,114,59,1,10568,59,1,8621,97,114,59,1,8463,105,114,99,59,1,293,4,3,97,108,114,10732,10748,10754,114,116,115,4,2,59,117,10741,10743,1,9829,105,116,59,1,9829,108,105,112,59,1,8230,99,111,110,59,1,8889,114,59,3,55349,56613,115,4,2,101,119,10772,10779,97,114,111,119,59,1,10533,97,114,111,119,59,1,10534,4,5,97,109,111,112,114,10798,10803,10809,10839,10844,114,114,59,1,8703,116,104,116,59,1,8763,107,4,2,108,114,10816,10827,101,102,116,97,114,114,111,119,59,1,8617,105,103,104,116,97,114,114,111,119,59,1,8618,102,59,3,55349,56665,98,97,114,59,1,8213,4,3,99,108,116,10858,10863,10869,114,59,3,55349,56509,97,115,104,59,1,8463,114,111,107,59,1,295,4,2,98,112,10881,10887,117,108,108,59,1,8259,104,101,110,59,1,8208,4,15,97,99,101,102,103,105,106,109,110,111,112,113,115,116,117,10925,10936,10958,10977,10990,11001,11039,11045,11101,11192,11220,11226,11237,11285,11299,99,117,116,101,5,237,1,59,10934,1,237,4,3,59,105,121,10944,10946,10955,1,8291,114,99,5,238,1,59,10953,1,238,59,1,1080,4,2,99,120,10964,10968,121,59,1,1077,99,108,5,161,1,59,10975,1,161,4,2,102,114,10983,10986,59,1,8660,59,3,55349,56614,114,97,118,101,5,236,1,59,10999,1,236,4,4,59,105,110,111,11011,11013,11028,11034,1,8520,4,2,105,110,11019,11024,110,116,59,1,10764,116,59,1,8749,102,105,110,59,1,10716,116,97,59,1,8489,108,105,103,59,1,307,4,3,97,111,112,11053,11092,11096,4,3,99,103,116,11061,11065,11088,114,59,1,299,4,3,101,108,112,11073,11076,11082,59,1,8465,105,110,101,59,1,8464,97,114,116,59,1,8465,104,59,1,305,102,59,1,8887,101,100,59,1,437,4,5,59,99,102,111,116,11113,11115,11121,11136,11142,1,8712,97,114,101,59,1,8453,105,110,4,2,59,116,11129,11131,1,8734,105,101,59,1,10717,100,111,116,59,1,305,4,5,59,99,101,108,112,11154,11156,11161,11179,11186,1,8747,97,108,59,1,8890,4,2,103,114,11167,11173,101,114,115,59,1,8484,99,97,108,59,1,8890,97,114,104,107,59,1,10775,114,111,100,59,1,10812,4,4,99,103,112,116,11202,11206,11211,11216,121,59,1,1105,111,110,59,1,303,102,59,3,55349,56666,97,59,1,953,114,111,100,59,1,10812,117,101,115,116,5,191,1,59,11235,1,191,4,2,99,105,11243,11248,114,59,3,55349,56510,110,4,5,59,69,100,115,118,11261,11263,11266,11271,11282,1,8712,59,1,8953,111,116,59,1,8949,4,2,59,118,11277,11279,1,8948,59,1,8947,59,1,8712,4,2,59,105,11291,11293,1,8290,108,100,101,59,1,297,4,2,107,109,11305,11310,99,121,59,1,1110,108,5,239,1,59,11316,1,239,4,6,99,102,109,111,115,117,11332,11346,11351,11357,11363,11380,4,2,105,121,11338,11343,114,99,59,1,309,59,1,1081,114,59,3,55349,56615,97,116,104,59,1,567,112,102,59,3,55349,56667,4,2,99,101,11369,11374,114,59,3,55349,56511,114,99,121,59,1,1112,107,99,121,59,1,1108,4,8,97,99,102,103,104,106,111,115,11404,11418,11433,11438,11445,11450,11455,11461,112,112,97,4,2,59,118,11413,11415,1,954,59,1,1008,4,2,101,121,11424,11430,100,105,108,59,1,311,59,1,1082,114,59,3,55349,56616,114,101,101,110,59,1,312,99,121,59,1,1093,99,121,59,1,1116,112,102,59,3,55349,56668,99,114,59,3,55349,56512,4,23,65,66,69,72,97,98,99,100,101,102,103,104,106,108,109,110,111,112,114,115,116,117,118,11515,11538,11544,11555,11560,11721,11780,11818,11868,12136,12160,12171,12203,12208,12246,12275,12327,12509,12523,12569,12641,12732,12752,4,3,97,114,116,11523,11528,11532,114,114,59,1,8666,114,59,1,8656,97,105,108,59,1,10523,97,114,114,59,1,10510,4,2,59,103,11550,11552,1,8806,59,1,10891,97,114,59,1,10594,4,9,99,101,103,109,110,112,113,114,116,11580,11586,11594,11600,11606,11624,11627,11636,11694,117,116,101,59,1,314,109,112,116,121,118,59,1,10676,114,97,110,59,1,8466,98,100,97,59,1,955,103,4,3,59,100,108,11615,11617,11620,1,10216,59,1,10641,101,59,1,10216,59,1,10885,117,111,5,171,1,59,11634,1,171,114,4,8,59,98,102,104,108,112,115,116,11655,11657,11669,11673,11677,11681,11685,11690,1,8592,4,2,59,102,11663,11665,1,8676,115,59,1,10527,115,59,1,10525,107,59,1,8617,112,59,1,8619,108,59,1,10553,105,109,59,1,10611,108,59,1,8610,4,3,59,97,101,11702,11704,11709,1,10923,105,108,59,1,10521,4,2,59,115,11715,11717,1,10925,59,3,10925,65024,4,3,97,98,114,11729,11734,11739,114,114,59,1,10508,114,107,59,1,10098,4,2,97,107,11745,11758,99,4,2,101,107,11752,11755,59,1,123,59,1,91,4,2,101,115,11764,11767,59,1,10635,108,4,2,100,117,11774,11777,59,1,10639,59,1,10637,4,4,97,101,117,121,11790,11796,11811,11815,114,111,110,59,1,318,4,2,100,105,11802,11807,105,108,59,1,316,108,59,1,8968,98,59,1,123,59,1,1083,4,4,99,113,114,115,11828,11832,11845,11864,97,59,1,10550,117,111,4,2,59,114,11840,11842,1,8220,59,1,8222,4,2,100,117,11851,11857,104,97,114,59,1,10599,115,104,97,114,59,1,10571,104,59,1,8626,4,5,59,102,103,113,115,11880,11882,12008,12011,12031,1,8804,116,4,5,97,104,108,114,116,11895,11913,11935,11947,11996,114,114,111,119,4,2,59,116,11905,11907,1,8592,97,105,108,59,1,8610,97,114,112,111,111,110,4,2,100,117,11925,11931,111,119,110,59,1,8637,112,59,1,8636,101,102,116,97,114,114,111,119,115,59,1,8647,105,103,104,116,4,3,97,104,115,11959,11974,11984,114,114,111,119,4,2,59,115,11969,11971,1,8596,59,1,8646,97,114,112,111,111,110,115,59,1,8651,113,117,105,103,97,114,114,111,119,59,1,8621,104,114,101,101,116,105,109,101,115,59,1,8907,59,1,8922,4,3,59,113,115,12019,12021,12024,1,8804,59,1,8806,108,97,110,116,59,1,10877,4,5,59,99,100,103,115,12043,12045,12049,12070,12083,1,10877,99,59,1,10920,111,116,4,2,59,111,12057,12059,1,10879,4,2,59,114,12065,12067,1,10881,59,1,10883,4,2,59,101,12076,12079,3,8922,65024,115,59,1,10899,4,5,97,100,101,103,115,12095,12103,12108,12126,12131,112,112,114,111,120,59,1,10885,111,116,59,1,8918,113,4,2,103,113,12115,12120,116,114,59,1,8922,103,116,114,59,1,10891,116,114,59,1,8822,105,109,59,1,8818,4,3,105,108,114,12144,12150,12156,115,104,116,59,1,10620,111,111,114,59,1,8970,59,3,55349,56617,4,2,59,69,12166,12168,1,8822,59,1,10897,4,2,97,98,12177,12198,114,4,2,100,117,12184,12187,59,1,8637,4,2,59,108,12193,12195,1,8636,59,1,10602,108,107,59,1,9604,99,121,59,1,1113,4,5,59,97,99,104,116,12220,12222,12227,12235,12241,1,8810,114,114,59,1,8647,111,114,110,101,114,59,1,8990,97,114,100,59,1,10603,114,105,59,1,9722,4,2,105,111,12252,12258,100,111,116,59,1,320,117,115,116,4,2,59,97,12267,12269,1,9136,99,104,101,59,1,9136,4,4,69,97,101,115,12285,12288,12303,12322,59,1,8808,112,4,2,59,112,12295,12297,1,10889,114,111,120,59,1,10889,4,2,59,113,12309,12311,1,10887,4,2,59,113,12317,12319,1,10887,59,1,8808,105,109,59,1,8934,4,8,97,98,110,111,112,116,119,122,12345,12359,12364,12421,12446,12467,12474,12490,4,2,110,114,12351,12355,103,59,1,10220,114,59,1,8701,114,107,59,1,10214,103,4,3,108,109,114,12373,12401,12409,101,102,116,4,2,97,114,12382,12389,114,114,111,119,59,1,10229,105,103,104,116,97,114,114,111,119,59,1,10231,97,112,115,116,111,59,1,10236,105,103,104,116,97,114,114,111,119,59,1,10230,112,97,114,114,111,119,4,2,108,114,12433,12439,101,102,116,59,1,8619,105,103,104,116,59,1,8620,4,3,97,102,108,12454,12458,12462,114,59,1,10629,59,3,55349,56669,117,115,59,1,10797,105,109,101,115,59,1,10804,4,2,97,98,12480,12485,115,116,59,1,8727,97,114,59,1,95,4,3,59,101,102,12498,12500,12506,1,9674,110,103,101,59,1,9674,59,1,10731,97,114,4,2,59,108,12517,12519,1,40,116,59,1,10643,4,5,97,99,104,109,116,12535,12540,12548,12561,12564,114,114,59,1,8646,111,114,110,101,114,59,1,8991,97,114,4,2,59,100,12556,12558,1,8651,59,1,10605,59,1,8206,114,105,59,1,8895,4,6,97,99,104,105,113,116,12583,12589,12594,12597,12614,12635,113,117,111,59,1,8249,114,59,3,55349,56513,59,1,8624,109,4,3,59,101,103,12606,12608,12611,1,8818,59,1,10893,59,1,10895,4,2,98,117,12620,12623,59,1,91,111,4,2,59,114,12630,12632,1,8216,59,1,8218,114,111,107,59,1,322,5,60,8,59,99,100,104,105,108,113,114,12660,12662,12675,12680,12686,12692,12698,12705,1,60,4,2,99,105,12668,12671,59,1,10918,114,59,1,10873,111,116,59,1,8918,114,101,101,59,1,8907,109,101,115,59,1,8905,97,114,114,59,1,10614,117,101,115,116,59,1,10875,4,2,80,105,12711,12716,97,114,59,1,10646,4,3,59,101,102,12724,12726,12729,1,9667,59,1,8884,59,1,9666,114,4,2,100,117,12739,12746,115,104,97,114,59,1,10570,104,97,114,59,1,10598,4,2,101,110,12758,12768,114,116,110,101,113,113,59,3,8808,65024,69,59,3,8808,65024,4,14,68,97,99,100,101,102,104,105,108,110,111,112,115,117,12803,12809,12893,12908,12914,12928,12933,12937,13011,13025,13032,13049,13052,13069,68,111,116,59,1,8762,4,4,99,108,112,114,12819,12827,12849,12887,114,5,175,1,59,12825,1,175,4,2,101,116,12833,12836,59,1,9794,4,2,59,101,12842,12844,1,10016,115,101,59,1,10016,4,2,59,115,12855,12857,1,8614,116,111,4,4,59,100,108,117,12869,12871,12877,12883,1,8614,111,119,110,59,1,8615,101,102,116,59,1,8612,112,59,1,8613,107,101,114,59,1,9646,4,2,111,121,12899,12905,109,109,97,59,1,10793,59,1,1084,97,115,104,59,1,8212,97,115,117,114,101,100,97,110,103,108,101,59,1,8737,114,59,3,55349,56618,111,59,1,8487,4,3,99,100,110,12945,12954,12985,114,111,5,181,1,59,12952,1,181,4,4,59,97,99,100,12964,12966,12971,12976,1,8739,115,116,59,1,42,105,114,59,1,10992,111,116,5,183,1,59,12983,1,183,117,115,4,3,59,98,100,12995,12997,13000,1,8722,59,1,8863,4,2,59,117,13006,13008,1,8760,59,1,10794,4,2,99,100,13017,13021,112,59,1,10971,114,59,1,8230,112,108,117,115,59,1,8723,4,2,100,112,13038,13044,101,108,115,59,1,8871,102,59,3,55349,56670,59,1,8723,4,2,99,116,13058,13063,114,59,3,55349,56514,112,111,115,59,1,8766,4,3,59,108,109,13077,13079,13087,1,956,116,105,109,97,112,59,1,8888,97,112,59,1,8888,4,24,71,76,82,86,97,98,99,100,101,102,103,104,105,106,108,109,111,112,114,115,116,117,118,119,13142,13165,13217,13229,13247,13330,13359,13414,13420,13508,13513,13579,13602,13626,13631,13762,13767,13855,13936,13995,14214,14285,14312,14432,4,2,103,116,13148,13152,59,3,8921,824,4,2,59,118,13158,13161,3,8811,8402,59,3,8811,824,4,3,101,108,116,13173,13200,13204,102,116,4,2,97,114,13181,13188,114,114,111,119,59,1,8653,105,103,104,116,97,114,114,111,119,59,1,8654,59,3,8920,824,4,2,59,118,13210,13213,3,8810,8402,59,3,8810,824,105,103,104,116,97,114,114,111,119,59,1,8655,4,2,68,100,13235,13241,97,115,104,59,1,8879,97,115,104,59,1,8878,4,5,98,99,110,112,116,13259,13264,13270,13275,13308,108,97,59,1,8711,117,116,101,59,1,324,103,59,3,8736,8402,4,5,59,69,105,111,112,13287,13289,13293,13298,13302,1,8777,59,3,10864,824,100,59,3,8779,824,115,59,1,329,114,111,120,59,1,8777,117,114,4,2,59,97,13316,13318,1,9838,108,4,2,59,115,13325,13327,1,9838,59,1,8469,4,2,115,117,13336,13344,112,5,160,1,59,13342,1,160,109,112,4,2,59,101,13352,13355,3,8782,824,59,3,8783,824,4,5,97,101,111,117,121,13371,13385,13391,13407,13411,4,2,112,114,13377,13380,59,1,10819,111,110,59,1,328,100,105,108,59,1,326,110,103,4,2,59,100,13399,13401,1,8775,111,116,59,3,10861,824,112,59,1,10818,59,1,1085,97,115,104,59,1,8211,4,7,59,65,97,100,113,115,120,13436,13438,13443,13466,13472,13478,13494,1,8800,114,114,59,1,8663,114,4,2,104,114,13450,13454,107,59,1,10532,4,2,59,111,13460,13462,1,8599,119,59,1,8599,111,116,59,3,8784,824,117,105,118,59,1,8802,4,2,101,105,13484,13489,97,114,59,1,10536,109,59,3,8770,824,105,115,116,4,2,59,115,13503,13505,1,8708,59,1,8708,114,59,3,55349,56619,4,4,69,101,115,116,13523,13527,13563,13568,59,3,8807,824,4,3,59,113,115,13535,13537,13559,1,8817,4,3,59,113,115,13545,13547,13551,1,8817,59,3,8807,824,108,97,110,116,59,3,10878,824,59,3,10878,824,105,109,59,1,8821,4,2,59,114,13574,13576,1,8815,59,1,8815,4,3,65,97,112,13587,13592,13597,114,114,59,1,8654,114,114,59,1,8622,97,114,59,1,10994,4,3,59,115,118,13610,13612,13623,1,8715,4,2,59,100,13618,13620,1,8956,59,1,8954,59,1,8715,99,121,59,1,1114,4,7,65,69,97,100,101,115,116,13647,13652,13656,13661,13665,13737,13742,114,114,59,1,8653,59,3,8806,824,114,114,59,1,8602,114,59,1,8229,4,4,59,102,113,115,13675,13677,13703,13725,1,8816,116,4,2,97,114,13684,13691,114,114,111,119,59,1,8602,105,103,104,116,97,114,114,111,119,59,1,8622,4,3,59,113,115,13711,13713,13717,1,8816,59,3,8806,824,108,97,110,116,59,3,10877,824,4,2,59,115,13731,13734,3,10877,824,59,1,8814,105,109,59,1,8820,4,2,59,114,13748,13750,1,8814,105,4,2,59,101,13757,13759,1,8938,59,1,8940,105,100,59,1,8740,4,2,112,116,13773,13778,102,59,3,55349,56671,5,172,3,59,105,110,13787,13789,13829,1,172,110,4,4,59,69,100,118,13800,13802,13806,13812,1,8713,59,3,8953,824,111,116,59,3,8949,824,4,3,97,98,99,13820,13823,13826,59,1,8713,59,1,8951,59,1,8950,105,4,2,59,118,13836,13838,1,8716,4,3,97,98,99,13846,13849,13852,59,1,8716,59,1,8958,59,1,8957,4,3,97,111,114,13863,13892,13899,114,4,4,59,97,115,116,13874,13876,13883,13888,1,8742,108,108,101,108,59,1,8742,108,59,3,11005,8421,59,3,8706,824,108,105,110,116,59,1,10772,4,3,59,99,101,13907,13909,13914,1,8832,117,101,59,1,8928,4,2,59,99,13920,13923,3,10927,824,4,2,59,101,13929,13931,1,8832,113,59,3,10927,824,4,4,65,97,105,116,13946,13951,13971,13982,114,114,59,1,8655,114,114,4,3,59,99,119,13961,13963,13967,1,8603,59,3,10547,824,59,3,8605,824,103,104,116,97,114,114,111,119,59,1,8603,114,105,4,2,59,101,13990,13992,1,8939,59,1,8941,4,7,99,104,105,109,112,113,117,14011,14036,14060,14080,14085,14090,14106,4,4,59,99,101,114,14021,14023,14028,14032,1,8833,117,101,59,1,8929,59,3,10928,824,59,3,55349,56515,111,114,116,4,2,109,112,14045,14050,105,100,59,1,8740,97,114,97,108,108,101,108,59,1,8742,109,4,2,59,101,14067,14069,1,8769,4,2,59,113,14075,14077,1,8772,59,1,8772,105,100,59,1,8740,97,114,59,1,8742,115,117,4,2,98,112,14098,14102,101,59,1,8930,101,59,1,8931,4,3,98,99,112,14114,14157,14171,4,4,59,69,101,115,14124,14126,14130,14133,1,8836,59,3,10949,824,59,1,8840,101,116,4,2,59,101,14141,14144,3,8834,8402,113,4,2,59,113,14151,14153,1,8840,59,3,10949,824,99,4,2,59,101,14164,14166,1,8833,113,59,3,10928,824,4,4,59,69,101,115,14181,14183,14187,14190,1,8837,59,3,10950,824,59,1,8841,101,116,4,2,59,101,14198,14201,3,8835,8402,113,4,2,59,113,14208,14210,1,8841,59,3,10950,824,4,4,103,105,108,114,14224,14228,14238,14242,108,59,1,8825,108,100,101,5,241,1,59,14236,1,241,103,59,1,8824,105,97,110,103,108,101,4,2,108,114,14254,14269,101,102,116,4,2,59,101,14263,14265,1,8938,113,59,1,8940,105,103,104,116,4,2,59,101,14279,14281,1,8939,113,59,1,8941,4,2,59,109,14291,14293,1,957,4,3,59,101,115,14301,14303,14308,1,35,114,111,59,1,8470,112,59,1,8199,4,9,68,72,97,100,103,105,108,114,115,14332,14338,14344,14349,14355,14369,14376,14408,14426,97,115,104,59,1,8877,97,114,114,59,1,10500,112,59,3,8781,8402,97,115,104,59,1,8876,4,2,101,116,14361,14365,59,3,8805,8402,59,3,62,8402,110,102,105,110,59,1,10718,4,3,65,101,116,14384,14389,14393,114,114,59,1,10498,59,3,8804,8402,4,2,59,114,14399,14402,3,60,8402,105,101,59,3,8884,8402,4,2,65,116,14414,14419,114,114,59,1,10499,114,105,101,59,3,8885,8402,105,109,59,3,8764,8402,4,3,65,97,110,14440,14445,14468,114,114,59,1,8662,114,4,2,104,114,14452,14456,107,59,1,10531,4,2,59,111,14462,14464,1,8598,119,59,1,8598,101,97,114,59,1,10535,4,18,83,97,99,100,101,102,103,104,105,108,109,111,112,114,115,116,117,118,14512,14515,14535,14560,14597,14603,14618,14643,14657,14662,14701,14741,14747,14769,14851,14877,14907,14916,59,1,9416,4,2,99,115,14521,14531,117,116,101,5,243,1,59,14529,1,243,116,59,1,8859,4,2,105,121,14541,14557,114,4,2,59,99,14548,14550,1,8858,5,244,1,59,14555,1,244,59,1,1086,4,5,97,98,105,111,115,14572,14577,14583,14587,14591,115,104,59,1,8861,108,97,99,59,1,337,118,59,1,10808,116,59,1,8857,111,108,100,59,1,10684,108,105,103,59,1,339,4,2,99,114,14609,14614,105,114,59,1,10687,59,3,55349,56620,4,3,111,114,116,14626,14630,14640,110,59,1,731,97,118,101,5,242,1,59,14638,1,242,59,1,10689,4,2,98,109,14649,14654,97,114,59,1,10677,59,1,937,110,116,59,1,8750,4,4,97,99,105,116,14672,14677,14693,14698,114,114,59,1,8634,4,2,105,114,14683,14687,114,59,1,10686,111,115,115,59,1,10683,110,101,59,1,8254,59,1,10688,4,3,97,101,105,14709,14714,14719,99,114,59,1,333,103,97,59,1,969,4,3,99,100,110,14727,14733,14736,114,111,110,59,1,959,59,1,10678,117,115,59,1,8854,112,102,59,3,55349,56672,4,3,97,101,108,14755,14759,14764,114,59,1,10679,114,112,59,1,10681,117,115,59,1,8853,4,7,59,97,100,105,111,115,118,14785,14787,14792,14831,14837,14841,14848,1,8744,114,114,59,1,8635,4,4,59,101,102,109,14802,14804,14817,14824,1,10845,114,4,2,59,111,14811,14813,1,8500,102,59,1,8500,5,170,1,59,14822,1,170,5,186,1,59,14829,1,186,103,111,102,59,1,8886,114,59,1,10838,108,111,112,101,59,1,10839,59,1,10843,4,3,99,108,111,14859,14863,14873,114,59,1,8500,97,115,104,5,248,1,59,14871,1,248,108,59,1,8856,105,4,2,108,109,14884,14893,100,101,5,245,1,59,14891,1,245,101,115,4,2,59,97,14901,14903,1,8855,115,59,1,10806,109,108,5,246,1,59,14914,1,246,98,97,114,59,1,9021,4,12,97,99,101,102,104,105,108,109,111,114,115,117,14948,14992,14996,15033,15038,15068,15090,15189,15192,15222,15427,15441,114,4,4,59,97,115,116,14959,14961,14976,14989,1,8741,5,182,2,59,108,14968,14970,1,182,108,101,108,59,1,8741,4,2,105,108,14982,14986,109,59,1,10995,59,1,11005,59,1,8706,121,59,1,1087,114,4,5,99,105,109,112,116,15009,15014,15019,15024,15027,110,116,59,1,37,111,100,59,1,46,105,108,59,1,8240,59,1,8869,101,110,107,59,1,8241,114,59,3,55349,56621,4,3,105,109,111,15046,15057,15063,4,2,59,118,15052,15054,1,966,59,1,981,109,97,116,59,1,8499,110,101,59,1,9742,4,3,59,116,118,15076,15078,15087,1,960,99,104,102,111,114,107,59,1,8916,59,1,982,4,2,97,117,15096,15119,110,4,2,99,107,15103,15115,107,4,2,59,104,15110,15112,1,8463,59,1,8462,118,59,1,8463,115,4,9,59,97,98,99,100,101,109,115,116,15140,15142,15148,15151,15156,15168,15171,15179,15184,1,43,99,105,114,59,1,10787,59,1,8862,105,114,59,1,10786,4,2,111,117,15162,15165,59,1,8724,59,1,10789,59,1,10866,110,5,177,1,59,15177,1,177,105,109,59,1,10790,119,111,59,1,10791,59,1,177,4,3,105,112,117,15200,15208,15213,110,116,105,110,116,59,1,10773,102,59,3,55349,56673,110,100,5,163,1,59,15220,1,163,4,10,59,69,97,99,101,105,110,111,115,117,15244,15246,15249,15253,15258,15334,15347,15367,15416,15421,1,8826,59,1,10931,112,59,1,10935,117,101,59,1,8828,4,2,59,99,15264,15266,1,10927,4,6,59,97,99,101,110,115,15280,15282,15290,15299,15303,15329,1,8826,112,112,114,111,120,59,1,10935,117,114,108,121,101,113,59,1,8828,113,59,1,10927,4,3,97,101,115,15311,15319,15324,112,112,114,111,120,59,1,10937,113,113,59,1,10933,105,109,59,1,8936,105,109,59,1,8830,109,101,4,2,59,115,15342,15344,1,8242,59,1,8473,4,3,69,97,115,15355,15358,15362,59,1,10933,112,59,1,10937,105,109,59,1,8936,4,3,100,102,112,15375,15378,15404,59,1,8719,4,3,97,108,115,15386,15392,15398,108,97,114,59,1,9006,105,110,101,59,1,8978,117,114,102,59,1,8979,4,2,59,116,15410,15412,1,8733,111,59,1,8733,105,109,59,1,8830,114,101,108,59,1,8880,4,2,99,105,15433,15438,114,59,3,55349,56517,59,1,968,110,99,115,112,59,1,8200,4,6,102,105,111,112,115,117,15462,15467,15472,15478,15485,15491,114,59,3,55349,56622,110,116,59,1,10764,112,102,59,3,55349,56674,114,105,109,101,59,1,8279,99,114,59,3,55349,56518,4,3,97,101,111,15499,15520,15534,116,4,2,101,105,15506,15515,114,110,105,111,110,115,59,1,8461,110,116,59,1,10774,115,116,4,2,59,101,15528,15530,1,63,113,59,1,8799,116,5,34,1,59,15540,1,34,4,21,65,66,72,97,98,99,100,101,102,104,105,108,109,110,111,112,114,115,116,117,120,15586,15609,15615,15620,15796,15855,15893,15931,15977,16001,16039,16183,16204,16222,16228,16285,16312,16318,16363,16408,16416,4,3,97,114,116,15594,15599,15603,114,114,59,1,8667,114,59,1,8658,97,105,108,59,1,10524,97,114,114,59,1,10511,97,114,59,1,10596,4,7,99,100,101,110,113,114,116,15636,15651,15656,15664,15687,15696,15770,4,2,101,117,15642,15646,59,3,8765,817,116,101,59,1,341,105,99,59,1,8730,109,112,116,121,118,59,1,10675,103,4,4,59,100,101,108,15675,15677,15680,15683,1,10217,59,1,10642,59,1,10661,101,59,1,10217,117,111,5,187,1,59,15694,1,187,114,4,11,59,97,98,99,102,104,108,112,115,116,119,15721,15723,15727,15739,15742,15746,15750,15754,15758,15763,15767,1,8594,112,59,1,10613,4,2,59,102,15733,15735,1,8677,115,59,1,10528,59,1,10547,115,59,1,10526,107,59,1,8618,112,59,1,8620,108,59,1,10565,105,109,59,1,10612,108,59,1,8611,59,1,8605,4,2,97,105,15776,15781,105,108,59,1,10522,111,4,2,59,110,15788,15790,1,8758,97,108,115,59,1,8474,4,3,97,98,114,15804,15809,15814,114,114,59,1,10509,114,107,59,1,10099,4,2,97,107,15820,15833,99,4,2,101,107,15827,15830,59,1,125,59,1,93,4,2,101,115,15839,15842,59,1,10636,108,4,2,100,117,15849,15852,59,1,10638,59,1,10640,4,4,97,101,117,121,15865,15871,15886,15890,114,111,110,59,1,345,4,2,100,105,15877,15882,105,108,59,1,343,108,59,1,8969,98,59,1,125,59,1,1088,4,4,99,108,113,115,15903,15907,15914,15927,97,59,1,10551,100,104,97,114,59,1,10601,117,111,4,2,59,114,15922,15924,1,8221,59,1,8221,104,59,1,8627,4,3,97,99,103,15939,15966,15970,108,4,4,59,105,112,115,15950,15952,15957,15963,1,8476,110,101,59,1,8475,97,114,116,59,1,8476,59,1,8477,116,59,1,9645,5,174,1,59,15975,1,174,4,3,105,108,114,15985,15991,15997,115,104,116,59,1,10621,111,111,114,59,1,8971,59,3,55349,56623,4,2,97,111,16007,16028,114,4,2,100,117,16014,16017,59,1,8641,4,2,59,108,16023,16025,1,8640,59,1,10604,4,2,59,118,16034,16036,1,961,59,1,1009,4,3,103,110,115,16047,16167,16171,104,116,4,6,97,104,108,114,115,116,16063,16081,16103,16130,16143,16155,114,114,111,119,4,2,59,116,16073,16075,1,8594,97,105,108,59,1,8611,97,114,112,111,111,110,4,2,100,117,16093,16099,111,119,110,59,1,8641,112,59,1,8640,101,102,116,4,2,97,104,16112,16120,114,114,111,119,115,59,1,8644,97,114,112,111,111,110,115,59,1,8652,105,103,104,116,97,114,114,111,119,115,59,1,8649,113,117,105,103,97,114,114,111,119,59,1,8605,104,114,101,101,116,105,109,101,115,59,1,8908,103,59,1,730,105,110,103,100,111,116,115,101,113,59,1,8787,4,3,97,104,109,16191,16196,16201,114,114,59,1,8644,97,114,59,1,8652,59,1,8207,111,117,115,116,4,2,59,97,16214,16216,1,9137,99,104,101,59,1,9137,109,105,100,59,1,10990,4,4,97,98,112,116,16238,16252,16257,16278,4,2,110,114,16244,16248,103,59,1,10221,114,59,1,8702,114,107,59,1,10215,4,3,97,102,108,16265,16269,16273,114,59,1,10630,59,3,55349,56675,117,115,59,1,10798,105,109,101,115,59,1,10805,4,2,97,112,16291,16304,114,4,2,59,103,16298,16300,1,41,116,59,1,10644,111,108,105,110,116,59,1,10770,97,114,114,59,1,8649,4,4,97,99,104,113,16328,16334,16339,16342,113,117,111,59,1,8250,114,59,3,55349,56519,59,1,8625,4,2,98,117,16348,16351,59,1,93,111,4,2,59,114,16358,16360,1,8217,59,1,8217,4,3,104,105,114,16371,16377,16383,114,101,101,59,1,8908,109,101,115,59,1,8906,105,4,4,59,101,102,108,16394,16396,16399,16402,1,9657,59,1,8885,59,1,9656,116,114,105,59,1,10702,108,117,104,97,114,59,1,10600,59,1,8478,4,19,97,98,99,100,101,102,104,105,108,109,111,112,113,114,115,116,117,119,122,16459,16466,16472,16572,16590,16672,16687,16746,16844,16850,16924,16963,16988,17115,17121,17154,17206,17614,17656,99,117,116,101,59,1,347,113,117,111,59,1,8218,4,10,59,69,97,99,101,105,110,112,115,121,16494,16496,16499,16513,16518,16531,16536,16556,16564,16569,1,8827,59,1,10932,4,2,112,114,16505,16508,59,1,10936,111,110,59,1,353,117,101,59,1,8829,4,2,59,100,16524,16526,1,10928,105,108,59,1,351,114,99,59,1,349,4,3,69,97,115,16544,16547,16551,59,1,10934,112,59,1,10938,105,109,59,1,8937,111,108,105,110,116,59,1,10771,105,109,59,1,8831,59,1,1089,111,116,4,3,59,98,101,16582,16584,16587,1,8901,59,1,8865,59,1,10854,4,7,65,97,99,109,115,116,120,16606,16611,16634,16642,16646,16652,16668,114,114,59,1,8664,114,4,2,104,114,16618,16622,107,59,1,10533,4,2,59,111,16628,16630,1,8600,119,59,1,8600,116,5,167,1,59,16640,1,167,105,59,1,59,119,97,114,59,1,10537,109,4,2,105,110,16659,16665,110,117,115,59,1,8726,59,1,8726,116,59,1,10038,114,4,2,59,111,16679,16682,3,55349,56624,119,110,59,1,8994,4,4,97,99,111,121,16697,16702,16716,16739,114,112,59,1,9839,4,2,104,121,16708,16713,99,121,59,1,1097,59,1,1096,114,116,4,2,109,112,16724,16729,105,100,59,1,8739,97,114,97,108,108,101,108,59,1,8741,5,173,1,59,16744,1,173,4,2,103,109,16752,16770,109,97,4,3,59,102,118,16762,16764,16767,1,963,59,1,962,59,1,962,4,8,59,100,101,103,108,110,112,114,16788,16790,16795,16806,16817,16828,16832,16838,1,8764,111,116,59,1,10858,4,2,59,113,16801,16803,1,8771,59,1,8771,4,2,59,69,16812,16814,1,10910,59,1,10912,4,2,59,69,16823,16825,1,10909,59,1,10911,101,59,1,8774,108,117,115,59,1,10788,97,114,114,59,1,10610,97,114,114,59,1,8592,4,4,97,101,105,116,16860,16883,16891,16904,4,2,108,115,16866,16878,108,115,101,116,109,105,110,117,115,59,1,8726,104,112,59,1,10803,112,97,114,115,108,59,1,10724,4,2,100,108,16897,16900,59,1,8739,101,59,1,8995,4,2,59,101,16910,16912,1,10922,4,2,59,115,16918,16920,1,10924,59,3,10924,65024,4,3,102,108,112,16932,16938,16958,116,99,121,59,1,1100,4,2,59,98,16944,16946,1,47,4,2,59,97,16952,16954,1,10692,114,59,1,9023,102,59,3,55349,56676,97,4,2,100,114,16970,16985,101,115,4,2,59,117,16978,16980,1,9824,105,116,59,1,9824,59,1,8741,4,3,99,115,117,16996,17028,17089,4,2,97,117,17002,17015,112,4,2,59,115,17009,17011,1,8851,59,3,8851,65024,112,4,2,59,115,17022,17024,1,8852,59,3,8852,65024,117,4,2,98,112,17035,17062,4,3,59,101,115,17043,17045,17048,1,8847,59,1,8849,101,116,4,2,59,101,17056,17058,1,8847,113,59,1,8849,4,3,59,101,115,17070,17072,17075,1,8848,59,1,8850,101,116,4,2,59,101,17083,17085,1,8848,113,59,1,8850,4,3,59,97,102,17097,17099,17112,1,9633,114,4,2,101,102,17106,17109,59,1,9633,59,1,9642,59,1,9642,97,114,114,59,1,8594,4,4,99,101,109,116,17131,17136,17142,17148,114,59,3,55349,56520,116,109,110,59,1,8726,105,108,101,59,1,8995,97,114,102,59,1,8902,4,2,97,114,17160,17172,114,4,2,59,102,17167,17169,1,9734,59,1,9733,4,2,97,110,17178,17202,105,103,104,116,4,2,101,112,17188,17197,112,115,105,108,111,110,59,1,1013,104,105,59,1,981,115,59,1,175,4,5,98,99,109,110,112,17218,17351,17420,17423,17427,4,9,59,69,100,101,109,110,112,114,115,17238,17240,17243,17248,17261,17267,17279,17285,17291,1,8834,59,1,10949,111,116,59,1,10941,4,2,59,100,17254,17256,1,8838,111,116,59,1,10947,117,108,116,59,1,10945,4,2,69,101,17273,17276,59,1,10955,59,1,8842,108,117,115,59,1,10943,97,114,114,59,1,10617,4,3,101,105,117,17299,17335,17339,116,4,3,59,101,110,17308,17310,17322,1,8834,113,4,2,59,113,17317,17319,1,8838,59,1,10949,101,113,4,2,59,113,17330,17332,1,8842,59,1,10955,109,59,1,10951,4,2,98,112,17345,17348,59,1,10965,59,1,10963,99,4,6,59,97,99,101,110,115,17366,17368,17376,17385,17389,17415,1,8827,112,112,114,111,120,59,1,10936,117,114,108,121,101,113,59,1,8829,113,59,1,10928,4,3,97,101,115,17397,17405,17410,112,112,114,111,120,59,1,10938,113,113,59,1,10934,105,109,59,1,8937,105,109,59,1,8831,59,1,8721,103,59,1,9834,4,13,49,50,51,59,69,100,101,104,108,109,110,112,115,17455,17462,17469,17476,17478,17481,17496,17509,17524,17530,17536,17548,17554,5,185,1,59,17460,1,185,5,178,1,59,17467,1,178,5,179,1,59,17474,1,179,1,8835,59,1,10950,4,2,111,115,17487,17491,116,59,1,10942,117,98,59,1,10968,4,2,59,100,17502,17504,1,8839,111,116,59,1,10948,115,4,2,111,117,17516,17520,108,59,1,10185,98,59,1,10967,97,114,114,59,1,10619,117,108,116,59,1,10946,4,2,69,101,17542,17545,59,1,10956,59,1,8843,108,117,115,59,1,10944,4,3,101,105,117,17562,17598,17602,116,4,3,59,101,110,17571,17573,17585,1,8835,113,4,2,59,113,17580,17582,1,8839,59,1,10950,101,113,4,2,59,113,17593,17595,1,8843,59,1,10956,109,59,1,10952,4,2,98,112,17608,17611,59,1,10964,59,1,10966,4,3,65,97,110,17622,17627,17650,114,114,59,1,8665,114,4,2,104,114,17634,17638,107,59,1,10534,4,2,59,111,17644,17646,1,8601,119,59,1,8601,119,97,114,59,1,10538,108,105,103,5,223,1,59,17664,1,223,4,13,97,98,99,100,101,102,104,105,111,112,114,115,119,17694,17709,17714,17737,17742,17749,17754,17860,17905,17957,17964,18090,18122,4,2,114,117,17700,17706,103,101,116,59,1,8982,59,1,964,114,107,59,1,9140,4,3,97,101,121,17722,17728,17734,114,111,110,59,1,357,100,105,108,59,1,355,59,1,1090,111,116,59,1,8411,108,114,101,99,59,1,8981,114,59,3,55349,56625,4,4,101,105,107,111,17764,17805,17836,17851,4,2,114,116,17770,17786,101,4,2,52,102,17777,17780,59,1,8756,111,114,101,59,1,8756,97,4,3,59,115,118,17795,17797,17802,1,952,121,109,59,1,977,59,1,977,4,2,99,110,17811,17831,107,4,2,97,115,17818,17826,112,112,114,111,120,59,1,8776,105,109,59,1,8764,115,112,59,1,8201,4,2,97,115,17842,17846,112,59,1,8776,105,109,59,1,8764,114,110,5,254,1,59,17858,1,254,4,3,108,109,110,17868,17873,17901,100,101,59,1,732,101,115,5,215,3,59,98,100,17884,17886,17898,1,215,4,2,59,97,17892,17894,1,8864,114,59,1,10801,59,1,10800,116,59,1,8749,4,3,101,112,115,17913,17917,17953,97,59,1,10536,4,4,59,98,99,102,17927,17929,17934,17939,1,8868,111,116,59,1,9014,105,114,59,1,10993,4,2,59,111,17945,17948,3,55349,56677,114,107,59,1,10970,97,59,1,10537,114,105,109,101,59,1,8244,4,3,97,105,112,17972,17977,18082,100,101,59,1,8482,4,7,97,100,101,109,112,115,116,17993,18051,18056,18059,18066,18072,18076,110,103,108,101,4,5,59,100,108,113,114,18009,18011,18017,18032,18035,1,9653,111,119,110,59,1,9663,101,102,116,4,2,59,101,18026,18028,1,9667,113,59,1,8884,59,1,8796,105,103,104,116,4,2,59,101,18045,18047,1,9657,113,59,1,8885,111,116,59,1,9708,59,1,8796,105,110,117,115,59,1,10810,108,117,115,59,1,10809,98,59,1,10701,105,109,101,59,1,10811,101,122,105,117,109,59,1,9186,4,3,99,104,116,18098,18111,18116,4,2,114,121,18104,18108,59,3,55349,56521,59,1,1094,99,121,59,1,1115,114,111,107,59,1,359,4,2,105,111,18128,18133,120,116,59,1,8812,104,101,97,100,4,2,108,114,18143,18154,101,102,116,97,114,114,111,119,59,1,8606,105,103,104,116,97,114,114,111,119,59,1,8608,4,18,65,72,97,98,99,100,102,103,104,108,109,111,112,114,115,116,117,119,18204,18209,18214,18234,18250,18268,18292,18308,18319,18343,18379,18397,18413,18504,18547,18553,18584,18603,114,114,59,1,8657,97,114,59,1,10595,4,2,99,114,18220,18230,117,116,101,5,250,1,59,18228,1,250,114,59,1,8593,114,4,2,99,101,18241,18245,121,59,1,1118,118,101,59,1,365,4,2,105,121,18256,18265,114,99,5,251,1,59,18263,1,251,59,1,1091,4,3,97,98,104,18276,18281,18287,114,114,59,1,8645,108,97,99,59,1,369,97,114,59,1,10606,4,2,105,114,18298,18304,115,104,116,59,1,10622,59,3,55349,56626,114,97,118,101,5,249,1,59,18317,1,249,4,2,97,98,18325,18338,114,4,2,108,114,18332,18335,59,1,8639,59,1,8638,108,107,59,1,9600,4,2,99,116,18349,18374,4,2,111,114,18355,18369,114,110,4,2,59,101,18363,18365,1,8988,114,59,1,8988,111,112,59,1,8975,114,105,59,1,9720,4,2,97,108,18385,18390,99,114,59,1,363,5,168,1,59,18395,1,168,4,2,103,112,18403,18408,111,110,59,1,371,102,59,3,55349,56678,4,6,97,100,104,108,115,117,18427,18434,18445,18470,18475,18494,114,114,111,119,59,1,8593,111,119,110,97,114,114,111,119,59,1,8597,97,114,112,111,111,110,4,2,108,114,18457,18463,101,102,116,59,1,8639,105,103,104,116,59,1,8638,117,115,59,1,8846,105,4,3,59,104,108,18484,18486,18489,1,965,59,1,978,111,110,59,1,965,112,97,114,114,111,119,115,59,1,8648,4,3,99,105,116,18512,18537,18542,4,2,111,114,18518,18532,114,110,4,2,59,101,18526,18528,1,8989,114,59,1,8989,111,112,59,1,8974,110,103,59,1,367,114,105,59,1,9721,99,114,59,3,55349,56522,4,3,100,105,114,18561,18566,18572,111,116,59,1,8944,108,100,101,59,1,361,105,4,2,59,102,18579,18581,1,9653,59,1,9652,4,2,97,109,18590,18595,114,114,59,1,8648,108,5,252,1,59,18601,1,252,97,110,103,108,101,59,1,10663,4,15,65,66,68,97,99,100,101,102,108,110,111,112,114,115,122,18643,18648,18661,18667,18847,18851,18857,18904,18909,18915,18931,18937,18943,18949,18996,114,114,59,1,8661,97,114,4,2,59,118,18656,18658,1,10984,59,1,10985,97,115,104,59,1,8872,4,2,110,114,18673,18679,103,114,116,59,1,10652,4,7,101,107,110,112,114,115,116,18695,18704,18711,18720,18742,18754,18810,112,115,105,108,111,110,59,1,1013,97,112,112,97,59,1,1008,111,116,104,105,110,103,59,1,8709,4,3,104,105,114,18728,18732,18735,105,59,1,981,59,1,982,111,112,116,111,59,1,8733,4,2,59,104,18748,18750,1,8597,111,59,1,1009,4,2,105,117,18760,18766,103,109,97,59,1,962,4,2,98,112,18772,18791,115,101,116,110,101,113,4,2,59,113,18784,18787,3,8842,65024,59,3,10955,65024,115,101,116,110,101,113,4,2,59,113,18803,18806,3,8843,65024,59,3,10956,65024,4,2,104,114,18816,18822,101,116,97,59,1,977,105,97,110,103,108,101,4,2,108,114,18834,18840,101,102,116,59,1,8882,105,103,104,116,59,1,8883,121,59,1,1074,97,115,104,59,1,8866,4,3,101,108,114,18865,18884,18890,4,3,59,98,101,18873,18875,18880,1,8744,97,114,59,1,8891,113,59,1,8794,108,105,112,59,1,8942,4,2,98,116,18896,18901,97,114,59,1,124,59,1,124,114,59,3,55349,56627,116,114,105,59,1,8882,115,117,4,2,98,112,18923,18927,59,3,8834,8402,59,3,8835,8402,112,102,59,3,55349,56679,114,111,112,59,1,8733,116,114,105,59,1,8883,4,2,99,117,18955,18960,114,59,3,55349,56523,4,2,98,112,18966,18981,110,4,2,69,101,18973,18977,59,3,10955,65024,59,3,8842,65024,110,4,2,69,101,18988,18992,59,3,10956,65024,59,3,8843,65024,105,103,122,97,103,59,1,10650,4,7,99,101,102,111,112,114,115,19020,19026,19061,19066,19072,19075,19089,105,114,99,59,1,373,4,2,100,105,19032,19055,4,2,98,103,19038,19043,97,114,59,1,10847,101,4,2,59,113,19050,19052,1,8743,59,1,8793,101,114,112,59,1,8472,114,59,3,55349,56628,112,102,59,3,55349,56680,59,1,8472,4,2,59,101,19081,19083,1,8768,97,116,104,59,1,8768,99,114,59,3,55349,56524,4,14,99,100,102,104,105,108,109,110,111,114,115,117,118,119,19125,19146,19152,19157,19173,19176,19192,19197,19202,19236,19252,19269,19286,19291,4,3,97,105,117,19133,19137,19142,112,59,1,8898,114,99,59,1,9711,112,59,1,8899,116,114,105,59,1,9661,114,59,3,55349,56629,4,2,65,97,19163,19168,114,114,59,1,10234,114,114,59,1,10231,59,1,958,4,2,65,97,19182,19187,114,114,59,1,10232,114,114,59,1,10229,97,112,59,1,10236,105,115,59,1,8955,4,3,100,112,116,19210,19215,19230,111,116,59,1,10752,4,2,102,108,19221,19225,59,3,55349,56681,117,115,59,1,10753,105,109,101,59,1,10754,4,2,65,97,19242,19247,114,114,59,1,10233,114,114,59,1,10230,4,2,99,113,19258,19263,114,59,3,55349,56525,99,117,112,59,1,10758,4,2,112,116,19275,19281,108,117,115,59,1,10756,114,105,59,1,9651,101,101,59,1,8897,101,100,103,101,59,1,8896,4,8,97,99,101,102,105,111,115,117,19316,19335,19349,19357,19362,19367,19373,19379,99,4,2,117,121,19323,19332,116,101,5,253,1,59,19330,1,253,59,1,1103,4,2,105,121,19341,19346,114,99,59,1,375,59,1,1099,110,5,165,1,59,19355,1,165,114,59,3,55349,56630,99,121,59,1,1111,112,102,59,3,55349,56682,99,114,59,3,55349,56526,4,2,99,109,19385,19389,121,59,1,1102,108,5,255,1,59,19395,1,255,4,10,97,99,100,101,102,104,105,111,115,119,19419,19426,19441,19446,19462,19467,19472,19480,19486,19492,99,117,116,101,59,1,378,4,2,97,121,19432,19438,114,111,110,59,1,382,59,1,1079,111,116,59,1,380,4,2,101,116,19452,19458,116,114,102,59,1,8488,97,59,1,950,114,59,3,55349,56631,99,121,59,1,1078,103,114,97,114,114,59,1,8669,112,102,59,3,55349,56683,99,114,59,3,55349,56527,4,2,106,110,19498,19501,59,1,8205,106,59,1,8204]);","'use strict';\n\nconst HTML = require('../common/html');\n\n//Aliases\nconst $ = HTML.TAG_NAMES;\nconst NS = HTML.NAMESPACES;\n\n//Element utils\n\n//OPTIMIZATION: Integer comparisons are low-cost, so we can use very fast tag name length filters here.\n//It's faster than using dictionary.\nfunction isImpliedEndTagRequired(tn) {\n switch (tn.length) {\n case 1:\n return tn === $.P;\n\n case 2:\n return tn === $.RB || tn === $.RP || tn === $.RT || tn === $.DD || tn === $.DT || tn === $.LI;\n\n case 3:\n return tn === $.RTC;\n\n case 6:\n return tn === $.OPTION;\n\n case 8:\n return tn === $.OPTGROUP;\n }\n\n return false;\n}\n\nfunction isImpliedEndTagRequiredThoroughly(tn) {\n switch (tn.length) {\n case 1:\n return tn === $.P;\n\n case 2:\n return (\n tn === $.RB ||\n tn === $.RP ||\n tn === $.RT ||\n tn === $.DD ||\n tn === $.DT ||\n tn === $.LI ||\n tn === $.TD ||\n tn === $.TH ||\n tn === $.TR\n );\n\n case 3:\n return tn === $.RTC;\n\n case 5:\n return tn === $.TBODY || tn === $.TFOOT || tn === $.THEAD;\n\n case 6:\n return tn === $.OPTION;\n\n case 7:\n return tn === $.CAPTION;\n\n case 8:\n return tn === $.OPTGROUP || tn === $.COLGROUP;\n }\n\n return false;\n}\n\nfunction isScopingElement(tn, ns) {\n switch (tn.length) {\n case 2:\n if (tn === $.TD || tn === $.TH) {\n return ns === NS.HTML;\n } else if (tn === $.MI || tn === $.MO || tn === $.MN || tn === $.MS) {\n return ns === NS.MATHML;\n }\n\n break;\n\n case 4:\n if (tn === $.HTML) {\n return ns === NS.HTML;\n } else if (tn === $.DESC) {\n return ns === NS.SVG;\n }\n\n break;\n\n case 5:\n if (tn === $.TABLE) {\n return ns === NS.HTML;\n } else if (tn === $.MTEXT) {\n return ns === NS.MATHML;\n } else if (tn === $.TITLE) {\n return ns === NS.SVG;\n }\n\n break;\n\n case 6:\n return (tn === $.APPLET || tn === $.OBJECT) && ns === NS.HTML;\n\n case 7:\n return (tn === $.CAPTION || tn === $.MARQUEE) && ns === NS.HTML;\n\n case 8:\n return tn === $.TEMPLATE && ns === NS.HTML;\n\n case 13:\n return tn === $.FOREIGN_OBJECT && ns === NS.SVG;\n\n case 14:\n return tn === $.ANNOTATION_XML && ns === NS.MATHML;\n }\n\n return false;\n}\n\n//Stack of open elements\nclass OpenElementStack {\n constructor(document, treeAdapter) {\n this.stackTop = -1;\n this.items = [];\n this.current = document;\n this.currentTagName = null;\n this.currentTmplContent = null;\n this.tmplCount = 0;\n this.treeAdapter = treeAdapter;\n }\n\n //Index of element\n _indexOf(element) {\n let idx = -1;\n\n for (let i = this.stackTop; i >= 0; i--) {\n if (this.items[i] === element) {\n idx = i;\n break;\n }\n }\n return idx;\n }\n\n //Update current element\n _isInTemplate() {\n return this.currentTagName === $.TEMPLATE && this.treeAdapter.getNamespaceURI(this.current) === NS.HTML;\n }\n\n _updateCurrentElement() {\n this.current = this.items[this.stackTop];\n this.currentTagName = this.current && this.treeAdapter.getTagName(this.current);\n\n this.currentTmplContent = this._isInTemplate() ? this.treeAdapter.getTemplateContent(this.current) : null;\n }\n\n //Mutations\n push(element) {\n this.items[++this.stackTop] = element;\n this._updateCurrentElement();\n\n if (this._isInTemplate()) {\n this.tmplCount++;\n }\n }\n\n pop() {\n this.stackTop--;\n\n if (this.tmplCount > 0 && this._isInTemplate()) {\n this.tmplCount--;\n }\n\n this._updateCurrentElement();\n }\n\n replace(oldElement, newElement) {\n const idx = this._indexOf(oldElement);\n\n this.items[idx] = newElement;\n\n if (idx === this.stackTop) {\n this._updateCurrentElement();\n }\n }\n\n insertAfter(referenceElement, newElement) {\n const insertionIdx = this._indexOf(referenceElement) + 1;\n\n this.items.splice(insertionIdx, 0, newElement);\n\n if (insertionIdx === ++this.stackTop) {\n this._updateCurrentElement();\n }\n }\n\n popUntilTagNamePopped(tagName) {\n while (this.stackTop > -1) {\n const tn = this.currentTagName;\n const ns = this.treeAdapter.getNamespaceURI(this.current);\n\n this.pop();\n\n if (tn === tagName && ns === NS.HTML) {\n break;\n }\n }\n }\n\n popUntilElementPopped(element) {\n while (this.stackTop > -1) {\n const poppedElement = this.current;\n\n this.pop();\n\n if (poppedElement === element) {\n break;\n }\n }\n }\n\n popUntilNumberedHeaderPopped() {\n while (this.stackTop > -1) {\n const tn = this.currentTagName;\n const ns = this.treeAdapter.getNamespaceURI(this.current);\n\n this.pop();\n\n if (\n tn === $.H1 ||\n tn === $.H2 ||\n tn === $.H3 ||\n tn === $.H4 ||\n tn === $.H5 ||\n (tn === $.H6 && ns === NS.HTML)\n ) {\n break;\n }\n }\n }\n\n popUntilTableCellPopped() {\n while (this.stackTop > -1) {\n const tn = this.currentTagName;\n const ns = this.treeAdapter.getNamespaceURI(this.current);\n\n this.pop();\n\n if (tn === $.TD || (tn === $.TH && ns === NS.HTML)) {\n break;\n }\n }\n }\n\n popAllUpToHtmlElement() {\n //NOTE: here we assume that root <html> element is always first in the open element stack, so\n //we perform this fast stack clean up.\n this.stackTop = 0;\n this._updateCurrentElement();\n }\n\n clearBackToTableContext() {\n while (\n (this.currentTagName !== $.TABLE && this.currentTagName !== $.TEMPLATE && this.currentTagName !== $.HTML) ||\n this.treeAdapter.getNamespaceURI(this.current) !== NS.HTML\n ) {\n this.pop();\n }\n }\n\n clearBackToTableBodyContext() {\n while (\n (this.currentTagName !== $.TBODY &&\n this.currentTagName !== $.TFOOT &&\n this.currentTagName !== $.THEAD &&\n this.currentTagName !== $.TEMPLATE &&\n this.currentTagName !== $.HTML) ||\n this.treeAdapter.getNamespaceURI(this.current) !== NS.HTML\n ) {\n this.pop();\n }\n }\n\n clearBackToTableRowContext() {\n while (\n (this.currentTagName !== $.TR && this.currentTagName !== $.TEMPLATE && this.currentTagName !== $.HTML) ||\n this.treeAdapter.getNamespaceURI(this.current) !== NS.HTML\n ) {\n this.pop();\n }\n }\n\n remove(element) {\n for (let i = this.stackTop; i >= 0; i--) {\n if (this.items[i] === element) {\n this.items.splice(i, 1);\n this.stackTop--;\n this._updateCurrentElement();\n break;\n }\n }\n }\n\n //Search\n tryPeekProperlyNestedBodyElement() {\n //Properly nested <body> element (should be second element in stack).\n const element = this.items[1];\n\n return element && this.treeAdapter.getTagName(element) === $.BODY ? element : null;\n }\n\n contains(element) {\n return this._indexOf(element) > -1;\n }\n\n getCommonAncestor(element) {\n let elementIdx = this._indexOf(element);\n\n return --elementIdx >= 0 ? this.items[elementIdx] : null;\n }\n\n isRootHtmlElementCurrent() {\n return this.stackTop === 0 && this.currentTagName === $.HTML;\n }\n\n //Element in scope\n hasInScope(tagName) {\n for (let i = this.stackTop; i >= 0; i--) {\n const tn = this.treeAdapter.getTagName(this.items[i]);\n const ns = this.treeAdapter.getNamespaceURI(this.items[i]);\n\n if (tn === tagName && ns === NS.HTML) {\n return true;\n }\n\n if (isScopingElement(tn, ns)) {\n return false;\n }\n }\n\n return true;\n }\n\n hasNumberedHeaderInScope() {\n for (let i = this.stackTop; i >= 0; i--) {\n const tn = this.treeAdapter.getTagName(this.items[i]);\n const ns = this.treeAdapter.getNamespaceURI(this.items[i]);\n\n if (\n (tn === $.H1 || tn === $.H2 || tn === $.H3 || tn === $.H4 || tn === $.H5 || tn === $.H6) &&\n ns === NS.HTML\n ) {\n return true;\n }\n\n if (isScopingElement(tn, ns)) {\n return false;\n }\n }\n\n return true;\n }\n\n hasInListItemScope(tagName) {\n for (let i = this.stackTop; i >= 0; i--) {\n const tn = this.treeAdapter.getTagName(this.items[i]);\n const ns = this.treeAdapter.getNamespaceURI(this.items[i]);\n\n if (tn === tagName && ns === NS.HTML) {\n return true;\n }\n\n if (((tn === $.UL || tn === $.OL) && ns === NS.HTML) || isScopingElement(tn, ns)) {\n return false;\n }\n }\n\n return true;\n }\n\n hasInButtonScope(tagName) {\n for (let i = this.stackTop; i >= 0; i--) {\n const tn = this.treeAdapter.getTagName(this.items[i]);\n const ns = this.treeAdapter.getNamespaceURI(this.items[i]);\n\n if (tn === tagName && ns === NS.HTML) {\n return true;\n }\n\n if ((tn === $.BUTTON && ns === NS.HTML) || isScopingElement(tn, ns)) {\n return false;\n }\n }\n\n return true;\n }\n\n hasInTableScope(tagName) {\n for (let i = this.stackTop; i >= 0; i--) {\n const tn = this.treeAdapter.getTagName(this.items[i]);\n const ns = this.treeAdapter.getNamespaceURI(this.items[i]);\n\n if (ns !== NS.HTML) {\n continue;\n }\n\n if (tn === tagName) {\n return true;\n }\n\n if (tn === $.TABLE || tn === $.TEMPLATE || tn === $.HTML) {\n return false;\n }\n }\n\n return true;\n }\n\n hasTableBodyContextInTableScope() {\n for (let i = this.stackTop; i >= 0; i--) {\n const tn = this.treeAdapter.getTagName(this.items[i]);\n const ns = this.treeAdapter.getNamespaceURI(this.items[i]);\n\n if (ns !== NS.HTML) {\n continue;\n }\n\n if (tn === $.TBODY || tn === $.THEAD || tn === $.TFOOT) {\n return true;\n }\n\n if (tn === $.TABLE || tn === $.HTML) {\n return false;\n }\n }\n\n return true;\n }\n\n hasInSelectScope(tagName) {\n for (let i = this.stackTop; i >= 0; i--) {\n const tn = this.treeAdapter.getTagName(this.items[i]);\n const ns = this.treeAdapter.getNamespaceURI(this.items[i]);\n\n if (ns !== NS.HTML) {\n continue;\n }\n\n if (tn === tagName) {\n return true;\n }\n\n if (tn !== $.OPTION && tn !== $.OPTGROUP) {\n return false;\n }\n }\n\n return true;\n }\n\n //Implied end tags\n generateImpliedEndTags() {\n while (isImpliedEndTagRequired(this.currentTagName)) {\n this.pop();\n }\n }\n\n generateImpliedEndTagsThoroughly() {\n while (isImpliedEndTagRequiredThoroughly(this.currentTagName)) {\n this.pop();\n }\n }\n\n generateImpliedEndTagsWithExclusion(exclusionTagName) {\n while (isImpliedEndTagRequired(this.currentTagName) && this.currentTagName !== exclusionTagName) {\n this.pop();\n }\n }\n}\n\nmodule.exports = OpenElementStack;\n","'use strict';\n\n//Const\nconst NOAH_ARK_CAPACITY = 3;\n\n//List of formatting elements\nclass FormattingElementList {\n constructor(treeAdapter) {\n this.length = 0;\n this.entries = [];\n this.treeAdapter = treeAdapter;\n this.bookmark = null;\n }\n\n //Noah Ark's condition\n //OPTIMIZATION: at first we try to find possible candidates for exclusion using\n //lightweight heuristics without thorough attributes check.\n _getNoahArkConditionCandidates(newElement) {\n const candidates = [];\n\n if (this.length >= NOAH_ARK_CAPACITY) {\n const neAttrsLength = this.treeAdapter.getAttrList(newElement).length;\n const neTagName = this.treeAdapter.getTagName(newElement);\n const neNamespaceURI = this.treeAdapter.getNamespaceURI(newElement);\n\n for (let i = this.length - 1; i >= 0; i--) {\n const entry = this.entries[i];\n\n if (entry.type === FormattingElementList.MARKER_ENTRY) {\n break;\n }\n\n const element = entry.element;\n const elementAttrs = this.treeAdapter.getAttrList(element);\n\n const isCandidate =\n this.treeAdapter.getTagName(element) === neTagName &&\n this.treeAdapter.getNamespaceURI(element) === neNamespaceURI &&\n elementAttrs.length === neAttrsLength;\n\n if (isCandidate) {\n candidates.push({ idx: i, attrs: elementAttrs });\n }\n }\n }\n\n return candidates.length < NOAH_ARK_CAPACITY ? [] : candidates;\n }\n\n _ensureNoahArkCondition(newElement) {\n const candidates = this._getNoahArkConditionCandidates(newElement);\n let cLength = candidates.length;\n\n if (cLength) {\n const neAttrs = this.treeAdapter.getAttrList(newElement);\n const neAttrsLength = neAttrs.length;\n const neAttrsMap = Object.create(null);\n\n //NOTE: build attrs map for the new element so we can perform fast lookups\n for (let i = 0; i < neAttrsLength; i++) {\n const neAttr = neAttrs[i];\n\n neAttrsMap[neAttr.name] = neAttr.value;\n }\n\n for (let i = 0; i < neAttrsLength; i++) {\n for (let j = 0; j < cLength; j++) {\n const cAttr = candidates[j].attrs[i];\n\n if (neAttrsMap[cAttr.name] !== cAttr.value) {\n candidates.splice(j, 1);\n cLength--;\n }\n\n if (candidates.length < NOAH_ARK_CAPACITY) {\n return;\n }\n }\n }\n\n //NOTE: remove bottommost candidates until Noah's Ark condition will not be met\n for (let i = cLength - 1; i >= NOAH_ARK_CAPACITY - 1; i--) {\n this.entries.splice(candidates[i].idx, 1);\n this.length--;\n }\n }\n }\n\n //Mutations\n insertMarker() {\n this.entries.push({ type: FormattingElementList.MARKER_ENTRY });\n this.length++;\n }\n\n pushElement(element, token) {\n this._ensureNoahArkCondition(element);\n\n this.entries.push({\n type: FormattingElementList.ELEMENT_ENTRY,\n element: element,\n token: token\n });\n\n this.length++;\n }\n\n insertElementAfterBookmark(element, token) {\n let bookmarkIdx = this.length - 1;\n\n for (; bookmarkIdx >= 0; bookmarkIdx--) {\n if (this.entries[bookmarkIdx] === this.bookmark) {\n break;\n }\n }\n\n this.entries.splice(bookmarkIdx + 1, 0, {\n type: FormattingElementList.ELEMENT_ENTRY,\n element: element,\n token: token\n });\n\n this.length++;\n }\n\n removeEntry(entry) {\n for (let i = this.length - 1; i >= 0; i--) {\n if (this.entries[i] === entry) {\n this.entries.splice(i, 1);\n this.length--;\n break;\n }\n }\n }\n\n clearToLastMarker() {\n while (this.length) {\n const entry = this.entries.pop();\n\n this.length--;\n\n if (entry.type === FormattingElementList.MARKER_ENTRY) {\n break;\n }\n }\n }\n\n //Search\n getElementEntryInScopeWithTagName(tagName) {\n for (let i = this.length - 1; i >= 0; i--) {\n const entry = this.entries[i];\n\n if (entry.type === FormattingElementList.MARKER_ENTRY) {\n return null;\n }\n\n if (this.treeAdapter.getTagName(entry.element) === tagName) {\n return entry;\n }\n }\n\n return null;\n }\n\n getElementEntry(element) {\n for (let i = this.length - 1; i >= 0; i--) {\n const entry = this.entries[i];\n\n if (entry.type === FormattingElementList.ELEMENT_ENTRY && entry.element === element) {\n return entry;\n }\n }\n\n return null;\n }\n}\n\n//Entry types\nFormattingElementList.MARKER_ENTRY = 'MARKER_ENTRY';\nFormattingElementList.ELEMENT_ENTRY = 'ELEMENT_ENTRY';\n\nmodule.exports = FormattingElementList;\n","'use strict';\n\nconst Mixin = require('../../utils/mixin');\nconst Tokenizer = require('../../tokenizer');\nconst LocationInfoTokenizerMixin = require('./tokenizer-mixin');\nconst LocationInfoOpenElementStackMixin = require('./open-element-stack-mixin');\nconst HTML = require('../../common/html');\n\n//Aliases\nconst $ = HTML.TAG_NAMES;\n\nclass LocationInfoParserMixin extends Mixin {\n constructor(parser) {\n super(parser);\n\n this.parser = parser;\n this.treeAdapter = this.parser.treeAdapter;\n this.posTracker = null;\n this.lastStartTagToken = null;\n this.lastFosterParentingLocation = null;\n this.currentToken = null;\n }\n\n _setStartLocation(element) {\n let loc = null;\n\n if (this.lastStartTagToken) {\n loc = Object.assign({}, this.lastStartTagToken.location);\n loc.startTag = this.lastStartTagToken.location;\n }\n\n this.treeAdapter.setNodeSourceCodeLocation(element, loc);\n }\n\n _setEndLocation(element, closingToken) {\n const loc = this.treeAdapter.getNodeSourceCodeLocation(element);\n\n if (loc) {\n if (closingToken.location) {\n const ctLoc = closingToken.location;\n const tn = this.treeAdapter.getTagName(element);\n\n // NOTE: For cases like <p> <p> </p> - First 'p' closes without a closing\n // tag and for cases like <td> <p> </td> - 'p' closes without a closing tag.\n const isClosingEndTag = closingToken.type === Tokenizer.END_TAG_TOKEN && tn === closingToken.tagName;\n const endLoc = {};\n if (isClosingEndTag) {\n endLoc.endTag = Object.assign({}, ctLoc);\n endLoc.endLine = ctLoc.endLine;\n endLoc.endCol = ctLoc.endCol;\n endLoc.endOffset = ctLoc.endOffset;\n } else {\n endLoc.endLine = ctLoc.startLine;\n endLoc.endCol = ctLoc.startCol;\n endLoc.endOffset = ctLoc.startOffset;\n }\n\n this.treeAdapter.updateNodeSourceCodeLocation(element, endLoc);\n }\n }\n }\n\n _getOverriddenMethods(mxn, orig) {\n return {\n _bootstrap(document, fragmentContext) {\n orig._bootstrap.call(this, document, fragmentContext);\n\n mxn.lastStartTagToken = null;\n mxn.lastFosterParentingLocation = null;\n mxn.currentToken = null;\n\n const tokenizerMixin = Mixin.install(this.tokenizer, LocationInfoTokenizerMixin);\n\n mxn.posTracker = tokenizerMixin.posTracker;\n\n Mixin.install(this.openElements, LocationInfoOpenElementStackMixin, {\n onItemPop: function(element) {\n mxn._setEndLocation(element, mxn.currentToken);\n }\n });\n },\n\n _runParsingLoop(scriptHandler) {\n orig._runParsingLoop.call(this, scriptHandler);\n\n // NOTE: generate location info for elements\n // that remains on open element stack\n for (let i = this.openElements.stackTop; i >= 0; i--) {\n mxn._setEndLocation(this.openElements.items[i], mxn.currentToken);\n }\n },\n\n //Token processing\n _processTokenInForeignContent(token) {\n mxn.currentToken = token;\n orig._processTokenInForeignContent.call(this, token);\n },\n\n _processToken(token) {\n mxn.currentToken = token;\n orig._processToken.call(this, token);\n\n //NOTE: <body> and <html> are never popped from the stack, so we need to updated\n //their end location explicitly.\n const requireExplicitUpdate =\n token.type === Tokenizer.END_TAG_TOKEN &&\n (token.tagName === $.HTML || (token.tagName === $.BODY && this.openElements.hasInScope($.BODY)));\n\n if (requireExplicitUpdate) {\n for (let i = this.openElements.stackTop; i >= 0; i--) {\n const element = this.openElements.items[i];\n\n if (this.treeAdapter.getTagName(element) === token.tagName) {\n mxn._setEndLocation(element, token);\n break;\n }\n }\n }\n },\n\n //Doctype\n _setDocumentType(token) {\n orig._setDocumentType.call(this, token);\n\n const documentChildren = this.treeAdapter.getChildNodes(this.document);\n const cnLength = documentChildren.length;\n\n for (let i = 0; i < cnLength; i++) {\n const node = documentChildren[i];\n\n if (this.treeAdapter.isDocumentTypeNode(node)) {\n this.treeAdapter.setNodeSourceCodeLocation(node, token.location);\n break;\n }\n }\n },\n\n //Elements\n _attachElementToTree(element) {\n //NOTE: _attachElementToTree is called from _appendElement, _insertElement and _insertTemplate methods.\n //So we will use token location stored in this methods for the element.\n mxn._setStartLocation(element);\n mxn.lastStartTagToken = null;\n orig._attachElementToTree.call(this, element);\n },\n\n _appendElement(token, namespaceURI) {\n mxn.lastStartTagToken = token;\n orig._appendElement.call(this, token, namespaceURI);\n },\n\n _insertElement(token, namespaceURI) {\n mxn.lastStartTagToken = token;\n orig._insertElement.call(this, token, namespaceURI);\n },\n\n _insertTemplate(token) {\n mxn.lastStartTagToken = token;\n orig._insertTemplate.call(this, token);\n\n const tmplContent = this.treeAdapter.getTemplateContent(this.openElements.current);\n\n this.treeAdapter.setNodeSourceCodeLocation(tmplContent, null);\n },\n\n _insertFakeRootElement() {\n orig._insertFakeRootElement.call(this);\n this.treeAdapter.setNodeSourceCodeLocation(this.openElements.current, null);\n },\n\n //Comments\n _appendCommentNode(token, parent) {\n orig._appendCommentNode.call(this, token, parent);\n\n const children = this.treeAdapter.getChildNodes(parent);\n const commentNode = children[children.length - 1];\n\n this.treeAdapter.setNodeSourceCodeLocation(commentNode, token.location);\n },\n\n //Text\n _findFosterParentingLocation() {\n //NOTE: store last foster parenting location, so we will be able to find inserted text\n //in case of foster parenting\n mxn.lastFosterParentingLocation = orig._findFosterParentingLocation.call(this);\n\n return mxn.lastFosterParentingLocation;\n },\n\n _insertCharacters(token) {\n orig._insertCharacters.call(this, token);\n\n const hasFosterParent = this._shouldFosterParentOnInsertion();\n\n const parent =\n (hasFosterParent && mxn.lastFosterParentingLocation.parent) ||\n this.openElements.currentTmplContent ||\n this.openElements.current;\n\n const siblings = this.treeAdapter.getChildNodes(parent);\n\n const textNodeIdx =\n hasFosterParent && mxn.lastFosterParentingLocation.beforeElement\n ? siblings.indexOf(mxn.lastFosterParentingLocation.beforeElement) - 1\n : siblings.length - 1;\n\n const textNode = siblings[textNodeIdx];\n\n //NOTE: if we have location assigned by another token, then just update end position\n const tnLoc = this.treeAdapter.getNodeSourceCodeLocation(textNode);\n\n if (tnLoc) {\n const { endLine, endCol, endOffset } = token.location;\n this.treeAdapter.updateNodeSourceCodeLocation(textNode, { endLine, endCol, endOffset });\n } else {\n this.treeAdapter.setNodeSourceCodeLocation(textNode, token.location);\n }\n }\n };\n }\n}\n\nmodule.exports = LocationInfoParserMixin;\n","function _setPrototypeOf(o, p) {\n module.exports = _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nmodule.exports = _setPrototypeOf;","function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nmodule.exports = _isNativeReflectConstruct;","var _typeof = require(\"@babel/runtime/helpers/typeof\");\n\nvar assertThisInitialized = require(\"./assertThisInitialized\");\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return assertThisInitialized(self);\n}\n\nmodule.exports = _possibleConstructorReturn;","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n module.exports = _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n module.exports = _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nmodule.exports = _typeof;","function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nmodule.exports = _assertThisInitialized;","'use strict';\n\nconst Mixin = require('../../utils/mixin');\n\nclass LocationInfoOpenElementStackMixin extends Mixin {\n constructor(stack, opts) {\n super(stack);\n\n this.onItemPop = opts.onItemPop;\n }\n\n _getOverriddenMethods(mxn, orig) {\n return {\n pop() {\n mxn.onItemPop(this.current);\n orig.pop.call(this);\n },\n\n popAllUpToHtmlElement() {\n for (let i = this.stackTop; i > 0; i--) {\n mxn.onItemPop(this.items[i]);\n }\n\n orig.popAllUpToHtmlElement.call(this);\n },\n\n remove(element) {\n mxn.onItemPop(this.current);\n orig.remove.call(this, element);\n }\n };\n }\n}\n\nmodule.exports = LocationInfoOpenElementStackMixin;\n","'use strict';\n\nconst ErrorReportingMixinBase = require('./mixin-base');\nconst ErrorReportingTokenizerMixin = require('./tokenizer-mixin');\nconst LocationInfoTokenizerMixin = require('../location-info/tokenizer-mixin');\nconst Mixin = require('../../utils/mixin');\n\nclass ErrorReportingParserMixin extends ErrorReportingMixinBase {\n constructor(parser, opts) {\n super(parser, opts);\n\n this.opts = opts;\n this.ctLoc = null;\n this.locBeforeToken = false;\n }\n\n _setErrorLocation(err) {\n if (this.ctLoc) {\n err.startLine = this.ctLoc.startLine;\n err.startCol = this.ctLoc.startCol;\n err.startOffset = this.ctLoc.startOffset;\n\n err.endLine = this.locBeforeToken ? this.ctLoc.startLine : this.ctLoc.endLine;\n err.endCol = this.locBeforeToken ? this.ctLoc.startCol : this.ctLoc.endCol;\n err.endOffset = this.locBeforeToken ? this.ctLoc.startOffset : this.ctLoc.endOffset;\n }\n }\n\n _getOverriddenMethods(mxn, orig) {\n return {\n _bootstrap(document, fragmentContext) {\n orig._bootstrap.call(this, document, fragmentContext);\n\n Mixin.install(this.tokenizer, ErrorReportingTokenizerMixin, mxn.opts);\n Mixin.install(this.tokenizer, LocationInfoTokenizerMixin);\n },\n\n _processInputToken(token) {\n mxn.ctLoc = token.location;\n\n orig._processInputToken.call(this, token);\n },\n\n _err(code, options) {\n mxn.locBeforeToken = options && options.beforeToken;\n mxn._reportError(code);\n }\n };\n }\n}\n\nmodule.exports = ErrorReportingParserMixin;\n","'use strict';\n\nconst ErrorReportingMixinBase = require('./mixin-base');\nconst ErrorReportingPreprocessorMixin = require('./preprocessor-mixin');\nconst Mixin = require('../../utils/mixin');\n\nclass ErrorReportingTokenizerMixin extends ErrorReportingMixinBase {\n constructor(tokenizer, opts) {\n super(tokenizer, opts);\n\n const preprocessorMixin = Mixin.install(tokenizer.preprocessor, ErrorReportingPreprocessorMixin, opts);\n\n this.posTracker = preprocessorMixin.posTracker;\n }\n}\n\nmodule.exports = ErrorReportingTokenizerMixin;\n","'use strict';\n\nconst ErrorReportingMixinBase = require('./mixin-base');\nconst PositionTrackingPreprocessorMixin = require('../position-tracking/preprocessor-mixin');\nconst Mixin = require('../../utils/mixin');\n\nclass ErrorReportingPreprocessorMixin extends ErrorReportingMixinBase {\n constructor(preprocessor, opts) {\n super(preprocessor, opts);\n\n this.posTracker = Mixin.install(preprocessor, PositionTrackingPreprocessorMixin);\n this.lastErrOffset = -1;\n }\n\n _reportError(code) {\n //NOTE: avoid reporting error twice on advance/retreat\n if (this.lastErrOffset !== this.posTracker.offset) {\n this.lastErrOffset = this.posTracker.offset;\n super._reportError(code);\n }\n }\n}\n\nmodule.exports = ErrorReportingPreprocessorMixin;\n","var superPropBase = require(\"./superPropBase\");\n\nfunction _get(target, property, receiver) {\n if (typeof Reflect !== \"undefined\" && Reflect.get) {\n module.exports = _get = Reflect.get;\n } else {\n module.exports = _get = function _get(target, property, receiver) {\n var base = superPropBase(target, property);\n if (!base) return;\n var desc = Object.getOwnPropertyDescriptor(base, property);\n\n if (desc.get) {\n return desc.get.call(receiver);\n }\n\n return desc.value;\n };\n }\n\n return _get(target, property, receiver || target);\n}\n\nmodule.exports = _get;","var getPrototypeOf = require(\"./getPrototypeOf\");\n\nfunction _superPropBase(object, property) {\n while (!Object.prototype.hasOwnProperty.call(object, property)) {\n object = getPrototypeOf(object);\n if (object === null) break;\n }\n\n return object;\n}\n\nmodule.exports = _superPropBase;","'use strict';\n\nconst { DOCUMENT_MODE } = require('../common/html');\n\n//Node construction\nexports.createDocument = function() {\n return {\n nodeName: '#document',\n mode: DOCUMENT_MODE.NO_QUIRKS,\n childNodes: []\n };\n};\n\nexports.createDocumentFragment = function() {\n return {\n nodeName: '#document-fragment',\n childNodes: []\n };\n};\n\nexports.createElement = function(tagName, namespaceURI, attrs) {\n return {\n nodeName: tagName,\n tagName: tagName,\n attrs: attrs,\n namespaceURI: namespaceURI,\n childNodes: [],\n parentNode: null\n };\n};\n\nexports.createCommentNode = function(data) {\n return {\n nodeName: '#comment',\n data: data,\n parentNode: null\n };\n};\n\nconst createTextNode = function(value) {\n return {\n nodeName: '#text',\n value: value,\n parentNode: null\n };\n};\n\n//Tree mutation\nconst appendChild = (exports.appendChild = function(parentNode, newNode) {\n parentNode.childNodes.push(newNode);\n newNode.parentNode = parentNode;\n});\n\nconst insertBefore = (exports.insertBefore = function(parentNode, newNode, referenceNode) {\n const insertionIdx = parentNode.childNodes.indexOf(referenceNode);\n\n parentNode.childNodes.splice(insertionIdx, 0, newNode);\n newNode.parentNode = parentNode;\n});\n\nexports.setTemplateContent = function(templateElement, contentElement) {\n templateElement.content = contentElement;\n};\n\nexports.getTemplateContent = function(templateElement) {\n return templateElement.content;\n};\n\nexports.setDocumentType = function(document, name, publicId, systemId) {\n let doctypeNode = null;\n\n for (let i = 0; i < document.childNodes.length; i++) {\n if (document.childNodes[i].nodeName === '#documentType') {\n doctypeNode = document.childNodes[i];\n break;\n }\n }\n\n if (doctypeNode) {\n doctypeNode.name = name;\n doctypeNode.publicId = publicId;\n doctypeNode.systemId = systemId;\n } else {\n appendChild(document, {\n nodeName: '#documentType',\n name: name,\n publicId: publicId,\n systemId: systemId\n });\n }\n};\n\nexports.setDocumentMode = function(document, mode) {\n document.mode = mode;\n};\n\nexports.getDocumentMode = function(document) {\n return document.mode;\n};\n\nexports.detachNode = function(node) {\n if (node.parentNode) {\n const idx = node.parentNode.childNodes.indexOf(node);\n\n node.parentNode.childNodes.splice(idx, 1);\n node.parentNode = null;\n }\n};\n\nexports.insertText = function(parentNode, text) {\n if (parentNode.childNodes.length) {\n const prevNode = parentNode.childNodes[parentNode.childNodes.length - 1];\n\n if (prevNode.nodeName === '#text') {\n prevNode.value += text;\n return;\n }\n }\n\n appendChild(parentNode, createTextNode(text));\n};\n\nexports.insertTextBefore = function(parentNode, text, referenceNode) {\n const prevNode = parentNode.childNodes[parentNode.childNodes.indexOf(referenceNode) - 1];\n\n if (prevNode && prevNode.nodeName === '#text') {\n prevNode.value += text;\n } else {\n insertBefore(parentNode, createTextNode(text), referenceNode);\n }\n};\n\nexports.adoptAttributes = function(recipient, attrs) {\n const recipientAttrsMap = [];\n\n for (let i = 0; i < recipient.attrs.length; i++) {\n recipientAttrsMap.push(recipient.attrs[i].name);\n }\n\n for (let j = 0; j < attrs.length; j++) {\n if (recipientAttrsMap.indexOf(attrs[j].name) === -1) {\n recipient.attrs.push(attrs[j]);\n }\n }\n};\n\n//Tree traversing\nexports.getFirstChild = function(node) {\n return node.childNodes[0];\n};\n\nexports.getChildNodes = function(node) {\n return node.childNodes;\n};\n\nexports.getParentNode = function(node) {\n return node.parentNode;\n};\n\nexports.getAttrList = function(element) {\n return element.attrs;\n};\n\n//Node data\nexports.getTagName = function(element) {\n return element.tagName;\n};\n\nexports.getNamespaceURI = function(element) {\n return element.namespaceURI;\n};\n\nexports.getTextNodeContent = function(textNode) {\n return textNode.value;\n};\n\nexports.getCommentNodeContent = function(commentNode) {\n return commentNode.data;\n};\n\nexports.getDocumentTypeNodeName = function(doctypeNode) {\n return doctypeNode.name;\n};\n\nexports.getDocumentTypeNodePublicId = function(doctypeNode) {\n return doctypeNode.publicId;\n};\n\nexports.getDocumentTypeNodeSystemId = function(doctypeNode) {\n return doctypeNode.systemId;\n};\n\n//Node types\nexports.isTextNode = function(node) {\n return node.nodeName === '#text';\n};\n\nexports.isCommentNode = function(node) {\n return node.nodeName === '#comment';\n};\n\nexports.isDocumentTypeNode = function(node) {\n return node.nodeName === '#documentType';\n};\n\nexports.isElementNode = function(node) {\n return !!node.tagName;\n};\n\n// Source code location\nexports.setNodeSourceCodeLocation = function(node, location) {\n node.sourceCodeLocation = location;\n};\n\nexports.getNodeSourceCodeLocation = function(node) {\n return node.sourceCodeLocation;\n};\n\nexports.updateNodeSourceCodeLocation = function(node, endLocation) {\n node.sourceCodeLocation = Object.assign(node.sourceCodeLocation, endLocation);\n};\n","'use strict';\n\nmodule.exports = function mergeOptions(defaults, options) {\n options = options || Object.create(null);\n\n return [defaults, options].reduce((merged, optObj) => {\n Object.keys(optObj).forEach(key => {\n merged[key] = optObj[key];\n });\n\n return merged;\n }, Object.create(null));\n};\n","'use strict';\n\nconst { DOCUMENT_MODE } = require('./html');\n\n//Const\nconst VALID_DOCTYPE_NAME = 'html';\nconst VALID_SYSTEM_ID = 'about:legacy-compat';\nconst QUIRKS_MODE_SYSTEM_ID = 'http://www.ibm.com/data/dtd/v11/ibmxhtml1-transitional.dtd';\n\nconst QUIRKS_MODE_PUBLIC_ID_PREFIXES = [\n '+//silmaril//dtd html pro v0r11 19970101//',\n '-//as//dtd html 3.0 aswedit + extensions//',\n '-//advasoft ltd//dtd html 3.0 aswedit + extensions//',\n '-//ietf//dtd html 2.0 level 1//',\n '-//ietf//dtd html 2.0 level 2//',\n '-//ietf//dtd html 2.0 strict level 1//',\n '-//ietf//dtd html 2.0 strict level 2//',\n '-//ietf//dtd html 2.0 strict//',\n '-//ietf//dtd html 2.0//',\n '-//ietf//dtd html 2.1e//',\n '-//ietf//dtd html 3.0//',\n '-//ietf//dtd html 3.2 final//',\n '-//ietf//dtd html 3.2//',\n '-//ietf//dtd html 3//',\n '-//ietf//dtd html level 0//',\n '-//ietf//dtd html level 1//',\n '-//ietf//dtd html level 2//',\n '-//ietf//dtd html level 3//',\n '-//ietf//dtd html strict level 0//',\n '-//ietf//dtd html strict level 1//',\n '-//ietf//dtd html strict level 2//',\n '-//ietf//dtd html strict level 3//',\n '-//ietf//dtd html strict//',\n '-//ietf//dtd html//',\n '-//metrius//dtd metrius presentational//',\n '-//microsoft//dtd internet explorer 2.0 html strict//',\n '-//microsoft//dtd internet explorer 2.0 html//',\n '-//microsoft//dtd internet explorer 2.0 tables//',\n '-//microsoft//dtd internet explorer 3.0 html strict//',\n '-//microsoft//dtd internet explorer 3.0 html//',\n '-//microsoft//dtd internet explorer 3.0 tables//',\n '-//netscape comm. corp.//dtd html//',\n '-//netscape comm. corp.//dtd strict html//',\n \"-//o'reilly and associates//dtd html 2.0//\",\n \"-//o'reilly and associates//dtd html extended 1.0//\",\n \"-//o'reilly and associates//dtd html extended relaxed 1.0//\",\n '-//sq//dtd html 2.0 hotmetal + extensions//',\n '-//softquad software//dtd hotmetal pro 6.0::19990601::extensions to html 4.0//',\n '-//softquad//dtd hotmetal pro 4.0::19971010::extensions to html 4.0//',\n '-//spyglass//dtd html 2.0 extended//',\n '-//sun microsystems corp.//dtd hotjava html//',\n '-//sun microsystems corp.//dtd hotjava strict html//',\n '-//w3c//dtd html 3 1995-03-24//',\n '-//w3c//dtd html 3.2 draft//',\n '-//w3c//dtd html 3.2 final//',\n '-//w3c//dtd html 3.2//',\n '-//w3c//dtd html 3.2s draft//',\n '-//w3c//dtd html 4.0 frameset//',\n '-//w3c//dtd html 4.0 transitional//',\n '-//w3c//dtd html experimental 19960712//',\n '-//w3c//dtd html experimental 970421//',\n '-//w3c//dtd w3 html//',\n '-//w3o//dtd w3 html 3.0//',\n '-//webtechs//dtd mozilla html 2.0//',\n '-//webtechs//dtd mozilla html//'\n];\n\nconst QUIRKS_MODE_NO_SYSTEM_ID_PUBLIC_ID_PREFIXES = QUIRKS_MODE_PUBLIC_ID_PREFIXES.concat([\n '-//w3c//dtd html 4.01 frameset//',\n '-//w3c//dtd html 4.01 transitional//'\n]);\n\nconst QUIRKS_MODE_PUBLIC_IDS = ['-//w3o//dtd w3 html strict 3.0//en//', '-/w3c/dtd html 4.0 transitional/en', 'html'];\nconst LIMITED_QUIRKS_PUBLIC_ID_PREFIXES = ['-//w3c//dtd xhtml 1.0 frameset//', '-//w3c//dtd xhtml 1.0 transitional//'];\n\nconst LIMITED_QUIRKS_WITH_SYSTEM_ID_PUBLIC_ID_PREFIXES = LIMITED_QUIRKS_PUBLIC_ID_PREFIXES.concat([\n '-//w3c//dtd html 4.01 frameset//',\n '-//w3c//dtd html 4.01 transitional//'\n]);\n\n//Utils\nfunction enquoteDoctypeId(id) {\n const quote = id.indexOf('\"') !== -1 ? \"'\" : '\"';\n\n return quote + id + quote;\n}\n\nfunction hasPrefix(publicId, prefixes) {\n for (let i = 0; i < prefixes.length; i++) {\n if (publicId.indexOf(prefixes[i]) === 0) {\n return true;\n }\n }\n\n return false;\n}\n\n//API\nexports.isConforming = function(token) {\n return (\n token.name === VALID_DOCTYPE_NAME &&\n token.publicId === null &&\n (token.systemId === null || token.systemId === VALID_SYSTEM_ID)\n );\n};\n\nexports.getDocumentMode = function(token) {\n if (token.name !== VALID_DOCTYPE_NAME) {\n return DOCUMENT_MODE.QUIRKS;\n }\n\n const systemId = token.systemId;\n\n if (systemId && systemId.toLowerCase() === QUIRKS_MODE_SYSTEM_ID) {\n return DOCUMENT_MODE.QUIRKS;\n }\n\n let publicId = token.publicId;\n\n if (publicId !== null) {\n publicId = publicId.toLowerCase();\n\n if (QUIRKS_MODE_PUBLIC_IDS.indexOf(publicId) > -1) {\n return DOCUMENT_MODE.QUIRKS;\n }\n\n let prefixes = systemId === null ? QUIRKS_MODE_NO_SYSTEM_ID_PUBLIC_ID_PREFIXES : QUIRKS_MODE_PUBLIC_ID_PREFIXES;\n\n if (hasPrefix(publicId, prefixes)) {\n return DOCUMENT_MODE.QUIRKS;\n }\n\n prefixes =\n systemId === null ? LIMITED_QUIRKS_PUBLIC_ID_PREFIXES : LIMITED_QUIRKS_WITH_SYSTEM_ID_PUBLIC_ID_PREFIXES;\n\n if (hasPrefix(publicId, prefixes)) {\n return DOCUMENT_MODE.LIMITED_QUIRKS;\n }\n }\n\n return DOCUMENT_MODE.NO_QUIRKS;\n};\n\nexports.serializeContent = function(name, publicId, systemId) {\n let str = '!DOCTYPE ';\n\n if (name) {\n str += name;\n }\n\n if (publicId) {\n str += ' PUBLIC ' + enquoteDoctypeId(publicId);\n } else if (systemId) {\n str += ' SYSTEM';\n }\n\n if (systemId !== null) {\n str += ' ' + enquoteDoctypeId(systemId);\n }\n\n return str;\n};\n","'use strict';\n\nconst Tokenizer = require('../tokenizer');\nconst HTML = require('./html');\n\n//Aliases\nconst $ = HTML.TAG_NAMES;\nconst NS = HTML.NAMESPACES;\nconst ATTRS = HTML.ATTRS;\n\n//MIME types\nconst MIME_TYPES = {\n TEXT_HTML: 'text/html',\n APPLICATION_XML: 'application/xhtml+xml'\n};\n\n//Attributes\nconst DEFINITION_URL_ATTR = 'definitionurl';\nconst ADJUSTED_DEFINITION_URL_ATTR = 'definitionURL';\nconst SVG_ATTRS_ADJUSTMENT_MAP = {\n attributename: 'attributeName',\n attributetype: 'attributeType',\n basefrequency: 'baseFrequency',\n baseprofile: 'baseProfile',\n calcmode: 'calcMode',\n clippathunits: 'clipPathUnits',\n diffuseconstant: 'diffuseConstant',\n edgemode: 'edgeMode',\n filterunits: 'filterUnits',\n glyphref: 'glyphRef',\n gradienttransform: 'gradientTransform',\n gradientunits: 'gradientUnits',\n kernelmatrix: 'kernelMatrix',\n kernelunitlength: 'kernelUnitLength',\n keypoints: 'keyPoints',\n keysplines: 'keySplines',\n keytimes: 'keyTimes',\n lengthadjust: 'lengthAdjust',\n limitingconeangle: 'limitingConeAngle',\n markerheight: 'markerHeight',\n markerunits: 'markerUnits',\n markerwidth: 'markerWidth',\n maskcontentunits: 'maskContentUnits',\n maskunits: 'maskUnits',\n numoctaves: 'numOctaves',\n pathlength: 'pathLength',\n patterncontentunits: 'patternContentUnits',\n patterntransform: 'patternTransform',\n patternunits: 'patternUnits',\n pointsatx: 'pointsAtX',\n pointsaty: 'pointsAtY',\n pointsatz: 'pointsAtZ',\n preservealpha: 'preserveAlpha',\n preserveaspectratio: 'preserveAspectRatio',\n primitiveunits: 'primitiveUnits',\n refx: 'refX',\n refy: 'refY',\n repeatcount: 'repeatCount',\n repeatdur: 'repeatDur',\n requiredextensions: 'requiredExtensions',\n requiredfeatures: 'requiredFeatures',\n specularconstant: 'specularConstant',\n specularexponent: 'specularExponent',\n spreadmethod: 'spreadMethod',\n startoffset: 'startOffset',\n stddeviation: 'stdDeviation',\n stitchtiles: 'stitchTiles',\n surfacescale: 'surfaceScale',\n systemlanguage: 'systemLanguage',\n tablevalues: 'tableValues',\n targetx: 'targetX',\n targety: 'targetY',\n textlength: 'textLength',\n viewbox: 'viewBox',\n viewtarget: 'viewTarget',\n xchannelselector: 'xChannelSelector',\n ychannelselector: 'yChannelSelector',\n zoomandpan: 'zoomAndPan'\n};\n\nconst XML_ATTRS_ADJUSTMENT_MAP = {\n 'xlink:actuate': { prefix: 'xlink', name: 'actuate', namespace: NS.XLINK },\n 'xlink:arcrole': { prefix: 'xlink', name: 'arcrole', namespace: NS.XLINK },\n 'xlink:href': { prefix: 'xlink', name: 'href', namespace: NS.XLINK },\n 'xlink:role': { prefix: 'xlink', name: 'role', namespace: NS.XLINK },\n 'xlink:show': { prefix: 'xlink', name: 'show', namespace: NS.XLINK },\n 'xlink:title': { prefix: 'xlink', name: 'title', namespace: NS.XLINK },\n 'xlink:type': { prefix: 'xlink', name: 'type', namespace: NS.XLINK },\n 'xml:base': { prefix: 'xml', name: 'base', namespace: NS.XML },\n 'xml:lang': { prefix: 'xml', name: 'lang', namespace: NS.XML },\n 'xml:space': { prefix: 'xml', name: 'space', namespace: NS.XML },\n xmlns: { prefix: '', name: 'xmlns', namespace: NS.XMLNS },\n 'xmlns:xlink': { prefix: 'xmlns', name: 'xlink', namespace: NS.XMLNS }\n};\n\n//SVG tag names adjustment map\nconst SVG_TAG_NAMES_ADJUSTMENT_MAP = (exports.SVG_TAG_NAMES_ADJUSTMENT_MAP = {\n altglyph: 'altGlyph',\n altglyphdef: 'altGlyphDef',\n altglyphitem: 'altGlyphItem',\n animatecolor: 'animateColor',\n animatemotion: 'animateMotion',\n animatetransform: 'animateTransform',\n clippath: 'clipPath',\n feblend: 'feBlend',\n fecolormatrix: 'feColorMatrix',\n fecomponenttransfer: 'feComponentTransfer',\n fecomposite: 'feComposite',\n feconvolvematrix: 'feConvolveMatrix',\n fediffuselighting: 'feDiffuseLighting',\n fedisplacementmap: 'feDisplacementMap',\n fedistantlight: 'feDistantLight',\n feflood: 'feFlood',\n fefunca: 'feFuncA',\n fefuncb: 'feFuncB',\n fefuncg: 'feFuncG',\n fefuncr: 'feFuncR',\n fegaussianblur: 'feGaussianBlur',\n feimage: 'feImage',\n femerge: 'feMerge',\n femergenode: 'feMergeNode',\n femorphology: 'feMorphology',\n feoffset: 'feOffset',\n fepointlight: 'fePointLight',\n fespecularlighting: 'feSpecularLighting',\n fespotlight: 'feSpotLight',\n fetile: 'feTile',\n feturbulence: 'feTurbulence',\n foreignobject: 'foreignObject',\n glyphref: 'glyphRef',\n lineargradient: 'linearGradient',\n radialgradient: 'radialGradient',\n textpath: 'textPath'\n});\n\n//Tags that causes exit from foreign content\nconst EXITS_FOREIGN_CONTENT = {\n [$.B]: true,\n [$.BIG]: true,\n [$.BLOCKQUOTE]: true,\n [$.BODY]: true,\n [$.BR]: true,\n [$.CENTER]: true,\n [$.CODE]: true,\n [$.DD]: true,\n [$.DIV]: true,\n [$.DL]: true,\n [$.DT]: true,\n [$.EM]: true,\n [$.EMBED]: true,\n [$.H1]: true,\n [$.H2]: true,\n [$.H3]: true,\n [$.H4]: true,\n [$.H5]: true,\n [$.H6]: true,\n [$.HEAD]: true,\n [$.HR]: true,\n [$.I]: true,\n [$.IMG]: true,\n [$.LI]: true,\n [$.LISTING]: true,\n [$.MENU]: true,\n [$.META]: true,\n [$.NOBR]: true,\n [$.OL]: true,\n [$.P]: true,\n [$.PRE]: true,\n [$.RUBY]: true,\n [$.S]: true,\n [$.SMALL]: true,\n [$.SPAN]: true,\n [$.STRONG]: true,\n [$.STRIKE]: true,\n [$.SUB]: true,\n [$.SUP]: true,\n [$.TABLE]: true,\n [$.TT]: true,\n [$.U]: true,\n [$.UL]: true,\n [$.VAR]: true\n};\n\n//Check exit from foreign content\nexports.causesExit = function(startTagToken) {\n const tn = startTagToken.tagName;\n const isFontWithAttrs =\n tn === $.FONT &&\n (Tokenizer.getTokenAttr(startTagToken, ATTRS.COLOR) !== null ||\n Tokenizer.getTokenAttr(startTagToken, ATTRS.SIZE) !== null ||\n Tokenizer.getTokenAttr(startTagToken, ATTRS.FACE) !== null);\n\n return isFontWithAttrs ? true : EXITS_FOREIGN_CONTENT[tn];\n};\n\n//Token adjustments\nexports.adjustTokenMathMLAttrs = function(token) {\n for (let i = 0; i < token.attrs.length; i++) {\n if (token.attrs[i].name === DEFINITION_URL_ATTR) {\n token.attrs[i].name = ADJUSTED_DEFINITION_URL_ATTR;\n break;\n }\n }\n};\n\nexports.adjustTokenSVGAttrs = function(token) {\n for (let i = 0; i < token.attrs.length; i++) {\n const adjustedAttrName = SVG_ATTRS_ADJUSTMENT_MAP[token.attrs[i].name];\n\n if (adjustedAttrName) {\n token.attrs[i].name = adjustedAttrName;\n }\n }\n};\n\nexports.adjustTokenXMLAttrs = function(token) {\n for (let i = 0; i < token.attrs.length; i++) {\n const adjustedAttrEntry = XML_ATTRS_ADJUSTMENT_MAP[token.attrs[i].name];\n\n if (adjustedAttrEntry) {\n token.attrs[i].prefix = adjustedAttrEntry.prefix;\n token.attrs[i].name = adjustedAttrEntry.name;\n token.attrs[i].namespace = adjustedAttrEntry.namespace;\n }\n }\n};\n\nexports.adjustTokenSVGTagName = function(token) {\n const adjustedTagName = SVG_TAG_NAMES_ADJUSTMENT_MAP[token.tagName];\n\n if (adjustedTagName) {\n token.tagName = adjustedTagName;\n }\n};\n\n//Integration points\nfunction isMathMLTextIntegrationPoint(tn, ns) {\n return ns === NS.MATHML && (tn === $.MI || tn === $.MO || tn === $.MN || tn === $.MS || tn === $.MTEXT);\n}\n\nfunction isHtmlIntegrationPoint(tn, ns, attrs) {\n if (ns === NS.MATHML && tn === $.ANNOTATION_XML) {\n for (let i = 0; i < attrs.length; i++) {\n if (attrs[i].name === ATTRS.ENCODING) {\n const value = attrs[i].value.toLowerCase();\n\n return value === MIME_TYPES.TEXT_HTML || value === MIME_TYPES.APPLICATION_XML;\n }\n }\n }\n\n return ns === NS.SVG && (tn === $.FOREIGN_OBJECT || tn === $.DESC || tn === $.TITLE);\n}\n\nexports.isIntegrationPoint = function(tn, ns, attrs, foreignNS) {\n if ((!foreignNS || foreignNS === NS.HTML) && isHtmlIntegrationPoint(tn, ns, attrs)) {\n return true;\n }\n\n if ((!foreignNS || foreignNS === NS.MATHML) && isMathMLTextIntegrationPoint(tn, ns)) {\n return true;\n }\n\n return false;\n};\n","'use strict'\n\nvar s = require('hastscript/svg')\nvar h = require('hastscript')\nvar find = require('property-information/find')\nvar html = require('property-information/html')\nvar svg = require('property-information/svg')\nvar vfileLocation = require('vfile-location')\nvar ns = require('web-namespaces')\n\nmodule.exports = wrapper\n\nvar own = {}.hasOwnProperty\n\n// Handlers.\nvar map = {\n '#document': root,\n '#document-fragment': root,\n '#text': text,\n '#comment': comment,\n '#documentType': doctype\n}\n\n// Wrapper to normalise options.\nfunction wrapper(ast, options) {\n var settings = options || {}\n var file\n\n if (settings.messages) {\n file = settings\n settings = {}\n } else {\n file = settings.file\n }\n\n return transform(ast, {\n schema: settings.space === 'svg' ? svg : html,\n file: file,\n verbose: settings.verbose\n })\n}\n\n// Transform a node.\nfunction transform(ast, config) {\n var schema = config.schema\n var fn = own.call(map, ast.nodeName) ? map[ast.nodeName] : element\n var children\n var result\n var position\n\n if (fn === element) {\n config.schema = ast.namespaceURI === ns.svg ? svg : html\n }\n\n if (ast.childNodes) {\n children = nodes(ast.childNodes, config)\n }\n\n result = fn(ast, children, config)\n\n if (ast.sourceCodeLocation && config.file) {\n position = location(result, ast.sourceCodeLocation, config)\n\n if (position) {\n config.location = true\n result.position = position\n }\n }\n\n config.schema = schema\n\n return result\n}\n\n// Transform children.\nfunction nodes(children, config) {\n var index = -1\n var result = []\n\n while (++index < children.length) {\n result[index] = transform(children[index], config)\n }\n\n return result\n}\n\n// Transform a document.\n// Stores `ast.quirksMode` in `node.data.quirksMode`.\nfunction root(ast, children, config) {\n var result = {\n type: 'root',\n children: children,\n data: {quirksMode: ast.mode === 'quirks' || ast.mode === 'limited-quirks'}\n }\n var doc\n var location\n\n if (config.file && config.location) {\n doc = String(config.file)\n location = vfileLocation(doc)\n result.position = {\n start: location.toPoint(0),\n end: location.toPoint(doc.length)\n }\n }\n\n return result\n}\n\n// Transform a doctype.\nfunction doctype(ast) {\n return {\n type: 'doctype',\n name: ast.name || '',\n public: ast.publicId || null,\n system: ast.systemId || null\n }\n}\n\n// Transform a text.\nfunction text(ast) {\n return {type: 'text', value: ast.value}\n}\n\n// Transform a comment.\nfunction comment(ast) {\n return {type: 'comment', value: ast.data}\n}\n\n// Transform an element.\nfunction element(ast, children, config) {\n var fn = config.schema.space === 'svg' ? s : h\n var props = {}\n var index = -1\n var result\n var attribute\n var pos\n var start\n var end\n\n while (++index < ast.attrs.length) {\n attribute = ast.attrs[index]\n props[(attribute.prefix ? attribute.prefix + ':' : '') + attribute.name] =\n attribute.value\n }\n\n result = fn(ast.tagName, props, children)\n\n if (result.tagName === 'template' && 'content' in ast) {\n pos = ast.sourceCodeLocation\n start = pos && pos.startTag && position(pos.startTag).end\n end = pos && pos.endTag && position(pos.endTag).start\n\n result.content = transform(ast.content, config)\n\n if ((start || end) && config.file) {\n result.content.position = {start: start, end: end}\n }\n }\n\n return result\n}\n\n// Create clean positional information.\nfunction location(node, location, config) {\n var result = position(location)\n var tail\n var key\n var props\n\n if (node.type === 'element') {\n tail = node.children[node.children.length - 1]\n\n // Bug for unclosed with children.\n // See: <https://github.com/inikulin/parse5/issues/109>.\n if (!location.endTag && tail && tail.position && tail.position.end) {\n result.end = Object.assign({}, tail.position.end)\n }\n\n if (config.verbose) {\n props = {}\n\n for (key in location.attrs) {\n props[find(config.schema, key).property] = position(location.attrs[key])\n }\n\n node.data = {\n position: {\n opening: position(location.startTag),\n closing: location.endTag ? position(location.endTag) : null,\n properties: props\n }\n }\n }\n }\n\n return result\n}\n\nfunction position(loc) {\n var start = point({\n line: loc.startLine,\n column: loc.startCol,\n offset: loc.startOffset\n })\n var end = point({\n line: loc.endLine,\n column: loc.endCol,\n offset: loc.endOffset\n })\n return start || end ? {start: start, end: end} : null\n}\n\nfunction point(point) {\n return point.line && point.column ? point : null\n}\n","'use strict'\n\nvar schema = require('property-information/svg')\nvar caseSensitive = require('./svg-case-sensitive-tag-names.json')\nvar factory = require('./factory')\n\nvar svg = factory(schema, 'g', caseSensitive)\nsvg.displayName = 'svg'\n\nmodule.exports = svg\n","'use strict'\n\nmodule.exports = parse\n\nvar search = /[#.]/g\n\n// Create a hast element from a simple CSS selector.\nfunction parse(selector, defaultTagName) {\n var value = selector || ''\n var name = defaultTagName || 'div'\n var props = {}\n var start = 0\n var subvalue\n var previous\n var match\n\n while (start < value.length) {\n search.lastIndex = start\n match = search.exec(value)\n subvalue = value.slice(start, match ? match.index : value.length)\n\n if (subvalue) {\n if (!previous) {\n name = subvalue\n } else if (previous === '#') {\n props.id = subvalue\n } else if (props.className) {\n props.className.push(subvalue)\n } else {\n props.className = [subvalue]\n }\n\n start += subvalue.length\n }\n\n if (match) {\n previous = match[0]\n start++\n }\n }\n\n return {type: 'element', tagName: name, properties: props, children: []}\n}\n","'use strict'\n\nvar schema = require('property-information/html')\nvar factory = require('./factory')\n\nvar html = factory(schema, 'div')\nhtml.displayName = 'html'\n\nmodule.exports = html\n","'use strict'\n\nmodule.exports = factory\n\nfunction factory(file) {\n var value = String(file)\n var indices = []\n var search = /\\r?\\n|\\r/g\n\n while (search.exec(value)) {\n indices.push(search.lastIndex)\n }\n\n indices.push(value.length + 1)\n\n return {\n toPoint: offsetToPoint,\n toPosition: offsetToPoint,\n toOffset: pointToOffset\n }\n\n // Get the line and column-based `point` for `offset` in the bound indices.\n function offsetToPoint(offset) {\n var index = -1\n\n if (offset > -1 && offset < indices[indices.length - 1]) {\n while (++index < indices.length) {\n if (indices[index] > offset) {\n return {\n line: index + 1,\n column: offset - (indices[index - 1] || 0) + 1,\n offset: offset\n }\n }\n }\n }\n\n return {}\n }\n\n // Get the `offset` for a line and column-based `point` in the bound\n // indices.\n function pointToOffset(point) {\n var line = point && point.line\n var column = point && point.column\n var offset\n\n if (!isNaN(line) && !isNaN(column) && line - 1 in indices) {\n offset = (indices[line - 2] || 0) + column - 1 || 0\n }\n\n return offset > -1 && offset < indices[indices.length - 1] ? offset : -1\n }\n}\n","'use strict'\n\nvar xtend = require('xtend')\nvar html = require('property-information/html')\nvar svg = require('property-information/svg')\nvar find = require('property-information/find')\nvar toH = require('hast-to-hyperscript')\nvar ns = require('web-namespaces')\nvar zwitch = require('zwitch')\n\nmodule.exports = transform\n\nvar ignoredSpaces = ['svg', 'html']\n\nvar one = zwitch('type')\n\none.handlers.root = root\none.handlers.element = element\none.handlers.text = text\none.handlers.comment = comment\none.handlers.doctype = doctype\n\n// Transform a tree from hast to Parse5s AST.\nfunction transform(tree, space) {\n return one(tree, space === 'svg' ? svg : html)\n}\n\nfunction root(node, schema) {\n var data = node.data || {}\n var mode = data.quirksMode ? 'quirks' : 'no-quirks'\n\n return patch(node, {nodeName: '#document', mode: mode}, schema)\n}\n\nfunction fragment(node, schema) {\n return patch(node, {nodeName: '#document-fragment'}, schema)\n}\n\nfunction doctype(node, schema) {\n return patch(\n node,\n {\n nodeName: '#documentType',\n name: node.name,\n publicId: node.public || '',\n systemId: node.system || ''\n },\n schema\n )\n}\n\nfunction text(node, schema) {\n return patch(node, {nodeName: '#text', value: node.value}, schema)\n}\n\nfunction comment(node, schema) {\n return patch(node, {nodeName: '#comment', data: node.value}, schema)\n}\n\nfunction element(node, schema) {\n var space = schema.space\n var shallow = xtend(node, {children: []})\n\n return toH(h, shallow, {space: space})\n\n function h(name, attrs) {\n var values = []\n var p5\n var attr\n var value\n var key\n var info\n var pos\n\n for (key in attrs) {\n info = find(schema, key)\n attr = attrs[key]\n\n if (attr === false || (info.boolean && !attr)) {\n continue\n }\n\n value = {name: key, value: attr === true ? '' : String(attr)}\n\n if (info.space && ignoredSpaces.indexOf(info.space) === -1) {\n pos = key.indexOf(':')\n\n if (pos === -1) {\n value.prefix = ''\n } else {\n value.name = key.slice(pos + 1)\n value.prefix = key.slice(0, pos)\n }\n\n value.namespace = ns[info.space]\n }\n\n values.push(value)\n }\n\n p5 = patch(node, {nodeName: name, tagName: name, attrs: values}, schema)\n\n if (name === 'template') {\n p5.content = fragment(shallow.content, schema)\n }\n\n return p5\n }\n}\n\n// Patch specific properties.\nfunction patch(node, p5, parentSchema) {\n var schema = parentSchema\n var position = node.position\n var children = node.children\n var childNodes = []\n var length = children ? children.length : 0\n var index = -1\n var child\n\n if (node.type === 'element') {\n if (schema.space === 'html' && node.tagName === 'svg') {\n schema = svg\n }\n\n p5.namespaceURI = ns[schema.space]\n }\n\n while (++index < length) {\n child = one(children[index], schema)\n child.parentNode = p5\n childNodes[index] = child\n }\n\n if (node.type === 'element' || node.type === 'root') {\n p5.childNodes = childNodes\n }\n\n if (position && position.start && position.end) {\n p5.sourceCodeLocation = {\n startLine: position.start.line,\n startCol: position.start.column,\n startOffset: position.start.offset,\n endLine: position.end.line,\n endCol: position.end.column,\n endOffset: position.end.offset\n }\n }\n\n return p5\n}\n","'use strict'\n\nvar html = require('property-information/html')\nvar svg = require('property-information/svg')\nvar find = require('property-information/find')\nvar hastToReact = require('property-information/hast-to-react.json')\nvar spaces = require('space-separated-tokens')\nvar commas = require('comma-separated-tokens')\nvar style = require('style-to-object')\nvar ns = require('web-namespaces')\nvar convert = require('unist-util-is/convert')\n\nvar root = convert('root')\nvar element = convert('element')\nvar text = convert('text')\n\nmodule.exports = wrapper\n\nfunction wrapper(h, node, options) {\n var settings = options || {}\n var r = react(h)\n var v = vue(h)\n var vd = vdom(h)\n var prefix\n\n if (typeof h !== 'function') {\n throw new Error('h is not a function')\n }\n\n if (typeof settings === 'string' || typeof settings === 'boolean') {\n prefix = settings\n settings = {}\n } else {\n prefix = settings.prefix\n }\n\n if (root(node)) {\n node =\n node.children.length === 1 && element(node.children[0])\n ? node.children[0]\n : {\n type: 'element',\n tagName: 'div',\n properties: {},\n children: node.children\n }\n } else if (!element(node)) {\n throw new Error(\n 'Expected root or element, not `' + ((node && node.type) || node) + '`'\n )\n }\n\n return toH(h, node, {\n schema: settings.space === 'svg' ? svg : html,\n prefix: prefix == null ? (r || v || vd ? 'h-' : null) : prefix,\n key: 0,\n react: r,\n vue: v,\n vdom: vd,\n hyperscript: hyperscript(h)\n })\n}\n\n// Transform a hast node through a hyperscript interface to *anything*!\nfunction toH(h, node, ctx) {\n var parentSchema = ctx.schema\n var schema = parentSchema\n var name = node.tagName\n var attributes = {}\n var nodes = []\n var index = -1\n var key\n var value\n\n if (parentSchema.space === 'html' && name.toLowerCase() === 'svg') {\n schema = svg\n ctx.schema = schema\n }\n\n for (key in node.properties) {\n addAttribute(attributes, key, node.properties[key], ctx, name)\n }\n\n if (ctx.vdom) {\n if (schema.space === 'html') {\n name = name.toUpperCase()\n } else {\n attributes.namespace = ns[schema.space]\n }\n }\n\n if (ctx.prefix) {\n ctx.key++\n attributes.key = ctx.prefix + ctx.key\n }\n\n if (node.children) {\n while (++index < node.children.length) {\n value = node.children[index]\n\n if (element(value)) {\n nodes.push(toH(h, value, ctx))\n } else if (text(value)) {\n nodes.push(value.value)\n }\n }\n }\n\n // Restore parent schema.\n ctx.schema = parentSchema\n\n // Ensure no React warnings are triggered for void elements having children\n // passed in.\n return nodes.length\n ? h.call(node, name, attributes, nodes)\n : h.call(node, name, attributes)\n}\n\nfunction addAttribute(props, prop, value, ctx, name) {\n var info = find(ctx.schema, prop)\n var subprop\n\n // Ignore nullish and `NaN` values.\n // Ignore `false` and falsey known booleans for hyperlike DSLs.\n if (\n value == null ||\n value !== value ||\n (value === false && (ctx.vue || ctx.vdom || ctx.hyperscript)) ||\n (!value && info.boolean && (ctx.vue || ctx.vdom || ctx.hyperscript))\n ) {\n return\n }\n\n if (value && typeof value === 'object' && 'length' in value) {\n // Accept `array`.\n // Most props are space-separated.\n value = (info.commaSeparated ? commas : spaces).stringify(value)\n }\n\n // Treat `true` and truthy known booleans.\n if (info.boolean && ctx.hyperscript) {\n value = ''\n }\n\n // VDOM, Vue, and React accept `style` as object.\n if (\n info.property === 'style' &&\n typeof value === 'string' &&\n (ctx.react || ctx.vue || ctx.vdom)\n ) {\n value = parseStyle(value, name)\n }\n\n if (ctx.vue) {\n if (info.property !== 'style') subprop = 'attrs'\n } else if (!info.mustUseProperty) {\n if (ctx.vdom) {\n if (info.property !== 'style') subprop = 'attributes'\n } else if (ctx.hyperscript) {\n subprop = 'attrs'\n }\n }\n\n if (subprop) {\n if (!props[subprop]) props[subprop] = {}\n props[subprop][info.attribute] = value\n } else if (info.space && ctx.react) {\n props[hastToReact[info.property] || info.property] = value\n } else {\n props[info.attribute] = value\n }\n}\n\n// Check if `h` is `react.createElement`.\nfunction react(h) {\n var node = h && h('div')\n return Boolean(\n node && ('_owner' in node || '_store' in node) && node.key == null\n )\n}\n\n// Check if `h` is `hyperscript`.\nfunction hyperscript(h) {\n return Boolean(h && h.context && h.cleanup)\n}\n\n// Check if `h` is `virtual-dom/h`.\nfunction vdom(h) {\n return h && h('div').type === 'VirtualNode'\n}\n\nfunction vue(h) {\n var node = h && h('div')\n return Boolean(node && node.context && node.context._isVue)\n}\n\nfunction parseStyle(value, tagName) {\n var result = {}\n\n try {\n style(value, iterator)\n } catch (error) {\n error.message =\n tagName + '[style]' + error.message.slice('undefined'.length)\n throw error\n }\n\n return result\n\n function iterator(name, value) {\n if (name.slice(0, 4) === '-ms-') name = 'ms-' + name.slice(4)\n result[name.replace(/-([a-z])/g, styleReplacer)] = value\n }\n}\n\nfunction styleReplacer($0, $1) {\n return $1.toUpperCase()\n}\n","var unsupportedIterableToArray = require(\"./unsupportedIterableToArray\");\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) {\n var it;\n\n if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) {\n if (Array.isArray(o) || (it = unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n\n var F = function F() {};\n\n return {\n s: F,\n n: function n() {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function e(_e) {\n throw _e;\n },\n f: F\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function s() {\n it = o[Symbol.iterator]();\n },\n n: function n() {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function e(_e2) {\n didErr = true;\n err = _e2;\n },\n f: function f() {\n try {\n if (!normalCompletion && it[\"return\"] != null) it[\"return\"]();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}\n\nmodule.exports = _createForOfIteratorHelper;","var arrayLikeToArray = require(\"./arrayLikeToArray\");\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}\n\nmodule.exports = _unsupportedIterableToArray;","function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nmodule.exports = _arrayLikeToArray;","/**\n * @fileoverview\n * Get the plain-text value of a hast node.\n * @longdescription\n * ## Use\n *\n * ```js\n * var h = require('hastscript')\n * var toString = require('hast-util-to-string')\n *\n * toString(h('p', 'Alpha'))\n * //=> 'Alpha'\n * toString(h('div', [h('b', 'Bold'), ' and ', h('i', 'italic'), '.']))\n * //=> 'Bold and italic.'\n * ```\n *\n * ## API\n *\n * ### `toString(node)`\n *\n * Transform a node to a string.\n */\n\n'use strict'\n\nmodule.exports = toString\n\nfunction toString(node) {\n // “The concatenation of data of all the Text node descendants of the context\n // object, in tree order.”\n if ('children' in node) {\n return all(node)\n }\n\n // “Context objects data.”\n return 'value' in node ? node.value : ''\n}\n\nfunction one(node) {\n if (node.type === 'text') {\n return node.value\n }\n\n return node.children ? all(node) : ''\n}\n\nfunction all(node) {\n var children = node.children\n var length = children.length\n var index = -1\n var result = []\n\n while (++index < length) {\n result[index] = one(children[index])\n }\n\n return result.join('')\n}\n","'use strict'\n\nvar refractor = require('./core.js')\n\nmodule.exports = refractor\n\nrefractor.register(require('./lang/abap.js'))\nrefractor.register(require('./lang/abnf.js'))\nrefractor.register(require('./lang/actionscript.js'))\nrefractor.register(require('./lang/ada.js'))\nrefractor.register(require('./lang/agda.js'))\nrefractor.register(require('./lang/al.js'))\nrefractor.register(require('./lang/antlr4.js'))\nrefractor.register(require('./lang/apacheconf.js'))\nrefractor.register(require('./lang/apex.js'))\nrefractor.register(require('./lang/apl.js'))\nrefractor.register(require('./lang/applescript.js'))\nrefractor.register(require('./lang/aql.js'))\nrefractor.register(require('./lang/arduino.js'))\nrefractor.register(require('./lang/arff.js'))\nrefractor.register(require('./lang/asciidoc.js'))\nrefractor.register(require('./lang/asm6502.js'))\nrefractor.register(require('./lang/aspnet.js'))\nrefractor.register(require('./lang/autohotkey.js'))\nrefractor.register(require('./lang/autoit.js'))\nrefractor.register(require('./lang/bash.js'))\nrefractor.register(require('./lang/basic.js'))\nrefractor.register(require('./lang/batch.js'))\nrefractor.register(require('./lang/bbcode.js'))\nrefractor.register(require('./lang/birb.js'))\nrefractor.register(require('./lang/bison.js'))\nrefractor.register(require('./lang/bnf.js'))\nrefractor.register(require('./lang/brainfuck.js'))\nrefractor.register(require('./lang/brightscript.js'))\nrefractor.register(require('./lang/bro.js'))\nrefractor.register(require('./lang/bsl.js'))\nrefractor.register(require('./lang/c.js'))\nrefractor.register(require('./lang/cil.js'))\nrefractor.register(require('./lang/clojure.js'))\nrefractor.register(require('./lang/cmake.js'))\nrefractor.register(require('./lang/coffeescript.js'))\nrefractor.register(require('./lang/concurnas.js'))\nrefractor.register(require('./lang/cpp.js'))\nrefractor.register(require('./lang/crystal.js'))\nrefractor.register(require('./lang/csharp.js'))\nrefractor.register(require('./lang/csp.js'))\nrefractor.register(require('./lang/css-extras.js'))\nrefractor.register(require('./lang/cypher.js'))\nrefractor.register(require('./lang/d.js'))\nrefractor.register(require('./lang/dart.js'))\nrefractor.register(require('./lang/dataweave.js'))\nrefractor.register(require('./lang/dax.js'))\nrefractor.register(require('./lang/dhall.js'))\nrefractor.register(require('./lang/diff.js'))\nrefractor.register(require('./lang/django.js'))\nrefractor.register(require('./lang/dns-zone-file.js'))\nrefractor.register(require('./lang/docker.js'))\nrefractor.register(require('./lang/ebnf.js'))\nrefractor.register(require('./lang/editorconfig.js'))\nrefractor.register(require('./lang/eiffel.js'))\nrefractor.register(require('./lang/ejs.js'))\nrefractor.register(require('./lang/elixir.js'))\nrefractor.register(require('./lang/elm.js'))\nrefractor.register(require('./lang/erb.js'))\nrefractor.register(require('./lang/erlang.js'))\nrefractor.register(require('./lang/etlua.js'))\nrefractor.register(require('./lang/excel-formula.js'))\nrefractor.register(require('./lang/factor.js'))\nrefractor.register(require('./lang/firestore-security-rules.js'))\nrefractor.register(require('./lang/flow.js'))\nrefractor.register(require('./lang/fortran.js'))\nrefractor.register(require('./lang/fsharp.js'))\nrefractor.register(require('./lang/ftl.js'))\nrefractor.register(require('./lang/gcode.js'))\nrefractor.register(require('./lang/gdscript.js'))\nrefractor.register(require('./lang/gedcom.js'))\nrefractor.register(require('./lang/gherkin.js'))\nrefractor.register(require('./lang/git.js'))\nrefractor.register(require('./lang/glsl.js'))\nrefractor.register(require('./lang/gml.js'))\nrefractor.register(require('./lang/go.js'))\nrefractor.register(require('./lang/graphql.js'))\nrefractor.register(require('./lang/groovy.js'))\nrefractor.register(require('./lang/haml.js'))\nrefractor.register(require('./lang/handlebars.js'))\nrefractor.register(require('./lang/haskell.js'))\nrefractor.register(require('./lang/haxe.js'))\nrefractor.register(require('./lang/hcl.js'))\nrefractor.register(require('./lang/hlsl.js'))\nrefractor.register(require('./lang/hpkp.js'))\nrefractor.register(require('./lang/hsts.js'))\nrefractor.register(require('./lang/http.js'))\nrefractor.register(require('./lang/ichigojam.js'))\nrefractor.register(require('./lang/icon.js'))\nrefractor.register(require('./lang/iecst.js'))\nrefractor.register(require('./lang/ignore.js'))\nrefractor.register(require('./lang/inform7.js'))\nrefractor.register(require('./lang/ini.js'))\nrefractor.register(require('./lang/io.js'))\nrefractor.register(require('./lang/j.js'))\nrefractor.register(require('./lang/java.js'))\nrefractor.register(require('./lang/javadoc.js'))\nrefractor.register(require('./lang/javadoclike.js'))\nrefractor.register(require('./lang/javastacktrace.js'))\nrefractor.register(require('./lang/jolie.js'))\nrefractor.register(require('./lang/jq.js'))\nrefractor.register(require('./lang/js-extras.js'))\nrefractor.register(require('./lang/js-templates.js'))\nrefractor.register(require('./lang/jsdoc.js'))\nrefractor.register(require('./lang/json.js'))\nrefractor.register(require('./lang/json5.js'))\nrefractor.register(require('./lang/jsonp.js'))\nrefractor.register(require('./lang/jsstacktrace.js'))\nrefractor.register(require('./lang/jsx.js'))\nrefractor.register(require('./lang/julia.js'))\nrefractor.register(require('./lang/keyman.js'))\nrefractor.register(require('./lang/kotlin.js'))\nrefractor.register(require('./lang/latex.js'))\nrefractor.register(require('./lang/latte.js'))\nrefractor.register(require('./lang/less.js'))\nrefractor.register(require('./lang/lilypond.js'))\nrefractor.register(require('./lang/liquid.js'))\nrefractor.register(require('./lang/lisp.js'))\nrefractor.register(require('./lang/livescript.js'))\nrefractor.register(require('./lang/llvm.js'))\nrefractor.register(require('./lang/lolcode.js'))\nrefractor.register(require('./lang/lua.js'))\nrefractor.register(require('./lang/makefile.js'))\nrefractor.register(require('./lang/markdown.js'))\nrefractor.register(require('./lang/markup-templating.js'))\nrefractor.register(require('./lang/matlab.js'))\nrefractor.register(require('./lang/mel.js'))\nrefractor.register(require('./lang/mizar.js'))\nrefractor.register(require('./lang/mongodb.js'))\nrefractor.register(require('./lang/monkey.js'))\nrefractor.register(require('./lang/moonscript.js'))\nrefractor.register(require('./lang/n1ql.js'))\nrefractor.register(require('./lang/n4js.js'))\nrefractor.register(require('./lang/nand2tetris-hdl.js'))\nrefractor.register(require('./lang/naniscript.js'))\nrefractor.register(require('./lang/nasm.js'))\nrefractor.register(require('./lang/neon.js'))\nrefractor.register(require('./lang/nginx.js'))\nrefractor.register(require('./lang/nim.js'))\nrefractor.register(require('./lang/nix.js'))\nrefractor.register(require('./lang/nsis.js'))\nrefractor.register(require('./lang/objectivec.js'))\nrefractor.register(require('./lang/ocaml.js'))\nrefractor.register(require('./lang/opencl.js'))\nrefractor.register(require('./lang/oz.js'))\nrefractor.register(require('./lang/parigp.js'))\nrefractor.register(require('./lang/parser.js'))\nrefractor.register(require('./lang/pascal.js'))\nrefractor.register(require('./lang/pascaligo.js'))\nrefractor.register(require('./lang/pcaxis.js'))\nrefractor.register(require('./lang/peoplecode.js'))\nrefractor.register(require('./lang/perl.js'))\nrefractor.register(require('./lang/php-extras.js'))\nrefractor.register(require('./lang/php.js'))\nrefractor.register(require('./lang/phpdoc.js'))\nrefractor.register(require('./lang/plsql.js'))\nrefractor.register(require('./lang/powerquery.js'))\nrefractor.register(require('./lang/powershell.js'))\nrefractor.register(require('./lang/processing.js'))\nrefractor.register(require('./lang/prolog.js'))\nrefractor.register(require('./lang/promql.js'))\nrefractor.register(require('./lang/properties.js'))\nrefractor.register(require('./lang/protobuf.js'))\nrefractor.register(require('./lang/pug.js'))\nrefractor.register(require('./lang/puppet.js'))\nrefractor.register(require('./lang/pure.js'))\nrefractor.register(require('./lang/purebasic.js'))\nrefractor.register(require('./lang/purescript.js'))\nrefractor.register(require('./lang/python.js'))\nrefractor.register(require('./lang/q.js'))\nrefractor.register(require('./lang/qml.js'))\nrefractor.register(require('./lang/qore.js'))\nrefractor.register(require('./lang/r.js'))\nrefractor.register(require('./lang/racket.js'))\nrefractor.register(require('./lang/reason.js'))\nrefractor.register(require('./lang/regex.js'))\nrefractor.register(require('./lang/renpy.js'))\nrefractor.register(require('./lang/rest.js'))\nrefractor.register(require('./lang/rip.js'))\nrefractor.register(require('./lang/roboconf.js'))\nrefractor.register(require('./lang/robotframework.js'))\nrefractor.register(require('./lang/ruby.js'))\nrefractor.register(require('./lang/rust.js'))\nrefractor.register(require('./lang/sas.js'))\nrefractor.register(require('./lang/sass.js'))\nrefractor.register(require('./lang/scala.js'))\nrefractor.register(require('./lang/scheme.js'))\nrefractor.register(require('./lang/scss.js'))\nrefractor.register(require('./lang/shell-session.js'))\nrefractor.register(require('./lang/smali.js'))\nrefractor.register(require('./lang/smalltalk.js'))\nrefractor.register(require('./lang/smarty.js'))\nrefractor.register(require('./lang/sml.js'))\nrefractor.register(require('./lang/solidity.js'))\nrefractor.register(require('./lang/solution-file.js'))\nrefractor.register(require('./lang/soy.js'))\nrefractor.register(require('./lang/sparql.js'))\nrefractor.register(require('./lang/splunk-spl.js'))\nrefractor.register(require('./lang/sqf.js'))\nrefractor.register(require('./lang/sql.js'))\nrefractor.register(require('./lang/stan.js'))\nrefractor.register(require('./lang/stylus.js'))\nrefractor.register(require('./lang/swift.js'))\nrefractor.register(require('./lang/t4-cs.js'))\nrefractor.register(require('./lang/t4-templating.js'))\nrefractor.register(require('./lang/t4-vb.js'))\nrefractor.register(require('./lang/tap.js'))\nrefractor.register(require('./lang/tcl.js'))\nrefractor.register(require('./lang/textile.js'))\nrefractor.register(require('./lang/toml.js'))\nrefractor.register(require('./lang/tsx.js'))\nrefractor.register(require('./lang/tt2.js'))\nrefractor.register(require('./lang/turtle.js'))\nrefractor.register(require('./lang/twig.js'))\nrefractor.register(require('./lang/typescript.js'))\nrefractor.register(require('./lang/typoscript.js'))\nrefractor.register(require('./lang/unrealscript.js'))\nrefractor.register(require('./lang/vala.js'))\nrefractor.register(require('./lang/vbnet.js'))\nrefractor.register(require('./lang/velocity.js'))\nrefractor.register(require('./lang/verilog.js'))\nrefractor.register(require('./lang/vhdl.js'))\nrefractor.register(require('./lang/vim.js'))\nrefractor.register(require('./lang/visual-basic.js'))\nrefractor.register(require('./lang/warpscript.js'))\nrefractor.register(require('./lang/wasm.js'))\nrefractor.register(require('./lang/wiki.js'))\nrefractor.register(require('./lang/xeora.js'))\nrefractor.register(require('./lang/xml-doc.js'))\nrefractor.register(require('./lang/xojo.js'))\nrefractor.register(require('./lang/xquery.js'))\nrefractor.register(require('./lang/yaml.js'))\nrefractor.register(require('./lang/yang.js'))\nrefractor.register(require('./lang/zig.js'))\n","'use strict'\n\n/* global window, self */\n\n// istanbul ignore next - Don't allow Prism to run on page load in browser or\n// to start messaging from workers.\nvar ctx =\n typeof globalThis === 'object'\n ? globalThis\n : typeof self === 'object'\n ? self\n : typeof window === 'object'\n ? window\n : typeof global === 'object'\n ? global\n : {}\n\nvar restore = capture()\n\nctx.Prism = {manual: true, disableWorkerMessageHandler: true}\n\n// Load all stuff in `prism.js` itself, except for `prism-file-highlight.js`.\n// The wrapped non-leaky grammars are loaded instead of Prisms originals.\nvar h = require('hastscript')\nvar decode = require('parse-entities')\nvar Prism = require('prismjs/components/prism-core')\nvar markup = require('./lang/markup')\nvar css = require('./lang/css')\nvar clike = require('./lang/clike')\nvar js = require('./lang/javascript')\n\nrestore()\n\nvar own = {}.hasOwnProperty\n\n// Inherit.\nfunction Refractor() {}\n\nRefractor.prototype = Prism\n\n// Construct.\nvar refract = new Refractor()\n\n// Expose.\nmodule.exports = refract\n\n// Create.\nrefract.highlight = highlight\nrefract.register = register\nrefract.alias = alias\nrefract.registered = registered\nrefract.listLanguages = listLanguages\n\n// Register bundled grammars.\nregister(markup)\nregister(css)\nregister(clike)\nregister(js)\n\nrefract.util.encode = encode\nrefract.Token.stringify = stringify\n\nfunction register(grammar) {\n if (typeof grammar !== 'function' || !grammar.displayName) {\n throw new Error('Expected `function` for `grammar`, got `' + grammar + '`')\n }\n\n // Do not duplicate registrations.\n if (refract.languages[grammar.displayName] === undefined) {\n grammar(refract)\n }\n}\n\nfunction alias(name, alias) {\n var languages = refract.languages\n var map = name\n var key\n var list\n var length\n var index\n\n if (alias) {\n map = {}\n map[name] = alias\n }\n\n for (key in map) {\n list = map[key]\n list = typeof list === 'string' ? [list] : list\n length = list.length\n index = -1\n\n while (++index < length) {\n languages[list[index]] = languages[key]\n }\n }\n}\n\nfunction highlight(value, name) {\n var sup = Prism.highlight\n var grammar\n\n if (typeof value !== 'string') {\n throw new Error('Expected `string` for `value`, got `' + value + '`')\n }\n\n // `name` is a grammar object.\n if (refract.util.type(name) === 'Object') {\n grammar = name\n name = null\n } else {\n if (typeof name !== 'string') {\n throw new Error('Expected `string` for `name`, got `' + name + '`')\n }\n\n if (own.call(refract.languages, name)) {\n grammar = refract.languages[name]\n } else {\n throw new Error('Unknown language: `' + name + '` is not registered')\n }\n }\n\n return sup.call(this, value, grammar, name)\n}\n\nfunction registered(language) {\n if (typeof language !== 'string') {\n throw new Error('Expected `string` for `language`, got `' + language + '`')\n }\n\n return own.call(refract.languages, language)\n}\n\nfunction listLanguages() {\n var languages = refract.languages\n var list = []\n var language\n\n for (language in languages) {\n if (\n own.call(languages, language) &&\n typeof languages[language] === 'object'\n ) {\n list.push(language)\n }\n }\n\n return list\n}\n\nfunction stringify(value, language, parent) {\n var env\n\n if (typeof value === 'string') {\n return {type: 'text', value: value}\n }\n\n if (refract.util.type(value) === 'Array') {\n return stringifyAll(value, language)\n }\n\n env = {\n type: value.type,\n content: refract.Token.stringify(value.content, language, parent),\n tag: 'span',\n classes: ['token', value.type],\n attributes: {},\n language: language,\n parent: parent\n }\n\n if (value.alias) {\n env.classes = env.classes.concat(value.alias)\n }\n\n refract.hooks.run('wrap', env)\n\n return h(\n env.tag + '.' + env.classes.join('.'),\n attributes(env.attributes),\n env.content\n )\n}\n\nfunction stringifyAll(values, language) {\n var result = []\n var length = values.length\n var index = -1\n var value\n\n while (++index < length) {\n value = values[index]\n\n if (value !== '' && value !== null && value !== undefined) {\n result.push(value)\n }\n }\n\n index = -1\n length = result.length\n\n while (++index < length) {\n value = result[index]\n result[index] = refract.Token.stringify(value, language, result)\n }\n\n return result\n}\n\nfunction encode(tokens) {\n return tokens\n}\n\nfunction attributes(attrs) {\n var key\n\n for (key in attrs) {\n attrs[key] = decode(attrs[key])\n }\n\n return attrs\n}\n\nfunction capture() {\n var defined = 'Prism' in ctx\n /* istanbul ignore next */\n var current = defined ? ctx.Prism : undefined\n\n return restore\n\n function restore() {\n /* istanbul ignore else - Clean leaks after Prism. */\n if (defined) {\n ctx.Prism = current\n } else {\n delete ctx.Prism\n }\n\n defined = undefined\n current = undefined\n }\n}\n","'use strict'\n\nvar legacy = require('character-entities-legacy')\nvar invalid = require('character-reference-invalid')\nvar decimal = require('is-decimal')\nvar hexadecimal = require('is-hexadecimal')\nvar alphanumerical = require('is-alphanumerical')\nvar decodeEntity = require('./decode-entity')\n\nmodule.exports = parseEntities\n\nvar own = {}.hasOwnProperty\nvar fromCharCode = String.fromCharCode\nvar noop = Function.prototype\n\n// Default settings.\nvar defaults = {\n warning: null,\n reference: null,\n text: null,\n warningContext: null,\n referenceContext: null,\n textContext: null,\n position: {},\n additional: null,\n attribute: false,\n nonTerminated: true\n}\n\n// Characters.\nvar tab = 9 // '\\t'\nvar lineFeed = 10 // '\\n'\nvar formFeed = 12 // '\\f'\nvar space = 32 // ' '\nvar ampersand = 38 // '&'\nvar semicolon = 59 // ';'\nvar lessThan = 60 // '<'\nvar equalsTo = 61 // '='\nvar numberSign = 35 // '#'\nvar uppercaseX = 88 // 'X'\nvar lowercaseX = 120 // 'x'\nvar replacementCharacter = 65533 // '<27>'\n\n// Reference types.\nvar name = 'named'\nvar hexa = 'hexadecimal'\nvar deci = 'decimal'\n\n// Map of bases.\nvar bases = {}\n\nbases[hexa] = 16\nbases[deci] = 10\n\n// Map of types to tests.\n// Each type of character reference accepts different characters.\n// This test is used to detect whether a reference has ended (as the semicolon\n// is not strictly needed).\nvar tests = {}\n\ntests[name] = alphanumerical\ntests[deci] = decimal\ntests[hexa] = hexadecimal\n\n// Warning types.\nvar namedNotTerminated = 1\nvar numericNotTerminated = 2\nvar namedEmpty = 3\nvar numericEmpty = 4\nvar namedUnknown = 5\nvar numericDisallowed = 6\nvar numericProhibited = 7\n\n// Warning messages.\nvar messages = {}\n\nmessages[namedNotTerminated] =\n 'Named character references must be terminated by a semicolon'\nmessages[numericNotTerminated] =\n 'Numeric character references must be terminated by a semicolon'\nmessages[namedEmpty] = 'Named character references cannot be empty'\nmessages[numericEmpty] = 'Numeric character references cannot be empty'\nmessages[namedUnknown] = 'Named character references must be known'\nmessages[numericDisallowed] =\n 'Numeric character references cannot be disallowed'\nmessages[numericProhibited] =\n 'Numeric character references cannot be outside the permissible Unicode range'\n\n// Wrap to ensure clean parameters are given to `parse`.\nfunction parseEntities(value, options) {\n var settings = {}\n var option\n var key\n\n if (!options) {\n options = {}\n }\n\n for (key in defaults) {\n option = options[key]\n settings[key] =\n option === null || option === undefined ? defaults[key] : option\n }\n\n if (settings.position.indent || settings.position.start) {\n settings.indent = settings.position.indent || []\n settings.position = settings.position.start\n }\n\n return parse(value, settings)\n}\n\n// Parse entities.\n// eslint-disable-next-line complexity\nfunction parse(value, settings) {\n var additional = settings.additional\n var nonTerminated = settings.nonTerminated\n var handleText = settings.text\n var handleReference = settings.reference\n var handleWarning = settings.warning\n var textContext = settings.textContext\n var referenceContext = settings.referenceContext\n var warningContext = settings.warningContext\n var pos = settings.position\n var indent = settings.indent || []\n var length = value.length\n var index = 0\n var lines = -1\n var column = pos.column || 1\n var line = pos.line || 1\n var queue = ''\n var result = []\n var entityCharacters\n var namedEntity\n var terminated\n var characters\n var character\n var reference\n var following\n var warning\n var reason\n var output\n var entity\n var begin\n var start\n var type\n var test\n var prev\n var next\n var diff\n var end\n\n if (typeof additional === 'string') {\n additional = additional.charCodeAt(0)\n }\n\n // Cache the current point.\n prev = now()\n\n // Wrap `handleWarning`.\n warning = handleWarning ? parseError : noop\n\n // Ensure the algorithm walks over the first character and the end\n // (inclusive).\n index--\n length++\n\n while (++index < length) {\n // If the previous character was a newline.\n if (character === lineFeed) {\n column = indent[lines] || 1\n }\n\n character = value.charCodeAt(index)\n\n if (character === ampersand) {\n following = value.charCodeAt(index + 1)\n\n // The behaviour depends on the identity of the next character.\n if (\n following === tab ||\n following === lineFeed ||\n following === formFeed ||\n following === space ||\n following === ampersand ||\n following === lessThan ||\n following !== following ||\n (additional && following === additional)\n ) {\n // Not a character reference.\n // No characters are consumed, and nothing is returned.\n // This is not an error, either.\n queue += fromCharCode(character)\n column++\n\n continue\n }\n\n start = index + 1\n begin = start\n end = start\n\n if (following === numberSign) {\n // Numerical entity.\n end = ++begin\n\n // The behaviour further depends on the next character.\n following = value.charCodeAt(end)\n\n if (following === uppercaseX || following === lowercaseX) {\n // ASCII hex digits.\n type = hexa\n end = ++begin\n } else {\n // ASCII digits.\n type = deci\n }\n } else {\n // Named entity.\n type = name\n }\n\n entityCharacters = ''\n entity = ''\n characters = ''\n test = tests[type]\n end--\n\n while (++end < length) {\n following = value.charCodeAt(end)\n\n if (!test(following)) {\n break\n }\n\n characters += fromCharCode(following)\n\n // Check if we can match a legacy named reference.\n // If so, we cache that as the last viable named reference.\n // This ensures we do not need to walk backwards later.\n if (type === name && own.call(legacy, characters)) {\n entityCharacters = characters\n entity = legacy[characters]\n }\n }\n\n terminated = value.charCodeAt(end) === semicolon\n\n if (terminated) {\n end++\n\n namedEntity = type === name ? decodeEntity(characters) : false\n\n if (namedEntity) {\n entityCharacters = characters\n entity = namedEntity\n }\n }\n\n diff = 1 + end - start\n\n if (!terminated && !nonTerminated) {\n // Empty.\n } else if (!characters) {\n // An empty (possible) entity is valid, unless its numeric (thus an\n // ampersand followed by an octothorp).\n if (type !== name) {\n warning(numericEmpty, diff)\n }\n } else if (type === name) {\n // An ampersand followed by anything unknown, and not terminated, is\n // invalid.\n if (terminated && !entity) {\n warning(namedUnknown, 1)\n } else {\n // If theres something after an entity name which is not known, cap\n // the reference.\n if (entityCharacters !== characters) {\n end = begin + entityCharacters.length\n diff = 1 + end - begin\n terminated = false\n }\n\n // If the reference is not terminated, warn.\n if (!terminated) {\n reason = entityCharacters ? namedNotTerminated : namedEmpty\n\n if (settings.attribute) {\n following = value.charCodeAt(end)\n\n if (following === equalsTo) {\n warning(reason, diff)\n entity = null\n } else if (alphanumerical(following)) {\n entity = null\n } else {\n warning(reason, diff)\n }\n } else {\n warning(reason, diff)\n }\n }\n }\n\n reference = entity\n } else {\n if (!terminated) {\n // All non-terminated numeric entities are not rendered, and trigger a\n // warning.\n warning(numericNotTerminated, diff)\n }\n\n // When terminated and number, parse as either hexadecimal or decimal.\n reference = parseInt(characters, bases[type])\n\n // Trigger a warning when the parsed number is prohibited, and replace\n // with replacement character.\n if (prohibited(reference)) {\n warning(numericProhibited, diff)\n reference = fromCharCode(replacementCharacter)\n } else if (reference in invalid) {\n // Trigger a warning when the parsed number is disallowed, and replace\n // by an alternative.\n warning(numericDisallowed, diff)\n reference = invalid[reference]\n } else {\n // Parse the number.\n output = ''\n\n // Trigger a warning when the parsed number should not be used.\n if (disallowed(reference)) {\n warning(numericDisallowed, diff)\n }\n\n // Stringify the number.\n if (reference > 0xffff) {\n reference -= 0x10000\n output += fromCharCode((reference >>> (10 & 0x3ff)) | 0xd800)\n reference = 0xdc00 | (reference & 0x3ff)\n }\n\n reference = output + fromCharCode(reference)\n }\n }\n\n // Found it!\n // First eat the queued characters as normal text, then eat an entity.\n if (reference) {\n flush()\n\n prev = now()\n index = end - 1\n column += end - start + 1\n result.push(reference)\n next = now()\n next.offset++\n\n if (handleReference) {\n handleReference.call(\n referenceContext,\n reference,\n {start: prev, end: next},\n value.slice(start - 1, end)\n )\n }\n\n prev = next\n } else {\n // If we could not find a reference, queue the checked characters (as\n // normal characters), and move the pointer to their end.\n // This is possible because we can be certain neither newlines nor\n // ampersands are included.\n characters = value.slice(start - 1, end)\n queue += characters\n column += characters.length\n index = end - 1\n }\n } else {\n // Handle anything other than an ampersand, including newlines and EOF.\n if (\n character === 10 // Line feed\n ) {\n line++\n lines++\n column = 0\n }\n\n if (character === character) {\n queue += fromCharCode(character)\n column++\n } else {\n flush()\n }\n }\n }\n\n // Return the reduced nodes.\n return result.join('')\n\n // Get current position.\n function now() {\n return {\n line: line,\n column: column,\n offset: index + (pos.offset || 0)\n }\n }\n\n // “Throw” a parse-error: a warning.\n function parseError(code, offset) {\n var position = now()\n\n position.column += offset\n position.offset += offset\n\n handleWarning.call(warningContext, messages[code], position, code)\n }\n\n // Flush `queue` (normal text).\n // Macro invoked before each entity and at the end of `value`.\n // Does nothing when `queue` is empty.\n function flush() {\n if (queue) {\n result.push(queue)\n\n if (handleText) {\n handleText.call(textContext, queue, {start: prev, end: now()})\n }\n\n queue = ''\n }\n }\n}\n\n// Check if `character` is outside the permissible unicode range.\nfunction prohibited(code) {\n return (code >= 0xd800 && code <= 0xdfff) || code > 0x10ffff\n}\n\n// Check if `character` is disallowed.\nfunction disallowed(code) {\n return (\n (code >= 0x0001 && code <= 0x0008) ||\n code === 0x000b ||\n (code >= 0x000d && code <= 0x001f) ||\n (code >= 0x007f && code <= 0x009f) ||\n (code >= 0xfdd0 && code <= 0xfdef) ||\n (code & 0xffff) === 0xffff ||\n (code & 0xffff) === 0xfffe\n )\n}\n","'use strict'\n\nmodule.exports = hexadecimal\n\n// Check if the given character code, or the character code at the first\n// character, is hexadecimal.\nfunction hexadecimal(character) {\n var code = typeof character === 'string' ? character.charCodeAt(0) : character\n\n return (\n (code >= 97 /* a */ && code <= 102) /* z */ ||\n (code >= 65 /* A */ && code <= 70) /* Z */ ||\n (code >= 48 /* A */ && code <= 57) /* Z */\n )\n}\n","'use strict'\n\nvar alphabetical = require('is-alphabetical')\nvar decimal = require('is-decimal')\n\nmodule.exports = alphanumerical\n\n// Check if the given character code, or the character code at the first\n// character, is alphanumerical.\nfunction alphanumerical(character) {\n return alphabetical(character) || decimal(character)\n}\n","'use strict'\n\nmodule.exports = alphabetical\n\n// Check if the given character code, or the character code at the first\n// character, is alphabetical.\nfunction alphabetical(character) {\n var code = typeof character === 'string' ? character.charCodeAt(0) : character\n\n return (\n (code >= 97 && code <= 122) /* a-z */ ||\n (code >= 65 && code <= 90) /* A-Z */\n )\n}\n","/// <reference lib=\"WebWorker\"/>\n\nvar _self = (typeof window !== 'undefined')\n\t? window // if in browser\n\t: (\n\t\t(typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope)\n\t\t? self // if in worker\n\t\t: {} // if in node js\n\t);\n\n/**\n * Prism: Lightweight, robust, elegant syntax highlighting\n *\n * @license MIT <https://opensource.org/licenses/MIT>\n * @author Lea Verou <https://lea.verou.me>\n * @namespace\n * @public\n */\nvar Prism = (function (_self){\n\n// Private helper vars\nvar lang = /\\blang(?:uage)?-([\\w-]+)\\b/i;\nvar uniqueId = 0;\n\n\nvar _ = {\n\t/**\n\t * By default, Prism will attempt to highlight all code elements (by calling {@link Prism.highlightAll}) on the\n\t * current page after the page finished loading. This might be a problem if e.g. you wanted to asynchronously load\n\t * additional languages or plugins yourself.\n\t *\n\t * By setting this value to `true`, Prism will not automatically highlight all code elements on the page.\n\t *\n\t * You obviously have to change this value before the automatic highlighting started. To do this, you can add an\n\t * empty Prism object into the global scope before loading the Prism script like this:\n\t *\n\t * ```js\n\t * window.Prism = window.Prism || {};\n\t * Prism.manual = true;\n\t * // add a new <script> to load Prism's script\n\t * ```\n\t *\n\t * @default false\n\t * @type {boolean}\n\t * @memberof Prism\n\t * @public\n\t */\n\tmanual: _self.Prism && _self.Prism.manual,\n\tdisableWorkerMessageHandler: _self.Prism && _self.Prism.disableWorkerMessageHandler,\n\n\t/**\n\t * A namespace for utility methods.\n\t *\n\t * All function in this namespace that are not explicitly marked as _public_ are for __internal use only__ and may\n\t * change or disappear at any time.\n\t *\n\t * @namespace\n\t * @memberof Prism\n\t */\n\tutil: {\n\t\tencode: function encode(tokens) {\n\t\t\tif (tokens instanceof Token) {\n\t\t\t\treturn new Token(tokens.type, encode(tokens.content), tokens.alias);\n\t\t\t} else if (Array.isArray(tokens)) {\n\t\t\t\treturn tokens.map(encode);\n\t\t\t} else {\n\t\t\t\treturn tokens.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/\\u00a0/g, ' ');\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Returns the name of the type of the given value.\n\t\t *\n\t\t * @param {any} o\n\t\t * @returns {string}\n\t\t * @example\n\t\t * type(null) === 'Null'\n\t\t * type(undefined) === 'Undefined'\n\t\t * type(123) === 'Number'\n\t\t * type('foo') === 'String'\n\t\t * type(true) === 'Boolean'\n\t\t * type([1, 2]) === 'Array'\n\t\t * type({}) === 'Object'\n\t\t * type(String) === 'Function'\n\t\t * type(/abc+/) === 'RegExp'\n\t\t */\n\t\ttype: function (o) {\n\t\t\treturn Object.prototype.toString.call(o).slice(8, -1);\n\t\t},\n\n\t\t/**\n\t\t * Returns a unique number for the given object. Later calls will still return the same number.\n\t\t *\n\t\t * @param {Object} obj\n\t\t * @returns {number}\n\t\t */\n\t\tobjId: function (obj) {\n\t\t\tif (!obj['__id']) {\n\t\t\t\tObject.defineProperty(obj, '__id', { value: ++uniqueId });\n\t\t\t}\n\t\t\treturn obj['__id'];\n\t\t},\n\n\t\t/**\n\t\t * Creates a deep clone of the given object.\n\t\t *\n\t\t * The main intended use of this function is to clone language definitions.\n\t\t *\n\t\t * @param {T} o\n\t\t * @param {Record<number, any>} [visited]\n\t\t * @returns {T}\n\t\t * @template T\n\t\t */\n\t\tclone: function deepClone(o, visited) {\n\t\t\tvisited = visited || {};\n\n\t\t\tvar clone, id;\n\t\t\tswitch (_.util.type(o)) {\n\t\t\t\tcase 'Object':\n\t\t\t\t\tid = _.util.objId(o);\n\t\t\t\t\tif (visited[id]) {\n\t\t\t\t\t\treturn visited[id];\n\t\t\t\t\t}\n\t\t\t\t\tclone = /** @type {Record<string, any>} */ ({});\n\t\t\t\t\tvisited[id] = clone;\n\n\t\t\t\t\tfor (var key in o) {\n\t\t\t\t\t\tif (o.hasOwnProperty(key)) {\n\t\t\t\t\t\t\tclone[key] = deepClone(o[key], visited);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\treturn /** @type {any} */ (clone);\n\n\t\t\t\tcase 'Array':\n\t\t\t\t\tid = _.util.objId(o);\n\t\t\t\t\tif (visited[id]) {\n\t\t\t\t\t\treturn visited[id];\n\t\t\t\t\t}\n\t\t\t\t\tclone = [];\n\t\t\t\t\tvisited[id] = clone;\n\n\t\t\t\t\t(/** @type {Array} */(/** @type {any} */(o))).forEach(function (v, i) {\n\t\t\t\t\t\tclone[i] = deepClone(v, visited);\n\t\t\t\t\t});\n\n\t\t\t\t\treturn /** @type {any} */ (clone);\n\n\t\t\t\tdefault:\n\t\t\t\t\treturn o;\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Returns the Prism language of the given element set by a `language-xxxx` or `lang-xxxx` class.\n\t\t *\n\t\t * If no language is set for the element or the element is `null` or `undefined`, `none` will be returned.\n\t\t *\n\t\t * @param {Element} element\n\t\t * @returns {string}\n\t\t */\n\t\tgetLanguage: function (element) {\n\t\t\twhile (element && !lang.test(element.className)) {\n\t\t\t\telement = element.parentElement;\n\t\t\t}\n\t\t\tif (element) {\n\t\t\t\treturn (element.className.match(lang) || [, 'none'])[1].toLowerCase();\n\t\t\t}\n\t\t\treturn 'none';\n\t\t},\n\n\t\t/**\n\t\t * Returns the script element that is currently executing.\n\t\t *\n\t\t * This does __not__ work for line script element.\n\t\t *\n\t\t * @returns {HTMLScriptElement | null}\n\t\t */\n\t\tcurrentScript: function () {\n\t\t\tif (typeof document === 'undefined') {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\tif ('currentScript' in document && 1 < 2 /* hack to trip TS' flow analysis */) {\n\t\t\t\treturn /** @type {any} */ (document.currentScript);\n\t\t\t}\n\n\t\t\t// IE11 workaround\n\t\t\t// we'll get the src of the current script by parsing IE11's error stack trace\n\t\t\t// this will not work for inline scripts\n\n\t\t\ttry {\n\t\t\t\tthrow new Error();\n\t\t\t} catch (err) {\n\t\t\t\t// Get file src url from stack. Specifically works with the format of stack traces in IE.\n\t\t\t\t// A stack will look like this:\n\t\t\t\t//\n\t\t\t\t// Error\n\t\t\t\t// at _.util.currentScript (http://localhost/components/prism-core.js:119:5)\n\t\t\t\t// at Global code (http://localhost/components/prism-core.js:606:1)\n\n\t\t\t\tvar src = (/at [^(\\r\\n]*\\((.*):.+:.+\\)$/i.exec(err.stack) || [])[1];\n\t\t\t\tif (src) {\n\t\t\t\t\tvar scripts = document.getElementsByTagName('script');\n\t\t\t\t\tfor (var i in scripts) {\n\t\t\t\t\t\tif (scripts[i].src == src) {\n\t\t\t\t\t\t\treturn scripts[i];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn null;\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Returns whether a given class is active for `element`.\n\t\t *\n\t\t * The class can be activated if `element` or one of its ancestors has the given class and it can be deactivated\n\t\t * if `element` or one of its ancestors has the negated version of the given class. The _negated version_ of the\n\t\t * given class is just the given class with a `no-` prefix.\n\t\t *\n\t\t * Whether the class is active is determined by the closest ancestor of `element` (where `element` itself is\n\t\t * closest ancestor) that has the given class or the negated version of it. If neither `element` nor any of its\n\t\t * ancestors have the given class or the negated version of it, then the default activation will be returned.\n\t\t *\n\t\t * In the paradoxical situation where the closest ancestor contains __both__ the given class and the negated\n\t\t * version of it, the class is considered active.\n\t\t *\n\t\t * @param {Element} element\n\t\t * @param {string} className\n\t\t * @param {boolean} [defaultActivation=false]\n\t\t * @returns {boolean}\n\t\t */\n\t\tisActive: function (element, className, defaultActivation) {\n\t\t\tvar no = 'no-' + className;\n\n\t\t\twhile (element) {\n\t\t\t\tvar classList = element.classList;\n\t\t\t\tif (classList.contains(className)) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t\tif (classList.contains(no)) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\telement = element.parentElement;\n\t\t\t}\n\t\t\treturn !!defaultActivation;\n\t\t}\n\t},\n\n\t/**\n\t * This namespace contains all currently loaded languages and the some helper functions to create and modify languages.\n\t *\n\t * @namespace\n\t * @memberof Prism\n\t * @public\n\t */\n\tlanguages: {\n\t\t/**\n\t\t * Creates a deep copy of the language with the given id and appends the given tokens.\n\t\t *\n\t\t * If a token in `redef` also appears in the copied language, then the existing token in the copied language\n\t\t * will be overwritten at its original position.\n\t\t *\n\t\t * ## Best practices\n\t\t *\n\t\t * Since the position of overwriting tokens (token in `redef` that overwrite tokens in the copied language)\n\t\t * doesn't matter, they can technically be in any order. However, this can be confusing to others that trying to\n\t\t * understand the language definition because, normally, the order of tokens matters in Prism grammars.\n\t\t *\n\t\t * Therefore, it is encouraged to order overwriting tokens according to the positions of the overwritten tokens.\n\t\t * Furthermore, all non-overwriting tokens should be placed after the overwriting ones.\n\t\t *\n\t\t * @param {string} id The id of the language to extend. This has to be a key in `Prism.languages`.\n\t\t * @param {Grammar} redef The new tokens to append.\n\t\t * @returns {Grammar} The new language created.\n\t\t * @public\n\t\t * @example\n\t\t * Prism.languages['css-with-colors'] = Prism.languages.extend('css', {\n\t\t * // Prism.languages.css already has a 'comment' token, so this token will overwrite CSS' 'comment' token\n\t\t * // at its original position\n\t\t * 'comment': { ... },\n\t\t * // CSS doesn't have a 'color' token, so this token will be appended\n\t\t * 'color': /\\b(?:red|green|blue)\\b/\n\t\t * });\n\t\t */\n\t\textend: function (id, redef) {\n\t\t\tvar lang = _.util.clone(_.languages[id]);\n\n\t\t\tfor (var key in redef) {\n\t\t\t\tlang[key] = redef[key];\n\t\t\t}\n\n\t\t\treturn lang;\n\t\t},\n\n\t\t/**\n\t\t * Inserts tokens _before_ another token in a language definition or any other grammar.\n\t\t *\n\t\t * ## Usage\n\t\t *\n\t\t * This helper method makes it easy to modify existing languages. For example, the CSS language definition\n\t\t * not only defines CSS highlighting for CSS documents, but also needs to define highlighting for CSS embedded\n\t\t * in HTML through `<style>` elements. To do this, it needs to modify `Prism.languages.markup` and add the\n\t\t * appropriate tokens. However, `Prism.languages.markup` is a regular JavaScript object literal, so if you do\n\t\t * this:\n\t\t *\n\t\t * ```js\n\t\t * Prism.languages.markup.style = {\n\t\t * // token\n\t\t * };\n\t\t * ```\n\t\t *\n\t\t * then the `style` token will be added (and processed) at the end. `insertBefore` allows you to insert tokens\n\t\t * before existing tokens. For the CSS example above, you would use it like this:\n\t\t *\n\t\t * ```js\n\t\t * Prism.languages.insertBefore('markup', 'cdata', {\n\t\t * 'style': {\n\t\t * // token\n\t\t * }\n\t\t * });\n\t\t * ```\n\t\t *\n\t\t * ## Special cases\n\t\t *\n\t\t * If the grammars of `inside` and `insert` have tokens with the same name, the tokens in `inside`'s grammar\n\t\t * will be ignored.\n\t\t *\n\t\t * This behavior can be used to insert tokens after `before`:\n\t\t *\n\t\t * ```js\n\t\t * Prism.languages.insertBefore('markup', 'comment', {\n\t\t * 'comment': Prism.languages.markup.comment,\n\t\t * // tokens after 'comment'\n\t\t * });\n\t\t * ```\n\t\t *\n\t\t * ## Limitations\n\t\t *\n\t\t * The main problem `insertBefore` has to solve is iteration order. Since ES2015, the iteration order for object\n\t\t * properties is guaranteed to be the insertion order (except for integer keys) but some browsers behave\n\t\t * differently when keys are deleted and re-inserted. So `insertBefore` can't be implemented by temporarily\n\t\t * deleting properties which is necessary to insert at arbitrary positions.\n\t\t *\n\t\t * To solve this problem, `insertBefore` doesn't actually insert the given tokens into the target object.\n\t\t * Instead, it will create a new object and replace all references to the target object with the new one. This\n\t\t * can be done without temporarily deleting properties, so the iteration order is well-defined.\n\t\t *\n\t\t * However, only references that can be reached from `Prism.languages` or `insert` will be replaced. I.e. if\n\t\t * you hold the target object in a variable, then the value of the variable will not change.\n\t\t *\n\t\t * ```js\n\t\t * var oldMarkup = Prism.languages.markup;\n\t\t * var newMarkup = Prism.languages.insertBefore('markup', 'comment', { ... });\n\t\t *\n\t\t * assert(oldMarkup !== Prism.languages.markup);\n\t\t * assert(newMarkup === Prism.languages.markup);\n\t\t * ```\n\t\t *\n\t\t * @param {string} inside The property of `root` (e.g. a language id in `Prism.languages`) that contains the\n\t\t * object to be modified.\n\t\t * @param {string} before The key to insert before.\n\t\t * @param {Grammar} insert An object containing the key-value pairs to be inserted.\n\t\t * @param {Object<string, any>} [root] The object containing `inside`, i.e. the object that contains the\n\t\t * object to be modified.\n\t\t *\n\t\t * Defaults to `Prism.languages`.\n\t\t * @returns {Grammar} The new grammar object.\n\t\t * @public\n\t\t */\n\t\tinsertBefore: function (inside, before, insert, root) {\n\t\t\troot = root || /** @type {any} */ (_.languages);\n\t\t\tvar grammar = root[inside];\n\t\t\t/** @type {Grammar} */\n\t\t\tvar ret = {};\n\n\t\t\tfor (var token in grammar) {\n\t\t\t\tif (grammar.hasOwnProperty(token)) {\n\n\t\t\t\t\tif (token == before) {\n\t\t\t\t\t\tfor (var newToken in insert) {\n\t\t\t\t\t\t\tif (insert.hasOwnProperty(newToken)) {\n\t\t\t\t\t\t\t\tret[newToken] = insert[newToken];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Do not insert token which also occur in insert. See #1525\n\t\t\t\t\tif (!insert.hasOwnProperty(token)) {\n\t\t\t\t\t\tret[token] = grammar[token];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tvar old = root[inside];\n\t\t\troot[inside] = ret;\n\n\t\t\t// Update references in other language definitions\n\t\t\t_.languages.DFS(_.languages, function(key, value) {\n\t\t\t\tif (value === old && key != inside) {\n\t\t\t\t\tthis[key] = ret;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\treturn ret;\n\t\t},\n\n\t\t// Traverse a language definition with Depth First Search\n\t\tDFS: function DFS(o, callback, type, visited) {\n\t\t\tvisited = visited || {};\n\n\t\t\tvar objId = _.util.objId;\n\n\t\t\tfor (var i in o) {\n\t\t\t\tif (o.hasOwnProperty(i)) {\n\t\t\t\t\tcallback.call(o, i, o[i], type || i);\n\n\t\t\t\t\tvar property = o[i],\n\t\t\t\t\t propertyType = _.util.type(property);\n\n\t\t\t\t\tif (propertyType === 'Object' && !visited[objId(property)]) {\n\t\t\t\t\t\tvisited[objId(property)] = true;\n\t\t\t\t\t\tDFS(property, callback, null, visited);\n\t\t\t\t\t}\n\t\t\t\t\telse if (propertyType === 'Array' && !visited[objId(property)]) {\n\t\t\t\t\t\tvisited[objId(property)] = true;\n\t\t\t\t\t\tDFS(property, callback, i, visited);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\tplugins: {},\n\n\t/**\n\t * This is the most high-level function in Prisms API.\n\t * It fetches all the elements that have a `.language-xxxx` class and then calls {@link Prism.highlightElement} on\n\t * each one of them.\n\t *\n\t * This is equivalent to `Prism.highlightAllUnder(document, async, callback)`.\n\t *\n\t * @param {boolean} [async=false] Same as in {@link Prism.highlightAllUnder}.\n\t * @param {HighlightCallback} [callback] Same as in {@link Prism.highlightAllUnder}.\n\t * @memberof Prism\n\t * @public\n\t */\n\thighlightAll: function(async, callback) {\n\t\t_.highlightAllUnder(document, async, callback);\n\t},\n\n\t/**\n\t * Fetches all the descendants of `container` that have a `.language-xxxx` class and then calls\n\t * {@link Prism.highlightElement} on each one of them.\n\t *\n\t * The following hooks will be run:\n\t * 1. `before-highlightall`\n\t * 2. `before-all-elements-highlight`\n\t * 3. All hooks of {@link Prism.highlightElement} for each element.\n\t *\n\t * @param {ParentNode} container The root element, whose descendants that have a `.language-xxxx` class will be highlighted.\n\t * @param {boolean} [async=false] Whether each element is to be highlighted asynchronously using Web Workers.\n\t * @param {HighlightCallback} [callback] An optional callback to be invoked on each element after its highlighting is done.\n\t * @memberof Prism\n\t * @public\n\t */\n\thighlightAllUnder: function(container, async, callback) {\n\t\tvar env = {\n\t\t\tcallback: callback,\n\t\t\tcontainer: container,\n\t\t\tselector: 'code[class*=\"language-\"], [class*=\"language-\"] code, code[class*=\"lang-\"], [class*=\"lang-\"] code'\n\t\t};\n\n\t\t_.hooks.run('before-highlightall', env);\n\n\t\tenv.elements = Array.prototype.slice.apply(env.container.querySelectorAll(env.selector));\n\n\t\t_.hooks.run('before-all-elements-highlight', env);\n\n\t\tfor (var i = 0, element; element = env.elements[i++];) {\n\t\t\t_.highlightElement(element, async === true, env.callback);\n\t\t}\n\t},\n\n\t/**\n\t * Highlights the code inside a single element.\n\t *\n\t * The following hooks will be run:\n\t * 1. `before-sanity-check`\n\t * 2. `before-highlight`\n\t * 3. All hooks of {@link Prism.highlight}. These hooks will be run by an asynchronous worker if `async` is `true`.\n\t * 4. `before-insert`\n\t * 5. `after-highlight`\n\t * 6. `complete`\n\t *\n\t * Some the above hooks will be skipped if the element doesn't contain any text or there is no grammar loaded for\n\t * the element's language.\n\t *\n\t * @param {Element} element The element containing the code.\n\t * It must have a class of `language-xxxx` to be processed, where `xxxx` is a valid language identifier.\n\t * @param {boolean} [async=false] Whether the element is to be highlighted asynchronously using Web Workers\n\t * to improve performance and avoid blocking the UI when highlighting very large chunks of code. This option is\n\t * [disabled by default](https://prismjs.com/faq.html#why-is-asynchronous-highlighting-disabled-by-default).\n\t *\n\t * Note: All language definitions required to highlight the code must be included in the main `prism.js` file for\n\t * asynchronous highlighting to work. You can build your own bundle on the\n\t * [Download page](https://prismjs.com/download.html).\n\t * @param {HighlightCallback} [callback] An optional callback to be invoked after the highlighting is done.\n\t * Mostly useful when `async` is `true`, since in that case, the highlighting is done asynchronously.\n\t * @memberof Prism\n\t * @public\n\t */\n\thighlightElement: function(element, async, callback) {\n\t\t// Find language\n\t\tvar language = _.util.getLanguage(element);\n\t\tvar grammar = _.languages[language];\n\n\t\t// Set language on the element, if not present\n\t\telement.className = element.className.replace(lang, '').replace(/\\s+/g, ' ') + ' language-' + language;\n\n\t\t// Set language on the parent, for styling\n\t\tvar parent = element.parentElement;\n\t\tif (parent && parent.nodeName.toLowerCase() === 'pre') {\n\t\t\tparent.className = parent.className.replace(lang, '').replace(/\\s+/g, ' ') + ' language-' + language;\n\t\t}\n\n\t\tvar code = element.textContent;\n\n\t\tvar env = {\n\t\t\telement: element,\n\t\t\tlanguage: language,\n\t\t\tgrammar: grammar,\n\t\t\tcode: code\n\t\t};\n\n\t\tfunction insertHighlightedCode(highlightedCode) {\n\t\t\tenv.highlightedCode = highlightedCode;\n\n\t\t\t_.hooks.run('before-insert', env);\n\n\t\t\tenv.element.innerHTML = env.highlightedCode;\n\n\t\t\t_.hooks.run('after-highlight', env);\n\t\t\t_.hooks.run('complete', env);\n\t\t\tcallback && callback.call(env.element);\n\t\t}\n\n\t\t_.hooks.run('before-sanity-check', env);\n\n\t\tif (!env.code) {\n\t\t\t_.hooks.run('complete', env);\n\t\t\tcallback && callback.call(env.element);\n\t\t\treturn;\n\t\t}\n\n\t\t_.hooks.run('before-highlight', env);\n\n\t\tif (!env.grammar) {\n\t\t\tinsertHighlightedCode(_.util.encode(env.code));\n\t\t\treturn;\n\t\t}\n\n\t\tif (async && _self.Worker) {\n\t\t\tvar worker = new Worker(_.filename);\n\n\t\t\tworker.onmessage = function(evt) {\n\t\t\t\tinsertHighlightedCode(evt.data);\n\t\t\t};\n\n\t\t\tworker.postMessage(JSON.stringify({\n\t\t\t\tlanguage: env.language,\n\t\t\t\tcode: env.code,\n\t\t\t\timmediateClose: true\n\t\t\t}));\n\t\t}\n\t\telse {\n\t\t\tinsertHighlightedCode(_.highlight(env.code, env.grammar, env.language));\n\t\t}\n\t},\n\n\t/**\n\t * Low-level function, only use if you know what youre doing. It accepts a string of text as input\n\t * and the language definitions to use, and returns a string with the HTML produced.\n\t *\n\t * The following hooks will be run:\n\t * 1. `before-tokenize`\n\t * 2. `after-tokenize`\n\t * 3. `wrap`: On each {@link Token}.\n\t *\n\t * @param {string} text A string with the code to be highlighted.\n\t * @param {Grammar} grammar An object containing the tokens to use.\n\t *\n\t * Usually a language definition like `Prism.languages.markup`.\n\t * @param {string} language The name of the language definition passed to `grammar`.\n\t * @returns {string} The highlighted HTML.\n\t * @memberof Prism\n\t * @public\n\t * @example\n\t * Prism.highlight('var foo = true;', Prism.languages.javascript, 'javascript');\n\t */\n\thighlight: function (text, grammar, language) {\n\t\tvar env = {\n\t\t\tcode: text,\n\t\t\tgrammar: grammar,\n\t\t\tlanguage: language\n\t\t};\n\t\t_.hooks.run('before-tokenize', env);\n\t\tenv.tokens = _.tokenize(env.code, env.grammar);\n\t\t_.hooks.run('after-tokenize', env);\n\t\treturn Token.stringify(_.util.encode(env.tokens), env.language);\n\t},\n\n\t/**\n\t * This is the heart of Prism, and the most low-level function you can use. It accepts a string of text as input\n\t * and the language definitions to use, and returns an array with the tokenized code.\n\t *\n\t * When the language definition includes nested tokens, the function is called recursively on each of these tokens.\n\t *\n\t * This method could be useful in other contexts as well, as a very crude parser.\n\t *\n\t * @param {string} text A string with the code to be highlighted.\n\t * @param {Grammar} grammar An object containing the tokens to use.\n\t *\n\t * Usually a language definition like `Prism.languages.markup`.\n\t * @returns {TokenStream} An array of strings and tokens, a token stream.\n\t * @memberof Prism\n\t * @public\n\t * @example\n\t * let code = `var foo = 0;`;\n\t * let tokens = Prism.tokenize(code, Prism.languages.javascript);\n\t * tokens.forEach(token => {\n\t * if (token instanceof Prism.Token && token.type === 'number') {\n\t * console.log(`Found numeric literal: ${token.content}`);\n\t * }\n\t * });\n\t */\n\ttokenize: function(text, grammar) {\n\t\tvar rest = grammar.rest;\n\t\tif (rest) {\n\t\t\tfor (var token in rest) {\n\t\t\t\tgrammar[token] = rest[token];\n\t\t\t}\n\n\t\t\tdelete grammar.rest;\n\t\t}\n\n\t\tvar tokenList = new LinkedList();\n\t\taddAfter(tokenList, tokenList.head, text);\n\n\t\tmatchGrammar(text, tokenList, grammar, tokenList.head, 0);\n\n\t\treturn toArray(tokenList);\n\t},\n\n\t/**\n\t * @namespace\n\t * @memberof Prism\n\t * @public\n\t */\n\thooks: {\n\t\tall: {},\n\n\t\t/**\n\t\t * Adds the given callback to the list of callbacks for the given hook.\n\t\t *\n\t\t * The callback will be invoked when the hook it is registered for is run.\n\t\t * Hooks are usually directly run by a highlight function but you can also run hooks yourself.\n\t\t *\n\t\t * One callback function can be registered to multiple hooks and the same hook multiple times.\n\t\t *\n\t\t * @param {string} name The name of the hook.\n\t\t * @param {HookCallback} callback The callback function which is given environment variables.\n\t\t * @public\n\t\t */\n\t\tadd: function (name, callback) {\n\t\t\tvar hooks = _.hooks.all;\n\n\t\t\thooks[name] = hooks[name] || [];\n\n\t\t\thooks[name].push(callback);\n\t\t},\n\n\t\t/**\n\t\t * Runs a hook invoking all registered callbacks with the given environment variables.\n\t\t *\n\t\t * Callbacks will be invoked synchronously and in the order in which they were registered.\n\t\t *\n\t\t * @param {string} name The name of the hook.\n\t\t * @param {Object<string, any>} env The environment variables of the hook passed to all callbacks registered.\n\t\t * @public\n\t\t */\n\t\trun: function (name, env) {\n\t\t\tvar callbacks = _.hooks.all[name];\n\n\t\t\tif (!callbacks || !callbacks.length) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tfor (var i=0, callback; callback = callbacks[i++];) {\n\t\t\t\tcallback(env);\n\t\t\t}\n\t\t}\n\t},\n\n\tToken: Token\n};\n_self.Prism = _;\n\n\n// Typescript note:\n// The following can be used to import the Token type in JSDoc:\n//\n// @typedef {InstanceType<import(\"./prism-core\")[\"Token\"]>} Token\n\n/**\n * Creates a new token.\n *\n * @param {string} type See {@link Token#type type}\n * @param {string | TokenStream} content See {@link Token#content content}\n * @param {string|string[]} [alias] The alias(es) of the token.\n * @param {string} [matchedStr=\"\"] A copy of the full string this token was created from.\n * @class\n * @global\n * @public\n */\nfunction Token(type, content, alias, matchedStr) {\n\t/**\n\t * The type of the token.\n\t *\n\t * This is usually the key of a pattern in a {@link Grammar}.\n\t *\n\t * @type {string}\n\t * @see GrammarToken\n\t * @public\n\t */\n\tthis.type = type;\n\t/**\n\t * The strings or tokens contained by this token.\n\t *\n\t * This will be a token stream if the pattern matched also defined an `inside` grammar.\n\t *\n\t * @type {string | TokenStream}\n\t * @public\n\t */\n\tthis.content = content;\n\t/**\n\t * The alias(es) of the token.\n\t *\n\t * @type {string|string[]}\n\t * @see GrammarToken\n\t * @public\n\t */\n\tthis.alias = alias;\n\t// Copy of the full string this token was created from\n\tthis.length = (matchedStr || '').length | 0;\n}\n\n/**\n * A token stream is an array of strings and {@link Token Token} objects.\n *\n * Token streams have to fulfill a few properties that are assumed by most functions (mostly internal ones) that process\n * them.\n *\n * 1. No adjacent strings.\n * 2. No empty strings.\n *\n * The only exception here is the token stream that only contains the empty string and nothing else.\n *\n * @typedef {Array<string | Token>} TokenStream\n * @global\n * @public\n */\n\n/**\n * Converts the given token or token stream to an HTML representation.\n *\n * The following hooks will be run:\n * 1. `wrap`: On each {@link Token}.\n *\n * @param {string | Token | TokenStream} o The token or token stream to be converted.\n * @param {string} language The name of current language.\n * @returns {string} The HTML representation of the token or token stream.\n * @memberof Token\n * @static\n */\nToken.stringify = function stringify(o, language) {\n\tif (typeof o == 'string') {\n\t\treturn o;\n\t}\n\tif (Array.isArray(o)) {\n\t\tvar s = '';\n\t\to.forEach(function (e) {\n\t\t\ts += stringify(e, language);\n\t\t});\n\t\treturn s;\n\t}\n\n\tvar env = {\n\t\ttype: o.type,\n\t\tcontent: stringify(o.content, language),\n\t\ttag: 'span',\n\t\tclasses: ['token', o.type],\n\t\tattributes: {},\n\t\tlanguage: language\n\t};\n\n\tvar aliases = o.alias;\n\tif (aliases) {\n\t\tif (Array.isArray(aliases)) {\n\t\t\tArray.prototype.push.apply(env.classes, aliases);\n\t\t} else {\n\t\t\tenv.classes.push(aliases);\n\t\t}\n\t}\n\n\t_.hooks.run('wrap', env);\n\n\tvar attributes = '';\n\tfor (var name in env.attributes) {\n\t\tattributes += ' ' + name + '=\"' + (env.attributes[name] || '').replace(/\"/g, '&quot;') + '\"';\n\t}\n\n\treturn '<' + env.tag + ' class=\"' + env.classes.join(' ') + '\"' + attributes + '>' + env.content + '</' + env.tag + '>';\n};\n\n/**\n * @param {RegExp} pattern\n * @param {number} pos\n * @param {string} text\n * @param {boolean} lookbehind\n * @returns {RegExpExecArray | null}\n */\nfunction matchPattern(pattern, pos, text, lookbehind) {\n\tpattern.lastIndex = pos;\n\tvar match = pattern.exec(text);\n\tif (match && lookbehind && match[1]) {\n\t\t// change the match to remove the text matched by the Prism lookbehind group\n\t\tvar lookbehindLength = match[1].length;\n\t\tmatch.index += lookbehindLength;\n\t\tmatch[0] = match[0].slice(lookbehindLength);\n\t}\n\treturn match;\n}\n\n/**\n * @param {string} text\n * @param {LinkedList<string | Token>} tokenList\n * @param {any} grammar\n * @param {LinkedListNode<string | Token>} startNode\n * @param {number} startPos\n * @param {RematchOptions} [rematch]\n * @returns {void}\n * @private\n *\n * @typedef RematchOptions\n * @property {string} cause\n * @property {number} reach\n */\nfunction matchGrammar(text, tokenList, grammar, startNode, startPos, rematch) {\n\tfor (var token in grammar) {\n\t\tif (!grammar.hasOwnProperty(token) || !grammar[token]) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tvar patterns = grammar[token];\n\t\tpatterns = Array.isArray(patterns) ? patterns : [patterns];\n\n\t\tfor (var j = 0; j < patterns.length; ++j) {\n\t\t\tif (rematch && rematch.cause == token + ',' + j) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar patternObj = patterns[j],\n\t\t\t\tinside = patternObj.inside,\n\t\t\t\tlookbehind = !!patternObj.lookbehind,\n\t\t\t\tgreedy = !!patternObj.greedy,\n\t\t\t\talias = patternObj.alias;\n\n\t\t\tif (greedy && !patternObj.pattern.global) {\n\t\t\t\t// Without the global flag, lastIndex won't work\n\t\t\t\tvar flags = patternObj.pattern.toString().match(/[imsuy]*$/)[0];\n\t\t\t\tpatternObj.pattern = RegExp(patternObj.pattern.source, flags + 'g');\n\t\t\t}\n\n\t\t\t/** @type {RegExp} */\n\t\t\tvar pattern = patternObj.pattern || patternObj;\n\n\t\t\tfor ( // iterate the token list and keep track of the current token/string position\n\t\t\t\tvar currentNode = startNode.next, pos = startPos;\n\t\t\t\tcurrentNode !== tokenList.tail;\n\t\t\t\tpos += currentNode.value.length, currentNode = currentNode.next\n\t\t\t) {\n\n\t\t\t\tif (rematch && pos >= rematch.reach) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tvar str = currentNode.value;\n\n\t\t\t\tif (tokenList.length > text.length) {\n\t\t\t\t\t// Something went terribly wrong, ABORT, ABORT!\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (str instanceof Token) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tvar removeCount = 1; // this is the to parameter of removeBetween\n\t\t\t\tvar match;\n\n\t\t\t\tif (greedy) {\n\t\t\t\t\tmatch = matchPattern(pattern, pos, text, lookbehind);\n\t\t\t\t\tif (!match) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tvar from = match.index;\n\t\t\t\t\tvar to = match.index + match[0].length;\n\t\t\t\t\tvar p = pos;\n\n\t\t\t\t\t// find the node that contains the match\n\t\t\t\t\tp += currentNode.value.length;\n\t\t\t\t\twhile (from >= p) {\n\t\t\t\t\t\tcurrentNode = currentNode.next;\n\t\t\t\t\t\tp += currentNode.value.length;\n\t\t\t\t\t}\n\t\t\t\t\t// adjust pos (and p)\n\t\t\t\t\tp -= currentNode.value.length;\n\t\t\t\t\tpos = p;\n\n\t\t\t\t\t// the current node is a Token, then the match starts inside another Token, which is invalid\n\t\t\t\t\tif (currentNode.value instanceof Token) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\t// find the last node which is affected by this match\n\t\t\t\t\tfor (\n\t\t\t\t\t\tvar k = currentNode;\n\t\t\t\t\t\tk !== tokenList.tail && (p < to || typeof k.value === 'string');\n\t\t\t\t\t\tk = k.next\n\t\t\t\t\t) {\n\t\t\t\t\t\tremoveCount++;\n\t\t\t\t\t\tp += k.value.length;\n\t\t\t\t\t}\n\t\t\t\t\tremoveCount--;\n\n\t\t\t\t\t// replace with the new match\n\t\t\t\t\tstr = text.slice(pos, p);\n\t\t\t\t\tmatch.index -= pos;\n\t\t\t\t} else {\n\t\t\t\t\tmatch = matchPattern(pattern, 0, str, lookbehind);\n\t\t\t\t\tif (!match) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tvar from = match.index,\n\t\t\t\t\tmatchStr = match[0],\n\t\t\t\t\tbefore = str.slice(0, from),\n\t\t\t\t\tafter = str.slice(from + matchStr.length);\n\n\t\t\t\tvar reach = pos + str.length;\n\t\t\t\tif (rematch && reach > rematch.reach) {\n\t\t\t\t\trematch.reach = reach;\n\t\t\t\t}\n\n\t\t\t\tvar removeFrom = currentNode.prev;\n\n\t\t\t\tif (before) {\n\t\t\t\t\tremoveFrom = addAfter(tokenList, removeFrom, before);\n\t\t\t\t\tpos += before.length;\n\t\t\t\t}\n\n\t\t\t\tremoveRange(tokenList, removeFrom, removeCount);\n\n\t\t\t\tvar wrapped = new Token(token, inside ? _.tokenize(matchStr, inside) : matchStr, alias, matchStr);\n\t\t\t\tcurrentNode = addAfter(tokenList, removeFrom, wrapped);\n\n\t\t\t\tif (after) {\n\t\t\t\t\taddAfter(tokenList, currentNode, after);\n\t\t\t\t}\n\n\t\t\t\tif (removeCount > 1) {\n\t\t\t\t\t// at least one Token object was removed, so we have to do some rematching\n\t\t\t\t\t// this can only happen if the current pattern is greedy\n\t\t\t\t\tmatchGrammar(text, tokenList, grammar, currentNode.prev, pos, {\n\t\t\t\t\t\tcause: token + ',' + j,\n\t\t\t\t\t\treach: reach\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n/**\n * @typedef LinkedListNode\n * @property {T} value\n * @property {LinkedListNode<T> | null} prev The previous node.\n * @property {LinkedListNode<T> | null} next The next node.\n * @template T\n * @private\n */\n\n/**\n * @template T\n * @private\n */\nfunction LinkedList() {\n\t/** @type {LinkedListNode<T>} */\n\tvar head = { value: null, prev: null, next: null };\n\t/** @type {LinkedListNode<T>} */\n\tvar tail = { value: null, prev: head, next: null };\n\thead.next = tail;\n\n\t/** @type {LinkedListNode<T>} */\n\tthis.head = head;\n\t/** @type {LinkedListNode<T>} */\n\tthis.tail = tail;\n\tthis.length = 0;\n}\n\n/**\n * Adds a new node with the given value to the list.\n * @param {LinkedList<T>} list\n * @param {LinkedListNode<T>} node\n * @param {T} value\n * @returns {LinkedListNode<T>} The added node.\n * @template T\n */\nfunction addAfter(list, node, value) {\n\t// assumes that node != list.tail && values.length >= 0\n\tvar next = node.next;\n\n\tvar newNode = { value: value, prev: node, next: next };\n\tnode.next = newNode;\n\tnext.prev = newNode;\n\tlist.length++;\n\n\treturn newNode;\n}\n/**\n * Removes `count` nodes after the given node. The given node will not be removed.\n * @param {LinkedList<T>} list\n * @param {LinkedListNode<T>} node\n * @param {number} count\n * @template T\n */\nfunction removeRange(list, node, count) {\n\tvar next = node.next;\n\tfor (var i = 0; i < count && next !== list.tail; i++) {\n\t\tnext = next.next;\n\t}\n\tnode.next = next;\n\tnext.prev = node;\n\tlist.length -= i;\n}\n/**\n * @param {LinkedList<T>} list\n * @returns {T[]}\n * @template T\n */\nfunction toArray(list) {\n\tvar array = [];\n\tvar node = list.head.next;\n\twhile (node !== list.tail) {\n\t\tarray.push(node.value);\n\t\tnode = node.next;\n\t}\n\treturn array;\n}\n\n\nif (!_self.document) {\n\tif (!_self.addEventListener) {\n\t\t// in Node.js\n\t\treturn _;\n\t}\n\n\tif (!_.disableWorkerMessageHandler) {\n\t\t// In worker\n\t\t_self.addEventListener('message', function (evt) {\n\t\t\tvar message = JSON.parse(evt.data),\n\t\t\t\tlang = message.language,\n\t\t\t\tcode = message.code,\n\t\t\t\timmediateClose = message.immediateClose;\n\n\t\t\t_self.postMessage(_.highlight(code, _.languages[lang], lang));\n\t\t\tif (immediateClose) {\n\t\t\t\t_self.close();\n\t\t\t}\n\t\t}, false);\n\t}\n\n\treturn _;\n}\n\n// Get current script and highlight\nvar script = _.util.currentScript();\n\nif (script) {\n\t_.filename = script.src;\n\n\tif (script.hasAttribute('data-manual')) {\n\t\t_.manual = true;\n\t}\n}\n\nfunction highlightAutomaticallyCallback() {\n\tif (!_.manual) {\n\t\t_.highlightAll();\n\t}\n}\n\nif (!_.manual) {\n\t// If the document state is \"loading\", then we'll use DOMContentLoaded.\n\t// If the document state is \"interactive\" and the prism.js script is deferred, then we'll also use the\n\t// DOMContentLoaded event because there might be some plugins or languages which have also been deferred and they\n\t// might take longer one animation frame to execute which can create a race condition where only some plugins have\n\t// been loaded when Prism.highlightAll() is executed, depending on how fast resources are loaded.\n\t// See https://github.com/PrismJS/prism/issues/2102\n\tvar readyState = document.readyState;\n\tif (readyState === 'loading' || readyState === 'interactive' && script && script.defer) {\n\t\tdocument.addEventListener('DOMContentLoaded', highlightAutomaticallyCallback);\n\t} else {\n\t\tif (window.requestAnimationFrame) {\n\t\t\twindow.requestAnimationFrame(highlightAutomaticallyCallback);\n\t\t} else {\n\t\t\twindow.setTimeout(highlightAutomaticallyCallback, 16);\n\t\t}\n\t}\n}\n\nreturn _;\n\n})(_self);\n\nif (typeof module !== 'undefined' && module.exports) {\n\tmodule.exports = Prism;\n}\n\n// hack for components to work correctly in node.js\nif (typeof global !== 'undefined') {\n\tglobal.Prism = Prism;\n}\n\n// some additional documentation/types\n\n/**\n * The expansion of a simple `RegExp` literal to support additional properties.\n *\n * @typedef GrammarToken\n * @property {RegExp} pattern The regular expression of the token.\n * @property {boolean} [lookbehind=false] If `true`, then the first capturing group of `pattern` will (effectively)\n * behave as a lookbehind group meaning that the captured text will not be part of the matched text of the new token.\n * @property {boolean} [greedy=false] Whether the token is greedy.\n * @property {string|string[]} [alias] An optional alias or list of aliases.\n * @property {Grammar} [inside] The nested grammar of this token.\n *\n * The `inside` grammar will be used to tokenize the text value of each token of this kind.\n *\n * This can be used to make nested and even recursive language definitions.\n *\n * Note: This can cause infinite recursion. Be careful when you embed different languages or even the same language into\n * each another.\n * @global\n * @public\n*/\n\n/**\n * @typedef Grammar\n * @type {Object<string, RegExp | GrammarToken | Array<RegExp | GrammarToken>>}\n * @property {Grammar} [rest] An optional grammar object that will be appended to this grammar.\n * @global\n * @public\n */\n\n/**\n * A function which will invoked after an element was successfully highlighted.\n *\n * @callback HighlightCallback\n * @param {Element} element The element successfully highlighted.\n * @returns {void}\n * @global\n * @public\n*/\n\n/**\n * @callback HookCallback\n * @param {Object<string, any>} env The environment variables of the hook.\n * @returns {void}\n * @global\n * @public\n */\n","'use strict'\n\nmodule.exports = markup\nmarkup.displayName = 'markup'\nmarkup.aliases = ['html', 'mathml', 'svg', 'xml', 'ssml', 'atom', 'rss']\nfunction markup(Prism) {\n Prism.languages.markup = {\n comment: /<!--[\\s\\S]*?-->/,\n prolog: /<\\?[\\s\\S]+?\\?>/,\n doctype: {\n // https://www.w3.org/TR/xml/#NT-doctypedecl\n pattern: /<!DOCTYPE(?:[^>\"'[\\]]|\"[^\"]*\"|'[^']*')+(?:\\[(?:[^<\"'\\]]|\"[^\"]*\"|'[^']*'|<(?!!--)|<!--(?:[^-]|-(?!->))*-->)*\\]\\s*)?>/i,\n greedy: true,\n inside: {\n 'internal-subset': {\n pattern: /(\\[)[\\s\\S]+(?=\\]>$)/,\n lookbehind: true,\n greedy: true,\n inside: null // see below\n },\n string: {\n pattern: /\"[^\"]*\"|'[^']*'/,\n greedy: true\n },\n punctuation: /^<!|>$|[[\\]]/,\n 'doctype-tag': /^DOCTYPE/,\n name: /[^\\s<>'\"]+/\n }\n },\n cdata: /<!\\[CDATA\\[[\\s\\S]*?]]>/i,\n tag: {\n pattern: /<\\/?(?!\\d)[^\\s>\\/=$<%]+(?:\\s(?:\\s*[^\\s>\\/=]+(?:\\s*=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\">=]+(?=[\\s>]))|(?=[\\s/>])))+)?\\s*\\/?>/,\n greedy: true,\n inside: {\n tag: {\n pattern: /^<\\/?[^\\s>\\/]+/,\n inside: {\n punctuation: /^<\\/?/,\n namespace: /^[^\\s>\\/:]+:/\n }\n },\n 'attr-value': {\n pattern: /=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\">=]+)/,\n inside: {\n punctuation: [\n {\n pattern: /^=/,\n alias: 'attr-equals'\n },\n /\"|'/\n ]\n }\n },\n punctuation: /\\/?>/,\n 'attr-name': {\n pattern: /[^\\s>\\/]+/,\n inside: {\n namespace: /^[^\\s>\\/:]+:/\n }\n }\n }\n },\n entity: [\n {\n pattern: /&[\\da-z]{1,8};/i,\n alias: 'named-entity'\n },\n /&#x?[\\da-f]{1,8};/i\n ]\n }\n Prism.languages.markup['tag'].inside['attr-value'].inside['entity'] =\n Prism.languages.markup['entity']\n Prism.languages.markup['doctype'].inside['internal-subset'].inside =\n Prism.languages.markup // Plugin to make entity title show the real entity, idea by Roman Komarov\n Prism.hooks.add('wrap', function (env) {\n if (env.type === 'entity') {\n env.attributes['title'] = env.content.value.replace(/&amp;/, '&')\n }\n })\n Object.defineProperty(Prism.languages.markup.tag, 'addInlined', {\n /**\n * Adds an inlined language to markup.\n *\n * An example of an inlined language is CSS with `<style>` tags.\n *\n * @param {string} tagName The name of the tag that contains the inlined language. This name will be treated as\n * case insensitive.\n * @param {string} lang The language key.\n * @example\n * addInlined('style', 'css');\n */\n value: function addInlined(tagName, lang) {\n var includedCdataInside = {}\n includedCdataInside['language-' + lang] = {\n pattern: /(^<!\\[CDATA\\[)[\\s\\S]+?(?=\\]\\]>$)/i,\n lookbehind: true,\n inside: Prism.languages[lang]\n }\n includedCdataInside['cdata'] = /^<!\\[CDATA\\[|\\]\\]>$/i\n var inside = {\n 'included-cdata': {\n pattern: /<!\\[CDATA\\[[\\s\\S]*?\\]\\]>/i,\n inside: includedCdataInside\n }\n }\n inside['language-' + lang] = {\n pattern: /[\\s\\S]+/,\n inside: Prism.languages[lang]\n }\n var def = {}\n def[tagName] = {\n pattern: RegExp(\n /(<__[^>]*>)(?:<!\\[CDATA\\[(?:[^\\]]|\\](?!\\]>))*\\]\\]>|(?!<!\\[CDATA\\[)[\\s\\S])*?(?=<\\/__>)/.source.replace(\n /__/g,\n function () {\n return tagName\n }\n ),\n 'i'\n ),\n lookbehind: true,\n greedy: true,\n inside: inside\n }\n Prism.languages.insertBefore('markup', 'cdata', def)\n }\n })\n Prism.languages.html = Prism.languages.markup\n Prism.languages.mathml = Prism.languages.markup\n Prism.languages.svg = Prism.languages.markup\n Prism.languages.xml = Prism.languages.extend('markup', {})\n Prism.languages.ssml = Prism.languages.xml\n Prism.languages.atom = Prism.languages.xml\n Prism.languages.rss = Prism.languages.xml\n}\n","'use strict'\n\nmodule.exports = css\ncss.displayName = 'css'\ncss.aliases = []\nfunction css(Prism) {\n ;(function (Prism) {\n var string = /(\"|')(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/\n Prism.languages.css = {\n comment: /\\/\\*[\\s\\S]*?\\*\\//,\n atrule: {\n pattern: /@[\\w-](?:[^;{\\s]|\\s+(?![\\s{]))*(?:;|(?=\\s*\\{))/,\n inside: {\n rule: /^@[\\w-]+/,\n 'selector-function-argument': {\n pattern: /(\\bselector\\s*\\(\\s*(?![\\s)]))(?:[^()\\s]|\\s+(?![\\s)])|\\((?:[^()]|\\([^()]*\\))*\\))+(?=\\s*\\))/,\n lookbehind: true,\n alias: 'selector'\n },\n keyword: {\n pattern: /(^|[^\\w-])(?:and|not|only|or)(?![\\w-])/,\n lookbehind: true\n } // See rest below\n }\n },\n url: {\n // https://drafts.csswg.org/css-values-3/#urls\n pattern: RegExp(\n '\\\\burl\\\\((?:' +\n string.source +\n '|' +\n /(?:[^\\\\\\r\\n()\"']|\\\\[\\s\\S])*/.source +\n ')\\\\)',\n 'i'\n ),\n greedy: true,\n inside: {\n function: /^url/i,\n punctuation: /^\\(|\\)$/,\n string: {\n pattern: RegExp('^' + string.source + '$'),\n alias: 'url'\n }\n }\n },\n selector: RegExp(\n '[^{}\\\\s](?:[^{};\"\\'\\\\s]|\\\\s+(?![\\\\s{])|' +\n string.source +\n ')*(?=\\\\s*\\\\{)'\n ),\n string: {\n pattern: string,\n greedy: true\n },\n property: /(?!\\s)[-_a-z\\xA0-\\uFFFF](?:(?!\\s)[-\\w\\xA0-\\uFFFF])*(?=\\s*:)/i,\n important: /!important\\b/i,\n function: /[-a-z0-9]+(?=\\()/i,\n punctuation: /[(){};:,]/\n }\n Prism.languages.css['atrule'].inside.rest = Prism.languages.css\n var markup = Prism.languages.markup\n if (markup) {\n markup.tag.addInlined('style', 'css')\n Prism.languages.insertBefore(\n 'inside',\n 'attr-value',\n {\n 'style-attr': {\n pattern: /(^|[\"'\\s])style\\s*=\\s*(?:\"[^\"]*\"|'[^']*')/i,\n lookbehind: true,\n inside: {\n 'attr-value': {\n pattern: /=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\">=]+)/,\n inside: {\n style: {\n pattern: /([\"'])[\\s\\S]+(?=[\"']$)/,\n lookbehind: true,\n alias: 'language-css',\n inside: Prism.languages.css\n },\n punctuation: [\n {\n pattern: /^=/,\n alias: 'attr-equals'\n },\n /\"|'/\n ]\n }\n },\n 'attr-name': /^style/i\n }\n }\n },\n markup.tag\n )\n }\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = clike\nclike.displayName = 'clike'\nclike.aliases = []\nfunction clike(Prism) {\n Prism.languages.clike = {\n comment: [\n {\n pattern: /(^|[^\\\\])\\/\\*[\\s\\S]*?(?:\\*\\/|$)/,\n lookbehind: true,\n greedy: true\n },\n {\n pattern: /(^|[^\\\\:])\\/\\/.*/,\n lookbehind: true,\n greedy: true\n }\n ],\n string: {\n pattern: /([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/,\n greedy: true\n },\n 'class-name': {\n pattern: /(\\b(?:class|interface|extends|implements|trait|instanceof|new)\\s+|\\bcatch\\s+\\()[\\w.\\\\]+/i,\n lookbehind: true,\n inside: {\n punctuation: /[.\\\\]/\n }\n },\n keyword: /\\b(?:if|else|while|do|for|return|in|instanceof|function|new|try|throw|catch|finally|null|break|continue)\\b/,\n boolean: /\\b(?:true|false)\\b/,\n function: /\\w+(?=\\()/,\n number: /\\b0x[\\da-f]+\\b|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e[+-]?\\d+)?/i,\n operator: /[<>]=?|[!=]=?=?|--?|\\+\\+?|&&?|\\|\\|?|[?*/~^%]/,\n punctuation: /[{}[\\];(),.:]/\n }\n}\n","'use strict'\n\nmodule.exports = javascript\njavascript.displayName = 'javascript'\njavascript.aliases = ['js']\nfunction javascript(Prism) {\n Prism.languages.javascript = Prism.languages.extend('clike', {\n 'class-name': [\n Prism.languages.clike['class-name'],\n {\n pattern: /(^|[^$\\w\\xA0-\\uFFFF])(?!\\s)[_$A-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\.(?:prototype|constructor))/,\n lookbehind: true\n }\n ],\n keyword: [\n {\n pattern: /((?:^|})\\s*)(?:catch|finally)\\b/,\n lookbehind: true\n },\n {\n pattern: /(^|[^.]|\\.\\.\\.\\s*)\\b(?:as|async(?=\\s*(?:function\\b|\\(|[$\\w\\xA0-\\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|for|from|function|(?:get|set)(?=\\s*[\\[$\\w\\xA0-\\uFFFF])|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\\b/,\n lookbehind: true\n }\n ],\n // Allow for all non-ASCII characters (See http://stackoverflow.com/a/2008444)\n function: /#?(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*(?:\\.\\s*(?:apply|bind|call)\\s*)?\\()/,\n number: /\\b(?:(?:0[xX](?:[\\dA-Fa-f](?:_[\\dA-Fa-f])?)+|0[bB](?:[01](?:_[01])?)+|0[oO](?:[0-7](?:_[0-7])?)+)n?|(?:\\d(?:_\\d)?)+n|NaN|Infinity)\\b|(?:\\b(?:\\d(?:_\\d)?)+\\.?(?:\\d(?:_\\d)?)*|\\B\\.(?:\\d(?:_\\d)?)+)(?:[Ee][+-]?(?:\\d(?:_\\d)?)+)?/,\n operator: /--|\\+\\+|\\*\\*=?|=>|&&=?|\\|\\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\\.{3}|\\?\\?=?|\\?\\.?|[~:]/\n })\n Prism.languages.javascript[\n 'class-name'\n ][0].pattern = /(\\b(?:class|interface|extends|implements|instanceof|new)\\s+)[\\w.\\\\]+/\n Prism.languages.insertBefore('javascript', 'keyword', {\n regex: {\n pattern: /((?:^|[^$\\w\\xA0-\\uFFFF.\"'\\])\\s]|\\b(?:return|yield))\\s*)\\/(?:\\[(?:[^\\]\\\\\\r\\n]|\\\\.)*]|\\\\.|[^/\\\\\\[\\r\\n])+\\/[gimyus]{0,6}(?=(?:\\s|\\/\\*(?:[^*]|\\*(?!\\/))*\\*\\/)*(?:$|[\\r\\n,.;:})\\]]|\\/\\/))/,\n lookbehind: true,\n greedy: true,\n inside: {\n 'regex-source': {\n pattern: /^(\\/)[\\s\\S]+(?=\\/[a-z]*$)/,\n lookbehind: true,\n alias: 'language-regex',\n inside: Prism.languages.regex\n },\n 'regex-flags': /[a-z]+$/,\n 'regex-delimiter': /^\\/|\\/$/\n }\n },\n // This must be declared before keyword because we use \"function\" inside the look-forward\n 'function-variable': {\n pattern: /#?(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*[=:]\\s*(?:async\\s*)?(?:\\bfunction\\b|(?:\\((?:[^()]|\\([^()]*\\))*\\)|(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*)\\s*=>))/,\n alias: 'function'\n },\n parameter: [\n {\n pattern: /(function(?:\\s+(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*)?\\s*\\(\\s*)(?!\\s)(?:[^()\\s]|\\s+(?![\\s)])|\\([^()]*\\))+(?=\\s*\\))/,\n lookbehind: true,\n inside: Prism.languages.javascript\n },\n {\n pattern: /(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*=>)/i,\n inside: Prism.languages.javascript\n },\n {\n pattern: /(\\(\\s*)(?!\\s)(?:[^()\\s]|\\s+(?![\\s)])|\\([^()]*\\))+(?=\\s*\\)\\s*=>)/,\n lookbehind: true,\n inside: Prism.languages.javascript\n },\n {\n pattern: /((?:\\b|\\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\\w\\xA0-\\uFFFF]))(?:(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*\\s*)\\(\\s*|\\]\\s*\\(\\s*)(?!\\s)(?:[^()\\s]|\\s+(?![\\s)])|\\([^()]*\\))+(?=\\s*\\)\\s*\\{)/,\n lookbehind: true,\n inside: Prism.languages.javascript\n }\n ],\n constant: /\\b[A-Z](?:[A-Z_]|\\dx?)*\\b/\n })\n Prism.languages.insertBefore('javascript', 'string', {\n 'template-string': {\n pattern: /`(?:\\\\[\\s\\S]|\\${(?:[^{}]|{(?:[^{}]|{[^}]*})*})+}|(?!\\${)[^\\\\`])*`/,\n greedy: true,\n inside: {\n 'template-punctuation': {\n pattern: /^`|`$/,\n alias: 'string'\n },\n interpolation: {\n pattern: /((?:^|[^\\\\])(?:\\\\{2})*)\\${(?:[^{}]|{(?:[^{}]|{[^}]*})*})+}/,\n lookbehind: true,\n inside: {\n 'interpolation-punctuation': {\n pattern: /^\\${|}$/,\n alias: 'punctuation'\n },\n rest: Prism.languages.javascript\n }\n },\n string: /[\\s\\S]+/\n }\n }\n })\n if (Prism.languages.markup) {\n Prism.languages.markup.tag.addInlined('script', 'javascript')\n }\n Prism.languages.js = Prism.languages.javascript\n}\n","'use strict'\n\nmodule.exports = abap\nabap.displayName = 'abap'\nabap.aliases = []\nfunction abap(Prism) {\n Prism.languages.abap = {\n comment: /^\\*.*/m,\n string: /(`|')(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/m,\n 'string-template': {\n pattern: /([|}])(?:\\\\.|[^\\\\|{\\r\\n])*(?=[|{])/,\n lookbehind: true,\n alias: 'string'\n },\n /* End Of Line comments should not interfere with strings when the\nquote character occurs within them. We assume a string being highlighted\ninside an EOL comment is more acceptable than the opposite.\n*/\n 'eol-comment': {\n pattern: /(^|\\s)\".*/m,\n lookbehind: true,\n alias: 'comment'\n },\n keyword: {\n pattern: /(\\s|\\.|^)(?:SCIENTIFIC_WITH_LEADING_ZERO|SCALE_PRESERVING_SCIENTIFIC|RMC_COMMUNICATION_FAILURE|END-ENHANCEMENT-SECTION|MULTIPLY-CORRESPONDING|SUBTRACT-CORRESPONDING|VERIFICATION-MESSAGE|DIVIDE-CORRESPONDING|ENHANCEMENT-SECTION|CURRENCY_CONVERSION|RMC_SYSTEM_FAILURE|START-OF-SELECTION|MOVE-CORRESPONDING|RMC_INVALID_STATUS|CUSTOMER-FUNCTION|END-OF-DEFINITION|ENHANCEMENT-POINT|SYSTEM-EXCEPTIONS|ADD-CORRESPONDING|SCALE_PRESERVING|SELECTION-SCREEN|CURSOR-SELECTION|END-OF-SELECTION|LOAD-OF-PROGRAM|SCROLL-BOUNDARY|SELECTION-TABLE|EXCEPTION-TABLE|IMPLEMENTATIONS|PARAMETER-TABLE|RIGHT-JUSTIFIED|UNIT_CONVERSION|AUTHORITY-CHECK|LIST-PROCESSING|SIGN_AS_POSTFIX|COL_BACKGROUND|IMPLEMENTATION|INTERFACE-POOL|TRANSFORMATION|IDENTIFICATION|ENDENHANCEMENT|LINE-SELECTION|INITIALIZATION|LEFT-JUSTIFIED|SELECT-OPTIONS|SELECTION-SETS|COMMUNICATION|CORRESPONDING|DECIMAL_SHIFT|PRINT-CONTROL|VALUE-REQUEST|CHAIN-REQUEST|FUNCTION-POOL|FIELD-SYMBOLS|FUNCTIONALITY|INVERTED-DATE|SELECTION-SET|CLASS-METHODS|OUTPUT-LENGTH|CLASS-CODING|COL_NEGATIVE|ERRORMESSAGE|FIELD-GROUPS|HELP-REQUEST|NO-EXTENSION|NO-TOPOFPAGE|REDEFINITION|DISPLAY-MODE|ENDINTERFACE|EXIT-COMMAND|FIELD-SYMBOL|NO-SCROLLING|SHORTDUMP-ID|ACCESSPOLICY|CLASS-EVENTS|COL_POSITIVE|DECLARATIONS|ENHANCEMENTS|FILTER-TABLE|SWITCHSTATES|SYNTAX-CHECK|TRANSPORTING|ASYNCHRONOUS|SYNTAX-TRACE|TOKENIZATION|USER-COMMAND|WITH-HEADING|ABAP-SOURCE|BREAK-POINT|CHAIN-INPUT|COMPRESSION|FIXED-POINT|NEW-SECTION|NON-UNICODE|OCCURRENCES|RESPONSIBLE|SYSTEM-CALL|TRACE-TABLE|ABBREVIATED|CHAR-TO-HEX|END-OF-FILE|ENDFUNCTION|ENVIRONMENT|ASSOCIATION|COL_HEADING|EDITOR-CALL|END-OF-PAGE|ENGINEERING|IMPLEMENTED|INTENSIFIED|RADIOBUTTON|SYSTEM-EXIT|TOP-OF-PAGE|TRANSACTION|APPLICATION|CONCATENATE|DESTINATION|ENHANCEMENT|IMMEDIATELY|NO-GROUPING|PRECOMPILED|REPLACEMENT|TITLE-LINES|ACTIVATION|BYTE-ORDER|CLASS-POOL|CONNECTION|CONVERSION|DEFINITION|DEPARTMENT|EXPIRATION|INHERITING|MESSAGE-ID|NO-HEADING|PERFORMING|QUEUE-ONLY|RIGHTSPACE|SCIENTIFIC|STATUSINFO|STRUCTURES|SYNCPOINTS|WITH-TITLE|ATTRIBUTES|BOUNDARIES|CLASS-DATA|COL_NORMAL|DD\\/MM\\/YYYY|DESCENDING|INTERFACES|LINE-COUNT|MM\\/DD\\/YYYY|NON-UNIQUE|PRESERVING|SELECTIONS|STATEMENTS|SUBROUTINE|TRUNCATION|TYPE-POOLS|ARITHMETIC|BACKGROUND|ENDPROVIDE|EXCEPTIONS|IDENTIFIER|INDEX-LINE|OBLIGATORY|PARAMETERS|PERCENTAGE|PUSHBUTTON|RESOLUTION|COMPONENTS|DEALLOCATE|DISCONNECT|DUPLICATES|FIRST-LINE|HEAD-LINES|NO-DISPLAY|OCCURRENCE|RESPECTING|RETURNCODE|SUBMATCHES|TRACE-FILE|ASCENDING|BYPASSING|ENDMODULE|EXCEPTION|EXCLUDING|EXPORTING|INCREMENT|MATCHCODE|PARAMETER|PARTIALLY|PREFERRED|REFERENCE|REPLACING|RETURNING|SELECTION|SEPARATED|SPECIFIED|STATEMENT|TIMESTAMP|TYPE-POOL|ACCEPTING|APPENDAGE|ASSIGNING|COL_GROUP|COMPARING|CONSTANTS|DANGEROUS|IMPORTING|INSTANCES|LEFTSPACE|LOG-POINT|QUICKINFO|READ-ONLY|SCROLLING|SQLSCRIPT|STEP-LOOP|TOP-LINES|TRANSLATE|APPENDING|AUTHORITY|CHARACTER|COMPONENT|CONDITION|DIRECTORY|DUPLICATE|MESSAGING|RECEIVING|SUBSCREEN|ACCORDING|COL_TOTAL|END-LINES|ENDMETHOD|ENDSELECT|EXPANDING|EXTENSION|INCLUDING|INFOTYPES|INTERFACE|INTERVALS|LINE-SIZE|PF-STATUS|PROCEDURE|PROTECTED|REQUESTED|RESUMABLE|RIGHTPLUS|SAP-SPOOL|SECONDARY|STRUCTURE|SUBSTRING|TABLEVIEW|NUMOFCHAR|ADJACENT|ANALYSIS|ASSIGNED|BACKWARD|CHANNELS|CHECKBOX|CONTINUE|CRITICAL|DATAINFO|DD\\/MM\\/YY|DURATION|ENCODING|ENDCLASS|FUNCTION|LEFTPLUS|LINEFEED|MM\\/DD\\/YY|OVERFLOW|RECEIVED|SKIPPING|SORTABLE|STANDARD|SUBTRACT|SUPPRESS|TABSTRIP|TITLEBAR|TRUNCATE|UNASSIGN|WHENEVER|ANALYZER|COALESCE|COMMENTS|CONDENSE|DECIMALS|DEFERRED|ENDWHILE|EXPLICIT|KEYWORDS|MESSAGES|POSITION|PRIORITY|RECEIVER|RENAMING|TIMEZONE|TRAILING|ALLOCATE|CENTERED|CIRCULAR|CONTROLS|CURRENCY|DELETING|DESCRIBE|DISTANCE|ENDCATCH|EXPONENT|EXTENDED|GENERATE|IGNORING|INCLUDES|INTERNAL|MAJOR-ID|MODIFIER|NEW-LINE|OPTIONAL|PROPERTY|ROLLBACK|STARTING|SUPPLIED|ABSTRACT|CHANGING|CONTEXTS|CREATING|CUSTOMER|DATABASE|DAYLIGHT|DEFINING|DISTINCT|DIVISION|ENABLING|ENDCHAIN|ESCAPING|HARMLESS|IMPLICIT|INACTIVE|LANGUAGE|MINOR-ID|MULTIPLY|NEW-PAGE|NO-TITLE|POS_HIGH|SEPARATE|TEXTPOOL|TRANSFER|SELECTOR|DBMAXLEN|ITERATOR|SELECTOR|ARCHIVE|BIT-XOR|BYTE-CO|COLLECT|COMMENT|CURRENT|DEFAULT|DISPLAY|ENDFORM|EXTRACT|LEADING|LISTBOX|LOCATOR|MEMBERS|METHODS|NESTING|POS_LOW|PROCESS|PROVIDE|RAISING|RESERVE|SECONDS|SUMMARY|VISIBLE|BETWEEN|BIT-AND|BYTE-CS|CLEANUP|COMPUTE|CONTROL|CONVERT|DATASET|ENDCASE|FORWARD|HEADERS|HOTSPOT|INCLUDE|INVERSE|KEEPING|NO-ZERO|OBJECTS|OVERLAY|PADDING|PATTERN|PROGRAM|REFRESH|SECTION|SUMMING|TESTING|VERSION|WINDOWS|WITHOUT|BIT-NOT|BYTE-CA|BYTE-NA|CASTING|CONTEXT|COUNTRY|DYNAMIC|ENABLED|ENDLOOP|EXECUTE|FRIENDS|HANDLER|HEADING|INITIAL|\\*-INPUT|LOGFILE|MAXIMUM|MINIMUM|NO-GAPS|NO-SIGN|PRAGMAS|PRIMARY|PRIVATE|REDUCED|REPLACE|REQUEST|RESULTS|UNICODE|WARNING|ALIASES|BYTE-CN|BYTE-NS|CALLING|COL_KEY|COLUMNS|CONNECT|ENDEXEC|ENTRIES|EXCLUDE|FILTERS|FURTHER|HELP-ID|LOGICAL|MAPPING|MESSAGE|NAMETAB|OPTIONS|PACKAGE|PERFORM|RECEIVE|STATICS|VARYING|BINDING|CHARLEN|GREATER|XSTRLEN|ACCEPT|APPEND|DETAIL|ELSEIF|ENDING|ENDTRY|FORMAT|FRAMES|GIVING|HASHED|HEADER|IMPORT|INSERT|MARGIN|MODULE|NATIVE|OBJECT|OFFSET|REMOTE|RESUME|SAVING|SIMPLE|SUBMIT|TABBED|TOKENS|UNIQUE|UNPACK|UPDATE|WINDOW|YELLOW|ACTUAL|ASPECT|CENTER|CURSOR|DELETE|DIALOG|DIVIDE|DURING|ERRORS|EVENTS|EXTEND|FILTER|HANDLE|HAVING|IGNORE|LITTLE|MEMORY|NO-GAP|OCCURS|OPTION|PERSON|PLACES|PUBLIC|REDUCE|REPORT|RESULT|SINGLE|SORTED|SWITCH|SYNTAX|TARGET|VALUES|WRITER|ASSERT|BLOCKS|BOUNDS|BUFFER|CHANGE|COLUMN|COMMIT|CONCAT|COPIES|CREATE|DDMMYY|DEFINE|ENDIAN|ESCAPE|EXPAND|KERNEL|LAYOUT|LEGACY|LEVELS|MMDDYY|NUMBER|OUTPUT|RANGES|READER|RETURN|SCREEN|SEARCH|SELECT|SHARED|SOURCE|STABLE|STATIC|SUBKEY|SUFFIX|TABLES|UNWIND|YYMMDD|ASSIGN|BACKUP|BEFORE|BINARY|BIT-OR|BLANKS|CLIENT|CODING|COMMON|DEMAND|DYNPRO|EXCEPT|EXISTS|EXPORT|FIELDS|GLOBAL|GROUPS|LENGTH|LOCALE|MEDIUM|METHOD|MODIFY|NESTED|OTHERS|REJECT|SCROLL|SUPPLY|SYMBOL|ENDFOR|STRLEN|ALIGN|BEGIN|BOUND|ENDAT|ENTRY|EVENT|FINAL|FLUSH|GRANT|INNER|SHORT|USING|WRITE|AFTER|BLACK|BLOCK|CLOCK|COLOR|COUNT|DUMMY|EMPTY|ENDDO|ENDON|GREEN|INDEX|INOUT|LEAVE|LEVEL|LINES|MODIF|ORDER|OUTER|RANGE|RESET|RETRY|RIGHT|SMART|SPLIT|STYLE|TABLE|THROW|UNDER|UNTIL|UPPER|UTF-8|WHERE|ALIAS|BLANK|CLEAR|CLOSE|EXACT|FETCH|FIRST|FOUND|GROUP|LLANG|LOCAL|OTHER|REGEX|SPOOL|TITLE|TYPES|VALID|WHILE|ALPHA|BOXED|CATCH|CHAIN|CHECK|CLASS|COVER|ENDIF|EQUIV|FIELD|FLOOR|FRAME|INPUT|LOWER|MATCH|NODES|PAGES|PRINT|RAISE|ROUND|SHIFT|SPACE|SPOTS|STAMP|STATE|TASKS|TIMES|TRMAC|ULINE|UNION|VALUE|WIDTH|EQUAL|LOG10|TRUNC|BLOB|CASE|CEIL|CLOB|COND|EXIT|FILE|GAPS|HOLD|INCL|INTO|KEEP|KEYS|LAST|LINE|LONG|LPAD|MAIL|MODE|OPEN|PINK|READ|ROWS|TEST|THEN|ZERO|AREA|BACK|BADI|BYTE|CAST|EDIT|EXEC|FAIL|FIND|FKEQ|FONT|FREE|GKEQ|HIDE|INIT|ITNO|LATE|LOOP|MAIN|MARK|MOVE|NEXT|NULL|RISK|ROLE|UNIT|WAIT|ZONE|BASE|CALL|CODE|DATA|DATE|FKGE|GKGE|HIGH|KIND|LEFT|LIST|MASK|MESH|NAME|NODE|PACK|PAGE|POOL|SEND|SIGN|SIZE|SOME|STOP|TASK|TEXT|TIME|USER|VARY|WITH|WORD|BLUE|CONV|COPY|DEEP|ELSE|FORM|FROM|HINT|ICON|JOIN|LIKE|LOAD|ONLY|PART|SCAN|SKIP|SORT|TYPE|UNIX|VIEW|WHEN|WORK|ACOS|ASIN|ATAN|COSH|EACH|FRAC|LESS|RTTI|SINH|SQRT|TANH|AVG|BIT|DIV|ISO|LET|OUT|PAD|SQL|ALL|CI_|CPI|END|LOB|LPI|MAX|MIN|NEW|OLE|RUN|SET|\\?TO|YES|ABS|ADD|AND|BIG|FOR|HDB|JOB|LOW|NOT|SAP|TRY|VIA|XML|ANY|GET|IDS|KEY|MOD|OFF|PUT|RAW|RED|REF|SUM|TAB|XSD|CNT|COS|EXP|LOG|SIN|TAN|XOR|AT|CO|CP|DO|GT|ID|IF|NS|OR|BT|CA|CS|GE|NA|NB|EQ|IN|LT|NE|NO|OF|ON|PF|TO|AS|BY|CN|IS|LE|NP|UP|E|I|M|O|Z|C|X)\\b/i,\n lookbehind: true\n },\n /* Numbers can be only integers. Decimal or Hex appear only as strings */\n number: /\\b\\d+\\b/,\n /* Operators must always be surrounded by whitespace, they cannot be put\nadjacent to operands.\n*/\n operator: {\n pattern: /(\\s)(?:\\*\\*?|<[=>]?|>=?|\\?=|[-+\\/=])(?=\\s)/,\n lookbehind: true\n },\n 'string-operator': {\n pattern: /(\\s)&&?(?=\\s)/,\n lookbehind: true,\n /* The official editor highlights */\n alias: 'keyword'\n },\n 'token-operator': [\n {\n /* Special operators used to access structure components, class methods/attributes, etc. */\n pattern: /(\\w)(?:->?|=>|[~|{}])(?=\\w)/,\n lookbehind: true,\n alias: 'punctuation'\n },\n {\n /* Special tokens used do delimit string templates */\n pattern: /[|{}]/,\n alias: 'punctuation'\n }\n ],\n punctuation: /[,.:()]/\n }\n}\n","'use strict'\n\nmodule.exports = abnf\nabnf.displayName = 'abnf'\nabnf.aliases = []\nfunction abnf(Prism) {\n ;(function (Prism) {\n var coreRules =\n '(?:ALPHA|BIT|CHAR|CR|CRLF|CTL|DIGIT|DQUOTE|HEXDIG|HTAB|LF|LWSP|OCTET|SP|VCHAR|WSP)'\n Prism.languages.abnf = {\n comment: /;.*/,\n string: {\n pattern: /(?:%[is])?\"[^\"\\n\\r]*\"/,\n greedy: true,\n inside: {\n punctuation: /^%[is]/\n }\n },\n range: {\n pattern: /%(?:b[01]+-[01]+|d\\d+-\\d+|x[A-F\\d]+-[A-F\\d]+)/i,\n alias: 'number'\n },\n terminal: {\n pattern: /%(?:b[01]+(?:\\.[01]+)*|d\\d+(?:\\.\\d+)*|x[A-F\\d]+(?:\\.[A-F\\d]+)*)/i,\n alias: 'number'\n },\n repetition: {\n pattern: /(^|[^\\w-])(?:\\d*\\*\\d*|\\d+)/,\n lookbehind: true,\n alias: 'operator'\n },\n definition: {\n pattern: /(^[ \\t]*)(?:[a-z][\\w-]*|<[^>\\r\\n]*>)(?=\\s*=)/m,\n lookbehind: true,\n alias: 'keyword',\n inside: {\n punctuation: /<|>/\n }\n },\n 'core-rule': {\n pattern: RegExp(\n '(?:(^|[^<\\\\w-])' + coreRules + '|<' + coreRules + '>)(?![\\\\w-])',\n 'i'\n ),\n lookbehind: true,\n alias: ['rule', 'constant'],\n inside: {\n punctuation: /<|>/\n }\n },\n rule: {\n pattern: /(^|[^<\\w-])[a-z][\\w-]*|<[^>\\r\\n]*>/i,\n lookbehind: true,\n inside: {\n punctuation: /<|>/\n }\n },\n operator: /=\\/?|\\//,\n punctuation: /[()\\[\\]]/\n }\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = actionscript\nactionscript.displayName = 'actionscript'\nactionscript.aliases = []\nfunction actionscript(Prism) {\n Prism.languages.actionscript = Prism.languages.extend('javascript', {\n keyword: /\\b(?:as|break|case|catch|class|const|default|delete|do|else|extends|finally|for|function|if|implements|import|in|instanceof|interface|internal|is|native|new|null|package|private|protected|public|return|super|switch|this|throw|try|typeof|use|var|void|while|with|dynamic|each|final|get|include|namespace|native|override|set|static)\\b/,\n operator: /\\+\\+|--|(?:[+\\-*\\/%^]|&&?|\\|\\|?|<<?|>>?>?|[!=]=?)=?|[~?@]/\n })\n Prism.languages.actionscript['class-name'].alias = 'function'\n if (Prism.languages.markup) {\n Prism.languages.insertBefore('actionscript', 'string', {\n xml: {\n pattern: /(^|[^.])<\\/?\\w+(?:\\s+[^\\s>\\/=]+=(\"|')(?:\\\\[\\s\\S]|(?!\\2)[^\\\\])*\\2)*\\s*\\/?>/,\n lookbehind: true,\n inside: Prism.languages.markup\n }\n })\n }\n}\n","'use strict'\n\nmodule.exports = ada\nada.displayName = 'ada'\nada.aliases = []\nfunction ada(Prism) {\n Prism.languages.ada = {\n comment: /--.*/,\n string: /\"(?:\"\"|[^\"\\r\\f\\n])*\"/i,\n number: [\n {\n pattern: /\\b\\d(?:_?\\d)*#[\\dA-F](?:_?[\\dA-F])*(?:\\.[\\dA-F](?:_?[\\dA-F])*)?#(?:E[+-]?\\d(?:_?\\d)*)?/i\n },\n {\n pattern: /\\b\\d(?:_?\\d)*(?:\\.\\d(?:_?\\d)*)?(?:E[+-]?\\d(?:_?\\d)*)?\\b/i\n }\n ],\n 'attr-name': /\\b'\\w+/i,\n keyword: /\\b(?:abort|abs|abstract|accept|access|aliased|all|and|array|at|begin|body|case|constant|declare|delay|delta|digits|do|else|new|return|elsif|end|entry|exception|exit|for|function|generic|goto|if|in|interface|is|limited|loop|mod|not|null|of|others|out|overriding|package|pragma|private|procedure|protected|raise|range|record|rem|renames|requeue|reverse|select|separate|some|subtype|synchronized|tagged|task|terminate|then|type|until|use|when|while|with|xor)\\b/i,\n boolean: /\\b(?:true|false)\\b/i,\n operator: /<[=>]?|>=?|=>?|:=|\\/=?|\\*\\*?|[&+-]/,\n punctuation: /\\.\\.?|[,;():]/,\n char: /'.'/,\n variable: /\\b[a-z](?:[_a-z\\d])*\\b/i\n }\n}\n","'use strict'\n\nmodule.exports = agda\nagda.displayName = 'agda'\nagda.aliases = []\nfunction agda(Prism) {\n ;(function (Prism) {\n Prism.languages.agda = {\n comment: /\\{-[\\s\\S]*?(?:-\\}|$)|--.*/,\n string: {\n pattern: /\"(?:\\\\(?:\\r\\n|[\\s\\S])|[^\\\\\\r\\n\"])*\"/,\n greedy: true\n },\n punctuation: /[(){}⦃⦄.;@]/,\n 'class-name': {\n pattern: /((?:data|record) +)\\S+/,\n lookbehind: true\n },\n function: {\n pattern: /(^[ \\t]*)(?!\\s)[^:\\r\\n]+(?=:)/m,\n lookbehind: true\n },\n operator: {\n pattern: /(^\\s*|\\s)(?:[=|:∀→λ\\\\?_]|->)(?=\\s)/,\n lookbehind: true\n },\n keyword: /\\b(?:Set|abstract|constructor|data|eta-equality|field|forall|forall|hiding|import|in|inductive|infix|infixl|infixr|instance|let|macro|module|mutual|no-eta-equality|open|overlap|pattern|postulate|primitive|private|public|quote|quoteContext|quoteGoal|quoteTerm|record|renaming|rewrite|syntax|tactic|unquote|unquoteDecl|unquoteDef|using|variable|where|with)\\b/\n }\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = al\nal.displayName = 'al'\nal.aliases = []\nfunction al(Prism) {\n // based on https://github.com/microsoft/AL/blob/master/grammar/alsyntax.tmlanguage\n Prism.languages.al = {\n comment: /\\/\\/.*|\\/\\*[\\s\\S]*?\\*\\//,\n string: {\n pattern: /'(?:''|[^'\\r\\n])*'(?!')|\"(?:\"\"|[^\"\\r\\n])*\"(?!\")/,\n greedy: true\n },\n function: {\n pattern: /(\\b(?:event|procedure|trigger)\\s+|(?:^|[^.])\\.\\s*)[a-z_]\\w*(?=\\s*\\()/i,\n lookbehind: true\n },\n keyword: [\n // keywords\n /\\b(?: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/i, // objects and metadata that are used like keywords\n /\\b(?:action|actions|addafter|addbefore|addfirst|addlast|area|assembly|chartpart|codeunit|column|controladdin|cuegroup|customizes|dataitem|dataset|dotnet|elements|enum|enumextension|extends|field|fieldattribute|fieldelement|fieldgroup|fieldgroups|fields|filter|fixed|grid|group|key|keys|label|labels|layout|modify|moveafter|movebefore|movefirst|movelast|page|pagecustomization|pageextension|part|profile|query|repeater|report|requestpage|schema|separator|systempart|table|tableelement|tableextension|textattribute|textelement|type|usercontrol|value|xmlport)\\b/i\n ],\n number: /\\b(?:0x[\\da-f]+|(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:e[+-]?\\d+)?)(?:F|U(?:LL?)?|LL?)?\\b/i,\n boolean: /\\b(?:false|true)\\b/i,\n variable: /\\b(?:Curr(?:FieldNo|Page|Report)|RequestOptionsPage|x?Rec)\\b/,\n 'class-name': /\\b(?:automation|biginteger|bigtext|blob|boolean|byte|char|clienttype|code|completiontriggererrorlevel|connectiontype|database|dataclassification|datascope|date|dateformula|datetime|decimal|defaultlayout|dialog|dictionary|dotnetassembly|dotnettypedeclaration|duration|errorinfo|errortype|executioncontext|executionmode|fieldclass|fieldref|fieldtype|file|filterpagebuilder|guid|httpclient|httpcontent|httpheaders|httprequestmessage|httpresponsemessage|instream|integer|joker|jsonarray|jsonobject|jsontoken|jsonvalue|keyref|list|moduledependencyinfo|moduleinfo|none|notification|notificationscope|objecttype|option|outstream|pageresult|record|recordid|recordref|reportformat|securityfilter|sessionsettings|tableconnectiontype|tablefilter|testaction|testfield|testfilterfield|testpage|testpermissions|testrequestpage|text|textbuilder|textconst|textencoding|time|transactionmodel|transactiontype|variant|verbosity|version|view|views|webserviceactioncontext|webserviceactionresultcode|xmlattribute|xmlattributecollection|xmlcdata|xmlcomment|xmldeclaration|xmldocument|xmldocumenttype|xmlelement|xmlnamespacemanager|xmlnametable|xmlnode|xmlnodelist|xmlprocessinginstruction|xmlreadoptions|xmltext|xmlwriteoptions)\\b/i,\n operator: /\\.\\.|:[=:]|[-+*/]=?|<>|[<>]=?|=|\\b(?:and|div|mod|not|or|xor)\\b/i,\n punctuation: /[()\\[\\]{}:.;,]/\n }\n}\n","'use strict'\n\nmodule.exports = antlr4\nantlr4.displayName = 'antlr4'\nantlr4.aliases = ['g4']\nfunction antlr4(Prism) {\n Prism.languages.antlr4 = {\n comment: /\\/\\/.*|\\/\\*[\\s\\S]*?(?:\\*\\/|$)/,\n string: {\n pattern: /'(?:\\\\.|[^\\\\'\\r\\n])*'/,\n greedy: true\n },\n 'character-class': {\n pattern: /\\[(?:\\\\.|[^\\\\\\]\\r\\n])*\\]/,\n greedy: true,\n alias: 'regex',\n inside: {\n range: {\n pattern: /([^[]|(?:^|[^\\\\])(?:\\\\\\\\)*\\\\\\[)-(?!\\])/,\n lookbehind: true,\n alias: 'punctuation'\n },\n escape: /\\\\(?:u(?:[a-fA-F\\d]{4}|\\{[a-fA-F\\d]+\\})|[pP]\\{[=\\w-]+\\}|[^\\r\\nupP])/,\n punctuation: /[\\[\\]]/\n }\n },\n action: {\n pattern: /\\{(?:[^{}]|\\{(?:[^{}]|\\{(?:[^{}]|\\{[^{}]*\\})*\\})*\\})*\\}/,\n greedy: true,\n inside: {\n content: {\n // this might be C, C++, Python, Java, C#, or any other language ANTLR4 compiles to\n pattern: /(\\{)[\\s\\S]+(?=\\})/,\n lookbehind: true\n },\n punctuation: /[{}]/\n }\n },\n command: {\n pattern: /(->\\s*(?!\\s))(?:\\s*(?:,\\s*)?\\b[a-z]\\w*(?:\\s*\\([^()\\r\\n]*\\))?)+(?=\\s*;)/i,\n lookbehind: true,\n inside: {\n function: /\\b\\w+(?=\\s*(?:[,(]|$))/,\n punctuation: /[,()]/\n }\n },\n annotation: {\n pattern: /@\\w+(?:::\\w+)*/,\n alias: 'keyword'\n },\n label: {\n pattern: /#[ \\t]*\\w+/,\n alias: 'punctuation'\n },\n keyword: /\\b(?:catch|channels|finally|fragment|grammar|import|lexer|locals|mode|options|parser|returns|throws|tokens)\\b/,\n definition: [\n {\n pattern: /\\b[a-z]\\w*(?=\\s*:)/,\n alias: ['rule', 'class-name']\n },\n {\n pattern: /\\b[A-Z]\\w*(?=\\s*:)/,\n alias: ['token', 'constant']\n }\n ],\n constant: /\\b[A-Z][A-Z_]*\\b/,\n operator: /\\.\\.|->|[|~]|[*+?]\\??/,\n punctuation: /[;:()=]/\n }\n Prism.languages.g4 = Prism.languages.antlr4\n}\n","'use strict'\n\nmodule.exports = apacheconf\napacheconf.displayName = 'apacheconf'\napacheconf.aliases = []\nfunction apacheconf(Prism) {\n Prism.languages.apacheconf = {\n comment: /#.*/,\n 'directive-inline': {\n pattern: /(^\\s*)\\b(?:AcceptFilter|AcceptPathInfo|AccessFileName|Action|Add(?:Alt|AltByEncoding|AltByType|Charset|DefaultCharset|Description|Encoding|Handler|Icon|IconByEncoding|IconByType|InputFilter|Language|ModuleInfo|OutputFilter|OutputFilterByType|Type)|Alias|AliasMatch|Allow(?:CONNECT|EncodedSlashes|Methods|Override|OverrideList)?|Anonymous(?:_LogEmail|_MustGiveEmail|_NoUserID|_VerifyEmail)?|AsyncRequestWorkerFactor|Auth(?:BasicAuthoritative|BasicFake|BasicProvider|BasicUseDigestAlgorithm|DBDUserPWQuery|DBDUserRealmQuery|DBMGroupFile|DBMType|DBMUserFile|Digest(?:Algorithm|Domain|NonceLifetime|Provider|Qop|ShmemSize)|Form(?:Authoritative|Body|DisableNoStore|FakeBasicAuth|Location|LoginRequiredLocation|LoginSuccessLocation|LogoutLocation|Method|Mimetype|Password|Provider|SitePassphrase|Size|Username)|GroupFile|LDAP(?:AuthorizePrefix|BindAuthoritative|BindDN|BindPassword|CharsetConfig|CompareAsUser|CompareDNOnServer|DereferenceAliases|GroupAttribute|GroupAttributeIsDN|InitialBindAsUser|InitialBindPattern|MaxSubGroupDepth|RemoteUserAttribute|RemoteUserIsDN|SearchAsUser|SubGroupAttribute|SubGroupClass|Url)|Merging|Name|Type|UserFile|nCache(?:Context|Enable|ProvideFor|SOCache|Timeout)|nzFcgiCheckAuthnProvider|nzFcgiDefineProvider|zDBDLoginToReferer|zDBDQuery|zDBDRedirectQuery|zDBMType|zSendForbiddenOnFailure)|BalancerGrowth|BalancerInherit|BalancerMember|BalancerPersist|BrowserMatch|BrowserMatchNoCase|BufferSize|BufferedLogs|CGIDScriptTimeout|CGIMapExtension|Cache(?:DefaultExpire|DetailHeader|DirLength|DirLevels|Disable|Enable|File|Header|IgnoreCacheControl|IgnoreHeaders|IgnoreNoLastMod|IgnoreQueryString|IgnoreURLSessionIdentifiers|KeyBaseURL|LastModifiedFactor|Lock|LockMaxAge|LockPath|MaxExpire|MaxFileSize|MinExpire|MinFileSize|NegotiatedDocs|QuickHandler|ReadSize|ReadTime|Root|Socache(?:MaxSize|MaxTime|MinTime|ReadSize|ReadTime)?|StaleOnError|StoreExpired|StoreNoStore|StorePrivate)|CharsetDefault|CharsetOptions|CharsetSourceEnc|CheckCaseOnly|CheckSpelling|ChrootDir|ContentDigest|CookieDomain|CookieExpires|CookieName|CookieStyle|CookieTracking|CoreDumpDirectory|CustomLog|DBDExptime|DBDInitSQL|DBDKeep|DBDMax|DBDMin|DBDParams|DBDPersist|DBDPrepareSQL|DBDriver|DTracePrivileges|Dav|DavDepthInfinity|DavGenericLockDB|DavLockDB|DavMinTimeout|DefaultIcon|DefaultLanguage|DefaultRuntimeDir|DefaultType|Define|Deflate(?:BufferSize|CompressionLevel|FilterNote|InflateLimitRequestBody|InflateRatio(?:Burst|Limit)|MemLevel|WindowSize)|Deny|DirectoryCheckHandler|DirectoryIndex|DirectoryIndexRedirect|DirectorySlash|DocumentRoot|DumpIOInput|DumpIOOutput|EnableExceptionHook|EnableMMAP|EnableSendfile|Error|ErrorDocument|ErrorLog|ErrorLogFormat|Example|ExpiresActive|ExpiresByType|ExpiresDefault|ExtFilterDefine|ExtFilterOptions|ExtendedStatus|FallbackResource|FileETag|FilterChain|FilterDeclare|FilterProtocol|FilterProvider|FilterTrace|ForceLanguagePriority|ForceType|ForensicLog|GprofDir|GracefulShutdownTimeout|Group|Header|HeaderName|Heartbeat(?:Address|Listen|MaxServers|Storage)|HostnameLookups|ISAPI(?:AppendLogToErrors|AppendLogToQuery|CacheFile|FakeAsync|LogNotSupported|ReadAheadBuffer)|IdentityCheck|IdentityCheckTimeout|ImapBase|ImapDefault|ImapMenu|Include|IncludeOptional|Index(?:HeadInsert|Ignore|IgnoreReset|Options|OrderDefault|StyleSheet)|InputSed|KeepAlive|KeepAliveTimeout|KeptBodySize|LDAP(?:CacheEntries|CacheTTL|ConnectionPoolTTL|ConnectionTimeout|LibraryDebug|OpCacheEntries|OpCacheTTL|ReferralHopLimit|Referrals|Retries|RetryDelay|SharedCacheFile|SharedCacheSize|Timeout|TrustedClientCert|TrustedGlobalCert|TrustedMode|VerifyServerCert)|LanguagePriority|Limit(?:InternalRecursion|Request(?:Body|FieldSize|Fields|Line)|XMLRequestBody)|Listen|ListenBackLog|LoadFile|LoadModule|LogFormat|LogLevel|LogMessage|LuaAuthzProvider|LuaCodeCache|Lua(?:Hook(?:AccessChecker|AuthChecker|CheckUserID|Fixups|InsertFilter|Log|MapToStorage|TranslateName|TypeChecker)|Inherit|InputFilter|MapHandler|OutputFilter|PackageCPath|PackagePath|QuickHandler|Root|Scope)|MMapFile|Max(?:ConnectionsPerChild|KeepAliveRequests|MemFree|RangeOverlaps|RangeReversals|Ranges|RequestWorkers|SpareServers|SpareThreads|Threads)|MergeTrailers|MetaDir|MetaFiles|MetaSuffix|MimeMagicFile|MinSpareServers|MinSpareThreads|ModMimeUsePathInfo|ModemStandard|MultiviewsMatch|Mutex|NWSSLTrustedCerts|NWSSLUpgradeable|NameVirtualHost|NoProxy|Options|Order|OutputSed|PassEnv|PidFile|PrivilegesMode|Protocol|ProtocolEcho|Proxy(?:AddHeaders|BadHeader|Block|Domain|ErrorOverride|ExpressDBMFile|ExpressDBMType|ExpressEnable|FtpDirCharset|FtpEscapeWildcards|FtpListOnWildcard|HTML(?:BufSize|CharsetOut|DocType|Enable|Events|Extended|Fixups|Interp|Links|Meta|StripComments|URLMap)|IOBufferSize|MaxForwards|Pass(?:Inherit|InterpolateEnv|Match|Reverse|ReverseCookieDomain|ReverseCookiePath)?|PreserveHost|ReceiveBufferSize|Remote|RemoteMatch|Requests|SCGIInternalRedirect|SCGISendfile|Set|SourceAddress|Status|Timeout|Via)|RLimitCPU|RLimitMEM|RLimitNPROC|ReadmeName|ReceiveBufferSize|Redirect|RedirectMatch|RedirectPermanent|RedirectTemp|ReflectorHeader|RemoteIP(?:Header|InternalProxy|InternalProxyList|ProxiesHeader|TrustedProxy|TrustedProxyList)|RemoveCharset|RemoveEncoding|RemoveHandler|RemoveInputFilter|RemoveLanguage|RemoveOutputFilter|RemoveType|RequestHeader|RequestReadTimeout|Require|Rewrite(?:Base|Cond|Engine|Map|Options|Rule)|SSIETag|SSIEndTag|SSIErrorMsg|SSILastModified|SSILegacyExprParser|SSIStartTag|SSITimeFormat|SSIUndefinedEcho|SSL(?:CACertificateFile|CACertificatePath|CADNRequestFile|CADNRequestPath|CARevocationCheck|CARevocationFile|CARevocationPath|CertificateChainFile|CertificateFile|CertificateKeyFile|CipherSuite|Compression|CryptoDevice|Engine|FIPS|HonorCipherOrder|InsecureRenegotiation|OCSP(?:DefaultResponder|Enable|OverrideResponder|ResponderTimeout|ResponseMaxAge|ResponseTimeSkew|UseRequestNonce)|OpenSSLConfCmd|Options|PassPhraseDialog|Protocol|Proxy(?:CACertificateFile|CACertificatePath|CARevocation(?:Check|File|Path)|CheckPeer(?:CN|Expire|Name)|CipherSuite|Engine|MachineCertificate(?:ChainFile|File|Path)|Protocol|Verify|VerifyDepth)|RandomSeed|RenegBufferSize|Require|RequireSSL|SRPUnknownUserSeed|SRPVerifierFile|Session(?:Cache|CacheTimeout|TicketKeyFile|Tickets)|Stapling(?:Cache|ErrorCacheTimeout|FakeTryLater|ForceURL|ResponderTimeout|ResponseMaxAge|ResponseTimeSkew|ReturnResponderErrors|StandardCacheTimeout)|StrictSNIVHostCheck|UseStapling|UserName|VerifyClient|VerifyDepth)|Satisfy|ScoreBoardFile|Script(?:Alias|AliasMatch|InterpreterSource|Log|LogBuffer|LogLength|Sock)?|SecureListen|SeeRequestTail|SendBufferSize|Server(?:Admin|Alias|Limit|Name|Path|Root|Signature|Tokens)|Session(?:Cookie(?:Name|Name2|Remove)|Crypto(?:Cipher|Driver|Passphrase|PassphraseFile)|DBD(?:CookieName|CookieName2|CookieRemove|DeleteLabel|InsertLabel|PerUser|SelectLabel|UpdateLabel)|Env|Exclude|Header|Include|MaxAge)?|SetEnv|SetEnvIf|SetEnvIfExpr|SetEnvIfNoCase|SetHandler|SetInputFilter|SetOutputFilter|StartServers|StartThreads|Substitute|Suexec|SuexecUserGroup|ThreadLimit|ThreadStackSize|ThreadsPerChild|TimeOut|TraceEnable|TransferLog|TypesConfig|UnDefine|UndefMacro|UnsetEnv|Use|UseCanonicalName|UseCanonicalPhysicalPort|User|UserDir|VHostCGIMode|VHostCGIPrivs|VHostGroup|VHostPrivs|VHostSecure|VHostUser|Virtual(?:DocumentRoot|ScriptAlias)(?:IP)?|WatchdogInterval|XBitHack|xml2EncAlias|xml2EncDefault|xml2StartParse)\\b/im,\n lookbehind: true,\n alias: 'property'\n },\n 'directive-block': {\n pattern: /<\\/?\\b(?:Auth[nz]ProviderAlias|Directory|DirectoryMatch|Else|ElseIf|Files|FilesMatch|If|IfDefine|IfModule|IfVersion|Limit|LimitExcept|Location|LocationMatch|Macro|Proxy|Require(?:All|Any|None)|VirtualHost)\\b.*>/i,\n inside: {\n 'directive-block': {\n pattern: /^<\\/?\\w+/,\n inside: {\n punctuation: /^<\\/?/\n },\n alias: 'tag'\n },\n 'directive-block-parameter': {\n pattern: /.*[^>]/,\n inside: {\n punctuation: /:/,\n string: {\n pattern: /(\"|').*\\1/,\n inside: {\n variable: /[$%]\\{?(?:\\w\\.?[-+:]?)+\\}?/\n }\n }\n },\n alias: 'attr-value'\n },\n punctuation: />/\n },\n alias: 'tag'\n },\n 'directive-flags': {\n pattern: /\\[(?:[\\w=],?)+\\]/,\n alias: 'keyword'\n },\n string: {\n pattern: /(\"|').*\\1/,\n inside: {\n variable: /[$%]\\{?(?:\\w\\.?[-+:]?)+\\}?/\n }\n },\n variable: /[$%]\\{?(?:\\w\\.?[-+:]?)+\\}?/,\n regex: /\\^?.*\\$|\\^.*\\$?/\n }\n}\n","'use strict'\nvar refractorSql = require('./sql.js')\nmodule.exports = apex\napex.displayName = 'apex'\napex.aliases = []\nfunction apex(Prism) {\n Prism.register(refractorSql)\n ;(function (Prism) {\n var keywords = /\\b(?:abstract|activate|and|any|array|as|asc|autonomous|begin|bigdecimal|blob|boolean|break|bulk|by|byte|case|cast|catch|char|class|collect|commit|const|continue|currency|date|datetime|decimal|default|delete|desc|do|double|else|end|enum|exception|exit|export|extends|final|finally|float|for|from|global|goto|group|having|hint|if|implements|import|in|inner|insert|instanceof|int|integer|interface|into|join|like|limit|list|long|loop|map|merge|new|not|null|nulls|number|object|of|on|or|outer|override|package|parallel|pragma|private|protected|public|retrieve|return|rollback|select|set|short|sObject|sort|static|string|super|switch|synchronized|system|testmethod|then|this|throw|time|transaction|transient|trigger|try|undelete|update|upsert|using|virtual|void|webservice|when|where|while|get(?=\\s*[{};])|(?:after|before)(?=\\s+[a-z])|(?:inherited|with|without)\\s+sharing)\\b/i\n var className = /\\b(?:(?=[a-z_]\\w*\\s*[<\\[])|(?!<keyword>))[A-Z_]\\w*(?:\\s*\\.\\s*[A-Z_]\\w*)*\\b(?:\\s*(?:\\[\\s*\\]|<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>))*/.source.replace(\n /<keyword>/g,\n function () {\n return keywords.source\n }\n )\n /** @param {string} pattern */\n function insertClassName(pattern) {\n return RegExp(\n pattern.replace(/<CLASS-NAME>/g, function () {\n return className\n }),\n 'i'\n )\n }\n var classNameInside = {\n keyword: keywords,\n punctuation: /[()\\[\\]{};,:.<>]/\n }\n Prism.languages.apex = {\n comment: Prism.languages.clike.comment,\n string: Prism.languages.clike.string,\n sql: {\n pattern: /((?:[=,({:]|\\breturn)\\s*)\\[[^\\[\\]]*\\]/i,\n lookbehind: true,\n greedy: true,\n alias: 'language-sql',\n inside: Prism.languages.sql\n },\n annotation: {\n pattern: /@\\w+\\b/,\n alias: 'punctuation'\n },\n 'class-name': [\n {\n pattern: insertClassName(\n /(\\b(?:class|enum|extends|implements|instanceof|interface|new|trigger\\s+\\w+\\s+on)\\s+)<CLASS-NAME>/\n .source\n ),\n lookbehind: true,\n inside: classNameInside\n },\n {\n // cast\n pattern: insertClassName(\n /(\\(\\s*)<CLASS-NAME>(?=\\s*\\)\\s*[\\w(])/.source\n ),\n lookbehind: true,\n inside: classNameInside\n },\n {\n // variable/parameter declaration and return types\n pattern: insertClassName(/<CLASS-NAME>(?=\\s*\\w+\\s*[;=,(){:])/.source),\n inside: classNameInside\n }\n ],\n trigger: {\n pattern: /(\\btrigger\\s+)\\w+\\b/i,\n lookbehind: true,\n alias: 'class-name'\n },\n keyword: keywords,\n function: /\\b[a-z_]\\w*(?=\\s*\\()/i,\n boolean: /\\b(?:false|true)\\b/i,\n number: /(?:\\B\\.\\d+|\\b\\d+(?:\\.\\d+|L)?)\\b/i,\n operator: /[!=](?:==?)?|\\?\\.?|&&|\\|\\||--|\\+\\+|[-+*/^&|]=?|:|<<?=?|>{1,3}=?/,\n punctuation: /[()\\[\\]{};,.]/\n }\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = apl\napl.displayName = 'apl'\napl.aliases = []\nfunction apl(Prism) {\n Prism.languages.apl = {\n comment: /(?:⍝|#[! ]).*$/m,\n string: {\n pattern: /'(?:[^'\\r\\n]|'')*'/,\n greedy: true\n },\n number: /¯?(?:\\d*\\.?\\b\\d+(?:e[+¯]?\\d+)?|¯|∞)(?:j¯?(?:(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:e[+¯]?\\d+)?|¯|∞))?/i,\n statement: /:[A-Z][a-z][A-Za-z]*\\b/,\n 'system-function': {\n pattern: /⎕[A-Z]+/i,\n alias: 'function'\n },\n constant: /[⍬⌾#⎕⍞]/,\n function: /[-+×÷⌈⌊∣|⍳⍸?*⍟○!⌹<≤=>≥≠≡≢∊⍷∪∩~∨∧⍱⍲⍴,⍪⌽⊖⍉↑↓⊂⊃⊆⊇⌷⍋⍒⊤⊥⍕⍎⊣⊢⍁⍂≈⍯↗¤→]/,\n 'monadic-operator': {\n pattern: /[\\\\\\/⌿⍀¨⍨⌶&∥]/,\n alias: 'operator'\n },\n 'dyadic-operator': {\n pattern: /[.⍣⍠⍤∘⌸@⌺⍥]/,\n alias: 'operator'\n },\n assignment: {\n pattern: /←/,\n alias: 'keyword'\n },\n punctuation: /[\\[;\\]()◇⋄]/,\n dfn: {\n pattern: /[{}⍺⍵⍶⍹∇⍫:]/,\n alias: 'builtin'\n }\n }\n}\n","'use strict'\n\nmodule.exports = applescript\napplescript.displayName = 'applescript'\napplescript.aliases = []\nfunction applescript(Prism) {\n Prism.languages.applescript = {\n comment: [\n // Allow one level of nesting\n /\\(\\*(?:\\(\\*(?:[^*]|\\*(?!\\)))*\\*\\)|(?!\\(\\*)[\\s\\S])*?\\*\\)/,\n /--.+/,\n /#.+/\n ],\n string: /\"(?:\\\\.|[^\"\\\\\\r\\n])*\"/,\n number: /(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e-?\\d+)?\\b/i,\n operator: [\n /[&=≠≤≥*+\\-\\/÷^]|[<>]=?/,\n /\\b(?:(?:start|begin|end)s? with|(?:(?:does not|doesn't) contain|contains?)|(?:is|isn't|is not) (?:in|contained by)|(?:(?:is|isn't|is not) )?(?:greater|less) than(?: or equal)?(?: to)?|(?:(?:does not|doesn't) come|comes) (?:before|after)|(?:is|isn't|is not) equal(?: to)?|(?:(?:does not|doesn't) equal|equals|equal to|isn't|is not)|(?:a )?(?:ref(?: to)?|reference to)|(?:and|or|div|mod|as|not))\\b/\n ],\n keyword: /\\b(?:about|above|after|against|apart from|around|aside from|at|back|before|beginning|behind|below|beneath|beside|between|but|by|considering|continue|copy|does|eighth|else|end|equal|error|every|exit|false|fifth|first|for|fourth|from|front|get|given|global|if|ignoring|in|instead of|into|is|it|its|last|local|me|middle|my|ninth|of|on|onto|out of|over|prop|property|put|repeat|return|returning|second|set|seventh|since|sixth|some|tell|tenth|that|the|then|third|through|thru|timeout|times|to|transaction|true|try|until|where|while|whose|with|without)\\b/,\n class: {\n pattern: /\\b(?:alias|application|boolean|class|constant|date|file|integer|list|number|POSIX file|real|record|reference|RGB color|script|text|centimetres|centimeters|feet|inches|kilometres|kilometers|metres|meters|miles|yards|square feet|square kilometres|square kilometers|square metres|square meters|square miles|square yards|cubic centimetres|cubic centimeters|cubic feet|cubic inches|cubic metres|cubic meters|cubic yards|gallons|litres|liters|quarts|grams|kilograms|ounces|pounds|degrees Celsius|degrees Fahrenheit|degrees Kelvin)\\b/,\n alias: 'builtin'\n },\n punctuation: /[{}():,¬«»《》]/\n }\n}\n","'use strict'\n\nmodule.exports = aql\naql.displayName = 'aql'\naql.aliases = []\nfunction aql(Prism) {\n Prism.languages.aql = {\n comment: /\\/\\/.*|\\/\\*[\\s\\S]*?\\*\\//,\n property: {\n pattern: /([{,]\\s*)(?:(?!\\d)\\w+|([\"'´`])(?:(?!\\2)[^\\\\\\r\\n]|\\\\.)*\\2)(?=\\s*:)/,\n lookbehind: true,\n greedy: true\n },\n string: {\n pattern: /([\"'´`])(?:(?!\\1)[^\\\\\\r\\n]|\\\\.)*\\1/,\n greedy: true\n },\n variable: /@@?\\w+/,\n keyword: [\n {\n pattern: /(\\bWITH\\s+)COUNT(?=\\s+INTO\\b)/i,\n lookbehind: true\n },\n /\\b(?:AGGREGATE|ALL|AND|ANY|ASC|COLLECT|DESC|DISTINCT|FILTER|FOR|GRAPH|IN|INBOUND|INSERT|INTO|K_SHORTEST_PATHS|LET|LIKE|LIMIT|NONE|NOT|NULL|OR|OUTBOUND|REMOVE|REPLACE|RETURN|SHORTEST_PATH|SORT|UPDATE|UPSERT|WITH)\\b/i, // pseudo keywords get a lookbehind to avoid false positives\n {\n pattern: /(^|[^\\w.[])(?:KEEP|PRUNE|SEARCH|TO)\\b/i,\n lookbehind: true\n },\n {\n pattern: /(^|[^\\w.[])(?:CURRENT|NEW|OLD)\\b/,\n lookbehind: true\n },\n {\n pattern: /\\bOPTIONS(?=\\s*{)/i\n }\n ],\n function: /(?!\\d)\\w+(?=\\s*\\()/,\n boolean: /(?:true|false)/i,\n range: {\n pattern: /\\.\\./,\n alias: 'operator'\n },\n number: /(?:\\B\\.\\d+|\\b(?:0|[1-9]\\d*)(?:\\.\\d+)?)(?:e[+-]?\\d+)?/i,\n operator: /\\*{2,}|[=!]~|[!=<>]=?|&&|\\|\\||[-+*/%]/,\n punctuation: /::|[?.:,;()[\\]{}]/\n }\n}\n","'use strict'\nvar refractorCpp = require('./cpp.js')\nmodule.exports = arduino\narduino.displayName = 'arduino'\narduino.aliases = []\nfunction arduino(Prism) {\n Prism.register(refractorCpp)\n Prism.languages.arduino = Prism.languages.extend('cpp', {\n constant: /\\b(?:DIGITAL_MESSAGE|FIRMATA_STRING|ANALOG_MESSAGE|REPORT_DIGITAL|REPORT_ANALOG|INPUT_PULLUP|SET_PIN_MODE|INTERNAL2V56|SYSTEM_RESET|LED_BUILTIN|INTERNAL1V1|SYSEX_START|INTERNAL|EXTERNAL|DEFAULT|OUTPUT|INPUT|HIGH|LOW)\\b/,\n keyword: /\\b(?:setup|if|else|while|do|for|return|in|instanceof|default|function|loop|goto|switch|case|new|try|throw|catch|finally|null|break|continue|boolean|bool|void|byte|word|string|String|array|int|long|integer|double)\\b/,\n builtin: /\\b(?:KeyboardController|MouseController|SoftwareSerial|EthernetServer|EthernetClient|LiquidCrystal|LiquidCrystal_I2C|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|runShellCommandAsynchronously|analogWriteResolution|retrieveCallingNumber|printFirmwareVersion|analogReadResolution|sendDigitalPortPair|noListenOnLocalhost|readJoystickButton|setFirmwareVersion|readJoystickSwitch|scrollDisplayRight|getVoiceCallStatus|scrollDisplayLeft|writeMicroseconds|delayMicroseconds|beginTransmission|getSignalStrength|runAsynchronously|getAsynchronously|listenOnLocalhost|getCurrentCarrier|readAccelerometer|messageAvailable|sendDigitalPorts|lineFollowConfig|countryNameWrite|runShellCommand|readStringUntil|rewindDirectory|readTemperature|setClockDivider|readLightSensor|endTransmission|analogReference|detachInterrupt|countryNameRead|attachInterrupt|encryptionType|readBytesUntil|robotNameWrite|readMicrophone|robotNameRead|cityNameWrite|userNameWrite|readJoystickY|readJoystickX|mouseReleased|openNextFile|scanNetworks|noInterrupts|digitalWrite|beginSpeaker|mousePressed|isActionDone|mouseDragged|displayLogos|noAutoscroll|addParameter|remoteNumber|getModifiers|keyboardRead|userNameRead|waitContinue|processInput|parseCommand|printVersion|readNetworks|writeMessage|blinkVersion|cityNameRead|readMessage|setDataMode|parsePacket|isListening|setBitOrder|beginPacket|isDirectory|motorsWrite|drawCompass|digitalRead|clearScreen|serialEvent|rightToLeft|setTextSize|leftToRight|requestFrom|keyReleased|compassRead|analogWrite|interrupts|WiFiServer|disconnect|playMelody|parseFloat|autoscroll|getPINUsed|setPINUsed|setTimeout|sendAnalog|readSlider|analogRead|beginWrite|createChar|motorsStop|keyPressed|tempoWrite|readButton|subnetMask|debugPrint|macAddress|writeGreen|randomSeed|attachGPRS|readString|sendString|remotePort|releaseAll|mouseMoved|background|getXChange|getYChange|answerCall|getResult|voiceCall|endPacket|constrain|getSocket|writeJSON|getButton|available|connected|findUntil|readBytes|exitValue|readGreen|writeBlue|startLoop|isPressed|sendSysex|pauseMode|gatewayIP|setCursor|getOemKey|tuneWrite|noDisplay|loadImage|switchPIN|onRequest|onReceive|changePIN|playFile|noBuffer|parseInt|overflow|checkPIN|knobRead|beginTFT|bitClear|updateIR|bitWrite|position|writeRGB|highByte|writeRed|setSpeed|readBlue|noStroke|remoteIP|transfer|shutdown|hangCall|beginSMS|endWrite|attached|maintain|noCursor|checkReg|checkPUK|shiftOut|isValid|shiftIn|pulseIn|connect|println|localIP|pinMode|getIMEI|display|noBlink|process|getBand|running|beginSD|drawBMP|lowByte|setBand|release|bitRead|prepare|pointTo|readRed|setMode|noFill|remove|listen|stroke|detach|attach|noTone|exists|buffer|height|bitSet|circle|config|cursor|random|IRread|setDNS|endSMS|getKey|micros|millis|begin|print|write|ready|flush|width|isPIN|blink|clear|press|mkdir|rmdir|close|point|yield|image|BSSID|click|delay|read|text|move|peek|beep|rect|line|open|seek|fill|size|turn|stop|home|find|step|tone|sqrt|RSSI|SSID|end|bit|tan|cos|sin|pow|map|abs|max|min|get|run|put)\\b/\n })\n}\n","'use strict'\n\nmodule.exports = arff\narff.displayName = 'arff'\narff.aliases = []\nfunction arff(Prism) {\n Prism.languages.arff = {\n comment: /%.*/,\n string: {\n pattern: /([\"'])(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n greedy: true\n },\n keyword: /@(?:attribute|data|end|relation)\\b/i,\n number: /\\b\\d+(?:\\.\\d+)?\\b/,\n punctuation: /[{},]/\n }\n}\n","'use strict'\n\nmodule.exports = asciidoc\nasciidoc.displayName = 'asciidoc'\nasciidoc.aliases = ['adoc']\nfunction asciidoc(Prism) {\n ;(function (Prism) {\n var attributes = {\n pattern: /(^[ \\t]*)\\[(?!\\[)(?:([\"'$`])(?:(?!\\2)[^\\\\]|\\\\.)*\\2|\\[(?:[^\\[\\]\\\\]|\\\\.)*\\]|[^\\[\\]\\\\\"'$`]|\\\\.)*\\]/m,\n lookbehind: true,\n inside: {\n quoted: {\n pattern: /([$`])(?:(?!\\1)[^\\\\]|\\\\.)*\\1/,\n inside: {\n punctuation: /^[$`]|[$`]$/\n }\n },\n interpreted: {\n pattern: /'(?:[^'\\\\]|\\\\.)*'/,\n inside: {\n punctuation: /^'|'$/ // See rest below\n }\n },\n string: /\"(?:[^\"\\\\]|\\\\.)*\"/,\n variable: /\\w+(?==)/,\n punctuation: /^\\[|\\]$|,/,\n operator: /=/,\n // The negative look-ahead prevents blank matches\n 'attr-value': /(?!^\\s+$).+/\n }\n }\n var asciidoc = (Prism.languages.asciidoc = {\n 'comment-block': {\n pattern: /^(\\/{4,})(?:\\r?\\n|\\r)(?:[\\s\\S]*(?:\\r?\\n|\\r))??\\1/m,\n alias: 'comment'\n },\n table: {\n pattern: /^\\|={3,}(?:(?:\\r?\\n|\\r(?!\\n)).*)*?(?:\\r?\\n|\\r)\\|={3,}$/m,\n inside: {\n specifiers: {\n pattern: /(?!\\|)(?:(?:(?:\\d+(?:\\.\\d+)?|\\.\\d+)[+*])?(?:[<^>](?:\\.[<^>])?|\\.[<^>])?[a-z]*)(?=\\|)/,\n alias: 'attr-value'\n },\n punctuation: {\n pattern: /(^|[^\\\\])[|!]=*/,\n lookbehind: true\n } // See rest below\n }\n },\n 'passthrough-block': {\n pattern: /^(\\+{4,})(?:\\r?\\n|\\r)(?:[\\s\\S]*(?:\\r?\\n|\\r))??\\1$/m,\n inside: {\n punctuation: /^\\++|\\++$/ // See rest below\n }\n },\n // Literal blocks and listing blocks\n 'literal-block': {\n pattern: /^(-{4,}|\\.{4,})(?:\\r?\\n|\\r)(?:[\\s\\S]*(?:\\r?\\n|\\r))??\\1$/m,\n inside: {\n punctuation: /^(?:-+|\\.+)|(?:-+|\\.+)$/ // See rest below\n }\n },\n // Sidebar blocks, quote blocks, example blocks and open blocks\n 'other-block': {\n pattern: /^(--|\\*{4,}|_{4,}|={4,})(?:\\r?\\n|\\r)(?:[\\s\\S]*(?:\\r?\\n|\\r))??\\1$/m,\n inside: {\n punctuation: /^(?:-+|\\*+|_+|=+)|(?:-+|\\*+|_+|=+)$/ // See rest below\n }\n },\n // list-punctuation and list-label must appear before indented-block\n 'list-punctuation': {\n pattern: /(^[ \\t]*)(?:-|\\*{1,5}|\\.{1,5}|(?:[a-z]|\\d+)\\.|[xvi]+\\))(?= )/im,\n lookbehind: true,\n alias: 'punctuation'\n },\n 'list-label': {\n pattern: /(^[ \\t]*)[a-z\\d].+(?::{2,4}|;;)(?=\\s)/im,\n lookbehind: true,\n alias: 'symbol'\n },\n 'indented-block': {\n pattern: /((\\r?\\n|\\r)\\2)([ \\t]+)\\S.*(?:(?:\\r?\\n|\\r)\\3.+)*(?=\\2{2}|$)/,\n lookbehind: true\n },\n comment: /^\\/\\/.*/m,\n title: {\n pattern: /^.+(?:\\r?\\n|\\r)(?:={3,}|-{3,}|~{3,}|\\^{3,}|\\+{3,})$|^={1,5} .+|^\\.(?![\\s.]).*/m,\n alias: 'important',\n inside: {\n punctuation: /^(?:\\.|=+)|(?:=+|-+|~+|\\^+|\\++)$/ // See rest below\n }\n },\n 'attribute-entry': {\n pattern: /^:[^:\\r\\n]+:(?: .*?(?: \\+(?:\\r?\\n|\\r).*?)*)?$/m,\n alias: 'tag'\n },\n attributes: attributes,\n hr: {\n pattern: /^'{3,}$/m,\n alias: 'punctuation'\n },\n 'page-break': {\n pattern: /^<{3,}$/m,\n alias: 'punctuation'\n },\n admonition: {\n pattern: /^(?:TIP|NOTE|IMPORTANT|WARNING|CAUTION):/m,\n alias: 'keyword'\n },\n callout: [\n {\n pattern: /(^[ \\t]*)<?\\d*>/m,\n lookbehind: true,\n alias: 'symbol'\n },\n {\n pattern: /<\\d+>/,\n alias: 'symbol'\n }\n ],\n macro: {\n pattern: /\\b[a-z\\d][a-z\\d-]*::?(?:[^\\s\\[\\]]*\\[(?:[^\\]\\\\\"']|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*\\1|\\\\.)*\\])/,\n inside: {\n function: /^[a-z\\d-]+(?=:)/,\n punctuation: /^::?/,\n attributes: {\n pattern: /(?:\\[(?:[^\\]\\\\\"]|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*\\1|\\\\.)*\\])/,\n inside: attributes.inside\n }\n }\n },\n inline: {\n /*\nThe initial look-behind prevents the highlighting of escaped quoted text.\nQuoted text can be multi-line but cannot span an empty line.\nAll quoted text can have attributes before [foobar, 'foobar', baz=\"bar\"].\nFirst, we handle the constrained quotes.\nThose must be bounded by non-word chars and cannot have spaces between the delimiter and the first char.\nThey are, in order: _emphasis_, ``double quotes'', `single quotes', `monospace`, 'emphasis', *strong*, +monospace+ and #unquoted#\nThen we handle the unconstrained quotes.\nThose do not have the restrictions of the constrained quotes.\nThey are, in order: __emphasis__, **strong**, ++monospace++, +++passthrough+++, ##unquoted##, $$passthrough$$, ~subscript~, ^superscript^, {attribute-reference}, [[anchor]], [[[bibliography anchor]]], <<xref>>, (((indexes))) and ((indexes))\n*/\n pattern: /(^|[^\\\\])(?:(?:\\B\\[(?:[^\\]\\\\\"]|([\"'])(?:(?!\\2)[^\\\\]|\\\\.)*\\2|\\\\.)*\\])?(?:\\b_(?!\\s)(?: _|[^_\\\\\\r\\n]|\\\\.)+(?:(?:\\r?\\n|\\r)(?: _|[^_\\\\\\r\\n]|\\\\.)+)*_\\b|\\B``(?!\\s).+?(?:(?:\\r?\\n|\\r).+?)*''\\B|\\B`(?!\\s)(?:[^`'\\s]|\\s+\\S)+['`]\\B|\\B(['*+#])(?!\\s)(?: \\3|(?!\\3)[^\\\\\\r\\n]|\\\\.)+(?:(?:\\r?\\n|\\r)(?: \\3|(?!\\3)[^\\\\\\r\\n]|\\\\.)+)*\\3\\B)|(?:\\[(?:[^\\]\\\\\"]|([\"'])(?:(?!\\4)[^\\\\]|\\\\.)*\\4|\\\\.)*\\])?(?:(__|\\*\\*|\\+\\+\\+?|##|\\$\\$|[~^]).+?(?:(?:\\r?\\n|\\r).+?)*\\5|\\{[^}\\r\\n]+\\}|\\[\\[\\[?.+?(?:(?:\\r?\\n|\\r).+?)*\\]?\\]\\]|<<.+?(?:(?:\\r?\\n|\\r).+?)*>>|\\(\\(\\(?.+?(?:(?:\\r?\\n|\\r).+?)*\\)?\\)\\)))/m,\n lookbehind: true,\n inside: {\n attributes: attributes,\n url: {\n pattern: /^(?:\\[\\[\\[?.+?\\]?\\]\\]|<<.+?>>)$/,\n inside: {\n punctuation: /^(?:\\[\\[\\[?|<<)|(?:\\]\\]\\]?|>>)$/\n }\n },\n 'attribute-ref': {\n pattern: /^\\{.+\\}$/,\n inside: {\n variable: {\n pattern: /(^\\{)[a-z\\d,+_-]+/,\n lookbehind: true\n },\n operator: /^[=?!#%@$]|!(?=[:}])/,\n punctuation: /^\\{|\\}$|::?/\n }\n },\n italic: {\n pattern: /^(['_])[\\s\\S]+\\1$/,\n inside: {\n punctuation: /^(?:''?|__?)|(?:''?|__?)$/\n }\n },\n bold: {\n pattern: /^\\*[\\s\\S]+\\*$/,\n inside: {\n punctuation: /^\\*\\*?|\\*\\*?$/\n }\n },\n punctuation: /^(?:``?|\\+{1,3}|##?|\\$\\$|[~^]|\\(\\(\\(?)|(?:''?|\\+{1,3}|##?|\\$\\$|[~^`]|\\)?\\)\\))$/\n }\n },\n replacement: {\n pattern: /\\((?:C|TM|R)\\)/,\n alias: 'builtin'\n },\n entity: /&#?[\\da-z]{1,8};/i,\n 'line-continuation': {\n pattern: /(^| )\\+$/m,\n lookbehind: true,\n alias: 'punctuation'\n }\n }) // Allow some nesting. There is no recursion though, so cloning should not be needed.\n function copyFromAsciiDoc(keys) {\n keys = keys.split(' ')\n var o = {}\n for (var i = 0, l = keys.length; i < l; i++) {\n o[keys[i]] = asciidoc[keys[i]]\n }\n return o\n }\n attributes.inside['interpreted'].inside.rest = copyFromAsciiDoc(\n 'macro inline replacement entity'\n )\n asciidoc['passthrough-block'].inside.rest = copyFromAsciiDoc('macro')\n asciidoc['literal-block'].inside.rest = copyFromAsciiDoc('callout')\n asciidoc['table'].inside.rest = copyFromAsciiDoc(\n 'comment-block passthrough-block literal-block other-block list-punctuation indented-block comment title attribute-entry attributes hr page-break admonition list-label callout macro inline replacement entity line-continuation'\n )\n asciidoc['other-block'].inside.rest = copyFromAsciiDoc(\n 'table list-punctuation indented-block comment attribute-entry attributes hr page-break admonition list-label macro inline replacement entity line-continuation'\n )\n asciidoc['title'].inside.rest = copyFromAsciiDoc(\n 'macro inline replacement entity'\n ) // Plugin to make entity title show the real entity, idea by Roman Komarov\n Prism.hooks.add('wrap', function (env) {\n if (env.type === 'entity') {\n env.attributes['title'] = env.content.value.replace(/&amp;/, '&')\n }\n })\n Prism.languages.adoc = Prism.languages.asciidoc\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = asm6502\nasm6502.displayName = 'asm6502'\nasm6502.aliases = []\nfunction asm6502(Prism) {\n Prism.languages.asm6502 = {\n comment: /;.*/,\n directive: {\n pattern: /\\.\\w+(?= )/,\n alias: 'keyword'\n },\n string: /([\"'`])(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n opcode: {\n pattern: /\\b(?:adc|and|asl|bcc|bcs|beq|bit|bmi|bne|bpl|brk|bvc|bvs|clc|cld|cli|clv|cmp|cpx|cpy|dec|dex|dey|eor|inc|inx|iny|jmp|jsr|lda|ldx|ldy|lsr|nop|ora|pha|php|pla|plp|rol|ror|rti|rts|sbc|sec|sed|sei|sta|stx|sty|tax|tay|tsx|txa|txs|tya|ADC|AND|ASL|BCC|BCS|BEQ|BIT|BMI|BNE|BPL|BRK|BVC|BVS|CLC|CLD|CLI|CLV|CMP|CPX|CPY|DEC|DEX|DEY|EOR|INC|INX|INY|JMP|JSR|LDA|LDX|LDY|LSR|NOP|ORA|PHA|PHP|PLA|PLP|ROL|ROR|RTI|RTS|SBC|SEC|SED|SEI|STA|STX|STY|TAX|TAY|TSX|TXA|TXS|TYA)\\b/,\n alias: 'property'\n },\n hexnumber: {\n pattern: /#?\\$[\\da-f]{2,4}\\b/i,\n alias: 'string'\n },\n binarynumber: {\n pattern: /#?%[01]+\\b/,\n alias: 'string'\n },\n decimalnumber: {\n pattern: /#?\\b\\d+\\b/,\n alias: 'string'\n },\n register: {\n pattern: /\\b[xya]\\b/i,\n alias: 'variable'\n }\n }\n}\n","'use strict'\nvar refractorCsharp = require('./csharp.js')\nmodule.exports = aspnet\naspnet.displayName = 'aspnet'\naspnet.aliases = []\nfunction aspnet(Prism) {\n Prism.register(refractorCsharp)\n Prism.languages.aspnet = Prism.languages.extend('markup', {\n 'page-directive': {\n pattern: /<%\\s*@.*%>/i,\n alias: 'tag',\n inside: {\n 'page-directive': {\n pattern: /<%\\s*@\\s*(?:Assembly|Control|Implements|Import|Master(?:Type)?|OutputCache|Page|PreviousPageType|Reference|Register)?|%>/i,\n alias: 'tag'\n },\n rest: Prism.languages.markup.tag.inside\n }\n },\n directive: {\n pattern: /<%.*%>/i,\n alias: 'tag',\n inside: {\n directive: {\n pattern: /<%\\s*?[$=%#:]{0,2}|%>/i,\n alias: 'tag'\n },\n rest: Prism.languages.csharp\n }\n }\n }) // Regexp copied from prism-markup, with a negative look-ahead added\n Prism.languages.aspnet.tag.pattern = /<(?!%)\\/?[^\\s>\\/]+(?:\\s+[^\\s>\\/=]+(?:=(?:(\"|')(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1|[^\\s'\">=]+))?)*\\s*\\/?>/i // match directives of attribute value foo=\"<% Bar %>\"\n Prism.languages.insertBefore(\n 'inside',\n 'punctuation',\n {\n directive: Prism.languages.aspnet['directive']\n },\n Prism.languages.aspnet.tag.inside['attr-value']\n )\n Prism.languages.insertBefore('aspnet', 'comment', {\n 'asp-comment': {\n pattern: /<%--[\\s\\S]*?--%>/,\n alias: ['asp', 'comment']\n }\n }) // script runat=\"server\" contains csharp, not javascript\n Prism.languages.insertBefore(\n 'aspnet',\n Prism.languages.javascript ? 'script' : 'tag',\n {\n 'asp-script': {\n pattern: /(<script(?=.*runat=['\"]?server['\"]?)[^>]*>)[\\s\\S]*?(?=<\\/script>)/i,\n lookbehind: true,\n alias: ['asp', 'script'],\n inside: Prism.languages.csharp || {}\n }\n }\n )\n}\n","'use strict'\n\nmodule.exports = autohotkey\nautohotkey.displayName = 'autohotkey'\nautohotkey.aliases = []\nfunction autohotkey(Prism) {\n // NOTES - follows first-first highlight method, block is locked after highlight, different from SyntaxHl\n Prism.languages.autohotkey = {\n comment: [\n {\n pattern: /(^|\\s);.*/,\n lookbehind: true\n },\n {\n pattern: /(^\\s*)\\/\\*(?:[\\r\\n](?![ \\t]*\\*\\/)|[^\\r\\n])*(?:[\\r\\n][ \\t]*\\*\\/)?/m,\n lookbehind: true,\n greedy: true\n }\n ],\n string: /\"(?:[^\"\\n\\r]|\"\")*\"/m,\n tag: /^[ \\t]*[^\\s:]+?(?=:(?:[^:]|$))/m,\n //labels\n variable: /%\\w+%/,\n number: /\\b0x[\\dA-Fa-f]+\\b|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:[Ee]-?\\d+)?/,\n operator: /\\?|\\/\\/?=?|:=|\\|[=|]?|&[=&]?|\\+[=+]?|-[=-]?|\\*[=*]?|<(?:<=?|>|=)?|>>?=?|[.^!=~]=?|\\b(?:AND|NOT|OR)\\b/,\n boolean: /\\b(?:true|false)\\b/,\n selector: /\\b(?:AutoTrim|BlockInput|Break|Click|ClipWait|Continue|Control|ControlClick|ControlFocus|ControlGet|ControlGetFocus|ControlGetPos|ControlGetText|ControlMove|ControlSend|ControlSendRaw|ControlSetText|CoordMode|Critical|DetectHiddenText|DetectHiddenWindows|Drive|DriveGet|DriveSpaceFree|EnvAdd|EnvDiv|EnvGet|EnvMult|EnvSet|EnvSub|EnvUpdate|Exit|ExitApp|FileAppend|FileCopy|FileCopyDir|FileCreateDir|FileCreateShortcut|FileDelete|FileEncoding|FileGetAttrib|FileGetShortcut|FileGetSize|FileGetTime|FileGetVersion|FileInstall|FileMove|FileMoveDir|FileRead|FileReadLine|FileRecycle|FileRecycleEmpty|FileRemoveDir|FileSelectFile|FileSelectFolder|FileSetAttrib|FileSetTime|FormatTime|GetKeyState|Gosub|Goto|GroupActivate|GroupAdd|GroupClose|GroupDeactivate|Gui|GuiControl|GuiControlGet|Hotkey|ImageSearch|IniDelete|IniRead|IniWrite|Input|InputBox|KeyWait|ListHotkeys|ListLines|ListVars|Loop|Menu|MouseClick|MouseClickDrag|MouseGetPos|MouseMove|MsgBox|OnExit|OutputDebug|Pause|PixelGetColor|PixelSearch|PostMessage|Process|Progress|Random|RegDelete|RegRead|RegWrite|Reload|Repeat|Return|Run|RunAs|RunWait|Send|SendEvent|SendInput|SendMessage|SendMode|SendPlay|SendRaw|SetBatchLines|SetCapslockState|SetControlDelay|SetDefaultMouseSpeed|SetEnv|SetFormat|SetKeyDelay|SetMouseDelay|SetNumlockState|SetRegView|SetScrollLockState|SetStoreCapslockMode|SetTimer|SetTitleMatchMode|SetWinDelay|SetWorkingDir|Shutdown|Sleep|Sort|SoundBeep|SoundGet|SoundGetWaveVolume|SoundPlay|SoundSet|SoundSetWaveVolume|SplashImage|SplashTextOff|SplashTextOn|SplitPath|StatusBarGetText|StatusBarWait|StringCaseSense|StringGetPos|StringLeft|StringLen|StringLower|StringMid|StringReplace|StringRight|StringSplit|StringTrimLeft|StringTrimRight|StringUpper|Suspend|SysGet|Thread|ToolTip|Transform|TrayTip|URLDownloadToFile|WinActivate|WinActivateBottom|WinClose|WinGet|WinGetActiveStats|WinGetActiveTitle|WinGetClass|WinGetPos|WinGetText|WinGetTitle|WinHide|WinKill|WinMaximize|WinMenuSelectItem|WinMinimize|WinMinimizeAll|WinMinimizeAllUndo|WinMove|WinRestore|WinSet|WinSetTitle|WinShow|WinWait|WinWaitActive|WinWaitClose|WinWaitNotActive)\\b/i,\n constant: /\\b(?:a_ahkpath|a_ahkversion|a_appdata|a_appdatacommon|a_autotrim|a_batchlines|a_caretx|a_carety|a_computername|a_controldelay|a_cursor|a_dd|a_ddd|a_dddd|a_defaultmousespeed|a_desktop|a_desktopcommon|a_detecthiddentext|a_detecthiddenwindows|a_endchar|a_eventinfo|a_exitreason|a_fileencoding|a_formatfloat|a_formatinteger|a_gui|a_guievent|a_guicontrol|a_guicontrolevent|a_guiheight|a_guiwidth|a_guix|a_guiy|a_hour|a_iconfile|a_iconhidden|a_iconnumber|a_icontip|a_index|a_ipaddress1|a_ipaddress2|a_ipaddress3|a_ipaddress4|a_is64bitos|a_isadmin|a_iscompiled|a_iscritical|a_ispaused|a_issuspended|a_isunicode|a_keydelay|a_language|a_lasterror|a_linefile|a_linenumber|a_loopfield|a_loopfileattrib|a_loopfiledir|a_loopfileext|a_loopfilefullpath|a_loopfilelongpath|a_loopfilename|a_loopfileshortname|a_loopfileshortpath|a_loopfilesize|a_loopfilesizekb|a_loopfilesizemb|a_loopfiletimeaccessed|a_loopfiletimecreated|a_loopfiletimemodified|a_loopreadline|a_loopregkey|a_loopregname|a_loopregsubkey|a_loopregtimemodified|a_loopregtype|a_mday|a_min|a_mm|a_mmm|a_mmmm|a_mon|a_mousedelay|a_msec|a_mydocuments|a_now|a_nowutc|a_numbatchlines|a_ostype|a_osversion|a_priorhotkey|a_priorkey|programfiles|a_programfiles|a_programs|a_programscommon|a_ptrsize|a_regview|a_screendpi|a_screenheight|a_screenwidth|a_scriptdir|a_scriptfullpath|a_scripthwnd|a_scriptname|a_sec|a_space|a_startmenu|a_startmenucommon|a_startup|a_startupcommon|a_stringcasesense|a_tab|a_temp|a_thisfunc|a_thishotkey|a_thislabel|a_thismenu|a_thismenuitem|a_thismenuitempos|a_tickcount|a_timeidle|a_timeidlephysical|a_timesincepriorhotkey|a_timesincethishotkey|a_titlematchmode|a_titlematchmodespeed|a_username|a_wday|a_windelay|a_windir|a_workingdir|a_yday|a_year|a_yweek|a_yyyy|clipboard|clipboardall|comspec|errorlevel)\\b/i,\n builtin: /\\b(?:abs|acos|asc|asin|atan|ceil|chr|class|comobjactive|comobjarray|comobjconnect|comobjcreate|comobjerror|comobjflags|comobjget|comobjquery|comobjtype|comobjvalue|cos|dllcall|exp|fileexist|Fileopen|floor|format|il_add|il_create|il_destroy|instr|substr|isfunc|islabel|IsObject|ln|log|lv_add|lv_delete|lv_deletecol|lv_getcount|lv_getnext|lv_gettext|lv_insert|lv_insertcol|lv_modify|lv_modifycol|lv_setimagelist|ltrim|rtrim|mod|onmessage|numget|numput|registercallback|regexmatch|regexreplace|round|sin|tan|sqrt|strlen|strreplace|sb_seticon|sb_setparts|sb_settext|strsplit|tv_add|tv_delete|tv_getchild|tv_getcount|tv_getnext|tv_get|tv_getparent|tv_getprev|tv_getselection|tv_gettext|tv_modify|varsetcapacity|winactive|winexist|__New|__Call|__Get|__Set)\\b/i,\n symbol: /\\b(?:alt|altdown|altup|appskey|backspace|browser_back|browser_favorites|browser_forward|browser_home|browser_refresh|browser_search|browser_stop|bs|capslock|ctrl|ctrlbreak|ctrldown|ctrlup|del|delete|down|end|enter|esc|escape|f1|f10|f11|f12|f13|f14|f15|f16|f17|f18|f19|f2|f20|f21|f22|f23|f24|f3|f4|f5|f6|f7|f8|f9|home|ins|insert|joy1|joy10|joy11|joy12|joy13|joy14|joy15|joy16|joy17|joy18|joy19|joy2|joy20|joy21|joy22|joy23|joy24|joy25|joy26|joy27|joy28|joy29|joy3|joy30|joy31|joy32|joy4|joy5|joy6|joy7|joy8|joy9|joyaxes|joybuttons|joyinfo|joyname|joypov|joyr|joyu|joyv|joyx|joyy|joyz|lalt|launch_app1|launch_app2|launch_mail|launch_media|lbutton|lcontrol|lctrl|left|lshift|lwin|lwindown|lwinup|mbutton|media_next|media_play_pause|media_prev|media_stop|numlock|numpad0|numpad1|numpad2|numpad3|numpad4|numpad5|numpad6|numpad7|numpad8|numpad9|numpadadd|numpadclear|numpaddel|numpaddiv|numpaddot|numpaddown|numpadend|numpadenter|numpadhome|numpadins|numpadleft|numpadmult|numpadpgdn|numpadpgup|numpadright|numpadsub|numpadup|pgdn|pgup|printscreen|ralt|rbutton|rcontrol|rctrl|right|rshift|rwin|rwindown|rwinup|scrolllock|shift|shiftdown|shiftup|space|tab|up|volume_down|volume_mute|volume_up|wheeldown|wheelleft|wheelright|wheelup|xbutton1|xbutton2)\\b/i,\n important: /#\\b(?:AllowSameLineComments|ClipboardTimeout|CommentFlag|DerefChar|ErrorStdOut|EscapeChar|HotkeyInterval|HotkeyModifierTimeout|Hotstring|If|IfTimeout|IfWinActive|IfWinExist|IfWinNotActive|IfWinNotExist|Include|IncludeAgain|InputLevel|InstallKeybdHook|InstallMouseHook|KeyHistory|MaxHotkeysPerInterval|MaxMem|MaxThreads|MaxThreadsBuffer|MaxThreadsPerHotkey|MenuMaskKey|NoEnv|NoTrayIcon|Persistent|SingleInstance|UseHook|Warn|WinActivateForce)\\b/i,\n keyword: /\\b(?:Abort|AboveNormal|Add|ahk_class|ahk_exe|ahk_group|ahk_id|ahk_pid|All|Alnum|Alpha|AltSubmit|AltTab|AltTabAndMenu|AltTabMenu|AltTabMenuDismiss|AlwaysOnTop|AutoSize|Background|BackgroundTrans|BelowNormal|between|BitAnd|BitNot|BitOr|BitShiftLeft|BitShiftRight|BitXOr|Bold|Border|Button|ByRef|Checkbox|Checked|CheckedGray|Choose|ChooseString|Close|Color|ComboBox|Contains|ControlList|Count|Date|DateTime|Days|DDL|Default|DeleteAll|Delimiter|Deref|Destroy|Digit|Disable|Disabled|DropDownList|Edit|Eject|Else|Enable|Enabled|Error|Exist|Expand|ExStyle|FileSystem|First|Flash|Float|FloatFast|Focus|Font|for|global|Grid|Group|GroupBox|GuiClose|GuiContextMenu|GuiDropFiles|GuiEscape|GuiSize|Hdr|Hidden|Hide|High|HKCC|HKCR|HKCU|HKEY_CLASSES_ROOT|HKEY_CURRENT_CONFIG|HKEY_CURRENT_USER|HKEY_LOCAL_MACHINE|HKEY_USERS|HKLM|HKU|Hours|HScroll|Icon|IconSmall|ID|IDLast|If|IfEqual|IfExist|IfGreater|IfGreaterOrEqual|IfInString|IfLess|IfLessOrEqual|IfMsgBox|IfNotEqual|IfNotExist|IfNotInString|IfWinActive|IfWinExist|IfWinNotActive|IfWinNotExist|Ignore|ImageList|in|Integer|IntegerFast|Interrupt|is|italic|Join|Label|LastFound|LastFoundExist|Limit|Lines|List|ListBox|ListView|local|Lock|Logoff|Low|Lower|Lowercase|MainWindow|Margin|Maximize|MaximizeBox|MaxSize|Minimize|MinimizeBox|MinMax|MinSize|Minutes|MonthCal|Mouse|Move|Multi|NA|No|NoActivate|NoDefault|NoHide|NoIcon|NoMainWindow|norm|Normal|NoSort|NoSortHdr|NoStandard|Not|NoTab|NoTimers|Number|Off|Ok|On|OwnDialogs|Owner|Parse|Password|Picture|Pixel|Pos|Pow|Priority|ProcessName|Radio|Range|Read|ReadOnly|Realtime|Redraw|REG_BINARY|REG_DWORD|REG_EXPAND_SZ|REG_MULTI_SZ|REG_SZ|Region|Relative|Rename|Report|Resize|Restore|Retry|RGB|Screen|Seconds|Section|Serial|SetLabel|ShiftAltTab|Show|Single|Slider|SortDesc|Standard|static|Status|StatusBar|StatusCD|strike|Style|Submit|SysMenu|Tab2|TabStop|Text|Theme|Tile|ToggleCheck|ToggleEnable|ToolWindow|Top|Topmost|TransColor|Transparent|Tray|TreeView|TryAgain|Throw|Try|Catch|Finally|Type|UnCheck|underline|Unicode|Unlock|Until|UpDown|Upper|Uppercase|UseErrorLevel|Vis|VisFirst|Visible|VScroll|Wait|WaitClose|WantCtrlA|WantF2|WantReturn|While|Wrap|Xdigit|xm|xp|xs|Yes|ym|yp|ys)\\b/i,\n function: /[^(); \\t,\\n+*\\-=?>:\\\\\\/<&%\\[\\]]+?(?=\\()/m,\n punctuation: /[{}[\\]():,]/\n }\n}\n","'use strict'\n\nmodule.exports = autoit\nautoit.displayName = 'autoit'\nautoit.aliases = []\nfunction autoit(Prism) {\n Prism.languages.autoit = {\n comment: [\n /;.*/,\n {\n // The multi-line comments delimiters can actually be commented out with \";\"\n pattern: /(^\\s*)#(?:comments-start|cs)[\\s\\S]*?^[ \\t]*#(?:comments-end|ce)/m,\n lookbehind: true\n }\n ],\n url: {\n pattern: /(^\\s*#include\\s+)(?:<[^\\r\\n>]+>|\"[^\\r\\n\"]+\")/m,\n lookbehind: true\n },\n string: {\n pattern: /([\"'])(?:\\1\\1|(?!\\1)[^\\r\\n])*\\1/,\n greedy: true,\n inside: {\n variable: /([%$@])\\w+\\1/\n }\n },\n directive: {\n pattern: /(^\\s*)#\\w+/m,\n lookbehind: true,\n alias: 'keyword'\n },\n function: /\\b\\w+(?=\\()/,\n // Variables and macros\n variable: /[$@]\\w+/,\n keyword: /\\b(?:Case|Const|Continue(?:Case|Loop)|Default|Dim|Do|Else(?:If)?|End(?:Func|If|Select|Switch|With)|Enum|Exit(?:Loop)?|For|Func|Global|If|In|Local|Next|Null|ReDim|Select|Static|Step|Switch|Then|To|Until|Volatile|WEnd|While|With)\\b/i,\n number: /\\b(?:0x[\\da-f]+|\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?)\\b/i,\n boolean: /\\b(?:True|False)\\b/i,\n operator: /<[=>]?|[-+*\\/=&>]=?|[?^]|\\b(?:And|Or|Not)\\b/i,\n punctuation: /[\\[\\]().,:]/\n }\n}\n","'use strict'\n\nmodule.exports = batch\nbatch.displayName = 'batch'\nbatch.aliases = []\nfunction batch(Prism) {\n ;(function (Prism) {\n var variable = /%%?[~:\\w]+%?|!\\S+!/\n var parameter = {\n pattern: /\\/[a-z?]+(?=[ :]|$):?|-[a-z]\\b|--[a-z-]+\\b/im,\n alias: 'attr-name',\n inside: {\n punctuation: /:/\n }\n }\n var string = /\"(?:[\\\\\"]\"|[^\"])*\"(?!\")/\n var number = /(?:\\b|-)\\d+\\b/\n Prism.languages.batch = {\n comment: [\n /^::.*/m,\n {\n pattern: /((?:^|[&(])[ \\t]*)rem\\b(?:[^^&)\\r\\n]|\\^(?:\\r\\n|[\\s\\S]))*/im,\n lookbehind: true\n }\n ],\n label: {\n pattern: /^:.*/m,\n alias: 'property'\n },\n command: [\n {\n // FOR command\n pattern: /((?:^|[&(])[ \\t]*)for(?: \\/[a-z?](?:[ :](?:\"[^\"]*\"|[^\\s\"/]\\S*))?)* \\S+ in \\([^)]+\\) do/im,\n lookbehind: true,\n inside: {\n keyword: /^for\\b|\\b(?:in|do)\\b/i,\n string: string,\n parameter: parameter,\n variable: variable,\n number: number,\n punctuation: /[()',]/\n }\n },\n {\n // IF command\n pattern: /((?:^|[&(])[ \\t]*)if(?: \\/[a-z?](?:[ :](?:\"[^\"]*\"|[^\\s\"/]\\S*))?)* (?:not )?(?:cmdextversion \\d+|defined \\w+|errorlevel \\d+|exist \\S+|(?:\"[^\"]*\"|(?!\")(?:(?!==)\\S)+)?(?:==| (?:equ|neq|lss|leq|gtr|geq) )(?:\"[^\"]*\"|[^\\s\"]\\S*))/im,\n lookbehind: true,\n inside: {\n keyword: /^if\\b|\\b(?:not|cmdextversion|defined|errorlevel|exist)\\b/i,\n string: string,\n parameter: parameter,\n variable: variable,\n number: number,\n operator: /\\^|==|\\b(?:equ|neq|lss|leq|gtr|geq)\\b/i\n }\n },\n {\n // ELSE command\n pattern: /((?:^|[&()])[ \\t]*)else\\b/im,\n lookbehind: true,\n inside: {\n keyword: /^else\\b/i\n }\n },\n {\n // SET command\n pattern: /((?:^|[&(])[ \\t]*)set(?: \\/[a-z](?:[ :](?:\"[^\"]*\"|[^\\s\"/]\\S*))?)* (?:[^^&)\\r\\n]|\\^(?:\\r\\n|[\\s\\S]))*/im,\n lookbehind: true,\n inside: {\n keyword: /^set\\b/i,\n string: string,\n parameter: parameter,\n variable: [variable, /\\w+(?=(?:[*\\/%+\\-&^|]|<<|>>)?=)/],\n number: number,\n operator: /[*\\/%+\\-&^|]=?|<<=?|>>=?|[!~_=]/,\n punctuation: /[()',]/\n }\n },\n {\n // Other commands\n pattern: /((?:^|[&(])[ \\t]*@?)\\w+\\b(?:\"(?:[\\\\\"]\"|[^\"])*\"(?!\")|[^\"^&)\\r\\n]|\\^(?:\\r\\n|[\\s\\S]))*/im,\n lookbehind: true,\n inside: {\n keyword: /^\\w+\\b/i,\n string: string,\n parameter: parameter,\n label: {\n pattern: /(^\\s*):\\S+/m,\n lookbehind: true,\n alias: 'property'\n },\n variable: variable,\n number: number,\n operator: /\\^/\n }\n }\n ],\n operator: /[&@]/,\n punctuation: /[()']/\n }\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = bbcode\nbbcode.displayName = 'bbcode'\nbbcode.aliases = ['shortcode']\nfunction bbcode(Prism) {\n Prism.languages.bbcode = {\n tag: {\n pattern: /\\[\\/?[^\\s=\\]]+(?:\\s*=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\"\\]=]+))?(?:\\s+[^\\s=\\]]+\\s*=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\"\\]=]+))*\\s*\\]/,\n inside: {\n tag: {\n pattern: /^\\[\\/?[^\\s=\\]]+/,\n inside: {\n punctuation: /^\\[\\/?/\n }\n },\n 'attr-value': {\n pattern: /=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\"\\]=]+)/i,\n inside: {\n punctuation: [\n /^=/,\n {\n pattern: /^(\\s*)[\"']|[\"']$/,\n lookbehind: true\n }\n ]\n }\n },\n punctuation: /\\]/,\n 'attr-name': /[^\\s=\\]]+/\n }\n }\n }\n Prism.languages.shortcode = Prism.languages.bbcode\n}\n","'use strict'\n\nmodule.exports = birb\nbirb.displayName = 'birb'\nbirb.aliases = []\nfunction birb(Prism) {\n Prism.languages.birb = Prism.languages.extend('clike', {\n string: {\n pattern: /r?(\"|')(?:\\\\.|(?!\\1)[^\\\\])*\\1/,\n greedy: true\n },\n 'class-name': [\n /\\b[A-Z](?:[\\d_]*[a-zA-Z]\\w*)?\\b/, // matches variable and function return types (parameters as well).\n /\\b[A-Z]\\w*(?=\\s+\\w+\\s*[;,=()])/\n ],\n keyword: /\\b(?:assert|break|case|class|const|default|else|enum|final|follows|for|grab|if|nest|next|new|noSeeb|return|static|switch|throw|var|void|while)\\b/,\n operator: /\\+\\+|--|&&|\\|\\||<<=?|>>=?|~(?:\\/=?)?|[+\\-*\\/%&^|=!<>]=?|\\?|:/,\n variable: /\\b[a-z_]\\w*\\b/\n })\n Prism.languages.insertBefore('birb', 'function', {\n metadata: {\n pattern: /<\\w+>/,\n greedy: true,\n alias: 'symbol'\n }\n })\n}\n","'use strict'\nvar refractorC = require('./c.js')\nmodule.exports = bison\nbison.displayName = 'bison'\nbison.aliases = []\nfunction bison(Prism) {\n Prism.register(refractorC)\n Prism.languages.bison = Prism.languages.extend('c', {})\n Prism.languages.insertBefore('bison', 'comment', {\n bison: {\n // This should match all the beginning of the file\n // including the prologue(s), the bison declarations and\n // the grammar rules.\n pattern: /^(?:[^%]|%(?!%))*%%[\\s\\S]*?%%/,\n inside: {\n c: {\n // Allow for one level of nested braces\n pattern: /%\\{[\\s\\S]*?%\\}|\\{(?:\\{[^}]*\\}|[^{}])*\\}/,\n inside: {\n delimiter: {\n pattern: /^%?\\{|%?\\}$/,\n alias: 'punctuation'\n },\n 'bison-variable': {\n pattern: /[$@](?:<[^\\s>]+>)?[\\w$]+/,\n alias: 'variable',\n inside: {\n punctuation: /<|>/\n }\n },\n rest: Prism.languages.c\n }\n },\n comment: Prism.languages.c.comment,\n string: Prism.languages.c.string,\n property: /\\S+(?=:)/,\n keyword: /%\\w+/,\n number: {\n pattern: /(^|[^@])\\b(?:0x[\\da-f]+|\\d+)/i,\n lookbehind: true\n },\n punctuation: /%[%?]|[|:;\\[\\]<>]/\n }\n }\n })\n}\n","'use strict'\n\nmodule.exports = bnf\nbnf.displayName = 'bnf'\nbnf.aliases = ['rbnf']\nfunction bnf(Prism) {\n Prism.languages.bnf = {\n string: {\n pattern: /\"[^\\r\\n\"]*\"|'[^\\r\\n']*'/\n },\n definition: {\n pattern: /<[^<>\\r\\n\\t]+>(?=\\s*::=)/,\n alias: ['rule', 'keyword'],\n inside: {\n punctuation: /^<|>$/\n }\n },\n rule: {\n pattern: /<[^<>\\r\\n\\t]+>/,\n inside: {\n punctuation: /^<|>$/\n }\n },\n operator: /::=|[|()[\\]{}*+?]|\\.{3}/\n }\n Prism.languages.rbnf = Prism.languages.bnf\n}\n","'use strict'\n\nmodule.exports = brainfuck\nbrainfuck.displayName = 'brainfuck'\nbrainfuck.aliases = []\nfunction brainfuck(Prism) {\n Prism.languages.brainfuck = {\n pointer: {\n pattern: /<|>/,\n alias: 'keyword'\n },\n increment: {\n pattern: /\\+/,\n alias: 'inserted'\n },\n decrement: {\n pattern: /-/,\n alias: 'deleted'\n },\n branching: {\n pattern: /\\[|\\]/,\n alias: 'important'\n },\n operator: /[.,]/,\n comment: /\\S+/\n }\n}\n","'use strict'\n\nmodule.exports = brightscript\nbrightscript.displayName = 'brightscript'\nbrightscript.aliases = []\nfunction brightscript(Prism) {\n Prism.languages.brightscript = {\n comment: /(?:\\brem|').*/i,\n 'directive-statement': {\n pattern: /(^[\\t ]*)#(?:const|else(?:[\\t ]+if)?|end[\\t ]+if|error|if).*/im,\n lookbehind: true,\n alias: 'property',\n inside: {\n 'error-message': {\n pattern: /(^#error).+/,\n lookbehind: true\n },\n directive: {\n pattern: /^#(?:const|else(?:[\\t ]+if)?|end[\\t ]+if|error|if)/,\n alias: 'keyword'\n },\n expression: {\n pattern: /[\\s\\S]+/,\n inside: null // see below\n }\n }\n },\n property: {\n pattern: /([\\r\\n{,][\\t ]*)(?:(?!\\d)\\w+|\"(?:[^\"\\r\\n]|\"\")*\"(?!\"))(?=[ \\t]*:)/,\n lookbehind: true,\n greedy: true\n },\n string: {\n pattern: /\"(?:[^\"\\r\\n]|\"\")*\"(?!\")/,\n greedy: true\n },\n 'class-name': {\n pattern: /(\\bAs[\\t ]+)\\w+/i,\n lookbehind: true\n },\n keyword: /\\b(?:As|Dim|Each|Else|Elseif|End|Exit|For|Function|Goto|If|In|Print|Return|Step|Stop|Sub|Then|To|While)\\b/i,\n boolean: /\\b(?:true|false)\\b/i,\n function: /\\b(?!\\d)\\w+(?=[\\t ]*\\()/i,\n number: /(?:\\b\\d+(?:\\.\\d+)?(?:[ed][+-]\\d+)?|&h[a-f\\d]+)\\b[%&!#]?/i,\n operator: /--|\\+\\+|>>=?|<<=?|<>|[-+*/\\\\<>]=?|[:^=?]|\\b(?:and|mod|not|or)\\b/i,\n punctuation: /[.,;()[\\]{}]/,\n constant: /\\b(?:LINE_NUM)\\b/i\n }\n Prism.languages.brightscript['directive-statement'].inside.expression.inside =\n Prism.languages.brightscript\n}\n","'use strict'\n\nmodule.exports = bro\nbro.displayName = 'bro'\nbro.aliases = []\nfunction bro(Prism) {\n Prism.languages.bro = {\n comment: {\n pattern: /(^|[^\\\\$])#.*/,\n lookbehind: true,\n inside: {\n italic: /\\b(?:TODO|FIXME|XXX)\\b/\n }\n },\n string: {\n pattern: /([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/,\n greedy: true\n },\n boolean: /\\b[TF]\\b/,\n function: {\n pattern: /(?:function|hook|event) \\w+(?:::\\w+)?/,\n inside: {\n keyword: /^(?:function|hook|event)/\n }\n },\n variable: {\n pattern: /(?:global|local) \\w+/i,\n inside: {\n keyword: /(?:global|local)/\n }\n },\n builtin: /(?:@(?:load(?:-(?:sigs|plugin))?|unload|prefixes|ifn?def|else|(?:end)?if|DIR|FILENAME))|(?:&?(?:redef|priority|log|optional|default|add_func|delete_func|expire_func|read_expire|write_expire|create_expire|synchronized|persistent|rotate_interval|rotate_size|encrypt|raw_output|mergeable|group|error_handler|type_column))/,\n constant: {\n pattern: /const \\w+/i,\n inside: {\n keyword: /const/\n }\n },\n keyword: /\\b(?:break|next|continue|alarm|using|of|add|delete|export|print|return|schedule|when|timeout|addr|any|bool|count|double|enum|file|int|interval|pattern|opaque|port|record|set|string|subnet|table|time|vector|for|if|else|in|module|function)\\b/,\n operator: /--?|\\+\\+?|!=?=?|<=?|>=?|==?=?|&&|\\|\\|?|\\?|\\*|\\/|~|\\^|%/,\n number: /\\b0x[\\da-f]+\\b|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e[+-]?\\d+)?/i,\n punctuation: /[{}[\\];(),.:]/\n }\n}\n","'use strict'\n\nmodule.exports = bsl\nbsl.displayName = 'bsl'\nbsl.aliases = []\nfunction bsl(Prism) {\n // 1C:Enterprise\n // https://github.com/Diversus23/\n //\n Prism.languages.bsl = {\n comment: /\\/\\/.*/,\n string: [\n // Строки\n // Strings\n {\n pattern: /\"(?:[^\"]|\"\")*\"(?!\")/,\n greedy: true\n }, // Дата и время\n // Date & time\n {\n pattern: /'(?:[^'\\r\\n\\\\]|\\\\.)*'/\n }\n ],\n keyword: [\n {\n // RU\n pattern: /(^|[^\\w\\u0400-\\u0484\\u0487-\\u052f\\u1c80-\\u1c88\\u1d2b\\u1d78\\u2de0-\\u2dff\\ua640-\\ua69f\\ufe2e\\ufe2f])(?:пока|для|новый|прервать|попытка|исключение|вызватьисключение|иначе|конецпопытки|неопределено|функция|перем|возврат|конецфункции|если|иначеесли|процедура|конецпроцедуры|тогда|знач|экспорт|конецесли|из|каждого|истина|ложь|по|цикл|конеццикла|выполнить)(?![\\w\\u0400-\\u0484\\u0487-\\u052f\\u1c80-\\u1c88\\u1d2b\\u1d78\\u2de0-\\u2dff\\ua640-\\ua69f\\ufe2e\\ufe2f])/i,\n lookbehind: true\n },\n {\n // EN\n pattern: /\\b(?:while|for|new|break|try|except|raise|else|endtry|undefined|function|var|return|endfunction|null|if|elseif|procedure|endprocedure|then|val|export|endif|in|each|true|false|to|do|enddo|execute)\\b/i\n }\n ],\n number: {\n pattern: /(^(?=\\d)|[^\\w\\u0400-\\u0484\\u0487-\\u052f\\u1c80-\\u1c88\\u1d2b\\u1d78\\u2de0-\\u2dff\\ua640-\\ua69f\\ufe2e\\ufe2f])(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:E[+-]?\\d+)?/i,\n lookbehind: true\n },\n operator: [\n /[<>+\\-*/]=?|[%=]/, // RU\n {\n pattern: /(^|[^\\w\\u0400-\\u0484\\u0487-\\u052f\\u1c80-\\u1c88\\u1d2b\\u1d78\\u2de0-\\u2dff\\ua640-\\ua69f\\ufe2e\\ufe2f])(?:и|или|не)(?![\\w\\u0400-\\u0484\\u0487-\\u052f\\u1c80-\\u1c88\\u1d2b\\u1d78\\u2de0-\\u2dff\\ua640-\\ua69f\\ufe2e\\ufe2f])/i,\n lookbehind: true\n }, // EN\n {\n pattern: /\\b(?:and|or|not)\\b/i\n }\n ],\n punctuation: /\\(\\.|\\.\\)|[()\\[\\]:;,.]/,\n directive: [\n // Теги препроцессора вида &Клиент, &Сервер, ...\n // Preprocessor tags of the type &Client, &Server, ...\n {\n pattern: /^(\\s*)&.*/m,\n lookbehind: true,\n alias: 'important'\n }, // Инструкции препроцессора вида:\n // #Если Сервер Тогда\n // ...\n // #КонецЕсли\n // Preprocessor instructions of the form:\n // #If Server Then\n // ...\n // #EndIf\n {\n pattern: /^\\s*#.*/gm,\n alias: 'important'\n }\n ]\n }\n Prism.languages.oscript = Prism.languages['bsl']\n}\n","'use strict'\n\nmodule.exports = cil\ncil.displayName = 'cil'\ncil.aliases = []\nfunction cil(Prism) {\n Prism.languages.cil = {\n comment: /\\/\\/.*/,\n string: {\n pattern: /([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/,\n greedy: true\n },\n directive: {\n pattern: /(^|\\W)\\.[a-z]+(?=\\s)/,\n lookbehind: true,\n alias: 'class-name'\n },\n // Actually an assembly reference\n variable: /\\[[\\w\\.]+\\]/,\n keyword: /\\b(?:abstract|ansi|assembly|auto|autochar|beforefieldinit|bool|bstr|byvalstr|catch|char|cil|class|currency|date|decimal|default|enum|error|explicit|extends|extern|famandassem|family|famorassem|final(?:ly)?|float32|float64|hidebysig|iant|idispatch|implements|import|initonly|instance|u?int(?:8|16|32|64)?|interface|iunknown|literal|lpstr|lpstruct|lptstr|lpwstr|managed|method|native(?:Type)?|nested|newslot|object(?:ref)?|pinvokeimpl|private|privatescope|public|reqsecobj|rtspecialname|runtime|sealed|sequential|serializable|specialname|static|string|struct|syschar|tbstr|unicode|unmanagedexp|unsigned|value(?:type)?|variant|virtual|void)\\b/,\n function: /\\b(?:(?:constrained|unaligned|volatile|readonly|tail|no)\\.)?(?:conv\\.(?:[iu][1248]?|ovf\\.[iu][1248]?(?:\\.un)?|r\\.un|r4|r8)|ldc\\.(?:i4(?:\\.[0-9]+|\\.[mM]1|\\.s)?|i8|r4|r8)|ldelem(?:\\.[iu][1248]?|\\.r[48]|\\.ref|a)?|ldind\\.(?:[iu][1248]?|r[48]|ref)|stelem\\.?(?:i[1248]?|r[48]|ref)?|stind\\.(?:i[1248]?|r[48]|ref)?|end(?:fault|filter|finally)|ldarg(?:\\.[0-3s]|a(?:\\.s)?)?|ldloc(?:\\.[0-9]+|\\.s)?|sub(?:\\.ovf(?:\\.un)?)?|mul(?:\\.ovf(?:\\.un)?)?|add(?:\\.ovf(?:\\.un)?)?|stloc(?:\\.[0-3s])?|refany(?:type|val)|blt(?:\\.un)?(?:\\.s)?|ble(?:\\.un)?(?:\\.s)?|bgt(?:\\.un)?(?:\\.s)?|bge(?:\\.un)?(?:\\.s)?|unbox(?:\\.any)?|init(?:blk|obj)|call(?:i|virt)?|brfalse(?:\\.s)?|bne\\.un(?:\\.s)?|ldloca(?:\\.s)?|brzero(?:\\.s)?|brtrue(?:\\.s)?|brnull(?:\\.s)?|brinst(?:\\.s)?|starg(?:\\.s)?|leave(?:\\.s)?|shr(?:\\.un)?|rem(?:\\.un)?|div(?:\\.un)?|clt(?:\\.un)?|alignment|ldvirtftn|castclass|beq(?:\\.s)?|mkrefany|localloc|ckfinite|rethrow|ldtoken|ldsflda|cgt\\.un|arglist|switch|stsfld|sizeof|newobj|newarr|ldsfld|ldnull|ldflda|isinst|throw|stobj|stfld|ldstr|ldobj|ldlen|ldftn|ldfld|cpobj|cpblk|break|br\\.s|xor|shl|ret|pop|not|nop|neg|jmp|dup|cgt|ceq|box|and|or|br)\\b/,\n boolean: /\\b(?:true|false)\\b/,\n number: /\\b-?(?:0x[0-9a-fA-F]+|[0-9]+)(?:\\.[0-9a-fA-F]+)?\\b/i,\n punctuation: /[{}[\\];(),:=]|IL_[0-9A-Za-z]+/\n }\n}\n","'use strict'\n\nmodule.exports = clojure\nclojure.displayName = 'clojure'\nclojure.aliases = []\nfunction clojure(Prism) {\n // Copied from https://github.com/jeluard/prism-clojure\n Prism.languages.clojure = {\n comment: /;.*/,\n string: {\n pattern: /\"(?:[^\"\\\\]|\\\\.)*\"/,\n greedy: true\n },\n operator: /(?:::|[:|'])\\b[a-z][\\w*+!?-]*\\b/i,\n //used for symbols and keywords\n keyword: {\n pattern: /([^\\w+*'?-])(?:def|if|do|let|\\.\\.|quote|var|->>|->|fn|loop|recur|throw|try|monitor-enter|\\.|new|set!|def\\-|defn|defn\\-|defmacro|defmulti|defmethod|defstruct|defonce|declare|definline|definterface|defprotocol|==|defrecord|>=|deftype|<=|defproject|ns|\\*|\\+|\\-|\\/|<|=|>|accessor|agent|agent-errors|aget|alength|all-ns|alter|and|append-child|apply|array-map|aset|aset-boolean|aset-byte|aset-char|aset-double|aset-float|aset-int|aset-long|aset-short|assert|assoc|await|await-for|bean|binding|bit-and|bit-not|bit-or|bit-shift-left|bit-shift-right|bit-xor|boolean|branch\\?|butlast|byte|cast|char|children|class|clear-agent-errors|comment|commute|comp|comparator|complement|concat|conj|cons|constantly|cond|if-not|construct-proxy|contains\\?|count|create-ns|create-struct|cycle|dec|deref|difference|disj|dissoc|distinct|doall|doc|dorun|doseq|dosync|dotimes|doto|double|down|drop|drop-while|edit|end\\?|ensure|eval|every\\?|false\\?|ffirst|file-seq|filter|find|find-doc|find-ns|find-var|first|float|flush|for|fnseq|frest|gensym|get-proxy-class|get|hash-map|hash-set|identical\\?|identity|if-let|import|in-ns|inc|index|insert-child|insert-left|insert-right|inspect-table|inspect-tree|instance\\?|int|interleave|intersection|into|into-array|iterate|join|key|keys|keyword|keyword\\?|last|lazy-cat|lazy-cons|left|lefts|line-seq|list\\*|list|load|load-file|locking|long|macroexpand|macroexpand-1|make-array|make-node|map|map-invert|map\\?|mapcat|max|max-key|memfn|merge|merge-with|meta|min|min-key|name|namespace|neg\\?|newline|next|nil\\?|node|not|not-any\\?|not-every\\?|not=|ns-imports|ns-interns|ns-map|ns-name|ns-publics|ns-refers|ns-resolve|ns-unmap|nth|nthrest|or|parse|partial|path|peek|pop|pos\\?|pr|pr-str|print|print-str|println|println-str|prn|prn-str|project|proxy|proxy-mappings|quot|rand|rand-int|range|re-find|re-groups|re-matcher|re-matches|re-pattern|re-seq|read|read-line|reduce|ref|ref-set|refer|rem|remove|remove-method|remove-ns|rename|rename-keys|repeat|replace|replicate|resolve|rest|resultset-seq|reverse|rfirst|right|rights|root|rrest|rseq|second|select|select-keys|send|send-off|seq|seq-zip|seq\\?|set|short|slurp|some|sort|sort-by|sorted-map|sorted-map-by|sorted-set|special-symbol\\?|split-at|split-with|str|string\\?|struct|struct-map|subs|subvec|symbol|symbol\\?|sync|take|take-nth|take-while|test|time|to-array|to-array-2d|tree-seq|true\\?|union|up|update-proxy|val|vals|var-get|var-set|var\\?|vector|vector-zip|vector\\?|when|when-first|when-let|when-not|with-local-vars|with-meta|with-open|with-out-str|xml-seq|xml-zip|zero\\?|zipmap|zipper)(?=[^\\w+*'?-])/,\n lookbehind: true\n },\n boolean: /\\b(?:true|false|nil)\\b/,\n number: /\\b[\\da-f]+\\b/i,\n punctuation: /[{}\\[\\](),]/\n }\n}\n","'use strict'\n\nmodule.exports = cmake\ncmake.displayName = 'cmake'\ncmake.aliases = []\nfunction cmake(Prism) {\n Prism.languages.cmake = {\n comment: /#.*/,\n string: {\n pattern: /\"(?:[^\\\\\"]|\\\\.)*\"/,\n greedy: true,\n inside: {\n interpolation: {\n pattern: /\\${(?:[^{}$]|\\${[^{}$]*})*}/,\n inside: {\n punctuation: /\\${|}/,\n variable: /\\w+/\n }\n }\n }\n },\n variable: /\\b(?:CMAKE_\\w+|\\w+_(?:VERSION(?:_MAJOR|_MINOR|_PATCH|_TWEAK)?|(?:BINARY|SOURCE)_DIR|DESCRIPTION|HOMEPAGE_URL|ROOT)|(?:CTEST_CUSTOM_(?:MAXIMUM_(?:(?:FAIL|PASS)ED_TEST_OUTPUT_SIZE|NUMBER_OF_(?:ERROR|WARNING)S)|ERROR_(?:P(?:OST|RE)_CONTEXT|EXCEPTION|MATCH)|P(?:OST|RE)_MEMCHECK|WARNING_(?:EXCEPTION|MATCH)|(?:MEMCHECK|TESTS)_IGNORE|P(?:OST|RE)_TEST|COVERAGE_EXCLUDE)|ANDROID|APPLE|BORLAND|BUILD_SHARED_LIBS|CACHE|CPACK_(?:ABSOLUTE_DESTINATION_FILES|COMPONENT_INCLUDE_TOPLEVEL_DIRECTORY|ERROR_ON_ABSOLUTE_INSTALL_DESTINATION|INCLUDE_TOPLEVEL_DIRECTORY|INSTALL_DEFAULT_DIRECTORY_PERMISSIONS|INSTALL_SCRIPT|PACKAGING_INSTALL_PREFIX|SET_DESTDIR|WARN_ON_ABSOLUTE_INSTALL_DESTINATION)|CTEST_(?:BINARY_DIRECTORY|BUILD_COMMAND|BUILD_NAME|BZR_COMMAND|BZR_UPDATE_OPTIONS|CHANGE_ID|CHECKOUT_COMMAND|CONFIGURATION_TYPE|CONFIGURE_COMMAND|COVERAGE_COMMAND|COVERAGE_EXTRA_FLAGS|CURL_OPTIONS|CUSTOM_(?:COVERAGE_EXCLUDE|ERROR_EXCEPTION|ERROR_MATCH|ERROR_POST_CONTEXT|ERROR_PRE_CONTEXT|MAXIMUM_FAILED_TEST_OUTPUT_SIZE|MAXIMUM_NUMBER_OF_(?:ERRORS|WARNINGS)|MAXIMUM_PASSED_TEST_OUTPUT_SIZE|MEMCHECK_IGNORE|POST_MEMCHECK|POST_TEST|PRE_MEMCHECK|PRE_TEST|TESTS_IGNORE|WARNING_EXCEPTION|WARNING_MATCH)|CVS_CHECKOUT|CVS_COMMAND|CVS_UPDATE_OPTIONS|DROP_LOCATION|DROP_METHOD|DROP_SITE|DROP_SITE_CDASH|DROP_SITE_PASSWORD|DROP_SITE_USER|EXTRA_COVERAGE_GLOB|GIT_COMMAND|GIT_INIT_SUBMODULES|GIT_UPDATE_CUSTOM|GIT_UPDATE_OPTIONS|HG_COMMAND|HG_UPDATE_OPTIONS|LABELS_FOR_SUBPROJECTS|MEMORYCHECK_(?:COMMAND|COMMAND_OPTIONS|SANITIZER_OPTIONS|SUPPRESSIONS_FILE|TYPE)|NIGHTLY_START_TIME|P4_CLIENT|P4_COMMAND|P4_OPTIONS|P4_UPDATE_OPTIONS|RUN_CURRENT_SCRIPT|SCP_COMMAND|SITE|SOURCE_DIRECTORY|SUBMIT_URL|SVN_COMMAND|SVN_OPTIONS|SVN_UPDATE_OPTIONS|TEST_LOAD|TEST_TIMEOUT|TRIGGER_SITE|UPDATE_COMMAND|UPDATE_OPTIONS|UPDATE_VERSION_ONLY|USE_LAUNCHERS)|CYGWIN|ENV|EXECUTABLE_OUTPUT_PATH|GHS-MULTI|IOS|LIBRARY_OUTPUT_PATH|MINGW|MSVC(?:10|11|12|14|60|70|71|80|90|_IDE|_TOOLSET_VERSION|_VERSION)?|MSYS|PROJECT_(?:BINARY_DIR|DESCRIPTION|HOMEPAGE_URL|NAME|SOURCE_DIR|VERSION|VERSION_(?:MAJOR|MINOR|PATCH|TWEAK))|UNIX|WIN32|WINCE|WINDOWS_PHONE|WINDOWS_STORE|XCODE|XCODE_VERSION))\\b/,\n property: /\\b(?:cxx_\\w+|(?:ARCHIVE_OUTPUT_(?:DIRECTORY|NAME)|COMPILE_DEFINITIONS|COMPILE_PDB_NAME|COMPILE_PDB_OUTPUT_DIRECTORY|EXCLUDE_FROM_DEFAULT_BUILD|IMPORTED_(?:IMPLIB|LIBNAME|LINK_DEPENDENT_LIBRARIES|LINK_INTERFACE_LANGUAGES|LINK_INTERFACE_LIBRARIES|LINK_INTERFACE_MULTIPLICITY|LOCATION|NO_SONAME|OBJECTS|SONAME)|INTERPROCEDURAL_OPTIMIZATION|LIBRARY_OUTPUT_DIRECTORY|LIBRARY_OUTPUT_NAME|LINK_FLAGS|LINK_INTERFACE_LIBRARIES|LINK_INTERFACE_MULTIPLICITY|LOCATION|MAP_IMPORTED_CONFIG|OSX_ARCHITECTURES|OUTPUT_NAME|PDB_NAME|PDB_OUTPUT_DIRECTORY|RUNTIME_OUTPUT_DIRECTORY|RUNTIME_OUTPUT_NAME|STATIC_LIBRARY_FLAGS|VS_CSHARP|VS_DOTNET_REFERENCEPROP|VS_DOTNET_REFERENCE|VS_GLOBAL_SECTION_POST|VS_GLOBAL_SECTION_PRE|VS_GLOBAL|XCODE_ATTRIBUTE)_\\w+|\\w+_(?:CLANG_TIDY|COMPILER_LAUNCHER|CPPCHECK|CPPLINT|INCLUDE_WHAT_YOU_USE|OUTPUT_NAME|POSTFIX|VISIBILITY_PRESET)|ABSTRACT|ADDITIONAL_MAKE_CLEAN_FILES|ADVANCED|ALIASED_TARGET|ALLOW_DUPLICATE_CUSTOM_TARGETS|ANDROID_(?:ANT_ADDITIONAL_OPTIONS|API|API_MIN|ARCH|ASSETS_DIRECTORIES|GUI|JAR_DEPENDENCIES|NATIVE_LIB_DEPENDENCIES|NATIVE_LIB_DIRECTORIES|PROCESS_MAX|PROGUARD|PROGUARD_CONFIG_PATH|SECURE_PROPS_PATH|SKIP_ANT_STEP|STL_TYPE)|ARCHIVE_OUTPUT_DIRECTORY|ARCHIVE_OUTPUT_NAME|ATTACHED_FILES|ATTACHED_FILES_ON_FAIL|AUTOGEN_(?:BUILD_DIR|ORIGIN_DEPENDS|PARALLEL|SOURCE_GROUP|TARGETS_FOLDER|TARGET_DEPENDS)|AUTOMOC|AUTOMOC_(?:COMPILER_PREDEFINES|DEPEND_FILTERS|EXECUTABLE|MACRO_NAMES|MOC_OPTIONS|SOURCE_GROUP|TARGETS_FOLDER)|AUTORCC|AUTORCC_EXECUTABLE|AUTORCC_OPTIONS|AUTORCC_SOURCE_GROUP|AUTOUIC|AUTOUIC_EXECUTABLE|AUTOUIC_OPTIONS|AUTOUIC_SEARCH_PATHS|BINARY_DIR|BUILDSYSTEM_TARGETS|BUILD_RPATH|BUILD_RPATH_USE_ORIGIN|BUILD_WITH_INSTALL_NAME_DIR|BUILD_WITH_INSTALL_RPATH|BUNDLE|BUNDLE_EXTENSION|CACHE_VARIABLES|CLEAN_NO_CUSTOM|COMMON_LANGUAGE_RUNTIME|COMPATIBLE_INTERFACE_(?:BOOL|NUMBER_MAX|NUMBER_MIN|STRING)|COMPILE_(?:DEFINITIONS|FEATURES|FLAGS|OPTIONS|PDB_NAME|PDB_OUTPUT_DIRECTORY)|COST|CPACK_DESKTOP_SHORTCUTS|CPACK_NEVER_OVERWRITE|CPACK_PERMANENT|CPACK_STARTUP_SHORTCUTS|CPACK_START_MENU_SHORTCUTS|CPACK_WIX_ACL|CROSSCOMPILING_EMULATOR|CUDA_EXTENSIONS|CUDA_PTX_COMPILATION|CUDA_RESOLVE_DEVICE_SYMBOLS|CUDA_SEPARABLE_COMPILATION|CUDA_STANDARD|CUDA_STANDARD_REQUIRED|CXX_EXTENSIONS|CXX_STANDARD|CXX_STANDARD_REQUIRED|C_EXTENSIONS|C_STANDARD|C_STANDARD_REQUIRED|DEBUG_CONFIGURATIONS|DEBUG_POSTFIX|DEFINE_SYMBOL|DEFINITIONS|DEPENDS|DEPLOYMENT_ADDITIONAL_FILES|DEPLOYMENT_REMOTE_DIRECTORY|DISABLED|DISABLED_FEATURES|ECLIPSE_EXTRA_CPROJECT_CONTENTS|ECLIPSE_EXTRA_NATURES|ENABLED_FEATURES|ENABLED_LANGUAGES|ENABLE_EXPORTS|ENVIRONMENT|EXCLUDE_FROM_ALL|EXCLUDE_FROM_DEFAULT_BUILD|EXPORT_NAME|EXPORT_PROPERTIES|EXTERNAL_OBJECT|EchoString|FAIL_REGULAR_EXPRESSION|FIND_LIBRARY_USE_LIB32_PATHS|FIND_LIBRARY_USE_LIB64_PATHS|FIND_LIBRARY_USE_LIBX32_PATHS|FIND_LIBRARY_USE_OPENBSD_VERSIONING|FIXTURES_CLEANUP|FIXTURES_REQUIRED|FIXTURES_SETUP|FOLDER|FRAMEWORK|Fortran_FORMAT|Fortran_MODULE_DIRECTORY|GENERATED|GENERATOR_FILE_NAME|GENERATOR_IS_MULTI_CONFIG|GHS_INTEGRITY_APP|GHS_NO_SOURCE_GROUP_FILE|GLOBAL_DEPENDS_DEBUG_MODE|GLOBAL_DEPENDS_NO_CYCLES|GNUtoMS|HAS_CXX|HEADER_FILE_ONLY|HELPSTRING|IMPLICIT_DEPENDS_INCLUDE_TRANSFORM|IMPORTED|IMPORTED_(?:COMMON_LANGUAGE_RUNTIME|CONFIGURATIONS|GLOBAL|IMPLIB|LIBNAME|LINK_DEPENDENT_LIBRARIES|LINK_INTERFACE_(?:LANGUAGES|LIBRARIES|MULTIPLICITY)|LOCATION|NO_SONAME|OBJECTS|SONAME)|IMPORT_PREFIX|IMPORT_SUFFIX|INCLUDE_DIRECTORIES|INCLUDE_REGULAR_EXPRESSION|INSTALL_NAME_DIR|INSTALL_RPATH|INSTALL_RPATH_USE_LINK_PATH|INTERFACE_(?:AUTOUIC_OPTIONS|COMPILE_DEFINITIONS|COMPILE_FEATURES|COMPILE_OPTIONS|INCLUDE_DIRECTORIES|LINK_DEPENDS|LINK_DIRECTORIES|LINK_LIBRARIES|LINK_OPTIONS|POSITION_INDEPENDENT_CODE|SOURCES|SYSTEM_INCLUDE_DIRECTORIES)|INTERPROCEDURAL_OPTIMIZATION|IN_TRY_COMPILE|IOS_INSTALL_COMBINED|JOB_POOLS|JOB_POOL_COMPILE|JOB_POOL_LINK|KEEP_EXTENSION|LABELS|LANGUAGE|LIBRARY_OUTPUT_DIRECTORY|LIBRARY_OUTPUT_NAME|LINKER_LANGUAGE|LINK_(?:DEPENDS|DEPENDS_NO_SHARED|DIRECTORIES|FLAGS|INTERFACE_LIBRARIES|INTERFACE_MULTIPLICITY|LIBRARIES|OPTIONS|SEARCH_END_STATIC|SEARCH_START_STATIC|WHAT_YOU_USE)|LISTFILE_STACK|LOCATION|MACOSX_BUNDLE|MACOSX_BUNDLE_INFO_PLIST|MACOSX_FRAMEWORK_INFO_PLIST|MACOSX_PACKAGE_LOCATION|MACOSX_RPATH|MACROS|MANUALLY_ADDED_DEPENDENCIES|MEASUREMENT|MODIFIED|NAME|NO_SONAME|NO_SYSTEM_FROM_IMPORTED|OBJECT_DEPENDS|OBJECT_OUTPUTS|OSX_ARCHITECTURES|OUTPUT_NAME|PACKAGES_FOUND|PACKAGES_NOT_FOUND|PARENT_DIRECTORY|PASS_REGULAR_EXPRESSION|PDB_NAME|PDB_OUTPUT_DIRECTORY|POSITION_INDEPENDENT_CODE|POST_INSTALL_SCRIPT|PREDEFINED_TARGETS_FOLDER|PREFIX|PRE_INSTALL_SCRIPT|PRIVATE_HEADER|PROCESSORS|PROCESSOR_AFFINITY|PROJECT_LABEL|PUBLIC_HEADER|REPORT_UNDEFINED_PROPERTIES|REQUIRED_FILES|RESOURCE|RESOURCE_LOCK|RULE_LAUNCH_COMPILE|RULE_LAUNCH_CUSTOM|RULE_LAUNCH_LINK|RULE_MESSAGES|RUNTIME_OUTPUT_DIRECTORY|RUNTIME_OUTPUT_NAME|RUN_SERIAL|SKIP_AUTOGEN|SKIP_AUTOMOC|SKIP_AUTORCC|SKIP_AUTOUIC|SKIP_BUILD_RPATH|SKIP_RETURN_CODE|SOURCES|SOURCE_DIR|SOVERSION|STATIC_LIBRARY_FLAGS|STATIC_LIBRARY_OPTIONS|STRINGS|SUBDIRECTORIES|SUFFIX|SYMBOLIC|TARGET_ARCHIVES_MAY_BE_SHARED_LIBS|TARGET_MESSAGES|TARGET_SUPPORTS_SHARED_LIBS|TESTS|TEST_INCLUDE_FILE|TEST_INCLUDE_FILES|TIMEOUT|TIMEOUT_AFTER_MATCH|TYPE|USE_FOLDERS|VALUE|VARIABLES|VERSION|VISIBILITY_INLINES_HIDDEN|VS_(?:CONFIGURATION_TYPE|COPY_TO_OUT_DIR|DEBUGGER_(?:COMMAND|COMMAND_ARGUMENTS|ENVIRONMENT|WORKING_DIRECTORY)|DEPLOYMENT_CONTENT|DEPLOYMENT_LOCATION|DOTNET_REFERENCES|DOTNET_REFERENCES_COPY_LOCAL|GLOBAL_KEYWORD|GLOBAL_PROJECT_TYPES|GLOBAL_ROOTNAMESPACE|INCLUDE_IN_VSIX|IOT_STARTUP_TASK|KEYWORD|RESOURCE_GENERATOR|SCC_AUXPATH|SCC_LOCALPATH|SCC_PROJECTNAME|SCC_PROVIDER|SDK_REFERENCES|SHADER_(?:DISABLE_OPTIMIZATIONS|ENABLE_DEBUG|ENTRYPOINT|FLAGS|MODEL|OBJECT_FILE_NAME|OUTPUT_HEADER_FILE|TYPE|VARIABLE_NAME)|STARTUP_PROJECT|TOOL_OVERRIDE|USER_PROPS|WINRT_COMPONENT|WINRT_EXTENSIONS|WINRT_REFERENCES|XAML_TYPE)|WILL_FAIL|WIN32_EXECUTABLE|WINDOWS_EXPORT_ALL_SYMBOLS|WORKING_DIRECTORY|WRAP_EXCLUDE|XCODE_(?:EMIT_EFFECTIVE_PLATFORM_NAME|EXPLICIT_FILE_TYPE|FILE_ATTRIBUTES|LAST_KNOWN_FILE_TYPE|PRODUCT_TYPE|SCHEME_(?:ADDRESS_SANITIZER|ADDRESS_SANITIZER_USE_AFTER_RETURN|ARGUMENTS|DISABLE_MAIN_THREAD_CHECKER|DYNAMIC_LIBRARY_LOADS|DYNAMIC_LINKER_API_USAGE|ENVIRONMENT|EXECUTABLE|GUARD_MALLOC|MAIN_THREAD_CHECKER_STOP|MALLOC_GUARD_EDGES|MALLOC_SCRIBBLE|MALLOC_STACK|THREAD_SANITIZER(?:_STOP)?|UNDEFINED_BEHAVIOUR_SANITIZER(?:_STOP)?|ZOMBIE_OBJECTS))|XCTEST)\\b/,\n keyword: /\\b(?:add_compile_definitions|add_compile_options|add_custom_command|add_custom_target|add_definitions|add_dependencies|add_executable|add_library|add_link_options|add_subdirectory|add_test|aux_source_directory|break|build_command|build_name|cmake_host_system_information|cmake_minimum_required|cmake_parse_arguments|cmake_policy|configure_file|continue|create_test_sourcelist|ctest_build|ctest_configure|ctest_coverage|ctest_empty_binary_directory|ctest_memcheck|ctest_read_custom_files|ctest_run_script|ctest_sleep|ctest_start|ctest_submit|ctest_test|ctest_update|ctest_upload|define_property|else|elseif|enable_language|enable_testing|endforeach|endfunction|endif|endmacro|endwhile|exec_program|execute_process|export|export_library_dependencies|file|find_file|find_library|find_package|find_path|find_program|fltk_wrap_ui|foreach|function|get_cmake_property|get_directory_property|get_filename_component|get_property|get_source_file_property|get_target_property|get_test_property|if|include|include_directories|include_external_msproject|include_guard|include_regular_expression|install|install_files|install_programs|install_targets|link_directories|link_libraries|list|load_cache|load_command|macro|make_directory|mark_as_advanced|math|message|option|output_required_files|project|qt_wrap_cpp|qt_wrap_ui|remove|remove_definitions|return|separate_arguments|set|set_directory_properties|set_property|set_source_files_properties|set_target_properties|set_tests_properties|site_name|source_group|string|subdir_depends|subdirs|target_compile_definitions|target_compile_features|target_compile_options|target_include_directories|target_link_directories|target_link_libraries|target_link_options|target_sources|try_compile|try_run|unset|use_mangled_mesa|utility_source|variable_requires|variable_watch|while|write_file)(?=\\s*\\()\\b/,\n boolean: /\\b(?:ON|OFF|TRUE|FALSE)\\b/,\n namespace: /\\b(?:PROPERTIES|SHARED|PRIVATE|STATIC|PUBLIC|INTERFACE|TARGET_OBJECTS)\\b/,\n operator: /\\b(?:NOT|AND|OR|MATCHES|LESS|GREATER|EQUAL|STRLESS|STRGREATER|STREQUAL|VERSION_LESS|VERSION_EQUAL|VERSION_GREATER|DEFINED)\\b/,\n inserted: {\n pattern: /\\b\\w+::\\w+\\b/,\n alias: 'class-name'\n },\n number: /\\b\\d+(?:\\.\\d+)*\\b/,\n function: /\\b[a-z_]\\w*(?=\\s*\\()\\b/i,\n punctuation: /[()>}]|\\$[<{]/\n }\n}\n","'use strict'\n\nmodule.exports = coffeescript\ncoffeescript.displayName = 'coffeescript'\ncoffeescript.aliases = ['coffee']\nfunction coffeescript(Prism) {\n ;(function (Prism) {\n // Ignore comments starting with { to privilege string interpolation highlighting\n var comment = /#(?!\\{).+/,\n interpolation = {\n pattern: /#\\{[^}]+\\}/,\n alias: 'variable'\n }\n Prism.languages.coffeescript = Prism.languages.extend('javascript', {\n comment: comment,\n string: [\n // Strings are multiline\n {\n pattern: /'(?:\\\\[\\s\\S]|[^\\\\'])*'/,\n greedy: true\n },\n {\n // Strings are multiline\n pattern: /\"(?:\\\\[\\s\\S]|[^\\\\\"])*\"/,\n greedy: true,\n inside: {\n interpolation: interpolation\n }\n }\n ],\n keyword: /\\b(?:and|break|by|catch|class|continue|debugger|delete|do|each|else|extend|extends|false|finally|for|if|in|instanceof|is|isnt|let|loop|namespace|new|no|not|null|of|off|on|or|own|return|super|switch|then|this|throw|true|try|typeof|undefined|unless|until|when|while|window|with|yes|yield)\\b/,\n 'class-member': {\n pattern: /@(?!\\d)\\w+/,\n alias: 'variable'\n }\n })\n Prism.languages.insertBefore('coffeescript', 'comment', {\n 'multiline-comment': {\n pattern: /###[\\s\\S]+?###/,\n alias: 'comment'\n },\n // Block regexp can contain comments and interpolation\n 'block-regex': {\n pattern: /\\/{3}[\\s\\S]*?\\/{3}/,\n alias: 'regex',\n inside: {\n comment: comment,\n interpolation: interpolation\n }\n }\n })\n Prism.languages.insertBefore('coffeescript', 'string', {\n 'inline-javascript': {\n pattern: /`(?:\\\\[\\s\\S]|[^\\\\`])*`/,\n inside: {\n delimiter: {\n pattern: /^`|`$/,\n alias: 'punctuation'\n },\n script: {\n pattern: /[\\s\\S]+/,\n alias: 'language-javascript',\n inside: Prism.languages.javascript\n }\n }\n },\n // Block strings\n 'multiline-string': [\n {\n pattern: /'''[\\s\\S]*?'''/,\n greedy: true,\n alias: 'string'\n },\n {\n pattern: /\"\"\"[\\s\\S]*?\"\"\"/,\n greedy: true,\n alias: 'string',\n inside: {\n interpolation: interpolation\n }\n }\n ]\n })\n Prism.languages.insertBefore('coffeescript', 'keyword', {\n // Object property\n property: /(?!\\d)\\w+(?=\\s*:(?!:))/\n })\n delete Prism.languages.coffeescript['template-string']\n Prism.languages.coffee = Prism.languages.coffeescript\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = concurnas\nconcurnas.displayName = 'concurnas'\nconcurnas.aliases = ['conc']\nfunction concurnas(Prism) {\n Prism.languages.concurnas = {\n comment: [\n {\n pattern: /(^|[^\\\\])\\/\\*[\\s\\S]*?(?:\\*\\/|$)/,\n lookbehind: true\n },\n {\n pattern: /(^|[^\\\\:])\\/\\/.*/,\n lookbehind: true,\n greedy: true\n }\n ],\n langext: {\n pattern: /\\w+\\s*\\|\\|[\\s\\S]+?\\|\\|/,\n greedy: true,\n alias: 'string'\n },\n function: {\n pattern: /((?:^|\\s)def[ \\t]+)[a-zA-Z_]\\w*(?=\\s*\\()/,\n lookbehind: true\n },\n keyword: /\\b(?:abstract|actor|also|annotation|assert|async|await|bool|boolean|break|byte|case|catch|changed|char|class|closed|constant|continue|def|default|del|double|elif|else|enum|every|extends|false|finally|float|for|from|global|gpudef|gpukernel|if|import|in|init|inject|int|lambda|local|long|loop|match|new|nodefault|null|of|onchange|open|out|override|package|parfor|parforsync|post|pre|private|protected|provide|provider|public|return|shared|short|single|size_t|sizeof|super|sync|this|throw|trait|trans|transient|true|try|typedef|unchecked|using|val|var|void|while|with)\\b/,\n boolean: /\\b(?:false|true)\\b/,\n number: /\\b0b[01][01_]*L?\\b|\\b0x(?:[\\da-f_]*\\.)?[\\da-f_p+-]+\\b|(?:\\b\\d[\\d_]*(?:\\.[\\d_]*)?|\\B\\.\\d[\\d_]*)(?:e[+-]?\\d[\\d_]*)?[dfls]?/i,\n punctuation: /[{}[\\];(),.:]/,\n operator: /<==|>==|=>|->|<-|<>|\\^|&==|&<>|!|\\?|\\?:|\\.\\?|\\+\\+|--|[-+*/=<>]=?|\\b(?:and|as|band|bor|bxor|comp|is|isnot|mod|or)\\b=?/,\n annotation: {\n pattern: /@(?:\\w+:)?(?:\\w*|\\[[^\\]]+\\])/,\n alias: 'builtin'\n }\n }\n Prism.languages.insertBefore('concurnas', 'langext', {\n string: {\n pattern: /[rs]?(\"|')(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n greedy: true,\n inside: {\n interpolation: {\n pattern: /((?:^|[^\\\\])(?:\\\\{2})*){(?:[^{}]|{(?:[^{}]|{[^}]*})*})+}/,\n lookbehind: true,\n inside: Prism.languages.concurnas\n },\n string: /[\\s\\S]+/\n }\n }\n })\n Prism.languages.conc = Prism.languages.concurnas\n}\n","'use strict'\nvar refractorRuby = require('./ruby.js')\nmodule.exports = crystal\ncrystal.displayName = 'crystal'\ncrystal.aliases = []\nfunction crystal(Prism) {\n Prism.register(refractorRuby)\n ;(function (Prism) {\n Prism.languages.crystal = Prism.languages.extend('ruby', {\n keyword: [\n /\\b(?:abstract|alias|as|asm|begin|break|case|class|def|do|else|elsif|end|ensure|enum|extend|for|fun|if|include|instance_sizeof|lib|macro|module|next|of|out|pointerof|private|protected|rescue|return|require|select|self|sizeof|struct|super|then|type|typeof|uninitialized|union|unless|until|when|while|with|yield|__DIR__|__END_LINE__|__FILE__|__LINE__)\\b/,\n {\n pattern: /(\\.\\s*)(?:is_a|responds_to)\\?/,\n lookbehind: true\n }\n ],\n number: /\\b(?:0b[01_]*[01]|0o[0-7_]*[0-7]|0x[\\da-fA-F_]*[\\da-fA-F]|(?:\\d(?:[\\d_]*\\d)?)(?:\\.[\\d_]*\\d)?(?:[eE][+-]?[\\d_]*\\d)?)(?:_(?:[uif](?:8|16|32|64))?)?\\b/\n })\n Prism.languages.insertBefore('crystal', 'string', {\n attribute: {\n pattern: /@\\[.+?\\]/,\n alias: 'attr-name',\n inside: {\n delimiter: {\n pattern: /^@\\[|\\]$/,\n alias: 'tag'\n },\n rest: Prism.languages.crystal\n }\n },\n expansion: [\n {\n pattern: /\\{\\{.+?\\}\\}/,\n inside: {\n delimiter: {\n pattern: /^\\{\\{|\\}\\}$/,\n alias: 'tag'\n },\n rest: Prism.languages.crystal\n }\n },\n {\n pattern: /\\{%.+?%\\}/,\n inside: {\n delimiter: {\n pattern: /^\\{%|%\\}$/,\n alias: 'tag'\n },\n rest: Prism.languages.crystal\n }\n }\n ]\n })\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = csp\ncsp.displayName = 'csp'\ncsp.aliases = []\nfunction csp(Prism) {\n /**\n * Original by Scott Helme.\n *\n * Reference: https://scotthelme.co.uk/csp-cheat-sheet/\n *\n * Supports the following:\n * - CSP Level 1\n * - CSP Level 2\n * - CSP Level 3\n */\n Prism.languages.csp = {\n directive: {\n pattern: /(^|[^-\\da-z])(?:base-uri|block-all-mixed-content|(?:child|connect|default|font|frame|img|manifest|media|object|prefetch|script|style|worker)-src|disown-opener|form-action|frame-(?:ancestors|options)|input-protection(?:-(?:clip|selectors))?|navigate-to|plugin-types|policy-uri|referrer|reflected-xss|report-(?:to|uri)|require-sri-for|sandbox|(?:script|style)-src-(?:attr|elem)|upgrade-insecure-requests)(?=[^-\\da-z]|$)/i,\n lookbehind: true,\n alias: 'keyword'\n },\n safe: {\n // CSP2 hashes and nonces are base64 values. CSP3 accepts both base64 and base64url values.\n // See https://tools.ietf.org/html/rfc4648#section-4\n // See https://tools.ietf.org/html/rfc4648#section-5\n pattern: /'(?:deny|none|report-sample|self|strict-dynamic|top-only|(?:nonce|sha(?:256|384|512))-[-+/\\d=_a-z]+)'/i,\n alias: 'selector'\n },\n unsafe: {\n pattern: /(?:'unsafe-(?:allow-redirects|dynamic|eval|hash-attributes|hashed-attributes|hashes|inline)'|\\*)/i,\n alias: 'function'\n }\n }\n}\n","'use strict'\n\nmodule.exports = cssExtras\ncssExtras.displayName = 'cssExtras'\ncssExtras.aliases = []\nfunction cssExtras(Prism) {\n ;(function (Prism) {\n var string = /(\"|')(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/\n var selectorInside\n Prism.languages.css.selector = {\n pattern: Prism.languages.css.selector,\n inside: (selectorInside = {\n 'pseudo-element': /:(?:after|before|first-letter|first-line|selection)|::[-\\w]+/,\n 'pseudo-class': /:[-\\w]+/,\n class: /\\.[-\\w]+/,\n id: /#[-\\w]+/,\n attribute: {\n pattern: RegExp('\\\\[(?:[^[\\\\]\"\\']|' + string.source + ')*\\\\]'),\n greedy: true,\n inside: {\n punctuation: /^\\[|\\]$/,\n 'case-sensitivity': {\n pattern: /(\\s)[si]$/i,\n lookbehind: true,\n alias: 'keyword'\n },\n namespace: {\n pattern: /^(\\s*)(?:(?!\\s)[-*\\w\\xA0-\\uFFFF])*\\|(?!=)/,\n lookbehind: true,\n inside: {\n punctuation: /\\|$/\n }\n },\n 'attr-name': {\n pattern: /^(\\s*)(?:(?!\\s)[-\\w\\xA0-\\uFFFF])+/,\n lookbehind: true\n },\n 'attr-value': [\n string,\n {\n pattern: /(=\\s*)(?:(?!\\s)[-\\w\\xA0-\\uFFFF])+(?=\\s*$)/,\n lookbehind: true\n }\n ],\n operator: /[|~*^$]?=/\n }\n },\n 'n-th': [\n {\n pattern: /(\\(\\s*)[+-]?\\d*[\\dn](?:\\s*[+-]\\s*\\d+)?(?=\\s*\\))/,\n lookbehind: true,\n inside: {\n number: /[\\dn]+/,\n operator: /[+-]/\n }\n },\n {\n pattern: /(\\(\\s*)(?:even|odd)(?=\\s*\\))/i,\n lookbehind: true\n }\n ],\n combinator: />|\\+|~|\\|\\|/,\n // the `tag` token has been existed and removed.\n // because we can't find a perfect tokenize to match it.\n // if you want to add it, please read https://github.com/PrismJS/prism/pull/2373 first.\n punctuation: /[(),]/\n })\n }\n Prism.languages.css['atrule'].inside[\n 'selector-function-argument'\n ].inside = selectorInside\n Prism.languages.insertBefore('css', 'property', {\n variable: {\n pattern: /(^|[^-\\w\\xA0-\\uFFFF])--(?!\\s)[-_a-z\\xA0-\\uFFFF](?:(?!\\s)[-\\w\\xA0-\\uFFFF])*/i,\n lookbehind: true\n }\n })\n var unit = {\n pattern: /(\\b\\d+)(?:%|[a-z]+\\b)/,\n lookbehind: true\n } // 123 -123 .123 -.123 12.3 -12.3\n var number = {\n pattern: /(^|[^\\w.-])-?(?:\\d+(?:\\.\\d+)?|\\.\\d+)/,\n lookbehind: true\n }\n Prism.languages.insertBefore('css', 'function', {\n operator: {\n pattern: /(\\s)[+\\-*\\/](?=\\s)/,\n lookbehind: true\n },\n // CAREFUL!\n // Previewers and Inline color use hexcode and color.\n hexcode: {\n pattern: /\\B#(?:[\\da-f]{1,2}){3,4}\\b/i,\n alias: 'color'\n },\n color: [\n /\\b(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)\\b/i,\n {\n pattern: /\\b(?:rgb|hsl)\\(\\s*\\d{1,3}\\s*,\\s*\\d{1,3}%?\\s*,\\s*\\d{1,3}%?\\s*\\)\\B|\\b(?:rgb|hsl)a\\(\\s*\\d{1,3}\\s*,\\s*\\d{1,3}%?\\s*,\\s*\\d{1,3}%?\\s*,\\s*(?:0|0?\\.\\d+|1)\\s*\\)\\B/i,\n inside: {\n unit: unit,\n number: number,\n function: /[\\w-]+(?=\\()/,\n punctuation: /[(),]/\n }\n }\n ],\n // it's important that there is no boundary assertion after the hex digits\n entity: /\\\\[\\da-f]{1,8}/i,\n unit: unit,\n number: number\n })\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = cypher\ncypher.displayName = 'cypher'\ncypher.aliases = []\nfunction cypher(Prism) {\n Prism.languages.cypher = {\n // https://neo4j.com/docs/cypher-manual/current/syntax/comments/\n comment: /\\/\\/.*/,\n string: {\n pattern: /\"(?:[^\"\\\\\\r\\n]|\\\\.)*\"|'(?:[^'\\\\\\r\\n]|\\\\.)*'/,\n greedy: true\n },\n 'class-name': {\n pattern: /(:\\s*)(?:\\w+|`(?:[^`\\\\\\r\\n])*`)(?=\\s*[{):])/,\n lookbehind: true,\n greedy: true\n },\n relationship: {\n pattern: /(-\\[\\s*(?:\\w+\\s*|`(?:[^`\\\\\\r\\n])*`\\s*)?:\\s*|\\|\\s*:\\s*)(?:\\w+|`(?:[^`\\\\\\r\\n])*`)/,\n lookbehind: true,\n greedy: true,\n alias: 'property'\n },\n identifier: {\n pattern: /`(?:[^`\\\\\\r\\n])*`/,\n greedy: true,\n alias: 'symbol'\n },\n variable: /\\$\\w+/,\n // https://neo4j.com/docs/cypher-manual/current/syntax/reserved/\n keyword: /\\b(?:ADD|ALL|AND|AS|ASC|ASCENDING|ASSERT|BY|CALL|CASE|COMMIT|CONSTRAINT|CONTAINS|CREATE|CSV|DELETE|DESC|DESCENDING|DETACH|DISTINCT|DO|DROP|ELSE|END|ENDS|EXISTS|FOR|FOREACH|IN|INDEX|IS|JOIN|KEY|LIMIT|LOAD|MANDATORY|MATCH|MERGE|NODE|NOT|OF|ON|OPTIONAL|OR|ORDER(?=\\s+BY)|PERIODIC|REMOVE|REQUIRE|RETURN|SCALAR|SCAN|SET|SKIP|START|STARTS|THEN|UNION|UNIQUE|UNWIND|USING|WHEN|WHERE|WITH|XOR|YIELD)\\b/i,\n function: /\\b\\w+\\b(?=\\s*\\()/,\n boolean: /\\b(?:true|false|null)\\b/i,\n number: /\\b(?:0x[\\da-fA-F]+|\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?)\\b/,\n // https://neo4j.com/docs/cypher-manual/current/syntax/operators/\n operator: /:|<--?|--?>?|<>|=~?|[<>]=?|[+*/%^|]|\\.\\.\\.?/,\n punctuation: /[()[\\]{},;.]/\n }\n}\n","'use strict'\n\nmodule.exports = d\nd.displayName = 'd'\nd.aliases = []\nfunction d(Prism) {\n Prism.languages.d = Prism.languages.extend('clike', {\n comment: [\n {\n // Shebang\n pattern: /^\\s*#!.+/,\n greedy: true\n },\n {\n pattern: RegExp(\n /(^|[^\\\\])/.source +\n '(?:' +\n [\n // /+ comment +/\n // Allow one level of nesting\n /\\/\\+(?:\\/\\+(?:[^+]|\\+(?!\\/))*\\+\\/|(?!\\/\\+)[\\s\\S])*?\\+\\//.source, // // comment\n /\\/\\/.*/.source, // /* comment */\n /\\/\\*[\\s\\S]*?\\*\\//.source\n ].join('|') +\n ')'\n ),\n lookbehind: true,\n greedy: true\n }\n ],\n string: [\n {\n pattern: RegExp(\n [\n // r\"\", x\"\"\n /\\b[rx]\"(?:\\\\[\\s\\S]|[^\\\\\"])*\"[cwd]?/.source, // q\"[]\", q\"()\", q\"<>\", q\"{}\"\n /\\bq\"(?:\\[[\\s\\S]*?\\]|\\([\\s\\S]*?\\)|<[\\s\\S]*?>|\\{[\\s\\S]*?\\})\"/.source, // q\"IDENT\n // ...\n // IDENT\"\n /\\bq\"((?!\\d)\\w+)$[\\s\\S]*?^\\1\"/.source, // q\"//\", q\"||\", etc.\n /\\bq\"(.)[\\s\\S]*?\\2\"/.source, // Characters\n // 'a', '\\\\', '\\n', '\\xFF', '\\377', '\\uFFFF', '\\U0010FFFF', '\\quot'\n /'(?:\\\\(?:\\W|\\w+)|[^\\\\])'/.source,\n /([\"`])(?:\\\\[\\s\\S]|(?!\\3)[^\\\\])*\\3[cwd]?/.source\n ].join('|'),\n 'm'\n ),\n greedy: true\n },\n {\n pattern: /\\bq\\{(?:\\{[^{}]*\\}|[^{}])*\\}/,\n greedy: true,\n alias: 'token-string'\n }\n ],\n // In order: $, keywords and special tokens, globally defined symbols\n keyword: /\\$|\\b(?:abstract|alias|align|asm|assert|auto|body|bool|break|byte|case|cast|catch|cdouble|cent|cfloat|char|class|const|continue|creal|dchar|debug|default|delegate|delete|deprecated|do|double|else|enum|export|extern|false|final|finally|float|for|foreach|foreach_reverse|function|goto|idouble|if|ifloat|immutable|import|inout|int|interface|invariant|ireal|lazy|long|macro|mixin|module|new|nothrow|null|out|override|package|pragma|private|protected|public|pure|real|ref|return|scope|shared|short|static|struct|super|switch|synchronized|template|this|throw|true|try|typedef|typeid|typeof|ubyte|ucent|uint|ulong|union|unittest|ushort|version|void|volatile|wchar|while|with|__(?:(?:FILE|MODULE|LINE|FUNCTION|PRETTY_FUNCTION|DATE|EOF|TIME|TIMESTAMP|VENDOR|VERSION)__|gshared|traits|vector|parameters)|string|wstring|dstring|size_t|ptrdiff_t)\\b/,\n number: [\n // The lookbehind and the negative look-ahead try to prevent bad highlighting of the .. operator\n // Hexadecimal numbers must be handled separately to avoid problems with exponent \"e\"\n /\\b0x\\.?[a-f\\d_]+(?:(?!\\.\\.)\\.[a-f\\d_]*)?(?:p[+-]?[a-f\\d_]+)?[ulfi]{0,4}/i,\n {\n pattern: /((?:\\.\\.)?)(?:\\b0b\\.?|\\b|\\.)\\d[\\d_]*(?:(?!\\.\\.)\\.[\\d_]*)?(?:e[+-]?\\d[\\d_]*)?[ulfi]{0,4}/i,\n lookbehind: true\n }\n ],\n operator: /\\|[|=]?|&[&=]?|\\+[+=]?|-[-=]?|\\.?\\.\\.|=[>=]?|!(?:i[ns]\\b|<>?=?|>=?|=)?|\\bi[ns]\\b|(?:<[<>]?|>>?>?|\\^\\^|[*\\/%^~])=?/\n })\n Prism.languages.insertBefore('d', 'keyword', {\n property: /\\B@\\w*/\n })\n Prism.languages.insertBefore('d', 'function', {\n register: {\n // Iasm registers\n pattern: /\\b(?:[ABCD][LHX]|E[ABCD]X|E?(?:BP|SP|DI|SI)|[ECSDGF]S|CR[0234]|DR[012367]|TR[3-7]|X?MM[0-7]|R[ABCD]X|[BS]PL|R[BS]P|[DS]IL|R[DS]I|R(?:[89]|1[0-5])[BWD]?|XMM(?:[89]|1[0-5])|YMM(?:1[0-5]|\\d))\\b|\\bST(?:\\([0-7]\\)|\\b)/,\n alias: 'variable'\n }\n })\n}\n","'use strict'\n\nmodule.exports = dart\ndart.displayName = 'dart'\ndart.aliases = []\nfunction dart(Prism) {\n Prism.languages.dart = Prism.languages.extend('clike', {\n string: [\n {\n pattern: /r?(\"\"\"|''')[\\s\\S]*?\\1/,\n greedy: true\n },\n {\n pattern: /r?(\"|')(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n greedy: true\n }\n ],\n keyword: [\n /\\b(?:async|sync|yield)\\*/,\n /\\b(?:abstract|assert|async|await|break|case|catch|class|const|continue|covariant|default|deferred|do|dynamic|else|enum|export|extension|external|extends|factory|final|finally|for|Function|get|hide|if|implements|interface|import|in|library|mixin|new|null|on|operator|part|rethrow|return|set|show|static|super|switch|sync|this|throw|try|typedef|var|void|while|with|yield)\\b/\n ],\n operator: /\\bis!|\\b(?:as|is)\\b|\\+\\+|--|&&|\\|\\||<<=?|>>=?|~(?:\\/=?)?|[+\\-*\\/%&^|=!<>]=?|\\?/\n })\n Prism.languages.insertBefore('dart', 'function', {\n metadata: {\n pattern: /@\\w+/,\n alias: 'symbol'\n }\n })\n}\n","'use strict'\n\nmodule.exports = dataweave\ndataweave.displayName = 'dataweave'\ndataweave.aliases = []\nfunction dataweave(Prism) {\n ;(function (Prism) {\n Prism.languages.dataweave = {\n url: /\\b[A-Za-z]+:\\/\\/[\\w/:.?=&-]+|\\burn:[\\w:.?=&-]+/,\n property: {\n pattern: /(?:\\w+#)?(?:\"(?:\\\\.|[^\\\\\"\\r\\n])*\"|\\w+)(?=\\s*[:@])/,\n greedy: true\n },\n string: {\n pattern: /([\"'`])(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1/,\n greedy: true\n },\n 'mime-type': /\\b(?:text|audio|video|application|multipart|image)\\/[\\w+-]+/,\n date: {\n pattern: /\\|[\\w:+-]+\\|/,\n greedy: true\n },\n comment: [\n {\n pattern: /(^|[^\\\\])\\/\\*[\\s\\S]*?(?:\\*\\/|$)/,\n lookbehind: true,\n greedy: true\n },\n {\n pattern: /(^|[^\\\\:])\\/\\/.*/,\n lookbehind: true,\n greedy: true\n }\n ],\n regex: {\n pattern: /\\/(?:[^\\\\\\/\\r\\n]|\\\\[^\\r\\n])+\\//,\n greedy: true\n },\n function: /\\b[A-Za-z_]\\w*(?=\\s*\\()/i,\n number: /-?\\b\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?\\b/i,\n punctuation: /[{}[\\];(),.:@]/,\n operator: /<<|>>|->|[<>~=]=?|!=|--?-?|\\+\\+?|\\!|\\?/,\n boolean: /\\b(?:true|false)\\b/,\n keyword: /\\b(?:match|input|output|ns|type|update|null|if|else|using|unless|at|is|as|case|do|fun|var|not|and|or)\\b/\n }\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = dax\ndax.displayName = 'dax'\ndax.aliases = []\nfunction dax(Prism) {\n Prism.languages.dax = {\n comment: {\n pattern: /(^|[^\\\\])(?:\\/\\*[\\s\\S]*?\\*\\/|(?:--|\\/\\/).*)/,\n lookbehind: true\n },\n 'data-field': {\n pattern: /'(?:[^']|'')*'(?!')(?:\\[[ \\w\\xA0-\\uFFFF]+\\])?|\\w+\\[[ \\w\\xA0-\\uFFFF]+\\]/,\n alias: 'symbol'\n },\n measure: {\n pattern: /\\[[ \\w\\xA0-\\uFFFF]+\\]/,\n alias: 'constant'\n },\n string: {\n pattern: /\"(?:[^\"]|\"\")*\"(?!\")/,\n greedy: true\n },\n function: /\\b(?:ABS|ACOS|ACOSH|ACOT|ACOTH|ADDCOLUMNS|ADDMISSINGITEMS|ALL|ALLCROSSFILTERED|ALLEXCEPT|ALLNOBLANKROW|ALLSELECTED|AND|APPROXIMATEDISTINCTCOUNT|ASIN|ASINH|ATAN|ATANH|AVERAGE|AVERAGEA|AVERAGEX|BETA\\.DIST|BETA\\.INV|BLANK|CALCULATE|CALCULATETABLE|CALENDAR|CALENDARAUTO|CEILING|CHISQ\\.DIST|CHISQ\\.DIST\\.RT|CHISQ\\.INV|CHISQ\\.INV\\.RT|CLOSINGBALANCEMONTH|CLOSINGBALANCEQUARTER|CLOSINGBALANCEYEAR|COALESCE|COMBIN|COMBINA|COMBINEVALUES|CONCATENATE|CONCATENATEX|CONFIDENCE\\.NORM|CONFIDENCE\\.T|CONTAINS|CONTAINSROW|CONTAINSSTRING|CONTAINSSTRINGEXACT|CONVERT|COS|COSH|COT|COTH|COUNT|COUNTA|COUNTAX|COUNTBLANK|COUNTROWS|COUNTX|CROSSFILTER|CROSSJOIN|CURRENCY|CURRENTGROUP|CUSTOMDATA|DATATABLE|DATE|DATEADD|DATEDIFF|DATESBETWEEN|DATESINPERIOD|DATESMTD|DATESQTD|DATESYTD|DATEVALUE|DAY|DEGREES|DETAILROWS|DISTINCT|DISTINCTCOUNT|DISTINCTCOUNTNOBLANK|DIVIDE|EARLIER|EARLIEST|EDATE|ENDOFMONTH|ENDOFQUARTER|ENDOFYEAR|EOMONTH|ERROR|EVEN|EXACT|EXCEPT|EXP|EXPON\\.DIST|FACT|FALSE|FILTER|FILTERS|FIND|FIRSTDATE|FIRSTNONBLANK|FIRSTNONBLANKVALUE|FIXED|FLOOR|FORMAT|GCD|GENERATE|GENERATEALL|GENERATESERIES|GEOMEAN|GEOMEANX|GROUPBY|HASONEFILTER|HASONEVALUE|HOUR|IF|IF\\.EAGER|IFERROR|IGNORE|INT|INTERSECT|ISBLANK|ISCROSSFILTERED|ISEMPTY|ISERROR|ISEVEN|ISFILTERED|ISINSCOPE|ISLOGICAL|ISNONTEXT|ISNUMBER|ISO\\.CEILING|ISODD|ISONORAFTER|ISSELECTEDMEASURE|ISSUBTOTAL|ISTEXT|KEEPFILTERS|KEYWORDMATCH|LASTDATE|LASTNONBLANK|LASTNONBLANKVALUE|LCM|LEFT|LEN|LN|LOG|LOG10|LOOKUPVALUE|LOWER|MAX|MAXA|MAXX|MEDIAN|MEDIANX|MID|MIN|MINA|MINUTE|MINX|MOD|MONTH|MROUND|NATURALINNERJOIN|NATURALLEFTOUTERJOIN|NEXTDAY|NEXTMONTH|NEXTQUARTER|NEXTYEAR|NONVISUAL|NORM\\.DIST|NORM\\.INV|NORM\\.S\\.DIST|NORM\\.S\\.INV|NOT|NOW|ODD|OPENINGBALANCEMONTH|OPENINGBALANCEQUARTER|OPENINGBALANCEYEAR|OR|PARALLELPERIOD|PATH|PATHCONTAINS|PATHITEM|PATHITEMREVERSE|PATHLENGTH|PERCENTILE\\.EXC|PERCENTILE\\.INC|PERCENTILEX\\.EXC|PERCENTILEX\\.INC|PERMUT|PI|POISSON\\.DIST|POWER|PREVIOUSDAY|PREVIOUSMONTH|PREVIOUSQUARTER|PREVIOUSYEAR|PRODUCT|PRODUCTX|QUARTER|QUOTIENT|RADIANS|RAND|RANDBETWEEN|RANK\\.EQ|RANKX|RELATED|RELATEDTABLE|REMOVEFILTERS|REPLACE|REPT|RIGHT|ROLLUP|ROLLUPADDISSUBTOTAL|ROLLUPGROUP|ROLLUPISSUBTOTAL|ROUND|ROUNDDOWN|ROUNDUP|ROW|SAMEPERIODLASTYEAR|SAMPLE|SEARCH|SECOND|SELECTCOLUMNS|SELECTEDMEASURE|SELECTEDMEASUREFORMATSTRING|SELECTEDMEASURENAME|SELECTEDVALUE|SIGN|SIN|SINH|SQRT|SQRTPI|STARTOFMONTH|STARTOFQUARTER|STARTOFYEAR|STDEV\\.P|STDEV\\.S|STDEVX\\.P|STDEVX\\.S|SUBSTITUTE|SUBSTITUTEWITHINDEX|SUM|SUMMARIZE|SUMMARIZECOLUMNS|SUMX|SWITCH|T\\.DIST|T\\.DIST\\.2T|T\\.DIST\\.RT|T\\.INV|T\\.INV\\.2T|TAN|TANH|TIME|TIMEVALUE|TODAY|TOPN|TOPNPERLEVEL|TOPNSKIP|TOTALMTD|TOTALQTD|TOTALYTD|TREATAS|TRIM|TRUE|TRUNC|UNICHAR|UNICODE|UNION|UPPER|USERELATIONSHIP|USERNAME|USEROBJECTID|USERPRINCIPALNAME|UTCNOW|UTCTODAY|VALUE|VALUES|VAR\\.P|VAR\\.S|VARX\\.P|VARX\\.S|WEEKDAY|WEEKNUM|XIRR|XNPV|YEAR|YEARFRAC)(?=\\s*\\()/i,\n keyword: /\\b(?:DEFINE|MEASURE|EVALUATE|ORDER\\s+BY|RETURN|VAR|START\\s+AT|ASC|DESC)\\b/i,\n boolean: {\n pattern: /\\b(?:TRUE|FALSE|NULL)\\b/i,\n alias: 'constant'\n },\n number: /\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+\\b/i,\n operator: /:=|[-+*\\/=^]|&&?|\\|\\||<(?:=>?|<|>)?|>[>=]?|\\b(?:IN|NOT)\\b/i,\n punctuation: /[;\\[\\](){}`,.]/\n }\n}\n","'use strict'\n\nmodule.exports = dhall\ndhall.displayName = 'dhall'\ndhall.aliases = []\nfunction dhall(Prism) {\n // ABNF grammar:\n // https://github.com/dhall-lang/dhall-lang/blob/master/standard/dhall.abnf\n Prism.languages.dhall = {\n // Multi-line comments can be nested. E.g. {- foo {- bar -} -}\n // The multi-line pattern is essentially this:\n // \\{-(?:[^-{]|-(?!\\})|\\{(?!-)|<SELF>)*-\\}\n comment: /--.*|\\{-(?:[^-{]|-(?!\\})|\\{(?!-)|\\{-(?:[^-{]|-(?!\\})|\\{(?!-))*-\\})*-\\}/,\n string: {\n pattern: /\"(?:[^\"\\\\]|\\\\.)*\"|''(?:[^']|'(?!')|'''|''\\$\\{)*''(?!'|\\$)/,\n greedy: true,\n inside: {\n interpolation: {\n pattern: /\\$\\{[^{}]*\\}/,\n inside: {\n expression: {\n pattern: /(^\\$\\{)[\\s\\S]+(?=\\}$)/,\n lookbehind: true,\n alias: 'language-dhall',\n inside: null // see blow\n },\n punctuation: /\\$\\{|\\}/\n }\n }\n }\n },\n label: {\n pattern: /`[^`]*`/,\n greedy: true\n },\n url: {\n // https://github.com/dhall-lang/dhall-lang/blob/5fde8ef1bead6fb4e999d3c1ffe7044cd019d63a/standard/dhall.abnf#L596\n pattern: /\\bhttps?:\\/\\/[\\w.:%!$&'*+;=@~-]+(?:\\/[\\w.:%!$&'*+;=@~-]*)*(?:\\?[/?\\w.:%!$&'*+;=@~-]*)?/,\n greedy: true\n },\n env: {\n // https://github.com/dhall-lang/dhall-lang/blob/5fde8ef1bead6fb4e999d3c1ffe7044cd019d63a/standard/dhall.abnf#L661\n pattern: /\\benv:(?:(?!\\d)\\w+|\"(?:[^\"\\\\=]|\\\\.)*\")/,\n greedy: true,\n inside: {\n function: /^env/,\n operator: /^:/,\n variable: /[\\s\\S]+/\n }\n },\n hash: {\n // https://github.com/dhall-lang/dhall-lang/blob/5fde8ef1bead6fb4e999d3c1ffe7044cd019d63a/standard/dhall.abnf#L725\n pattern: /\\bsha256:[\\da-fA-F]{64}\\b/,\n inside: {\n function: /sha256/,\n operator: /:/,\n number: /[\\da-fA-F]{64}/\n }\n },\n // https://github.com/dhall-lang/dhall-lang/blob/5fde8ef1bead6fb4e999d3c1ffe7044cd019d63a/standard/dhall.abnf#L359\n keyword: /\\b(?:as|assert|else|forall|if|in|let|merge|missing|then|toMap|using|with)\\b|\\u2200/,\n builtin: /\\b(?:Some|None)\\b/,\n boolean: /\\b(?:False|True)\\b/,\n number: /\\bNaN\\b|-?\\bInfinity\\b|[+-]?\\b(?:0x[\\da-fA-F]+|\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?)\\b/,\n operator: /\\/\\\\|\\/\\/\\\\\\\\|&&|\\|\\||[!=]=|===|\\/\\/|->|\\+\\+|::|[+*#@=:?<>|\\\\\\u2227\\u2a53\\u2261\\u2afd\\u03bb\\u2192]/,\n punctuation: /\\.\\.|[{}\\[\\](),./]/,\n // we'll just assume that every capital word left is a type name\n 'class-name': /\\b[A-Z]\\w*\\b/\n }\n Prism.languages.dhall.string.inside.interpolation.inside.expression.inside =\n Prism.languages.dhall\n}\n","'use strict'\n\nmodule.exports = diff\ndiff.displayName = 'diff'\ndiff.aliases = []\nfunction diff(Prism) {\n ;(function (Prism) {\n Prism.languages.diff = {\n coord: [\n // Match all kinds of coord lines (prefixed by \"+++\", \"---\" or \"***\").\n /^(?:\\*{3}|-{3}|\\+{3}).*$/m, // Match \"@@ ... @@\" coord lines in unified diff.\n /^@@.*@@$/m, // Match coord lines in normal diff (starts with a number).\n /^\\d.*$/m\n ] // deleted, inserted, unchanged, diff\n }\n /**\n * A map from the name of a block to its line prefix.\n *\n * @type {Object<string, string>}\n */\n var PREFIXES = {\n 'deleted-sign': '-',\n 'deleted-arrow': '<',\n 'inserted-sign': '+',\n 'inserted-arrow': '>',\n unchanged: ' ',\n diff: '!'\n } // add a token for each prefix\n Object.keys(PREFIXES).forEach(function (name) {\n var prefix = PREFIXES[name]\n var alias = []\n if (!/^\\w+$/.test(name)) {\n // \"deleted-sign\" -> \"deleted\"\n alias.push(/\\w+/.exec(name)[0])\n }\n if (name === 'diff') {\n alias.push('bold')\n }\n Prism.languages.diff[name] = {\n pattern: RegExp(\n '^(?:[' + prefix + '].*(?:\\r\\n?|\\n|(?![\\\\s\\\\S])))+',\n 'm'\n ),\n alias: alias,\n inside: {\n line: {\n pattern: /(.)(?=[\\s\\S]).*(?:\\r\\n?|\\n)?/,\n lookbehind: true\n },\n prefix: {\n pattern: /[\\s\\S]/,\n alias: /\\w+/.exec(name)[0]\n }\n }\n }\n }) // make prefixes available to Diff plugin\n Object.defineProperty(Prism.languages.diff, 'PREFIXES', {\n value: PREFIXES\n })\n })(Prism)\n}\n","'use strict'\nvar refractorMarkupTemplating = require('./markup-templating.js')\nmodule.exports = django\ndjango.displayName = 'django'\ndjango.aliases = ['jinja2']\nfunction django(Prism) {\n Prism.register(refractorMarkupTemplating)\n // Django/Jinja2 syntax definition for Prism.js <http://prismjs.com> syntax highlighter.\n // Mostly it works OK but can paint code incorrectly on complex html/template tag combinations.\n ;(function (Prism) {\n Prism.languages.django = {\n comment: /^{#[\\s\\S]*?#}$/,\n tag: {\n pattern: /(^{%[+-]?\\s*)\\w+/,\n lookbehind: true,\n alias: 'keyword'\n },\n delimiter: {\n pattern: /^{[{%][+-]?|[+-]?[}%]}$/,\n alias: 'punctuation'\n },\n string: {\n pattern: /(\"|')(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n greedy: true\n },\n filter: {\n pattern: /(\\|)\\w+/,\n lookbehind: true,\n alias: 'function'\n },\n test: {\n pattern: /(\\bis\\s+(?:not\\s+)?)(?!not\\b)\\w+/,\n lookbehind: true,\n alias: 'function'\n },\n function: /\\b[a-z_]\\w+(?=\\s*\\()/i,\n keyword: /\\b(?:and|as|by|else|for|if|import|in|is|loop|not|or|recursive|with|without)\\b/,\n operator: /[-+*/%=]=?|!=|\\*\\*?=?|\\/\\/?=?|<[<=>]?|>[=>]?|[&|^~]/,\n number: /\\b\\d+(?:\\.\\d+)?\\b/,\n boolean: /[Tt]rue|[Ff]alse|[Nn]one/,\n variable: /\\b\\w+?\\b/,\n punctuation: /[{}[\\](),.:;]/\n }\n var pattern = /{{[\\s\\S]*?}}|{%[\\s\\S]*?%}|{#[\\s\\S]*?#}/g\n var markupTemplating = Prism.languages['markup-templating']\n Prism.hooks.add('before-tokenize', function (env) {\n markupTemplating.buildPlaceholders(env, 'django', pattern)\n })\n Prism.hooks.add('after-tokenize', function (env) {\n markupTemplating.tokenizePlaceholders(env, 'django')\n }) // Add an Jinja2 alias\n Prism.languages.jinja2 = Prism.languages.django\n Prism.hooks.add('before-tokenize', function (env) {\n markupTemplating.buildPlaceholders(env, 'jinja2', pattern)\n })\n Prism.hooks.add('after-tokenize', function (env) {\n markupTemplating.tokenizePlaceholders(env, 'jinja2')\n })\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = dnsZoneFile\ndnsZoneFile.displayName = 'dnsZoneFile'\ndnsZoneFile.aliases = []\nfunction dnsZoneFile(Prism) {\n Prism.languages['dns-zone-file'] = {\n comment: /;.*/,\n string: {\n pattern: /\"(?:\\\\.|[^\"\\\\\\r\\n])*\"/,\n greedy: true\n },\n variable: [\n {\n pattern: /(^\\$ORIGIN[ \\t]+)\\S+/m,\n lookbehind: true\n },\n {\n pattern: /(^|\\s)@(?=\\s|$)/,\n lookbehind: true\n }\n ],\n keyword: /^\\$(?:ORIGIN|INCLUDE|TTL)(?=\\s|$)/m,\n class: {\n // https://tools.ietf.org/html/rfc1035#page-13\n pattern: /(^|\\s)(?:IN|CH|CS|HS)(?=\\s|$)/,\n lookbehind: true,\n alias: 'keyword'\n },\n type: {\n // https://en.wikipedia.org/wiki/List_of_DNS_record_types\n pattern: /(^|\\s)(?:A|A6|AAAA|AFSDB|APL|ATMA|CAA|CDNSKEY|CDS|CERT|CNAME|DHCID|DLV|DNAME|DNSKEY|DS|EID|GID|GPOS|HINFO|HIP|IPSECKEY|ISDN|KEY|KX|LOC|MAILA|MAILB|MB|MD|MF|MG|MINFO|MR|MX|NAPTR|NB|NBSTAT|NIMLOC|NINFO|NS|NSAP|NSAP-PTR|NSEC|NSEC3|NSEC3PARAM|NULL|NXT|OPENPGPKEY|PTR|PX|RKEY|RP|RRSIG|RT|SIG|SINK|SMIMEA|SOA|SPF|SRV|SSHFP|TA|TKEY|TLSA|TSIG|TXT|UID|UINFO|UNSPEC|URI|WKS|X25)(?=\\s|$)/,\n lookbehind: true,\n alias: 'keyword'\n },\n punctuation: /[()]/\n }\n Prism.languages['dns-zone'] = Prism.languages['dns-zone-file']\n}\n","'use strict'\n\nmodule.exports = docker\ndocker.displayName = 'docker'\ndocker.aliases = ['dockerfile']\nfunction docker(Prism) {\n Prism.languages.docker = {\n keyword: {\n pattern: /(^\\s*)(?:ADD|ARG|CMD|COPY|ENTRYPOINT|ENV|EXPOSE|FROM|HEALTHCHECK|LABEL|MAINTAINER|ONBUILD|RUN|SHELL|STOPSIGNAL|USER|VOLUME|WORKDIR)(?=\\s)/im,\n lookbehind: true\n },\n string: /(\"|')(?:(?!\\1)[^\\\\\\r\\n]|\\\\(?:\\r\\n|[\\s\\S]))*\\1/,\n comment: {\n pattern: /#.*/,\n greedy: true\n },\n punctuation: /---|\\.\\.\\.|[:[\\]{}\\-,|>?]/\n }\n Prism.languages.dockerfile = Prism.languages.docker\n}\n","'use strict'\n\nmodule.exports = ebnf\nebnf.displayName = 'ebnf'\nebnf.aliases = []\nfunction ebnf(Prism) {\n Prism.languages.ebnf = {\n comment: /\\(\\*[\\s\\S]*?\\*\\)/,\n string: {\n pattern: /\"[^\"\\r\\n]*\"|'[^'\\r\\n]*'/,\n greedy: true\n },\n special: {\n pattern: /\\?[^?\\r\\n]*\\?/,\n greedy: true,\n alias: 'class-name'\n },\n definition: {\n pattern: /^(\\s*)[a-z]\\w*(?:[ \\t]+[a-z]\\w*)*(?=\\s*=)/im,\n lookbehind: true,\n alias: ['rule', 'keyword']\n },\n rule: /\\b[a-z]\\w*(?:[ \\t]+[a-z]\\w*)*\\b/i,\n punctuation: /\\([:/]|[:/]\\)|[.,;()[\\]{}]/,\n operator: /[-=|*/!]/\n }\n}\n","'use strict'\n\nmodule.exports = editorconfig\neditorconfig.displayName = 'editorconfig'\neditorconfig.aliases = []\nfunction editorconfig(Prism) {\n Prism.languages.editorconfig = {\n // https://editorconfig-specification.readthedocs.io/en/latest/\n comment: /[;#].*/,\n section: {\n pattern: /(^[ \\t]*)\\[.+]/m,\n lookbehind: true,\n alias: 'keyword',\n inside: {\n regex: /\\\\\\\\[\\[\\]{},!?.*]/,\n // Escape special characters with '\\\\'\n operator: /[!?]|\\.\\.|\\*{1,2}/,\n punctuation: /[\\[\\]{},]/\n }\n },\n property: {\n pattern: /(^[ \\t]*)[^\\s=]+(?=[ \\t]*=)/m,\n lookbehind: true\n },\n value: {\n pattern: /=.*/,\n alias: 'string',\n inside: {\n punctuation: /^=/\n }\n }\n }\n}\n","'use strict'\n\nmodule.exports = eiffel\neiffel.displayName = 'eiffel'\neiffel.aliases = []\nfunction eiffel(Prism) {\n Prism.languages.eiffel = {\n comment: /--.*/,\n string: [\n // Aligned-verbatim-strings\n {\n pattern: /\"([^[]*)\\[[\\s\\S]*?\\]\\1\"/,\n greedy: true\n }, // Non-aligned-verbatim-strings\n {\n pattern: /\"([^{]*)\\{[\\s\\S]*?\\}\\1\"/,\n greedy: true\n }, // Single-line string\n {\n pattern: /\"(?:%(?:(?!\\n)\\s)*\\n\\s*%|%\\S|[^%\"\\r\\n])*\"/,\n greedy: true\n }\n ],\n // normal char | special char | char code\n char: /'(?:%.|[^%'\\r\\n])+'/,\n keyword: /\\b(?:across|agent|alias|all|and|attached|as|assign|attribute|check|class|convert|create|Current|debug|deferred|detachable|do|else|elseif|end|ensure|expanded|export|external|feature|from|frozen|if|implies|inherit|inspect|invariant|like|local|loop|not|note|obsolete|old|once|or|Precursor|redefine|rename|require|rescue|Result|retry|select|separate|some|then|undefine|until|variant|Void|when|xor)\\b/i,\n boolean: /\\b(?:True|False)\\b/i,\n // Convention: class-names are always all upper-case characters\n 'class-name': {\n pattern: /\\b[A-Z][\\dA-Z_]*\\b/,\n alias: 'builtin'\n },\n number: [\n // hexa | octal | bin\n /\\b0[xcb][\\da-f](?:_*[\\da-f])*\\b/i, // Decimal\n /(?:\\b\\d(?:_*\\d)*)?\\.(?:(?:\\d(?:_*\\d)*)?e[+-]?)?\\d(?:_*\\d)*\\b|\\b\\d(?:_*\\d)*\\b\\.?/i\n ],\n punctuation: /:=|<<|>>|\\(\\||\\|\\)|->|\\.(?=\\w)|[{}[\\];(),:?]/,\n operator: /\\\\\\\\|\\|\\.\\.\\||\\.\\.|\\/[~\\/=]?|[><]=?|[-+*^=~]/\n }\n}\n","'use strict'\nvar refractorMarkupTemplating = require('./markup-templating.js')\nmodule.exports = ejs\nejs.displayName = 'ejs'\nejs.aliases = ['eta']\nfunction ejs(Prism) {\n Prism.register(refractorMarkupTemplating)\n ;(function (Prism) {\n Prism.languages.ejs = {\n delimiter: {\n pattern: /^<%[-_=]?|[-_]?%>$/,\n alias: 'punctuation'\n },\n comment: /^#[\\s\\S]*/,\n 'language-javascript': {\n pattern: /[\\s\\S]+/,\n inside: Prism.languages.javascript\n }\n }\n Prism.hooks.add('before-tokenize', function (env) {\n var ejsPattern = /<%(?!%)[\\s\\S]+?%>/g\n Prism.languages['markup-templating'].buildPlaceholders(\n env,\n 'ejs',\n ejsPattern\n )\n })\n Prism.hooks.add('after-tokenize', function (env) {\n Prism.languages['markup-templating'].tokenizePlaceholders(env, 'ejs')\n })\n Prism.languages.eta = Prism.languages.ejs\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = elixir\nelixir.displayName = 'elixir'\nelixir.aliases = []\nfunction elixir(Prism) {\n Prism.languages.elixir = {\n comment: /#.*/m,\n // ~r\"\"\"foo\"\"\" (multi-line), ~r'''foo''' (multi-line), ~r/foo/, ~r|foo|, ~r\"foo\", ~r'foo', ~r(foo), ~r[foo], ~r{foo}, ~r<foo>\n regex: {\n pattern: /~[rR](?:(\"\"\"|''')(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])+\\1|([\\/|\"'])(?:\\\\.|(?!\\2)[^\\\\\\r\\n])+\\2|\\((?:\\\\.|[^\\\\)\\r\\n])+\\)|\\[(?:\\\\.|[^\\\\\\]\\r\\n])+\\]|\\{(?:\\\\.|[^\\\\}\\r\\n])+\\}|<(?:\\\\.|[^\\\\>\\r\\n])+>)[uismxfr]*/,\n greedy: true\n },\n string: [\n {\n // ~s\"\"\"foo\"\"\" (multi-line), ~s'''foo''' (multi-line), ~s/foo/, ~s|foo|, ~s\"foo\", ~s'foo', ~s(foo), ~s[foo], ~s{foo} (with interpolation care), ~s<foo>\n pattern: /~[cCsSwW](?:(\"\"\"|''')(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])+\\1|([\\/|\"'])(?:\\\\.|(?!\\2)[^\\\\\\r\\n])+\\2|\\((?:\\\\.|[^\\\\)\\r\\n])+\\)|\\[(?:\\\\.|[^\\\\\\]\\r\\n])+\\]|\\{(?:\\\\.|#\\{[^}]+\\}|#(?!\\{)|[^#\\\\}\\r\\n])+\\}|<(?:\\\\.|[^\\\\>\\r\\n])+>)[csa]?/,\n greedy: true,\n inside: {\n // See interpolation below\n }\n },\n {\n pattern: /(\"\"\"|''')[\\s\\S]*?\\1/,\n greedy: true,\n inside: {\n // See interpolation below\n }\n },\n {\n // Multi-line strings are allowed\n pattern: /(\"|')(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/,\n greedy: true,\n inside: {\n // See interpolation below\n }\n }\n ],\n atom: {\n // Look-behind prevents bad highlighting of the :: operator\n pattern: /(^|[^:]):\\w+/,\n lookbehind: true,\n alias: 'symbol'\n },\n // Look-ahead prevents bad highlighting of the :: operator\n 'attr-name': /\\w+\\??:(?!:)/,\n capture: {\n // Look-behind prevents bad highlighting of the && operator\n pattern: /(^|[^&])&(?:[^&\\s\\d()][^\\s()]*|(?=\\())/,\n lookbehind: true,\n alias: 'function'\n },\n argument: {\n // Look-behind prevents bad highlighting of the && operator\n pattern: /(^|[^&])&\\d+/,\n lookbehind: true,\n alias: 'variable'\n },\n attribute: {\n pattern: /@\\w+/,\n alias: 'variable'\n },\n number: /\\b(?:0[box][a-f\\d_]+|\\d[\\d_]*)(?:\\.[\\d_]+)?(?:e[+-]?[\\d_]+)?\\b/i,\n keyword: /\\b(?:after|alias|and|case|catch|cond|def(?:callback|exception|impl|module|p|protocol|struct)?|do|else|end|fn|for|if|import|not|or|require|rescue|try|unless|use|when)\\b/,\n boolean: /\\b(?:true|false|nil)\\b/,\n operator: [\n /\\bin\\b|&&?|\\|[|>]?|\\\\\\\\|::|\\.\\.\\.?|\\+\\+?|-[->]?|<[-=>]|>=|!==?|\\B!|=(?:==?|[>~])?|[*\\/^]/,\n {\n // We don't want to match <<\n pattern: /([^<])<(?!<)/,\n lookbehind: true\n },\n {\n // We don't want to match >>\n pattern: /([^>])>(?!>)/,\n lookbehind: true\n }\n ],\n punctuation: /<<|>>|[.,%\\[\\]{}()]/\n }\n Prism.languages.elixir.string.forEach(function (o) {\n o.inside = {\n interpolation: {\n pattern: /#\\{[^}]+\\}/,\n inside: {\n delimiter: {\n pattern: /^#\\{|\\}$/,\n alias: 'punctuation'\n },\n rest: Prism.languages.elixir\n }\n }\n }\n })\n}\n","'use strict'\n\nmodule.exports = elm\nelm.displayName = 'elm'\nelm.aliases = []\nfunction elm(Prism) {\n Prism.languages.elm = {\n comment: /--.*|{-[\\s\\S]*?-}/,\n char: {\n pattern: /'(?:[^\\\\'\\r\\n]|\\\\(?:[abfnrtv\\\\']|\\d+|x[0-9a-fA-F]+))'/,\n greedy: true\n },\n string: [\n {\n // Multiline strings are wrapped in triple \". Quotes may appear unescaped.\n pattern: /\"\"\"[\\s\\S]*?\"\"\"/,\n greedy: true\n },\n {\n pattern: /\"(?:[^\\\\\"\\r\\n]|\\\\.)*\"/,\n greedy: true\n }\n ],\n 'import-statement': {\n // The imported or hidden names are not included in this import\n // statement. This is because we want to highlight those exactly like\n // we do for the names in the program.\n pattern: /^\\s*import\\s+[A-Z]\\w*(?:\\.[A-Z]\\w*)*(?:\\s+as\\s+(?:[A-Z]\\w*)(?:\\.[A-Z]\\w*)*)?(?:\\s+exposing\\s+)?/m,\n inside: {\n keyword: /\\b(?:import|as|exposing)\\b/\n }\n },\n keyword: /\\b(?:alias|as|case|else|exposing|if|in|infixl|infixr|let|module|of|then|type)\\b/,\n // These are builtin variables only. Constructors are highlighted later as a constant.\n builtin: /\\b(?:abs|acos|always|asin|atan|atan2|ceiling|clamp|compare|cos|curry|degrees|e|flip|floor|fromPolar|identity|isInfinite|isNaN|logBase|max|min|negate|never|not|pi|radians|rem|round|sin|sqrt|tan|toFloat|toPolar|toString|truncate|turns|uncurry|xor)\\b/,\n // decimal integers and floating point numbers | hexadecimal integers\n number: /\\b(?:\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?|0x[0-9a-f]+)\\b/i,\n // Most of this is needed because of the meaning of a single '.'.\n // If it stands alone freely, it is the function composition.\n // It may also be a separator between a module name and an identifier => no\n // operator. If it comes together with other special characters it is an\n // operator too.\n // Valid operator characters in 0.18: +-/*=.$<>:&|^?%#@~!\n // Ref: https://groups.google.com/forum/#!msg/elm-dev/0AHSnDdkSkQ/E0SVU70JEQAJ\n operator: /\\s\\.\\s|[+\\-/*=.$<>:&|^?%#@~!]{2,}|[+\\-/*=$<>:&|^?%#@~!]/,\n // In Elm, nearly everything is a variable, do not highlight these.\n hvariable: /\\b(?:[A-Z]\\w*\\.)*[a-z]\\w*\\b/,\n constant: /\\b(?:[A-Z]\\w*\\.)*[A-Z]\\w*\\b/,\n punctuation: /[{}[\\]|(),.:]/\n }\n}\n","'use strict'\nvar refractorRuby = require('./ruby.js')\nvar refractorMarkupTemplating = require('./markup-templating.js')\nmodule.exports = erb\nerb.displayName = 'erb'\nerb.aliases = []\nfunction erb(Prism) {\n Prism.register(refractorRuby)\n Prism.register(refractorMarkupTemplating)\n ;(function (Prism) {\n Prism.languages.erb = Prism.languages.extend('ruby', {})\n Prism.languages.insertBefore('erb', 'comment', {\n delimiter: {\n pattern: /^<%=?|%>$/,\n alias: 'punctuation'\n }\n })\n Prism.hooks.add('before-tokenize', function (env) {\n var erbPattern = /<%=?(?:[^\\r\\n]|[\\r\\n](?!=begin)|[\\r\\n]=begin\\s[\\s\\S]*?^=end)+?%>/gm\n Prism.languages['markup-templating'].buildPlaceholders(\n env,\n 'erb',\n erbPattern\n )\n })\n Prism.hooks.add('after-tokenize', function (env) {\n Prism.languages['markup-templating'].tokenizePlaceholders(env, 'erb')\n })\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = erlang\nerlang.displayName = 'erlang'\nerlang.aliases = []\nfunction erlang(Prism) {\n Prism.languages.erlang = {\n comment: /%.+/,\n string: {\n pattern: /\"(?:\\\\.|[^\\\\\"\\r\\n])*\"/,\n greedy: true\n },\n 'quoted-function': {\n pattern: /'(?:\\\\.|[^\\\\'\\r\\n])+'(?=\\()/,\n alias: 'function'\n },\n 'quoted-atom': {\n pattern: /'(?:\\\\.|[^\\\\'\\r\\n])+'/,\n alias: 'atom'\n },\n boolean: /\\b(?:true|false)\\b/,\n keyword: /\\b(?:fun|when|case|of|end|if|receive|after|try|catch)\\b/,\n number: [\n /\\$\\\\?./,\n /\\d+#[a-z0-9]+/i,\n /(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e[+-]?\\d+)?/i\n ],\n function: /\\b[a-z][\\w@]*(?=\\()/,\n variable: {\n // Look-behind is used to prevent wrong highlighting of atoms containing \"@\"\n pattern: /(^|[^@])(?:\\b|\\?)[A-Z_][\\w@]*/,\n lookbehind: true\n },\n operator: [\n /[=\\/<>:]=|=[:\\/]=|\\+\\+?|--?|[=*\\/!]|\\b(?:bnot|div|rem|band|bor|bxor|bsl|bsr|not|and|or|xor|orelse|andalso)\\b/,\n {\n // We don't want to match <<\n pattern: /(^|[^<])<(?!<)/,\n lookbehind: true\n },\n {\n // We don't want to match >>\n pattern: /(^|[^>])>(?!>)/,\n lookbehind: true\n }\n ],\n atom: /\\b[a-z][\\w@]*/,\n punctuation: /[()[\\]{}:;,.#|]|<<|>>/\n }\n}\n","'use strict'\nvar refractorLua = require('./lua.js')\nvar refractorMarkupTemplating = require('./markup-templating.js')\nmodule.exports = etlua\netlua.displayName = 'etlua'\netlua.aliases = []\nfunction etlua(Prism) {\n Prism.register(refractorLua)\n Prism.register(refractorMarkupTemplating)\n ;(function (Prism) {\n Prism.languages.etlua = {\n delimiter: {\n pattern: /^<%[-=]?|-?%>$/,\n alias: 'punctuation'\n },\n 'language-lua': {\n pattern: /[\\s\\S]+/,\n inside: Prism.languages.lua\n }\n }\n Prism.hooks.add('before-tokenize', function (env) {\n var pattern = /<%[\\s\\S]+?%>/g\n Prism.languages['markup-templating'].buildPlaceholders(\n env,\n 'etlua',\n pattern\n )\n })\n Prism.hooks.add('after-tokenize', function (env) {\n Prism.languages['markup-templating'].tokenizePlaceholders(env, 'etlua')\n })\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = excelFormula\nexcelFormula.displayName = 'excelFormula'\nexcelFormula.aliases = []\nfunction excelFormula(Prism) {\n Prism.languages['excel-formula'] = {\n comment: {\n pattern: /(\\bN\\(\\s*)\"(?:[^\"]|\"\")*\"(?=\\s*\\))/i,\n lookbehind: true,\n greedy: true\n },\n string: {\n pattern: /\"(?:[^\"]|\"\")*\"(?!\")/,\n greedy: true\n },\n reference: {\n // https://www.ablebits.com/office-addins-blog/2015/12/08/excel-reference-another-sheet-workbook/\n // Sales!B2\n // 'Winter sales'!B2\n // [Sales.xlsx]Jan!B2:B5\n // D:\\Reports\\[Sales.xlsx]Jan!B2:B5\n // '[Sales.xlsx]Jan sales'!B2:B5\n // 'D:\\Reports\\[Sales.xlsx]Jan sales'!B2:B5\n pattern: /(?:'[^']*'|(?:[^\\s()[\\]{}<>*?\"';,$&]*\\[[^^\\s()[\\]{}<>*?\"']+\\])?\\w+)!/,\n greedy: true,\n alias: 'string',\n inside: {\n operator: /!$/,\n punctuation: /'/,\n sheet: {\n pattern: /[^[\\]]+$/,\n alias: 'function'\n },\n file: {\n pattern: /\\[[^[\\]]+\\]$/,\n inside: {\n punctuation: /[[\\]]/\n }\n },\n path: /[\\s\\S]+/\n }\n },\n 'function-name': {\n pattern: /\\b[A-Z]\\w*(?=\\()/i,\n alias: 'keyword'\n },\n range: {\n pattern: /\\$?\\b(?:[A-Z]+\\$?\\d+:\\$?[A-Z]+\\$?\\d+|[A-Z]+:\\$?[A-Z]+|\\d+:\\$?\\d+)\\b/i,\n alias: 'property',\n inside: {\n operator: /:/,\n cell: /\\$?[A-Z]+\\$?\\d+/i,\n column: /\\$?[A-Z]+/i,\n row: /\\$?\\d+/\n }\n },\n cell: {\n // Excel is case insensitive, so the string \"foo1\" could be either a variable or a cell.\n // To combat this, we match cells case insensitive, if the contain at least one \"$\", and case sensitive otherwise.\n pattern: /\\b[A-Z]+\\d+\\b|\\$[A-Za-z]+\\$?\\d+\\b|\\b[A-Za-z]+\\$\\d+\\b/,\n alias: 'property'\n },\n number: /(?:\\b\\d+(?:\\.\\d+)?|\\B\\.\\d+)(?:e[+-]?\\d+)?\\b/i,\n boolean: /\\b(?:TRUE|FALSE)\\b/i,\n operator: /[-+*/^%=&,]|<[=>]?|>=?/,\n punctuation: /[[\\]();{}|]/\n }\n Prism.languages['xlsx'] = Prism.languages['xls'] =\n Prism.languages['excel-formula']\n}\n","'use strict'\n\nmodule.exports = factor\nfactor.displayName = 'factor'\nfactor.aliases = []\nfunction factor(Prism) {\n ;(function (Prism) {\n var comment_inside = {\n function: /\\b(?:TODOS?|FIX(?:MES?)?|NOTES?|BUGS?|XX+|HACKS?|WARN(?:ING)?|\\?{2,}|!{2,})\\b/\n }\n var string_inside = {\n number: /\\\\[^\\s']|%\\w/\n }\n var factor = {\n comment: [\n {\n // ! single-line exclamation point comments with whitespace after/around the !\n pattern: /(^|\\s)(?:! .*|!$)/,\n lookbehind: true,\n inside: comment_inside\n },\n /* from basis/multiline: */\n {\n // /* comment */, /* comment*/\n pattern: /(^|\\s)\\/\\*\\s[\\s\\S]*?\\*\\/(?=\\s|$)/,\n lookbehind: true,\n greedy: true,\n inside: comment_inside\n },\n {\n // ![[ comment ]] , ![===[ comment]===]\n pattern: /(^|\\s)!\\[(={0,6})\\[\\s[\\s\\S]*?\\]\\2\\](?=\\s|$)/,\n lookbehind: true,\n greedy: true,\n inside: comment_inside\n }\n ],\n number: [\n {\n // basic base 10 integers 9, -9\n pattern: /(^|\\s)[+-]?\\d+(?=\\s|$)/,\n lookbehind: true\n },\n {\n // base prefix integers 0b010 0o70 0xad 0d10 0XAD -0xa9\n pattern: /(^|\\s)[+-]?0(?:b[01]+|o[0-7]+|d\\d+|x[\\dA-F]+)(?=\\s|$)/i,\n lookbehind: true\n },\n {\n // fractional ratios 1/5 -1/5 and the literal float approximations 1/5. -1/5.\n pattern: /(^|\\s)[+-]?\\d+\\/\\d+\\.?(?=\\s|$)/,\n lookbehind: true\n },\n {\n // positive mixed numbers 23+1/5 +23+1/5\n pattern: /(^|\\s)\\+?\\d+\\+\\d+\\/\\d+(?=\\s|$)/,\n lookbehind: true\n },\n {\n // negative mixed numbers -23-1/5\n pattern: /(^|\\s)-\\d+-\\d+\\/\\d+(?=\\s|$)/,\n lookbehind: true\n },\n {\n // basic decimal floats -0.01 0. .0 .1 -.1 -1. -12.13 +12.13\n // and scientific notation with base 10 exponents 3e4 3e-4 .3e-4\n pattern: /(^|\\s)[+-]?(?:\\d*\\.\\d+|\\d+\\.\\d*|\\d+)(?:e[+-]?\\d+)?(?=\\s|$)/i,\n lookbehind: true\n },\n {\n // NAN literal syntax NAN: 80000deadbeef, NAN: a\n pattern: /(^|\\s)NAN:\\s+[\\da-fA-F]+(?=\\s|$)/,\n lookbehind: true\n },\n {\n /*\nbase prefix floats 0x1.0p3 (8.0) 0b1.010p2 (5.0) 0x1.p1 0b1.11111111p11111...\n\"The normalized hex form ±0x1.MMMMMMMMMMMMM[pP]±EEEE allows any floating-point number to be specified precisely.\nThe values of MMMMMMMMMMMMM and EEEE map directly to the mantissa and exponent fields of the binary IEEE 754 representation.\"\n<https://docs.factorcode.org/content/article-syntax-floats.html>\n*/\n pattern: /(^|\\s)[+-]?0(?:b1\\.[01]*|o1\\.[0-7]*|d1\\.\\d*|x1\\.[\\dA-F]*)p\\d+(?=\\s|$)/i,\n lookbehind: true\n }\n ],\n // R/ regexp?\\/\\\\/\n regexp: {\n pattern: /(^|\\s)R\\/\\s(?:\\\\\\S|[^\\\\/])*\\/(?:[idmsr]*|[idmsr]+-[idmsr]+)(?=\\s|$)/,\n lookbehind: true,\n alias: 'number',\n inside: {\n variable: /\\\\\\S/,\n keyword: /[+?*\\[\\]^$(){}.|]/,\n operator: {\n pattern: /(\\/)[idmsr]+(?:-[idmsr]+)?/,\n lookbehind: true\n }\n }\n },\n boolean: {\n pattern: /(^|\\s)[tf](?=\\s|$)/,\n lookbehind: true\n },\n // SBUF\" asd\", URL\" ://...\", P\" /etc/\"\n 'custom-string': {\n pattern: /(^|\\s)[A-Z0-9\\-]+\"\\s(?:\\\\\\S|[^\"\\\\])*\"/,\n lookbehind: true,\n greedy: true,\n alias: 'string',\n inside: {\n number: /\\\\\\S|%\\w|\\//\n }\n },\n 'multiline-string': [\n {\n // STRING: name \\n content \\n ; -> CONSTANT: name \"content\" (symbol)\n pattern: /(^|\\s)STRING:\\s+\\S+(?:\\n|\\r\\n).*(?:\\n|\\r\\n)\\s*;(?=\\s|$)/,\n lookbehind: true,\n greedy: true,\n alias: 'string',\n inside: {\n number: string_inside.number,\n // trailing semicolon on its own line\n 'semicolon-or-setlocal': {\n pattern: /((?:\\n|\\r\\n)\\s*);(?=\\s|$)/,\n lookbehind: true,\n alias: 'function'\n }\n }\n },\n {\n // HEREDOC: marker \\n content \\n marker ; -> \"content\" (immediate)\n pattern: /(^|\\s)HEREDOC:\\s+\\S+(?:\\n|\\r\\n).*(?:\\n|\\r\\n)\\s*\\S+(?=\\s|$)/,\n lookbehind: true,\n greedy: true,\n alias: 'string',\n inside: string_inside\n },\n {\n // [[ string ]], [==[ string]==]\n pattern: /(^|\\s)\\[(={0,6})\\[\\s[\\s\\S]*?\\]\\2\\](?=\\s|$)/,\n lookbehind: true,\n greedy: true,\n alias: 'string',\n inside: string_inside\n }\n ],\n 'special-using': {\n pattern: /(^|\\s)USING:(?:\\s\\S+)*(?=\\s+;(?:\\s|$))/,\n lookbehind: true,\n alias: 'function',\n inside: {\n // this is essentially a regex for vocab names, which i don't want to specify\n // but the USING: gets picked up as a vocab name\n string: {\n pattern: /(\\s)[^:\\s]+/,\n lookbehind: true\n }\n }\n },\n /* this description of stack effect literal syntax is not complete and not as specific as theoretically possible\ntrying to do better is more work and regex-computation-time than it's worth though.\n- we'd like to have the \"delimiter\" parts of the stack effect [ (, --, and ) ] be a different (less-important or comment-like) colour to the stack effect contents\n- we'd like if nested stack effects were treated as such rather than just appearing flat (with `inside`)\n- we'd like if the following variable name conventions were recognised specifically:\nspecial row variables = ..a b..\ntype and stack effect annotations end with a colon = ( quot: ( a: ( -- ) -- b ) -- x ), ( x: number -- )\nword throws unconditional error = *\nany other word-like variable name = a ? q' etc\nhttps://docs.factorcode.org/content/article-effects.html\nthese are pretty complicated to highlight properly without a real parser, and therefore out of scope\nthe old pattern, which may be later useful, was: (^|\\s)(?:call|execute|eval)?\\((?:\\s+[^\"\\r\\n\\t ]\\S*)*?\\s+--(?:\\s+[^\"\\n\\t ]\\S*)*?\\s+\\)(?=\\s|$)\n*/\n // current solution is not great\n 'stack-effect-delimiter': [\n {\n // opening parenthesis\n pattern: /(^|\\s)(?:call|execute|eval)?\\((?=\\s)/,\n lookbehind: true,\n alias: 'operator'\n },\n {\n // middle --\n pattern: /(\\s)--(?=\\s)/,\n lookbehind: true,\n alias: 'operator'\n },\n {\n // closing parenthesis\n pattern: /(\\s)\\)(?=\\s|$)/,\n lookbehind: true,\n alias: 'operator'\n }\n ],\n combinators: {\n pattern: null,\n lookbehind: true,\n alias: 'keyword'\n },\n 'kernel-builtin': {\n pattern: null,\n lookbehind: true,\n alias: 'variable'\n },\n 'sequences-builtin': {\n pattern: null,\n lookbehind: true,\n alias: 'variable'\n },\n 'math-builtin': {\n pattern: null,\n lookbehind: true,\n alias: 'variable'\n },\n 'constructor-word': {\n // <array> but not <=>\n pattern: /(^|\\s)<(?!=+>|-+>)\\S+>(?=\\s|$)/,\n lookbehind: true,\n alias: 'keyword'\n },\n 'other-builtin-syntax': {\n pattern: null,\n lookbehind: true,\n alias: 'operator'\n },\n /*\nfull list of supported word naming conventions: (the convention appears outside of the [brackets])\nset-[x]\nchange-[x]\nwith-[x]\nnew-[x]\n>[string]\n[base]>\n[string]>[number]\n+[symbol]+\n[boolean-word]?\n?[of]\n[slot-reader]>>\n>>[slot-setter]\n[slot-writer]<<\n([implementation-detail])\n[mutater]!\n[variant]*\n[prettyprint].\n$[help-markup]\n<constructors>, SYNTAX:, etc are supported by their own patterns.\n`with` and `new` from `kernel` are their own builtins.\nsee <https://docs.factorcode.org/content/article-conventions.html>\n*/\n 'conventionally-named-word': {\n pattern: /(^|\\s)(?!\")(?:(?:set|change|with|new)-\\S+|\\$\\S+|>[^>\\s]+|[^:>\\s]+>|[^>\\s]+>[^>\\s]+|\\+[^+\\s]+\\+|[^?\\s]+\\?|\\?[^?\\s]+|[^>\\s]+>>|>>[^>\\s]+|[^<\\s]+<<|\\([^()\\s]+\\)|[^!\\s]+!|[^*\\s]\\S*\\*|[^.\\s]\\S*\\.)(?=\\s|$)/,\n lookbehind: true,\n alias: 'keyword'\n },\n 'colon-syntax': {\n pattern: /(^|\\s)(?:[A-Z0-9\\-]+#?)?:{1,2}\\s+(?:;\\S+|(?!;)\\S+)(?=\\s|$)/,\n lookbehind: true,\n greedy: true,\n alias: 'function'\n },\n 'semicolon-or-setlocal': {\n pattern: /(\\s)(?:;|:>)(?=\\s|$)/,\n lookbehind: true,\n alias: 'function'\n },\n // do not highlight leading } or trailing X{ at the begin/end of the file as it's invalid syntax\n 'curly-brace-literal-delimiter': [\n {\n // opening\n pattern: /(^|\\s)[a-z]*\\{(?=\\s)/i,\n lookbehind: true,\n alias: 'operator'\n },\n {\n // closing\n pattern: /(\\s)\\}(?=\\s|$)/,\n lookbehind: true,\n alias: 'operator'\n }\n ],\n // do not highlight leading ] or trailing [ at the begin/end of the file as it's invalid syntax\n 'quotation-delimiter': [\n {\n // opening\n pattern: /(^|\\s)\\[(?=\\s)/,\n lookbehind: true,\n alias: 'operator'\n },\n {\n // closing\n pattern: /(\\s)\\](?=\\s|$)/,\n lookbehind: true,\n alias: 'operator'\n }\n ],\n 'normal-word': {\n pattern: /(^|\\s)[^\"\\s]\\S*(?=\\s|$)/,\n lookbehind: true\n },\n /*\nbasic first-class string \"a\"\nwith escaped double-quote \"a\\\"\"\nescaped backslash \"\\\\\"\nand general escapes since Factor has so many \"\\N\"\nsyntax that works in the reference implementation that isn't fully\nsupported because it's an implementation detail:\n\"string 1\"\"string 2\" -> 2 strings (works anyway)\n\"string\"5 -> string, 5\n\"string\"[ ] -> string, quotation\n{ \"a\"} -> array<string>\nthe rest of those examples all properly recognise the string, but not\nthe other object (number, quotation, etc)\nthis is fine for a regex-only implementation.\n*/\n string: {\n pattern: /\"(?:\\\\\\S|[^\"\\\\])*\"/,\n greedy: true,\n inside: string_inside\n }\n }\n var escape = function (str) {\n return (str + '').replace(/([.?*+\\^$\\[\\]\\\\(){}|\\-])/g, '\\\\$1')\n }\n var arrToWordsRegExp = function (arr) {\n return new RegExp('(^|\\\\s)(?:' + arr.map(escape).join('|') + ')(?=\\\\s|$)')\n }\n var builtins = {\n 'kernel-builtin': [\n 'or',\n '2nipd',\n '4drop',\n 'tuck',\n 'wrapper',\n 'nip',\n 'wrapper?',\n 'callstack>array',\n 'die',\n 'dupd',\n 'callstack',\n 'callstack?',\n '3dup',\n 'hashcode',\n 'pick',\n '4nip',\n 'build',\n '>boolean',\n 'nipd',\n 'clone',\n '5nip',\n 'eq?',\n '?',\n '=',\n 'swapd',\n '2over',\n 'clear',\n '2dup',\n 'get-retainstack',\n 'not',\n 'tuple?',\n 'dup',\n '3nipd',\n 'call',\n '-rotd',\n 'object',\n 'drop',\n 'assert=',\n 'assert?',\n '-rot',\n 'execute',\n 'boa',\n 'get-callstack',\n 'curried?',\n '3drop',\n 'pickd',\n 'overd',\n 'over',\n 'roll',\n '3nip',\n 'swap',\n 'and',\n '2nip',\n 'rotd',\n 'throw',\n '(clone)',\n 'hashcode*',\n 'spin',\n 'reach',\n '4dup',\n 'equal?',\n 'get-datastack',\n 'assert',\n '2drop',\n '<wrapper>',\n 'boolean?',\n 'identity-hashcode',\n 'identity-tuple?',\n 'null',\n 'composed?',\n 'new',\n '5drop',\n 'rot',\n '-roll',\n 'xor',\n 'identity-tuple',\n 'boolean'\n ],\n 'other-builtin-syntax': [\n // syntax\n '=======',\n 'recursive',\n 'flushable',\n '>>',\n '<<<<<<',\n 'M\\\\',\n 'B',\n 'PRIVATE>',\n '\\\\',\n '======',\n 'final',\n 'inline',\n 'delimiter',\n 'deprecated',\n '<PRIVATE',\n '>>>>>>',\n '<<<<<<<',\n 'parse-complex',\n 'malformed-complex',\n 'read-only',\n '>>>>>>>',\n 'call-next-method',\n '<<',\n 'foldable', // literals\n '$',\n '$[',\n '${'\n ],\n 'sequences-builtin': [\n 'member-eq?',\n 'mismatch',\n 'append',\n 'assert-sequence=',\n 'longer',\n 'repetition',\n 'clone-like',\n '3sequence',\n 'assert-sequence?',\n 'last-index-from',\n 'reversed',\n 'index-from',\n 'cut*',\n 'pad-tail',\n 'join-as',\n 'remove-eq!',\n 'concat-as',\n 'but-last',\n 'snip',\n 'nths',\n 'nth',\n 'sequence',\n 'longest',\n 'slice?',\n '<slice>',\n 'remove-nth',\n 'tail-slice',\n 'empty?',\n 'tail*',\n 'member?',\n 'virtual-sequence?',\n 'set-length',\n 'drop-prefix',\n 'iota',\n 'unclip',\n 'bounds-error?',\n 'unclip-last-slice',\n 'non-negative-integer-expected',\n 'non-negative-integer-expected?',\n 'midpoint@',\n 'longer?',\n '?set-nth',\n '?first',\n 'rest-slice',\n 'prepend-as',\n 'prepend',\n 'fourth',\n 'sift',\n 'subseq-start',\n 'new-sequence',\n '?last',\n 'like',\n 'first4',\n '1sequence',\n 'reverse',\n 'slice',\n 'virtual@',\n 'repetition?',\n 'set-last',\n 'index',\n '4sequence',\n 'max-length',\n 'set-second',\n 'immutable-sequence',\n 'first2',\n 'first3',\n 'supremum',\n 'unclip-slice',\n 'suffix!',\n 'insert-nth',\n 'tail',\n '3append',\n 'short',\n 'suffix',\n 'concat',\n 'flip',\n 'immutable?',\n 'reverse!',\n '2sequence',\n 'sum',\n 'delete-all',\n 'indices',\n 'snip-slice',\n '<iota>',\n 'check-slice',\n 'sequence?',\n 'head',\n 'append-as',\n 'halves',\n 'sequence=',\n 'collapse-slice',\n '?second',\n 'slice-error?',\n 'product',\n 'bounds-check?',\n 'bounds-check',\n 'immutable',\n 'virtual-exemplar',\n 'harvest',\n 'remove',\n 'pad-head',\n 'last',\n 'set-fourth',\n 'cartesian-product',\n 'remove-eq',\n 'shorten',\n 'shorter',\n 'reversed?',\n 'shorter?',\n 'shortest',\n 'head-slice',\n 'pop*',\n 'tail-slice*',\n 'but-last-slice',\n 'iota?',\n 'append!',\n 'cut-slice',\n 'new-resizable',\n 'head-slice*',\n 'sequence-hashcode',\n 'pop',\n 'set-nth',\n '?nth',\n 'second',\n 'join',\n 'immutable-sequence?',\n '<reversed>',\n '3append-as',\n 'virtual-sequence',\n 'subseq?',\n 'remove-nth!',\n 'length',\n 'last-index',\n 'lengthen',\n 'assert-sequence',\n 'copy',\n 'move',\n 'third',\n 'first',\n 'tail?',\n 'set-first',\n 'prefix',\n 'bounds-error',\n '<repetition>',\n 'exchange',\n 'surround',\n 'cut',\n 'min-length',\n 'set-third',\n 'push-all',\n 'head?',\n 'subseq-start-from',\n 'delete-slice',\n 'rest',\n 'sum-lengths',\n 'head*',\n 'infimum',\n 'remove!',\n 'glue',\n 'slice-error',\n 'subseq',\n 'push',\n 'replace-slice',\n 'subseq-as',\n 'unclip-last'\n ],\n 'math-builtin': [\n 'number=',\n 'next-power-of-2',\n '?1+',\n 'fp-special?',\n 'imaginary-part',\n 'float>bits',\n 'number?',\n 'fp-infinity?',\n 'bignum?',\n 'fp-snan?',\n 'denominator',\n 'gcd',\n '*',\n '+',\n 'fp-bitwise=',\n '-',\n 'u>=',\n '/',\n '>=',\n 'bitand',\n 'power-of-2?',\n 'log2-expects-positive',\n 'neg?',\n '<',\n 'log2',\n '>',\n 'integer?',\n 'number',\n 'bits>double',\n '2/',\n 'zero?',\n 'bits>float',\n 'float?',\n 'shift',\n 'ratio?',\n 'rect>',\n 'even?',\n 'ratio',\n 'fp-sign',\n 'bitnot',\n '>fixnum',\n 'complex?',\n '/i',\n 'integer>fixnum',\n '/f',\n 'sgn',\n '>bignum',\n 'next-float',\n 'u<',\n 'u>',\n 'mod',\n 'recip',\n 'rational',\n '>float',\n '2^',\n 'integer',\n 'fixnum?',\n 'neg',\n 'fixnum',\n 'sq',\n 'bignum',\n '>rect',\n 'bit?',\n 'fp-qnan?',\n 'simple-gcd',\n 'complex',\n '<fp-nan>',\n 'real',\n '>fraction',\n 'double>bits',\n 'bitor',\n 'rem',\n 'fp-nan-payload',\n 'real-part',\n 'log2-expects-positive?',\n 'prev-float',\n 'align',\n 'unordered?',\n 'float',\n 'fp-nan?',\n 'abs',\n 'bitxor',\n 'integer>fixnum-strict',\n 'u<=',\n 'odd?',\n '<=',\n '/mod',\n '>integer',\n 'real?',\n 'rational?',\n 'numerator'\n ] // that's all for now\n }\n Object.keys(builtins).forEach(function (k) {\n factor[k].pattern = arrToWordsRegExp(builtins[k])\n })\n var combinators = [\n // kernel\n '2bi',\n 'while',\n '2tri',\n 'bi*',\n '4dip',\n 'both?',\n 'same?',\n 'tri@',\n 'curry',\n 'prepose',\n '3bi',\n '?if',\n 'tri*',\n '2keep',\n '3keep',\n 'curried',\n '2keepd',\n 'when',\n '2bi*',\n '2tri*',\n '4keep',\n 'bi@',\n 'keepdd',\n 'do',\n 'unless*',\n 'tri-curry',\n 'if*',\n 'loop',\n 'bi-curry*',\n 'when*',\n '2bi@',\n '2tri@',\n 'with',\n '2with',\n 'either?',\n 'bi',\n 'until',\n '3dip',\n '3curry',\n 'tri-curry*',\n 'tri-curry@',\n 'bi-curry',\n 'keepd',\n 'compose',\n '2dip',\n 'if',\n '3tri',\n 'unless',\n 'tuple',\n 'keep',\n '2curry',\n 'tri',\n 'most',\n 'while*',\n 'dip',\n 'composed',\n 'bi-curry@', // sequences\n 'find-last-from',\n 'trim-head-slice',\n 'map-as',\n 'each-from',\n 'none?',\n 'trim-tail',\n 'partition',\n 'if-empty',\n 'accumulate*',\n 'reject!',\n 'find-from',\n 'accumulate-as',\n 'collector-for-as',\n 'reject',\n 'map',\n 'map-sum',\n 'accumulate!',\n '2each-from',\n 'follow',\n 'supremum-by',\n 'map!',\n 'unless-empty',\n 'collector',\n 'padding',\n 'reduce-index',\n 'replicate-as',\n 'infimum-by',\n 'trim-tail-slice',\n 'count',\n 'find-index',\n 'filter',\n 'accumulate*!',\n 'reject-as',\n 'map-integers',\n 'map-find',\n 'reduce',\n 'selector',\n 'interleave',\n '2map',\n 'filter-as',\n 'binary-reduce',\n 'map-index-as',\n 'find',\n 'produce',\n 'filter!',\n 'replicate',\n 'cartesian-map',\n 'cartesian-each',\n 'find-index-from',\n 'map-find-last',\n '3map-as',\n '3map',\n 'find-last',\n 'selector-as',\n '2map-as',\n '2map-reduce',\n 'accumulate',\n 'each',\n 'each-index',\n 'accumulate*-as',\n 'when-empty',\n 'all?',\n 'collector-as',\n 'push-either',\n 'new-like',\n 'collector-for',\n '2selector',\n 'push-if',\n '2all?',\n 'map-reduce',\n '3each',\n 'any?',\n 'trim-slice',\n '2reduce',\n 'change-nth',\n 'produce-as',\n '2each',\n 'trim',\n 'trim-head',\n 'cartesian-find',\n 'map-index', // math\n 'if-zero',\n 'each-integer',\n 'unless-zero',\n '(find-integer)',\n 'when-zero',\n 'find-last-integer',\n '(all-integers?)',\n 'times',\n '(each-integer)',\n 'find-integer',\n 'all-integers?', // math.combinators\n 'unless-negative',\n 'if-positive',\n 'when-positive',\n 'when-negative',\n 'unless-positive',\n 'if-negative', // combinators\n 'case',\n '2cleave',\n 'cond>quot',\n 'case>quot',\n '3cleave',\n 'wrong-values',\n 'to-fixed-point',\n 'alist>quot',\n 'cond',\n 'cleave',\n 'call-effect',\n 'recursive-hashcode',\n 'spread',\n 'deep-spread>quot', // combinators.short-circuit\n '2||',\n '0||',\n 'n||',\n '0&&',\n '2&&',\n '3||',\n '1||',\n '1&&',\n 'n&&',\n '3&&', // combinators.smart\n 'smart-unless*',\n 'keep-inputs',\n 'reduce-outputs',\n 'smart-when*',\n 'cleave>array',\n 'smart-with',\n 'smart-apply',\n 'smart-if',\n 'inputs/outputs',\n 'output>sequence-n',\n 'map-outputs',\n 'map-reduce-outputs',\n 'dropping',\n 'output>array',\n 'smart-map-reduce',\n 'smart-2map-reduce',\n 'output>array-n',\n 'nullary',\n 'input<sequence',\n 'append-outputs',\n 'drop-inputs',\n 'inputs',\n 'smart-2reduce',\n 'drop-outputs',\n 'smart-reduce',\n 'preserving',\n 'smart-when',\n 'outputs',\n 'append-outputs-as',\n 'smart-unless',\n 'smart-if*',\n 'sum-outputs',\n 'input<sequence-unsafe',\n 'output>sequence' // tafn\n ]\n factor.combinators.pattern = arrToWordsRegExp(combinators)\n Prism.languages.factor = factor\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = firestoreSecurityRules\nfirestoreSecurityRules.displayName = 'firestoreSecurityRules'\nfirestoreSecurityRules.aliases = []\nfunction firestoreSecurityRules(Prism) {\n Prism.languages['firestore-security-rules'] = Prism.languages.extend(\n 'clike',\n {\n comment: /\\/\\/.*/,\n keyword: /\\b(?:allow|function|if|match|null|return|rules_version|service)\\b/,\n operator: /&&|\\|\\||[<>!=]=?|[-+*/%]|\\b(?:in|is)\\b/\n }\n )\n delete Prism.languages['firestore-security-rules']['class-name']\n Prism.languages.insertBefore('firestore-security-rules', 'keyword', {\n path: {\n pattern: /(^|[\\s(),])(?:\\/(?:[\\w\\xA0-\\uFFFF]+|\\{[\\w\\xA0-\\uFFFF]+(?:=\\*\\*)?\\}|\\$\\([\\w\\xA0-\\uFFFF.]+\\)))+/,\n lookbehind: true,\n greedy: true,\n inside: {\n variable: {\n pattern: /\\{[\\w\\xA0-\\uFFFF]+(?:=\\*\\*)?\\}|\\$\\([\\w\\xA0-\\uFFFF.]+\\)/,\n inside: {\n operator: /=/,\n keyword: /\\*\\*/,\n punctuation: /[.$(){}]/\n }\n },\n punctuation: /[/]/\n }\n },\n method: {\n // to make the pattern shorter, the actual method names are omitted\n pattern: /(\\ballow\\s+)[a-z]+(?:\\s*,\\s*[a-z]+)*(?=\\s*[:;])/,\n lookbehind: true,\n alias: 'builtin',\n inside: {\n punctuation: /,/\n }\n }\n })\n}\n","'use strict'\n\nmodule.exports = flow\nflow.displayName = 'flow'\nflow.aliases = []\nfunction flow(Prism) {\n ;(function (Prism) {\n Prism.languages.flow = Prism.languages.extend('javascript', {})\n Prism.languages.insertBefore('flow', 'keyword', {\n type: [\n {\n pattern: /\\b(?:[Nn]umber|[Ss]tring|[Bb]oolean|Function|any|mixed|null|void)\\b/,\n alias: 'tag'\n }\n ]\n })\n Prism.languages.flow[\n 'function-variable'\n ].pattern = /(?!\\s)[_$a-z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*=\\s*(?:function\\b|(?:\\([^()]*\\)(?:\\s*:\\s*\\w+)?|(?!\\s)[_$a-z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*)\\s*=>))/i\n delete Prism.languages.flow['parameter']\n Prism.languages.insertBefore('flow', 'operator', {\n 'flow-punctuation': {\n pattern: /\\{\\||\\|\\}/,\n alias: 'punctuation'\n }\n })\n if (!Array.isArray(Prism.languages.flow.keyword)) {\n Prism.languages.flow.keyword = [Prism.languages.flow.keyword]\n }\n Prism.languages.flow.keyword.unshift(\n {\n pattern: /(^|[^$]\\b)(?:type|opaque|declare|Class)\\b(?!\\$)/,\n lookbehind: true\n },\n {\n pattern: /(^|[^$]\\B)\\$(?:await|Diff|Exact|Keys|ObjMap|PropertyType|Shape|Record|Supertype|Subtype|Enum)\\b(?!\\$)/,\n lookbehind: true\n }\n )\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = fortran\nfortran.displayName = 'fortran'\nfortran.aliases = []\nfunction fortran(Prism) {\n Prism.languages.fortran = {\n 'quoted-number': {\n pattern: /[BOZ](['\"])[A-F0-9]+\\1/i,\n alias: 'number'\n },\n string: {\n pattern: /(?:\\w+_)?(['\"])(?:\\1\\1|&(?:\\r\\n?|\\n)(?:[ \\t]*!.*(?:\\r\\n?|\\n)|(?![ \\t]*!))|(?!\\1).)*(?:\\1|&)/,\n inside: {\n comment: {\n pattern: /(&(?:\\r\\n?|\\n)\\s*)!.*/,\n lookbehind: true\n }\n }\n },\n comment: {\n pattern: /!.*/,\n greedy: true\n },\n boolean: /\\.(?:TRUE|FALSE)\\.(?:_\\w+)?/i,\n number: /(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:[ED][+-]?\\d+)?(?:_\\w+)?/i,\n keyword: [\n // Types\n /\\b(?:INTEGER|REAL|DOUBLE ?PRECISION|COMPLEX|CHARACTER|LOGICAL)\\b/i, // END statements\n /\\b(?:END ?)?(?:BLOCK ?DATA|DO|FILE|FORALL|FUNCTION|IF|INTERFACE|MODULE(?! PROCEDURE)|PROGRAM|SELECT|SUBROUTINE|TYPE|WHERE)\\b/i, // Statements\n /\\b(?:ALLOCATABLE|ALLOCATE|BACKSPACE|CALL|CASE|CLOSE|COMMON|CONTAINS|CONTINUE|CYCLE|DATA|DEALLOCATE|DIMENSION|DO|END|EQUIVALENCE|EXIT|EXTERNAL|FORMAT|GO ?TO|IMPLICIT(?: NONE)?|INQUIRE|INTENT|INTRINSIC|MODULE PROCEDURE|NAMELIST|NULLIFY|OPEN|OPTIONAL|PARAMETER|POINTER|PRINT|PRIVATE|PUBLIC|READ|RETURN|REWIND|SAVE|SELECT|STOP|TARGET|WHILE|WRITE)\\b/i, // Others\n /\\b(?:ASSIGNMENT|DEFAULT|ELEMENTAL|ELSE|ELSEWHERE|ELSEIF|ENTRY|IN|INCLUDE|INOUT|KIND|NULL|ONLY|OPERATOR|OUT|PURE|RECURSIVE|RESULT|SEQUENCE|STAT|THEN|USE)\\b/i\n ],\n operator: [\n /\\*\\*|\\/\\/|=>|[=\\/]=|[<>]=?|::|[+\\-*=%]|\\.[A-Z]+\\./i,\n {\n // Use lookbehind to prevent confusion with (/ /)\n pattern: /(^|(?!\\().)\\/(?!\\))/,\n lookbehind: true\n }\n ],\n punctuation: /\\(\\/|\\/\\)|[(),;:&]/\n }\n}\n","'use strict'\n\nmodule.exports = fsharp\nfsharp.displayName = 'fsharp'\nfsharp.aliases = []\nfunction fsharp(Prism) {\n Prism.languages.fsharp = Prism.languages.extend('clike', {\n comment: [\n {\n pattern: /(^|[^\\\\])\\(\\*[\\s\\S]*?\\*\\)/,\n lookbehind: true\n },\n {\n pattern: /(^|[^\\\\:])\\/\\/.*/,\n lookbehind: true\n }\n ],\n string: {\n pattern: /(?:\"\"\"[\\s\\S]*?\"\"\"|@\"(?:\"\"|[^\"])*\"|\"(?:\\\\[\\s\\S]|[^\\\\\"])*\")B?|'(?:[^\\\\']|\\\\(?:.|\\d{3}|x[a-fA-F\\d]{2}|u[a-fA-F\\d]{4}|U[a-fA-F\\d]{8}))'B?/,\n greedy: true\n },\n 'class-name': {\n pattern: /(\\b(?:exception|inherit|interface|new|of|type)\\s+|\\w\\s*:\\s*|\\s:\\??>\\s*)[.\\w]+\\b(?:\\s*(?:->|\\*)\\s*[.\\w]+\\b)*(?!\\s*[:.])/,\n lookbehind: true,\n inside: {\n operator: /->|\\*/,\n punctuation: /\\./\n }\n },\n keyword: /\\b(?:let|return|use|yield)(?:!\\B|\\b)|\\b(?:abstract|and|as|assert|base|begin|class|default|delegate|do|done|downcast|downto|elif|else|end|exception|extern|false|finally|for|fun|function|global|if|in|inherit|inline|interface|internal|lazy|match|member|module|mutable|namespace|new|not|null|of|open|or|override|private|public|rec|select|static|struct|then|to|true|try|type|upcast|val|void|when|while|with|asr|land|lor|lsl|lsr|lxor|mod|sig|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/,\n number: [\n /\\b0x[\\da-fA-F]+(?:un|lf|LF)?\\b/,\n /\\b0b[01]+(?:y|uy)?\\b/,\n /(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:[fm]|e[+-]?\\d+)?\\b/i,\n /\\b\\d+(?:[IlLsy]|u[lsy]?|UL)?\\b/\n ],\n operator: /([<>~&^])\\1\\1|([*.:<>&])\\2|<-|->|[!=:]=|<?\\|{1,3}>?|\\??(?:<=|>=|<>|[-+*/%=<>])\\??|[!?^&]|~[+~-]|:>|:\\?>?/\n })\n Prism.languages.insertBefore('fsharp', 'keyword', {\n preprocessor: {\n pattern: /^[^\\r\\n\\S]*#.*/m,\n alias: 'property',\n inside: {\n directive: {\n pattern: /(\\s*#)\\b(?:else|endif|if|light|line|nowarn)\\b/,\n lookbehind: true,\n alias: 'keyword'\n }\n }\n }\n })\n Prism.languages.insertBefore('fsharp', 'punctuation', {\n 'computation-expression': {\n pattern: /[_a-z]\\w*(?=\\s*\\{)/i,\n alias: 'keyword'\n }\n })\n Prism.languages.insertBefore('fsharp', 'string', {\n annotation: {\n pattern: /\\[<.+?>\\]/,\n inside: {\n punctuation: /^\\[<|>\\]$/,\n 'class-name': {\n pattern: /^\\w+$|(^|;\\s*)[A-Z]\\w*(?=\\()/,\n lookbehind: true\n },\n 'annotation-content': {\n pattern: /[\\s\\S]+/,\n inside: Prism.languages.fsharp\n }\n }\n }\n })\n}\n","'use strict'\nvar refractorMarkupTemplating = require('./markup-templating.js')\nmodule.exports = ftl\nftl.displayName = 'ftl'\nftl.aliases = []\nfunction ftl(Prism) {\n Prism.register(refractorMarkupTemplating)\n ;(function (Prism) {\n // https://freemarker.apache.org/docs/dgui_template_exp.html\n // FTL expression with 4 levels of nesting supported\n var FTL_EXPR = /[^<()\"']|\\((?:<expr>)*\\)|<(?!#--)|<#--(?:[^-]|-(?!->))*-->|\"(?:[^\\\\\"]|\\\\.)*\"|'(?:[^\\\\']|\\\\.)*'/\n .source\n for (var i = 0; i < 2; i++) {\n FTL_EXPR = FTL_EXPR.replace(/<expr>/g, function () {\n return FTL_EXPR\n })\n }\n FTL_EXPR = FTL_EXPR.replace(/<expr>/g, /[^\\s\\S]/.source)\n var ftl = {\n comment: /<#--[\\s\\S]*?-->/,\n string: [\n {\n // raw string\n pattern: /\\br(\"|')(?:(?!\\1)[^\\\\]|\\\\.)*\\1/,\n greedy: true\n },\n {\n pattern: RegExp(\n /(\"|')(?:(?!\\1|\\$\\{)[^\\\\]|\\\\.|\\$\\{(?:(?!\\})(?:<expr>))*\\})*\\1/.source.replace(\n /<expr>/g,\n function () {\n return FTL_EXPR\n }\n )\n ),\n greedy: true,\n inside: {\n interpolation: {\n pattern: RegExp(\n /((?:^|[^\\\\])(?:\\\\\\\\)*)\\$\\{(?:(?!\\})(?:<expr>))*\\}/.source.replace(\n /<expr>/g,\n function () {\n return FTL_EXPR\n }\n )\n ),\n lookbehind: true,\n inside: {\n 'interpolation-punctuation': {\n pattern: /^\\$\\{|\\}$/,\n alias: 'punctuation'\n },\n rest: null\n }\n }\n }\n }\n ],\n keyword: /\\b(?:as)\\b/,\n boolean: /\\b(?:true|false)\\b/,\n 'builtin-function': {\n pattern: /((?:^|[^?])\\?\\s*)\\w+/,\n lookbehind: true,\n alias: 'function'\n },\n function: /\\w+(?=\\s*\\()/,\n number: /\\d+(?:\\.\\d+)?/,\n operator: /\\.\\.[<*!]?|->|--|\\+\\+|&&|\\|\\||\\?{1,2}|[-+*/%!=<>]=?|\\b(?:gt|gte|lt|lte)\\b/,\n punctuation: /[,;.:()[\\]{}]/\n }\n ftl.string[1].inside.interpolation.inside.rest = ftl\n Prism.languages.ftl = {\n 'ftl-comment': {\n // the pattern is shortened to be more efficient\n pattern: /^<#--[\\s\\S]*/,\n alias: 'comment'\n },\n 'ftl-directive': {\n pattern: /^<[\\s\\S]+>$/,\n inside: {\n directive: {\n pattern: /(^<\\/?)[#@][a-z]\\w*/i,\n lookbehind: true,\n alias: 'keyword'\n },\n punctuation: /^<\\/?|\\/?>$/,\n content: {\n pattern: /\\s*\\S[\\s\\S]*/,\n alias: 'ftl',\n inside: ftl\n }\n }\n },\n 'ftl-interpolation': {\n pattern: /^\\$\\{[\\s\\S]*\\}$/,\n inside: {\n punctuation: /^\\$\\{|\\}$/,\n content: {\n pattern: /\\s*\\S[\\s\\S]*/,\n alias: 'ftl',\n inside: ftl\n }\n }\n }\n }\n Prism.hooks.add('before-tokenize', function (env) {\n var pattern = RegExp(\n /<#--[\\s\\S]*?-->|<\\/?[#@][a-zA-Z](?:<expr>)*?>|\\$\\{(?:<expr>)*?\\}/.source.replace(\n /<expr>/g,\n function () {\n return FTL_EXPR\n }\n ),\n 'gi'\n )\n Prism.languages['markup-templating'].buildPlaceholders(\n env,\n 'ftl',\n pattern\n )\n })\n Prism.hooks.add('after-tokenize', function (env) {\n Prism.languages['markup-templating'].tokenizePlaceholders(env, 'ftl')\n })\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = gcode\ngcode.displayName = 'gcode'\ngcode.aliases = []\nfunction gcode(Prism) {\n Prism.languages.gcode = {\n comment: /;.*|\\B\\(.*?\\)\\B/,\n string: {\n pattern: /\"(?:\"\"|[^\"])*\"/,\n greedy: true\n },\n keyword: /\\b[GM]\\d+(?:\\.\\d+)?\\b/,\n property: /\\b[A-Z]/,\n checksum: {\n pattern: /\\*\\d+/,\n alias: 'punctuation'\n },\n // T0:0:0\n punctuation: /:/\n }\n}\n","'use strict'\n\nmodule.exports = gdscript\ngdscript.displayName = 'gdscript'\ngdscript.aliases = []\nfunction gdscript(Prism) {\n Prism.languages.gdscript = {\n comment: /#.*/,\n string: {\n pattern: /@?(?:(\"|')(?:(?!\\1)[^\\n\\\\]|\\\\[\\s\\S])*\\1(?!\"|')|\"\"\"(?:[^\\\\]|\\\\[\\s\\S])*?\"\"\")/,\n greedy: true\n },\n 'class-name': {\n // class_name Foo, extends Bar, class InnerClass\n // export(int) var baz, export(int, 0) var i\n // as Node\n // const FOO: int = 9, var bar: bool = true\n // func add(reference: Item, amount: int) -> Item:\n pattern: /(^(?:class_name|class|extends)[ \\t]+|^export\\([ \\t]*|\\bas[ \\t]+|(?:\\b(?:const|var)[ \\t]|[,(])[ \\t]*\\w+[ \\t]*:[ \\t]*|->[ \\t]*)[a-zA-Z_]\\w*/m,\n lookbehind: true\n },\n keyword: /\\b(?:and|as|assert|break|breakpoint|class|class_name|const|continue|elif|else|enum|export|extends|for|func|if|in|is|master|mastersync|match|not|null|onready|or|pass|preload|puppet|puppetsync|remote|remotesync|return|self|setget|signal|static|tool|var|while|yield)\\b/,\n function: /[a-z_]\\w*(?=[ \\t]*\\()/i,\n variable: /\\$\\w+/,\n number: [\n /\\b0b[01_]+\\b|\\b0x[\\da-fA-F_]+\\b|(?:\\b\\d[\\d_]*(?:\\.[\\d_]*)?|\\B\\.[\\d_]+)(?:e[+-]?[\\d_]+)?\\b/,\n /\\b(?:INF|NAN|PI|TAU)\\b/\n ],\n constant: /\\b[A-Z][A-Z_\\d]*\\b/,\n boolean: /\\b(?:false|true)\\b/,\n operator: /->|:=|&&|\\|\\||<<|>>|[-+*/%&|!<>=]=?|[~^]/,\n punctuation: /[.:,;()[\\]{}]/\n }\n}\n","'use strict'\n\nmodule.exports = gedcom\ngedcom.displayName = 'gedcom'\ngedcom.aliases = []\nfunction gedcom(Prism) {\n Prism.languages.gedcom = {\n 'line-value': {\n // Preceded by level, optional pointer, and tag\n pattern: /(^\\s*\\d+ +(?:@\\w[\\w!\"$%&'()*+,\\-./:;<=>?[\\\\\\]^`{|}~\\x80-\\xfe #]*@ +)?\\w+ ).+/m,\n lookbehind: true,\n inside: {\n pointer: {\n pattern: /^@\\w[\\w!\"$%&'()*+,\\-./:;<=>?[\\\\\\]^`{|}~\\x80-\\xfe #]*@$/,\n alias: 'variable'\n }\n }\n },\n tag: {\n // Preceded by level and optional pointer\n pattern: /(^\\s*\\d+ +(?:@\\w[\\w!\"$%&'()*+,\\-./:;<=>?[\\\\\\]^`{|}~\\x80-\\xfe #]*@ +)?)\\w+/m,\n lookbehind: true,\n alias: 'string'\n },\n level: {\n pattern: /(^\\s*)\\d+/m,\n lookbehind: true,\n alias: 'number'\n },\n pointer: {\n pattern: /@\\w[\\w!\"$%&'()*+,\\-./:;<=>?[\\\\\\]^`{|}~\\x80-\\xfe #]*@/,\n alias: 'variable'\n }\n }\n}\n","'use strict'\n\nmodule.exports = gherkin\ngherkin.displayName = 'gherkin'\ngherkin.aliases = []\nfunction gherkin(Prism) {\n ;(function (Prism) {\n var tableRow = /(?:\\r?\\n|\\r)[ \\t]*\\|.+\\|(?:(?!\\|).)*/.source\n Prism.languages.gherkin = {\n pystring: {\n pattern: /(\"\"\"|''')[\\s\\S]+?\\1/,\n alias: 'string'\n },\n comment: {\n pattern: /(^[ \\t]*)#.*/m,\n lookbehind: true\n },\n tag: {\n pattern: /(^[ \\t]*)@\\S*/m,\n lookbehind: true\n },\n feature: {\n pattern: /((?:^|\\r?\\n|\\r)[ \\t]*)(?:Ability|Ahoy matey!|Arwedd|Aspekt|Besigheid Behoefte|Business Need|Caracteristica|Característica|Egenskab|Egenskap|Eiginleiki|Feature|Fīča|Fitur|Fonctionnalité|Fonksyonalite|Funcionalidade|Funcionalitat|Functionalitate|Funcţionalitate|Funcționalitate|Functionaliteit|Fungsi|Funkcia|Funkcija|Funkcionalitāte|Funkcionalnost|Funkcja|Funksie|Funktionalität|Funktionalitéit|Funzionalità|Hwaet|Hwæt|Jellemző|Karakteristik|laH|Lastnost|Mak|Mogucnost|Mogućnost|Moznosti|Možnosti|OH HAI|Omadus|Ominaisuus|Osobina|Özellik|perbogh|poQbogh malja'|Potrzeba biznesowa|Požadavek|Požiadavka|Pretty much|Qap|Qu'meH 'ut|Savybė|Tính năng|Trajto|Vermoë|Vlastnosť|Właściwość|Značilnost|Δυνατότητα|Λειτουργία|Могућност|Мөмкинлек|Особина|Свойство|Үзенчәлеклелек|Функционал|Функционалност|Функция|Функціонал|תכונה|خاصية|خصوصیت|صلاحیت|کاروبار کی ضرورت|وِیژگی|रूप लेख|ਖਾਸੀਅਤ|ਨਕਸ਼ ਨੁਹਾਰ|ਮੁਹਾਂਦਰਾ|గుణము|ಹೆಚ್ಚಳ|ความต้องการทางธุรกิจ|ความสามารถ|โครงหลัก|기능|フィーチャ|功能|機能):(?:[^:\\r\\n]+(?:\\r?\\n|\\r|$))*/,\n lookbehind: true,\n inside: {\n important: {\n pattern: /(:)[^\\r\\n]+/,\n lookbehind: true\n },\n keyword: /[^:\\r\\n]+:/\n }\n },\n scenario: {\n pattern: /(^[ \\t]*)(?:Abstract Scenario|Abstrakt Scenario|Achtergrond|Aer|Ær|Agtergrond|All y'all|Antecedentes|Antecedents|Atburðarás|Atburðarásir|Awww, look mate|B4|Background|Baggrund|Bakgrund|Bakgrunn|Bakgrunnur|Beispiele|Beispiller|Bối cảnh|Cefndir|Cenario|Cenário|Cenario de Fundo|Cenário de Fundo|Cenarios|Cenários|Contesto|Context|Contexte|Contexto|Conto|Contoh|Contone|Dæmi|Dasar|Dead men tell no tales|Delineacao do Cenario|Delineação do Cenário|Dis is what went down|Dữ liệu|Dyagram senaryo|Dyagram Senaryo|Egzanp|Ejemplos|Eksempler|Ekzemploj|Enghreifftiau|Esbozo do escenario|Escenari|Escenario|Esempi|Esquema de l'escenari|Esquema del escenario|Esquema do Cenario|Esquema do Cenário|Examples|EXAMPLZ|Exempel|Exemple|Exemples|Exemplos|First off|Fono|Forgatókönyv|Forgatókönyv vázlat|Fundo|Geçmiş|ghantoH|Grundlage|Hannergrond|Háttér|Heave to|Istorik|Juhtumid|Keadaan|Khung kịch bản|Khung tình huống|Kịch bản|Koncept|Konsep skenario|Kontèks|Kontekst|Kontekstas|Konteksts|Kontext|Konturo de la scenaro|Latar Belakang|lut|lut chovnatlh|lutmey|Lýsing Atburðarásar|Lýsing Dæma|Menggariskan Senario|MISHUN|MISHUN SRSLY|mo'|Náčrt Scenára|Náčrt Scénáře|Náčrt Scenáru|Oris scenarija|Örnekler|Osnova|Osnova Scenára|Osnova scénáře|Osnutek|Ozadje|Paraugs|Pavyzdžiai|Példák|Piemēri|Plan du scénario|Plan du Scénario|Plan senaryo|Plan Senaryo|Plang vum Szenario|Pozadí|Pozadie|Pozadina|Príklady|Příklady|Primer|Primeri|Primjeri|Przykłady|Raamstsenaarium|Reckon it's like|Rerefons|Scenár|Scénář|Scenarie|Scenarij|Scenarijai|Scenarijaus šablonas|Scenariji|Scenārijs|Scenārijs pēc parauga|Scenarijus|Scenario|Scénario|Scenario Amlinellol|Scenario Outline|Scenario Template|Scenariomal|Scenariomall|Scenarios|Scenariu|Scenariusz|Scenaro|Schema dello scenario|Se ðe|Se the|Se þe|Senario|Senaryo|Senaryo deskripsyon|Senaryo Deskripsyon|Senaryo taslağı|Shiver me timbers|Situācija|Situai|Situasie|Situasie Uiteensetting|Skenario|Skenario konsep|Skica|Structura scenariu|Structură scenariu|Struktura scenarija|Stsenaarium|Swa|Swa hwaer swa|Swa hwær swa|Szablon scenariusza|Szenario|Szenariogrundriss|Tapaukset|Tapaus|Tapausaihio|Taust|Tausta|Template Keadaan|Template Senario|Template Situai|The thing of it is|Tình huống|Variantai|Voorbeelde|Voorbeelden|Wharrimean is|Yo\\-ho\\-ho|You'll wanna|Założenia|Παραδείγματα|Περιγραφή Σεναρίου|Σενάρια|Σενάριο|Υπόβαθρο|Кереш|Контекст|Концепт|Мисаллар|Мисоллар|Основа|Передумова|Позадина|Предистория|Предыстория|Приклади|Пример|Примери|Примеры|Рамка на сценарий|Скица|Структура сценарија|Структура сценария|Структура сценарію|Сценарий|Сценарий структураси|Сценарийның төзелеше|Сценарији|Сценарио|Сценарій|Тарих|Үрнәкләр|דוגמאות|רקע|תבנית תרחיש|תרחיש|الخلفية|الگوی سناریو|امثلة|پس منظر|زمینه|سناریو|سيناريو|سيناريو مخطط|مثالیں|منظر نامے کا خاکہ|منظرنامہ|نمونه ها|उदाहरण|परिदृश्य|परिदृश्य रूपरेखा|पृष्ठभूमि|ਉਦਾਹਰਨਾਂ|ਪਟਕਥਾ|ਪਟਕਥਾ ਢਾਂਚਾ|ਪਟਕਥਾ ਰੂਪ ਰੇਖਾ|ਪਿਛੋਕੜ|ఉదాహరణలు|కథనం|నేపథ్యం|సన్నివేశం|ಉದಾಹರಣೆಗಳು|ಕಥಾಸಾರಾಂಶ|ವಿವರಣೆ|ಹಿನ್ನೆಲೆ|โครงสร้างของเหตุการณ์|ชุดของตัวอย่าง|ชุดของเหตุการณ์|แนวคิด|สรุปเหตุการณ์|เหตุการณ์|배경|시나리오|시나리오 개요|예|サンプル|シナリオ|シナリオアウトライン|シナリオテンプレ|シナリオテンプレート|テンプレ|例|例子|剧本|剧本大纲|劇本|劇本大綱|场景|场景大纲|場景|場景大綱|背景):[^:\\r\\n]*/m,\n lookbehind: true,\n inside: {\n important: {\n pattern: /(:)[^\\r\\n]*/,\n lookbehind: true\n },\n keyword: /[^:\\r\\n]+:/\n }\n },\n 'table-body': {\n // Look-behind is used to skip the table head, which has the same format as any table row\n pattern: RegExp('(' + tableRow + ')(?:' + tableRow + ')+'),\n lookbehind: true,\n inside: {\n outline: {\n pattern: /<[^>]+?>/,\n alias: 'variable'\n },\n td: {\n pattern: /\\s*[^\\s|][^|]*/,\n alias: 'string'\n },\n punctuation: /\\|/\n }\n },\n 'table-head': {\n pattern: RegExp(tableRow),\n inside: {\n th: {\n pattern: /\\s*[^\\s|][^|]*/,\n alias: 'variable'\n },\n punctuation: /\\|/\n }\n },\n atrule: {\n pattern: /(^[ \\t]+)(?:'ach|'a|'ej|7|a|A také|A taktiež|A tiež|A zároveň|Aber|Ac|Adott|Akkor|Ak|Aleshores|Ale|Ali|Allora|Alors|Als|Ama|Amennyiben|Amikor|Ampak|an|AN|Ananging|And y'all|And|Angenommen|Anrhegedig a|An|Apabila|Atès|Atesa|Atunci|Avast!|Aye|A|awer|Bagi|Banjur|Bet|Biết|Blimey!|Buh|But at the end of the day I reckon|But y'all|But|BUT|Cal|Când|Cando|Cand|Ce|Cuando|Če|Ða ðe|Ða|Dadas|Dada|Dados|Dado|DaH ghu' bejlu'|dann|Dann|Dano|Dan|Dar|Dat fiind|Data|Date fiind|Date|Dati fiind|Dati|Daţi fiind|Dați fiind|Dato|DEN|Den youse gotta|Dengan|De|Diberi|Diyelim ki|Donada|Donat|Donitaĵo|Do|Dun|Duota|Ðurh|Eeldades|Ef|Eğer ki|Entao|Então|Entón|Entonces|En|Epi|E|És|Etant donnée|Etant donné|Et|Étant données|Étant donnée|Étant donné|Etant données|Etant donnés|Étant donnés|Fakat|Gangway!|Gdy|Gegeben seien|Gegeben sei|Gegeven|Gegewe|ghu' noblu'|Gitt|Given y'all|Given|Givet|Givun|Ha|Cho|I CAN HAZ|In|Ir|It's just unbelievable|I|Ja|Jeśli|Jeżeli|Kadar|Kada|Kad|Kai|Kaj|Když|Keď|Kemudian|Ketika|Khi|Kiedy|Ko|Kuid|Kui|Kun|Lan|latlh|Le sa a|Let go and haul|Le|Lè sa a|Lè|Logo|Lorsqu'<|Lorsque|mä|Maar|Mais|Mając|Majd|Maka|Manawa|Mas|Ma|Menawa|Men|Mutta|Nalikaning|Nalika|Nanging|Når|När|Nato|Nhưng|Niin|Njuk|O zaman|Og|Och|Oletetaan|Onda|Ond|Oraz|Pak|Pero|Però|Podano|Pokiaľ|Pokud|Potem|Potom|Privzeto|Pryd|qaSDI'|Quando|Quand|Quan|Så|Sed|Se|Siis|Sipoze ke|Sipoze Ke|Sipoze|Si|Şi|Și|Soit|Stel|Tada|Tad|Takrat|Tak|Tapi|Ter|Tetapi|Tha the|Tha|Then y'all|Then|Thì|Thurh|Toda|Too right|ugeholl|Und|Un|Và|vaj|Vendar|Ve|wann|Wanneer|WEN|Wenn|When y'all|When|Wtedy|Wun|Y'know|Yeah nah|Yna|Youse know like when|Youse know when youse got|Y|Za predpokladu|Za předpokladu|Zadani|Zadano|Zadan|Zadate|Zadato|Zakładając|Zaradi|Zatati|Þa þe|Þa|Þá|Þegar|Þurh|Αλλά|Δεδομένου|Και|Όταν|Τότε|А також|Агар|Але|Али|Аммо|А|Әгәр|Әйтик|Әмма|Бирок|Ва|Вә|Дадено|Дано|Допустим|Если|Задате|Задати|Задато|И|І|К тому же|Када|Кад|Когато|Когда|Коли|Ләкин|Лекин|Нәтиҗәдә|Нехай|Но|Онда|Припустимо, що|Припустимо|Пусть|Также|Та|Тогда|Тоді|То|Унда|Һәм|Якщо|אבל|אזי|אז|בהינתן|וגם|כאשר|آنگاه|اذاً|اگر|اما|اور|با فرض|بالفرض|بفرض|پھر|تب|ثم|جب|عندما|فرض کیا|لكن|لیکن|متى|هنگامی|و|अगर|और|कदा|किन्तु|चूंकि|जब|तथा|तदा|तब|परन्तु|पर|यदि|ਅਤੇ|ਜਦੋਂ|ਜਿਵੇਂ ਕਿ|ਜੇਕਰ|ਤਦ|ਪਰ|అప్పుడు|ఈ పరిస్థితిలో|కాని|చెప్పబడినది|మరియు|ಆದರೆ|ನಂತರ|ನೀಡಿದ|ಮತ್ತು|ಸ್ಥಿತಿಯನ್ನು|กำหนดให้|ดังนั้น|แต่|เมื่อ|และ|그러면<|그리고<|단<|만약<|만일<|먼저<|조건<|하지만<|かつ<|しかし<|ただし<|ならば<|もし<|並且<|但し<|但是<|假如<|假定<|假設<|假设<|前提<|同时<|同時<|并且<|当<|當<|而且<|那么<|那麼<)(?=[ \\t])/m,\n lookbehind: true\n },\n string: {\n pattern: /\"(?:\\\\.|[^\"\\\\\\r\\n])*\"|'(?:\\\\.|[^'\\\\\\r\\n])*'/,\n inside: {\n outline: {\n pattern: /<[^>]+?>/,\n alias: 'variable'\n }\n }\n },\n outline: {\n pattern: /<[^>]+?>/,\n alias: 'variable'\n }\n }\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = git\ngit.displayName = 'git'\ngit.aliases = []\nfunction git(Prism) {\n Prism.languages.git = {\n /*\n * A simple one line comment like in a git status command\n * For instance:\n * $ git status\n * # On branch infinite-scroll\n * # Your branch and 'origin/sharedBranches/frontendTeam/infinite-scroll' have diverged,\n * # and have 1 and 2 different commits each, respectively.\n * nothing to commit (working directory clean)\n */\n comment: /^#.*/m,\n /*\n * Regexp to match the changed lines in a git diff output. Check the example below.\n */\n deleted: /^[-].*/m,\n inserted: /^\\+.*/m,\n /*\n * a string (double and simple quote)\n */\n string: /(\"|')(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/m,\n /*\n * a git command. It starts with a random prompt finishing by a $, then \"git\" then some other parameters\n * For instance:\n * $ git add file.txt\n */\n command: {\n pattern: /^.*\\$ git .*$/m,\n inside: {\n /*\n * A git command can contain a parameter starting by a single or a double dash followed by a string\n * For instance:\n * $ git diff --cached\n * $ git log -p\n */\n parameter: /\\s--?\\w+/m\n }\n },\n /*\n * Coordinates displayed in a git diff command\n * For instance:\n * $ git diff\n * diff --git file.txt file.txt\n * index 6214953..1d54a52 100644\n * --- file.txt\n * +++ file.txt\n * @@ -1 +1,2 @@\n * -Here's my tetx file\n * +Here's my text file\n * +And this is the second line\n */\n coord: /^@@.*@@$/m,\n /*\n * Match a \"commit [SHA1]\" line in a git log output.\n * For instance:\n * $ git log\n * commit a11a14ef7e26f2ca62d4b35eac455ce636d0dc09\n * Author: lgiraudel\n * Date: Mon Feb 17 11:18:34 2014 +0100\n *\n * Add of a new line\n */\n 'commit-sha1': /^commit \\w{40}$/m\n }\n}\n","'use strict'\nvar refractorC = require('./c.js')\nmodule.exports = glsl\nglsl.displayName = 'glsl'\nglsl.aliases = []\nfunction glsl(Prism) {\n Prism.register(refractorC)\n Prism.languages.glsl = Prism.languages.extend('c', {\n keyword: /\\b(?:attribute|const|uniform|varying|buffer|shared|coherent|volatile|restrict|readonly|writeonly|atomic_uint|layout|centroid|flat|smooth|noperspective|patch|sample|break|continue|do|for|while|switch|case|default|if|else|subroutine|in|out|inout|float|double|int|void|bool|true|false|invariant|precise|discard|return|d?mat[234](?:x[234])?|[ibdu]?vec[234]|uint|lowp|mediump|highp|precision|[iu]?sampler[123]D|[iu]?samplerCube|sampler[12]DShadow|samplerCubeShadow|[iu]?sampler[12]DArray|sampler[12]DArrayShadow|[iu]?sampler2DRect|sampler2DRectShadow|[iu]?samplerBuffer|[iu]?sampler2DMS(?:Array)?|[iu]?samplerCubeArray|samplerCubeArrayShadow|[iu]?image[123]D|[iu]?image2DRect|[iu]?imageCube|[iu]?imageBuffer|[iu]?image[12]DArray|[iu]?imageCubeArray|[iu]?image2DMS(?:Array)?|struct|common|partition|active|asm|class|union|enum|typedef|template|this|resource|goto|inline|noinline|public|static|extern|external|interface|long|short|half|fixed|unsigned|superp|input|output|hvec[234]|fvec[234]|sampler3DRect|filter|sizeof|cast|namespace|using)\\b/\n })\n}\n","'use strict'\n\nmodule.exports = gml\ngml.displayName = 'gml'\ngml.aliases = []\nfunction gml(Prism) {\n Prism.languages.gamemakerlanguage = Prism.languages.gml = Prism.languages.extend(\n 'clike',\n {\n keyword: /\\b(?:if|else|switch|case|default|break|for|repeat|while|do|until|continue|exit|return|globalvar|var|enum)\\b/,\n number: /(?:\\b0x[\\da-f]+|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e[+-]?\\d+)?)[ulf]{0,4}/i,\n operator: /[-+%=]=?|!=|\\*\\*?=?|\\/\\/?=?|<[<=>]?|>[=>]?|[&|^~]|\\b(?:or|and|not|with|at|xor)\\b/,\n constant: /\\b(?:self|other|all|noone|global|local|undefined|pointer_(?:invalid|null)|action_(?:stop|restart|continue|reverse)|pi|GM_build_date|GM_version|timezone_(?:local|utc)|gamespeed_(?:fps|microseconds)|ev_(?:create|destroy|step|alarm|keyboard|mouse|collision|other|draw|draw_(?:begin|end|pre|post)|keypress|keyrelease|trigger|(?:left|right|middle|no)_button|(?:left|right|middle)_press|(?:left|right|middle)_release|mouse_(?:enter|leave|wheel_up|wheel_down)|global_(?:left|right|middle)_button|global_(?:left|right|middle)_press|global_(?:left|right|middle)_release|joystick(?:1|2)_(?:left|right|up|down|button1|button2|button3|button4|button5|button6|button7|button8)|outside|boundary|game_start|game_end|room_start|room_end|no_more_lives|animation_end|end_of_path|no_more_health|user\\d|step_(?:normal|begin|end)|gui|gui_begin|gui_end)|vk_(?:nokey|anykey|enter|return|shift|control|alt|escape|space|backspace|tab|pause|printscreen|left|right|up|down|home|end|delete|insert|pageup|pagedown|f\\d|numpad\\d|divide|multiply|subtract|add|decimal|lshift|lcontrol|lalt|rshift|rcontrol|ralt)|mb_(?:any|none|left|right|middle)|c_(?:aqua|black|blue|dkgray|fuchsia|gray|green|lime|ltgray|maroon|navy|olive|purple|red|silver|teal|white|yellow|orange)|fa_(?:left|center|right|top|middle|bottom|readonly|hidden|sysfile|volumeid|directory|archive)|pr_(?:pointlist|linelist|linestrip|trianglelist|trianglestrip|trianglefan)|bm_(?:complex|normal|add|max|subtract|zero|one|src_colour|inv_src_colour|src_color|inv_src_color|src_alpha|inv_src_alpha|dest_alpha|inv_dest_alpha|dest_colour|inv_dest_colour|dest_color|inv_dest_color|src_alpha_sat)|audio_(?:falloff_(?:none|inverse_distance|inverse_distance_clamped|linear_distance|linear_distance_clamped|exponent_distance|exponent_distance_clamped)|old_system|new_system|mono|stereo|3d)|cr_(?:default|none|arrow|cross|beam|size_nesw|size_ns|size_nwse|size_we|uparrow|hourglass|drag|appstart|handpoint|size_all)|spritespeed_framesper(?:second|gameframe)|asset_(?:object|unknown|sprite|sound|room|path|script|font|timeline|tiles|shader)|ds_type_(?:map|list|stack|queue|grid|priority)|ef_(?:explosion|ring|ellipse|firework|smoke|smokeup|star|spark|flare|cloud|rain|snow)|pt_shape_(?:pixel|disk|square|line|star|circle|ring|sphere|flare|spark|explosion|cloud|smoke|snow)|ps_(?:distr|shape)_(?:linear|gaussian|invgaussian|rectangle|ellipse|diamond|line)|ty_(?:real|string)|dll_(?:cdel|cdecl|stdcall)|matrix_(?:view|projection|world)|os_(?:win32|windows|macosx|ios|android|linux|unknown|winphone|win8native|psvita|ps4|xboxone|ps3|uwp)|browser_(?:not_a_browser|unknown|ie|firefox|chrome|safari|safari_mobile|opera|tizen|windows_store|ie_mobile)|device_ios_(?:unknown|iphone|iphone_retina|ipad|ipad_retina|iphone5|iphone6|iphone6plus)|device_(?:emulator|tablet)|display_(?:landscape|landscape_flipped|portrait|portrait_flipped)|of_challenge_(?:win|lose|tie)|leaderboard_type_(?:number|time_mins_secs)|cmpfunc_(?:never|less|equal|lessequal|greater|notequal|greaterequal|always)|cull_(?:noculling|clockwise|counterclockwise)|lighttype_(?:dir|point)|iap_(?:ev_storeload|ev_product|ev_purchase|ev_consume|ev_restore|storeload_ok|storeload_failed|status_uninitialised|status_unavailable|status_loading|status_available|status_processing|status_restoring|failed|unavailable|available|purchased|canceled|refunded)|fb_login_(?:default|fallback_to_webview|no_fallback_to_webview|forcing_webview|use_system_account|forcing_safari)|phy_joint_(?:anchor_1_x|anchor_1_y|anchor_2_x|anchor_2_y|reaction_force_x|reaction_force_y|reaction_torque|motor_speed|angle|motor_torque|max_motor_torque|translation|speed|motor_force|max_motor_force|length_1|length_2|damping_ratio|frequency|lower_angle_limit|upper_angle_limit|angle_limits|max_length|max_torque|max_force)|phy_debug_render_(?:aabb|collision_pairs|coms|core_shapes|joints|obb|shapes)|phy_particle_flag_(?:water|zombie|wall|spring|elastic|viscous|powder|tensile|colourmixing|colormixing)|phy_particle_group_flag_(?:solid|rigid)|phy_particle_data_flag_(?:typeflags|position|velocity|colour|color|category)|achievement_(?:our_info|friends_info|leaderboard_info|info|filter_(?:all_players|friends_only|favorites_only)|type_challenge|type_score_challenge|pic_loaded|show_(?:ui|profile|leaderboard|achievement|bank|friend_picker|purchase_prompt))|network_(?:socket_(?:tcp|udp|bluetooth)|type_(?:connect|disconnect|data|non_blocking_connect)|config_(?:connect_timeout|use_non_blocking_socket|enable_reliable_udp|disable_reliable_udp))|buffer_(?:fixed|grow|wrap|fast|vbuffer|network|u8|s8|u16|s16|u32|s32|u64|f16|f32|f64|bool|text|string|seek_start|seek_relative|seek_end|generalerror|outofspace|outofbounds|invalidtype)|gp_(?:face\\d|shoulderl|shoulderr|shoulderlb|shoulderrb|select|start|stickl|stickr|padu|padd|padl|padr|axislh|axislv|axisrh|axisrv)|ov_(?:friends|community|players|settings|gamegroup|achievements)|lb_sort_(?:none|ascending|descending)|lb_disp_(?:none|numeric|time_sec|time_ms)|ugc_(?:result_success|filetype_(?:community|microtrans)|visibility_(?:public|friends_only|private)|query_RankedBy(?:Vote|PublicationDate|Trend|NumTimesReported|TotalVotesAsc|VotesUp|TextSearch)|query_(?:AcceptedForGameRankedByAcceptanceDate|FavoritedByFriendsRankedByPublicationDate|CreatedByFriendsRankedByPublicationDate|NotYetRated)|sortorder_CreationOrder(?:Desc|Asc)|sortorder_(?:TitleAsc|LastUpdatedDesc|SubscriptionDateDesc|VoteScoreDesc|ForModeration)|list_(?:Published|VotedOn|VotedUp|VotedDown|WillVoteLater|Favorited|Subscribed|UsedOrPlayed|Followed)|match_(?:Items|Items_Mtx|Items_ReadyToUse|Collections|Artwork|Videos|Screenshots|AllGuides|WebGuides|IntegratedGuides|UsableInGame|ControllerBindings))|vertex_usage_(?:position|colour|color|normal|texcoord|textcoord|blendweight|blendindices|psize|tangent|binormal|fog|depth|sample)|vertex_type_(?:float\\d|colour|color|ubyte4)|layerelementtype_(?:undefined|background|instance|oldtilemap|sprite|tilemap|particlesystem|tile)|tile_(?:rotate|flip|mirror|index_mask)|input_type|se_(?:chorus|compressor|echo|equalizer|flanger|gargle|none|reverb)|text_type|(?:obj|scr|spr|rm)\\w+)\\b/,\n variable: /\\b(?:x|y|(?:x|y)(?:previous|start)|(?:h|v)speed|direction|speed|friction|gravity|gravity_direction|path_(?:index|position|positionprevious|speed|scale|orientation|endaction)|object_index|id|solid|persistent|mask_index|instance_(?:count|id)|alarm|timeline_(?:index|position|speed|running|loop)|visible|sprite_(?:index|width|height|xoffset|yoffset)|image_(?:number|index|speed|depth|xscale|yscale|angle|alpha|blend)|bbox_(?:left|right|top|bottom)|layer|phy_(?:rotation|(?:position|linear_velocity|speed|com|collision|col_normal)_(?:x|y)|angular_(?:velocity|damping)|position_(?:x|y)previous|speed|linear_damping|bullet|fixed_rotation|active|mass|inertia|dynamic|kinematic|sleeping|collision_points)|working_directory|webgl_enabled|view_(?:(?:y|x|w|h)view|(?:y|x|w|h)port|(?:v|h)(?:speed|border)|visible|surface_id|object|enabled|current|angle)|undefined|transition_(?:steps|kind|color)|temp_directory|show_(?:score|lives|health)|secure_mode|score|room_(?:width|speed|persistent|last|height|first|caption)|room|pointer_(?:null|invalid)|os_(?:version|type|device|browser)|mouse_(?:y|x|lastbutton|button)|lives|keyboard_(?:string|lastkey|lastchar|key)|iap_data|health|gamemaker_(?:version|registered|pro)|game_(?:save|project|display)_(?:id|name)|fps_real|fps|event_(?:type|object|number|action)|error_(?:occurred|last)|display_aa|delta_time|debug_mode|cursor_sprite|current_(?:year|weekday|time|second|month|minute|hour|day)|caption_(?:score|lives|health)|browser_(?:width|height)|background_(?:yscale|y|xscale|x|width|vtiled|vspeed|visible|showcolour|showcolor|index|htiled|hspeed|height|foreground|colour|color|blend|alpha)|async_load|application_surface|argument(?:_relitive|_count|\\d)|argument|global|local|self|other)\\b/\n }\n )\n}\n","'use strict'\n\nmodule.exports = go\ngo.displayName = 'go'\ngo.aliases = []\nfunction go(Prism) {\n Prism.languages.go = Prism.languages.extend('clike', {\n string: {\n pattern: /([\"'`])(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1/,\n greedy: true\n },\n keyword: /\\b(?:break|case|chan|const|continue|default|defer|else|fallthrough|for|func|go(?:to)?|if|import|interface|map|package|range|return|select|struct|switch|type|var)\\b/,\n boolean: /\\b(?:_|iota|nil|true|false)\\b/,\n number: /(?:\\b0x[a-f\\d]+|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e[-+]?\\d+)?)i?/i,\n operator: /[*\\/%^!=]=?|\\+[=+]?|-[=-]?|\\|[=|]?|&(?:=|&|\\^=?)?|>(?:>=?|=)?|<(?:<=?|=|-)?|:=|\\.\\.\\./,\n builtin: /\\b(?:bool|byte|complex(?:64|128)|error|float(?:32|64)|rune|string|u?int(?:8|16|32|64)?|uintptr|append|cap|close|complex|copy|delete|imag|len|make|new|panic|print(?:ln)?|real|recover)\\b/\n })\n delete Prism.languages.go['class-name']\n}\n","'use strict'\n\nmodule.exports = graphql\ngraphql.displayName = 'graphql'\ngraphql.aliases = []\nfunction graphql(Prism) {\n Prism.languages.graphql = {\n comment: /#.*/,\n description: {\n pattern: /(?:\"\"\"(?:[^\"]|(?!\"\"\")\")*\"\"\"|\"(?:\\\\.|[^\\\\\"\\r\\n])*\")(?=\\s*[a-z_])/i,\n greedy: true,\n alias: 'string',\n inside: {\n 'language-markdown': {\n pattern: /(^\"(?:\"\")?)(?!\\1)[\\s\\S]+(?=\\1$)/,\n lookbehind: true,\n inside: Prism.languages.markdown\n }\n }\n },\n string: {\n pattern: /\"\"\"(?:[^\"]|(?!\"\"\")\")*\"\"\"|\"(?:\\\\.|[^\\\\\"\\r\\n])*\"/,\n greedy: true\n },\n number: /(?:\\B-|\\b)\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?\\b/i,\n boolean: /\\b(?:true|false)\\b/,\n variable: /\\$[a-z_]\\w*/i,\n directive: {\n pattern: /@[a-z_]\\w*/i,\n alias: 'function'\n },\n 'attr-name': {\n pattern: /[a-z_]\\w*(?=\\s*(?:\\((?:[^()\"]|\"(?:\\\\.|[^\\\\\"\\r\\n])*\")*\\))?:)/i,\n greedy: true\n },\n 'class-name': {\n pattern: /(\\b(?:enum|implements|interface|on|scalar|type|union)\\s+|&\\s*)[a-zA-Z_]\\w*/,\n lookbehind: true\n },\n fragment: {\n pattern: /(\\bfragment\\s+|\\.{3}\\s*(?!on\\b))[a-zA-Z_]\\w*/,\n lookbehind: true,\n alias: 'function'\n },\n keyword: /\\b(?:directive|enum|extend|fragment|implements|input|interface|mutation|on|query|repeatable|scalar|schema|subscription|type|union)\\b/,\n operator: /[!=|&]|\\.{3}/,\n punctuation: /[!(){}\\[\\]:=,]/,\n constant: /\\b(?!ID\\b)[A-Z][A-Z_\\d]*\\b/\n }\n}\n","'use strict'\n\nmodule.exports = groovy\ngroovy.displayName = 'groovy'\ngroovy.aliases = []\nfunction groovy(Prism) {\n Prism.languages.groovy = Prism.languages.extend('clike', {\n string: [\n {\n // https://groovy-lang.org/syntax.html#_dollar_slashy_string\n pattern: /(\"\"\"|''')(?:[^\\\\]|\\\\[\\s\\S])*?\\1|\\$\\/(?:[^/$]|\\$(?:[/$]|(?![/$]))|\\/(?!\\$))*\\/\\$/,\n greedy: true\n },\n {\n // TODO: Slash strings (e.g. /foo/) can contain line breaks but this will cause a lot of trouble with\n // simple division (see JS regex), so find a fix maybe?\n pattern: /([\"'/])(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n greedy: true\n }\n ],\n keyword: /\\b(?:as|def|in|abstract|assert|boolean|break|byte|case|catch|char|class|const|continue|default|do|double|else|enum|extends|final|finally|float|for|goto|if|implements|import|instanceof|int|interface|long|native|new|package|private|protected|public|return|short|static|strictfp|super|switch|synchronized|this|throw|throws|trait|transient|try|void|volatile|while)\\b/,\n number: /\\b(?:0b[01_]+|0x[\\da-f_]+(?:\\.[\\da-f_p\\-]+)?|[\\d_]+(?:\\.[\\d_]+)?(?:e[+-]?[\\d]+)?)[glidf]?\\b/i,\n operator: {\n pattern: /(^|[^.])(?:~|==?~?|\\?[.:]?|\\*(?:[.=]|\\*=?)?|\\.[@&]|\\.\\.<|\\.\\.(?!\\.)|-[-=>]?|\\+[+=]?|!=?|<(?:<=?|=>?)?|>(?:>>?=?|=)?|&[&=]?|\\|[|=]?|\\/=?|\\^=?|%=?)/,\n lookbehind: true\n },\n punctuation: /\\.+|[{}[\\];(),:$]/\n })\n Prism.languages.insertBefore('groovy', 'string', {\n shebang: {\n pattern: /#!.+/,\n alias: 'comment'\n }\n })\n Prism.languages.insertBefore('groovy', 'punctuation', {\n 'spock-block': /\\b(?:setup|given|when|then|and|cleanup|expect|where):/\n })\n Prism.languages.insertBefore('groovy', 'function', {\n annotation: {\n pattern: /(^|[^.])@\\w+/,\n lookbehind: true,\n alias: 'punctuation'\n }\n }) // Handle string interpolation\n Prism.hooks.add('wrap', function (env) {\n if (env.language === 'groovy' && env.type === 'string') {\n var delimiter = env.content.value[0]\n if (delimiter != \"'\") {\n var pattern = /([^\\\\])(?:\\$(?:\\{.*?\\}|[\\w.]+))/\n if (delimiter === '$') {\n pattern = /([^\\$])(?:\\$(?:\\{.*?\\}|[\\w.]+))/\n } // To prevent double HTML-encoding we have to decode env.content first\n env.content.value = env.content.value\n .replace(/&lt;/g, '<')\n .replace(/&amp;/g, '&')\n env.content = Prism.highlight(env.content.value, {\n expression: {\n pattern: pattern,\n lookbehind: true,\n inside: Prism.languages.groovy\n }\n })\n env.classes.push(delimiter === '/' ? 'regex' : 'gstring')\n }\n }\n })\n}\n","'use strict'\nvar refractorRuby = require('./ruby.js')\nmodule.exports = haml\nhaml.displayName = 'haml'\nhaml.aliases = []\nfunction haml(Prism) {\n Prism.register(refractorRuby)\n /* TODO\nHandle multiline code after tag\n%foo= some |\nmultiline |\ncode |\n*/\n ;(function (Prism) {\n Prism.languages.haml = {\n // Multiline stuff should appear before the rest\n 'multiline-comment': {\n pattern: /((?:^|\\r?\\n|\\r)([\\t ]*))(?:\\/|-#).*(?:(?:\\r?\\n|\\r)\\2[\\t ].+)*/,\n lookbehind: true,\n alias: 'comment'\n },\n 'multiline-code': [\n {\n pattern: /((?:^|\\r?\\n|\\r)([\\t ]*)(?:[~-]|[&!]?=)).*,[\\t ]*(?:(?:\\r?\\n|\\r)\\2[\\t ].*,[\\t ]*)*(?:(?:\\r?\\n|\\r)\\2[\\t ].+)/,\n lookbehind: true,\n inside: Prism.languages.ruby\n },\n {\n pattern: /((?:^|\\r?\\n|\\r)([\\t ]*)(?:[~-]|[&!]?=)).*\\|[\\t ]*(?:(?:\\r?\\n|\\r)\\2[\\t ].*\\|[\\t ]*)*/,\n lookbehind: true,\n inside: Prism.languages.ruby\n }\n ],\n // See at the end of the file for known filters\n filter: {\n pattern: /((?:^|\\r?\\n|\\r)([\\t ]*)):[\\w-]+(?:(?:\\r?\\n|\\r)(?:\\2[\\t ].+|\\s*?(?=\\r?\\n|\\r)))+/,\n lookbehind: true,\n inside: {\n 'filter-name': {\n pattern: /^:[\\w-]+/,\n alias: 'variable'\n }\n }\n },\n markup: {\n pattern: /((?:^|\\r?\\n|\\r)[\\t ]*)<.+/,\n lookbehind: true,\n inside: Prism.languages.markup\n },\n doctype: {\n pattern: /((?:^|\\r?\\n|\\r)[\\t ]*)!!!(?: .+)?/,\n lookbehind: true\n },\n tag: {\n // Allows for one nested group of braces\n pattern: /((?:^|\\r?\\n|\\r)[\\t ]*)[%.#][\\w\\-#.]*[\\w\\-](?:\\([^)]+\\)|\\{(?:\\{[^}]+\\}|[^{}])+\\}|\\[[^\\]]+\\])*[\\/<>]*/,\n lookbehind: true,\n inside: {\n attributes: [\n {\n // Lookbehind tries to prevent interpolations from breaking it all\n // Allows for one nested group of braces\n pattern: /(^|[^#])\\{(?:\\{[^}]+\\}|[^{}])+\\}/,\n lookbehind: true,\n inside: Prism.languages.ruby\n },\n {\n pattern: /\\([^)]+\\)/,\n inside: {\n 'attr-value': {\n pattern: /(=\\s*)(?:\"(?:\\\\.|[^\\\\\"\\r\\n])*\"|[^)\\s]+)/,\n lookbehind: true\n },\n 'attr-name': /[\\w:-]+(?=\\s*!?=|\\s*[,)])/,\n punctuation: /[=(),]/\n }\n },\n {\n pattern: /\\[[^\\]]+\\]/,\n inside: Prism.languages.ruby\n }\n ],\n punctuation: /[<>]/\n }\n },\n code: {\n pattern: /((?:^|\\r?\\n|\\r)[\\t ]*(?:[~-]|[&!]?=)).+/,\n lookbehind: true,\n inside: Prism.languages.ruby\n },\n // Interpolations in plain text\n interpolation: {\n pattern: /#\\{[^}]+\\}/,\n inside: {\n delimiter: {\n pattern: /^#\\{|\\}$/,\n alias: 'punctuation'\n },\n rest: Prism.languages.ruby\n }\n },\n punctuation: {\n pattern: /((?:^|\\r?\\n|\\r)[\\t ]*)[~=\\-&!]+/,\n lookbehind: true\n }\n }\n var filter_pattern =\n '((?:^|\\\\r?\\\\n|\\\\r)([\\\\t ]*)):{{filter_name}}(?:(?:\\\\r?\\\\n|\\\\r)(?:\\\\2[\\\\t ].+|\\\\s*?(?=\\\\r?\\\\n|\\\\r)))+' // Non exhaustive list of available filters and associated languages\n var filters = [\n 'css',\n {\n filter: 'coffee',\n language: 'coffeescript'\n },\n 'erb',\n 'javascript',\n 'less',\n 'markdown',\n 'ruby',\n 'scss',\n 'textile'\n ]\n var all_filters = {}\n for (var i = 0, l = filters.length; i < l; i++) {\n var filter = filters[i]\n filter =\n typeof filter === 'string'\n ? {\n filter: filter,\n language: filter\n }\n : filter\n if (Prism.languages[filter.language]) {\n all_filters['filter-' + filter.filter] = {\n pattern: RegExp(\n filter_pattern.replace('{{filter_name}}', function () {\n return filter.filter\n })\n ),\n lookbehind: true,\n inside: {\n 'filter-name': {\n pattern: /^:[\\w-]+/,\n alias: 'variable'\n },\n rest: Prism.languages[filter.language]\n }\n }\n }\n }\n Prism.languages.insertBefore('haml', 'filter', all_filters)\n })(Prism)\n}\n","'use strict'\nvar refractorMarkupTemplating = require('./markup-templating.js')\nmodule.exports = handlebars\nhandlebars.displayName = 'handlebars'\nhandlebars.aliases = []\nfunction handlebars(Prism) {\n Prism.register(refractorMarkupTemplating)\n ;(function (Prism) {\n Prism.languages.handlebars = {\n comment: /\\{\\{![\\s\\S]*?\\}\\}/,\n delimiter: {\n pattern: /^\\{\\{\\{?|\\}\\}\\}?$/i,\n alias: 'punctuation'\n },\n string: /([\"'])(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n number: /\\b0x[\\dA-Fa-f]+\\b|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:[Ee][+-]?\\d+)?/,\n boolean: /\\b(?:true|false)\\b/,\n block: {\n pattern: /^(\\s*(?:~\\s*)?)[#\\/]\\S+?(?=\\s*(?:~\\s*)?$|\\s)/i,\n lookbehind: true,\n alias: 'keyword'\n },\n brackets: {\n pattern: /\\[[^\\]]+\\]/,\n inside: {\n punctuation: /\\[|\\]/,\n variable: /[\\s\\S]+/\n }\n },\n punctuation: /[!\"#%&':()*+,.\\/;<=>@\\[\\\\\\]^`{|}~]/,\n variable: /[^!\"#%&'()*+,\\/;<=>@\\[\\\\\\]^`{|}~\\s]+/\n }\n Prism.hooks.add('before-tokenize', function (env) {\n var handlebarsPattern = /\\{\\{\\{[\\s\\S]+?\\}\\}\\}|\\{\\{[\\s\\S]+?\\}\\}/g\n Prism.languages['markup-templating'].buildPlaceholders(\n env,\n 'handlebars',\n handlebarsPattern\n )\n })\n Prism.hooks.add('after-tokenize', function (env) {\n Prism.languages['markup-templating'].tokenizePlaceholders(\n env,\n 'handlebars'\n )\n })\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = haxe\nhaxe.displayName = 'haxe'\nhaxe.aliases = []\nfunction haxe(Prism) {\n Prism.languages.haxe = Prism.languages.extend('clike', {\n // Strings can be multi-line\n string: {\n pattern: /([\"'])(?:(?!\\1)[^\\\\]|\\\\[\\s\\S])*\\1/,\n greedy: true,\n inside: {\n interpolation: {\n pattern: /(^|[^\\\\])\\$(?:\\w+|\\{[^}]+\\})/,\n lookbehind: true,\n inside: {\n interpolation: {\n pattern: /^\\$\\w*/,\n alias: 'variable'\n } // See rest below\n }\n }\n }\n },\n // The final look-ahead prevents highlighting of keywords if expressions such as \"haxe.macro.Expr\"\n keyword: /\\bthis\\b|\\b(?:abstract|as|break|case|cast|catch|class|continue|default|do|dynamic|else|enum|extends|extern|from|for|function|if|implements|import|in|inline|interface|macro|new|null|override|public|private|return|static|super|switch|throw|to|try|typedef|using|var|while)(?!\\.)\\b/,\n operator: /\\.{3}|\\+\\+?|-[->]?|[=!]=?|&&?|\\|\\|?|<[<=]?|>[>=]?|[*\\/%~^]/\n })\n Prism.languages.insertBefore('haxe', 'class-name', {\n regex: {\n pattern: /~\\/(?:[^\\/\\\\\\r\\n]|\\\\.)+\\/[igmsu]*/,\n greedy: true\n }\n })\n Prism.languages.insertBefore('haxe', 'keyword', {\n preprocessor: {\n pattern: /#\\w+/,\n alias: 'builtin'\n },\n metadata: {\n pattern: /@:?\\w+/,\n alias: 'symbol'\n },\n reification: {\n pattern: /\\$(?:\\w+|(?=\\{))/,\n alias: 'variable'\n }\n })\n Prism.languages.haxe['string'].inside['interpolation'].inside.rest =\n Prism.languages.haxe\n delete Prism.languages.haxe['class-name']\n}\n","'use strict'\n\nmodule.exports = hcl\nhcl.displayName = 'hcl'\nhcl.aliases = []\nfunction hcl(Prism) {\n Prism.languages.hcl = {\n comment: /(?:\\/\\/|#).*|\\/\\*[\\s\\S]*?(?:\\*\\/|$)/,\n heredoc: {\n pattern: /<<-?(\\w+\\b)[\\s\\S]*?^[ \\t]*\\1/m,\n greedy: true,\n alias: 'string'\n },\n keyword: [\n {\n pattern: /(?:resource|data)\\s+(?:\"(?:\\\\[\\s\\S]|[^\\\\\"])*\")(?=\\s+\"[\\w-]+\"\\s+{)/i,\n inside: {\n type: {\n pattern: /(resource|data|\\s+)(?:\"(?:\\\\[\\s\\S]|[^\\\\\"])*\")/i,\n lookbehind: true,\n alias: 'variable'\n }\n }\n },\n {\n pattern: /(?:provider|provisioner|variable|output|module|backend)\\s+(?:[\\w-]+|\"(?:\\\\[\\s\\S]|[^\\\\\"])*\")\\s+(?={)/i,\n inside: {\n type: {\n pattern: /(provider|provisioner|variable|output|module|backend)\\s+(?:[\\w-]+|\"(?:\\\\[\\s\\S]|[^\\\\\"])*\")\\s+/i,\n lookbehind: true,\n alias: 'variable'\n }\n }\n },\n /[\\w-]+(?=\\s+{)/\n ],\n property: [/[\\w-\\.]+(?=\\s*=(?!=))/, /\"(?:\\\\[\\s\\S]|[^\\\\\"])+\"(?=\\s*[:=])/],\n string: {\n pattern: /\"(?:[^\\\\$\"]|\\\\[\\s\\S]|\\$(?:(?=\")|\\$+(?!\\$)|[^\"${])|\\$\\{(?:[^{}\"]|\"(?:[^\\\\\"]|\\\\[\\s\\S])*\")*\\})*\"/,\n greedy: true,\n inside: {\n interpolation: {\n pattern: /(^|[^$])\\$\\{(?:[^{}\"]|\"(?:[^\\\\\"]|\\\\[\\s\\S])*\")*\\}/,\n lookbehind: true,\n inside: {\n type: {\n pattern: /(\\b(?:terraform|var|self|count|module|path|data|local)\\b\\.)[\\w\\*]+/i,\n lookbehind: true,\n alias: 'variable'\n },\n keyword: /\\b(?:terraform|var|self|count|module|path|data|local)\\b/i,\n function: /\\w+(?=\\()/,\n string: {\n pattern: /\"(?:\\\\[\\s\\S]|[^\\\\\"])*\"/,\n greedy: true\n },\n number: /\\b0x[\\da-f]+\\b|\\b\\d+(?:\\.\\d*)?(?:e[+-]?\\d+)?/i,\n punctuation: /[!\\$#%&'()*+,.\\/;<=>@\\[\\\\\\]^`{|}~?:]/\n }\n }\n }\n },\n number: /\\b0x[\\da-f]+\\b|\\b\\d+(?:\\.\\d*)?(?:e[+-]?\\d+)?/i,\n boolean: /\\b(?:true|false)\\b/i,\n punctuation: /[=\\[\\]{}]/\n }\n}\n","'use strict'\nvar refractorC = require('./c.js')\nmodule.exports = hlsl\nhlsl.displayName = 'hlsl'\nhlsl.aliases = []\nfunction hlsl(Prism) {\n Prism.register(refractorC)\n Prism.languages.hlsl = Prism.languages.extend('c', {\n // Regarding keywords and class names:\n // The list of all keywords was split into 'keyword' and 'class-name' tokens based on whether they are capitalized.\n // https://docs.microsoft.com/en-us/windows/win32/direct3dhlsl/dx-graphics-hlsl-appendix-keywords\n // https://docs.microsoft.com/en-us/windows/win32/direct3dhlsl/dx-graphics-hlsl-appendix-reserved-words\n 'class-name': [\n Prism.languages.c['class-name'],\n /\\b(?:AppendStructuredBuffer|BlendState|Buffer|ByteAddressBuffer|CompileShader|ComputeShader|ConsumeStructuredBuffer|DepthStencilState|DepthStencilView|DomainShader|GeometryShader|Hullshader|InputPatch|LineStream|OutputPatch|PixelShader|PointStream|RasterizerState|RenderTargetView|RWBuffer|RWByteAddressBuffer|RWStructuredBuffer|RWTexture(?:1D|1DArray|2D|2DArray|3D)|SamplerComparisonState|SamplerState|StructuredBuffer|Texture(?:1D|1DArray|2D|2DArray|2DMS|2DMSArray|3D|Cube|CubeArray)|TriangleStream|VertexShader)\\b/\n ],\n keyword: [\n // HLSL keyword\n /\\b(?:asm|asm_fragment|auto|break|case|catch|cbuffer|centroid|char|class|column_major|compile|compile_fragment|const|const_cast|continue|default|delete|discard|do|dynamic_cast|else|enum|explicit|export|extern|for|friend|fxgroup|goto|groupshared|if|in|inline|inout|interface|line|lineadj|linear|long|matrix|mutable|namespace|new|nointerpolation|noperspective|operator|out|packoffset|pass|pixelfragment|point|precise|private|protected|public|register|reinterpret_cast|return|row_major|sample|sampler|shared|short|signed|sizeof|snorm|stateblock|stateblock_state|static|static_cast|string|struct|switch|tbuffer|technique|technique10|technique11|template|texture|this|throw|triangle|triangleadj|try|typedef|typename|uniform|union|unorm|unsigned|using|vector|vertexfragment|virtual|void|volatile|while)\\b/, // scalar, vector, and matrix types\n /\\b(?:bool|double|dword|float|half|int|min(?:10float|12int|16(?:float|int|uint))|uint)(?:[1-4](?:x[1-4])?)?\\b/\n ],\n // https://docs.microsoft.com/en-us/windows/win32/direct3dhlsl/dx-graphics-hlsl-appendix-grammar#floating-point-numbers\n number: /(?:(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:[eE][+-]?\\d+)?|\\b0x[\\da-fA-F]+)[fFhHlLuU]?\\b/,\n boolean: /\\b(?:false|true)\\b/\n })\n}\n","'use strict'\n\nmodule.exports = hpkp\nhpkp.displayName = 'hpkp'\nhpkp.aliases = []\nfunction hpkp(Prism) {\n /**\n * Original by Scott Helme.\n *\n * Reference: https://scotthelme.co.uk/hpkp-cheat-sheet/\n */\n Prism.languages.hpkp = {\n directive: {\n pattern: /\\b(?:(?:includeSubDomains|preload|strict)(?: |;)|pin-sha256=\"[a-zA-Z\\d+=/]+\"|(?:max-age|report-uri)=|report-to )/,\n alias: 'keyword'\n },\n safe: {\n pattern: /\\b\\d{7,}\\b/,\n alias: 'selector'\n },\n unsafe: {\n pattern: /\\b\\d{1,6}\\b/,\n alias: 'function'\n }\n }\n}\n","'use strict'\n\nmodule.exports = hsts\nhsts.displayName = 'hsts'\nhsts.aliases = []\nfunction hsts(Prism) {\n /**\n * Original by Scott Helme.\n *\n * Reference: https://scotthelme.co.uk/hsts-cheat-sheet/\n */\n Prism.languages.hsts = {\n directive: {\n pattern: /\\b(?:max-age=|includeSubDomains|preload)/,\n alias: 'keyword'\n },\n safe: {\n pattern: /\\b\\d{8,}\\b/,\n alias: 'selector'\n },\n unsafe: {\n pattern: /\\b\\d{1,7}\\b/,\n alias: 'function'\n }\n }\n}\n","'use strict'\n\nmodule.exports = http\nhttp.displayName = 'http'\nhttp.aliases = []\nfunction http(Prism) {\n ;(function (Prism) {\n Prism.languages.http = {\n 'request-line': {\n pattern: /^(?:POST|GET|PUT|DELETE|OPTIONS|PATCH|TRACE|CONNECT)\\s(?:https?:\\/\\/|\\/)\\S+\\sHTTP\\/[0-9.]+/m,\n inside: {\n // HTTP Verb\n property: /^(?:POST|GET|PUT|DELETE|OPTIONS|PATCH|TRACE|CONNECT)\\b/,\n // Path or query argument\n 'attr-name': /:\\w+/\n }\n },\n 'response-status': {\n pattern: /^HTTP\\/1.[01] \\d.*/m,\n inside: {\n // Status, e.g. 200 OK\n property: {\n pattern: /(^HTTP\\/1.[01] )\\d.*/i,\n lookbehind: true\n }\n }\n },\n // HTTP header name\n 'header-name': {\n pattern: /^[\\w-]+:(?=.)/m,\n alias: 'keyword'\n }\n } // Create a mapping of Content-Type headers to language definitions\n var langs = Prism.languages\n var httpLanguages = {\n 'application/javascript': langs.javascript,\n 'application/json': langs.json || langs.javascript,\n 'application/xml': langs.xml,\n 'text/xml': langs.xml,\n 'text/html': langs.html,\n 'text/css': langs.css\n } // Declare which types can also be suffixes\n var suffixTypes = {\n 'application/json': true,\n 'application/xml': true\n }\n /**\n * Returns a pattern for the given content type which matches it and any type which has it as a suffix.\n *\n * @param {string} contentType\n * @returns {string}\n */\n function getSuffixPattern(contentType) {\n var suffix = contentType.replace(/^[a-z]+\\//, '')\n var suffixPattern = '\\\\w+/(?:[\\\\w.-]+\\\\+)+' + suffix + '(?![+\\\\w.-])'\n return '(?:' + contentType + '|' + suffixPattern + ')'\n } // Insert each content type parser that has its associated language\n // currently loaded.\n var options\n for (var contentType in httpLanguages) {\n if (httpLanguages[contentType]) {\n options = options || {}\n var pattern = suffixTypes[contentType]\n ? getSuffixPattern(contentType)\n : contentType\n options[contentType.replace(/\\//g, '-')] = {\n pattern: RegExp(\n '(content-type:\\\\s*' + pattern + '.*)(?:\\\\r?\\\\n|\\\\r){2}[\\\\s\\\\S]*',\n 'i'\n ),\n lookbehind: true,\n inside: httpLanguages[contentType]\n }\n }\n }\n if (options) {\n Prism.languages.insertBefore('http', 'header-name', options)\n }\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = ichigojam\nichigojam.displayName = 'ichigojam'\nichigojam.aliases = []\nfunction ichigojam(Prism) {\n // according to the offical reference (EN)\n // https://ichigojam.net/IchigoJam-en.html\n Prism.languages.ichigojam = {\n comment: /(?:\\B'|REM)(?:[^\\n\\r]*)/i,\n string: {\n pattern: /\"(?:\"\"|[!#$%&'()*,\\/:;<=>?^_ +\\-.A-Z\\d])*\"/i,\n greedy: true\n },\n number: /\\B#[0-9A-F]+|\\B`[01]+|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:E[+-]?\\d+)?/i,\n keyword: /\\b(?:BEEP|BPS|CASE|CLEAR|CLK|CLO|CLP|CLS|CLT|CLV|CONT|COPY|ELSE|END|FILE|FILES|FOR|GOSUB|GSB|GOTO|IF|INPUT|KBD|LED|LET|LIST|LOAD|LOCATE|LRUN|NEW|NEXT|OUT|RIGHT|PLAY|POKE|PRINT|PWM|REM|RENUM|RESET|RETURN|RTN|RUN|SAVE|SCROLL|SLEEP|SRND|STEP|STOP|SUB|TEMPO|THEN|TO|UART|VIDEO|WAIT)(?:\\$|\\b)/i,\n function: /\\b(?:ABS|ANA|ASC|BIN|BTN|DEC|END|FREE|HELP|HEX|I2CR|I2CW|IN|INKEY|LEN|LINE|PEEK|RND|SCR|SOUND|STR|TICK|USR|VER|VPEEK|ZER)(?:\\$|\\b)/i,\n label: /(?:\\B@[^\\s]+)/i,\n operator: /<[=>]?|>=?|\\|\\||&&|[+\\-*\\/=|&^~!]|\\b(?:AND|NOT|OR)\\b/i,\n punctuation: /[\\[,;:()\\]]/\n }\n}\n","'use strict'\n\nmodule.exports = icon\nicon.displayName = 'icon'\nicon.aliases = []\nfunction icon(Prism) {\n Prism.languages.icon = {\n comment: /#.*/,\n string: {\n pattern: /([\"'])(?:(?!\\1)[^\\\\\\r\\n_]|\\\\.|_(?!\\1)(?:\\r\\n|[\\s\\S]))*\\1/,\n greedy: true\n },\n number: /\\b(?:\\d+r[a-z\\d]+|\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?)\\b|\\.\\d+\\b/i,\n 'builtin-keyword': {\n pattern: /&(?:allocated|ascii|clock|collections|cset|current|date|dateline|digits|dump|e|error(?:number|text|value)?|errout|fail|features|file|host|input|lcase|letters|level|line|main|null|output|phi|pi|pos|progname|random|regions|source|storage|subject|time|trace|ucase|version)\\b/,\n alias: 'variable'\n },\n directive: {\n pattern: /\\$\\w+/,\n alias: 'builtin'\n },\n keyword: /\\b(?:break|by|case|create|default|do|else|end|every|fail|global|if|initial|invocable|link|local|next|not|of|procedure|record|repeat|return|static|suspend|then|to|until|while)\\b/,\n function: /(?!\\d)\\w+(?=\\s*[({]|\\s*!\\s*\\[)/,\n operator: /[+-]:(?!=)|(?:[\\/?@^%&]|\\+\\+?|--?|==?=?|~==?=?|\\*\\*?|\\|\\|\\|?|<(?:->?|<?=?)|>>?=?)(?::=)?|:(?:=:?)?|[!.\\\\|~]/,\n punctuation: /[\\[\\](){},;]/\n }\n}\n","'use strict'\n\nmodule.exports = iecst\niecst.displayName = 'iecst'\niecst.aliases = []\nfunction iecst(Prism) {\n Prism.languages.iecst = {\n comment: [\n {\n pattern: /(^|[^\\\\])(?:\\/\\*[\\s\\S]*?(?:\\*\\/|$)|\\(\\*[\\s\\S]*?(?:\\*\\)|$)|\\{[\\s\\S]*?(?:\\}|$))/,\n lookbehind: true\n },\n {\n pattern: /(^|[^\\\\:])\\/\\/.*/,\n lookbehind: true,\n greedy: true\n }\n ],\n string: {\n pattern: /([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/,\n greedy: true\n },\n 'class-name': /\\b(?:END_)?(?:PROGRAM|CONFIGURATION|INTERFACE|FUNCTION_BLOCK|FUNCTION|ACTION|TRANSITION|TYPE|STRUCT|(?:INITIAL_)?STEP|NAMESPACE|LIBRARY|CHANNEL|FOLDER|RESOURCE|VAR_(?:GLOBAL|INPUT|PUTPUT|IN_OUT|ACCESS|TEMP|EXTERNAL|CONFIG)|VAR|METHOD|PROPERTY)\\b/i,\n keyword: /\\b(?:(?:END_)?(?:IF|WHILE|REPEAT|CASE|FOR)|ELSE|FROM|THEN|ELSIF|DO|TO|BY|PRIVATE|PUBLIC|PROTECTED|CONSTANT|RETURN|EXIT|CONTINUE|GOTO|JMP|AT|RETAIN|NON_RETAIN|TASK|WITH|UNTIL|USING|EXTENDS|IMPLEMENTS|GET|SET|__TRY|__CATCH|__FINALLY|__ENDTRY)\\b/,\n variable: /\\b(?:AT|BOOL|BYTE|(?:D|L)?WORD|U?(?:S|D|L)?INT|L?REAL|TIME(?:_OF_DAY)?|TOD|DT|DATE(?:_AND_TIME)?|STRING|ARRAY|ANY|POINTER)\\b/,\n symbol: /%[IQM][XBWDL][\\d.]*|%[IQ][\\d.]*/,\n number: /\\b(?:16#[\\da-f]+|2#[01_]+|0x[\\da-f]+)\\b|\\b(?:T|D|DT|TOD)#[\\d_shmd:]*|\\b[A-Z]*\\#[\\d.,_]*|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e[+-]?\\d+)?/i,\n boolean: /\\b(?:TRUE|FALSE|NULL)\\b/,\n function: /\\w+(?=\\()/,\n operator: /(?:S?R?:?=>?|&&?|\\*\\*?|<=?|>=?|[-:^/+])|\\b(?:OR|AND|MOD|NOT|XOR|LE|GE|EQ|NE|GT|LT)\\b/,\n punctuation: /[();]/,\n type: {\n pattern: /#/,\n alias: 'selector'\n }\n }\n}\n","'use strict'\n\nmodule.exports = ignore\nignore.displayName = 'ignore'\nignore.aliases = []\nfunction ignore(Prism) {\n ;(function (Prism) {\n Prism.languages.ignore = {\n // https://git-scm.com/docs/gitignore\n comment: /^#.*/m,\n entry: {\n pattern: /\\S(?:.*(?:(?:\\\\ )|\\S))?/,\n alias: 'string',\n inside: {\n operator: /^!|\\*\\*?|\\?/,\n regex: {\n pattern: /(^|[^\\\\])\\[[^\\[\\]]*\\]/,\n lookbehind: true\n },\n punctuation: /\\//\n }\n }\n }\n Prism.languages.gitignore = Prism.languages.ignore\n Prism.languages.hgignore = Prism.languages.ignore\n Prism.languages.npmignore = Prism.languages.ignore\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = inform7\ninform7.displayName = 'inform7'\ninform7.aliases = []\nfunction inform7(Prism) {\n Prism.languages.inform7 = {\n string: {\n pattern: /\"[^\"]*\"/,\n inside: {\n substitution: {\n pattern: /\\[[^\\]]+\\]/,\n inside: {\n delimiter: {\n pattern: /\\[|\\]/,\n alias: 'punctuation'\n } // See rest below\n }\n }\n }\n },\n comment: {\n pattern: /\\[[^\\]]+\\]/,\n greedy: true\n },\n title: {\n pattern: /^[ \\t]*(?:volume|book|part(?! of)|chapter|section|table)\\b.+/im,\n alias: 'important'\n },\n number: {\n pattern: /(^|[^-])(?:\\b\\d+(?:\\.\\d+)?(?:\\^\\d+)?(?:(?!\\d)\\w+)?|\\b(?:one|two|three|four|five|six|seven|eight|nine|ten|eleven|twelve))\\b(?!-)/i,\n lookbehind: true\n },\n verb: {\n pattern: /(^|[^-])\\b(?:applying to|are|attacking|answering|asking|be(?:ing)?|burning|buying|called|carries|carry(?! out)|carrying|climbing|closing|conceal(?:s|ing)?|consulting|contain(?:s|ing)?|cutting|drinking|dropping|eating|enclos(?:es?|ing)|entering|examining|exiting|getting|giving|going|ha(?:ve|s|ving)|hold(?:s|ing)?|impl(?:y|ies)|incorporat(?:es?|ing)|inserting|is|jumping|kissing|listening|locking|looking|mean(?:s|ing)?|opening|provid(?:es?|ing)|pulling|pushing|putting|relat(?:es?|ing)|removing|searching|see(?:s|ing)?|setting|showing|singing|sleeping|smelling|squeezing|switching|support(?:s|ing)?|swearing|taking|tasting|telling|thinking|throwing|touching|turning|tying|unlock(?:s|ing)?|var(?:y|ies|ying)|waiting|waking|waving|wear(?:s|ing)?)\\b(?!-)/i,\n lookbehind: true,\n alias: 'operator'\n },\n keyword: {\n pattern: /(^|[^-])\\b(?:after|before|carry out|check|continue the action|definition(?= *:)|do nothing|else|end (?:if|unless|the story)|every turn|if|include|instead(?: of)?|let|move|no|now|otherwise|repeat|report|resume the story|rule for|running through|say(?:ing)?|stop the action|test|try(?:ing)?|understand|unless|use|when|while|yes)\\b(?!-)/i,\n lookbehind: true\n },\n property: {\n pattern: /(^|[^-])\\b(?:adjacent(?! to)|carried|closed|concealed|contained|dark|described|edible|empty|enclosed|enterable|even|female|fixed in place|full|handled|held|improper-named|incorporated|inedible|invisible|lighted|lit|lock(?:able|ed)|male|marked for listing|mentioned|negative|neuter|non-(?:empty|full|recurring)|odd|opaque|open(?:able)?|plural-named|portable|positive|privately-named|proper-named|provided|publically-named|pushable between rooms|recurring|related|rubbing|scenery|seen|singular-named|supported|swinging|switch(?:able|ed(?: on| off)?)|touch(?:able|ed)|transparent|unconcealed|undescribed|unlit|unlocked|unmarked for listing|unmentioned|unopenable|untouchable|unvisited|variable|visible|visited|wearable|worn)\\b(?!-)/i,\n lookbehind: true,\n alias: 'symbol'\n },\n position: {\n pattern: /(^|[^-])\\b(?:above|adjacent to|back side of|below|between|down|east|everywhere|front side|here|in|inside(?: from)?|north(?:east|west)?|nowhere|on(?: top of)?|other side|outside(?: from)?|parts? of|regionally in|south(?:east|west)?|through|up|west|within)\\b(?!-)/i,\n lookbehind: true,\n alias: 'keyword'\n },\n type: {\n pattern: /(^|[^-])\\b(?:actions?|activit(?:y|ies)|actors?|animals?|backdrops?|containers?|devices?|directions?|doors?|holders?|kinds?|lists?|m[ae]n|nobody|nothing|nouns?|numbers?|objects?|people|persons?|player(?:'s holdall)?|regions?|relations?|rooms?|rule(?:book)?s?|scenes?|someone|something|supporters?|tables?|texts?|things?|time|vehicles?|wom[ae]n)\\b(?!-)/i,\n lookbehind: true,\n alias: 'variable'\n },\n punctuation: /[.,:;(){}]/\n }\n Prism.languages.inform7['string'].inside['substitution'].inside.rest =\n Prism.languages.inform7 // We don't want the remaining text in the substitution to be highlighted as the string.\n Prism.languages.inform7['string'].inside['substitution'].inside.rest.text = {\n pattern: /\\S(?:\\s*\\S)*/,\n alias: 'comment'\n }\n}\n","'use strict'\n\nmodule.exports = ini\nini.displayName = 'ini'\nini.aliases = []\nfunction ini(Prism) {\n Prism.languages.ini = {\n comment: /^[ \\t]*[;#].*$/m,\n selector: /^[ \\t]*\\[.*?\\]/m,\n constant: /^[ \\t]*[^\\s=]+?(?=[ \\t]*=)/m,\n 'attr-value': {\n pattern: /=.*/,\n inside: {\n punctuation: /^[=]/\n }\n }\n }\n}\n","'use strict'\n\nmodule.exports = io\nio.displayName = 'io'\nio.aliases = []\nfunction io(Prism) {\n Prism.languages.io = {\n comment: [\n {\n pattern: /(^|[^\\\\])\\/\\*[\\s\\S]*?(?:\\*\\/|$)/,\n lookbehind: true\n },\n {\n pattern: /(^|[^\\\\])\\/\\/.*/,\n lookbehind: true\n },\n {\n pattern: /(^|[^\\\\])#.*/,\n lookbehind: true\n }\n ],\n 'triple-quoted-string': {\n pattern: /\"\"\"(?:\\\\[\\s\\S]|(?!\"\"\")[^\\\\])*\"\"\"/,\n greedy: true,\n alias: 'string'\n },\n string: {\n pattern: /\"(?:\\\\.|[^\\\\\\r\\n\"])*\"/,\n greedy: true\n },\n keyword: /\\b(?:activate|activeCoroCount|asString|block|break|catch|clone|collectGarbage|compileString|continue|do|doFile|doMessage|doString|else|elseif|exit|for|foreach|forward|getSlot|getEnvironmentVariable|hasSlot|if|ifFalse|ifNil|ifNilEval|ifTrue|isActive|isNil|isResumable|list|message|method|parent|pass|pause|perform|performWithArgList|print|println|proto|raise|raiseResumable|removeSlot|resend|resume|schedulerSleepSeconds|self|sender|setSchedulerSleepSeconds|setSlot|shallowCopy|slotNames|super|system|then|thisBlock|thisContext|call|try|type|uniqueId|updateSlot|wait|while|write|yield)\\b/,\n builtin: /\\b(?:Array|AudioDevice|AudioMixer|Block|Box|Buffer|CFunction|CGI|Color|Curses|DBM|DNSResolver|DOConnection|DOProxy|DOServer|Date|Directory|Duration|DynLib|Error|Exception|FFT|File|Fnmatch|Font|Future|GL|GLE|GLScissor|GLU|GLUCylinder|GLUQuadric|GLUSphere|GLUT|Host|Image|Importer|LinkList|List|Lobby|Locals|MD5|MP3Decoder|MP3Encoder|Map|Message|Movie|Notification|Number|Object|OpenGL|Point|Protos|Regex|SGML|SGMLElement|SGMLParser|SQLite|Server|Sequence|ShowMessage|SleepyCat|SleepyCatCursor|Socket|SocketManager|Sound|Soup|Store|String|Tree|UDPSender|UPDReceiver|URL|User|Warning|WeakLink|Random|BigNum)\\b/,\n boolean: /\\b(?:true|false|nil)\\b/,\n number: /\\b0x[\\da-f]+\\b|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e-?\\d+)?/i,\n operator: /[=!*/%+\\-^&|]=|>>?=?|<<?=?|:?:?=|\\+\\+?|--?|\\*\\*?|\\/\\/?|%|\\|\\|?|&&?|\\b(?:return|and|or|not)\\b|@@?|\\?\\??|\\.\\./,\n punctuation: /[{}[\\];(),.:]/\n }\n}\n","'use strict'\n\nmodule.exports = j\nj.displayName = 'j'\nj.aliases = []\nfunction j(Prism) {\n Prism.languages.j = {\n comment: /\\bNB\\..*/,\n string: {\n pattern: /'(?:''|[^'\\r\\n])*'/,\n greedy: true\n },\n keyword: /\\b(?:(?:adverb|conjunction|CR|def|define|dyad|LF|monad|noun|verb)\\b|(?:assert|break|case|catch[dt]?|continue|do|else|elseif|end|fcase|for|for_\\w+|goto_\\w+|if|label_\\w+|return|select|throw|try|while|whilst)\\.)/,\n verb: {\n // Negative look-ahead prevents bad highlighting\n // of ^: ;. =. =: !. !:\n pattern: /(?!\\^:|;\\.|[=!][.:])(?:\\{(?:\\.|::?)?|p(?:\\.\\.?|:)|[=!\\]]|[<>+*\\-%$|,#][.:]?|[?^]\\.?|[;\\[]:?|[~}\"i][.:]|[ACeEIjLor]\\.|(?:[_\\/\\\\qsux]|_?\\d):)/,\n alias: 'keyword'\n },\n number: /\\b_?(?:(?!\\d:)\\d+(?:\\.\\d+)?(?:(?:[ejpx]|ad|ar)_?\\d+(?:\\.\\d+)?)*(?:b_?[\\da-z]+(?:\\.[\\da-z]+)?)?|_\\b(?!\\.))/,\n adverb: {\n pattern: /[~}]|[\\/\\\\]\\.?|[bfM]\\.|t[.:]/,\n alias: 'builtin'\n },\n operator: /[=a][.:]|_\\./,\n conjunction: {\n pattern: /&(?:\\.:?|:)?|[.:@][.:]?|[!D][.:]|[;dHT]\\.|`:?|[\\^LS]:|\"/,\n alias: 'variable'\n },\n punctuation: /[()]/\n }\n}\n","'use strict'\nvar refractorJava = require('./java.js')\nvar refractorJavadoclike = require('./javadoclike.js')\nmodule.exports = javadoc\njavadoc.displayName = 'javadoc'\njavadoc.aliases = []\nfunction javadoc(Prism) {\n Prism.register(refractorJava)\n Prism.register(refractorJavadoclike)\n ;(function (Prism) {\n var codeLinePattern = /(^(?:\\s*(?:\\*\\s*)*))[^*\\s].*$/m\n var memberReference = /#\\s*\\w+(?:\\s*\\([^()]*\\))?/.source\n var reference = /(?:[a-zA-Z]\\w+\\s*\\.\\s*)*[A-Z]\\w*(?:\\s*<mem>)?|<mem>/.source.replace(\n /<mem>/g,\n function () {\n return memberReference\n }\n )\n Prism.languages.javadoc = Prism.languages.extend('javadoclike', {})\n Prism.languages.insertBefore('javadoc', 'keyword', {\n reference: {\n pattern: RegExp(\n /(@(?:exception|throws|see|link|linkplain|value)\\s+(?:\\*\\s*)?)/\n .source +\n '(?:' +\n reference +\n ')'\n ),\n lookbehind: true,\n inside: {\n function: {\n pattern: /(#\\s*)\\w+(?=\\s*\\()/,\n lookbehind: true\n },\n field: {\n pattern: /(#\\s*)\\w+/,\n lookbehind: true\n },\n namespace: {\n pattern: /\\b(?:[a-z]\\w*\\s*\\.\\s*)+/,\n inside: {\n punctuation: /\\./\n }\n },\n 'class-name': /\\b[A-Z]\\w*/,\n keyword: Prism.languages.java.keyword,\n punctuation: /[#()[\\],.]/\n }\n },\n 'class-name': {\n // @param <T> the first generic type parameter\n pattern: /(@param\\s+)<[A-Z]\\w*>/,\n lookbehind: true,\n inside: {\n punctuation: /[.<>]/\n }\n },\n 'code-section': [\n {\n pattern: /(\\{@code\\s+(?!\\s))(?:[^\\s{}]|\\s+(?![\\s}])|\\{(?:[^{}]|\\{(?:[^{}]|\\{(?:[^{}]|\\{[^{}]*\\})*\\})*\\})*\\})+(?=\\s*\\})/,\n lookbehind: true,\n inside: {\n code: {\n // there can't be any HTML inside of {@code} tags\n pattern: codeLinePattern,\n lookbehind: true,\n inside: Prism.languages.java,\n alias: 'language-java'\n }\n }\n },\n {\n pattern: /(<(code|pre|tt)>(?!<code>)\\s*)\\S(?:\\S|\\s+\\S)*?(?=\\s*<\\/\\2>)/,\n lookbehind: true,\n inside: {\n line: {\n pattern: codeLinePattern,\n lookbehind: true,\n inside: {\n // highlight HTML tags and entities\n tag: Prism.languages.markup.tag,\n entity: Prism.languages.markup.entity,\n code: {\n // everything else is Java code\n pattern: /.+/,\n inside: Prism.languages.java,\n alias: 'language-java'\n }\n }\n }\n }\n }\n ],\n tag: Prism.languages.markup.tag,\n entity: Prism.languages.markup.entity\n })\n Prism.languages.javadoclike.addSupport('java', Prism.languages.javadoc)\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = javastacktrace\njavastacktrace.displayName = 'javastacktrace'\njavastacktrace.aliases = []\nfunction javastacktrace(Prism) {\n // Specification:\n // https://docs.oracle.com/en/java/javase/13/docs/api/java.base/java/lang/Throwable.html#printStackTrace()\n Prism.languages.javastacktrace = {\n // java.sql.SQLException: Violation of unique constraint MY_ENTITY_UK_1: duplicate value(s) for column(s) MY_COLUMN in statement [...]\n // Caused by: java.sql.SQLException: Violation of unique constraint MY_ENTITY_UK_1: duplicate value(s) for column(s) MY_COLUMN in statement [...]\n // Caused by: com.example.myproject.MyProjectServletException\n // Caused by: MidLevelException: LowLevelException\n // Suppressed: Resource$CloseFailException: Resource ID = 0\n summary: {\n pattern: /^[\\t ]*(?:(?:Caused by:|Suppressed:|Exception in thread \"[^\"]*\")[\\t ]+)?[\\w$.]+(?:\\:.*)?$/m,\n inside: {\n keyword: {\n pattern: /^(\\s*)(?:(?:Caused by|Suppressed)(?=:)|Exception in thread)/m,\n lookbehind: true\n },\n // the current thread if the summary starts with 'Exception in thread'\n string: {\n pattern: /^(\\s*)\"[^\"]*\"/,\n lookbehind: true\n },\n exceptions: {\n pattern: /^(:?\\s*)[\\w$.]+(?=:|$)/,\n lookbehind: true,\n inside: {\n 'class-name': /[\\w$]+(?=$|:)/,\n namespace: /[a-z]\\w*/,\n punctuation: /[.:]/\n }\n },\n message: {\n pattern: /(:\\s*)\\S.*/,\n lookbehind: true,\n alias: 'string'\n },\n punctuation: /[:]/\n }\n },\n // at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1166)\n // at org.hsqldb.jdbc.Util.throwError(Unknown Source) here could be some notes\n // at java.base/java.lang.Class.forName0(Native Method)\n // at Util.<init>(Unknown Source)\n // at com.foo.loader/foo@9.0/com.foo.Main.run(Main.java:101)\n // at com.foo.loader//com.foo.bar.App.run(App.java:12)\n // at acme@2.1/org.acme.Lib.test(Lib.java:80)\n // at MyClass.mash(MyClass.java:9)\n //\n // More information:\n // https://docs.oracle.com/en/java/javase/13/docs/api/java.base/java/lang/StackTraceElement.html#toString()\n //\n // A valid Java module name is defined as:\n // \"A module name consists of one or more Java identifiers (§3.8) separated by \".\" tokens.\"\n // https://docs.oracle.com/javase/specs/jls/se9/html/jls-6.html#jls-ModuleName\n //\n // A Java module version is defined by this class:\n // https://docs.oracle.com/javase/9/docs/api/java/lang/module/ModuleDescriptor.Version.html\n // This is the implementation of the `parse` method in JDK13:\n // https://github.com/matcdac/jdk/blob/2305df71d1b7710266ae0956d73927a225132c0f/src/java.base/share/classes/java/lang/module/ModuleDescriptor.java#L1108\n // However, to keep this simple, a version will be matched by the pattern /@[\\w$.+-]*/.\n 'stack-frame': {\n pattern: /^[\\t ]*at (?:[\\w$./]|@[\\w$.+-]*\\/)+(?:<init>)?\\([^()]*\\)/m,\n inside: {\n keyword: {\n pattern: /^(\\s*)at(?= )/,\n lookbehind: true\n },\n source: [\n // (Main.java:15)\n // (Main.scala:15)\n {\n pattern: /(\\()\\w+\\.\\w+:\\d+(?=\\))/,\n lookbehind: true,\n inside: {\n file: /^\\w+\\.\\w+/,\n punctuation: /:/,\n 'line-number': {\n pattern: /\\d+/,\n alias: 'number'\n }\n }\n }, // (Unknown Source)\n // (Native Method)\n // (...something...)\n {\n pattern: /(\\()[^()]*(?=\\))/,\n lookbehind: true,\n inside: {\n keyword: /^(?:Unknown Source|Native Method)$/\n }\n }\n ],\n 'class-name': /[\\w$]+(?=\\.(?:<init>|[\\w$]+)\\()/,\n function: /(?:<init>|[\\w$]+)(?=\\()/,\n 'class-loader': {\n pattern: /(\\s)[a-z]\\w*(?:\\.[a-z]\\w*)*(?=\\/[\\w@$.]*\\/)/,\n lookbehind: true,\n alias: 'namespace',\n inside: {\n punctuation: /\\./\n }\n },\n module: {\n pattern: /([\\s/])[a-z]\\w*(?:\\.[a-z]\\w*)*(?:@[\\w$.+-]*)?(?=\\/)/,\n lookbehind: true,\n inside: {\n version: {\n pattern: /(@)[\\s\\S]+/,\n lookbehind: true,\n alias: 'number'\n },\n punctuation: /[@.]/\n }\n },\n namespace: {\n pattern: /(?:[a-z]\\w*\\.)+/,\n inside: {\n punctuation: /\\./\n }\n },\n punctuation: /[()/.]/\n }\n },\n // ... 32 more\n // ... 32 common frames omitted\n more: {\n pattern: /^[\\t ]*\\.{3} \\d+ [a-z]+(?: [a-z]+)*/m,\n inside: {\n punctuation: /\\.{3}/,\n number: /\\d+/,\n keyword: /\\b[a-z]+(?: [a-z]+)*\\b/\n }\n }\n }\n}\n","'use strict'\n\nmodule.exports = jolie\njolie.displayName = 'jolie'\njolie.aliases = []\nfunction jolie(Prism) {\n Prism.languages.jolie = Prism.languages.extend('clike', {\n string: {\n pattern: /([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/,\n greedy: true\n },\n keyword: /\\b(?:include|define|is_defined|undef|main|init|outputPort|inputPort|Location|Protocol|Interfaces|RequestResponse|OneWay|type|interface|extender|throws|cset|csets|forward|Aggregates|Redirects|embedded|courier|execution|sequential|concurrent|single|scope|install|throw|comp|cH|default|global|linkIn|linkOut|synchronized|this|new|for|if|else|while|in|Jolie|Java|Javascript|nullProcess|spawn|constants|with|provide|until|exit|foreach|instanceof|over|service)\\b/,\n number: /(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e[+-]?\\d+)?l?/i,\n operator: /-[-=>]?|\\+[+=]?|<[<=]?|[>=*!]=?|&&|\\|\\||[:?\\/%^]/,\n punctuation: /[,.]/,\n builtin: /\\b(?:undefined|string|int|void|long|Byte|bool|double|float|char|any)\\b/,\n symbol: /[|;@]/\n })\n delete Prism.languages.jolie['class-name']\n Prism.languages.insertBefore('jolie', 'keyword', {\n function: {\n pattern: /((?:\\b(?:outputPort|inputPort|in|service|courier)\\b|@)\\s*)\\w+/,\n lookbehind: true\n },\n aggregates: {\n pattern: /(\\bAggregates\\s*:\\s*)(?:\\w+(?:\\s+with\\s+\\w+)?\\s*,\\s*)*\\w+(?:\\s+with\\s+\\w+)?/,\n lookbehind: true,\n inside: {\n 'with-extension': {\n pattern: /\\bwith\\s+\\w+/,\n inside: {\n keyword: /\\bwith\\b/\n }\n },\n function: {\n pattern: /\\w+/\n },\n punctuation: {\n pattern: /,/\n }\n }\n },\n redirects: {\n pattern: /(\\bRedirects\\s*:\\s*)(?:\\w+\\s*=>\\s*\\w+\\s*,\\s*)*(?:\\w+\\s*=>\\s*\\w+)/,\n lookbehind: true,\n inside: {\n punctuation: {\n pattern: /,/\n },\n function: {\n pattern: /\\w+/\n },\n symbol: {\n pattern: /=>/\n }\n }\n }\n })\n}\n","'use strict'\n\nmodule.exports = jq\njq.displayName = 'jq'\njq.aliases = []\nfunction jq(Prism) {\n ;(function (Prism) {\n var interpolation = /\\\\\\((?:[^()]|\\([^()]*\\))*\\)/.source\n var string = RegExp(\n /\"(?:[^\"\\r\\n\\\\]|\\\\[^\\r\\n(]|__)*\"/.source.replace(/__/g, function () {\n return interpolation\n })\n )\n var stringInterpolation = {\n interpolation: {\n pattern: RegExp(/((?:^|[^\\\\])(?:\\\\{2})*)/.source + interpolation),\n lookbehind: true,\n inside: {\n content: {\n pattern: /^(\\\\\\()[\\s\\S]+(?=\\)$)/,\n lookbehind: true,\n inside: null // see below\n },\n punctuation: /^\\\\\\(|\\)$/\n }\n }\n }\n var jq = (Prism.languages.jq = {\n comment: /#.*/,\n property: {\n pattern: RegExp(string.source + /(?=\\s*:(?!:))/.source),\n greedy: true,\n inside: stringInterpolation\n },\n string: {\n pattern: string,\n greedy: true,\n inside: stringInterpolation\n },\n function: {\n pattern: /(\\bdef\\s+)[a-z_]\\w+/i,\n lookbehind: true\n },\n variable: /\\B\\$\\w+/,\n 'property-literal': {\n pattern: /\\b[a-z_]\\w*(?=\\s*:(?!:))/i,\n alias: 'property'\n },\n keyword: /\\b(?:as|break|catch|def|elif|else|end|foreach|if|import|include|label|module|modulemeta|null|reduce|then|try|while)\\b/,\n boolean: /\\b(?:true|false)\\b/,\n number: /(?:\\b\\d+\\.|\\B\\.)?\\b\\d+(?:[eE][+-]?\\d+)?\\b/,\n operator: [\n {\n pattern: /\\|=?/,\n alias: 'pipe'\n },\n /\\.\\.|[!=<>]?=|\\?\\/\\/|\\/\\/=?|[-+*/%]=?|[<>?]|\\b(?:and|or|not)\\b/\n ],\n 'c-style-function': {\n pattern: /\\b[a-z_]\\w*(?=\\s*\\()/i,\n alias: 'function'\n },\n punctuation: /::|[()\\[\\]{},:;]|\\.(?=\\s*[\\[\\w$])/,\n dot: {\n pattern: /\\./,\n alias: 'important'\n }\n })\n stringInterpolation.interpolation.inside.content.inside = jq\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = jsExtras\njsExtras.displayName = 'jsExtras'\njsExtras.aliases = []\nfunction jsExtras(Prism) {\n ;(function (Prism) {\n Prism.languages.insertBefore('javascript', 'function-variable', {\n 'method-variable': {\n pattern: RegExp(\n '(\\\\.\\\\s*)' +\n Prism.languages.javascript['function-variable'].pattern.source\n ),\n lookbehind: true,\n alias: ['function-variable', 'method', 'function', 'property-access']\n }\n })\n Prism.languages.insertBefore('javascript', 'function', {\n method: {\n pattern: RegExp(\n '(\\\\.\\\\s*)' + Prism.languages.javascript['function'].source\n ),\n lookbehind: true,\n alias: ['function', 'property-access']\n }\n })\n Prism.languages.insertBefore('javascript', 'constant', {\n 'known-class-name': [\n {\n // standard built-ins\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects\n pattern: /\\b(?:(?:(?:Uint|Int)(?:8|16|32)|Uint8Clamped|Float(?:32|64))?Array|ArrayBuffer|BigInt|Boolean|DataView|Date|Error|Function|Intl|JSON|Math|Number|Object|Promise|Proxy|Reflect|RegExp|String|Symbol|(?:Weak)?(?:Set|Map)|WebAssembly)\\b/,\n alias: 'class-name'\n },\n {\n // errors\n pattern: /\\b(?:[A-Z]\\w*)Error\\b/,\n alias: 'class-name'\n }\n ]\n })\n /**\n * Replaces the `<ID>` placeholder in the given pattern with a pattern for general JS identifiers.\n *\n * @param {string} source\n * @param {string} [flags]\n * @returns {RegExp}\n */\n function withId(source, flags) {\n return RegExp(\n source.replace(/<ID>/g, function () {\n return /(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*/.source\n }),\n flags\n )\n }\n Prism.languages.insertBefore('javascript', 'keyword', {\n imports: {\n // https://tc39.es/ecma262/#sec-imports\n pattern: withId(\n /(\\bimport\\b\\s*)(?:<ID>(?:\\s*,\\s*(?:\\*\\s*as\\s+<ID>|\\{[^{}]*\\}))?|\\*\\s*as\\s+<ID>|\\{[^{}]*\\})(?=\\s*\\bfrom\\b)/\n .source\n ),\n lookbehind: true,\n inside: Prism.languages.javascript\n },\n exports: {\n // https://tc39.es/ecma262/#sec-exports\n pattern: withId(\n /(\\bexport\\b\\s*)(?:\\*(?:\\s*as\\s+<ID>)?(?=\\s*\\bfrom\\b)|\\{[^{}]*\\})/\n .source\n ),\n lookbehind: true,\n inside: Prism.languages.javascript\n }\n })\n Prism.languages.javascript['keyword'].unshift(\n {\n pattern: /\\b(?:as|default|export|from|import)\\b/,\n alias: 'module'\n },\n {\n pattern: /\\b(?:await|break|catch|continue|do|else|for|finally|if|return|switch|throw|try|while|yield)\\b/,\n alias: 'control-flow'\n },\n {\n pattern: /\\bnull\\b/,\n alias: ['null', 'nil']\n },\n {\n pattern: /\\bundefined\\b/,\n alias: 'nil'\n }\n )\n Prism.languages.insertBefore('javascript', 'operator', {\n spread: {\n pattern: /\\.{3}/,\n alias: 'operator'\n },\n arrow: {\n pattern: /=>/,\n alias: 'operator'\n }\n })\n Prism.languages.insertBefore('javascript', 'punctuation', {\n 'property-access': {\n pattern: withId(/(\\.\\s*)#?<ID>/.source),\n lookbehind: true\n },\n 'maybe-class-name': {\n pattern: /(^|[^$\\w\\xA0-\\uFFFF])[A-Z][$\\w\\xA0-\\uFFFF]+/,\n lookbehind: true\n },\n dom: {\n // this contains only a few commonly used DOM variables\n pattern: /\\b(?:document|location|navigator|performance|(?:local|session)Storage|window)\\b/,\n alias: 'variable'\n },\n console: {\n pattern: /\\bconsole(?=\\s*\\.)/,\n alias: 'class-name'\n }\n }) // add 'maybe-class-name' to tokens which might be a class name\n var maybeClassNameTokens = [\n 'function',\n 'function-variable',\n 'method',\n 'method-variable',\n 'property-access'\n ]\n for (var i = 0; i < maybeClassNameTokens.length; i++) {\n var token = maybeClassNameTokens[i]\n var value = Prism.languages.javascript[token] // convert regex to object\n if (Prism.util.type(value) === 'RegExp') {\n value = Prism.languages.javascript[token] = {\n pattern: value\n }\n } // keep in mind that we don't support arrays\n var inside = value.inside || {}\n value.inside = inside\n inside['maybe-class-name'] = /^[A-Z][\\s\\S]*/\n }\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = jsTemplates\njsTemplates.displayName = 'jsTemplates'\njsTemplates.aliases = []\nfunction jsTemplates(Prism) {\n ;(function (Prism) {\n var templateString = Prism.languages.javascript['template-string'] // see the pattern in prism-javascript.js\n var templateLiteralPattern = templateString.pattern.source\n var interpolationObject = templateString.inside['interpolation']\n var interpolationPunctuationObject =\n interpolationObject.inside['interpolation-punctuation']\n var interpolationPattern = interpolationObject.pattern.source\n /**\n * Creates a new pattern to match a template string with a special tag.\n *\n * This will return `undefined` if there is no grammar with the given language id.\n *\n * @param {string} language The language id of the embedded language. E.g. `markdown`.\n * @param {string} tag The regex pattern to match the tag.\n * @returns {object | undefined}\n * @example\n * createTemplate('css', /\\bcss/.source);\n */\n function createTemplate(language, tag) {\n if (!Prism.languages[language]) {\n return undefined\n }\n return {\n pattern: RegExp('((?:' + tag + ')\\\\s*)' + templateLiteralPattern),\n lookbehind: true,\n greedy: true,\n inside: {\n 'template-punctuation': {\n pattern: /^`|`$/,\n alias: 'string'\n },\n 'embedded-code': {\n pattern: /[\\s\\S]+/,\n alias: language\n }\n }\n }\n }\n Prism.languages.javascript['template-string'] = [\n // styled-jsx:\n // css`a { color: #25F; }`\n // styled-components:\n // styled.h1`color: red;`\n createTemplate(\n 'css',\n /\\b(?:styled(?:\\([^)]*\\))?(?:\\s*\\.\\s*\\w+(?:\\([^)]*\\))*)*|css(?:\\s*\\.\\s*(?:global|resolve))?|createGlobalStyle|keyframes)/\n .source\n ), // html`<p></p>`\n // div.innerHTML = `<p></p>`\n createTemplate('html', /\\bhtml|\\.\\s*(?:inner|outer)HTML\\s*\\+?=/.source), // svg`<path fill=\"#fff\" d=\"M55.37 ...\"/>`\n createTemplate('svg', /\\bsvg/.source), // md`# h1`, markdown`## h2`\n createTemplate('markdown', /\\b(?:md|markdown)/.source), // gql`...`, graphql`...`, graphql.experimental`...`\n createTemplate(\n 'graphql',\n /\\b(?:gql|graphql(?:\\s*\\.\\s*experimental)?)/.source\n ), // vanilla template string\n templateString\n ].filter(Boolean)\n /**\n * Returns a specific placeholder literal for the given language.\n *\n * @param {number} counter\n * @param {string} language\n * @returns {string}\n */\n function getPlaceholder(counter, language) {\n return '___' + language.toUpperCase() + '_' + counter + '___'\n }\n /**\n * Returns the tokens of `Prism.tokenize` but also runs the `before-tokenize` and `after-tokenize` hooks.\n *\n * @param {string} code\n * @param {any} grammar\n * @param {string} language\n * @returns {(string|Token)[]}\n */\n function tokenizeWithHooks(code, grammar, language) {\n var env = {\n code: code,\n grammar: grammar,\n language: language\n }\n Prism.hooks.run('before-tokenize', env)\n env.tokens = Prism.tokenize(env.code, env.grammar)\n Prism.hooks.run('after-tokenize', env)\n return env.tokens\n }\n /**\n * Returns the token of the given JavaScript interpolation expression.\n *\n * @param {string} expression The code of the expression. E.g. `\"${42}\"`\n * @returns {Token}\n */\n function tokenizeInterpolationExpression(expression) {\n var tempGrammar = {}\n tempGrammar['interpolation-punctuation'] = interpolationPunctuationObject\n /** @type {Array} */\n var tokens = Prism.tokenize(expression, tempGrammar)\n if (tokens.length === 3) {\n /**\n * The token array will look like this\n * [\n * [\"interpolation-punctuation\", \"${\"]\n * \"...\" // JavaScript expression of the interpolation\n * [\"interpolation-punctuation\", \"}\"]\n * ]\n */\n var args = [1, 1]\n args.push.apply(\n args,\n tokenizeWithHooks(tokens[1], Prism.languages.javascript, 'javascript')\n )\n tokens.splice.apply(tokens, args)\n }\n return new Prism.Token(\n 'interpolation',\n tokens,\n interpolationObject.alias,\n expression\n )\n }\n /**\n * Tokenizes the given code with support for JavaScript interpolation expressions mixed in.\n *\n * This function has 3 phases:\n *\n * 1. Replace all JavaScript interpolation expression with a placeholder.\n * The placeholder will have the syntax of a identify of the target language.\n * 2. Tokenize the code with placeholders.\n * 3. Tokenize the interpolation expressions and re-insert them into the tokenize code.\n * The insertion only works if a placeholder hasn't been \"ripped apart\" meaning that the placeholder has been\n * tokenized as two tokens by the grammar of the embedded language.\n *\n * @param {string} code\n * @param {object} grammar\n * @param {string} language\n * @returns {Token}\n */\n function tokenizeEmbedded(code, grammar, language) {\n // 1. First filter out all interpolations\n // because they might be escaped, we need a lookbehind, so we use Prism\n /** @type {(Token|string)[]} */\n var _tokens = Prism.tokenize(code, {\n interpolation: {\n pattern: RegExp(interpolationPattern),\n lookbehind: true\n }\n }) // replace all interpolations with a placeholder which is not in the code already\n var placeholderCounter = 0\n /** @type {Object<string, string>} */\n var placeholderMap = {}\n var embeddedCode = _tokens\n .map(function (token) {\n if (typeof token === 'string') {\n return token\n } else {\n var interpolationExpression = token.content\n var placeholder\n while (\n code.indexOf(\n (placeholder = getPlaceholder(placeholderCounter++, language))\n ) !== -1\n ) {}\n placeholderMap[placeholder] = interpolationExpression\n return placeholder\n }\n })\n .join('') // 2. Tokenize the embedded code\n var embeddedTokens = tokenizeWithHooks(embeddedCode, grammar, language) // 3. Re-insert the interpolation\n var placeholders = Object.keys(placeholderMap)\n placeholderCounter = 0\n /**\n *\n * @param {(Token|string)[]} tokens\n * @returns {void}\n */\n function walkTokens(tokens) {\n for (var i = 0; i < tokens.length; i++) {\n if (placeholderCounter >= placeholders.length) {\n return\n }\n var token = tokens[i]\n if (typeof token === 'string' || typeof token.content === 'string') {\n var placeholder = placeholders[placeholderCounter]\n var s =\n typeof token === 'string'\n ? token\n : /** @type {string} */\n token.content\n var index = s.indexOf(placeholder)\n if (index !== -1) {\n ++placeholderCounter\n var before = s.substring(0, index)\n var middle = tokenizeInterpolationExpression(\n placeholderMap[placeholder]\n )\n var after = s.substring(index + placeholder.length)\n var replacement = []\n if (before) {\n replacement.push(before)\n }\n replacement.push(middle)\n if (after) {\n var afterTokens = [after]\n walkTokens(afterTokens)\n replacement.push.apply(replacement, afterTokens)\n }\n if (typeof token === 'string') {\n tokens.splice.apply(tokens, [i, 1].concat(replacement))\n i += replacement.length - 1\n } else {\n token.content = replacement\n }\n }\n } else {\n var content = token.content\n if (Array.isArray(content)) {\n walkTokens(content)\n } else {\n walkTokens([content])\n }\n }\n }\n }\n walkTokens(embeddedTokens)\n return new Prism.Token(\n language,\n embeddedTokens,\n 'language-' + language,\n code\n )\n }\n /**\n * The languages for which JS templating will handle tagged template literals.\n *\n * JS templating isn't active for only JavaScript but also related languages like TypeScript, JSX, and TSX.\n */\n var supportedLanguages = {\n javascript: true,\n js: true,\n typescript: true,\n ts: true,\n jsx: true,\n tsx: true\n }\n Prism.hooks.add('after-tokenize', function (env) {\n if (!(env.language in supportedLanguages)) {\n return\n }\n /**\n * Finds and tokenizes all template strings with an embedded languages.\n *\n * @param {(Token | string)[]} tokens\n * @returns {void}\n */\n function findTemplateStrings(tokens) {\n for (var i = 0, l = tokens.length; i < l; i++) {\n var token = tokens[i]\n if (typeof token === 'string') {\n continue\n }\n var content = token.content\n if (!Array.isArray(content)) {\n if (typeof content !== 'string') {\n findTemplateStrings([content])\n }\n continue\n }\n if (token.type === 'template-string') {\n /**\n * A JavaScript template-string token will look like this:\n *\n * [\"template-string\", [\n * [\"template-punctuation\", \"`\"],\n * (\n * An array of \"string\" and \"interpolation\" tokens. This is the simple string case.\n * or\n * [\"embedded-code\", \"...\"] This is the token containing the embedded code.\n * It also has an alias which is the language of the embedded code.\n * ),\n * [\"template-punctuation\", \"`\"]\n * ]]\n */\n var embedded = content[1]\n if (\n content.length === 3 &&\n typeof embedded !== 'string' &&\n embedded.type === 'embedded-code'\n ) {\n // get string content\n var code = stringContent(embedded)\n var alias = embedded.alias\n var language = Array.isArray(alias) ? alias[0] : alias\n var grammar = Prism.languages[language]\n if (!grammar) {\n // the embedded language isn't registered.\n continue\n }\n content[1] = tokenizeEmbedded(code, grammar, language)\n }\n } else {\n findTemplateStrings(content)\n }\n }\n }\n findTemplateStrings(env.tokens)\n })\n /**\n * Returns the string content of a token or token stream.\n *\n * @param {string | Token | (string | Token)[]} value\n * @returns {string}\n */\n function stringContent(value) {\n if (typeof value === 'string') {\n return value\n } else if (Array.isArray(value)) {\n return value.map(stringContent).join('')\n } else {\n return stringContent(value.content)\n }\n }\n })(Prism)\n}\n","'use strict'\nvar refractorJavadoclike = require('./javadoclike.js')\nvar refractorTypescript = require('./typescript.js')\nmodule.exports = jsdoc\njsdoc.displayName = 'jsdoc'\njsdoc.aliases = []\nfunction jsdoc(Prism) {\n Prism.register(refractorJavadoclike)\n Prism.register(refractorTypescript)\n ;(function (Prism) {\n var javascript = Prism.languages.javascript\n var type = /{(?:[^{}]|{(?:[^{}]|{[^{}]*})*})+}/.source\n var parameterPrefix =\n '(@(?:param|arg|argument|property)\\\\s+(?:' + type + '\\\\s+)?)'\n Prism.languages.jsdoc = Prism.languages.extend('javadoclike', {\n parameter: {\n // @param {string} foo - foo bar\n pattern: RegExp(\n parameterPrefix + /(?:(?!\\s)[$\\w\\xA0-\\uFFFF.])+(?=\\s|$)/.source\n ),\n lookbehind: true,\n inside: {\n punctuation: /\\./\n }\n }\n })\n Prism.languages.insertBefore('jsdoc', 'keyword', {\n 'optional-parameter': {\n // @param {string} [baz.foo=\"bar\"] foo bar\n pattern: RegExp(\n parameterPrefix +\n /\\[(?:(?!\\s)[$\\w\\xA0-\\uFFFF.])+(?:=[^[\\]]+)?\\](?=\\s|$)/.source\n ),\n lookbehind: true,\n inside: {\n parameter: {\n pattern: /(^\\[)[$\\w\\xA0-\\uFFFF\\.]+/,\n lookbehind: true,\n inside: {\n punctuation: /\\./\n }\n },\n code: {\n pattern: /(=)[\\s\\S]*(?=\\]$)/,\n lookbehind: true,\n inside: javascript,\n alias: 'language-javascript'\n },\n punctuation: /[=[\\]]/\n }\n },\n 'class-name': [\n {\n pattern: RegExp(\n /(@(?:augments|extends|class|interface|memberof!?|template|this|typedef)\\s+(?:<TYPE>\\s+)?)[A-Z]\\w*(?:\\.[A-Z]\\w*)*/.source.replace(\n /<TYPE>/g,\n function () {\n return type\n }\n )\n ),\n lookbehind: true,\n inside: {\n punctuation: /\\./\n }\n },\n {\n pattern: RegExp('(@[a-z]+\\\\s+)' + type),\n lookbehind: true,\n inside: {\n string: javascript.string,\n number: javascript.number,\n boolean: javascript.boolean,\n keyword: Prism.languages.typescript.keyword,\n operator: /=>|\\.\\.\\.|[&|?:*]/,\n punctuation: /[.,;=<>{}()[\\]]/\n }\n }\n ],\n example: {\n pattern: /(@example\\s+(?!\\s))(?:[^@\\s]|\\s+(?!\\s))+?(?=\\s*(?:\\*\\s*)?(?:@\\w|\\*\\/))/,\n lookbehind: true,\n inside: {\n code: {\n pattern: /^(\\s*(?:\\*\\s*)?)\\S.*$/m,\n lookbehind: true,\n inside: javascript,\n alias: 'language-javascript'\n }\n }\n }\n })\n Prism.languages.javadoclike.addSupport('javascript', Prism.languages.jsdoc)\n })(Prism)\n}\n","'use strict'\nvar refractorJson = require('./json.js')\nmodule.exports = json5\njson5.displayName = 'json5'\njson5.aliases = []\nfunction json5(Prism) {\n Prism.register(refractorJson)\n ;(function (Prism) {\n var string = /(\"|')(?:\\\\(?:\\r\\n?|\\n|.)|(?!\\1)[^\\\\\\r\\n])*\\1/\n Prism.languages.json5 = Prism.languages.extend('json', {\n property: [\n {\n pattern: RegExp(string.source + '(?=\\\\s*:)'),\n greedy: true\n },\n {\n pattern: /(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*:)/,\n alias: 'unquoted'\n }\n ],\n string: {\n pattern: string,\n greedy: true\n },\n number: /[+-]?\\b(?:NaN|Infinity|0x[a-fA-F\\d]+)\\b|[+-]?(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:[eE][+-]?\\d+\\b)?/\n })\n })(Prism)\n}\n","'use strict'\nvar refractorJson = require('./json.js')\nmodule.exports = jsonp\njsonp.displayName = 'jsonp'\njsonp.aliases = []\nfunction jsonp(Prism) {\n Prism.register(refractorJson)\n Prism.languages.jsonp = Prism.languages.extend('json', {\n punctuation: /[{}[\\]();,.]/\n })\n Prism.languages.insertBefore('jsonp', 'punctuation', {\n function: /(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*\\()/\n })\n}\n","'use strict'\n\nmodule.exports = jsstacktrace\njsstacktrace.displayName = 'jsstacktrace'\njsstacktrace.aliases = []\nfunction jsstacktrace(Prism) {\n Prism.languages.jsstacktrace = {\n 'error-message': {\n pattern: /^\\S.*/m,\n alias: 'string'\n },\n 'stack-frame': {\n pattern: /^[ \\t]+at[ \\t].*/m,\n inside: {\n 'not-my-code': {\n pattern: /[ \\t]+at[ \\t]+(?!\\s)(?:node\\.js|\\<unknown\\>|.*(?:node_modules|\\(\\<anonymous\\>\\)|\\(\\<unknown\\>|\\<anonymous\\>$|\\(internal\\/|\\(node\\.js)).*/m,\n alias: 'comment'\n },\n filename: {\n pattern: /(\\bat\\s+(?!\\s)|\\()(?:[a-zA-Z]:)?[^():]+(?=:)/,\n lookbehind: true,\n alias: 'url'\n },\n function: {\n pattern: /(at\\s+(?:new\\s+)?)(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF<][.$\\w\\xA0-\\uFFFF<>]*/,\n lookbehind: true,\n inside: {\n punctuation: /\\./\n }\n },\n punctuation: /[()]/,\n keyword: /\\b(?:at|new)\\b/,\n alias: {\n pattern: /\\[(?:as\\s+)?(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF][$\\w\\xA0-\\uFFFF]*\\]/,\n alias: 'variable'\n },\n 'line-number': {\n pattern: /:[0-9]+(?::[0-9]+)?\\b/,\n alias: 'number',\n inside: {\n punctuation: /:/\n }\n }\n }\n }\n }\n}\n","'use strict'\n\nmodule.exports = julia\njulia.displayName = 'julia'\njulia.aliases = []\nfunction julia(Prism) {\n Prism.languages.julia = {\n comment: {\n // support one level of nested comments\n // https://github.com/JuliaLang/julia/pull/6128\n pattern: /(^|[^\\\\])(?:#=(?:[^#=]|=(?!#)|#(?!=)|#=(?:[^#=]|=(?!#)|#(?!=))*=#)*=#|#.*)/,\n lookbehind: true\n },\n regex: {\n // https://docs.julialang.org/en/v1/manual/strings/#Regular-Expressions-1\n pattern: /r\"(?:\\\\.|[^\"\\\\\\r\\n])*\"[imsx]{0,4}/,\n greedy: true\n },\n string: {\n // https://docs.julialang.org/en/v1/manual/strings/#man-characters-1\n // https://docs.julialang.org/en/v1/manual/strings/#String-Basics-1\n // https://docs.julialang.org/en/v1/manual/strings/#non-standard-string-literals-1\n // https://docs.julialang.org/en/v1/manual/running-external-programs/#Running-External-Programs-1\n pattern: /\"\"\"[\\s\\S]+?\"\"\"|\\w*\"(?:\\\\.|[^\"\\\\\\r\\n])*\"|(^|[^\\w'])'(?:\\\\[^\\r\\n][^'\\r\\n]*|[^\\\\\\r\\n])'|`(?:[^\\\\`\\r\\n]|\\\\.)*`/,\n lookbehind: true,\n greedy: true\n },\n keyword: /\\b(?:abstract|baremodule|begin|bitstype|break|catch|ccall|const|continue|do|else|elseif|end|export|finally|for|function|global|if|immutable|import|importall|in|let|local|macro|module|print|println|quote|return|struct|try|type|typealias|using|while)\\b/,\n boolean: /\\b(?:true|false)\\b/,\n number: /(?:\\b(?=\\d)|\\B(?=\\.))(?:0[box])?(?:[\\da-f]+(?:_[\\da-f]+)*(?:\\.(?:\\d+(?:_\\d+)*)?)?|\\.\\d+(?:_\\d+)*)(?:[efp][+-]?\\d+(?:_\\d+)*)?j?/i,\n // https://docs.julialang.org/en/v1/manual/mathematical-operations/\n // https://docs.julialang.org/en/v1/manual/mathematical-operations/#Operator-Precedence-and-Associativity-1\n operator: /&&|\\|\\||[-+*^%÷⊻&$\\\\]=?|\\/[\\/=]?|!=?=?|\\|[=>]?|<(?:<=?|[=:|])?|>(?:=|>>?=?)?|==?=?|[~≠≤≥'√∛]/,\n punctuation: /::?|[{}[\\]();,.?]/,\n // https://docs.julialang.org/en/v1/base/numbers/#Base.im\n constant: /\\b(?:(?:NaN|Inf)(?:16|32|64)?|im|pi)\\b|[πℯ]/\n }\n}\n","'use strict'\n\nmodule.exports = keyman\nkeyman.displayName = 'keyman'\nkeyman.aliases = []\nfunction keyman(Prism) {\n Prism.languages.keyman = {\n comment: /\\bc\\s.*/i,\n function: /\\[\\s*(?:(?:CTRL|SHIFT|ALT|LCTRL|RCTRL|LALT|RALT|CAPS|NCAPS)\\s+)*(?:[TKU]_[\\w?]+|\".+?\"|'.+?')\\s*\\]/i,\n // virtual key\n string: /(\"|').*?\\1/,\n bold: [\n // header statements, system stores and variable system stores\n /&(?:baselayout|bitmap|capsononly|capsalwaysoff|shiftfreescaps|copyright|ethnologuecode|hotkey|includecodes|keyboardversion|kmw_embedcss|kmw_embedjs|kmw_helpfile|kmw_helptext|kmw_rtl|language|layer|layoutfile|message|mnemoniclayout|name|oldcharposmatching|platform|targets|version|visualkeyboard|windowslanguages)\\b/i,\n /\\b(?:bitmap|bitmaps|caps on only|caps always off|shift frees caps|copyright|hotkey|language|layout|message|name|version)\\b/i\n ],\n keyword: /\\b(?:any|baselayout|beep|call|context|deadkey|dk|if|index|layer|notany|nul|outs|platform|return|reset|save|set|store|use)\\b/i,\n // rule keywords\n atrule: /\\b(?:ansi|begin|unicode|group|using keys|match|nomatch)\\b/i,\n // structural keywords\n number: /\\b(?:U\\+[\\dA-F]+|d\\d+|x[\\da-f]+|\\d+)\\b/i,\n // U+####, x###, d### characters and numbers\n operator: /[+>\\\\,()]/,\n tag: /\\$(?:keyman|kmfl|weaver|keymanweb|keymanonly):/i // prefixes\n }\n}\n","'use strict'\n\nmodule.exports = kotlin\nkotlin.displayName = 'kotlin'\nkotlin.aliases = ['kt', 'kts']\nfunction kotlin(Prism) {\n ;(function (Prism) {\n Prism.languages.kotlin = Prism.languages.extend('clike', {\n keyword: {\n // The lookbehind prevents wrong highlighting of e.g. kotlin.properties.get\n pattern: /(^|[^.])\\b(?:abstract|actual|annotation|as|break|by|catch|class|companion|const|constructor|continue|crossinline|data|do|dynamic|else|enum|expect|external|final|finally|for|fun|get|if|import|in|infix|init|inline|inner|interface|internal|is|lateinit|noinline|null|object|open|operator|out|override|package|private|protected|public|reified|return|sealed|set|super|suspend|tailrec|this|throw|to|try|typealias|val|var|vararg|when|where|while)\\b/,\n lookbehind: true\n },\n function: [\n {\n pattern: /(?:`[^\\r\\n`]+`|\\w+)(?=\\s*\\()/,\n greedy: true\n },\n {\n pattern: /(\\.)(?:`[^\\r\\n`]+`|\\w+)(?=\\s*\\{)/,\n lookbehind: true,\n greedy: true\n }\n ],\n number: /\\b(?:0[xX][\\da-fA-F]+(?:_[\\da-fA-F]+)*|0[bB][01]+(?:_[01]+)*|\\d+(?:_\\d+)*(?:\\.\\d+(?:_\\d+)*)?(?:[eE][+-]?\\d+(?:_\\d+)*)?[fFL]?)\\b/,\n operator: /\\+[+=]?|-[-=>]?|==?=?|!(?:!|==?)?|[\\/*%<>]=?|[?:]:?|\\.\\.|&&|\\|\\||\\b(?:and|inv|or|shl|shr|ushr|xor)\\b/\n })\n delete Prism.languages.kotlin['class-name']\n Prism.languages.insertBefore('kotlin', 'string', {\n 'raw-string': {\n pattern: /(\"\"\"|''')[\\s\\S]*?\\1/,\n alias: 'string' // See interpolation below\n }\n })\n Prism.languages.insertBefore('kotlin', 'keyword', {\n annotation: {\n pattern: /\\B@(?:\\w+:)?(?:[A-Z]\\w*|\\[[^\\]]+\\])/,\n alias: 'builtin'\n }\n })\n Prism.languages.insertBefore('kotlin', 'function', {\n label: {\n pattern: /\\w+@|@\\w+/,\n alias: 'symbol'\n }\n })\n var interpolation = [\n {\n pattern: /\\$\\{[^}]+\\}/,\n inside: {\n delimiter: {\n pattern: /^\\$\\{|\\}$/,\n alias: 'variable'\n },\n rest: Prism.languages.kotlin\n }\n },\n {\n pattern: /\\$\\w+/,\n alias: 'variable'\n }\n ]\n Prism.languages.kotlin['string'].inside = Prism.languages.kotlin[\n 'raw-string'\n ].inside = {\n interpolation: interpolation\n }\n Prism.languages.kt = Prism.languages.kotlin\n Prism.languages.kts = Prism.languages.kotlin\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = latex\nlatex.displayName = 'latex'\nlatex.aliases = ['tex', 'context']\nfunction latex(Prism) {\n ;(function (Prism) {\n var funcPattern = /\\\\(?:[^a-z()[\\]]|[a-z*]+)/i\n var insideEqu = {\n 'equation-command': {\n pattern: funcPattern,\n alias: 'regex'\n }\n }\n Prism.languages.latex = {\n comment: /%.*/m,\n // the verbatim environment prints whitespace to the document\n cdata: {\n pattern: /(\\\\begin\\{((?:verbatim|lstlisting)\\*?)\\})[\\s\\S]*?(?=\\\\end\\{\\2\\})/,\n lookbehind: true\n },\n /*\n * equations can be between $$ $$ or $ $ or \\( \\) or \\[ \\]\n * (all are multiline)\n */\n equation: [\n {\n pattern: /\\$\\$(?:\\\\[\\s\\S]|[^\\\\$])+\\$\\$|\\$(?:\\\\[\\s\\S]|[^\\\\$])+\\$|\\\\\\([\\s\\S]*?\\\\\\)|\\\\\\[[\\s\\S]*?\\\\\\]/,\n inside: insideEqu,\n alias: 'string'\n },\n {\n pattern: /(\\\\begin\\{((?:equation|math|eqnarray|align|multline|gather)\\*?)\\})[\\s\\S]*?(?=\\\\end\\{\\2\\})/,\n lookbehind: true,\n inside: insideEqu,\n alias: 'string'\n }\n ],\n /*\n * arguments which are keywords or references are highlighted\n * as keywords\n */\n keyword: {\n pattern: /(\\\\(?:begin|end|ref|cite|label|usepackage|documentclass)(?:\\[[^\\]]+\\])?\\{)[^}]+(?=\\})/,\n lookbehind: true\n },\n url: {\n pattern: /(\\\\url\\{)[^}]+(?=\\})/,\n lookbehind: true\n },\n /*\n * section or chapter headlines are highlighted as bold so that\n * they stand out more\n */\n headline: {\n pattern: /(\\\\(?:part|chapter|section|subsection|frametitle|subsubsection|paragraph|subparagraph|subsubparagraph|subsubsubparagraph)\\*?(?:\\[[^\\]]+\\])?\\{)[^}]+(?=\\}(?:\\[[^\\]]+\\])?)/,\n lookbehind: true,\n alias: 'class-name'\n },\n function: {\n pattern: funcPattern,\n alias: 'selector'\n },\n punctuation: /[[\\]{}&]/\n }\n Prism.languages.tex = Prism.languages.latex\n Prism.languages.context = Prism.languages.latex\n })(Prism)\n}\n","'use strict'\nvar refractorMarkupTemplating = require('./markup-templating.js')\nvar refractorPhp = require('./php.js')\nmodule.exports = latte\nlatte.displayName = 'latte'\nlatte.aliases = []\nfunction latte(Prism) {\n Prism.register(refractorMarkupTemplating)\n Prism.register(refractorPhp)\n ;(function (Prism) {\n Prism.languages.latte = {\n comment: /^\\{\\*[\\s\\S]*/,\n ld: {\n pattern: /^\\{(?:[=_]|\\/?(?!\\d|\\w+\\()\\w+|)/,\n inside: {\n punctuation: /^\\{\\/?/,\n tag: {\n pattern: /.+/,\n alias: 'important'\n }\n }\n },\n rd: {\n pattern: /\\}$/,\n inside: {\n punctuation: /.+/\n }\n },\n php: {\n pattern: /\\S(?:[\\s\\S]*\\S)?/,\n alias: 'language-php',\n inside: Prism.languages.php\n }\n }\n var markupLatte = Prism.languages.extend('markup', {})\n Prism.languages.insertBefore(\n 'inside',\n 'attr-value',\n {\n 'n-attr': {\n pattern: /n:[\\w-]+(?:\\s*=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\">=]+))?/,\n inside: {\n 'attr-name': {\n pattern: /^[^\\s=]+/,\n alias: 'important'\n },\n 'attr-value': {\n pattern: /=[\\s\\S]+/,\n inside: {\n punctuation: [\n /^=/,\n {\n pattern: /^(\\s*)[\"']|[\"']$/,\n lookbehind: true\n }\n ],\n php: {\n pattern: /\\S(?:[\\s\\S]*\\S)?/,\n inside: Prism.languages.php\n }\n }\n }\n }\n }\n },\n markupLatte.tag\n )\n Prism.hooks.add('before-tokenize', function (env) {\n if (env.language !== 'latte') {\n return\n }\n var lattePattern = /\\{\\*[\\s\\S]*?\\*\\}|\\{[^'\"\\s{}*](?:[^\"'/{}]|\\/(?![*/])|(\"|')(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1|\\/\\*(?:[^*]|\\*(?!\\/))*\\*\\/)*?\\}/g\n Prism.languages['markup-templating'].buildPlaceholders(\n env,\n 'latte',\n lattePattern\n )\n env.grammar = markupLatte\n })\n Prism.hooks.add('after-tokenize', function (env) {\n Prism.languages['markup-templating'].tokenizePlaceholders(env, 'latte')\n })\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = less\nless.displayName = 'less'\nless.aliases = []\nfunction less(Prism) {\n /* FIXME :\n:extend() is not handled specifically : its highlighting is buggy.\nMixin usage must be inside a ruleset to be highlighted.\nAt-rules (e.g. import) containing interpolations are buggy.\nDetached rulesets are highlighted as at-rules.\nA comment before a mixin usage prevents the latter to be properly highlighted.\n*/\n Prism.languages.less = Prism.languages.extend('css', {\n comment: [\n /\\/\\*[\\s\\S]*?\\*\\//,\n {\n pattern: /(^|[^\\\\])\\/\\/.*/,\n lookbehind: true\n }\n ],\n atrule: {\n pattern: /@[\\w-](?:\\((?:[^(){}]|\\([^(){}]*\\))*\\)|[^(){};\\s]|\\s+(?!\\s))*?(?=\\s*\\{)/,\n inside: {\n punctuation: /[:()]/\n }\n },\n // selectors and mixins are considered the same\n selector: {\n pattern: /(?:@\\{[\\w-]+\\}|[^{};\\s@])(?:@\\{[\\w-]+\\}|\\((?:[^(){}]|\\([^(){}]*\\))*\\)|[^(){};@\\s]|\\s+(?!\\s))*?(?=\\s*\\{)/,\n inside: {\n // mixin parameters\n variable: /@+[\\w-]+/\n }\n },\n property: /(?:@\\{[\\w-]+\\}|[\\w-])+(?:\\+_?)?(?=\\s*:)/i,\n operator: /[+\\-*\\/]/\n })\n Prism.languages.insertBefore('less', 'property', {\n variable: [\n // Variable declaration (the colon must be consumed!)\n {\n pattern: /@[\\w-]+\\s*:/,\n inside: {\n punctuation: /:/\n }\n }, // Variable usage\n /@@?[\\w-]+/\n ],\n 'mixin-usage': {\n pattern: /([{;]\\s*)[.#](?!\\d)[\\w-].*?(?=[(;])/,\n lookbehind: true,\n alias: 'function'\n }\n })\n}\n","'use strict'\nvar refractorScheme = require('./scheme.js')\nmodule.exports = lilypond\nlilypond.displayName = 'lilypond'\nlilypond.aliases = []\nfunction lilypond(Prism) {\n Prism.register(refractorScheme)\n ;(function (Prism) {\n var schemeExpression = /\\((?:[^();\"#\\\\]|\\\\[\\s\\S]|;.*(?!.)|\"(?:[^\"\\\\]|\\\\.)*\"|#(?:\\{(?:(?!#\\})[\\s\\S])*#\\}|[^{])|<expr>)*\\)/\n .source // allow for up to pow(2, recursivenessLog2) many levels of recursive brace expressions\n // For some reason, this can't be 4\n var recursivenessLog2 = 5\n for (var i = 0; i < recursivenessLog2; i++) {\n schemeExpression = schemeExpression.replace(/<expr>/g, function () {\n return schemeExpression\n })\n }\n schemeExpression = schemeExpression.replace(/<expr>/g, /[^\\s\\S]/.source)\n var lilypond = (Prism.languages.lilypond = {\n comment: /%(?:(?!\\{).*|\\{[\\s\\S]*?%\\})/,\n 'embedded-scheme': {\n pattern: RegExp(\n /(^|[=\\s])#(?:\"(?:[^\"\\\\]|\\\\.)*\"|[^\\s()\"]*(?:[^\\s()]|<expr>))/.source.replace(\n /<expr>/g,\n function () {\n return schemeExpression\n }\n ),\n 'm'\n ),\n lookbehind: true,\n greedy: true,\n inside: {\n scheme: {\n pattern: /^(#)[\\s\\S]+$/,\n lookbehind: true,\n alias: 'language-scheme',\n inside: {\n 'embedded-lilypond': {\n pattern: /#\\{[\\s\\S]*?#\\}/,\n greedy: true,\n inside: {\n punctuation: /^#\\{|#\\}$/,\n lilypond: {\n pattern: /[\\s\\S]+/,\n alias: 'language-lilypond',\n inside: null // see below\n }\n }\n },\n rest: Prism.languages.scheme\n }\n },\n punctuation: /#/\n }\n },\n string: {\n pattern: /\"(?:[^\"\\\\]|\\\\.)*\"/,\n greedy: true\n },\n 'class-name': {\n pattern: /(\\\\new\\s+)[\\w-]+/,\n lookbehind: true\n },\n keyword: {\n pattern: /\\\\[a-z][-\\w]*/i,\n inside: {\n punctuation: /^\\\\/\n }\n },\n operator: /[=|]|<<|>>/,\n punctuation: {\n pattern: /(^|[a-z\\d])(?:'+|,+|[_^]?-[_^]?(?:[-+^!>._]|(?=\\d))|[_^]\\.?|[.!])|[{}()[\\]<>^~]|\\\\[()[\\]<>\\\\!]|--|__/,\n lookbehind: true\n },\n number: /\\b\\d+(?:\\/\\d+)?\\b/\n })\n lilypond['embedded-scheme'].inside['scheme'].inside[\n 'embedded-lilypond'\n ].inside['lilypond'].inside = lilypond\n Prism.languages.ly = lilypond\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = liquid\nliquid.displayName = 'liquid'\nliquid.aliases = []\nfunction liquid(Prism) {\n Prism.languages.liquid = {\n keyword: /\\b(?:comment|endcomment|if|elsif|else|endif|unless|endunless|for|endfor|case|endcase|when|in|break|assign|continue|limit|offset|range|reversed|raw|endraw|capture|endcapture|tablerow|endtablerow)\\b/,\n number: /\\b0b[01]+\\b|\\b0x(?:\\.[\\da-fp-]+|[\\da-f]+(?:\\.[\\da-fp-]+)?)\\b|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e[+-]?\\d+)?[df]?/i,\n operator: {\n pattern: /(^|[^.])(?:\\+[+=]?|-[-=]?|!=?|<<?=?|>>?>?=?|==?|&[&=]?|\\|[|=]?|\\*=?|\\/=?|%=?|\\^=?|[?:~])/m,\n lookbehind: true\n },\n function: {\n pattern: /(^|[\\s;|&])(?:append|prepend|capitalize|cycle|cols|increment|decrement|abs|at_least|at_most|ceil|compact|concat|date|default|divided_by|downcase|escape|escape_once|first|floor|join|last|lstrip|map|minus|modulo|newline_to_br|plus|remove|remove_first|replace|replace_first|reverse|round|rstrip|size|slice|sort|sort_natural|split|strip|strip_html|strip_newlines|times|truncate|truncatewords|uniq|upcase|url_decode|url_encode|include|paginate)(?=$|[\\s;|&])/,\n lookbehind: true\n }\n }\n}\n","'use strict'\n\nmodule.exports = lisp\nlisp.displayName = 'lisp'\nlisp.aliases = []\nfunction lisp(Prism) {\n ;(function (Prism) {\n // Functions to construct regular expressions\n // simple form\n // e.g. (interactive ... or (interactive)\n function simple_form(name) {\n return RegExp('(\\\\()' + name + '(?=[\\\\s\\\\)])')\n } // booleans and numbers\n function primitive(pattern) {\n return RegExp('([\\\\s([])' + pattern + '(?=[\\\\s)])')\n } // Patterns in regular expressions\n // Symbol name. See https://www.gnu.org/software/emacs/manual/html_node/elisp/Symbol-Type.html\n // & and : are excluded as they are usually used for special purposes\n var symbol = '[-+*/_~!@$%^=<>{}\\\\w]+' // symbol starting with & used in function arguments\n var marker = '&' + symbol // Open parenthesis for look-behind\n var par = '(\\\\()'\n var endpar = '(?=\\\\))' // End the pattern with look-ahead space\n var space = '(?=\\\\s)'\n var language = {\n // Three or four semicolons are considered a heading.\n // See https://www.gnu.org/software/emacs/manual/html_node/elisp/Comment-Tips.html\n heading: {\n pattern: /;;;.*/,\n alias: ['comment', 'title']\n },\n comment: /;.*/,\n string: {\n pattern: /\"(?:[^\"\\\\]|\\\\.)*\"/,\n greedy: true,\n inside: {\n argument: /[-A-Z]+(?=[.,\\s])/,\n symbol: RegExp('`' + symbol + \"'\")\n }\n },\n 'quoted-symbol': {\n pattern: RegExp(\"#?'\" + symbol),\n alias: ['variable', 'symbol']\n },\n 'lisp-property': {\n pattern: RegExp(':' + symbol),\n alias: 'property'\n },\n splice: {\n pattern: RegExp(',@?' + symbol),\n alias: ['symbol', 'variable']\n },\n keyword: [\n {\n pattern: RegExp(\n par +\n '(?:(?:lexical-)?let\\\\*?|(?:cl-)?letf|if|when|while|unless|cons|cl-loop|and|or|not|cond|setq|error|message|null|require|provide|use-package)' +\n space\n ),\n lookbehind: true\n },\n {\n pattern: RegExp(\n par +\n '(?:for|do|collect|return|finally|append|concat|in|by)' +\n space\n ),\n lookbehind: true\n }\n ],\n declare: {\n pattern: simple_form('declare'),\n lookbehind: true,\n alias: 'keyword'\n },\n interactive: {\n pattern: simple_form('interactive'),\n lookbehind: true,\n alias: 'keyword'\n },\n boolean: {\n pattern: primitive('(?:t|nil)'),\n lookbehind: true\n },\n number: {\n pattern: primitive('[-+]?\\\\d+(?:\\\\.\\\\d*)?'),\n lookbehind: true\n },\n defvar: {\n pattern: RegExp(par + 'def(?:var|const|custom|group)\\\\s+' + symbol),\n lookbehind: true,\n inside: {\n keyword: /^def[a-z]+/,\n variable: RegExp(symbol)\n }\n },\n defun: {\n pattern: RegExp(\n par +\n '(?:cl-)?(?:defun\\\\*?|defmacro)\\\\s+' +\n symbol +\n '\\\\s+\\\\([\\\\s\\\\S]*?\\\\)'\n ),\n lookbehind: true,\n inside: {\n keyword: /^(?:cl-)?def\\S+/,\n // See below, this property needs to be defined later so that it can\n // reference the language object.\n arguments: null,\n function: {\n pattern: RegExp('(^\\\\s)' + symbol),\n lookbehind: true\n },\n punctuation: /[()]/\n }\n },\n lambda: {\n pattern: RegExp(\n par +\n 'lambda\\\\s+\\\\(\\\\s*(?:&?' +\n symbol +\n '(?:\\\\s+&?' +\n symbol +\n ')*\\\\s*)?\\\\)'\n ),\n lookbehind: true,\n inside: {\n keyword: /^lambda/,\n // See below, this property needs to be defined later so that it can\n // reference the language object.\n arguments: null,\n punctuation: /[()]/\n }\n },\n car: {\n pattern: RegExp(par + symbol),\n lookbehind: true\n },\n punctuation: [\n // open paren, brackets, and close paren\n /(?:['`,]?\\(|[)\\[\\]])/, // cons\n {\n pattern: /(\\s)\\.(?=\\s)/,\n lookbehind: true\n }\n ]\n }\n var arg = {\n 'lisp-marker': RegExp(marker),\n rest: {\n argument: {\n pattern: RegExp(symbol),\n alias: 'variable'\n },\n varform: {\n pattern: RegExp(par + symbol + '\\\\s+\\\\S[\\\\s\\\\S]*' + endpar),\n lookbehind: true,\n inside: {\n string: language.string,\n boolean: language.boolean,\n number: language.number,\n symbol: language.symbol,\n punctuation: /[()]/\n }\n }\n }\n }\n var forms = '\\\\S+(?:\\\\s+\\\\S+)*'\n var arglist = {\n pattern: RegExp(par + '[\\\\s\\\\S]*' + endpar),\n lookbehind: true,\n inside: {\n 'rest-vars': {\n pattern: RegExp('&(?:rest|body)\\\\s+' + forms),\n inside: arg\n },\n 'other-marker-vars': {\n pattern: RegExp('&(?:optional|aux)\\\\s+' + forms),\n inside: arg\n },\n keys: {\n pattern: RegExp('&key\\\\s+' + forms + '(?:\\\\s+&allow-other-keys)?'),\n inside: arg\n },\n argument: {\n pattern: RegExp(symbol),\n alias: 'variable'\n },\n punctuation: /[()]/\n }\n }\n language['lambda'].inside.arguments = arglist\n language['defun'].inside.arguments = Prism.util.clone(arglist)\n language['defun'].inside.arguments.inside.sublist = arglist\n Prism.languages.lisp = language\n Prism.languages.elisp = language\n Prism.languages.emacs = language\n Prism.languages['emacs-lisp'] = language\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = livescript\nlivescript.displayName = 'livescript'\nlivescript.aliases = []\nfunction livescript(Prism) {\n Prism.languages.livescript = {\n comment: [\n {\n pattern: /(^|[^\\\\])\\/\\*[\\s\\S]*?\\*\\//,\n lookbehind: true\n },\n {\n pattern: /(^|[^\\\\])#.*/,\n lookbehind: true\n }\n ],\n 'interpolated-string': {\n /* Look-behind and look-ahead prevents wrong behavior of the greedy pattern\n * forcing it to match \"\"\"-quoted string when it would otherwise match \"-quoted first. */\n pattern: /(^|[^\"])(\"\"\"|\")(?:\\\\[\\s\\S]|(?!\\2)[^\\\\])*\\2(?!\")/,\n lookbehind: true,\n greedy: true,\n inside: {\n variable: {\n pattern: /(^|[^\\\\])#[a-z_](?:-?[a-z]|[\\d_])*/m,\n lookbehind: true\n },\n interpolation: {\n pattern: /(^|[^\\\\])#\\{[^}]+\\}/m,\n lookbehind: true,\n inside: {\n 'interpolation-punctuation': {\n pattern: /^#\\{|\\}$/,\n alias: 'variable'\n } // See rest below\n }\n },\n string: /[\\s\\S]+/\n }\n },\n string: [\n {\n pattern: /('''|')(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1/,\n greedy: true\n },\n {\n pattern: /<\\[[\\s\\S]*?\\]>/,\n greedy: true\n },\n /\\\\[^\\s,;\\])}]+/\n ],\n regex: [\n {\n pattern: /\\/\\/(?:\\[[^\\r\\n\\]]*\\]|\\\\.|(?!\\/\\/)[^\\\\\\[])+\\/\\/[gimyu]{0,5}/,\n greedy: true,\n inside: {\n comment: {\n pattern: /(^|[^\\\\])#.*/,\n lookbehind: true\n }\n }\n },\n {\n pattern: /\\/(?:\\[[^\\r\\n\\]]*\\]|\\\\.|[^/\\\\\\r\\n\\[])+\\/[gimyu]{0,5}/,\n greedy: true\n }\n ],\n keyword: {\n pattern: /(^|(?!-).)\\b(?:break|case|catch|class|const|continue|default|do|else|extends|fallthrough|finally|for(?: ever)?|function|if|implements|it|let|loop|new|null|otherwise|own|return|super|switch|that|then|this|throw|try|unless|until|var|void|when|while|yield)(?!-)\\b/m,\n lookbehind: true\n },\n 'keyword-operator': {\n pattern: /(^|[^-])\\b(?:(?:delete|require|typeof)!|(?:and|by|delete|export|from|import(?: all)?|in|instanceof|is(?:nt| not)?|not|of|or|til|to|typeof|with|xor)(?!-)\\b)/m,\n lookbehind: true,\n alias: 'operator'\n },\n boolean: {\n pattern: /(^|[^-])\\b(?:false|no|off|on|true|yes)(?!-)\\b/m,\n lookbehind: true\n },\n argument: {\n // Don't match .&. nor &&\n pattern: /(^|(?!\\.&\\.)[^&])&(?!&)\\d*/m,\n lookbehind: true,\n alias: 'variable'\n },\n number: /\\b(?:\\d+~[\\da-z]+|\\d[\\d_]*(?:\\.\\d[\\d_]*)?(?:[a-z]\\w*)?)/i,\n identifier: /[a-z_](?:-?[a-z]|[\\d_])*/i,\n operator: [\n // Spaced .\n {\n pattern: /( )\\.(?= )/,\n lookbehind: true\n }, // Full list, in order:\n // .= .~ .. ...\n // .&. .^. .<<. .>>. .>>>.\n // := :: ::=\n // &&\n // || |>\n // < << <<< <<<<\n // <- <-- <-! <--!\n // <~ <~~ <~! <~~!\n // <| <= <?\n // > >> >= >?\n // - -- -> -->\n // + ++\n // @ @@\n // % %%\n // * **\n // ! != !~=\n // !~> !~~>\n // !-> !-->\n // ~ ~> ~~> ~=\n // = ==\n // ^ ^^\n // / ?\n /\\.(?:[=~]|\\.\\.?)|\\.(?:[&|^]|<<|>>>?)\\.|:(?:=|:=?)|&&|\\|[|>]|<(?:<<?<?|--?!?|~~?!?|[|=?])?|>[>=?]?|-(?:->?|>)?|\\+\\+?|@@?|%%?|\\*\\*?|!(?:~?=|--?>|~?~>)?|~(?:~?>|=)?|==?|\\^\\^?|[\\/?]/\n ],\n punctuation: /[(){}\\[\\]|.,:;`]/\n }\n Prism.languages.livescript['interpolated-string'].inside[\n 'interpolation'\n ].inside.rest = Prism.languages.livescript\n}\n","'use strict'\n\nmodule.exports = llvm\nllvm.displayName = 'llvm'\nllvm.aliases = []\nfunction llvm(Prism) {\n ;(function (Prism) {\n Prism.languages.llvm = {\n comment: /;.*/,\n string: {\n pattern: /\"[^\"]*\"/,\n greedy: true\n },\n boolean: /\\b(?:true|false)\\b/,\n variable: /[%@!#](?:(?!\\d)(?:[-$.\\w]|\\\\[a-f\\d]{2})+|\\d+)/i,\n label: /(?!\\d)(?:[-$.\\w]|\\\\[a-f\\d]{2})+:/i,\n type: {\n pattern: /\\b(?:double|float|fp128|half|i[1-9]\\d*|label|metadata|ppc_fp128|token|void|x86_fp80|x86_mmx)\\b/,\n alias: 'class-name'\n },\n keyword: /\\b[a-z_][a-z_0-9]*\\b/,\n number: /[+-]?\\b\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?\\b|\\b0x[\\dA-Fa-f]+\\b|\\b0xK[\\dA-Fa-f]{20}\\b|\\b0x[ML][\\dA-Fa-f]{32}\\b|\\b0xH[\\dA-Fa-f]{4}\\b/,\n punctuation: /[{}[\\];(),.!*=<>]/\n }\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = lolcode\nlolcode.displayName = 'lolcode'\nlolcode.aliases = []\nfunction lolcode(Prism) {\n Prism.languages.lolcode = {\n comment: [/\\bOBTW\\s[\\s\\S]*?\\sTLDR\\b/, /\\bBTW.+/],\n string: {\n pattern: /\"(?::.|[^\":])*\"/,\n inside: {\n variable: /:\\{[^}]+\\}/,\n symbol: [/:\\([a-f\\d]+\\)/i, /:\\[[^\\]]+\\]/, /:[)>o\":]/]\n },\n greedy: true\n },\n number: /(?:\\B-)?(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)/,\n symbol: {\n pattern: /(^|\\s)(?:A )?(?:YARN|NUMBR|NUMBAR|TROOF|BUKKIT|NOOB)(?=\\s|,|$)/,\n lookbehind: true,\n inside: {\n keyword: /A(?=\\s)/\n }\n },\n label: {\n pattern: /((?:^|\\s)(?:IM IN YR|IM OUTTA YR) )[a-zA-Z]\\w*/,\n lookbehind: true,\n alias: 'string'\n },\n function: {\n pattern: /((?:^|\\s)(?:I IZ|HOW IZ I|IZ) )[a-zA-Z]\\w*/,\n lookbehind: true\n },\n keyword: [\n {\n pattern: /(^|\\s)(?:O HAI IM|KTHX|HAI|KTHXBYE|I HAS A|ITZ(?: A)?|R|AN|MKAY|SMOOSH|MAEK|IS NOW(?: A)?|VISIBLE|GIMMEH|O RLY\\?|YA RLY|NO WAI|OIC|MEBBE|WTF\\?|OMG|OMGWTF|GTFO|IM IN YR|IM OUTTA YR|FOUND YR|YR|TIL|WILE|UPPIN|NERFIN|I IZ|HOW IZ I|IF U SAY SO|SRS|HAS A|LIEK(?: A)?|IZ)(?=\\s|,|$)/,\n lookbehind: true\n },\n /'Z(?=\\s|,|$)/\n ],\n boolean: {\n pattern: /(^|\\s)(?:WIN|FAIL)(?=\\s|,|$)/,\n lookbehind: true\n },\n variable: {\n pattern: /(^|\\s)IT(?=\\s|,|$)/,\n lookbehind: true\n },\n operator: {\n pattern: /(^|\\s)(?:NOT|BOTH SAEM|DIFFRINT|(?:SUM|DIFF|PRODUKT|QUOSHUNT|MOD|BIGGR|SMALLR|BOTH|EITHER|WON|ALL|ANY) OF)(?=\\s|,|$)/,\n lookbehind: true\n },\n punctuation: /\\.{3}|…|,|!/\n }\n}\n","'use strict'\n\nmodule.exports = makefile\nmakefile.displayName = 'makefile'\nmakefile.aliases = []\nfunction makefile(Prism) {\n Prism.languages.makefile = {\n comment: {\n pattern: /(^|[^\\\\])#(?:\\\\(?:\\r\\n|[\\s\\S])|[^\\\\\\r\\n])*/,\n lookbehind: true\n },\n string: {\n pattern: /([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/,\n greedy: true\n },\n // Built-in target names\n builtin: /\\.[A-Z][^:#=\\s]+(?=\\s*:(?!=))/,\n // Targets\n symbol: {\n pattern: /^(?:[^:=\\s]|[ \\t]+(?![\\s:]))+(?=\\s*:(?!=))/m,\n inside: {\n variable: /\\$+(?:(?!\\$)[^(){}:#=\\s]+|(?=[({]))/\n }\n },\n variable: /\\$+(?:(?!\\$)[^(){}:#=\\s]+|\\([@*%<^+?][DF]\\)|(?=[({]))/,\n keyword: [\n // Directives\n /-include\\b|\\b(?:define|else|endef|endif|export|ifn?def|ifn?eq|include|override|private|sinclude|undefine|unexport|vpath)\\b/, // Functions\n {\n pattern: /(\\()(?:addsuffix|abspath|and|basename|call|dir|error|eval|file|filter(?:-out)?|findstring|firstword|flavor|foreach|guile|if|info|join|lastword|load|notdir|or|origin|patsubst|realpath|shell|sort|strip|subst|suffix|value|warning|wildcard|word(?:s|list)?)(?=[ \\t])/,\n lookbehind: true\n }\n ],\n operator: /(?:::|[?:+!])?=|[|@]/,\n punctuation: /[:;(){}]/\n }\n}\n","'use strict'\n\nmodule.exports = markdown\nmarkdown.displayName = 'markdown'\nmarkdown.aliases = ['md']\nfunction markdown(Prism) {\n ;(function (Prism) {\n // Allow only one line break\n var inner = /(?:\\\\.|[^\\\\\\n\\r]|(?:\\n|\\r\\n?)(?!\\n|\\r\\n?))/.source\n /**\n * This function is intended for the creation of the bold or italic pattern.\n *\n * This also adds a lookbehind group to the given pattern to ensure that the pattern is not backslash-escaped.\n *\n * _Note:_ Keep in mind that this adds a capturing group.\n *\n * @param {string} pattern\n * @returns {RegExp}\n */\n function createInline(pattern) {\n pattern = pattern.replace(/<inner>/g, function () {\n return inner\n })\n return RegExp(/((?:^|[^\\\\])(?:\\\\{2})*)/.source + '(?:' + pattern + ')')\n }\n var tableCell = /(?:\\\\.|``(?:[^`\\r\\n]|`(?!`))+``|`[^`\\r\\n]+`|[^\\\\|\\r\\n`])+/\n .source\n var tableRow = /\\|?__(?:\\|__)+\\|?(?:(?:\\n|\\r\\n?)|(?![\\s\\S]))/.source.replace(\n /__/g,\n function () {\n return tableCell\n }\n )\n var tableLine = /\\|?[ \\t]*:?-{3,}:?[ \\t]*(?:\\|[ \\t]*:?-{3,}:?[ \\t]*)+\\|?(?:\\n|\\r\\n?)/\n .source\n Prism.languages.markdown = Prism.languages.extend('markup', {})\n Prism.languages.insertBefore('markdown', 'prolog', {\n 'front-matter-block': {\n pattern: /(^(?:\\s*[\\r\\n])?)---(?!.)[\\s\\S]*?[\\r\\n]---(?!.)/,\n lookbehind: true,\n greedy: true,\n inside: {\n punctuation: /^---|---$/,\n 'font-matter': {\n pattern: /\\S+(?:\\s+\\S+)*/,\n alias: ['yaml', 'language-yaml'],\n inside: Prism.languages.yaml\n }\n }\n },\n blockquote: {\n // > ...\n pattern: /^>(?:[\\t ]*>)*/m,\n alias: 'punctuation'\n },\n table: {\n pattern: RegExp(\n '^' + tableRow + tableLine + '(?:' + tableRow + ')*',\n 'm'\n ),\n inside: {\n 'table-data-rows': {\n pattern: RegExp(\n '^(' + tableRow + tableLine + ')(?:' + tableRow + ')*$'\n ),\n lookbehind: true,\n inside: {\n 'table-data': {\n pattern: RegExp(tableCell),\n inside: Prism.languages.markdown\n },\n punctuation: /\\|/\n }\n },\n 'table-line': {\n pattern: RegExp('^(' + tableRow + ')' + tableLine + '$'),\n lookbehind: true,\n inside: {\n punctuation: /\\||:?-{3,}:?/\n }\n },\n 'table-header-row': {\n pattern: RegExp('^' + tableRow + '$'),\n inside: {\n 'table-header': {\n pattern: RegExp(tableCell),\n alias: 'important',\n inside: Prism.languages.markdown\n },\n punctuation: /\\|/\n }\n }\n }\n },\n code: [\n {\n // Prefixed by 4 spaces or 1 tab and preceded by an empty line\n pattern: /((?:^|\\n)[ \\t]*\\n|(?:^|\\r\\n?)[ \\t]*\\r\\n?)(?: {4}|\\t).+(?:(?:\\n|\\r\\n?)(?: {4}|\\t).+)*/,\n lookbehind: true,\n alias: 'keyword'\n },\n {\n // `code`\n // ``code``\n pattern: /``.+?``|`[^`\\r\\n]+`/,\n alias: 'keyword'\n },\n {\n // ```optional language\n // code block\n // ```\n pattern: /^```[\\s\\S]*?^```$/m,\n greedy: true,\n inside: {\n 'code-block': {\n pattern: /^(```.*(?:\\n|\\r\\n?))[\\s\\S]+?(?=(?:\\n|\\r\\n?)^```$)/m,\n lookbehind: true\n },\n 'code-language': {\n pattern: /^(```).+/,\n lookbehind: true\n },\n punctuation: /```/\n }\n }\n ],\n title: [\n {\n // title 1\n // =======\n // title 2\n // -------\n pattern: /\\S.*(?:\\n|\\r\\n?)(?:==+|--+)(?=[ \\t]*$)/m,\n alias: 'important',\n inside: {\n punctuation: /==+$|--+$/\n }\n },\n {\n // # title 1\n // ###### title 6\n pattern: /(^\\s*)#.+/m,\n lookbehind: true,\n alias: 'important',\n inside: {\n punctuation: /^#+|#+$/\n }\n }\n ],\n hr: {\n // ***\n // ---\n // * * *\n // -----------\n pattern: /(^\\s*)([*-])(?:[\\t ]*\\2){2,}(?=\\s*$)/m,\n lookbehind: true,\n alias: 'punctuation'\n },\n list: {\n // * item\n // + item\n // - item\n // 1. item\n pattern: /(^\\s*)(?:[*+-]|\\d+\\.)(?=[\\t ].)/m,\n lookbehind: true,\n alias: 'punctuation'\n },\n 'url-reference': {\n // [id]: http://example.com \"Optional title\"\n // [id]: http://example.com 'Optional title'\n // [id]: http://example.com (Optional title)\n // [id]: <http://example.com> \"Optional title\"\n pattern: /!?\\[[^\\]]+\\]:[\\t ]+(?:\\S+|<(?:\\\\.|[^>\\\\])+>)(?:[\\t ]+(?:\"(?:\\\\.|[^\"\\\\])*\"|'(?:\\\\.|[^'\\\\])*'|\\((?:\\\\.|[^)\\\\])*\\)))?/,\n inside: {\n variable: {\n pattern: /^(!?\\[)[^\\]]+/,\n lookbehind: true\n },\n string: /(?:\"(?:\\\\.|[^\"\\\\])*\"|'(?:\\\\.|[^'\\\\])*'|\\((?:\\\\.|[^)\\\\])*\\))$/,\n punctuation: /^[\\[\\]!:]|[<>]/\n },\n alias: 'url'\n },\n bold: {\n // **strong**\n // __strong__\n // allow one nested instance of italic text using the same delimiter\n pattern: createInline(\n /\\b__(?:(?!_)<inner>|_(?:(?!_)<inner>)+_)+__\\b|\\*\\*(?:(?!\\*)<inner>|\\*(?:(?!\\*)<inner>)+\\*)+\\*\\*/\n .source\n ),\n lookbehind: true,\n greedy: true,\n inside: {\n content: {\n pattern: /(^..)[\\s\\S]+(?=..$)/,\n lookbehind: true,\n inside: {} // see below\n },\n punctuation: /\\*\\*|__/\n }\n },\n italic: {\n // *em*\n // _em_\n // allow one nested instance of bold text using the same delimiter\n pattern: createInline(\n /\\b_(?:(?!_)<inner>|__(?:(?!_)<inner>)+__)+_\\b|\\*(?:(?!\\*)<inner>|\\*\\*(?:(?!\\*)<inner>)+\\*\\*)+\\*/\n .source\n ),\n lookbehind: true,\n greedy: true,\n inside: {\n content: {\n pattern: /(^.)[\\s\\S]+(?=.$)/,\n lookbehind: true,\n inside: {} // see below\n },\n punctuation: /[*_]/\n }\n },\n strike: {\n // ~~strike through~~\n // ~strike~\n pattern: createInline(/(~~?)(?:(?!~)<inner>)+?\\2/.source),\n lookbehind: true,\n greedy: true,\n inside: {\n content: {\n pattern: /(^~~?)[\\s\\S]+(?=\\1$)/,\n lookbehind: true,\n inside: {} // see below\n },\n punctuation: /~~?/\n }\n },\n url: {\n // [example](http://example.com \"Optional title\")\n // [example][id]\n // [example] [id]\n pattern: createInline(\n /!?\\[(?:(?!\\])<inner>)+\\](?:\\([^\\s)]+(?:[\\t ]+\"(?:\\\\.|[^\"\\\\])*\")?\\)|[ \\t]?\\[(?:(?!\\])<inner>)+\\])/\n .source\n ),\n lookbehind: true,\n greedy: true,\n inside: {\n operator: /^!/,\n content: {\n pattern: /(^\\[)[^\\]]+(?=\\])/,\n lookbehind: true,\n inside: {} // see below\n },\n variable: {\n pattern: /(^\\][ \\t]?\\[)[^\\]]+(?=\\]$)/,\n lookbehind: true\n },\n url: {\n pattern: /(^\\]\\()[^\\s)]+/,\n lookbehind: true\n },\n string: {\n pattern: /(^[ \\t]+)\"(?:\\\\.|[^\"\\\\])*\"(?=\\)$)/,\n lookbehind: true\n }\n }\n }\n })\n ;['url', 'bold', 'italic', 'strike'].forEach(function (token) {\n ;['url', 'bold', 'italic', 'strike'].forEach(function (inside) {\n if (token !== inside) {\n Prism.languages.markdown[token].inside.content.inside[inside] =\n Prism.languages.markdown[inside]\n }\n })\n })\n Prism.hooks.add('after-tokenize', function (env) {\n if (env.language !== 'markdown' && env.language !== 'md') {\n return\n }\n function walkTokens(tokens) {\n if (!tokens || typeof tokens === 'string') {\n return\n }\n for (var i = 0, l = tokens.length; i < l; i++) {\n var token = tokens[i]\n if (token.type !== 'code') {\n walkTokens(token.content)\n continue\n }\n /*\n * Add the correct `language-xxxx` class to this code block. Keep in mind that the `code-language` token\n * is optional. But the grammar is defined so that there is only one case we have to handle:\n *\n * token.content = [\n * <span class=\"punctuation\">```</span>,\n * <span class=\"code-language\">xxxx</span>,\n * '\\n', // exactly one new lines (\\r or \\n or \\r\\n)\n * <span class=\"code-block\">...</span>,\n * '\\n', // exactly one new lines again\n * <span class=\"punctuation\">```</span>\n * ];\n */\n var codeLang = token.content[1]\n var codeBlock = token.content[3]\n if (\n codeLang &&\n codeBlock &&\n codeLang.type === 'code-language' &&\n codeBlock.type === 'code-block' &&\n typeof codeLang.content === 'string'\n ) {\n // this might be a language that Prism does not support\n // do some replacements to support C++, C#, and F#\n var lang = codeLang.content\n .replace(/\\b#/g, 'sharp')\n .replace(/\\b\\+\\+/g, 'pp') // only use the first word\n lang = (/[a-z][\\w-]*/i.exec(lang) || [''])[0].toLowerCase()\n var alias = 'language-' + lang // add alias\n if (!codeBlock.alias) {\n codeBlock.alias = [alias]\n } else if (typeof codeBlock.alias === 'string') {\n codeBlock.alias = [codeBlock.alias, alias]\n } else {\n codeBlock.alias.push(alias)\n }\n }\n }\n }\n walkTokens(env.tokens)\n })\n Prism.hooks.add('wrap', function (env) {\n if (env.type !== 'code-block') {\n return\n }\n var codeLang = ''\n for (var i = 0, l = env.classes.length; i < l; i++) {\n var cls = env.classes[i]\n var match = /language-(.+)/.exec(cls)\n if (match) {\n codeLang = match[1]\n break\n }\n }\n var grammar = Prism.languages[codeLang]\n if (!grammar) {\n if (codeLang && codeLang !== 'none' && Prism.plugins.autoloader) {\n var id =\n 'md-' +\n new Date().valueOf() +\n '-' +\n Math.floor(Math.random() * 1e16)\n env.attributes['id'] = id\n Prism.plugins.autoloader.loadLanguages(codeLang, function () {\n var ele = document.getElementById(id)\n if (ele) {\n ele.innerHTML = Prism.highlight(\n ele.textContent,\n Prism.languages[codeLang],\n codeLang\n )\n }\n })\n }\n } else {\n // reverse Prism.util.encode\n var code = env.content.value\n .replace(/&lt;/g, '<')\n .replace(/&amp;/g, '&')\n env.content = Prism.highlight(code, grammar, codeLang)\n }\n })\n Prism.languages.md = Prism.languages.markdown\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = matlab\nmatlab.displayName = 'matlab'\nmatlab.aliases = []\nfunction matlab(Prism) {\n Prism.languages.matlab = {\n comment: [/%\\{[\\s\\S]*?\\}%/, /%.+/],\n string: {\n pattern: /\\B'(?:''|[^'\\r\\n])*'/,\n greedy: true\n },\n // FIXME We could handle imaginary numbers as a whole\n number: /(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:[eE][+-]?\\d+)?(?:[ij])?|\\b[ij]\\b/,\n keyword: /\\b(?:break|case|catch|continue|else|elseif|end|for|function|if|inf|NaN|otherwise|parfor|pause|pi|return|switch|try|while)\\b/,\n function: /(?!\\d)\\w+(?=\\s*\\()/,\n operator: /\\.?[*^\\/\\\\']|[+\\-:@]|[<>=~]=?|&&?|\\|\\|?/,\n punctuation: /\\.{3}|[.,;\\[\\](){}!]/\n }\n}\n","'use strict'\n\nmodule.exports = mel\nmel.displayName = 'mel'\nmel.aliases = []\nfunction mel(Prism) {\n Prism.languages.mel = {\n comment: /\\/\\/.*/,\n code: {\n pattern: /`(?:\\\\.|[^\\\\`\\r\\n])*`/,\n greedy: true,\n alias: 'italic',\n inside: {\n delimiter: {\n pattern: /^`|`$/,\n alias: 'punctuation'\n } // See rest below\n }\n },\n string: {\n pattern: /\"(?:\\\\.|[^\\\\\"\\r\\n])*\"/,\n greedy: true\n },\n variable: /\\$\\w+/,\n number: /\\b0x[\\da-fA-F]+\\b|\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+/,\n flag: {\n pattern: /-[^\\d\\W]\\w*/,\n alias: 'operator'\n },\n keyword: /\\b(?:break|case|continue|default|do|else|float|for|global|if|in|int|matrix|proc|return|string|switch|vector|while)\\b/,\n function: /\\w+(?=\\()|\\b(?:about|abs|addAttr|addAttributeEditorNodeHelp|addDynamic|addNewShelfTab|addPP|addPanelCategory|addPrefixToName|advanceToNextDrivenKey|affectedNet|affects|aimConstraint|air|alias|aliasAttr|align|alignCtx|alignCurve|alignSurface|allViewFit|ambientLight|angle|angleBetween|animCone|animCurveEditor|animDisplay|animView|annotate|appendStringArray|applicationName|applyAttrPreset|applyTake|arcLenDimContext|arcLengthDimension|arclen|arrayMapper|art3dPaintCtx|artAttrCtx|artAttrPaintVertexCtx|artAttrSkinPaintCtx|artAttrTool|artBuildPaintMenu|artFluidAttrCtx|artPuttyCtx|artSelectCtx|artSetPaintCtx|artUserPaintCtx|assignCommand|assignInputDevice|assignViewportFactories|attachCurve|attachDeviceAttr|attachSurface|attrColorSliderGrp|attrCompatibility|attrControlGrp|attrEnumOptionMenu|attrEnumOptionMenuGrp|attrFieldGrp|attrFieldSliderGrp|attrNavigationControlGrp|attrPresetEditWin|attributeExists|attributeInfo|attributeMenu|attributeQuery|autoKeyframe|autoPlace|bakeClip|bakeFluidShading|bakePartialHistory|bakeResults|bakeSimulation|basename|basenameEx|batchRender|bessel|bevel|bevelPlus|binMembership|bindSkin|blend2|blendShape|blendShapeEditor|blendShapePanel|blendTwoAttr|blindDataType|boneLattice|boundary|boxDollyCtx|boxZoomCtx|bufferCurve|buildBookmarkMenu|buildKeyframeMenu|button|buttonManip|CBG|cacheFile|cacheFileCombine|cacheFileMerge|cacheFileTrack|camera|cameraView|canCreateManip|canvas|capitalizeString|catch|catchQuiet|ceil|changeSubdivComponentDisplayLevel|changeSubdivRegion|channelBox|character|characterMap|characterOutlineEditor|characterize|chdir|checkBox|checkBoxGrp|checkDefaultRenderGlobals|choice|circle|circularFillet|clamp|clear|clearCache|clip|clipEditor|clipEditorCurrentTimeCtx|clipSchedule|clipSchedulerOutliner|clipTrimBefore|closeCurve|closeSurface|cluster|cmdFileOutput|cmdScrollFieldExecuter|cmdScrollFieldReporter|cmdShell|coarsenSubdivSelectionList|collision|color|colorAtPoint|colorEditor|colorIndex|colorIndexSliderGrp|colorSliderButtonGrp|colorSliderGrp|columnLayout|commandEcho|commandLine|commandPort|compactHairSystem|componentEditor|compositingInterop|computePolysetVolume|condition|cone|confirmDialog|connectAttr|connectControl|connectDynamic|connectJoint|connectionInfo|constrain|constrainValue|constructionHistory|container|containsMultibyte|contextInfo|control|convertFromOldLayers|convertIffToPsd|convertLightmap|convertSolidTx|convertTessellation|convertUnit|copyArray|copyFlexor|copyKey|copySkinWeights|cos|cpButton|cpCache|cpClothSet|cpCollision|cpConstraint|cpConvClothToMesh|cpForces|cpGetSolverAttr|cpPanel|cpProperty|cpRigidCollisionFilter|cpSeam|cpSetEdit|cpSetSolverAttr|cpSolver|cpSolverTypes|cpTool|cpUpdateClothUVs|createDisplayLayer|createDrawCtx|createEditor|createLayeredPsdFile|createMotionField|createNewShelf|createNode|createRenderLayer|createSubdivRegion|cross|crossProduct|ctxAbort|ctxCompletion|ctxEditMode|ctxTraverse|currentCtx|currentTime|currentTimeCtx|currentUnit|curve|curveAddPtCtx|curveCVCtx|curveEPCtx|curveEditorCtx|curveIntersect|curveMoveEPCtx|curveOnSurface|curveSketchCtx|cutKey|cycleCheck|cylinder|dagPose|date|defaultLightListCheckBox|defaultNavigation|defineDataServer|defineVirtualDevice|deformer|deg_to_rad|delete|deleteAttr|deleteShadingGroupsAndMaterials|deleteShelfTab|deleteUI|deleteUnusedBrushes|delrandstr|detachCurve|detachDeviceAttr|detachSurface|deviceEditor|devicePanel|dgInfo|dgdirty|dgeval|dgtimer|dimWhen|directKeyCtx|directionalLight|dirmap|dirname|disable|disconnectAttr|disconnectJoint|diskCache|displacementToPoly|displayAffected|displayColor|displayCull|displayLevelOfDetail|displayPref|displayRGBColor|displaySmoothness|displayStats|displayString|displaySurface|distanceDimContext|distanceDimension|doBlur|dolly|dollyCtx|dopeSheetEditor|dot|dotProduct|doubleProfileBirailSurface|drag|dragAttrContext|draggerContext|dropoffLocator|duplicate|duplicateCurve|duplicateSurface|dynCache|dynControl|dynExport|dynExpression|dynGlobals|dynPaintEditor|dynParticleCtx|dynPref|dynRelEdPanel|dynRelEditor|dynamicLoad|editAttrLimits|editDisplayLayerGlobals|editDisplayLayerMembers|editRenderLayerAdjustment|editRenderLayerGlobals|editRenderLayerMembers|editor|editorTemplate|effector|emit|emitter|enableDevice|encodeString|endString|endsWith|env|equivalent|equivalentTol|erf|error|eval|evalDeferred|evalEcho|event|exactWorldBoundingBox|exclusiveLightCheckBox|exec|executeForEachObject|exists|exp|expression|expressionEditorListen|extendCurve|extendSurface|extrude|fcheck|fclose|feof|fflush|fgetline|fgetword|file|fileBrowserDialog|fileDialog|fileExtension|fileInfo|filetest|filletCurve|filter|filterCurve|filterExpand|filterStudioImport|findAllIntersections|findAnimCurves|findKeyframe|findMenuItem|findRelatedSkinCluster|finder|firstParentOf|fitBspline|flexor|floatEq|floatField|floatFieldGrp|floatScrollBar|floatSlider|floatSlider2|floatSliderButtonGrp|floatSliderGrp|floor|flow|fluidCacheInfo|fluidEmitter|fluidVoxelInfo|flushUndo|fmod|fontDialog|fopen|formLayout|format|fprint|frameLayout|fread|freeFormFillet|frewind|fromNativePath|fwrite|gamma|gauss|geometryConstraint|getApplicationVersionAsFloat|getAttr|getClassification|getDefaultBrush|getFileList|getFluidAttr|getInputDeviceRange|getMayaPanelTypes|getModifiers|getPanel|getParticleAttr|getPluginResource|getenv|getpid|glRender|glRenderEditor|globalStitch|gmatch|goal|gotoBindPose|grabColor|gradientControl|gradientControlNoAttr|graphDollyCtx|graphSelectContext|graphTrackCtx|gravity|grid|gridLayout|group|groupObjectsByName|HfAddAttractorToAS|HfAssignAS|HfBuildEqualMap|HfBuildFurFiles|HfBuildFurImages|HfCancelAFR|HfConnectASToHF|HfCreateAttractor|HfDeleteAS|HfEditAS|HfPerformCreateAS|HfRemoveAttractorFromAS|HfSelectAttached|HfSelectAttractors|HfUnAssignAS|hardenPointCurve|hardware|hardwareRenderPanel|headsUpDisplay|headsUpMessage|help|helpLine|hermite|hide|hilite|hitTest|hotBox|hotkey|hotkeyCheck|hsv_to_rgb|hudButton|hudSlider|hudSliderButton|hwReflectionMap|hwRender|hwRenderLoad|hyperGraph|hyperPanel|hyperShade|hypot|iconTextButton|iconTextCheckBox|iconTextRadioButton|iconTextRadioCollection|iconTextScrollList|iconTextStaticLabel|ikHandle|ikHandleCtx|ikHandleDisplayScale|ikSolver|ikSplineHandleCtx|ikSystem|ikSystemInfo|ikfkDisplayMethod|illustratorCurves|image|imfPlugins|inheritTransform|insertJoint|insertJointCtx|insertKeyCtx|insertKnotCurve|insertKnotSurface|instance|instanceable|instancer|intField|intFieldGrp|intScrollBar|intSlider|intSliderGrp|interToUI|internalVar|intersect|iprEngine|isAnimCurve|isConnected|isDirty|isParentOf|isSameObject|isTrue|isValidObjectName|isValidString|isValidUiName|isolateSelect|itemFilter|itemFilterAttr|itemFilterRender|itemFilterType|joint|jointCluster|jointCtx|jointDisplayScale|jointLattice|keyTangent|keyframe|keyframeOutliner|keyframeRegionCurrentTimeCtx|keyframeRegionDirectKeyCtx|keyframeRegionDollyCtx|keyframeRegionInsertKeyCtx|keyframeRegionMoveKeyCtx|keyframeRegionScaleKeyCtx|keyframeRegionSelectKeyCtx|keyframeRegionSetKeyCtx|keyframeRegionTrackCtx|keyframeStats|lassoContext|lattice|latticeDeformKeyCtx|launch|launchImageEditor|layerButton|layeredShaderPort|layeredTexturePort|layout|layoutDialog|lightList|lightListEditor|lightListPanel|lightlink|lineIntersection|linearPrecision|linstep|listAnimatable|listAttr|listCameras|listConnections|listDeviceAttachments|listHistory|listInputDeviceAxes|listInputDeviceButtons|listInputDevices|listMenuAnnotation|listNodeTypes|listPanelCategories|listRelatives|listSets|listTransforms|listUnselected|listerEditor|loadFluid|loadNewShelf|loadPlugin|loadPluginLanguageResources|loadPrefObjects|localizedPanelLabel|lockNode|loft|log|longNameOf|lookThru|ls|lsThroughFilter|lsType|lsUI|Mayatomr|mag|makeIdentity|makeLive|makePaintable|makeRoll|makeSingleSurface|makeTubeOn|makebot|manipMoveContext|manipMoveLimitsCtx|manipOptions|manipRotateContext|manipRotateLimitsCtx|manipScaleContext|manipScaleLimitsCtx|marker|match|max|memory|menu|menuBarLayout|menuEditor|menuItem|menuItemToShelf|menuSet|menuSetPref|messageLine|min|minimizeApp|mirrorJoint|modelCurrentTimeCtx|modelEditor|modelPanel|mouse|movIn|movOut|move|moveIKtoFK|moveKeyCtx|moveVertexAlongDirection|multiProfileBirailSurface|mute|nParticle|nameCommand|nameField|namespace|namespaceInfo|newPanelItems|newton|nodeCast|nodeIconButton|nodeOutliner|nodePreset|nodeType|noise|nonLinear|normalConstraint|normalize|nurbsBoolean|nurbsCopyUVSet|nurbsCube|nurbsEditUV|nurbsPlane|nurbsSelect|nurbsSquare|nurbsToPoly|nurbsToPolygonsPref|nurbsToSubdiv|nurbsToSubdivPref|nurbsUVSet|nurbsViewDirectionVector|objExists|objectCenter|objectLayer|objectType|objectTypeUI|obsoleteProc|oceanNurbsPreviewPlane|offsetCurve|offsetCurveOnSurface|offsetSurface|openGLExtension|openMayaPref|optionMenu|optionMenuGrp|optionVar|orbit|orbitCtx|orientConstraint|outlinerEditor|outlinerPanel|overrideModifier|paintEffectsDisplay|pairBlend|palettePort|paneLayout|panel|panelConfiguration|panelHistory|paramDimContext|paramDimension|paramLocator|parent|parentConstraint|particle|particleExists|particleInstancer|particleRenderInfo|partition|pasteKey|pathAnimation|pause|pclose|percent|performanceOptions|pfxstrokes|pickWalk|picture|pixelMove|planarSrf|plane|play|playbackOptions|playblast|plugAttr|plugNode|pluginInfo|pluginResourceUtil|pointConstraint|pointCurveConstraint|pointLight|pointMatrixMult|pointOnCurve|pointOnSurface|pointPosition|poleVectorConstraint|polyAppend|polyAppendFacetCtx|polyAppendVertex|polyAutoProjection|polyAverageNormal|polyAverageVertex|polyBevel|polyBlendColor|polyBlindData|polyBoolOp|polyBridgeEdge|polyCacheMonitor|polyCheck|polyChipOff|polyClipboard|polyCloseBorder|polyCollapseEdge|polyCollapseFacet|polyColorBlindData|polyColorDel|polyColorPerVertex|polyColorSet|polyCompare|polyCone|polyCopyUV|polyCrease|polyCreaseCtx|polyCreateFacet|polyCreateFacetCtx|polyCube|polyCut|polyCutCtx|polyCylinder|polyCylindricalProjection|polyDelEdge|polyDelFacet|polyDelVertex|polyDuplicateAndConnect|polyDuplicateEdge|polyEditUV|polyEditUVShell|polyEvaluate|polyExtrudeEdge|polyExtrudeFacet|polyExtrudeVertex|polyFlipEdge|polyFlipUV|polyForceUV|polyGeoSampler|polyHelix|polyInfo|polyInstallAction|polyLayoutUV|polyListComponentConversion|polyMapCut|polyMapDel|polyMapSew|polyMapSewMove|polyMergeEdge|polyMergeEdgeCtx|polyMergeFacet|polyMergeFacetCtx|polyMergeUV|polyMergeVertex|polyMirrorFace|polyMoveEdge|polyMoveFacet|polyMoveFacetUV|polyMoveUV|polyMoveVertex|polyNormal|polyNormalPerVertex|polyNormalizeUV|polyOptUvs|polyOptions|polyOutput|polyPipe|polyPlanarProjection|polyPlane|polyPlatonicSolid|polyPoke|polyPrimitive|polyPrism|polyProjection|polyPyramid|polyQuad|polyQueryBlindData|polyReduce|polySelect|polySelectConstraint|polySelectConstraintMonitor|polySelectCtx|polySelectEditCtx|polySeparate|polySetToFaceNormal|polySewEdge|polyShortestPathCtx|polySmooth|polySoftEdge|polySphere|polySphericalProjection|polySplit|polySplitCtx|polySplitEdge|polySplitRing|polySplitVertex|polyStraightenUVBorder|polySubdivideEdge|polySubdivideFacet|polyToSubdiv|polyTorus|polyTransfer|polyTriangulate|polyUVSet|polyUnite|polyWedgeFace|popen|popupMenu|pose|pow|preloadRefEd|print|progressBar|progressWindow|projFileViewer|projectCurve|projectTangent|projectionContext|projectionManip|promptDialog|propModCtx|propMove|psdChannelOutliner|psdEditTextureFile|psdExport|psdTextureFile|putenv|pwd|python|querySubdiv|quit|rad_to_deg|radial|radioButton|radioButtonGrp|radioCollection|radioMenuItemCollection|rampColorPort|rand|randomizeFollicles|randstate|rangeControl|readTake|rebuildCurve|rebuildSurface|recordAttr|recordDevice|redo|reference|referenceEdit|referenceQuery|refineSubdivSelectionList|refresh|refreshAE|registerPluginResource|rehash|reloadImage|removeJoint|removeMultiInstance|removePanelCategory|rename|renameAttr|renameSelectionList|renameUI|render|renderGlobalsNode|renderInfo|renderLayerButton|renderLayerParent|renderLayerPostProcess|renderLayerUnparent|renderManip|renderPartition|renderQualityNode|renderSettings|renderThumbnailUpdate|renderWindowEditor|renderWindowSelectContext|renderer|reorder|reorderDeformers|requires|reroot|resampleFluid|resetAE|resetPfxToPolyCamera|resetTool|resolutionNode|retarget|reverseCurve|reverseSurface|revolve|rgb_to_hsv|rigidBody|rigidSolver|roll|rollCtx|rootOf|rot|rotate|rotationInterpolation|roundConstantRadius|rowColumnLayout|rowLayout|runTimeCommand|runup|sampleImage|saveAllShelves|saveAttrPreset|saveFluid|saveImage|saveInitialState|saveMenu|savePrefObjects|savePrefs|saveShelf|saveToolSettings|scale|scaleBrushBrightness|scaleComponents|scaleConstraint|scaleKey|scaleKeyCtx|sceneEditor|sceneUIReplacement|scmh|scriptCtx|scriptEditorInfo|scriptJob|scriptNode|scriptTable|scriptToShelf|scriptedPanel|scriptedPanelType|scrollField|scrollLayout|sculpt|searchPathArray|seed|selLoadSettings|select|selectContext|selectCurveCV|selectKey|selectKeyCtx|selectKeyframeRegionCtx|selectMode|selectPref|selectPriority|selectType|selectedNodes|selectionConnection|separator|setAttr|setAttrEnumResource|setAttrMapping|setAttrNiceNameResource|setConstraintRestPosition|setDefaultShadingGroup|setDrivenKeyframe|setDynamic|setEditCtx|setEditor|setFluidAttr|setFocus|setInfinity|setInputDeviceMapping|setKeyCtx|setKeyPath|setKeyframe|setKeyframeBlendshapeTargetWts|setMenuMode|setNodeNiceNameResource|setNodeTypeFlag|setParent|setParticleAttr|setPfxToPolyCamera|setPluginResource|setProject|setStampDensity|setStartupMessage|setState|setToolTo|setUITemplate|setXformManip|sets|shadingConnection|shadingGeometryRelCtx|shadingLightRelCtx|shadingNetworkCompare|shadingNode|shapeCompare|shelfButton|shelfLayout|shelfTabLayout|shellField|shortNameOf|showHelp|showHidden|showManipCtx|showSelectionInTitle|showShadingGroupAttrEditor|showWindow|sign|simplify|sin|singleProfileBirailSurface|size|sizeBytes|skinCluster|skinPercent|smoothCurve|smoothTangentSurface|smoothstep|snap2to2|snapKey|snapMode|snapTogetherCtx|snapshot|soft|softMod|softModCtx|sort|sound|soundControl|source|spaceLocator|sphere|sphrand|spotLight|spotLightPreviewPort|spreadSheetEditor|spring|sqrt|squareSurface|srtContext|stackTrace|startString|startsWith|stitchAndExplodeShell|stitchSurface|stitchSurfacePoints|strcmp|stringArrayCatenate|stringArrayContains|stringArrayCount|stringArrayInsertAtIndex|stringArrayIntersector|stringArrayRemove|stringArrayRemoveAtIndex|stringArrayRemoveDuplicates|stringArrayRemoveExact|stringArrayToString|stringToStringArray|strip|stripPrefixFromName|stroke|subdAutoProjection|subdCleanTopology|subdCollapse|subdDuplicateAndConnect|subdEditUV|subdListComponentConversion|subdMapCut|subdMapSewMove|subdMatchTopology|subdMirror|subdToBlind|subdToPoly|subdTransferUVsToCache|subdiv|subdivCrease|subdivDisplaySmoothness|substitute|substituteAllString|substituteGeometry|substring|surface|surfaceSampler|surfaceShaderList|swatchDisplayPort|switchTable|symbolButton|symbolCheckBox|sysFile|system|tabLayout|tan|tangentConstraint|texLatticeDeformContext|texManipContext|texMoveContext|texMoveUVShellContext|texRotateContext|texScaleContext|texSelectContext|texSelectShortestPathCtx|texSmudgeUVContext|texWinToolCtx|text|textCurves|textField|textFieldButtonGrp|textFieldGrp|textManip|textScrollList|textToShelf|textureDisplacePlane|textureHairColor|texturePlacementContext|textureWindow|threadCount|threePointArcCtx|timeControl|timePort|timerX|toNativePath|toggle|toggleAxis|toggleWindowVisibility|tokenize|tokenizeList|tolerance|tolower|toolButton|toolCollection|toolDropped|toolHasOptions|toolPropertyWindow|torus|toupper|trace|track|trackCtx|transferAttributes|transformCompare|transformLimits|translator|trim|trunc|truncateFluidCache|truncateHairCache|tumble|tumbleCtx|turbulence|twoPointArcCtx|uiRes|uiTemplate|unassignInputDevice|undo|undoInfo|ungroup|uniform|unit|unloadPlugin|untangleUV|untitledFileName|untrim|upAxis|updateAE|userCtx|uvLink|uvSnapshot|validateShelfName|vectorize|view2dToolCtx|viewCamera|viewClipPlane|viewFit|viewHeadOn|viewLookAt|viewManip|viewPlace|viewSet|visor|volumeAxis|vortex|waitCursor|warning|webBrowser|webBrowserPrefs|whatIs|window|windowPref|wire|wireContext|workspace|wrinkle|wrinkleContext|writeTake|xbmLangPathList|xform)\\b/,\n operator: [\n /\\+[+=]?|-[-=]?|&&|\\|\\||[<>]=|[*\\/!=]=?|[%^]/,\n {\n // We don't want to match <<\n pattern: /(^|[^<])<(?!<)/,\n lookbehind: true\n },\n {\n // We don't want to match >>\n pattern: /(^|[^>])>(?!>)/,\n lookbehind: true\n }\n ],\n punctuation: /<<|>>|[.,:;?\\[\\](){}]/\n }\n Prism.languages.mel['code'].inside.rest = Prism.languages.mel\n}\n","'use strict'\n\nmodule.exports = mizar\nmizar.displayName = 'mizar'\nmizar.aliases = []\nfunction mizar(Prism) {\n Prism.languages.mizar = {\n comment: /::.+/,\n keyword: /@proof\\b|\\b(?:according|aggregate|all|and|antonym|are|as|associativity|assume|asymmetry|attr|be|begin|being|by|canceled|case|cases|clusters?|coherence|commutativity|compatibility|connectedness|consider|consistency|constructors|contradiction|correctness|def|deffunc|define|definitions?|defpred|do|does|equals|end|environ|ex|exactly|existence|for|from|func|given|hence|hereby|holds|idempotence|identity|iff?|implies|involutiveness|irreflexivity|is|it|let|means|mode|non|not|notations?|now|of|or|otherwise|over|per|pred|prefix|projectivity|proof|provided|qua|reconsider|redefine|reduce|reducibility|reflexivity|registrations?|requirements|reserve|sch|schemes?|section|selector|set|sethood|st|struct|such|suppose|symmetry|synonym|take|that|the|then|theorems?|thesis|thus|to|transitivity|uniqueness|vocabular(?:y|ies)|when|where|with|wrt)\\b/,\n parameter: {\n pattern: /\\$(?:10|\\d)/,\n alias: 'variable'\n },\n variable: /\\w+(?=:)/,\n number: /(?:\\b|-)\\d+\\b/,\n operator: /\\.\\.\\.|->|&|\\.?=/,\n punctuation: /\\(#|#\\)|[,:;\\[\\](){}]/\n }\n}\n","'use strict'\n\nmodule.exports = mongodb\nmongodb.displayName = 'mongodb'\nmongodb.aliases = []\nfunction mongodb(Prism) {\n ;(function (Prism) {\n var operators = [\n // query and projection\n '$eq',\n '$gt',\n '$gte',\n '$in',\n '$lt',\n '$lte',\n '$ne',\n '$nin',\n '$and',\n '$not',\n '$nor',\n '$or',\n '$exists',\n '$type',\n '$expr',\n '$jsonSchema',\n '$mod',\n '$regex',\n '$text',\n '$where',\n '$geoIntersects',\n '$geoWithin',\n '$near',\n '$nearSphere',\n '$all',\n '$elemMatch',\n '$size',\n '$bitsAllClear',\n '$bitsAllSet',\n '$bitsAnyClear',\n '$bitsAnySet',\n '$comment',\n '$elemMatch',\n '$meta',\n '$slice', // update\n '$currentDate',\n '$inc',\n '$min',\n '$max',\n '$mul',\n '$rename',\n '$set',\n '$setOnInsert',\n '$unset',\n '$addToSet',\n '$pop',\n '$pull',\n '$push',\n '$pullAll',\n '$each',\n '$position',\n '$slice',\n '$sort',\n '$bit', // aggregation pipeline stages\n '$addFields',\n '$bucket',\n '$bucketAuto',\n '$collStats',\n '$count',\n '$currentOp',\n '$facet',\n '$geoNear',\n '$graphLookup',\n '$group',\n '$indexStats',\n '$limit',\n '$listLocalSessions',\n '$listSessions',\n '$lookup',\n '$match',\n '$merge',\n '$out',\n '$planCacheStats',\n '$project',\n '$redact',\n '$replaceRoot',\n '$replaceWith',\n '$sample',\n '$set',\n '$skip',\n '$sort',\n '$sortByCount',\n '$unionWith',\n '$unset',\n '$unwind', // aggregation pipeline operators\n '$abs',\n '$accumulator',\n '$acos',\n '$acosh',\n '$add',\n '$addToSet',\n '$allElementsTrue',\n '$and',\n '$anyElementTrue',\n '$arrayElemAt',\n '$arrayToObject',\n '$asin',\n '$asinh',\n '$atan',\n '$atan2',\n '$atanh',\n '$avg',\n '$binarySize',\n '$bsonSize',\n '$ceil',\n '$cmp',\n '$concat',\n '$concatArrays',\n '$cond',\n '$convert',\n '$cos',\n '$dateFromParts',\n '$dateToParts',\n '$dateFromString',\n '$dateToString',\n '$dayOfMonth',\n '$dayOfWeek',\n '$dayOfYear',\n '$degreesToRadians',\n '$divide',\n '$eq',\n '$exp',\n '$filter',\n '$first',\n '$floor',\n '$function',\n '$gt',\n '$gte',\n '$hour',\n '$ifNull',\n '$in',\n '$indexOfArray',\n '$indexOfBytes',\n '$indexOfCP',\n '$isArray',\n '$isNumber',\n '$isoDayOfWeek',\n '$isoWeek',\n '$isoWeekYear',\n '$last',\n '$last',\n '$let',\n '$literal',\n '$ln',\n '$log',\n '$log10',\n '$lt',\n '$lte',\n '$ltrim',\n '$map',\n '$max',\n '$mergeObjects',\n '$meta',\n '$min',\n '$millisecond',\n '$minute',\n '$mod',\n '$month',\n '$multiply',\n '$ne',\n '$not',\n '$objectToArray',\n '$or',\n '$pow',\n '$push',\n '$radiansToDegrees',\n '$range',\n '$reduce',\n '$regexFind',\n '$regexFindAll',\n '$regexMatch',\n '$replaceOne',\n '$replaceAll',\n '$reverseArray',\n '$round',\n '$rtrim',\n '$second',\n '$setDifference',\n '$setEquals',\n '$setIntersection',\n '$setIsSubset',\n '$setUnion',\n '$size',\n '$sin',\n '$slice',\n '$split',\n '$sqrt',\n '$stdDevPop',\n '$stdDevSamp',\n '$strcasecmp',\n '$strLenBytes',\n '$strLenCP',\n '$substr',\n '$substrBytes',\n '$substrCP',\n '$subtract',\n '$sum',\n '$switch',\n '$tan',\n '$toBool',\n '$toDate',\n '$toDecimal',\n '$toDouble',\n '$toInt',\n '$toLong',\n '$toObjectId',\n '$toString',\n '$toLower',\n '$toUpper',\n '$trim',\n '$trunc',\n '$type',\n '$week',\n '$year',\n '$zip', // aggregation pipeline query modifiers\n '$comment',\n '$explain',\n '$hint',\n '$max',\n '$maxTimeMS',\n '$min',\n '$orderby',\n '$query',\n '$returnKey',\n '$showDiskLoc',\n '$natural'\n ]\n var builtinFunctions = [\n 'ObjectId',\n 'Code',\n 'BinData',\n 'DBRef',\n 'Timestamp',\n 'NumberLong',\n 'NumberDecimal',\n 'MaxKey',\n 'MinKey',\n 'RegExp',\n 'ISODate',\n 'UUID'\n ]\n operators = operators.map(function (operator) {\n return operator.replace('$', '\\\\$')\n })\n var operatorsSource = '(?:' + operators.join('|') + ')\\\\b'\n Prism.languages.mongodb = Prism.languages.extend('javascript', {})\n Prism.languages.insertBefore('mongodb', 'string', {\n property: {\n pattern: /(?:([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1|(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*)(?=\\s*:)/,\n greedy: true,\n inside: {\n keyword: RegExp('^([\\'\"])?' + operatorsSource + '(?:\\\\1)?$')\n }\n }\n })\n Prism.languages.mongodb.string.inside = {\n url: {\n // url pattern\n pattern: /https?:\\/\\/[-\\w@:%.+~#=]{1,256}\\.[a-z0-9()]{1,6}\\b[-\\w()@:%+.~#?&/=]*/i,\n greedy: true\n },\n entity: {\n // ipv4\n pattern: /\\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\b/,\n greedy: true\n }\n }\n Prism.languages.insertBefore('mongodb', 'constant', {\n builtin: {\n pattern: RegExp('\\\\b(?:' + builtinFunctions.join('|') + ')\\\\b'),\n alias: 'keyword'\n }\n })\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = monkey\nmonkey.displayName = 'monkey'\nmonkey.aliases = []\nfunction monkey(Prism) {\n Prism.languages.monkey = {\n string: /\"[^\"\\r\\n]*\"/,\n comment: [\n {\n pattern: /^#Rem\\s[\\s\\S]*?^#End/im,\n greedy: true\n },\n {\n pattern: /'.+/,\n greedy: true\n }\n ],\n preprocessor: {\n pattern: /(^[ \\t]*)#.+/m,\n lookbehind: true,\n alias: 'comment'\n },\n function: /\\w+(?=\\()/,\n 'type-char': {\n pattern: /(\\w)[?%#$]/,\n lookbehind: true,\n alias: 'variable'\n },\n number: {\n pattern: /((?:\\.\\.)?)(?:(?:\\b|\\B-\\.?|\\B\\.)\\d+(?:(?!\\.\\.)\\.\\d*)?|\\$[\\da-f]+)/i,\n lookbehind: true\n },\n keyword: /\\b(?:Void|Strict|Public|Private|Property|Bool|Int|Float|String|Array|Object|Continue|Exit|Import|Extern|New|Self|Super|Try|Catch|Eachin|True|False|Extends|Abstract|Final|Select|Case|Default|Const|Local|Global|Field|Method|Function|Class|End|If|Then|Else|ElseIf|EndIf|While|Wend|Repeat|Until|Forever|For|To|Step|Next|Return|Module|Interface|Implements|Inline|Throw|Null)\\b/i,\n operator: /\\.\\.|<[=>]?|>=?|:?=|(?:[+\\-*\\/&~|]|\\b(?:Mod|Shl|Shr)\\b)=?|\\b(?:And|Not|Or)\\b/i,\n punctuation: /[.,:;()\\[\\]]/\n }\n}\n","'use strict'\n\nmodule.exports = moonscript\nmoonscript.displayName = 'moonscript'\nmoonscript.aliases = ['moon']\nfunction moonscript(Prism) {\n Prism.languages.moonscript = {\n comment: /--.*/,\n string: [\n {\n pattern: /'[^']*'|\\[(=*)\\[[\\s\\S]*?\\]\\1\\]/,\n greedy: true\n },\n {\n pattern: /\"[^\"]*\"/,\n greedy: true,\n inside: {\n interpolation: {\n pattern: /#\\{[^{}]*\\}/,\n inside: {\n moonscript: {\n pattern: /(^#\\{)[\\s\\S]+(?=\\})/,\n lookbehind: true,\n inside: null // see beow\n },\n 'interpolation-punctuation': {\n pattern: /#\\{|\\}/,\n alias: 'punctuation'\n }\n }\n }\n }\n }\n ],\n 'class-name': [\n {\n pattern: /(\\b(?:class|extends)[ \\t]+)\\w+/,\n lookbehind: true\n }, // class-like names start with a capital letter\n /\\b[A-Z]\\w*/\n ],\n keyword: /\\b(?:class|continue|do|else|elseif|export|extends|for|from|if|import|in|local|nil|return|self|super|switch|then|unless|using|when|while|with)\\b/,\n variable: /@@?\\w*/,\n property: {\n pattern: /\\b(?!\\d)\\w+(?=:)|(:)(?!\\d)\\w+/,\n lookbehind: true\n },\n function: {\n pattern: /\\b(?:_G|_VERSION|assert|collectgarbage|coroutine\\.(?:running|create|resume|status|wrap|yield)|debug\\.(?:debug|gethook|getinfo|getlocal|getupvalue|setlocal|setupvalue|sethook|traceback|getfenv|getmetatable|getregistry|setfenv|setmetatable)|dofile|error|getfenv|getmetatable|io\\.(?:stdin|stdout|stderr|close|flush|input|lines|open|output|popen|read|tmpfile|type|write)|ipairs|load|loadfile|loadstring|math\\.(?:abs|acos|asin|atan|atan2|ceil|sin|cos|tan|deg|exp|floor|log|log10|max|min|fmod|modf|cosh|sinh|tanh|pow|rad|sqrt|frexp|ldexp|random|randomseed|pi)|module|next|os\\.(?:clock|date|difftime|execute|exit|getenv|remove|rename|setlocale|time|tmpname)|package\\.(?:cpath|loaded|loadlib|path|preload|seeall)|pairs|pcall|print|rawequal|rawget|rawset|require|select|setfenv|setmetatable|string\\.(?:byte|char|dump|find|len|lower|rep|sub|upper|format|gsub|gmatch|match|reverse)|table\\.(?:maxn|concat|sort|insert|remove)|tonumber|tostring|type|unpack|xpcall)\\b/,\n inside: {\n punctuation: /\\./\n }\n },\n boolean: /\\b(?:false|true)\\b/,\n number: /(?:\\B\\.\\d+|\\b\\d+\\.\\d+|\\b\\d+(?=[eE]))(?:[eE][-+]?\\d+)?\\b|\\b(?:0x[a-fA-F\\d]+|\\d+)(?:U?LL)?\\b/,\n operator: /\\.{3}|[-=]>|~=|(?:[-+*/%<>!=]|\\.\\.)=?|[:#^]|\\b(?:and|or)\\b=?|\\b(?:not)\\b/,\n punctuation: /[.,()[\\]{}\\\\]/\n }\n Prism.languages.moonscript.string[1].inside.interpolation.inside.moonscript.inside =\n Prism.languages.moonscript\n Prism.languages.moon = Prism.languages.moonscript\n}\n","'use strict'\n\nmodule.exports = n1ql\nn1ql.displayName = 'n1ql'\nn1ql.aliases = []\nfunction n1ql(Prism) {\n Prism.languages.n1ql = {\n comment: /\\/\\*[\\s\\S]*?(?:$|\\*\\/)/,\n parameter: /\\$[\\w.]+/,\n string: {\n pattern: /([\"'])(?:\\\\[\\s\\S]|(?!\\1)[^\\\\]|\\1\\1)*\\1/,\n greedy: true\n },\n identifier: {\n pattern: /`(?:\\\\[\\s\\S]|[^\\\\`]|``)*`/,\n greedy: true\n },\n function: /\\b(?:ABS|ACOS|ARRAY_AGG|ARRAY_APPEND|ARRAY_AVG|ARRAY_CONCAT|ARRAY_CONTAINS|ARRAY_COUNT|ARRAY_DISTINCT|ARRAY_FLATTEN|ARRAY_IFNULL|ARRAY_INSERT|ARRAY_INTERSECT|ARRAY_LENGTH|ARRAY_MAX|ARRAY_MIN|ARRAY_POSITION|ARRAY_PREPEND|ARRAY_PUT|ARRAY_RANGE|ARRAY_REMOVE|ARRAY_REPEAT|ARRAY_REPLACE|ARRAY_REVERSE|ARRAY_SORT|ARRAY_STAR|ARRAY_SUM|ARRAY_SYMDIFF|ARRAY_SYMDIFFN|ARRAY_UNION|ASIN|ATAN|ATAN2|AVG|BASE64|BASE64_DECODE|BASE64_ENCODE|BITAND|BITCLEAR|BITNOT|BITOR|BITSET|BITSHIFT|BITTEST|BITXOR|CEIL|CLOCK_LOCAL|CLOCK_MILLIS|CLOCK_STR|CLOCK_TZ|CLOCK_UTC|CONTAINS|CONTAINS_TOKEN|CONTAINS_TOKEN_LIKE|CONTAINS_TOKEN_REGEXP|COS|COUNT|CURL|DATE_ADD_MILLIS|DATE_ADD_STR|DATE_DIFF_MILLIS|DATE_DIFF_STR|DATE_FORMAT_STR|DATE_PART_MILLIS|DATE_PART_STR|DATE_RANGE_MILLIS|DATE_RANGE_STR|DATE_TRUNC_MILLIS|DATE_TRUNC_STR|DECODE_JSON|DEGREES|DURATION_TO_STR|E|ENCODED_SIZE|ENCODE_JSON|EXP|FLOOR|GREATEST|HAS_TOKEN|IFINF|IFMISSING|IFMISSINGORNULL|IFNAN|IFNANORINF|IFNULL|INITCAP|ISARRAY|ISATOM|ISBOOLEAN|ISNUMBER|ISOBJECT|ISSTRING|IsBitSET|LEAST|LENGTH|LN|LOG|LOWER|LTRIM|MAX|META|MILLIS|MILLIS_TO_LOCAL|MILLIS_TO_STR|MILLIS_TO_TZ|MILLIS_TO_UTC|MILLIS_TO_ZONE_NAME|MIN|MISSINGIF|NANIF|NEGINFIF|NOW_LOCAL|NOW_MILLIS|NOW_STR|NOW_TZ|NOW_UTC|NULLIF|OBJECT_ADD|OBJECT_CONCAT|OBJECT_INNER_PAIRS|OBJECT_INNER_VALUES|OBJECT_LENGTH|OBJECT_NAMES|OBJECT_PAIRS|OBJECT_PUT|OBJECT_REMOVE|OBJECT_RENAME|OBJECT_REPLACE|OBJECT_UNWRAP|OBJECT_VALUES|PAIRS|PI|POLY_LENGTH|POSINFIF|POSITION|POWER|RADIANS|RANDOM|REGEXP_CONTAINS|REGEXP_LIKE|REGEXP_POSITION|REGEXP_REPLACE|REPEAT|REPLACE|REVERSE|ROUND|RTRIM|SIGN|SIN|SPLIT|SQRT|STR_TO_DURATION|STR_TO_MILLIS|STR_TO_TZ|STR_TO_UTC|STR_TO_ZONE_NAME|SUBSTR|SUFFIXES|SUM|TAN|TITLE|TOARRAY|TOATOM|TOBOOLEAN|TOKENS|TONUMBER|TOOBJECT|TOSTRING|TRIM|TRUNC|TYPE|UPPER|WEEKDAY_MILLIS|WEEKDAY_STR)(?=\\s*\\()/i,\n keyword: /\\b(?:ALL|ALTER|ANALYZE|AS|ASC|BEGIN|BINARY|BOOLEAN|BREAK|BUCKET|BUILD|BY|CALL|CAST|CLUSTER|COLLATE|COLLECTION|COMMIT|CONNECT|CONTINUE|CORRELATE|COVER|CREATE|DATABASE|DATASET|DATASTORE|DECLARE|DECREMENT|DELETE|DERIVED|DESC|DESCRIBE|DISTINCT|DO|DROP|EACH|ELEMENT|EXCEPT|EXCLUDE|EXECUTE|EXPLAIN|FETCH|FLATTEN|FOR|FORCE|FROM|FUNCTION|GRANT|GROUP|GSI|HAVING|IF|IGNORE|ILIKE|INCLUDE|INCREMENT|INDEX|INFER|INLINE|INNER|INSERT|INTERSECT|INTO|IS|JOIN|KEY|KEYS|KEYSPACE|KNOWN|LAST|LEFT|LET|LETTING|LIMIT|LSM|MAP|MAPPING|MATCHED|MATERIALIZED|MERGE|MINUS|MISSING|NAMESPACE|NEST|NULL|NUMBER|OBJECT|OFFSET|ON|OPTION|ORDER|OUTER|OVER|PARSE|PARTITION|PASSWORD|PATH|POOL|PREPARE|PRIMARY|PRIVATE|PRIVILEGE|PROCEDURE|PUBLIC|RAW|REALM|REDUCE|RENAME|RETURN|RETURNING|REVOKE|RIGHT|ROLE|ROLLBACK|SATISFIES|SCHEMA|SELECT|SELF|SEMI|SET|SHOW|SOME|START|STATISTICS|STRING|SYSTEM|TO|TRANSACTION|TRIGGER|TRUNCATE|UNDER|UNION|UNIQUE|UNKNOWN|UNNEST|UNSET|UPDATE|UPSERT|USE|USER|USING|VALIDATE|VALUE|VALUES|VIA|VIEW|WHERE|WHILE|WITH|WORK|XOR)\\b/i,\n boolean: /\\b(?:TRUE|FALSE)\\b/i,\n number: /(?:\\b\\d+\\.|\\B\\.)\\d+e[+\\-]?\\d+\\b|\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+\\b/i,\n operator: /[-+*\\/%]|!=|==?|\\|\\||<[>=]?|>=?|\\b(?:AND|ANY|ARRAY|BETWEEN|CASE|ELSE|END|EVERY|EXISTS|FIRST|IN|LIKE|NOT|OR|THEN|VALUED|WHEN|WITHIN)\\b/i,\n punctuation: /[;[\\](),.{}:]/\n }\n}\n","'use strict'\n\nmodule.exports = n4js\nn4js.displayName = 'n4js'\nn4js.aliases = []\nfunction n4js(Prism) {\n Prism.languages.n4js = Prism.languages.extend('javascript', {\n // Keywords from N4JS language spec: https://numberfour.github.io/n4js/spec/N4JSSpec.html\n keyword: /\\b(?:any|Array|boolean|break|case|catch|class|const|constructor|continue|debugger|declare|default|delete|do|else|enum|export|extends|false|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|module|new|null|number|package|private|protected|public|return|set|static|string|super|switch|this|throw|true|try|typeof|var|void|while|with|yield)\\b/\n })\n Prism.languages.insertBefore('n4js', 'constant', {\n // Annotations in N4JS spec: https://numberfour.github.io/n4js/spec/N4JSSpec.html#_annotations\n annotation: {\n pattern: /@+\\w+/,\n alias: 'operator'\n }\n })\n Prism.languages.n4jsd = Prism.languages.n4js\n}\n","'use strict'\n\nmodule.exports = nand2tetrisHdl\nnand2tetrisHdl.displayName = 'nand2tetrisHdl'\nnand2tetrisHdl.aliases = []\nfunction nand2tetrisHdl(Prism) {\n Prism.languages['nand2tetris-hdl'] = {\n comment: /\\/\\/.*|\\/\\*[\\s\\S]*?(?:\\*\\/|$)/,\n keyword: /\\b(?:CHIP|IN|OUT|PARTS|BUILTIN|CLOCKED)\\b/,\n boolean: /\\b(?:true|false)\\b/,\n function: /[A-Za-z][A-Za-z0-9]*(?=\\()/,\n number: /\\b\\d+\\b/,\n operator: /=|\\.\\./,\n punctuation: /[{}[\\];(),:]/\n }\n}\n","'use strict'\n\nmodule.exports = naniscript\nnaniscript.displayName = 'naniscript'\nnaniscript.aliases = []\nfunction naniscript(Prism) {\n ;(function (Prism) {\n var expressionDef = /\\{[^\\r\\n\\[\\]{}]*\\}/\n var params = {\n 'quoted-string': {\n pattern: /\"(?:[^\"\\\\]|\\\\.)*\"/,\n alias: 'operator'\n },\n 'command-param-id': {\n pattern: /(\\s)\\w+:/,\n lookbehind: true,\n alias: 'property'\n },\n 'command-param-value': [\n {\n pattern: expressionDef,\n alias: 'selector'\n },\n {\n pattern: /([\\t ])\\S+/,\n lookbehind: true,\n greedy: true,\n alias: 'operator'\n },\n {\n pattern: /\\S(?:.*\\S)?/,\n alias: 'operator'\n }\n ]\n }\n Prism.languages.naniscript = {\n // ; ...\n comment: {\n pattern: /^([\\t ]*);.*/m,\n lookbehind: true\n },\n // > ...\n // Define is a control line starting with '>' followed by a word, a space and a text.\n define: {\n pattern: /^>.+/m,\n alias: 'tag',\n inside: {\n value: {\n pattern: /(^>\\w+[\\t ]+)(?!\\s)[^{}\\r\\n]+/,\n lookbehind: true,\n alias: 'operator'\n },\n key: {\n pattern: /(^>)\\w+/,\n lookbehind: true\n }\n }\n },\n // # ...\n label: {\n pattern: /^([\\t ]*)#[\\t ]*\\w+[\\t ]*$/m,\n lookbehind: true,\n alias: 'regex'\n },\n command: {\n pattern: /^([\\t ]*)@\\w+(?=[\\t ]|$).*/m,\n lookbehind: true,\n alias: 'function',\n inside: {\n 'command-name': /^@\\w+/,\n expression: {\n pattern: expressionDef,\n greedy: true,\n alias: 'selector'\n },\n 'command-params': {\n pattern: /\\s*\\S[\\s\\S]*/,\n inside: params\n }\n }\n },\n // Generic is any line that doesn't start with operators: ;>#@\n 'generic-text': {\n pattern: /(^[ \\t]*)[^#@>;\\s].*/m,\n lookbehind: true,\n alias: 'punctuation',\n inside: {\n // \\{ ... \\} ... \\[ ... \\] ... \\\"\n 'escaped-char': /\\\\[{}\\[\\]\"]/,\n expression: {\n pattern: expressionDef,\n greedy: true,\n alias: 'selector'\n },\n 'inline-command': {\n pattern: /\\[[\\t ]*\\w[^\\r\\n\\[\\]]*\\]/,\n greedy: true,\n alias: 'function',\n inside: {\n 'command-params': {\n pattern: /(^\\[[\\t ]*\\w+\\b)[\\s\\S]+(?=\\]$)/,\n lookbehind: true,\n inside: params\n },\n 'command-param-name': {\n pattern: /^(\\[[\\t ]*)\\w+/,\n lookbehind: true,\n alias: 'name'\n },\n 'start-stop-char': /[\\[\\]]/\n }\n }\n }\n }\n }\n Prism.languages.nani = Prism.languages['naniscript']\n /** @typedef {InstanceType<import(\"./prism-core\")[\"Token\"]>} Token */\n /**\n * This hook is used to validate generic-text tokens for balanced brackets.\n * Mark token as bad-line when contains not balanced brackets: {},[]\n */\n Prism.hooks.add('after-tokenize', function (env) {\n /** @type {(Token | string)[]} */\n var tokens = env.tokens\n tokens.forEach(function (token) {\n if (typeof token !== 'string' && token.type === 'generic-text') {\n var content = getTextContent(token)\n if (!isBracketsBalanced(content)) {\n token.type = 'bad-line'\n token.content = content\n }\n }\n })\n })\n /**\n * @param {string} input\n * @returns {boolean}\n */\n function isBracketsBalanced(input) {\n var brackets = '[]{}'\n var stack = []\n for (var i = 0; i < input.length; i++) {\n var bracket = input[i]\n var bracketsIndex = brackets.indexOf(bracket)\n if (bracketsIndex !== -1) {\n if (bracketsIndex % 2 === 0) {\n stack.push(bracketsIndex + 1)\n } else if (stack.pop() !== bracketsIndex) {\n return false\n }\n }\n }\n return stack.length === 0\n }\n /**\n * @param {string | Token | (string | Token)[]} token\n * @returns {string}\n */\n function getTextContent(token) {\n if (typeof token === 'string') {\n return token\n } else if (Array.isArray(token)) {\n return token.map(getTextContent).join('')\n } else {\n return getTextContent(token.content)\n }\n }\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = nasm\nnasm.displayName = 'nasm'\nnasm.aliases = []\nfunction nasm(Prism) {\n Prism.languages.nasm = {\n comment: /;.*$/m,\n string: /([\"'`])(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n label: {\n pattern: /(^\\s*)[A-Za-z._?$][\\w.?$@~#]*:/m,\n lookbehind: true,\n alias: 'function'\n },\n keyword: [\n /\\[?BITS (?:16|32|64)\\]?/,\n {\n pattern: /(^\\s*)section\\s*[a-zA-Z.]+:?/im,\n lookbehind: true\n },\n /(?:extern|global)[^;\\r\\n]*/i,\n /(?:CPU|FLOAT|DEFAULT).*$/m\n ],\n register: {\n pattern: /\\b(?:st\\d|[xyz]mm\\d\\d?|[cdt]r\\d|r\\d\\d?[bwd]?|[er]?[abcd]x|[abcd][hl]|[er]?(?:bp|sp|si|di)|[cdefgs]s)\\b/i,\n alias: 'variable'\n },\n number: /(?:\\b|(?=\\$))(?:0[hx](?:\\.[\\da-f]+|[\\da-f]+(?:\\.[\\da-f]+)?)(?:p[+-]?\\d+)?|\\d[\\da-f]+[hx]|\\$\\d[\\da-f]*|0[oq][0-7]+|[0-7]+[oq]|0[by][01]+|[01]+[by]|0[dt]\\d+|(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:\\.?e[+-]?\\d+)?[dt]?)\\b/i,\n operator: /[\\[\\]*+\\-\\/%<>=&|$!]/\n }\n}\n","'use strict'\n\nmodule.exports = neon\nneon.displayName = 'neon'\nneon.aliases = []\nfunction neon(Prism) {\n Prism.languages.neon = {\n comment: {\n pattern: /#.*/,\n greedy: true\n },\n datetime: {\n pattern: /(^|[[{(=:,\\s])\\d\\d\\d\\d-\\d\\d?-\\d\\d?(?:(?:[Tt]| +)\\d\\d?:\\d\\d:\\d\\d(?:\\.\\d*)? *(?:Z|[-+]\\d\\d?(?::?\\d\\d)?)?)?(?=$|[\\]}),\\s])/,\n lookbehind: true,\n alias: 'number'\n },\n key: {\n pattern: /(^|[[{(,\\s])[^,:=[\\]{}()'\"\\s]+(?=\\s*:(?:$|[\\]}),\\s])|\\s*=)/,\n lookbehind: true,\n alias: 'atrule'\n },\n number: {\n pattern: /(^|[[{(=:,\\s])[+-]?(?:0x[\\da-fA-F]+|0o[0-7]+|0b[01]+|(?:\\d+(?:\\.\\d*)?|\\.?\\d+)(?:[eE][+-]?\\d+)?)(?=$|[\\]}),:=\\s])/,\n lookbehind: true\n },\n boolean: {\n pattern: /(^|[[{(=:,\\s])(?:true|false|yes|no)(?=$|[\\]}),:=\\s])/i,\n lookbehind: true\n },\n null: {\n pattern: /(^|[[{(=:,\\s])(?:null)(?=$|[\\]}),:=\\s])/i,\n lookbehind: true,\n alias: 'keyword'\n },\n string: {\n pattern: /(^|[[{(=:,\\s])(?:('''|\"\"\")\\r?\\n(?:(?:[^\\r\\n]|\\r?\\n(?![\\t ]*\\2))*\\r?\\n)?[\\t ]*\\2|'[^'\\r\\n]*'|\"(?:\\\\.|[^\\\\\"\\r\\n])*\")/,\n lookbehind: true,\n greedy: true\n },\n literal: {\n pattern: /(^|[[{(=:,\\s])(?:[^#\"\\',:=[\\]{}()\\s`-]|[:-][^\"\\',=[\\]{}()\\s])(?:[^,:=\\]})(\\s]|:(?![\\s,\\]})]|$)|[ \\t]+[^#,:=\\]})(\\s])*/,\n lookbehind: true,\n alias: 'string'\n },\n punctuation: /[,:=[\\]{}()-]/\n }\n}\n","'use strict'\n\nmodule.exports = nginx\nnginx.displayName = 'nginx'\nnginx.aliases = []\nfunction nginx(Prism) {\n Prism.languages.nginx = Prism.languages.extend('clike', {\n comment: {\n pattern: /(^|[^\"{\\\\])#.*/,\n lookbehind: true\n },\n keyword: /\\b(?:CONTENT_|DOCUMENT_|GATEWAY_|HTTP_|HTTPS|if_not_empty|PATH_|QUERY_|REDIRECT_|REMOTE_|REQUEST_|SCGI|SCRIPT_|SERVER_|http|events|accept_mutex|accept_mutex_delay|access_log|add_after_body|add_before_body|add_header|addition_types|aio|alias|allow|ancient_browser|ancient_browser_value|auth|auth_basic|auth_basic_user_file|auth_http|auth_http_header|auth_http_timeout|autoindex|autoindex_exact_size|autoindex_localtime|break|charset|charset_map|charset_types|chunked_transfer_encoding|client_body_buffer_size|client_body_in_file_only|client_body_in_single_buffer|client_body_temp_path|client_body_timeout|client_header_buffer_size|client_header_timeout|client_max_body_size|connection_pool_size|create_full_put_path|daemon|dav_access|dav_methods|debug_connection|debug_points|default_type|deny|devpoll_changes|devpoll_events|directio|directio_alignment|disable_symlinks|empty_gif|env|epoll_events|error_log|error_page|expires|fastcgi_buffer_size|fastcgi_buffers|fastcgi_busy_buffers_size|fastcgi_cache|fastcgi_cache_bypass|fastcgi_cache_key|fastcgi_cache_lock|fastcgi_cache_lock_timeout|fastcgi_cache_methods|fastcgi_cache_min_uses|fastcgi_cache_path|fastcgi_cache_purge|fastcgi_cache_use_stale|fastcgi_cache_valid|fastcgi_connect_timeout|fastcgi_hide_header|fastcgi_ignore_client_abort|fastcgi_ignore_headers|fastcgi_index|fastcgi_intercept_errors|fastcgi_keep_conn|fastcgi_max_temp_file_size|fastcgi_next_upstream|fastcgi_no_cache|fastcgi_param|fastcgi_pass|fastcgi_pass_header|fastcgi_read_timeout|fastcgi_redirect_errors|fastcgi_send_timeout|fastcgi_split_path_info|fastcgi_store|fastcgi_store_access|fastcgi_temp_file_write_size|fastcgi_temp_path|flv|geo|geoip_city|geoip_country|google_perftools_profiles|gzip|gzip_buffers|gzip_comp_level|gzip_disable|gzip_http_version|gzip_min_length|gzip_proxied|gzip_static|gzip_types|gzip_vary|if|if_modified_since|ignore_invalid_headers|image_filter|image_filter_buffer|image_filter_jpeg_quality|image_filter_sharpen|image_filter_transparency|imap_capabilities|imap_client_buffer|include|index|internal|ip_hash|keepalive|keepalive_disable|keepalive_requests|keepalive_timeout|kqueue_changes|kqueue_events|large_client_header_buffers|limit_conn|limit_conn_log_level|limit_conn_zone|limit_except|limit_rate|limit_rate_after|limit_req|limit_req_log_level|limit_req_zone|limit_zone|lingering_close|lingering_time|lingering_timeout|listen|location|lock_file|log_format|log_format_combined|log_not_found|log_subrequest|map|map_hash_bucket_size|map_hash_max_size|master_process|max_ranges|memcached_buffer_size|memcached_connect_timeout|memcached_next_upstream|memcached_pass|memcached_read_timeout|memcached_send_timeout|merge_slashes|min_delete_depth|modern_browser|modern_browser_value|mp4|mp4_buffer_size|mp4_max_buffer_size|msie_padding|msie_refresh|multi_accept|open_file_cache|open_file_cache_errors|open_file_cache_min_uses|open_file_cache_valid|open_log_file_cache|optimize_server_names|override_charset|pcre_jit|perl|perl_modules|perl_require|perl_set|pid|pop3_auth|pop3_capabilities|port_in_redirect|post_action|postpone_output|protocol|proxy|proxy_buffer|proxy_buffer_size|proxy_buffering|proxy_buffers|proxy_busy_buffers_size|proxy_cache|proxy_cache_bypass|proxy_cache_key|proxy_cache_lock|proxy_cache_lock_timeout|proxy_cache_methods|proxy_cache_min_uses|proxy_cache_path|proxy_cache_use_stale|proxy_cache_valid|proxy_connect_timeout|proxy_cookie_domain|proxy_cookie_path|proxy_headers_hash_bucket_size|proxy_headers_hash_max_size|proxy_hide_header|proxy_http_version|proxy_ignore_client_abort|proxy_ignore_headers|proxy_intercept_errors|proxy_max_temp_file_size|proxy_method|proxy_next_upstream|proxy_no_cache|proxy_pass|proxy_pass_error_message|proxy_pass_header|proxy_pass_request_body|proxy_pass_request_headers|proxy_read_timeout|proxy_redirect|proxy_redirect_errors|proxy_send_lowat|proxy_send_timeout|proxy_set_body|proxy_set_header|proxy_ssl_session_reuse|proxy_store|proxy_store_access|proxy_temp_file_write_size|proxy_temp_path|proxy_timeout|proxy_upstream_fail_timeout|proxy_upstream_max_fails|random_index|read_ahead|real_ip_header|recursive_error_pages|request_pool_size|reset_timedout_connection|resolver|resolver_timeout|return|rewrite|root|rtsig_overflow_events|rtsig_overflow_test|rtsig_overflow_threshold|rtsig_signo|satisfy|satisfy_any|secure_link_secret|send_lowat|send_timeout|sendfile|sendfile_max_chunk|server|server_name|server_name_in_redirect|server_names_hash_bucket_size|server_names_hash_max_size|server_tokens|set|set_real_ip_from|smtp_auth|smtp_capabilities|so_keepalive|source_charset|split_clients|ssi|ssi_silent_errors|ssi_types|ssi_value_length|ssl|ssl_certificate|ssl_certificate_key|ssl_ciphers|ssl_client_certificate|ssl_crl|ssl_dhparam|ssl_engine|ssl_prefer_server_ciphers|ssl_protocols|ssl_session_cache|ssl_session_timeout|ssl_verify_client|ssl_verify_depth|starttls|stub_status|sub_filter|sub_filter_once|sub_filter_types|tcp_nodelay|tcp_nopush|timeout|timer_resolution|try_files|types|types_hash_bucket_size|types_hash_max_size|underscores_in_headers|uninitialized_variable_warn|upstream|use|user|userid|userid_domain|userid_expires|userid_name|userid_p3p|userid_path|userid_service|valid_referers|variables_hash_bucket_size|variables_hash_max_size|worker_connections|worker_cpu_affinity|worker_priority|worker_processes|worker_rlimit_core|worker_rlimit_nofile|worker_rlimit_sigpending|working_directory|xclient|xml_entities|xslt_entities|xslt_stylesheet|xslt_types|ssl_session_tickets|ssl_stapling|ssl_stapling_verify|ssl_ecdh_curve|ssl_trusted_certificate|more_set_headers|ssl_early_data)\\b/i\n })\n Prism.languages.insertBefore('nginx', 'keyword', {\n variable: /\\$[a-z_]+/i\n })\n}\n","'use strict'\n\nmodule.exports = nim\nnim.displayName = 'nim'\nnim.aliases = []\nfunction nim(Prism) {\n Prism.languages.nim = {\n comment: /#.*/,\n // Double-quoted strings can be prefixed by an identifier (Generalized raw string literals)\n // Character literals are handled specifically to prevent issues with numeric type suffixes\n string: {\n pattern: /(?:(?:\\b(?!\\d)(?:\\w|\\\\x[8-9a-fA-F][0-9a-fA-F])+)?(?:\"\"\"[\\s\\S]*?\"\"\"(?!\")|\"(?:\\\\[\\s\\S]|\"\"|[^\"\\\\])*\")|'(?:\\\\(?:\\d+|x[\\da-fA-F]{2}|.)|[^'])')/,\n greedy: true\n },\n // The negative look ahead prevents wrong highlighting of the .. operator\n number: /\\b(?:0[xXoObB][\\da-fA-F_]+|\\d[\\d_]*(?:(?!\\.\\.)\\.[\\d_]*)?(?:[eE][+-]?\\d[\\d_]*)?)(?:'?[iuf]\\d*)?/,\n keyword: /\\b(?:addr|as|asm|atomic|bind|block|break|case|cast|concept|const|continue|converter|defer|discard|distinct|do|elif|else|end|enum|except|export|finally|for|from|func|generic|if|import|include|interface|iterator|let|macro|method|mixin|nil|object|out|proc|ptr|raise|ref|return|static|template|try|tuple|type|using|var|when|while|with|without|yield)\\b/,\n function: {\n pattern: /(?:(?!\\d)(?:\\w|\\\\x[8-9a-fA-F][0-9a-fA-F])+|`[^`\\r\\n]+`)\\*?(?:\\[[^\\]]+\\])?(?=\\s*\\()/,\n inside: {\n operator: /\\*$/\n }\n },\n // We don't want to highlight operators inside backticks\n ignore: {\n pattern: /`[^`\\r\\n]+`/,\n inside: {\n punctuation: /`/\n }\n },\n operator: {\n // Look behind and look ahead prevent wrong highlighting of punctuations [. .] {. .} (. .)\n // but allow the slice operator .. to take precedence over them\n // One can define his own operators in Nim so all combination of operators might be an operator.\n pattern: /(^|[({\\[](?=\\.\\.)|(?![({\\[]\\.).)(?:(?:[=+\\-*\\/<>@$~&%|!?^:\\\\]|\\.\\.|\\.(?![)}\\]]))+|\\b(?:and|div|of|or|in|is|isnot|mod|not|notin|shl|shr|xor)\\b)/m,\n lookbehind: true\n },\n punctuation: /[({\\[]\\.|\\.[)}\\]]|[`(){}\\[\\],:]/\n }\n}\n","'use strict'\n\nmodule.exports = nix\nnix.displayName = 'nix'\nnix.aliases = []\nfunction nix(Prism) {\n Prism.languages.nix = {\n comment: /\\/\\*[\\s\\S]*?\\*\\/|#.*/,\n string: {\n pattern: /\"(?:[^\"\\\\]|\\\\[\\s\\S])*\"|''(?:(?!'')[\\s\\S]|''(?:'|\\\\|\\$\\{))*''/,\n greedy: true,\n inside: {\n interpolation: {\n // The lookbehind ensures the ${} is not preceded by \\ or ''\n pattern: /(^|(?:^|(?!'').)[^\\\\])\\$\\{(?:[^{}]|\\{[^}]*\\})*\\}/,\n lookbehind: true,\n inside: {\n antiquotation: {\n pattern: /^\\$(?=\\{)/,\n alias: 'variable'\n } // See rest below\n }\n }\n }\n },\n url: [\n /\\b(?:[a-z]{3,7}:\\/\\/)[\\w\\-+%~\\/.:#=?&]+/,\n {\n pattern: /([^\\/])(?:[\\w\\-+%~.:#=?&]*(?!\\/\\/)[\\w\\-+%~\\/.:#=?&])?(?!\\/\\/)\\/[\\w\\-+%~\\/.:#=?&]*/,\n lookbehind: true\n }\n ],\n antiquotation: {\n pattern: /\\$(?=\\{)/,\n alias: 'variable'\n },\n number: /\\b\\d+\\b/,\n keyword: /\\b(?:assert|builtins|else|if|in|inherit|let|null|or|then|with)\\b/,\n function: /\\b(?:abort|add|all|any|attrNames|attrValues|baseNameOf|compareVersions|concatLists|currentSystem|deepSeq|derivation|dirOf|div|elem(?:At)?|fetch(?:url|Tarball)|filter(?:Source)?|fromJSON|genList|getAttr|getEnv|hasAttr|hashString|head|import|intersectAttrs|is(?:Attrs|Bool|Function|Int|List|Null|String)|length|lessThan|listToAttrs|map|mul|parseDrvName|pathExists|read(?:Dir|File)|removeAttrs|replaceStrings|seq|sort|stringLength|sub(?:string)?|tail|throw|to(?:File|JSON|Path|String|XML)|trace|typeOf)\\b|\\bfoldl'\\B/,\n boolean: /\\b(?:true|false)\\b/,\n operator: /[=!<>]=?|\\+\\+?|\\|\\||&&|\\/\\/|->?|[?@]/,\n punctuation: /[{}()[\\].,:;]/\n }\n Prism.languages.nix.string.inside.interpolation.inside.rest =\n Prism.languages.nix\n}\n","'use strict'\n\nmodule.exports = nsis\nnsis.displayName = 'nsis'\nnsis.aliases = []\nfunction nsis(Prism) {\n /**\n * Original by Jan T. Sott (http://github.com/idleberg)\n *\n * Includes all commands and plug-ins shipped with NSIS 3.02\n */\n Prism.languages.nsis = {\n comment: {\n pattern: /(^|[^\\\\])(?:\\/\\*[\\s\\S]*?\\*\\/|[#;].*)/,\n lookbehind: true\n },\n string: {\n pattern: /(\"|')(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n greedy: true\n },\n keyword: {\n pattern: /(^\\s*)(?:Abort|Add(?:BrandingImage|Size)|AdvSplash|Allow(?:RootDirInstall|SkipFiles)|AutoCloseWindow|Banner|BG(?:Font|Gradient|Image)|BrandingText|BringToFront|Call(?:InstDLL)?|Caption|ChangeUI|CheckBitmap|ClearErrors|CompletedText|ComponentText|CopyFiles|CRCCheck|Create(?:Directory|Font|ShortCut)|Delete(?:INISec|INIStr|RegKey|RegValue)?|Detail(?:Print|sButtonText)|Dialer|Dir(?:Text|Var|Verify)|EnableWindow|Enum(?:RegKey|RegValue)|Exch|Exec(?:Shell(?:Wait)?|Wait)?|ExpandEnvStrings|File(?:BufSize|Close|ErrorText|Open|Read|ReadByte|ReadUTF16LE|ReadWord|WriteUTF16LE|Seek|Write|WriteByte|WriteWord)?|Find(?:Close|First|Next|Window)|FlushINI|Get(?:CurInstType|CurrentAddress|DlgItem|DLLVersion(?:Local)?|ErrorLevel|FileTime(?:Local)?|FullPathName|Function(?:Address|End)?|InstDirError|LabelAddress|TempFileName)|Goto|HideWindow|Icon|If(?:Abort|Errors|FileExists|RebootFlag|Silent)|InitPluginsDir|Install(?:ButtonText|Colors|Dir(?:RegKey)?)|InstProgressFlags|Inst(?:Type(?:GetText|SetText)?)|Int(?:64|Ptr)?CmpU?|Int(?:64)?Fmt|Int(?:Ptr)?Op|IsWindow|Lang(?:DLL|String)|License(?:BkColor|Data|ForceSelection|LangString|Text)|LoadLanguageFile|LockWindow|Log(?:Set|Text)|Manifest(?:DPIAware|SupportedOS)|Math|MessageBox|MiscButtonText|Name|Nop|ns(?:Dialogs|Exec)|NSISdl|OutFile|Page(?:Callbacks)?|PE(?:DllCharacteristics|SubsysVer)|Pop|Push|Quit|Read(?:EnvStr|INIStr|RegDWORD|RegStr)|Reboot|RegDLL|Rename|RequestExecutionLevel|ReserveFile|Return|RMDir|SearchPath|Section(?:End|GetFlags|GetInstTypes|GetSize|GetText|Group|In|SetFlags|SetInstTypes|SetSize|SetText)?|SendMessage|Set(?:AutoClose|BrandingImage|Compress|Compressor(?:DictSize)?|CtlColors|CurInstType|DatablockOptimize|DateSave|Details(?:Print|View)|ErrorLevel|Errors|FileAttributes|Font|OutPath|Overwrite|PluginUnload|RebootFlag|RegView|ShellVarContext|Silent)|Show(?:InstDetails|UninstDetails|Window)|Silent(?:Install|UnInstall)|Sleep|SpaceTexts|Splash|StartMenu|Str(?:CmpS?|Cpy|Len)|SubCaption|System|Unicode|Uninstall(?:ButtonText|Caption|Icon|SubCaption|Text)|UninstPage|UnRegDLL|UserInfo|Var|VI(?:AddVersionKey|FileVersion|ProductVersion)|VPatch|WindowIcon|Write(?:INIStr|Reg(?:Bin|DWORD|ExpandStr|MultiStr|None|Str)|Uninstaller)|XPStyle)\\b/m,\n lookbehind: true\n },\n property: /\\b(?:admin|all|auto|both|colored|false|force|hide|highest|lastused|leave|listonly|none|normal|notset|off|on|open|print|show|silent|silentlog|smooth|textonly|true|user|ARCHIVE|FILE_(?:ATTRIBUTE_ARCHIVE|ATTRIBUTE_NORMAL|ATTRIBUTE_OFFLINE|ATTRIBUTE_READONLY|ATTRIBUTE_SYSTEM|ATTRIBUTE_TEMPORARY)|HK(?:(?:CR|CU|LM)(?:32|64)?|DD|PD|U)|HKEY_(?:CLASSES_ROOT|CURRENT_CONFIG|CURRENT_USER|DYN_DATA|LOCAL_MACHINE|PERFORMANCE_DATA|USERS)|ID(?:ABORT|CANCEL|IGNORE|NO|OK|RETRY|YES)|MB_(?:ABORTRETRYIGNORE|DEFBUTTON1|DEFBUTTON2|DEFBUTTON3|DEFBUTTON4|ICONEXCLAMATION|ICONINFORMATION|ICONQUESTION|ICONSTOP|OK|OKCANCEL|RETRYCANCEL|RIGHT|RTLREADING|SETFOREGROUND|TOPMOST|USERICON|YESNO)|NORMAL|OFFLINE|READONLY|SHCTX|SHELL_CONTEXT|SYSTEM|TEMPORARY)\\b/,\n constant: /\\${[\\w\\.:\\^-]+}|\\$\\([\\w\\.:\\^-]+\\)/i,\n variable: /\\$\\w+/i,\n number: /\\b0x[\\dA-Fa-f]+\\b|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:[Ee]-?\\d+)?/,\n operator: /--?|\\+\\+?|<=?|>=?|==?=?|&&?|\\|\\|?|[?*\\/~^%]/,\n punctuation: /[{}[\\];(),.:]/,\n important: {\n pattern: /(^\\s*)!(?:addincludedir|addplugindir|appendfile|cd|define|delfile|echo|else|endif|error|execute|finalize|getdllversion|gettlbversion|ifdef|ifmacrodef|ifmacrondef|ifndef|if|include|insertmacro|macroend|macro|makensis|packhdr|pragma|searchparse|searchreplace|system|tempfile|undef|verbose|warning)\\b/im,\n lookbehind: true\n }\n }\n}\n","'use strict'\nvar refractorC = require('./c.js')\nmodule.exports = objectivec\nobjectivec.displayName = 'objectivec'\nobjectivec.aliases = ['objc']\nfunction objectivec(Prism) {\n Prism.register(refractorC)\n Prism.languages.objectivec = Prism.languages.extend('c', {\n string: /(\"|')(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1|@\"(?:\\\\(?:\\r\\n|[\\s\\S])|[^\"\\\\\\r\\n])*\"/,\n keyword: /\\b(?:asm|typeof|inline|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|union|unsigned|void|volatile|while|in|self|super)\\b|(?:@interface|@end|@implementation|@protocol|@class|@public|@protected|@private|@property|@try|@catch|@finally|@throw|@synthesize|@dynamic|@selector)\\b/,\n operator: /-[->]?|\\+\\+?|!=?|<<?=?|>>?=?|==?|&&?|\\|\\|?|[~^%?*\\/@]/\n })\n delete Prism.languages.objectivec['class-name']\n Prism.languages.objc = Prism.languages.objectivec\n}\n","'use strict'\n\nmodule.exports = ocaml\nocaml.displayName = 'ocaml'\nocaml.aliases = []\nfunction ocaml(Prism) {\n Prism.languages.ocaml = {\n comment: /\\(\\*[\\s\\S]*?\\*\\)/,\n string: [\n {\n pattern: /\"(?:\\\\.|[^\\\\\\r\\n\"])*\"/,\n greedy: true\n },\n {\n pattern: /(['`])(?:\\\\(?:\\d+|x[\\da-f]+|.)|(?!\\1)[^\\\\\\r\\n])\\1/i,\n greedy: true\n }\n ],\n number: /\\b(?:0x[\\da-f][\\da-f_]+|(?:0[bo])?\\d[\\d_]*(?:\\.[\\d_]*)?(?:e[+-]?[\\d_]+)?)/i,\n directive: {\n pattern: /\\B#\\w+/,\n alias: 'important'\n },\n label: {\n pattern: /\\B~\\w+/,\n alias: 'function'\n },\n 'type-variable': {\n pattern: /\\B'\\w+/,\n alias: 'function'\n },\n variant: {\n pattern: /`\\w+/,\n alias: 'variable'\n },\n module: {\n pattern: /\\b[A-Z]\\w+/,\n alias: 'variable'\n },\n // For the list of keywords and operators,\n // see: http://caml.inria.fr/pub/docs/manual-ocaml/lex.html#sec84\n keyword: /\\b(?:as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|match|method|module|mutable|new|nonrec|object|of|open|private|rec|sig|struct|then|to|try|type|val|value|virtual|when|where|while|with)\\b/,\n boolean: /\\b(?:false|true)\\b/,\n // Custom operators are allowed\n operator: /:=|[=<>@^|&+\\-*\\/$%!?~][!$%&*+\\-.\\/:<=>?@^|~]*|\\b(?:and|asr|land|lor|lsl|lsr|lxor|mod|or)\\b/,\n punctuation: /[(){}\\[\\]|.,:;]|\\b_\\b/\n }\n}\n","'use strict'\nvar refractorC = require('./c.js')\nmodule.exports = opencl\nopencl.displayName = 'opencl'\nopencl.aliases = []\nfunction opencl(Prism) {\n Prism.register(refractorC)\n ;(function (Prism) {\n /* OpenCL kernel language */\n Prism.languages.opencl = Prism.languages.extend('c', {\n // Extracted from the official specs (2.0) and http://streamcomputing.eu/downloads/?opencl.lang (opencl-keywords, opencl-types) and http://sourceforge.net/tracker/?func=detail&aid=2957794&group_id=95717&atid=612384 (Words2, partly Words3)\n keyword: /\\b(?:__attribute__|(?:__)?(?:constant|global|kernel|local|private|read_only|read_write|write_only)|auto|break|case|complex|const|continue|default|do|(?:float|double)(?:16(?:x(?:1|16|2|4|8))?|1x(?:1|16|2|4|8)|2(?:x(?:1|16|2|4|8))?|3|4(?:x(?:1|16|2|4|8))?|8(?:x(?:1|16|2|4|8))?)?|else|enum|extern|for|goto|(?:u?(?:char|short|int|long)|half|quad|bool)(?:2|3|4|8|16)?|if|imaginary|inline|packed|pipe|register|restrict|return|signed|sizeof|static|struct|switch|typedef|uniform|union|unsigned|void|volatile|while)\\b/,\n // Extracted from http://streamcomputing.eu/downloads/?opencl.lang (opencl-const)\n // Math Constants: https://www.khronos.org/registry/OpenCL/sdk/2.1/docs/man/xhtml/mathConstants.html\n // Macros and Limits: https://www.khronos.org/registry/OpenCL/sdk/2.1/docs/man/xhtml/macroLimits.html\n number: /(?:\\b0x(?:[\\da-f]+(?:\\.[\\da-f]*)?|\\.[\\da-f]+)(?:p[+-]?\\d+)?|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e[+-]?\\d+)?)[fuhl]{0,4}/i,\n boolean: /\\b(?:false|true)\\b/,\n 'constant-opencl-kernel': {\n pattern: /\\b(?:CHAR_(?:BIT|MAX|MIN)|CLK_(?:ADDRESS_(?:CLAMP(?:_TO_EDGE)?|NONE|REPEAT)|FILTER_(?:LINEAR|NEAREST)|(?:LOCAL|GLOBAL)_MEM_FENCE|NORMALIZED_COORDS_(?:FALSE|TRUE))|CL_(?:BGRA|(?:HALF_)?FLOAT|INTENSITY|LUMINANCE|A?R?G?B?[Ax]?|(?:(?:UN)?SIGNED|[US]NORM)_(?:INT(?:8|16|32))|UNORM_(?:INT_101010|SHORT_(?:555|565)))|(?:DBL|FLT|HALF)_(?:DIG|EPSILON|MANT_DIG|(?:MIN|MAX)(?:(?:_10)?_EXP)?)|FLT_RADIX|HUGE_VALF?|INFINITY|(?:INT|LONG|SCHAR|SHRT)_(?:MAX|MIN)|(?:UCHAR|USHRT|UINT|ULONG)_MAX|MAXFLOAT|M_(?:[12]_PI|2_SQRTPI|E|LN(?:2|10)|LOG(?:10|2)E?|PI(?:_[24])?|SQRT(?:1_2|2))(?:_F|_H)?|NAN)\\b/,\n alias: 'constant'\n }\n })\n Prism.languages.insertBefore('opencl', 'class-name', {\n // https://www.khronos.org/registry/OpenCL/sdk/2.1/docs/man/xhtml/scalarDataTypes.html\n // https://www.khronos.org/registry/OpenCL/sdk/2.1/docs/man/xhtml/otherDataTypes.html\n 'builtin-type': {\n pattern: /\\b(?:_cl_(?:command_queue|context|device_id|event|kernel|mem|platform_id|program|sampler)|cl_(?:image_format|mem_fence_flags)|clk_event_t|event_t|image(?:1d_(?:array_|buffer_)?t|2d_(?:array_(?:depth_|msaa_depth_|msaa_)?|depth_|msaa_depth_|msaa_)?t|3d_t)|intptr_t|ndrange_t|ptrdiff_t|queue_t|reserve_id_t|sampler_t|size_t|uintptr_t)\\b/,\n alias: 'keyword'\n }\n })\n var attributes = {\n // Extracted from http://streamcomputing.eu/downloads/?opencl_host.lang (opencl-types and opencl-host)\n 'type-opencl-host': {\n pattern: /\\b(?:cl_(?:GLenum|GLint|GLuin|addressing_mode|bitfield|bool|buffer_create_type|build_status|channel_(?:order|type)|(?:u?(?:char|short|int|long)|float|double)(?:2|3|4|8|16)?|command_(?:queue(?:_info|_properties)?|type)|context(?:_info|_properties)?|device_(?:exec_capabilities|fp_config|id|info|local_mem_type|mem_cache_type|type)|(?:event|sampler)(?:_info)?|filter_mode|half|image_info|kernel(?:_info|_work_group_info)?|map_flags|mem(?:_flags|_info|_object_type)?|platform_(?:id|info)|profiling_info|program(?:_build_info|_info)?))\\b/,\n alias: 'keyword'\n },\n 'boolean-opencl-host': {\n pattern: /\\bCL_(?:TRUE|FALSE)\\b/,\n alias: 'boolean'\n },\n // Extracted from cl.h (2.0) and http://streamcomputing.eu/downloads/?opencl_host.lang (opencl-const)\n 'constant-opencl-host': {\n pattern: /\\bCL_(?:A|ABGR|ADDRESS_(?:CLAMP(?:_TO_EDGE)?|MIRRORED_REPEAT|NONE|REPEAT)|ARGB|BGRA|BLOCKING|BUFFER_CREATE_TYPE_REGION|BUILD_(?:ERROR|IN_PROGRESS|NONE|PROGRAM_FAILURE|SUCCESS)|COMMAND_(?:ACQUIRE_GL_OBJECTS|BARRIER|COPY_(?:BUFFER(?:_RECT|_TO_IMAGE)?|IMAGE(?:_TO_BUFFER)?)|FILL_(?:BUFFER|IMAGE)|MAP(?:_BUFFER|_IMAGE)|MARKER|MIGRATE(?:_SVM)?_MEM_OBJECTS|NATIVE_KERNEL|NDRANGE_KERNEL|READ_(?:BUFFER(?:_RECT)?|IMAGE)|RELEASE_GL_OBJECTS|SVM_(?:FREE|MAP|MEMCPY|MEMFILL|UNMAP)|TASK|UNMAP_MEM_OBJECT|USER|WRITE_(?:BUFFER(?:_RECT)?|IMAGE))|COMPILER_NOT_AVAILABLE|COMPILE_PROGRAM_FAILURE|COMPLETE|CONTEXT_(?:DEVICES|INTEROP_USER_SYNC|NUM_DEVICES|PLATFORM|PROPERTIES|REFERENCE_COUNT)|DEPTH(?:_STENCIL)?|DEVICE_(?:ADDRESS_BITS|AFFINITY_DOMAIN_(?:L[1-4]_CACHE|NEXT_PARTITIONABLE|NUMA)|AVAILABLE|BUILT_IN_KERNELS|COMPILER_AVAILABLE|DOUBLE_FP_CONFIG|ENDIAN_LITTLE|ERROR_CORRECTION_SUPPORT|EXECUTION_CAPABILITIES|EXTENSIONS|GLOBAL_(?:MEM_(?:CACHELINE_SIZE|CACHE_SIZE|CACHE_TYPE|SIZE)|VARIABLE_PREFERRED_TOTAL_SIZE)|HOST_UNIFIED_MEMORY|IL_VERSION|IMAGE(?:2D_MAX_(?:HEIGHT|WIDTH)|3D_MAX_(?:DEPTH|HEIGHT|WIDTH)|_BASE_ADDRESS_ALIGNMENT|_MAX_ARRAY_SIZE|_MAX_BUFFER_SIZE|_PITCH_ALIGNMENT|_SUPPORT)|LINKER_AVAILABLE|LOCAL_MEM_SIZE|LOCAL_MEM_TYPE|MAX_(?:CLOCK_FREQUENCY|COMPUTE_UNITS|CONSTANT_ARGS|CONSTANT_BUFFER_SIZE|GLOBAL_VARIABLE_SIZE|MEM_ALLOC_SIZE|NUM_SUB_GROUPS|ON_DEVICE_(?:EVENTS|QUEUES)|PARAMETER_SIZE|PIPE_ARGS|READ_IMAGE_ARGS|READ_WRITE_IMAGE_ARGS|SAMPLERS|WORK_GROUP_SIZE|WORK_ITEM_DIMENSIONS|WORK_ITEM_SIZES|WRITE_IMAGE_ARGS)|MEM_BASE_ADDR_ALIGN|MIN_DATA_TYPE_ALIGN_SIZE|NAME|NATIVE_VECTOR_WIDTH_(?:CHAR|DOUBLE|FLOAT|HALF|INT|LONG|SHORT)|NOT_(?:AVAILABLE|FOUND)|OPENCL_C_VERSION|PARENT_DEVICE|PARTITION_(?:AFFINITY_DOMAIN|BY_AFFINITY_DOMAIN|BY_COUNTS|BY_COUNTS_LIST_END|EQUALLY|FAILED|MAX_SUB_DEVICES|PROPERTIES|TYPE)|PIPE_MAX_(?:ACTIVE_RESERVATIONS|PACKET_SIZE)|PLATFORM|PREFERRED_(?:GLOBAL_ATOMIC_ALIGNMENT|INTEROP_USER_SYNC|LOCAL_ATOMIC_ALIGNMENT|PLATFORM_ATOMIC_ALIGNMENT|VECTOR_WIDTH_(?:CHAR|DOUBLE|FLOAT|HALF|INT|LONG|SHORT))|PRINTF_BUFFER_SIZE|PROFILE|PROFILING_TIMER_RESOLUTION|QUEUE_(?:ON_(?:DEVICE_(?:MAX_SIZE|PREFERRED_SIZE|PROPERTIES)|HOST_PROPERTIES)|PROPERTIES)|REFERENCE_COUNT|SINGLE_FP_CONFIG|SUB_GROUP_INDEPENDENT_FORWARD_PROGRESS|SVM_(?:ATOMICS|CAPABILITIES|COARSE_GRAIN_BUFFER|FINE_GRAIN_BUFFER|FINE_GRAIN_SYSTEM)|TYPE(?:_ACCELERATOR|_ALL|_CPU|_CUSTOM|_DEFAULT|_GPU)?|VENDOR(?:_ID)?|VERSION)|DRIVER_VERSION|EVENT_(?:COMMAND_(?:EXECUTION_STATUS|QUEUE|TYPE)|CONTEXT|REFERENCE_COUNT)|EXEC_(?:KERNEL|NATIVE_KERNEL|STATUS_ERROR_FOR_EVENTS_IN_WAIT_LIST)|FILTER_(?:LINEAR|NEAREST)|FLOAT|FP_(?:CORRECTLY_ROUNDED_DIVIDE_SQRT|DENORM|FMA|INF_NAN|ROUND_TO_INF|ROUND_TO_NEAREST|ROUND_TO_ZERO|SOFT_FLOAT)|GLOBAL|HALF_FLOAT|IMAGE_(?:ARRAY_SIZE|BUFFER|DEPTH|ELEMENT_SIZE|FORMAT|FORMAT_MISMATCH|FORMAT_NOT_SUPPORTED|HEIGHT|NUM_MIP_LEVELS|NUM_SAMPLES|ROW_PITCH|SLICE_PITCH|WIDTH)|INTENSITY|INVALID_(?:ARG_INDEX|ARG_SIZE|ARG_VALUE|BINARY|BUFFER_SIZE|BUILD_OPTIONS|COMMAND_QUEUE|COMPILER_OPTIONS|CONTEXT|DEVICE|DEVICE_PARTITION_COUNT|DEVICE_QUEUE|DEVICE_TYPE|EVENT|EVENT_WAIT_LIST|GLOBAL_OFFSET|GLOBAL_WORK_SIZE|GL_OBJECT|HOST_PTR|IMAGE_DESCRIPTOR|IMAGE_FORMAT_DESCRIPTOR|IMAGE_SIZE|KERNEL|KERNEL_ARGS|KERNEL_DEFINITION|KERNEL_NAME|LINKER_OPTIONS|MEM_OBJECT|MIP_LEVEL|OPERATION|PIPE_SIZE|PLATFORM|PROGRAM|PROGRAM_EXECUTABLE|PROPERTY|QUEUE_PROPERTIES|SAMPLER|VALUE|WORK_DIMENSION|WORK_GROUP_SIZE|WORK_ITEM_SIZE)|KERNEL_(?:ARG_(?:ACCESS_(?:NONE|QUALIFIER|READ_ONLY|READ_WRITE|WRITE_ONLY)|ADDRESS_(?:CONSTANT|GLOBAL|LOCAL|PRIVATE|QUALIFIER)|INFO_NOT_AVAILABLE|NAME|TYPE_(?:CONST|NAME|NONE|PIPE|QUALIFIER|RESTRICT|VOLATILE))|ATTRIBUTES|COMPILE_NUM_SUB_GROUPS|COMPILE_WORK_GROUP_SIZE|CONTEXT|EXEC_INFO_SVM_FINE_GRAIN_SYSTEM|EXEC_INFO_SVM_PTRS|FUNCTION_NAME|GLOBAL_WORK_SIZE|LOCAL_MEM_SIZE|LOCAL_SIZE_FOR_SUB_GROUP_COUNT|MAX_NUM_SUB_GROUPS|MAX_SUB_GROUP_SIZE_FOR_NDRANGE|NUM_ARGS|PREFERRED_WORK_GROUP_SIZE_MULTIPLE|PRIVATE_MEM_SIZE|PROGRAM|REFERENCE_COUNT|SUB_GROUP_COUNT_FOR_NDRANGE|WORK_GROUP_SIZE)|LINKER_NOT_AVAILABLE|LINK_PROGRAM_FAILURE|LOCAL|LUMINANCE|MAP_(?:FAILURE|READ|WRITE|WRITE_INVALIDATE_REGION)|MEM_(?:ALLOC_HOST_PTR|ASSOCIATED_MEMOBJECT|CONTEXT|COPY_HOST_PTR|COPY_OVERLAP|FLAGS|HOST_NO_ACCESS|HOST_PTR|HOST_READ_ONLY|HOST_WRITE_ONLY|KERNEL_READ_AND_WRITE|MAP_COUNT|OBJECT_(?:ALLOCATION_FAILURE|BUFFER|IMAGE1D|IMAGE1D_ARRAY|IMAGE1D_BUFFER|IMAGE2D|IMAGE2D_ARRAY|IMAGE3D|PIPE)|OFFSET|READ_ONLY|READ_WRITE|REFERENCE_COUNT|SIZE|SVM_ATOMICS|SVM_FINE_GRAIN_BUFFER|TYPE|USES_SVM_POINTER|USE_HOST_PTR|WRITE_ONLY)|MIGRATE_MEM_OBJECT_(?:CONTENT_UNDEFINED|HOST)|MISALIGNED_SUB_BUFFER_OFFSET|NONE|NON_BLOCKING|OUT_OF_(?:HOST_MEMORY|RESOURCES)|PIPE_(?:MAX_PACKETS|PACKET_SIZE)|PLATFORM_(?:EXTENSIONS|HOST_TIMER_RESOLUTION|NAME|PROFILE|VENDOR|VERSION)|PROFILING_(?:COMMAND_(?:COMPLETE|END|QUEUED|START|SUBMIT)|INFO_NOT_AVAILABLE)|PROGRAM_(?:BINARIES|BINARY_SIZES|BINARY_TYPE(?:_COMPILED_OBJECT|_EXECUTABLE|_LIBRARY|_NONE)?|BUILD_(?:GLOBAL_VARIABLE_TOTAL_SIZE|LOG|OPTIONS|STATUS)|CONTEXT|DEVICES|IL|KERNEL_NAMES|NUM_DEVICES|NUM_KERNELS|REFERENCE_COUNT|SOURCE)|QUEUED|QUEUE_(?:CONTEXT|DEVICE|DEVICE_DEFAULT|ON_DEVICE|ON_DEVICE_DEFAULT|OUT_OF_ORDER_EXEC_MODE_ENABLE|PROFILING_ENABLE|PROPERTIES|REFERENCE_COUNT|SIZE)|R|RA|READ_(?:ONLY|WRITE)_CACHE|RG|RGB|RGBA|RGBx|RGx|RUNNING|Rx|SAMPLER_(?:ADDRESSING_MODE|CONTEXT|FILTER_MODE|LOD_MAX|LOD_MIN|MIP_FILTER_MODE|NORMALIZED_COORDS|REFERENCE_COUNT)|(?:UN)?SIGNED_INT(?:8|16|32)|SNORM_INT(?:8|16)|SUBMITTED|SUCCESS|UNORM_INT(?:16|24|8|_101010|_101010_2)|UNORM_SHORT_(?:555|565)|VERSION_(?:1_0|1_1|1_2|2_0|2_1)|sBGRA|sRGB|sRGBA|sRGBx)\\b/,\n alias: 'constant'\n },\n // Extracted from cl.h (2.0) and http://streamcomputing.eu/downloads/?opencl_host.lang (opencl-host)\n 'function-opencl-host': {\n pattern: /\\bcl(?:BuildProgram|CloneKernel|CompileProgram|Create(?:Buffer|CommandQueue(?:WithProperties)?|Context|ContextFromType|Image|Image2D|Image3D|Kernel|KernelsInProgram|Pipe|ProgramWith(?:Binary|BuiltInKernels|IL|Source)|Sampler|SamplerWithProperties|SubBuffer|SubDevices|UserEvent)|Enqueue(?:(?:Barrier|Marker)(?:WithWaitList)?|Copy(?:Buffer(?:Rect|ToImage)?|Image(?:ToBuffer)?)|(?:Fill|Map)(?:Buffer|Image)|MigrateMemObjects|NDRangeKernel|NativeKernel|(?:Read|Write)(?:Buffer(?:Rect)?|Image)|SVM(?:Free|Map|MemFill|Memcpy|MigrateMem|Unmap)|Task|UnmapMemObject|WaitForEvents)|Finish|Flush|Get(?:CommandQueueInfo|ContextInfo|Device(?:AndHostTimer|IDs|Info)|Event(?:Profiling)?Info|ExtensionFunctionAddress(?:ForPlatform)?|HostTimer|ImageInfo|Kernel(?:ArgInfo|Info|SubGroupInfo|WorkGroupInfo)|MemObjectInfo|PipeInfo|Platform(?:IDs|Info)|Program(?:Build)?Info|SamplerInfo|SupportedImageFormats)|LinkProgram|(?:Release|Retain)(?:CommandQueue|Context|Device|Event|Kernel|MemObject|Program|Sampler)|SVM(?:Alloc|Free)|Set(?:CommandQueueProperty|DefaultDeviceCommandQueue|EventCallback|Kernel(?:Arg(?:SVMPointer)?|ExecInfo)|Kernel|MemObjectDestructorCallback|UserEventStatus)|Unload(?:Platform)?Compiler|WaitForEvents)\\b/,\n alias: 'function'\n }\n }\n /* OpenCL host API */\n Prism.languages.insertBefore('c', 'keyword', attributes) // C++ includes everything from the OpenCL C host API plus the classes defined in cl2.h\n if (Prism.languages.cpp) {\n // Extracted from doxygen class list http://github.khronos.org/OpenCL-CLHPP/annotated.html\n attributes['type-opencl-host-cpp'] = {\n pattern: /\\b(?:Buffer|BufferGL|BufferRenderGL|CommandQueue|Context|Device|DeviceCommandQueue|EnqueueArgs|Event|Image|Image1D|Image1DArray|Image1DBuffer|Image2D|Image2DArray|Image2DGL|Image3D|Image3DGL|ImageFormat|ImageGL|Kernel|KernelFunctor|LocalSpaceArg|Memory|NDRange|Pipe|Platform|Program|Sampler|SVMAllocator|SVMTraitAtomic|SVMTraitCoarse|SVMTraitFine|SVMTraitReadOnly|SVMTraitReadWrite|SVMTraitWriteOnly|UserEvent)\\b/,\n alias: 'keyword'\n }\n Prism.languages.insertBefore('cpp', 'keyword', attributes)\n }\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = oz\noz.displayName = 'oz'\noz.aliases = []\nfunction oz(Prism) {\n Prism.languages.oz = {\n comment: /\\/\\*[\\s\\S]*?\\*\\/|%.*/,\n string: {\n pattern: /\"(?:[^\"\\\\]|\\\\[\\s\\S])*\"/,\n greedy: true\n },\n atom: {\n pattern: /'(?:[^'\\\\]|\\\\[\\s\\S])*'/,\n greedy: true,\n alias: 'builtin'\n },\n keyword: /\\$|\\[\\]|\\b(?:_|at|attr|case|catch|choice|class|cond|declare|define|dis|else(?:case|if)?|end|export|fail|false|feat|finally|from|fun|functor|if|import|in|local|lock|meth|nil|not|of|or|prepare|proc|prop|raise|require|self|skip|then|thread|true|try|unit)\\b/,\n function: [\n /\\b[a-z][A-Za-z\\d]*(?=\\()/,\n {\n pattern: /(\\{)[A-Z][A-Za-z\\d]*\\b/,\n lookbehind: true\n }\n ],\n number: /\\b(?:0[bx][\\da-f]+|\\d+(?:\\.\\d*)?(?:e~?\\d+)?)\\b|&(?:[^\\\\]|\\\\(?:\\d{3}|.))/i,\n variable: /\\b[A-Z][A-Za-z\\d]*|`(?:[^`\\\\]|\\\\.)+`/,\n 'attr-name': /\\w+(?=:)/,\n operator: /:(?:=|::?)|<[-:=]?|=(?:=|<?:?)|>=?:?|\\\\=:?|!!?|[|#+\\-*\\/,~^@]|\\b(?:andthen|div|mod|orelse)\\b/,\n punctuation: /[\\[\\](){}.:;?]/\n }\n}\n","'use strict'\n\nmodule.exports = parigp\nparigp.displayName = 'parigp'\nparigp.aliases = []\nfunction parigp(Prism) {\n Prism.languages.parigp = {\n comment: /\\/\\*[\\s\\S]*?\\*\\/|\\\\\\\\.*/,\n string: {\n pattern: /\"(?:[^\"\\\\\\r\\n]|\\\\.)*\"/,\n greedy: true\n },\n // PARI/GP does not care about white spaces at all\n // so let's process the keywords to build an appropriate regexp\n // (e.g. \"b *r *e *a *k\", etc.)\n keyword: (function () {\n var keywords = [\n 'breakpoint',\n 'break',\n 'dbg_down',\n 'dbg_err',\n 'dbg_up',\n 'dbg_x',\n 'forcomposite',\n 'fordiv',\n 'forell',\n 'forpart',\n 'forprime',\n 'forstep',\n 'forsubgroup',\n 'forvec',\n 'for',\n 'iferr',\n 'if',\n 'local',\n 'my',\n 'next',\n 'return',\n 'until',\n 'while'\n ]\n keywords = keywords\n .map(function (keyword) {\n return keyword.split('').join(' *')\n })\n .join('|')\n return RegExp('\\\\b(?:' + keywords + ')\\\\b')\n })(),\n function: /\\w(?:[\\w ]*\\w)?(?= *\\()/,\n number: {\n // The lookbehind and the negative lookahead prevent from breaking the .. operator\n pattern: /((?:\\. *\\. *)?)(?:\\b\\d(?: *\\d)*(?: *(?!\\. *\\.)\\.(?: *\\d)*)?|\\. *\\d(?: *\\d)*)(?: *e *(?:[+-] *)?\\d(?: *\\d)*)?/i,\n lookbehind: true\n },\n operator: /\\. *\\.|[*\\/!](?: *=)?|%(?: *=|(?: *#)?(?: *')*)?|\\+(?: *[+=])?|-(?: *[-=>])?|<(?:(?: *<)?(?: *=)?| *>)?|>(?: *>)?(?: *=)?|=(?: *=){0,2}|\\\\(?: *\\/)?(?: *=)?|&(?: *&)?|\\| *\\||['#~^]/,\n punctuation: /[\\[\\]{}().,:;|]/\n }\n}\n","'use strict'\n\nmodule.exports = parser\nparser.displayName = 'parser'\nparser.aliases = []\nfunction parser(Prism) {\n ;(function (Prism) {\n var parser = (Prism.languages.parser = Prism.languages.extend('markup', {\n keyword: {\n pattern: /(^|[^^])(?:\\^(?:case|eval|for|if|switch|throw)\\b|@(?:BASE|CLASS|GET(?:_DEFAULT)?|OPTIONS|SET_DEFAULT|USE)\\b)/,\n lookbehind: true\n },\n variable: {\n pattern: /(^|[^^])\\B\\$(?:\\w+|(?=[.{]))(?:(?:\\.|::?)\\w+)*(?:\\.|::?)?/,\n lookbehind: true,\n inside: {\n punctuation: /\\.|:+/\n }\n },\n function: {\n pattern: /(^|[^^])\\B[@^]\\w+(?:(?:\\.|::?)\\w+)*(?:\\.|::?)?/,\n lookbehind: true,\n inside: {\n keyword: {\n pattern: /(^@)(?:GET_|SET_)/,\n lookbehind: true\n },\n punctuation: /\\.|:+/\n }\n },\n escape: {\n pattern: /\\^(?:[$^;@()\\[\\]{}\"':]|#[a-f\\d]*)/i,\n alias: 'builtin'\n },\n punctuation: /[\\[\\](){};]/\n }))\n parser = Prism.languages.insertBefore('parser', 'keyword', {\n 'parser-comment': {\n pattern: /(\\s)#.*/,\n lookbehind: true,\n alias: 'comment'\n },\n expression: {\n // Allow for 3 levels of depth\n pattern: /(^|[^^])\\((?:[^()]|\\((?:[^()]|\\((?:[^()])*\\))*\\))*\\)/,\n greedy: true,\n lookbehind: true,\n inside: {\n string: {\n pattern: /(^|[^^])([\"'])(?:(?!\\2)[^^]|\\^[\\s\\S])*\\2/,\n lookbehind: true\n },\n keyword: parser.keyword,\n variable: parser.variable,\n function: parser.function,\n boolean: /\\b(?:true|false)\\b/,\n number: /\\b(?:0x[a-f\\d]+|\\d+(?:\\.\\d*)?(?:e[+-]?\\d+)?)\\b/i,\n escape: parser.escape,\n operator: /[~+*\\/\\\\%]|!(?:\\|\\|?|=)?|&&?|\\|\\|?|==|<[<=]?|>[>=]?|-[fd]?|\\b(?:def|eq|ge|gt|in|is|le|lt|ne)\\b/,\n punctuation: parser.punctuation\n }\n }\n })\n parser = Prism.languages.insertBefore(\n 'inside',\n 'punctuation',\n {\n expression: parser.expression,\n keyword: parser.keyword,\n variable: parser.variable,\n function: parser.function,\n escape: parser.escape,\n 'parser-punctuation': {\n pattern: parser.punctuation,\n alias: 'punctuation'\n }\n },\n parser['tag'].inside['attr-value']\n )\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = pascal\npascal.displayName = 'pascal'\npascal.aliases = ['objectpascal']\nfunction pascal(Prism) {\n // Based on Free Pascal\n /* TODO\nSupport inline asm ?\n*/\n Prism.languages.pascal = {\n comment: [/\\(\\*[\\s\\S]+?\\*\\)/, /\\{[\\s\\S]+?\\}/, /\\/\\/.*/],\n string: {\n pattern: /(?:'(?:''|[^'\\r\\n])*'(?!')|#[&$%]?[a-f\\d]+)+|\\^[a-z]/i,\n greedy: true\n },\n keyword: [\n {\n // Turbo Pascal\n pattern: /(^|[^&])\\b(?:absolute|array|asm|begin|case|const|constructor|destructor|do|downto|else|end|file|for|function|goto|if|implementation|inherited|inline|interface|label|nil|object|of|operator|packed|procedure|program|record|reintroduce|repeat|self|set|string|then|to|type|unit|until|uses|var|while|with)\\b/i,\n lookbehind: true\n },\n {\n // Free Pascal\n pattern: /(^|[^&])\\b(?:dispose|exit|false|new|true)\\b/i,\n lookbehind: true\n },\n {\n // Object Pascal\n pattern: /(^|[^&])\\b(?:class|dispinterface|except|exports|finalization|finally|initialization|inline|library|on|out|packed|property|raise|resourcestring|threadvar|try)\\b/i,\n lookbehind: true\n },\n {\n // Modifiers\n pattern: /(^|[^&])\\b(?:absolute|abstract|alias|assembler|bitpacked|break|cdecl|continue|cppdecl|cvar|default|deprecated|dynamic|enumerator|experimental|export|external|far|far16|forward|generic|helper|implements|index|interrupt|iochecks|local|message|name|near|nodefault|noreturn|nostackframe|oldfpccall|otherwise|overload|override|pascal|platform|private|protected|public|published|read|register|reintroduce|result|safecall|saveregisters|softfloat|specialize|static|stdcall|stored|strict|unaligned|unimplemented|varargs|virtual|write)\\b/i,\n lookbehind: true\n }\n ],\n number: [\n // Hexadecimal, octal and binary\n /(?:[&%]\\d+|\\$[a-f\\d]+)/i, // Decimal\n /\\b\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?/i\n ],\n operator: [\n /\\.\\.|\\*\\*|:=|<[<=>]?|>[>=]?|[+\\-*\\/]=?|[@^=]/i,\n {\n pattern: /(^|[^&])\\b(?:and|as|div|exclude|in|include|is|mod|not|or|shl|shr|xor)\\b/,\n lookbehind: true\n }\n ],\n punctuation: /\\(\\.|\\.\\)|[()\\[\\]:;,.]/\n }\n Prism.languages.objectpascal = Prism.languages.pascal\n}\n","'use strict'\n\nmodule.exports = pascaligo\npascaligo.displayName = 'pascaligo'\npascaligo.aliases = []\nfunction pascaligo(Prism) {\n ;(function (Prism) {\n // Pascaligo is a layer 2 smart contract language for the tezos blockchain\n var braces = /\\((?:[^()]|\\((?:[^()]|\\([^()]*\\))*\\))*\\)/.source\n var type = /(?:\\w+(?:<braces>)?|<braces>)/.source.replace(\n /<braces>/g,\n function () {\n return braces\n }\n )\n var pascaligo = (Prism.languages.pascaligo = {\n comment: /\\(\\*[\\s\\S]+?\\*\\)|\\/\\/.*/,\n string: {\n pattern: /([\"'`])(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1|\\^[a-z]/i,\n greedy: true\n },\n 'class-name': [\n {\n pattern: RegExp(\n /(\\btype\\s+\\w+\\s+is\\s+)<type>/.source.replace(\n /<type>/g,\n function () {\n return type\n }\n ),\n 'i'\n ),\n lookbehind: true,\n inside: null // see below\n },\n {\n pattern: RegExp(\n /<type>(?=\\s+is\\b)/.source.replace(/<type>/g, function () {\n return type\n }),\n 'i'\n ),\n inside: null // see below\n },\n {\n pattern: RegExp(\n /(:\\s*)<type>/.source.replace(/<type>/g, function () {\n return type\n })\n ),\n lookbehind: true,\n inside: null // see below\n }\n ],\n keyword: {\n pattern: /(^|[^&])\\b(?:begin|block|case|const|else|end|fail|for|from|function|if|is|nil|of|remove|return|skip|then|type|var|while|with)\\b/i,\n lookbehind: true\n },\n boolean: {\n pattern: /(^|[^&])\\b(?:True|False)\\b/i,\n lookbehind: true\n },\n builtin: {\n pattern: /(^|[^&])\\b(?:bool|int|list|map|nat|record|string|unit)\\b/i,\n lookbehind: true\n },\n function: /\\w+(?=\\s*\\()/i,\n number: [\n // Hexadecimal, octal and binary\n /%[01]+|&[0-7]+|\\$[a-f\\d]+/i, // Decimal\n /\\b\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?(?:mtz|n)?/i\n ],\n operator: /->|=\\/=|\\.\\.|\\*\\*|:=|<[<=>]?|>[>=]?|[+\\-*\\/]=?|[@^=|]|\\b(?:and|mod|or)\\b/,\n punctuation: /\\(\\.|\\.\\)|[()\\[\\]:;,.{}]/\n })\n var classNameInside = [\n 'comment',\n 'keyword',\n 'builtin',\n 'operator',\n 'punctuation'\n ].reduce(function (accum, key) {\n accum[key] = pascaligo[key]\n return accum\n }, {})\n pascaligo['class-name'].forEach(function (p) {\n p.inside = classNameInside\n })\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = pcaxis\npcaxis.displayName = 'pcaxis'\npcaxis.aliases = ['px']\nfunction pcaxis(Prism) {\n Prism.languages.pcaxis = {\n string: /\"[^\"]*\"/,\n keyword: {\n pattern: /((?:^|;)\\s*)[-A-Z\\d]+(?:\\s*\\[[-\\w]+\\])?(?:\\s*\\(\"[^\"]*\"(?:,\\s*\"[^\"]*\")*\\))?(?=\\s*=)/,\n lookbehind: true,\n greedy: true,\n inside: {\n keyword: /^[-A-Z\\d]+/,\n language: {\n pattern: /^(\\s*)\\[[-\\w]+\\]/,\n lookbehind: true,\n inside: {\n punctuation: /^\\[|\\]$/,\n property: /[-\\w]+/\n }\n },\n 'sub-key': {\n pattern: /^(\\s*)\\S[\\s\\S]*/,\n lookbehind: true,\n inside: {\n parameter: {\n pattern: /\"[^\"]*\"/,\n alias: 'property'\n },\n punctuation: /^\\(|\\)$|,/\n }\n }\n }\n },\n operator: /=/,\n tlist: {\n pattern: /TLIST\\s*\\(\\s*\\w+(?:(?:\\s*,\\s*\"[^\"]*\")+|\\s*,\\s*\"[^\"]*\"-\"[^\"]*\")?\\s*\\)/,\n greedy: true,\n inside: {\n function: /^TLIST/,\n property: {\n pattern: /^(\\s*\\(\\s*)\\w+/,\n lookbehind: true\n },\n string: /\"[^\"]*\"/,\n punctuation: /[(),]/,\n operator: /-/\n }\n },\n punctuation: /[;,]/,\n number: {\n pattern: /(^|\\s)\\d+(?:\\.\\d+)?(?!\\S)/,\n lookbehind: true\n },\n boolean: /YES|NO/\n }\n Prism.languages.px = Prism.languages.pcaxis\n}\n","'use strict'\n\nmodule.exports = peoplecode\npeoplecode.displayName = 'peoplecode'\npeoplecode.aliases = ['pcode']\nfunction peoplecode(Prism) {\n Prism.languages.peoplecode = {\n comment: RegExp(\n [\n // C-style multiline comments\n /\\/\\*[\\s\\S]*?\\*\\//.source, // REM comments\n /\\bREM[^;]*;/.source, // Nested <* *> comments\n /<\\*(?:[^<*]|\\*(?!>)|<(?!\\*)|<\\*(?:(?!\\*>)[\\s\\S])*\\*>)*\\*>/.source, // /+ +/ comments\n /\\/\\+[\\s\\S]*?\\+\\//.source\n ].join('|')\n ),\n string: {\n pattern: /'(?:''|[^'\\r\\n])*'(?!')|\"(?:\"\"|[^\"\\r\\n])*\"(?!\")/,\n greedy: true\n },\n variable: /%\\w+/,\n 'function-definition': {\n pattern: /((?:^|[^\\w-])(?:function|method)\\s+)\\w+/i,\n lookbehind: true,\n alias: 'function'\n },\n 'class-name': {\n pattern: /((?:^|[^-\\w])(?:as|catch|class|component|create|extends|global|implements|instance|local|of|property|returns)\\s+)\\w+(?::\\w+)*/i,\n lookbehind: true,\n inside: {\n punctuation: /:/\n }\n },\n keyword: /\\b(?:abstract|alias|as|catch|class|component|constant|create|declare|else|end-(?:class|evaluate|for|function|get|if|method|set|try|while)|evaluate|extends|for|function|get|global|implements|import|instance|if|library|local|method|null|of|out|peopleCode|private|program|property|protected|readonly|ref|repeat|returns?|set|step|then|throw|to|try|until|value|when(?:-other)?|while)\\b/i,\n 'operator-keyword': {\n pattern: /\\b(?:and|not|or)\\b/i,\n alias: 'operator'\n },\n function: /[_a-z]\\w*(?=\\s*\\()/i,\n boolean: /\\b(?:false|true)\\b/i,\n number: /\\b\\d+(?:\\.\\d+)?\\b/,\n operator: /<>|[<>]=?|!=|\\*\\*|[-+*/|=@]/,\n punctuation: /[:.;,()[\\]]/\n }\n Prism.languages.pcode = Prism.languages.peoplecode\n}\n","'use strict'\n\nmodule.exports = perl\nperl.displayName = 'perl'\nperl.aliases = []\nfunction perl(Prism) {\n Prism.languages.perl = {\n comment: [\n {\n // POD\n pattern: /(^\\s*)=\\w[\\s\\S]*?=cut.*/m,\n lookbehind: true\n },\n {\n pattern: /(^|[^\\\\$])#.*/,\n lookbehind: true\n }\n ],\n // TODO Could be nice to handle Heredoc too.\n string: [\n // q/.../\n {\n pattern: /\\b(?:q|qq|qx|qw)\\s*([^a-zA-Z0-9\\s{(\\[<])(?:(?!\\1)[^\\\\]|\\\\[\\s\\S])*\\1/,\n greedy: true\n }, // q a...a\n {\n pattern: /\\b(?:q|qq|qx|qw)\\s+([a-zA-Z0-9])(?:(?!\\1)[^\\\\]|\\\\[\\s\\S])*\\1/,\n greedy: true\n }, // q(...)\n {\n pattern: /\\b(?:q|qq|qx|qw)\\s*\\((?:[^()\\\\]|\\\\[\\s\\S])*\\)/,\n greedy: true\n }, // q{...}\n {\n pattern: /\\b(?:q|qq|qx|qw)\\s*\\{(?:[^{}\\\\]|\\\\[\\s\\S])*\\}/,\n greedy: true\n }, // q[...]\n {\n pattern: /\\b(?:q|qq|qx|qw)\\s*\\[(?:[^[\\]\\\\]|\\\\[\\s\\S])*\\]/,\n greedy: true\n }, // q<...>\n {\n pattern: /\\b(?:q|qq|qx|qw)\\s*<(?:[^<>\\\\]|\\\\[\\s\\S])*>/,\n greedy: true\n }, // \"...\", `...`\n {\n pattern: /(\"|`)(?:(?!\\1)[^\\\\]|\\\\[\\s\\S])*\\1/,\n greedy: true\n }, // '...'\n // FIXME Multi-line single-quoted strings are not supported as they would break variables containing '\n {\n pattern: /'(?:[^'\\\\\\r\\n]|\\\\.)*'/,\n greedy: true\n }\n ],\n regex: [\n // m/.../\n {\n pattern: /\\b(?:m|qr)\\s*([^a-zA-Z0-9\\s{(\\[<])(?:(?!\\1)[^\\\\]|\\\\[\\s\\S])*\\1[msixpodualngc]*/,\n greedy: true\n }, // m a...a\n {\n pattern: /\\b(?:m|qr)\\s+([a-zA-Z0-9])(?:(?!\\1)[^\\\\]|\\\\[\\s\\S])*\\1[msixpodualngc]*/,\n greedy: true\n }, // m(...)\n {\n pattern: /\\b(?:m|qr)\\s*\\((?:[^()\\\\]|\\\\[\\s\\S])*\\)[msixpodualngc]*/,\n greedy: true\n }, // m{...}\n {\n pattern: /\\b(?:m|qr)\\s*\\{(?:[^{}\\\\]|\\\\[\\s\\S])*\\}[msixpodualngc]*/,\n greedy: true\n }, // m[...]\n {\n pattern: /\\b(?:m|qr)\\s*\\[(?:[^[\\]\\\\]|\\\\[\\s\\S])*\\][msixpodualngc]*/,\n greedy: true\n }, // m<...>\n {\n pattern: /\\b(?:m|qr)\\s*<(?:[^<>\\\\]|\\\\[\\s\\S])*>[msixpodualngc]*/,\n greedy: true\n }, // The lookbehinds prevent -s from breaking\n // FIXME We don't handle change of separator like s(...)[...]\n // s/.../.../\n {\n pattern: /(^|[^-]\\b)(?:s|tr|y)\\s*([^a-zA-Z0-9\\s{(\\[<])(?:(?!\\2)[^\\\\]|\\\\[\\s\\S])*\\2(?:(?!\\2)[^\\\\]|\\\\[\\s\\S])*\\2[msixpodualngcer]*/,\n lookbehind: true,\n greedy: true\n }, // s a...a...a\n {\n pattern: /(^|[^-]\\b)(?:s|tr|y)\\s+([a-zA-Z0-9])(?:(?!\\2)[^\\\\]|\\\\[\\s\\S])*\\2(?:(?!\\2)[^\\\\]|\\\\[\\s\\S])*\\2[msixpodualngcer]*/,\n lookbehind: true,\n greedy: true\n }, // s(...)(...)\n {\n pattern: /(^|[^-]\\b)(?:s|tr|y)\\s*\\((?:[^()\\\\]|\\\\[\\s\\S])*\\)\\s*\\((?:[^()\\\\]|\\\\[\\s\\S])*\\)[msixpodualngcer]*/,\n lookbehind: true,\n greedy: true\n }, // s{...}{...}\n {\n pattern: /(^|[^-]\\b)(?:s|tr|y)\\s*\\{(?:[^{}\\\\]|\\\\[\\s\\S])*\\}\\s*\\{(?:[^{}\\\\]|\\\\[\\s\\S])*\\}[msixpodualngcer]*/,\n lookbehind: true,\n greedy: true\n }, // s[...][...]\n {\n pattern: /(^|[^-]\\b)(?:s|tr|y)\\s*\\[(?:[^[\\]\\\\]|\\\\[\\s\\S])*\\]\\s*\\[(?:[^[\\]\\\\]|\\\\[\\s\\S])*\\][msixpodualngcer]*/,\n lookbehind: true,\n greedy: true\n }, // s<...><...>\n {\n pattern: /(^|[^-]\\b)(?:s|tr|y)\\s*<(?:[^<>\\\\]|\\\\[\\s\\S])*>\\s*<(?:[^<>\\\\]|\\\\[\\s\\S])*>[msixpodualngcer]*/,\n lookbehind: true,\n greedy: true\n }, // /.../\n // The look-ahead tries to prevent two divisions on\n // the same line from being highlighted as regex.\n // This does not support multi-line regex.\n {\n pattern: /\\/(?:[^\\/\\\\\\r\\n]|\\\\.)*\\/[msixpodualngc]*(?=\\s*(?:$|[\\r\\n,.;})&|\\-+*~<>!?^]|(?:lt|gt|le|ge|eq|ne|cmp|not|and|or|xor|x)\\b))/,\n greedy: true\n }\n ],\n // FIXME Not sure about the handling of ::, ', and #\n variable: [\n // ${^POSTMATCH}\n /[&*$@%]\\{\\^[A-Z]+\\}/, // $^V\n /[&*$@%]\\^[A-Z_]/, // ${...}\n /[&*$@%]#?(?=\\{)/, // $foo\n /[&*$@%]#?(?:(?:::)*'?(?!\\d)[\\w$]+)+(?:::)*/i, // $1\n /[&*$@%]\\d+/, // $_, @_, %!\n // The negative lookahead prevents from breaking the %= operator\n /(?!%=)[$@%][!\"#$%&'()*+,\\-.\\/:;<=>?@[\\\\\\]^_`{|}~]/\n ],\n filehandle: {\n // <>, <FOO>, _\n pattern: /<(?![<=])\\S*>|\\b_\\b/,\n alias: 'symbol'\n },\n vstring: {\n // v1.2, 1.2.3\n pattern: /v\\d+(?:\\.\\d+)*|\\d+(?:\\.\\d+){2,}/,\n alias: 'string'\n },\n function: {\n pattern: /sub [a-z0-9_]+/i,\n inside: {\n keyword: /sub/\n }\n },\n keyword: /\\b(?:any|break|continue|default|delete|die|do|else|elsif|eval|for|foreach|given|goto|if|last|local|my|next|our|package|print|redo|require|return|say|state|sub|switch|undef|unless|until|use|when|while)\\b/,\n number: /\\b(?:0x[\\dA-Fa-f](?:_?[\\dA-Fa-f])*|0b[01](?:_?[01])*|(?:(?:\\d(?:_?\\d)*)?\\.)?\\d(?:_?\\d)*(?:[Ee][+-]?\\d+)?)\\b/,\n operator: /-[rwxoRWXOezsfdlpSbctugkTBMAC]\\b|\\+[+=]?|-[-=>]?|\\*\\*?=?|\\/\\/?=?|=[=~>]?|~[~=]?|\\|\\|?=?|&&?=?|<(?:=>?|<=?)?|>>?=?|![~=]?|[%^]=?|\\.(?:=|\\.\\.?)?|[\\\\?]|\\bx(?:=|\\b)|\\b(?:lt|gt|le|ge|eq|ne|cmp|not|and|or|xor)\\b/,\n punctuation: /[{}[\\];(),:]/\n }\n}\n","'use strict'\nvar refractorPhp = require('./php.js')\nmodule.exports = phpExtras\nphpExtras.displayName = 'phpExtras'\nphpExtras.aliases = []\nfunction phpExtras(Prism) {\n Prism.register(refractorPhp)\n Prism.languages.insertBefore('php', 'variable', {\n this: /\\$this\\b/,\n global: /\\$(?:_(?:SERVER|GET|POST|FILES|REQUEST|SESSION|ENV|COOKIE)|GLOBALS|HTTP_RAW_POST_DATA|argc|argv|php_errormsg|http_response_header)\\b/,\n scope: {\n pattern: /\\b[\\w\\\\]+::/,\n inside: {\n keyword: /static|self|parent/,\n punctuation: /::|\\\\/\n }\n }\n })\n}\n","'use strict'\nvar refractorPhp = require('./php.js')\nvar refractorJavadoclike = require('./javadoclike.js')\nmodule.exports = phpdoc\nphpdoc.displayName = 'phpdoc'\nphpdoc.aliases = []\nfunction phpdoc(Prism) {\n Prism.register(refractorPhp)\n Prism.register(refractorJavadoclike)\n ;(function (Prism) {\n var typeExpression = /(?:\\b[a-zA-Z]\\w*|[|\\\\[\\]])+/.source\n Prism.languages.phpdoc = Prism.languages.extend('javadoclike', {\n parameter: {\n pattern: RegExp(\n '(@(?:global|param|property(?:-read|-write)?|var)\\\\s+(?:' +\n typeExpression +\n '\\\\s+)?)\\\\$\\\\w+'\n ),\n lookbehind: true\n }\n })\n Prism.languages.insertBefore('phpdoc', 'keyword', {\n 'class-name': [\n {\n pattern: RegExp(\n '(@(?:global|package|param|property(?:-read|-write)?|return|subpackage|throws|var)\\\\s+)' +\n typeExpression\n ),\n lookbehind: true,\n inside: {\n keyword: /\\b(?:callback|resource|boolean|integer|double|object|string|array|false|float|mixed|bool|null|self|true|void|int)\\b/,\n punctuation: /[|\\\\[\\]()]/\n }\n }\n ]\n })\n Prism.languages.javadoclike.addSupport('php', Prism.languages.phpdoc)\n })(Prism)\n}\n","'use strict'\nvar refractorSql = require('./sql.js')\nmodule.exports = plsql\nplsql.displayName = 'plsql'\nplsql.aliases = []\nfunction plsql(Prism) {\n Prism.register(refractorSql)\n ;(function (Prism) {\n var plsql = (Prism.languages.plsql = Prism.languages.extend('sql', {\n comment: [/\\/\\*[\\s\\S]*?\\*\\//, /--.*/]\n }))\n var keyword = plsql['keyword']\n if (!Array.isArray(keyword)) {\n keyword = plsql['keyword'] = [keyword]\n }\n keyword.unshift(\n /\\b(?:ACCESS|AGENT|AGGREGATE|ARRAY|ARROW|AT|ATTRIBUTE|AUDIT|AUTHID|BFILE_BASE|BLOB_BASE|BLOCK|BODY|BOTH|BOUND|BYTE|CALLING|CHAR_BASE|CHARSET(?:FORM|ID)|CLOB_BASE|COLAUTH|COLLECT|CLUSTERS?|COMPILED|COMPRESS|CONSTANT|CONSTRUCTOR|CONTEXT|CRASH|CUSTOMDATUM|DANGLING|DATE_BASE|DEFINE|DETERMINISTIC|DURATION|ELEMENT|EMPTY|EXCEPTIONS?|EXCLUSIVE|EXTERNAL|FINAL|FORALL|FORM|FOUND|GENERAL|HEAP|HIDDEN|IDENTIFIED|IMMEDIATE|INCLUDING|INCREMENT|INDICATOR|INDEXES|INDICES|INFINITE|INITIAL|ISOPEN|INSTANTIABLE|INTERFACE|INVALIDATE|JAVA|LARGE|LEADING|LENGTH|LIBRARY|LIKE[24C]|LIMITED|LONG|LOOP|MAP|MAXEXTENTS|MAXLEN|MEMBER|MINUS|MLSLABEL|MULTISET|NAME|NAN|NATIVE|NEW|NOAUDIT|NOCOMPRESS|NOCOPY|NOTFOUND|NOWAIT|NUMBER(?:_BASE)?|OBJECT|OCI(?:COLL|DATE|DATETIME|DURATION|INTERVAL|LOBLOCATOR|NUMBER|RAW|REF|REFCURSOR|ROWID|STRING|TYPE)|OFFLINE|ONLINE|ONLY|OPAQUE|OPERATOR|ORACLE|ORADATA|ORGANIZATION|ORL(?:ANY|VARY)|OTHERS|OVERLAPS|OVERRIDING|PACKAGE|PARALLEL_ENABLE|PARAMETERS?|PASCAL|PCTFREE|PIPE(?:LINED)?|PRAGMA|PRIOR|PRIVATE|RAISE|RANGE|RAW|RECORD|REF|REFERENCE|REM|REMAINDER|RESULT|RESOURCE|RETURNING|REVERSE|ROW(?:ID|NUM|TYPE)|SAMPLE|SB[124]|SEGMENT|SELF|SEPARATE|SEQUENCE|SHORT|SIZE(?:_T)?|SPARSE|SQL(?:CODE|DATA|NAME|STATE)|STANDARD|STATIC|STDDEV|STORED|STRING|STRUCT|STYLE|SUBMULTISET|SUBPARTITION|SUBSTITUTABLE|SUBTYPE|SUCCESSFUL|SYNONYM|SYSDATE|TABAUTH|TDO|THE|TIMEZONE_(?:ABBR|HOUR|MINUTE|REGION)|TRAILING|TRANSAC(?:TIONAL)?|TRUSTED|UB[124]|UID|UNDER|UNTRUSTED|VALIDATE|VALIST|VARCHAR2|VARIABLE|VARIANCE|VARRAY|VIEWS|VOID|WHENEVER|WRAPPED|ZONE)\\b/i\n )\n var operator = plsql['operator']\n if (!Array.isArray(operator)) {\n operator = plsql['operator'] = [operator]\n }\n operator.unshift(/:=/)\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = powerquery\npowerquery.displayName = 'powerquery'\npowerquery.aliases = []\nfunction powerquery(Prism) {\n // https://docs.microsoft.com/en-us/powerquery-m/power-query-m-language-specification\n Prism.languages.powerquery = {\n comment: {\n pattern: /(^|[^\\\\])(?:\\/\\*[\\s\\S]*?\\*\\/|(?:\\/\\/).*)/,\n lookbehind: true\n },\n 'quoted-identifier': {\n pattern: /#\"(?:[^\"\\r\\n]|\"\")*\"(?!\")/,\n greedy: true,\n alias: 'variable'\n },\n string: {\n pattern: /\"(?:[^\"\\r\\n]|\"\")*\"(?!\")/,\n greedy: true\n },\n constant: [\n /\\bDay\\.(?:Sunday|Monday|Tuesday|Wednesday|Thursday|Friday|Saturday)\\b/,\n /\\bTraceLevel\\.(?:Critical|Error|Information|Verbose|Warning)\\b/,\n /\\bOccurrence\\.(?:First|Last|All)\\b/,\n /\\bOrder\\.(?:Ascending|Descending)\\b/,\n /\\bRoundingMode\\.(?:AwayFromZero|Down|ToEven|TowardZero|Up)\\b/,\n /\\bMissingField\\.(?:Error|Ignore|UseNull)\\b/,\n /\\bQuoteStyle\\.(?:Csv|None)\\b/,\n /\\bJoinKind\\.(?:Inner|LeftOuter|RightOuter|FullOuter|LeftAnti|RightAnti)\\b/,\n /\\bGroupKind\\.(?:Global|Local)\\b/,\n /\\bExtraValues\\.(?:List|Ignore|Error)\\b/,\n /\\bJoinAlgorithm\\.(?:Dynamic|PairwiseHash|SortMerge|LeftHash|RightHash|LeftIndex|RightIndex)\\b/,\n /\\bJoinSide\\.(?:Left|Right)\\b/,\n /\\bPrecision\\.(?:Double|Decimal)\\b/,\n /\\bRelativePosition\\.From(?:End|Start)\\b/,\n /\\bTextEncoding\\.(?:Ascii|BigEndianUnicode|Unicode|Utf8|Utf16|Windows)\\b/,\n /\\b(?:Any|Binary|Date|DateTime|DateTimeZone|Duration|Int8|Int16|Int32|Int64|Function|List|Logical|None|Number|Record|Table|Text|Time)\\.Type\\b/,\n /\\bnull\\b/\n ],\n boolean: /\\b(?:true|false)\\b/,\n keyword: /\\b(?:and|as|each|else|error|if|in|is|let|meta|not|nullable|optional|or|otherwise|section|shared|then|try|type)\\b|#(?:binary|date|datetime|datetimezone|duration|infinity|nan|sections|shared|table|time)\\b/,\n function: {\n pattern: /(^|[^#\\w.])(?!\\d)[\\w.]+(?=\\s*\\()/,\n lookbehind: true\n },\n 'data-type': {\n pattern: /\\b(?:any|anynonnull|binary|date|datetime|datetimezone|duration|function|list|logical|none|number|record|table|text|time|type)\\b/,\n alias: 'variable'\n },\n number: {\n pattern: /\\b0x[\\da-f]+\\b|(?:[+-]?(?:\\b\\d+\\.)?\\b\\d+|[+-]\\.\\d+|(^|[^.])\\B\\.\\d+)(?:e[+-]?\\d+)?\\b/i,\n lookbehind: true\n },\n operator: /[-+*\\/&?@^]|<(?:=>?|>)?|>=?|=>?|\\.\\.\\.?/,\n punctuation: /[,;\\[\\](){}]/\n }\n Prism.languages.pq = Prism.languages['powerquery']\n Prism.languages.mscript = Prism.languages['powerquery']\n}\n","'use strict'\n\nmodule.exports = powershell\npowershell.displayName = 'powershell'\npowershell.aliases = []\nfunction powershell(Prism) {\n ;(function (Prism) {\n var powershell = (Prism.languages.powershell = {\n comment: [\n {\n pattern: /(^|[^`])<#[\\s\\S]*?#>/,\n lookbehind: true\n },\n {\n pattern: /(^|[^`])#.*/,\n lookbehind: true\n }\n ],\n string: [\n {\n pattern: /\"(?:`[\\s\\S]|[^`\"])*\"/,\n greedy: true,\n inside: {\n function: {\n // Allow for one level of nesting\n pattern: /(^|[^`])\\$\\((?:\\$\\([^\\r\\n()]*\\)|(?!\\$\\()[^\\r\\n)])*\\)/,\n lookbehind: true,\n // Populated at end of file\n inside: {}\n }\n }\n },\n {\n pattern: /'(?:[^']|'')*'/,\n greedy: true\n }\n ],\n // Matches name spaces as well as casts, attribute decorators. Force starting with letter to avoid matching array indices\n // Supports two levels of nested brackets (e.g. `[OutputType([System.Collections.Generic.List[int]])]`)\n namespace: /\\[[a-z](?:\\[(?:\\[[^\\]]*]|[^\\[\\]])*]|[^\\[\\]])*]/i,\n boolean: /\\$(?:true|false)\\b/i,\n variable: /\\$\\w+\\b/,\n // Cmdlets and aliases. Aliases should come last, otherwise \"write\" gets preferred over \"write-host\" for example\n // Get-Command | ?{ $_.ModuleName -match \"Microsoft.PowerShell.(Util|Core|Management)\" }\n // Get-Alias | ?{ $_.ReferencedCommand.Module.Name -match \"Microsoft.PowerShell.(Util|Core|Management)\" }\n function: [\n /\\b(?:Add|Approve|Assert|Backup|Block|Checkpoint|Clear|Close|Compare|Complete|Compress|Confirm|Connect|Convert|ConvertFrom|ConvertTo|Copy|Debug|Deny|Disable|Disconnect|Dismount|Edit|Enable|Enter|Exit|Expand|Export|Find|ForEach|Format|Get|Grant|Group|Hide|Import|Initialize|Install|Invoke|Join|Limit|Lock|Measure|Merge|Move|New|Open|Optimize|Out|Ping|Pop|Protect|Publish|Push|Read|Receive|Redo|Register|Remove|Rename|Repair|Request|Reset|Resize|Resolve|Restart|Restore|Resume|Revoke|Save|Search|Select|Send|Set|Show|Skip|Sort|Split|Start|Step|Stop|Submit|Suspend|Switch|Sync|Tee|Test|Trace|Unblock|Undo|Uninstall|Unlock|Unprotect|Unpublish|Unregister|Update|Use|Wait|Watch|Where|Write)-[a-z]+\\b/i,\n /\\b(?:ac|cat|chdir|clc|cli|clp|clv|compare|copy|cp|cpi|cpp|cvpa|dbp|del|diff|dir|ebp|echo|epal|epcsv|epsn|erase|fc|fl|ft|fw|gal|gbp|gc|gci|gcs|gdr|gi|gl|gm|gp|gps|group|gsv|gu|gv|gwmi|iex|ii|ipal|ipcsv|ipsn|irm|iwmi|iwr|kill|lp|ls|measure|mi|mount|move|mp|mv|nal|ndr|ni|nv|ogv|popd|ps|pushd|pwd|rbp|rd|rdr|ren|ri|rm|rmdir|rni|rnp|rp|rv|rvpa|rwmi|sal|saps|sasv|sbp|sc|select|set|shcm|si|sl|sleep|sls|sort|sp|spps|spsv|start|sv|swmi|tee|trcm|type|write)\\b/i\n ],\n // per http://technet.microsoft.com/en-us/library/hh847744.aspx\n keyword: /\\b(?:Begin|Break|Catch|Class|Continue|Data|Define|Do|DynamicParam|Else|ElseIf|End|Exit|Filter|Finally|For|ForEach|From|Function|If|InlineScript|Parallel|Param|Process|Return|Sequence|Switch|Throw|Trap|Try|Until|Using|Var|While|Workflow)\\b/i,\n operator: {\n pattern: /(\\W?)(?:!|-(?:eq|ne|gt|ge|lt|le|sh[lr]|not|b?(?:and|x?or)|(?:Not)?(?:Like|Match|Contains|In)|Replace|Join|is(?:Not)?|as)\\b|-[-=]?|\\+[+=]?|[*\\/%]=?)/i,\n lookbehind: true\n },\n punctuation: /[|{}[\\];(),.]/\n }) // Variable interpolation inside strings, and nested expressions\n var stringInside = powershell.string[0].inside\n stringInside.boolean = powershell.boolean\n stringInside.variable = powershell.variable\n stringInside.function.inside = powershell\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = processing\nprocessing.displayName = 'processing'\nprocessing.aliases = []\nfunction processing(Prism) {\n Prism.languages.processing = Prism.languages.extend('clike', {\n keyword: /\\b(?:break|catch|case|class|continue|default|else|extends|final|for|if|implements|import|new|null|private|public|return|static|super|switch|this|try|void|while)\\b/,\n operator: /<[<=]?|>[>=]?|&&?|\\|\\|?|[%?]|[!=+\\-*\\/]=?/\n })\n Prism.languages.insertBefore('processing', 'number', {\n // Special case: XML is a type\n constant: /\\b(?!XML\\b)[A-Z][A-Z\\d_]+\\b/,\n type: {\n pattern: /\\b(?:boolean|byte|char|color|double|float|int|[A-Z]\\w*)\\b/,\n alias: 'variable'\n }\n }) // Spaces are allowed between function name and parenthesis\n Prism.languages.processing['function'] = /\\w+(?=\\s*\\()/ // Class-names is not styled by default\n Prism.languages.processing['class-name'].alias = 'variable'\n}\n","'use strict'\n\nmodule.exports = prolog\nprolog.displayName = 'prolog'\nprolog.aliases = []\nfunction prolog(Prism) {\n Prism.languages.prolog = {\n // Syntax depends on the implementation\n comment: [/%.+/, /\\/\\*[\\s\\S]*?\\*\\//],\n // Depending on the implementation, strings may allow escaped newlines and quote-escape\n string: {\n pattern: /([\"'])(?:\\1\\1|\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/,\n greedy: true\n },\n builtin: /\\b(?:fx|fy|xf[xy]?|yfx?)\\b/,\n variable: /\\b[A-Z_]\\w*/,\n // FIXME: Should we list all null-ary predicates (not followed by a parenthesis) like halt, trace, etc.?\n function: /\\b[a-z]\\w*(?:(?=\\()|\\/\\d+)/,\n number: /\\b\\d+(?:\\.\\d*)?/,\n // Custom operators are allowed\n operator: /[:\\\\=><\\-?*@\\/;+^|!$.]+|\\b(?:is|mod|not|xor)\\b/,\n punctuation: /[(){}\\[\\],]/\n }\n}\n","'use strict'\n\nmodule.exports = promql\npromql.displayName = 'promql'\npromql.aliases = []\nfunction promql(Prism) {\n // Thanks to: https://github.com/prometheus-community/monaco-promql/blob/master/src/promql/promql.ts\n // As well as: https://kausal.co/blog/slate-prism-add-new-syntax-promql/\n ;(function (Prism) {\n // PromQL Aggregation Operators\n // (https://prometheus.io/docs/prometheus/latest/querying/operators/#aggregation-operators)\n var aggregations = [\n 'sum',\n 'min',\n 'max',\n 'avg',\n 'group',\n 'stddev',\n 'stdvar',\n 'count',\n 'count_values',\n 'bottomk',\n 'topk',\n 'quantile'\n ] // PromQL vector matching + the by and without clauses\n // (https://prometheus.io/docs/prometheus/latest/querying/operators/#vector-matching)\n var vectorMatching = [\n 'on',\n 'ignoring',\n 'group_right',\n 'group_left',\n 'by',\n 'without'\n ] // PromQL offset modifier\n // (https://prometheus.io/docs/prometheus/latest/querying/basics/#offset-modifier)\n var offsetModifier = ['offset']\n var keywords = aggregations.concat(vectorMatching, offsetModifier)\n Prism.languages.promql = {\n comment: {\n pattern: /(^[ \\t]*)#.*/m,\n lookbehind: true\n },\n 'vector-match': {\n // Match the comma-separated label lists inside vector matching:\n pattern: new RegExp(\n '((?:' + vectorMatching.join('|') + ')\\\\s*)\\\\([^)]*\\\\)'\n ),\n lookbehind: true,\n inside: {\n 'label-key': {\n pattern: /\\b[^,]*\\b/,\n alias: 'attr-name'\n },\n punctuation: /[(),]/\n }\n },\n 'context-labels': {\n pattern: /\\{[^{}]*\\}/,\n inside: {\n 'label-key': {\n pattern: /\\b[a-z_]\\w*(?=\\s*(?:=~?|![=~]))/,\n alias: 'attr-name'\n },\n 'label-value': {\n pattern: /([\"'`])(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1/,\n greedy: true,\n alias: 'attr-value'\n },\n punctuation: /\\{|\\}|=~?|![=~]|,/\n }\n },\n 'context-range': [\n {\n pattern: /\\[[\\w\\s:]+\\]/,\n // [1m]\n inside: {\n punctuation: /\\[|\\]|:/,\n 'range-duration': {\n pattern: /\\b(?:\\d+(?:[smhdwy]|ms))+\\b/i,\n alias: 'number'\n }\n }\n },\n {\n pattern: /(\\boffset\\s+)\\w+/,\n // offset 1m\n lookbehind: true,\n inside: {\n 'range-duration': {\n pattern: /\\b(?:\\d+(?:[smhdwy]|ms))+\\b/i,\n alias: 'number'\n }\n }\n }\n ],\n keyword: new RegExp('\\\\b(?:' + keywords.join('|') + ')\\\\b', 'i'),\n function: /\\b[a-zA-Z_]\\w*(?=\\s*\\()/i,\n number: /[-+]?(?:(?:\\b\\d+(?:\\.\\d+)?|\\B\\.\\d+)(?:e[-+]?\\d+)?\\b|\\b(?:0x[0-9a-f]+|nan|inf)\\b)/i,\n operator: /[\\^*/%+-]|==|!=|<=|<|>=|>|\\b(?:and|unless|or)\\b/i,\n punctuation: /[{};()`,.[\\]]/\n }\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = properties\nproperties.displayName = 'properties'\nproperties.aliases = []\nfunction properties(Prism) {\n Prism.languages.properties = {\n comment: /^[ \\t]*[#!].*$/m,\n 'attr-value': {\n pattern: /(^[ \\t]*(?:\\\\(?:\\r\\n|[\\s\\S])|[^\\\\\\s:=])+?(?: *[=:] *(?! )| ))(?:\\\\(?:\\r\\n|[\\s\\S])|[^\\\\\\r\\n])+/m,\n lookbehind: true\n },\n 'attr-name': /^[ \\t]*(?:\\\\(?:\\r\\n|[\\s\\S])|[^\\\\\\s:=])+?(?= *[=:] *| )/m,\n punctuation: /[=:]/\n }\n}\n","'use strict'\n\nmodule.exports = protobuf\nprotobuf.displayName = 'protobuf'\nprotobuf.aliases = []\nfunction protobuf(Prism) {\n ;(function (Prism) {\n var builtinTypes = /\\b(?:double|float|[su]?int(?:32|64)|s?fixed(?:32|64)|bool|string|bytes)\\b/\n Prism.languages.protobuf = Prism.languages.extend('clike', {\n 'class-name': [\n {\n pattern: /(\\b(?:enum|extend|message|service)\\s+)[A-Za-z_]\\w*(?=\\s*\\{)/,\n lookbehind: true\n },\n {\n pattern: /(\\b(?:rpc\\s+\\w+|returns)\\s*\\(\\s*(?:stream\\s+)?)\\.?[A-Za-z_]\\w*(?:\\.[A-Za-z_]\\w*)*(?=\\s*\\))/,\n lookbehind: true\n }\n ],\n keyword: /\\b(?:enum|extend|extensions|import|message|oneof|option|optional|package|public|repeated|required|reserved|returns|rpc(?=\\s+\\w)|service|stream|syntax|to)\\b(?!\\s*=\\s*\\d)/,\n function: /[a-z_]\\w*(?=\\s*\\()/i\n })\n Prism.languages.insertBefore('protobuf', 'operator', {\n map: {\n pattern: /\\bmap<\\s*[\\w.]+\\s*,\\s*[\\w.]+\\s*>(?=\\s+[a-z_]\\w*\\s*[=;])/i,\n alias: 'class-name',\n inside: {\n punctuation: /[<>.,]/,\n builtin: builtinTypes\n }\n },\n builtin: builtinTypes,\n 'positional-class-name': {\n pattern: /(?:\\b|\\B\\.)[a-z_]\\w*(?:\\.[a-z_]\\w*)*(?=\\s+[a-z_]\\w*\\s*[=;])/i,\n alias: 'class-name',\n inside: {\n punctuation: /\\./\n }\n },\n annotation: {\n pattern: /(\\[\\s*)[a-z_]\\w*(?=\\s*=)/i,\n lookbehind: true\n }\n })\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = pug\npug.displayName = 'pug'\npug.aliases = []\nfunction pug(Prism) {\n ;(function (Prism) {\n // TODO:\n // - Add CSS highlighting inside <style> tags\n // - Add support for multi-line code blocks\n // - Add support for interpolation #{} and !{}\n // - Add support for tag interpolation #[]\n // - Add explicit support for plain text using |\n // - Add support for markup embedded in plain text\n Prism.languages.pug = {\n // Multiline stuff should appear before the rest\n // This handles both single-line and multi-line comments\n comment: {\n pattern: /(^([\\t ]*))\\/\\/.*(?:(?:\\r?\\n|\\r)\\2[\\t ].+)*/m,\n lookbehind: true\n },\n // All the tag-related part is in lookbehind\n // so that it can be highlighted by the \"tag\" pattern\n 'multiline-script': {\n pattern: /(^([\\t ]*)script\\b.*\\.[\\t ]*)(?:(?:\\r?\\n|\\r(?!\\n))(?:\\2[\\t ].+|\\s*?(?=\\r?\\n|\\r)))+/m,\n lookbehind: true,\n inside: Prism.languages.javascript\n },\n // See at the end of the file for known filters\n filter: {\n pattern: /(^([\\t ]*)):.+(?:(?:\\r?\\n|\\r(?!\\n))(?:\\2[\\t ].+|\\s*?(?=\\r?\\n|\\r)))+/m,\n lookbehind: true,\n inside: {\n 'filter-name': {\n pattern: /^:[\\w-]+/,\n alias: 'variable'\n }\n }\n },\n 'multiline-plain-text': {\n pattern: /(^([\\t ]*)[\\w\\-#.]+\\.[\\t ]*)(?:(?:\\r?\\n|\\r(?!\\n))(?:\\2[\\t ].+|\\s*?(?=\\r?\\n|\\r)))+/m,\n lookbehind: true\n },\n markup: {\n pattern: /(^[\\t ]*)<.+/m,\n lookbehind: true,\n inside: Prism.languages.markup\n },\n doctype: {\n pattern: /((?:^|\\n)[\\t ]*)doctype(?: .+)?/,\n lookbehind: true\n },\n // This handle all conditional and loop keywords\n 'flow-control': {\n pattern: /(^[\\t ]*)(?:if|unless|else|case|when|default|each|while)\\b(?: .+)?/m,\n lookbehind: true,\n inside: {\n each: {\n pattern: /^each .+? in\\b/,\n inside: {\n keyword: /\\b(?:each|in)\\b/,\n punctuation: /,/\n }\n },\n branch: {\n pattern: /^(?:if|unless|else|case|when|default|while)\\b/,\n alias: 'keyword'\n },\n rest: Prism.languages.javascript\n }\n },\n keyword: {\n pattern: /(^[\\t ]*)(?:block|extends|include|append|prepend)\\b.+/m,\n lookbehind: true\n },\n mixin: [\n // Declaration\n {\n pattern: /(^[\\t ]*)mixin .+/m,\n lookbehind: true,\n inside: {\n keyword: /^mixin/,\n function: /\\w+(?=\\s*\\(|\\s*$)/,\n punctuation: /[(),.]/\n }\n }, // Usage\n {\n pattern: /(^[\\t ]*)\\+.+/m,\n lookbehind: true,\n inside: {\n name: {\n pattern: /^\\+\\w+/,\n alias: 'function'\n },\n rest: Prism.languages.javascript\n }\n }\n ],\n script: {\n pattern: /(^[\\t ]*script(?:(?:&[^(]+)?\\([^)]+\\))*[\\t ]).+/m,\n lookbehind: true,\n inside: Prism.languages.javascript\n },\n 'plain-text': {\n pattern: /(^[\\t ]*(?!-)[\\w\\-#.]*[\\w\\-](?:(?:&[^(]+)?\\([^)]+\\))*\\/?[\\t ]).+/m,\n lookbehind: true\n },\n tag: {\n pattern: /(^[\\t ]*)(?!-)[\\w\\-#.]*[\\w\\-](?:(?:&[^(]+)?\\([^)]+\\))*\\/?:?/m,\n lookbehind: true,\n inside: {\n attributes: [\n {\n pattern: /&[^(]+\\([^)]+\\)/,\n inside: Prism.languages.javascript\n },\n {\n pattern: /\\([^)]+\\)/,\n inside: {\n 'attr-value': {\n pattern: /(=\\s*(?!\\s))(?:\\{[^}]*\\}|[^,)\\r\\n]+)/,\n lookbehind: true,\n inside: Prism.languages.javascript\n },\n 'attr-name': /[\\w-]+(?=\\s*!?=|\\s*[,)])/,\n punctuation: /[!=(),]+/\n }\n }\n ],\n punctuation: /:/,\n 'attr-id': /#[\\w\\-]+/,\n 'attr-class': /\\.[\\w\\-]+/\n }\n },\n code: [\n {\n pattern: /(^[\\t ]*(?:-|!?=)).+/m,\n lookbehind: true,\n inside: Prism.languages.javascript\n }\n ],\n punctuation: /[.\\-!=|]+/\n }\n var filter_pattern = /(^([\\t ]*)):{{filter_name}}(?:(?:\\r?\\n|\\r(?!\\n))(?:\\2[\\t ].+|\\s*?(?=\\r?\\n|\\r)))+/\n .source // Non exhaustive list of available filters and associated languages\n var filters = [\n {\n filter: 'atpl',\n language: 'twig'\n },\n {\n filter: 'coffee',\n language: 'coffeescript'\n },\n 'ejs',\n 'handlebars',\n 'less',\n 'livescript',\n 'markdown',\n {\n filter: 'sass',\n language: 'scss'\n },\n 'stylus'\n ]\n var all_filters = {}\n for (var i = 0, l = filters.length; i < l; i++) {\n var filter = filters[i]\n filter =\n typeof filter === 'string'\n ? {\n filter: filter,\n language: filter\n }\n : filter\n if (Prism.languages[filter.language]) {\n all_filters['filter-' + filter.filter] = {\n pattern: RegExp(\n filter_pattern.replace('{{filter_name}}', function () {\n return filter.filter\n }),\n 'm'\n ),\n lookbehind: true,\n inside: {\n 'filter-name': {\n pattern: /^:[\\w-]+/,\n alias: 'variable'\n },\n rest: Prism.languages[filter.language]\n }\n }\n }\n }\n Prism.languages.insertBefore('pug', 'filter', all_filters)\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = puppet\npuppet.displayName = 'puppet'\npuppet.aliases = []\nfunction puppet(Prism) {\n ;(function (Prism) {\n Prism.languages.puppet = {\n heredoc: [\n // Matches the content of a quoted heredoc string (subject to interpolation)\n {\n pattern: /(@\\(\"([^\"\\r\\n\\/):]+)\"(?:\\/[nrts$uL]*)?\\).*(?:\\r?\\n|\\r))(?:.*(?:\\r?\\n|\\r(?!\\n)))*?[ \\t]*(?:\\|[ \\t]*)?(?:-[ \\t]*)?\\2/,\n lookbehind: true,\n alias: 'string',\n inside: {\n // Matches the end tag\n punctuation: /(?=\\S).*\\S(?= *$)/ // See interpolation below\n }\n }, // Matches the content of an unquoted heredoc string (no interpolation)\n {\n pattern: /(@\\(([^\"\\r\\n\\/):]+)(?:\\/[nrts$uL]*)?\\).*(?:\\r?\\n|\\r))(?:.*(?:\\r?\\n|\\r(?!\\n)))*?[ \\t]*(?:\\|[ \\t]*)?(?:-[ \\t]*)?\\2/,\n lookbehind: true,\n greedy: true,\n alias: 'string',\n inside: {\n // Matches the end tag\n punctuation: /(?=\\S).*\\S(?= *$)/\n }\n }, // Matches the start tag of heredoc strings\n {\n pattern: /@\\(\"?(?:[^\"\\r\\n\\/):]+)\"?(?:\\/[nrts$uL]*)?\\)/,\n alias: 'string',\n inside: {\n punctuation: {\n pattern: /(\\().+?(?=\\))/,\n lookbehind: true\n }\n }\n }\n ],\n 'multiline-comment': {\n pattern: /(^|[^\\\\])\\/\\*[\\s\\S]*?\\*\\//,\n lookbehind: true,\n greedy: true,\n alias: 'comment'\n },\n regex: {\n // Must be prefixed with the keyword \"node\" or a non-word char\n pattern: /((?:\\bnode\\s+|[~=\\(\\[\\{,]\\s*|[=+]>\\s*|^\\s*))\\/(?:[^\\/\\\\]|\\\\[\\s\\S])+\\/(?:[imx]+\\b|\\B)/,\n lookbehind: true,\n greedy: true,\n inside: {\n // Extended regexes must have the x flag. They can contain single-line comments.\n 'extended-regex': {\n pattern: /^\\/(?:[^\\/\\\\]|\\\\[\\s\\S])+\\/[im]*x[im]*$/,\n inside: {\n comment: /#.*/\n }\n }\n }\n },\n comment: {\n pattern: /(^|[^\\\\])#.*/,\n lookbehind: true,\n greedy: true\n },\n string: {\n // Allow for one nested level of double quotes inside interpolation\n pattern: /([\"'])(?:\\$\\{(?:[^'\"}]|([\"'])(?:(?!\\2)[^\\\\]|\\\\[\\s\\S])*\\2)+\\}|\\$(?!\\{)|(?!\\1)[^\\\\$]|\\\\[\\s\\S])*\\1/,\n greedy: true,\n inside: {\n 'double-quoted': {\n pattern: /^\"[\\s\\S]*\"$/,\n inside: {\n // See interpolation below\n }\n }\n }\n },\n variable: {\n pattern: /\\$(?:::)?\\w+(?:::\\w+)*/,\n inside: {\n punctuation: /::/\n }\n },\n 'attr-name': /(?:\\w+|\\*)(?=\\s*=>)/,\n function: [\n {\n pattern: /(\\.)(?!\\d)\\w+/,\n lookbehind: true\n },\n /\\b(?:contain|debug|err|fail|include|info|notice|realize|require|tag|warning)\\b|\\b(?!\\d)\\w+(?=\\()/\n ],\n number: /\\b(?:0x[a-f\\d]+|\\d+(?:\\.\\d+)?(?:e-?\\d+)?)\\b/i,\n boolean: /\\b(?:true|false)\\b/,\n // Includes words reserved for future use\n keyword: /\\b(?:application|attr|case|class|consumes|default|define|else|elsif|function|if|import|inherits|node|private|produces|type|undef|unless)\\b/,\n datatype: {\n pattern: /\\b(?:Any|Array|Boolean|Callable|Catalogentry|Class|Collection|Data|Default|Enum|Float|Hash|Integer|NotUndef|Numeric|Optional|Pattern|Regexp|Resource|Runtime|Scalar|String|Struct|Tuple|Type|Undef|Variant)\\b/,\n alias: 'symbol'\n },\n operator: /=[=~>]?|![=~]?|<(?:<\\|?|[=~|-])?|>[>=]?|->?|~>|\\|>?>?|[*\\/%+?]|\\b(?:and|in|or)\\b/,\n punctuation: /[\\[\\]{}().,;]|:+/\n }\n var interpolation = [\n {\n // Allow for one nested level of braces inside interpolation\n pattern: /(^|[^\\\\])\\$\\{(?:[^'\"{}]|\\{[^}]*\\}|([\"'])(?:(?!\\2)[^\\\\]|\\\\[\\s\\S])*\\2)+\\}/,\n lookbehind: true,\n inside: {\n 'short-variable': {\n // Negative look-ahead prevent wrong highlighting of functions\n pattern: /(^\\$\\{)(?!\\w+\\()(?:::)?\\w+(?:::\\w+)*/,\n lookbehind: true,\n alias: 'variable',\n inside: {\n punctuation: /::/\n }\n },\n delimiter: {\n pattern: /^\\$/,\n alias: 'variable'\n },\n rest: Prism.languages.puppet\n }\n },\n {\n pattern: /(^|[^\\\\])\\$(?:::)?\\w+(?:::\\w+)*/,\n lookbehind: true,\n alias: 'variable',\n inside: {\n punctuation: /::/\n }\n }\n ]\n Prism.languages.puppet['heredoc'][0].inside.interpolation = interpolation\n Prism.languages.puppet['string'].inside[\n 'double-quoted'\n ].inside.interpolation = interpolation\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = pure\npure.displayName = 'pure'\npure.aliases = []\nfunction pure(Prism) {\n ;(function (Prism) {\n // https://agraef.github.io/pure-docs/pure.html#lexical-matters\n Prism.languages.pure = {\n comment: [\n {\n pattern: /(^|[^\\\\])\\/\\*[\\s\\S]*?\\*\\//,\n lookbehind: true\n },\n {\n pattern: /(^|[^\\\\:])\\/\\/.*/,\n lookbehind: true\n },\n /#!.+/\n ],\n 'inline-lang': {\n pattern: /%<[\\s\\S]+?%>/,\n greedy: true,\n inside: {\n lang: {\n pattern: /(^%< *)-\\*-.+?-\\*-/,\n lookbehind: true,\n alias: 'comment'\n },\n delimiter: {\n pattern: /^%<.*|%>$/,\n alias: 'punctuation'\n }\n }\n },\n string: {\n pattern: /\"(?:\\\\.|[^\"\\\\\\r\\n])*\"/,\n greedy: true\n },\n number: {\n // The look-behind prevents wrong highlighting of the .. operator\n pattern: /((?:\\.\\.)?)(?:\\b(?:inf|nan)\\b|\\b0x[\\da-f]+|(?:\\b(?:0b)?\\d+(?:\\.\\d+)?|\\B\\.\\d+)(?:e[+-]?\\d+)?L?)/i,\n lookbehind: true\n },\n keyword: /\\b(?:ans|break|bt|case|catch|cd|clear|const|def|del|dump|else|end|exit|extern|false|force|help|if|infix[lr]?|interface|let|ls|mem|namespace|nonfix|NULL|of|otherwise|outfix|override|postfix|prefix|private|public|pwd|quit|run|save|show|stats|then|throw|trace|true|type|underride|using|when|with)\\b/,\n function: /\\b(?:abs|add_(?:(?:fundef|interface|macdef|typedef)(?:_at)?|addr|constdef|vardef)|all|any|applp?|arity|bigintp?|blob(?:_crc|_size|p)?|boolp?|byte_(?:matrix|pointer)|byte_c?string(?:_pointer)?|calloc|cat|catmap|ceil|char[ps]?|check_ptrtag|chr|clear_sentry|clearsym|closurep?|cmatrixp?|cols?|colcat(?:map)?|colmap|colrev|colvector(?:p|seq)?|complex(?:_float_(?:matrix|pointer)|_matrix(?:_view)?|_pointer|p)?|conj|cookedp?|cst|cstring(?:_(?:dup|list|vector))?|curry3?|cyclen?|del_(?:constdef|fundef|interface|macdef|typedef|vardef)|delete|diag(?:mat)?|dim|dmatrixp?|do|double(?:_matrix(?:_view)?|_pointer|p)?|dowith3?|drop|dropwhile|eval(?:cmd)?|exactp|filter|fix|fixity|flip|float(?:_matrix|_pointer)|floor|fold[lr]1?|frac|free|funp?|functionp?|gcd|get(?:_(?:byte|constdef|double|float|fundef|int(?:64)?|interface(?:_typedef)?|long|macdef|pointer|ptrtag|short|sentry|string|typedef|vardef))?|globsym|hash|head|id|im|imatrixp?|index|inexactp|infp|init|insert|int(?:_matrix(?:_view)?|_pointer|p)?|int64_(?:matrix|pointer)|integerp?|iteraten?|iterwhile|join|keys?|lambdap?|last(?:err(?:pos)?)?|lcd|list[2p]?|listmap|make_ptrtag|malloc|map|matcat|matrixp?|max|member|min|nanp|nargs|nmatrixp?|null|numberp?|ord|pack(?:ed)?|pointer(?:_cast|_tag|_type|p)?|pow|pred|ptrtag|put(?:_(?:byte|double|float|int(?:64)?|long|pointer|short|string))?|rationalp?|re|realp?|realloc|recordp?|redim|reduce(?:_with)?|refp?|repeatn?|reverse|rlistp?|round|rows?|rowcat(?:map)?|rowmap|rowrev|rowvector(?:p|seq)?|same|scan[lr]1?|sentry|sgn|short_(?:matrix|pointer)|slice|smatrixp?|sort|split|str|strcat|stream|stride|string(?:_(?:dup|list|vector)|p)?|subdiag(?:mat)?|submat|subseq2?|substr|succ|supdiag(?:mat)?|symbolp?|tail|take|takewhile|thunkp?|transpose|trunc|tuplep?|typep|ubyte|uint(?:64)?|ulong|uncurry3?|unref|unzip3?|update|ushort|vals?|varp?|vector(?:p|seq)?|void|zip3?|zipwith3?)\\b/,\n special: {\n pattern: /\\b__[a-z]+__\\b/i,\n alias: 'builtin'\n },\n // Any combination of operator chars can be an operator\n operator: /(?:[!\"#$%&'*+,\\-.\\/:<=>?@\\\\^`|~\\u00a1-\\u00bf\\u00d7-\\u00f7\\u20d0-\\u2bff]|\\b_+\\b)+|\\b(?:and|div|mod|not|or)\\b/,\n // FIXME: How can we prevent | and , to be highlighted as operator when they are used alone?\n punctuation: /[(){}\\[\\];,|]/\n }\n var inlineLanguages = [\n 'c',\n {\n lang: 'c++',\n alias: 'cpp'\n },\n 'fortran'\n ]\n var inlineLanguageRe = /%< *-\\*- *{lang}\\d* *-\\*-[\\s\\S]+?%>/.source\n inlineLanguages.forEach(function (lang) {\n var alias = lang\n if (typeof lang !== 'string') {\n alias = lang.alias\n lang = lang.lang\n }\n if (Prism.languages[alias]) {\n var o = {}\n o['inline-lang-' + alias] = {\n pattern: RegExp(\n inlineLanguageRe.replace(\n '{lang}',\n lang.replace(/([.+*?\\/\\\\(){}\\[\\]])/g, '\\\\$1')\n ),\n 'i'\n ),\n inside: Prism.util.clone(Prism.languages.pure['inline-lang'].inside)\n }\n o['inline-lang-' + alias].inside.rest = Prism.util.clone(\n Prism.languages[alias]\n )\n Prism.languages.insertBefore('pure', 'inline-lang', o)\n }\n }) // C is the default inline language\n if (Prism.languages.c) {\n Prism.languages.pure['inline-lang'].inside.rest = Prism.util.clone(\n Prism.languages.c\n )\n }\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = purebasic\npurebasic.displayName = 'purebasic'\npurebasic.aliases = []\nfunction purebasic(Prism) {\n /*\nOriginal Code by Bas Groothedde\n!!MANY THANKS!! I never would have made this, regex and me will never be best friends ;)\n==> https://codepen.io/ImagineProgramming/details/JYydBy/\nslightly changed to pass all tests\n*/\n // PureBasic support, steal stuff from ansi-c\n Prism.languages.purebasic = Prism.languages.extend('clike', {\n comment: /;.*/,\n keyword: /\\b(?:declarecdll|declaredll|compilerselect|compilercase|compilerdefault|compilerendselect|compilererror|enableexplicit|disableexplicit|not|and|or|xor|calldebugger|debuglevel|enabledebugger|disabledebugger|restore|read|includepath|includebinary|threaded|runtime|with|endwith|structureunion|endstructureunion|align|newlist|newmap|interface|endinterface|extends|enumeration|endenumeration|swap|foreach|continue|fakereturn|goto|gosub|return|break|module|endmodule|declaremodule|enddeclaremodule|declare|declarec|prototype|prototypec|enableasm|disableasm|dim|redim|data|datasection|enddatasection|to|procedurereturn|debug|default|case|select|endselect|as|import|endimport|importc|compilerif|compilerelse|compilerendif|compilerelseif|end|structure|endstructure|while|wend|for|next|step|if|else|elseif|endif|repeat|until|procedure|proceduredll|procedurec|procedurecdll|endprocedure|protected|shared|static|global|define|includefile|xincludefile|macro|endmacro)\\b/i,\n function: /\\b\\w+(?:\\.\\w+)?\\s*(?=\\()/,\n number: /(?:\\$[\\da-f]+|\\b-?(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:e[+-]?\\d+)?)\\b/i,\n operator: /(?:@\\*?|\\?|\\*)\\w+|-[>-]?|\\+\\+?|!=?|<<?=?|>>?=?|==?|&&?|\\|?\\||[~^%?*/@]/\n })\n Prism.languages.insertBefore('purebasic', 'keyword', {\n tag: /#\\w+/,\n asm: {\n pattern: /(^\\s*)!.*/m,\n lookbehind: true,\n alias: 'tag',\n inside: {\n comment: /;.*/,\n string: {\n pattern: /([\"'`])(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n greedy: true\n },\n // Anonymous label references, i.e.: jmp @b\n 'label-reference-anonymous': {\n pattern: /(\\s*!\\s*j[a-z]+\\s+)@[fb]/i,\n lookbehind: true,\n alias: 'fasm-label'\n },\n // Named label reference, i.e.: jne label1\n 'label-reference-addressed': {\n pattern: /(\\s*!\\s*j[a-z]+\\s+)[A-Z._?$@][\\w.?$@~#]*/i,\n lookbehind: true,\n alias: 'fasm-label'\n },\n function: {\n pattern: /^(\\s*!\\s*)[\\da-z]+(?=\\s|$)/im,\n lookbehind: true\n },\n 'function-inline': {\n pattern: /(\\s*:\\s*)[\\da-z]+(?=\\s)/i,\n lookbehind: true,\n alias: 'function'\n },\n label: {\n pattern: /^(\\s*!\\s*)[A-Za-z._?$@][\\w.?$@~#]*(?=:)/m,\n lookbehind: true,\n alias: 'fasm-label'\n },\n keyword: [/(?:extern|global)[^;\\r\\n]*/i, /(?:CPU|FLOAT|DEFAULT).*/],\n register: /\\b(?:st\\d|[xyz]mm\\d\\d?|[cdt]r\\d|r\\d\\d?[bwd]?|[er]?[abcd]x|[abcd][hl]|[er]?(?:bp|sp|si|di)|[cdefgs]s|mm\\d+)\\b/i,\n number: /(?:\\b|-|(?=\\$))(?:0[hx](?:[\\da-f]*\\.)?[\\da-f]+(?:p[+-]?\\d+)?|\\d[\\da-f]+[hx]|\\$\\d[\\da-f]*|0[oq][0-7]+|[0-7]+[oq]|0[by][01]+|[01]+[by]|0[dt]\\d+|(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:\\.?e[+-]?\\d+)?[dt]?)\\b/i,\n operator: /[\\[\\]*+\\-/%<>=&|$!,.:]/\n }\n }\n })\n delete Prism.languages.purebasic['class-name']\n delete Prism.languages.purebasic['boolean']\n Prism.languages.pbfasm = Prism.languages['purebasic']\n}\n","'use strict'\nvar refractorHaskell = require('./haskell.js')\nmodule.exports = purescript\npurescript.displayName = 'purescript'\npurescript.aliases = ['purs']\nfunction purescript(Prism) {\n Prism.register(refractorHaskell)\n Prism.languages.purescript = Prism.languages.extend('haskell', {\n keyword: /\\b(?:ado|case|class|data|derive|do|else|forall|if|in|infixl|infixr|instance|let|module|newtype|of|primitive|then|type|where)\\b/,\n 'import-statement': {\n // The imported or hidden names are not included in this import\n // statement. This is because we want to highlight those exactly like\n // we do for the names in the program.\n pattern: /(^\\s*)import\\s+[A-Z][\\w']*(?:\\.[A-Z][\\w']*)*(?:\\s+as\\s+[A-Z][\\w']*(?:\\.[A-Z][\\w']*)*)?(?:\\s+hiding\\b)?/m,\n lookbehind: true,\n inside: {\n keyword: /\\b(?:import|as|hiding)\\b/\n }\n },\n // These are builtin functions only. Constructors are highlighted later as a constant.\n builtin: /\\b(?:absurd|add|ap|append|apply|between|bind|bottom|clamp|compare|comparing|compose|conj|const|degree|discard|disj|div|eq|flap|flip|gcd|identity|ifM|join|lcm|liftA1|liftM1|map|max|mempty|min|mod|mul|negate|not|notEq|one|otherwise|recip|show|sub|top|unit|unless|unlessM|void|when|whenM|zero)\\b/\n })\n Prism.languages.purs = Prism.languages.purescript\n}\n","'use strict'\n\nmodule.exports = python\npython.displayName = 'python'\npython.aliases = ['py']\nfunction python(Prism) {\n Prism.languages.python = {\n comment: {\n pattern: /(^|[^\\\\])#.*/,\n lookbehind: true\n },\n 'string-interpolation': {\n pattern: /(?:f|rf|fr)(?:(\"\"\"|''')[\\s\\S]*?\\1|(\"|')(?:\\\\.|(?!\\2)[^\\\\\\r\\n])*\\2)/i,\n greedy: true,\n inside: {\n interpolation: {\n // \"{\" <expression> <optional \"!s\", \"!r\", or \"!a\"> <optional \":\" format specifier> \"}\"\n pattern: /((?:^|[^{])(?:{{)*){(?!{)(?:[^{}]|{(?!{)(?:[^{}]|{(?!{)(?:[^{}])+})+})+}/,\n lookbehind: true,\n inside: {\n 'format-spec': {\n pattern: /(:)[^:(){}]+(?=}$)/,\n lookbehind: true\n },\n 'conversion-option': {\n pattern: /![sra](?=[:}]$)/,\n alias: 'punctuation'\n },\n rest: null\n }\n },\n string: /[\\s\\S]+/\n }\n },\n 'triple-quoted-string': {\n pattern: /(?:[rub]|rb|br)?(\"\"\"|''')[\\s\\S]*?\\1/i,\n greedy: true,\n alias: 'string'\n },\n string: {\n pattern: /(?:[rub]|rb|br)?(\"|')(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/i,\n greedy: true\n },\n function: {\n pattern: /((?:^|\\s)def[ \\t]+)[a-zA-Z_]\\w*(?=\\s*\\()/g,\n lookbehind: true\n },\n 'class-name': {\n pattern: /(\\bclass\\s+)\\w+/i,\n lookbehind: true\n },\n decorator: {\n pattern: /(^\\s*)@\\w+(?:\\.\\w+)*/im,\n lookbehind: true,\n alias: ['annotation', 'punctuation'],\n inside: {\n punctuation: /\\./\n }\n },\n keyword: /\\b(?:and|as|assert|async|await|break|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|nonlocal|not|or|pass|print|raise|return|try|while|with|yield)\\b/,\n builtin: /\\b(?:__import__|abs|all|any|apply|ascii|basestring|bin|bool|buffer|bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|memoryview|min|next|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)\\b/,\n boolean: /\\b(?:True|False|None)\\b/,\n number: /(?:\\b(?=\\d)|\\B(?=\\.))(?:0[bo])?(?:(?:\\d|0x[\\da-f])[\\da-f]*(?:\\.\\d*)?|\\.\\d+)(?:e[+-]?\\d+)?j?\\b/i,\n operator: /[-+%=]=?|!=|\\*\\*?=?|\\/\\/?=?|<[<=>]?|>[=>]?|[&|^~]/,\n punctuation: /[{}[\\];(),.:]/\n }\n Prism.languages.python['string-interpolation'].inside[\n 'interpolation'\n ].inside.rest = Prism.languages.python\n Prism.languages.py = Prism.languages.python\n}\n","'use strict'\n\nmodule.exports = q\nq.displayName = 'q'\nq.aliases = []\nfunction q(Prism) {\n Prism.languages.q = {\n string: /\"(?:\\\\.|[^\"\\\\\\r\\n])*\"/,\n comment: [\n // From http://code.kx.com/wiki/Reference/Slash:\n // When / is following a space (or a right parenthesis, bracket, or brace), it is ignored with the rest of the line.\n {\n pattern: /([\\t )\\]}])\\/.*/,\n lookbehind: true,\n greedy: true\n }, // From http://code.kx.com/wiki/Reference/Slash:\n // A line which has / as its first character and contains at least one other non-whitespace character is a whole-line comment and is ignored entirely.\n // A / on a line by itself begins a multiline comment which is terminated by the next \\ on a line by itself.\n // If a / is not matched by a \\, the multiline comment is unterminated and continues to end of file.\n // The / and \\ must be the first char on the line, but may be followed by any amount of whitespace.\n {\n pattern: /(^|\\r?\\n|\\r)\\/[\\t ]*(?:(?:\\r?\\n|\\r)(?:.*(?:\\r?\\n|\\r(?!\\n)))*?(?:\\\\(?=[\\t ]*(?:\\r?\\n|\\r))|$)|\\S.*)/,\n lookbehind: true,\n greedy: true\n }, // From http://code.kx.com/wiki/Reference/Slash:\n // A \\ on a line by itself with no preceding matching / will comment to end of file.\n {\n pattern: /^\\\\[\\t ]*(?:\\r?\\n|\\r)[\\s\\S]+/m,\n greedy: true\n },\n {\n pattern: /^#!.+/m,\n greedy: true\n }\n ],\n symbol: /`(?::\\S+|[\\w.]*)/,\n datetime: {\n pattern: /0N[mdzuvt]|0W[dtz]|\\d{4}\\.\\d\\d(?:m|\\.\\d\\d(?:T(?:\\d\\d(?::\\d\\d(?::\\d\\d(?:[.:]\\d\\d\\d)?)?)?)?)?[dz]?)|\\d\\d:\\d\\d(?::\\d\\d(?:[.:]\\d\\d\\d)?)?[uvt]?/,\n alias: 'number'\n },\n // The negative look-ahead prevents bad highlighting\n // of verbs 0: and 1:\n number: /\\b(?![01]:)(?:0[wn]|0W[hj]?|0N[hje]?|0x[\\da-fA-F]+|\\d+(?:\\.\\d*)?(?:e[+-]?\\d+)?[hjfeb]?)/,\n keyword: /\\\\\\w+\\b|\\b(?:abs|acos|aj0?|all|and|any|asc|asin|asof|atan|attr|avgs?|binr?|by|ceiling|cols|cor|cos|count|cov|cross|csv|cut|delete|deltas|desc|dev|differ|distinct|div|do|dsave|ej|enlist|eval|except|exec|exit|exp|fby|fills|first|fkeys|flip|floor|from|get|getenv|group|gtime|hclose|hcount|hdel|hopen|hsym|iasc|identity|idesc|if|ij|in|insert|inter|inv|keys?|last|like|list|ljf?|load|log|lower|lsq|ltime|ltrim|mavg|maxs?|mcount|md5|mdev|med|meta|mins?|mmax|mmin|mmu|mod|msum|neg|next|not|null|or|over|parse|peach|pj|plist|prds?|prev|prior|rand|rank|ratios|raze|read0|read1|reciprocal|reval|reverse|rload|rotate|rsave|rtrim|save|scan|scov|sdev|select|set|setenv|show|signum|sin|sqrt|ssr?|string|sublist|sums?|sv|svar|system|tables|tan|til|trim|txf|type|uj|ungroup|union|update|upper|upsert|value|var|views?|vs|wavg|where|while|within|wj1?|wsum|ww|xasc|xbar|xcols?|xdesc|xexp|xgroup|xkey|xlog|xprev|xrank)\\b/,\n adverb: {\n pattern: /['\\/\\\\]:?|\\beach\\b/,\n alias: 'function'\n },\n verb: {\n pattern: /(?:\\B\\.\\B|\\b[01]:|<[=>]?|>=?|[:+\\-*%,!?~=|$&#@^]):?|\\b_\\b:?/,\n alias: 'operator'\n },\n punctuation: /[(){}\\[\\];.]/\n }\n}\n","'use strict'\n\nmodule.exports = qml\nqml.displayName = 'qml'\nqml.aliases = []\nfunction qml(Prism) {\n ;(function (Prism) {\n var jsString = /\"(?:\\\\.|[^\\\\\"\\r\\n])*\"|'(?:\\\\.|[^\\\\'\\r\\n])*'/.source\n var jsComment = /\\/\\/.*(?!.)|\\/\\*(?:[^*]|\\*(?!\\/))*\\*\\//.source\n var jsExpr = /(?:[^\\\\()[\\]{}\"'/]|<string>|\\/(?![*/])|<comment>|\\(<expr>*\\)|\\[<expr>*\\]|\\{<expr>*\\}|\\\\[\\s\\S])/.source\n .replace(/<string>/g, function () {\n return jsString\n })\n .replace(/<comment>/g, function () {\n return jsComment\n }) // the pattern will blow up, so only a few iterations\n for (var i = 0; i < 2; i++) {\n jsExpr = jsExpr.replace(/<expr>/g, function () {\n return jsExpr\n })\n }\n jsExpr = jsExpr.replace(/<expr>/g, '[^\\\\s\\\\S]')\n Prism.languages.qml = {\n comment: {\n pattern: /\\/\\/.*|\\/\\*[\\s\\S]*?\\*\\//,\n greedy: true\n },\n 'javascript-function': {\n pattern: RegExp(\n /((?:^|;)[ \\t]*)function\\s+(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*\\s*\\(<js>*\\)\\s*\\{<js>*\\}/.source.replace(\n /<js>/g,\n function () {\n return jsExpr\n }\n ),\n 'm'\n ),\n lookbehind: true,\n greedy: true,\n alias: 'language-javascript',\n inside: Prism.languages.javascript\n },\n 'class-name': {\n pattern: /((?:^|[:;])[ \\t]*)(?!\\d)\\w+(?=[ \\t]*\\{|[ \\t]+on\\b)/m,\n lookbehind: true\n },\n property: [\n {\n pattern: /((?:^|[;{])[ \\t]*)(?!\\d)\\w+(?:\\.\\w+)*(?=[ \\t]*:)/m,\n lookbehind: true\n },\n {\n pattern: /((?:^|[;{])[ \\t]*)property[ \\t]+(?!\\d)\\w+(?:\\.\\w+)*[ \\t]+(?!\\d)\\w+(?:\\.\\w+)*(?=[ \\t]*:)/m,\n lookbehind: true,\n inside: {\n keyword: /^property/,\n property: /\\w+(?:\\.\\w+)*/\n }\n }\n ],\n 'javascript-expression': {\n pattern: RegExp(\n /(:[ \\t]*)(?![\\s;}[])(?:(?!$|[;}])<js>)+/.source.replace(\n /<js>/g,\n function () {\n return jsExpr\n }\n ),\n 'm'\n ),\n lookbehind: true,\n greedy: true,\n alias: 'language-javascript',\n inside: Prism.languages.javascript\n },\n string: /\"(?:\\\\.|[^\\\\\"\\r\\n])*\"/,\n keyword: /\\b(?:as|import|on)\\b/,\n punctuation: /[{}[\\]:;,]/\n }\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = qore\nqore.displayName = 'qore'\nqore.aliases = []\nfunction qore(Prism) {\n Prism.languages.qore = Prism.languages.extend('clike', {\n comment: {\n pattern: /(^|[^\\\\])(?:\\/\\*[\\s\\S]*?\\*\\/|(?:\\/\\/|#).*)/,\n lookbehind: true\n },\n // Overridden to allow unescaped multi-line strings\n string: {\n pattern: /(\"|')(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1/,\n greedy: true\n },\n keyword: /\\b(?:abstract|any|assert|binary|bool|boolean|break|byte|case|catch|char|class|code|const|continue|data|default|do|double|else|enum|extends|final|finally|float|for|goto|hash|if|implements|import|inherits|instanceof|int|interface|long|my|native|new|nothing|null|object|our|own|private|reference|rethrow|return|short|soft(?:int|float|number|bool|string|date|list)|static|strictfp|string|sub|super|switch|synchronized|this|throw|throws|transient|try|void|volatile|while)\\b/,\n boolean: /\\b(?:true|false)\\b/i,\n function: /\\$?\\b(?!\\d)\\w+(?=\\()/,\n number: /\\b(?:0b[01]+|0x(?:[\\da-f]*\\.)?[\\da-fp\\-]+|(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:e\\d+)?[df]|(?:\\d+(?:\\.\\d+)?|\\.\\d+))\\b/i,\n operator: {\n pattern: /(^|[^.])(?:\\+[+=]?|-[-=]?|[!=](?:==?|~)?|>>?=?|<(?:=>?|<=?)?|&[&=]?|\\|[|=]?|[*\\/%^]=?|[~?])/,\n lookbehind: true\n },\n variable: /\\$(?!\\d)\\w+\\b/\n })\n}\n","'use strict'\n\nmodule.exports = r\nr.displayName = 'r'\nr.aliases = []\nfunction r(Prism) {\n Prism.languages.r = {\n comment: /#.*/,\n string: {\n pattern: /(['\"])(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n greedy: true\n },\n 'percent-operator': {\n // Includes user-defined operators\n // and %%, %*%, %/%, %in%, %o%, %x%\n pattern: /%[^%\\s]*%/,\n alias: 'operator'\n },\n boolean: /\\b(?:TRUE|FALSE)\\b/,\n ellipsis: /\\.\\.(?:\\.|\\d+)/,\n number: [\n /\\b(?:NaN|Inf)\\b/,\n /(?:\\b0x[\\dA-Fa-f]+(?:\\.\\d*)?|\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:[EePp][+-]?\\d+)?[iL]?/\n ],\n keyword: /\\b(?:if|else|repeat|while|function|for|in|next|break|NULL|NA|NA_integer_|NA_real_|NA_complex_|NA_character_)\\b/,\n operator: /->?>?|<(?:=|<?-)?|[>=!]=?|::?|&&?|\\|\\|?|[+*\\/^$@~]/,\n punctuation: /[(){}\\[\\],;]/\n }\n}\n","'use strict'\nvar refractorScheme = require('./scheme.js')\nmodule.exports = racket\nracket.displayName = 'racket'\nracket.aliases = ['rkt']\nfunction racket(Prism) {\n Prism.register(refractorScheme)\n Prism.languages.racket = Prism.languages.extend('scheme', {\n 'lambda-parameter': {\n // the racket lambda syntax is a lot more complex, so we won't even attempt to capture it.\n // this will just prevent false positives of the `function` pattern\n pattern: /(\\(lambda\\s+\\()[^()'\\s]+/,\n lookbehind: true\n }\n }) // Add brackets to racket\n // The basic idea here is to go through all pattens of Scheme and replace all occurrences of \"(\" with the union of \"(\"\n // and \"[\"; Similar for \")\". This is a bit tricky because \"(\" can be escaped or inside a character set. Both cases\n // have to be handled differently and, of course, we don't want to destroy groups, so we can only replace literal \"(\"\n // and \")\".\n // To do this, we use a regular expression which will parse any JS regular expression. It works because regexes are\n // matches from left to right and already matched text cannot be matched again. We use this to first capture all\n // escaped characters (not really, we don't get escape sequences but we don't need them). Because we already captured\n // all escaped characters, we know that any \"[\" character is the start of a character set, so we match that character\n // set whole.\n // With the regex parsed, we only have to replace all escaped \"(\" (they cannot be unescaped outside of character sets)\n // with /[([]/ and replace all \"(\" inside character sets.\n // Note: This method does not work for \"(\" that are escaped like this /\\x28/ or this /\\u0028/.\n Prism.languages.DFS(Prism.languages.racket, function (key, value) {\n if (Prism.util.type(value) === 'RegExp') {\n var source = value.source.replace(\n /\\\\(.)|\\[\\^?((?:\\\\.|[^\\\\\\]])*)\\]/g,\n function (m, g1, g2) {\n if (g1) {\n if (g1 === '(') {\n // replace all '(' characters outside character sets\n return '[([]'\n }\n if (g1 === ')') {\n // replace all ')' characters outside character sets\n return '[)\\\\]]'\n }\n }\n if (g2) {\n var prefix = m[1] === '^' ? '[^' : '['\n return (\n prefix +\n g2.replace(/\\\\(.)|[()]/g, function (m, g1) {\n if (m === '(' || g1 === '(') {\n // replace all '(' characters inside character sets\n return '(['\n }\n if (m === ')' || g1 === ')') {\n // replace all ')' characters inside character sets\n return ')\\\\]'\n }\n return m\n }) +\n ']'\n )\n }\n return m\n }\n )\n this[key] = RegExp(source, value.flags)\n }\n })\n Prism.languages.insertBefore('racket', 'string', {\n lang: {\n pattern: /^#lang.+/m,\n greedy: true,\n alias: 'keyword'\n }\n })\n Prism.languages.rkt = Prism.languages.racket\n}\n","'use strict'\n\nmodule.exports = reason\nreason.displayName = 'reason'\nreason.aliases = []\nfunction reason(Prism) {\n Prism.languages.reason = Prism.languages.extend('clike', {\n string: {\n pattern: /\"(?:\\\\(?:\\r\\n|[\\s\\S])|[^\\\\\\r\\n\"])*\"/,\n greedy: true\n },\n // 'class-name' must be matched *after* 'constructor' defined below\n 'class-name': /\\b[A-Z]\\w*/,\n keyword: /\\b(?:and|as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|method|module|mutable|new|nonrec|object|of|open|or|private|rec|sig|struct|switch|then|to|try|type|val|virtual|when|while|with)\\b/,\n operator: /\\.{3}|:[:=]|\\|>|->|=(?:==?|>)?|<=?|>=?|[|^?'#!~`]|[+\\-*\\/]\\.?|\\b(?:mod|land|lor|lxor|lsl|lsr|asr)\\b/\n })\n Prism.languages.insertBefore('reason', 'class-name', {\n character: {\n pattern: /'(?:\\\\x[\\da-f]{2}|\\\\o[0-3][0-7][0-7]|\\\\\\d{3}|\\\\.|[^'\\\\\\r\\n])'/,\n alias: 'string'\n },\n constructor: {\n // Negative look-ahead prevents from matching things like String.capitalize\n pattern: /\\b[A-Z]\\w*\\b(?!\\s*\\.)/,\n alias: 'variable'\n },\n label: {\n pattern: /\\b[a-z]\\w*(?=::)/,\n alias: 'symbol'\n }\n }) // We can't match functions property, so let's not even try.\n delete Prism.languages.reason.function\n}\n","'use strict'\n\nmodule.exports = regex\nregex.displayName = 'regex'\nregex.aliases = []\nfunction regex(Prism) {\n ;(function (Prism) {\n var specialEscape = {\n pattern: /\\\\[\\\\(){}[\\]^$+*?|.]/,\n alias: 'escape'\n }\n var escape = /\\\\(?:x[\\da-fA-F]{2}|u[\\da-fA-F]{4}|u\\{[\\da-fA-F]+\\}|c[a-zA-Z]|0[0-7]{0,2}|[123][0-7]{2}|.)/\n var charClass = {\n pattern: /\\.|\\\\[wsd]|\\\\p{[^{}]+}/i,\n alias: 'class-name'\n }\n var charClassWithoutDot = {\n pattern: /\\\\[wsd]|\\\\p{[^{}]+}/i,\n alias: 'class-name'\n }\n var rangeChar = '(?:[^\\\\\\\\-]|' + escape.source + ')'\n var range = RegExp(rangeChar + '-' + rangeChar) // the name of a capturing group\n var groupName = {\n pattern: /(<|')[^<>']+(?=[>']$)/,\n lookbehind: true,\n alias: 'variable'\n }\n Prism.languages.regex = {\n charset: {\n pattern: /((?:^|[^\\\\])(?:\\\\\\\\)*)\\[(?:[^\\\\\\]]|\\\\[\\s\\S])*\\]/,\n lookbehind: true,\n inside: {\n 'charset-negation': {\n pattern: /(^\\[)\\^/,\n lookbehind: true,\n alias: 'operator'\n },\n 'charset-punctuation': {\n pattern: /^\\[|\\]$/,\n alias: 'punctuation'\n },\n range: {\n pattern: range,\n inside: {\n escape: escape,\n 'range-punctuation': {\n pattern: /-/,\n alias: 'operator'\n }\n }\n },\n 'special-escape': specialEscape,\n charclass: charClassWithoutDot,\n escape: escape\n }\n },\n 'special-escape': specialEscape,\n charclass: charClass,\n backreference: [\n {\n // a backreference which is not an octal escape\n pattern: /\\\\(?![123][0-7]{2})[1-9]/,\n alias: 'keyword'\n },\n {\n pattern: /\\\\k<[^<>']+>/,\n alias: 'keyword',\n inside: {\n 'group-name': groupName\n }\n }\n ],\n anchor: {\n pattern: /[$^]|\\\\[ABbGZz]/,\n alias: 'function'\n },\n escape: escape,\n group: [\n {\n // https://docs.oracle.com/javase/10/docs/api/java/util/regex/Pattern.html\n // https://docs.microsoft.com/en-us/dotnet/standard/base-types/regular-expression-language-quick-reference?view=netframework-4.7.2#grouping-constructs\n // (), (?<name>), (?'name'), (?>), (?:), (?=), (?!), (?<=), (?<!), (?is-m), (?i-m:)\n pattern: /\\((?:\\?(?:<[^<>']+>|'[^<>']+'|[>:]|<?[=!]|[idmnsuxU]+(?:-[idmnsuxU]+)?:?))?/,\n alias: 'punctuation',\n inside: {\n 'group-name': groupName\n }\n },\n {\n pattern: /\\)/,\n alias: 'punctuation'\n }\n ],\n quantifier: {\n pattern: /(?:[+*?]|\\{\\d+(?:,\\d*)?\\})[?+]?/,\n alias: 'number'\n },\n alternation: {\n pattern: /\\|/,\n alias: 'keyword'\n }\n }\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = renpy\nrenpy.displayName = 'renpy'\nrenpy.aliases = ['rpy']\nfunction renpy(Prism) {\n Prism.languages.renpy = {\n // TODO Write tests.\n comment: {\n pattern: /(^|[^\\\\])#.+/,\n lookbehind: true\n },\n string: {\n pattern: /(\"\"\"|''')[\\s\\S]+?\\1|(\"|')(?:\\\\.|(?!\\2)[^\\\\\\r\\n])*\\2|(?:^#?(?:(?:[0-9a-fA-F]{2}){3}|(?:[0-9a-fA-F]){3})$)/m,\n greedy: true\n },\n function: /[a-z_]\\w*(?=\\()/i,\n property: /\\b(?:insensitive|idle|hover|selected_idle|selected_hover|background|position|alt|xpos|ypos|pos|xanchor|yanchor|anchor|xalign|yalign|align|xcenter|ycenter|xofsset|yoffset|ymaximum|maximum|xmaximum|xminimum|yminimum|minimum|xsize|ysizexysize|xfill|yfill|area|antialias|black_color|bold|caret|color|first_indent|font|size|italic|justify|kerning|language|layout|line_leading|line_overlap_split|line_spacing|min_width|newline_indent|outlines|rest_indent|ruby_style|slow_cps|slow_cps_multiplier|strikethrough|text_align|underline|hyperlink_functions|vertical|hinting|foreground|left_margin|xmargin|top_margin|bottom_margin|ymargin|left_padding|right_padding|xpadding|top_padding|bottom_padding|ypadding|size_group|child|hover_sound|activate_sound|mouse|focus_mask|keyboard_focus|bar_vertical|bar_invert|bar_resizing|left_gutter|right_gutter|top_gutter|bottom_gutter|left_bar|right_bar|top_bar|bottom_bar|thumb|thumb_shadow|thumb_offset|unscrollable|spacing|first_spacing|box_reverse|box_wrap|order_reverse|fit_first|ysize|thumbnail_width|thumbnail_height|help|text_ypos|text_xpos|idle_color|hover_color|selected_idle_color|selected_hover_color|insensitive_color|alpha|insensitive_background|hover_background|zorder|value|width|xadjustment|xanchoraround|xaround|xinitial|xoffset|xzoom|yadjustment|yanchoraround|yaround|yinitial|yzoom|zoom|ground|height|text_style|text_y_fudge|selected_insensitive|has_sound|has_music|has_voice|focus|hovered|image_style|length|minwidth|mousewheel|offset|prefix|radius|range|right_margin|rotate|rotate_pad|developer|screen_width|screen_height|window_title|name|version|windows_icon|default_fullscreen|default_text_cps|default_afm_time|main_menu_music|sample_sound|enter_sound|exit_sound|save_directory|enter_transition|exit_transition|intra_transition|main_game_transition|game_main_transition|end_splash_transition|end_game_transition|after_load_transition|window_show_transition|window_hide_transition|adv_nvl_transition|nvl_adv_transition|enter_yesno_transition|exit_yesno_transition|enter_replay_transition|exit_replay_transition|say_attribute_transition|directory_name|executable_name|include_update|window_icon|modal|google_play_key|google_play_salt|drag_name|drag_handle|draggable|dragged|droppable|dropped|narrator_menu|action|default_afm_enable|version_name|version_tuple|inside|fadeout|fadein|layers|layer_clipping|linear|scrollbars|side_xpos|side_ypos|side_spacing|edgescroll|drag_joined|drag_raise|drop_shadow|drop_shadow_color|subpixel|easein|easeout|time|crop|auto|update|get_installed_packages|can_update|UpdateVersion|Update|overlay_functions|translations|window_left_padding|show_side_image|show_two_window)\\b/,\n tag: /\\b(?:label|image|menu|[hv]box|frame|text|imagemap|imagebutton|bar|vbar|screen|textbutton|buttoscreenn|fixed|grid|input|key|mousearea|side|timer|viewport|window|hotspot|hotbar|self|button|drag|draggroup|tag|mm_menu_frame|nvl|block|parallel)\\b|\\$/,\n keyword: /\\b(?:as|assert|break|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|pass|print|raise|return|try|while|yield|adjustment|alignaround|allow|angle|around|box_layout|cache|changed|child_size|clicked|clipping|corner1|corner2|default|delay|exclude|scope|slow|slow_abortable|slow_done|sound|style_group|substitute|suffix|transform_anchor|transpose|unhovered|config|theme|mm_root|gm_root|rounded_window|build|disabled_text|disabled|widget_selected|widget_text|widget_hover|widget|updater|behind|call|expression|hide|init|jump|onlayer|python|renpy|scene|set|show|transform|play|queue|stop|pause|define|window|repeat|contains|choice|on|function|event|animation|clockwise|counterclockwise|circles|knot|null|None|random|has|add|use|fade|dissolve|style|store|id|voice|center|left|right|less_rounded|music|movie|clear|persistent|ui)\\b/,\n boolean: /\\b(?:[Tt]rue|[Ff]alse)\\b/,\n number: /(?:\\b(?:0[bo])?(?:(?:\\d|0x[\\da-f])[\\da-f]*(?:\\.\\d*)?)|\\B\\.\\d+)(?:e[+-]?\\d+)?j?/i,\n operator: /[-+%=]=?|!=|\\*\\*?=?|\\/\\/?=?|<[<=>]?|>[=>]?|[&|^~]|\\b(?:or|and|not|with|at)\\b/,\n punctuation: /[{}[\\];(),.:]/\n }\n Prism.languages.rpy = Prism.languages.renpy\n}\n","'use strict'\n\nmodule.exports = rest\nrest.displayName = 'rest'\nrest.aliases = []\nfunction rest(Prism) {\n Prism.languages.rest = {\n table: [\n {\n pattern: /(\\s*)(?:\\+[=-]+)+\\+(?:\\r?\\n|\\r)(?:\\1[+|].+[+|](?:\\r?\\n|\\r))+\\1(?:\\+[=-]+)+\\+/,\n lookbehind: true,\n inside: {\n punctuation: /\\||(?:\\+[=-]+)+\\+/\n }\n },\n {\n pattern: /(\\s*)=+ [ =]*=(?:(?:\\r?\\n|\\r)\\1.+)+(?:\\r?\\n|\\r)\\1=+ [ =]*=(?=(?:\\r?\\n|\\r){2}|\\s*$)/,\n lookbehind: true,\n inside: {\n punctuation: /[=-]+/\n }\n }\n ],\n // Directive-like patterns\n 'substitution-def': {\n pattern: /(^\\s*\\.\\. )\\|(?:[^|\\s](?:[^|]*[^|\\s])?)\\| [^:]+::/m,\n lookbehind: true,\n inside: {\n substitution: {\n pattern: /^\\|(?:[^|\\s]|[^|\\s][^|]*[^|\\s])\\|/,\n alias: 'attr-value',\n inside: {\n punctuation: /^\\||\\|$/\n }\n },\n directive: {\n pattern: /( +)(?! )[^:]+::/,\n lookbehind: true,\n alias: 'function',\n inside: {\n punctuation: /::$/\n }\n }\n }\n },\n 'link-target': [\n {\n pattern: /(^\\s*\\.\\. )\\[[^\\]]+\\]/m,\n lookbehind: true,\n alias: 'string',\n inside: {\n punctuation: /^\\[|\\]$/\n }\n },\n {\n pattern: /(^\\s*\\.\\. )_(?:`[^`]+`|(?:[^:\\\\]|\\\\.)+):/m,\n lookbehind: true,\n alias: 'string',\n inside: {\n punctuation: /^_|:$/\n }\n }\n ],\n directive: {\n pattern: /(^\\s*\\.\\. )[^:]+::/m,\n lookbehind: true,\n alias: 'function',\n inside: {\n punctuation: /::$/\n }\n },\n comment: {\n // The two alternatives try to prevent highlighting of blank comments\n pattern: /(^\\s*\\.\\.)(?:(?: .+)?(?:(?:\\r?\\n|\\r).+)+| .+)(?=(?:\\r?\\n|\\r){2}|$)/m,\n lookbehind: true\n },\n title: [\n // Overlined and underlined\n {\n pattern: /^(([!\"#$%&'()*+,\\-.\\/:;<=>?@\\[\\\\\\]^_`{|}~])\\2+)(?:\\r?\\n|\\r).+(?:\\r?\\n|\\r)\\1$/m,\n inside: {\n punctuation: /^[!\"#$%&'()*+,\\-.\\/:;<=>?@\\[\\\\\\]^_`{|}~]+|[!\"#$%&'()*+,\\-.\\/:;<=>?@\\[\\\\\\]^_`{|}~]+$/,\n important: /.+/\n }\n }, // Underlined only\n {\n pattern: /(^|(?:\\r?\\n|\\r){2}).+(?:\\r?\\n|\\r)([!\"#$%&'()*+,\\-.\\/:;<=>?@\\[\\\\\\]^_`{|}~])\\2+(?=\\r?\\n|\\r|$)/,\n lookbehind: true,\n inside: {\n punctuation: /[!\"#$%&'()*+,\\-.\\/:;<=>?@\\[\\\\\\]^_`{|}~]+$/,\n important: /.+/\n }\n }\n ],\n hr: {\n pattern: /((?:\\r?\\n|\\r){2})([!\"#$%&'()*+,\\-.\\/:;<=>?@\\[\\\\\\]^_`{|}~])\\2{3,}(?=(?:\\r?\\n|\\r){2})/,\n lookbehind: true,\n alias: 'punctuation'\n },\n field: {\n pattern: /(^\\s*):[^:\\r\\n]+:(?= )/m,\n lookbehind: true,\n alias: 'attr-name'\n },\n 'command-line-option': {\n pattern: /(^\\s*)(?:[+-][a-z\\d]|(?:--|\\/)[a-z\\d-]+)(?:[ =](?:[a-z][\\w-]*|<[^<>]+>))?(?:, (?:[+-][a-z\\d]|(?:--|\\/)[a-z\\d-]+)(?:[ =](?:[a-z][\\w-]*|<[^<>]+>))?)*(?=(?:\\r?\\n|\\r)? {2,}\\S)/im,\n lookbehind: true,\n alias: 'symbol'\n },\n 'literal-block': {\n pattern: /::(?:\\r?\\n|\\r){2}([ \\t]+)(?![ \\t]).+(?:(?:\\r?\\n|\\r)\\1.+)*/,\n inside: {\n 'literal-block-punctuation': {\n pattern: /^::/,\n alias: 'punctuation'\n }\n }\n },\n 'quoted-literal-block': {\n pattern: /::(?:\\r?\\n|\\r){2}([!\"#$%&'()*+,\\-.\\/:;<=>?@\\[\\\\\\]^_`{|}~]).*(?:(?:\\r?\\n|\\r)\\1.*)*/,\n inside: {\n 'literal-block-punctuation': {\n pattern: /^(?:::|([!\"#$%&'()*+,\\-.\\/:;<=>?@\\[\\\\\\]^_`{|}~])\\1*)/m,\n alias: 'punctuation'\n }\n }\n },\n 'list-bullet': {\n pattern: /(^\\s*)(?:[*+\\-•‣⁃]|\\(?(?:\\d+|[a-z]|[ivxdclm]+)\\)|(?:\\d+|[a-z]|[ivxdclm]+)\\.)(?= )/im,\n lookbehind: true,\n alias: 'punctuation'\n },\n 'doctest-block': {\n pattern: /(^\\s*)>>> .+(?:(?:\\r?\\n|\\r).+)*/m,\n lookbehind: true,\n inside: {\n punctuation: /^>>>/\n }\n },\n inline: [\n {\n pattern: /(^|[\\s\\-:\\/'\"<(\\[{])(?::[^:]+:`.*?`|`.*?`:[^:]+:|(\\*\\*?|``?|\\|)(?!\\s).*?[^\\s]\\2(?=[\\s\\-.,:;!?\\\\\\/'\")\\]}]|$))/m,\n lookbehind: true,\n inside: {\n bold: {\n pattern: /(^\\*\\*).+(?=\\*\\*$)/,\n lookbehind: true\n },\n italic: {\n pattern: /(^\\*).+(?=\\*$)/,\n lookbehind: true\n },\n 'inline-literal': {\n pattern: /(^``).+(?=``$)/,\n lookbehind: true,\n alias: 'symbol'\n },\n role: {\n pattern: /^:[^:]+:|:[^:]+:$/,\n alias: 'function',\n inside: {\n punctuation: /^:|:$/\n }\n },\n 'interpreted-text': {\n pattern: /(^`).+(?=`$)/,\n lookbehind: true,\n alias: 'attr-value'\n },\n substitution: {\n pattern: /(^\\|).+(?=\\|$)/,\n lookbehind: true,\n alias: 'attr-value'\n },\n punctuation: /\\*\\*?|``?|\\|/\n }\n }\n ],\n link: [\n {\n pattern: /\\[[^\\]]+\\]_(?=[\\s\\-.,:;!?\\\\\\/'\")\\]}]|$)/,\n alias: 'string',\n inside: {\n punctuation: /^\\[|\\]_$/\n }\n },\n {\n pattern: /(?:\\b[a-z\\d]+(?:[_.:+][a-z\\d]+)*_?_|`[^`]+`_?_|_`[^`]+`)(?=[\\s\\-.,:;!?\\\\\\/'\")\\]}]|$)/i,\n alias: 'string',\n inside: {\n punctuation: /^_?`|`$|`?_?_$/\n }\n }\n ],\n // Line block start,\n // quote attribution,\n // explicit markup start,\n // and anonymous hyperlink target shortcut (__)\n punctuation: {\n pattern: /(^\\s*)(?:\\|(?= |$)|(?:---?|—|\\.\\.|__)(?= )|\\.\\.$)/m,\n lookbehind: true\n }\n }\n}\n","'use strict'\n\nmodule.exports = rip\nrip.displayName = 'rip'\nrip.aliases = []\nfunction rip(Prism) {\n Prism.languages.rip = {\n comment: /#.*/,\n keyword: /(?:=>|->)|\\b(?:class|if|else|switch|case|return|exit|try|catch|finally|raise)\\b/,\n builtin: /@|\\bSystem\\b/,\n boolean: /\\b(?:true|false)\\b/,\n date: /\\b\\d{4}-\\d{2}-\\d{2}\\b/,\n time: /\\b\\d{2}:\\d{2}:\\d{2}\\b/,\n datetime: /\\b\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\b/,\n character: /\\B`[^\\s`'\",.:;#\\/\\\\()<>\\[\\]{}]\\b/,\n regex: {\n pattern: /(^|[^/])\\/(?!\\/)(?:\\[[^\\n\\r\\]]*\\]|\\\\.|[^/\\\\\\r\\n\\[])+\\/(?=\\s*(?:$|[\\r\\n,.;})]))/,\n lookbehind: true,\n greedy: true\n },\n symbol: /:[^\\d\\s`'\",.:;#\\/\\\\()<>\\[\\]{}][^\\s`'\",.:;#\\/\\\\()<>\\[\\]{}]*/,\n string: {\n pattern: /(\"|')(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n greedy: true\n },\n number: /[+-]?\\b(?:\\d+\\.\\d+|\\d+)\\b/,\n punctuation: /(?:\\.{2,3})|[`,.:;=\\/\\\\()<>\\[\\]{}]/,\n reference: /[^\\d\\s`'\",.:;#\\/\\\\()<>\\[\\]{}][^\\s`'\",.:;#\\/\\\\()<>\\[\\]{}]*/\n }\n}\n","'use strict'\n\nmodule.exports = roboconf\nroboconf.displayName = 'roboconf'\nroboconf.aliases = []\nfunction roboconf(Prism) {\n Prism.languages.roboconf = {\n comment: /#.*/,\n keyword: {\n pattern: /(^|\\s)(?:(?:facet|instance of)(?=[ \\t]+[\\w-]+[ \\t]*\\{)|(?:external|import)\\b)/,\n lookbehind: true\n },\n component: {\n pattern: /[\\w-]+(?=[ \\t]*\\{)/,\n alias: 'variable'\n },\n property: /[\\w.-]+(?=[ \\t]*:)/,\n value: {\n pattern: /(=[ \\t]*(?![ \\t]))[^,;]+/,\n lookbehind: true,\n alias: 'attr-value'\n },\n optional: {\n pattern: /\\(optional\\)/,\n alias: 'builtin'\n },\n wildcard: {\n pattern: /(\\.)\\*/,\n lookbehind: true,\n alias: 'operator'\n },\n punctuation: /[{},.;:=]/\n }\n}\n","'use strict'\n\nmodule.exports = robotframework\nrobotframework.displayName = 'robotframework'\nrobotframework.aliases = []\nfunction robotframework(Prism) {\n ;(function (Prism) {\n var comment = {\n pattern: /(^[ \\t]*| {2}|\\t)#.*/m,\n lookbehind: true,\n greedy: true\n }\n var variable = {\n pattern: /((?:^|[^\\\\])(?:\\\\{2})*)[$@&%]\\{(?:[^{}\\r\\n]|\\{[^{}\\r\\n]*\\})*\\}/,\n lookbehind: true,\n inside: {\n punctuation: /^[$@&%]\\{|\\}$/\n }\n }\n function createSection(name, inside) {\n var extendecInside = {}\n extendecInside['section-header'] = {\n pattern: /^ ?\\*{3}.+?\\*{3}/,\n alias: 'keyword'\n } // copy inside tokens\n for (var token in inside) {\n extendecInside[token] = inside[token]\n }\n extendecInside['tag'] = {\n pattern: /([\\r\\n](?: |\\t)[ \\t]*)\\[[-\\w]+\\]/,\n lookbehind: true,\n inside: {\n punctuation: /\\[|\\]/\n }\n }\n extendecInside['variable'] = variable\n extendecInside['comment'] = comment\n return {\n pattern: RegExp(\n /^ ?\\*{3}[ \\t]*<name>[ \\t]*\\*{3}(?:.|[\\r\\n](?!\\*{3}))*/.source.replace(\n /<name>/g,\n function () {\n return name\n }\n ),\n 'im'\n ),\n alias: 'section',\n inside: extendecInside\n }\n }\n var docTag = {\n pattern: /(\\[Documentation\\](?: |\\t)[ \\t]*)(?![ \\t]|#)(?:.|(?:\\r\\n?|\\n)[ \\t]*\\.{3})+/,\n lookbehind: true,\n alias: 'string'\n }\n var testNameLike = {\n pattern: /([\\r\\n] ?)(?!#)(?:\\S(?:[ \\t]\\S)*)+/,\n lookbehind: true,\n alias: 'function',\n inside: {\n variable: variable\n }\n }\n var testPropertyLike = {\n pattern: /([\\r\\n](?: |\\t)[ \\t]*)(?!\\[|\\.{3}|#)(?:\\S(?:[ \\t]\\S)*)+/,\n lookbehind: true,\n inside: {\n variable: variable\n }\n }\n Prism.languages['robotframework'] = {\n settings: createSection('Settings', {\n documentation: {\n pattern: /([\\r\\n] ?Documentation(?: |\\t)[ \\t]*)(?![ \\t]|#)(?:.|(?:\\r\\n?|\\n)[ \\t]*\\.{3})+/,\n lookbehind: true,\n alias: 'string'\n },\n property: {\n pattern: /([\\r\\n] ?)(?!\\.{3}|#)(?:\\S(?:[ \\t]\\S)*)+/,\n lookbehind: true\n }\n }),\n variables: createSection('Variables'),\n 'test-cases': createSection('Test Cases', {\n 'test-name': testNameLike,\n documentation: docTag,\n property: testPropertyLike\n }),\n keywords: createSection('Keywords', {\n 'keyword-name': testNameLike,\n documentation: docTag,\n property: testPropertyLike\n }),\n tasks: createSection('Tasks', {\n 'task-name': testNameLike,\n documentation: docTag,\n property: testPropertyLike\n }),\n comment: comment\n }\n Prism.languages.robot = Prism.languages['robotframework']\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = rust\nrust.displayName = 'rust'\nrust.aliases = []\nfunction rust(Prism) {\n ;(function (Prism) {\n var multilineComment = /\\/\\*(?:[^*/]|\\*(?!\\/)|\\/(?!\\*)|<self>)*\\*\\//.source\n for (var i = 0; i < 2; i++) {\n // support 4 levels of nested comments\n multilineComment = multilineComment.replace(/<self>/g, function () {\n return multilineComment\n })\n }\n multilineComment = multilineComment.replace(/<self>/g, function () {\n return /[^\\s\\S]/.source\n })\n Prism.languages.rust = {\n comment: [\n {\n pattern: RegExp(/(^|[^\\\\])/.source + multilineComment),\n lookbehind: true,\n greedy: true\n },\n {\n pattern: /(^|[^\\\\:])\\/\\/.*/,\n lookbehind: true,\n greedy: true\n }\n ],\n string: {\n pattern: /b?\"(?:\\\\[\\s\\S]|[^\\\\\"])*\"|b?r(#*)\"(?:[^\"]|\"(?!\\1))*\"\\1/,\n greedy: true\n },\n char: {\n pattern: /b?'(?:\\\\(?:x[0-7][\\da-fA-F]|u\\{(?:[\\da-fA-F]_*){1,6}\\}|.)|[^\\\\\\r\\n\\t'])'/,\n greedy: true,\n alias: 'string'\n },\n attribute: {\n pattern: /#!?\\[(?:[^\\[\\]\"]|\"(?:\\\\[\\s\\S]|[^\\\\\"])*\")*\\]/,\n greedy: true,\n alias: 'attr-name',\n inside: {\n string: null // see below\n }\n },\n // Closure params should not be confused with bitwise OR |\n 'closure-params': {\n pattern: /([=(,:]\\s*|\\bmove\\s*)\\|[^|]*\\||\\|[^|]*\\|(?=\\s*(?:\\{|->))/,\n lookbehind: true,\n greedy: true,\n inside: {\n 'closure-punctuation': {\n pattern: /^\\||\\|$/,\n alias: 'punctuation'\n },\n rest: null // see below\n }\n },\n 'lifetime-annotation': {\n pattern: /'\\w+/,\n alias: 'symbol'\n },\n 'fragment-specifier': {\n pattern: /(\\$\\w+:)[a-z]+/,\n lookbehind: true,\n alias: 'punctuation'\n },\n variable: /\\$\\w+/,\n 'function-definition': {\n pattern: /(\\bfn\\s+)\\w+/,\n lookbehind: true,\n alias: 'function'\n },\n 'type-definition': {\n pattern: /(\\b(?:enum|struct|union)\\s+)\\w+/,\n lookbehind: true,\n alias: 'class-name'\n },\n 'module-declaration': [\n {\n pattern: /(\\b(?:crate|mod)\\s+)[a-z][a-z_\\d]*/,\n lookbehind: true,\n alias: 'namespace'\n },\n {\n pattern: /(\\b(?:crate|self|super)\\s*)::\\s*[a-z][a-z_\\d]*\\b(?:\\s*::(?:\\s*[a-z][a-z_\\d]*\\s*::)*)?/,\n lookbehind: true,\n alias: 'namespace',\n inside: {\n punctuation: /::/\n }\n }\n ],\n keyword: [\n // https://github.com/rust-lang/reference/blob/master/src/keywords.md\n /\\b(?:abstract|as|async|await|become|box|break|const|continue|crate|do|dyn|else|enum|extern|final|fn|for|if|impl|in|let|loop|macro|match|mod|move|mut|override|priv|pub|ref|return|self|Self|static|struct|super|trait|try|type|typeof|union|unsafe|unsized|use|virtual|where|while|yield)\\b/, // primitives and str\n // https://doc.rust-lang.org/stable/rust-by-example/primitives.html\n /\\b(?:[ui](?:8|16|32|64|128|size)|f(?:32|64)|bool|char|str)\\b/\n ],\n // functions can technically start with an upper-case letter, but this will introduce a lot of false positives\n // and Rust's naming conventions recommend snake_case anyway.\n // https://doc.rust-lang.org/1.0.0/style/style/naming/README.html\n function: /\\b[a-z_]\\w*(?=\\s*(?:::\\s*<|\\())/,\n macro: {\n pattern: /\\w+!/,\n alias: 'property'\n },\n constant: /\\b[A-Z_][A-Z_\\d]+\\b/,\n 'class-name': /\\b[A-Z]\\w*\\b/,\n namespace: {\n pattern: /(?:\\b[a-z][a-z_\\d]*\\s*::\\s*)*\\b[a-z][a-z_\\d]*\\s*::(?!\\s*<)/,\n inside: {\n punctuation: /::/\n }\n },\n // Hex, oct, bin, dec numbers with visual separators and type suffix\n number: /\\b(?:0x[\\dA-Fa-f](?:_?[\\dA-Fa-f])*|0o[0-7](?:_?[0-7])*|0b[01](?:_?[01])*|(?:(?:\\d(?:_?\\d)*)?\\.)?\\d(?:_?\\d)*(?:[Ee][+-]?\\d+)?)(?:_?(?:[iu](?:8|16|32|64|size)?|f32|f64))?\\b/,\n boolean: /\\b(?:false|true)\\b/,\n punctuation: /->|\\.\\.=|\\.{1,3}|::|[{}[\\];(),:]/,\n operator: /[-+*\\/%!^]=?|=[=>]?|&[&=]?|\\|[|=]?|<<?=?|>>?=?|[@?]/\n }\n Prism.languages.rust['closure-params'].inside.rest = Prism.languages.rust\n Prism.languages.rust['attribute'].inside['string'] =\n Prism.languages.rust['string']\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = sas\nsas.displayName = 'sas'\nsas.aliases = []\nfunction sas(Prism) {\n ;(function (Prism) {\n var stringPattern = /(?:\"(?:\"\"|[^\"])*\"(?!\")|'(?:''|[^'])*'(?!'))/.source\n var number = /\\b(?:\\d[\\da-f]*x|\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?)\\b/i\n var numericConstant = {\n pattern: RegExp(stringPattern + '[bx]'),\n alias: 'number'\n }\n var macroVariable = {\n pattern: /&[a-z_][a-z_0-9]*/i\n }\n var macroKeyword = {\n pattern: /((?:^|\\s|=|\\())%(?:ABORT|BY|CMS|COPY|DISPLAY|DO|ELSE|END|EVAL|GLOBAL|GO|GOTO|IF|INC|INCLUDE|INDEX|INPUT|KTRIM|LENGTH|LET|LIST|LOCAL|PUT|QKTRIM|QSCAN|QSUBSTR|QSYSFUNC|QUPCASE|RETURN|RUN|SCAN|SUBSTR|SUPERQ|SYMDEL|SYMGLOBL|SYMLOCAL|SYMEXIST|SYSCALL|SYSEVALF|SYSEXEC|SYSFUNC|SYSGET|SYSRPUT|THEN|TO|TSO|UNQUOTE|UNTIL|UPCASE|WHILE|WINDOW)\\b/i,\n lookbehind: true,\n alias: 'keyword'\n }\n var step = {\n pattern: /(^|\\s+)(?:proc\\s+\\w+|quit|run|data(?!\\=))\\b/i,\n alias: 'keyword',\n lookbehind: true\n }\n var comment = [\n /\\/\\*[\\s\\S]*?\\*\\//,\n {\n pattern: /(^\\s*|;\\s*)\\*[^;]*;/m,\n lookbehind: true\n }\n ]\n var string = {\n pattern: RegExp(stringPattern),\n greedy: true\n }\n var punctuation = /[$%@.(){}\\[\\];,\\\\]/\n var func = {\n pattern: /%?\\w+(?=\\()/,\n alias: 'keyword'\n }\n var args = {\n function: func,\n 'arg-value': {\n pattern: /(\\s*=\\s*)[A-Z\\.]+/i,\n lookbehind: true\n },\n operator: /=/,\n 'macro-variable': macroVariable,\n arg: {\n pattern: /[A-Z]+/i,\n alias: 'keyword'\n },\n number: number,\n 'numeric-constant': numericConstant,\n punctuation: punctuation,\n string: string\n }\n var format = {\n pattern: /\\b(?:format|put)\\b=?[\\w'$.]+/im,\n inside: {\n keyword: /^(?:format|put)(?=\\=)/i,\n equals: /=/,\n format: {\n pattern: /(?:\\w|\\$\\d)+\\.\\d?/i,\n alias: 'number'\n }\n }\n }\n var altformat = {\n pattern: /\\b(?:format|put)\\s+[\\w']+(?:\\s+[$.\\w]+)+(?=;)/i,\n inside: {\n keyword: /^(?:format|put)/i,\n format: {\n pattern: /[\\w$]+\\.\\d?/,\n alias: 'number'\n }\n }\n }\n var globalStatements = {\n pattern: /((?:^|[\\s])=?)(?:catname|checkpoint execute_always|dm|endsas|filename|footnote|%include|libname|%list|lock|missing|options|page|resetline|%run|sasfile|skip|sysecho|title\\d?)\\b/i,\n lookbehind: true,\n alias: 'keyword'\n }\n var submitStatement = {\n pattern: /(^|\\s)(?:submit(?:\\s+(?:load|parseonly|norun))?|endsubmit)\\b/i,\n lookbehind: true,\n alias: 'keyword'\n }\n var actionSets = /accessControl|cdm|aggregation|aStore|ruleMining|audio|autotune|bayesianNetClassifier|bioMedImage|boolRule|builtins|cardinality|sccasl|clustering|copula|countreg|dataDiscovery|dataPreprocess|dataSciencePilot|dataStep|decisionTree|deepLearn|deepNeural|varReduce|simSystem|ds2|deduplication|ecm|entityRes|espCluster|explainModel|factmac|fastKnn|fcmpact|fedSql|freqTab|gam|gleam|graphSemiSupLearn|gVarCluster|hiddenMarkovModel|hyperGroup|image|iml|ica|kernalPca|langModel|ldaTopic|sparseML|mlTools|mixed|modelPublishing|mbc|network|optNetwork|neuralNet|nonlinear|nmf|nonParametricBayes|optimization|panel|pls|percentile|pca|phreg|qkb|qlim|quantreg|recommend|tsReconcile|deepRnn|regression|reinforcementLearn|robustPca|sampling|sparkEmbeddedProcess|search(?:Analytics)?|sentimentAnalysis|sequence|configuration|session(?:Prop)?|severity|simple|smartData|sandwich|spatialreg|stabilityMonitoring|spc|loadStreams|svDataDescription|svm|table|conditionalRandomFields|text(?:Rule(?:Develop|Score)|Mining|Parse|Topic|Util|Filters|Frequency)|tsInfo|timeData|transpose|uniTimeSeries/\n .source\n var casActions = {\n pattern: RegExp(\n /(^|\\s)(?:action\\s+)?(?:<act>)\\.[a-z]+\\b[^;]+/.source.replace(\n /<act>/g,\n function () {\n return actionSets\n }\n ),\n 'i'\n ),\n lookbehind: true,\n inside: {\n keyword: RegExp(\n /(?:<act>)\\.[a-z]+\\b/.source.replace(/<act>/g, function () {\n return actionSets\n }),\n 'i'\n ),\n action: {\n pattern: /(?:action)/i,\n alias: 'keyword'\n },\n comment: comment,\n function: func,\n 'arg-value': args['arg-value'],\n operator: args.operator,\n argument: args.arg,\n number: number,\n 'numeric-constant': numericConstant,\n punctuation: punctuation,\n string: string\n }\n }\n var keywords = {\n pattern: /((?:^|\\s)=?)(?:after|analysis|and|array|barchart|barwidth|begingraph|by|call|cas|cbarline|cfill|class(?:lev)?|close|column|computed?|contains|continue|data(?=\\=)|define|delete|describe|document|do\\s+over|do|dol|drop|dul|end(?:source|comp)?|entryTitle|else|eval(?:uate)?|exec(?:ute)?|exit|fill(?:attrs)?|file(?:name)?|flist|fnc|function(?:list)?|goto|global|group(?:by)?|headline|headskip|histogram|if|infile|keep|keylabel|keyword|label|layout|leave|legendlabel|length|libname|loadactionset|merge|midpoints|name|noobs|nowd|_?null_|ods|options|or|otherwise|out(?:put)?|over(?:lay)?|plot|put|print|raise|ranexp|rannor|rbreak|retain|return|select|set|session|sessref|source|statgraph|sum|summarize|table|temp|terminate|then\\s+do|then|title\\d?|to|var|when|where|xaxisopts|yaxisopts|y2axisopts)\\b/i,\n lookbehind: true\n }\n Prism.languages.sas = {\n datalines: {\n pattern: /^(\\s*)(?:(?:data)?lines|cards);[\\s\\S]+?^[ \\t]*;/im,\n lookbehind: true,\n alias: 'string',\n inside: {\n keyword: {\n pattern: /^(?:(?:data)?lines|cards)/i\n },\n punctuation: /;/\n }\n },\n 'proc-sql': {\n pattern: /(^proc\\s+(?:fed)?sql(?:\\s+[\\w|=]+)?;)[\\s\\S]+?(?=^(?:proc\\s+\\w+|quit|run|data);|(?![\\s\\S]))/im,\n lookbehind: true,\n inside: {\n sql: {\n pattern: RegExp(\n /^[ \\t]*(?:select|alter\\s+table|(?:create|describe|drop)\\s+(?:index|table(?:\\s+constraints)?|view)|create\\s+unique\\s+index|insert\\s+into|update)(?:<str>|[^;\"'])+;/.source.replace(\n /<str>/g,\n function () {\n return stringPattern\n }\n ),\n 'im'\n ),\n alias: 'language-sql',\n inside: Prism.languages.sql\n },\n 'global-statements': globalStatements,\n 'sql-statements': {\n pattern: /(^|\\s)(?:disconnect\\s+from|exec(?:ute)?|begin|commit|rollback|reset|validate)\\b/i,\n lookbehind: true,\n alias: 'keyword'\n },\n number: number,\n 'numeric-constant': numericConstant,\n punctuation: punctuation,\n string: string\n }\n },\n 'proc-groovy': {\n pattern: /(^proc\\s+groovy(?:\\s+[\\w|=]+)?;)[\\s\\S]+?(?=^(?:proc\\s+\\w+|quit|run|data);|(?![\\s\\S]))/im,\n lookbehind: true,\n inside: {\n comment: comment,\n groovy: {\n pattern: RegExp(\n /(^[ \\t]*submit(?:\\s+(?:load|parseonly|norun))?)(?:<str>|[^\"'])+?(?=endsubmit;)/.source.replace(\n /<str>/g,\n function () {\n return stringPattern\n }\n ),\n 'im'\n ),\n lookbehind: true,\n alias: 'language-groovy',\n inside: Prism.languages.groovy\n },\n keyword: keywords,\n 'submit-statement': submitStatement,\n 'global-statements': globalStatements,\n number: number,\n 'numeric-constant': numericConstant,\n punctuation: punctuation,\n string: string\n }\n },\n 'proc-lua': {\n pattern: /(^proc\\s+lua(?:\\s+[\\w|=]+)?;)[\\s\\S]+?(?=^(?:proc\\s+\\w+|quit|run|data);|(?![\\s\\S]))/im,\n lookbehind: true,\n inside: {\n comment: comment,\n lua: {\n pattern: RegExp(\n /(^[ \\t]*submit(?:\\s+(?:load|parseonly|norun))?)(?:<str>|[^\"'])+?(?=endsubmit;)/.source.replace(\n /<str>/g,\n function () {\n return stringPattern\n }\n ),\n 'im'\n ),\n lookbehind: true,\n alias: 'language-lua',\n inside: Prism.languages.lua\n },\n keyword: keywords,\n 'submit-statement': submitStatement,\n 'global-statements': globalStatements,\n number: number,\n 'numeric-constant': numericConstant,\n punctuation: punctuation,\n string: string\n }\n },\n 'proc-cas': {\n pattern: /(^proc\\s+cas(?:\\s+[\\w|=]+)?;)[\\s\\S]+?(?=^(?:proc\\s+\\w+|quit|data);|(?![\\s\\S]))/im,\n lookbehind: true,\n inside: {\n comment: comment,\n 'statement-var': {\n pattern: /((?:^|\\s)=?)saveresult\\s[^;]+/im,\n lookbehind: true,\n inside: {\n statement: {\n pattern: /^saveresult\\s+\\S+/i,\n inside: {\n keyword: /^(?:saveresult)/i\n }\n },\n rest: args\n }\n },\n 'cas-actions': casActions,\n statement: {\n pattern: /((?:^|\\s)=?)(?:default|(?:un)?set|on|output|upload)[^;]+/im,\n lookbehind: true,\n inside: args\n },\n step: step,\n keyword: keywords,\n function: func,\n format: format,\n altformat: altformat,\n 'global-statements': globalStatements,\n number: number,\n 'numeric-constant': numericConstant,\n punctuation: punctuation,\n string: string\n }\n },\n 'proc-args': {\n pattern: RegExp(\n /(^proc\\s+\\w+\\s+)(?!\\s)(?:[^;\"']|<str>)+;/.source.replace(\n /<str>/g,\n function () {\n return stringPattern\n }\n ),\n 'im'\n ),\n lookbehind: true,\n inside: args\n },\n /*Special keywords within macros*/\n 'macro-keyword': macroKeyword,\n 'macro-variable': macroVariable,\n 'macro-string-functions': {\n pattern: /((?:^|\\s|=))%(?:NRBQUOTE|NRQUOTE|NRSTR|BQUOTE|QUOTE|STR)\\(.*?(?:[^%]\\))/i,\n lookbehind: true,\n inside: {\n function: {\n pattern: /%(?:NRBQUOTE|NRQUOTE|NRSTR|BQUOTE|QUOTE|STR)/i,\n alias: 'keyword'\n },\n 'macro-keyword': macroKeyword,\n 'macro-variable': macroVariable,\n 'escaped-char': {\n pattern: /%['\"()<>=¬^~;,#]/i\n },\n punctuation: punctuation\n }\n },\n 'macro-declaration': {\n pattern: /^%macro[^;]+(?=;)/im,\n inside: {\n keyword: /%macro/i\n }\n },\n 'macro-end': {\n pattern: /^%mend[^;]+(?=;)/im,\n inside: {\n keyword: /%mend/i\n }\n },\n /*%_zscore(headcir, _lhc, _mhc, _shc, headcz, headcpct, _Fheadcz); */\n macro: {\n pattern: /%_\\w+(?=\\()/,\n alias: 'keyword'\n },\n input: {\n pattern: /\\binput\\s[-\\w\\s/*.$&]+;/i,\n inside: {\n input: {\n alias: 'keyword',\n pattern: /^input/i\n },\n comment: comment,\n number: number,\n 'numeric-constant': numericConstant\n }\n },\n 'options-args': {\n pattern: /(^options)[-'\"|/\\\\<>*+=:()\\w\\s]*(?=;)/im,\n lookbehind: true,\n inside: args\n },\n 'cas-actions': casActions,\n comment: comment,\n function: func,\n format: format,\n altformat: altformat,\n 'numeric-constant': numericConstant,\n datetime: {\n // '1jan2013'd, '9:25:19pm't, '18jan2003:9:27:05am'dt\n pattern: RegExp(stringPattern + '(?:dt?|t)'),\n alias: 'number'\n },\n string: string,\n step: step,\n keyword: keywords,\n // In SAS Studio syntax highlighting, these operators are styled like keywords\n 'operator-keyword': {\n pattern: /\\b(?:eq|ne|gt|lt|ge|le|in|not)\\b/i,\n alias: 'operator'\n },\n // Decimal (1.2e23), hexadecimal (0c1x)\n number: number,\n operator: /\\*\\*?|\\|\\|?|!!?|¦¦?|<[>=]?|>[<=]?|[-+\\/=&]|[~¬^]=?/i,\n punctuation: punctuation\n }\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = sass\nsass.displayName = 'sass'\nsass.aliases = []\nfunction sass(Prism) {\n ;(function (Prism) {\n Prism.languages.sass = Prism.languages.extend('css', {\n // Sass comments don't need to be closed, only indented\n comment: {\n pattern: /^([ \\t]*)\\/[\\/*].*(?:(?:\\r?\\n|\\r)\\1[ \\t].+)*/m,\n lookbehind: true\n }\n })\n Prism.languages.insertBefore('sass', 'atrule', {\n // We want to consume the whole line\n 'atrule-line': {\n // Includes support for = and + shortcuts\n pattern: /^(?:[ \\t]*)[@+=].+/m,\n inside: {\n atrule: /(?:@[\\w-]+|[+=])/m\n }\n }\n })\n delete Prism.languages.sass.atrule\n var variable = /\\$[-\\w]+|#\\{\\$[-\\w]+\\}/\n var operator = [\n /[+*\\/%]|[=!]=|<=?|>=?|\\b(?:and|or|not)\\b/,\n {\n pattern: /(\\s+)-(?=\\s)/,\n lookbehind: true\n }\n ]\n Prism.languages.insertBefore('sass', 'property', {\n // We want to consume the whole line\n 'variable-line': {\n pattern: /^[ \\t]*\\$.+/m,\n inside: {\n punctuation: /:/,\n variable: variable,\n operator: operator\n }\n },\n // We want to consume the whole line\n 'property-line': {\n pattern: /^[ \\t]*(?:[^:\\s]+ *:.*|:[^:\\s].*)/m,\n inside: {\n property: [\n /[^:\\s]+(?=\\s*:)/,\n {\n pattern: /(:)[^:\\s]+/,\n lookbehind: true\n }\n ],\n punctuation: /:/,\n variable: variable,\n operator: operator,\n important: Prism.languages.sass.important\n }\n }\n })\n delete Prism.languages.sass.property\n delete Prism.languages.sass.important // Now that whole lines for other patterns are consumed,\n // what's left should be selectors\n Prism.languages.insertBefore('sass', 'punctuation', {\n selector: {\n pattern: /([ \\t]*)\\S(?:,[^,\\r\\n]+|[^,\\r\\n]*)(?:,[^,\\r\\n]+)*(?:,(?:\\r?\\n|\\r)\\1[ \\t]+\\S(?:,[^,\\r\\n]+|[^,\\r\\n]*)(?:,[^,\\r\\n]+)*)*/,\n lookbehind: true\n }\n })\n })(Prism)\n}\n","'use strict'\nvar refractorJava = require('./java.js')\nmodule.exports = scala\nscala.displayName = 'scala'\nscala.aliases = []\nfunction scala(Prism) {\n Prism.register(refractorJava)\n Prism.languages.scala = Prism.languages.extend('java', {\n 'triple-quoted-string': {\n pattern: /\"\"\"[\\s\\S]*?\"\"\"/,\n greedy: true,\n alias: 'string'\n },\n string: {\n pattern: /(\"|')(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n greedy: true\n },\n keyword: /<-|=>|\\b(?:abstract|case|catch|class|def|do|else|extends|final|finally|for|forSome|if|implicit|import|lazy|match|new|null|object|override|package|private|protected|return|sealed|self|super|this|throw|trait|try|type|val|var|while|with|yield)\\b/,\n number: /\\b0x(?:[\\da-f]*\\.)?[\\da-f]+|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e\\d+)?[dfl]?/i,\n builtin: /\\b(?:String|Int|Long|Short|Byte|Boolean|Double|Float|Char|Any|AnyRef|AnyVal|Unit|Nothing)\\b/,\n symbol: /'[^\\d\\s\\\\]\\w*/\n })\n delete Prism.languages.scala['class-name']\n delete Prism.languages.scala['function']\n}\n","'use strict'\n\nmodule.exports = scss\nscss.displayName = 'scss'\nscss.aliases = []\nfunction scss(Prism) {\n Prism.languages.scss = Prism.languages.extend('css', {\n comment: {\n pattern: /(^|[^\\\\])(?:\\/\\*[\\s\\S]*?\\*\\/|\\/\\/.*)/,\n lookbehind: true\n },\n atrule: {\n pattern: /@[\\w-](?:\\([^()]+\\)|[^()\\s]|\\s+(?!\\s))*?(?=\\s+[{;])/,\n inside: {\n rule: /@[\\w-]+/ // See rest below\n }\n },\n // url, compassified\n url: /(?:[-a-z]+-)?url(?=\\()/i,\n // CSS selector regex is not appropriate for Sass\n // since there can be lot more things (var, @ directive, nesting..)\n // a selector must start at the end of a property or after a brace (end of other rules or nesting)\n // it can contain some characters that aren't used for defining rules or end of selector, & (parent selector), or interpolated variable\n // the end of a selector is found when there is no rules in it ( {} or {\\s}) or if there is a property (because an interpolated var\n // can \"pass\" as a selector- e.g: proper#{$erty})\n // this one was hard to do, so please be careful if you edit this one :)\n selector: {\n // Initial look-ahead is used to prevent matching of blank selectors\n pattern: /(?=\\S)[^@;{}()]?(?:[^@;{}()\\s]|\\s+(?!\\s)|#\\{\\$[-\\w]+\\})+(?=\\s*\\{(?:\\}|\\s|[^}][^:{}]*[:{][^}]+))/m,\n inside: {\n parent: {\n pattern: /&/,\n alias: 'important'\n },\n placeholder: /%[-\\w]+/,\n variable: /\\$[-\\w]+|#\\{\\$[-\\w]+\\}/\n }\n },\n property: {\n pattern: /(?:[-\\w]|\\$[-\\w]|#\\{\\$[-\\w]+\\})+(?=\\s*:)/,\n inside: {\n variable: /\\$[-\\w]+|#\\{\\$[-\\w]+\\}/\n }\n }\n })\n Prism.languages.insertBefore('scss', 'atrule', {\n keyword: [\n /@(?:if|else(?: if)?|forward|for|each|while|import|use|extend|debug|warn|mixin|include|function|return|content)\\b/i,\n {\n pattern: /( +)(?:from|through)(?= )/,\n lookbehind: true\n }\n ]\n })\n Prism.languages.insertBefore('scss', 'important', {\n // var and interpolated vars\n variable: /\\$[-\\w]+|#\\{\\$[-\\w]+\\}/\n })\n Prism.languages.insertBefore('scss', 'function', {\n 'module-modifier': {\n pattern: /\\b(?:as|with|show|hide)\\b/i,\n alias: 'keyword'\n },\n placeholder: {\n pattern: /%[-\\w]+/,\n alias: 'selector'\n },\n statement: {\n pattern: /\\B!(?:default|optional)\\b/i,\n alias: 'keyword'\n },\n boolean: /\\b(?:true|false)\\b/,\n null: {\n pattern: /\\bnull\\b/,\n alias: 'keyword'\n },\n operator: {\n pattern: /(\\s)(?:[-+*\\/%]|[=!]=|<=?|>=?|and|or|not)(?=\\s)/,\n lookbehind: true\n }\n })\n Prism.languages.scss['atrule'].inside.rest = Prism.languages.scss\n}\n","'use strict'\nvar refractorBash = require('./bash.js')\nmodule.exports = shellSession\nshellSession.displayName = 'shellSession'\nshellSession.aliases = []\nfunction shellSession(Prism) {\n Prism.register(refractorBash)\n ;(function (Prism) {\n // CAREFUL!\n // The following patterns are concatenated, so the group referenced by a back reference is non-obvious!\n var strings = [\n // normal string\n // 1 capturing group\n /([\"'])(?:\\\\[\\s\\S]|\\$\\([^)]+\\)|\\$(?!\\()|`[^`]+`|(?!\\1)[^\\\\`$])*\\1/.source, // here doc\n // 2 capturing groups\n /<<-?\\s*([\"']?)(\\w+)\\2\\s[\\s\\S]*?[\\r\\n]\\3/.source\n ].join('|')\n Prism.languages['shell-session'] = {\n command: {\n pattern: RegExp(\n /^(?:[^\\s@:$#*!/\\\\]+@[^\\s@:$#*!/\\\\]+(?::[^\\0-\\x1F$#*?\"<>:;|]+)?)?[$#](?:[^\\\\\\r\\n'\"<]|\\\\.|<<str>>)+/.source.replace(\n /<<str>>/g,\n function () {\n return strings\n }\n ),\n 'm'\n ),\n greedy: true,\n inside: {\n info: {\n // foo@bar:~/files$ exit\n // foo@bar$ exit\n pattern: /^[^#$]+/,\n alias: 'punctuation',\n inside: {\n path: {\n pattern: /(:)[\\s\\S]+/,\n lookbehind: true\n },\n user: /^[^:]+/,\n punctuation: /:/\n }\n },\n bash: {\n pattern: /(^[$#]\\s*)\\S[\\s\\S]*/,\n lookbehind: true,\n alias: 'language-bash',\n inside: Prism.languages.bash\n },\n 'shell-symbol': {\n pattern: /^[$#]/,\n alias: 'important'\n }\n }\n },\n output: /.(?:.*(?:[\\r\\n]|.$))*/\n }\n Prism.languages['sh-session'] = Prism.languages['shellsession'] =\n Prism.languages['shell-session']\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = smali\nsmali.displayName = 'smali'\nsmali.aliases = []\nfunction smali(Prism) {\n // Test files for the parser itself:\n // https://github.com/JesusFreke/smali/tree/master/smali/src/test/resources/LexerTest\n Prism.languages.smali = {\n comment: /#.*/,\n string: {\n pattern: /\"(?:[^\\r\\n\\\\\"]|\\\\.)*\"|'(?:[^\\r\\n\\\\']|\\\\(?:.|u[\\da-fA-F]{4}))'/,\n greedy: true\n },\n 'class-name': {\n pattern: /L(?:(?:\\w+|`[^`\\r\\n]*`)\\/)*(?:[\\w$]+|`[^`\\r\\n]*`)(?=\\s*;)/,\n inside: {\n 'class-name': {\n pattern: /(^L|\\/)(?:[\\w$]+|`[^`\\r\\n]*`)$/,\n lookbehind: true\n },\n namespace: {\n pattern: /^(L)(?:(?:\\w+|`[^`\\r\\n]*`)\\/)+/,\n lookbehind: true,\n inside: {\n punctuation: /\\//\n }\n },\n builtin: /^L/\n }\n },\n builtin: [\n {\n // Reference: https://github.com/JesusFreke/smali/wiki/TypesMethodsAndFields#types\n pattern: /([();\\[])[BCDFIJSVZ]+/,\n lookbehind: true\n },\n {\n // e.g. .field mWifiOnUid:I\n pattern: /([\\w$>]:)[BCDFIJSVZ]/,\n lookbehind: true\n }\n ],\n keyword: [\n {\n pattern: /(\\.end\\s+)[\\w-]+/,\n lookbehind: true\n },\n {\n pattern: /(^|[^\\w.-])\\.(?!\\d)[\\w-]+/,\n lookbehind: true\n },\n {\n pattern: /(^|[^\\w.-])(?:abstract|annotation|bridge|constructor|enum|final|interface|private|protected|public|runtime|static|synthetic|system|transient)(?![\\w.-])/,\n lookbehind: true\n }\n ],\n function: {\n pattern: /(^|[^\\w.-])(?:\\w+|<[\\w$-]+>)(?=\\()/,\n lookbehind: true\n },\n field: {\n pattern: /[\\w$]+(?=:)/,\n alias: 'variable'\n },\n register: {\n pattern: /(^|[^\\w.-])[vp]\\d(?![\\w.-])/,\n lookbehind: true,\n alias: 'variable'\n },\n boolean: {\n pattern: /(^|[^\\w.-])(?:true|false)(?![\\w.-])/,\n lookbehind: true\n },\n number: {\n pattern: /(^|[^/\\w.-])-?(?:NAN|INFINITY|0x(?:[\\dA-F]+(?:\\.[\\dA-F]*)?|\\.[\\dA-F]+)(?:p[+-]?[\\dA-F]+)?|(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:e[+-]?\\d+)?)[dflst]?(?![\\w.-])/i,\n lookbehind: true\n },\n label: {\n pattern: /(:)\\w+/,\n lookbehind: true,\n alias: 'property'\n },\n operator: /->|\\.\\.|[\\[=]/,\n punctuation: /[{}(),;:]/\n }\n}\n","'use strict'\n\nmodule.exports = smalltalk\nsmalltalk.displayName = 'smalltalk'\nsmalltalk.aliases = []\nfunction smalltalk(Prism) {\n Prism.languages.smalltalk = {\n comment: /\"(?:\"\"|[^\"])*\"/,\n character: {\n pattern: /\\$./,\n alias: 'string'\n },\n string: /'(?:''|[^'])*'/,\n symbol: /#[\\da-z]+|#(?:-|([+\\/\\\\*~<>=@%|&?!])\\1?)|#(?=\\()/i,\n 'block-arguments': {\n pattern: /(\\[\\s*):[^\\[|]*\\|/,\n lookbehind: true,\n inside: {\n variable: /:[\\da-z]+/i,\n punctuation: /\\|/\n }\n },\n 'temporary-variables': {\n pattern: /\\|[^|]+\\|/,\n inside: {\n variable: /[\\da-z]+/i,\n punctuation: /\\|/\n }\n },\n keyword: /\\b(?:nil|true|false|self|super|new)\\b/,\n number: [\n /\\d+r-?[\\dA-Z]+(?:\\.[\\dA-Z]+)?(?:e-?\\d+)?/,\n /\\b\\d+(?:\\.\\d+)?(?:e-?\\d+)?/\n ],\n operator: /[<=]=?|:=|~[~=]|\\/\\/?|\\\\\\\\|>[>=]?|[!^+\\-*&|,@]/,\n punctuation: /[.;:?\\[\\](){}]/\n }\n}\n","'use strict'\nvar refractorMarkupTemplating = require('./markup-templating.js')\nmodule.exports = smarty\nsmarty.displayName = 'smarty'\nsmarty.aliases = []\nfunction smarty(Prism) {\n Prism.register(refractorMarkupTemplating)\n /* TODO\nAdd support for variables inside double quoted strings\nAdd support for {php}\n*/\n ;(function (Prism) {\n Prism.languages.smarty = {\n comment: /\\{\\*[\\s\\S]*?\\*\\}/,\n delimiter: {\n pattern: /^\\{|\\}$/i,\n alias: 'punctuation'\n },\n string: /([\"'])(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n number: /\\b0x[\\dA-Fa-f]+|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:[Ee][-+]?\\d+)?/,\n variable: [\n /\\$(?!\\d)\\w+/,\n /#(?!\\d)\\w+#/,\n {\n pattern: /(\\.|->)(?!\\d)\\w+/,\n lookbehind: true\n },\n {\n pattern: /(\\[)(?!\\d)\\w+(?=\\])/,\n lookbehind: true\n }\n ],\n function: [\n {\n pattern: /(\\|\\s*)@?(?!\\d)\\w+/,\n lookbehind: true\n },\n /^\\/?(?!\\d)\\w+/,\n /(?!\\d)\\w+(?=\\()/\n ],\n 'attr-name': {\n // Value is made optional because it may have already been tokenized\n pattern: /\\w+\\s*=\\s*(?:(?!\\d)\\w+)?/,\n inside: {\n variable: {\n pattern: /(=\\s*)(?!\\d)\\w+/,\n lookbehind: true\n },\n operator: /=/\n }\n },\n punctuation: [/[\\[\\]().,:`]|->/],\n operator: [\n /[+\\-*\\/%]|==?=?|[!<>]=?|&&|\\|\\|?/,\n /\\bis\\s+(?:not\\s+)?(?:div|even|odd)(?:\\s+by)?\\b/,\n /\\b(?:eq|neq?|gt|lt|gt?e|lt?e|not|mod|or|and)\\b/\n ],\n keyword: /\\b(?:false|off|on|no|true|yes)\\b/\n } // Tokenize all inline Smarty expressions\n Prism.hooks.add('before-tokenize', function (env) {\n var smartyPattern = /\\{\\*[\\s\\S]*?\\*\\}|\\{[\\s\\S]+?\\}/g\n var smartyLitteralStart = '{literal}'\n var smartyLitteralEnd = '{/literal}'\n var smartyLitteralMode = false\n Prism.languages['markup-templating'].buildPlaceholders(\n env,\n 'smarty',\n smartyPattern,\n function (match) {\n // Smarty tags inside {literal} block are ignored\n if (match === smartyLitteralEnd) {\n smartyLitteralMode = false\n }\n if (!smartyLitteralMode) {\n if (match === smartyLitteralStart) {\n smartyLitteralMode = true\n }\n return true\n }\n return false\n }\n )\n }) // Re-insert the tokens after tokenizing\n Prism.hooks.add('after-tokenize', function (env) {\n Prism.languages['markup-templating'].tokenizePlaceholders(env, 'smarty')\n })\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = sml\nsml.displayName = 'sml'\nsml.aliases = ['smlnj']\nfunction sml(Prism) {\n // https://smlfamily.github.io/sml97-defn.pdf\n // https://people.mpi-sws.org/~rossberg/sml.html\n ;(function (Prism) {\n var keywords = /\\b(?:abstype|and|andalso|as|case|datatype|do|else|end|eqtype|exception|fn|fun|functor|handle|if|in|include|infix|infixr|let|local|nonfix|of|op|open|orelse|raise|rec|sharing|sig|signature|struct|structure|then|type|val|where|while|with|withtype)\\b/i\n Prism.languages.sml = {\n // allow one level of nesting\n comment: /\\(\\*(?:[^*(]|\\*(?!\\))|\\((?!\\*)|\\(\\*(?:[^*(]|\\*(?!\\))|\\((?!\\*))*\\*\\))*\\*\\)/,\n string: {\n pattern: /#?\"(?:[^\"\\\\]|\\\\.)*\"/,\n greedy: true\n },\n 'class-name': [\n {\n // This is only an approximation since the real grammar is context-free\n //\n // Why the main loop so complex?\n // The main loop is approximately the same as /(?:\\s*(?:[*,]|->)\\s*<TERMINAL>)*/ which is, obviously, a lot\n // simpler. The difference is that if a comma is the last iteration of the loop, then the terminal must be\n // followed by a long identifier.\n pattern: RegExp(\n /((?:^|[^:]):\\s*)<TERMINAL>(?:\\s*(?:(?:\\*|->)\\s*<TERMINAL>|,\\s*<TERMINAL>(?:(?=<NOT-LAST>)|(?!<NOT-LAST>)\\s+<LONG-ID>)))*/.source\n .replace(/<NOT-LAST>/g, function () {\n return /\\s*(?:[*,]|->)/.source\n })\n .replace(/<TERMINAL>/g, function () {\n return /(?:'[\\w']*|<LONG-ID>|\\((?:[^()]|\\([^()]*\\))*\\)|\\{(?:[^{}]|\\{[^{}]*\\})*\\})(?:\\s+<LONG-ID>)*/\n .source\n })\n .replace(/<LONG-ID>/g, function () {\n return /(?!<KEYWORD>)[a-z\\d_][\\w'.]*/.source\n })\n .replace(/<KEYWORD>/g, function () {\n return keywords.source\n }),\n 'i'\n ),\n lookbehind: true,\n greedy: true,\n inside: null // see below\n },\n {\n pattern: /((?:^|[^\\w'])(?:datatype|exception|functor|signature|structure|type)\\s+)[a-z_][\\w'.]*/i,\n lookbehind: true\n }\n ],\n function: {\n pattern: /((?:^|[^\\w'])fun\\s+)[a-z_][\\w'.]*/i,\n lookbehind: true\n },\n keyword: keywords,\n variable: {\n pattern: /(^|[^\\w'])'[\\w']*/,\n lookbehind: true\n },\n number: /~?\\b(?:\\d+(?:\\.\\d+)?(?:e~?\\d+)?|0x[\\da-f]+)\\b/i,\n word: {\n pattern: /\\b0w(?:\\d+|x[\\da-f]+)\\b/i,\n alias: 'constant'\n },\n boolean: /\\b(?:false|true)\\b/i,\n operator: /\\.\\.\\.|:[>=:]|=>?|->|[<>]=?|[!+\\-*/^#|@~]/,\n punctuation: /[(){}\\[\\].:,;]/\n }\n Prism.languages.sml['class-name'][0].inside = Prism.languages.sml\n Prism.languages.smlnj = Prism.languages.sml\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = solidity\nsolidity.displayName = 'solidity'\nsolidity.aliases = ['sol']\nfunction solidity(Prism) {\n Prism.languages.solidity = Prism.languages.extend('clike', {\n 'class-name': {\n pattern: /(\\b(?:contract|enum|interface|library|new|struct|using)\\s+)(?!\\d)[\\w$]+/,\n lookbehind: true\n },\n keyword: /\\b(?:_|anonymous|as|assembly|assert|break|calldata|case|constant|constructor|continue|contract|default|delete|do|else|emit|enum|event|external|for|from|function|if|import|indexed|inherited|interface|internal|is|let|library|mapping|memory|modifier|new|payable|pragma|private|public|pure|require|returns?|revert|selfdestruct|solidity|storage|struct|suicide|switch|this|throw|using|var|view|while)\\b/,\n operator: /=>|->|:=|=:|\\*\\*|\\+\\+|--|\\|\\||&&|<<=?|>>=?|[-+*/%^&|<>!=]=?|[~?]/\n })\n Prism.languages.insertBefore('solidity', 'keyword', {\n builtin: /\\b(?:address|bool|string|u?int(?:8|16|24|32|40|48|56|64|72|80|88|96|104|112|120|128|136|144|152|160|168|176|184|192|200|208|216|224|232|240|248|256)?|byte|bytes(?:[1-9]|[12]\\d|3[0-2])?)\\b/\n })\n Prism.languages.insertBefore('solidity', 'number', {\n version: {\n pattern: /([<>]=?|\\^)\\d+\\.\\d+\\.\\d+\\b/,\n lookbehind: true,\n alias: 'number'\n }\n })\n Prism.languages.sol = Prism.languages.solidity\n}\n","'use strict'\n\nmodule.exports = solutionFile\nsolutionFile.displayName = 'solutionFile'\nsolutionFile.aliases = []\nfunction solutionFile(Prism) {\n ;(function (Prism) {\n var guid = {\n // https://en.wikipedia.org/wiki/Universally_unique_identifier#Format\n pattern: /\\{[\\da-f]{8}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{12}\\}/i,\n alias: 'constant',\n inside: {\n punctuation: /[{}]/\n }\n }\n Prism.languages['solution-file'] = {\n comment: {\n pattern: /#.*/,\n greedy: true\n },\n string: {\n pattern: /\"[^\"\\r\\n]*\"|'[^'\\r\\n]*'/,\n greedy: true,\n inside: {\n guid: guid\n }\n },\n object: {\n // Foo\n // Bar(\"abs\") = 9\n // EndBar\n // Prop = TRUE\n // EndFoo\n pattern: /^([ \\t]*)(?:([A-Z]\\w*)\\b(?=.*(?:\\r\\n?|\\n)(?:\\1[ \\t].*(?:\\r\\n?|\\n))*\\1End\\2(?=[ \\t]*$))|End[A-Z]\\w*(?=[ \\t]*$))/m,\n lookbehind: true,\n greedy: true,\n alias: 'keyword'\n },\n property: {\n pattern: /^([ \\t]*)(?!\\s)[^\\r\\n\"#=()]*[^\\s\"#=()](?=\\s*=)/m,\n lookbehind: true,\n inside: {\n guid: guid\n }\n },\n guid: guid,\n number: /\\b\\d+(?:\\.\\d+)*\\b/,\n boolean: /\\b(?:FALSE|TRUE)\\b/,\n operator: /=/,\n punctuation: /[(),]/\n }\n Prism.languages['sln'] = Prism.languages['solution-file']\n })(Prism)\n}\n","'use strict'\nvar refractorMarkupTemplating = require('./markup-templating.js')\nmodule.exports = soy\nsoy.displayName = 'soy'\nsoy.aliases = []\nfunction soy(Prism) {\n Prism.register(refractorMarkupTemplating)\n ;(function (Prism) {\n var stringPattern = /([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/\n var numberPattern = /\\b\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?\\b|\\b0x[\\dA-F]+\\b/\n Prism.languages.soy = {\n comment: [\n /\\/\\*[\\s\\S]*?\\*\\//,\n {\n pattern: /(\\s)\\/\\/.*/,\n lookbehind: true,\n greedy: true\n }\n ],\n 'command-arg': {\n pattern: /({+\\/?\\s*(?:alias|call|delcall|delpackage|deltemplate|namespace|template)\\s+)\\.?[\\w.]+/,\n lookbehind: true,\n alias: 'string',\n inside: {\n punctuation: /\\./\n }\n },\n parameter: {\n pattern: /({+\\/?\\s*@?param\\??\\s+)\\.?[\\w.]+/,\n lookbehind: true,\n alias: 'variable'\n },\n keyword: [\n {\n pattern: /({+\\/?[^\\S\\r\\n]*)(?:\\\\[nrt]|alias|call|case|css|default|delcall|delpackage|deltemplate|else(?:if)?|fallbackmsg|for(?:each)?|if(?:empty)?|lb|let|literal|msg|namespace|nil|@?param\\??|rb|sp|switch|template|xid)/,\n lookbehind: true\n },\n /\\b(?:any|as|attributes|bool|css|float|in|int|js|html|list|map|null|number|string|uri)\\b/\n ],\n delimiter: {\n pattern: /^{+\\/?|\\/?}+$/,\n alias: 'punctuation'\n },\n property: /\\w+(?==)/,\n variable: {\n pattern: /\\$[^\\W\\d]\\w*(?:\\??(?:\\.\\w+|\\[[^\\]]+]))*/,\n inside: {\n string: {\n pattern: stringPattern,\n greedy: true\n },\n number: numberPattern,\n punctuation: /[\\[\\].?]/\n }\n },\n string: {\n pattern: stringPattern,\n greedy: true\n },\n function: [\n /\\w+(?=\\()/,\n {\n pattern: /(\\|[^\\S\\r\\n]*)\\w+/,\n lookbehind: true\n }\n ],\n boolean: /\\b(?:true|false)\\b/,\n number: numberPattern,\n operator: /\\?:?|<=?|>=?|==?|!=|[+*/%-]|\\b(?:and|not|or)\\b/,\n punctuation: /[{}()\\[\\]|.,:]/\n } // Tokenize all inline Soy expressions\n Prism.hooks.add('before-tokenize', function (env) {\n var soyPattern = /{{.+?}}|{.+?}|\\s\\/\\/.*|\\/\\*[\\s\\S]*?\\*\\//g\n var soyLitteralStart = '{literal}'\n var soyLitteralEnd = '{/literal}'\n var soyLitteralMode = false\n Prism.languages['markup-templating'].buildPlaceholders(\n env,\n 'soy',\n soyPattern,\n function (match) {\n // Soy tags inside {literal} block are ignored\n if (match === soyLitteralEnd) {\n soyLitteralMode = false\n }\n if (!soyLitteralMode) {\n if (match === soyLitteralStart) {\n soyLitteralMode = true\n }\n return true\n }\n return false\n }\n )\n }) // Re-insert the tokens after tokenizing\n Prism.hooks.add('after-tokenize', function (env) {\n Prism.languages['markup-templating'].tokenizePlaceholders(env, 'soy')\n })\n })(Prism)\n}\n","'use strict'\nvar refractorTurtle = require('./turtle.js')\nmodule.exports = sparql\nsparql.displayName = 'sparql'\nsparql.aliases = ['rq']\nfunction sparql(Prism) {\n Prism.register(refractorTurtle)\n Prism.languages.sparql = Prism.languages.extend('turtle', {\n boolean: /\\b(?:true|false)\\b/i,\n variable: {\n pattern: /[?$]\\w+/,\n greedy: true\n }\n })\n Prism.languages.insertBefore('sparql', 'punctuation', {\n keyword: [\n /\\b(?:A|ADD|ALL|AS|ASC|ASK|BNODE|BY|CLEAR|CONSTRUCT|COPY|CREATE|DATA|DEFAULT|DELETE|DESC|DESCRIBE|DISTINCT|DROP|EXISTS|FILTER|FROM|GROUP|HAVING|INSERT|INTO|LIMIT|LOAD|MINUS|MOVE|NAMED|NOT|NOW|OFFSET|OPTIONAL|ORDER|RAND|REDUCED|SELECT|SEPARATOR|SERVICE|SILENT|STRUUID|UNION|USING|UUID|VALUES|WHERE)\\b/i,\n /\\b(?:ABS|AVG|BIND|BOUND|CEIL|COALESCE|CONCAT|CONTAINS|COUNT|DATATYPE|DAY|ENCODE_FOR_URI|FLOOR|GROUP_CONCAT|HOURS|IF|IRI|isBLANK|isIRI|isLITERAL|isNUMERIC|isURI|LANG|LANGMATCHES|LCASE|MAX|MD5|MIN|MINUTES|MONTH|ROUND|REGEX|REPLACE|sameTerm|SAMPLE|SECONDS|SHA1|SHA256|SHA384|SHA512|STR|STRAFTER|STRBEFORE|STRDT|STRENDS|STRLANG|STRLEN|STRSTARTS|SUBSTR|SUM|TIMEZONE|TZ|UCASE|URI|YEAR)\\b(?=\\s*\\()/i,\n /\\b(?:GRAPH|BASE|PREFIX)\\b/i\n ]\n })\n Prism.languages.rq = Prism.languages.sparql\n}\n","'use strict'\n\nmodule.exports = splunkSpl\nsplunkSpl.displayName = 'splunkSpl'\nsplunkSpl.aliases = []\nfunction splunkSpl(Prism) {\n Prism.languages['splunk-spl'] = {\n comment: /`comment\\(\"(?:\\\\.|[^\\\\\"])*\"\\)`/,\n string: {\n pattern: /\"(?:\\\\.|[^\\\\\"])*\"/,\n greedy: true\n },\n // https://docs.splunk.com/Documentation/Splunk/7.3.0/SearchReference/ListOfSearchCommands\n keyword: /\\b(?:abstract|accum|addcoltotals|addinfo|addtotals|analyzefields|anomalies|anomalousvalue|anomalydetection|append|appendcols|appendcsv|appendlookup|appendpipe|arules|associate|audit|autoregress|bin|bucket|bucketdir|chart|cluster|cofilter|collect|concurrency|contingency|convert|correlate|datamodel|dbinspect|dedup|delete|delta|diff|erex|eval|eventcount|eventstats|extract|fieldformat|fields|fieldsummary|filldown|fillnull|findtypes|folderize|foreach|format|from|gauge|gentimes|geom|geomfilter|geostats|head|highlight|history|iconify|input|inputcsv|inputlookup|iplocation|join|kmeans|kv|kvform|loadjob|localize|localop|lookup|makecontinuous|makemv|makeresults|map|mcollect|metadata|metasearch|meventcollect|mstats|multikv|multisearch|mvcombine|mvexpand|nomv|outlier|outputcsv|outputlookup|outputtext|overlap|pivot|predict|rangemap|rare|regex|relevancy|reltime|rename|replace|rest|return|reverse|rex|rtorder|run|savedsearch|script|scrub|search|searchtxn|selfjoin|sendemail|set|setfields|sichart|sirare|sistats|sitimechart|sitop|sort|spath|stats|strcat|streamstats|table|tags|tail|timechart|timewrap|top|transaction|transpose|trendline|tscollect|tstats|typeahead|typelearner|typer|union|uniq|untable|where|x11|xmlkv|xmlunescape|xpath|xyseries)\\b/i,\n 'operator-word': {\n pattern: /\\b(?:and|as|by|not|or|xor)\\b/i,\n alias: 'operator'\n },\n function: /\\w+(?=\\s*\\()/,\n property: /\\w+(?=\\s*=(?!=))/,\n date: {\n // MM/DD/YYYY(:HH:MM:SS)?\n pattern: /\\b\\d{1,2}\\/\\d{1,2}\\/\\d{1,4}(?:(?::\\d{1,2}){3})?\\b/,\n alias: 'number'\n },\n number: /\\b\\d+(?:\\.\\d+)?\\b/,\n boolean: /\\b(?:f|false|t|true)\\b/i,\n operator: /[<>=]=?|[-+*/%|]/,\n punctuation: /[()[\\],]/\n }\n}\n","'use strict'\n\nmodule.exports = sqf\nsqf.displayName = 'sqf'\nsqf.aliases = []\nfunction sqf(Prism) {\n Prism.languages.sqf = Prism.languages.extend('clike', {\n string: {\n pattern: /\"(?:(?:\"\")?[^\"])*\"(?!\")|'(?:[^'])*'/,\n greedy: true\n },\n keyword: /\\b(?:breakOut|breakTo|call|case|catch|default|do|echo|else|execVM|execFSM|exitWith|for|forEach|forEachMember|forEachMemberAgent|forEachMemberTeam|from|goto|if|nil|preprocessFile|preprocessFileLineNumbers|private|scopeName|spawn|step|switch|then|throw|to|try|while|with)\\b/i,\n boolean: /\\b(?:true|false)\\b/i,\n function: /\\b(?:abs|accTime|acos|action|actionIDs|actionKeys|actionKeysImages|actionKeysNames|actionKeysNamesArray|actionName|actionParams|activateAddons|activatedAddons|activateKey|add3DENConnection|add3DENEventHandler|add3DENLayer|addAction|addBackpack|addBackpackCargo|addBackpackCargoGlobal|addBackpackGlobal|addCamShake|addCuratorAddons|addCuratorCameraArea|addCuratorEditableObjects|addCuratorEditingArea|addCuratorPoints|addEditorObject|addEventHandler|addForce|addForceGeneratorRTD|addGoggles|addGroupIcon|addHandgunItem|addHeadgear|addItem|addItemCargo|addItemCargoGlobal|addItemPool|addItemToBackpack|addItemToUniform|addItemToVest|addLiveStats|addMagazine|addMagazineAmmoCargo|addMagazineCargo|addMagazineCargoGlobal|addMagazineGlobal|addMagazinePool|addMagazines|addMagazineTurret|addMenu|addMenuItem|addMissionEventHandler|addMPEventHandler|addMusicEventHandler|addOwnedMine|addPlayerScores|addPrimaryWeaponItem|addPublicVariableEventHandler|addRating|addResources|addScore|addScoreSide|addSecondaryWeaponItem|addSwitchableUnit|addTeamMember|addToRemainsCollector|addTorque|addUniform|addVehicle|addVest|addWaypoint|addWeapon|addWeaponCargo|addWeaponCargoGlobal|addWeaponGlobal|addWeaponItem|addWeaponPool|addWeaponTurret|admin|agent|agents|AGLToASL|aimedAtTarget|aimPos|airDensityCurveRTD|airDensityRTD|airplaneThrottle|airportSide|AISFinishHeal|alive|all3DENEntities|allAirports|allControls|allCurators|allCutLayers|allDead|allDeadMen|allDisplays|allGroups|allMapMarkers|allMines|allMissionObjects|allow3DMode|allowCrewInImmobile|allowCuratorLogicIgnoreAreas|allowDamage|allowDammage|allowFileOperations|allowFleeing|allowGetIn|allowSprint|allPlayers|allSimpleObjects|allSites|allTurrets|allUnits|allUnitsUAV|allVariables|ammo|ammoOnPylon|animate|animateBay|animateDoor|animatePylon|animateSource|animationNames|animationPhase|animationSourcePhase|animationState|append|apply|armoryPoints|arrayIntersect|asin|ASLToAGL|ASLToATL|assert|assignAsCargo|assignAsCargoIndex|assignAsCommander|assignAsDriver|assignAsGunner|assignAsTurret|assignCurator|assignedCargo|assignedCommander|assignedDriver|assignedGunner|assignedItems|assignedTarget|assignedTeam|assignedVehicle|assignedVehicleRole|assignItem|assignTeam|assignToAirport|atan|atan2|atg|ATLToASL|attachedObject|attachedObjects|attachedTo|attachObject|attachTo|attackEnabled|backpack|backpackCargo|backpackContainer|backpackItems|backpackMagazines|backpackSpaceFor|behaviour|benchmark|binocular|blufor|boundingBox|boundingBoxReal|boundingCenter|briefingName|buildingExit|buildingPos|buldozer_EnableRoadDiag|buldozer_IsEnabledRoadDiag|buldozer_LoadNewRoads|buldozer_reloadOperMap|buttonAction|buttonSetAction|cadetMode|callExtension|camCommand|camCommit|camCommitPrepared|camCommitted|camConstuctionSetParams|camCreate|camDestroy|cameraEffect|cameraEffectEnableHUD|cameraInterest|cameraOn|cameraView|campaignConfigFile|camPreload|camPreloaded|camPrepareBank|camPrepareDir|camPrepareDive|camPrepareFocus|camPrepareFov|camPrepareFovRange|camPreparePos|camPrepareRelPos|camPrepareTarget|camSetBank|camSetDir|camSetDive|camSetFocus|camSetFov|camSetFovRange|camSetPos|camSetRelPos|camSetTarget|camTarget|camUseNVG|canAdd|canAddItemToBackpack|canAddItemToUniform|canAddItemToVest|cancelSimpleTaskDestination|canFire|canMove|canSlingLoad|canStand|canSuspend|canTriggerDynamicSimulation|canUnloadInCombat|canVehicleCargo|captive|captiveNum|cbChecked|cbSetChecked|ceil|channelEnabled|cheatsEnabled|checkAIFeature|checkVisibility|civilian|className|clear3DENAttribute|clear3DENInventory|clearAllItemsFromBackpack|clearBackpackCargo|clearBackpackCargoGlobal|clearForcesRTD|clearGroupIcons|clearItemCargo|clearItemCargoGlobal|clearItemPool|clearMagazineCargo|clearMagazineCargoGlobal|clearMagazinePool|clearOverlay|clearRadio|clearVehicleInit|clearWeaponCargo|clearWeaponCargoGlobal|clearWeaponPool|clientOwner|closeDialog|closeDisplay|closeOverlay|collapseObjectTree|collect3DENHistory|collectiveRTD|combatMode|commandArtilleryFire|commandChat|commander|commandFire|commandFollow|commandFSM|commandGetOut|commandingMenu|commandMove|commandRadio|commandStop|commandSuppressiveFire|commandTarget|commandWatch|comment|commitOverlay|compile|compileFinal|completedFSM|composeText|configClasses|configFile|configHierarchy|configName|configNull|configProperties|configSourceAddonList|configSourceMod|configSourceModList|confirmSensorTarget|connectTerminalToUAV|controlNull|controlsGroupCtrl|copyFromClipboard|copyToClipboard|copyWaypoints|cos|count|countEnemy|countFriendly|countSide|countType|countUnknown|create3DENComposition|create3DENEntity|createAgent|createCenter|createDialog|createDiaryLink|createDiaryRecord|createDiarySubject|createDisplay|createGearDialog|createGroup|createGuardedPoint|createLocation|createMarker|createMarkerLocal|createMenu|createMine|createMissionDisplay|createMPCampaignDisplay|createSimpleObject|createSimpleTask|createSite|createSoundSource|createTask|createTeam|createTrigger|createUnit|createVehicle|createVehicleCrew|createVehicleLocal|crew|ctAddHeader|ctAddRow|ctClear|ctCurSel|ctData|ctFindHeaderRows|ctFindRowHeader|ctHeaderControls|ctHeaderCount|ctRemoveHeaders|ctRemoveRows|ctrlActivate|ctrlAddEventHandler|ctrlAngle|ctrlAutoScrollDelay|ctrlAutoScrollRewind|ctrlAutoScrollSpeed|ctrlChecked|ctrlClassName|ctrlCommit|ctrlCommitted|ctrlCreate|ctrlDelete|ctrlEnable|ctrlEnabled|ctrlFade|ctrlHTMLLoaded|ctrlIDC|ctrlIDD|ctrlMapAnimAdd|ctrlMapAnimClear|ctrlMapAnimCommit|ctrlMapAnimDone|ctrlMapCursor|ctrlMapMouseOver|ctrlMapScale|ctrlMapScreenToWorld|ctrlMapWorldToScreen|ctrlModel|ctrlModelDirAndUp|ctrlModelScale|ctrlParent|ctrlParentControlsGroup|ctrlPosition|ctrlRemoveAllEventHandlers|ctrlRemoveEventHandler|ctrlScale|ctrlSetActiveColor|ctrlSetAngle|ctrlSetAutoScrollDelay|ctrlSetAutoScrollRewind|ctrlSetAutoScrollSpeed|ctrlSetBackgroundColor|ctrlSetChecked|ctrlSetDisabledColor|ctrlSetEventHandler|ctrlSetFade|ctrlSetFocus|ctrlSetFont|ctrlSetFontH1|ctrlSetFontH1B|ctrlSetFontH2|ctrlSetFontH2B|ctrlSetFontH3|ctrlSetFontH3B|ctrlSetFontH4|ctrlSetFontH4B|ctrlSetFontH5|ctrlSetFontH5B|ctrlSetFontH6|ctrlSetFontH6B|ctrlSetFontHeight|ctrlSetFontHeightH1|ctrlSetFontHeightH2|ctrlSetFontHeightH3|ctrlSetFontHeightH4|ctrlSetFontHeightH5|ctrlSetFontHeightH6|ctrlSetFontHeightSecondary|ctrlSetFontP|ctrlSetFontPB|ctrlSetFontSecondary|ctrlSetForegroundColor|ctrlSetModel|ctrlSetModelDirAndUp|ctrlSetModelScale|ctrlSetPixelPrecision|ctrlSetPosition|ctrlSetScale|ctrlSetStructuredText|ctrlSetText|ctrlSetTextColor|ctrlSetTextColorSecondary|ctrlSetTextSecondary|ctrlSetTooltip|ctrlSetTooltipColorBox|ctrlSetTooltipColorShade|ctrlSetTooltipColorText|ctrlShow|ctrlShown|ctrlText|ctrlTextHeight|ctrlTextSecondary|ctrlTextWidth|ctrlType|ctrlVisible|ctRowControls|ctRowCount|ctSetCurSel|ctSetData|ctSetHeaderTemplate|ctSetRowTemplate|ctSetValue|ctValue|curatorAddons|curatorCamera|curatorCameraArea|curatorCameraAreaCeiling|curatorCoef|curatorEditableObjects|curatorEditingArea|curatorEditingAreaType|curatorMouseOver|curatorPoints|curatorRegisteredObjects|curatorSelected|curatorWaypointCost|current3DENOperation|currentChannel|currentCommand|currentMagazine|currentMagazineDetail|currentMagazineDetailTurret|currentMagazineTurret|currentMuzzle|currentNamespace|currentTask|currentTasks|currentThrowable|currentVisionMode|currentWaypoint|currentWeapon|currentWeaponMode|currentWeaponTurret|currentZeroing|cursorObject|cursorTarget|customChat|customRadio|cutFadeOut|cutObj|cutRsc|cutText|damage|date|dateToNumber|daytime|deActivateKey|debriefingText|debugFSM|debugLog|deg|delete3DENEntities|deleteAt|deleteCenter|deleteCollection|deleteEditorObject|deleteGroup|deleteGroupWhenEmpty|deleteIdentity|deleteLocation|deleteMarker|deleteMarkerLocal|deleteRange|deleteResources|deleteSite|deleteStatus|deleteTeam|deleteVehicle|deleteVehicleCrew|deleteWaypoint|detach|detectedMines|diag_activeMissionFSMs|diag_activeScripts|diag_activeSQFScripts|diag_activeSQSScripts|diag_captureFrame|diag_captureFrameToFile|diag_captureSlowFrame|diag_codePerformance|diag_drawMode|diag_dynamicSimulationEnd|diag_enable|diag_enabled|diag_fps|diag_fpsMin|diag_frameNo|diag_lightNewLoad|diag_list|diag_log|diag_logSlowFrame|diag_mergeConfigFile|diag_recordTurretLimits|diag_setLightNew|diag_tickTime|diag_toggle|dialog|diarySubjectExists|didJIP|didJIPOwner|difficulty|difficultyEnabled|difficultyEnabledRTD|difficultyOption|direction|directSay|disableAI|disableCollisionWith|disableConversation|disableDebriefingStats|disableMapIndicators|disableNVGEquipment|disableRemoteSensors|disableSerialization|disableTIEquipment|disableUAVConnectability|disableUserInput|displayAddEventHandler|displayCtrl|displayNull|displayParent|displayRemoveAllEventHandlers|displayRemoveEventHandler|displaySetEventHandler|dissolveTeam|distance|distance2D|distanceSqr|distributionRegion|do3DENAction|doArtilleryFire|doFire|doFollow|doFSM|doGetOut|doMove|doorPhase|doStop|doSuppressiveFire|doTarget|doWatch|drawArrow|drawEllipse|drawIcon|drawIcon3D|drawLine|drawLine3D|drawLink|drawLocation|drawPolygon|drawRectangle|drawTriangle|driver|drop|dynamicSimulationDistance|dynamicSimulationDistanceCoef|dynamicSimulationEnabled|dynamicSimulationSystemEnabled|east|edit3DENMissionAttributes|editObject|editorSetEventHandler|effectiveCommander|emptyPositions|enableAI|enableAIFeature|enableAimPrecision|enableAttack|enableAudioFeature|enableAutoStartUpRTD|enableAutoTrimRTD|enableCamShake|enableCaustics|enableChannel|enableCollisionWith|enableCopilot|enableDebriefingStats|enableDiagLegend|enableDynamicSimulation|enableDynamicSimulationSystem|enableEndDialog|enableEngineArtillery|enableEnvironment|enableFatigue|enableGunLights|enableInfoPanelComponent|enableIRLasers|enableMimics|enablePersonTurret|enableRadio|enableReload|enableRopeAttach|enableSatNormalOnDetail|enableSaving|enableSentences|enableSimulation|enableSimulationGlobal|enableStamina|enableStressDamage|enableTeamSwitch|enableTraffic|enableUAVConnectability|enableUAVWaypoints|enableVehicleCargo|enableVehicleSensor|enableWeaponDisassembly|endl|endLoadingScreen|endMission|engineOn|enginesIsOnRTD|enginesPowerRTD|enginesRpmRTD|enginesTorqueRTD|entities|environmentEnabled|estimatedEndServerTime|estimatedTimeLeft|evalObjectArgument|everyBackpack|everyContainer|exec|execEditorScript|exp|expectedDestination|exportJIPMessages|eyeDirection|eyePos|face|faction|fadeMusic|fadeRadio|fadeSound|fadeSpeech|failMission|fillWeaponsFromPool|find|findCover|findDisplay|findEditorObject|findEmptyPosition|findEmptyPositionReady|findIf|findNearestEnemy|finishMissionInit|finite|fire|fireAtTarget|firstBackpack|flag|flagAnimationPhase|flagOwner|flagSide|flagTexture|fleeing|floor|flyInHeight|flyInHeightASL|fog|fogForecast|fogParams|forceAddUniform|forceAtPositionRTD|forcedMap|forceEnd|forceFlagTexture|forceFollowRoad|forceGeneratorRTD|forceMap|forceRespawn|forceSpeed|forceWalk|forceWeaponFire|forceWeatherChange|forgetTarget|format|formation|formationDirection|formationLeader|formationMembers|formationPosition|formationTask|formatText|formLeader|freeLook|fromEditor|fuel|fullCrew|gearIDCAmmoCount|gearSlotAmmoCount|gearSlotData|get3DENActionState|get3DENAttribute|get3DENCamera|get3DENConnections|get3DENEntity|get3DENEntityID|get3DENGrid|get3DENIconsVisible|get3DENLayerEntities|get3DENLinesVisible|get3DENMissionAttribute|get3DENMouseOver|get3DENSelected|getAimingCoef|getAllEnvSoundControllers|getAllHitPointsDamage|getAllOwnedMines|getAllSoundControllers|getAmmoCargo|getAnimAimPrecision|getAnimSpeedCoef|getArray|getArtilleryAmmo|getArtilleryComputerSettings|getArtilleryETA|getAssignedCuratorLogic|getAssignedCuratorUnit|getBackpackCargo|getBleedingRemaining|getBurningValue|getCameraViewDirection|getCargoIndex|getCenterOfMass|getClientState|getClientStateNumber|getCompatiblePylonMagazines|getConnectedUAV|getContainerMaxLoad|getCursorObjectParams|getCustomAimCoef|getDammage|getDescription|getDir|getDirVisual|getDLCAssetsUsage|getDLCAssetsUsageByName|getDLCs|getDLCUsageTime|getEditorCamera|getEditorMode|getEditorObjectScope|getElevationOffset|getEngineTargetRpmRTD|getEnvSoundController|getFatigue|getFieldManualStartPage|getForcedFlagTexture|getFriend|getFSMVariable|getFuelCargo|getGroupIcon|getGroupIconParams|getGroupIcons|getHideFrom|getHit|getHitIndex|getHitPointDamage|getItemCargo|getMagazineCargo|getMarkerColor|getMarkerPos|getMarkerSize|getMarkerType|getMass|getMissionConfig|getMissionConfigValue|getMissionDLCs|getMissionLayerEntities|getMissionLayers|getModelInfo|getMousePosition|getMusicPlayedTime|getNumber|getObjectArgument|getObjectChildren|getObjectDLC|getObjectMaterials|getObjectProxy|getObjectTextures|getObjectType|getObjectViewDistance|getOxygenRemaining|getPersonUsedDLCs|getPilotCameraDirection|getPilotCameraPosition|getPilotCameraRotation|getPilotCameraTarget|getPlateNumber|getPlayerChannel|getPlayerScores|getPlayerUID|getPlayerUIDOld|getPos|getPosASL|getPosASLVisual|getPosASLW|getPosATL|getPosATLVisual|getPosVisual|getPosWorld|getPylonMagazines|getRelDir|getRelPos|getRemoteSensorsDisabled|getRepairCargo|getResolution|getRotorBrakeRTD|getShadowDistance|getShotParents|getSlingLoad|getSoundController|getSoundControllerResult|getSpeed|getStamina|getStatValue|getSuppression|getTerrainGrid|getTerrainHeightASL|getText|getTotalDLCUsageTime|getTrimOffsetRTD|getUnitLoadout|getUnitTrait|getUserMFDText|getUserMFDValue|getVariable|getVehicleCargo|getWeaponCargo|getWeaponSway|getWingsOrientationRTD|getWingsPositionRTD|getWPPos|glanceAt|globalChat|globalRadio|goggles|group|groupChat|groupFromNetId|groupIconSelectable|groupIconsVisible|groupId|groupOwner|groupRadio|groupSelectedUnits|groupSelectUnit|grpNull|gunner|gusts|halt|handgunItems|handgunMagazine|handgunWeapon|handsHit|hasInterface|hasPilotCamera|hasWeapon|hcAllGroups|hcGroupParams|hcLeader|hcRemoveAllGroups|hcRemoveGroup|hcSelected|hcSelectGroup|hcSetGroup|hcShowBar|hcShownBar|headgear|hideBody|hideObject|hideObjectGlobal|hideSelection|hint|hintC|hintCadet|hintSilent|hmd|hostMission|htmlLoad|HUDMovementLevels|humidity|image|importAllGroups|importance|in|inArea|inAreaArray|incapacitatedState|independent|inflame|inflamed|infoPanel|infoPanelComponentEnabled|infoPanelComponents|infoPanels|inGameUISetEventHandler|inheritsFrom|initAmbientLife|inPolygon|inputAction|inRangeOfArtillery|insertEditorObject|intersect|is3DEN|is3DENMultiplayer|isAbleToBreathe|isAgent|isAimPrecisionEnabled|isArray|isAutoHoverOn|isAutonomous|isAutoStartUpEnabledRTD|isAutotest|isAutoTrimOnRTD|isBleeding|isBurning|isClass|isCollisionLightOn|isCopilotEnabled|isDamageAllowed|isDedicated|isDLCAvailable|isEngineOn|isEqualTo|isEqualType|isEqualTypeAll|isEqualTypeAny|isEqualTypeArray|isEqualTypeParams|isFilePatchingEnabled|isFlashlightOn|isFlatEmpty|isForcedWalk|isFormationLeader|isGroupDeletedWhenEmpty|isHidden|isInRemainsCollector|isInstructorFigureEnabled|isIRLaserOn|isKeyActive|isKindOf|isLaserOn|isLightOn|isLocalized|isManualFire|isMarkedForCollection|isMultiplayer|isMultiplayerSolo|isNil|isNull|isNumber|isObjectHidden|isObjectRTD|isOnRoad|isPipEnabled|isPlayer|isRealTime|isRemoteExecuted|isRemoteExecutedJIP|isServer|isShowing3DIcons|isSimpleObject|isSprintAllowed|isStaminaEnabled|isSteamMission|isStreamFriendlyUIEnabled|isStressDamageEnabled|isText|isTouchingGround|isTurnedOut|isTutHintsEnabled|isUAVConnectable|isUAVConnected|isUIContext|isUniformAllowed|isVehicleCargo|isVehicleRadarOn|isVehicleSensorEnabled|isWalking|isWeaponDeployed|isWeaponRested|itemCargo|items|itemsWithMagazines|join|joinAs|joinAsSilent|joinSilent|joinString|kbAddDatabase|kbAddDatabaseTargets|kbAddTopic|kbHasTopic|kbReact|kbRemoveTopic|kbTell|kbWasSaid|keyImage|keyName|knowsAbout|land|landAt|landResult|language|laserTarget|lbAdd|lbClear|lbColor|lbColorRight|lbCurSel|lbData|lbDelete|lbIsSelected|lbPicture|lbPictureRight|lbSelection|lbSetColor|lbSetColorRight|lbSetCurSel|lbSetData|lbSetPicture|lbSetPictureColor|lbSetPictureColorDisabled|lbSetPictureColorSelected|lbSetPictureRight|lbSetPictureRightColor|lbSetPictureRightColorDisabled|lbSetPictureRightColorSelected|lbSetSelectColor|lbSetSelectColorRight|lbSetSelected|lbSetText|lbSetTextRight|lbSetTooltip|lbSetValue|lbSize|lbSort|lbSortByValue|lbText|lbTextRight|lbValue|leader|leaderboardDeInit|leaderboardGetRows|leaderboardInit|leaderboardRequestRowsFriends|leaderboardRequestRowsGlobal|leaderboardRequestRowsGlobalAroundUser|leaderboardsRequestUploadScore|leaderboardsRequestUploadScoreKeepBest|leaderboardState|leaveVehicle|libraryCredits|libraryDisclaimers|lifeState|lightAttachObject|lightDetachObject|lightIsOn|lightnings|limitSpeed|linearConversion|lineBreak|lineIntersects|lineIntersectsObjs|lineIntersectsSurfaces|lineIntersectsWith|linkItem|list|listObjects|listRemoteTargets|listVehicleSensors|ln|lnbAddArray|lnbAddColumn|lnbAddRow|lnbClear|lnbColor|lnbColorRight|lnbCurSelRow|lnbData|lnbDeleteColumn|lnbDeleteRow|lnbGetColumnsPosition|lnbPicture|lnbPictureRight|lnbSetColor|lnbSetColorRight|lnbSetColumnsPos|lnbSetCurSelRow|lnbSetData|lnbSetPicture|lnbSetPictureColor|lnbSetPictureColorRight|lnbSetPictureColorSelected|lnbSetPictureColorSelectedRight|lnbSetPictureRight|lnbSetText|lnbSetTextRight|lnbSetValue|lnbSize|lnbSort|lnbSortByValue|lnbText|lnbTextRight|lnbValue|load|loadAbs|loadBackpack|loadFile|loadGame|loadIdentity|loadMagazine|loadOverlay|loadStatus|loadUniform|loadVest|local|localize|locationNull|locationPosition|lock|lockCameraTo|lockCargo|lockDriver|locked|lockedCargo|lockedDriver|lockedTurret|lockIdentity|lockTurret|lockWP|log|logEntities|logNetwork|logNetworkTerminate|lookAt|lookAtPos|magazineCargo|magazines|magazinesAllTurrets|magazinesAmmo|magazinesAmmoCargo|magazinesAmmoFull|magazinesDetail|magazinesDetailBackpack|magazinesDetailUniform|magazinesDetailVest|magazinesTurret|magazineTurretAmmo|mapAnimAdd|mapAnimClear|mapAnimCommit|mapAnimDone|mapCenterOnCamera|mapGridPosition|markAsFinishedOnSteam|markerAlpha|markerBrush|markerColor|markerDir|markerPos|markerShape|markerSize|markerText|markerType|max|members|menuAction|menuAdd|menuChecked|menuClear|menuCollapse|menuData|menuDelete|menuEnable|menuEnabled|menuExpand|menuHover|menuPicture|menuSetAction|menuSetCheck|menuSetData|menuSetPicture|menuSetValue|menuShortcut|menuShortcutText|menuSize|menuSort|menuText|menuURL|menuValue|min|mineActive|mineDetectedBy|missionConfigFile|missionDifficulty|missionName|missionNamespace|missionStart|missionVersion|modelToWorld|modelToWorldVisual|modelToWorldVisualWorld|modelToWorldWorld|modParams|moonIntensity|moonPhase|morale|move|move3DENCamera|moveInAny|moveInCargo|moveInCommander|moveInDriver|moveInGunner|moveInTurret|moveObjectToEnd|moveOut|moveTime|moveTo|moveToCompleted|moveToFailed|musicVolume|name|nameSound|nearEntities|nearestBuilding|nearestLocation|nearestLocations|nearestLocationWithDubbing|nearestObject|nearestObjects|nearestTerrainObjects|nearObjects|nearObjectsReady|nearRoads|nearSupplies|nearTargets|needReload|netId|netObjNull|newOverlay|nextMenuItemIndex|nextWeatherChange|nMenuItems|numberOfEnginesRTD|numberToDate|objectCurators|objectFromNetId|objectParent|objNull|objStatus|onBriefingGear|onBriefingGroup|onBriefingNotes|onBriefingPlan|onBriefingTeamSwitch|onCommandModeChanged|onDoubleClick|onEachFrame|onGroupIconClick|onGroupIconOverEnter|onGroupIconOverLeave|onHCGroupSelectionChanged|onMapSingleClick|onPlayerConnected|onPlayerDisconnected|onPreloadFinished|onPreloadStarted|onShowNewObject|onTeamSwitch|openCuratorInterface|openDLCPage|openDSInterface|openMap|openSteamApp|openYoutubeVideo|opfor|orderGetIn|overcast|overcastForecast|owner|param|params|parseNumber|parseSimpleArray|parseText|parsingNamespace|particlesQuality|pi|pickWeaponPool|pitch|pixelGrid|pixelGridBase|pixelGridNoUIScale|pixelH|pixelW|playableSlotsNumber|playableUnits|playAction|playActionNow|player|playerRespawnTime|playerSide|playersNumber|playGesture|playMission|playMove|playMoveNow|playMusic|playScriptedMission|playSound|playSound3D|position|positionCameraToWorld|posScreenToWorld|posWorldToScreen|ppEffectAdjust|ppEffectCommit|ppEffectCommitted|ppEffectCreate|ppEffectDestroy|ppEffectEnable|ppEffectEnabled|ppEffectForceInNVG|precision|preloadCamera|preloadObject|preloadSound|preloadTitleObj|preloadTitleRsc|primaryWeapon|primaryWeaponItems|primaryWeaponMagazine|priority|processDiaryLink|processInitCommands|productVersion|profileName|profileNamespace|profileNameSteam|progressLoadingScreen|progressPosition|progressSetPosition|publicVariable|publicVariableClient|publicVariableServer|pushBack|pushBackUnique|putWeaponPool|queryItemsPool|queryMagazinePool|queryWeaponPool|rad|radioChannelAdd|radioChannelCreate|radioChannelRemove|radioChannelSetCallSign|radioChannelSetLabel|radioVolume|rain|rainbow|random|rank|rankId|rating|rectangular|registeredTasks|registerTask|reload|reloadEnabled|remoteControl|remoteExec|remoteExecCall|remoteExecutedOwner|remove3DENConnection|remove3DENEventHandler|remove3DENLayer|removeAction|removeAll3DENEventHandlers|removeAllActions|removeAllAssignedItems|removeAllContainers|removeAllCuratorAddons|removeAllCuratorCameraAreas|removeAllCuratorEditingAreas|removeAllEventHandlers|removeAllHandgunItems|removeAllItems|removeAllItemsWithMagazines|removeAllMissionEventHandlers|removeAllMPEventHandlers|removeAllMusicEventHandlers|removeAllOwnedMines|removeAllPrimaryWeaponItems|removeAllWeapons|removeBackpack|removeBackpackGlobal|removeCuratorAddons|removeCuratorCameraArea|removeCuratorEditableObjects|removeCuratorEditingArea|removeDrawIcon|removeDrawLinks|removeEventHandler|removeFromRemainsCollector|removeGoggles|removeGroupIcon|removeHandgunItem|removeHeadgear|removeItem|removeItemFromBackpack|removeItemFromUniform|removeItemFromVest|removeItems|removeMagazine|removeMagazineGlobal|removeMagazines|removeMagazinesTurret|removeMagazineTurret|removeMenuItem|removeMissionEventHandler|removeMPEventHandler|removeMusicEventHandler|removeOwnedMine|removePrimaryWeaponItem|removeSecondaryWeaponItem|removeSimpleTask|removeSwitchableUnit|removeTeamMember|removeUniform|removeVest|removeWeapon|removeWeaponAttachmentCargo|removeWeaponCargo|removeWeaponGlobal|removeWeaponTurret|reportRemoteTarget|requiredVersion|resetCamShake|resetSubgroupDirection|resistance|resize|resources|respawnVehicle|restartEditorCamera|reveal|revealMine|reverse|reversedMouseY|roadAt|roadsConnectedTo|roleDescription|ropeAttachedObjects|ropeAttachedTo|ropeAttachEnabled|ropeAttachTo|ropeCreate|ropeCut|ropeDestroy|ropeDetach|ropeEndPosition|ropeLength|ropes|ropeUnwind|ropeUnwound|rotorsForcesRTD|rotorsRpmRTD|round|runInitScript|safeZoneH|safeZoneW|safeZoneWAbs|safeZoneX|safeZoneXAbs|safeZoneY|save3DENInventory|saveGame|saveIdentity|saveJoysticks|saveOverlay|saveProfileNamespace|saveStatus|saveVar|savingEnabled|say|say2D|say3D|score|scoreSide|screenshot|screenToWorld|scriptDone|scriptName|scriptNull|scudState|secondaryWeapon|secondaryWeaponItems|secondaryWeaponMagazine|select|selectBestPlaces|selectDiarySubject|selectedEditorObjects|selectEditorObject|selectionNames|selectionPosition|selectLeader|selectMax|selectMin|selectNoPlayer|selectPlayer|selectRandom|selectRandomWeighted|selectWeapon|selectWeaponTurret|sendAUMessage|sendSimpleCommand|sendTask|sendTaskResult|sendUDPMessage|serverCommand|serverCommandAvailable|serverCommandExecutable|serverName|serverTime|set|set3DENAttribute|set3DENAttributes|set3DENGrid|set3DENIconsVisible|set3DENLayer|set3DENLinesVisible|set3DENLogicType|set3DENMissionAttribute|set3DENMissionAttributes|set3DENModelsVisible|set3DENObjectType|set3DENSelected|setAccTime|setActualCollectiveRTD|setAirplaneThrottle|setAirportSide|setAmmo|setAmmoCargo|setAmmoOnPylon|setAnimSpeedCoef|setAperture|setApertureNew|setArmoryPoints|setAttributes|setAutonomous|setBehaviour|setBleedingRemaining|setBrakesRTD|setCameraInterest|setCamShakeDefParams|setCamShakeParams|setCamUseTI|setCaptive|setCenterOfMass|setCollisionLight|setCombatMode|setCompassOscillation|setConvoySeparation|setCuratorCameraAreaCeiling|setCuratorCoef|setCuratorEditingAreaType|setCuratorWaypointCost|setCurrentChannel|setCurrentTask|setCurrentWaypoint|setCustomAimCoef|setCustomWeightRTD|setDamage|setDammage|setDate|setDebriefingText|setDefaultCamera|setDestination|setDetailMapBlendPars|setDir|setDirection|setDrawIcon|setDriveOnPath|setDropInterval|setDynamicSimulationDistance|setDynamicSimulationDistanceCoef|setEditorMode|setEditorObjectScope|setEffectCondition|setEngineRpmRTD|setFace|setFaceAnimation|setFatigue|setFeatureType|setFlagAnimationPhase|setFlagOwner|setFlagSide|setFlagTexture|setFog|setForceGeneratorRTD|setFormation|setFormationTask|setFormDir|setFriend|setFromEditor|setFSMVariable|setFuel|setFuelCargo|setGroupIcon|setGroupIconParams|setGroupIconsSelectable|setGroupIconsVisible|setGroupId|setGroupIdGlobal|setGroupOwner|setGusts|setHideBehind|setHit|setHitIndex|setHitPointDamage|setHorizonParallaxCoef|setHUDMovementLevels|setIdentity|setImportance|setInfoPanel|setLeader|setLightAmbient|setLightAttenuation|setLightBrightness|setLightColor|setLightDayLight|setLightFlareMaxDistance|setLightFlareSize|setLightIntensity|setLightnings|setLightUseFlare|setLocalWindParams|setMagazineTurretAmmo|setMarkerAlpha|setMarkerAlphaLocal|setMarkerBrush|setMarkerBrushLocal|setMarkerColor|setMarkerColorLocal|setMarkerDir|setMarkerDirLocal|setMarkerPos|setMarkerPosLocal|setMarkerShape|setMarkerShapeLocal|setMarkerSize|setMarkerSizeLocal|setMarkerText|setMarkerTextLocal|setMarkerType|setMarkerTypeLocal|setMass|setMimic|setMousePosition|setMusicEffect|setMusicEventHandler|setName|setNameSound|setObjectArguments|setObjectMaterial|setObjectMaterialGlobal|setObjectProxy|setObjectTexture|setObjectTextureGlobal|setObjectViewDistance|setOvercast|setOwner|setOxygenRemaining|setParticleCircle|setParticleClass|setParticleFire|setParticleParams|setParticleRandom|setPilotCameraDirection|setPilotCameraRotation|setPilotCameraTarget|setPilotLight|setPiPEffect|setPitch|setPlateNumber|setPlayable|setPlayerRespawnTime|setPos|setPosASL|setPosASL2|setPosASLW|setPosATL|setPosition|setPosWorld|setPylonLoadOut|setPylonsPriority|setRadioMsg|setRain|setRainbow|setRandomLip|setRank|setRectangular|setRepairCargo|setRotorBrakeRTD|setShadowDistance|setShotParents|setSide|setSimpleTaskAlwaysVisible|setSimpleTaskCustomData|setSimpleTaskDescription|setSimpleTaskDestination|setSimpleTaskTarget|setSimpleTaskType|setSimulWeatherLayers|setSize|setSkill|setSlingLoad|setSoundEffect|setSpeaker|setSpeech|setSpeedMode|setStamina|setStaminaScheme|setStatValue|setSuppression|setSystemOfUnits|setTargetAge|setTaskMarkerOffset|setTaskResult|setTaskState|setTerrainGrid|setText|setTimeMultiplier|setTitleEffect|setToneMapping|setToneMappingParams|setTrafficDensity|setTrafficDistance|setTrafficGap|setTrafficSpeed|setTriggerActivation|setTriggerArea|setTriggerStatements|setTriggerText|setTriggerTimeout|setTriggerType|setType|setUnconscious|setUnitAbility|setUnitLoadout|setUnitPos|setUnitPosWeak|setUnitRank|setUnitRecoilCoefficient|setUnitTrait|setUnloadInCombat|setUserActionText|setUserMFDText|setUserMFDValue|setVariable|setVectorDir|setVectorDirAndUp|setVectorUp|setVehicleAmmo|setVehicleAmmoDef|setVehicleArmor|setVehicleCargo|setVehicleId|setVehicleInit|setVehicleLock|setVehiclePosition|setVehicleRadar|setVehicleReceiveRemoteTargets|setVehicleReportOwnPosition|setVehicleReportRemoteTargets|setVehicleTIPars|setVehicleVarName|setVelocity|setVelocityModelSpace|setVelocityTransformation|setViewDistance|setVisibleIfTreeCollapsed|setWantedRpmRTD|setWaves|setWaypointBehaviour|setWaypointCombatMode|setWaypointCompletionRadius|setWaypointDescription|setWaypointForceBehaviour|setWaypointFormation|setWaypointHousePosition|setWaypointLoiterRadius|setWaypointLoiterType|setWaypointName|setWaypointPosition|setWaypointScript|setWaypointSpeed|setWaypointStatements|setWaypointTimeout|setWaypointType|setWaypointVisible|setWeaponReloadingTime|setWind|setWindDir|setWindForce|setWindStr|setWingForceScaleRTD|setWPPos|show3DIcons|showChat|showCinemaBorder|showCommandingMenu|showCompass|showCuratorCompass|showGPS|showHUD|showLegend|showMap|shownArtilleryComputer|shownChat|shownCompass|shownCuratorCompass|showNewEditorObject|shownGPS|shownHUD|shownMap|shownPad|shownRadio|shownScoretable|shownUAVFeed|shownWarrant|shownWatch|showPad|showRadio|showScoretable|showSubtitles|showUAVFeed|showWarrant|showWatch|showWaypoint|showWaypoints|side|sideAmbientLife|sideChat|sideEmpty|sideEnemy|sideFriendly|sideLogic|sideRadio|sideUnknown|simpleTasks|simulationEnabled|simulCloudDensity|simulCloudOcclusion|simulInClouds|simulWeatherSync|sin|size|sizeOf|skill|skillFinal|skipTime|sleep|sliderPosition|sliderRange|sliderSetPosition|sliderSetRange|sliderSetSpeed|sliderSpeed|slingLoadAssistantShown|soldierMagazines|someAmmo|sort|soundVolume|speaker|speed|speedMode|splitString|sqrt|squadParams|stance|startLoadingScreen|stop|stopEngineRTD|stopped|str|sunOrMoon|supportInfo|suppressFor|surfaceIsWater|surfaceNormal|surfaceType|swimInDepth|switchableUnits|switchAction|switchCamera|switchGesture|switchLight|switchMove|synchronizedObjects|synchronizedTriggers|synchronizedWaypoints|synchronizeObjectsAdd|synchronizeObjectsRemove|synchronizeTrigger|synchronizeWaypoint|systemChat|systemOfUnits|tan|targetKnowledge|targets|targetsAggregate|targetsQuery|taskAlwaysVisible|taskChildren|taskCompleted|taskCustomData|taskDescription|taskDestination|taskHint|taskMarkerOffset|taskNull|taskParent|taskResult|taskState|taskType|teamMember|teamMemberNull|teamName|teams|teamSwitch|teamSwitchEnabled|teamType|terminate|terrainIntersect|terrainIntersectASL|terrainIntersectAtASL|text|textLog|textLogFormat|tg|time|timeMultiplier|titleCut|titleFadeOut|titleObj|titleRsc|titleText|toArray|toFixed|toLower|toString|toUpper|triggerActivated|triggerActivation|triggerArea|triggerAttachedVehicle|triggerAttachObject|triggerAttachVehicle|triggerDynamicSimulation|triggerStatements|triggerText|triggerTimeout|triggerTimeoutCurrent|triggerType|turretLocal|turretOwner|turretUnit|tvAdd|tvClear|tvCollapse|tvCollapseAll|tvCount|tvCurSel|tvData|tvDelete|tvExpand|tvExpandAll|tvPicture|tvPictureRight|tvSetColor|tvSetCurSel|tvSetData|tvSetPicture|tvSetPictureColor|tvSetPictureColorDisabled|tvSetPictureColorSelected|tvSetPictureRight|tvSetPictureRightColor|tvSetPictureRightColorDisabled|tvSetPictureRightColorSelected|tvSetSelectColor|tvSetText|tvSetTooltip|tvSetValue|tvSort|tvSortByValue|tvText|tvTooltip|tvValue|type|typeName|typeOf|UAVControl|uiNamespace|uiSleep|unassignCurator|unassignItem|unassignTeam|unassignVehicle|underwater|uniform|uniformContainer|uniformItems|uniformMagazines|unitAddons|unitAimPosition|unitAimPositionVisual|unitBackpack|unitIsUAV|unitPos|unitReady|unitRecoilCoefficient|units|unitsBelowHeight|unlinkItem|unlockAchievement|unregisterTask|updateDrawIcon|updateMenuItem|updateObjectTree|useAIOperMapObstructionTest|useAISteeringComponent|useAudioTimeForMoves|userInputDisabled|vectorAdd|vectorCos|vectorCrossProduct|vectorDiff|vectorDir|vectorDirVisual|vectorDistance|vectorDistanceSqr|vectorDotProduct|vectorFromTo|vectorMagnitude|vectorMagnitudeSqr|vectorModelToWorld|vectorModelToWorldVisual|vectorMultiply|vectorNormalized|vectorUp|vectorUpVisual|vectorWorldToModel|vectorWorldToModelVisual|vehicle|vehicleCargoEnabled|vehicleChat|vehicleRadio|vehicleReceiveRemoteTargets|vehicleReportOwnPosition|vehicleReportRemoteTargets|vehicles|vehicleVarName|velocity|velocityModelSpace|verifySignature|vest|vestContainer|vestItems|vestMagazines|viewDistance|visibleCompass|visibleGPS|visibleMap|visiblePosition|visiblePositionASL|visibleScoretable|visibleWatch|waitUntil|waves|waypointAttachedObject|waypointAttachedVehicle|waypointAttachObject|waypointAttachVehicle|waypointBehaviour|waypointCombatMode|waypointCompletionRadius|waypointDescription|waypointForceBehaviour|waypointFormation|waypointHousePosition|waypointLoiterRadius|waypointLoiterType|waypointName|waypointPosition|waypoints|waypointScript|waypointsEnabledUAV|waypointShow|waypointSpeed|waypointStatements|waypointTimeout|waypointTimeoutCurrent|waypointType|waypointVisible|weaponAccessories|weaponAccessoriesCargo|weaponCargo|weaponDirection|weaponInertia|weaponLowered|weapons|weaponsItems|weaponsItemsCargo|weaponState|weaponsTurret|weightRTD|west|WFSideText|wind|windDir|windRTD|windStr|wingsForcesRTD|worldName|worldSize|worldToModel|worldToModelVisual|worldToScreen)\\b/i,\n number: /(?:\\$|\\b0x)[\\da-f]+\\b|(?:\\B\\.\\d+|\\b\\d+(?:\\.\\d+)?)(?:e[+-]?\\d+)?\\b/i,\n operator: /##|>>|&&|\\|\\||[!=<>]=?|[-+*/%#^]|\\b(?:and|mod|not|or)\\b/i,\n 'magic-variable': {\n pattern: /\\b(?:_exception|_fnc_scriptName|_fnc_scriptNameParent|_forEachIndex|_this|_thisEventHandler|_thisFSM|_thisScript|_x|this|thisList|thisTrigger)\\b/i,\n alias: 'keyword'\n },\n constant: /\\bDIK(?:_[a-z\\d]+)+\\b/i\n })\n Prism.languages.insertBefore('sqf', 'string', {\n macro: {\n pattern: /(^\\s*)#[a-z](?:[^\\r\\n\\\\]|\\\\(?:\\r\\n|[\\s\\S]))*/im,\n lookbehind: true,\n greedy: true,\n alias: 'property',\n inside: {\n directive: {\n pattern: /#[a-z]+\\b/i,\n alias: 'keyword'\n },\n comment: Prism.languages.sqf.comment\n }\n }\n })\n delete Prism.languages.sqf['class-name']\n}\n","'use strict'\n\nmodule.exports = stan\nstan.displayName = 'stan'\nstan.aliases = []\nfunction stan(Prism) {\n // https://mc-stan.org/docs/2_24/reference-manual/bnf-grammars.html\n Prism.languages.stan = {\n comment: /\\/\\/.*|\\/\\*[\\s\\S]*?\\*\\/|#(?!include).*/,\n string: {\n // String literals can contain spaces and any printable ASCII characters except for \" and \\\n // https://mc-stan.org/docs/2_24/reference-manual/print-statements-section.html#string-literals\n pattern: /\"[\\x20\\x21\\x23-\\x5B\\x5D-\\x7E]*\"/,\n greedy: true\n },\n directive: {\n pattern: /^([ \\t]*)#include\\b.*/m,\n lookbehind: true,\n alias: 'property'\n },\n 'function-arg': {\n pattern: /(\\b(?:algebra_solver|integrate_1d|integrate_ode|integrate_ode_bdf|integrate_ode_rk45|map_rect)\\s*\\(\\s*)[a-zA-Z]\\w*/,\n lookbehind: true,\n alias: 'function'\n },\n constraint: {\n pattern: /(\\b(?:int|matrix|real|row_vector|vector)\\s*)<[^<>]*>/,\n lookbehind: true,\n inside: {\n expression: {\n pattern: /(=\\s*)\\S(?:\\S|\\s+(?!\\s))*?(?=\\s*(?:>$|,\\s*\\w+\\s*=))/,\n lookbehind: true,\n inside: null // see below\n },\n property: /\\b[a-z]\\w*(?=\\s*=)/i,\n operator: /=/,\n punctuation: /^<|>$|[,]/\n }\n },\n keyword: [\n /\\b(?:break|cholesky_factor_corr|cholesky_factor_cov|continue|corr_matrix|cov_matrix|data|else|for|functions|generated|if|in|increment_log_prob|int|matrix|model|ordered|parameters|positive_ordered|print|quantities|real|reject|return|row_vector|simplex|target|transformed|unit_vector|vector|void|while)\\b/, // these are functions that are known to take another function as their first argument.\n /\\b(?:algebra_solver|integrate_1d|integrate_ode|integrate_ode_bdf|integrate_ode_rk45|map_rect)\\b/\n ],\n function: /\\b[a-z]\\w*(?=\\s*\\()/i,\n number: /(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:E[+-]?\\d+)?\\b/i,\n boolean: /\\b(?:false|true)\\b/,\n operator: /<-|\\.[*/]=?|\\|\\|?|&&|[!=<>+\\-*/]=?|['^%~?:]/,\n punctuation: /[()\\[\\]{},;]/\n }\n Prism.languages.stan.constraint.inside.expression.inside =\n Prism.languages.stan\n}\n","'use strict'\n\nmodule.exports = stylus\nstylus.displayName = 'stylus'\nstylus.aliases = []\nfunction stylus(Prism) {\n ;(function (Prism) {\n var unit = {\n pattern: /(\\b\\d+)(?:%|[a-z]+)/,\n lookbehind: true\n } // 123 -123 .123 -.123 12.3 -12.3\n var number = {\n pattern: /(^|[^\\w.-])-?(?:\\d+(?:\\.\\d+)?|\\.\\d+)/,\n lookbehind: true\n }\n var inside = {\n comment: {\n pattern: /(^|[^\\\\])(?:\\/\\*[\\s\\S]*?\\*\\/|\\/\\/.*)/,\n lookbehind: true\n },\n url: {\n pattern: /url\\(([\"']?).*?\\1\\)/i,\n greedy: true\n },\n string: {\n pattern: /(\"|')(?:(?!\\1)[^\\\\\\r\\n]|\\\\(?:\\r\\n|[\\s\\S]))*\\1/,\n greedy: true\n },\n interpolation: null,\n // See below\n func: null,\n // See below\n important: /\\B!(?:important|optional)\\b/i,\n keyword: {\n pattern: /(^|\\s+)(?:(?:if|else|for|return|unless)(?=\\s+|$)|@[\\w-]+)/,\n lookbehind: true\n },\n hexcode: /#[\\da-f]{3,6}/i,\n color: [\n /\\b(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)\\b/i,\n {\n pattern: /\\b(?:rgb|hsl)\\(\\s*\\d{1,3}\\s*,\\s*\\d{1,3}%?\\s*,\\s*\\d{1,3}%?\\s*\\)\\B|\\b(?:rgb|hsl)a\\(\\s*\\d{1,3}\\s*,\\s*\\d{1,3}%?\\s*,\\s*\\d{1,3}%?\\s*,\\s*(?:0|0?\\.\\d+|1)\\s*\\)\\B/i,\n inside: {\n unit: unit,\n number: number,\n function: /[\\w-]+(?=\\()/,\n punctuation: /[(),]/\n }\n }\n ],\n entity: /\\\\[\\da-f]{1,8}/i,\n unit: unit,\n boolean: /\\b(?:true|false)\\b/,\n operator: [\n // We want non-word chars around \"-\" because it is\n // accepted in property names.\n /~|[+!\\/%<>?=]=?|[-:]=|\\*[*=]?|\\.{2,3}|&&|\\|\\||\\B-\\B|\\b(?:and|in|is(?: a| defined| not|nt)?|not|or)\\b/\n ],\n number: number,\n punctuation: /[{}()\\[\\];:,]/\n }\n inside['interpolation'] = {\n pattern: /\\{[^\\r\\n}:]+\\}/,\n alias: 'variable',\n inside: {\n delimiter: {\n pattern: /^{|}$/,\n alias: 'punctuation'\n },\n rest: inside\n }\n }\n inside['func'] = {\n pattern: /[\\w-]+\\([^)]*\\).*/,\n inside: {\n function: /^[^(]+/,\n rest: inside\n }\n }\n Prism.languages.stylus = {\n 'atrule-declaration': {\n pattern: /(^\\s*)@.+/m,\n lookbehind: true,\n inside: {\n atrule: /^@[\\w-]+/,\n rest: inside\n }\n },\n 'variable-declaration': {\n pattern: /(^[ \\t]*)[\\w$-]+\\s*.?=[ \\t]*(?:\\{[^{}]*\\}|\\S.*|$)/m,\n lookbehind: true,\n inside: {\n variable: /^\\S+/,\n rest: inside\n }\n },\n statement: {\n pattern: /(^[ \\t]*)(?:if|else|for|return|unless)[ \\t].+/m,\n lookbehind: true,\n inside: {\n keyword: /^\\S+/,\n rest: inside\n }\n },\n // A property/value pair cannot end with a comma or a brace\n // It cannot have indented content unless it ended with a semicolon\n 'property-declaration': {\n pattern: /((?:^|\\{)([ \\t]*))(?:[\\w-]|\\{[^}\\r\\n]+\\})+(?:\\s*:\\s*|[ \\t]+)(?!\\s)[^{\\r\\n]*(?:;|[^{\\r\\n,](?=$)(?!(?:\\r?\\n|\\r)(?:\\{|\\2[ \\t]+)))/m,\n lookbehind: true,\n inside: {\n property: {\n pattern: /^[^\\s:]+/,\n inside: {\n interpolation: inside.interpolation\n }\n },\n rest: inside\n }\n },\n // A selector can contain parentheses only as part of a pseudo-element\n // It can span multiple lines.\n // It must end with a comma or an accolade or have indented content.\n selector: {\n pattern: /(^[ \\t]*)(?:(?=\\S)(?:[^{}\\r\\n:()]|::?[\\w-]+(?:\\([^)\\r\\n]*\\)|(?![\\w-]))|\\{[^}\\r\\n]+\\})+)(?:(?:\\r?\\n|\\r)(?:\\1(?:(?=\\S)(?:[^{}\\r\\n:()]|::?[\\w-]+(?:\\([^)\\r\\n]*\\)|(?![\\w-]))|\\{[^}\\r\\n]+\\})+)))*(?:,$|\\{|(?=(?:\\r?\\n|\\r)(?:\\{|\\1[ \\t]+)))/m,\n lookbehind: true,\n inside: {\n interpolation: inside.interpolation,\n comment: inside.comment,\n punctuation: /[{},]/\n }\n },\n func: inside.func,\n string: inside.string,\n comment: {\n pattern: /(^|[^\\\\])(?:\\/\\*[\\s\\S]*?\\*\\/|\\/\\/.*)/,\n lookbehind: true,\n greedy: true\n },\n interpolation: inside.interpolation,\n punctuation: /[{}()\\[\\];:.]/\n }\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = swift\nswift.displayName = 'swift'\nswift.aliases = []\nfunction swift(Prism) {\n // issues: nested multiline comments\n Prism.languages.swift = Prism.languages.extend('clike', {\n string: {\n pattern: /(\"|')(?:\\\\(?:\\((?:[^()]|\\([^)]+\\))+\\)|\\r\\n|[^(])|(?!\\1)[^\\\\\\r\\n])*\\1/,\n greedy: true,\n inside: {\n interpolation: {\n pattern: /\\\\\\((?:[^()]|\\([^)]+\\))+\\)/,\n inside: {\n delimiter: {\n pattern: /^\\\\\\(|\\)$/,\n alias: 'variable'\n } // See rest below\n }\n }\n }\n },\n keyword: /\\b(?:as|associativity|break|case|catch|class|continue|convenience|default|defer|deinit|didSet|do|dynamic(?:Type)?|else|enum|extension|fallthrough|final|for|func|get|guard|if|import|in|infix|init|inout|internal|is|lazy|left|let|mutating|new|none|nonmutating|operator|optional|override|postfix|precedence|prefix|private|protocol|public|repeat|required|rethrows|return|right|safe|self|Self|set|static|struct|subscript|super|switch|throws?|try|Type|typealias|unowned|unsafe|var|weak|where|while|willSet|__(?:COLUMN__|FILE__|FUNCTION__|LINE__))\\b/,\n number: /\\b(?:[\\d_]+(?:\\.[\\de_]+)?|0x[a-f0-9_]+(?:\\.[a-f0-9p_]+)?|0b[01_]+|0o[0-7_]+)\\b/i,\n constant: /\\b(?:nil|[A-Z_]{2,}|k[A-Z][A-Za-z_]+)\\b/,\n atrule: /@\\b(?:IB(?:Outlet|Designable|Action|Inspectable)|class_protocol|exported|noreturn|NS(?:Copying|Managed)|objc|UIApplicationMain|auto_closure)\\b/,\n builtin: /\\b(?:[A-Z]\\S+|abs|advance|alignof(?:Value)?|assert|contains|count(?:Elements)?|debugPrint(?:ln)?|distance|drop(?:First|Last)|dump|enumerate|equal|filter|find|first|getVaList|indices|isEmpty|join|last|lexicographicalCompare|map|max(?:Element)?|min(?:Element)?|numericCast|overlaps|partition|print(?:ln)?|reduce|reflect|reverse|sizeof(?:Value)?|sort(?:ed)?|split|startsWith|stride(?:of(?:Value)?)?|suffix|swap|toDebugString|toString|transcode|underestimateCount|unsafeBitCast|with(?:ExtendedLifetime|Unsafe(?:MutablePointers?|Pointers?)|VaList))\\b/\n })\n Prism.languages.swift['string'].inside['interpolation'].inside.rest =\n Prism.languages.swift\n}\n","'use strict'\nvar refractorT4Templating = require('./t4-templating.js')\nvar refractorCsharp = require('./csharp.js')\nmodule.exports = t4Cs\nt4Cs.displayName = 't4Cs'\nt4Cs.aliases = []\nfunction t4Cs(Prism) {\n Prism.register(refractorT4Templating)\n Prism.register(refractorCsharp)\n Prism.languages.t4 = Prism.languages['t4-cs'] = Prism.languages[\n 't4-templating'\n ].createT4('csharp')\n}\n","'use strict'\nvar refractorT4Templating = require('./t4-templating.js')\nvar refractorVbnet = require('./vbnet.js')\nmodule.exports = t4Vb\nt4Vb.displayName = 't4Vb'\nt4Vb.aliases = []\nfunction t4Vb(Prism) {\n Prism.register(refractorT4Templating)\n Prism.register(refractorVbnet)\n Prism.languages['t4-vb'] = Prism.languages['t4-templating'].createT4('vbnet')\n}\n","'use strict'\nvar refractorYaml = require('./yaml.js')\nmodule.exports = tap\ntap.displayName = 'tap'\ntap.aliases = []\nfunction tap(Prism) {\n Prism.register(refractorYaml)\n Prism.languages.tap = {\n fail: /not ok[^#{\\n\\r]*/,\n pass: /ok[^#{\\n\\r]*/,\n pragma: /pragma [+-][a-z]+/,\n bailout: /bail out!.*/i,\n version: /TAP version \\d+/i,\n plan: /\\d+\\.\\.\\d+(?: +#.*)?/,\n subtest: {\n pattern: /# Subtest(?:: .*)?/,\n greedy: true\n },\n punctuation: /[{}]/,\n directive: /#.*/,\n yamlish: {\n pattern: /(^[ \\t]*)---[\\s\\S]*?[\\r\\n][ \\t]*\\.\\.\\.$/m,\n lookbehind: true,\n inside: Prism.languages.yaml,\n alias: 'language-yaml'\n }\n }\n}\n","'use strict'\n\nmodule.exports = tcl\ntcl.displayName = 'tcl'\ntcl.aliases = []\nfunction tcl(Prism) {\n Prism.languages.tcl = {\n comment: {\n pattern: /(^|[^\\\\])#.*/,\n lookbehind: true\n },\n string: {\n pattern: /\"(?:[^\"\\\\\\r\\n]|\\\\(?:\\r\\n|[\\s\\S]))*\"/,\n greedy: true\n },\n variable: [\n {\n pattern: /(\\$)(?:::)?(?:[a-zA-Z0-9]+::)*\\w+/,\n lookbehind: true\n },\n {\n pattern: /(\\$){[^}]+}/,\n lookbehind: true\n },\n {\n pattern: /(^\\s*set[ \\t]+)(?:::)?(?:[a-zA-Z0-9]+::)*\\w+/m,\n lookbehind: true\n }\n ],\n function: {\n pattern: /(^\\s*proc[ \\t]+)[^\\s]+/m,\n lookbehind: true\n },\n builtin: [\n {\n pattern: /(^\\s*)(?:proc|return|class|error|eval|exit|for|foreach|if|switch|while|break|continue)\\b/m,\n lookbehind: true\n },\n /\\b(?:elseif|else)\\b/\n ],\n scope: {\n pattern: /(^\\s*)(?:global|upvar|variable)\\b/m,\n lookbehind: true,\n alias: 'constant'\n },\n keyword: {\n pattern: /(^\\s*|\\[)(?:after|append|apply|array|auto_(?:execok|import|load|mkindex|qualify|reset)|automkindex_old|bgerror|binary|catch|cd|chan|clock|close|concat|dde|dict|encoding|eof|exec|expr|fblocked|fconfigure|fcopy|file(?:event|name)?|flush|gets|glob|history|http|incr|info|interp|join|lappend|lassign|lindex|linsert|list|llength|load|lrange|lrepeat|lreplace|lreverse|lsearch|lset|lsort|math(?:func|op)|memory|msgcat|namespace|open|package|parray|pid|pkg_mkIndex|platform|puts|pwd|re_syntax|read|refchan|regexp|registry|regsub|rename|Safe_Base|scan|seek|set|socket|source|split|string|subst|Tcl|tcl(?:_endOfWord|_findLibrary|startOf(?:Next|Previous)Word|wordBreak(?:After|Before)|test|vars)|tell|time|tm|trace|unknown|unload|unset|update|uplevel|vwait)\\b/m,\n lookbehind: true\n },\n operator: /!=?|\\*\\*?|==|&&?|\\|\\|?|<[=<]?|>[=>]?|[-+~\\/%?^]|\\b(?:eq|ne|in|ni)\\b/,\n punctuation: /[{}()\\[\\]]/\n }\n}\n","'use strict'\n\nmodule.exports = textile\ntextile.displayName = 'textile'\ntextile.aliases = []\nfunction textile(Prism) {\n ;(function (Prism) {\n // We don't allow for pipes inside parentheses\n // to not break table pattern |(. foo |). bar |\n var modifierRegex = /\\([^|()\\n]+\\)|\\[[^\\]\\n]+\\]|\\{[^}\\n]+\\}/.source // Opening and closing parentheses which are not a modifier\n // This pattern is necessary to prevent exponential backtracking\n var parenthesesRegex = /\\)|\\((?![^|()\\n]+\\))/.source\n /**\n * @param {string} source\n * @param {string} [flags]\n */\n function withModifier(source, flags) {\n return RegExp(\n source\n .replace(/<MOD>/g, function () {\n return '(?:' + modifierRegex + ')'\n })\n .replace(/<PAR>/g, function () {\n return '(?:' + parenthesesRegex + ')'\n }),\n flags || ''\n )\n }\n var modifierTokens = {\n css: {\n pattern: /\\{[^}]+\\}/,\n inside: {\n rest: Prism.languages.css\n }\n },\n 'class-id': {\n pattern: /(\\()[^)]+(?=\\))/,\n lookbehind: true,\n alias: 'attr-value'\n },\n lang: {\n pattern: /(\\[)[^\\]]+(?=\\])/,\n lookbehind: true,\n alias: 'attr-value'\n },\n // Anything else is punctuation (the first pattern is for row/col spans inside tables)\n punctuation: /[\\\\\\/]\\d+|\\S/\n }\n var textile = (Prism.languages.textile = Prism.languages.extend('markup', {\n phrase: {\n pattern: /(^|\\r|\\n)\\S[\\s\\S]*?(?=$|\\r?\\n\\r?\\n|\\r\\r)/,\n lookbehind: true,\n inside: {\n // h1. Header 1\n 'block-tag': {\n pattern: withModifier(/^[a-z]\\w*(?:<MOD>|<PAR>|[<>=])*\\./.source),\n inside: {\n modifier: {\n pattern: withModifier(\n /(^[a-z]\\w*)(?:<MOD>|<PAR>|[<>=])+(?=\\.)/.source\n ),\n lookbehind: true,\n inside: modifierTokens\n },\n tag: /^[a-z]\\w*/,\n punctuation: /\\.$/\n }\n },\n // # List item\n // * List item\n list: {\n pattern: withModifier(/^[*#]+<MOD>*\\s+\\S.*/.source, 'm'),\n inside: {\n modifier: {\n pattern: withModifier(/(^[*#]+)<MOD>+/.source),\n lookbehind: true,\n inside: modifierTokens\n },\n punctuation: /^[*#]+/\n }\n },\n // | cell | cell | cell |\n table: {\n // Modifiers can be applied to the row: {color:red}.|1|2|3|\n // or the cell: |{color:red}.1|2|3|\n pattern: withModifier(\n /^(?:(?:<MOD>|<PAR>|[<>=^~])+\\.\\s*)?(?:\\|(?:(?:<MOD>|<PAR>|[<>=^~_]|[\\\\/]\\d+)+\\.|(?!(?:<MOD>|<PAR>|[<>=^~_]|[\\\\/]\\d+)+\\.))[^|]*)+\\|/\n .source,\n 'm'\n ),\n inside: {\n modifier: {\n // Modifiers for rows after the first one are\n // preceded by a pipe and a line feed\n pattern: withModifier(\n /(^|\\|(?:\\r?\\n|\\r)?)(?:<MOD>|<PAR>|[<>=^~_]|[\\\\/]\\d+)+(?=\\.)/\n .source\n ),\n lookbehind: true,\n inside: modifierTokens\n },\n punctuation: /\\||^\\./\n }\n },\n inline: {\n pattern: withModifier(\n /(^|[^a-zA-Z\\d])(\\*\\*|__|\\?\\?|[*_%@+\\-^~])<MOD>*.+?\\2(?![a-zA-Z\\d])/\n .source\n ),\n lookbehind: true,\n inside: {\n // Note: superscripts and subscripts are not handled specifically\n // *bold*, **bold**\n bold: {\n pattern: withModifier(/(^(\\*\\*?)<MOD>*).+?(?=\\2)/.source),\n lookbehind: true\n },\n // _italic_, __italic__\n italic: {\n pattern: withModifier(/(^(__?)<MOD>*).+?(?=\\2)/.source),\n lookbehind: true\n },\n // ??cite??\n cite: {\n pattern: withModifier(/(^\\?\\?<MOD>*).+?(?=\\?\\?)/.source),\n lookbehind: true,\n alias: 'string'\n },\n // @code@\n code: {\n pattern: withModifier(/(^@<MOD>*).+?(?=@)/.source),\n lookbehind: true,\n alias: 'keyword'\n },\n // +inserted+\n inserted: {\n pattern: withModifier(/(^\\+<MOD>*).+?(?=\\+)/.source),\n lookbehind: true\n },\n // -deleted-\n deleted: {\n pattern: withModifier(/(^-<MOD>*).+?(?=-)/.source),\n lookbehind: true\n },\n // %span%\n span: {\n pattern: withModifier(/(^%<MOD>*).+?(?=%)/.source),\n lookbehind: true\n },\n modifier: {\n pattern: withModifier(\n /(^\\*\\*|__|\\?\\?|[*_%@+\\-^~])<MOD>+/.source\n ),\n lookbehind: true,\n inside: modifierTokens\n },\n punctuation: /[*_%?@+\\-^~]+/\n }\n },\n // [alias]http://example.com\n 'link-ref': {\n pattern: /^\\[[^\\]]+\\]\\S+$/m,\n inside: {\n string: {\n pattern: /(\\[)[^\\]]+(?=\\])/,\n lookbehind: true\n },\n url: {\n pattern: /(\\])\\S+$/,\n lookbehind: true\n },\n punctuation: /[\\[\\]]/\n }\n },\n // \"text\":http://example.com\n // \"text\":link-ref\n link: {\n pattern: withModifier(\n /\"<MOD>*[^\"]+\":.+?(?=[^\\w/]?(?:\\s|$))/.source\n ),\n inside: {\n text: {\n pattern: withModifier(/(^\"<MOD>*)[^\"]+(?=\")/.source),\n lookbehind: true\n },\n modifier: {\n pattern: withModifier(/(^\")<MOD>+/.source),\n lookbehind: true,\n inside: modifierTokens\n },\n url: {\n pattern: /(:).+/,\n lookbehind: true\n },\n punctuation: /[\":]/\n }\n },\n // !image.jpg!\n // !image.jpg(Title)!:http://example.com\n image: {\n pattern: withModifier(\n /!(?:<MOD>|<PAR>|[<>=])*(?![<>=])[^!\\s()]+(?:\\([^)]+\\))?!(?::.+?(?=[^\\w/]?(?:\\s|$)))?/\n .source\n ),\n inside: {\n source: {\n pattern: withModifier(\n /(^!(?:<MOD>|<PAR>|[<>=])*)(?![<>=])[^!\\s()]+(?:\\([^)]+\\))?(?=!)/\n .source\n ),\n lookbehind: true,\n alias: 'url'\n },\n modifier: {\n pattern: withModifier(/(^!)(?:<MOD>|<PAR>|[<>=])+/.source),\n lookbehind: true,\n inside: modifierTokens\n },\n url: {\n pattern: /(:).+/,\n lookbehind: true\n },\n punctuation: /[!:]/\n }\n },\n // Footnote[1]\n footnote: {\n pattern: /\\b\\[\\d+\\]/,\n alias: 'comment',\n inside: {\n punctuation: /\\[|\\]/\n }\n },\n // CSS(Cascading Style Sheet)\n acronym: {\n pattern: /\\b[A-Z\\d]+\\([^)]+\\)/,\n inside: {\n comment: {\n pattern: /(\\()[^)]+(?=\\))/,\n lookbehind: true\n },\n punctuation: /[()]/\n }\n },\n // Prism(C)\n mark: {\n pattern: /\\b\\((?:TM|R|C)\\)/,\n alias: 'comment',\n inside: {\n punctuation: /[()]/\n }\n }\n }\n }\n }))\n var phraseInside = textile['phrase'].inside\n var nestedPatterns = {\n inline: phraseInside['inline'],\n link: phraseInside['link'],\n image: phraseInside['image'],\n footnote: phraseInside['footnote'],\n acronym: phraseInside['acronym'],\n mark: phraseInside['mark']\n } // Only allow alpha-numeric HTML tags, not XML tags\n textile.tag.pattern = /<\\/?(?!\\d)[a-z0-9]+(?:\\s+[^\\s>\\/=]+(?:=(?:(\"|')(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1|[^\\s'\">=]+))?)*\\s*\\/?>/i // Allow some nesting\n var phraseInlineInside = phraseInside['inline'].inside\n phraseInlineInside['bold'].inside = nestedPatterns\n phraseInlineInside['italic'].inside = nestedPatterns\n phraseInlineInside['inserted'].inside = nestedPatterns\n phraseInlineInside['deleted'].inside = nestedPatterns\n phraseInlineInside['span'].inside = nestedPatterns // Allow some styles inside table cells\n var phraseTableInside = phraseInside['table'].inside\n phraseTableInside['inline'] = nestedPatterns['inline']\n phraseTableInside['link'] = nestedPatterns['link']\n phraseTableInside['image'] = nestedPatterns['image']\n phraseTableInside['footnote'] = nestedPatterns['footnote']\n phraseTableInside['acronym'] = nestedPatterns['acronym']\n phraseTableInside['mark'] = nestedPatterns['mark']\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = toml\ntoml.displayName = 'toml'\ntoml.aliases = []\nfunction toml(Prism) {\n ;(function (Prism) {\n var key = /(?:[\\w-]+|'[^'\\n\\r]*'|\"(?:\\\\.|[^\\\\\"\\r\\n])*\")/.source\n /**\n * @param {string} pattern\n */\n function insertKey(pattern) {\n return pattern.replace(/__/g, function () {\n return key\n })\n }\n Prism.languages.toml = {\n comment: {\n pattern: /#.*/,\n greedy: true\n },\n table: {\n pattern: RegExp(\n insertKey(/(^\\s*\\[\\s*(?:\\[\\s*)?)__(?:\\s*\\.\\s*__)*(?=\\s*\\])/.source),\n 'm'\n ),\n lookbehind: true,\n greedy: true,\n alias: 'class-name'\n },\n key: {\n pattern: RegExp(\n insertKey(/(^\\s*|[{,]\\s*)__(?:\\s*\\.\\s*__)*(?=\\s*=)/.source),\n 'm'\n ),\n lookbehind: true,\n greedy: true,\n alias: 'property'\n },\n string: {\n pattern: /\"\"\"(?:\\\\[\\s\\S]|[^\\\\])*?\"\"\"|'''[\\s\\S]*?'''|'[^'\\n\\r]*'|\"(?:\\\\.|[^\\\\\"\\r\\n])*\"/,\n greedy: true\n },\n date: [\n {\n // Offset Date-Time, Local Date-Time, Local Date\n pattern: /\\b\\d{4}-\\d{2}-\\d{2}(?:[T\\s]\\d{2}:\\d{2}:\\d{2}(?:\\.\\d+)?(?:Z|[+-]\\d{2}:\\d{2})?)?\\b/i,\n alias: 'number'\n },\n {\n // Local Time\n pattern: /\\b\\d{2}:\\d{2}:\\d{2}(?:\\.\\d+)?\\b/,\n alias: 'number'\n }\n ],\n number: /(?:\\b0(?:x[\\da-zA-Z]+(?:_[\\da-zA-Z]+)*|o[0-7]+(?:_[0-7]+)*|b[10]+(?:_[10]+)*))\\b|[-+]?\\b\\d+(?:_\\d+)*(?:\\.\\d+(?:_\\d+)*)?(?:[eE][+-]?\\d+(?:_\\d+)*)?\\b|[-+]?\\b(?:inf|nan)\\b/,\n boolean: /\\b(?:true|false)\\b/,\n punctuation: /[.,=[\\]{}]/\n }\n })(Prism)\n}\n","'use strict'\nvar refractorJsx = require('./jsx.js')\nvar refractorTypescript = require('./typescript.js')\nmodule.exports = tsx\ntsx.displayName = 'tsx'\ntsx.aliases = []\nfunction tsx(Prism) {\n Prism.register(refractorJsx)\n Prism.register(refractorTypescript)\n ;(function (Prism) {\n var typescript = Prism.util.clone(Prism.languages.typescript)\n Prism.languages.tsx = Prism.languages.extend('jsx', typescript) // This will prevent collisions between TSX tags and TS generic types.\n // Idea by https://github.com/karlhorky\n // Discussion: https://github.com/PrismJS/prism/issues/2594#issuecomment-710666928\n var tag = Prism.languages.tsx.tag\n tag.pattern = RegExp(\n /(^|[^\\w$]|(?=<\\/))/.source + '(?:' + tag.pattern.source + ')',\n tag.pattern.flags\n )\n tag.lookbehind = true\n })(Prism)\n}\n","'use strict'\nvar refractorMarkupTemplating = require('./markup-templating.js')\nmodule.exports = tt2\ntt2.displayName = 'tt2'\ntt2.aliases = []\nfunction tt2(Prism) {\n Prism.register(refractorMarkupTemplating)\n ;(function (Prism) {\n Prism.languages.tt2 = Prism.languages.extend('clike', {\n comment: /#.*|\\[%#[\\s\\S]*?%\\]/,\n keyword: /\\b(?:BLOCK|CALL|CASE|CATCH|CLEAR|DEBUG|DEFAULT|ELSE|ELSIF|END|FILTER|FINAL|FOREACH|GET|IF|IN|INCLUDE|INSERT|LAST|MACRO|META|NEXT|PERL|PROCESS|RAWPERL|RETURN|SET|STOP|TAGS|THROW|TRY|SWITCH|UNLESS|USE|WHILE|WRAPPER)\\b/,\n punctuation: /[[\\]{},()]/\n })\n Prism.languages.insertBefore('tt2', 'number', {\n operator: /=[>=]?|!=?|<=?|>=?|&&|\\|\\|?|\\b(?:and|or|not)\\b/,\n variable: {\n pattern: /\\b[a-z]\\w*(?:\\s*\\.\\s*(?:\\d+|\\$?[a-z]\\w*))*\\b/i\n }\n })\n Prism.languages.insertBefore('tt2', 'keyword', {\n delimiter: {\n pattern: /^(?:\\[%|%%)-?|-?%]$/,\n alias: 'punctuation'\n }\n })\n Prism.languages.insertBefore('tt2', 'string', {\n 'single-quoted-string': {\n pattern: /'[^\\\\']*(?:\\\\[\\s\\S][^\\\\']*)*'/,\n greedy: true,\n alias: 'string'\n },\n 'double-quoted-string': {\n pattern: /\"[^\\\\\"]*(?:\\\\[\\s\\S][^\\\\\"]*)*\"/,\n greedy: true,\n alias: 'string',\n inside: {\n variable: {\n pattern: /\\$(?:[a-z]\\w*(?:\\.(?:\\d+|\\$?[a-z]\\w*))*)/i\n }\n }\n }\n }) // The different types of TT2 strings \"replace\" the C-like standard string\n delete Prism.languages.tt2.string\n Prism.hooks.add('before-tokenize', function (env) {\n var tt2Pattern = /\\[%[\\s\\S]+?%\\]/g\n Prism.languages['markup-templating'].buildPlaceholders(\n env,\n 'tt2',\n tt2Pattern\n )\n })\n Prism.hooks.add('after-tokenize', function (env) {\n Prism.languages['markup-templating'].tokenizePlaceholders(env, 'tt2')\n })\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = twig\ntwig.displayName = 'twig'\ntwig.aliases = []\nfunction twig(Prism) {\n Prism.languages.twig = {\n comment: /\\{#[\\s\\S]*?#\\}/,\n tag: {\n pattern: /\\{\\{[\\s\\S]*?\\}\\}|\\{%[\\s\\S]*?%\\}/,\n inside: {\n ld: {\n pattern: /^(?:\\{\\{-?|\\{%-?\\s*\\w+)/,\n inside: {\n punctuation: /^(?:\\{\\{|\\{%)-?/,\n keyword: /\\w+/\n }\n },\n rd: {\n pattern: /-?(?:%\\}|\\}\\})$/,\n inside: {\n punctuation: /.+/\n }\n },\n string: {\n pattern: /(\"|')(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n inside: {\n punctuation: /^['\"]|['\"]$/\n }\n },\n keyword: /\\b(?:even|if|odd)\\b/,\n boolean: /\\b(?:true|false|null)\\b/,\n number: /\\b0x[\\dA-Fa-f]+|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:[Ee][-+]?\\d+)?/,\n operator: [\n {\n pattern: /(\\s)(?:and|b-and|b-xor|b-or|ends with|in|is|matches|not|or|same as|starts with)(?=\\s)/,\n lookbehind: true\n },\n /[=<>]=?|!=|\\*\\*?|\\/\\/?|\\?:?|[-+~%|]/\n ],\n property: /\\b[a-zA-Z_]\\w*\\b/,\n punctuation: /[()\\[\\]{}:.,]/\n }\n },\n // The rest can be parsed as HTML\n other: {\n // We want non-blank matches\n pattern: /\\S(?:[\\s\\S]*\\S)?/,\n inside: Prism.languages.markup\n }\n }\n}\n","'use strict'\n\nmodule.exports = typoscript\ntyposcript.displayName = 'typoscript'\ntyposcript.aliases = ['tsconfig']\nfunction typoscript(Prism) {\n ;(function (Prism) {\n var keywords = /\\b(?:ACT|ACTIFSUB|CARRAY|CASE|CLEARGIF|COA|COA_INT|CONSTANTS|CONTENT|CUR|EDITPANEL|EFFECT|EXT|FILE|FLUIDTEMPLATE|FORM|FRAME|FRAMESET|GIFBUILDER|GMENU|GMENU_FOLDOUT|GMENU_LAYERS|GP|HMENU|HRULER|HTML|IENV|IFSUB|IMAGE|IMGMENU|IMGMENUITEM|IMGTEXT|IMG_RESOURCE|INCLUDE_TYPOSCRIPT|JSMENU|JSMENUITEM|LLL|LOAD_REGISTER|NO|PAGE|RECORDS|RESTORE_REGISTER|TEMPLATE|TEXT|TMENU|TMENUITEM|TMENU_LAYERS|USER|USER_INT|_GIFBUILDER|global|globalString|globalVar)\\b/\n Prism.languages.typoscript = {\n comment: [\n {\n // multiline comments /* */\n pattern: /(^|[^\\\\])\\/\\*[\\s\\S]*?(?:\\*\\/|$)/,\n lookbehind: true\n },\n {\n // double-slash comments - ignored when backslashes or colon is found in front\n // also ignored whenever directly after an equal-sign, because it would probably be an url without protocol\n pattern: /(^|[^\\\\:= \\t]|(?:^|[^= \\t])[ \\t]+)\\/\\/.*/,\n lookbehind: true,\n greedy: true\n },\n {\n // hash comments - ignored when leading quote is found for hex colors in strings\n pattern: /(^|[^\"'])#.*/,\n lookbehind: true,\n greedy: true\n }\n ],\n function: [\n {\n // old include style\n pattern: /<INCLUDE_TYPOSCRIPT:\\s*source\\s*=\\s*(?:\"[^\"\\r\\n]*\"|'[^'\\r\\n]*')\\s*>/,\n inside: {\n string: {\n pattern: /\"[^\"\\r\\n]*\"|'[^'\\r\\n]*'/,\n inside: {\n keyword: keywords\n }\n },\n keyword: {\n pattern: /INCLUDE_TYPOSCRIPT/\n }\n }\n },\n {\n // new include style\n pattern: /@import\\s*(?:\"[^\"\\r\\n]*\"|'[^'\\r\\n]*')/,\n inside: {\n string: /\"[^\"\\r\\n]*\"|'[^'\\r\\n]*'/\n }\n }\n ],\n string: {\n pattern: /^([^=]*=[< ]?)(?:(?!]\\n).)*/,\n lookbehind: true,\n inside: {\n function: /{\\$.*}/,\n // constants include\n keyword: keywords,\n number: /^[0-9]+$/,\n punctuation: /[,|:]/\n }\n },\n keyword: keywords,\n number: {\n // special highlighting for indexes of arrays in tags\n pattern: /[0-9]+\\s*[.{=]/,\n inside: {\n operator: /[.{=]/\n }\n },\n tag: {\n pattern: /\\.?[\\w-\\\\]+\\.?/,\n inside: {\n punctuation: /\\./\n }\n },\n punctuation: /[{}[\\];(),.:|]/,\n operator: /[<>]=?|[!=]=?=?|--?|\\+\\+?|&&?|\\|\\|?|[?*/~^%]/\n }\n Prism.languages.tsconfig = Prism.languages.typoscript\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = unrealscript\nunrealscript.displayName = 'unrealscript'\nunrealscript.aliases = ['uc', 'uscript']\nfunction unrealscript(Prism) {\n Prism.languages.unrealscript = {\n comment: /\\/\\/.*|\\/\\*[\\s\\S]*?\\*\\//,\n string: {\n pattern: /([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/,\n greedy: true\n },\n category: {\n pattern: /(\\b(?:(?:autoexpand|hide|show)categories|var)\\s*\\()[^()]+(?=\\))/,\n lookbehind: true,\n greedy: true,\n alias: 'property'\n },\n metadata: {\n pattern: /(\\w\\s*)<\\s*\\w+\\s*=[^<>|=\\r\\n]+(?:\\|\\s*\\w+\\s*=[^<>|=\\r\\n]+)*>/,\n lookbehind: true,\n greedy: true,\n inside: {\n property: /\\w+(?=\\s*=)/,\n operator: /=/,\n punctuation: /[<>|]/\n }\n },\n macro: {\n pattern: /`\\w+/,\n alias: 'property'\n },\n 'class-name': {\n pattern: /(\\b(?:class|enum|extends|interface|state(?:\\(\\))?|struct|within)\\s+)\\w+/,\n lookbehind: true\n },\n keyword: /\\b(?:abstract|actor|array|auto|autoexpandcategories|bool|break|byte|case|class|classgroup|client|coerce|collapsecategories|config|const|continue|default|defaultproperties|delegate|dependson|deprecated|do|dontcollapsecategories|editconst|editinlinenew|else|enum|event|exec|export|extends|final|float|for|forcescriptorder|foreach|function|goto|guid|hidecategories|hidedropdown|if|ignores|implements|inherits|input|int|interface|iterator|latent|local|material|name|native|nativereplication|noexport|nontransient|noteditinlinenew|notplaceable|operator|optional|out|pawn|perobjectconfig|perobjectlocalized|placeable|postoperator|preoperator|private|protected|reliable|replication|return|server|showcategories|simulated|singular|state|static|string|struct|structdefault|structdefaultproperties|switch|texture|transient|travel|unreliable|until|var|vector|while|within)\\b/,\n function: /[a-z_]\\w*(?=\\s*\\()/i,\n boolean: /\\b(?:false|true)\\b/,\n number: /\\b0x[\\da-f]+\\b|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e[+-]?\\d+)?/i,\n // https://docs.unrealengine.com/udk/Three/UnrealScriptExpressions.html\n operator: />>|<<|--|\\+\\+|\\*\\*|[-+*/~!=<>$@]=?|&&?|\\|\\|?|\\^\\^?|[?:%]|\\b(?:Cross|Dot|ClockwiseFrom)\\b/,\n punctuation: /[()[\\]{};,.]/\n }\n Prism.languages.uc = Prism.languages.uscript = Prism.languages.unrealscript\n}\n","'use strict'\n\nmodule.exports = vala\nvala.displayName = 'vala'\nvala.aliases = []\nfunction vala(Prism) {\n Prism.languages.vala = Prism.languages.extend('clike', {\n // Classes copied from prism-csharp\n 'class-name': [\n {\n // (Foo bar, Bar baz)\n pattern: /\\b[A-Z]\\w*(?:\\.\\w+)*\\b(?=(?:\\?\\s+|\\*?\\s+\\*?)\\w+)/,\n inside: {\n punctuation: /\\./\n }\n },\n {\n // [Foo]\n pattern: /(\\[)[A-Z]\\w*(?:\\.\\w+)*\\b/,\n lookbehind: true,\n inside: {\n punctuation: /\\./\n }\n },\n {\n // class Foo : Bar\n pattern: /(\\b(?:class|interface)\\s+[A-Z]\\w*(?:\\.\\w+)*\\s*:\\s*)[A-Z]\\w*(?:\\.\\w+)*\\b/,\n lookbehind: true,\n inside: {\n punctuation: /\\./\n }\n },\n {\n // class Foo\n pattern: /((?:\\b(?:class|interface|new|struct|enum)\\s+)|(?:catch\\s+\\())[A-Z]\\w*(?:\\.\\w+)*\\b/,\n lookbehind: true,\n inside: {\n punctuation: /\\./\n }\n }\n ],\n keyword: /\\b(?:bool|char|double|float|null|size_t|ssize_t|string|unichar|void|int|int8|int16|int32|int64|long|short|uchar|uint|uint8|uint16|uint32|uint64|ulong|ushort|class|delegate|enum|errordomain|interface|namespace|struct|break|continue|do|for|foreach|return|while|else|if|switch|assert|case|default|abstract|const|dynamic|ensures|extern|inline|internal|override|private|protected|public|requires|signal|static|virtual|volatile|weak|async|owned|unowned|try|catch|finally|throw|as|base|construct|delete|get|in|is|lock|new|out|params|ref|sizeof|set|this|throws|typeof|using|value|var|yield)\\b/i,\n function: /\\w+(?=\\s*\\()/,\n number: /(?:\\b0x[\\da-f]+\\b|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e[+-]?\\d+)?)(?:f|u?l?)?/i,\n operator: /\\+\\+|--|&&|\\|\\||<<=?|>>=?|=>|->|~|[+\\-*\\/%&^|=!<>]=?|\\?\\??|\\.\\.\\./,\n punctuation: /[{}[\\];(),.:]/,\n constant: /\\b[A-Z0-9_]+\\b/\n })\n Prism.languages.insertBefore('vala', 'string', {\n 'raw-string': {\n pattern: /\"\"\"[\\s\\S]*?\"\"\"/,\n greedy: true,\n alias: 'string'\n },\n 'template-string': {\n pattern: /@\"[\\s\\S]*?\"/,\n greedy: true,\n inside: {\n interpolation: {\n pattern: /\\$(?:\\([^)]*\\)|[a-zA-Z]\\w*)/,\n inside: {\n delimiter: {\n pattern: /^\\$\\(?|\\)$/,\n alias: 'punctuation'\n },\n rest: Prism.languages.vala\n }\n },\n string: /[\\s\\S]+/\n }\n }\n })\n Prism.languages.insertBefore('vala', 'keyword', {\n regex: {\n pattern: /\\/(?:\\[(?:[^\\]\\\\\\r\\n]|\\\\.)*]|\\\\.|[^/\\\\\\[\\r\\n])+\\/[imsx]{0,4}(?=\\s*(?:$|[\\r\\n,.;})\\]]))/,\n greedy: true,\n inside: {\n 'regex-source': {\n pattern: /^(\\/)[\\s\\S]+(?=\\/[a-z]*$)/,\n lookbehind: true,\n alias: 'language-regex',\n inside: Prism.languages.regex\n },\n 'regex-flags': /[a-z]+$/,\n 'regex-delimiter': /^\\/|\\/$/\n }\n }\n })\n}\n","'use strict'\n\nmodule.exports = velocity\nvelocity.displayName = 'velocity'\nvelocity.aliases = []\nfunction velocity(Prism) {\n ;(function (Prism) {\n Prism.languages.velocity = Prism.languages.extend('markup', {})\n var velocity = {\n variable: {\n pattern: /(^|[^\\\\](?:\\\\\\\\)*)\\$!?(?:[a-z][\\w-]*(?:\\([^)]*\\))?(?:\\.[a-z][\\w-]*(?:\\([^)]*\\))?|\\[[^\\]]+])*|{[^}]+})/i,\n lookbehind: true,\n inside: {} // See below\n },\n string: {\n pattern: /\"[^\"]*\"|'[^']*'/,\n greedy: true\n },\n number: /\\b\\d+\\b/,\n boolean: /\\b(?:true|false)\\b/,\n operator: /[=!<>]=?|[+*/%-]|&&|\\|\\||\\.\\.|\\b(?:eq|g[et]|l[et]|n(?:e|ot))\\b/,\n punctuation: /[(){}[\\]:,.]/\n }\n velocity.variable.inside = {\n string: velocity['string'],\n function: {\n pattern: /([^\\w-])[a-z][\\w-]*(?=\\()/,\n lookbehind: true\n },\n number: velocity['number'],\n boolean: velocity['boolean'],\n punctuation: velocity['punctuation']\n }\n Prism.languages.insertBefore('velocity', 'comment', {\n unparsed: {\n pattern: /(^|[^\\\\])#\\[\\[[\\s\\S]*?]]#/,\n lookbehind: true,\n greedy: true,\n inside: {\n punctuation: /^#\\[\\[|]]#$/\n }\n },\n 'velocity-comment': [\n {\n pattern: /(^|[^\\\\])#\\*[\\s\\S]*?\\*#/,\n lookbehind: true,\n greedy: true,\n alias: 'comment'\n },\n {\n pattern: /(^|[^\\\\])##.*/,\n lookbehind: true,\n greedy: true,\n alias: 'comment'\n }\n ],\n directive: {\n pattern: /(^|[^\\\\](?:\\\\\\\\)*)#@?(?:[a-z][\\w-]*|{[a-z][\\w-]*})(?:\\s*\\((?:[^()]|\\([^()]*\\))*\\))?/i,\n lookbehind: true,\n inside: {\n keyword: {\n pattern: /^#@?(?:[a-z][\\w-]*|{[a-z][\\w-]*})|\\bin\\b/,\n inside: {\n punctuation: /[{}]/\n }\n },\n rest: velocity\n }\n },\n variable: velocity['variable']\n })\n Prism.languages.velocity['tag'].inside['attr-value'].inside.rest =\n Prism.languages.velocity\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = verilog\nverilog.displayName = 'verilog'\nverilog.aliases = []\nfunction verilog(Prism) {\n Prism.languages.verilog = {\n comment: /\\/\\/.*|\\/\\*[\\s\\S]*?\\*\\//,\n string: {\n pattern: /\"(?:\\\\(?:\\r\\n|[\\s\\S])|[^\"\\\\\\r\\n])*\"/,\n greedy: true\n },\n // support for any kernel function (ex: $display())\n property: /\\B\\$\\w+\\b/,\n // support for user defined constants (ex: `define)\n constant: /\\B`\\w+\\b/,\n function: /\\w+(?=\\()/,\n // support for verilog and system verilog keywords\n keyword: /\\b(?:alias|and|assert|assign|assume|automatic|before|begin|bind|bins|binsof|bit|break|buf|bufif0|bufif1|byte|class|case|casex|casez|cell|chandle|clocking|cmos|config|const|constraint|context|continue|cover|covergroup|coverpoint|cross|deassign|default|defparam|design|disable|dist|do|edge|else|end|endcase|endclass|endclocking|endconfig|endfunction|endgenerate|endgroup|endinterface|endmodule|endpackage|endprimitive|endprogram|endproperty|endspecify|endsequence|endtable|endtask|enum|event|expect|export|extends|extern|final|first_match|for|force|foreach|forever|fork|forkjoin|function|generate|genvar|highz0|highz1|if|iff|ifnone|ignore_bins|illegal_bins|import|incdir|include|initial|inout|input|inside|instance|int|integer|interface|intersect|join|join_any|join_none|large|liblist|library|local|localparam|logic|longint|macromodule|matches|medium|modport|module|nand|negedge|new|nmos|nor|noshowcancelled|not|notif0|notif1|null|or|output|package|packed|parameter|pmos|posedge|primitive|priority|program|property|protected|pull0|pull1|pulldown|pullup|pulsestyle_onevent|pulsestyle_ondetect|pure|rand|randc|randcase|randsequence|rcmos|real|realtime|ref|reg|release|repeat|return|rnmos|rpmos|rtran|rtranif0|rtranif1|scalared|sequence|shortint|shortreal|showcancelled|signed|small|solve|specify|specparam|static|string|strong0|strong1|struct|super|supply0|supply1|table|tagged|task|this|throughout|time|timeprecision|timeunit|tran|tranif0|tranif1|tri|tri0|tri1|triand|trior|trireg|type|typedef|union|unique|unsigned|use|uwire|var|vectored|virtual|void|wait|wait_order|wand|weak0|weak1|while|wildcard|wire|with|within|wor|xnor|xor)\\b/,\n // bold highlighting for all verilog and system verilog logic blocks\n important: /\\b(?:always_latch|always_comb|always_ff|always)\\b ?@?/,\n // support for time ticks, vectors, and real numbers\n number: /\\B##?\\d+|(?:\\b\\d+)?'[odbh] ?[\\da-fzx_?]+|\\b(?:\\d*[._])?\\d+(?:e[-+]?\\d+)?/i,\n operator: /[-+{}^~%*\\/?=!<>&|]+/,\n punctuation: /[[\\];(),.:]/\n }\n}\n","'use strict'\n\nmodule.exports = vhdl\nvhdl.displayName = 'vhdl'\nvhdl.aliases = []\nfunction vhdl(Prism) {\n Prism.languages.vhdl = {\n comment: /--.+/,\n // support for all logic vectors\n 'vhdl-vectors': {\n pattern: /\\b[oxb]\"[\\da-f_]+\"|\"[01uxzwlh-]+\"/i,\n alias: 'number'\n },\n // support for operator overloading included\n 'quoted-function': {\n pattern: /\"\\S+?\"(?=\\()/,\n alias: 'function'\n },\n string: /\"(?:[^\\\\\"\\r\\n]|\\\\(?:\\r\\n|[\\s\\S]))*\"/,\n constant: /\\b(?:use|library)\\b/i,\n // support for predefined attributes included\n keyword: /\\b(?:'active|'ascending|'base|'delayed|'driving|'driving_value|'event|'high|'image|'instance_name|'last_active|'last_event|'last_value|'left|'leftof|'length|'low|'path_name|'pos|'pred|'quiet|'range|'reverse_range|'right|'rightof|'simple_name|'stable|'succ|'transaction|'val|'value|access|after|alias|all|architecture|array|assert|attribute|begin|block|body|buffer|bus|case|component|configuration|constant|disconnect|downto|else|elsif|end|entity|exit|file|for|function|generate|generic|group|guarded|if|impure|in|inertial|inout|is|label|library|linkage|literal|loop|map|new|next|null|of|on|open|others|out|package|port|postponed|procedure|process|pure|range|record|register|reject|report|return|select|severity|shared|signal|subtype|then|to|transport|type|unaffected|units|until|use|variable|wait|when|while|with)\\b/i,\n boolean: /\\b(?:true|false)\\b/i,\n function: /\\w+(?=\\()/,\n // decimal, based, physical, and exponential numbers supported\n number: /'[01uxzwlh-]'|\\b(?:\\d+#[\\da-f_.]+#|\\d[\\d_.]*)(?:e[-+]?\\d+)?/i,\n operator: /[<>]=?|:=|[-+*/&=]|\\b(?:abs|not|mod|rem|sll|srl|sla|sra|rol|ror|and|or|nand|xnor|xor|nor)\\b/i,\n punctuation: /[{}[\\];(),.:]/\n }\n}\n","'use strict'\n\nmodule.exports = vim\nvim.displayName = 'vim'\nvim.aliases = []\nfunction vim(Prism) {\n Prism.languages.vim = {\n string: /\"(?:[^\"\\\\\\r\\n]|\\\\.)*\"|'(?:[^'\\r\\n]|'')*'/,\n comment: /\".*/,\n function: /\\w+(?=\\()/,\n keyword: /\\b(?:ab|abbreviate|abc|abclear|abo|aboveleft|al|all|arga|argadd|argd|argdelete|argdo|arge|argedit|argg|argglobal|argl|arglocal|ar|args|argu|argument|as|ascii|bad|badd|ba|ball|bd|bdelete|be|bel|belowright|bf|bfirst|bl|blast|bm|bmodified|bn|bnext|bN|bNext|bo|botright|bp|bprevious|brea|break|breaka|breakadd|breakd|breakdel|breakl|breaklist|br|brewind|bro|browse|bufdo|b|buffer|buffers|bun|bunload|bw|bwipeout|ca|cabbrev|cabc|cabclear|caddb|caddbuffer|cad|caddexpr|caddf|caddfile|cal|call|cat|catch|cb|cbuffer|cc|ccl|cclose|cd|ce|center|cex|cexpr|cf|cfile|cfir|cfirst|cgetb|cgetbuffer|cgete|cgetexpr|cg|cgetfile|c|change|changes|chd|chdir|che|checkpath|checkt|checktime|cla|clast|cl|clist|clo|close|cmapc|cmapclear|cnew|cnewer|cn|cnext|cN|cNext|cnf|cnfile|cNfcNfile|cnorea|cnoreabbrev|col|colder|colo|colorscheme|comc|comclear|comp|compiler|conf|confirm|con|continue|cope|copen|co|copy|cpf|cpfile|cp|cprevious|cq|cquit|cr|crewind|cuna|cunabbrev|cu|cunmap|cw|cwindow|debugg|debuggreedy|delc|delcommand|d|delete|delf|delfunction|delm|delmarks|diffg|diffget|diffoff|diffpatch|diffpu|diffput|diffsplit|diffthis|diffu|diffupdate|dig|digraphs|di|display|dj|djump|dl|dlist|dr|drop|ds|dsearch|dsp|dsplit|earlier|echoe|echoerr|echom|echomsg|echon|e|edit|el|else|elsei|elseif|em|emenu|endfo|endfor|endf|endfunction|endfun|en|endif|endt|endtry|endw|endwhile|ene|enew|ex|exi|exit|exu|exusage|f|file|files|filetype|fina|finally|fin|find|fini|finish|fir|first|fix|fixdel|fo|fold|foldc|foldclose|folddoc|folddoclosed|foldd|folddoopen|foldo|foldopen|for|fu|fun|function|go|goto|gr|grep|grepa|grepadd|ha|hardcopy|h|help|helpf|helpfind|helpg|helpgrep|helpt|helptags|hid|hide|his|history|ia|iabbrev|iabc|iabclear|if|ij|ijump|il|ilist|imapc|imapclear|in|inorea|inoreabbrev|isearch|isp|isplit|iuna|iunabbrev|iu|iunmap|j|join|ju|jumps|k|keepalt|keepj|keepjumps|kee|keepmarks|laddb|laddbuffer|lad|laddexpr|laddf|laddfile|lan|language|la|last|later|lb|lbuffer|lc|lcd|lch|lchdir|lcl|lclose|let|left|lefta|leftabove|lex|lexpr|lf|lfile|lfir|lfirst|lgetb|lgetbuffer|lgete|lgetexpr|lg|lgetfile|lgr|lgrep|lgrepa|lgrepadd|lh|lhelpgrep|l|list|ll|lla|llast|lli|llist|lmak|lmake|lm|lmap|lmapc|lmapclear|lnew|lnewer|lne|lnext|lN|lNext|lnf|lnfile|lNf|lNfile|ln|lnoremap|lo|loadview|loc|lockmarks|lockv|lockvar|lol|lolder|lop|lopen|lpf|lpfile|lp|lprevious|lr|lrewind|ls|lt|ltag|lu|lunmap|lv|lvimgrep|lvimgrepa|lvimgrepadd|lw|lwindow|mak|make|ma|mark|marks|mat|match|menut|menutranslate|mk|mkexrc|mks|mksession|mksp|mkspell|mkvie|mkview|mkv|mkvimrc|mod|mode|m|move|mzf|mzfile|mz|mzscheme|nbkey|new|n|next|N|Next|nmapc|nmapclear|noh|nohlsearch|norea|noreabbrev|nu|number|nun|nunmap|omapc|omapclear|on|only|o|open|opt|options|ou|ounmap|pc|pclose|ped|pedit|pe|perl|perld|perldo|po|pop|popu|popup|pp|ppop|pre|preserve|prev|previous|p|print|P|Print|profd|profdel|prof|profile|promptf|promptfind|promptr|promptrepl|ps|psearch|pta|ptag|ptf|ptfirst|ptj|ptjump|ptl|ptlast|ptn|ptnext|ptN|ptNext|ptp|ptprevious|ptr|ptrewind|pts|ptselect|pu|put|pw|pwd|pyf|pyfile|py|python|qa|qall|q|quit|quita|quitall|r|read|rec|recover|redi|redir|red|redo|redr|redraw|redraws|redrawstatus|reg|registers|res|resize|ret|retab|retu|return|rew|rewind|ri|right|rightb|rightbelow|rub|ruby|rubyd|rubydo|rubyf|rubyfile|ru|runtime|rv|rviminfo|sal|sall|san|sandbox|sa|sargument|sav|saveas|sba|sball|sbf|sbfirst|sbl|sblast|sbm|sbmodified|sbn|sbnext|sbN|sbNext|sbp|sbprevious|sbr|sbrewind|sb|sbuffer|scripte|scriptencoding|scrip|scriptnames|se|set|setf|setfiletype|setg|setglobal|setl|setlocal|sf|sfind|sfir|sfirst|sh|shell|sign|sil|silent|sim|simalt|sla|slast|sl|sleep|sm|smagic|smap|smapc|smapclear|sme|smenu|sn|snext|sN|sNext|sni|sniff|sno|snomagic|snor|snoremap|snoreme|snoremenu|sor|sort|so|source|spelld|spelldump|spe|spellgood|spelli|spellinfo|spellr|spellrepall|spellu|spellundo|spellw|spellwrong|sp|split|spr|sprevious|sre|srewind|sta|stag|startg|startgreplace|star|startinsert|startr|startreplace|stj|stjump|st|stop|stopi|stopinsert|sts|stselect|sun|sunhide|sunm|sunmap|sus|suspend|sv|sview|syncbind|t|tab|tabc|tabclose|tabd|tabdo|tabe|tabedit|tabf|tabfind|tabfir|tabfirst|tabl|tablast|tabm|tabmove|tabnew|tabn|tabnext|tabN|tabNext|tabo|tabonly|tabp|tabprevious|tabr|tabrewind|tabs|ta|tag|tags|tc|tcl|tcld|tcldo|tclf|tclfile|te|tearoff|tf|tfirst|th|throw|tj|tjump|tl|tlast|tm|tmenu|tn|tnext|tN|tNext|to|topleft|tp|tprevious|tr|trewind|try|ts|tselect|tu|tunmenu|una|unabbreviate|u|undo|undoj|undojoin|undol|undolist|unh|unhide|unlet|unlo|unlockvar|unm|unmap|up|update|verb|verbose|ve|version|vert|vertical|vie|view|vim|vimgrep|vimgrepa|vimgrepadd|vi|visual|viu|viusage|vmapc|vmapclear|vne|vnew|vs|vsplit|vu|vunmap|wa|wall|wh|while|winc|wincmd|windo|winp|winpos|win|winsize|wn|wnext|wN|wNext|wp|wprevious|wq|wqa|wqall|w|write|ws|wsverb|wv|wviminfo|X|xa|xall|x|xit|xm|xmap|xmapc|xmapclear|xme|xmenu|XMLent|XMLns|xn|xnoremap|xnoreme|xnoremenu|xu|xunmap|y|yank)\\b/,\n builtin: /\\b(?:autocmd|acd|ai|akm|aleph|allowrevins|altkeymap|ambiwidth|ambw|anti|antialias|arab|arabic|arabicshape|ari|arshape|autochdir|autoindent|autoread|autowrite|autowriteall|aw|awa|background|backspace|backup|backupcopy|backupdir|backupext|backupskip|balloondelay|ballooneval|balloonexpr|bdir|bdlay|beval|bex|bexpr|bg|bh|bin|binary|biosk|bioskey|bk|bkc|bomb|breakat|brk|browsedir|bs|bsdir|bsk|bt|bufhidden|buflisted|buftype|casemap|ccv|cdpath|cedit|cfu|ch|charconvert|ci|cin|cindent|cink|cinkeys|cino|cinoptions|cinw|cinwords|clipboard|cmdheight|cmdwinheight|cmp|cms|columns|com|comments|commentstring|compatible|complete|completefunc|completeopt|consk|conskey|copyindent|cot|cpo|cpoptions|cpt|cscopepathcomp|cscopeprg|cscopequickfix|cscopetag|cscopetagorder|cscopeverbose|cspc|csprg|csqf|cst|csto|csverb|cuc|cul|cursorcolumn|cursorline|cwh|debug|deco|def|define|delcombine|dex|dg|dict|dictionary|diff|diffexpr|diffopt|digraph|dip|dir|directory|dy|ea|ead|eadirection|eb|ed|edcompatible|ef|efm|ei|ek|enc|encoding|endofline|eol|ep|equalalways|equalprg|errorbells|errorfile|errorformat|esckeys|et|eventignore|expandtab|exrc|fcl|fcs|fdc|fde|fdi|fdl|fdls|fdm|fdn|fdo|fdt|fen|fenc|fencs|fex|ff|ffs|fileencoding|fileencodings|fileformat|fileformats|fillchars|fk|fkmap|flp|fml|fmr|foldcolumn|foldenable|foldexpr|foldignore|foldlevel|foldlevelstart|foldmarker|foldmethod|foldminlines|foldnestmax|foldtext|formatexpr|formatlistpat|formatoptions|formatprg|fp|fs|fsync|ft|gcr|gd|gdefault|gfm|gfn|gfs|gfw|ghr|gp|grepformat|grepprg|gtl|gtt|guicursor|guifont|guifontset|guifontwide|guiheadroom|guioptions|guipty|guitablabel|guitabtooltip|helpfile|helpheight|helplang|hf|hh|hi|hidden|highlight|hk|hkmap|hkmapp|hkp|hl|hlg|hls|hlsearch|ic|icon|iconstring|ignorecase|im|imactivatekey|imak|imc|imcmdline|imd|imdisable|imi|iminsert|ims|imsearch|inc|include|includeexpr|incsearch|inde|indentexpr|indentkeys|indk|inex|inf|infercase|insertmode|isf|isfname|isi|isident|isk|iskeyword|isprint|joinspaces|js|key|keymap|keymodel|keywordprg|km|kmp|kp|langmap|langmenu|laststatus|lazyredraw|lbr|lcs|linebreak|lines|linespace|lisp|lispwords|listchars|loadplugins|lpl|lsp|lz|macatsui|magic|makeef|makeprg|matchpairs|matchtime|maxcombine|maxfuncdepth|maxmapdepth|maxmem|maxmempattern|maxmemtot|mco|mef|menuitems|mfd|mh|mis|mkspellmem|ml|mls|mm|mmd|mmp|mmt|modeline|modelines|modifiable|modified|more|mouse|mousef|mousefocus|mousehide|mousem|mousemodel|mouses|mouseshape|mouset|mousetime|mp|mps|msm|mzq|mzquantum|nf|nrformats|numberwidth|nuw|odev|oft|ofu|omnifunc|opendevice|operatorfunc|opfunc|osfiletype|pa|para|paragraphs|paste|pastetoggle|patchexpr|patchmode|path|pdev|penc|pex|pexpr|pfn|ph|pheader|pi|pm|pmbcs|pmbfn|popt|preserveindent|previewheight|previewwindow|printdevice|printencoding|printexpr|printfont|printheader|printmbcharset|printmbfont|printoptions|prompt|pt|pumheight|pvh|pvw|qe|quoteescape|readonly|remap|report|restorescreen|revins|rightleft|rightleftcmd|rl|rlc|ro|rs|rtp|ruf|ruler|rulerformat|runtimepath|sbo|sc|scb|scr|scroll|scrollbind|scrolljump|scrolloff|scrollopt|scs|sect|sections|secure|sel|selection|selectmode|sessionoptions|sft|shcf|shellcmdflag|shellpipe|shellquote|shellredir|shellslash|shelltemp|shelltype|shellxquote|shiftround|shiftwidth|shm|shortmess|shortname|showbreak|showcmd|showfulltag|showmatch|showmode|showtabline|shq|si|sidescroll|sidescrolloff|siso|sj|slm|smartcase|smartindent|smarttab|smc|smd|softtabstop|sol|spc|spell|spellcapcheck|spellfile|spelllang|spellsuggest|spf|spl|splitbelow|splitright|sps|sr|srr|ss|ssl|ssop|stal|startofline|statusline|stl|stmp|su|sua|suffixes|suffixesadd|sw|swapfile|swapsync|swb|swf|switchbuf|sws|sxq|syn|synmaxcol|syntax|tabline|tabpagemax|tabstop|tagbsearch|taglength|tagrelative|tagstack|tal|tb|tbi|tbidi|tbis|tbs|tenc|term|termbidi|termencoding|terse|textauto|textmode|textwidth|tgst|thesaurus|tildeop|timeout|timeoutlen|title|titlelen|titleold|titlestring|toolbar|toolbariconsize|top|tpm|tsl|tsr|ttimeout|ttimeoutlen|ttm|tty|ttybuiltin|ttyfast|ttym|ttymouse|ttyscroll|ttytype|tw|tx|uc|ul|undolevels|updatecount|updatetime|ut|vb|vbs|vdir|verbosefile|vfile|viewdir|viewoptions|viminfo|virtualedit|visualbell|vop|wak|warn|wb|wc|wcm|wd|weirdinvert|wfh|wfw|whichwrap|wi|wig|wildchar|wildcharm|wildignore|wildmenu|wildmode|wildoptions|wim|winaltkeys|window|winfixheight|winfixwidth|winheight|winminheight|winminwidth|winwidth|wiv|wiw|wm|wmh|wmnu|wmw|wop|wrap|wrapmargin|wrapscan|writeany|writebackup|writedelay|ww|noacd|noai|noakm|noallowrevins|noaltkeymap|noanti|noantialias|noar|noarab|noarabic|noarabicshape|noari|noarshape|noautochdir|noautoindent|noautoread|noautowrite|noautowriteall|noaw|noawa|nobackup|noballooneval|nobeval|nobin|nobinary|nobiosk|nobioskey|nobk|nobl|nobomb|nobuflisted|nocf|noci|nocin|nocindent|nocompatible|noconfirm|noconsk|noconskey|nocopyindent|nocp|nocscopetag|nocscopeverbose|nocst|nocsverb|nocuc|nocul|nocursorcolumn|nocursorline|nodeco|nodelcombine|nodg|nodiff|nodigraph|nodisable|noea|noeb|noed|noedcompatible|noek|noendofline|noeol|noequalalways|noerrorbells|noesckeys|noet|noex|noexpandtab|noexrc|nofen|nofk|nofkmap|nofoldenable|nogd|nogdefault|noguipty|nohid|nohidden|nohk|nohkmap|nohkmapp|nohkp|nohls|noic|noicon|noignorecase|noim|noimc|noimcmdline|noimd|noincsearch|noinf|noinfercase|noinsertmode|nois|nojoinspaces|nojs|nolazyredraw|nolbr|nolinebreak|nolisp|nolist|noloadplugins|nolpl|nolz|noma|nomacatsui|nomagic|nomh|noml|nomod|nomodeline|nomodifiable|nomodified|nomore|nomousef|nomousefocus|nomousehide|nonu|nonumber|noodev|noopendevice|nopaste|nopi|nopreserveindent|nopreviewwindow|noprompt|nopvw|noreadonly|noremap|norestorescreen|norevins|nori|norightleft|norightleftcmd|norl|norlc|noro|nors|noru|noruler|nosb|nosc|noscb|noscrollbind|noscs|nosecure|nosft|noshellslash|noshelltemp|noshiftround|noshortname|noshowcmd|noshowfulltag|noshowmatch|noshowmode|nosi|nosm|nosmartcase|nosmartindent|nosmarttab|nosmd|nosn|nosol|nospell|nosplitbelow|nosplitright|nospr|nosr|nossl|nosta|nostartofline|nostmp|noswapfile|noswf|nota|notagbsearch|notagrelative|notagstack|notbi|notbidi|notbs|notermbidi|noterse|notextauto|notextmode|notf|notgst|notildeop|notimeout|notitle|noto|notop|notr|nottimeout|nottybuiltin|nottyfast|notx|novb|novisualbell|nowa|nowarn|nowb|noweirdinvert|nowfh|nowfw|nowildmenu|nowinfixheight|nowinfixwidth|nowiv|nowmnu|nowrap|nowrapscan|nowrite|nowriteany|nowritebackup|nows|invacd|invai|invakm|invallowrevins|invaltkeymap|invanti|invantialias|invar|invarab|invarabic|invarabicshape|invari|invarshape|invautochdir|invautoindent|invautoread|invautowrite|invautowriteall|invaw|invawa|invbackup|invballooneval|invbeval|invbin|invbinary|invbiosk|invbioskey|invbk|invbl|invbomb|invbuflisted|invcf|invci|invcin|invcindent|invcompatible|invconfirm|invconsk|invconskey|invcopyindent|invcp|invcscopetag|invcscopeverbose|invcst|invcsverb|invcuc|invcul|invcursorcolumn|invcursorline|invdeco|invdelcombine|invdg|invdiff|invdigraph|invdisable|invea|inveb|inved|invedcompatible|invek|invendofline|inveol|invequalalways|inverrorbells|invesckeys|invet|invex|invexpandtab|invexrc|invfen|invfk|invfkmap|invfoldenable|invgd|invgdefault|invguipty|invhid|invhidden|invhk|invhkmap|invhkmapp|invhkp|invhls|invhlsearch|invic|invicon|invignorecase|invim|invimc|invimcmdline|invimd|invincsearch|invinf|invinfercase|invinsertmode|invis|invjoinspaces|invjs|invlazyredraw|invlbr|invlinebreak|invlisp|invlist|invloadplugins|invlpl|invlz|invma|invmacatsui|invmagic|invmh|invml|invmod|invmodeline|invmodifiable|invmodified|invmore|invmousef|invmousefocus|invmousehide|invnu|invnumber|invodev|invopendevice|invpaste|invpi|invpreserveindent|invpreviewwindow|invprompt|invpvw|invreadonly|invremap|invrestorescreen|invrevins|invri|invrightleft|invrightleftcmd|invrl|invrlc|invro|invrs|invru|invruler|invsb|invsc|invscb|invscrollbind|invscs|invsecure|invsft|invshellslash|invshelltemp|invshiftround|invshortname|invshowcmd|invshowfulltag|invshowmatch|invshowmode|invsi|invsm|invsmartcase|invsmartindent|invsmarttab|invsmd|invsn|invsol|invspell|invsplitbelow|invsplitright|invspr|invsr|invssl|invsta|invstartofline|invstmp|invswapfile|invswf|invta|invtagbsearch|invtagrelative|invtagstack|invtbi|invtbidi|invtbs|invtermbidi|invterse|invtextauto|invtextmode|invtf|invtgst|invtildeop|invtimeout|invtitle|invto|invtop|invtr|invttimeout|invttybuiltin|invttyfast|invtx|invvb|invvisualbell|invwa|invwarn|invwb|invweirdinvert|invwfh|invwfw|invwildmenu|invwinfixheight|invwinfixwidth|invwiv|invwmnu|invwrap|invwrapscan|invwrite|invwriteany|invwritebackup|invws|t_AB|t_AF|t_al|t_AL|t_bc|t_cd|t_ce|t_Ce|t_cl|t_cm|t_Co|t_cs|t_Cs|t_CS|t_CV|t_da|t_db|t_dl|t_DL|t_EI|t_F1|t_F2|t_F3|t_F4|t_F5|t_F6|t_F7|t_F8|t_F9|t_fs|t_IE|t_IS|t_k1|t_K1|t_k2|t_k3|t_K3|t_k4|t_K4|t_k5|t_K5|t_k6|t_K6|t_k7|t_K7|t_k8|t_K8|t_k9|t_K9|t_KA|t_kb|t_kB|t_KB|t_KC|t_kd|t_kD|t_KD|t_ke|t_KE|t_KF|t_KG|t_kh|t_KH|t_kI|t_KI|t_KJ|t_KK|t_kl|t_KL|t_kN|t_kP|t_kr|t_ks|t_ku|t_le|t_mb|t_md|t_me|t_mr|t_ms|t_nd|t_op|t_RI|t_RV|t_Sb|t_se|t_Sf|t_SI|t_so|t_sr|t_te|t_ti|t_ts|t_ue|t_us|t_ut|t_vb|t_ve|t_vi|t_vs|t_WP|t_WS|t_xs|t_ZH|t_ZR)\\b/,\n number: /\\b(?:0x[\\da-f]+|\\d+(?:\\.\\d+)?)\\b/i,\n operator: /\\|\\||&&|[-+.]=?|[=!](?:[=~][#?]?)?|[<>]=?[#?]?|[*\\/%?]|\\b(?:is(?:not)?)\\b/,\n punctuation: /[{}[\\](),;:]/\n }\n}\n","'use strict'\n\nmodule.exports = visualBasic\nvisualBasic.displayName = 'visualBasic'\nvisualBasic.aliases = []\nfunction visualBasic(Prism) {\n Prism.languages['visual-basic'] = {\n comment: {\n pattern: /(?:[']|REM\\b)(?:[^\\r\\n_]|_(?:\\r\\n?|\\n)?)*/i,\n inside: {\n keyword: /^REM/i\n }\n },\n directive: {\n pattern: /#(?:Const|Else|ElseIf|End|ExternalChecksum|ExternalSource|If|Region)(?:[^\\S\\r\\n]_[^\\S\\r\\n]*(?:\\r\\n?|\\n)|.)+/i,\n alias: 'comment',\n greedy: true\n },\n string: {\n pattern: /\\$?[\"“”](?:[\"“”]{2}|[^\"“”])*[\"“”]C?/i,\n greedy: true\n },\n date: {\n pattern: /#[^\\S\\r\\n]*(?:\\d+([/-])\\d+\\1\\d+(?:[^\\S\\r\\n]+(?:\\d+[^\\S\\r\\n]*(?:AM|PM)|\\d+:\\d+(?::\\d+)?(?:[^\\S\\r\\n]*(?:AM|PM))?))?|\\d+[^\\S\\r\\n]*(?:AM|PM)|\\d+:\\d+(?::\\d+)?(?:[^\\S\\r\\n]*(?:AM|PM))?)[^\\S\\r\\n]*#/i,\n alias: 'builtin'\n },\n number: /(?:(?:\\b\\d+(?:\\.\\d+)?|\\.\\d+)(?:E[+-]?\\d+)?|&[HO][\\dA-F]+)(?:U?[ILS]|[FRD])?/i,\n boolean: /\\b(?:True|False|Nothing)\\b/i,\n keyword: /\\b(?:AddHandler|AddressOf|Alias|And(?:Also)?|As|Boolean|ByRef|Byte|ByVal|Call|Case|Catch|C(?:Bool|Byte|Char|Date|Dbl|Dec|Int|Lng|Obj|SByte|Short|Sng|Str|Type|UInt|ULng|UShort)|Char|Class|Const|Continue|Currency|Date|Decimal|Declare|Default|Delegate|Dim|DirectCast|Do|Double|Each|Else(?:If)?|End(?:If)?|Enum|Erase|Error|Event|Exit|Finally|For|Friend|Function|Get(?:Type|XMLNamespace)?|Global|GoSub|GoTo|Handles|If|Implements|Imports|In|Inherits|Integer|Interface|Is|IsNot|Let|Lib|Like|Long|Loop|Me|Mod|Module|Must(?:Inherit|Override)|My(?:Base|Class)|Namespace|Narrowing|New|Next|Not(?:Inheritable|Overridable)?|Object|Of|On|Operator|Option(?:al)?|Or(?:Else)?|Out|Overloads|Overridable|Overrides|ParamArray|Partial|Private|Property|Protected|Public|RaiseEvent|ReadOnly|ReDim|RemoveHandler|Resume|Return|SByte|Select|Set|Shadows|Shared|short|Single|Static|Step|Stop|String|Structure|Sub|SyncLock|Then|Throw|To|Try|TryCast|Type|TypeOf|U(?:Integer|Long|Short)|Using|Variant|Wend|When|While|Widening|With(?:Events)?|WriteOnly|Until|Xor)\\b/i,\n operator: [\n /[+\\-*/\\\\^<=>&#@$%!]/,\n {\n pattern: /([^\\S\\r\\n])_(?=[^\\S\\r\\n]*[\\r\\n])/,\n lookbehind: true\n }\n ],\n punctuation: /[{}().,:?]/\n }\n Prism.languages.vb = Prism.languages['visual-basic']\n Prism.languages.vba = Prism.languages['visual-basic']\n}\n","'use strict'\n\nmodule.exports = warpscript\nwarpscript.displayName = 'warpscript'\nwarpscript.aliases = []\nfunction warpscript(Prism) {\n Prism.languages.warpscript = {\n comment: /#.*|\\/\\/.*|\\/\\*[\\s\\S]*?\\*\\//,\n string: {\n pattern: /\"(?:[^\"\\\\\\r\\n]|\\\\.)*\"|'(?:[^'\\\\\\r\\n]|\\\\.)*'|<'(?:[^\\\\']|'(?!>)|\\\\.)*'>/,\n greedy: true\n },\n variable: /\\$\\S+/,\n macro: {\n pattern: /@\\S+/,\n alias: 'property'\n },\n // WarpScript doesn't have any keywords, these are all functions under the control category\n // https://www.warp10.io/tags/control\n keyword: /\\b(?:BREAK|CHECKMACRO|CONTINUE|CUDF|DEFINED|DEFINEDMACRO|EVAL|FAIL|FOR|FOREACH|FORSTEP|IFT|IFTE|MSGFAIL|NRETURN|RETHROW|RETURN|SWITCH|TRY|UDF|UNTIL|WHILE)\\b/,\n number: /[+-]?\\b(?:NaN|Infinity|\\d+(?:\\.\\d*)?(?:[Ee][+-]?\\d+)?|0x[\\da-fA-F]+|0b[01]+)\\b/,\n boolean: /\\b(?:false|true|F|T)\\b/,\n punctuation: /<%|%>|[{}[\\]()]/,\n // Some operators from the \"operators\" category\n // https://www.warp10.io/tags/operators\n operator: /==|&&?|\\|\\|?|\\*\\*?|>>>?|<<|[<>!~]=?|[-/%^]|\\+!?|\\b(?:AND|NOT|OR)\\b/\n }\n}\n","'use strict'\n\nmodule.exports = wasm\nwasm.displayName = 'wasm'\nwasm.aliases = []\nfunction wasm(Prism) {\n Prism.languages.wasm = {\n comment: [\n /\\(;[\\s\\S]*?;\\)/,\n {\n pattern: /;;.*/,\n greedy: true\n }\n ],\n string: {\n pattern: /\"(?:\\\\[\\s\\S]|[^\"\\\\])*\"/,\n greedy: true\n },\n keyword: [\n {\n pattern: /\\b(?:align|offset)=/,\n inside: {\n operator: /=/\n }\n },\n {\n pattern: /\\b(?:(?:f32|f64|i32|i64)(?:\\.(?:abs|add|and|ceil|clz|const|convert_[su]\\/i(?:32|64)|copysign|ctz|demote\\/f64|div(?:_[su])?|eqz?|extend_[su]\\/i32|floor|ge(?:_[su])?|gt(?:_[su])?|le(?:_[su])?|load(?:(?:8|16|32)_[su])?|lt(?:_[su])?|max|min|mul|nearest|neg?|or|popcnt|promote\\/f32|reinterpret\\/[fi](?:32|64)|rem_[su]|rot[lr]|shl|shr_[su]|store(?:8|16|32)?|sqrt|sub|trunc(?:_[su]\\/f(?:32|64))?|wrap\\/i64|xor))?|memory\\.(?:grow|size))\\b/,\n inside: {\n punctuation: /\\./\n }\n },\n /\\b(?:anyfunc|block|br(?:_if|_table)?|call(?:_indirect)?|data|drop|elem|else|end|export|func|get_(?:global|local)|global|if|import|local|loop|memory|module|mut|nop|offset|param|result|return|select|set_(?:global|local)|start|table|tee_local|then|type|unreachable)\\b/\n ],\n variable: /\\$[\\w!#$%&'*+\\-./:<=>?@\\\\^_`|~]+/i,\n number: /[+-]?\\b(?:\\d(?:_?\\d)*(?:\\.\\d(?:_?\\d)*)?(?:[eE][+-]?\\d(?:_?\\d)*)?|0x[\\da-fA-F](?:_?[\\da-fA-F])*(?:\\.[\\da-fA-F](?:_?[\\da-fA-D])*)?(?:[pP][+-]?\\d(?:_?\\d)*)?)\\b|\\binf\\b|\\bnan(?::0x[\\da-fA-F](?:_?[\\da-fA-D])*)?\\b/,\n punctuation: /[()]/\n }\n}\n","'use strict'\n\nmodule.exports = wiki\nwiki.displayName = 'wiki'\nwiki.aliases = []\nfunction wiki(Prism) {\n Prism.languages.wiki = Prism.languages.extend('markup', {\n 'block-comment': {\n pattern: /(^|[^\\\\])\\/\\*[\\s\\S]*?\\*\\//,\n lookbehind: true,\n alias: 'comment'\n },\n heading: {\n pattern: /^(=+)[^=\\r\\n].*?\\1/m,\n inside: {\n punctuation: /^=+|=+$/,\n important: /.+/\n }\n },\n emphasis: {\n // TODO Multi-line\n pattern: /('{2,5}).+?\\1/,\n inside: {\n 'bold-italic': {\n pattern: /(''''').+?(?=\\1)/,\n lookbehind: true,\n alias: ['bold', 'italic']\n },\n bold: {\n pattern: /(''')[^'](?:.*?[^'])?(?=\\1)/,\n lookbehind: true\n },\n italic: {\n pattern: /('')[^'](?:.*?[^'])?(?=\\1)/,\n lookbehind: true\n },\n punctuation: /^''+|''+$/\n }\n },\n hr: {\n pattern: /^-{4,}/m,\n alias: 'punctuation'\n },\n url: [\n /ISBN +(?:97[89][ -]?)?(?:\\d[ -]?){9}[\\dx]\\b|(?:RFC|PMID) +\\d+/i,\n /\\[\\[.+?\\]\\]|\\[.+?\\]/\n ],\n variable: [\n /__[A-Z]+__/, // FIXME Nested structures should be handled\n // {{formatnum:{{#expr:{{{3}}}}}}}\n /\\{{3}.+?\\}{3}/,\n /\\{\\{.+?\\}\\}/\n ],\n symbol: [/^#redirect/im, /~{3,5}/],\n // Handle table attrs:\n // {|\n // ! style=\"text-align:left;\"| Item\n // |}\n 'table-tag': {\n pattern: /((?:^|[|!])[|!])[^|\\r\\n]+\\|(?!\\|)/m,\n lookbehind: true,\n inside: {\n 'table-bar': {\n pattern: /\\|$/,\n alias: 'punctuation'\n },\n rest: Prism.languages.markup['tag'].inside\n }\n },\n punctuation: /^(?:\\{\\||\\|\\}|\\|-|[*#:;!|])|\\|\\||!!/m\n })\n Prism.languages.insertBefore('wiki', 'tag', {\n // Prevent highlighting inside <nowiki>, <source> and <pre> tags\n nowiki: {\n pattern: /<(nowiki|pre|source)\\b[^>]*>[\\s\\S]*?<\\/\\1>/i,\n inside: {\n tag: {\n pattern: /<(?:nowiki|pre|source)\\b[^>]*>|<\\/(?:nowiki|pre|source)>/i,\n inside: Prism.languages.markup['tag'].inside\n }\n }\n }\n })\n}\n","'use strict'\n\nmodule.exports = xeora\nxeora.displayName = 'xeora'\nxeora.aliases = ['xeoracube']\nfunction xeora(Prism) {\n ;(function (Prism) {\n Prism.languages.xeora = Prism.languages.extend('markup', {\n constant: {\n pattern: /\\$(?:DomainContents|PageRenderDuration)\\$/,\n inside: {\n punctuation: {\n pattern: /\\$/\n }\n }\n },\n variable: {\n pattern: /\\$@?(?:#+|[-+*~=^])?[\\w.]+\\$/,\n inside: {\n punctuation: {\n pattern: /[$.]/\n },\n operator: {\n pattern: /#+|[-+*~=^@]/\n }\n }\n },\n 'function-inline': {\n pattern: /\\$F:[-\\w.]+\\?[-\\w.]+(?:,(?:(?:@[-#]*\\w+\\.[\\w+.]\\.*)*\\|)*(?:(?:[\\w+]|[-#*.~^]+[\\w+]|=\\S)(?:[^$=]|=+[^=])*=*|(?:@[-#]*\\w+\\.[\\w+.]\\.*)+(?:(?:[\\w+]|[-#*~^][-#*.~^]*[\\w+]|=\\S)(?:[^$=]|=+[^=])*=*)?)?)?\\$/,\n inside: {\n variable: {\n pattern: /(?:[,|])@?(?:#+|[-+*~=^])?[\\w.]+/,\n inside: {\n punctuation: {\n pattern: /[,.|]/\n },\n operator: {\n pattern: /#+|[-+*~=^@]/\n }\n }\n },\n punctuation: {\n pattern: /\\$\\w:|[$:?.,|]/\n }\n },\n alias: 'function'\n },\n 'function-block': {\n pattern: /\\$XF:{[-\\w.]+\\?[-\\w.]+(?:,(?:(?:@[-#]*\\w+\\.[\\w+.]\\.*)*\\|)*(?:(?:[\\w+]|[-#*.~^]+[\\w+]|=\\S)(?:[^$=]|=+[^=])*=*|(?:@[-#]*\\w+\\.[\\w+.]\\.*)+(?:(?:[\\w+]|[-#*~^][-#*.~^]*[\\w+]|=\\S)(?:[^$=]|=+[^=])*=*)?)?)?}:XF\\$/,\n inside: {\n punctuation: {\n pattern: /[$:{}?.,|]/\n }\n },\n alias: 'function'\n },\n 'directive-inline': {\n pattern: /\\$\\w(?:#\\d+\\+?)?(?:\\[[-\\w.]+])?:[-\\/\\w.]+\\$/,\n inside: {\n punctuation: {\n pattern: /\\$(?:\\w:|C(?:\\[|#\\d))?|[:{[\\]]/,\n inside: {\n tag: {\n pattern: /#\\d/\n }\n }\n }\n },\n alias: 'function'\n },\n 'directive-block-open': {\n pattern: /\\$\\w+:{|\\$\\w(?:#\\d+\\+?)?(?:\\[[-\\w.]+])?:[-\\w.]+:{(?:![A-Z]+)?/,\n inside: {\n punctuation: {\n pattern: /\\$(?:\\w:|C(?:\\[|#\\d))?|[:{[\\]]/,\n inside: {\n tag: {\n pattern: /#\\d/\n }\n }\n },\n attribute: {\n pattern: /![A-Z]+$/,\n inside: {\n punctuation: {\n pattern: /!/\n }\n },\n alias: 'keyword'\n }\n },\n alias: 'function'\n },\n 'directive-block-separator': {\n pattern: /}:[-\\w.]+:{/,\n inside: {\n punctuation: {\n pattern: /[:{}]/\n }\n },\n alias: 'function'\n },\n 'directive-block-close': {\n pattern: /}:[-\\w.]+\\$/,\n inside: {\n punctuation: {\n pattern: /[:{}$]/\n }\n },\n alias: 'function'\n }\n })\n Prism.languages.insertBefore(\n 'inside',\n 'punctuation',\n {\n variable: Prism.languages.xeora['function-inline'].inside['variable']\n },\n Prism.languages.xeora['function-block']\n )\n Prism.languages.xeoracube = Prism.languages.xeora\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = xmlDoc\nxmlDoc.displayName = 'xmlDoc'\nxmlDoc.aliases = []\nfunction xmlDoc(Prism) {\n ;(function (Prism) {\n /**\n * If the given language is present, it will insert the given doc comment grammar token into it.\n *\n * @param {string} lang\n * @param {any} docComment\n */\n function insertDocComment(lang, docComment) {\n if (Prism.languages[lang]) {\n Prism.languages.insertBefore(lang, 'comment', {\n 'doc-comment': docComment\n })\n }\n }\n var tag = Prism.languages.markup.tag\n var slashDocComment = {\n pattern: /\\/\\/\\/.*/,\n greedy: true,\n alias: 'comment',\n inside: {\n tag: tag\n }\n }\n var tickDocComment = {\n pattern: /'''.*/,\n greedy: true,\n alias: 'comment',\n inside: {\n tag: tag\n }\n }\n insertDocComment('csharp', slashDocComment)\n insertDocComment('fsharp', slashDocComment)\n insertDocComment('vbnet', tickDocComment)\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = xojo\nxojo.displayName = 'xojo'\nxojo.aliases = []\nfunction xojo(Prism) {\n Prism.languages.xojo = {\n comment: {\n pattern: /(?:'|\\/\\/|Rem\\b).+/i,\n inside: {\n keyword: /^Rem/i\n }\n },\n string: {\n pattern: /\"(?:\"\"|[^\"])*\"/,\n greedy: true\n },\n number: [/(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:E[+-]?\\d+)?/i, /&[bchou][a-z\\d]+/i],\n symbol: /#(?:If|Else|ElseIf|Endif|Pragma)\\b/i,\n keyword: /\\b(?:AddHandler|App|Array|As(?:signs)?|By(?:Ref|Val)|Break|Call|Case|Catch|Const|Continue|CurrentMethodName|Declare|Dim|Do(?:wnTo)?|Each|Else(?:If)?|End|Exit|Extends|False|Finally|For|Global|If|In|Lib|Loop|Me|Next|Nil|Optional|ParamArray|Raise(?:Event)?|ReDim|Rem|RemoveHandler|Return|Select|Self|Soft|Static|Step|Super|Then|To|True|Try|Ubound|Until|Using|Wend|While)\\b/i,\n operator: /<[=>]?|>=?|[+\\-*\\/\\\\^=]|\\b(?:AddressOf|And|Ctype|IsA?|Mod|New|Not|Or|Xor|WeakAddressOf)\\b/i,\n punctuation: /[.,;:()]/\n }\n}\n","'use strict'\n\nmodule.exports = xquery\nxquery.displayName = 'xquery'\nxquery.aliases = []\nfunction xquery(Prism) {\n ;(function (Prism) {\n Prism.languages.xquery = Prism.languages.extend('markup', {\n 'xquery-comment': {\n pattern: /\\(:[\\s\\S]*?:\\)/,\n greedy: true,\n alias: 'comment'\n },\n string: {\n pattern: /([\"'])(?:\\1\\1|(?!\\1)[\\s\\S])*\\1/,\n greedy: true\n },\n extension: {\n pattern: /\\(#.+?#\\)/,\n alias: 'symbol'\n },\n variable: /\\$[\\w-:]+/,\n axis: {\n pattern: /(^|[^-])(?:ancestor(?:-or-self)?|attribute|child|descendant(?:-or-self)?|following(?:-sibling)?|parent|preceding(?:-sibling)?|self)(?=::)/,\n lookbehind: true,\n alias: 'operator'\n },\n 'keyword-operator': {\n pattern: /(^|[^:-])\\b(?:and|castable as|div|eq|except|ge|gt|idiv|instance of|intersect|is|le|lt|mod|ne|or|union)\\b(?=$|[^:-])/,\n lookbehind: true,\n alias: 'operator'\n },\n keyword: {\n pattern: /(^|[^:-])\\b(?:as|ascending|at|base-uri|boundary-space|case|cast as|collation|construction|copy-namespaces|declare|default|descending|else|empty (?:greatest|least)|encoding|every|external|for|function|if|import|in|inherit|lax|let|map|module|namespace|no-inherit|no-preserve|option|order(?: by|ed|ing)?|preserve|return|satisfies|schema|some|stable|strict|strip|then|to|treat as|typeswitch|unordered|validate|variable|version|where|xquery)\\b(?=$|[^:-])/,\n lookbehind: true\n },\n function: /[\\w-]+(?::[\\w-]+)*(?=\\s*\\()/,\n 'xquery-element': {\n pattern: /(element\\s+)[\\w-]+(?::[\\w-]+)*/,\n lookbehind: true,\n alias: 'tag'\n },\n 'xquery-attribute': {\n pattern: /(attribute\\s+)[\\w-]+(?::[\\w-]+)*/,\n lookbehind: true,\n alias: 'attr-name'\n },\n builtin: {\n pattern: /(^|[^:-])\\b(?:attribute|comment|document|element|processing-instruction|text|xs:(?:anyAtomicType|anyType|anyURI|base64Binary|boolean|byte|date|dateTime|dayTimeDuration|decimal|double|duration|ENTITIES|ENTITY|float|gDay|gMonth|gMonthDay|gYear|gYearMonth|hexBinary|ID|IDREFS?|int|integer|language|long|Name|NCName|negativeInteger|NMTOKENS?|nonNegativeInteger|nonPositiveInteger|normalizedString|NOTATION|positiveInteger|QName|short|string|time|token|unsigned(?:Byte|Int|Long|Short)|untyped(?:Atomic)?|yearMonthDuration))\\b(?=$|[^:-])/,\n lookbehind: true\n },\n number: /\\b\\d+(?:\\.\\d+)?(?:E[+-]?\\d+)?/,\n operator: [\n /[+*=?|@]|\\.\\.?|:=|!=|<[=<]?|>[=>]?/,\n {\n pattern: /(\\s)-(?=\\s)/,\n lookbehind: true\n }\n ],\n punctuation: /[[\\](){},;:/]/\n })\n Prism.languages.xquery.tag.pattern = /<\\/?(?!\\d)[^\\s>\\/=$<%]+(?:\\s+[^\\s>\\/=]+(?:=(?:(\"|')(?:\\\\[\\s\\S]|{(?!{)(?:{(?:{[^{}]*}|[^{}])*}|[^{}])+}|(?!\\1)[^\\\\])*\\1|[^\\s'\">=]+))?)*\\s*\\/?>/i\n Prism.languages.xquery['tag'].inside[\n 'attr-value'\n ].pattern = /=(?:(\"|')(?:\\\\[\\s\\S]|{(?!{)(?:{(?:{[^{}]*}|[^{}])*}|[^{}])+}|(?!\\1)[^\\\\])*\\1|[^\\s'\">=]+)/i\n Prism.languages.xquery['tag'].inside['attr-value'].inside[\n 'punctuation'\n ] = /^=\"|\"$/\n Prism.languages.xquery['tag'].inside['attr-value'].inside['expression'] = {\n // Allow for two levels of nesting\n pattern: /{(?!{)(?:{(?:{[^{}]*}|[^{}])*}|[^{}])+}/,\n inside: Prism.languages.xquery,\n alias: 'language-xquery'\n } // The following will handle plain text inside tags\n var stringifyToken = function (token) {\n if (typeof token === 'string') {\n return token\n }\n if (typeof token.content === 'string') {\n return token.content\n }\n return token.content.map(stringifyToken).join('')\n }\n var walkTokens = function (tokens) {\n var openedTags = []\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i]\n var notTagNorBrace = false\n if (typeof token !== 'string') {\n if (\n token.type === 'tag' &&\n token.content[0] &&\n token.content[0].type === 'tag'\n ) {\n // We found a tag, now find its kind\n if (token.content[0].content[0].content === '</') {\n // Closing tag\n if (\n openedTags.length > 0 &&\n openedTags[openedTags.length - 1].tagName ===\n stringifyToken(token.content[0].content[1])\n ) {\n // Pop matching opening tag\n openedTags.pop()\n }\n } else {\n if (token.content[token.content.length - 1].content === '/>') {\n // Autoclosed tag, ignore\n } else {\n // Opening tag\n openedTags.push({\n tagName: stringifyToken(token.content[0].content[1]),\n openedBraces: 0\n })\n }\n }\n } else if (\n openedTags.length > 0 &&\n token.type === 'punctuation' &&\n token.content === '{' && // Ignore `{{`\n (!tokens[i + 1] ||\n tokens[i + 1].type !== 'punctuation' ||\n tokens[i + 1].content !== '{') &&\n (!tokens[i - 1] ||\n tokens[i - 1].type !== 'plain-text' ||\n tokens[i - 1].content !== '{')\n ) {\n // Here we might have entered an XQuery expression inside a tag\n openedTags[openedTags.length - 1].openedBraces++\n } else if (\n openedTags.length > 0 &&\n openedTags[openedTags.length - 1].openedBraces > 0 &&\n token.type === 'punctuation' &&\n token.content === '}'\n ) {\n // Here we might have left an XQuery expression inside a tag\n openedTags[openedTags.length - 1].openedBraces--\n } else if (token.type !== 'comment') {\n notTagNorBrace = true\n }\n }\n if (notTagNorBrace || typeof token === 'string') {\n if (\n openedTags.length > 0 &&\n openedTags[openedTags.length - 1].openedBraces === 0\n ) {\n // Here we are inside a tag, and not inside an XQuery expression.\n // That's plain text: drop any tokens matched.\n var plainText = stringifyToken(token) // And merge text with adjacent text\n if (\n i < tokens.length - 1 &&\n (typeof tokens[i + 1] === 'string' ||\n tokens[i + 1].type === 'plain-text')\n ) {\n plainText += stringifyToken(tokens[i + 1])\n tokens.splice(i + 1, 1)\n }\n if (\n i > 0 &&\n (typeof tokens[i - 1] === 'string' ||\n tokens[i - 1].type === 'plain-text')\n ) {\n plainText = stringifyToken(tokens[i - 1]) + plainText\n tokens.splice(i - 1, 1)\n i--\n }\n if (/^\\s+$/.test(plainText)) {\n tokens[i] = plainText\n } else {\n tokens[i] = new Prism.Token(\n 'plain-text',\n plainText,\n null,\n plainText\n )\n }\n }\n }\n if (token.content && typeof token.content !== 'string') {\n walkTokens(token.content)\n }\n }\n }\n Prism.hooks.add('after-tokenize', function (env) {\n if (env.language !== 'xquery') {\n return\n }\n walkTokens(env.tokens)\n })\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = yang\nyang.displayName = 'yang'\nyang.aliases = []\nfunction yang(Prism) {\n Prism.languages.yang = {\n // https://tools.ietf.org/html/rfc6020#page-34\n // http://www.yang-central.org/twiki/bin/view/Main/YangExamples\n comment: /\\/\\*[\\s\\S]*?\\*\\/|\\/\\/.*/,\n string: {\n pattern: /\"(?:[^\\\\\"]|\\\\.)*\"|'[^']*'/,\n greedy: true\n },\n keyword: {\n pattern: /(^|[{};\\r\\n][ \\t]*)[a-z_][\\w.-]*/i,\n lookbehind: true\n },\n namespace: {\n pattern: /(\\s)[a-z_][\\w.-]*(?=:)/i,\n lookbehind: true\n },\n boolean: /\\b(?:false|true)\\b/,\n operator: /\\+/,\n punctuation: /[{};:]/\n }\n}\n","'use strict'\n\nmodule.exports = zig\nzig.displayName = 'zig'\nzig.aliases = []\nfunction zig(Prism) {\n ;(function (Prism) {\n function literal(str) {\n return function () {\n return str\n }\n }\n var keyword = /\\b(?:align|allowzero|and|asm|async|await|break|cancel|catch|comptime|const|continue|defer|else|enum|errdefer|error|export|extern|fn|for|if|inline|linksection|nakedcc|noalias|null|or|orelse|packed|promise|pub|resume|return|stdcallcc|struct|suspend|switch|test|threadlocal|try|undefined|union|unreachable|usingnamespace|var|volatile|while)\\b/\n var IDENTIFIER = '\\\\b(?!' + keyword.source + ')(?!\\\\d)\\\\w+\\\\b'\n var ALIGN = /align\\s*\\((?:[^()]|\\([^()]*\\))*\\)/.source\n var PREFIX_TYPE_OP = /(?:\\?|\\bpromise->|(?:\\[[^[\\]]*\\]|\\*(?!\\*)|\\*\\*)(?:\\s*<ALIGN>|\\s*const\\b|\\s*volatile\\b|\\s*allowzero\\b)*)/.source.replace(\n /<ALIGN>/g,\n literal(ALIGN)\n )\n var SUFFIX_EXPR = /(?:\\bpromise\\b|(?:\\berror\\.)?<ID>(?:\\.<ID>)*(?!\\s+<ID>))/.source.replace(\n /<ID>/g,\n literal(IDENTIFIER)\n )\n var TYPE =\n '(?!\\\\s)(?:!?\\\\s*(?:' + PREFIX_TYPE_OP + '\\\\s*)*' + SUFFIX_EXPR + ')+'\n /*\n * A simplified grammar for Zig compile time type literals:\n *\n * TypeExpr = ( \"!\"? PREFIX_TYPE_OP* SUFFIX_EXPR )+\n *\n * SUFFIX_EXPR = ( \\b \"promise\" \\b | ( \\b \"error\" \".\" )? IDENTIFIER ( \".\" IDENTIFIER )* (?! \\s+ IDENTIFIER ) )\n *\n * PREFIX_TYPE_OP = \"?\"\n * | \\b \"promise\" \"->\"\n * | ( \"[\" [^\\[\\]]* \"]\" | \"*\" | \"**\" ) ( ALIGN | \"const\" \\b | \"volatile\" \\b | \"allowzero\" \\b )*\n *\n * ALIGN = \"align\" \"(\" ( [^()] | \"(\" [^()]* \")\" )* \")\"\n *\n * IDENTIFIER = \\b (?! KEYWORD ) [a-zA-Z_] \\w* \\b\n *\n */\n Prism.languages.zig = {\n comment: [\n {\n pattern: /\\/{3}.*/,\n alias: 'doc-comment'\n },\n /\\/{2}.*/\n ],\n string: [\n {\n // \"string\" and c\"string\"\n pattern: /(^|[^\\\\@])c?\"(?:[^\"\\\\\\r\\n]|\\\\.)*\"/,\n lookbehind: true,\n greedy: true\n },\n {\n // multiline strings and c-strings\n pattern: /([\\r\\n])([ \\t]+c?\\\\{2}).*(?:(?:\\r\\n?|\\n)\\2.*)*/,\n lookbehind: true,\n greedy: true\n },\n {\n // characters 'a', '\\n', '\\xFF', '\\u{10FFFF}'\n pattern: /(^|[^\\\\])'(?:[^'\\\\\\r\\n]|\\\\(?:.|x[a-fA-F\\d]{2}|u\\{[a-fA-F\\d]{1,6}\\}))'/,\n lookbehind: true,\n greedy: true\n }\n ],\n builtin: /\\B@(?!\\d)\\w+(?=\\s*\\()/,\n label: {\n pattern: /(\\b(?:break|continue)\\s*:\\s*)\\w+\\b|\\b(?!\\d)\\w+\\b(?=\\s*:\\s*(?:\\{|while\\b))/,\n lookbehind: true\n },\n 'class-name': [\n // const Foo = struct {};\n /\\b(?!\\d)\\w+(?=\\s*=\\s*(?:(?:extern|packed)\\s+)?(?:enum|struct|union)\\s*[({])/,\n {\n // const x: i32 = 9;\n // var x: Bar;\n // fn foo(x: bool, y: f32) void {}\n pattern: RegExp(\n /(:\\s*)<TYPE>(?=\\s*(?:<ALIGN>\\s*)?[=;,)])|<TYPE>(?=\\s*(?:<ALIGN>\\s*)?\\{)/.source\n .replace(/<TYPE>/g, literal(TYPE))\n .replace(/<ALIGN>/g, literal(ALIGN))\n ),\n lookbehind: true,\n inside: null // see below\n },\n {\n // extern fn foo(x: f64) f64; (optional alignment)\n pattern: RegExp(\n /(\\)\\s*)<TYPE>(?=\\s*(?:<ALIGN>\\s*)?;)/.source\n .replace(/<TYPE>/g, literal(TYPE))\n .replace(/<ALIGN>/g, literal(ALIGN))\n ),\n lookbehind: true,\n inside: null // see below\n }\n ],\n 'builtin-types': {\n pattern: /\\b(?:anyerror|bool|c_u?(?:short|int|long|longlong)|c_longdouble|c_void|comptime_(?:float|int)|[iu](?:8|16|32|64|128|size)|f(?:16|32|64|128)|noreturn|type|void)\\b/,\n alias: 'keyword'\n },\n keyword: keyword,\n function: /\\b(?!\\d)\\w+(?=\\s*\\()/,\n number: /\\b(?:0b[01]+|0o[0-7]+|0x[a-fA-F\\d]+(?:\\.[a-fA-F\\d]*)?(?:[pP][+-]?[a-fA-F\\d]+)?|\\d+(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)\\b/,\n boolean: /\\b(?:false|true)\\b/,\n operator: /\\.[*?]|\\.{2,3}|[-=]>|\\*\\*|\\+\\+|\\|\\||(?:<<|>>|[-+*]%|[-+*/%^&|<>!=])=?|[?~]/,\n punctuation: /[.:,;(){}[\\]]/\n }\n Prism.languages.zig['class-name'].forEach(function (obj) {\n if (obj.inside === null) {\n obj.inside = Prism.languages.zig\n }\n })\n })(Prism)\n}\n","import { Root, Parent, Content } from 'ts-mdast'\n\ntype Callback = (node: Content, index: number, parent: Parent | Content) => void\n\nexport default function visit(tree: Root, callback: Callback) {\n if (tree && tree.children && Array.isArray(tree.children)) {\n handle(tree.children, tree, callback)\n }\n}\n\nfunction handle(tree: Content[], parent: Parent | Content, callback: Callback) {\n tree.forEach((item, index) => {\n callback(item, index, parent)\n if (item && Array.isArray(item.children)) {\n handle(item.children, item, callback)\n }\n })\n}","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return assertThisInitialized(self);\n}","import getPrototypeOf from \"@babel/runtime/helpers/esm/getPrototypeOf\";\nimport isNativeReflectConstruct from \"@babel/runtime/helpers/esm/isNativeReflectConstruct\";\nimport possibleConstructorReturn from \"@babel/runtime/helpers/esm/possibleConstructorReturn\";\nexport default function _createSuper(Derived) {\n var hasNativeReflectConstruct = isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return possibleConstructorReturn(this, result);\n };\n}","export default function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}","\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport './style/index.less';\n\nexport type KeyCodeData = {\n keycode: number;\n name: string[];\n}\n\nexport interface MacKeyBoardProps {\n prefixCls?: string;\n className?: string;\n style?: React.CSSProperties;\n keyCode?: number[];\n onMouseDown?: (e: React.MouseEvent<HTMLLIElement, MouseEvent>, item: KeyCodeData) => void;\n onMouseUp?: (e: React.MouseEvent<HTMLLIElement, MouseEvent>, item: KeyCodeData) => void;\n}\n\nconst keyCodeData: KeyCodeData[] = [\n { keycode: 27, name: ['esc'] },\n { keycode: 112, name: ['F1'] },\n { keycode: 113, name: ['F2'] },\n { keycode: 114, name: ['F3'] },\n { keycode: 115, name: ['F4'] },\n { keycode: 116, name: ['F5'] },\n { keycode: 117, name: ['F6'] },\n { keycode: 118, name: ['F7'] },\n { keycode: 119, name: ['F8'] },\n { keycode: 120, name: ['F9'] },\n { keycode: 121, name: ['F10'] },\n { keycode: 122, name: ['F11'] },\n { keycode: 123, name: ['F12'] },\n { keycode: -1, name: [''] },\n { keycode: 192, name: ['~', '`'] },\n { keycode: 49, name: ['!', '1'] },\n { keycode: 50, name: ['@', '2'] },\n { keycode: 51, name: ['#', '3'] },\n { keycode: 52, name: ['$', '4'] },\n { keycode: 53, name: ['%', '5'] },\n { keycode: 54, name: ['^', '6'] },\n { keycode: 55, name: ['&', '7'] },\n { keycode: 56, name: ['*', '8'] },\n { keycode: 57, name: ['(', '9'] },\n { keycode: 48, name: [')', '0'] },\n { keycode: 189, name: ['_', '-'] },\n { keycode: 187, name: ['', ': '] },\n { keycode: 8, name: ['delete'] },\n { keycode: 9, name: ['tab'] },\n { keycode: 81, name: ['Q'] },\n { keycode: 87, name: ['W'] },\n { keycode: 69, name: ['E'] },\n { keycode: 82, name: ['R'] },\n { keycode: 84, name: ['T'] },\n { keycode: 89, name: ['Y'] },\n { keycode: 85, name: ['U'] },\n { keycode: 73, name: ['I'] },\n { keycode: 79, name: ['O'] },\n { keycode: 80, name: ['P'] },\n { keycode: 219, name: ['{', '['] },\n { keycode: 221, name: ['}', ']'] },\n { keycode: 220, name: ['|', '\\\\'] },\n { keycode: 20, name: ['', 'CapsLock'] },\n { keycode: 65, name: ['A'] },\n { keycode: 83, name: ['S'] },\n { keycode: 68, name: ['D'] },\n { keycode: 70, name: ['F'] },\n { keycode: 71, name: ['G'] },\n { keycode: 72, name: ['H'] },\n { keycode: 74, name: ['J'] },\n { keycode: 75, name: ['K'] },\n { keycode: 76, name: ['L'] },\n { keycode: 186, name: [':', ';'] },\n { keycode: 222, name: ['\"', '\\''] },\n { keycode: 13, name: ['enter', 'return'] },\n { keycode: 16, name: ['⇧'] },\n { keycode: 90, name: ['Z'] },\n { keycode: 88, name: ['X'] },\n { keycode: 67, name: ['C'] },\n { keycode: 86, name: ['V'] },\n { keycode: 66, name: ['B'] },\n { keycode: 78, name: ['N'] },\n { keycode: 77, name: ['M'] },\n { keycode: 188, name: ['<', ','] },\n { keycode: 190, name: ['>', '.'] },\n { keycode: 191, name: ['?', '/'] },\n { keycode: 16, name: ['⇧'] },\n { keycode: -1, name: ['fn'] },\n { keycode: 17, name: ['control'] },\n { keycode: 18, name: ['alt', 'option'] },\n { keycode: 91, name: ['command'] },\n { keycode: 32, name: [''] },\n { keycode: 91, name: ['command'] },\n { keycode: 18, name: ['alt', 'option'] },\n { keycode: 37, name: ['◀'] },\n { keycode: 38, name: ['▲'] },\n { keycode: 39, name: ['▶'] },\n { keycode: 40, name: ['▼'] },\n];\n\nexport default function MacKeyBoard({ prefixCls, className, style, keyCode = [], onMouseDown, onMouseUp, ...props }: MacKeyBoardProps) {\n return (\n <div className={`${prefixCls || ''} ${className || ''}`} style={style}>\n <ul>\n {keyCodeData.map((item, idx) => {\n const name = item.name.map((_item, _idx) => <span key={`${_idx}`}>{_item}</span>);\n return (\n <li\n key={idx}\n onMouseDown={(e) => onMouseDown && onMouseDown(e, item)}\n onMouseUp={(e) => onMouseUp && onMouseUp(e, item)}\n className={keyCode.indexOf(item.keycode) > -1 ? 'pressed' : ''}\n data-key={item.keycode}\n {...props}\n >\n {name}\n </li>\n );\n })}\n </ul>\n </div>\n );\n}\n\n\nMacKeyBoard.defaultProps = {\n prefixCls: 'w-mac-keyboard',\n};\n\nMacKeyBoard.propTypes = {\n prefixCls: PropTypes.string,\n className: PropTypes.string,\n keyCode: PropTypes.arrayOf(PropTypes.number),\n onMouseDown: PropTypes.func,\n onMouseUp: PropTypes.func,\n};\n","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","import _typeof from \"@babel/runtime/helpers/typeof\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return assertThisInitialized(self);\n}","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}","import React, { Component, ReactElement } from 'react';\nimport { BaseProps } from '../common/Base';\n\nexport interface ContainerProps extends BaseProps {}\n\nexport default class Container extends Component<ContainerProps> {\n render() {\n return (\n <>\n {React.Children.toArray(this.props.children).map((child: React.ReactNode) => {\n if (!React.isValidElement(child)) return;\n return React.cloneElement(child as ReactElement, { ...this.props, ...(child as React.ReactElement).props });\n })}\n </>\n );\n }\n}","import React, { Component } from 'react';\n\nexport interface BaseProps {\n platform?: 'github' | 'coveralls' | 'npm';\n type?: string;\n user?: string;\n repo?: string;\n base?: string;\n href?: HTMLAnchorElement['href'];\n}\n\nexport interface BaseState extends BaseProps {}\n\nexport default class Base<T> extends Component<BaseProps & T, BaseState & T> {\n static defaultProps: BaseProps = {\n platform: 'github',\n base: 'https://img.shields.io',\n }\n constructor(props: BaseProps & T, defaultState: BaseProps & T, forceState?: BaseProps & T) {\n super(props);\n this.state = Object.assign({}, { ...defaultState, ...props }, forceState);\n }\n getUrl = () => '';\n render() {\n const { href } = this.state;\n if (href) {\n return <a href={href}> <img src={this.getUrl()} /> </a>;\n }\n return <img src={this.getUrl()} />;\n }\n}","import React from 'react';\nimport Base, { BaseProps} from '../common/Base';\n\nexport interface IssueProps extends BaseProps {\n /**\n * Github Issue\n * \n * `/github/:issueKind/detail/:property/:user/:repo/:number` \n * GitHub issue/pull request detail: GitHub issue/pull request detail badge \n * \n * `/github/issues/:user/:repo` \n * GitHub issues: GitHub issues badge \n * \n * `/github/issues-raw/:user/:repo` \n * GitHub issues: GitHub issues badge \n * \n * `/github/issues/:user/:repo/:label` \n * GitHub issues by-label: GitHub issues by-label badge \n * \n * `/github/issues-raw/:user/:repo/:label` \n * GitHub issues by-label: GitHub issues by-label badge \n * \n * `/github/issues-closed/:user/:repo` \n * GitHub closed issues: GitHub closed issues badge \n * \n * `/github/issues-closed-raw/:user/:repo` \n * GitHub closed issues: GitHub closed issues badge \n * \n * `/github/issues-pr/:user/:repo` \n * GitHub pull requests: GitHub pull requests badge \n * \n * `/github/issues-pr-raw/:user/:repo` \n * GitHub pull requests: GitHub pull requests badge \n * \n * `/github/issues-pr-closed/:user/:repo` \n * GitHub closed pull requests: GitHub closed pull requests badge \n * \n * `/github/issues-pr-closed-raw/:user/:repo` \n * GitHub closed pull requests: GitHub closed pull requests badge \n * \n * `/github/issues-pr/:user/:repo/:label` \n * GitHub pull requests by-label: GitHub pull requests by-label badge \n * \n * `/github/issues-pr-raw/:user/:repo/:label` \n * GitHub pull requests by-label: GitHub pull requests by-label badge \n * \n * `/github/labels/:user/:repo/:name` \n * GitHub labels: GitHub labels badge \n */\n type?: 'issueKind' | 'issues' | 'issues-raw' | 'issues-closed'\n | 'issues-closed-raw' | 'issues-pr' | 'issues-pr-raw' \n | 'issues-pr-closed' | 'issues-pr-closed-raw'\n | 'languages';\n /**\n * /github/:issueKind/detail/:property/:user/:repo/:number\n */\n property?: string;\n /**\n * /github/:issueKind/detail/:property/:user/:repo/:number\n */\n number?: string;\n label?: string;\n}\n\nexport default class Issue extends Base<IssueProps> {\n constructor(props: IssueProps) {\n super(props, { platform: 'github', type: 'issues' });\n };\n getUrl = () => {\n const { type, platform, property, user, repo, label, base } = this.state;\n if (platform !== 'github') return '';\n if (type === 'issues' || /^issues\\-(raw|closed|closed\\-raw|pr|pr\\-raw|pr\\-closed|pr\\-closed\\-raw)/.test(type!)) {\n if(label && (type === 'issues' || /^issues\\-(raw|pr|pr\\-raw)/.test(type || ''))) {\n return [base, platform, type, user, repo, label].join('/');\n }\n return [base, platform, type, user, repo].join('/');\n }\n if(type === 'issueKind') {\n return [base, platform, type, 'detail', property, user, repo].join('/');\n }\n return '';\n }\n}","import React from 'react';\nimport Base, { BaseProps } from '../common/Base';\n\nexport interface SizeProps extends BaseProps {\n /**\n * Github Size\n * \n * /github/languages/code-size/:user/:repo \n * /github/repo-size/:user/:repo \n * /github/size/:user/:repo/:path* \n */\n type?: 'languages' | 'repo-size' | 'size';\n /**\n * GitHub file size in bytes\n * build/phaser-craft.min.js\n */\n path?: string;\n}\n\nexport default class Size extends Base<SizeProps> {\n constructor(props: SizeProps) {\n super(props, { platform: 'github', type: 'languages' });\n };\n\n getUrl = () => {\n const { type, platform, user, repo, base, path } = this.state;\n if (platform !== 'github') return '';\n /**\n * /github/languages/code-size/:user/:repo\n */\n if (type === 'languages') {\n return [base, platform, type, 'code-size', user, repo].join('/');\n }\n /**\n * /github/repo-size/:user/:repo\n */\n if (type === 'repo-size') {\n return [base, platform, type, user, repo].join('/');\n }\n /**\n * /github/size/:user/:repo/:path*\n */\n if (type === 'size' && path) {\n return [base, platform, type, user, repo, path].join('/');\n }\n return '';\n }\n}","import React from 'react';\nimport Base, { BaseProps} from '../common/Base';\n\nexport interface ActivityProps extends BaseProps {\n /**\n * Github Downloads\n * \n * `/github/downloads/:user/:repo/total`\n * GitHub All Releases: GitHub All Releases badge \n * \n * `/github/downloads/:user/:repo/:tag/total`\n * GitHub Releases: GitHub Releases badge \n * \n * `/github/downloads-pre/:user/:repo/:tag/total`\n * GitHub Pre-Releases: GitHub Pre-Releases badge \n * \n * `/github/downloads/:user/:repo/:tag/total`\n * GitHub Releases (by Release): GitHub Releases (by Release) badge \n * \n * `/github/downloads/:user/:repo/:tag/:path`\n * GitHub Releases (by Asset): GitHub Releases (by Asset) badge \n * \n * `/github/downloads-pre/:user/:repo/:tag/:path`\n * GitHub Pre-Releases (by Asset): GitHub Pre-Releases (by Asset) badge \n */\n type?: 'downloads' | 'downloads-pre';\n tag?: string;\n path?: string;\n total?: boolean;\n}\n\nexport default class Activity extends Base<ActivityProps> {\n constructor(props: ActivityProps) {\n super(props, { platform: 'github', type: 'downloads', total: true });\n };\n getUrl = () => {\n const { type, platform, user, repo, base, tag, path, total } = this.state;\n if (platform !== 'github' || !/^(downloads|downloads-pre)/.test(type || '')) return '';\n\n const baseData = [base, platform, type, user, repo];\n\n if (path && tag) {\n return [...baseData, tag, path].join('/');\n }\n if ((total && tag) || (type === 'downloads-pre' && tag && total)) {\n return [...baseData, tag, 'total'].join('/');\n }\n if (total) {\n return [...baseData, 'total'].join('/');\n }\n return '';\n }\n}","import React from 'react';\nimport Base, { BaseProps} from '../common/Base';\n\nexport interface ActivityProps extends BaseProps {\n /**\n * `/github/commit-activity/:interval/:user/:repo`\n * GitHub commit activity: GitHub commit activity badge \n * \n * `/github/commits-since/:user/:repo/:version/:branch*`\n * GitHub commits since tagged version: GitHub commits since tagged version badge \n * \n * `/github/commits-since/:user/:repo/:version/:branch*`\n * GitHub commits since tagged version (branch): GitHub commits since tagged version (branch) badge \n * \n * `/github/commits-since/:user/:repo/:version/:branch*`\n * GitHub commits since latest release: GitHub commits since latest release badge \n * \n * `/github/commits-since/:user/:repo/:version/:branch*`\n * GitHub commits since latest release (branch): GitHub commits since latest release (branch) badge \n * \n * `/github/:variant/:user/:repo`\n * GitHub contributors: GitHub contributors badge \n * \n * `/github/last-commit/:user/:repo`\n * GitHub last commit: GitHub last commit badge \n * \n * `/github/last-commit/:user/:repo/:branch`\n * GitHub last commit (branch): GitHub last commit (branch) badge \n * \n * `/github/release-date/:user/:repo`\n * GitHub Release Date: GitHub Release Date badge \n * \n * `/github/release-date-pre/:user/:repo`\n * GitHub (Pre-)Release Date: GitHub (Pre-)Release Date badge \n */\n type?: 'commit-activity' | 'commits-since' | 'variant' | 'last-commit' | 'release-date' | 'release-date-pre';\n variant?: string;\n interval?: 'y' | 'm' | 'w';\n version?: 'contributors' | 'contributors-anon';\n branch?: string;\n}\n\nexport default class Activity extends Base<ActivityProps> {\n constructor(props: ActivityProps) {\n super(props, { platform: 'github', type: 'commits-since' });\n };\n getUrl = () => {\n const { type, platform, user, repo, base, interval, variant, version, branch } = this.state;\n if (platform !== 'github') return '';\n if (type === 'commits-since' && version && branch) {\n return [base, platform, type, user, repo, version, branch].join('/');\n }\n if (type === 'commit-activity' && interval) {\n return [base, platform, type, interval, user, repo].join('/');\n }\n if (type === 'variant' && variant) {\n return [base, platform, type, variant, user, repo].join('/');\n }\n if (type === 'last-commit') {\n return branch ? [base, platform, type, user, repo, branch].join('/') : [base, platform, type, user, repo].join('/');\n }\n if (type && /^release\\-(date|date\\-pre)/.test(type)) {\n return [base, platform, type, user, repo].join('/');\n }\n return '';\n }\n}","import React from 'react';\nimport Base, { BaseProps } from '../common/Base';\n\nexport interface VersionProps extends BaseProps {\n /**\n * Github Version\n * \n * `/github/go-mod/go-version/:user/:repo`\n * GitHub go.mod Go version: GitHub go.mod Go version badge \n * \n * `/github/go-mod/go-version/:user/:repo/:branch`\n * GitHub go.mod Go version (branch): GitHub go.mod Go version (branch) badge \n * \n * `/github/go-mod/go-version/:user/:repo?filename=src%2Fgo.mod`\n * GitHub go.mod Go version (subfolder of monorepo): GitHub go.mod Go version (subfolder of monorepo) badge \n * \n * `/github/go-mod/go-version/:user/:repo/:branch?filename=src%2Fgo.mod`\n * GitHub go.mod Go version (branch & subfolder of monorepo): GitHub go.mod Go version (branch & subfolder of monorepo) badge \n * \n * `/github/manifest-json/v/:user/:repo`\n * GitHub manifest version: GitHub manifest version badge \n * \n * `/github/manifest-json/v/:user/:repo/:branch`\n * GitHub manifest version: GitHub manifest version badge \n * \n * `/github/package-json/v/:user/:repo`\n * GitHub package.json version: GitHub package.json version badge \n * \n * `/github/package-json/v/:user/:repo/:branch`\n * GitHub package.json version (branch): GitHub package.json version (branch) badge \n * \n * `/github/v/release/:user/:repo`\n * GitHub release (latest by date): GitHub release (latest by date) badge \n * \n * `/github/v/release/:user/:repo?include_prereleases`\n * GitHub release (latest by date including pre-releases): GitHub release (latest by date including pre-releases) badge \n * \n * `/github/v/release/:user/:repo?sort=semver`\n * GitHub release (latest SemVer): GitHub release (latest SemVer) badge \n * \n * `/github/v/release/:user/:repo?include_prereleases&sort=semver`\n * GitHub release (latest SemVer including pre-releases): GitHub release (latest SemVer including pre-releases) badge \n * \n * `/github/v/tag/:user/:repo`\n * GitHub tag (latest by date): GitHub tag (latest by date) badge \n * \n * `/github/v/tag/:user/:repo?sort=semver`\n * GitHub tag (latest SemVer): GitHub tag (latest SemVer) badge \n * \n * `/github/v/tag/:user/:repo?include_prereleases&sort=semver`\n * GitHub tag (latest SemVer pre-release): GitHub tag (latest SemVer pre-release) badge \n */\n type?: 'version-release' | 'version-tag' | 'package-json' | 'manifest-json' | 'go-mod';\n branch?: string;\n}\n\nexport default class Version extends Base<VersionProps> {\n constructor(props: VersionProps) {\n super(props, { platform: 'github', type: 'version-release' });\n };\n\n getUrl = () => {\n const { type, platform, user, repo, base, branch } = this.state;\n let typePath = '';\n switch (type) {\n case 'version-release': typePath = 'v/release';break;\n case 'version-tag': typePath = 'v/tag';break;\n case 'package-json': typePath = 'package-json/v';break;\n case 'manifest-json': typePath = 'manifest-json/v';break;\n case 'go-mod': typePath = 'go-mod/go-version';break;\n default:break;\n }\n if (platform !== 'github' || !typePath) return '';\n const baseData = [base, platform, typePath, user, repo];\n if (/(go\\-mod|manifest\\-json|package\\-json)/.test(type || '') && branch) {\n return [...baseData, branch].join('/');\n }\n return baseData.join('/');\n }\n}","import React from 'react';\nimport Base, { BaseProps} from '../common/Base';\n\nexport interface LicenseProps extends BaseProps {\n /**\n * Github License\n * \n * `/github/license/:user/:repo` \n * GitHub: GitHub badge \n */\n type?: 'license';\n}\n\nexport default class License extends Base<LicenseProps> {\n constructor(props: LicenseProps) {\n super(props, { platform: 'github', type: 'license' });\n };\n getUrl = () => {\n const { type, platform, user, repo, base } = this.state;\n if (platform !== 'github') return '';\n return [base, platform, type, user, repo].join('/');\n }\n}","import React from 'react';\nimport Base, { BaseProps} from '../common/Base';\n\nexport interface AnalysisProps extends BaseProps {\n /**\n * Github Analysis\n * \n * `/github/languages/count/:user/:repo` \n * GitHub language count: GitHub language count badge \n * \n * `/github/search/:user/:repo/:query` \n * GitHub search hit counter: GitHub search hit counter badge \n * \n * `/github/languages/top/:user/:repo` \n * GitHub top language: GitHub top language badge \n */\n type?: 'languages-count' | 'languages-top' | 'search';\n query?: string;\n}\n\nexport default class Analysis extends Base<AnalysisProps> {\n constructor(props: AnalysisProps) {\n super(props, { platform: 'github', type: 'languages-count' });\n };\n getUrl = () => {\n const { base, platform, type, user, repo, query } = this.state;\n let typePath = '';\n switch (type) {\n case 'languages-count': typePath = 'languages/count';break;\n case 'languages-top': typePath = 'languages/top';break;\n case 'search': typePath = 'search';break;\n default:break;\n }\n if (platform !== 'github' || !typePath) return '';\n const baseData = [base, platform, typePath, user, repo];\n if (query) {\n return [...baseData, query].join('/');\n }\n return baseData.join('/');\n }\n}","import React from 'react';\nimport Base, { BaseProps} from '../common/Base';\n\nexport interface SocialProps extends BaseProps {\n /**\n * Github License\n * \n * `/github/followers/:user?label=Follow`\n * GitHub followers: GitHub followers badge \n * \n * `/github/forks/:user/:repo?label=Fork`\n * GitHub forks: GitHub forks badge \n * \n * `/github/stars/:user/:repo?style=social`\n * GitHub stars: GitHub stars badge \n * \n * `/github/watchers/:user/:repo?label=Watch`\n * GitHub watchers: GitHub watchers badge \n */\n type?: 'followers' | 'forks' | 'stars' | 'watchers';\n}\n\nexport default class Social extends Base<SocialProps> {\n constructor(props: SocialProps) {\n super(props, { platform: 'github', type: 'followers' });\n };\n getUrl = () => {\n const { type, platform, user, repo, base } = this.state;\n if (platform !== 'github') return '';\n if(type === 'followers') return [base, platform, type, user].join('/');\n return [base, platform, type, user, repo].join('/');\n }\n}","import React from 'react';\nimport Container from '../common/Container';\nimport Issues from './Issues';\nimport Size from './Size';\nimport Downloads from './Downloads';\nimport Activity from './Activity';\nimport Version from './Version';\nimport License from './License';\nimport Analysis from './Analysis';\nimport Social from './Social';\n\nexport default class Github extends Container {\n static Issues = Issues;\n static Size = Size;\n static Activity = Activity;\n static Downloads = Downloads;\n static Version = Version;\n static License = License;\n static Analysis = Analysis;\n static Social = Social;\n}","import Github from './Github';\n\nexport default Github;","import React from 'react';\nimport Base, { BaseProps} from '../common/Base';\n\nexport interface CoveragesProps extends BaseProps {\n /**\n * Code Coverage\n * \n * `/coveralls/:vcsType/:user/:repo`\n * Coveralls github: Coveralls github badge \n * \n * `/coveralls/:vcsType/:user/:repo/:branch`\n * Coveralls github branch: Coveralls github branch badge \n * \n * `/coveralls/:vcsType/:user/:repo`\n * Coveralls bitbucket: Coveralls bitbucket badge \n * \n * `/coveralls/:vcsType/:user/:repo/:branch`\n * Coveralls bitbucket branch: Coveralls bitbucket branch badge \n */\n type?: string;\n branch?: string;\n}\n\nexport default class Coverages extends Base<CoveragesProps> {\n constructor(props: CoveragesProps) {\n super(props, { type: 'github' }, { platform: 'coveralls' });\n };\n getUrl = () => {\n const { type, platform, user, repo, base } = this.state;\n if (platform !== 'coveralls') return '';\n return [base, platform, type, user, repo].join('/');\n }\n}","import React from 'react';\nimport Base, { BaseProps} from '../common/Base';\n\nexport interface CodacyProps extends BaseProps {\n /**\n * Codacy Coverage\n * \n * `/codacy/coverage/:projectId`\n * Codacy coverage: Codacy coverage badge \n * \n * `/codacy/coverage/:projectId/:branch`\n * Codacy branch coverage: Codacy branch coverage badge \n */\n projectId?: string;\n branch?: string;\n}\n\nexport default class Codacy extends Base<CodacyProps> {\n constructor(props: CodacyProps) {\n super(props, { }, { platform: 'coveralls' });\n };\n getUrl = () => {\n const { base, platform, projectId, branch } = this.state;\n if (platform !== 'coveralls') return '';\n if (branch) return [base, platform, projectId, branch].join('/');\n return [base, 'codacy/coverage', projectId].join('/');\n }\n}","import React from 'react';\nimport Container from '../common/Container';\nimport Coverages from './Coverages';\nimport Codacy from './Codacy';\n\n\nexport default class Coverage extends Container {\n static Coverages = Coverages;\n static Codacy = Codacy;\n}","import React from 'react';\nimport Base, { BaseProps} from '../common/Base';\n\n/**\n * NPM Version\n * \n * `/npm/v/:packageName` \n * npm: npm badge \n * \n * `/npm/v/:scope/:packageName` \n * npm (scoped): npm (scoped) badge \n * \n * `/npm/v/:packageName/:tag` \n * npm (tag): npm (tag) badge \n * \n * `/npm/v/:packageName/:tag?registry_uri=https%3A%2F%2Fregistry.npmjs.com` \n * npm (custom registry): npm (custom registry) badge \n * \n * `/npm/v/:scope/:packageName/:tag` \n * npm (scoped with tag): npm (scoped with tag) badge \n * \n * `/npm/dependency-version/:packageName/peer/:dependency`\n * npm peer dependency version: npm peer dependency version badge \n * \n * `/npm/dependency-version/:scope?/:packageName/dev/:dependencyScope?/:dependency`\n * npm peer dependency version (scoped): npm peer dependency version (scoped) badge \n * \n * `/npm/dependency-version/:packageName/dev/:dependency`\n * npm dev dependency version: npm dev dependency version badge \n * \n * `/npm/dependency-version/:scope?/:packageName/dev/:dependencyScope?/:dependency`\n * npm dev dependency version (scoped): npm dev dependency version (scoped) badge \n * \n * `/npm/dependency-version/:packageName/:dependency`\n * npm (prod) dependency version: npm (prod) dependency version badge \n * \n * `/npm/dependency-version/:scope?/:packageName/:dependencyScope?/:dependency`\n * npm (prod) dependency version (scoped): npm (prod) dependency version (scoped) badge \n * \n * `/npm/types/:packageName`\n * npm type definitions: npm type definitions badge \n */\nexport interface VersionProps extends BaseProps {\n type?: 'version' | 'peer-dependency' | 'dev-dependency';\n registryUri?: string;\n packageName?: string;\n dependency?: string;\n scope?: string;\n dependencyScope?: string;\n version?: string;\n}\n\nexport default class Version extends Base<VersionProps> {\n constructor(props: VersionProps) {\n super(props, { type: 'version' }, { platform: 'npm' });\n };\n getUrl = () => {\n const { base, platform, type, scope, packageName, dependency, dependencyScope, version, registryUri } = this.state;\n if (platform !== 'npm' || !packageName) return '';\n\n let url = '';\n const baseData = [base, platform];\n\n if (type === 'version' && packageName) {\n baseData.push('v');\n if (scope) {\n baseData.push(scope);\n }\n baseData.push(packageName);\n if (version) {\n baseData.push(version);\n }\n url = baseData.join('/');\n if (registryUri) {\n url = `${url}?registry_uri=${registryUri}`;\n }\n } else if (type === 'peer-dependency' && packageName && dependency) {\n baseData.push('dependency-version');\n if (scope) {\n baseData.push(scope);\n }\n url = [...baseData, packageName, 'peer', dependency].join('/');\n } else if (type === 'dev-dependency' && packageName && dependency) {\n baseData.push('dependency-version');\n if (scope) {\n baseData.push(scope);\n }\n baseData.concat([packageName, 'dev']);\n if (dependencyScope) {\n baseData.push(dependencyScope);\n }\n baseData.push(dependency);\n url = baseData.join('/');\n } else if (packageName && dependency) {\n baseData.concat([packageName, dependency]);\n url = baseData.join('/');\n }\n\n return url;\n }\n}","import React from 'react';\nimport Base, { BaseProps} from '../common/Base';\n\nexport interface SizeProps extends BaseProps {\n format?: 'min' | 'minzip';\n packageName?: string;\n scope?: string;\n version?: string;\n}\n\n/**\n * Npm Size\n * \n * `/bundlephobia/:format/:packageName`\n * npm bundle size: npm bundle size badge \n * \n * `/bundlephobia/:format/:scope/:packageName`\n * npm bundle size (scoped): npm bundle size (scoped) badge \n * \n * `/bundlephobia/:format/:packageName/:version`\n * npm bundle size (version): npm bundle size (version) badge \n * \n * `/bundlephobia/:format/:scope/:packageName/:version`\n * npm bundle size (scoped version): npm bundle size (scoped version) badge \n * \n */\nexport default class Size extends Base<SizeProps> {\n constructor(props: SizeProps) {\n super(props, { format: 'min' }, { platform: 'npm' });\n };\n getUrl = () => {\n const { base, type, platform, format, packageName, scope, version } = this.state;\n if (platform !== 'npm') return '';\n\n const baseData = [base, 'bundlephobia'];\n let url = '';\n\n if (packageName && format) {\n url = [...baseData, format, packageName].join('/');\n }\n if (packageName && format && scope) {\n url = [...baseData, format, scope, packageName].join('/');\n }\n if (packageName && format && scope && version) {\n url = [...baseData, format, scope, packageName, version].join('/');\n }\n if (packageName && format && version) {\n url = [...baseData, format, packageName, version].join('/');\n }\n\n return url;\n }\n}","import React from 'react';\nimport Container from '../common/Container';\nimport Version from './Version';\nimport Size from './Size';\n\nexport default class Npm extends Container {\n static Version = Version;\n static Size = Size;\n}","import Npm from './Npm';\n\nexport default Npm;","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}","import defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nexport default function _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}","import visit from 'unist-util-visit'\nimport extend from 'extend'\n\nconst behaviors = {prepend: 'unshift', append: 'push'}\n\nconst contentDefaults = {\n type: 'element',\n tagName: 'span',\n properties: {className: ['icon', 'icon-link']},\n children: []\n}\n\nconst defaults = {behavior: 'prepend', content: contentDefaults}\n\nconst splice = [].splice\n\nlet deprecationWarningIssued = false\n\nexport default function attacher(options = {}) {\n let {linkProperties, behavior, content, group} = {...defaults, ...options}\n let method\n\n // NOTE: Remove in next major version\n if (options.behaviour !== undefined) {\n if (!deprecationWarningIssued) {\n deprecationWarningIssued = true\n console.warn(\n '[remark-autolink-headings] Deprecation Warning: `behaviour` is a nonstandard option. Use `behavior` instead.'\n )\n }\n\n behavior = options.behaviour\n }\n\n if (behavior === 'wrap') {\n method = wrap\n } else if (behavior === 'before' || behavior === 'after') {\n method = around\n } else {\n method = inject\n\n if (!linkProperties) {\n linkProperties = {ariaHidden: 'true', tabIndex: -1}\n }\n }\n\n return (tree) => visit(tree, 'heading', visitor)\n\n function visitor(node, index, parent) {\n const {data} = node\n const id = data && data.hProperties && data.hProperties.id\n\n if (id) {\n return method(node, '#' + id, index, parent)\n }\n }\n\n function inject(node, url) {\n const link = create(url)\n\n link.data = {\n hProperties: toProps(linkProperties),\n hChildren: toChildren(content, node)\n }\n\n node.children[behaviors[behavior]](link)\n }\n\n function around(node, url, index, parent) {\n const link = create(url)\n const grouping = group ? toGrouping(group, node) : undefined\n\n link.data = {\n hProperties: toProps(linkProperties),\n hChildren: toChildren(content, node)\n }\n\n let nodes = behavior === 'before' ? [link, node] : [node, link]\n\n if (grouping) {\n grouping.children = nodes\n nodes = grouping\n }\n\n splice.apply(parent.children, [index, 1].concat(nodes))\n\n return [visit.SKIP, index + nodes.length]\n }\n\n function wrap(node, url) {\n const link = create(url, node.children)\n\n link.data = {hProperties: toProps(linkProperties)}\n\n node.children = [link]\n }\n\n function toProps(value) {\n return deepAssign({}, value)\n }\n\n function toNode(value, node) {\n return typeof value === 'function' ? value(node) : value\n }\n\n function toChildren(value, node) {\n let children = toNode(value, node)\n\n children = Array.isArray(children) ? children : [children]\n\n return typeof value === 'function' ? children : deepAssign([], children)\n }\n\n function toGrouping(value, node) {\n const grouping = toNode(value, node)\n const hName = grouping.tagName\n const hProperties = grouping.properties\n\n return {\n type: 'heading-group',\n data: {\n hName,\n hProperties:\n typeof value === 'function'\n ? deepAssign({}, hProperties)\n : hProperties\n },\n children: []\n }\n }\n\n function create(url, children) {\n return {\n type: 'link',\n url,\n title: null,\n children: children || []\n }\n }\n\n function deepAssign(base, value) {\n return extend(true, base, value)\n }\n}\n","export default function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nexport default function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}","import React from 'react';\nimport style from './Footer.module.less';\n\nexport default function Footer({ name, href, year, children }) {\n return (\n <div className={style.footer}>\n {children}\n <div>\n Licensed under MIT. (Yes it&acute;s free and\n <a href=\"https://github.com/jaywcjlove/hotkeys\"> open-sourced</a>\n )\n </div>\n <div>\n ©\n <a target=\"_blank\" rel=\"noopener noreferrer\" href={href}>{name}</a>\n {year}\n </div>\n </div>\n );\n}\n","export default \"# Hotkeys\\n\\n<!--dividing-->\\n\\n[![](https://img.shields.io/github/issues/jaywcjlove/hotkeys.svg)](https://github.com/jaywcjlove/hotkeys/issues) [![](https://img.shields.io/github/forks/jaywcjlove/hotkeys.svg)](https://github.com/jaywcjlove/hotkeys/network) [![](https://img.shields.io/github/stars/jaywcjlove/hotkeys.svg)](https://github.com/jaywcjlove/hotkeys/stargazers) [![](https://img.shields.io/github/release/jaywcjlove/hotkeys.svg)](https://github.com/jaywcjlove/hotkeys/releases) ![](http://jaywcjlove.github.io/sb/status/no-dependencies.svg) [![Build Status](https://www.travis-ci.org/jaywcjlove/hotkeys.svg?branch=master)](https://www.travis-ci.org/jaywcjlove/hotkeys) [![Coverage Status](https://coveralls.io/repos/github/jaywcjlove/hotkeys/badge.svg?branch=master)](https://coveralls.io/github/jaywcjlove/hotkeys?branch=master) [![jaywcjlove/hotkeys](https://jaywcjlove.github.io/sb/lang/chinese.svg)](./README-zh.md) [![jaywcjlove/hotkeys](https://jaywcjlove.github.io/sb/ico/gitee.svg)](https://gitee.com/jaywcjlove/hotkeys)\\n\\nHotKeys.js is an input capture library with some very special features, it is easy to pick up and use, has a reasonable footprint ([~3kb](https://bundlephobia.com/result?p=hotkeys-js)) (gzipped: 1.73kb), and has no dependencies. It should not interfere with any JavaScript libraries or frameworks. Official document [demo preview](http://jaywcjlove.github.io/hotkeys). [More examples](https://github.com/jaywcjlove/hotkeys/issues?q=label%3ADemo+).\\n\\n```bash\\n╭┈┈╮ ╭┈┈╮ ╭┈┈╮\\n┆ ├┈┈..┈┈┈┈┈.┆ └┈╮┆ ├┈┈..┈┈┈┈┈..┈┈.┈┈..┈┈┈┈┈.\\n┆ ┆┆ □ ┆┆ ┈┤┆ < ┆ -__┘┆ ┆ ┆┆__ ┈┈┤\\n╰┈┈┴┈┈╯╰┈┈┈┈┈╯╰┈┈┈┈╯╰┈┈┴┈┈╯╰┈┈┈┈┈╯╰┈┈┈ ┆╰┈┈┈┈┈╯\\n ╰┈┈┈┈┈╯\\n```\\n\\n## Usage\\n\\nYou will need `Node.js` installed on your system.\\n\\n```bash\\n$ npm install hotkeys-js --save\\n```\\n\\n```js\\nimport hotkeys from 'hotkeys-js';\\n\\nhotkeys('f5', function(event, handler){\\n // Prevent the default refresh event under WINDOWS system\\n event.preventDefault() \\n alert('you pressed F5!') \\n});\\n```\\n\\nOr manually download and link **hotkeys.js** in your HTML, It can also be downloaded via [UNPKG](https://unpkg.com/hotkeys-js/dist/):\\n\\nCDN: [UNPKG](https://unpkg.com/hotkeys-js/dist/) | [jsDelivr](https://cdn.jsdelivr.net/npm/hotkeys-js@3.7.3/) | [Githack](https://raw.githack.com/jaywcjlove/hotkeys/master/dist/hotkeys.min.js) | [Statically](https://cdn.statically.io/gh/jaywcjlove/hotkeys/master/dist/hotkeys.min.js) | [bundle.run](https://bundle.run/hotkeys-js@3.7.3)\\n\\n```html\\n<script src=\\\"https://unpkg.com/hotkeys-js/dist/hotkeys.min.js\\\"></script>\\n<script type=\\\"text/javascript\\\">\\nhotkeys('ctrl+a,ctrl+b,r,f', function (event, handler){\\n switch (handler.key) {\\n case 'ctrl+a': alert('you pressed ctrl+a!');\\n break;\\n case 'ctrl+b': alert('you pressed ctrl+b!');\\n break;\\n case 'r': alert('you pressed r!');\\n break;\\n case 'f': alert('you pressed f!');\\n break;\\n default: alert(event);\\n }\\n});\\n</script>\\n```\\n\\n### Used in React\\n\\n[react-hotkeys](https://github.com/jaywcjlove/react-hotkeys) is the React component that listen to keydown and keyup keyboard events, defining and dispatching keyboard shortcuts. Detailed use method please see its documentation [react-hotkeys](https://github.com/jaywcjlove/react-hotkeys).\\n\\n[react-hotkeys-hook](https://github.com/JohannesKlauss/react-hotkeys-hook) - React hook for using keyboard shortcuts in components. Make sure that you have at least version 16.8 of react and react-dom installed, or otherwise hooks won't work for you.\\n\\n## Browser Support\\n\\nHotkeys.js has been tested and should work in.\\n\\n```shell\\nInternet Explorer 6+\\nSafari\\nFirefox\\nChrome\\n```\\n\\n## Supported Keys\\n\\nHotKeys understands the following modifiers: `⇧`, `shift`, `option`, `⌥`, `alt`, `ctrl`, `control`, `command`, and `⌘`.\\n\\nThe following special keys can be used for shortcuts: backspace, tab, clear, enter, return, esc, escape, space, up, down, left, right, home, end, pageup, pagedown, del, delete and f1 through f19.\\n\\n`⌘` Command() \\n`⌃` Control \\n`⌥` Option(alt) \\n`⇧` Shift \\n`⇪` Caps Lock(Capital) \\n~~`fn` Does not support fn~~ \\n`↩︎` return/Enter space \\n\\n## Defining Shortcuts\\n\\nOne global method is exposed, key which defines shortcuts when called directly.\\n\\n```js\\nhotkeys([keys:<String>], [option:[string|object|function]], [callback:<function>])\\n```\\n\\n\\n```js\\nhotkeys('f5', function(event, handler) {\\n // Prevent the default refresh event under WINDOWS system\\n event.preventDefault();\\n alert('you pressed F5!');\\n});\\n\\n// Returning false stops the event and prevents default browser events\\n// Mac OS system defines `command + r` as a refresh shortcut\\nhotkeys('ctrl+r, command+r', function() {\\n alert('stopped reload!');\\n return false;\\n});\\n\\n// Single key\\nhotkeys('a', function(event,handler){\\n //event.srcElement: input \\n //event.target: input\\n if(event.target === \\\"input\\\"){\\n alert('you pressed a!')\\n }\\n alert('you pressed a!') \\n});\\n\\n// Key Combination\\nhotkeys('ctrl+a,ctrl+b,r,f', function (event, handler){\\n switch (handler.key) {\\n case 'ctrl+a': alert('you pressed ctrl+a!');\\n break;\\n case 'ctrl+b': alert('you pressed ctrl+b!');\\n break;\\n case 'r': alert('you pressed r!');\\n break;\\n case 'f': alert('you pressed f!');\\n break;\\n default: alert(event);\\n }\\n});\\n\\nhotkeys('ctrl+a+s', function() {\\n alert('you pressed ctrl+a+s!');\\n});\\n\\n// Using a scope\\nhotkeys('*','wcj', function(event){\\n console.log('do something', event);\\n});\\n```\\n\\n#### option \\n\\n- `scope<String>`\\n- `element<HTMLElement>`\\n- `keyup<Boolean>`\\n- `keydown<Boolean>`\\n- `splitKey<string>` (default is `+`)\\n\\n```js\\nhotkeys('o, enter', {\\n scope: 'wcj',\\n element: document.getElementById('wrapper'),\\n}, function(){ \\n console.log('do something else');\\n});\\n\\nhotkeys('ctrl-+', { splitKey: '-' }, function(e) {\\n console.log('you pressed ctrl and +');\\n});\\n\\nhotkeys('+', { splitKey: '-' }, function(e){\\n console.log('you pressed +');\\n})\\n```\\n\\n## API REFERENCE\\n\\nAsterisk \\\"*\\\"\\n\\nModifier key judgments\\n\\n```js\\nhotkeys('*', function() {\\n if (hotkeys.shift) {\\n console.log('shift is pressed!');\\n }\\n\\n if (hotkeys.ctrl) {\\n console.log('ctrl is pressed!');\\n }\\n\\n if (hotkeys.alt) {\\n console.log('alt is pressed!');\\n }\\n\\n if (hotkeys.option) {\\n console.log('option is pressed!');\\n }\\n\\n if (hotkeys.control) {\\n console.log('control is pressed!');\\n }\\n\\n if (hotkeys.cmd) {\\n console.log('cmd is pressed!');\\n }\\n\\n if (hotkeys.command) {\\n console.log('command is pressed!');\\n }\\n});\\n```\\n\\n### setScope\\n\\nUse the `hotkeys.setScope` method to set scope. There can only be one active scope besides 'all'. By default 'all' is always active.\\n\\n```js\\n// Define shortcuts with a scope\\nhotkeys('ctrl+o, ctrl+alt+enter', 'issues', function(){\\n console.log('do something');\\n});\\nhotkeys('o, enter', 'files', function(){ \\n console.log('do something else');\\n});\\n\\n// Set the scope (only 'all' and 'issues' shortcuts will be honored)\\nhotkeys.setScope('issues'); // default scope is 'all'\\n```\\n\\n### getScope\\n\\nUse the `hotkeys.getScope` method to get scope.\\n\\n```js\\nhotkeys.getScope();\\n```\\n\\n### deleteScope\\n\\nUse the `hotkeys.deleteScope` method to delete a scope. This will also remove all associated hotkeys with it.\\n\\n```js\\nhotkeys.deleteScope('issues');\\n```\\n\\n### unbind\\n\\nSimilar to defining shortcuts, they can be unbound using `hotkeys.unbind`.\\n\\n```js\\n// unbind 'a' handler\\nhotkeys.unbind('a');\\n\\n// Unbind a hotkeys only for a single scope\\n// If no scope is specified it defaults to the current scope (hotkeys.getScope())\\nhotkeys.unbind('o, enter', 'issues');\\nhotkeys.unbind('o, enter', 'files');\\n```\\n\\nUnbind events through functions.\\n\\n```js\\nfunction example() {\\n hotkeys('a', example);\\n hotkeys.unbind('a', example);\\n\\n hotkeys('a', 'issues', example);\\n hotkeys.unbind('a', 'issues', example);\\n}\\n```\\n\\nTo unbind everything.\\n\\n```js\\nhotkeys.unbind();\\n```\\n\\n### isPressed\\n\\nFor example, `hotkeys.isPressed(77)` is true if the `M` key is currently pressed.\\n\\n```js\\nhotkeys('a', function() {\\n console.log(hotkeys.isPressed('a')); //=> true\\n console.log(hotkeys.isPressed('A')); //=> true\\n console.log(hotkeys.isPressed(65)); //=> true\\n});\\n```\\n\\n## keyup\\n\\n**key down** and **key up** both perform callback events.\\n\\n```js\\nhotkeys('ctrl+a,alt+a+s', {keyup: true}, function(event, handler) {\\n if (event.type === 'keydown') {\\n console.log('keydown:', event.type, handler, handler.key);\\n }\\n\\n if (event.type === 'keyup') {\\n console.log('keyup:', event.type, handler, handler.key);\\n }\\n});\\n```\\n\\n### getPressedKeyCodes\\n\\nReturns an array of key codes currently pressed.\\n\\n```js\\nhotkeys('command+ctrl+shift+a,f', function(){\\n console.log(hotkeys.getPressedKeyCodes()); //=> [17, 65] or [70]\\n})\\n```\\n\\n### filter\\n\\nBy default hotkeys are not enabled for `INPUT` `SELECT` `TEXTAREA` elements. `Hotkeys.filter` to return to the `true` shortcut keys set to play a role, `false` shortcut keys set up failure.\\n\\n```js\\nhotkeys.filter = function(event){\\n return true;\\n}\\n//How to add the filter to edit labels. <div contentEditable=\\\"true\\\"></div>\\n//\\\"contentEditable\\\" Older browsers that do not support drops\\nhotkeys.filter = function(event) {\\n var tagName = (event.target || event.srcElement).tagName;\\n return !(tagName.isContentEditable || tagName == 'INPUT' || tagName == 'SELECT' || tagName == 'TEXTAREA');\\n}\\n\\nhotkeys.filter = function(event){\\n var tagName = (event.target || event.srcElement).tagName;\\n hotkeys.setScope(/^(INPUT|TEXTAREA|SELECT)$/.test(tagName) ? 'input' : 'other');\\n return true;\\n}\\n```\\n\\n### noConflict\\n\\nRelinquish HotKeyss control of the `hotkeys` variable.\\n\\n```js\\nvar k = hotkeys.noConflict();\\nk('a', function() {\\n console.log(\\\"do something\\\")\\n});\\n\\nhotkeys()\\n// -->Uncaught TypeError: hotkeys is not a function(anonymous function) \\n// @ VM2170:2InjectedScript._evaluateOn \\n// @ VM2165:883InjectedScript._evaluateAndWrap \\n// @ VM2165:816InjectedScript.evaluate @ VM2165:682\\n```\\n \\n## Development\\n\\nTo develop, Install dependencies, Get the code:\\n\\n```shell\\n$ git https://github.com/jaywcjlove/hotkeys.git\\n$ cd hotkeys # Into the directory\\n$ npm install # or yarn install\\n```\\n\\nTo develop, run the self-reloading build:\\n\\n```shell\\n$ npm run watch\\n```\\n\\nRun Document Website Environment.\\n\\n```shell\\n$ npm run doc\\n```\\n\\nTo contribute, please fork Hotkeys.js, add your patch and tests for it (in the `test/` folder) and submit a pull request.\\n\\n```shell\\n$ npm run test\\n$ npm run test:watch # Development model\\n```\\n\\n## License\\n\\n[MIT © Kenny Wong](./LICENSE)\\n\";","/*!\n * hotkeys-js v3.8.6\n * A simple micro-library for defining and dispatching keyboard shortcuts. It has no dependencies.\n * \n * Copyright (c) 2021 kenny wong <wowohoo@qq.com>\n * http://jaywcjlove.github.io/hotkeys\n * \n * Licensed under the MIT license.\n */\n\nvar isff = typeof navigator !== 'undefined' ? navigator.userAgent.toLowerCase().indexOf('firefox') > 0 : false; // 绑定事件\n\nfunction addEvent(object, event, method) {\n if (object.addEventListener) {\n object.addEventListener(event, method, false);\n } else if (object.attachEvent) {\n object.attachEvent(\"on\".concat(event), function () {\n method(window.event);\n });\n }\n} // 修饰键转换成对应的键码\n\n\nfunction getMods(modifier, key) {\n var mods = key.slice(0, key.length - 1);\n\n for (var i = 0; i < mods.length; i++) {\n mods[i] = modifier[mods[i].toLowerCase()];\n }\n\n return mods;\n} // 处理传的key字符串转换成数组\n\n\nfunction getKeys(key) {\n if (typeof key !== 'string') key = '';\n key = key.replace(/\\s/g, ''); // 匹配任何空白字符,包括空格、制表符、换页符等等\n\n var keys = key.split(','); // 同时设置多个快捷键,以','分割\n\n var index = keys.lastIndexOf(''); // 快捷键可能包含',',需特殊处理\n\n for (; index >= 0;) {\n keys[index - 1] += ',';\n keys.splice(index, 1);\n index = keys.lastIndexOf('');\n }\n\n return keys;\n} // 比较修饰键的数组\n\n\nfunction compareArray(a1, a2) {\n var arr1 = a1.length >= a2.length ? a1 : a2;\n var arr2 = a1.length >= a2.length ? a2 : a1;\n var isIndex = true;\n\n for (var i = 0; i < arr1.length; i++) {\n if (arr2.indexOf(arr1[i]) === -1) isIndex = false;\n }\n\n return isIndex;\n}\n\nvar _keyMap = {\n backspace: 8,\n tab: 9,\n clear: 12,\n enter: 13,\n return: 13,\n esc: 27,\n escape: 27,\n space: 32,\n left: 37,\n up: 38,\n right: 39,\n down: 40,\n del: 46,\n delete: 46,\n ins: 45,\n insert: 45,\n home: 36,\n end: 35,\n pageup: 33,\n pagedown: 34,\n capslock: 20,\n num_0: 96,\n num_1: 97,\n num_2: 98,\n num_3: 99,\n num_4: 100,\n num_5: 101,\n num_6: 102,\n num_7: 103,\n num_8: 104,\n num_9: 105,\n num_multiply: 106,\n num_add: 107,\n num_enter: 108,\n num_subtract: 109,\n num_decimal: 110,\n num_divide: 111,\n '⇪': 20,\n ',': 188,\n '.': 190,\n '/': 191,\n '`': 192,\n '-': isff ? 173 : 189,\n '=': isff ? 61 : 187,\n ';': isff ? 59 : 186,\n '\\'': 222,\n '[': 219,\n ']': 221,\n '\\\\': 220\n}; // Modifier Keys\n\nvar _modifier = {\n // shiftKey\n '⇧': 16,\n shift: 16,\n // altKey\n '⌥': 18,\n alt: 18,\n option: 18,\n // ctrlKey\n '⌃': 17,\n ctrl: 17,\n control: 17,\n // metaKey\n '⌘': 91,\n cmd: 91,\n command: 91\n};\nvar modifierMap = {\n 16: 'shiftKey',\n 18: 'altKey',\n 17: 'ctrlKey',\n 91: 'metaKey',\n shiftKey: 16,\n ctrlKey: 17,\n altKey: 18,\n metaKey: 91\n};\nvar _mods = {\n 16: false,\n 18: false,\n 17: false,\n 91: false\n};\nvar _handlers = {}; // F1~F12 special key\n\nfor (var k = 1; k < 20; k++) {\n _keyMap[\"f\".concat(k)] = 111 + k;\n}\n\nvar _downKeys = []; // 记录摁下的绑定键\n\nvar _scope = 'all'; // 默认热键范围\n\nvar elementHasBindEvent = []; // 已绑定事件的节点记录\n// 返回键码\n\nvar code = function code(x) {\n return _keyMap[x.toLowerCase()] || _modifier[x.toLowerCase()] || x.toUpperCase().charCodeAt(0);\n}; // 设置获取当前范围(默认为'所有'\n\n\nfunction setScope(scope) {\n _scope = scope || 'all';\n} // 获取当前范围\n\n\nfunction getScope() {\n return _scope || 'all';\n} // 获取摁下绑定键的键值\n\n\nfunction getPressedKeyCodes() {\n return _downKeys.slice(0);\n} // 表单控件控件判断 返回 Boolean\n// hotkey is effective only when filter return true\n\n\nfunction filter(event) {\n var target = event.target || event.srcElement;\n var tagName = target.tagName;\n var flag = true; // ignore: isContentEditable === 'true', <input> and <textarea> when readOnly state is false, <select>\n\n if (target.isContentEditable || (tagName === 'INPUT' || tagName === 'TEXTAREA' || tagName === 'SELECT') && !target.readOnly) {\n flag = false;\n }\n\n return flag;\n} // 判断摁下的键是否为某个键返回true或者false\n\n\nfunction isPressed(keyCode) {\n if (typeof keyCode === 'string') {\n keyCode = code(keyCode); // 转换成键码\n }\n\n return _downKeys.indexOf(keyCode) !== -1;\n} // 循环删除handlers中的所有 scope(范围)\n\n\nfunction deleteScope(scope, newScope) {\n var handlers;\n var i; // 没有指定scope获取scope\n\n if (!scope) scope = getScope();\n\n for (var key in _handlers) {\n if (Object.prototype.hasOwnProperty.call(_handlers, key)) {\n handlers = _handlers[key];\n\n for (i = 0; i < handlers.length;) {\n if (handlers[i].scope === scope) handlers.splice(i, 1);else i++;\n }\n }\n } // 如果scope被删除将scope重置为all\n\n\n if (getScope() === scope) setScope(newScope || 'all');\n} // 清除修饰键\n\n\nfunction clearModifier(event) {\n var key = event.keyCode || event.which || event.charCode;\n\n var i = _downKeys.indexOf(key); // 从列表中清除按压过的键\n\n\n if (i >= 0) {\n _downKeys.splice(i, 1);\n } // 特殊处理 cmmand 键,在 cmmand 组合快捷键 keyup 只执行一次的问题\n\n\n if (event.key && event.key.toLowerCase() === 'meta') {\n _downKeys.splice(0, _downKeys.length);\n } // 修饰键 shiftKey altKey ctrlKey (command||metaKey) 清除\n\n\n if (key === 93 || key === 224) key = 91;\n\n if (key in _mods) {\n _mods[key] = false; // 将修饰键重置为false\n\n for (var k in _modifier) {\n if (_modifier[k] === key) hotkeys[k] = false;\n }\n }\n}\n\nfunction unbind(keysInfo) {\n // unbind(), unbind all keys\n if (!keysInfo) {\n Object.keys(_handlers).forEach(function (key) {\n return delete _handlers[key];\n });\n } else if (Array.isArray(keysInfo)) {\n // support like : unbind([{key: 'ctrl+a', scope: 's1'}, {key: 'ctrl-a', scope: 's2', splitKey: '-'}])\n keysInfo.forEach(function (info) {\n if (info.key) eachUnbind(info);\n });\n } else if (typeof keysInfo === 'object') {\n // support like unbind({key: 'ctrl+a, ctrl+b', scope:'abc'})\n if (keysInfo.key) eachUnbind(keysInfo);\n } else if (typeof keysInfo === 'string') {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n // support old method\n // eslint-disable-line\n var scope = args[0],\n method = args[1];\n\n if (typeof scope === 'function') {\n method = scope;\n scope = '';\n }\n\n eachUnbind({\n key: keysInfo,\n scope: scope,\n method: method,\n splitKey: '+'\n });\n }\n} // 解除绑定某个范围的快捷键\n\n\nvar eachUnbind = function eachUnbind(_ref) {\n var key = _ref.key,\n scope = _ref.scope,\n method = _ref.method,\n _ref$splitKey = _ref.splitKey,\n splitKey = _ref$splitKey === void 0 ? '+' : _ref$splitKey;\n var multipleKeys = getKeys(key);\n multipleKeys.forEach(function (originKey) {\n var unbindKeys = originKey.split(splitKey);\n var len = unbindKeys.length;\n var lastKey = unbindKeys[len - 1];\n var keyCode = lastKey === '*' ? '*' : code(lastKey);\n if (!_handlers[keyCode]) return; // 判断是否传入范围,没有就获取范围\n\n if (!scope) scope = getScope();\n var mods = len > 1 ? getMods(_modifier, unbindKeys) : [];\n _handlers[keyCode] = _handlers[keyCode].map(function (record) {\n // 通过函数判断,是否解除绑定,函数相等直接返回\n var isMatchingMethod = method ? record.method === method : true;\n\n if (isMatchingMethod && record.scope === scope && compareArray(record.mods, mods)) {\n return {};\n }\n\n return record;\n });\n });\n}; // 对监听对应快捷键的回调函数进行处理\n\n\nfunction eventHandler(event, handler, scope) {\n var modifiersMatch; // 看它是否在当前范围\n\n if (handler.scope === scope || handler.scope === 'all') {\n // 检查是否匹配修饰符如果有返回true\n modifiersMatch = handler.mods.length > 0;\n\n for (var y in _mods) {\n if (Object.prototype.hasOwnProperty.call(_mods, y)) {\n if (!_mods[y] && handler.mods.indexOf(+y) > -1 || _mods[y] && handler.mods.indexOf(+y) === -1) {\n modifiersMatch = false;\n }\n }\n } // 调用处理程序,如果是修饰键不做处理\n\n\n if (handler.mods.length === 0 && !_mods[16] && !_mods[18] && !_mods[17] && !_mods[91] || modifiersMatch || handler.shortcut === '*') {\n if (handler.method(event, handler) === false) {\n if (event.preventDefault) event.preventDefault();else event.returnValue = false;\n if (event.stopPropagation) event.stopPropagation();\n if (event.cancelBubble) event.cancelBubble = true;\n }\n }\n }\n} // 处理keydown事件\n\n\nfunction dispatch(event) {\n var asterisk = _handlers['*'];\n var key = event.keyCode || event.which || event.charCode; // 表单控件过滤 默认表单控件不触发快捷键\n\n if (!hotkeys.filter.call(this, event)) return; // Gecko(Firefox)的command键值224在Webkit(Chrome)中保持一致\n // Webkit左右 command 键值不一样\n\n if (key === 93 || key === 224) key = 91;\n /**\n * Collect bound keys\n * If an Input Method Editor is processing key input and the event is keydown, return 229.\n * https://stackoverflow.com/questions/25043934/is-it-ok-to-ignore-keydown-events-with-keycode-229\n * http://lists.w3.org/Archives/Public/www-dom/2010JulSep/att-0182/keyCode-spec.html\n */\n\n if (_downKeys.indexOf(key) === -1 && key !== 229) _downKeys.push(key);\n /**\n * Jest test cases are required.\n * ===============================\n */\n\n ['ctrlKey', 'altKey', 'shiftKey', 'metaKey'].forEach(function (keyName) {\n var keyNum = modifierMap[keyName];\n\n if (event[keyName] && _downKeys.indexOf(keyNum) === -1) {\n _downKeys.push(keyNum);\n } else if (!event[keyName] && _downKeys.indexOf(keyNum) > -1) {\n _downKeys.splice(_downKeys.indexOf(keyNum), 1);\n } else if (keyName === 'metaKey' && event[keyName] && _downKeys.length === 3) {\n /**\n * Fix if Command is pressed:\n * ===============================\n */\n if (!(event.ctrlKey || event.shiftKey || event.altKey)) {\n _downKeys = _downKeys.slice(_downKeys.indexOf(keyNum));\n }\n }\n });\n /**\n * -------------------------------\n */\n\n if (key in _mods) {\n _mods[key] = true; // 将特殊字符的key注册到 hotkeys 上\n\n for (var k in _modifier) {\n if (_modifier[k] === key) hotkeys[k] = true;\n }\n\n if (!asterisk) return;\n } // 将 modifierMap 里面的修饰键绑定到 event 中\n\n\n for (var e in _mods) {\n if (Object.prototype.hasOwnProperty.call(_mods, e)) {\n _mods[e] = event[modifierMap[e]];\n }\n }\n /**\n * https://github.com/jaywcjlove/hotkeys/pull/129\n * This solves the issue in Firefox on Windows where hotkeys corresponding to special characters would not trigger.\n * An example of this is ctrl+alt+m on a Swedish keyboard which is used to type μ.\n * Browser support: https://caniuse.com/#feat=keyboardevent-getmodifierstate\n */\n\n\n if (event.getModifierState && !(event.altKey && !event.ctrlKey) && event.getModifierState('AltGraph')) {\n if (_downKeys.indexOf(17) === -1) {\n _downKeys.push(17);\n }\n\n if (_downKeys.indexOf(18) === -1) {\n _downKeys.push(18);\n }\n\n _mods[17] = true;\n _mods[18] = true;\n } // 获取范围 默认为 `all`\n\n\n var scope = getScope(); // 对任何快捷键都需要做的处理\n\n if (asterisk) {\n for (var i = 0; i < asterisk.length; i++) {\n if (asterisk[i].scope === scope && (event.type === 'keydown' && asterisk[i].keydown || event.type === 'keyup' && asterisk[i].keyup)) {\n eventHandler(event, asterisk[i], scope);\n }\n }\n } // key 不在 _handlers 中返回\n\n\n if (!(key in _handlers)) return;\n\n for (var _i = 0; _i < _handlers[key].length; _i++) {\n if (event.type === 'keydown' && _handlers[key][_i].keydown || event.type === 'keyup' && _handlers[key][_i].keyup) {\n if (_handlers[key][_i].key) {\n var record = _handlers[key][_i];\n var splitKey = record.splitKey;\n var keyShortcut = record.key.split(splitKey);\n var _downKeysCurrent = []; // 记录当前按键键值\n\n for (var a = 0; a < keyShortcut.length; a++) {\n _downKeysCurrent.push(code(keyShortcut[a]));\n }\n\n if (_downKeysCurrent.sort().join('') === _downKeys.sort().join('')) {\n // 找到处理内容\n eventHandler(event, record, scope);\n }\n }\n }\n }\n} // 判断 element 是否已经绑定事件\n\n\nfunction isElementBind(element) {\n return elementHasBindEvent.indexOf(element) > -1;\n}\n\nfunction hotkeys(key, option, method) {\n _downKeys = [];\n var keys = getKeys(key); // 需要处理的快捷键列表\n\n var mods = [];\n var scope = 'all'; // scope默认为all所有范围都有效\n\n var element = document; // 快捷键事件绑定节点\n\n var i = 0;\n var keyup = false;\n var keydown = true;\n var splitKey = '+'; // 对为设定范围的判断\n\n if (method === undefined && typeof option === 'function') {\n method = option;\n }\n\n if (Object.prototype.toString.call(option) === '[object Object]') {\n if (option.scope) scope = option.scope; // eslint-disable-line\n\n if (option.element) element = option.element; // eslint-disable-line\n\n if (option.keyup) keyup = option.keyup; // eslint-disable-line\n\n if (option.keydown !== undefined) keydown = option.keydown; // eslint-disable-line\n\n if (typeof option.splitKey === 'string') splitKey = option.splitKey; // eslint-disable-line\n }\n\n if (typeof option === 'string') scope = option; // 对于每个快捷键进行处理\n\n for (; i < keys.length; i++) {\n key = keys[i].split(splitKey); // 按键列表\n\n mods = []; // 如果是组合快捷键取得组合快捷键\n\n if (key.length > 1) mods = getMods(_modifier, key); // 将非修饰键转化为键码\n\n key = key[key.length - 1];\n key = key === '*' ? '*' : code(key); // *表示匹配所有快捷键\n // 判断key是否在_handlers中不在就赋一个空数组\n\n if (!(key in _handlers)) _handlers[key] = [];\n\n _handlers[key].push({\n keyup: keyup,\n keydown: keydown,\n scope: scope,\n mods: mods,\n shortcut: keys[i],\n method: method,\n key: keys[i],\n splitKey: splitKey\n });\n } // 在全局document上设置快捷键\n\n\n if (typeof element !== 'undefined' && !isElementBind(element) && window) {\n elementHasBindEvent.push(element);\n addEvent(element, 'keydown', function (e) {\n dispatch(e);\n });\n addEvent(window, 'focus', function () {\n _downKeys = [];\n });\n addEvent(element, 'keyup', function (e) {\n dispatch(e);\n clearModifier(e);\n });\n }\n}\n\nvar _api = {\n setScope: setScope,\n getScope: getScope,\n deleteScope: deleteScope,\n getPressedKeyCodes: getPressedKeyCodes,\n isPressed: isPressed,\n filter: filter,\n unbind: unbind\n};\n\nfor (var a in _api) {\n if (Object.prototype.hasOwnProperty.call(_api, a)) {\n hotkeys[a] = _api[a];\n }\n}\n\nif (typeof window !== 'undefined') {\n var _hotkeys = window.hotkeys;\n\n hotkeys.noConflict = function (deep) {\n if (deep && window.hotkeys === hotkeys) {\n window.hotkeys = _hotkeys;\n }\n\n return hotkeys;\n };\n\n window.hotkeys = hotkeys;\n}\n\nexport default hotkeys;\n","import React, { Component } from 'react';\nimport GithubCorner from '@uiw/react-github-corners';\nimport { Github } from '@uiw/react-shields';\nimport MarkdownPreview from '@uiw/react-markdown-preview';\nimport KeyBoard from '@uiw/react-mac-keyboard';\nimport Footer from './components/Footer';\nimport styles from './styles/index.module.less';\nimport DocumentStr from '../README.md';\nimport hotkeys from '..';\nimport pkg from '../package.json';\n\nexport default class App extends Component {\n constructor() {\n super();\n this.state = {\n keyCode: [],\n keyStr: [],\n };\n this.onKeyUpEvent = this.onKeyUpEvent.bind(this);\n }\n\n componentDidMount() {\n document.addEventListener('keyup', this.onKeyUpEvent);\n function pkeys(keys, key) {\n if (keys.indexOf(key) === -1) keys.push(key);\n return keys;\n }\n function pkeysStr(keysStr, key) {\n if (keysStr.indexOf(key) === -1) keysStr.push(key);\n return keysStr;\n }\n hotkeys('*', (evn) => {\n evn.preventDefault();\n const keys = [];\n const keyStr = [];\n if (hotkeys.shift) {\n pkeys(keys, 16);\n pkeysStr(keyStr, 'shift');\n }\n if (hotkeys.ctrl) {\n pkeys(keys, 17);\n pkeysStr(keyStr, 'ctrl');\n }\n if (hotkeys.alt) {\n pkeys(keys, 18);\n pkeysStr(keyStr, 'alt');\n }\n if (hotkeys.control) {\n pkeys(keys, 17);\n pkeysStr(keyStr, 'control');\n }\n if (hotkeys.command) {\n pkeys(keys, 91);\n pkeysStr(keyStr, 'command');\n }\n keyStr.push(evn.keyCode);\n if (keys.indexOf(evn.keyCode) === -1) keys.push(evn.keyCode);\n this.setState({ keyCode: keys, keyStr });\n });\n }\n\n componentWillUnmount() {\n document.removeEventListener('keyup', this.onKeyUpEvent);\n }\n\n onKeyUpEvent() {\n this.setState({ keyCode: [], keyStr: [] });\n }\n\n onKeyBoardMouseDown(item) {\n if (item.keycode > -1) {\n this.setState({ keyStr: [item.keycode] });\n }\n }\n\n onKeyBoardMouseUp() {\n this.setState({ keyStr: [] });\n }\n\n openVersionWebsite(e) {\n if (e.target && e.target.value) {\n window.location.href = e.target.value;\n }\n }\n\n render() {\n const { keyStr, keyCode } = this.state;\n let DocumentStrSource = DocumentStr;\n if (DocumentStrSource) DocumentStrSource = DocumentStr.replace(/([\\s\\S]*)<!--dividing-->/, '');\n return (\n <div>\n <select className={styles.version} onChange={this.openVersionWebsite.bind(this)}>\n <option value=\"https://jaywcjlove.github.io/hotkeys\">\n v\n {pkg.version}\n </option>\n <option value=\"https://unpkg.com/hotkeys-js@3.4.3/doc/index.html\">v3.4.3</option>\n <option value=\"https://unpkg.com/hotkeys-js@3.4.2/doc/index.html\">v3.4.2</option>\n <option value=\"https://unpkg.com/hotkeys-js@2.0.10/doc/index.html\">v2.0.10</option>\n </select>\n {keyStr.length > -1 && (\n <div className={styles.keyCodeInfo}>\n {keyStr.map((item) => <span key={`${item}`}>{item}</span>)}\n </div>\n )}\n <GithubCorner href=\"https://github.com/jaywcjlove/hotkeys\" target=\"__blank\" />\n <div className={styles.header}>\n <div className={styles.title}>HotKeys.js</div>\n <div className={styles.github}>\n <a href=\"https://www.npmjs.com/package/hotkeys-js\">\n <button type=\"button\">On NPM</button>\n </a>\n <a href=\"https://github.com/jaywcjlove/hotkeys/\">\n <button type=\"button\">Fork on Github</button>\n </a>\n <a href=\"https://github.com/jaywcjlove/hotkeys/\">\n <button type=\"button\">Doc on Github</button>\n </a>\n <a href=\"https://jaywcjlove.gitee.io/hotkeys/\">\n <button type=\"button\">Doc on Gitee</button>\n </a>\n </div>\n <div className={styles.info}>A robust Javascript library for capturing keyboard input and key combinations entered. It has no dependencies. Try to press your keyboard, The following button will highlight.</div>\n </div>\n <KeyBoard\n style={{ top: -40 }}\n onMouseDown={this.onKeyBoardMouseDown.bind(this)}\n onMouseUp={this.onKeyBoardMouseUp.bind(this)}\n keyCode={keyCode}\n />\n <MarkdownPreview style={{ maxWidth: 995, margin: '0 auto' }} source={DocumentStrSource} />\n <Footer name=\"Kenny Wong\" href=\"http://jaywcjlove.github.io\" year=\"2015-present\">\n <Github user=\"jaywcjlove\" repo=\"hotkeys\">\n <Github.Social href=\"https://github.com/jaywcjlove/hotkeys\" type=\"forks\" />\n <Github.Social href=\"https://github.com/jaywcjlove/hotkeys\" type=\"stars\" />\n <Github.Social href=\"https://github.com/jaywcjlove/hotkeys\" type=\"watchers\" />\n <Github.Social href=\"https://github.com/jaywcjlove/hotkeys\" type=\"followers\" />\n </Github>\n </Footer>\n </div>\n );\n }\n}\n","import setPrototypeOf from \"@babel/runtime/helpers/esm/setPrototypeOf\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport App from './App';\nimport '@uiw/reset.css';\nimport './styles/reset.less';\n\nReactDOM.render(<App />, document.getElementById('root'));\n"],"sourceRoot":""}