const lang = Object.freeze(JSON.parse("{\"displayName\":\"Clarity\",\"name\":\"clarity\",\"patterns\":[{\"include\":\"#expression\"},{\"include\":\"#define-constant\"},{\"include\":\"#define-data-var\"},{\"include\":\"#define-map\"},{\"include\":\"#define-function\"},{\"include\":\"#define-fungible-token\"},{\"include\":\"#define-non-fungible-token\"},{\"include\":\"#define-trait\"},{\"include\":\"#use-trait\"}],\"repository\":{\"built-in-func\":{\"begin\":\"(\\\\()\\\\s*(\\\\-|\\\\+|<\\\\=|>\\\\=|<|>|\\\\*|/|and|append|as-contract|as-max-len\\\\?|asserts!|at-block|begin|bit-and|bit-not|bit-or|bit-shift-left|bit-shift-right|bit-xor|buff-to-int-be|buff-to-int-le|buff-to-uint-be|buff-to-uint-le|concat|contract-call\\\\?|contract-of|default-to|element-at|element-at\\\\?|filter|fold|from-consensus-buff\\\\?|ft-burn\\\\?|ft-get-balance|ft-get-supply|ft-mint\\\\?|ft-transfer\\\\?|get-block-info\\\\?|get-burn-block-info\\\\?|get-stacks-block-info\\\\?|get-tenure-info\\\\?|get-burn-block-info\\\\?|hash160|if|impl-trait|index-of|index-of\\\\?|int-to-ascii|int-to-utf8|is-eq|is-err|is-none|is-ok|is-some|is-standard|keccak256|len|log2|map|match|merge|mod|nft-burn\\\\?|nft-get-owner\\\\?|nft-mint\\\\?|nft-transfer\\\\?|not|or|pow|principal-construct\\\\?|principal-destruct\\\\?|principal-of\\\\?|print|replace-at\\\\?|secp256k1-recover\\\\?|secp256k1-verify|sha256|sha512|sha512/256|slice\\\\?|sqrti|string-to-int\\\\?|string-to-uint\\\\?|stx-account|stx-burn\\\\?|stx-get-balance|stx-transfer-memo\\\\?|stx-transfer\\\\?|to-consensus-buff\\\\?|to-int|to-uint|try!|unwrap!|unwrap-err!|unwrap-err-panic|unwrap-panic|xor)\\\\s+\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.built-in-function.start.clarity\"},\"2\":{\"name\":\"keyword.declaration.built-in-function.clarity\"}},\"end\":\"(\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.built-in-function.end.clarity\"}},\"name\":\"meta.built-in-function\",\"patterns\":[{\"include\":\"#expression\"},{\"include\":\"#user-func\"}]},\"comment\":{\"match\":\"(?<=^|[()\\\\[\\\\]{}\\\",'`;\\\\s])(;).*$\",\"name\":\"comment.line.semicolon.clarity\"},\"data-type\":{\"patterns\":[{\"include\":\"#comment\"},{\"comment\":\"numerics\",\"match\":\"\\\\b(uint|int)\\\\b\",\"name\":\"entity.name.type.numeric.clarity\"},{\"comment\":\"principal\",\"match\":\"\\\\b(principal)\\\\b\",\"name\":\"entity.name.type.principal.clarity\"},{\"comment\":\"bool\",\"match\":\"\\\\b(bool)\\\\b\",\"name\":\"entity.name.type.bool.clarity\"},{\"captures\":{\"1\":{\"name\":\"punctuation.string_type-def.start.clarity\"},\"2\":{\"name\":\"entity.name.type.string_type.clarity\"},\"3\":{\"name\":\"constant.numeric.string_type-len.clarity\"},\"4\":{\"name\":\"punctuation.string_type-def.end.clarity\"}},\"match\":\"(\\\\()\\\\s*(?:(string-ascii|string-utf8)\\\\s+(\\\\d+))\\\\s*(\\\\))\"},{\"captures\":{\"1\":{\"name\":\"punctuation.buff-def.start.clarity\"},\"2\":{\"name\":\"entity.name.type.buff.clarity\"},\"3\":{\"name\":\"constant.numeric.buf-len.clarity\"},\"4\":{\"name\":\"punctuation.buff-def.end.clarity\"}},\"match\":\"(\\\\()\\\\s*(buff)\\\\s+(\\\\d+)\\\\s*(\\\\))\"},{\"begin\":\"(\\\\()\\\\s*(optional)\\\\s+\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.optional-def.start.clarity\"},\"2\":{\"name\":\"storage.type.modifier\"}},\"comment\":\"optional\",\"end\":\"(\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.optional-def.end.clarity\"}},\"name\":\"meta.optional-def\",\"patterns\":[{\"include\":\"#data-type\"}]},{\"begin\":\"(\\\\()\\\\s*(response)\\\\s+\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.response-def.start.clarity\"},\"2\":{\"name\":\"storage.type.modifier\"}},\"comment\":\"response\",\"end\":\"(\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.response-def.end.clarity\"}},\"name\":\"meta.response-def\",\"patterns\":[{\"include\":\"#data-type\"}]},{\"begin\":\"(\\\\()\\\\s*(list)\\\\s+(\\\\d+)\\\\s+\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.list-def.start.clarity\"},\"2\":{\"name\":\"entity.name.type.list.clarity\"},\"3\":{\"name\":\"constant.numeric.list-len.clarity\"}},\"comment\":\"list\",\"end\":\"(\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.list-def.end.clarity\"}},\"name\":\"meta.list-def\",\"patterns\":[{\"include\":\"#data-type\"}]},{\"begin\":\"(\\\\{)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.tuple-def.start.clarity\"}},\"end\":\"(\\\\})\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.tuple-def.end.clarity\"}},\"name\":\"meta.tuple-def\",\"patterns\":[{\"match\":\"([a-zA-Z][\\\\w\\\\?\\\\!\\\\-]*)(?=:)\",\"name\":\"entity.name.tag.tuple-data-type-key.clarity\"},{\"include\":\"#data-type\"}]}]},\"define-constant\":{\"begin\":\"(\\\\()\\\\s*(define-constant)\\\\s+([a-zA-Z][\\\\w\\\\?\\\\!\\\\-]*)\\\\s+\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.define-constant.start.clarity\"},\"2\":{\"name\":\"keyword.declaration.define-constant.clarity\"},\"3\":{\"name\":\"entity.name.constant-name.clarity variable.other.clarity\"}},\"end\":\"(\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.define-constant.end.clarity\"}},\"name\":\"meta.define-constant\",\"patterns\":[{\"include\":\"#expression\"}]},\"define-data-var\":{\"begin\":\"(\\\\()\\\\s*(define-data-var)\\\\s+([a-zA-Z][\\\\w\\\\?\\\\!\\\\-]*)\\\\s+\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.define-data-var.start.clarity\"},\"2\":{\"name\":\"keyword.declaration.define-data-var.clarity\"},\"3\":{\"name\":\"entity.name.data-var-name.clarity variable.other.clarity\"}},\"end\":\"(\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.define-data-var.end.clarity\"}},\"name\":\"meta.define-data-var\",\"patterns\":[{\"include\":\"#data-type\"},{\"include\":\"#expression\"}]},\"define-function\":{\"begin\":\"(\\\\()\\\\s*(define-(?:public|private|read-only))\\\\s+\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.define-function.start.clarity\"},\"2\":{\"name\":\"keyword.declaration.define-function.clarity\"}},\"end\":\"(\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.define-function.end.clarity\"}},\"name\":\"meta.define-function\",\"patterns\":[{\"include\":\"#expression\"},{\"begin\":\"(\\\\()\\\\s*([a-zA-Z][\\\\w\\\\?\\\\!\\\\-]*)\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.function-signature.start.clarity\"},\"2\":{\"name\":\"entity.name.function.clarity\"}},\"end\":\"(\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.function-signature.end.clarity\"}},\"name\":\"meta.define-function-signature\",\"patterns\":[{\"begin\":\"(\\\\()\\\\s*([a-zA-Z][\\\\w\\\\?\\\\!\\\\-]*)\\\\s+\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.function-argument.start.clarity\"},\"2\":{\"name\":\"variable.parameter.clarity\"}},\"end\":\"(\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.function-argument.end.clarity\"}},\"name\":\"meta.function-argument\",\"patterns\":[{\"include\":\"#data-type\"}]}]},{\"include\":\"#user-func\"}]},\"define-fungible-token\":{\"captures\":{\"1\":{\"name\":\"punctuation.define-fungible-token.start.clarity\"},\"2\":{\"name\":\"keyword.declaration.define-fungible-token.clarity\"},\"3\":{\"name\":\"entity.name.fungible-token-name.clarity variable.other.clarity\"},\"4\":{\"name\":\"constant.numeric.fungible-token-total-supply.clarity\"},\"5\":{\"name\":\"punctuation.define-fungible-token.end.clarity\"}},\"match\":\"(\\\\()\\\\s*(define-fungible-token)\\\\s+([a-zA-Z][\\\\w\\\\?\\\\!\\\\-]*)(?:\\\\s+(u\\\\d+))?\"},\"define-map\":{\"begin\":\"(\\\\()\\\\s*(define-map)\\\\s+([a-zA-Z][\\\\w\\\\?\\\\!\\\\-]*)\\\\s+\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.define-map.start.clarity\"},\"2\":{\"name\":\"keyword.declaration.define-map.clarity\"},\"3\":{\"name\":\"entity.name.map-name.clarity variable.other.clarity\"}},\"end\":\"(\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.define-map.end.clarity\"}},\"name\":\"meta.define-map\",\"patterns\":[{\"include\":\"#data-type\"},{\"include\":\"#expression\"}]},\"define-non-fungible-token\":{\"begin\":\"(\\\\()\\\\s*(define-non-fungible-token)\\\\s+([a-zA-Z][\\\\w\\\\?\\\\!\\\\-]*)\\\\s+\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.define-non-fungible-token.start.clarity\"},\"2\":{\"name\":\"keyword.declaration.define-non-fungible-token.clarity\"},\"3\":{\"name\":\"entity.name.non-fungible-token-name.clarity variable.other.clarity\"}},\"end\":\"(\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.define-non-fungible-token.end.clarity\"}},\"name\":\"meta.define-non-fungible-token\",\"patterns\":[{\"include\":\"#data-type\"}]},\"define-trait\":{\"begin\":\"(\\\\()\\\\s*(define-trait)\\\\s+([a-zA-Z][\\\\w\\\\?\\\\!\\\\-]*)\\\\s+\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.define-trait.start.clarity\"},\"2\":{\"name\":\"keyword.declaration.define-trait.clarity\"},\"3\":{\"name\":\"entity.name.trait-name.clarity variable.other.clarity\"}},\"end\":\"(\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.define-trait.end.clarity\"}},\"name\":\"meta.define-trait\",\"patterns\":[{\"begin\":\"(\\\\()\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.define-trait-body.start.clarity\"}},\"end\":\"(\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.define-trait-body.end.clarity\"}},\"name\":\"meta.define-trait-body\",\"patterns\":[{\"include\":\"#expression\"},{\"begin\":\"(\\\\()\\\\s*([a-zA-Z][\\\\w\\\\!\\\\?\\\\-]*)\\\\s+\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.trait-function.start.clarity\"},\"2\":{\"name\":\"entity.name.function.clarity\"}},\"end\":\"(\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.trait-function.end.clarity\"}},\"name\":\"meta.trait-function\",\"patterns\":[{\"include\":\"#data-type\"},{\"begin\":\"(\\\\()\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.trait-function-args.start.clarity\"}},\"end\":\"(\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.trait-function-args.end.clarity\"}},\"name\":\"meta.trait-function-args\",\"patterns\":[{\"include\":\"#data-type\"}]}]}]}]},\"expression\":{\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#keyword\"},{\"include\":\"#literal\"},{\"include\":\"#let-func\"},{\"include\":\"#built-in-func\"},{\"include\":\"#get-set-func\"}]},\"get-set-func\":{\"begin\":\"(\\\\()\\\\s*(var-get|var-set|map-get\\\\?|map-set|map-insert|map-delete|get)\\\\s+([a-zA-Z][\\\\w\\\\?\\\\!\\\\-]*)\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.get-set-func.start.clarity\"},\"2\":{\"name\":\"keyword.control.clarity\"},\"3\":{\"name\":\"variable.other.clarity\"}},\"end\":\"(\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.get-set-func.end.clarity\"}},\"name\":\"meta.get-set-func\",\"patterns\":[{\"include\":\"#expression\"}]},\"keyword\":{\"match\":\"(?