@qrsln/highlighter
Version:
Based on highlighter.js
113 lines • 116 kB
JavaScript
import { Component, Input, ViewEncapsulation } from '@angular/core';
// @ts-ignore
// import hljs, {HLJSOptions} from 'highlight.js';
// https://github.com/highlightjs/highlight.js
// It is more efficient to import only the library and register the languages you need:
import hljs from 'highlight.js/lib/core';
// Deprecation (warning): Using file extension in specifier is deprecated,
// use "highlight.js/lib/languages/typescript" instead of "highlight.js/lib/languages/typescript.js"
// @ts-ignore
import typescript from 'highlight.js/lib/languages/typescript';
// @ts-ignore
import html from 'highlight.js/lib/languages/xml';
// @ts-ignore
import css from 'highlight.js/lib/languages/css';
// @ts-ignore
import scss from 'highlight.js/lib/languages/scss';
// @ts-ignore
import less from 'highlight.js/lib/languages/less';
// @ts-ignore
import csharp from 'highlight.js/lib/languages/csharp';
// @ts-ignore
import javascript from 'highlight.js/lib/languages/javascript';
// @ts-ignore
import json from 'highlight.js/lib/languages/json';
// @ts-ignore
import php from 'highlight.js/lib/languages/php';
// @ts-ignore
import markdown from 'highlight.js/lib/languages/markdown';
// @ts-ignore
import python from 'highlight.js/lib/languages/python';
import * as i0 from "@angular/core";
// Supported Languages: typescript, html, css/scss/less, csharp, javascript, json, php, python, markdown
hljs.registerLanguage('typescript', typescript);
hljs.registerLanguage('html', html);
hljs.registerLanguage('css', css);
hljs.registerLanguage('scss', scss);
hljs.registerLanguage('less', less);
hljs.registerLanguage('csharp', csharp);
hljs.registerLanguage('javascript', javascript);
hljs.registerLanguage('json', json);
hljs.registerLanguage('php', php);
hljs.registerLanguage('python', python);
hljs.registerLanguage('markdown', markdown);
export class HighlighterComponent {
Id = 'Highlighter'.concat('_', Math.random().toString(36).substring(2, 15), '_', Math.random().toString(36).substring(2, 15));
Options;
Theme = 'stackoverflow-dark'; // Stackoverflow Dark
Lang; // Not: don't set this value
ClassName; // get classes from base element & use them on this component
Code = '<html lang="en"></html>';
LineNumbers = false;
ngOnInit() {
if (this.Lang === undefined) {
console.warn(`Language does not set! Lang: ${this.Lang}!! Back to default lang: html :p`);
this.Lang = 'html';
}
if (typeof hljs === 'undefined') {
console.error('highlight.js not detected!');
}
else {
this.Code = this.EscapeHTML(this.Code);
// this.code = hljs.highlight(this.code, {language: this.lang || 'html'}).value;
// console.log('this.code', this.code);
}
}
ngAfterViewInit() {
if (this.Options) {
hljs.configure({ /*useBR: 'true', */ ...this.Options });
}
if (typeof window !== 'undefined' && typeof document !== 'undefined') {
const parentEl = document.getElementById(this.Id);
if (parentEl) {
const blocks = parentEl.querySelectorAll('pre code');
// console.log('blocks', blocks);
blocks.forEach((el) => {
hljs.highlightElement(el);
if (this.LineNumbers) {
this.AddLineNumbersTo(el);
}
});
}
}
}
AddLineNumbersTo(elCode) {
const lines = elCode.innerHTML.split('\n');
if (lines.length === 0 || (lines.length === 1 && lines[0].length === 0)) {
return;
}
const digitsCount = ('' + lines.length).length;
for (let n = 0; n < lines.length; n++) {
let numberWithZeros = '' + n;
if (numberWithZeros.length < digitsCount) {
let zeros = '';
for (let i = 0; i < digitsCount - numberWithZeros.length; i++) {
zeros += '0';
}
numberWithZeros = `<span class="zeros">${zeros}</span>${n}`;
}
lines[n] = `<span class="hljs-ln-numbers">${numberWithZeros}</span>` + lines[n];
}
elCode.innerHTML = lines.join('\n');
}
/* hljs.highlightAuto(this.code).value ==> same result */
EscapeHTML(content) {
return (content || '')
.replace(/&/g, '&')
.replace(/</g, '<')
.replace(/>/g, '>')
.replace(/"/g, '"')
.replace(/'/g, ''');
}
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.3", ngImport: i0, type: HighlighterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.3", type: HighlighterComponent, selector: "ql-highlighter, NgHighlighter, Highlighter", inputs: { Options: "Options", Theme: "Theme", Lang: "Lang", ClassName: "ClassName", Code: "Code", LineNumbers: "LineNumbers" }, host: { attributes: { "ngSkipHydration": "true" } }, ngImport: i0, template: "<div [id]=\"Id\" class=\"Highlighter {{ClassName}} {{Theme}}\">\r\n <pre><code class=\"Scrollbar {{Lang}}\" [innerHTML]=\"Code\"></code></pre>\r\n <!-- <pre><code [className]=\"lang\" [innerHTML]=\"Transform(code,'html')\"></code></pre>-->\r\n</div>\r\n", styles: [".Highlighter{margin:0;padding:0}.Highlighter pre{margin:0!important}.Highlighter div,.Highlighter pre>code{padding:.5rem 2rem!important;overflow:auto;border-radius:.3em}.Highlighter .hljs-ln-numbers{text-align:right;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;color:#ccc;border-right:1px solid #999;padding:3px 10px;margin-right:5px}.Highlighter .hljs-ln-numbers .zeros{color:transparent}.Highlighter.default pre code.hljs{display:block;overflow-x:auto;padding:1em}.Highlighter.default code.hljs{padding:3px 5px}.Highlighter.default .hljs{background:#f3f3f3;color:#444}.Highlighter.default .hljs-comment{color:#697070}.Highlighter.default .hljs-tag,.Highlighter.default .hljs-punctuation{color:#444a}.Highlighter.default .hljs-tag .hljs-name,.Highlighter.default .hljs-tag .hljs-attr{color:#444}.Highlighter.default .hljs-keyword,.Highlighter.default .hljs-attribute,.Highlighter.default .hljs-selector-tag,.Highlighter.default .hljs-meta .hljs-keyword,.Highlighter.default .hljs-doctag,.Highlighter.default .hljs-name{font-weight:700}.Highlighter.default .hljs-type,.Highlighter.default .hljs-string,.Highlighter.default .hljs-number,.Highlighter.default .hljs-selector-id,.Highlighter.default .hljs-selector-class,.Highlighter.default .hljs-quote,.Highlighter.default .hljs-template-tag,.Highlighter.default .hljs-deletion{color:#800}.Highlighter.default .hljs-title,.Highlighter.default .hljs-section{color:#800;font-weight:700}.Highlighter.default .hljs-regexp,.Highlighter.default .hljs-symbol,.Highlighter.default .hljs-variable,.Highlighter.default .hljs-template-variable,.Highlighter.default .hljs-link,.Highlighter.default .hljs-selector-attr,.Highlighter.default .hljs-operator,.Highlighter.default .hljs-selector-pseudo{color:#ab5656}.Highlighter.default .hljs-literal{color:#695}.Highlighter.default .hljs-built_in,.Highlighter.default .hljs-bullet,.Highlighter.default .hljs-code,.Highlighter.default .hljs-addition{color:#397300}.Highlighter.default .hljs-meta{color:#1f7199}.Highlighter.default .hljs-meta .hljs-string{color:#38a}.Highlighter.default .hljs-emphasis{font-style:italic}.Highlighter.default .hljs-strong{font-weight:700}.Highlighter.androidstudio pre code.hljs{display:block;overflow-x:auto;padding:1em}.Highlighter.androidstudio code.hljs{padding:3px 5px}.Highlighter.androidstudio .hljs{color:#a9b7c6;background:#282b2e}.Highlighter.androidstudio .hljs-number,.Highlighter.androidstudio .hljs-literal,.Highlighter.androidstudio .hljs-symbol,.Highlighter.androidstudio .hljs-bullet{color:#6897bb}.Highlighter.androidstudio .hljs-keyword,.Highlighter.androidstudio .hljs-selector-tag,.Highlighter.androidstudio .hljs-deletion{color:#cc7832}.Highlighter.androidstudio .hljs-variable,.Highlighter.androidstudio .hljs-template-variable,.Highlighter.androidstudio .hljs-link{color:#629755}.Highlighter.androidstudio .hljs-comment,.Highlighter.androidstudio .hljs-quote{color:gray}.Highlighter.androidstudio .hljs-meta{color:#bbb529}.Highlighter.androidstudio .hljs-string,.Highlighter.androidstudio .hljs-attribute,.Highlighter.androidstudio .hljs-addition{color:#6a8759}.Highlighter.androidstudio .hljs-section,.Highlighter.androidstudio .hljs-title,.Highlighter.androidstudio .hljs-type{color:#ffc66d}.Highlighter.androidstudio .hljs-name,.Highlighter.androidstudio .hljs-selector-id,.Highlighter.androidstudio .hljs-selector-class{color:#e8bf6a}.Highlighter.androidstudio .hljs-emphasis{font-style:italic}.Highlighter.androidstudio .hljs-strong{font-weight:700}.Highlighter.atom-one-dark-reasonable pre code.hljs{display:block;overflow-x:auto;padding:1em}.Highlighter.atom-one-dark-reasonable code.hljs{padding:3px 5px}.Highlighter.atom-one-dark-reasonable .hljs{color:#abb2bf;background:#282c34}.Highlighter.atom-one-dark-reasonable .hljs-keyword,.Highlighter.atom-one-dark-reasonable .hljs-operator,.Highlighter.atom-one-dark-reasonable .hljs-pattern-match{color:#f92672}.Highlighter.atom-one-dark-reasonable .hljs-pattern-match .hljs-constructor,.Highlighter.atom-one-dark-reasonable .hljs-function{color:#61aeee}.Highlighter.atom-one-dark-reasonable .hljs-function .hljs-params{color:#a6e22e}.Highlighter.atom-one-dark-reasonable .hljs-function .hljs-params .hljs-typing{color:#fd971f}.Highlighter.atom-one-dark-reasonable .hljs-module-access .hljs-module{color:#7e57c2}.Highlighter.atom-one-dark-reasonable .hljs-constructor{color:#e2b93d}.Highlighter.atom-one-dark-reasonable .hljs-constructor .hljs-string{color:#9ccc65}.Highlighter.atom-one-dark-reasonable .hljs-comment,.Highlighter.atom-one-dark-reasonable .hljs-quote{color:#b18eb1;font-style:italic}.Highlighter.atom-one-dark-reasonable .hljs-doctag,.Highlighter.atom-one-dark-reasonable .hljs-formula{color:#c678dd}.Highlighter.atom-one-dark-reasonable .hljs-section,.Highlighter.atom-one-dark-reasonable .hljs-name,.Highlighter.atom-one-dark-reasonable .hljs-selector-tag,.Highlighter.atom-one-dark-reasonable .hljs-deletion,.Highlighter.atom-one-dark-reasonable .hljs-subst{color:#e06c75}.Highlighter.atom-one-dark-reasonable .hljs-literal{color:#56b6c2}.Highlighter.atom-one-dark-reasonable .hljs-string,.Highlighter.atom-one-dark-reasonable .hljs-regexp,.Highlighter.atom-one-dark-reasonable .hljs-addition,.Highlighter.atom-one-dark-reasonable .hljs-attribute,.Highlighter.atom-one-dark-reasonable .hljs-meta .hljs-string{color:#98c379}.Highlighter.atom-one-dark-reasonable .hljs-built_in,.Highlighter.atom-one-dark-reasonable .hljs-title.class_,.Highlighter.atom-one-dark-reasonable .hljs-class .hljs-title{color:#e6c07b}.Highlighter.atom-one-dark-reasonable .hljs-attr,.Highlighter.atom-one-dark-reasonable .hljs-variable,.Highlighter.atom-one-dark-reasonable .hljs-template-variable,.Highlighter.atom-one-dark-reasonable .hljs-type,.Highlighter.atom-one-dark-reasonable .hljs-selector-class,.Highlighter.atom-one-dark-reasonable .hljs-selector-attr,.Highlighter.atom-one-dark-reasonable .hljs-selector-pseudo,.Highlighter.atom-one-dark-reasonable .hljs-number{color:#d19a66}.Highlighter.atom-one-dark-reasonable .hljs-symbol,.Highlighter.atom-one-dark-reasonable .hljs-bullet,.Highlighter.atom-one-dark-reasonable .hljs-link,.Highlighter.atom-one-dark-reasonable .hljs-meta,.Highlighter.atom-one-dark-reasonable .hljs-selector-id,.Highlighter.atom-one-dark-reasonable .hljs-title{color:#61aeee}.Highlighter.atom-one-dark-reasonable .hljs-emphasis{font-style:italic}.Highlighter.atom-one-dark-reasonable .hljs-strong{font-weight:700}.Highlighter.atom-one-dark-reasonable .hljs-link{text-decoration:underline}.Highlighter.atom-one-dark pre code.hljs{display:block;overflow-x:auto;padding:1em}.Highlighter.atom-one-dark code.hljs{padding:3px 5px}.Highlighter.atom-one-dark .hljs{color:#abb2bf;background:#282c34}.Highlighter.atom-one-dark .hljs-comment,.Highlighter.atom-one-dark .hljs-quote{color:#5c6370;font-style:italic}.Highlighter.atom-one-dark .hljs-doctag,.Highlighter.atom-one-dark .hljs-keyword,.Highlighter.atom-one-dark .hljs-formula{color:#c678dd}.Highlighter.atom-one-dark .hljs-section,.Highlighter.atom-one-dark .hljs-name,.Highlighter.atom-one-dark .hljs-selector-tag,.Highlighter.atom-one-dark .hljs-deletion,.Highlighter.atom-one-dark .hljs-subst{color:#e06c75}.Highlighter.atom-one-dark .hljs-literal{color:#56b6c2}.Highlighter.atom-one-dark .hljs-string,.Highlighter.atom-one-dark .hljs-regexp,.Highlighter.atom-one-dark .hljs-addition,.Highlighter.atom-one-dark .hljs-attribute,.Highlighter.atom-one-dark .hljs-meta .hljs-string{color:#98c379}.Highlighter.atom-one-dark .hljs-attr,.Highlighter.atom-one-dark .hljs-variable,.Highlighter.atom-one-dark .hljs-template-variable,.Highlighter.atom-one-dark .hljs-type,.Highlighter.atom-one-dark .hljs-selector-class,.Highlighter.atom-one-dark .hljs-selector-attr,.Highlighter.atom-one-dark .hljs-selector-pseudo,.Highlighter.atom-one-dark .hljs-number{color:#d19a66}.Highlighter.atom-one-dark .hljs-symbol,.Highlighter.atom-one-dark .hljs-bullet,.Highlighter.atom-one-dark .hljs-link,.Highlighter.atom-one-dark .hljs-meta,.Highlighter.atom-one-dark .hljs-selector-id,.Highlighter.atom-one-dark .hljs-title{color:#61aeee}.Highlighter.atom-one-dark .hljs-built_in,.Highlighter.atom-one-dark .hljs-title.class_,.Highlighter.atom-one-dark .hljs-class .hljs-title{color:#e6c07b}.Highlighter.atom-one-dark .hljs-emphasis{font-style:italic}.Highlighter.atom-one-dark .hljs-strong{font-weight:700}.Highlighter.atom-one-dark .hljs-link{text-decoration:underline}.Highlighter.atom-one-light pre code.hljs{display:block;overflow-x:auto;padding:1em}.Highlighter.atom-one-light code.hljs{padding:3px 5px}.Highlighter.atom-one-light .hljs{color:#383a42;background:#fafafa}.Highlighter.atom-one-light .hljs-comment,.Highlighter.atom-one-light .hljs-quote{color:#a0a1a7;font-style:italic}.Highlighter.atom-one-light .hljs-doctag,.Highlighter.atom-one-light .hljs-keyword,.Highlighter.atom-one-light .hljs-formula{color:#a626a4}.Highlighter.atom-one-light .hljs-section,.Highlighter.atom-one-light .hljs-name,.Highlighter.atom-one-light .hljs-selector-tag,.Highlighter.atom-one-light .hljs-deletion,.Highlighter.atom-one-light .hljs-subst{color:#e45649}.Highlighter.atom-one-light .hljs-literal{color:#0184bb}.Highlighter.atom-one-light .hljs-string,.Highlighter.atom-one-light .hljs-regexp,.Highlighter.atom-one-light .hljs-addition,.Highlighter.atom-one-light .hljs-attribute,.Highlighter.atom-one-light .hljs-meta .hljs-string{color:#50a14f}.Highlighter.atom-one-light .hljs-attr,.Highlighter.atom-one-light .hljs-variable,.Highlighter.atom-one-light .hljs-template-variable,.Highlighter.atom-one-light .hljs-type,.Highlighter.atom-one-light .hljs-selector-class,.Highlighter.atom-one-light .hljs-selector-attr,.Highlighter.atom-one-light .hljs-selector-pseudo,.Highlighter.atom-one-light .hljs-number{color:#986801}.Highlighter.atom-one-light .hljs-symbol,.Highlighter.atom-one-light .hljs-bullet,.Highlighter.atom-one-light .hljs-link,.Highlighter.atom-one-light .hljs-meta,.Highlighter.atom-one-light .hljs-selector-id,.Highlighter.atom-one-light .hljs-title{color:#4078f2}.Highlighter.atom-one-light .hljs-built_in,.Highlighter.atom-one-light .hljs-title.class_,.Highlighter.atom-one-light .hljs-class .hljs-title{color:#c18401}.Highlighter.atom-one-light .hljs-emphasis{font-style:italic}.Highlighter.atom-one-light .hljs-strong{font-weight:700}.Highlighter.atom-one-light .hljs-link{text-decoration:underline}.Highlighter.codepen-embed pre code.hljs{display:block;overflow-x:auto;padding:1em}.Highlighter.codepen-embed code.hljs{padding:3px 5px}.Highlighter.codepen-embed .hljs{background:#222;color:#fff}.Highlighter.codepen-embed .hljs-comment,.Highlighter.codepen-embed .hljs-quote{color:#777}.Highlighter.codepen-embed .hljs-variable,.Highlighter.codepen-embed .hljs-template-variable,.Highlighter.codepen-embed .hljs-tag,.Highlighter.codepen-embed .hljs-regexp,.Highlighter.codepen-embed .hljs-meta,.Highlighter.codepen-embed .hljs-number,.Highlighter.codepen-embed .hljs-built_in,.Highlighter.codepen-embed .hljs-literal,.Highlighter.codepen-embed .hljs-params,.Highlighter.codepen-embed .hljs-symbol,.Highlighter.codepen-embed .hljs-bullet,.Highlighter.codepen-embed .hljs-link,.Highlighter.codepen-embed .hljs-deletion{color:#ab875d}.Highlighter.codepen-embed .hljs-section,.Highlighter.codepen-embed .hljs-title,.Highlighter.codepen-embed .hljs-name,.Highlighter.codepen-embed .hljs-selector-id,.Highlighter.codepen-embed .hljs-selector-class,.Highlighter.codepen-embed .hljs-type,.Highlighter.codepen-embed .hljs-attribute{color:#9b869b}.Highlighter.codepen-embed .hljs-string,.Highlighter.codepen-embed .hljs-keyword,.Highlighter.codepen-embed .hljs-selector-tag,.Highlighter.codepen-embed .hljs-addition{color:#8f9c6c}.Highlighter.codepen-embed .hljs-emphasis{font-style:italic}.Highlighter.codepen-embed .hljs-strong{font-weight:700}.Highlighter.darcula pre code.hljs{display:block;overflow-x:auto;padding:1em}.Highlighter.darcula code.hljs{padding:3px 5px}.Highlighter.darcula .hljs{color:#a9b7c6;background:#2b2b2b}.Highlighter.darcula .hljs::selection,.Highlighter.darcula .hljs ::selection{background-color:#323232;color:#a9b7c6}.Highlighter.darcula .hljs-comment{color:#606366}.Highlighter.darcula .hljs-tag{color:#a4a3a3}.Highlighter.darcula .hljs-subst,.Highlighter.darcula .hljs-punctuation,.Highlighter.darcula .hljs-operator{color:#a9b7c6}.Highlighter.darcula .hljs-operator{opacity:.7}.Highlighter.darcula .hljs-bullet,.Highlighter.darcula .hljs-variable,.Highlighter.darcula .hljs-template-variable,.Highlighter.darcula .hljs-selector-tag,.Highlighter.darcula .hljs-name,.Highlighter.darcula .hljs-deletion{color:#4eade5}.Highlighter.darcula .hljs-symbol,.Highlighter.darcula .hljs-number,.Highlighter.darcula .hljs-link,.Highlighter.darcula .hljs-attr,.Highlighter.darcula .hljs-variable.constant_,.Highlighter.darcula .hljs-literal{color:#689757}.Highlighter.darcula .hljs-title,.Highlighter.darcula .hljs-class .hljs-title,.Highlighter.darcula .hljs-title.class_{color:#bbb529}.Highlighter.darcula .hljs-strong{font-weight:700;color:#bbb529}.Highlighter.darcula .hljs-code,.Highlighter.darcula .hljs-addition,.Highlighter.darcula .hljs-title.class_.inherited__,.Highlighter.darcula .hljs-string{color:#6a8759}.Highlighter.darcula .hljs-built_in,.Highlighter.darcula .hljs-doctag,.Highlighter.darcula .hljs-quote,.Highlighter.darcula .hljs-keyword.hljs-atrule,.Highlighter.darcula .hljs-regexp{color:#629755}.Highlighter.darcula .hljs-function .hljs-title,.Highlighter.darcula .hljs-attribute,.Highlighter.darcula .ruby .hljs-property,.Highlighter.darcula .hljs-title.function_,.Highlighter.darcula .hljs-section{color:#9876aa}.Highlighter.darcula .hljs-type,.Highlighter.darcula .hljs-template-tag,.Highlighter.darcula .diff .hljs-meta,.Highlighter.darcula .hljs-keyword{color:#cc7832}.Highlighter.darcula .hljs-emphasis{color:#cc7832;font-style:italic}.Highlighter.darcula .hljs-meta,.Highlighter.darcula .hljs-meta .hljs-keyword,.Highlighter.darcula .hljs-meta .hljs-string{color:gray}.Highlighter.darcula .hljs-meta .hljs-keyword,.Highlighter.darcula .hljs-meta-keyword{font-weight:700}.Highlighter.dark pre code.hljs{display:block;overflow-x:auto;padding:1em}.Highlighter.dark code.hljs{padding:3px 5px}.Highlighter.dark .hljs{color:#ddd;background:#303030}.Highlighter.dark .hljs-keyword,.Highlighter.dark .hljs-selector-tag,.Highlighter.dark .hljs-literal,.Highlighter.dark .hljs-section,.Highlighter.dark .hljs-link{color:#fff}.Highlighter.dark .hljs-string,.Highlighter.dark .hljs-title,.Highlighter.dark .hljs-name,.Highlighter.dark .hljs-type,.Highlighter.dark .hljs-attribute,.Highlighter.dark .hljs-symbol,.Highlighter.dark .hljs-bullet,.Highlighter.dark .hljs-built_in,.Highlighter.dark .hljs-addition,.Highlighter.dark .hljs-variable,.Highlighter.dark .hljs-template-tag,.Highlighter.dark .hljs-template-variable{color:#d88}.Highlighter.dark .hljs-comment,.Highlighter.dark .hljs-quote,.Highlighter.dark .hljs-deletion,.Highlighter.dark .hljs-meta{color:#979797}.Highlighter.dark .hljs-keyword,.Highlighter.dark .hljs-selector-tag,.Highlighter.dark .hljs-literal,.Highlighter.dark .hljs-title,.Highlighter.dark .hljs-section,.Highlighter.dark .hljs-doctag,.Highlighter.dark .hljs-type,.Highlighter.dark .hljs-name,.Highlighter.dark .hljs-strong{font-weight:700}.Highlighter.dark .hljs-emphasis{font-style:italic}.Highlighter.dracula pre code.hljs{display:block;overflow-x:auto;padding:1em}.Highlighter.dracula code.hljs{padding:3px 5px}.Highlighter.dracula .hljs{color:#e9e9f4;background:#282936}.Highlighter.dracula .hljs::selection,.Highlighter.dracula .hljs ::selection{background-color:#4d4f68;color:#e9e9f4}.Highlighter.dracula .hljs-comment{color:#626483}.Highlighter.dracula .hljs-tag{color:#62d6e8}.Highlighter.dracula .hljs-subst,.Highlighter.dracula .hljs-punctuation,.Highlighter.dracula .hljs-operator{color:#e9e9f4}.Highlighter.dracula .hljs-operator{opacity:.7}.Highlighter.dracula .hljs-bullet,.Highlighter.dracula .hljs-variable,.Highlighter.dracula .hljs-template-variable,.Highlighter.dracula .hljs-selector-tag,.Highlighter.dracula .hljs-name,.Highlighter.dracula .hljs-deletion{color:#ea51b2}.Highlighter.dracula .hljs-symbol,.Highlighter.dracula .hljs-number,.Highlighter.dracula .hljs-link,.Highlighter.dracula .hljs-attr,.Highlighter.dracula .hljs-variable.constant_,.Highlighter.dracula .hljs-literal{color:#b45bcf}.Highlighter.dracula .hljs-title,.Highlighter.dracula .hljs-class .hljs-title,.Highlighter.dracula .hljs-title.class_{color:#00f769}.Highlighter.dracula .hljs-strong{font-weight:700;color:#00f769}.Highlighter.dracula .hljs-code,.Highlighter.dracula .hljs-addition,.Highlighter.dracula .hljs-title.class_.inherited__,.Highlighter.dracula .hljs-string{color:#ebff87}.Highlighter.dracula .hljs-built_in,.Highlighter.dracula .hljs-doctag,.Highlighter.dracula .hljs-quote,.Highlighter.dracula .hljs-keyword.hljs-atrule,.Highlighter.dracula .hljs-regexp{color:#a1efe4}.Highlighter.dracula .hljs-function .hljs-title,.Highlighter.dracula .hljs-attribute,.Highlighter.dracula .ruby .hljs-property,.Highlighter.dracula .hljs-title.function_,.Highlighter.dracula .hljs-section{color:#62d6e8}.Highlighter.dracula .hljs-type,.Highlighter.dracula .hljs-template-tag,.Highlighter.dracula .diff .hljs-meta,.Highlighter.dracula .hljs-keyword{color:#b45bcf}.Highlighter.dracula .hljs-emphasis{color:#b45bcf;font-style:italic}.Highlighter.dracula .hljs-meta,.Highlighter.dracula .hljs-meta .hljs-keyword,.Highlighter.dracula .hljs-meta .hljs-string{color:#00f769}.Highlighter.dracula .hljs-meta .hljs-keyword,.Highlighter.dracula .hljs-meta-keyword{font-weight:700}.Highlighter.github-dark pre code.hljs{display:block;overflow-x:auto;padding:1em}.Highlighter.github-dark code.hljs{padding:3px 5px}.Highlighter.github-dark .hljs{color:#c9d1d9;background:#0d1117}.Highlighter.github-dark .hljs-doctag,.Highlighter.github-dark .hljs-keyword,.Highlighter.github-dark .hljs-meta .hljs-keyword,.Highlighter.github-dark .hljs-template-tag,.Highlighter.github-dark .hljs-template-variable,.Highlighter.github-dark .hljs-type,.Highlighter.github-dark .hljs-variable.language_{color:#ff7b72}.Highlighter.github-dark .hljs-title,.Highlighter.github-dark .hljs-title.class_,.Highlighter.github-dark .hljs-title.class_.inherited__,.Highlighter.github-dark .hljs-title.function_{color:#d2a8ff}.Highlighter.github-dark .hljs-attr,.Highlighter.github-dark .hljs-attribute,.Highlighter.github-dark .hljs-literal,.Highlighter.github-dark .hljs-meta,.Highlighter.github-dark .hljs-number,.Highlighter.github-dark .hljs-operator,.Highlighter.github-dark .hljs-variable,.Highlighter.github-dark .hljs-selector-attr,.Highlighter.github-dark .hljs-selector-class,.Highlighter.github-dark .hljs-selector-id{color:#79c0ff}.Highlighter.github-dark .hljs-regexp,.Highlighter.github-dark .hljs-string,.Highlighter.github-dark .hljs-meta .hljs-string{color:#a5d6ff}.Highlighter.github-dark .hljs-built_in,.Highlighter.github-dark .hljs-symbol{color:#ffa657}.Highlighter.github-dark .hljs-comment,.Highlighter.github-dark .hljs-code,.Highlighter.github-dark .hljs-formula{color:#8b949e}.Highlighter.github-dark .hljs-name,.Highlighter.github-dark .hljs-quote,.Highlighter.github-dark .hljs-selector-tag,.Highlighter.github-dark .hljs-selector-pseudo{color:#7ee787}.Highlighter.github-dark .hljs-subst{color:#c9d1d9}.Highlighter.github-dark .hljs-section{color:#1f6feb;font-weight:700}.Highlighter.github-dark .hljs-bullet{color:#f2cc60}.Highlighter.github-dark .hljs-emphasis{color:#c9d1d9;font-style:italic}.Highlighter.github-dark .hljs-strong{color:#c9d1d9;font-weight:700}.Highlighter.github-dark .hljs-addition{color:#aff5b4;background-color:#033a16}.Highlighter.github-dark .hljs-deletion{color:#ffdcd7;background-color:#67060c}.Highlighter.github pre code.hljs{display:block;overflow-x:auto;padding:1em}.Highlighter.github code.hljs{padding:3px 5px}.Highlighter.github .hljs{color:#24292e;background:#fff}.Highlighter.github .hljs-doctag,.Highlighter.github .hljs-keyword,.Highlighter.github .hljs-meta .hljs-keyword,.Highlighter.github .hljs-template-tag,.Highlighter.github .hljs-template-variable,.Highlighter.github .hljs-type,.Highlighter.github .hljs-variable.language_{color:#d73a49}.Highlighter.github .hljs-title,.Highlighter.github .hljs-title.class_,.Highlighter.github .hljs-title.class_.inherited__,.Highlighter.github .hljs-title.function_{color:#6f42c1}.Highlighter.github .hljs-attr,.Highlighter.github .hljs-attribute,.Highlighter.github .hljs-literal,.Highlighter.github .hljs-meta,.Highlighter.github .hljs-number,.Highlighter.github .hljs-operator,.Highlighter.github .hljs-variable,.Highlighter.github .hljs-selector-attr,.Highlighter.github .hljs-selector-class,.Highlighter.github .hljs-selector-id{color:#005cc5}.Highlighter.github .hljs-regexp,.Highlighter.github .hljs-string,.Highlighter.github .hljs-meta .hljs-string{color:#032f62}.Highlighter.github .hljs-built_in,.Highlighter.github .hljs-symbol{color:#e36209}.Highlighter.github .hljs-comment,.Highlighter.github .hljs-code,.Highlighter.github .hljs-formula{color:#6a737d}.Highlighter.github .hljs-name,.Highlighter.github .hljs-quote,.Highlighter.github .hljs-selector-tag,.Highlighter.github .hljs-selector-pseudo{color:#22863a}.Highlighter.github .hljs-subst{color:#24292e}.Highlighter.github .hljs-section{color:#005cc5;font-weight:700}.Highlighter.github .hljs-bullet{color:#735c0f}.Highlighter.github .hljs-emphasis{color:#24292e;font-style:italic}.Highlighter.github .hljs-strong{color:#24292e;font-weight:700}.Highlighter.github .hljs-addition{color:#22863a;background-color:#f0fff4}.Highlighter.github .hljs-deletion{color:#b31d28;background-color:#ffeef0}.Highlighter.googlecode pre code.hljs{display:block;overflow-x:auto;padding:1em}.Highlighter.googlecode code.hljs{padding:3px 5px}.Highlighter.googlecode .hljs{background:#fff;color:#000}.Highlighter.googlecode .hljs-comment,.Highlighter.googlecode .hljs-quote{color:#800}.Highlighter.googlecode .hljs-keyword,.Highlighter.googlecode .hljs-selector-tag,.Highlighter.googlecode .hljs-section,.Highlighter.googlecode .hljs-title,.Highlighter.googlecode .hljs-name{color:#008}.Highlighter.googlecode .hljs-variable,.Highlighter.googlecode .hljs-template-variable{color:#660}.Highlighter.googlecode .hljs-string,.Highlighter.googlecode .hljs-selector-attr,.Highlighter.googlecode .hljs-selector-pseudo,.Highlighter.googlecode .hljs-regexp{color:#080}.Highlighter.googlecode .hljs-literal,.Highlighter.googlecode .hljs-symbol,.Highlighter.googlecode .hljs-bullet,.Highlighter.googlecode .hljs-meta,.Highlighter.googlecode .hljs-number,.Highlighter.googlecode .hljs-link{color:#066}.Highlighter.googlecode .hljs-title,.Highlighter.googlecode .hljs-doctag,.Highlighter.googlecode .hljs-type,.Highlighter.googlecode .hljs-attr,.Highlighter.googlecode .hljs-built_in,.Highlighter.googlecode .hljs-params{color:#606}.Highlighter.googlecode .hljs-attribute,.Highlighter.googlecode .hljs-subst{color:#000}.Highlighter.googlecode .hljs-formula{background-color:#eee;font-style:italic}.Highlighter.googlecode .hljs-selector-id,.Highlighter.googlecode .hljs-selector-class{color:#9b703f}.Highlighter.googlecode .hljs-addition{background-color:#baeeba}.Highlighter.googlecode .hljs-deletion{background-color:#ffc8bd}.Highlighter.googlecode .hljs-doctag,.Highlighter.googlecode .hljs-strong{font-weight:700}.Highlighter.googlecode .hljs-emphasis{font-style:italic}.Highlighter.idea pre code.hljs{display:block;overflow-x:auto;padding:1em}.Highlighter.idea code.hljs{padding:3px 5px}.Highlighter.idea .hljs{color:#000;background:#fff}.Highlighter.idea .hljs-subst,.Highlighter.idea .hljs-title{font-weight:400;color:#000}.Highlighter.idea .hljs-comment,.Highlighter.idea .hljs-quote{color:gray;font-style:italic}.Highlighter.idea .hljs-meta{color:olive}.Highlighter.idea .hljs-tag{background:#efefef}.Highlighter.idea .hljs-section,.Highlighter.idea .hljs-name,.Highlighter.idea .hljs-literal,.Highlighter.idea .hljs-keyword,.Highlighter.idea .hljs-selector-tag,.Highlighter.idea .hljs-type,.Highlighter.idea .hljs-selector-id,.Highlighter.idea .hljs-selector-class{font-weight:700;color:navy}.Highlighter.idea .hljs-attribute,.Highlighter.idea .hljs-number,.Highlighter.idea .hljs-regexp,.Highlighter.idea .hljs-link{font-weight:700;color:#00f}.Highlighter.idea .hljs-number,.Highlighter.idea .hljs-regexp,.Highlighter.idea .hljs-link{font-weight:400}.Highlighter.idea .hljs-string{color:green;font-weight:700}.Highlighter.idea .hljs-symbol,.Highlighter.idea .hljs-bullet,.Highlighter.idea .hljs-formula{color:#000;background:#d0eded;font-style:italic}.Highlighter.idea .hljs-doctag{text-decoration:underline}.Highlighter.idea .hljs-variable,.Highlighter.idea .hljs-template-variable{color:#660e7a}.Highlighter.idea .hljs-addition{background:#baeeba}.Highlighter.idea .hljs-deletion{background:#ffc8bd}.Highlighter.idea .hljs-emphasis{font-style:italic}.Highlighter.idea .hljs-strong{font-weight:700}.Highlighter.mono-blue pre code.hljs{display:block;overflow-x:auto;padding:1em}.Highlighter.mono-blue code.hljs{padding:3px 5px}.Highlighter.mono-blue .hljs{background:#eaeef3;color:#00193a}.Highlighter.mono-blue .hljs-keyword,.Highlighter.mono-blue .hljs-selector-tag,.Highlighter.mono-blue .hljs-title,.Highlighter.mono-blue .hljs-section,.Highlighter.mono-blue .hljs-doctag,.Highlighter.mono-blue .hljs-name,.Highlighter.mono-blue .hljs-strong{font-weight:700}.Highlighter.mono-blue .hljs-comment{color:#738191}.Highlighter.mono-blue .hljs-string,.Highlighter.mono-blue .hljs-title,.Highlighter.mono-blue .hljs-section,.Highlighter.mono-blue .hljs-built_in,.Highlighter.mono-blue .hljs-literal,.Highlighter.mono-blue .hljs-type,.Highlighter.mono-blue .hljs-addition,.Highlighter.mono-blue .hljs-tag,.Highlighter.mono-blue .hljs-quote,.Highlighter.mono-blue .hljs-name,.Highlighter.mono-blue .hljs-selector-id,.Highlighter.mono-blue .hljs-selector-class{color:#0048ab}.Highlighter.mono-blue .hljs-meta,.Highlighter.mono-blue .hljs-subst,.Highlighter.mono-blue .hljs-symbol,.Highlighter.mono-blue .hljs-regexp,.Highlighter.mono-blue .hljs-attribute,.Highlighter.mono-blue .hljs-deletion,.Highlighter.mono-blue .hljs-variable,.Highlighter.mono-blue .hljs-template-variable,.Highlighter.mono-blue .hljs-link,.Highlighter.mono-blue .hljs-bullet{color:#4c81c9}.Highlighter.mono-blue .hljs-emphasis{font-style:italic}.Highlighter.nord pre code.hljs{display:block;overflow-x:auto;padding:1em}.Highlighter.nord code.hljs{padding:3px 5px}.Highlighter.nord .hljs{background:#2e3440}.Highlighter.nord .hljs,.Highlighter.nord .hljs-subst{color:#d8dee9}.Highlighter.nord .hljs-selector-tag{color:#81a1c1}.Highlighter.nord .hljs-selector-id{color:#8fbcbb;font-weight:700}.Highlighter.nord .hljs-selector-class,.Highlighter.nord .hljs-selector-attr{color:#8fbcbb}.Highlighter.nord .hljs-property,.Highlighter.nord .hljs-selector-pseudo{color:#88c0d0}.Highlighter.nord .hljs-addition{background-color:#a3be8c80}.Highlighter.nord .hljs-deletion{background-color:#bf616a80}.Highlighter.nord .hljs-built_in,.Highlighter.nord .hljs-type,.Highlighter.nord .hljs-class{color:#8fbcbb}.Highlighter.nord .hljs-function{color:#88c0d0}.Highlighter.nord .hljs-title.hljs-function,.Highlighter.nord .hljs-function>.hljs-title{color:#88c0d0}.Highlighter.nord .hljs-keyword,.Highlighter.nord .hljs-literal,.Highlighter.nord .hljs-symbol{color:#81a1c1}.Highlighter.nord .hljs-number{color:#b48ead}.Highlighter.nord .hljs-regexp{color:#ebcb8b}.Highlighter.nord .hljs-string{color:#a3be8c}.Highlighter.nord .hljs-title{color:#8fbcbb}.Highlighter.nord .hljs-params{color:#d8dee9}.Highlighter.nord .hljs-bullet{color:#81a1c1}.Highlighter.nord .hljs-code{color:#8fbcbb}.Highlighter.nord .hljs-emphasis{font-style:italic}.Highlighter.nord .hljs-formula{color:#8fbcbb}.Highlighter.nord .hljs-strong{font-weight:700}.Highlighter.nord .hljs-link:hover{text-decoration:underline}.Highlighter.nord .hljs-quote,.Highlighter.nord .hljs-comment{color:#4c566a}.Highlighter.nord .hljs-doctag{color:#8fbcbb}.Highlighter.nord .hljs-meta,.Highlighter.nord .hljs-meta .hljs-keyword{color:#5e81ac}.Highlighter.nord .hljs-meta .hljs-string{color:#a3be8c}.Highlighter.nord .hljs-attr{color:#8fbcbb}.Highlighter.nord .hljs-attribute{color:#d8dee9}.Highlighter.nord .hljs-name{color:#81a1c1}.Highlighter.nord .hljs-section{color:#88c0d0}.Highlighter.nord .hljs-tag{color:#81a1c1}.Highlighter.nord .hljs-variable,.Highlighter.nord .hljs-template-variable{color:#d8dee9}.Highlighter.nord .hljs-template-tag{color:#5e81ac}.Highlighter.nord .language-abnf .hljs-attribute{color:#88c0d0}.Highlighter.nord .language-abnf .hljs-symbol{color:#ebcb8b}.Highlighter.nord .language-apache .hljs-attribute{color:#88c0d0}.Highlighter.nord .language-apache .hljs-section{color:#81a1c1}.Highlighter.nord .language-arduino .hljs-built_in{color:#88c0d0}.Highlighter.nord .language-aspectj .hljs-meta{color:#d08770}.Highlighter.nord .language-aspectj>.hljs-title{color:#88c0d0}.Highlighter.nord .language-bnf .hljs-attribute{color:#8fbcbb}.Highlighter.nord .language-clojure .hljs-name{color:#88c0d0}.Highlighter.nord .language-clojure .hljs-symbol{color:#ebcb8b}.Highlighter.nord .language-coq .hljs-built_in{color:#88c0d0}.Highlighter.nord .language-cpp .hljs-meta .hljs-string{color:#8fbcbb}.Highlighter.nord .language-css .hljs-built_in{color:#88c0d0}.Highlighter.nord .language-css .hljs-keyword{color:#d08770}.Highlighter.nord .language-diff .hljs-meta,.Highlighter.nord .language-ebnf .hljs-attribute{color:#8fbcbb}.Highlighter.nord .language-glsl .hljs-built_in{color:#88c0d0}.Highlighter.nord .language-groovy .hljs-meta:not(:first-child){color:#d08770}.Highlighter.nord .language-haxe .hljs-meta,.Highlighter.nord .language-java .hljs-meta{color:#d08770}.Highlighter.nord .language-ldif .hljs-attribute{color:#8fbcbb}.Highlighter.nord .language-lisp .hljs-name,.Highlighter.nord .language-lua .hljs-built_in,.Highlighter.nord .language-moonscript .hljs-built_in,.Highlighter.nord .language-nginx .hljs-attribute{color:#88c0d0}.Highlighter.nord .language-nginx .hljs-section{color:#5e81ac}.Highlighter.nord .language-pf .hljs-built_in,.Highlighter.nord .language-processing .hljs-built_in{color:#88c0d0}.Highlighter.nord .language-scss .hljs-keyword,.Highlighter.nord .language-stylus .hljs-keyword{color:#81a1c1}.Highlighter.nord .language-swift .hljs-meta{color:#d08770}.Highlighter.nord .language-vim .hljs-built_in{color:#88c0d0;font-style:italic}.Highlighter.nord .language-yaml .hljs-meta{color:#d08770}.Highlighter.obsidian pre code.hljs{display:block;overflow-x:auto;padding:1em}.Highlighter.obsidian code.hljs{padding:3px 5px}.Highlighter.obsidian .hljs{color:#e0e2e4;background:#282b2e}.Highlighter.obsidian .hljs-keyword,.Highlighter.obsidian .hljs-selector-tag,.Highlighter.obsidian .hljs-literal,.Highlighter.obsidian .hljs-selector-id{color:#93c763}.Highlighter.obsidian .hljs-number{color:#ffcd22}.Highlighter.obsidian .hljs-attribute{color:#668bb0}.Highlighter.obsidian .hljs-regexp,.Highlighter.obsidian .hljs-link{color:#d39745}.Highlighter.obsidian .hljs-meta{color:#557182}.Highlighter.obsidian .hljs-tag,.Highlighter.obsidian .hljs-name,.Highlighter.obsidian .hljs-bullet,.Highlighter.obsidian .hljs-subst,.Highlighter.obsidian .hljs-emphasis,.Highlighter.obsidian .hljs-type,.Highlighter.obsidian .hljs-built_in,.Highlighter.obsidian .hljs-selector-attr,.Highlighter.obsidian .hljs-selector-pseudo,.Highlighter.obsidian .hljs-addition,.Highlighter.obsidian .hljs-variable,.Highlighter.obsidian .hljs-template-tag,.Highlighter.obsidian .hljs-template-variable{color:#8cbbad}.Highlighter.obsidian .hljs-string,.Highlighter.obsidian .hljs-symbol{color:#ec7600}.Highlighter.obsidian .hljs-comment,.Highlighter.obsidian .hljs-quote,.Highlighter.obsidian .hljs-deletion{color:#818e96}.Highlighter.obsidian .hljs-selector-class{color:#a082bd}.Highlighter.obsidian .hljs-keyword,.Highlighter.obsidian .hljs-selector-tag,.Highlighter.obsidian .hljs-literal,.Highlighter.obsidian .hljs-doctag,.Highlighter.obsidian .hljs-title,.Highlighter.obsidian .hljs-section,.Highlighter.obsidian .hljs-type,.Highlighter.obsidian .hljs-name,.Highlighter.obsidian .hljs-strong{font-weight:700}.Highlighter.obsidian .hljs-code,.Highlighter.obsidian .hljs-title.class_,.Highlighter.obsidian .hljs-class .hljs-title,.Highlighter.obsidian .hljs-section{color:#fff}.Highlighter.ocean pre code.hljs{display:block;overflow-x:auto;padding:1em}.Highlighter.ocean code.hljs{padding:3px 5px}.Highlighter.ocean .hljs{color:#c0c5ce;background:#2b303b}.Highlighter.ocean .hljs::selection,.Highlighter.ocean .hljs ::selection{background-color:#4f5b66;color:#c0c5ce}.Highlighter.ocean .hljs-comment{color:#65737e}.Highlighter.ocean .hljs-tag{color:#a7adba}.Highlighter.ocean .hljs-subst,.Highlighter.ocean .hljs-punctuation,.Highlighter.ocean .hljs-operator{color:#c0c5ce}.Highlighter.ocean .hljs-operator{opacity:.7}.Highlighter.ocean .hljs-bullet,.Highlighter.ocean .hljs-variable,.Highlighter.ocean .hljs-template-variable,.Highlighter.ocean .hljs-selector-tag,.Highlighter.ocean .hljs-name,.Highlighter.ocean .hljs-deletion{color:#bf616a}.Highlighter.ocean .hljs-symbol,.Highlighter.ocean .hljs-number,.Highlighter.ocean .hljs-link,.Highlighter.ocean .hljs-attr,.Highlighter.ocean .hljs-variable.constant_,.Highlighter.ocean .hljs-literal{color:#d08770}.Highlighter.ocean .hljs-title,.Highlighter.ocean .hljs-class .hljs-title,.Highlighter.ocean .hljs-title.class_{color:#ebcb8b}.Highlighter.ocean .hljs-strong{font-weight:700;color:#ebcb8b}.Highlighter.ocean .hljs-code,.Highlighter.ocean .hljs-addition,.Highlighter.ocean .hljs-title.class_.inherited__,.Highlighter.ocean .hljs-string{color:#a3be8c}.Highlighter.ocean .hljs-built_in,.Highlighter.ocean .hljs-doctag,.Highlighter.ocean .hljs-quote,.Highlighter.ocean .hljs-keyword.hljs-atrule,.Highlighter.ocean .hljs-regexp{color:#96b5b4}.Highlighter.ocean .hljs-function .hljs-title,.Highlighter.ocean .hljs-attribute,.Highlighter.ocean .ruby .hljs-property,.Highlighter.ocean .hljs-title.function_,.Highlighter.ocean .hljs-section{color:#8fa1b3}.Highlighter.ocean .hljs-type,.Highlighter.ocean .hljs-template-tag,.Highlighter.ocean .diff .hljs-meta,.Highlighter.ocean .hljs-keyword{color:#b48ead}.Highlighter.ocean .hljs-emphasis{color:#b48ead;font-style:italic}.Highlighter.ocean .hljs-meta,.Highlighter.ocean .hljs-meta .hljs-keyword,.Highlighter.ocean .hljs-meta .hljs-string{color:#ab7967}.Highlighter.ocean .hljs-meta .hljs-keyword,.Highlighter.ocean .hljs-meta-keyword{font-weight:700}.Highlighter.rainbow pre code.hljs{display:block;overflow-x:auto;padding:1em}.Highlighter.rainbow code.hljs{padding:3px 5px}.Highlighter.rainbow .hljs{background:#474949;color:#d1d9e1}.Highlighter.rainbow .hljs-comment,.Highlighter.rainbow .hljs-quote{color:#969896;font-style:italic}.Highlighter.rainbow .hljs-keyword,.Highlighter.rainbow .hljs-selector-tag,.Highlighter.rainbow .hljs-literal,.Highlighter.rainbow .hljs-type,.Highlighter.rainbow .hljs-addition{color:#c9c}.Highlighter.rainbow .hljs-number,.Highlighter.rainbow .hljs-selector-attr,.Highlighter.rainbow .hljs-selector-pseudo{color:#f99157}.Highlighter.rainbow .hljs-string,.Highlighter.rainbow .hljs-doctag,.Highlighter.rainbow .hljs-regexp{color:#8abeb7}.Highlighter.rainbow .hljs-title,.Highlighter.rainbow .hljs-name,.Highlighter.rainbow .hljs-section,.Highlighter.rainbow .hljs-built_in{color:#b5bd68}.Highlighter.rainbow .hljs-variable,.Highlighter.rainbow .hljs-template-variable,.Highlighter.rainbow .hljs-selector-id,.Highlighter.rainbow .hljs-title.class_,.Highlighter.rainbow .hljs-class .hljs-title{color:#fc6}.Highlighter.rainbow .hljs-section,.Highlighter.rainbow .hljs-name,.Highlighter.rainbow .hljs-strong{font-weight:700}.Highlighter.rainbow .hljs-symbol,.Highlighter.rainbow .hljs-bullet,.Highlighter.rainbow .hljs-subst,.Highlighter.rainbow .hljs-meta,.Highlighter.rainbow .hljs-link{color:#f99157}.Highlighter.rainbow .hljs-deletion{color:#dc322f}.Highlighter.rainbow .hljs-formula{background:#eee8d5}.Highlighter.rainbow .hljs-attr,.Highlighter.rainbow .hljs-attribute{color:#81a2be}.Highlighter.rainbow .hljs-emphasis{font-style:italic}.Highlighter.stackoverflow-dark pre code.hljs{display:block;overflow-x:auto;padding:1em}.Highlighter.stackoverflow-dark code.hljs{padding:3px 5px}.Highlighter.stackoverflow-dark .hljs{color:#fff;background:#1c1b1b}.Highlighter.stackoverflow-dark .hljs-subst{color:#fff}.Highlighter.stackoverflow-dark .hljs-comment{color:#999}.Highlighter.stackoverflow-dark .hljs-keyword,.Highlighter.stackoverflow-dark .hljs-selector-tag,.Highlighter.stackoverflow-dark .hljs-meta .hljs-keyword,.Highlighter.stackoverflow-dark .hljs-doctag,.Highlighter.stackoverflow-dark .hljs-section,.Highlighter.stackoverflow-dark .hljs-attr{color:#88aece}.Highlighter.stackoverflow-dark .hljs-attribute{color:#c59bc1}.Highlighter.stackoverflow-dark .hljs-name,.Highlighter.stackoverflow-dark .hljs-type,.Highlighter.stackoverflow-dark .hljs-number,.Highlighter.stackoverflow-dark .hljs-selector-id,.Highlighter.stackoverflow-dark .hljs-quote,.Highlighter.stackoverflow-dark .hljs-template-tag{color:#f08d49}.Highlighter.stackoverflow-dark .hljs-selector-class{color:#88aece}.Highlighter.stackoverflow-dark .hljs-string,.Highlighter.stackoverflow-dark .hljs-regexp,.Highlighter.stackoverflow-dark .hljs-symbol,.Highlighter.stackoverflow-dark .hljs-variable,.Highlighter.stackoverflow-dark .hljs-template-variable,.Highlighter.stackoverflow-dark .hljs-link,.Highlighter.stackoverflow-dark .hljs-selector-attr{color:#b5bd68}.Highlighter.stackoverflow-dark .hljs-meta,.Highlighter.stackoverflow-dark .hljs-selector-pseudo{color:#88aece}.Highlighter.stackoverflow-dark .hljs-built_in,.Highlighter.stackoverflow-dark .hljs-title,.Highlighter.stackoverflow-dark .hljs-literal{color:#f08d49}.Highlighter.stackoverflow-dark .hljs-bullet,.Highlighter.stackoverflow-dark .hljs-code{color:#ccc}.Highlighter.stackoverflow-dark .hljs-meta .hljs-string{color:#b5bd68}.Highlighter.stackoverflow-dark .hljs-deletion{color:#de7176}.Highlighter.stackoverflow-dark .hljs-addition{color:#76c490}.Highlighter.stackoverflow-dark .hljs-emphasis{font-style:italic}.Highlighter.stackoverflow-dark .hljs-strong{font-weight:700}.Highlighter.stackoverflow-light pre code.hljs{display:block;overflow-x:auto;padding:1em}.Highlighter.stackoverflow-light code.hljs{padding:3px 5px}.Highlighter.stackoverflow-light .hljs{color:#2f3337;background:#f6f6f6}.Highlighter.stackoverflow-light .hljs-subst{color:#2f3337}.Highlighter.stackoverflow-light .hljs-comment{color:#656e77}.Highlighter.stackoverflow-light .hljs-keyword,.Highlighter.stackoverflow-light .hljs-selector-tag,.Highlighter.stackoverflow-light .hljs-meta .hljs-keyword,.Highlighter.stackoverflow-light .hljs-doctag,.Highlighter.stackoverflow-light .hljs-section,.Highlighter.stackoverflow-light .hljs-attr{color:#015692}.Highlighter.stackoverflow-light .hljs-attribute{color:#803378}.Highlighter.stackoverflow-light .hljs-name,.Highlighter.stackoverflow-light .hljs-type,.Highlighter.stackoverflow-light .hljs-number,.Highlighter.stackoverflow-light .hljs-selector-id,.Highlighter.stackoverflow-light .hljs-quote,.Highlighter.stackoverflow-light .hljs-template-tag{color:#b75501}.Highlighter.stackoverflow-light .hljs-selector-class{color:#015692}.Highlighter.stackoverflow-light .hljs-string,.Highlighter.stackoverflow-light .hljs-regexp,.Highlighter.stackoverflow-light .hljs-symbol,.Highlighter.stackoverflow-light .hljs-variable,.Highlighter.stackoverflow-light .hljs-template-variable,.Highlighter.stackoverflow-light .hljs-link,.Highlighter.stackoverflow-light .hljs-selector-attr{color:#54790d}.Highlighter.stackoverflow-light .hljs-meta,.Highlighter.stackoverflow-light .hljs-selector-pseudo{color:#015692}.Highlighter.stackoverflow-light .hljs-built_in,.Highlighter.stackoverflow-light .hljs-title,.Highlighter.stackoverflow-light .hljs-literal{color:#b75501}.Highlighter.stackoverflow-light .hljs-bullet,.Highlighter.stackoverflow-light .hljs-code{color:#535a60}.Highlighter.stackoverflow-light .hljs-meta .hljs-string{color:#54790d}.Highlighter.stackoverflow-light .hljs-deletion{color:#c02d2e}.Highlighter.stackoverflow-light .hljs-addition{color:#2f6f44}.Highlighter.stackoverflow-light .hljs-emphasis{font-style:italic}.Highlighter.stackoverflow-light .hljs-strong{font-weight:700}.Highlighter.vs pre code.hljs{display:block;overflow-x:auto;padding:1em}.Highlighter.vs code.hljs{padding:3px 5px}.Highlighter.vs .hljs{background:#fff;color:#000}.Highlighter.vs .hljs-comment,.Highlighter.vs .hljs-quote,.Highlighter.vs .hljs-variable{color:green}.Highlighter.vs .hljs-keyword,.Highlighter.vs .hljs-selector-tag,.Highlighter.vs .hljs-built_in,.Highlighter.vs .hljs-name,.Highlighter.vs .hljs-tag{color:#00f}.Highlighter.vs .hljs-string,.Highlighter.vs .hljs-title,.Highlighter.vs .hljs-section,.Highlighter.vs .hljs-attribute,.Highlighter.vs .hljs-literal,.Highlighter.vs .hljs-template-tag,.Highlighter.vs .hljs-template-variable,.Highlighter.vs .hljs-type,.Highlighter.vs .hljs-addition{color:#a31515}.Highlighter.vs .hljs-deletion,.Highlighter.vs .hljs-selector-attr,.Highlighter.vs .hljs-selector-pseudo,.Highlighter.vs .hljs-meta{color:#2b91af}.Highlighter.vs .hljs-doctag{color:gray}.Highlighter.vs .hljs-attr{color:red}.Highlighter.vs .hljs-symbol,.Highlighter.vs .hljs-bullet,.Highlighter.vs .hljs-link{color:#00b0e8}.Highlighter.vs .hljs-emphasis{font-style:italic}.Highlighter.vs .hljs-strong{font-weight:700}.Highlighter.vs2015 pre code.hljs{display:block;overflow-x:auto;padding:1em}.Highlighter.vs2015 code.hljs{padding:3px 5px}.Highlighter.vs2015 .hljs{background:#1e1e1e;color:#dcdcdc}.Highlighter.vs2015 .hljs-keyword,.Highlighter.vs2015 .hljs-literal,.Highlighter.vs2015 .hljs-symbol,.Highlighter.vs2015 .hljs-name{color:#569cd6}.Highlighter.vs2015 .hljs-link{color:#569cd6;text-decoration:underline}.Highlighter.vs2015 .hljs-built_in,.Highlighter.vs2015 .hljs-type{color:#4ec9b0}.Highlighter.vs2015 .hljs-number,.Highlighter.vs2015 .hljs-class{color:#b8d7a3}.Highlighter.vs2015 .hljs-string,.Highlighter.vs2015 .hljs-meta .hljs-string{color:#d69d85}.Highlighter.vs2015 .hljs-regexp,.Highlighter.vs2015 .hljs-template-tag{color:#9a5334}.Highlighter.vs2015 .hljs-subst,.Highlighter.vs2015 .hljs-function,.Highlighter.vs2015 .hljs-title,.Highlighter.vs2015 .hljs-params,.Highlighter.vs2015 .hljs-formula{color:#dcdcdc}.Highlighter.vs2015 .hljs-comment,.Highlighter.vs2015 .hljs-quote{color:#57a64a;font-style:italic}.Highlighter.vs2015 .hljs-doctag{color:#608b4e}.Highlighter.vs2015 .hljs-meta,.Highlighter.vs2015 .hljs-meta .hljs-keyword,.Highlighter.vs2015 .hljs-tag{color:#9b9b9b}.Highlighter.vs2015 .hljs-variable,.Highlighter.vs2015 .hljs-template-variable{color:#bd63c5}.Highlighter.vs2015 .hljs-attr,.Highlighter.vs2015 .hljs-attribute{color:#9cdcfe}.Highlighter.vs2015 .hljs-section{color:gold}.Highlighter.vs2015 .hljs-emphasis{font-style:italic}.Highlighter.vs2015 .hljs-strong{font-weight:700}.Highlighter.vs2015 .hljs-bullet,.Highlighter.vs2015 .hljs-selector-tag,.Highlighter.vs2015 .hljs-selector-id,.Highlighter.vs2015 .hljs-selector-class,.Highlighter.vs2015 .hljs-selector-attr,.Highlighter.vs2015 .hljs-selector-pseudo{color:#d7ba7d}.Highlighter.vs2015 .hljs-addition{background-color:#144212;display:inline-block;width:100%}.Highlighter.vs2015 .hljs-deletion{background-color:#600;display:inline-block;width:100%}.Highlighter.xcode pre code.hljs{display:block;overflow-x:auto;padding:1em}.Highlighter.xcode code.hljs{padding:3px 5px}.Highlighter.xcode .hljs{background:#fff;color:#000}.Highlighter.xcode .xml .hljs-meta{color:silver}.Highlighter.xcode .hljs-comment,.Highlighter.xcode .hljs-quote{color:#007400}.Highlighter.xcode .hljs-tag,.Highlighter.xcode .hljs-attribute,.Highlighter.xcode .hljs-keyword,.Highlighter.xcode .hljs-selector-tag,.Highlighter.xcode .hljs-literal,.Highlighter.xcode .hljs-name{color:#aa0d91}.Highlighter.xcode .hljs-variable,.Highlighter.xcode .hljs-template-variable{color:#3f6e74}.Highlighter.xcode .hljs-code,.Highlighter.xcode .hljs-string,.Highlighter.xcode .hljs-meta .hljs-string{color:#c41a16}.Highlighter.xcode .hljs-regexp,.Highlighter.xcode .hljs-link{color:#0e0eff}.Highlighter.xcode .hljs-title,.Highlighter.xcode .hljs-symbol,.Highlighter.xcode .hljs-bullet,.Highlighter.xcode .hljs-number{color:#1c00cf}.Highlighter.xcode .hljs-section,.Highlighter.xcode .hljs-meta{color:#643820}.Highlighter.xcode .hljs-title.class_,.Highlighter.xcode .hljs-class .hljs-title,.Highlighter.xcode .hljs-type,.Highlig