diff --git a/dist/node-unrar-js.js.map b/dist/node-unrar-js.js.map index 11b2ce6..dfb55b2 100644 --- a/dist/node-unrar-js.js.map +++ b/dist/node-unrar-js.js.map @@ -1 +1 @@ -{"version":3,"file":"node-unrar-js.js","sources":["../node_modules/node-unrar-js/esm/js/ExtractorData.helper.js","../node_modules/node-unrar-js/esm/js/Extractor.js","../node_modules/node-unrar-js/esm/js/ExtractorData.js","../node_modules/node-unrar-js/esm/js/unrar.js","../node_modules/node-unrar-js/esm/js/unrar.singleton.js","../node_modules/node-unrar-js/esm/index.esm.js"],"sourcesContent":["export class DataFile {\n constructor(data) {\n this.buffers = [];\n this.pos = 0;\n this.size = 0;\n if (data) {\n this.buffers.push(data);\n this.size = data.byteLength;\n this.pos = 0;\n }\n }\n read(size) {\n this.flatten();\n if (size + this.pos > this.size) {\n // size = this.size - this.pos;\n return null;\n }\n const oldPos = this.pos;\n this.pos += size;\n // return this.buffers[0].subarray(oldPos, this.pos);\n return this.buffers[0].slice(oldPos, this.pos);\n }\n readAll() {\n this.flatten();\n return this.buffers[0] || new Uint8Array();\n }\n write(data) {\n this.buffers.push(data);\n this.size += data.byteLength;\n this.pos += data.byteLength;\n return true;\n }\n tell() {\n return this.pos;\n }\n seek(pos, method) {\n let newPos = this.pos;\n if (method === 'SET') {\n newPos = pos;\n }\n else if (method === 'CUR') {\n newPos += pos;\n }\n else {\n newPos = this.size - pos;\n }\n if (newPos < 0 || newPos > this.size) {\n return false;\n }\n this.pos = newPos;\n return true;\n }\n flatten() {\n if (this.buffers.length <= 1) {\n return;\n }\n const newBuffer = new Uint8Array(this.size);\n let offset = 0;\n for (const buffer of this.buffers) {\n newBuffer.set(buffer, offset);\n offset += buffer.byteLength;\n }\n this.buffers = [newBuffer];\n }\n}\n//# sourceMappingURL=ExtractorData.helper.js.map","const ERROR_CODE = {\n 0: 'ERAR_SUCCESS',\n 10: 'ERAR_END_ARCHIVE',\n 11: 'ERAR_NO_MEMORY',\n 12: 'ERAR_BAD_DATA',\n 13: 'ERAR_BAD_ARCHIVE',\n 14: 'ERAR_UNKNOWN_FORMAT',\n 15: 'ERAR_EOPEN',\n 16: 'ERAR_ECREATE',\n 17: 'ERAR_ECLOSE',\n 18: 'ERAR_EREAD',\n 19: 'ERAR_EWRITE',\n 20: 'ERAR_SMALL_BUF',\n 21: 'ERAR_UNKNOWN',\n 22: 'ERAR_MISSING_PASSWORD',\n 23: 'ERAR_EREFERENCE',\n 24: 'ERAR_BAD_PASSWORD',\n};\nconst ERROR_MSG = {\n ERAR_NO_MEMORY: 'Not enough memory',\n ERAR_BAD_DATA: 'Archive header or data are damaged',\n ERAR_BAD_ARCHIVE: 'File is not RAR archive',\n ERAR_UNKNOWN_FORMAT: 'Unknown archive format',\n ERAR_EOPEN: 'File open error',\n ERAR_ECREATE: 'File create error',\n ERAR_ECLOSE: 'File close error',\n ERAR_EREAD: 'File read error',\n ERAR_EWRITE: 'File write error',\n ERAR_SMALL_BUF: 'Buffer for archive comment is too small, comment truncated',\n ERAR_UNKNOWN: 'Unknown error',\n ERAR_MISSING_PASSWORD: 'Password for encrypted file or header is not specified',\n ERAR_EREFERENCE: 'Cannot open file source for reference record',\n ERAR_BAD_PASSWORD: 'Wrong password is specified',\n};\nexport class UnrarError extends Error {\n constructor(reason, message, file) {\n super(message);\n this.reason = reason;\n this.file = file;\n }\n}\nexport class Extractor {\n // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n constructor(unrar, password = '') {\n this.unrar = unrar;\n this._password = password;\n this._archive = null;\n }\n getFileList() {\n const arcHeader = this.openArc(true);\n function* getFileHeaders() {\n while (true) {\n const arcFile = this.processNextFile(() => true);\n if (arcFile === 'ERAR_END_ARCHIVE') {\n break;\n }\n yield arcFile.fileHeader;\n }\n this.closeArc();\n }\n return { arcHeader, fileHeaders: getFileHeaders.call(this) };\n }\n extract({ files, password } = {}) {\n const arcHeader = this.openArc(false, password);\n function* getFiles() {\n let count = 0;\n while (true) {\n let shouldSkip = () => false;\n if (Array.isArray(files)) {\n if (count === files.length) {\n break;\n }\n shouldSkip = ({ name }) => !files.includes(name);\n }\n else if (files) {\n shouldSkip = (fileHeader) => !files(fileHeader);\n }\n const arcFile = this.processNextFile(shouldSkip);\n if (arcFile === 'ERAR_END_ARCHIVE') {\n break;\n }\n if (arcFile.extraction === 'skipped') {\n continue;\n }\n count++;\n yield {\n fileHeader: arcFile.fileHeader,\n };\n }\n this.closeArc();\n }\n return { arcHeader, files: getFiles.call(this) };\n }\n fileCreated(filename) {\n return;\n }\n close(fd) {\n this.closeFile(fd);\n }\n openArc(listOnly, password) {\n this._archive = new this.unrar.RarArchive();\n const header = this._archive.open(this._filePath, password ? password : this._password, listOnly);\n if (header.state.errCode !== 0) {\n throw this.getFailException(header.state.errCode, header.state.errType);\n }\n return {\n comment: header.comment,\n flags: {\n volume: (header.flags & 0x0001) !== 0,\n lock: (header.flags & 0x0004) !== 0,\n solid: (header.flags & 0x0008) !== 0,\n authInfo: (header.flags & 0x0020) !== 0,\n recoveryRecord: (header.flags & 0x0040) !== 0,\n headerEncrypted: (header.flags & 0x0080) !== 0,\n },\n };\n }\n processNextFile(shouldSkip) {\n function getDateString(dosTime) {\n const bitLen = [5, 6, 5, 5, 4, 7];\n let parts = [];\n for (const len of bitLen) {\n parts.push(dosTime & ((1 << len) - 1));\n dosTime >>= len;\n }\n parts = parts.reverse();\n const pad = (num) => (num < 10 ? '0' + num : '' + num);\n return (`${1980 + parts[0]}-${pad(parts[1])}-${pad(parts[2])}` +\n `T${pad(parts[3])}:${pad(parts[4])}:${pad(parts[5] * 2)}.000`);\n }\n function getMethod(method) {\n const methodMap = {\n 0x30: 'Storing',\n 0x31: 'Fastest',\n 0x32: 'Fast',\n 0x33: 'Normal',\n 0x34: 'Good',\n 0x35: 'Best',\n };\n return methodMap[method] || 'Unknown';\n }\n const arcFileHeader = this._archive.getFileHeader();\n if (arcFileHeader.state.errCode === 10) {\n return 'ERAR_END_ARCHIVE';\n }\n if (arcFileHeader.state.errCode !== 0) {\n throw this.getFailException(arcFileHeader.state.errCode, arcFileHeader.state.errType);\n }\n const fileHeader = {\n name: arcFileHeader.name,\n flags: {\n encrypted: (arcFileHeader.flags & 0x04) !== 0,\n solid: (arcFileHeader.flags & 0x10) !== 0,\n directory: (arcFileHeader.flags & 0x20) !== 0,\n },\n packSize: arcFileHeader.packSize,\n unpSize: arcFileHeader.unpSize,\n // hostOS: arcFileHeader.hostOS\n crc: arcFileHeader.crc,\n time: getDateString(arcFileHeader.time),\n unpVer: `${Math.floor(arcFileHeader.unpVer / 10)}.${arcFileHeader.unpVer % 10}`,\n method: getMethod(arcFileHeader.method),\n comment: arcFileHeader.comment,\n // // fileAttr: arcFileHeader.fileAttr,\n };\n const skip = shouldSkip(fileHeader);\n const fileState = this._archive.readFile(skip);\n if (fileState.errCode !== 0) {\n throw this.getFailException(fileState.errCode, fileState.errType, fileHeader.name);\n }\n return {\n fileHeader,\n extraction: skip ? 'skipped' : 'extracted',\n };\n }\n closeArc() {\n this._archive.delete();\n this._archive = null;\n }\n getFailException(errCode, _errType, file) {\n const reason = ERROR_CODE[errCode];\n this.closeArc();\n return new UnrarError(reason, ERROR_MSG[reason], file);\n }\n}\n//# sourceMappingURL=Extractor.js.map","import { DataFile } from './ExtractorData.helper';\nimport { Extractor } from './Extractor';\nexport class ExtractorData extends Extractor {\n // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types,@typescript-eslint/no-explicit-any\n constructor(unrar, data, password) {\n super(unrar, password);\n this.dataFiles = {};\n this.dataFileMap = {};\n this.currentFd = 1;\n const rarFile = {\n file: new DataFile(new Uint8Array(data)),\n fd: this.currentFd++,\n };\n this._filePath = '_defaultUnrarJS_.rar';\n this.dataFiles[this._filePath] = rarFile;\n this.dataFileMap[rarFile.fd] = this._filePath;\n }\n extract(options = {}) {\n const { arcHeader, files } = super.extract(options);\n function* getFiles() {\n for (const file of files) {\n if (!file.fileHeader.flags.directory) {\n file.extraction =\n this.dataFiles[this.getExtractedFileName(file.fileHeader.name)].file.readAll();\n }\n yield file;\n }\n }\n return { arcHeader, files: getFiles.call(this) };\n }\n getExtractedFileName(filename) {\n return `*Extracted*/${filename}`;\n }\n open(filename) {\n const dataFile = this.dataFiles[filename];\n if (!dataFile) {\n return 0;\n }\n return dataFile.fd;\n }\n create(filename) {\n const fd = this.currentFd++;\n this.dataFiles[this.getExtractedFileName(filename)] = {\n file: new DataFile(),\n fd: this.currentFd++,\n };\n this.dataFileMap[fd] = this.getExtractedFileName(filename);\n return fd;\n }\n closeFile(fd) {\n const fileData = this.dataFiles[this.dataFileMap[fd]];\n if (!fileData) {\n return;\n }\n fileData.file.seek(0, 'SET');\n }\n read(fd, buf, size) {\n const fileData = this.dataFiles[this.dataFileMap[fd]];\n if (!fileData) {\n return -1;\n }\n const data = fileData.file.read(size);\n if (data === null) {\n return -1;\n }\n this.unrar.HEAPU8.set(data, buf);\n return data.byteLength;\n }\n write(fd, buf, size) {\n const fileData = this.dataFiles[this.dataFileMap[fd]];\n if (!fileData) {\n return false;\n }\n fileData.file.write(this.unrar.HEAPU8.slice(buf, buf + size));\n return true;\n }\n tell(fd) {\n const fileData = this.dataFiles[this.dataFileMap[fd]];\n if (!fileData) {\n return -1;\n }\n return fileData.file.tell();\n }\n seek(fd, pos, method) {\n const fileData = this.dataFiles[this.dataFileMap[fd]];\n if (!fileData) {\n return false;\n }\n return fileData.file.seek(pos, method);\n }\n}\n//# sourceMappingURL=ExtractorData.js.map","\nvar Module = (() => {\n var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;\n \n return (\nfunction(Module) {\n Module = Module || {};\n\nvar Module=typeof Module!=\"undefined\"?Module:{};var readyPromiseResolve,readyPromiseReject;Module[\"ready\"]=new Promise(function(resolve,reject){readyPromiseResolve=resolve;readyPromiseReject=reject});var moduleOverrides=Object.assign({},Module);var arguments_=[];var thisProgram=\"./this.program\";var quit_=(status,toThrow)=>{throw toThrow};var ENVIRONMENT_IS_WEB=typeof window==\"object\";var ENVIRONMENT_IS_WORKER=typeof importScripts==\"function\";var ENVIRONMENT_IS_NODE=typeof process==\"object\"&&typeof process.versions==\"object\"&&typeof process.versions.node==\"string\";var scriptDirectory=\"\";function locateFile(path){if(Module[\"locateFile\"]){return Module[\"locateFile\"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!=\"undefined\"&&document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf(\"blob:\")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,\"\").lastIndexOf(\"/\")+1)}else{scriptDirectory=\"\"}{read_=url=>{var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=url=>{var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.responseType=\"arraybuffer\";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=(url,onload,onerror)=>{var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,true);xhr.responseType=\"arraybuffer\";xhr.onload=()=>{if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=title=>document.title=title}else{}var out=Module[\"print\"]||console.log.bind(console);var err=Module[\"printErr\"]||console.warn.bind(console);Object.assign(Module,moduleOverrides);moduleOverrides=null;if(Module[\"arguments\"])arguments_=Module[\"arguments\"];if(Module[\"thisProgram\"])thisProgram=Module[\"thisProgram\"];if(Module[\"quit\"])quit_=Module[\"quit\"];var tempRet0=0;var setTempRet0=value=>{tempRet0=value};var getTempRet0=()=>tempRet0;var wasmBinary;if(Module[\"wasmBinary\"])wasmBinary=Module[\"wasmBinary\"];var noExitRuntime=Module[\"noExitRuntime\"]||true;if(typeof WebAssembly!=\"object\"){abort(\"no native wasm support detected\")}var wasmMemory;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort(text)}}var UTF8Decoder=typeof TextDecoder!=\"undefined\"?new TextDecoder(\"utf8\"):undefined;function UTF8ArrayToString(heapOrArray,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var endPtr=idx;while(heapOrArray[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&heapOrArray.buffer&&UTF8Decoder){return UTF8Decoder.decode(heapOrArray.subarray(idx,endPtr))}else{var str=\"\";while(idx>10,56320|ch&1023)}}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):\"\"}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}var UTF16Decoder=typeof TextDecoder!=\"undefined\"?new TextDecoder(\"utf-16le\"):undefined;function UTF16ToString(ptr,maxBytesToRead){var endPtr=ptr;var idx=endPtr>>1;var maxIdx=idx+maxBytesToRead/2;while(!(idx>=maxIdx)&&HEAPU16[idx])++idx;endPtr=idx<<1;if(endPtr-ptr>32&&UTF16Decoder){return UTF16Decoder.decode(HEAPU8.subarray(ptr,endPtr))}else{var str=\"\";for(var i=0;!(i>=maxBytesToRead/2);++i){var codeUnit=HEAP16[ptr+i*2>>1];if(codeUnit==0)break;str+=String.fromCharCode(codeUnit)}return str}}function stringToUTF16(str,outPtr,maxBytesToWrite){if(maxBytesToWrite===undefined){maxBytesToWrite=2147483647}if(maxBytesToWrite<2)return 0;maxBytesToWrite-=2;var startPtr=outPtr;var numCharsToWrite=maxBytesToWrite>1]=codeUnit;outPtr+=2}HEAP16[outPtr>>1]=0;return outPtr-startPtr}function lengthBytesUTF16(str){return str.length*2}function UTF32ToString(ptr,maxBytesToRead){var i=0;var str=\"\";while(!(i>=maxBytesToRead/4)){var utf32=HEAP32[ptr+i*4>>2];if(utf32==0)break;++i;if(utf32>=65536){var ch=utf32-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}else{str+=String.fromCharCode(utf32)}}return str}function stringToUTF32(str,outPtr,maxBytesToWrite){if(maxBytesToWrite===undefined){maxBytesToWrite=2147483647}if(maxBytesToWrite<4)return 0;var startPtr=outPtr;var endPtr=startPtr+maxBytesToWrite-4;for(var i=0;i=55296&&codeUnit<=57343){var trailSurrogate=str.charCodeAt(++i);codeUnit=65536+((codeUnit&1023)<<10)|trailSurrogate&1023}HEAP32[outPtr>>2]=codeUnit;outPtr+=4;if(outPtr+4>endPtr)break}HEAP32[outPtr>>2]=0;return outPtr-startPtr}function lengthBytesUTF32(str){var len=0;for(var i=0;i=55296&&codeUnit<=57343)++i;len+=4}return len}function allocateUTF8(str){var size=lengthBytesUTF8(str)+1;var ret=_malloc(size);if(ret)stringToUTF8Array(str,HEAP8,ret,size);return ret}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module[\"HEAP8\"]=HEAP8=new Int8Array(buf);Module[\"HEAP16\"]=HEAP16=new Int16Array(buf);Module[\"HEAP32\"]=HEAP32=new Int32Array(buf);Module[\"HEAPU8\"]=HEAPU8=new Uint8Array(buf);Module[\"HEAPU16\"]=HEAPU16=new Uint16Array(buf);Module[\"HEAPU32\"]=HEAPU32=new Uint32Array(buf);Module[\"HEAPF32\"]=HEAPF32=new Float32Array(buf);Module[\"HEAPF64\"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module[\"INITIAL_MEMORY\"]||16777216;var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;function preRun(){if(Module[\"preRun\"]){if(typeof Module[\"preRun\"]==\"function\")Module[\"preRun\"]=[Module[\"preRun\"]];while(Module[\"preRun\"].length){addOnPreRun(Module[\"preRun\"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function postRun(){if(Module[\"postRun\"]){if(typeof Module[\"postRun\"]==\"function\")Module[\"postRun\"]=[Module[\"postRun\"]];while(Module[\"postRun\"].length){addOnPostRun(Module[\"postRun\"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){runDependencies++;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}function abort(what){{if(Module[\"onAbort\"]){Module[\"onAbort\"](what)}}what=\"Aborted(\"+what+\")\";err(what);ABORT=true;EXITSTATUS=1;what+=\". Build with -sASSERTIONS for more info.\";var e=new WebAssembly.RuntimeError(what);readyPromiseReject(e);throw e}var dataURIPrefix=\"data:application/octet-stream;base64,\";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith(\"file://\")}var wasmBinaryFile;wasmBinaryFile=\"unrar.wasm\";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw\"both async and sync fetching of the wasm failed\"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch==\"function\"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){if(!response[\"ok\"]){throw\"failed to load wasm binary file at '\"+wasmBinaryFile+\"'\"}return response[\"arrayBuffer\"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={\"a\":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module[\"asm\"]=exports;wasmMemory=Module[\"asm\"][\"ka\"];updateGlobalBufferAndViews(wasmMemory.buffer);wasmTable=Module[\"asm\"][\"oa\"];addOnInit(Module[\"asm\"][\"la\"]);removeRunDependency(\"wasm-instantiate\")}addRunDependency(\"wasm-instantiate\");function receiveInstantiationResult(result){receiveInstance(result[\"instance\"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(function(instance){return instance}).then(receiver,function(reason){err(\"failed to asynchronously prepare wasm: \"+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==\"function\"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch==\"function\"){return fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err(\"wasm streaming compile failed: \"+reason);err(\"falling back to ArrayBuffer instantiation\");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module[\"instantiateWasm\"]){try{var exports=Module[\"instantiateWasm\"](info,receiveInstance);return exports}catch(e){err(\"Module.instantiateWasm callback failed with error: \"+e);return false}}instantiateAsync().catch(readyPromiseReject);return{}}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback==\"function\"){callback(Module);continue}var func=callback.func;if(typeof func==\"number\"){if(callback.arg===undefined){getWasmTableEntry(func)()}else{getWasmTableEntry(func)(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var wasmTableMirror=[];function getWasmTableEntry(funcPtr){var func=wasmTableMirror[funcPtr];if(!func){if(funcPtr>=wasmTableMirror.length)wasmTableMirror.length=funcPtr+1;wasmTableMirror[funcPtr]=func=wasmTable.get(funcPtr)}return func}function ___cxa_allocate_exception(size){return _malloc(size+24)+24}var exceptionCaught=[];function exception_addRef(info){info.add_ref()}var uncaughtExceptionCount=0;function ___cxa_begin_catch(ptr){var info=new ExceptionInfo(ptr);if(!info.get_caught()){info.set_caught(true);uncaughtExceptionCount--}info.set_rethrown(false);exceptionCaught.push(info);exception_addRef(info);return info.get_exception_ptr()}var exceptionLast=0;function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-24;this.set_type=function(type){HEAPU32[this.ptr+4>>2]=type};this.get_type=function(){return HEAPU32[this.ptr+4>>2]};this.set_destructor=function(destructor){HEAPU32[this.ptr+8>>2]=destructor};this.get_destructor=function(){return HEAPU32[this.ptr+8>>2]};this.set_refcount=function(refcount){HEAP32[this.ptr>>2]=refcount};this.set_caught=function(caught){caught=caught?1:0;HEAP8[this.ptr+12>>0]=caught};this.get_caught=function(){return HEAP8[this.ptr+12>>0]!=0};this.set_rethrown=function(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+13>>0]=rethrown};this.get_rethrown=function(){return HEAP8[this.ptr+13>>0]!=0};this.init=function(type,destructor){this.set_adjusted_ptr(0);this.set_type(type);this.set_destructor(destructor);this.set_refcount(0);this.set_caught(false);this.set_rethrown(false)};this.add_ref=function(){var value=HEAP32[this.ptr>>2];HEAP32[this.ptr>>2]=value+1};this.release_ref=function(){var prev=HEAP32[this.ptr>>2];HEAP32[this.ptr>>2]=prev-1;return prev===1};this.set_adjusted_ptr=function(adjustedPtr){HEAPU32[this.ptr+16>>2]=adjustedPtr};this.get_adjusted_ptr=function(){return HEAPU32[this.ptr+16>>2]};this.get_exception_ptr=function(){var isPointer=___cxa_is_pointer_type(this.get_type());if(isPointer){return HEAPU32[this.excPtr>>2]}var adjusted=this.get_adjusted_ptr();if(adjusted!==0)return adjusted;return this.excPtr}}function ___cxa_free_exception(ptr){return _free(new ExceptionInfo(ptr).ptr)}function exception_decRef(info){if(info.release_ref()&&!info.get_rethrown()){var destructor=info.get_destructor();if(destructor){getWasmTableEntry(destructor)(info.excPtr)}___cxa_free_exception(info.excPtr)}}function ___cxa_end_catch(){_setThrew(0);var info=exceptionCaught.pop();exception_decRef(info);exceptionLast=0}function ___resumeException(ptr){if(!exceptionLast){exceptionLast=ptr}throw ptr}function ___cxa_find_matching_catch_2(){var thrown=exceptionLast;if(!thrown){setTempRet0(0);return 0}var info=new ExceptionInfo(thrown);info.set_adjusted_ptr(thrown);var thrownType=info.get_type();if(!thrownType){setTempRet0(0);return thrown}var typeArray=Array.prototype.slice.call(arguments);for(var i=0;i>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret}};function ___syscall_fchownat(dirfd,path,owner,group,flags){}function ___syscall_symlink(target,linkpath){}var structRegistrations={};function runDestructors(destructors){while(destructors.length){var ptr=destructors.pop();var del=destructors.pop();del(ptr)}}function simpleReadValueFromPointer(pointer){return this[\"fromWireType\"](HEAPU32[pointer>>2])}var awaitingDependencies={};var registeredTypes={};var typeDependencies={};var char_0=48;var char_9=57;function makeLegalFunctionName(name){if(undefined===name){return\"_unknown\"}name=name.replace(/[^a-zA-Z0-9_]/g,\"$\");var f=name.charCodeAt(0);if(f>=char_0&&f<=char_9){return\"_\"+name}return name}function createNamedFunction(name,body){name=makeLegalFunctionName(name);return new Function(\"body\",\"return function \"+name+\"() {\\n\"+' \"use strict\";'+\" return body.apply(this, arguments);\\n\"+\"};\\n\")(body)}function extendError(baseErrorType,errorName){var errorClass=createNamedFunction(errorName,function(message){this.name=errorName;this.message=message;var stack=new Error(message).stack;if(stack!==undefined){this.stack=this.toString()+\"\\n\"+stack.replace(/^Error(:[^\\n]*)?\\n/,\"\")}});errorClass.prototype=Object.create(baseErrorType.prototype);errorClass.prototype.constructor=errorClass;errorClass.prototype.toString=function(){if(this.message===undefined){return this.name}else{return this.name+\": \"+this.message}};return errorClass}var InternalError=undefined;function throwInternalError(message){throw new InternalError(message)}function whenDependentTypesAreResolved(myTypes,dependentTypes,getTypeConverters){myTypes.forEach(function(type){typeDependencies[type]=dependentTypes});function onComplete(typeConverters){var myTypeConverters=getTypeConverters(typeConverters);if(myTypeConverters.length!==myTypes.length){throwInternalError(\"Mismatched type converter count\")}for(var i=0;i{if(registeredTypes.hasOwnProperty(dt)){typeConverters[i]=registeredTypes[dt]}else{unregisteredTypes.push(dt);if(!awaitingDependencies.hasOwnProperty(dt)){awaitingDependencies[dt]=[]}awaitingDependencies[dt].push(()=>{typeConverters[i]=registeredTypes[dt];++registered;if(registered===unregisteredTypes.length){onComplete(typeConverters)}})}});if(0===unregisteredTypes.length){onComplete(typeConverters)}}function __embind_finalize_value_object(structType){var reg=structRegistrations[structType];delete structRegistrations[structType];var rawConstructor=reg.rawConstructor;var rawDestructor=reg.rawDestructor;var fieldRecords=reg.fields;var fieldTypes=fieldRecords.map(field=>field.getterReturnType).concat(fieldRecords.map(field=>field.setterArgumentType));whenDependentTypesAreResolved([structType],fieldTypes,fieldTypes=>{var fields={};fieldRecords.forEach((field,i)=>{var fieldName=field.fieldName;var getterReturnType=fieldTypes[i];var getter=field.getter;var getterContext=field.getterContext;var setterArgumentType=fieldTypes[i+fieldRecords.length];var setter=field.setter;var setterContext=field.setterContext;fields[fieldName]={read:ptr=>{return getterReturnType[\"fromWireType\"](getter(getterContext,ptr))},write:(ptr,o)=>{var destructors=[];setter(setterContext,ptr,setterArgumentType[\"toWireType\"](destructors,o));runDestructors(destructors)}}});return[{name:reg.name,\"fromWireType\":function(ptr){var rv={};for(var i in fields){rv[i]=fields[i].read(ptr)}rawDestructor(ptr);return rv},\"toWireType\":function(destructors,o){for(var fieldName in fields){if(!(fieldName in o)){throw new TypeError('Missing field: \"'+fieldName+'\"')}}var ptr=rawConstructor();for(fieldName in fields){fields[fieldName].write(ptr,o[fieldName])}if(destructors!==null){destructors.push(rawDestructor,ptr)}return ptr},\"argPackAdvance\":8,\"readValueFromPointer\":simpleReadValueFromPointer,destructorFunction:rawDestructor}]})}function __embind_register_bigint(primitiveType,name,size,minRange,maxRange){}function getShiftFromSize(size){switch(size){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError(\"Unknown type size: \"+size)}}function embind_init_charCodes(){var codes=new Array(256);for(var i=0;i<256;++i){codes[i]=String.fromCharCode(i)}embind_charCodes=codes}var embind_charCodes=undefined;function readLatin1String(ptr){var ret=\"\";var c=ptr;while(HEAPU8[c]){ret+=embind_charCodes[HEAPU8[c++]]}return ret}var BindingError=undefined;function throwBindingError(message){throw new BindingError(message)}function registerType(rawType,registeredInstance,options={}){if(!(\"argPackAdvance\"in registeredInstance)){throw new TypeError(\"registerType registeredInstance requires argPackAdvance\")}var name=registeredInstance.name;if(!rawType){throwBindingError('type \"'+name+'\" must have a positive integer typeid pointer')}if(registeredTypes.hasOwnProperty(rawType)){if(options.ignoreDuplicateRegistrations){return}else{throwBindingError(\"Cannot register type '\"+name+\"' twice\")}}registeredTypes[rawType]=registeredInstance;delete typeDependencies[rawType];if(awaitingDependencies.hasOwnProperty(rawType)){var callbacks=awaitingDependencies[rawType];delete awaitingDependencies[rawType];callbacks.forEach(cb=>cb())}}function __embind_register_bool(rawType,name,size,trueValue,falseValue){var shift=getShiftFromSize(size);name=readLatin1String(name);registerType(rawType,{name:name,\"fromWireType\":function(wt){return!!wt},\"toWireType\":function(destructors,o){return o?trueValue:falseValue},\"argPackAdvance\":8,\"readValueFromPointer\":function(pointer){var heap;if(size===1){heap=HEAP8}else if(size===2){heap=HEAP16}else if(size===4){heap=HEAP32}else{throw new TypeError(\"Unknown boolean type size: \"+name)}return this[\"fromWireType\"](heap[pointer>>shift])},destructorFunction:null})}function ClassHandle_isAliasOf(other){if(!(this instanceof ClassHandle)){return false}if(!(other instanceof ClassHandle)){return false}var leftClass=this.$$.ptrType.registeredClass;var left=this.$$.ptr;var rightClass=other.$$.ptrType.registeredClass;var right=other.$$.ptr;while(leftClass.baseClass){left=leftClass.upcast(left);leftClass=leftClass.baseClass}while(rightClass.baseClass){right=rightClass.upcast(right);rightClass=rightClass.baseClass}return leftClass===rightClass&&left===right}function shallowCopyInternalPointer(o){return{count:o.count,deleteScheduled:o.deleteScheduled,preservePointerOnDelete:o.preservePointerOnDelete,ptr:o.ptr,ptrType:o.ptrType,smartPtr:o.smartPtr,smartPtrType:o.smartPtrType}}function throwInstanceAlreadyDeleted(obj){function getInstanceTypeName(handle){return handle.$$.ptrType.registeredClass.name}throwBindingError(getInstanceTypeName(obj)+\" instance already deleted\")}var finalizationRegistry=false;function detachFinalizer(handle){}function runDestructor($$){if($$.smartPtr){$$.smartPtrType.rawDestructor($$.smartPtr)}else{$$.ptrType.registeredClass.rawDestructor($$.ptr)}}function releaseClassHandle($$){$$.count.value-=1;var toDelete=0===$$.count.value;if(toDelete){runDestructor($$)}}function downcastPointer(ptr,ptrClass,desiredClass){if(ptrClass===desiredClass){return ptr}if(undefined===desiredClass.baseClass){return null}var rv=downcastPointer(ptr,ptrClass,desiredClass.baseClass);if(rv===null){return null}return desiredClass.downcast(rv)}var registeredPointers={};function getInheritedInstanceCount(){return Object.keys(registeredInstances).length}function getLiveInheritedInstances(){var rv=[];for(var k in registeredInstances){if(registeredInstances.hasOwnProperty(k)){rv.push(registeredInstances[k])}}return rv}var deletionQueue=[];function flushPendingDeletes(){while(deletionQueue.length){var obj=deletionQueue.pop();obj.$$.deleteScheduled=false;obj[\"delete\"]()}}var delayFunction=undefined;function setDelayFunction(fn){delayFunction=fn;if(deletionQueue.length&&delayFunction){delayFunction(flushPendingDeletes)}}function init_embind(){Module[\"getInheritedInstanceCount\"]=getInheritedInstanceCount;Module[\"getLiveInheritedInstances\"]=getLiveInheritedInstances;Module[\"flushPendingDeletes\"]=flushPendingDeletes;Module[\"setDelayFunction\"]=setDelayFunction}var registeredInstances={};function getBasestPointer(class_,ptr){if(ptr===undefined){throwBindingError(\"ptr should not be undefined\")}while(class_.baseClass){ptr=class_.upcast(ptr);class_=class_.baseClass}return ptr}function getInheritedInstance(class_,ptr){ptr=getBasestPointer(class_,ptr);return registeredInstances[ptr]}function makeClassHandle(prototype,record){if(!record.ptrType||!record.ptr){throwInternalError(\"makeClassHandle requires ptr and ptrType\")}var hasSmartPtrType=!!record.smartPtrType;var hasSmartPtr=!!record.smartPtr;if(hasSmartPtrType!==hasSmartPtr){throwInternalError(\"Both smartPtrType and smartPtr must be specified\")}record.count={value:1};return attachFinalizer(Object.create(prototype,{$$:{value:record}}))}function RegisteredPointer_fromWireType(ptr){var rawPointer=this.getPointee(ptr);if(!rawPointer){this.destructor(ptr);return null}var registeredInstance=getInheritedInstance(this.registeredClass,rawPointer);if(undefined!==registeredInstance){if(0===registeredInstance.$$.count.value){registeredInstance.$$.ptr=rawPointer;registeredInstance.$$.smartPtr=ptr;return registeredInstance[\"clone\"]()}else{var rv=registeredInstance[\"clone\"]();this.destructor(ptr);return rv}}function makeDefaultHandle(){if(this.isSmartPointer){return makeClassHandle(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:rawPointer,smartPtrType:this,smartPtr:ptr})}else{return makeClassHandle(this.registeredClass.instancePrototype,{ptrType:this,ptr:ptr})}}var actualType=this.registeredClass.getActualType(rawPointer);var registeredPointerRecord=registeredPointers[actualType];if(!registeredPointerRecord){return makeDefaultHandle.call(this)}var toType;if(this.isConst){toType=registeredPointerRecord.constPointerType}else{toType=registeredPointerRecord.pointerType}var dp=downcastPointer(rawPointer,this.registeredClass,toType.registeredClass);if(dp===null){return makeDefaultHandle.call(this)}if(this.isSmartPointer){return makeClassHandle(toType.registeredClass.instancePrototype,{ptrType:toType,ptr:dp,smartPtrType:this,smartPtr:ptr})}else{return makeClassHandle(toType.registeredClass.instancePrototype,{ptrType:toType,ptr:dp})}}function attachFinalizer(handle){if(\"undefined\"===typeof FinalizationRegistry){attachFinalizer=handle=>handle;return handle}finalizationRegistry=new FinalizationRegistry(info=>{releaseClassHandle(info.$$)});attachFinalizer=handle=>{var $$=handle.$$;var hasSmartPtr=!!$$.smartPtr;if(hasSmartPtr){var info={$$:$$};finalizationRegistry.register(handle,info,handle)}return handle};detachFinalizer=handle=>finalizationRegistry.unregister(handle);return attachFinalizer(handle)}function ClassHandle_clone(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this)}if(this.$$.preservePointerOnDelete){this.$$.count.value+=1;return this}else{var clone=attachFinalizer(Object.create(Object.getPrototypeOf(this),{$$:{value:shallowCopyInternalPointer(this.$$)}}));clone.$$.count.value+=1;clone.$$.deleteScheduled=false;return clone}}function ClassHandle_delete(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this)}if(this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete){throwBindingError(\"Object already scheduled for deletion\")}detachFinalizer(this);releaseClassHandle(this.$$);if(!this.$$.preservePointerOnDelete){this.$$.smartPtr=undefined;this.$$.ptr=undefined}}function ClassHandle_isDeleted(){return!this.$$.ptr}function ClassHandle_deleteLater(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this)}if(this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete){throwBindingError(\"Object already scheduled for deletion\")}deletionQueue.push(this);if(deletionQueue.length===1&&delayFunction){delayFunction(flushPendingDeletes)}this.$$.deleteScheduled=true;return this}function init_ClassHandle(){ClassHandle.prototype[\"isAliasOf\"]=ClassHandle_isAliasOf;ClassHandle.prototype[\"clone\"]=ClassHandle_clone;ClassHandle.prototype[\"delete\"]=ClassHandle_delete;ClassHandle.prototype[\"isDeleted\"]=ClassHandle_isDeleted;ClassHandle.prototype[\"deleteLater\"]=ClassHandle_deleteLater}function ClassHandle(){}function ensureOverloadTable(proto,methodName,humanName){if(undefined===proto[methodName].overloadTable){var prevFunc=proto[methodName];proto[methodName]=function(){if(!proto[methodName].overloadTable.hasOwnProperty(arguments.length)){throwBindingError(\"Function '\"+humanName+\"' called with an invalid number of arguments (\"+arguments.length+\") - expects one of (\"+proto[methodName].overloadTable+\")!\")}return proto[methodName].overloadTable[arguments.length].apply(this,arguments)};proto[methodName].overloadTable=[];proto[methodName].overloadTable[prevFunc.argCount]=prevFunc}}function exposePublicSymbol(name,value,numArguments){if(Module.hasOwnProperty(name)){if(undefined===numArguments||undefined!==Module[name].overloadTable&&undefined!==Module[name].overloadTable[numArguments]){throwBindingError(\"Cannot register public name '\"+name+\"' twice\")}ensureOverloadTable(Module,name,name);if(Module.hasOwnProperty(numArguments)){throwBindingError(\"Cannot register multiple overloads of a function with the same number of arguments (\"+numArguments+\")!\")}Module[name].overloadTable[numArguments]=value}else{Module[name]=value;if(undefined!==numArguments){Module[name].numArguments=numArguments}}}function RegisteredClass(name,constructor,instancePrototype,rawDestructor,baseClass,getActualType,upcast,downcast){this.name=name;this.constructor=constructor;this.instancePrototype=instancePrototype;this.rawDestructor=rawDestructor;this.baseClass=baseClass;this.getActualType=getActualType;this.upcast=upcast;this.downcast=downcast;this.pureVirtualFunctions=[]}function upcastPointer(ptr,ptrClass,desiredClass){while(ptrClass!==desiredClass){if(!ptrClass.upcast){throwBindingError(\"Expected null or instance of \"+desiredClass.name+\", got an instance of \"+ptrClass.name)}ptr=ptrClass.upcast(ptr);ptrClass=ptrClass.baseClass}return ptr}function constNoSmartPtrRawPointerToWireType(destructors,handle){if(handle===null){if(this.isReference){throwBindingError(\"null is not a valid \"+this.name)}return 0}if(!handle.$$){throwBindingError('Cannot pass \"'+_embind_repr(handle)+'\" as a '+this.name)}if(!handle.$$.ptr){throwBindingError(\"Cannot pass deleted object as a pointer of type \"+this.name)}var handleClass=handle.$$.ptrType.registeredClass;var ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);return ptr}function genericPointerToWireType(destructors,handle){var ptr;if(handle===null){if(this.isReference){throwBindingError(\"null is not a valid \"+this.name)}if(this.isSmartPointer){ptr=this.rawConstructor();if(destructors!==null){destructors.push(this.rawDestructor,ptr)}return ptr}else{return 0}}if(!handle.$$){throwBindingError('Cannot pass \"'+_embind_repr(handle)+'\" as a '+this.name)}if(!handle.$$.ptr){throwBindingError(\"Cannot pass deleted object as a pointer of type \"+this.name)}if(!this.isConst&&handle.$$.ptrType.isConst){throwBindingError(\"Cannot convert argument of type \"+(handle.$$.smartPtrType?handle.$$.smartPtrType.name:handle.$$.ptrType.name)+\" to parameter type \"+this.name)}var handleClass=handle.$$.ptrType.registeredClass;ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);if(this.isSmartPointer){if(undefined===handle.$$.smartPtr){throwBindingError(\"Passing raw pointer to smart pointer is illegal\")}switch(this.sharingPolicy){case 0:if(handle.$$.smartPtrType===this){ptr=handle.$$.smartPtr}else{throwBindingError(\"Cannot convert argument of type \"+(handle.$$.smartPtrType?handle.$$.smartPtrType.name:handle.$$.ptrType.name)+\" to parameter type \"+this.name)}break;case 1:ptr=handle.$$.smartPtr;break;case 2:if(handle.$$.smartPtrType===this){ptr=handle.$$.smartPtr}else{var clonedHandle=handle[\"clone\"]();ptr=this.rawShare(ptr,Emval.toHandle(function(){clonedHandle[\"delete\"]()}));if(destructors!==null){destructors.push(this.rawDestructor,ptr)}}break;default:throwBindingError(\"Unsupporting sharing policy\")}}return ptr}function nonConstNoSmartPtrRawPointerToWireType(destructors,handle){if(handle===null){if(this.isReference){throwBindingError(\"null is not a valid \"+this.name)}return 0}if(!handle.$$){throwBindingError('Cannot pass \"'+_embind_repr(handle)+'\" as a '+this.name)}if(!handle.$$.ptr){throwBindingError(\"Cannot pass deleted object as a pointer of type \"+this.name)}if(handle.$$.ptrType.isConst){throwBindingError(\"Cannot convert argument of type \"+handle.$$.ptrType.name+\" to parameter type \"+this.name)}var handleClass=handle.$$.ptrType.registeredClass;var ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);return ptr}function RegisteredPointer_getPointee(ptr){if(this.rawGetPointee){ptr=this.rawGetPointee(ptr)}return ptr}function RegisteredPointer_destructor(ptr){if(this.rawDestructor){this.rawDestructor(ptr)}}function RegisteredPointer_deleteObject(handle){if(handle!==null){handle[\"delete\"]()}}function init_RegisteredPointer(){RegisteredPointer.prototype.getPointee=RegisteredPointer_getPointee;RegisteredPointer.prototype.destructor=RegisteredPointer_destructor;RegisteredPointer.prototype[\"argPackAdvance\"]=8;RegisteredPointer.prototype[\"readValueFromPointer\"]=simpleReadValueFromPointer;RegisteredPointer.prototype[\"deleteObject\"]=RegisteredPointer_deleteObject;RegisteredPointer.prototype[\"fromWireType\"]=RegisteredPointer_fromWireType}function RegisteredPointer(name,registeredClass,isReference,isConst,isSmartPointer,pointeeType,sharingPolicy,rawGetPointee,rawConstructor,rawShare,rawDestructor){this.name=name;this.registeredClass=registeredClass;this.isReference=isReference;this.isConst=isConst;this.isSmartPointer=isSmartPointer;this.pointeeType=pointeeType;this.sharingPolicy=sharingPolicy;this.rawGetPointee=rawGetPointee;this.rawConstructor=rawConstructor;this.rawShare=rawShare;this.rawDestructor=rawDestructor;if(!isSmartPointer&®isteredClass.baseClass===undefined){if(isConst){this[\"toWireType\"]=constNoSmartPtrRawPointerToWireType;this.destructorFunction=null}else{this[\"toWireType\"]=nonConstNoSmartPtrRawPointerToWireType;this.destructorFunction=null}}else{this[\"toWireType\"]=genericPointerToWireType}}function replacePublicSymbol(name,value,numArguments){if(!Module.hasOwnProperty(name)){throwInternalError(\"Replacing nonexistant public symbol\")}if(undefined!==Module[name].overloadTable&&undefined!==numArguments){Module[name].overloadTable[numArguments]=value}else{Module[name]=value;Module[name].argCount=numArguments}}function dynCallLegacy(sig,ptr,args){var f=Module[\"dynCall_\"+sig];return args&&args.length?f.apply(null,[ptr].concat(args)):f.call(null,ptr)}function dynCall(sig,ptr,args){if(sig.includes(\"j\")){return dynCallLegacy(sig,ptr,args)}return getWasmTableEntry(ptr).apply(null,args)}function getDynCaller(sig,ptr){var argCache=[];return function(){argCache.length=0;Object.assign(argCache,arguments);return dynCall(sig,ptr,argCache)}}function embind__requireFunction(signature,rawFunction){signature=readLatin1String(signature);function makeDynCaller(){if(signature.includes(\"j\")){return getDynCaller(signature,rawFunction)}return getWasmTableEntry(rawFunction)}var fp=makeDynCaller();if(typeof fp!=\"function\"){throwBindingError(\"unknown function pointer with signature \"+signature+\": \"+rawFunction)}return fp}var UnboundTypeError=undefined;function getTypeName(type){var ptr=___getTypeName(type);var rv=readLatin1String(ptr);_free(ptr);return rv}function throwUnboundTypeError(message,types){var unboundTypes=[];var seen={};function visit(type){if(seen[type]){return}if(registeredTypes[type]){return}if(typeDependencies[type]){typeDependencies[type].forEach(visit);return}unboundTypes.push(type);seen[type]=true}types.forEach(visit);throw new UnboundTypeError(message+\": \"+unboundTypes.map(getTypeName).join([\", \"]))}function __embind_register_class(rawType,rawPointerType,rawConstPointerType,baseClassRawType,getActualTypeSignature,getActualType,upcastSignature,upcast,downcastSignature,downcast,name,destructorSignature,rawDestructor){name=readLatin1String(name);getActualType=embind__requireFunction(getActualTypeSignature,getActualType);if(upcast){upcast=embind__requireFunction(upcastSignature,upcast)}if(downcast){downcast=embind__requireFunction(downcastSignature,downcast)}rawDestructor=embind__requireFunction(destructorSignature,rawDestructor);var legalFunctionName=makeLegalFunctionName(name);exposePublicSymbol(legalFunctionName,function(){throwUnboundTypeError(\"Cannot construct \"+name+\" due to unbound types\",[baseClassRawType])});whenDependentTypesAreResolved([rawType,rawPointerType,rawConstPointerType],baseClassRawType?[baseClassRawType]:[],function(base){base=base[0];var baseClass;var basePrototype;if(baseClassRawType){baseClass=base.registeredClass;basePrototype=baseClass.instancePrototype}else{basePrototype=ClassHandle.prototype}var constructor=createNamedFunction(legalFunctionName,function(){if(Object.getPrototypeOf(this)!==instancePrototype){throw new BindingError(\"Use 'new' to construct \"+name)}if(undefined===registeredClass.constructor_body){throw new BindingError(name+\" has no accessible constructor\")}var body=registeredClass.constructor_body[arguments.length];if(undefined===body){throw new BindingError(\"Tried to invoke ctor of \"+name+\" with invalid number of parameters (\"+arguments.length+\") - expected (\"+Object.keys(registeredClass.constructor_body).toString()+\") parameters instead!\")}return body.apply(this,arguments)});var instancePrototype=Object.create(basePrototype,{constructor:{value:constructor}});constructor.prototype=instancePrototype;var registeredClass=new RegisteredClass(name,constructor,instancePrototype,rawDestructor,baseClass,getActualType,upcast,downcast);var referenceConverter=new RegisteredPointer(name,registeredClass,true,false,false);var pointerConverter=new RegisteredPointer(name+\"*\",registeredClass,false,false,false);var constPointerConverter=new RegisteredPointer(name+\" const*\",registeredClass,false,true,false);registeredPointers[rawType]={pointerType:pointerConverter,constPointerType:constPointerConverter};replacePublicSymbol(legalFunctionName,constructor);return[referenceConverter,pointerConverter,constPointerConverter]})}function heap32VectorToArray(count,firstElement){var array=[];for(var i=0;i>2)+i])}return array}function __embind_register_class_constructor(rawClassType,argCount,rawArgTypesAddr,invokerSignature,invoker,rawConstructor){assert(argCount>0);var rawArgTypes=heap32VectorToArray(argCount,rawArgTypesAddr);invoker=embind__requireFunction(invokerSignature,invoker);whenDependentTypesAreResolved([],[rawClassType],function(classType){classType=classType[0];var humanName=\"constructor \"+classType.name;if(undefined===classType.registeredClass.constructor_body){classType.registeredClass.constructor_body=[]}if(undefined!==classType.registeredClass.constructor_body[argCount-1]){throw new BindingError(\"Cannot register multiple constructors with identical number of parameters (\"+(argCount-1)+\") for class '\"+classType.name+\"'! Overload resolution is currently only performed using the parameter count, not actual type info!\")}classType.registeredClass.constructor_body[argCount-1]=()=>{throwUnboundTypeError(\"Cannot construct \"+classType.name+\" due to unbound types\",rawArgTypes)};whenDependentTypesAreResolved([],rawArgTypes,function(argTypes){argTypes.splice(1,0,null);classType.registeredClass.constructor_body[argCount-1]=craftInvokerFunction(humanName,argTypes,null,invoker,rawConstructor);return[]});return[]})}function new_(constructor,argumentList){if(!(constructor instanceof Function)){throw new TypeError(\"new_ called with constructor type \"+typeof constructor+\" which is not a function\")}var dummy=createNamedFunction(constructor.name||\"unknownFunctionName\",function(){});dummy.prototype=constructor.prototype;var obj=new dummy;var r=constructor.apply(obj,argumentList);return r instanceof Object?r:obj}function craftInvokerFunction(humanName,argTypes,classType,cppInvokerFunc,cppTargetFunc){var argCount=argTypes.length;if(argCount<2){throwBindingError(\"argTypes array size mismatch! Must at least get return value and 'this' types!\")}var isClassMethodFunc=argTypes[1]!==null&&classType!==null;var needsDestructorStack=false;for(var i=1;i0?\", \":\"\")+argsListWired}invokerFnBody+=(returns?\"var rv = \":\"\")+\"invoker(fn\"+(argsListWired.length>0?\", \":\"\")+argsListWired+\");\\n\";if(needsDestructorStack){invokerFnBody+=\"runDestructors(destructors);\\n\"}else{for(var i=isClassMethodFunc?1:2;i4&&0===--emval_handle_array[handle].refcount){emval_handle_array[handle]=undefined;emval_free_list.push(handle)}}function count_emval_handles(){var count=0;for(var i=5;i{if(!handle){throwBindingError(\"Cannot use deleted val. handle = \"+handle)}return emval_handle_array[handle].value},toHandle:value=>{switch(value){case undefined:return 1;case null:return 2;case true:return 3;case false:return 4;default:{var handle=emval_free_list.length?emval_free_list.pop():emval_handle_array.length;emval_handle_array[handle]={refcount:1,value:value};return handle}}}};function __embind_register_emval(rawType,name){name=readLatin1String(name);registerType(rawType,{name:name,\"fromWireType\":function(handle){var rv=Emval.toValue(handle);__emval_decref(handle);return rv},\"toWireType\":function(destructors,value){return Emval.toHandle(value)},\"argPackAdvance\":8,\"readValueFromPointer\":simpleReadValueFromPointer,destructorFunction:null})}function _embind_repr(v){if(v===null){return\"null\"}var t=typeof v;if(t===\"object\"||t===\"array\"||t===\"function\"){return v.toString()}else{return\"\"+v}}function floatReadValueFromPointer(name,shift){switch(shift){case 2:return function(pointer){return this[\"fromWireType\"](HEAPF32[pointer>>2])};case 3:return function(pointer){return this[\"fromWireType\"](HEAPF64[pointer>>3])};default:throw new TypeError(\"Unknown float type: \"+name)}}function __embind_register_float(rawType,name,size){var shift=getShiftFromSize(size);name=readLatin1String(name);registerType(rawType,{name:name,\"fromWireType\":function(value){return value},\"toWireType\":function(destructors,value){return value},\"argPackAdvance\":8,\"readValueFromPointer\":floatReadValueFromPointer(name,shift),destructorFunction:null})}function integerReadValueFromPointer(name,shift,signed){switch(shift){case 0:return signed?function readS8FromPointer(pointer){return HEAP8[pointer]}:function readU8FromPointer(pointer){return HEAPU8[pointer]};case 1:return signed?function readS16FromPointer(pointer){return HEAP16[pointer>>1]}:function readU16FromPointer(pointer){return HEAPU16[pointer>>1]};case 2:return signed?function readS32FromPointer(pointer){return HEAP32[pointer>>2]}:function readU32FromPointer(pointer){return HEAPU32[pointer>>2]};default:throw new TypeError(\"Unknown integer type: \"+name)}}function __embind_register_integer(primitiveType,name,size,minRange,maxRange){name=readLatin1String(name);if(maxRange===-1){maxRange=4294967295}var shift=getShiftFromSize(size);var fromWireType=value=>value;if(minRange===0){var bitshift=32-8*size;fromWireType=value=>value<>>bitshift}var isUnsignedType=name.includes(\"unsigned\");var checkAssertions=(value,toTypeName)=>{};var toWireType;if(isUnsignedType){toWireType=function(destructors,value){checkAssertions(value,this.name);return value>>>0}}else{toWireType=function(destructors,value){checkAssertions(value,this.name);return value}}registerType(primitiveType,{name:name,\"fromWireType\":fromWireType,\"toWireType\":toWireType,\"argPackAdvance\":8,\"readValueFromPointer\":integerReadValueFromPointer(name,shift,minRange!==0),destructorFunction:null})}function __embind_register_memory_view(rawType,dataTypeIndex,name){var typeMapping=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array];var TA=typeMapping[dataTypeIndex];function decodeMemoryView(handle){handle=handle>>2;var heap=HEAPU32;var size=heap[handle];var data=heap[handle+1];return new TA(buffer,data,size)}name=readLatin1String(name);registerType(rawType,{name:name,\"fromWireType\":decodeMemoryView,\"argPackAdvance\":8,\"readValueFromPointer\":decodeMemoryView},{ignoreDuplicateRegistrations:true})}function __embind_register_std_string(rawType,name){name=readLatin1String(name);var stdStringIsUTF8=name===\"std::string\";registerType(rawType,{name:name,\"fromWireType\":function(value){var length=HEAPU32[value>>2];var str;if(stdStringIsUTF8){var decodeStartPtr=value+4;for(var i=0;i<=length;++i){var currentBytePtr=value+4+i;if(i==length||HEAPU8[currentBytePtr]==0){var maxRead=currentBytePtr-decodeStartPtr;var stringSegment=UTF8ToString(decodeStartPtr,maxRead);if(str===undefined){str=stringSegment}else{str+=String.fromCharCode(0);str+=stringSegment}decodeStartPtr=currentBytePtr+1}}}else{var a=new Array(length);for(var i=0;ilengthBytesUTF8(value)}else{getLength=()=>value.length}var length=getLength();var ptr=_malloc(4+length+1);HEAPU32[ptr>>2]=length;if(stdStringIsUTF8&&valueIsOfTypeString){stringToUTF8(value,ptr+4,length+1)}else{if(valueIsOfTypeString){for(var i=0;i255){_free(ptr);throwBindingError(\"String has UTF-16 code units that do not fit in 8 bits\")}HEAPU8[ptr+4+i]=charCode}}else{for(var i=0;iHEAPU16;shift=1}else if(charSize===4){decodeString=UTF32ToString;encodeString=stringToUTF32;lengthBytesUTF=lengthBytesUTF32;getHeap=()=>HEAPU32;shift=2}registerType(rawType,{name:name,\"fromWireType\":function(value){var length=HEAPU32[value>>2];var HEAP=getHeap();var str;var decodeStartPtr=value+4;for(var i=0;i<=length;++i){var currentBytePtr=value+4+i*charSize;if(i==length||HEAP[currentBytePtr>>shift]==0){var maxReadBytes=currentBytePtr-decodeStartPtr;var stringSegment=decodeString(decodeStartPtr,maxReadBytes);if(str===undefined){str=stringSegment}else{str+=String.fromCharCode(0);str+=stringSegment}decodeStartPtr=currentBytePtr+charSize}}_free(value);return str},\"toWireType\":function(destructors,value){if(!(typeof value==\"string\")){throwBindingError(\"Cannot pass non-string to C++ string type \"+name)}var length=lengthBytesUTF(value);var ptr=_malloc(4+length+charSize);HEAPU32[ptr>>2]=length>>shift;encodeString(value,ptr+4,length+charSize);if(destructors!==null){destructors.push(_free,ptr)}return ptr},\"argPackAdvance\":8,\"readValueFromPointer\":simpleReadValueFromPointer,destructorFunction:function(ptr){_free(ptr)}})}function __embind_register_value_object(rawType,name,constructorSignature,rawConstructor,destructorSignature,rawDestructor){structRegistrations[rawType]={name:readLatin1String(name),rawConstructor:embind__requireFunction(constructorSignature,rawConstructor),rawDestructor:embind__requireFunction(destructorSignature,rawDestructor),fields:[]}}function __embind_register_value_object_field(structType,fieldName,getterReturnType,getterSignature,getter,getterContext,setterArgumentType,setterSignature,setter,setterContext){structRegistrations[structType].fields.push({fieldName:readLatin1String(fieldName),getterReturnType:getterReturnType,getter:embind__requireFunction(getterSignature,getter),getterContext:getterContext,setterArgumentType:setterArgumentType,setter:embind__requireFunction(setterSignature,setter),setterContext:setterContext})}function __embind_register_void(rawType,name){name=readLatin1String(name);registerType(rawType,{isVoid:true,name:name,\"argPackAdvance\":0,\"fromWireType\":function(){return undefined},\"toWireType\":function(destructors,o){return undefined}})}function __emscripten_date_now(){return Date.now()}function __localtime_js(time,tmPtr){var date=new Date(HEAP32[time>>2]*1e3);HEAP32[tmPtr>>2]=date.getSeconds();HEAP32[tmPtr+4>>2]=date.getMinutes();HEAP32[tmPtr+8>>2]=date.getHours();HEAP32[tmPtr+12>>2]=date.getDate();HEAP32[tmPtr+16>>2]=date.getMonth();HEAP32[tmPtr+20>>2]=date.getFullYear()-1900;HEAP32[tmPtr+24>>2]=date.getDay();var start=new Date(date.getFullYear(),0,1);var yday=(date.getTime()-start.getTime())/(1e3*60*60*24)|0;HEAP32[tmPtr+28>>2]=yday;HEAP32[tmPtr+36>>2]=-(date.getTimezoneOffset()*60);var summerOffset=new Date(date.getFullYear(),6,1).getTimezoneOffset();var winterOffset=start.getTimezoneOffset();var dst=(summerOffset!=winterOffset&&date.getTimezoneOffset()==Math.min(winterOffset,summerOffset))|0;HEAP32[tmPtr+32>>2]=dst}function __mktime_js(tmPtr){var date=new Date(HEAP32[tmPtr+20>>2]+1900,HEAP32[tmPtr+16>>2],HEAP32[tmPtr+12>>2],HEAP32[tmPtr+8>>2],HEAP32[tmPtr+4>>2],HEAP32[tmPtr>>2],0);var dst=HEAP32[tmPtr+32>>2];var guessedOffset=date.getTimezoneOffset();var start=new Date(date.getFullYear(),0,1);var summerOffset=new Date(date.getFullYear(),6,1).getTimezoneOffset();var winterOffset=start.getTimezoneOffset();var dstOffset=Math.min(winterOffset,summerOffset);if(dst<0){HEAP32[tmPtr+32>>2]=Number(summerOffset!=winterOffset&&dstOffset==guessedOffset)}else if(dst>0!=(dstOffset==guessedOffset)){var nonDstOffset=Math.max(winterOffset,summerOffset);var trueOffset=dst>0?dstOffset:nonDstOffset;date.setTime(date.getTime()+(trueOffset-guessedOffset)*6e4)}HEAP32[tmPtr+24>>2]=date.getDay();var yday=(date.getTime()-start.getTime())/(1e3*60*60*24)|0;HEAP32[tmPtr+28>>2]=yday;HEAP32[tmPtr>>2]=date.getSeconds();HEAP32[tmPtr+4>>2]=date.getMinutes();HEAP32[tmPtr+8>>2]=date.getHours();HEAP32[tmPtr+12>>2]=date.getDate();HEAP32[tmPtr+16>>2]=date.getMonth();return date.getTime()/1e3|0}function _tzset_impl(timezone,daylight,tzname){var currentYear=(new Date).getFullYear();var winter=new Date(currentYear,0,1);var summer=new Date(currentYear,6,1);var winterOffset=winter.getTimezoneOffset();var summerOffset=summer.getTimezoneOffset();var stdTimezoneOffset=Math.max(winterOffset,summerOffset);HEAP32[timezone>>2]=stdTimezoneOffset*60;HEAP32[daylight>>2]=Number(winterOffset!=summerOffset);function extractZone(date){var match=date.toTimeString().match(/\\(([A-Za-z ]+)\\)$/);return match?match[1]:\"GMT\"}var winterName=extractZone(winter);var summerName=extractZone(summer);var winterNamePtr=allocateUTF8(winterName);var summerNamePtr=allocateUTF8(summerName);if(summerOffset>2]=winterNamePtr;HEAPU32[tzname+4>>2]=summerNamePtr}else{HEAPU32[tzname>>2]=summerNamePtr;HEAPU32[tzname+4>>2]=winterNamePtr}}function __tzset_js(timezone,daylight,tzname){if(__tzset_js.called)return;__tzset_js.called=true;_tzset_impl(timezone,daylight,tzname)}function _abort(){abort(\"\")}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function getHeapMax(){return 2147483648}function emscripten_realloc_buffer(size){try{wasmMemory.grow(size-buffer.byteLength+65535>>>16);updateGlobalBufferAndViews(wasmMemory.buffer);return 1}catch(e){}}function _emscripten_resize_heap(requestedSize){var oldSize=HEAPU8.length;requestedSize=requestedSize>>>0;var maxHeapSize=getHeapMax();if(requestedSize>maxHeapSize){return false}let alignUp=(x,multiple)=>x+(multiple-x%multiple)%multiple;for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=emscripten_realloc_buffer(newSize);if(replacement){return true}}return false}var ENV={};function getExecutableName(){return thisProgram||\"./this.program\"}function getEnvStrings(){if(!getEnvStrings.strings){var lang=(typeof navigator==\"object\"&&navigator.languages&&navigator.languages[0]||\"C\").replace(\"-\",\"_\")+\".UTF-8\";var env={\"USER\":\"web_user\",\"LOGNAME\":\"web_user\",\"PATH\":\"/\",\"PWD\":\"/\",\"HOME\":\"/home/web_user\",\"LANG\":lang,\"_\":getExecutableName()};for(var x in ENV){if(ENV[x]===undefined)delete env[x];else env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(x+\"=\"+env[x])}getEnvStrings.strings=strings}return getEnvStrings.strings}function _environ_get(__environ,environ_buf){var bufSize=0;getEnvStrings().forEach(function(string,i){var ptr=environ_buf+bufSize;HEAPU32[__environ+i*4>>2]=ptr;writeAsciiToMemory(string,ptr);bufSize+=string.length+1});return 0}function _environ_sizes_get(penviron_count,penviron_buf_size){var strings=getEnvStrings();HEAPU32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(function(string){bufSize+=string.length+1});HEAPU32[penviron_buf_size>>2]=bufSize;return 0}function _getTempRet0(){return getTempRet0()}function _jsClose(handleLo,handleHi){return Module.extractor.close((handleLo>>>0)+handleHi*4294967296)}function _jsCreate(filename){const handle=Module.extractor.create(UTF32ToString(filename));Module.setTempRet0(handle/4294967296|0);return handle%4294967296}function _jsOpen(filename){const handle=Module.extractor.open(UTF32ToString(filename));Module.setTempRet0(handle/4294967296|0);return handle%4294967296}function _jsRead(handleLo,handleHi,buf,size){return Module.extractor.read((handleLo>>>0)+handleHi*4294967296,buf,size)}function _jsSeek(handleLo,handleHi,offsetLo,offsetHi,method){return Module.extractor.seek((handleLo>>>0)+handleHi*4294967296,(offsetLo>>>0)+offsetHi*4294967296,UTF8ToString(method))}function _jsTell(handleLo,handleHi){const pos=Module.extractor.tell((handleLo>>>0)+handleHi*4294967296);Module.setTempRet0(pos/4294967296|0);return pos%4294967296}function _jsWrite(handleLo,handleHi,buf,size){return Module.extractor.write((handleLo>>>0)+handleHi*4294967296,buf,size)}function _llvm_eh_typeid_for(type){return type}function _setTempRet0(val){setTempRet0(val)}InternalError=Module[\"InternalError\"]=extendError(Error,\"InternalError\");embind_init_charCodes();BindingError=Module[\"BindingError\"]=extendError(Error,\"BindingError\");init_ClassHandle();init_embind();init_RegisteredPointer();UnboundTypeError=Module[\"UnboundTypeError\"]=extendError(Error,\"UnboundTypeError\");init_emval();var asmLibraryArg={\"p\":___cxa_allocate_exception,\"r\":___cxa_begin_catch,\"t\":___cxa_end_catch,\"c\":___cxa_find_matching_catch_2,\"d\":___cxa_find_matching_catch_3,\"l\":___cxa_find_matching_catch_4,\"ea\":___cxa_free_exception,\"o\":___cxa_throw,\"e\":___resumeException,\"V\":___syscall_fchownat,\"U\":___syscall_symlink,\"fa\":__embind_finalize_value_object,\"F\":__embind_register_bigint,\"ca\":__embind_register_bool,\"ia\":__embind_register_class,\"ha\":__embind_register_class_constructor,\"w\":__embind_register_class_function,\"ba\":__embind_register_emval,\"z\":__embind_register_float,\"q\":__embind_register_integer,\"j\":__embind_register_memory_view,\"y\":__embind_register_std_string,\"u\":__embind_register_std_wstring,\"v\":__embind_register_value_object,\"ga\":__embind_register_value_object_field,\"da\":__embind_register_void,\"Y\":__emscripten_date_now,\"Z\":__localtime_js,\"_\":__mktime_js,\"$\":__tzset_js,\"x\":_abort,\"aa\":_emscripten_memcpy_big,\"T\":_emscripten_resize_heap,\"W\":_environ_get,\"X\":_environ_sizes_get,\"a\":_getTempRet0,\"b\":invoke_ii,\"h\":invoke_iii,\"g\":invoke_iiii,\"n\":invoke_iiiii,\"E\":invoke_iiiiiii,\"D\":invoke_iiiiiiiiii,\"O\":invoke_iiiiiijii,\"Q\":invoke_ji,\"A\":invoke_v,\"m\":invoke_vi,\"f\":invoke_vii,\"i\":invoke_viii,\"C\":invoke_viiii,\"ja\":invoke_viiiii,\"B\":invoke_viiiiiiiii,\"k\":invoke_viiiiiiiiii,\"P\":invoke_vij,\"R\":invoke_viji,\"M\":invoke_vj,\"N\":_jsClose,\"K\":_jsCreate,\"L\":_jsOpen,\"I\":_jsRead,\"H\":_jsSeek,\"G\":_jsTell,\"J\":_jsWrite,\"s\":_llvm_eh_typeid_for,\"S\":_setTempRet0};var asm=createWasm();var ___wasm_call_ctors=Module[\"___wasm_call_ctors\"]=function(){return(___wasm_call_ctors=Module[\"___wasm_call_ctors\"]=Module[\"asm\"][\"la\"]).apply(null,arguments)};var _free=Module[\"_free\"]=function(){return(_free=Module[\"_free\"]=Module[\"asm\"][\"ma\"]).apply(null,arguments)};var _malloc=Module[\"_malloc\"]=function(){return(_malloc=Module[\"_malloc\"]=Module[\"asm\"][\"na\"]).apply(null,arguments)};var ___getTypeName=Module[\"___getTypeName\"]=function(){return(___getTypeName=Module[\"___getTypeName\"]=Module[\"asm\"][\"pa\"]).apply(null,arguments)};var ___embind_register_native_and_builtin_types=Module[\"___embind_register_native_and_builtin_types\"]=function(){return(___embind_register_native_and_builtin_types=Module[\"___embind_register_native_and_builtin_types\"]=Module[\"asm\"][\"qa\"]).apply(null,arguments)};var _setThrew=Module[\"_setThrew\"]=function(){return(_setThrew=Module[\"_setThrew\"]=Module[\"asm\"][\"ra\"]).apply(null,arguments)};var stackSave=Module[\"stackSave\"]=function(){return(stackSave=Module[\"stackSave\"]=Module[\"asm\"][\"sa\"]).apply(null,arguments)};var stackRestore=Module[\"stackRestore\"]=function(){return(stackRestore=Module[\"stackRestore\"]=Module[\"asm\"][\"ta\"]).apply(null,arguments)};var ___cxa_can_catch=Module[\"___cxa_can_catch\"]=function(){return(___cxa_can_catch=Module[\"___cxa_can_catch\"]=Module[\"asm\"][\"ua\"]).apply(null,arguments)};var ___cxa_is_pointer_type=Module[\"___cxa_is_pointer_type\"]=function(){return(___cxa_is_pointer_type=Module[\"___cxa_is_pointer_type\"]=Module[\"asm\"][\"va\"]).apply(null,arguments)};var dynCall_viji=Module[\"dynCall_viji\"]=function(){return(dynCall_viji=Module[\"dynCall_viji\"]=Module[\"asm\"][\"wa\"]).apply(null,arguments)};var dynCall_ji=Module[\"dynCall_ji\"]=function(){return(dynCall_ji=Module[\"dynCall_ji\"]=Module[\"asm\"][\"xa\"]).apply(null,arguments)};var dynCall_vij=Module[\"dynCall_vij\"]=function(){return(dynCall_vij=Module[\"dynCall_vij\"]=Module[\"asm\"][\"ya\"]).apply(null,arguments)};var dynCall_iiiiiijii=Module[\"dynCall_iiiiiijii\"]=function(){return(dynCall_iiiiiijii=Module[\"dynCall_iiiiiijii\"]=Module[\"asm\"][\"za\"]).apply(null,arguments)};var dynCall_vj=Module[\"dynCall_vj\"]=function(){return(dynCall_vj=Module[\"dynCall_vj\"]=Module[\"asm\"][\"Aa\"]).apply(null,arguments)};function invoke_vi(index,a1){var sp=stackSave();try{getWasmTableEntry(index)(a1)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_ii(index,a1){var sp=stackSave();try{return getWasmTableEntry(index)(a1)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iii(index,a1,a2){var sp=stackSave();try{return getWasmTableEntry(index)(a1,a2)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_vii(index,a1,a2){var sp=stackSave();try{getWasmTableEntry(index)(a1,a2)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viii(index,a1,a2,a3){var sp=stackSave();try{getWasmTableEntry(index)(a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiii(index,a1,a2,a3,a4){var sp=stackSave();try{return getWasmTableEntry(index)(a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiii(index,a1,a2,a3){var sp=stackSave();try{return getWasmTableEntry(index)(a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiiii(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{return getWasmTableEntry(index)(a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9){var sp=stackSave();try{return getWasmTableEntry(index)(a1,a2,a3,a4,a5,a6,a7,a8,a9)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiii(index,a1,a2,a3,a4){var sp=stackSave();try{getWasmTableEntry(index)(a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9){var sp=stackSave();try{getWasmTableEntry(index)(a1,a2,a3,a4,a5,a6,a7,a8,a9)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_v(index){var sp=stackSave();try{getWasmTableEntry(index)()}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiiii(index,a1,a2,a3,a4,a5){var sp=stackSave();try{getWasmTableEntry(index)(a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10){var sp=stackSave();try{getWasmTableEntry(index)(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viji(index,a1,a2,a3,a4){var sp=stackSave();try{dynCall_viji(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_ji(index,a1){var sp=stackSave();try{return dynCall_ji(index,a1)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_vij(index,a1,a2,a3){var sp=stackSave();try{dynCall_vij(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiiijii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9){var sp=stackSave();try{return dynCall_iiiiiijii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_vj(index,a1,a2){var sp=stackSave();try{dynCall_vj(index,a1,a2)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}Module[\"setTempRet0\"]=setTempRet0;var calledRun;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function run(args){args=args||arguments_;if(runDependencies>0){return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module[\"calledRun\"]=true;if(ABORT)return;initRuntime();readyPromiseResolve(Module);if(Module[\"onRuntimeInitialized\"])Module[\"onRuntimeInitialized\"]();postRun()}if(Module[\"setStatus\"]){Module[\"setStatus\"](\"Running...\");setTimeout(function(){setTimeout(function(){Module[\"setStatus\"](\"\")},1);doRun()},1)}else{doRun()}}Module[\"run\"]=run;if(Module[\"preInit\"]){if(typeof Module[\"preInit\"]==\"function\")Module[\"preInit\"]=[Module[\"preInit\"]];while(Module[\"preInit\"].length>0){Module[\"preInit\"].pop()()}}run();\n\n\n return Module.ready\n}\n);\n})();\nexport default Module;","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport unrarFactory from './unrar';\nlet unrar;\nexport async function getUnrar(options) {\n if (!unrar) {\n unrar = await unrarFactory(options);\n }\n return unrar;\n}\n//# sourceMappingURL=unrar.singleton.js.map","import { ExtractorData } from './js/ExtractorData';\nimport { getUnrar } from './js/unrar.singleton';\nexport * from './js/Extractor';\nexport async function createExtractorFromData({ wasmBinary, data, password = '', }) {\n const unrar = await getUnrar(wasmBinary && { wasmBinary });\n const extractor = new ExtractorData(unrar, data, password);\n unrar.extractor = extractor;\n return extractor;\n}\n//# sourceMappingURL=index.esm.js.map"],"names":["DataFile","constructor","data","this","buffers","pos","size","push","byteLength","read","flatten","oldPos","slice","readAll","Uint8Array","write","tell","seek","method","newPos","length","newBuffer","offset","buffer","set","ERROR_CODE","ERROR_MSG","ERAR_NO_MEMORY","ERAR_BAD_DATA","ERAR_BAD_ARCHIVE","ERAR_UNKNOWN_FORMAT","ERAR_EOPEN","ERAR_ECREATE","ERAR_ECLOSE","ERAR_EREAD","ERAR_EWRITE","ERAR_SMALL_BUF","ERAR_UNKNOWN","ERAR_MISSING_PASSWORD","ERAR_EREFERENCE","ERAR_BAD_PASSWORD","UnrarError","Error","reason","message","file","super","Extractor","unrar","password","_password","_archive","getFileList","arcHeader","openArc","fileHeaders","arcFile","processNextFile","fileHeader","closeArc","call","extract","files","count","shouldSkip","Array","isArray","name","includes","extraction","fileCreated","filename","close","fd","closeFile","listOnly","RarArchive","header","open","_filePath","state","errCode","getFailException","errType","comment","flags","volume","lock","solid","authInfo","recoveryRecord","headerEncrypted","arcFileHeader","getFileHeader","encrypted","directory","packSize","unpSize","crc","time","dosTime","bitLen","parts","len","reverse","pad","num","getDateString","unpVer","Math","floor","skip","fileState","readFile","delete","_errType","ExtractorData","dataFiles","dataFileMap","currentFd","rarFile","options","getExtractedFileName","dataFile","create","fileData","buf","HEAPU8","_scriptDir","Module","document","currentScript","src","undefined","readyPromiseResolve","readyPromiseReject","Promise","resolve","reject","readAsync","readBinary","moduleOverrides","Object","assign","thisProgram","ENVIRONMENT_IS_WEB","window","ENVIRONMENT_IS_WORKER","importScripts","scriptDirectory","self","location","href","indexOf","substr","replace","lastIndexOf","url","xhr","XMLHttpRequest","responseType","send","response","onload","onerror","status","console","log","bind","err","warn","wasmBinary","wasmMemory","tempRet0","setTempRet0","value","WebAssembly","abort","ABORT","UTF8Decoder","TextDecoder","UTF8ToString","ptr","maxBytesToRead","heapOrArray","idx","endIdx","endPtr","decode","subarray","str","u0","u1","u2","String","fromCharCode","ch","UTF8ArrayToString","stringToUTF8Array","heap","outIdx","maxBytesToWrite","startIdx","i","u","charCodeAt","lengthBytesUTF8","HEAP8","HEAP16","HEAPU16","HEAP32","HEAPU32","HEAPF32","HEAPF64","wasmTable","UTF16Decoder","UTF16ToString","maxIdx","codeUnit","stringToUTF16","outPtr","startPtr","numCharsToWrite","lengthBytesUTF16","UTF32ToString","utf32","stringToUTF32","lengthBytesUTF32","allocateUTF8","ret","_malloc","updateGlobalBufferAndViews","Int8Array","Int16Array","Int32Array","Uint16Array","Uint32Array","Float32Array","Float64Array","wasmBinaryFile","path","__ATPRERUN__","__ATINIT__","__ATPOSTRUN__","runDependencies","dependenciesFulfilled","what","e","RuntimeError","isDataURI","startsWith","isFileURI","getBinary","callRuntimeCallbacks","callbacks","callback","shift","func","arg","getWasmTableEntry","wasmTableMirror","funcPtr","get","exceptionCaught","exceptionLast","ExceptionInfo","excPtr","set_type","type","get_type","set_destructor","destructor","get_destructor","set_refcount","refcount","set_caught","caught","get_caught","set_rethrown","rethrown","get_rethrown","init","set_adjusted_ptr","add_ref","release_ref","prev","adjustedPtr","get_adjusted_ptr","get_exception_ptr","___cxa_is_pointer_type","adjusted","___cxa_free_exception","_free","structRegistrations","runDestructors","destructors","pop","del","simpleReadValueFromPointer","pointer","awaitingDependencies","registeredTypes","typeDependencies","makeLegalFunctionName","f","createNamedFunction","body","Function","extendError","baseErrorType","errorName","errorClass","stack","toString","prototype","InternalError","throwInternalError","whenDependentTypesAreResolved","myTypes","dependentTypes","getTypeConverters","onComplete","typeConverters","myTypeConverters","registerType","forEach","unregisteredTypes","registered","dt","hasOwnProperty","getShiftFromSize","TypeError","embind_charCodes","readLatin1String","c","BindingError","throwBindingError","rawType","registeredInstance","ignoreDuplicateRegistrations","cb","ClassHandle_isAliasOf","other","ClassHandle","leftClass","$$","ptrType","registeredClass","left","rightClass","right","baseClass","upcast","throwInstanceAlreadyDeleted","obj","finalizationRegistry","detachFinalizer","handle","releaseClassHandle","smartPtr","smartPtrType","rawDestructor","runDestructor","downcastPointer","ptrClass","desiredClass","rv","downcast","registeredPointers","getInheritedInstanceCount","keys","registeredInstances","getLiveInheritedInstances","k","deletionQueue","flushPendingDeletes","deleteScheduled","delayFunction","setDelayFunction","fn","getInheritedInstance","class_","getBasestPointer","makeClassHandle","record","attachFinalizer","RegisteredPointer_fromWireType","rawPointer","getPointee","makeDefaultHandle","isSmartPointer","instancePrototype","pointeeType","toType","actualType","getActualType","registeredPointerRecord","isConst","constPointerType","pointerType","dp","FinalizationRegistry","info","register","unregister","ClassHandle_clone","preservePointerOnDelete","o","clone","getPrototypeOf","ClassHandle_delete","ClassHandle_isDeleted","ClassHandle_deleteLater","ensureOverloadTable","proto","methodName","humanName","overloadTable","prevFunc","arguments","apply","argCount","RegisteredClass","pureVirtualFunctions","upcastPointer","constNoSmartPtrRawPointerToWireType","isReference","_embind_repr","handleClass","genericPointerToWireType","rawConstructor","sharingPolicy","clonedHandle","rawShare","Emval","toHandle","nonConstNoSmartPtrRawPointerToWireType","RegisteredPointer_getPointee","rawGetPointee","RegisteredPointer_destructor","RegisteredPointer_deleteObject","RegisteredPointer","destructorFunction","dynCall","sig","args","concat","dynCallLegacy","embind__requireFunction","signature","rawFunction","argCache","fp","UnboundTypeError","getTypeName","___getTypeName","throwUnboundTypeError","types","unboundTypes","seen","visit","map","join","heap32VectorToArray","firstElement","array","craftInvokerFunction","argTypes","classType","cppInvokerFunc","cppTargetFunc","isClassMethodFunc","needsDestructorStack","returns","argsList","argsListWired","invokerFnBody","dtorStack","args1","args2","paramName","argumentList","dummy","r","new_","emval_free_list","emval_handle_array","count_emval_handles","get_first_emval","toValue","v","t","floatReadValueFromPointer","integerReadValueFromPointer","signed","emscripten_realloc_buffer","grow","ENV","getEnvStrings","strings","env","USER","LOGNAME","PATH","PWD","HOME","LANG","navigator","languages","_","x","codes","embind_init_charCodes","asmLibraryArg","p","exception_addRef","_setThrew","exception_decRef","thrown","thrownType","typeArray","caughtType","adjusted_ptr_addr","___cxa_can_catch","d","l","ea","V","dirfd","owner","group","U","target","linkpath","fa","structType","reg","fieldRecords","fields","field","getterReturnType","setterArgumentType","fieldTypes","fieldName","getter","getterContext","setter","setterContext","fromWireType","toWireType","argPackAdvance","readValueFromPointer","F","primitiveType","minRange","maxRange","ca","trueValue","falseValue","wt","ia","rawPointerType","rawConstPointerType","baseClassRawType","getActualTypeSignature","upcastSignature","downcastSignature","destructorSignature","legalFunctionName","numArguments","exposePublicSymbol","base","basePrototype","constructor_body","referenceConverter","pointerConverter","constPointerConverter","replacePublicSymbol","ha","rawClassType","rawArgTypesAddr","invokerSignature","invoker","text","rawArgTypes","splice","w","rawInvoker","context","isPureVirtual","unboundTypesHandler","Symbol","substring","className","memberFunction","ba","__emval_decref","z","q","bitshift","isUnsignedType","j","dataTypeIndex","TA","decodeMemoryView","y","stdStringIsUTF8","decodeStartPtr","currentBytePtr","stringSegment","a","ArrayBuffer","valueIsOfTypeString","Uint8ClampedArray","charCode","charSize","decodeString","encodeString","getHeap","lengthBytesUTF","HEAP","constructorSignature","ga","getterSignature","setterSignature","da","isVoid","Y","Date","now","Z","tmPtr","date","getSeconds","getMinutes","getHours","getDate","getMonth","getFullYear","getDay","start","yday","getTime","getTimezoneOffset","summerOffset","winterOffset","dst","min","guessedOffset","dstOffset","Number","nonDstOffset","max","trueOffset","setTime","$","__tzset_js","timezone","daylight","tzname","called","currentYear","winter","summer","stdTimezoneOffset","extractZone","match","toTimeString","winterName","summerName","winterNamePtr","summerNamePtr","_tzset_impl","aa","dest","copyWithin","T","requestedSize","multiple","oldSize","maxHeapSize","cutDown","overGrownHeapSize","W","__environ","environ_buf","bufSize","string","writeAsciiToMemory","X","penviron_count","penviron_buf_size","b","index","a1","sp","stackSave","stackRestore","h","a2","g","a3","n","a4","E","a5","a6","D","a7","a8","a9","O","dynCall_iiiiiijii","Q","dynCall_ji","A","m","C","ja","B","a10","P","dynCall_vij","R","dynCall_viji","M","dynCall_vj","N","handleLo","handleHi","extractor","K","L","I","H","offsetLo","offsetHi","G","J","s","S","val","receiveInstance","instance","module","exports","unshift","removeRunDependency","receiveInstantiationResult","result","instantiateArrayBuffer","receiver","fetch","credentials","then","catch","getBinaryPromise","binary","instantiate","instantiateStreaming","createWasm","calledRun","run","doRun","postRun","preRun","setTimeout","runCaller","ready","async","getUnrar","unrarFactory"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5]} \ No newline at end of file +{"version":3,"file":"node-unrar-js.js","sources":["../node_modules/node-unrar-js/esm/js/ExtractorData.helper.js","../node_modules/node-unrar-js/esm/js/Extractor.js","../node_modules/node-unrar-js/esm/js/ExtractorData.js","../node_modules/node-unrar-js/esm/js/unrar.js","../node_modules/node-unrar-js/esm/js/unrar.singleton.js","../node_modules/node-unrar-js/esm/index.esm.js"],"sourcesContent":["export class DataFile {\n constructor(data) {\n this.buffers = [];\n this.pos = 0;\n this.size = 0;\n if (data) {\n this.buffers.push(data);\n this.size = data.byteLength;\n this.pos = 0;\n }\n }\n read(size) {\n this.flatten();\n if (size + this.pos > this.size) {\n // size = this.size - this.pos;\n return null;\n }\n const oldPos = this.pos;\n this.pos += size;\n // return this.buffers[0].subarray(oldPos, this.pos);\n return this.buffers[0].slice(oldPos, this.pos);\n }\n readAll() {\n this.flatten();\n return this.buffers[0] || new Uint8Array();\n }\n write(data) {\n this.buffers.push(data);\n this.size += data.byteLength;\n this.pos += data.byteLength;\n return true;\n }\n tell() {\n return this.pos;\n }\n seek(pos, method) {\n let newPos = this.pos;\n if (method === 'SET') {\n newPos = pos;\n }\n else if (method === 'CUR') {\n newPos += pos;\n }\n else {\n newPos = this.size - pos;\n }\n if (newPos < 0 || newPos > this.size) {\n return false;\n }\n this.pos = newPos;\n return true;\n }\n flatten() {\n if (this.buffers.length <= 1) {\n return;\n }\n const newBuffer = new Uint8Array(this.size);\n let offset = 0;\n for (const buffer of this.buffers) {\n newBuffer.set(buffer, offset);\n offset += buffer.byteLength;\n }\n this.buffers = [newBuffer];\n }\n}\n//# sourceMappingURL=ExtractorData.helper.js.map","const ERROR_CODE = {\n 0: 'ERAR_SUCCESS',\n 10: 'ERAR_END_ARCHIVE',\n 11: 'ERAR_NO_MEMORY',\n 12: 'ERAR_BAD_DATA',\n 13: 'ERAR_BAD_ARCHIVE',\n 14: 'ERAR_UNKNOWN_FORMAT',\n 15: 'ERAR_EOPEN',\n 16: 'ERAR_ECREATE',\n 17: 'ERAR_ECLOSE',\n 18: 'ERAR_EREAD',\n 19: 'ERAR_EWRITE',\n 20: 'ERAR_SMALL_BUF',\n 21: 'ERAR_UNKNOWN',\n 22: 'ERAR_MISSING_PASSWORD',\n 23: 'ERAR_EREFERENCE',\n 24: 'ERAR_BAD_PASSWORD',\n};\nconst ERROR_MSG = {\n ERAR_NO_MEMORY: 'Not enough memory',\n ERAR_BAD_DATA: 'Archive header or data are damaged',\n ERAR_BAD_ARCHIVE: 'File is not RAR archive',\n ERAR_UNKNOWN_FORMAT: 'Unknown archive format',\n ERAR_EOPEN: 'File open error',\n ERAR_ECREATE: 'File create error',\n ERAR_ECLOSE: 'File close error',\n ERAR_EREAD: 'File read error',\n ERAR_EWRITE: 'File write error',\n ERAR_SMALL_BUF: 'Buffer for archive comment is too small, comment truncated',\n ERAR_UNKNOWN: 'Unknown error',\n ERAR_MISSING_PASSWORD: 'Password for encrypted file or header is not specified',\n ERAR_EREFERENCE: 'Cannot open file source for reference record',\n ERAR_BAD_PASSWORD: 'Wrong password is specified',\n};\nexport class UnrarError extends Error {\n constructor(reason, message, file) {\n super(message);\n this.reason = reason;\n this.file = file;\n }\n}\nexport class Extractor {\n // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n constructor(unrar, password = '') {\n this.unrar = unrar;\n this._password = password;\n this._archive = null;\n }\n getFileList() {\n const arcHeader = this.openArc(true);\n function* getFileHeaders() {\n while (true) {\n const arcFile = this.processNextFile(() => true);\n if (arcFile === 'ERAR_END_ARCHIVE') {\n break;\n }\n yield arcFile.fileHeader;\n }\n this.closeArc();\n }\n return { arcHeader, fileHeaders: getFileHeaders.call(this) };\n }\n extract({ files, password } = {}) {\n const arcHeader = this.openArc(false, password);\n function* getFiles() {\n let count = 0;\n while (true) {\n let shouldSkip = () => false;\n if (Array.isArray(files)) {\n if (count === files.length) {\n break;\n }\n shouldSkip = ({ name }) => !files.includes(name);\n }\n else if (files) {\n shouldSkip = (fileHeader) => !files(fileHeader);\n }\n const arcFile = this.processNextFile(shouldSkip);\n if (arcFile === 'ERAR_END_ARCHIVE') {\n break;\n }\n if (arcFile.extraction === 'skipped') {\n continue;\n }\n count++;\n yield {\n fileHeader: arcFile.fileHeader,\n };\n }\n this.closeArc();\n }\n return { arcHeader, files: getFiles.call(this) };\n }\n fileCreated(filename) {\n return;\n }\n close(fd) {\n this.closeFile(fd);\n }\n openArc(listOnly, password) {\n this._archive = new this.unrar.RarArchive();\n const header = this._archive.open(this._filePath, password ? password : this._password, listOnly);\n if (header.state.errCode !== 0) {\n throw this.getFailException(header.state.errCode, header.state.errType);\n }\n return {\n comment: header.comment,\n flags: {\n volume: (header.flags & 0x0001) !== 0,\n lock: (header.flags & 0x0004) !== 0,\n solid: (header.flags & 0x0008) !== 0,\n authInfo: (header.flags & 0x0020) !== 0,\n recoveryRecord: (header.flags & 0x0040) !== 0,\n headerEncrypted: (header.flags & 0x0080) !== 0,\n },\n };\n }\n processNextFile(shouldSkip) {\n function getDateString(dosTime) {\n const bitLen = [5, 6, 5, 5, 4, 7];\n let parts = [];\n for (const len of bitLen) {\n parts.push(dosTime & ((1 << len) - 1));\n dosTime >>= len;\n }\n parts = parts.reverse();\n const pad = (num) => (num < 10 ? '0' + num : '' + num);\n return (`${1980 + parts[0]}-${pad(parts[1])}-${pad(parts[2])}` +\n `T${pad(parts[3])}:${pad(parts[4])}:${pad(parts[5] * 2)}.000`);\n }\n function getMethod(method) {\n const methodMap = {\n 0x30: 'Storing',\n 0x31: 'Fastest',\n 0x32: 'Fast',\n 0x33: 'Normal',\n 0x34: 'Good',\n 0x35: 'Best',\n };\n return methodMap[method] || 'Unknown';\n }\n const arcFileHeader = this._archive.getFileHeader();\n if (arcFileHeader.state.errCode === 10) {\n return 'ERAR_END_ARCHIVE';\n }\n if (arcFileHeader.state.errCode !== 0) {\n throw this.getFailException(arcFileHeader.state.errCode, arcFileHeader.state.errType);\n }\n const fileHeader = {\n name: arcFileHeader.name,\n flags: {\n encrypted: (arcFileHeader.flags & 0x04) !== 0,\n solid: (arcFileHeader.flags & 0x10) !== 0,\n directory: (arcFileHeader.flags & 0x20) !== 0,\n },\n packSize: arcFileHeader.packSize,\n unpSize: arcFileHeader.unpSize,\n // hostOS: arcFileHeader.hostOS\n crc: arcFileHeader.crc,\n time: getDateString(arcFileHeader.time),\n unpVer: `${Math.floor(arcFileHeader.unpVer / 10)}.${arcFileHeader.unpVer % 10}`,\n method: getMethod(arcFileHeader.method),\n comment: arcFileHeader.comment,\n // // fileAttr: arcFileHeader.fileAttr,\n };\n const skip = shouldSkip(fileHeader);\n const fileState = this._archive.readFile(skip);\n if (fileState.errCode !== 0) {\n throw this.getFailException(fileState.errCode, fileState.errType, fileHeader.name);\n }\n return {\n fileHeader,\n extraction: skip ? 'skipped' : 'extracted',\n };\n }\n closeArc() {\n this._archive.delete();\n this._archive = null;\n }\n getFailException(errCode, _errType, file) {\n const reason = ERROR_CODE[errCode];\n this.closeArc();\n return new UnrarError(reason, ERROR_MSG[reason], file);\n }\n}\n//# sourceMappingURL=Extractor.js.map","import { DataFile } from './ExtractorData.helper';\nimport { Extractor } from './Extractor';\nexport class ExtractorData extends Extractor {\n // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types,@typescript-eslint/no-explicit-any\n constructor(unrar, data, password) {\n super(unrar, password);\n this.dataFiles = {};\n this.dataFileMap = {};\n this.currentFd = 1;\n const rarFile = {\n file: new DataFile(new Uint8Array(data)),\n fd: this.currentFd++,\n };\n this._filePath = '_defaultUnrarJS_.rar';\n this.dataFiles[this._filePath] = rarFile;\n this.dataFileMap[rarFile.fd] = this._filePath;\n }\n extract(options = {}) {\n const { arcHeader, files } = super.extract(options);\n function* getFiles() {\n for (const file of files) {\n if (!file.fileHeader.flags.directory) {\n file.extraction =\n this.dataFiles[this.getExtractedFileName(file.fileHeader.name)].file.readAll();\n }\n yield file;\n }\n }\n return { arcHeader, files: getFiles.call(this) };\n }\n getExtractedFileName(filename) {\n return `*Extracted*/${filename}`;\n }\n open(filename) {\n const dataFile = this.dataFiles[filename];\n if (!dataFile) {\n return 0;\n }\n return dataFile.fd;\n }\n create(filename) {\n const fd = this.currentFd++;\n this.dataFiles[this.getExtractedFileName(filename)] = {\n file: new DataFile(),\n fd: this.currentFd++,\n };\n this.dataFileMap[fd] = this.getExtractedFileName(filename);\n return fd;\n }\n closeFile(fd) {\n const fileData = this.dataFiles[this.dataFileMap[fd]];\n if (!fileData) {\n return;\n }\n fileData.file.seek(0, 'SET');\n }\n read(fd, buf, size) {\n const fileData = this.dataFiles[this.dataFileMap[fd]];\n if (!fileData) {\n return -1;\n }\n const data = fileData.file.read(size);\n if (data === null) {\n return -1;\n }\n this.unrar.HEAPU8.set(data, buf);\n return data.byteLength;\n }\n write(fd, buf, size) {\n const fileData = this.dataFiles[this.dataFileMap[fd]];\n if (!fileData) {\n return false;\n }\n fileData.file.write(this.unrar.HEAPU8.slice(buf, buf + size));\n return true;\n }\n tell(fd) {\n const fileData = this.dataFiles[this.dataFileMap[fd]];\n if (!fileData) {\n return -1;\n }\n return fileData.file.tell();\n }\n seek(fd, pos, method) {\n const fileData = this.dataFiles[this.dataFileMap[fd]];\n if (!fileData) {\n return false;\n }\n return fileData.file.seek(pos, method);\n }\n}\n//# sourceMappingURL=ExtractorData.js.map","\nvar Module = (() => {\n var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;\n \n return (\nfunction(Module) {\n Module = Module || {};\n\nvar Module=typeof Module!=\"undefined\"?Module:{};var readyPromiseResolve,readyPromiseReject;Module[\"ready\"]=new Promise(function(resolve,reject){readyPromiseResolve=resolve;readyPromiseReject=reject});var moduleOverrides=Object.assign({},Module);var arguments_=[];var thisProgram=\"./this.program\";var quit_=(status,toThrow)=>{throw toThrow};var ENVIRONMENT_IS_WEB=typeof window==\"object\";var ENVIRONMENT_IS_WORKER=typeof importScripts==\"function\";var ENVIRONMENT_IS_NODE=typeof process==\"object\"&&typeof process.versions==\"object\"&&typeof process.versions.node==\"string\";var scriptDirectory=\"\";function locateFile(path){if(Module[\"locateFile\"]){return Module[\"locateFile\"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!=\"undefined\"&&document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf(\"blob:\")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,\"\").lastIndexOf(\"/\")+1)}else{scriptDirectory=\"\"}{read_=url=>{var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=url=>{var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.responseType=\"arraybuffer\";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=(url,onload,onerror)=>{var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,true);xhr.responseType=\"arraybuffer\";xhr.onload=()=>{if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=title=>document.title=title}else{}var out=Module[\"print\"]||console.log.bind(console);var err=Module[\"printErr\"]||console.warn.bind(console);Object.assign(Module,moduleOverrides);moduleOverrides=null;if(Module[\"arguments\"])arguments_=Module[\"arguments\"];if(Module[\"thisProgram\"])thisProgram=Module[\"thisProgram\"];if(Module[\"quit\"])quit_=Module[\"quit\"];var tempRet0=0;var setTempRet0=value=>{tempRet0=value};var getTempRet0=()=>tempRet0;var wasmBinary;if(Module[\"wasmBinary\"])wasmBinary=Module[\"wasmBinary\"];var noExitRuntime=Module[\"noExitRuntime\"]||true;if(typeof WebAssembly!=\"object\"){abort(\"no native wasm support detected\")}var wasmMemory;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort(text)}}var UTF8Decoder=typeof TextDecoder!=\"undefined\"?new TextDecoder(\"utf8\"):undefined;function UTF8ArrayToString(heapOrArray,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var endPtr=idx;while(heapOrArray[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&heapOrArray.buffer&&UTF8Decoder){return UTF8Decoder.decode(heapOrArray.subarray(idx,endPtr))}else{var str=\"\";while(idx>10,56320|ch&1023)}}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):\"\"}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}var UTF16Decoder=typeof TextDecoder!=\"undefined\"?new TextDecoder(\"utf-16le\"):undefined;function UTF16ToString(ptr,maxBytesToRead){var endPtr=ptr;var idx=endPtr>>1;var maxIdx=idx+maxBytesToRead/2;while(!(idx>=maxIdx)&&HEAPU16[idx])++idx;endPtr=idx<<1;if(endPtr-ptr>32&&UTF16Decoder){return UTF16Decoder.decode(HEAPU8.subarray(ptr,endPtr))}else{var str=\"\";for(var i=0;!(i>=maxBytesToRead/2);++i){var codeUnit=HEAP16[ptr+i*2>>1];if(codeUnit==0)break;str+=String.fromCharCode(codeUnit)}return str}}function stringToUTF16(str,outPtr,maxBytesToWrite){if(maxBytesToWrite===undefined){maxBytesToWrite=2147483647}if(maxBytesToWrite<2)return 0;maxBytesToWrite-=2;var startPtr=outPtr;var numCharsToWrite=maxBytesToWrite>1]=codeUnit;outPtr+=2}HEAP16[outPtr>>1]=0;return outPtr-startPtr}function lengthBytesUTF16(str){return str.length*2}function UTF32ToString(ptr,maxBytesToRead){var i=0;var str=\"\";while(!(i>=maxBytesToRead/4)){var utf32=HEAP32[ptr+i*4>>2];if(utf32==0)break;++i;if(utf32>=65536){var ch=utf32-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}else{str+=String.fromCharCode(utf32)}}return str}function stringToUTF32(str,outPtr,maxBytesToWrite){if(maxBytesToWrite===undefined){maxBytesToWrite=2147483647}if(maxBytesToWrite<4)return 0;var startPtr=outPtr;var endPtr=startPtr+maxBytesToWrite-4;for(var i=0;i=55296&&codeUnit<=57343){var trailSurrogate=str.charCodeAt(++i);codeUnit=65536+((codeUnit&1023)<<10)|trailSurrogate&1023}HEAP32[outPtr>>2]=codeUnit;outPtr+=4;if(outPtr+4>endPtr)break}HEAP32[outPtr>>2]=0;return outPtr-startPtr}function lengthBytesUTF32(str){var len=0;for(var i=0;i=55296&&codeUnit<=57343)++i;len+=4}return len}function allocateUTF8(str){var size=lengthBytesUTF8(str)+1;var ret=_malloc(size);if(ret)stringToUTF8Array(str,HEAP8,ret,size);return ret}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module[\"HEAP8\"]=HEAP8=new Int8Array(buf);Module[\"HEAP16\"]=HEAP16=new Int16Array(buf);Module[\"HEAP32\"]=HEAP32=new Int32Array(buf);Module[\"HEAPU8\"]=HEAPU8=new Uint8Array(buf);Module[\"HEAPU16\"]=HEAPU16=new Uint16Array(buf);Module[\"HEAPU32\"]=HEAPU32=new Uint32Array(buf);Module[\"HEAPF32\"]=HEAPF32=new Float32Array(buf);Module[\"HEAPF64\"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module[\"INITIAL_MEMORY\"]||16777216;var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;function preRun(){if(Module[\"preRun\"]){if(typeof Module[\"preRun\"]==\"function\")Module[\"preRun\"]=[Module[\"preRun\"]];while(Module[\"preRun\"].length){addOnPreRun(Module[\"preRun\"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function postRun(){if(Module[\"postRun\"]){if(typeof Module[\"postRun\"]==\"function\")Module[\"postRun\"]=[Module[\"postRun\"]];while(Module[\"postRun\"].length){addOnPostRun(Module[\"postRun\"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){runDependencies++;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}function abort(what){{if(Module[\"onAbort\"]){Module[\"onAbort\"](what)}}what=\"Aborted(\"+what+\")\";err(what);ABORT=true;EXITSTATUS=1;what+=\". Build with -sASSERTIONS for more info.\";var e=new WebAssembly.RuntimeError(what);readyPromiseReject(e);throw e}var dataURIPrefix=\"data:application/octet-stream;base64,\";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith(\"file://\")}var wasmBinaryFile;wasmBinaryFile=\"unrar.wasm\";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw\"both async and sync fetching of the wasm failed\"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch==\"function\"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){if(!response[\"ok\"]){throw\"failed to load wasm binary file at '\"+wasmBinaryFile+\"'\"}return response[\"arrayBuffer\"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={\"a\":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module[\"asm\"]=exports;wasmMemory=Module[\"asm\"][\"ka\"];updateGlobalBufferAndViews(wasmMemory.buffer);wasmTable=Module[\"asm\"][\"oa\"];addOnInit(Module[\"asm\"][\"la\"]);removeRunDependency(\"wasm-instantiate\")}addRunDependency(\"wasm-instantiate\");function receiveInstantiationResult(result){receiveInstance(result[\"instance\"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(function(instance){return instance}).then(receiver,function(reason){err(\"failed to asynchronously prepare wasm: \"+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==\"function\"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch==\"function\"){return fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err(\"wasm streaming compile failed: \"+reason);err(\"falling back to ArrayBuffer instantiation\");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module[\"instantiateWasm\"]){try{var exports=Module[\"instantiateWasm\"](info,receiveInstance);return exports}catch(e){err(\"Module.instantiateWasm callback failed with error: \"+e);return false}}instantiateAsync().catch(readyPromiseReject);return{}}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback==\"function\"){callback(Module);continue}var func=callback.func;if(typeof func==\"number\"){if(callback.arg===undefined){getWasmTableEntry(func)()}else{getWasmTableEntry(func)(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var wasmTableMirror=[];function getWasmTableEntry(funcPtr){var func=wasmTableMirror[funcPtr];if(!func){if(funcPtr>=wasmTableMirror.length)wasmTableMirror.length=funcPtr+1;wasmTableMirror[funcPtr]=func=wasmTable.get(funcPtr)}return func}function ___cxa_allocate_exception(size){return _malloc(size+24)+24}var exceptionCaught=[];function exception_addRef(info){info.add_ref()}var uncaughtExceptionCount=0;function ___cxa_begin_catch(ptr){var info=new ExceptionInfo(ptr);if(!info.get_caught()){info.set_caught(true);uncaughtExceptionCount--}info.set_rethrown(false);exceptionCaught.push(info);exception_addRef(info);return info.get_exception_ptr()}var exceptionLast=0;function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-24;this.set_type=function(type){HEAPU32[this.ptr+4>>2]=type};this.get_type=function(){return HEAPU32[this.ptr+4>>2]};this.set_destructor=function(destructor){HEAPU32[this.ptr+8>>2]=destructor};this.get_destructor=function(){return HEAPU32[this.ptr+8>>2]};this.set_refcount=function(refcount){HEAP32[this.ptr>>2]=refcount};this.set_caught=function(caught){caught=caught?1:0;HEAP8[this.ptr+12>>0]=caught};this.get_caught=function(){return HEAP8[this.ptr+12>>0]!=0};this.set_rethrown=function(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+13>>0]=rethrown};this.get_rethrown=function(){return HEAP8[this.ptr+13>>0]!=0};this.init=function(type,destructor){this.set_adjusted_ptr(0);this.set_type(type);this.set_destructor(destructor);this.set_refcount(0);this.set_caught(false);this.set_rethrown(false)};this.add_ref=function(){var value=HEAP32[this.ptr>>2];HEAP32[this.ptr>>2]=value+1};this.release_ref=function(){var prev=HEAP32[this.ptr>>2];HEAP32[this.ptr>>2]=prev-1;return prev===1};this.set_adjusted_ptr=function(adjustedPtr){HEAPU32[this.ptr+16>>2]=adjustedPtr};this.get_adjusted_ptr=function(){return HEAPU32[this.ptr+16>>2]};this.get_exception_ptr=function(){var isPointer=___cxa_is_pointer_type(this.get_type());if(isPointer){return HEAPU32[this.excPtr>>2]}var adjusted=this.get_adjusted_ptr();if(adjusted!==0)return adjusted;return this.excPtr}}function ___cxa_free_exception(ptr){return _free(new ExceptionInfo(ptr).ptr)}function exception_decRef(info){if(info.release_ref()&&!info.get_rethrown()){var destructor=info.get_destructor();if(destructor){getWasmTableEntry(destructor)(info.excPtr)}___cxa_free_exception(info.excPtr)}}function ___cxa_end_catch(){_setThrew(0);var info=exceptionCaught.pop();exception_decRef(info);exceptionLast=0}function ___resumeException(ptr){if(!exceptionLast){exceptionLast=ptr}throw ptr}function ___cxa_find_matching_catch_2(){var thrown=exceptionLast;if(!thrown){setTempRet0(0);return 0}var info=new ExceptionInfo(thrown);info.set_adjusted_ptr(thrown);var thrownType=info.get_type();if(!thrownType){setTempRet0(0);return thrown}var typeArray=Array.prototype.slice.call(arguments);for(var i=0;i>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret}};function ___syscall_fchownat(dirfd,path,owner,group,flags){}function ___syscall_symlink(target,linkpath){}var structRegistrations={};function runDestructors(destructors){while(destructors.length){var ptr=destructors.pop();var del=destructors.pop();del(ptr)}}function simpleReadValueFromPointer(pointer){return this[\"fromWireType\"](HEAPU32[pointer>>2])}var awaitingDependencies={};var registeredTypes={};var typeDependencies={};var char_0=48;var char_9=57;function makeLegalFunctionName(name){if(undefined===name){return\"_unknown\"}name=name.replace(/[^a-zA-Z0-9_]/g,\"$\");var f=name.charCodeAt(0);if(f>=char_0&&f<=char_9){return\"_\"+name}return name}function createNamedFunction(name,body){name=makeLegalFunctionName(name);return new Function(\"body\",\"return function \"+name+\"() {\\n\"+' \"use strict\";'+\" return body.apply(this, arguments);\\n\"+\"};\\n\")(body)}function extendError(baseErrorType,errorName){var errorClass=createNamedFunction(errorName,function(message){this.name=errorName;this.message=message;var stack=new Error(message).stack;if(stack!==undefined){this.stack=this.toString()+\"\\n\"+stack.replace(/^Error(:[^\\n]*)?\\n/,\"\")}});errorClass.prototype=Object.create(baseErrorType.prototype);errorClass.prototype.constructor=errorClass;errorClass.prototype.toString=function(){if(this.message===undefined){return this.name}else{return this.name+\": \"+this.message}};return errorClass}var InternalError=undefined;function throwInternalError(message){throw new InternalError(message)}function whenDependentTypesAreResolved(myTypes,dependentTypes,getTypeConverters){myTypes.forEach(function(type){typeDependencies[type]=dependentTypes});function onComplete(typeConverters){var myTypeConverters=getTypeConverters(typeConverters);if(myTypeConverters.length!==myTypes.length){throwInternalError(\"Mismatched type converter count\")}for(var i=0;i{if(registeredTypes.hasOwnProperty(dt)){typeConverters[i]=registeredTypes[dt]}else{unregisteredTypes.push(dt);if(!awaitingDependencies.hasOwnProperty(dt)){awaitingDependencies[dt]=[]}awaitingDependencies[dt].push(()=>{typeConverters[i]=registeredTypes[dt];++registered;if(registered===unregisteredTypes.length){onComplete(typeConverters)}})}});if(0===unregisteredTypes.length){onComplete(typeConverters)}}function __embind_finalize_value_object(structType){var reg=structRegistrations[structType];delete structRegistrations[structType];var rawConstructor=reg.rawConstructor;var rawDestructor=reg.rawDestructor;var fieldRecords=reg.fields;var fieldTypes=fieldRecords.map(field=>field.getterReturnType).concat(fieldRecords.map(field=>field.setterArgumentType));whenDependentTypesAreResolved([structType],fieldTypes,fieldTypes=>{var fields={};fieldRecords.forEach((field,i)=>{var fieldName=field.fieldName;var getterReturnType=fieldTypes[i];var getter=field.getter;var getterContext=field.getterContext;var setterArgumentType=fieldTypes[i+fieldRecords.length];var setter=field.setter;var setterContext=field.setterContext;fields[fieldName]={read:ptr=>{return getterReturnType[\"fromWireType\"](getter(getterContext,ptr))},write:(ptr,o)=>{var destructors=[];setter(setterContext,ptr,setterArgumentType[\"toWireType\"](destructors,o));runDestructors(destructors)}}});return[{name:reg.name,\"fromWireType\":function(ptr){var rv={};for(var i in fields){rv[i]=fields[i].read(ptr)}rawDestructor(ptr);return rv},\"toWireType\":function(destructors,o){for(var fieldName in fields){if(!(fieldName in o)){throw new TypeError('Missing field: \"'+fieldName+'\"')}}var ptr=rawConstructor();for(fieldName in fields){fields[fieldName].write(ptr,o[fieldName])}if(destructors!==null){destructors.push(rawDestructor,ptr)}return ptr},\"argPackAdvance\":8,\"readValueFromPointer\":simpleReadValueFromPointer,destructorFunction:rawDestructor}]})}function __embind_register_bigint(primitiveType,name,size,minRange,maxRange){}function getShiftFromSize(size){switch(size){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError(\"Unknown type size: \"+size)}}function embind_init_charCodes(){var codes=new Array(256);for(var i=0;i<256;++i){codes[i]=String.fromCharCode(i)}embind_charCodes=codes}var embind_charCodes=undefined;function readLatin1String(ptr){var ret=\"\";var c=ptr;while(HEAPU8[c]){ret+=embind_charCodes[HEAPU8[c++]]}return ret}var BindingError=undefined;function throwBindingError(message){throw new BindingError(message)}function registerType(rawType,registeredInstance,options={}){if(!(\"argPackAdvance\"in registeredInstance)){throw new TypeError(\"registerType registeredInstance requires argPackAdvance\")}var name=registeredInstance.name;if(!rawType){throwBindingError('type \"'+name+'\" must have a positive integer typeid pointer')}if(registeredTypes.hasOwnProperty(rawType)){if(options.ignoreDuplicateRegistrations){return}else{throwBindingError(\"Cannot register type '\"+name+\"' twice\")}}registeredTypes[rawType]=registeredInstance;delete typeDependencies[rawType];if(awaitingDependencies.hasOwnProperty(rawType)){var callbacks=awaitingDependencies[rawType];delete awaitingDependencies[rawType];callbacks.forEach(cb=>cb())}}function __embind_register_bool(rawType,name,size,trueValue,falseValue){var shift=getShiftFromSize(size);name=readLatin1String(name);registerType(rawType,{name:name,\"fromWireType\":function(wt){return!!wt},\"toWireType\":function(destructors,o){return o?trueValue:falseValue},\"argPackAdvance\":8,\"readValueFromPointer\":function(pointer){var heap;if(size===1){heap=HEAP8}else if(size===2){heap=HEAP16}else if(size===4){heap=HEAP32}else{throw new TypeError(\"Unknown boolean type size: \"+name)}return this[\"fromWireType\"](heap[pointer>>shift])},destructorFunction:null})}function ClassHandle_isAliasOf(other){if(!(this instanceof ClassHandle)){return false}if(!(other instanceof ClassHandle)){return false}var leftClass=this.$$.ptrType.registeredClass;var left=this.$$.ptr;var rightClass=other.$$.ptrType.registeredClass;var right=other.$$.ptr;while(leftClass.baseClass){left=leftClass.upcast(left);leftClass=leftClass.baseClass}while(rightClass.baseClass){right=rightClass.upcast(right);rightClass=rightClass.baseClass}return leftClass===rightClass&&left===right}function shallowCopyInternalPointer(o){return{count:o.count,deleteScheduled:o.deleteScheduled,preservePointerOnDelete:o.preservePointerOnDelete,ptr:o.ptr,ptrType:o.ptrType,smartPtr:o.smartPtr,smartPtrType:o.smartPtrType}}function throwInstanceAlreadyDeleted(obj){function getInstanceTypeName(handle){return handle.$$.ptrType.registeredClass.name}throwBindingError(getInstanceTypeName(obj)+\" instance already deleted\")}var finalizationRegistry=false;function detachFinalizer(handle){}function runDestructor($$){if($$.smartPtr){$$.smartPtrType.rawDestructor($$.smartPtr)}else{$$.ptrType.registeredClass.rawDestructor($$.ptr)}}function releaseClassHandle($$){$$.count.value-=1;var toDelete=0===$$.count.value;if(toDelete){runDestructor($$)}}function downcastPointer(ptr,ptrClass,desiredClass){if(ptrClass===desiredClass){return ptr}if(undefined===desiredClass.baseClass){return null}var rv=downcastPointer(ptr,ptrClass,desiredClass.baseClass);if(rv===null){return null}return desiredClass.downcast(rv)}var registeredPointers={};function getInheritedInstanceCount(){return Object.keys(registeredInstances).length}function getLiveInheritedInstances(){var rv=[];for(var k in registeredInstances){if(registeredInstances.hasOwnProperty(k)){rv.push(registeredInstances[k])}}return rv}var deletionQueue=[];function flushPendingDeletes(){while(deletionQueue.length){var obj=deletionQueue.pop();obj.$$.deleteScheduled=false;obj[\"delete\"]()}}var delayFunction=undefined;function setDelayFunction(fn){delayFunction=fn;if(deletionQueue.length&&delayFunction){delayFunction(flushPendingDeletes)}}function init_embind(){Module[\"getInheritedInstanceCount\"]=getInheritedInstanceCount;Module[\"getLiveInheritedInstances\"]=getLiveInheritedInstances;Module[\"flushPendingDeletes\"]=flushPendingDeletes;Module[\"setDelayFunction\"]=setDelayFunction}var registeredInstances={};function getBasestPointer(class_,ptr){if(ptr===undefined){throwBindingError(\"ptr should not be undefined\")}while(class_.baseClass){ptr=class_.upcast(ptr);class_=class_.baseClass}return ptr}function getInheritedInstance(class_,ptr){ptr=getBasestPointer(class_,ptr);return registeredInstances[ptr]}function makeClassHandle(prototype,record){if(!record.ptrType||!record.ptr){throwInternalError(\"makeClassHandle requires ptr and ptrType\")}var hasSmartPtrType=!!record.smartPtrType;var hasSmartPtr=!!record.smartPtr;if(hasSmartPtrType!==hasSmartPtr){throwInternalError(\"Both smartPtrType and smartPtr must be specified\")}record.count={value:1};return attachFinalizer(Object.create(prototype,{$$:{value:record}}))}function RegisteredPointer_fromWireType(ptr){var rawPointer=this.getPointee(ptr);if(!rawPointer){this.destructor(ptr);return null}var registeredInstance=getInheritedInstance(this.registeredClass,rawPointer);if(undefined!==registeredInstance){if(0===registeredInstance.$$.count.value){registeredInstance.$$.ptr=rawPointer;registeredInstance.$$.smartPtr=ptr;return registeredInstance[\"clone\"]()}else{var rv=registeredInstance[\"clone\"]();this.destructor(ptr);return rv}}function makeDefaultHandle(){if(this.isSmartPointer){return makeClassHandle(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:rawPointer,smartPtrType:this,smartPtr:ptr})}else{return makeClassHandle(this.registeredClass.instancePrototype,{ptrType:this,ptr:ptr})}}var actualType=this.registeredClass.getActualType(rawPointer);var registeredPointerRecord=registeredPointers[actualType];if(!registeredPointerRecord){return makeDefaultHandle.call(this)}var toType;if(this.isConst){toType=registeredPointerRecord.constPointerType}else{toType=registeredPointerRecord.pointerType}var dp=downcastPointer(rawPointer,this.registeredClass,toType.registeredClass);if(dp===null){return makeDefaultHandle.call(this)}if(this.isSmartPointer){return makeClassHandle(toType.registeredClass.instancePrototype,{ptrType:toType,ptr:dp,smartPtrType:this,smartPtr:ptr})}else{return makeClassHandle(toType.registeredClass.instancePrototype,{ptrType:toType,ptr:dp})}}function attachFinalizer(handle){if(\"undefined\"===typeof FinalizationRegistry){attachFinalizer=handle=>handle;return handle}finalizationRegistry=new FinalizationRegistry(info=>{releaseClassHandle(info.$$)});attachFinalizer=handle=>{var $$=handle.$$;var hasSmartPtr=!!$$.smartPtr;if(hasSmartPtr){var info={$$:$$};finalizationRegistry.register(handle,info,handle)}return handle};detachFinalizer=handle=>finalizationRegistry.unregister(handle);return attachFinalizer(handle)}function ClassHandle_clone(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this)}if(this.$$.preservePointerOnDelete){this.$$.count.value+=1;return this}else{var clone=attachFinalizer(Object.create(Object.getPrototypeOf(this),{$$:{value:shallowCopyInternalPointer(this.$$)}}));clone.$$.count.value+=1;clone.$$.deleteScheduled=false;return clone}}function ClassHandle_delete(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this)}if(this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete){throwBindingError(\"Object already scheduled for deletion\")}detachFinalizer(this);releaseClassHandle(this.$$);if(!this.$$.preservePointerOnDelete){this.$$.smartPtr=undefined;this.$$.ptr=undefined}}function ClassHandle_isDeleted(){return!this.$$.ptr}function ClassHandle_deleteLater(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this)}if(this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete){throwBindingError(\"Object already scheduled for deletion\")}deletionQueue.push(this);if(deletionQueue.length===1&&delayFunction){delayFunction(flushPendingDeletes)}this.$$.deleteScheduled=true;return this}function init_ClassHandle(){ClassHandle.prototype[\"isAliasOf\"]=ClassHandle_isAliasOf;ClassHandle.prototype[\"clone\"]=ClassHandle_clone;ClassHandle.prototype[\"delete\"]=ClassHandle_delete;ClassHandle.prototype[\"isDeleted\"]=ClassHandle_isDeleted;ClassHandle.prototype[\"deleteLater\"]=ClassHandle_deleteLater}function ClassHandle(){}function ensureOverloadTable(proto,methodName,humanName){if(undefined===proto[methodName].overloadTable){var prevFunc=proto[methodName];proto[methodName]=function(){if(!proto[methodName].overloadTable.hasOwnProperty(arguments.length)){throwBindingError(\"Function '\"+humanName+\"' called with an invalid number of arguments (\"+arguments.length+\") - expects one of (\"+proto[methodName].overloadTable+\")!\")}return proto[methodName].overloadTable[arguments.length].apply(this,arguments)};proto[methodName].overloadTable=[];proto[methodName].overloadTable[prevFunc.argCount]=prevFunc}}function exposePublicSymbol(name,value,numArguments){if(Module.hasOwnProperty(name)){if(undefined===numArguments||undefined!==Module[name].overloadTable&&undefined!==Module[name].overloadTable[numArguments]){throwBindingError(\"Cannot register public name '\"+name+\"' twice\")}ensureOverloadTable(Module,name,name);if(Module.hasOwnProperty(numArguments)){throwBindingError(\"Cannot register multiple overloads of a function with the same number of arguments (\"+numArguments+\")!\")}Module[name].overloadTable[numArguments]=value}else{Module[name]=value;if(undefined!==numArguments){Module[name].numArguments=numArguments}}}function RegisteredClass(name,constructor,instancePrototype,rawDestructor,baseClass,getActualType,upcast,downcast){this.name=name;this.constructor=constructor;this.instancePrototype=instancePrototype;this.rawDestructor=rawDestructor;this.baseClass=baseClass;this.getActualType=getActualType;this.upcast=upcast;this.downcast=downcast;this.pureVirtualFunctions=[]}function upcastPointer(ptr,ptrClass,desiredClass){while(ptrClass!==desiredClass){if(!ptrClass.upcast){throwBindingError(\"Expected null or instance of \"+desiredClass.name+\", got an instance of \"+ptrClass.name)}ptr=ptrClass.upcast(ptr);ptrClass=ptrClass.baseClass}return ptr}function constNoSmartPtrRawPointerToWireType(destructors,handle){if(handle===null){if(this.isReference){throwBindingError(\"null is not a valid \"+this.name)}return 0}if(!handle.$$){throwBindingError('Cannot pass \"'+_embind_repr(handle)+'\" as a '+this.name)}if(!handle.$$.ptr){throwBindingError(\"Cannot pass deleted object as a pointer of type \"+this.name)}var handleClass=handle.$$.ptrType.registeredClass;var ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);return ptr}function genericPointerToWireType(destructors,handle){var ptr;if(handle===null){if(this.isReference){throwBindingError(\"null is not a valid \"+this.name)}if(this.isSmartPointer){ptr=this.rawConstructor();if(destructors!==null){destructors.push(this.rawDestructor,ptr)}return ptr}else{return 0}}if(!handle.$$){throwBindingError('Cannot pass \"'+_embind_repr(handle)+'\" as a '+this.name)}if(!handle.$$.ptr){throwBindingError(\"Cannot pass deleted object as a pointer of type \"+this.name)}if(!this.isConst&&handle.$$.ptrType.isConst){throwBindingError(\"Cannot convert argument of type \"+(handle.$$.smartPtrType?handle.$$.smartPtrType.name:handle.$$.ptrType.name)+\" to parameter type \"+this.name)}var handleClass=handle.$$.ptrType.registeredClass;ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);if(this.isSmartPointer){if(undefined===handle.$$.smartPtr){throwBindingError(\"Passing raw pointer to smart pointer is illegal\")}switch(this.sharingPolicy){case 0:if(handle.$$.smartPtrType===this){ptr=handle.$$.smartPtr}else{throwBindingError(\"Cannot convert argument of type \"+(handle.$$.smartPtrType?handle.$$.smartPtrType.name:handle.$$.ptrType.name)+\" to parameter type \"+this.name)}break;case 1:ptr=handle.$$.smartPtr;break;case 2:if(handle.$$.smartPtrType===this){ptr=handle.$$.smartPtr}else{var clonedHandle=handle[\"clone\"]();ptr=this.rawShare(ptr,Emval.toHandle(function(){clonedHandle[\"delete\"]()}));if(destructors!==null){destructors.push(this.rawDestructor,ptr)}}break;default:throwBindingError(\"Unsupporting sharing policy\")}}return ptr}function nonConstNoSmartPtrRawPointerToWireType(destructors,handle){if(handle===null){if(this.isReference){throwBindingError(\"null is not a valid \"+this.name)}return 0}if(!handle.$$){throwBindingError('Cannot pass \"'+_embind_repr(handle)+'\" as a '+this.name)}if(!handle.$$.ptr){throwBindingError(\"Cannot pass deleted object as a pointer of type \"+this.name)}if(handle.$$.ptrType.isConst){throwBindingError(\"Cannot convert argument of type \"+handle.$$.ptrType.name+\" to parameter type \"+this.name)}var handleClass=handle.$$.ptrType.registeredClass;var ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);return ptr}function RegisteredPointer_getPointee(ptr){if(this.rawGetPointee){ptr=this.rawGetPointee(ptr)}return ptr}function RegisteredPointer_destructor(ptr){if(this.rawDestructor){this.rawDestructor(ptr)}}function RegisteredPointer_deleteObject(handle){if(handle!==null){handle[\"delete\"]()}}function init_RegisteredPointer(){RegisteredPointer.prototype.getPointee=RegisteredPointer_getPointee;RegisteredPointer.prototype.destructor=RegisteredPointer_destructor;RegisteredPointer.prototype[\"argPackAdvance\"]=8;RegisteredPointer.prototype[\"readValueFromPointer\"]=simpleReadValueFromPointer;RegisteredPointer.prototype[\"deleteObject\"]=RegisteredPointer_deleteObject;RegisteredPointer.prototype[\"fromWireType\"]=RegisteredPointer_fromWireType}function RegisteredPointer(name,registeredClass,isReference,isConst,isSmartPointer,pointeeType,sharingPolicy,rawGetPointee,rawConstructor,rawShare,rawDestructor){this.name=name;this.registeredClass=registeredClass;this.isReference=isReference;this.isConst=isConst;this.isSmartPointer=isSmartPointer;this.pointeeType=pointeeType;this.sharingPolicy=sharingPolicy;this.rawGetPointee=rawGetPointee;this.rawConstructor=rawConstructor;this.rawShare=rawShare;this.rawDestructor=rawDestructor;if(!isSmartPointer&®isteredClass.baseClass===undefined){if(isConst){this[\"toWireType\"]=constNoSmartPtrRawPointerToWireType;this.destructorFunction=null}else{this[\"toWireType\"]=nonConstNoSmartPtrRawPointerToWireType;this.destructorFunction=null}}else{this[\"toWireType\"]=genericPointerToWireType}}function replacePublicSymbol(name,value,numArguments){if(!Module.hasOwnProperty(name)){throwInternalError(\"Replacing nonexistant public symbol\")}if(undefined!==Module[name].overloadTable&&undefined!==numArguments){Module[name].overloadTable[numArguments]=value}else{Module[name]=value;Module[name].argCount=numArguments}}function dynCallLegacy(sig,ptr,args){var f=Module[\"dynCall_\"+sig];return args&&args.length?f.apply(null,[ptr].concat(args)):f.call(null,ptr)}function dynCall(sig,ptr,args){if(sig.includes(\"j\")){return dynCallLegacy(sig,ptr,args)}return getWasmTableEntry(ptr).apply(null,args)}function getDynCaller(sig,ptr){var argCache=[];return function(){argCache.length=0;Object.assign(argCache,arguments);return dynCall(sig,ptr,argCache)}}function embind__requireFunction(signature,rawFunction){signature=readLatin1String(signature);function makeDynCaller(){if(signature.includes(\"j\")){return getDynCaller(signature,rawFunction)}return getWasmTableEntry(rawFunction)}var fp=makeDynCaller();if(typeof fp!=\"function\"){throwBindingError(\"unknown function pointer with signature \"+signature+\": \"+rawFunction)}return fp}var UnboundTypeError=undefined;function getTypeName(type){var ptr=___getTypeName(type);var rv=readLatin1String(ptr);_free(ptr);return rv}function throwUnboundTypeError(message,types){var unboundTypes=[];var seen={};function visit(type){if(seen[type]){return}if(registeredTypes[type]){return}if(typeDependencies[type]){typeDependencies[type].forEach(visit);return}unboundTypes.push(type);seen[type]=true}types.forEach(visit);throw new UnboundTypeError(message+\": \"+unboundTypes.map(getTypeName).join([\", \"]))}function __embind_register_class(rawType,rawPointerType,rawConstPointerType,baseClassRawType,getActualTypeSignature,getActualType,upcastSignature,upcast,downcastSignature,downcast,name,destructorSignature,rawDestructor){name=readLatin1String(name);getActualType=embind__requireFunction(getActualTypeSignature,getActualType);if(upcast){upcast=embind__requireFunction(upcastSignature,upcast)}if(downcast){downcast=embind__requireFunction(downcastSignature,downcast)}rawDestructor=embind__requireFunction(destructorSignature,rawDestructor);var legalFunctionName=makeLegalFunctionName(name);exposePublicSymbol(legalFunctionName,function(){throwUnboundTypeError(\"Cannot construct \"+name+\" due to unbound types\",[baseClassRawType])});whenDependentTypesAreResolved([rawType,rawPointerType,rawConstPointerType],baseClassRawType?[baseClassRawType]:[],function(base){base=base[0];var baseClass;var basePrototype;if(baseClassRawType){baseClass=base.registeredClass;basePrototype=baseClass.instancePrototype}else{basePrototype=ClassHandle.prototype}var constructor=createNamedFunction(legalFunctionName,function(){if(Object.getPrototypeOf(this)!==instancePrototype){throw new BindingError(\"Use 'new' to construct \"+name)}if(undefined===registeredClass.constructor_body){throw new BindingError(name+\" has no accessible constructor\")}var body=registeredClass.constructor_body[arguments.length];if(undefined===body){throw new BindingError(\"Tried to invoke ctor of \"+name+\" with invalid number of parameters (\"+arguments.length+\") - expected (\"+Object.keys(registeredClass.constructor_body).toString()+\") parameters instead!\")}return body.apply(this,arguments)});var instancePrototype=Object.create(basePrototype,{constructor:{value:constructor}});constructor.prototype=instancePrototype;var registeredClass=new RegisteredClass(name,constructor,instancePrototype,rawDestructor,baseClass,getActualType,upcast,downcast);var referenceConverter=new RegisteredPointer(name,registeredClass,true,false,false);var pointerConverter=new RegisteredPointer(name+\"*\",registeredClass,false,false,false);var constPointerConverter=new RegisteredPointer(name+\" const*\",registeredClass,false,true,false);registeredPointers[rawType]={pointerType:pointerConverter,constPointerType:constPointerConverter};replacePublicSymbol(legalFunctionName,constructor);return[referenceConverter,pointerConverter,constPointerConverter]})}function heap32VectorToArray(count,firstElement){var array=[];for(var i=0;i>2)+i])}return array}function __embind_register_class_constructor(rawClassType,argCount,rawArgTypesAddr,invokerSignature,invoker,rawConstructor){assert(argCount>0);var rawArgTypes=heap32VectorToArray(argCount,rawArgTypesAddr);invoker=embind__requireFunction(invokerSignature,invoker);whenDependentTypesAreResolved([],[rawClassType],function(classType){classType=classType[0];var humanName=\"constructor \"+classType.name;if(undefined===classType.registeredClass.constructor_body){classType.registeredClass.constructor_body=[]}if(undefined!==classType.registeredClass.constructor_body[argCount-1]){throw new BindingError(\"Cannot register multiple constructors with identical number of parameters (\"+(argCount-1)+\") for class '\"+classType.name+\"'! Overload resolution is currently only performed using the parameter count, not actual type info!\")}classType.registeredClass.constructor_body[argCount-1]=()=>{throwUnboundTypeError(\"Cannot construct \"+classType.name+\" due to unbound types\",rawArgTypes)};whenDependentTypesAreResolved([],rawArgTypes,function(argTypes){argTypes.splice(1,0,null);classType.registeredClass.constructor_body[argCount-1]=craftInvokerFunction(humanName,argTypes,null,invoker,rawConstructor);return[]});return[]})}function new_(constructor,argumentList){if(!(constructor instanceof Function)){throw new TypeError(\"new_ called with constructor type \"+typeof constructor+\" which is not a function\")}var dummy=createNamedFunction(constructor.name||\"unknownFunctionName\",function(){});dummy.prototype=constructor.prototype;var obj=new dummy;var r=constructor.apply(obj,argumentList);return r instanceof Object?r:obj}function craftInvokerFunction(humanName,argTypes,classType,cppInvokerFunc,cppTargetFunc){var argCount=argTypes.length;if(argCount<2){throwBindingError(\"argTypes array size mismatch! Must at least get return value and 'this' types!\")}var isClassMethodFunc=argTypes[1]!==null&&classType!==null;var needsDestructorStack=false;for(var i=1;i0?\", \":\"\")+argsListWired}invokerFnBody+=(returns?\"var rv = \":\"\")+\"invoker(fn\"+(argsListWired.length>0?\", \":\"\")+argsListWired+\");\\n\";if(needsDestructorStack){invokerFnBody+=\"runDestructors(destructors);\\n\"}else{for(var i=isClassMethodFunc?1:2;i4&&0===--emval_handle_array[handle].refcount){emval_handle_array[handle]=undefined;emval_free_list.push(handle)}}function count_emval_handles(){var count=0;for(var i=5;i{if(!handle){throwBindingError(\"Cannot use deleted val. handle = \"+handle)}return emval_handle_array[handle].value},toHandle:value=>{switch(value){case undefined:return 1;case null:return 2;case true:return 3;case false:return 4;default:{var handle=emval_free_list.length?emval_free_list.pop():emval_handle_array.length;emval_handle_array[handle]={refcount:1,value:value};return handle}}}};function __embind_register_emval(rawType,name){name=readLatin1String(name);registerType(rawType,{name:name,\"fromWireType\":function(handle){var rv=Emval.toValue(handle);__emval_decref(handle);return rv},\"toWireType\":function(destructors,value){return Emval.toHandle(value)},\"argPackAdvance\":8,\"readValueFromPointer\":simpleReadValueFromPointer,destructorFunction:null})}function _embind_repr(v){if(v===null){return\"null\"}var t=typeof v;if(t===\"object\"||t===\"array\"||t===\"function\"){return v.toString()}else{return\"\"+v}}function floatReadValueFromPointer(name,shift){switch(shift){case 2:return function(pointer){return this[\"fromWireType\"](HEAPF32[pointer>>2])};case 3:return function(pointer){return this[\"fromWireType\"](HEAPF64[pointer>>3])};default:throw new TypeError(\"Unknown float type: \"+name)}}function __embind_register_float(rawType,name,size){var shift=getShiftFromSize(size);name=readLatin1String(name);registerType(rawType,{name:name,\"fromWireType\":function(value){return value},\"toWireType\":function(destructors,value){return value},\"argPackAdvance\":8,\"readValueFromPointer\":floatReadValueFromPointer(name,shift),destructorFunction:null})}function integerReadValueFromPointer(name,shift,signed){switch(shift){case 0:return signed?function readS8FromPointer(pointer){return HEAP8[pointer]}:function readU8FromPointer(pointer){return HEAPU8[pointer]};case 1:return signed?function readS16FromPointer(pointer){return HEAP16[pointer>>1]}:function readU16FromPointer(pointer){return HEAPU16[pointer>>1]};case 2:return signed?function readS32FromPointer(pointer){return HEAP32[pointer>>2]}:function readU32FromPointer(pointer){return HEAPU32[pointer>>2]};default:throw new TypeError(\"Unknown integer type: \"+name)}}function __embind_register_integer(primitiveType,name,size,minRange,maxRange){name=readLatin1String(name);if(maxRange===-1){maxRange=4294967295}var shift=getShiftFromSize(size);var fromWireType=value=>value;if(minRange===0){var bitshift=32-8*size;fromWireType=value=>value<>>bitshift}var isUnsignedType=name.includes(\"unsigned\");var checkAssertions=(value,toTypeName)=>{};var toWireType;if(isUnsignedType){toWireType=function(destructors,value){checkAssertions(value,this.name);return value>>>0}}else{toWireType=function(destructors,value){checkAssertions(value,this.name);return value}}registerType(primitiveType,{name:name,\"fromWireType\":fromWireType,\"toWireType\":toWireType,\"argPackAdvance\":8,\"readValueFromPointer\":integerReadValueFromPointer(name,shift,minRange!==0),destructorFunction:null})}function __embind_register_memory_view(rawType,dataTypeIndex,name){var typeMapping=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array];var TA=typeMapping[dataTypeIndex];function decodeMemoryView(handle){handle=handle>>2;var heap=HEAPU32;var size=heap[handle];var data=heap[handle+1];return new TA(buffer,data,size)}name=readLatin1String(name);registerType(rawType,{name:name,\"fromWireType\":decodeMemoryView,\"argPackAdvance\":8,\"readValueFromPointer\":decodeMemoryView},{ignoreDuplicateRegistrations:true})}function __embind_register_std_string(rawType,name){name=readLatin1String(name);var stdStringIsUTF8=name===\"std::string\";registerType(rawType,{name:name,\"fromWireType\":function(value){var length=HEAPU32[value>>2];var str;if(stdStringIsUTF8){var decodeStartPtr=value+4;for(var i=0;i<=length;++i){var currentBytePtr=value+4+i;if(i==length||HEAPU8[currentBytePtr]==0){var maxRead=currentBytePtr-decodeStartPtr;var stringSegment=UTF8ToString(decodeStartPtr,maxRead);if(str===undefined){str=stringSegment}else{str+=String.fromCharCode(0);str+=stringSegment}decodeStartPtr=currentBytePtr+1}}}else{var a=new Array(length);for(var i=0;ilengthBytesUTF8(value)}else{getLength=()=>value.length}var length=getLength();var ptr=_malloc(4+length+1);HEAPU32[ptr>>2]=length;if(stdStringIsUTF8&&valueIsOfTypeString){stringToUTF8(value,ptr+4,length+1)}else{if(valueIsOfTypeString){for(var i=0;i255){_free(ptr);throwBindingError(\"String has UTF-16 code units that do not fit in 8 bits\")}HEAPU8[ptr+4+i]=charCode}}else{for(var i=0;iHEAPU16;shift=1}else if(charSize===4){decodeString=UTF32ToString;encodeString=stringToUTF32;lengthBytesUTF=lengthBytesUTF32;getHeap=()=>HEAPU32;shift=2}registerType(rawType,{name:name,\"fromWireType\":function(value){var length=HEAPU32[value>>2];var HEAP=getHeap();var str;var decodeStartPtr=value+4;for(var i=0;i<=length;++i){var currentBytePtr=value+4+i*charSize;if(i==length||HEAP[currentBytePtr>>shift]==0){var maxReadBytes=currentBytePtr-decodeStartPtr;var stringSegment=decodeString(decodeStartPtr,maxReadBytes);if(str===undefined){str=stringSegment}else{str+=String.fromCharCode(0);str+=stringSegment}decodeStartPtr=currentBytePtr+charSize}}_free(value);return str},\"toWireType\":function(destructors,value){if(!(typeof value==\"string\")){throwBindingError(\"Cannot pass non-string to C++ string type \"+name)}var length=lengthBytesUTF(value);var ptr=_malloc(4+length+charSize);HEAPU32[ptr>>2]=length>>shift;encodeString(value,ptr+4,length+charSize);if(destructors!==null){destructors.push(_free,ptr)}return ptr},\"argPackAdvance\":8,\"readValueFromPointer\":simpleReadValueFromPointer,destructorFunction:function(ptr){_free(ptr)}})}function __embind_register_value_object(rawType,name,constructorSignature,rawConstructor,destructorSignature,rawDestructor){structRegistrations[rawType]={name:readLatin1String(name),rawConstructor:embind__requireFunction(constructorSignature,rawConstructor),rawDestructor:embind__requireFunction(destructorSignature,rawDestructor),fields:[]}}function __embind_register_value_object_field(structType,fieldName,getterReturnType,getterSignature,getter,getterContext,setterArgumentType,setterSignature,setter,setterContext){structRegistrations[structType].fields.push({fieldName:readLatin1String(fieldName),getterReturnType:getterReturnType,getter:embind__requireFunction(getterSignature,getter),getterContext:getterContext,setterArgumentType:setterArgumentType,setter:embind__requireFunction(setterSignature,setter),setterContext:setterContext})}function __embind_register_void(rawType,name){name=readLatin1String(name);registerType(rawType,{isVoid:true,name:name,\"argPackAdvance\":0,\"fromWireType\":function(){return undefined},\"toWireType\":function(destructors,o){return undefined}})}function __emscripten_date_now(){return Date.now()}function __localtime_js(time,tmPtr){var date=new Date(HEAP32[time>>2]*1e3);HEAP32[tmPtr>>2]=date.getSeconds();HEAP32[tmPtr+4>>2]=date.getMinutes();HEAP32[tmPtr+8>>2]=date.getHours();HEAP32[tmPtr+12>>2]=date.getDate();HEAP32[tmPtr+16>>2]=date.getMonth();HEAP32[tmPtr+20>>2]=date.getFullYear()-1900;HEAP32[tmPtr+24>>2]=date.getDay();var start=new Date(date.getFullYear(),0,1);var yday=(date.getTime()-start.getTime())/(1e3*60*60*24)|0;HEAP32[tmPtr+28>>2]=yday;HEAP32[tmPtr+36>>2]=-(date.getTimezoneOffset()*60);var summerOffset=new Date(date.getFullYear(),6,1).getTimezoneOffset();var winterOffset=start.getTimezoneOffset();var dst=(summerOffset!=winterOffset&&date.getTimezoneOffset()==Math.min(winterOffset,summerOffset))|0;HEAP32[tmPtr+32>>2]=dst}function __mktime_js(tmPtr){var date=new Date(HEAP32[tmPtr+20>>2]+1900,HEAP32[tmPtr+16>>2],HEAP32[tmPtr+12>>2],HEAP32[tmPtr+8>>2],HEAP32[tmPtr+4>>2],HEAP32[tmPtr>>2],0);var dst=HEAP32[tmPtr+32>>2];var guessedOffset=date.getTimezoneOffset();var start=new Date(date.getFullYear(),0,1);var summerOffset=new Date(date.getFullYear(),6,1).getTimezoneOffset();var winterOffset=start.getTimezoneOffset();var dstOffset=Math.min(winterOffset,summerOffset);if(dst<0){HEAP32[tmPtr+32>>2]=Number(summerOffset!=winterOffset&&dstOffset==guessedOffset)}else if(dst>0!=(dstOffset==guessedOffset)){var nonDstOffset=Math.max(winterOffset,summerOffset);var trueOffset=dst>0?dstOffset:nonDstOffset;date.setTime(date.getTime()+(trueOffset-guessedOffset)*6e4)}HEAP32[tmPtr+24>>2]=date.getDay();var yday=(date.getTime()-start.getTime())/(1e3*60*60*24)|0;HEAP32[tmPtr+28>>2]=yday;HEAP32[tmPtr>>2]=date.getSeconds();HEAP32[tmPtr+4>>2]=date.getMinutes();HEAP32[tmPtr+8>>2]=date.getHours();HEAP32[tmPtr+12>>2]=date.getDate();HEAP32[tmPtr+16>>2]=date.getMonth();return date.getTime()/1e3|0}function _tzset_impl(timezone,daylight,tzname){var currentYear=(new Date).getFullYear();var winter=new Date(currentYear,0,1);var summer=new Date(currentYear,6,1);var winterOffset=winter.getTimezoneOffset();var summerOffset=summer.getTimezoneOffset();var stdTimezoneOffset=Math.max(winterOffset,summerOffset);HEAP32[timezone>>2]=stdTimezoneOffset*60;HEAP32[daylight>>2]=Number(winterOffset!=summerOffset);function extractZone(date){var match=date.toTimeString().match(/\\(([A-Za-z ]+)\\)$/);return match?match[1]:\"GMT\"}var winterName=extractZone(winter);var summerName=extractZone(summer);var winterNamePtr=allocateUTF8(winterName);var summerNamePtr=allocateUTF8(summerName);if(summerOffset>2]=winterNamePtr;HEAPU32[tzname+4>>2]=summerNamePtr}else{HEAPU32[tzname>>2]=summerNamePtr;HEAPU32[tzname+4>>2]=winterNamePtr}}function __tzset_js(timezone,daylight,tzname){if(__tzset_js.called)return;__tzset_js.called=true;_tzset_impl(timezone,daylight,tzname)}function _abort(){abort(\"\")}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function getHeapMax(){return 2147483648}function emscripten_realloc_buffer(size){try{wasmMemory.grow(size-buffer.byteLength+65535>>>16);updateGlobalBufferAndViews(wasmMemory.buffer);return 1}catch(e){}}function _emscripten_resize_heap(requestedSize){var oldSize=HEAPU8.length;requestedSize=requestedSize>>>0;var maxHeapSize=getHeapMax();if(requestedSize>maxHeapSize){return false}let alignUp=(x,multiple)=>x+(multiple-x%multiple)%multiple;for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=emscripten_realloc_buffer(newSize);if(replacement){return true}}return false}var ENV={};function getExecutableName(){return thisProgram||\"./this.program\"}function getEnvStrings(){if(!getEnvStrings.strings){var lang=(typeof navigator==\"object\"&&navigator.languages&&navigator.languages[0]||\"C\").replace(\"-\",\"_\")+\".UTF-8\";var env={\"USER\":\"web_user\",\"LOGNAME\":\"web_user\",\"PATH\":\"/\",\"PWD\":\"/\",\"HOME\":\"/home/web_user\",\"LANG\":lang,\"_\":getExecutableName()};for(var x in ENV){if(ENV[x]===undefined)delete env[x];else env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(x+\"=\"+env[x])}getEnvStrings.strings=strings}return getEnvStrings.strings}function _environ_get(__environ,environ_buf){var bufSize=0;getEnvStrings().forEach(function(string,i){var ptr=environ_buf+bufSize;HEAPU32[__environ+i*4>>2]=ptr;writeAsciiToMemory(string,ptr);bufSize+=string.length+1});return 0}function _environ_sizes_get(penviron_count,penviron_buf_size){var strings=getEnvStrings();HEAPU32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(function(string){bufSize+=string.length+1});HEAPU32[penviron_buf_size>>2]=bufSize;return 0}function _getTempRet0(){return getTempRet0()}function _jsClose(handleLo,handleHi){return Module.extractor.close((handleLo>>>0)+handleHi*4294967296)}function _jsCreate(filename){const handle=Module.extractor.create(UTF32ToString(filename));Module.setTempRet0(handle/4294967296|0);return handle%4294967296}function _jsOpen(filename){const handle=Module.extractor.open(UTF32ToString(filename));Module.setTempRet0(handle/4294967296|0);return handle%4294967296}function _jsRead(handleLo,handleHi,buf,size){return Module.extractor.read((handleLo>>>0)+handleHi*4294967296,buf,size)}function _jsSeek(handleLo,handleHi,offsetLo,offsetHi,method){return Module.extractor.seek((handleLo>>>0)+handleHi*4294967296,(offsetLo>>>0)+offsetHi*4294967296,UTF8ToString(method))}function _jsTell(handleLo,handleHi){const pos=Module.extractor.tell((handleLo>>>0)+handleHi*4294967296);Module.setTempRet0(pos/4294967296|0);return pos%4294967296}function _jsWrite(handleLo,handleHi,buf,size){return Module.extractor.write((handleLo>>>0)+handleHi*4294967296,buf,size)}function _llvm_eh_typeid_for(type){return type}function _setTempRet0(val){setTempRet0(val)}InternalError=Module[\"InternalError\"]=extendError(Error,\"InternalError\");embind_init_charCodes();BindingError=Module[\"BindingError\"]=extendError(Error,\"BindingError\");init_ClassHandle();init_embind();init_RegisteredPointer();UnboundTypeError=Module[\"UnboundTypeError\"]=extendError(Error,\"UnboundTypeError\");init_emval();var asmLibraryArg={\"p\":___cxa_allocate_exception,\"r\":___cxa_begin_catch,\"t\":___cxa_end_catch,\"c\":___cxa_find_matching_catch_2,\"d\":___cxa_find_matching_catch_3,\"l\":___cxa_find_matching_catch_4,\"ea\":___cxa_free_exception,\"o\":___cxa_throw,\"e\":___resumeException,\"V\":___syscall_fchownat,\"U\":___syscall_symlink,\"fa\":__embind_finalize_value_object,\"F\":__embind_register_bigint,\"ca\":__embind_register_bool,\"ia\":__embind_register_class,\"ha\":__embind_register_class_constructor,\"w\":__embind_register_class_function,\"ba\":__embind_register_emval,\"z\":__embind_register_float,\"q\":__embind_register_integer,\"j\":__embind_register_memory_view,\"y\":__embind_register_std_string,\"u\":__embind_register_std_wstring,\"v\":__embind_register_value_object,\"ga\":__embind_register_value_object_field,\"da\":__embind_register_void,\"Y\":__emscripten_date_now,\"Z\":__localtime_js,\"_\":__mktime_js,\"$\":__tzset_js,\"x\":_abort,\"aa\":_emscripten_memcpy_big,\"T\":_emscripten_resize_heap,\"W\":_environ_get,\"X\":_environ_sizes_get,\"a\":_getTempRet0,\"b\":invoke_ii,\"h\":invoke_iii,\"g\":invoke_iiii,\"n\":invoke_iiiii,\"E\":invoke_iiiiiii,\"D\":invoke_iiiiiiiiii,\"O\":invoke_iiiiiijii,\"Q\":invoke_ji,\"A\":invoke_v,\"m\":invoke_vi,\"f\":invoke_vii,\"i\":invoke_viii,\"C\":invoke_viiii,\"ja\":invoke_viiiii,\"B\":invoke_viiiiiiiii,\"k\":invoke_viiiiiiiiii,\"P\":invoke_vij,\"R\":invoke_viji,\"M\":invoke_vj,\"N\":_jsClose,\"K\":_jsCreate,\"L\":_jsOpen,\"I\":_jsRead,\"H\":_jsSeek,\"G\":_jsTell,\"J\":_jsWrite,\"s\":_llvm_eh_typeid_for,\"S\":_setTempRet0};var asm=createWasm();var ___wasm_call_ctors=Module[\"___wasm_call_ctors\"]=function(){return(___wasm_call_ctors=Module[\"___wasm_call_ctors\"]=Module[\"asm\"][\"la\"]).apply(null,arguments)};var _free=Module[\"_free\"]=function(){return(_free=Module[\"_free\"]=Module[\"asm\"][\"ma\"]).apply(null,arguments)};var _malloc=Module[\"_malloc\"]=function(){return(_malloc=Module[\"_malloc\"]=Module[\"asm\"][\"na\"]).apply(null,arguments)};var ___getTypeName=Module[\"___getTypeName\"]=function(){return(___getTypeName=Module[\"___getTypeName\"]=Module[\"asm\"][\"pa\"]).apply(null,arguments)};var ___embind_register_native_and_builtin_types=Module[\"___embind_register_native_and_builtin_types\"]=function(){return(___embind_register_native_and_builtin_types=Module[\"___embind_register_native_and_builtin_types\"]=Module[\"asm\"][\"qa\"]).apply(null,arguments)};var _setThrew=Module[\"_setThrew\"]=function(){return(_setThrew=Module[\"_setThrew\"]=Module[\"asm\"][\"ra\"]).apply(null,arguments)};var stackSave=Module[\"stackSave\"]=function(){return(stackSave=Module[\"stackSave\"]=Module[\"asm\"][\"sa\"]).apply(null,arguments)};var stackRestore=Module[\"stackRestore\"]=function(){return(stackRestore=Module[\"stackRestore\"]=Module[\"asm\"][\"ta\"]).apply(null,arguments)};var ___cxa_can_catch=Module[\"___cxa_can_catch\"]=function(){return(___cxa_can_catch=Module[\"___cxa_can_catch\"]=Module[\"asm\"][\"ua\"]).apply(null,arguments)};var ___cxa_is_pointer_type=Module[\"___cxa_is_pointer_type\"]=function(){return(___cxa_is_pointer_type=Module[\"___cxa_is_pointer_type\"]=Module[\"asm\"][\"va\"]).apply(null,arguments)};var dynCall_viji=Module[\"dynCall_viji\"]=function(){return(dynCall_viji=Module[\"dynCall_viji\"]=Module[\"asm\"][\"wa\"]).apply(null,arguments)};var dynCall_ji=Module[\"dynCall_ji\"]=function(){return(dynCall_ji=Module[\"dynCall_ji\"]=Module[\"asm\"][\"xa\"]).apply(null,arguments)};var dynCall_vij=Module[\"dynCall_vij\"]=function(){return(dynCall_vij=Module[\"dynCall_vij\"]=Module[\"asm\"][\"ya\"]).apply(null,arguments)};var dynCall_iiiiiijii=Module[\"dynCall_iiiiiijii\"]=function(){return(dynCall_iiiiiijii=Module[\"dynCall_iiiiiijii\"]=Module[\"asm\"][\"za\"]).apply(null,arguments)};var dynCall_vj=Module[\"dynCall_vj\"]=function(){return(dynCall_vj=Module[\"dynCall_vj\"]=Module[\"asm\"][\"Aa\"]).apply(null,arguments)};function invoke_vi(index,a1){var sp=stackSave();try{getWasmTableEntry(index)(a1)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_ii(index,a1){var sp=stackSave();try{return getWasmTableEntry(index)(a1)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iii(index,a1,a2){var sp=stackSave();try{return getWasmTableEntry(index)(a1,a2)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_vii(index,a1,a2){var sp=stackSave();try{getWasmTableEntry(index)(a1,a2)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viii(index,a1,a2,a3){var sp=stackSave();try{getWasmTableEntry(index)(a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiii(index,a1,a2,a3,a4){var sp=stackSave();try{return getWasmTableEntry(index)(a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiii(index,a1,a2,a3){var sp=stackSave();try{return getWasmTableEntry(index)(a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiiii(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{return getWasmTableEntry(index)(a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9){var sp=stackSave();try{return getWasmTableEntry(index)(a1,a2,a3,a4,a5,a6,a7,a8,a9)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiii(index,a1,a2,a3,a4){var sp=stackSave();try{getWasmTableEntry(index)(a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9){var sp=stackSave();try{getWasmTableEntry(index)(a1,a2,a3,a4,a5,a6,a7,a8,a9)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_v(index){var sp=stackSave();try{getWasmTableEntry(index)()}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiiii(index,a1,a2,a3,a4,a5){var sp=stackSave();try{getWasmTableEntry(index)(a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10){var sp=stackSave();try{getWasmTableEntry(index)(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viji(index,a1,a2,a3,a4){var sp=stackSave();try{dynCall_viji(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_ji(index,a1){var sp=stackSave();try{return dynCall_ji(index,a1)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_vij(index,a1,a2,a3){var sp=stackSave();try{dynCall_vij(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiiijii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9){var sp=stackSave();try{return dynCall_iiiiiijii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_vj(index,a1,a2){var sp=stackSave();try{dynCall_vj(index,a1,a2)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}Module[\"setTempRet0\"]=setTempRet0;var calledRun;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function run(args){args=args||arguments_;if(runDependencies>0){return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module[\"calledRun\"]=true;if(ABORT)return;initRuntime();readyPromiseResolve(Module);if(Module[\"onRuntimeInitialized\"])Module[\"onRuntimeInitialized\"]();postRun()}if(Module[\"setStatus\"]){Module[\"setStatus\"](\"Running...\");setTimeout(function(){setTimeout(function(){Module[\"setStatus\"](\"\")},1);doRun()},1)}else{doRun()}}Module[\"run\"]=run;if(Module[\"preInit\"]){if(typeof Module[\"preInit\"]==\"function\")Module[\"preInit\"]=[Module[\"preInit\"]];while(Module[\"preInit\"].length>0){Module[\"preInit\"].pop()()}}run();\n\n\n return Module.ready\n}\n);\n})();\nexport default Module;","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport unrarFactory from './unrar';\nlet unrar;\nexport async function getUnrar(options) {\n if (!unrar) {\n unrar = await unrarFactory(options);\n }\n return unrar;\n}\n//# sourceMappingURL=unrar.singleton.js.map","import { ExtractorData } from './js/ExtractorData';\nimport { getUnrar } from './js/unrar.singleton';\nexport * from './js/Extractor';\nexport async function createExtractorFromData({ wasmBinary, data, password = '', }) {\n const unrar = await getUnrar(wasmBinary && { wasmBinary });\n const extractor = new ExtractorData(unrar, data, password);\n unrar.extractor = extractor;\n return extractor;\n}\n//# sourceMappingURL=index.esm.js.map"],"names":["DataFile","constructor","data","this","buffers","pos","size","push","byteLength","read","flatten","oldPos","slice","readAll","Uint8Array","write","tell","seek","method","newPos","length","newBuffer","offset","buffer","set","ERROR_CODE","ERROR_MSG","ERAR_NO_MEMORY","ERAR_BAD_DATA","ERAR_BAD_ARCHIVE","ERAR_UNKNOWN_FORMAT","ERAR_EOPEN","ERAR_ECREATE","ERAR_ECLOSE","ERAR_EREAD","ERAR_EWRITE","ERAR_SMALL_BUF","ERAR_UNKNOWN","ERAR_MISSING_PASSWORD","ERAR_EREFERENCE","ERAR_BAD_PASSWORD","UnrarError","Error","reason","message","file","super","Extractor","unrar","password","_password","_archive","getFileList","arcHeader","openArc","fileHeaders","arcFile","processNextFile","fileHeader","closeArc","call","extract","files","count","shouldSkip","Array","isArray","name","includes","extraction","fileCreated","filename","close","fd","closeFile","listOnly","RarArchive","header","open","_filePath","state","errCode","getFailException","errType","comment","flags","volume","lock","solid","authInfo","recoveryRecord","headerEncrypted","arcFileHeader","getFileHeader","encrypted","directory","packSize","unpSize","crc","time","dosTime","bitLen","parts","len","reverse","pad","num","getDateString","unpVer","Math","floor","skip","fileState","readFile","delete","_errType","ExtractorData","dataFiles","dataFileMap","currentFd","rarFile","options","getExtractedFileName","dataFile","create","fileData","buf","HEAPU8","_scriptDir","Module","document","currentScript","src","undefined","readyPromiseResolve","readyPromiseReject","Promise","resolve","reject","readAsync","readBinary","moduleOverrides","Object","assign","thisProgram","ENVIRONMENT_IS_WEB","window","ENVIRONMENT_IS_WORKER","importScripts","scriptDirectory","self","location","href","indexOf","substr","replace","lastIndexOf","url","xhr","XMLHttpRequest","responseType","send","response","onload","onerror","status","console","log","bind","err","warn","wasmBinary","wasmMemory","tempRet0","setTempRet0","value","WebAssembly","abort","ABORT","UTF8Decoder","TextDecoder","UTF8ToString","ptr","maxBytesToRead","heapOrArray","idx","endIdx","endPtr","decode","subarray","str","u0","u1","u2","String","fromCharCode","ch","UTF8ArrayToString","stringToUTF8Array","heap","outIdx","maxBytesToWrite","startIdx","i","u","charCodeAt","lengthBytesUTF8","HEAP8","HEAP16","HEAPU16","HEAP32","HEAPU32","HEAPF32","HEAPF64","wasmTable","UTF16Decoder","UTF16ToString","maxIdx","codeUnit","stringToUTF16","outPtr","startPtr","numCharsToWrite","lengthBytesUTF16","UTF32ToString","utf32","stringToUTF32","lengthBytesUTF32","allocateUTF8","ret","_malloc","updateGlobalBufferAndViews","Int8Array","Int16Array","Int32Array","Uint16Array","Uint32Array","Float32Array","Float64Array","wasmBinaryFile","path","__ATPRERUN__","__ATINIT__","__ATPOSTRUN__","runDependencies","dependenciesFulfilled","what","e","RuntimeError","isDataURI","startsWith","isFileURI","getBinary","callRuntimeCallbacks","callbacks","callback","shift","func","arg","getWasmTableEntry","wasmTableMirror","funcPtr","get","exceptionCaught","exceptionLast","ExceptionInfo","excPtr","set_type","type","get_type","set_destructor","destructor","get_destructor","set_refcount","refcount","set_caught","caught","get_caught","set_rethrown","rethrown","get_rethrown","init","set_adjusted_ptr","add_ref","release_ref","prev","adjustedPtr","get_adjusted_ptr","get_exception_ptr","___cxa_is_pointer_type","adjusted","___cxa_free_exception","_free","structRegistrations","runDestructors","destructors","pop","del","simpleReadValueFromPointer","pointer","awaitingDependencies","registeredTypes","typeDependencies","makeLegalFunctionName","f","createNamedFunction","body","Function","extendError","baseErrorType","errorName","errorClass","stack","toString","prototype","InternalError","throwInternalError","whenDependentTypesAreResolved","myTypes","dependentTypes","getTypeConverters","onComplete","typeConverters","myTypeConverters","registerType","forEach","unregisteredTypes","registered","dt","hasOwnProperty","getShiftFromSize","TypeError","embind_charCodes","readLatin1String","c","BindingError","throwBindingError","rawType","registeredInstance","ignoreDuplicateRegistrations","cb","ClassHandle_isAliasOf","other","ClassHandle","leftClass","$$","ptrType","registeredClass","left","rightClass","right","baseClass","upcast","throwInstanceAlreadyDeleted","obj","finalizationRegistry","detachFinalizer","handle","releaseClassHandle","smartPtr","smartPtrType","rawDestructor","runDestructor","downcastPointer","ptrClass","desiredClass","rv","downcast","registeredPointers","getInheritedInstanceCount","keys","registeredInstances","getLiveInheritedInstances","k","deletionQueue","flushPendingDeletes","deleteScheduled","delayFunction","setDelayFunction","fn","getInheritedInstance","class_","getBasestPointer","makeClassHandle","record","attachFinalizer","RegisteredPointer_fromWireType","rawPointer","getPointee","makeDefaultHandle","isSmartPointer","instancePrototype","pointeeType","toType","actualType","getActualType","registeredPointerRecord","isConst","constPointerType","pointerType","dp","FinalizationRegistry","info","register","unregister","ClassHandle_clone","preservePointerOnDelete","o","clone","getPrototypeOf","ClassHandle_delete","ClassHandle_isDeleted","ClassHandle_deleteLater","ensureOverloadTable","proto","methodName","humanName","overloadTable","prevFunc","arguments","apply","argCount","RegisteredClass","pureVirtualFunctions","upcastPointer","constNoSmartPtrRawPointerToWireType","isReference","_embind_repr","handleClass","genericPointerToWireType","rawConstructor","sharingPolicy","clonedHandle","rawShare","Emval","toHandle","nonConstNoSmartPtrRawPointerToWireType","RegisteredPointer_getPointee","rawGetPointee","RegisteredPointer_destructor","RegisteredPointer_deleteObject","RegisteredPointer","destructorFunction","dynCall","sig","args","concat","dynCallLegacy","embind__requireFunction","signature","rawFunction","argCache","fp","UnboundTypeError","getTypeName","___getTypeName","throwUnboundTypeError","types","unboundTypes","seen","visit","map","join","heap32VectorToArray","firstElement","array","craftInvokerFunction","argTypes","classType","cppInvokerFunc","cppTargetFunc","isClassMethodFunc","needsDestructorStack","returns","argsList","argsListWired","invokerFnBody","dtorStack","args1","args2","paramName","argumentList","dummy","r","new_","emval_free_list","emval_handle_array","count_emval_handles","get_first_emval","toValue","v","t","floatReadValueFromPointer","integerReadValueFromPointer","signed","emscripten_realloc_buffer","grow","ENV","getEnvStrings","strings","env","USER","LOGNAME","PATH","PWD","HOME","LANG","navigator","languages","_","x","codes","embind_init_charCodes","asmLibraryArg","p","exception_addRef","_setThrew","exception_decRef","thrown","thrownType","typeArray","caughtType","adjusted_ptr_addr","___cxa_can_catch","d","l","ea","V","dirfd","owner","group","U","target","linkpath","fa","structType","reg","fieldRecords","fields","field","getterReturnType","setterArgumentType","fieldTypes","fieldName","getter","getterContext","setter","setterContext","fromWireType","toWireType","argPackAdvance","readValueFromPointer","F","primitiveType","minRange","maxRange","ca","trueValue","falseValue","wt","ia","rawPointerType","rawConstPointerType","baseClassRawType","getActualTypeSignature","upcastSignature","downcastSignature","destructorSignature","legalFunctionName","numArguments","exposePublicSymbol","base","basePrototype","constructor_body","referenceConverter","pointerConverter","constPointerConverter","replacePublicSymbol","ha","rawClassType","rawArgTypesAddr","invokerSignature","invoker","text","rawArgTypes","splice","w","rawInvoker","context","isPureVirtual","unboundTypesHandler","Symbol","substring","className","memberFunction","ba","__emval_decref","z","q","bitshift","isUnsignedType","j","dataTypeIndex","TA","decodeMemoryView","y","stdStringIsUTF8","decodeStartPtr","currentBytePtr","stringSegment","a","ArrayBuffer","valueIsOfTypeString","Uint8ClampedArray","charCode","charSize","decodeString","encodeString","getHeap","lengthBytesUTF","HEAP","constructorSignature","ga","getterSignature","setterSignature","da","isVoid","Y","Date","now","Z","tmPtr","date","getSeconds","getMinutes","getHours","getDate","getMonth","getFullYear","getDay","start","yday","getTime","getTimezoneOffset","summerOffset","winterOffset","dst","min","guessedOffset","dstOffset","Number","nonDstOffset","max","trueOffset","setTime","$","__tzset_js","timezone","daylight","tzname","called","currentYear","winter","summer","stdTimezoneOffset","extractZone","match","toTimeString","winterName","summerName","winterNamePtr","summerNamePtr","_tzset_impl","aa","dest","copyWithin","T","requestedSize","multiple","oldSize","maxHeapSize","cutDown","overGrownHeapSize","W","__environ","environ_buf","bufSize","string","writeAsciiToMemory","X","penviron_count","penviron_buf_size","b","index","a1","sp","stackSave","stackRestore","h","a2","g","a3","n","a4","E","a5","a6","D","a7","a8","a9","O","dynCall_iiiiiijii","Q","dynCall_ji","A","m","C","ja","B","a10","P","dynCall_vij","R","dynCall_viji","M","dynCall_vj","N","handleLo","handleHi","extractor","K","L","I","H","offsetLo","offsetHi","G","J","s","S","val","receiveInstance","instance","module","exports","unshift","removeRunDependency","receiveInstantiationResult","result","instantiateArrayBuffer","receiver","fetch","credentials","then","catch","getBinaryPromise","binary","instantiate","instantiateStreaming","createWasm","calledRun","run","doRun","postRun","preRun","setTimeout","runCaller","ready","async","getUnrar","unrarFactory"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5]} \ No newline at end of file diff --git a/dist/showdown-highlight.js.map b/dist/showdown-highlight.js.map index 194609c..a009631 100644 --- a/dist/showdown-highlight.js.map +++ b/dist/showdown-highlight.js.map @@ -1 +1 @@ -{"version":3,"file":"showdown-highlight.js","sources":["../node_modules/he/he.js","../node_modules/regex-escape/lib/index.js","../node_modules/html-encoder-decoder/lib/index.js","../node_modules/showdown/dist/showdown.js","../node_modules/highlight.js/lib/core.js","../node_modules/highlight.js/lib/languages/1c.js","../node_modules/highlight.js/lib/languages/abnf.js","../node_modules/highlight.js/lib/languages/accesslog.js","../node_modules/highlight.js/lib/languages/actionscript.js","../node_modules/highlight.js/lib/languages/ada.js","../node_modules/highlight.js/lib/languages/angelscript.js","../node_modules/highlight.js/lib/languages/apache.js","../node_modules/highlight.js/lib/languages/applescript.js","../node_modules/highlight.js/lib/languages/arcade.js","../node_modules/highlight.js/lib/languages/arduino.js","../node_modules/highlight.js/lib/languages/armasm.js","../node_modules/highlight.js/lib/languages/xml.js","../node_modules/highlight.js/lib/languages/asciidoc.js","../node_modules/highlight.js/lib/languages/aspectj.js","../node_modules/highlight.js/lib/languages/autohotkey.js","../node_modules/highlight.js/lib/languages/autoit.js","../node_modules/highlight.js/lib/languages/avrasm.js","../node_modules/highlight.js/lib/languages/awk.js","../node_modules/highlight.js/lib/languages/axapta.js","../node_modules/highlight.js/lib/languages/bash.js","../node_modules/highlight.js/lib/languages/basic.js","../node_modules/highlight.js/lib/languages/bnf.js","../node_modules/highlight.js/lib/languages/brainfuck.js","../node_modules/highlight.js/lib/languages/c.js","../node_modules/highlight.js/lib/languages/cal.js","../node_modules/highlight.js/lib/languages/capnproto.js","../node_modules/highlight.js/lib/languages/ceylon.js","../node_modules/highlight.js/lib/languages/clean.js","../node_modules/highlight.js/lib/languages/clojure.js","../node_modules/highlight.js/lib/languages/clojure-repl.js","../node_modules/highlight.js/lib/languages/cmake.js","../node_modules/highlight.js/lib/languages/coffeescript.js","../node_modules/highlight.js/lib/languages/coq.js","../node_modules/highlight.js/lib/languages/cos.js","../node_modules/highlight.js/lib/languages/cpp.js","../node_modules/highlight.js/lib/languages/crmsh.js","../node_modules/highlight.js/lib/languages/crystal.js","../node_modules/highlight.js/lib/languages/csharp.js","../node_modules/highlight.js/lib/languages/csp.js","../node_modules/highlight.js/lib/languages/css.js","../node_modules/highlight.js/lib/languages/d.js","../node_modules/highlight.js/lib/languages/markdown.js","../node_modules/highlight.js/lib/languages/dart.js","../node_modules/highlight.js/lib/languages/delphi.js","../node_modules/highlight.js/lib/languages/diff.js","../node_modules/highlight.js/lib/languages/django.js","../node_modules/highlight.js/lib/languages/dns.js","../node_modules/highlight.js/lib/languages/dockerfile.js","../node_modules/highlight.js/lib/languages/dos.js","../node_modules/highlight.js/lib/languages/dsconfig.js","../node_modules/highlight.js/lib/languages/dts.js","../node_modules/highlight.js/lib/languages/dust.js","../node_modules/highlight.js/lib/languages/ebnf.js","../node_modules/highlight.js/lib/languages/elixir.js","../node_modules/highlight.js/lib/languages/elm.js","../node_modules/highlight.js/lib/languages/ruby.js","../node_modules/highlight.js/lib/languages/erb.js","../node_modules/highlight.js/lib/languages/erlang-repl.js","../node_modules/highlight.js/lib/languages/erlang.js","../node_modules/highlight.js/lib/languages/excel.js","../node_modules/highlight.js/lib/languages/fix.js","../node_modules/highlight.js/lib/languages/flix.js","../node_modules/highlight.js/lib/languages/fortran.js","../node_modules/highlight.js/lib/languages/fsharp.js","../node_modules/highlight.js/lib/languages/gams.js","../node_modules/highlight.js/lib/languages/gauss.js","../node_modules/highlight.js/lib/languages/gcode.js","../node_modules/highlight.js/lib/languages/gherkin.js","../node_modules/highlight.js/lib/languages/glsl.js","../node_modules/highlight.js/lib/languages/gml.js","../node_modules/highlight.js/lib/languages/go.js","../node_modules/highlight.js/lib/languages/golo.js","../node_modules/highlight.js/lib/languages/gradle.js","../node_modules/highlight.js/lib/languages/graphql.js","../node_modules/highlight.js/lib/languages/groovy.js","../node_modules/highlight.js/lib/languages/haml.js","../node_modules/highlight.js/lib/languages/handlebars.js","../node_modules/highlight.js/lib/languages/haskell.js","../node_modules/highlight.js/lib/languages/haxe.js","../node_modules/highlight.js/lib/languages/hsp.js","../node_modules/highlight.js/lib/languages/http.js","../node_modules/highlight.js/lib/languages/hy.js","../node_modules/highlight.js/lib/languages/inform7.js","../node_modules/highlight.js/lib/languages/ini.js","../node_modules/highlight.js/lib/languages/irpf90.js","../node_modules/highlight.js/lib/languages/isbl.js","../node_modules/highlight.js/lib/languages/java.js","../node_modules/highlight.js/lib/languages/javascript.js","../node_modules/highlight.js/lib/languages/jboss-cli.js","../node_modules/highlight.js/lib/languages/json.js","../node_modules/highlight.js/lib/languages/julia.js","../node_modules/highlight.js/lib/languages/julia-repl.js","../node_modules/highlight.js/lib/languages/kotlin.js","../node_modules/highlight.js/lib/languages/lasso.js","../node_modules/highlight.js/lib/languages/latex.js","../node_modules/highlight.js/lib/languages/ldif.js","../node_modules/highlight.js/lib/languages/leaf.js","../node_modules/highlight.js/lib/languages/less.js","../node_modules/highlight.js/lib/languages/lisp.js","../node_modules/highlight.js/lib/languages/livecodeserver.js","../node_modules/highlight.js/lib/languages/livescript.js","../node_modules/highlight.js/lib/languages/llvm.js","../node_modules/highlight.js/lib/languages/lsl.js","../node_modules/highlight.js/lib/languages/lua.js","../node_modules/highlight.js/lib/languages/makefile.js","../node_modules/highlight.js/lib/languages/mathematica.js","../node_modules/highlight.js/lib/languages/matlab.js","../node_modules/highlight.js/lib/languages/maxima.js","../node_modules/highlight.js/lib/languages/mel.js","../node_modules/highlight.js/lib/languages/mercury.js","../node_modules/highlight.js/lib/languages/mipsasm.js","../node_modules/highlight.js/lib/languages/mizar.js","../node_modules/highlight.js/lib/languages/perl.js","../node_modules/highlight.js/lib/languages/mojolicious.js","../node_modules/highlight.js/lib/languages/monkey.js","../node_modules/highlight.js/lib/languages/moonscript.js","../node_modules/highlight.js/lib/languages/n1ql.js","../node_modules/highlight.js/lib/languages/nestedtext.js","../node_modules/highlight.js/lib/languages/nginx.js","../node_modules/highlight.js/lib/languages/nim.js","../node_modules/highlight.js/lib/languages/nix.js","../node_modules/highlight.js/lib/languages/node-repl.js","../node_modules/highlight.js/lib/languages/nsis.js","../node_modules/highlight.js/lib/languages/objectivec.js","../node_modules/highlight.js/lib/languages/ocaml.js","../node_modules/highlight.js/lib/languages/openscad.js","../node_modules/highlight.js/lib/languages/oxygene.js","../node_modules/highlight.js/lib/languages/parser3.js","../node_modules/highlight.js/lib/languages/pf.js","../node_modules/highlight.js/lib/languages/pgsql.js","../node_modules/highlight.js/lib/languages/php.js","../node_modules/highlight.js/lib/languages/php-template.js","../node_modules/highlight.js/lib/languages/plaintext.js","../node_modules/highlight.js/lib/languages/pony.js","../node_modules/highlight.js/lib/languages/powershell.js","../node_modules/highlight.js/lib/languages/processing.js","../node_modules/highlight.js/lib/languages/profile.js","../node_modules/highlight.js/lib/languages/prolog.js","../node_modules/highlight.js/lib/languages/properties.js","../node_modules/highlight.js/lib/languages/protobuf.js","../node_modules/highlight.js/lib/languages/puppet.js","../node_modules/highlight.js/lib/languages/purebasic.js","../node_modules/highlight.js/lib/languages/python.js","../node_modules/highlight.js/lib/languages/python-repl.js","../node_modules/highlight.js/lib/languages/q.js","../node_modules/highlight.js/lib/languages/qml.js","../node_modules/highlight.js/lib/languages/r.js","../node_modules/highlight.js/lib/languages/reasonml.js","../node_modules/highlight.js/lib/languages/rib.js","../node_modules/highlight.js/lib/languages/roboconf.js","../node_modules/highlight.js/lib/languages/routeros.js","../node_modules/highlight.js/lib/languages/rsl.js","../node_modules/highlight.js/lib/languages/ruleslanguage.js","../node_modules/highlight.js/lib/languages/rust.js","../node_modules/highlight.js/lib/languages/sas.js","../node_modules/highlight.js/lib/languages/scala.js","../node_modules/highlight.js/lib/languages/scheme.js","../node_modules/highlight.js/lib/languages/scilab.js","../node_modules/highlight.js/lib/languages/scss.js","../node_modules/highlight.js/lib/languages/shell.js","../node_modules/highlight.js/lib/languages/smali.js","../node_modules/highlight.js/lib/languages/smalltalk.js","../node_modules/highlight.js/lib/languages/sml.js","../node_modules/highlight.js/lib/languages/sqf.js","../node_modules/highlight.js/lib/languages/sql.js","../node_modules/highlight.js/lib/languages/stan.js","../node_modules/highlight.js/lib/languages/stata.js","../node_modules/highlight.js/lib/languages/step21.js","../node_modules/highlight.js/lib/languages/stylus.js","../node_modules/highlight.js/lib/languages/subunit.js","../node_modules/highlight.js/lib/languages/swift.js","../node_modules/highlight.js/lib/languages/taggerscript.js","../node_modules/highlight.js/lib/languages/yaml.js","../node_modules/highlight.js/lib/languages/tap.js","../node_modules/highlight.js/lib/languages/tcl.js","../node_modules/highlight.js/lib/languages/thrift.js","../node_modules/highlight.js/lib/languages/tp.js","../node_modules/highlight.js/lib/languages/twig.js","../node_modules/highlight.js/lib/languages/typescript.js","../node_modules/highlight.js/lib/languages/vala.js","../node_modules/highlight.js/lib/languages/vbnet.js","../node_modules/highlight.js/lib/languages/vbscript.js","../node_modules/highlight.js/lib/languages/vbscript-html.js","../node_modules/highlight.js/lib/languages/verilog.js","../node_modules/highlight.js/lib/languages/vhdl.js","../node_modules/highlight.js/lib/languages/vim.js","../node_modules/highlight.js/lib/languages/wasm.js","../node_modules/highlight.js/lib/languages/wren.js","../node_modules/highlight.js/lib/languages/x86asm.js","../node_modules/highlight.js/lib/languages/xl.js","../node_modules/highlight.js/lib/languages/xquery.js","../node_modules/highlight.js/lib/languages/zephir.js","../node_modules/highlight.js/lib/index.js","../node_modules/showdown-highlight/lib/index.js"],"sourcesContent":["/*! https://mths.be/he v1.2.0 by @mathias | MIT license */\n;(function(root) {\n\n\t// Detect free variables `exports`.\n\tvar freeExports = typeof exports == 'object' && exports;\n\n\t// Detect free variable `module`.\n\tvar freeModule = typeof module == 'object' && module &&\n\t\tmodule.exports == freeExports && module;\n\n\t// Detect free variable `global`, from Node.js or Browserified code,\n\t// and use it as `root`.\n\tvar freeGlobal = typeof global == 'object' && global;\n\tif (freeGlobal.global === freeGlobal || freeGlobal.window === freeGlobal) {\n\t\troot = freeGlobal;\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\t// All astral symbols.\n\tvar regexAstralSymbols = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g;\n\t// All ASCII symbols (not just printable ASCII) except those listed in the\n\t// first column of the overrides table.\n\t// https://html.spec.whatwg.org/multipage/syntax.html#table-charref-overrides\n\tvar regexAsciiWhitelist = /[\\x01-\\x7F]/g;\n\t// All BMP symbols that are not ASCII newlines, printable ASCII symbols, or\n\t// code points listed in the first column of the overrides table on\n\t// https://html.spec.whatwg.org/multipage/syntax.html#table-charref-overrides.\n\tvar regexBmpWhitelist = /[\\x01-\\t\\x0B\\f\\x0E-\\x1F\\x7F\\x81\\x8D\\x8F\\x90\\x9D\\xA0-\\uFFFF]/g;\n\n\tvar regexEncodeNonAscii = /<\\u20D2|=\\u20E5|>\\u20D2|\\u205F\\u200A|\\u219D\\u0338|\\u2202\\u0338|\\u2220\\u20D2|\\u2229\\uFE00|\\u222A\\uFE00|\\u223C\\u20D2|\\u223D\\u0331|\\u223E\\u0333|\\u2242\\u0338|\\u224B\\u0338|\\u224D\\u20D2|\\u224E\\u0338|\\u224F\\u0338|\\u2250\\u0338|\\u2261\\u20E5|\\u2264\\u20D2|\\u2265\\u20D2|\\u2266\\u0338|\\u2267\\u0338|\\u2268\\uFE00|\\u2269\\uFE00|\\u226A\\u0338|\\u226A\\u20D2|\\u226B\\u0338|\\u226B\\u20D2|\\u227F\\u0338|\\u2282\\u20D2|\\u2283\\u20D2|\\u228A\\uFE00|\\u228B\\uFE00|\\u228F\\u0338|\\u2290\\u0338|\\u2293\\uFE00|\\u2294\\uFE00|\\u22B4\\u20D2|\\u22B5\\u20D2|\\u22D8\\u0338|\\u22D9\\u0338|\\u22DA\\uFE00|\\u22DB\\uFE00|\\u22F5\\u0338|\\u22F9\\u0338|\\u2933\\u0338|\\u29CF\\u0338|\\u29D0\\u0338|\\u2A6D\\u0338|\\u2A70\\u0338|\\u2A7D\\u0338|\\u2A7E\\u0338|\\u2AA1\\u0338|\\u2AA2\\u0338|\\u2AAC\\uFE00|\\u2AAD\\uFE00|\\u2AAF\\u0338|\\u2AB0\\u0338|\\u2AC5\\u0338|\\u2AC6\\u0338|\\u2ACB\\uFE00|\\u2ACC\\uFE00|\\u2AFD\\u20E5|[\\xA0-\\u0113\\u0116-\\u0122\\u0124-\\u012B\\u012E-\\u014D\\u0150-\\u017E\\u0192\\u01B5\\u01F5\\u0237\\u02C6\\u02C7\\u02D8-\\u02DD\\u0311\\u0391-\\u03A1\\u03A3-\\u03A9\\u03B1-\\u03C9\\u03D1\\u03D2\\u03D5\\u03D6\\u03DC\\u03DD\\u03F0\\u03F1\\u03F5\\u03F6\\u0401-\\u040C\\u040E-\\u044F\\u0451-\\u045C\\u045E\\u045F\\u2002-\\u2005\\u2007-\\u2010\\u2013-\\u2016\\u2018-\\u201A\\u201C-\\u201E\\u2020-\\u2022\\u2025\\u2026\\u2030-\\u2035\\u2039\\u203A\\u203E\\u2041\\u2043\\u2044\\u204F\\u2057\\u205F-\\u2063\\u20AC\\u20DB\\u20DC\\u2102\\u2105\\u210A-\\u2113\\u2115-\\u211E\\u2122\\u2124\\u2127-\\u2129\\u212C\\u212D\\u212F-\\u2131\\u2133-\\u2138\\u2145-\\u2148\\u2153-\\u215E\\u2190-\\u219B\\u219D-\\u21A7\\u21A9-\\u21AE\\u21B0-\\u21B3\\u21B5-\\u21B7\\u21BA-\\u21DB\\u21DD\\u21E4\\u21E5\\u21F5\\u21FD-\\u2205\\u2207-\\u2209\\u220B\\u220C\\u220F-\\u2214\\u2216-\\u2218\\u221A\\u221D-\\u2238\\u223A-\\u2257\\u2259\\u225A\\u225C\\u225F-\\u2262\\u2264-\\u228B\\u228D-\\u229B\\u229D-\\u22A5\\u22A7-\\u22B0\\u22B2-\\u22BB\\u22BD-\\u22DB\\u22DE-\\u22E3\\u22E6-\\u22F7\\u22F9-\\u22FE\\u2305\\u2306\\u2308-\\u2310\\u2312\\u2313\\u2315\\u2316\\u231C-\\u231F\\u2322\\u2323\\u232D\\u232E\\u2336\\u233D\\u233F\\u237C\\u23B0\\u23B1\\u23B4-\\u23B6\\u23DC-\\u23DF\\u23E2\\u23E7\\u2423\\u24C8\\u2500\\u2502\\u250C\\u2510\\u2514\\u2518\\u251C\\u2524\\u252C\\u2534\\u253C\\u2550-\\u256C\\u2580\\u2584\\u2588\\u2591-\\u2593\\u25A1\\u25AA\\u25AB\\u25AD\\u25AE\\u25B1\\u25B3-\\u25B5\\u25B8\\u25B9\\u25BD-\\u25BF\\u25C2\\u25C3\\u25CA\\u25CB\\u25EC\\u25EF\\u25F8-\\u25FC\\u2605\\u2606\\u260E\\u2640\\u2642\\u2660\\u2663\\u2665\\u2666\\u266A\\u266D-\\u266F\\u2713\\u2717\\u2720\\u2736\\u2758\\u2772\\u2773\\u27C8\\u27C9\\u27E6-\\u27ED\\u27F5-\\u27FA\\u27FC\\u27FF\\u2902-\\u2905\\u290C-\\u2913\\u2916\\u2919-\\u2920\\u2923-\\u292A\\u2933\\u2935-\\u2939\\u293C\\u293D\\u2945\\u2948-\\u294B\\u294E-\\u2976\\u2978\\u2979\\u297B-\\u297F\\u2985\\u2986\\u298B-\\u2996\\u299A\\u299C\\u299D\\u29A4-\\u29B7\\u29B9\\u29BB\\u29BC\\u29BE-\\u29C5\\u29C9\\u29CD-\\u29D0\\u29DC-\\u29DE\\u29E3-\\u29E5\\u29EB\\u29F4\\u29F6\\u2A00-\\u2A02\\u2A04\\u2A06\\u2A0C\\u2A0D\\u2A10-\\u2A17\\u2A22-\\u2A27\\u2A29\\u2A2A\\u2A2D-\\u2A31\\u2A33-\\u2A3C\\u2A3F\\u2A40\\u2A42-\\u2A4D\\u2A50\\u2A53-\\u2A58\\u2A5A-\\u2A5D\\u2A5F\\u2A66\\u2A6A\\u2A6D-\\u2A75\\u2A77-\\u2A9A\\u2A9D-\\u2AA2\\u2AA4-\\u2AB0\\u2AB3-\\u2AC8\\u2ACB\\u2ACC\\u2ACF-\\u2ADB\\u2AE4\\u2AE6-\\u2AE9\\u2AEB-\\u2AF3\\u2AFD\\uFB00-\\uFB04]|\\uD835[\\uDC9C\\uDC9E\\uDC9F\\uDCA2\\uDCA5\\uDCA6\\uDCA9-\\uDCAC\\uDCAE-\\uDCB9\\uDCBB\\uDCBD-\\uDCC3\\uDCC5-\\uDCCF\\uDD04\\uDD05\\uDD07-\\uDD0A\\uDD0D-\\uDD14\\uDD16-\\uDD1C\\uDD1E-\\uDD39\\uDD3B-\\uDD3E\\uDD40-\\uDD44\\uDD46\\uDD4A-\\uDD50\\uDD52-\\uDD6B]/g;\n\tvar encodeMap = {'\\xAD':'shy','\\u200C':'zwnj','\\u200D':'zwj','\\u200E':'lrm','\\u2063':'ic','\\u2062':'it','\\u2061':'af','\\u200F':'rlm','\\u200B':'ZeroWidthSpace','\\u2060':'NoBreak','\\u0311':'DownBreve','\\u20DB':'tdot','\\u20DC':'DotDot','\\t':'Tab','\\n':'NewLine','\\u2008':'puncsp','\\u205F':'MediumSpace','\\u2009':'thinsp','\\u200A':'hairsp','\\u2004':'emsp13','\\u2002':'ensp','\\u2005':'emsp14','\\u2003':'emsp','\\u2007':'numsp','\\xA0':'nbsp','\\u205F\\u200A':'ThickSpace','\\u203E':'oline','_':'lowbar','\\u2010':'dash','\\u2013':'ndash','\\u2014':'mdash','\\u2015':'horbar',',':'comma',';':'semi','\\u204F':'bsemi',':':'colon','\\u2A74':'Colone','!':'excl','\\xA1':'iexcl','?':'quest','\\xBF':'iquest','.':'period','\\u2025':'nldr','\\u2026':'mldr','\\xB7':'middot','\\'':'apos','\\u2018':'lsquo','\\u2019':'rsquo','\\u201A':'sbquo','\\u2039':'lsaquo','\\u203A':'rsaquo','\"':'quot','\\u201C':'ldquo','\\u201D':'rdquo','\\u201E':'bdquo','\\xAB':'laquo','\\xBB':'raquo','(':'lpar',')':'rpar','[':'lsqb',']':'rsqb','{':'lcub','}':'rcub','\\u2308':'lceil','\\u2309':'rceil','\\u230A':'lfloor','\\u230B':'rfloor','\\u2985':'lopar','\\u2986':'ropar','\\u298B':'lbrke','\\u298C':'rbrke','\\u298D':'lbrkslu','\\u298E':'rbrksld','\\u298F':'lbrksld','\\u2990':'rbrkslu','\\u2991':'langd','\\u2992':'rangd','\\u2993':'lparlt','\\u2994':'rpargt','\\u2995':'gtlPar','\\u2996':'ltrPar','\\u27E6':'lobrk','\\u27E7':'robrk','\\u27E8':'lang','\\u27E9':'rang','\\u27EA':'Lang','\\u27EB':'Rang','\\u27EC':'loang','\\u27ED':'roang','\\u2772':'lbbrk','\\u2773':'rbbrk','\\u2016':'Vert','\\xA7':'sect','\\xB6':'para','@':'commat','*':'ast','/':'sol','undefined':null,'&':'amp','#':'num','%':'percnt','\\u2030':'permil','\\u2031':'pertenk','\\u2020':'dagger','\\u2021':'Dagger','\\u2022':'bull','\\u2043':'hybull','\\u2032':'prime','\\u2033':'Prime','\\u2034':'tprime','\\u2057':'qprime','\\u2035':'bprime','\\u2041':'caret','`':'grave','\\xB4':'acute','\\u02DC':'tilde','^':'Hat','\\xAF':'macr','\\u02D8':'breve','\\u02D9':'dot','\\xA8':'die','\\u02DA':'ring','\\u02DD':'dblac','\\xB8':'cedil','\\u02DB':'ogon','\\u02C6':'circ','\\u02C7':'caron','\\xB0':'deg','\\xA9':'copy','\\xAE':'reg','\\u2117':'copysr','\\u2118':'wp','\\u211E':'rx','\\u2127':'mho','\\u2129':'iiota','\\u2190':'larr','\\u219A':'nlarr','\\u2192':'rarr','\\u219B':'nrarr','\\u2191':'uarr','\\u2193':'darr','\\u2194':'harr','\\u21AE':'nharr','\\u2195':'varr','\\u2196':'nwarr','\\u2197':'nearr','\\u2198':'searr','\\u2199':'swarr','\\u219D':'rarrw','\\u219D\\u0338':'nrarrw','\\u219E':'Larr','\\u219F':'Uarr','\\u21A0':'Rarr','\\u21A1':'Darr','\\u21A2':'larrtl','\\u21A3':'rarrtl','\\u21A4':'mapstoleft','\\u21A5':'mapstoup','\\u21A6':'map','\\u21A7':'mapstodown','\\u21A9':'larrhk','\\u21AA':'rarrhk','\\u21AB':'larrlp','\\u21AC':'rarrlp','\\u21AD':'harrw','\\u21B0':'lsh','\\u21B1':'rsh','\\u21B2':'ldsh','\\u21B3':'rdsh','\\u21B5':'crarr','\\u21B6':'cularr','\\u21B7':'curarr','\\u21BA':'olarr','\\u21BB':'orarr','\\u21BC':'lharu','\\u21BD':'lhard','\\u21BE':'uharr','\\u21BF':'uharl','\\u21C0':'rharu','\\u21C1':'rhard','\\u21C2':'dharr','\\u21C3':'dharl','\\u21C4':'rlarr','\\u21C5':'udarr','\\u21C6':'lrarr','\\u21C7':'llarr','\\u21C8':'uuarr','\\u21C9':'rrarr','\\u21CA':'ddarr','\\u21CB':'lrhar','\\u21CC':'rlhar','\\u21D0':'lArr','\\u21CD':'nlArr','\\u21D1':'uArr','\\u21D2':'rArr','\\u21CF':'nrArr','\\u21D3':'dArr','\\u21D4':'iff','\\u21CE':'nhArr','\\u21D5':'vArr','\\u21D6':'nwArr','\\u21D7':'neArr','\\u21D8':'seArr','\\u21D9':'swArr','\\u21DA':'lAarr','\\u21DB':'rAarr','\\u21DD':'zigrarr','\\u21E4':'larrb','\\u21E5':'rarrb','\\u21F5':'duarr','\\u21FD':'loarr','\\u21FE':'roarr','\\u21FF':'hoarr','\\u2200':'forall','\\u2201':'comp','\\u2202':'part','\\u2202\\u0338':'npart','\\u2203':'exist','\\u2204':'nexist','\\u2205':'empty','\\u2207':'Del','\\u2208':'in','\\u2209':'notin','\\u220B':'ni','\\u220C':'notni','\\u03F6':'bepsi','\\u220F':'prod','\\u2210':'coprod','\\u2211':'sum','+':'plus','\\xB1':'pm','\\xF7':'div','\\xD7':'times','<':'lt','\\u226E':'nlt','<\\u20D2':'nvlt','=':'equals','\\u2260':'ne','=\\u20E5':'bne','\\u2A75':'Equal','>':'gt','\\u226F':'ngt','>\\u20D2':'nvgt','\\xAC':'not','|':'vert','\\xA6':'brvbar','\\u2212':'minus','\\u2213':'mp','\\u2214':'plusdo','\\u2044':'frasl','\\u2216':'setmn','\\u2217':'lowast','\\u2218':'compfn','\\u221A':'Sqrt','\\u221D':'prop','\\u221E':'infin','\\u221F':'angrt','\\u2220':'ang','\\u2220\\u20D2':'nang','\\u2221':'angmsd','\\u2222':'angsph','\\u2223':'mid','\\u2224':'nmid','\\u2225':'par','\\u2226':'npar','\\u2227':'and','\\u2228':'or','\\u2229':'cap','\\u2229\\uFE00':'caps','\\u222A':'cup','\\u222A\\uFE00':'cups','\\u222B':'int','\\u222C':'Int','\\u222D':'tint','\\u2A0C':'qint','\\u222E':'oint','\\u222F':'Conint','\\u2230':'Cconint','\\u2231':'cwint','\\u2232':'cwconint','\\u2233':'awconint','\\u2234':'there4','\\u2235':'becaus','\\u2236':'ratio','\\u2237':'Colon','\\u2238':'minusd','\\u223A':'mDDot','\\u223B':'homtht','\\u223C':'sim','\\u2241':'nsim','\\u223C\\u20D2':'nvsim','\\u223D':'bsim','\\u223D\\u0331':'race','\\u223E':'ac','\\u223E\\u0333':'acE','\\u223F':'acd','\\u2240':'wr','\\u2242':'esim','\\u2242\\u0338':'nesim','\\u2243':'sime','\\u2244':'nsime','\\u2245':'cong','\\u2247':'ncong','\\u2246':'simne','\\u2248':'ap','\\u2249':'nap','\\u224A':'ape','\\u224B':'apid','\\u224B\\u0338':'napid','\\u224C':'bcong','\\u224D':'CupCap','\\u226D':'NotCupCap','\\u224D\\u20D2':'nvap','\\u224E':'bump','\\u224E\\u0338':'nbump','\\u224F':'bumpe','\\u224F\\u0338':'nbumpe','\\u2250':'doteq','\\u2250\\u0338':'nedot','\\u2251':'eDot','\\u2252':'efDot','\\u2253':'erDot','\\u2254':'colone','\\u2255':'ecolon','\\u2256':'ecir','\\u2257':'cire','\\u2259':'wedgeq','\\u225A':'veeeq','\\u225C':'trie','\\u225F':'equest','\\u2261':'equiv','\\u2262':'nequiv','\\u2261\\u20E5':'bnequiv','\\u2264':'le','\\u2270':'nle','\\u2264\\u20D2':'nvle','\\u2265':'ge','\\u2271':'nge','\\u2265\\u20D2':'nvge','\\u2266':'lE','\\u2266\\u0338':'nlE','\\u2267':'gE','\\u2267\\u0338':'ngE','\\u2268\\uFE00':'lvnE','\\u2268':'lnE','\\u2269':'gnE','\\u2269\\uFE00':'gvnE','\\u226A':'ll','\\u226A\\u0338':'nLtv','\\u226A\\u20D2':'nLt','\\u226B':'gg','\\u226B\\u0338':'nGtv','\\u226B\\u20D2':'nGt','\\u226C':'twixt','\\u2272':'lsim','\\u2274':'nlsim','\\u2273':'gsim','\\u2275':'ngsim','\\u2276':'lg','\\u2278':'ntlg','\\u2277':'gl','\\u2279':'ntgl','\\u227A':'pr','\\u2280':'npr','\\u227B':'sc','\\u2281':'nsc','\\u227C':'prcue','\\u22E0':'nprcue','\\u227D':'sccue','\\u22E1':'nsccue','\\u227E':'prsim','\\u227F':'scsim','\\u227F\\u0338':'NotSucceedsTilde','\\u2282':'sub','\\u2284':'nsub','\\u2282\\u20D2':'vnsub','\\u2283':'sup','\\u2285':'nsup','\\u2283\\u20D2':'vnsup','\\u2286':'sube','\\u2288':'nsube','\\u2287':'supe','\\u2289':'nsupe','\\u228A\\uFE00':'vsubne','\\u228A':'subne','\\u228B\\uFE00':'vsupne','\\u228B':'supne','\\u228D':'cupdot','\\u228E':'uplus','\\u228F':'sqsub','\\u228F\\u0338':'NotSquareSubset','\\u2290':'sqsup','\\u2290\\u0338':'NotSquareSuperset','\\u2291':'sqsube','\\u22E2':'nsqsube','\\u2292':'sqsupe','\\u22E3':'nsqsupe','\\u2293':'sqcap','\\u2293\\uFE00':'sqcaps','\\u2294':'sqcup','\\u2294\\uFE00':'sqcups','\\u2295':'oplus','\\u2296':'ominus','\\u2297':'otimes','\\u2298':'osol','\\u2299':'odot','\\u229A':'ocir','\\u229B':'oast','\\u229D':'odash','\\u229E':'plusb','\\u229F':'minusb','\\u22A0':'timesb','\\u22A1':'sdotb','\\u22A2':'vdash','\\u22AC':'nvdash','\\u22A3':'dashv','\\u22A4':'top','\\u22A5':'bot','\\u22A7':'models','\\u22A8':'vDash','\\u22AD':'nvDash','\\u22A9':'Vdash','\\u22AE':'nVdash','\\u22AA':'Vvdash','\\u22AB':'VDash','\\u22AF':'nVDash','\\u22B0':'prurel','\\u22B2':'vltri','\\u22EA':'nltri','\\u22B3':'vrtri','\\u22EB':'nrtri','\\u22B4':'ltrie','\\u22EC':'nltrie','\\u22B4\\u20D2':'nvltrie','\\u22B5':'rtrie','\\u22ED':'nrtrie','\\u22B5\\u20D2':'nvrtrie','\\u22B6':'origof','\\u22B7':'imof','\\u22B8':'mumap','\\u22B9':'hercon','\\u22BA':'intcal','\\u22BB':'veebar','\\u22BD':'barvee','\\u22BE':'angrtvb','\\u22BF':'lrtri','\\u22C0':'Wedge','\\u22C1':'Vee','\\u22C2':'xcap','\\u22C3':'xcup','\\u22C4':'diam','\\u22C5':'sdot','\\u22C6':'Star','\\u22C7':'divonx','\\u22C8':'bowtie','\\u22C9':'ltimes','\\u22CA':'rtimes','\\u22CB':'lthree','\\u22CC':'rthree','\\u22CD':'bsime','\\u22CE':'cuvee','\\u22CF':'cuwed','\\u22D0':'Sub','\\u22D1':'Sup','\\u22D2':'Cap','\\u22D3':'Cup','\\u22D4':'fork','\\u22D5':'epar','\\u22D6':'ltdot','\\u22D7':'gtdot','\\u22D8':'Ll','\\u22D8\\u0338':'nLl','\\u22D9':'Gg','\\u22D9\\u0338':'nGg','\\u22DA\\uFE00':'lesg','\\u22DA':'leg','\\u22DB':'gel','\\u22DB\\uFE00':'gesl','\\u22DE':'cuepr','\\u22DF':'cuesc','\\u22E6':'lnsim','\\u22E7':'gnsim','\\u22E8':'prnsim','\\u22E9':'scnsim','\\u22EE':'vellip','\\u22EF':'ctdot','\\u22F0':'utdot','\\u22F1':'dtdot','\\u22F2':'disin','\\u22F3':'isinsv','\\u22F4':'isins','\\u22F5':'isindot','\\u22F5\\u0338':'notindot','\\u22F6':'notinvc','\\u22F7':'notinvb','\\u22F9':'isinE','\\u22F9\\u0338':'notinE','\\u22FA':'nisd','\\u22FB':'xnis','\\u22FC':'nis','\\u22FD':'notnivc','\\u22FE':'notnivb','\\u2305':'barwed','\\u2306':'Barwed','\\u230C':'drcrop','\\u230D':'dlcrop','\\u230E':'urcrop','\\u230F':'ulcrop','\\u2310':'bnot','\\u2312':'profline','\\u2313':'profsurf','\\u2315':'telrec','\\u2316':'target','\\u231C':'ulcorn','\\u231D':'urcorn','\\u231E':'dlcorn','\\u231F':'drcorn','\\u2322':'frown','\\u2323':'smile','\\u232D':'cylcty','\\u232E':'profalar','\\u2336':'topbot','\\u233D':'ovbar','\\u233F':'solbar','\\u237C':'angzarr','\\u23B0':'lmoust','\\u23B1':'rmoust','\\u23B4':'tbrk','\\u23B5':'bbrk','\\u23B6':'bbrktbrk','\\u23DC':'OverParenthesis','\\u23DD':'UnderParenthesis','\\u23DE':'OverBrace','\\u23DF':'UnderBrace','\\u23E2':'trpezium','\\u23E7':'elinters','\\u2423':'blank','\\u2500':'boxh','\\u2502':'boxv','\\u250C':'boxdr','\\u2510':'boxdl','\\u2514':'boxur','\\u2518':'boxul','\\u251C':'boxvr','\\u2524':'boxvl','\\u252C':'boxhd','\\u2534':'boxhu','\\u253C':'boxvh','\\u2550':'boxH','\\u2551':'boxV','\\u2552':'boxdR','\\u2553':'boxDr','\\u2554':'boxDR','\\u2555':'boxdL','\\u2556':'boxDl','\\u2557':'boxDL','\\u2558':'boxuR','\\u2559':'boxUr','\\u255A':'boxUR','\\u255B':'boxuL','\\u255C':'boxUl','\\u255D':'boxUL','\\u255E':'boxvR','\\u255F':'boxVr','\\u2560':'boxVR','\\u2561':'boxvL','\\u2562':'boxVl','\\u2563':'boxVL','\\u2564':'boxHd','\\u2565':'boxhD','\\u2566':'boxHD','\\u2567':'boxHu','\\u2568':'boxhU','\\u2569':'boxHU','\\u256A':'boxvH','\\u256B':'boxVh','\\u256C':'boxVH','\\u2580':'uhblk','\\u2584':'lhblk','\\u2588':'block','\\u2591':'blk14','\\u2592':'blk12','\\u2593':'blk34','\\u25A1':'squ','\\u25AA':'squf','\\u25AB':'EmptyVerySmallSquare','\\u25AD':'rect','\\u25AE':'marker','\\u25B1':'fltns','\\u25B3':'xutri','\\u25B4':'utrif','\\u25B5':'utri','\\u25B8':'rtrif','\\u25B9':'rtri','\\u25BD':'xdtri','\\u25BE':'dtrif','\\u25BF':'dtri','\\u25C2':'ltrif','\\u25C3':'ltri','\\u25CA':'loz','\\u25CB':'cir','\\u25EC':'tridot','\\u25EF':'xcirc','\\u25F8':'ultri','\\u25F9':'urtri','\\u25FA':'lltri','\\u25FB':'EmptySmallSquare','\\u25FC':'FilledSmallSquare','\\u2605':'starf','\\u2606':'star','\\u260E':'phone','\\u2640':'female','\\u2642':'male','\\u2660':'spades','\\u2663':'clubs','\\u2665':'hearts','\\u2666':'diams','\\u266A':'sung','\\u2713':'check','\\u2717':'cross','\\u2720':'malt','\\u2736':'sext','\\u2758':'VerticalSeparator','\\u27C8':'bsolhsub','\\u27C9':'suphsol','\\u27F5':'xlarr','\\u27F6':'xrarr','\\u27F7':'xharr','\\u27F8':'xlArr','\\u27F9':'xrArr','\\u27FA':'xhArr','\\u27FC':'xmap','\\u27FF':'dzigrarr','\\u2902':'nvlArr','\\u2903':'nvrArr','\\u2904':'nvHarr','\\u2905':'Map','\\u290C':'lbarr','\\u290D':'rbarr','\\u290E':'lBarr','\\u290F':'rBarr','\\u2910':'RBarr','\\u2911':'DDotrahd','\\u2912':'UpArrowBar','\\u2913':'DownArrowBar','\\u2916':'Rarrtl','\\u2919':'latail','\\u291A':'ratail','\\u291B':'lAtail','\\u291C':'rAtail','\\u291D':'larrfs','\\u291E':'rarrfs','\\u291F':'larrbfs','\\u2920':'rarrbfs','\\u2923':'nwarhk','\\u2924':'nearhk','\\u2925':'searhk','\\u2926':'swarhk','\\u2927':'nwnear','\\u2928':'toea','\\u2929':'tosa','\\u292A':'swnwar','\\u2933':'rarrc','\\u2933\\u0338':'nrarrc','\\u2935':'cudarrr','\\u2936':'ldca','\\u2937':'rdca','\\u2938':'cudarrl','\\u2939':'larrpl','\\u293C':'curarrm','\\u293D':'cularrp','\\u2945':'rarrpl','\\u2948':'harrcir','\\u2949':'Uarrocir','\\u294A':'lurdshar','\\u294B':'ldrushar','\\u294E':'LeftRightVector','\\u294F':'RightUpDownVector','\\u2950':'DownLeftRightVector','\\u2951':'LeftUpDownVector','\\u2952':'LeftVectorBar','\\u2953':'RightVectorBar','\\u2954':'RightUpVectorBar','\\u2955':'RightDownVectorBar','\\u2956':'DownLeftVectorBar','\\u2957':'DownRightVectorBar','\\u2958':'LeftUpVectorBar','\\u2959':'LeftDownVectorBar','\\u295A':'LeftTeeVector','\\u295B':'RightTeeVector','\\u295C':'RightUpTeeVector','\\u295D':'RightDownTeeVector','\\u295E':'DownLeftTeeVector','\\u295F':'DownRightTeeVector','\\u2960':'LeftUpTeeVector','\\u2961':'LeftDownTeeVector','\\u2962':'lHar','\\u2963':'uHar','\\u2964':'rHar','\\u2965':'dHar','\\u2966':'luruhar','\\u2967':'ldrdhar','\\u2968':'ruluhar','\\u2969':'rdldhar','\\u296A':'lharul','\\u296B':'llhard','\\u296C':'rharul','\\u296D':'lrhard','\\u296E':'udhar','\\u296F':'duhar','\\u2970':'RoundImplies','\\u2971':'erarr','\\u2972':'simrarr','\\u2973':'larrsim','\\u2974':'rarrsim','\\u2975':'rarrap','\\u2976':'ltlarr','\\u2978':'gtrarr','\\u2979':'subrarr','\\u297B':'suplarr','\\u297C':'lfisht','\\u297D':'rfisht','\\u297E':'ufisht','\\u297F':'dfisht','\\u299A':'vzigzag','\\u299C':'vangrt','\\u299D':'angrtvbd','\\u29A4':'ange','\\u29A5':'range','\\u29A6':'dwangle','\\u29A7':'uwangle','\\u29A8':'angmsdaa','\\u29A9':'angmsdab','\\u29AA':'angmsdac','\\u29AB':'angmsdad','\\u29AC':'angmsdae','\\u29AD':'angmsdaf','\\u29AE':'angmsdag','\\u29AF':'angmsdah','\\u29B0':'bemptyv','\\u29B1':'demptyv','\\u29B2':'cemptyv','\\u29B3':'raemptyv','\\u29B4':'laemptyv','\\u29B5':'ohbar','\\u29B6':'omid','\\u29B7':'opar','\\u29B9':'operp','\\u29BB':'olcross','\\u29BC':'odsold','\\u29BE':'olcir','\\u29BF':'ofcir','\\u29C0':'olt','\\u29C1':'ogt','\\u29C2':'cirscir','\\u29C3':'cirE','\\u29C4':'solb','\\u29C5':'bsolb','\\u29C9':'boxbox','\\u29CD':'trisb','\\u29CE':'rtriltri','\\u29CF':'LeftTriangleBar','\\u29CF\\u0338':'NotLeftTriangleBar','\\u29D0':'RightTriangleBar','\\u29D0\\u0338':'NotRightTriangleBar','\\u29DC':'iinfin','\\u29DD':'infintie','\\u29DE':'nvinfin','\\u29E3':'eparsl','\\u29E4':'smeparsl','\\u29E5':'eqvparsl','\\u29EB':'lozf','\\u29F4':'RuleDelayed','\\u29F6':'dsol','\\u2A00':'xodot','\\u2A01':'xoplus','\\u2A02':'xotime','\\u2A04':'xuplus','\\u2A06':'xsqcup','\\u2A0D':'fpartint','\\u2A10':'cirfnint','\\u2A11':'awint','\\u2A12':'rppolint','\\u2A13':'scpolint','\\u2A14':'npolint','\\u2A15':'pointint','\\u2A16':'quatint','\\u2A17':'intlarhk','\\u2A22':'pluscir','\\u2A23':'plusacir','\\u2A24':'simplus','\\u2A25':'plusdu','\\u2A26':'plussim','\\u2A27':'plustwo','\\u2A29':'mcomma','\\u2A2A':'minusdu','\\u2A2D':'loplus','\\u2A2E':'roplus','\\u2A2F':'Cross','\\u2A30':'timesd','\\u2A31':'timesbar','\\u2A33':'smashp','\\u2A34':'lotimes','\\u2A35':'rotimes','\\u2A36':'otimesas','\\u2A37':'Otimes','\\u2A38':'odiv','\\u2A39':'triplus','\\u2A3A':'triminus','\\u2A3B':'tritime','\\u2A3C':'iprod','\\u2A3F':'amalg','\\u2A40':'capdot','\\u2A42':'ncup','\\u2A43':'ncap','\\u2A44':'capand','\\u2A45':'cupor','\\u2A46':'cupcap','\\u2A47':'capcup','\\u2A48':'cupbrcap','\\u2A49':'capbrcup','\\u2A4A':'cupcup','\\u2A4B':'capcap','\\u2A4C':'ccups','\\u2A4D':'ccaps','\\u2A50':'ccupssm','\\u2A53':'And','\\u2A54':'Or','\\u2A55':'andand','\\u2A56':'oror','\\u2A57':'orslope','\\u2A58':'andslope','\\u2A5A':'andv','\\u2A5B':'orv','\\u2A5C':'andd','\\u2A5D':'ord','\\u2A5F':'wedbar','\\u2A66':'sdote','\\u2A6A':'simdot','\\u2A6D':'congdot','\\u2A6D\\u0338':'ncongdot','\\u2A6E':'easter','\\u2A6F':'apacir','\\u2A70':'apE','\\u2A70\\u0338':'napE','\\u2A71':'eplus','\\u2A72':'pluse','\\u2A73':'Esim','\\u2A77':'eDDot','\\u2A78':'equivDD','\\u2A79':'ltcir','\\u2A7A':'gtcir','\\u2A7B':'ltquest','\\u2A7C':'gtquest','\\u2A7D':'les','\\u2A7D\\u0338':'nles','\\u2A7E':'ges','\\u2A7E\\u0338':'nges','\\u2A7F':'lesdot','\\u2A80':'gesdot','\\u2A81':'lesdoto','\\u2A82':'gesdoto','\\u2A83':'lesdotor','\\u2A84':'gesdotol','\\u2A85':'lap','\\u2A86':'gap','\\u2A87':'lne','\\u2A88':'gne','\\u2A89':'lnap','\\u2A8A':'gnap','\\u2A8B':'lEg','\\u2A8C':'gEl','\\u2A8D':'lsime','\\u2A8E':'gsime','\\u2A8F':'lsimg','\\u2A90':'gsiml','\\u2A91':'lgE','\\u2A92':'glE','\\u2A93':'lesges','\\u2A94':'gesles','\\u2A95':'els','\\u2A96':'egs','\\u2A97':'elsdot','\\u2A98':'egsdot','\\u2A99':'el','\\u2A9A':'eg','\\u2A9D':'siml','\\u2A9E':'simg','\\u2A9F':'simlE','\\u2AA0':'simgE','\\u2AA1':'LessLess','\\u2AA1\\u0338':'NotNestedLessLess','\\u2AA2':'GreaterGreater','\\u2AA2\\u0338':'NotNestedGreaterGreater','\\u2AA4':'glj','\\u2AA5':'gla','\\u2AA6':'ltcc','\\u2AA7':'gtcc','\\u2AA8':'lescc','\\u2AA9':'gescc','\\u2AAA':'smt','\\u2AAB':'lat','\\u2AAC':'smte','\\u2AAC\\uFE00':'smtes','\\u2AAD':'late','\\u2AAD\\uFE00':'lates','\\u2AAE':'bumpE','\\u2AAF':'pre','\\u2AAF\\u0338':'npre','\\u2AB0':'sce','\\u2AB0\\u0338':'nsce','\\u2AB3':'prE','\\u2AB4':'scE','\\u2AB5':'prnE','\\u2AB6':'scnE','\\u2AB7':'prap','\\u2AB8':'scap','\\u2AB9':'prnap','\\u2ABA':'scnap','\\u2ABB':'Pr','\\u2ABC':'Sc','\\u2ABD':'subdot','\\u2ABE':'supdot','\\u2ABF':'subplus','\\u2AC0':'supplus','\\u2AC1':'submult','\\u2AC2':'supmult','\\u2AC3':'subedot','\\u2AC4':'supedot','\\u2AC5':'subE','\\u2AC5\\u0338':'nsubE','\\u2AC6':'supE','\\u2AC6\\u0338':'nsupE','\\u2AC7':'subsim','\\u2AC8':'supsim','\\u2ACB\\uFE00':'vsubnE','\\u2ACB':'subnE','\\u2ACC\\uFE00':'vsupnE','\\u2ACC':'supnE','\\u2ACF':'csub','\\u2AD0':'csup','\\u2AD1':'csube','\\u2AD2':'csupe','\\u2AD3':'subsup','\\u2AD4':'supsub','\\u2AD5':'subsub','\\u2AD6':'supsup','\\u2AD7':'suphsub','\\u2AD8':'supdsub','\\u2AD9':'forkv','\\u2ADA':'topfork','\\u2ADB':'mlcp','\\u2AE4':'Dashv','\\u2AE6':'Vdashl','\\u2AE7':'Barv','\\u2AE8':'vBar','\\u2AE9':'vBarv','\\u2AEB':'Vbar','\\u2AEC':'Not','\\u2AED':'bNot','\\u2AEE':'rnmid','\\u2AEF':'cirmid','\\u2AF0':'midcir','\\u2AF1':'topcir','\\u2AF2':'nhpar','\\u2AF3':'parsim','\\u2AFD':'parsl','\\u2AFD\\u20E5':'nparsl','\\u266D':'flat','\\u266E':'natur','\\u266F':'sharp','\\xA4':'curren','\\xA2':'cent','$':'dollar','\\xA3':'pound','\\xA5':'yen','\\u20AC':'euro','\\xB9':'sup1','\\xBD':'half','\\u2153':'frac13','\\xBC':'frac14','\\u2155':'frac15','\\u2159':'frac16','\\u215B':'frac18','\\xB2':'sup2','\\u2154':'frac23','\\u2156':'frac25','\\xB3':'sup3','\\xBE':'frac34','\\u2157':'frac35','\\u215C':'frac38','\\u2158':'frac45','\\u215A':'frac56','\\u215D':'frac58','\\u215E':'frac78','\\uD835\\uDCB6':'ascr','\\uD835\\uDD52':'aopf','\\uD835\\uDD1E':'afr','\\uD835\\uDD38':'Aopf','\\uD835\\uDD04':'Afr','\\uD835\\uDC9C':'Ascr','\\xAA':'ordf','\\xE1':'aacute','\\xC1':'Aacute','\\xE0':'agrave','\\xC0':'Agrave','\\u0103':'abreve','\\u0102':'Abreve','\\xE2':'acirc','\\xC2':'Acirc','\\xE5':'aring','\\xC5':'angst','\\xE4':'auml','\\xC4':'Auml','\\xE3':'atilde','\\xC3':'Atilde','\\u0105':'aogon','\\u0104':'Aogon','\\u0101':'amacr','\\u0100':'Amacr','\\xE6':'aelig','\\xC6':'AElig','\\uD835\\uDCB7':'bscr','\\uD835\\uDD53':'bopf','\\uD835\\uDD1F':'bfr','\\uD835\\uDD39':'Bopf','\\u212C':'Bscr','\\uD835\\uDD05':'Bfr','\\uD835\\uDD20':'cfr','\\uD835\\uDCB8':'cscr','\\uD835\\uDD54':'copf','\\u212D':'Cfr','\\uD835\\uDC9E':'Cscr','\\u2102':'Copf','\\u0107':'cacute','\\u0106':'Cacute','\\u0109':'ccirc','\\u0108':'Ccirc','\\u010D':'ccaron','\\u010C':'Ccaron','\\u010B':'cdot','\\u010A':'Cdot','\\xE7':'ccedil','\\xC7':'Ccedil','\\u2105':'incare','\\uD835\\uDD21':'dfr','\\u2146':'dd','\\uD835\\uDD55':'dopf','\\uD835\\uDCB9':'dscr','\\uD835\\uDC9F':'Dscr','\\uD835\\uDD07':'Dfr','\\u2145':'DD','\\uD835\\uDD3B':'Dopf','\\u010F':'dcaron','\\u010E':'Dcaron','\\u0111':'dstrok','\\u0110':'Dstrok','\\xF0':'eth','\\xD0':'ETH','\\u2147':'ee','\\u212F':'escr','\\uD835\\uDD22':'efr','\\uD835\\uDD56':'eopf','\\u2130':'Escr','\\uD835\\uDD08':'Efr','\\uD835\\uDD3C':'Eopf','\\xE9':'eacute','\\xC9':'Eacute','\\xE8':'egrave','\\xC8':'Egrave','\\xEA':'ecirc','\\xCA':'Ecirc','\\u011B':'ecaron','\\u011A':'Ecaron','\\xEB':'euml','\\xCB':'Euml','\\u0117':'edot','\\u0116':'Edot','\\u0119':'eogon','\\u0118':'Eogon','\\u0113':'emacr','\\u0112':'Emacr','\\uD835\\uDD23':'ffr','\\uD835\\uDD57':'fopf','\\uD835\\uDCBB':'fscr','\\uD835\\uDD09':'Ffr','\\uD835\\uDD3D':'Fopf','\\u2131':'Fscr','\\uFB00':'fflig','\\uFB03':'ffilig','\\uFB04':'ffllig','\\uFB01':'filig','fj':'fjlig','\\uFB02':'fllig','\\u0192':'fnof','\\u210A':'gscr','\\uD835\\uDD58':'gopf','\\uD835\\uDD24':'gfr','\\uD835\\uDCA2':'Gscr','\\uD835\\uDD3E':'Gopf','\\uD835\\uDD0A':'Gfr','\\u01F5':'gacute','\\u011F':'gbreve','\\u011E':'Gbreve','\\u011D':'gcirc','\\u011C':'Gcirc','\\u0121':'gdot','\\u0120':'Gdot','\\u0122':'Gcedil','\\uD835\\uDD25':'hfr','\\u210E':'planckh','\\uD835\\uDCBD':'hscr','\\uD835\\uDD59':'hopf','\\u210B':'Hscr','\\u210C':'Hfr','\\u210D':'Hopf','\\u0125':'hcirc','\\u0124':'Hcirc','\\u210F':'hbar','\\u0127':'hstrok','\\u0126':'Hstrok','\\uD835\\uDD5A':'iopf','\\uD835\\uDD26':'ifr','\\uD835\\uDCBE':'iscr','\\u2148':'ii','\\uD835\\uDD40':'Iopf','\\u2110':'Iscr','\\u2111':'Im','\\xED':'iacute','\\xCD':'Iacute','\\xEC':'igrave','\\xCC':'Igrave','\\xEE':'icirc','\\xCE':'Icirc','\\xEF':'iuml','\\xCF':'Iuml','\\u0129':'itilde','\\u0128':'Itilde','\\u0130':'Idot','\\u012F':'iogon','\\u012E':'Iogon','\\u012B':'imacr','\\u012A':'Imacr','\\u0133':'ijlig','\\u0132':'IJlig','\\u0131':'imath','\\uD835\\uDCBF':'jscr','\\uD835\\uDD5B':'jopf','\\uD835\\uDD27':'jfr','\\uD835\\uDCA5':'Jscr','\\uD835\\uDD0D':'Jfr','\\uD835\\uDD41':'Jopf','\\u0135':'jcirc','\\u0134':'Jcirc','\\u0237':'jmath','\\uD835\\uDD5C':'kopf','\\uD835\\uDCC0':'kscr','\\uD835\\uDD28':'kfr','\\uD835\\uDCA6':'Kscr','\\uD835\\uDD42':'Kopf','\\uD835\\uDD0E':'Kfr','\\u0137':'kcedil','\\u0136':'Kcedil','\\uD835\\uDD29':'lfr','\\uD835\\uDCC1':'lscr','\\u2113':'ell','\\uD835\\uDD5D':'lopf','\\u2112':'Lscr','\\uD835\\uDD0F':'Lfr','\\uD835\\uDD43':'Lopf','\\u013A':'lacute','\\u0139':'Lacute','\\u013E':'lcaron','\\u013D':'Lcaron','\\u013C':'lcedil','\\u013B':'Lcedil','\\u0142':'lstrok','\\u0141':'Lstrok','\\u0140':'lmidot','\\u013F':'Lmidot','\\uD835\\uDD2A':'mfr','\\uD835\\uDD5E':'mopf','\\uD835\\uDCC2':'mscr','\\uD835\\uDD10':'Mfr','\\uD835\\uDD44':'Mopf','\\u2133':'Mscr','\\uD835\\uDD2B':'nfr','\\uD835\\uDD5F':'nopf','\\uD835\\uDCC3':'nscr','\\u2115':'Nopf','\\uD835\\uDCA9':'Nscr','\\uD835\\uDD11':'Nfr','\\u0144':'nacute','\\u0143':'Nacute','\\u0148':'ncaron','\\u0147':'Ncaron','\\xF1':'ntilde','\\xD1':'Ntilde','\\u0146':'ncedil','\\u0145':'Ncedil','\\u2116':'numero','\\u014B':'eng','\\u014A':'ENG','\\uD835\\uDD60':'oopf','\\uD835\\uDD2C':'ofr','\\u2134':'oscr','\\uD835\\uDCAA':'Oscr','\\uD835\\uDD12':'Ofr','\\uD835\\uDD46':'Oopf','\\xBA':'ordm','\\xF3':'oacute','\\xD3':'Oacute','\\xF2':'ograve','\\xD2':'Ograve','\\xF4':'ocirc','\\xD4':'Ocirc','\\xF6':'ouml','\\xD6':'Ouml','\\u0151':'odblac','\\u0150':'Odblac','\\xF5':'otilde','\\xD5':'Otilde','\\xF8':'oslash','\\xD8':'Oslash','\\u014D':'omacr','\\u014C':'Omacr','\\u0153':'oelig','\\u0152':'OElig','\\uD835\\uDD2D':'pfr','\\uD835\\uDCC5':'pscr','\\uD835\\uDD61':'popf','\\u2119':'Popf','\\uD835\\uDD13':'Pfr','\\uD835\\uDCAB':'Pscr','\\uD835\\uDD62':'qopf','\\uD835\\uDD2E':'qfr','\\uD835\\uDCC6':'qscr','\\uD835\\uDCAC':'Qscr','\\uD835\\uDD14':'Qfr','\\u211A':'Qopf','\\u0138':'kgreen','\\uD835\\uDD2F':'rfr','\\uD835\\uDD63':'ropf','\\uD835\\uDCC7':'rscr','\\u211B':'Rscr','\\u211C':'Re','\\u211D':'Ropf','\\u0155':'racute','\\u0154':'Racute','\\u0159':'rcaron','\\u0158':'Rcaron','\\u0157':'rcedil','\\u0156':'Rcedil','\\uD835\\uDD64':'sopf','\\uD835\\uDCC8':'sscr','\\uD835\\uDD30':'sfr','\\uD835\\uDD4A':'Sopf','\\uD835\\uDD16':'Sfr','\\uD835\\uDCAE':'Sscr','\\u24C8':'oS','\\u015B':'sacute','\\u015A':'Sacute','\\u015D':'scirc','\\u015C':'Scirc','\\u0161':'scaron','\\u0160':'Scaron','\\u015F':'scedil','\\u015E':'Scedil','\\xDF':'szlig','\\uD835\\uDD31':'tfr','\\uD835\\uDCC9':'tscr','\\uD835\\uDD65':'topf','\\uD835\\uDCAF':'Tscr','\\uD835\\uDD17':'Tfr','\\uD835\\uDD4B':'Topf','\\u0165':'tcaron','\\u0164':'Tcaron','\\u0163':'tcedil','\\u0162':'Tcedil','\\u2122':'trade','\\u0167':'tstrok','\\u0166':'Tstrok','\\uD835\\uDCCA':'uscr','\\uD835\\uDD66':'uopf','\\uD835\\uDD32':'ufr','\\uD835\\uDD4C':'Uopf','\\uD835\\uDD18':'Ufr','\\uD835\\uDCB0':'Uscr','\\xFA':'uacute','\\xDA':'Uacute','\\xF9':'ugrave','\\xD9':'Ugrave','\\u016D':'ubreve','\\u016C':'Ubreve','\\xFB':'ucirc','\\xDB':'Ucirc','\\u016F':'uring','\\u016E':'Uring','\\xFC':'uuml','\\xDC':'Uuml','\\u0171':'udblac','\\u0170':'Udblac','\\u0169':'utilde','\\u0168':'Utilde','\\u0173':'uogon','\\u0172':'Uogon','\\u016B':'umacr','\\u016A':'Umacr','\\uD835\\uDD33':'vfr','\\uD835\\uDD67':'vopf','\\uD835\\uDCCB':'vscr','\\uD835\\uDD19':'Vfr','\\uD835\\uDD4D':'Vopf','\\uD835\\uDCB1':'Vscr','\\uD835\\uDD68':'wopf','\\uD835\\uDCCC':'wscr','\\uD835\\uDD34':'wfr','\\uD835\\uDCB2':'Wscr','\\uD835\\uDD4E':'Wopf','\\uD835\\uDD1A':'Wfr','\\u0175':'wcirc','\\u0174':'Wcirc','\\uD835\\uDD35':'xfr','\\uD835\\uDCCD':'xscr','\\uD835\\uDD69':'xopf','\\uD835\\uDD4F':'Xopf','\\uD835\\uDD1B':'Xfr','\\uD835\\uDCB3':'Xscr','\\uD835\\uDD36':'yfr','\\uD835\\uDCCE':'yscr','\\uD835\\uDD6A':'yopf','\\uD835\\uDCB4':'Yscr','\\uD835\\uDD1C':'Yfr','\\uD835\\uDD50':'Yopf','\\xFD':'yacute','\\xDD':'Yacute','\\u0177':'ycirc','\\u0176':'Ycirc','\\xFF':'yuml','\\u0178':'Yuml','\\uD835\\uDCCF':'zscr','\\uD835\\uDD37':'zfr','\\uD835\\uDD6B':'zopf','\\u2128':'Zfr','\\u2124':'Zopf','\\uD835\\uDCB5':'Zscr','\\u017A':'zacute','\\u0179':'Zacute','\\u017E':'zcaron','\\u017D':'Zcaron','\\u017C':'zdot','\\u017B':'Zdot','\\u01B5':'imped','\\xFE':'thorn','\\xDE':'THORN','\\u0149':'napos','\\u03B1':'alpha','\\u0391':'Alpha','\\u03B2':'beta','\\u0392':'Beta','\\u03B3':'gamma','\\u0393':'Gamma','\\u03B4':'delta','\\u0394':'Delta','\\u03B5':'epsi','\\u03F5':'epsiv','\\u0395':'Epsilon','\\u03DD':'gammad','\\u03DC':'Gammad','\\u03B6':'zeta','\\u0396':'Zeta','\\u03B7':'eta','\\u0397':'Eta','\\u03B8':'theta','\\u03D1':'thetav','\\u0398':'Theta','\\u03B9':'iota','\\u0399':'Iota','\\u03BA':'kappa','\\u03F0':'kappav','\\u039A':'Kappa','\\u03BB':'lambda','\\u039B':'Lambda','\\u03BC':'mu','\\xB5':'micro','\\u039C':'Mu','\\u03BD':'nu','\\u039D':'Nu','\\u03BE':'xi','\\u039E':'Xi','\\u03BF':'omicron','\\u039F':'Omicron','\\u03C0':'pi','\\u03D6':'piv','\\u03A0':'Pi','\\u03C1':'rho','\\u03F1':'rhov','\\u03A1':'Rho','\\u03C3':'sigma','\\u03A3':'Sigma','\\u03C2':'sigmaf','\\u03C4':'tau','\\u03A4':'Tau','\\u03C5':'upsi','\\u03A5':'Upsilon','\\u03D2':'Upsi','\\u03C6':'phi','\\u03D5':'phiv','\\u03A6':'Phi','\\u03C7':'chi','\\u03A7':'Chi','\\u03C8':'psi','\\u03A8':'Psi','\\u03C9':'omega','\\u03A9':'ohm','\\u0430':'acy','\\u0410':'Acy','\\u0431':'bcy','\\u0411':'Bcy','\\u0432':'vcy','\\u0412':'Vcy','\\u0433':'gcy','\\u0413':'Gcy','\\u0453':'gjcy','\\u0403':'GJcy','\\u0434':'dcy','\\u0414':'Dcy','\\u0452':'djcy','\\u0402':'DJcy','\\u0435':'iecy','\\u0415':'IEcy','\\u0451':'iocy','\\u0401':'IOcy','\\u0454':'jukcy','\\u0404':'Jukcy','\\u0436':'zhcy','\\u0416':'ZHcy','\\u0437':'zcy','\\u0417':'Zcy','\\u0455':'dscy','\\u0405':'DScy','\\u0438':'icy','\\u0418':'Icy','\\u0456':'iukcy','\\u0406':'Iukcy','\\u0457':'yicy','\\u0407':'YIcy','\\u0439':'jcy','\\u0419':'Jcy','\\u0458':'jsercy','\\u0408':'Jsercy','\\u043A':'kcy','\\u041A':'Kcy','\\u045C':'kjcy','\\u040C':'KJcy','\\u043B':'lcy','\\u041B':'Lcy','\\u0459':'ljcy','\\u0409':'LJcy','\\u043C':'mcy','\\u041C':'Mcy','\\u043D':'ncy','\\u041D':'Ncy','\\u045A':'njcy','\\u040A':'NJcy','\\u043E':'ocy','\\u041E':'Ocy','\\u043F':'pcy','\\u041F':'Pcy','\\u0440':'rcy','\\u0420':'Rcy','\\u0441':'scy','\\u0421':'Scy','\\u0442':'tcy','\\u0422':'Tcy','\\u045B':'tshcy','\\u040B':'TSHcy','\\u0443':'ucy','\\u0423':'Ucy','\\u045E':'ubrcy','\\u040E':'Ubrcy','\\u0444':'fcy','\\u0424':'Fcy','\\u0445':'khcy','\\u0425':'KHcy','\\u0446':'tscy','\\u0426':'TScy','\\u0447':'chcy','\\u0427':'CHcy','\\u045F':'dzcy','\\u040F':'DZcy','\\u0448':'shcy','\\u0428':'SHcy','\\u0449':'shchcy','\\u0429':'SHCHcy','\\u044A':'hardcy','\\u042A':'HARDcy','\\u044B':'ycy','\\u042B':'Ycy','\\u044C':'softcy','\\u042C':'SOFTcy','\\u044D':'ecy','\\u042D':'Ecy','\\u044E':'yucy','\\u042E':'YUcy','\\u044F':'yacy','\\u042F':'YAcy','\\u2135':'aleph','\\u2136':'beth','\\u2137':'gimel','\\u2138':'daleth'};\n\n\tvar regexEscape = /[\"&'<>`]/g;\n\tvar escapeMap = {\n\t\t'\"': '"',\n\t\t'&': '&',\n\t\t'\\'': ''',\n\t\t'<': '<',\n\t\t// See https://mathiasbynens.be/notes/ambiguous-ampersands: in HTML, the\n\t\t// following is not strictly necessary unless it’s part of a tag or an\n\t\t// unquoted attribute value. We’re only escaping it to support those\n\t\t// situations, and for XML support.\n\t\t'>': '>',\n\t\t// In Internet Explorer ≤ 8, the backtick character can be used\n\t\t// to break out of (un)quoted attribute values or HTML comments.\n\t\t// See http://html5sec.org/#102, http://html5sec.org/#108, and\n\t\t// http://html5sec.org/#133.\n\t\t'`': '`'\n\t};\n\n\tvar regexInvalidEntity = /&#(?:[xX][^a-fA-F0-9]|[^0-9xX])/;\n\tvar regexInvalidRawCodePoint = /[\\0-\\x08\\x0B\\x0E-\\x1F\\x7F-\\x9F\\uFDD0-\\uFDEF\\uFFFE\\uFFFF]|[\\uD83F\\uD87F\\uD8BF\\uD8FF\\uD93F\\uD97F\\uD9BF\\uD9FF\\uDA3F\\uDA7F\\uDABF\\uDAFF\\uDB3F\\uDB7F\\uDBBF\\uDBFF][\\uDFFE\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF]/;\n\tvar regexDecode = /&(CounterClockwiseContourIntegral|DoubleLongLeftRightArrow|ClockwiseContourIntegral|NotNestedGreaterGreater|NotSquareSupersetEqual|DiacriticalDoubleAcute|NotRightTriangleEqual|NotSucceedsSlantEqual|NotPrecedesSlantEqual|CloseCurlyDoubleQuote|NegativeVeryThinSpace|DoubleContourIntegral|FilledVerySmallSquare|CapitalDifferentialD|OpenCurlyDoubleQuote|EmptyVerySmallSquare|NestedGreaterGreater|DoubleLongRightArrow|NotLeftTriangleEqual|NotGreaterSlantEqual|ReverseUpEquilibrium|DoubleLeftRightArrow|NotSquareSubsetEqual|NotDoubleVerticalBar|RightArrowLeftArrow|NotGreaterFullEqual|NotRightTriangleBar|SquareSupersetEqual|DownLeftRightVector|DoubleLongLeftArrow|leftrightsquigarrow|LeftArrowRightArrow|NegativeMediumSpace|blacktriangleright|RightDownVectorBar|PrecedesSlantEqual|RightDoubleBracket|SucceedsSlantEqual|NotLeftTriangleBar|RightTriangleEqual|SquareIntersection|RightDownTeeVector|ReverseEquilibrium|NegativeThickSpace|longleftrightarrow|Longleftrightarrow|LongLeftRightArrow|DownRightTeeVector|DownRightVectorBar|GreaterSlantEqual|SquareSubsetEqual|LeftDownVectorBar|LeftDoubleBracket|VerticalSeparator|rightleftharpoons|NotGreaterGreater|NotSquareSuperset|blacktriangleleft|blacktriangledown|NegativeThinSpace|LeftDownTeeVector|NotLessSlantEqual|leftrightharpoons|DoubleUpDownArrow|DoubleVerticalBar|LeftTriangleEqual|FilledSmallSquare|twoheadrightarrow|NotNestedLessLess|DownLeftTeeVector|DownLeftVectorBar|RightAngleBracket|NotTildeFullEqual|NotReverseElement|RightUpDownVector|DiacriticalTilde|NotSucceedsTilde|circlearrowright|NotPrecedesEqual|rightharpoondown|DoubleRightArrow|NotSucceedsEqual|NonBreakingSpace|NotRightTriangle|LessEqualGreater|RightUpTeeVector|LeftAngleBracket|GreaterFullEqual|DownArrowUpArrow|RightUpVectorBar|twoheadleftarrow|GreaterEqualLess|downharpoonright|RightTriangleBar|ntrianglerighteq|NotSupersetEqual|LeftUpDownVector|DiacriticalAcute|rightrightarrows|vartriangleright|UpArrowDownArrow|DiacriticalGrave|UnderParenthesis|EmptySmallSquare|LeftUpVectorBar|leftrightarrows|DownRightVector|downharpoonleft|trianglerighteq|ShortRightArrow|OverParenthesis|DoubleLeftArrow|DoubleDownArrow|NotSquareSubset|bigtriangledown|ntrianglelefteq|UpperRightArrow|curvearrowright|vartriangleleft|NotLeftTriangle|nleftrightarrow|LowerRightArrow|NotHumpDownHump|NotGreaterTilde|rightthreetimes|LeftUpTeeVector|NotGreaterEqual|straightepsilon|LeftTriangleBar|rightsquigarrow|ContourIntegral|rightleftarrows|CloseCurlyQuote|RightDownVector|LeftRightVector|nLeftrightarrow|leftharpoondown|circlearrowleft|SquareSuperset|OpenCurlyQuote|hookrightarrow|HorizontalLine|DiacriticalDot|NotLessGreater|ntriangleright|DoubleRightTee|InvisibleComma|InvisibleTimes|LowerLeftArrow|DownLeftVector|NotSubsetEqual|curvearrowleft|trianglelefteq|NotVerticalBar|TildeFullEqual|downdownarrows|NotGreaterLess|RightTeeVector|ZeroWidthSpace|looparrowright|LongRightArrow|doublebarwedge|ShortLeftArrow|ShortDownArrow|RightVectorBar|GreaterGreater|ReverseElement|rightharpoonup|LessSlantEqual|leftthreetimes|upharpoonright|rightarrowtail|LeftDownVector|Longrightarrow|NestedLessLess|UpperLeftArrow|nshortparallel|leftleftarrows|leftrightarrow|Leftrightarrow|LeftRightArrow|longrightarrow|upharpoonleft|RightArrowBar|ApplyFunction|LeftTeeVector|leftarrowtail|NotEqualTilde|varsubsetneqq|varsupsetneqq|RightTeeArrow|SucceedsEqual|SucceedsTilde|LeftVectorBar|SupersetEqual|hookleftarrow|DifferentialD|VerticalTilde|VeryThinSpace|blacktriangle|bigtriangleup|LessFullEqual|divideontimes|leftharpoonup|UpEquilibrium|ntriangleleft|RightTriangle|measuredangle|shortparallel|longleftarrow|Longleftarrow|LongLeftArrow|DoubleLeftTee|Poincareplane|PrecedesEqual|triangleright|DoubleUpArrow|RightUpVector|fallingdotseq|looparrowleft|PrecedesTilde|NotTildeEqual|NotTildeTilde|smallsetminus|Proportional|triangleleft|triangledown|UnderBracket|NotHumpEqual|exponentiale|ExponentialE|NotLessTilde|HilbertSpace|RightCeiling|blacklozenge|varsupsetneq|HumpDownHump|GreaterEqual|VerticalLine|LeftTeeArrow|NotLessEqual|DownTeeArrow|LeftTriangle|varsubsetneq|Intersection|NotCongruent|DownArrowBar|LeftUpVector|LeftArrowBar|risingdotseq|GreaterTilde|RoundImplies|SquareSubset|ShortUpArrow|NotSuperset|quaternions|precnapprox|backepsilon|preccurlyeq|OverBracket|blacksquare|MediumSpace|VerticalBar|circledcirc|circleddash|CircleMinus|CircleTimes|LessGreater|curlyeqprec|curlyeqsucc|diamondsuit|UpDownArrow|Updownarrow|RuleDelayed|Rrightarrow|updownarrow|RightVector|nRightarrow|nrightarrow|eqslantless|LeftCeiling|Equilibrium|SmallCircle|expectation|NotSucceeds|thickapprox|GreaterLess|SquareUnion|NotPrecedes|NotLessLess|straightphi|succnapprox|succcurlyeq|SubsetEqual|sqsupseteq|Proportion|Laplacetrf|ImaginaryI|supsetneqq|NotGreater|gtreqqless|NotElement|ThickSpace|TildeEqual|TildeTilde|Fouriertrf|rmoustache|EqualTilde|eqslantgtr|UnderBrace|LeftVector|UpArrowBar|nLeftarrow|nsubseteqq|subsetneqq|nsupseteqq|nleftarrow|succapprox|lessapprox|UpTeeArrow|upuparrows|curlywedge|lesseqqgtr|varepsilon|varnothing|RightFloor|complement|CirclePlus|sqsubseteq|Lleftarrow|circledast|RightArrow|Rightarrow|rightarrow|lmoustache|Bernoullis|precapprox|mapstoleft|mapstodown|longmapsto|dotsquare|downarrow|DoubleDot|nsubseteq|supsetneq|leftarrow|nsupseteq|subsetneq|ThinSpace|ngeqslant|subseteqq|HumpEqual|NotSubset|triangleq|NotCupCap|lesseqgtr|heartsuit|TripleDot|Leftarrow|Coproduct|Congruent|varpropto|complexes|gvertneqq|LeftArrow|LessTilde|supseteqq|MinusPlus|CircleDot|nleqslant|NotExists|gtreqless|nparallel|UnionPlus|LeftFloor|checkmark|CenterDot|centerdot|Mellintrf|gtrapprox|bigotimes|OverBrace|spadesuit|therefore|pitchfork|rationals|PlusMinus|Backslash|Therefore|DownBreve|backsimeq|backprime|DownArrow|nshortmid|Downarrow|lvertneqq|eqvparsl|imagline|imagpart|infintie|integers|Integral|intercal|LessLess|Uarrocir|intlarhk|sqsupset|angmsdaf|sqsubset|llcorner|vartheta|cupbrcap|lnapprox|Superset|SuchThat|succnsim|succneqq|angmsdag|biguplus|curlyvee|trpezium|Succeeds|NotTilde|bigwedge|angmsdah|angrtvbd|triminus|cwconint|fpartint|lrcorner|smeparsl|subseteq|urcorner|lurdshar|laemptyv|DDotrahd|approxeq|ldrushar|awconint|mapstoup|backcong|shortmid|triangle|geqslant|gesdotol|timesbar|circledR|circledS|setminus|multimap|naturals|scpolint|ncongdot|RightTee|boxminus|gnapprox|boxtimes|andslope|thicksim|angmsdaa|varsigma|cirfnint|rtriltri|angmsdab|rppolint|angmsdac|barwedge|drbkarow|clubsuit|thetasym|bsolhsub|capbrcup|dzigrarr|doteqdot|DotEqual|dotminus|UnderBar|NotEqual|realpart|otimesas|ulcorner|hksearow|hkswarow|parallel|PartialD|elinters|emptyset|plusacir|bbrktbrk|angmsdad|pointint|bigoplus|angmsdae|Precedes|bigsqcup|varkappa|notindot|supseteq|precneqq|precnsim|profalar|profline|profsurf|leqslant|lesdotor|raemptyv|subplus|notnivb|notnivc|subrarr|zigrarr|vzigzag|submult|subedot|Element|between|cirscir|larrbfs|larrsim|lotimes|lbrksld|lbrkslu|lozenge|ldrdhar|dbkarow|bigcirc|epsilon|simrarr|simplus|ltquest|Epsilon|luruhar|gtquest|maltese|npolint|eqcolon|npreceq|bigodot|ddagger|gtrless|bnequiv|harrcir|ddotseq|equivDD|backsim|demptyv|nsqsube|nsqsupe|Upsilon|nsubset|upsilon|minusdu|nsucceq|swarrow|nsupset|coloneq|searrow|boxplus|napprox|natural|asympeq|alefsym|congdot|nearrow|bigstar|diamond|supplus|tritime|LeftTee|nvinfin|triplus|NewLine|nvltrie|nvrtrie|nwarrow|nexists|Diamond|ruluhar|Implies|supmult|angzarr|suplarr|suphsub|questeq|because|digamma|Because|olcross|bemptyv|omicron|Omicron|rotimes|NoBreak|intprod|angrtvb|orderof|uwangle|suphsol|lesdoto|orslope|DownTee|realine|cudarrl|rdldhar|OverBar|supedot|lessdot|supdsub|topfork|succsim|rbrkslu|rbrksld|pertenk|cudarrr|isindot|planckh|lessgtr|pluscir|gesdoto|plussim|plustwo|lesssim|cularrp|rarrsim|Cayleys|notinva|notinvb|notinvc|UpArrow|Uparrow|uparrow|NotLess|dwangle|precsim|Product|curarrm|Cconint|dotplus|rarrbfs|ccupssm|Cedilla|cemptyv|notniva|quatint|frac35|frac38|frac45|frac56|frac58|frac78|tridot|xoplus|gacute|gammad|Gammad|lfisht|lfloor|bigcup|sqsupe|gbreve|Gbreve|lharul|sqsube|sqcups|Gcedil|apacir|llhard|lmidot|Lmidot|lmoust|andand|sqcaps|approx|Abreve|spades|circeq|tprime|divide|topcir|Assign|topbot|gesdot|divonx|xuplus|timesd|gesles|atilde|solbar|SOFTcy|loplus|timesb|lowast|lowbar|dlcorn|dlcrop|softcy|dollar|lparlt|thksim|lrhard|Atilde|lsaquo|smashp|bigvee|thinsp|wreath|bkarow|lsquor|lstrok|Lstrok|lthree|ltimes|ltlarr|DotDot|simdot|ltrPar|weierp|xsqcup|angmsd|sigmav|sigmaf|zeetrf|Zcaron|zcaron|mapsto|vsupne|thetav|cirmid|marker|mcomma|Zacute|vsubnE|there4|gtlPar|vsubne|bottom|gtrarr|SHCHcy|shchcy|midast|midcir|middot|minusb|minusd|gtrdot|bowtie|sfrown|mnplus|models|colone|seswar|Colone|mstpos|searhk|gtrsim|nacute|Nacute|boxbox|telrec|hairsp|Tcedil|nbumpe|scnsim|ncaron|Ncaron|ncedil|Ncedil|hamilt|Scedil|nearhk|hardcy|HARDcy|tcedil|Tcaron|commat|nequiv|nesear|tcaron|target|hearts|nexist|varrho|scedil|Scaron|scaron|hellip|Sacute|sacute|hercon|swnwar|compfn|rtimes|rthree|rsquor|rsaquo|zacute|wedgeq|homtht|barvee|barwed|Barwed|rpargt|horbar|conint|swarhk|roplus|nltrie|hslash|hstrok|Hstrok|rmoust|Conint|bprime|hybull|hyphen|iacute|Iacute|supsup|supsub|supsim|varphi|coprod|brvbar|agrave|Supset|supset|igrave|Igrave|notinE|Agrave|iiiint|iinfin|copysr|wedbar|Verbar|vangrt|becaus|incare|verbar|inodot|bullet|drcorn|intcal|drcrop|cularr|vellip|Utilde|bumpeq|cupcap|dstrok|Dstrok|CupCap|cupcup|cupdot|eacute|Eacute|supdot|iquest|easter|ecaron|Ecaron|ecolon|isinsv|utilde|itilde|Itilde|curarr|succeq|Bumpeq|cacute|ulcrop|nparsl|Cacute|nprcue|egrave|Egrave|nrarrc|nrarrw|subsup|subsub|nrtrie|jsercy|nsccue|Jsercy|kappav|kcedil|Kcedil|subsim|ulcorn|nsimeq|egsdot|veebar|kgreen|capand|elsdot|Subset|subset|curren|aacute|lacute|Lacute|emptyv|ntilde|Ntilde|lagran|lambda|Lambda|capcap|Ugrave|langle|subdot|emsp13|numero|emsp14|nvdash|nvDash|nVdash|nVDash|ugrave|ufisht|nvHarr|larrfs|nvlArr|larrhk|larrlp|larrpl|nvrArr|Udblac|nwarhk|larrtl|nwnear|oacute|Oacute|latail|lAtail|sstarf|lbrace|odblac|Odblac|lbrack|udblac|odsold|eparsl|lcaron|Lcaron|ograve|Ograve|lcedil|Lcedil|Aacute|ssmile|ssetmn|squarf|ldquor|capcup|ominus|cylcty|rharul|eqcirc|dagger|rfloor|rfisht|Dagger|daleth|equals|origof|capdot|equest|dcaron|Dcaron|rdquor|oslash|Oslash|otilde|Otilde|otimes|Otimes|urcrop|Ubreve|ubreve|Yacute|Uacute|uacute|Rcedil|rcedil|urcorn|parsim|Rcaron|Vdashl|rcaron|Tstrok|percnt|period|permil|Exists|yacute|rbrack|rbrace|phmmat|ccaron|Ccaron|planck|ccedil|plankv|tstrok|female|plusdo|plusdu|ffilig|plusmn|ffllig|Ccedil|rAtail|dfisht|bernou|ratail|Rarrtl|rarrtl|angsph|rarrpl|rarrlp|rarrhk|xwedge|xotime|forall|ForAll|Vvdash|vsupnE|preceq|bigcap|frac12|frac13|frac14|primes|rarrfs|prnsim|frac15|Square|frac16|square|lesdot|frac18|frac23|propto|prurel|rarrap|rangle|puncsp|frac25|Racute|qprime|racute|lesges|frac34|abreve|AElig|eqsim|utdot|setmn|urtri|Equal|Uring|seArr|uring|searr|dashv|Dashv|mumap|nabla|iogon|Iogon|sdote|sdotb|scsim|napid|napos|equiv|natur|Acirc|dblac|erarr|nbump|iprod|erDot|ucirc|awint|esdot|angrt|ncong|isinE|scnap|Scirc|scirc|ndash|isins|Ubrcy|nearr|neArr|isinv|nedot|ubrcy|acute|Ycirc|iukcy|Iukcy|xutri|nesim|caret|jcirc|Jcirc|caron|twixt|ddarr|sccue|exist|jmath|sbquo|ngeqq|angst|ccaps|lceil|ngsim|UpTee|delta|Delta|rtrif|nharr|nhArr|nhpar|rtrie|jukcy|Jukcy|kappa|rsquo|Kappa|nlarr|nlArr|TSHcy|rrarr|aogon|Aogon|fflig|xrarr|tshcy|ccirc|nleqq|filig|upsih|nless|dharl|nlsim|fjlig|ropar|nltri|dharr|robrk|roarr|fllig|fltns|roang|rnmid|subnE|subne|lAarr|trisb|Ccirc|acirc|ccups|blank|VDash|forkv|Vdash|langd|cedil|blk12|blk14|laquo|strns|diams|notin|vDash|larrb|blk34|block|disin|uplus|vdash|vBarv|aelig|starf|Wedge|check|xrArr|lates|lbarr|lBarr|notni|lbbrk|bcong|frasl|lbrke|frown|vrtri|vprop|vnsup|gamma|Gamma|wedge|xodot|bdquo|srarr|doteq|ldquo|boxdl|boxdL|gcirc|Gcirc|boxDl|boxDL|boxdr|boxdR|boxDr|TRADE|trade|rlhar|boxDR|vnsub|npart|vltri|rlarr|boxhd|boxhD|nprec|gescc|nrarr|nrArr|boxHd|boxHD|boxhu|boxhU|nrtri|boxHu|clubs|boxHU|times|colon|Colon|gimel|xlArr|Tilde|nsime|tilde|nsmid|nspar|THORN|thorn|xlarr|nsube|nsubE|thkap|xhArr|comma|nsucc|boxul|boxuL|nsupe|nsupE|gneqq|gnsim|boxUl|boxUL|grave|boxur|boxuR|boxUr|boxUR|lescc|angle|bepsi|boxvh|varpi|boxvH|numsp|Theta|gsime|gsiml|theta|boxVh|boxVH|boxvl|gtcir|gtdot|boxvL|boxVl|boxVL|crarr|cross|Cross|nvsim|boxvr|nwarr|nwArr|sqsup|dtdot|Uogon|lhard|lharu|dtrif|ocirc|Ocirc|lhblk|duarr|odash|sqsub|Hacek|sqcup|llarr|duhar|oelig|OElig|ofcir|boxvR|uogon|lltri|boxVr|csube|uuarr|ohbar|csupe|ctdot|olarr|olcir|harrw|oline|sqcap|omacr|Omacr|omega|Omega|boxVR|aleph|lneqq|lnsim|loang|loarr|rharu|lobrk|hcirc|operp|oplus|rhard|Hcirc|orarr|Union|order|ecirc|Ecirc|cuepr|szlig|cuesc|breve|reals|eDDot|Breve|hoarr|lopar|utrif|rdquo|Umacr|umacr|efDot|swArr|ultri|alpha|rceil|ovbar|swarr|Wcirc|wcirc|smtes|smile|bsemi|lrarr|aring|parsl|lrhar|bsime|uhblk|lrtri|cupor|Aring|uharr|uharl|slarr|rbrke|bsolb|lsime|rbbrk|RBarr|lsimg|phone|rBarr|rbarr|icirc|lsquo|Icirc|emacr|Emacr|ratio|simne|plusb|simlE|simgE|simeq|pluse|ltcir|ltdot|empty|xharr|xdtri|iexcl|Alpha|ltrie|rarrw|pound|ltrif|xcirc|bumpe|prcue|bumpE|asymp|amacr|cuvee|Sigma|sigma|iiint|udhar|iiota|ijlig|IJlig|supnE|imacr|Imacr|prime|Prime|image|prnap|eogon|Eogon|rarrc|mdash|mDDot|cuwed|imath|supne|imped|Amacr|udarr|prsim|micro|rarrb|cwint|raquo|infin|eplus|range|rangd|Ucirc|radic|minus|amalg|veeeq|rAarr|epsiv|ycirc|quest|sharp|quot|zwnj|Qscr|race|qscr|Qopf|qopf|qint|rang|Rang|Zscr|zscr|Zopf|zopf|rarr|rArr|Rarr|Pscr|pscr|prop|prod|prnE|prec|ZHcy|zhcy|prap|Zeta|zeta|Popf|popf|Zdot|plus|zdot|Yuml|yuml|phiv|YUcy|yucy|Yscr|yscr|perp|Yopf|yopf|part|para|YIcy|Ouml|rcub|yicy|YAcy|rdca|ouml|osol|Oscr|rdsh|yacy|real|oscr|xvee|andd|rect|andv|Xscr|oror|ordm|ordf|xscr|ange|aopf|Aopf|rHar|Xopf|opar|Oopf|xopf|xnis|rhov|oopf|omid|xmap|oint|apid|apos|ogon|ascr|Ascr|odot|odiv|xcup|xcap|ocir|oast|nvlt|nvle|nvgt|nvge|nvap|Wscr|wscr|auml|ntlg|ntgl|nsup|nsub|nsim|Nscr|nscr|nsce|Wopf|ring|npre|wopf|npar|Auml|Barv|bbrk|Nopf|nopf|nmid|nLtv|beta|ropf|Ropf|Beta|beth|nles|rpar|nleq|bnot|bNot|nldr|NJcy|rscr|Rscr|Vscr|vscr|rsqb|njcy|bopf|nisd|Bopf|rtri|Vopf|nGtv|ngtr|vopf|boxh|boxH|boxv|nges|ngeq|boxV|bscr|scap|Bscr|bsim|Vert|vert|bsol|bull|bump|caps|cdot|ncup|scnE|ncap|nbsp|napE|Cdot|cent|sdot|Vbar|nang|vBar|chcy|Mscr|mscr|sect|semi|CHcy|Mopf|mopf|sext|circ|cire|mldr|mlcp|cirE|comp|shcy|SHcy|vArr|varr|cong|copf|Copf|copy|COPY|malt|male|macr|lvnE|cscr|ltri|sime|ltcc|simg|Cscr|siml|csub|Uuml|lsqb|lsim|uuml|csup|Lscr|lscr|utri|smid|lpar|cups|smte|lozf|darr|Lopf|Uscr|solb|lopf|sopf|Sopf|lneq|uscr|spar|dArr|lnap|Darr|dash|Sqrt|LJcy|ljcy|lHar|dHar|Upsi|upsi|diam|lesg|djcy|DJcy|leqq|dopf|Dopf|dscr|Dscr|dscy|ldsh|ldca|squf|DScy|sscr|Sscr|dsol|lcub|late|star|Star|Uopf|Larr|lArr|larr|uopf|dtri|dzcy|sube|subE|Lang|lang|Kscr|kscr|Kopf|kopf|KJcy|kjcy|KHcy|khcy|DZcy|ecir|edot|eDot|Jscr|jscr|succ|Jopf|jopf|Edot|uHar|emsp|ensp|Iuml|iuml|eopf|isin|Iscr|iscr|Eopf|epar|sung|epsi|escr|sup1|sup2|sup3|Iota|iota|supe|supE|Iopf|iopf|IOcy|iocy|Escr|esim|Esim|imof|Uarr|QUOT|uArr|uarr|euml|IEcy|iecy|Idot|Euml|euro|excl|Hscr|hscr|Hopf|hopf|TScy|tscy|Tscr|hbar|tscr|flat|tbrk|fnof|hArr|harr|half|fopf|Fopf|tdot|gvnE|fork|trie|gtcc|fscr|Fscr|gdot|gsim|Gscr|gscr|Gopf|gopf|gneq|Gdot|tosa|gnap|Topf|topf|geqq|toea|GJcy|gjcy|tint|gesl|mid|Sfr|ggg|top|ges|gla|glE|glj|geq|gne|gEl|gel|gnE|Gcy|gcy|gap|Tfr|tfr|Tcy|tcy|Hat|Tau|Ffr|tau|Tab|hfr|Hfr|ffr|Fcy|fcy|icy|Icy|iff|ETH|eth|ifr|Ifr|Eta|eta|int|Int|Sup|sup|ucy|Ucy|Sum|sum|jcy|ENG|ufr|Ufr|eng|Jcy|jfr|els|ell|egs|Efr|efr|Jfr|uml|kcy|Kcy|Ecy|ecy|kfr|Kfr|lap|Sub|sub|lat|lcy|Lcy|leg|Dot|dot|lEg|leq|les|squ|div|die|lfr|Lfr|lgE|Dfr|dfr|Del|deg|Dcy|dcy|lne|lnE|sol|loz|smt|Cup|lrm|cup|lsh|Lsh|sim|shy|map|Map|mcy|Mcy|mfr|Mfr|mho|gfr|Gfr|sfr|cir|Chi|chi|nap|Cfr|vcy|Vcy|cfr|Scy|scy|ncy|Ncy|vee|Vee|Cap|cap|nfr|scE|sce|Nfr|nge|ngE|nGg|vfr|Vfr|ngt|bot|nGt|nis|niv|Rsh|rsh|nle|nlE|bne|Bfr|bfr|nLl|nlt|nLt|Bcy|bcy|not|Not|rlm|wfr|Wfr|npr|nsc|num|ocy|ast|Ocy|ofr|xfr|Xfr|Ofr|ogt|ohm|apE|olt|Rho|ape|rho|Rfr|rfr|ord|REG|ang|reg|orv|And|and|AMP|Rcy|amp|Afr|ycy|Ycy|yen|yfr|Yfr|rcy|par|pcy|Pcy|pfr|Pfr|phi|Phi|afr|Acy|acy|zcy|Zcy|piv|acE|acd|zfr|Zfr|pre|prE|psi|Psi|qfr|Qfr|zwj|Or|ge|Gg|gt|gg|el|oS|lt|Lt|LT|Re|lg|gl|eg|ne|Im|it|le|DD|wp|wr|nu|Nu|dd|lE|Sc|sc|pi|Pi|ee|af|ll|Ll|rx|gE|xi|pm|Xi|ic|pr|Pr|in|ni|mp|mu|ac|Mu|or|ap|Gt|GT|ii);|&(Aacute|Agrave|Atilde|Ccedil|Eacute|Egrave|Iacute|Igrave|Ntilde|Oacute|Ograve|Oslash|Otilde|Uacute|Ugrave|Yacute|aacute|agrave|atilde|brvbar|ccedil|curren|divide|eacute|egrave|frac12|frac14|frac34|iacute|igrave|iquest|middot|ntilde|oacute|ograve|oslash|otilde|plusmn|uacute|ugrave|yacute|AElig|Acirc|Aring|Ecirc|Icirc|Ocirc|THORN|Ucirc|acirc|acute|aelig|aring|cedil|ecirc|icirc|iexcl|laquo|micro|ocirc|pound|raquo|szlig|thorn|times|ucirc|Auml|COPY|Euml|Iuml|Ouml|QUOT|Uuml|auml|cent|copy|euml|iuml|macr|nbsp|ordf|ordm|ouml|para|quot|sect|sup1|sup2|sup3|uuml|yuml|AMP|ETH|REG|amp|deg|eth|not|reg|shy|uml|yen|GT|LT|gt|lt)(?!;)([=a-zA-Z0-9]?)|&#([0-9]+)(;?)|&#[xX]([a-fA-F0-9]+)(;?)|&([0-9a-zA-Z]+)/g;\n\tvar decodeMap = {'aacute':'\\xE1','Aacute':'\\xC1','abreve':'\\u0103','Abreve':'\\u0102','ac':'\\u223E','acd':'\\u223F','acE':'\\u223E\\u0333','acirc':'\\xE2','Acirc':'\\xC2','acute':'\\xB4','acy':'\\u0430','Acy':'\\u0410','aelig':'\\xE6','AElig':'\\xC6','af':'\\u2061','afr':'\\uD835\\uDD1E','Afr':'\\uD835\\uDD04','agrave':'\\xE0','Agrave':'\\xC0','alefsym':'\\u2135','aleph':'\\u2135','alpha':'\\u03B1','Alpha':'\\u0391','amacr':'\\u0101','Amacr':'\\u0100','amalg':'\\u2A3F','amp':'&','AMP':'&','and':'\\u2227','And':'\\u2A53','andand':'\\u2A55','andd':'\\u2A5C','andslope':'\\u2A58','andv':'\\u2A5A','ang':'\\u2220','ange':'\\u29A4','angle':'\\u2220','angmsd':'\\u2221','angmsdaa':'\\u29A8','angmsdab':'\\u29A9','angmsdac':'\\u29AA','angmsdad':'\\u29AB','angmsdae':'\\u29AC','angmsdaf':'\\u29AD','angmsdag':'\\u29AE','angmsdah':'\\u29AF','angrt':'\\u221F','angrtvb':'\\u22BE','angrtvbd':'\\u299D','angsph':'\\u2222','angst':'\\xC5','angzarr':'\\u237C','aogon':'\\u0105','Aogon':'\\u0104','aopf':'\\uD835\\uDD52','Aopf':'\\uD835\\uDD38','ap':'\\u2248','apacir':'\\u2A6F','ape':'\\u224A','apE':'\\u2A70','apid':'\\u224B','apos':'\\'','ApplyFunction':'\\u2061','approx':'\\u2248','approxeq':'\\u224A','aring':'\\xE5','Aring':'\\xC5','ascr':'\\uD835\\uDCB6','Ascr':'\\uD835\\uDC9C','Assign':'\\u2254','ast':'*','asymp':'\\u2248','asympeq':'\\u224D','atilde':'\\xE3','Atilde':'\\xC3','auml':'\\xE4','Auml':'\\xC4','awconint':'\\u2233','awint':'\\u2A11','backcong':'\\u224C','backepsilon':'\\u03F6','backprime':'\\u2035','backsim':'\\u223D','backsimeq':'\\u22CD','Backslash':'\\u2216','Barv':'\\u2AE7','barvee':'\\u22BD','barwed':'\\u2305','Barwed':'\\u2306','barwedge':'\\u2305','bbrk':'\\u23B5','bbrktbrk':'\\u23B6','bcong':'\\u224C','bcy':'\\u0431','Bcy':'\\u0411','bdquo':'\\u201E','becaus':'\\u2235','because':'\\u2235','Because':'\\u2235','bemptyv':'\\u29B0','bepsi':'\\u03F6','bernou':'\\u212C','Bernoullis':'\\u212C','beta':'\\u03B2','Beta':'\\u0392','beth':'\\u2136','between':'\\u226C','bfr':'\\uD835\\uDD1F','Bfr':'\\uD835\\uDD05','bigcap':'\\u22C2','bigcirc':'\\u25EF','bigcup':'\\u22C3','bigodot':'\\u2A00','bigoplus':'\\u2A01','bigotimes':'\\u2A02','bigsqcup':'\\u2A06','bigstar':'\\u2605','bigtriangledown':'\\u25BD','bigtriangleup':'\\u25B3','biguplus':'\\u2A04','bigvee':'\\u22C1','bigwedge':'\\u22C0','bkarow':'\\u290D','blacklozenge':'\\u29EB','blacksquare':'\\u25AA','blacktriangle':'\\u25B4','blacktriangledown':'\\u25BE','blacktriangleleft':'\\u25C2','blacktriangleright':'\\u25B8','blank':'\\u2423','blk12':'\\u2592','blk14':'\\u2591','blk34':'\\u2593','block':'\\u2588','bne':'=\\u20E5','bnequiv':'\\u2261\\u20E5','bnot':'\\u2310','bNot':'\\u2AED','bopf':'\\uD835\\uDD53','Bopf':'\\uD835\\uDD39','bot':'\\u22A5','bottom':'\\u22A5','bowtie':'\\u22C8','boxbox':'\\u29C9','boxdl':'\\u2510','boxdL':'\\u2555','boxDl':'\\u2556','boxDL':'\\u2557','boxdr':'\\u250C','boxdR':'\\u2552','boxDr':'\\u2553','boxDR':'\\u2554','boxh':'\\u2500','boxH':'\\u2550','boxhd':'\\u252C','boxhD':'\\u2565','boxHd':'\\u2564','boxHD':'\\u2566','boxhu':'\\u2534','boxhU':'\\u2568','boxHu':'\\u2567','boxHU':'\\u2569','boxminus':'\\u229F','boxplus':'\\u229E','boxtimes':'\\u22A0','boxul':'\\u2518','boxuL':'\\u255B','boxUl':'\\u255C','boxUL':'\\u255D','boxur':'\\u2514','boxuR':'\\u2558','boxUr':'\\u2559','boxUR':'\\u255A','boxv':'\\u2502','boxV':'\\u2551','boxvh':'\\u253C','boxvH':'\\u256A','boxVh':'\\u256B','boxVH':'\\u256C','boxvl':'\\u2524','boxvL':'\\u2561','boxVl':'\\u2562','boxVL':'\\u2563','boxvr':'\\u251C','boxvR':'\\u255E','boxVr':'\\u255F','boxVR':'\\u2560','bprime':'\\u2035','breve':'\\u02D8','Breve':'\\u02D8','brvbar':'\\xA6','bscr':'\\uD835\\uDCB7','Bscr':'\\u212C','bsemi':'\\u204F','bsim':'\\u223D','bsime':'\\u22CD','bsol':'\\\\','bsolb':'\\u29C5','bsolhsub':'\\u27C8','bull':'\\u2022','bullet':'\\u2022','bump':'\\u224E','bumpe':'\\u224F','bumpE':'\\u2AAE','bumpeq':'\\u224F','Bumpeq':'\\u224E','cacute':'\\u0107','Cacute':'\\u0106','cap':'\\u2229','Cap':'\\u22D2','capand':'\\u2A44','capbrcup':'\\u2A49','capcap':'\\u2A4B','capcup':'\\u2A47','capdot':'\\u2A40','CapitalDifferentialD':'\\u2145','caps':'\\u2229\\uFE00','caret':'\\u2041','caron':'\\u02C7','Cayleys':'\\u212D','ccaps':'\\u2A4D','ccaron':'\\u010D','Ccaron':'\\u010C','ccedil':'\\xE7','Ccedil':'\\xC7','ccirc':'\\u0109','Ccirc':'\\u0108','Cconint':'\\u2230','ccups':'\\u2A4C','ccupssm':'\\u2A50','cdot':'\\u010B','Cdot':'\\u010A','cedil':'\\xB8','Cedilla':'\\xB8','cemptyv':'\\u29B2','cent':'\\xA2','centerdot':'\\xB7','CenterDot':'\\xB7','cfr':'\\uD835\\uDD20','Cfr':'\\u212D','chcy':'\\u0447','CHcy':'\\u0427','check':'\\u2713','checkmark':'\\u2713','chi':'\\u03C7','Chi':'\\u03A7','cir':'\\u25CB','circ':'\\u02C6','circeq':'\\u2257','circlearrowleft':'\\u21BA','circlearrowright':'\\u21BB','circledast':'\\u229B','circledcirc':'\\u229A','circleddash':'\\u229D','CircleDot':'\\u2299','circledR':'\\xAE','circledS':'\\u24C8','CircleMinus':'\\u2296','CirclePlus':'\\u2295','CircleTimes':'\\u2297','cire':'\\u2257','cirE':'\\u29C3','cirfnint':'\\u2A10','cirmid':'\\u2AEF','cirscir':'\\u29C2','ClockwiseContourIntegral':'\\u2232','CloseCurlyDoubleQuote':'\\u201D','CloseCurlyQuote':'\\u2019','clubs':'\\u2663','clubsuit':'\\u2663','colon':':','Colon':'\\u2237','colone':'\\u2254','Colone':'\\u2A74','coloneq':'\\u2254','comma':',','commat':'@','comp':'\\u2201','compfn':'\\u2218','complement':'\\u2201','complexes':'\\u2102','cong':'\\u2245','congdot':'\\u2A6D','Congruent':'\\u2261','conint':'\\u222E','Conint':'\\u222F','ContourIntegral':'\\u222E','copf':'\\uD835\\uDD54','Copf':'\\u2102','coprod':'\\u2210','Coproduct':'\\u2210','copy':'\\xA9','COPY':'\\xA9','copysr':'\\u2117','CounterClockwiseContourIntegral':'\\u2233','crarr':'\\u21B5','cross':'\\u2717','Cross':'\\u2A2F','cscr':'\\uD835\\uDCB8','Cscr':'\\uD835\\uDC9E','csub':'\\u2ACF','csube':'\\u2AD1','csup':'\\u2AD0','csupe':'\\u2AD2','ctdot':'\\u22EF','cudarrl':'\\u2938','cudarrr':'\\u2935','cuepr':'\\u22DE','cuesc':'\\u22DF','cularr':'\\u21B6','cularrp':'\\u293D','cup':'\\u222A','Cup':'\\u22D3','cupbrcap':'\\u2A48','cupcap':'\\u2A46','CupCap':'\\u224D','cupcup':'\\u2A4A','cupdot':'\\u228D','cupor':'\\u2A45','cups':'\\u222A\\uFE00','curarr':'\\u21B7','curarrm':'\\u293C','curlyeqprec':'\\u22DE','curlyeqsucc':'\\u22DF','curlyvee':'\\u22CE','curlywedge':'\\u22CF','curren':'\\xA4','curvearrowleft':'\\u21B6','curvearrowright':'\\u21B7','cuvee':'\\u22CE','cuwed':'\\u22CF','cwconint':'\\u2232','cwint':'\\u2231','cylcty':'\\u232D','dagger':'\\u2020','Dagger':'\\u2021','daleth':'\\u2138','darr':'\\u2193','dArr':'\\u21D3','Darr':'\\u21A1','dash':'\\u2010','dashv':'\\u22A3','Dashv':'\\u2AE4','dbkarow':'\\u290F','dblac':'\\u02DD','dcaron':'\\u010F','Dcaron':'\\u010E','dcy':'\\u0434','Dcy':'\\u0414','dd':'\\u2146','DD':'\\u2145','ddagger':'\\u2021','ddarr':'\\u21CA','DDotrahd':'\\u2911','ddotseq':'\\u2A77','deg':'\\xB0','Del':'\\u2207','delta':'\\u03B4','Delta':'\\u0394','demptyv':'\\u29B1','dfisht':'\\u297F','dfr':'\\uD835\\uDD21','Dfr':'\\uD835\\uDD07','dHar':'\\u2965','dharl':'\\u21C3','dharr':'\\u21C2','DiacriticalAcute':'\\xB4','DiacriticalDot':'\\u02D9','DiacriticalDoubleAcute':'\\u02DD','DiacriticalGrave':'`','DiacriticalTilde':'\\u02DC','diam':'\\u22C4','diamond':'\\u22C4','Diamond':'\\u22C4','diamondsuit':'\\u2666','diams':'\\u2666','die':'\\xA8','DifferentialD':'\\u2146','digamma':'\\u03DD','disin':'\\u22F2','div':'\\xF7','divide':'\\xF7','divideontimes':'\\u22C7','divonx':'\\u22C7','djcy':'\\u0452','DJcy':'\\u0402','dlcorn':'\\u231E','dlcrop':'\\u230D','dollar':'$','dopf':'\\uD835\\uDD55','Dopf':'\\uD835\\uDD3B','dot':'\\u02D9','Dot':'\\xA8','DotDot':'\\u20DC','doteq':'\\u2250','doteqdot':'\\u2251','DotEqual':'\\u2250','dotminus':'\\u2238','dotplus':'\\u2214','dotsquare':'\\u22A1','doublebarwedge':'\\u2306','DoubleContourIntegral':'\\u222F','DoubleDot':'\\xA8','DoubleDownArrow':'\\u21D3','DoubleLeftArrow':'\\u21D0','DoubleLeftRightArrow':'\\u21D4','DoubleLeftTee':'\\u2AE4','DoubleLongLeftArrow':'\\u27F8','DoubleLongLeftRightArrow':'\\u27FA','DoubleLongRightArrow':'\\u27F9','DoubleRightArrow':'\\u21D2','DoubleRightTee':'\\u22A8','DoubleUpArrow':'\\u21D1','DoubleUpDownArrow':'\\u21D5','DoubleVerticalBar':'\\u2225','downarrow':'\\u2193','Downarrow':'\\u21D3','DownArrow':'\\u2193','DownArrowBar':'\\u2913','DownArrowUpArrow':'\\u21F5','DownBreve':'\\u0311','downdownarrows':'\\u21CA','downharpoonleft':'\\u21C3','downharpoonright':'\\u21C2','DownLeftRightVector':'\\u2950','DownLeftTeeVector':'\\u295E','DownLeftVector':'\\u21BD','DownLeftVectorBar':'\\u2956','DownRightTeeVector':'\\u295F','DownRightVector':'\\u21C1','DownRightVectorBar':'\\u2957','DownTee':'\\u22A4','DownTeeArrow':'\\u21A7','drbkarow':'\\u2910','drcorn':'\\u231F','drcrop':'\\u230C','dscr':'\\uD835\\uDCB9','Dscr':'\\uD835\\uDC9F','dscy':'\\u0455','DScy':'\\u0405','dsol':'\\u29F6','dstrok':'\\u0111','Dstrok':'\\u0110','dtdot':'\\u22F1','dtri':'\\u25BF','dtrif':'\\u25BE','duarr':'\\u21F5','duhar':'\\u296F','dwangle':'\\u29A6','dzcy':'\\u045F','DZcy':'\\u040F','dzigrarr':'\\u27FF','eacute':'\\xE9','Eacute':'\\xC9','easter':'\\u2A6E','ecaron':'\\u011B','Ecaron':'\\u011A','ecir':'\\u2256','ecirc':'\\xEA','Ecirc':'\\xCA','ecolon':'\\u2255','ecy':'\\u044D','Ecy':'\\u042D','eDDot':'\\u2A77','edot':'\\u0117','eDot':'\\u2251','Edot':'\\u0116','ee':'\\u2147','efDot':'\\u2252','efr':'\\uD835\\uDD22','Efr':'\\uD835\\uDD08','eg':'\\u2A9A','egrave':'\\xE8','Egrave':'\\xC8','egs':'\\u2A96','egsdot':'\\u2A98','el':'\\u2A99','Element':'\\u2208','elinters':'\\u23E7','ell':'\\u2113','els':'\\u2A95','elsdot':'\\u2A97','emacr':'\\u0113','Emacr':'\\u0112','empty':'\\u2205','emptyset':'\\u2205','EmptySmallSquare':'\\u25FB','emptyv':'\\u2205','EmptyVerySmallSquare':'\\u25AB','emsp':'\\u2003','emsp13':'\\u2004','emsp14':'\\u2005','eng':'\\u014B','ENG':'\\u014A','ensp':'\\u2002','eogon':'\\u0119','Eogon':'\\u0118','eopf':'\\uD835\\uDD56','Eopf':'\\uD835\\uDD3C','epar':'\\u22D5','eparsl':'\\u29E3','eplus':'\\u2A71','epsi':'\\u03B5','epsilon':'\\u03B5','Epsilon':'\\u0395','epsiv':'\\u03F5','eqcirc':'\\u2256','eqcolon':'\\u2255','eqsim':'\\u2242','eqslantgtr':'\\u2A96','eqslantless':'\\u2A95','Equal':'\\u2A75','equals':'=','EqualTilde':'\\u2242','equest':'\\u225F','Equilibrium':'\\u21CC','equiv':'\\u2261','equivDD':'\\u2A78','eqvparsl':'\\u29E5','erarr':'\\u2971','erDot':'\\u2253','escr':'\\u212F','Escr':'\\u2130','esdot':'\\u2250','esim':'\\u2242','Esim':'\\u2A73','eta':'\\u03B7','Eta':'\\u0397','eth':'\\xF0','ETH':'\\xD0','euml':'\\xEB','Euml':'\\xCB','euro':'\\u20AC','excl':'!','exist':'\\u2203','Exists':'\\u2203','expectation':'\\u2130','exponentiale':'\\u2147','ExponentialE':'\\u2147','fallingdotseq':'\\u2252','fcy':'\\u0444','Fcy':'\\u0424','female':'\\u2640','ffilig':'\\uFB03','fflig':'\\uFB00','ffllig':'\\uFB04','ffr':'\\uD835\\uDD23','Ffr':'\\uD835\\uDD09','filig':'\\uFB01','FilledSmallSquare':'\\u25FC','FilledVerySmallSquare':'\\u25AA','fjlig':'fj','flat':'\\u266D','fllig':'\\uFB02','fltns':'\\u25B1','fnof':'\\u0192','fopf':'\\uD835\\uDD57','Fopf':'\\uD835\\uDD3D','forall':'\\u2200','ForAll':'\\u2200','fork':'\\u22D4','forkv':'\\u2AD9','Fouriertrf':'\\u2131','fpartint':'\\u2A0D','frac12':'\\xBD','frac13':'\\u2153','frac14':'\\xBC','frac15':'\\u2155','frac16':'\\u2159','frac18':'\\u215B','frac23':'\\u2154','frac25':'\\u2156','frac34':'\\xBE','frac35':'\\u2157','frac38':'\\u215C','frac45':'\\u2158','frac56':'\\u215A','frac58':'\\u215D','frac78':'\\u215E','frasl':'\\u2044','frown':'\\u2322','fscr':'\\uD835\\uDCBB','Fscr':'\\u2131','gacute':'\\u01F5','gamma':'\\u03B3','Gamma':'\\u0393','gammad':'\\u03DD','Gammad':'\\u03DC','gap':'\\u2A86','gbreve':'\\u011F','Gbreve':'\\u011E','Gcedil':'\\u0122','gcirc':'\\u011D','Gcirc':'\\u011C','gcy':'\\u0433','Gcy':'\\u0413','gdot':'\\u0121','Gdot':'\\u0120','ge':'\\u2265','gE':'\\u2267','gel':'\\u22DB','gEl':'\\u2A8C','geq':'\\u2265','geqq':'\\u2267','geqslant':'\\u2A7E','ges':'\\u2A7E','gescc':'\\u2AA9','gesdot':'\\u2A80','gesdoto':'\\u2A82','gesdotol':'\\u2A84','gesl':'\\u22DB\\uFE00','gesles':'\\u2A94','gfr':'\\uD835\\uDD24','Gfr':'\\uD835\\uDD0A','gg':'\\u226B','Gg':'\\u22D9','ggg':'\\u22D9','gimel':'\\u2137','gjcy':'\\u0453','GJcy':'\\u0403','gl':'\\u2277','gla':'\\u2AA5','glE':'\\u2A92','glj':'\\u2AA4','gnap':'\\u2A8A','gnapprox':'\\u2A8A','gne':'\\u2A88','gnE':'\\u2269','gneq':'\\u2A88','gneqq':'\\u2269','gnsim':'\\u22E7','gopf':'\\uD835\\uDD58','Gopf':'\\uD835\\uDD3E','grave':'`','GreaterEqual':'\\u2265','GreaterEqualLess':'\\u22DB','GreaterFullEqual':'\\u2267','GreaterGreater':'\\u2AA2','GreaterLess':'\\u2277','GreaterSlantEqual':'\\u2A7E','GreaterTilde':'\\u2273','gscr':'\\u210A','Gscr':'\\uD835\\uDCA2','gsim':'\\u2273','gsime':'\\u2A8E','gsiml':'\\u2A90','gt':'>','Gt':'\\u226B','GT':'>','gtcc':'\\u2AA7','gtcir':'\\u2A7A','gtdot':'\\u22D7','gtlPar':'\\u2995','gtquest':'\\u2A7C','gtrapprox':'\\u2A86','gtrarr':'\\u2978','gtrdot':'\\u22D7','gtreqless':'\\u22DB','gtreqqless':'\\u2A8C','gtrless':'\\u2277','gtrsim':'\\u2273','gvertneqq':'\\u2269\\uFE00','gvnE':'\\u2269\\uFE00','Hacek':'\\u02C7','hairsp':'\\u200A','half':'\\xBD','hamilt':'\\u210B','hardcy':'\\u044A','HARDcy':'\\u042A','harr':'\\u2194','hArr':'\\u21D4','harrcir':'\\u2948','harrw':'\\u21AD','Hat':'^','hbar':'\\u210F','hcirc':'\\u0125','Hcirc':'\\u0124','hearts':'\\u2665','heartsuit':'\\u2665','hellip':'\\u2026','hercon':'\\u22B9','hfr':'\\uD835\\uDD25','Hfr':'\\u210C','HilbertSpace':'\\u210B','hksearow':'\\u2925','hkswarow':'\\u2926','hoarr':'\\u21FF','homtht':'\\u223B','hookleftarrow':'\\u21A9','hookrightarrow':'\\u21AA','hopf':'\\uD835\\uDD59','Hopf':'\\u210D','horbar':'\\u2015','HorizontalLine':'\\u2500','hscr':'\\uD835\\uDCBD','Hscr':'\\u210B','hslash':'\\u210F','hstrok':'\\u0127','Hstrok':'\\u0126','HumpDownHump':'\\u224E','HumpEqual':'\\u224F','hybull':'\\u2043','hyphen':'\\u2010','iacute':'\\xED','Iacute':'\\xCD','ic':'\\u2063','icirc':'\\xEE','Icirc':'\\xCE','icy':'\\u0438','Icy':'\\u0418','Idot':'\\u0130','iecy':'\\u0435','IEcy':'\\u0415','iexcl':'\\xA1','iff':'\\u21D4','ifr':'\\uD835\\uDD26','Ifr':'\\u2111','igrave':'\\xEC','Igrave':'\\xCC','ii':'\\u2148','iiiint':'\\u2A0C','iiint':'\\u222D','iinfin':'\\u29DC','iiota':'\\u2129','ijlig':'\\u0133','IJlig':'\\u0132','Im':'\\u2111','imacr':'\\u012B','Imacr':'\\u012A','image':'\\u2111','ImaginaryI':'\\u2148','imagline':'\\u2110','imagpart':'\\u2111','imath':'\\u0131','imof':'\\u22B7','imped':'\\u01B5','Implies':'\\u21D2','in':'\\u2208','incare':'\\u2105','infin':'\\u221E','infintie':'\\u29DD','inodot':'\\u0131','int':'\\u222B','Int':'\\u222C','intcal':'\\u22BA','integers':'\\u2124','Integral':'\\u222B','intercal':'\\u22BA','Intersection':'\\u22C2','intlarhk':'\\u2A17','intprod':'\\u2A3C','InvisibleComma':'\\u2063','InvisibleTimes':'\\u2062','iocy':'\\u0451','IOcy':'\\u0401','iogon':'\\u012F','Iogon':'\\u012E','iopf':'\\uD835\\uDD5A','Iopf':'\\uD835\\uDD40','iota':'\\u03B9','Iota':'\\u0399','iprod':'\\u2A3C','iquest':'\\xBF','iscr':'\\uD835\\uDCBE','Iscr':'\\u2110','isin':'\\u2208','isindot':'\\u22F5','isinE':'\\u22F9','isins':'\\u22F4','isinsv':'\\u22F3','isinv':'\\u2208','it':'\\u2062','itilde':'\\u0129','Itilde':'\\u0128','iukcy':'\\u0456','Iukcy':'\\u0406','iuml':'\\xEF','Iuml':'\\xCF','jcirc':'\\u0135','Jcirc':'\\u0134','jcy':'\\u0439','Jcy':'\\u0419','jfr':'\\uD835\\uDD27','Jfr':'\\uD835\\uDD0D','jmath':'\\u0237','jopf':'\\uD835\\uDD5B','Jopf':'\\uD835\\uDD41','jscr':'\\uD835\\uDCBF','Jscr':'\\uD835\\uDCA5','jsercy':'\\u0458','Jsercy':'\\u0408','jukcy':'\\u0454','Jukcy':'\\u0404','kappa':'\\u03BA','Kappa':'\\u039A','kappav':'\\u03F0','kcedil':'\\u0137','Kcedil':'\\u0136','kcy':'\\u043A','Kcy':'\\u041A','kfr':'\\uD835\\uDD28','Kfr':'\\uD835\\uDD0E','kgreen':'\\u0138','khcy':'\\u0445','KHcy':'\\u0425','kjcy':'\\u045C','KJcy':'\\u040C','kopf':'\\uD835\\uDD5C','Kopf':'\\uD835\\uDD42','kscr':'\\uD835\\uDCC0','Kscr':'\\uD835\\uDCA6','lAarr':'\\u21DA','lacute':'\\u013A','Lacute':'\\u0139','laemptyv':'\\u29B4','lagran':'\\u2112','lambda':'\\u03BB','Lambda':'\\u039B','lang':'\\u27E8','Lang':'\\u27EA','langd':'\\u2991','langle':'\\u27E8','lap':'\\u2A85','Laplacetrf':'\\u2112','laquo':'\\xAB','larr':'\\u2190','lArr':'\\u21D0','Larr':'\\u219E','larrb':'\\u21E4','larrbfs':'\\u291F','larrfs':'\\u291D','larrhk':'\\u21A9','larrlp':'\\u21AB','larrpl':'\\u2939','larrsim':'\\u2973','larrtl':'\\u21A2','lat':'\\u2AAB','latail':'\\u2919','lAtail':'\\u291B','late':'\\u2AAD','lates':'\\u2AAD\\uFE00','lbarr':'\\u290C','lBarr':'\\u290E','lbbrk':'\\u2772','lbrace':'{','lbrack':'[','lbrke':'\\u298B','lbrksld':'\\u298F','lbrkslu':'\\u298D','lcaron':'\\u013E','Lcaron':'\\u013D','lcedil':'\\u013C','Lcedil':'\\u013B','lceil':'\\u2308','lcub':'{','lcy':'\\u043B','Lcy':'\\u041B','ldca':'\\u2936','ldquo':'\\u201C','ldquor':'\\u201E','ldrdhar':'\\u2967','ldrushar':'\\u294B','ldsh':'\\u21B2','le':'\\u2264','lE':'\\u2266','LeftAngleBracket':'\\u27E8','leftarrow':'\\u2190','Leftarrow':'\\u21D0','LeftArrow':'\\u2190','LeftArrowBar':'\\u21E4','LeftArrowRightArrow':'\\u21C6','leftarrowtail':'\\u21A2','LeftCeiling':'\\u2308','LeftDoubleBracket':'\\u27E6','LeftDownTeeVector':'\\u2961','LeftDownVector':'\\u21C3','LeftDownVectorBar':'\\u2959','LeftFloor':'\\u230A','leftharpoondown':'\\u21BD','leftharpoonup':'\\u21BC','leftleftarrows':'\\u21C7','leftrightarrow':'\\u2194','Leftrightarrow':'\\u21D4','LeftRightArrow':'\\u2194','leftrightarrows':'\\u21C6','leftrightharpoons':'\\u21CB','leftrightsquigarrow':'\\u21AD','LeftRightVector':'\\u294E','LeftTee':'\\u22A3','LeftTeeArrow':'\\u21A4','LeftTeeVector':'\\u295A','leftthreetimes':'\\u22CB','LeftTriangle':'\\u22B2','LeftTriangleBar':'\\u29CF','LeftTriangleEqual':'\\u22B4','LeftUpDownVector':'\\u2951','LeftUpTeeVector':'\\u2960','LeftUpVector':'\\u21BF','LeftUpVectorBar':'\\u2958','LeftVector':'\\u21BC','LeftVectorBar':'\\u2952','leg':'\\u22DA','lEg':'\\u2A8B','leq':'\\u2264','leqq':'\\u2266','leqslant':'\\u2A7D','les':'\\u2A7D','lescc':'\\u2AA8','lesdot':'\\u2A7F','lesdoto':'\\u2A81','lesdotor':'\\u2A83','lesg':'\\u22DA\\uFE00','lesges':'\\u2A93','lessapprox':'\\u2A85','lessdot':'\\u22D6','lesseqgtr':'\\u22DA','lesseqqgtr':'\\u2A8B','LessEqualGreater':'\\u22DA','LessFullEqual':'\\u2266','LessGreater':'\\u2276','lessgtr':'\\u2276','LessLess':'\\u2AA1','lesssim':'\\u2272','LessSlantEqual':'\\u2A7D','LessTilde':'\\u2272','lfisht':'\\u297C','lfloor':'\\u230A','lfr':'\\uD835\\uDD29','Lfr':'\\uD835\\uDD0F','lg':'\\u2276','lgE':'\\u2A91','lHar':'\\u2962','lhard':'\\u21BD','lharu':'\\u21BC','lharul':'\\u296A','lhblk':'\\u2584','ljcy':'\\u0459','LJcy':'\\u0409','ll':'\\u226A','Ll':'\\u22D8','llarr':'\\u21C7','llcorner':'\\u231E','Lleftarrow':'\\u21DA','llhard':'\\u296B','lltri':'\\u25FA','lmidot':'\\u0140','Lmidot':'\\u013F','lmoust':'\\u23B0','lmoustache':'\\u23B0','lnap':'\\u2A89','lnapprox':'\\u2A89','lne':'\\u2A87','lnE':'\\u2268','lneq':'\\u2A87','lneqq':'\\u2268','lnsim':'\\u22E6','loang':'\\u27EC','loarr':'\\u21FD','lobrk':'\\u27E6','longleftarrow':'\\u27F5','Longleftarrow':'\\u27F8','LongLeftArrow':'\\u27F5','longleftrightarrow':'\\u27F7','Longleftrightarrow':'\\u27FA','LongLeftRightArrow':'\\u27F7','longmapsto':'\\u27FC','longrightarrow':'\\u27F6','Longrightarrow':'\\u27F9','LongRightArrow':'\\u27F6','looparrowleft':'\\u21AB','looparrowright':'\\u21AC','lopar':'\\u2985','lopf':'\\uD835\\uDD5D','Lopf':'\\uD835\\uDD43','loplus':'\\u2A2D','lotimes':'\\u2A34','lowast':'\\u2217','lowbar':'_','LowerLeftArrow':'\\u2199','LowerRightArrow':'\\u2198','loz':'\\u25CA','lozenge':'\\u25CA','lozf':'\\u29EB','lpar':'(','lparlt':'\\u2993','lrarr':'\\u21C6','lrcorner':'\\u231F','lrhar':'\\u21CB','lrhard':'\\u296D','lrm':'\\u200E','lrtri':'\\u22BF','lsaquo':'\\u2039','lscr':'\\uD835\\uDCC1','Lscr':'\\u2112','lsh':'\\u21B0','Lsh':'\\u21B0','lsim':'\\u2272','lsime':'\\u2A8D','lsimg':'\\u2A8F','lsqb':'[','lsquo':'\\u2018','lsquor':'\\u201A','lstrok':'\\u0142','Lstrok':'\\u0141','lt':'<','Lt':'\\u226A','LT':'<','ltcc':'\\u2AA6','ltcir':'\\u2A79','ltdot':'\\u22D6','lthree':'\\u22CB','ltimes':'\\u22C9','ltlarr':'\\u2976','ltquest':'\\u2A7B','ltri':'\\u25C3','ltrie':'\\u22B4','ltrif':'\\u25C2','ltrPar':'\\u2996','lurdshar':'\\u294A','luruhar':'\\u2966','lvertneqq':'\\u2268\\uFE00','lvnE':'\\u2268\\uFE00','macr':'\\xAF','male':'\\u2642','malt':'\\u2720','maltese':'\\u2720','map':'\\u21A6','Map':'\\u2905','mapsto':'\\u21A6','mapstodown':'\\u21A7','mapstoleft':'\\u21A4','mapstoup':'\\u21A5','marker':'\\u25AE','mcomma':'\\u2A29','mcy':'\\u043C','Mcy':'\\u041C','mdash':'\\u2014','mDDot':'\\u223A','measuredangle':'\\u2221','MediumSpace':'\\u205F','Mellintrf':'\\u2133','mfr':'\\uD835\\uDD2A','Mfr':'\\uD835\\uDD10','mho':'\\u2127','micro':'\\xB5','mid':'\\u2223','midast':'*','midcir':'\\u2AF0','middot':'\\xB7','minus':'\\u2212','minusb':'\\u229F','minusd':'\\u2238','minusdu':'\\u2A2A','MinusPlus':'\\u2213','mlcp':'\\u2ADB','mldr':'\\u2026','mnplus':'\\u2213','models':'\\u22A7','mopf':'\\uD835\\uDD5E','Mopf':'\\uD835\\uDD44','mp':'\\u2213','mscr':'\\uD835\\uDCC2','Mscr':'\\u2133','mstpos':'\\u223E','mu':'\\u03BC','Mu':'\\u039C','multimap':'\\u22B8','mumap':'\\u22B8','nabla':'\\u2207','nacute':'\\u0144','Nacute':'\\u0143','nang':'\\u2220\\u20D2','nap':'\\u2249','napE':'\\u2A70\\u0338','napid':'\\u224B\\u0338','napos':'\\u0149','napprox':'\\u2249','natur':'\\u266E','natural':'\\u266E','naturals':'\\u2115','nbsp':'\\xA0','nbump':'\\u224E\\u0338','nbumpe':'\\u224F\\u0338','ncap':'\\u2A43','ncaron':'\\u0148','Ncaron':'\\u0147','ncedil':'\\u0146','Ncedil':'\\u0145','ncong':'\\u2247','ncongdot':'\\u2A6D\\u0338','ncup':'\\u2A42','ncy':'\\u043D','Ncy':'\\u041D','ndash':'\\u2013','ne':'\\u2260','nearhk':'\\u2924','nearr':'\\u2197','neArr':'\\u21D7','nearrow':'\\u2197','nedot':'\\u2250\\u0338','NegativeMediumSpace':'\\u200B','NegativeThickSpace':'\\u200B','NegativeThinSpace':'\\u200B','NegativeVeryThinSpace':'\\u200B','nequiv':'\\u2262','nesear':'\\u2928','nesim':'\\u2242\\u0338','NestedGreaterGreater':'\\u226B','NestedLessLess':'\\u226A','NewLine':'\\n','nexist':'\\u2204','nexists':'\\u2204','nfr':'\\uD835\\uDD2B','Nfr':'\\uD835\\uDD11','nge':'\\u2271','ngE':'\\u2267\\u0338','ngeq':'\\u2271','ngeqq':'\\u2267\\u0338','ngeqslant':'\\u2A7E\\u0338','nges':'\\u2A7E\\u0338','nGg':'\\u22D9\\u0338','ngsim':'\\u2275','ngt':'\\u226F','nGt':'\\u226B\\u20D2','ngtr':'\\u226F','nGtv':'\\u226B\\u0338','nharr':'\\u21AE','nhArr':'\\u21CE','nhpar':'\\u2AF2','ni':'\\u220B','nis':'\\u22FC','nisd':'\\u22FA','niv':'\\u220B','njcy':'\\u045A','NJcy':'\\u040A','nlarr':'\\u219A','nlArr':'\\u21CD','nldr':'\\u2025','nle':'\\u2270','nlE':'\\u2266\\u0338','nleftarrow':'\\u219A','nLeftarrow':'\\u21CD','nleftrightarrow':'\\u21AE','nLeftrightarrow':'\\u21CE','nleq':'\\u2270','nleqq':'\\u2266\\u0338','nleqslant':'\\u2A7D\\u0338','nles':'\\u2A7D\\u0338','nless':'\\u226E','nLl':'\\u22D8\\u0338','nlsim':'\\u2274','nlt':'\\u226E','nLt':'\\u226A\\u20D2','nltri':'\\u22EA','nltrie':'\\u22EC','nLtv':'\\u226A\\u0338','nmid':'\\u2224','NoBreak':'\\u2060','NonBreakingSpace':'\\xA0','nopf':'\\uD835\\uDD5F','Nopf':'\\u2115','not':'\\xAC','Not':'\\u2AEC','NotCongruent':'\\u2262','NotCupCap':'\\u226D','NotDoubleVerticalBar':'\\u2226','NotElement':'\\u2209','NotEqual':'\\u2260','NotEqualTilde':'\\u2242\\u0338','NotExists':'\\u2204','NotGreater':'\\u226F','NotGreaterEqual':'\\u2271','NotGreaterFullEqual':'\\u2267\\u0338','NotGreaterGreater':'\\u226B\\u0338','NotGreaterLess':'\\u2279','NotGreaterSlantEqual':'\\u2A7E\\u0338','NotGreaterTilde':'\\u2275','NotHumpDownHump':'\\u224E\\u0338','NotHumpEqual':'\\u224F\\u0338','notin':'\\u2209','notindot':'\\u22F5\\u0338','notinE':'\\u22F9\\u0338','notinva':'\\u2209','notinvb':'\\u22F7','notinvc':'\\u22F6','NotLeftTriangle':'\\u22EA','NotLeftTriangleBar':'\\u29CF\\u0338','NotLeftTriangleEqual':'\\u22EC','NotLess':'\\u226E','NotLessEqual':'\\u2270','NotLessGreater':'\\u2278','NotLessLess':'\\u226A\\u0338','NotLessSlantEqual':'\\u2A7D\\u0338','NotLessTilde':'\\u2274','NotNestedGreaterGreater':'\\u2AA2\\u0338','NotNestedLessLess':'\\u2AA1\\u0338','notni':'\\u220C','notniva':'\\u220C','notnivb':'\\u22FE','notnivc':'\\u22FD','NotPrecedes':'\\u2280','NotPrecedesEqual':'\\u2AAF\\u0338','NotPrecedesSlantEqual':'\\u22E0','NotReverseElement':'\\u220C','NotRightTriangle':'\\u22EB','NotRightTriangleBar':'\\u29D0\\u0338','NotRightTriangleEqual':'\\u22ED','NotSquareSubset':'\\u228F\\u0338','NotSquareSubsetEqual':'\\u22E2','NotSquareSuperset':'\\u2290\\u0338','NotSquareSupersetEqual':'\\u22E3','NotSubset':'\\u2282\\u20D2','NotSubsetEqual':'\\u2288','NotSucceeds':'\\u2281','NotSucceedsEqual':'\\u2AB0\\u0338','NotSucceedsSlantEqual':'\\u22E1','NotSucceedsTilde':'\\u227F\\u0338','NotSuperset':'\\u2283\\u20D2','NotSupersetEqual':'\\u2289','NotTilde':'\\u2241','NotTildeEqual':'\\u2244','NotTildeFullEqual':'\\u2247','NotTildeTilde':'\\u2249','NotVerticalBar':'\\u2224','npar':'\\u2226','nparallel':'\\u2226','nparsl':'\\u2AFD\\u20E5','npart':'\\u2202\\u0338','npolint':'\\u2A14','npr':'\\u2280','nprcue':'\\u22E0','npre':'\\u2AAF\\u0338','nprec':'\\u2280','npreceq':'\\u2AAF\\u0338','nrarr':'\\u219B','nrArr':'\\u21CF','nrarrc':'\\u2933\\u0338','nrarrw':'\\u219D\\u0338','nrightarrow':'\\u219B','nRightarrow':'\\u21CF','nrtri':'\\u22EB','nrtrie':'\\u22ED','nsc':'\\u2281','nsccue':'\\u22E1','nsce':'\\u2AB0\\u0338','nscr':'\\uD835\\uDCC3','Nscr':'\\uD835\\uDCA9','nshortmid':'\\u2224','nshortparallel':'\\u2226','nsim':'\\u2241','nsime':'\\u2244','nsimeq':'\\u2244','nsmid':'\\u2224','nspar':'\\u2226','nsqsube':'\\u22E2','nsqsupe':'\\u22E3','nsub':'\\u2284','nsube':'\\u2288','nsubE':'\\u2AC5\\u0338','nsubset':'\\u2282\\u20D2','nsubseteq':'\\u2288','nsubseteqq':'\\u2AC5\\u0338','nsucc':'\\u2281','nsucceq':'\\u2AB0\\u0338','nsup':'\\u2285','nsupe':'\\u2289','nsupE':'\\u2AC6\\u0338','nsupset':'\\u2283\\u20D2','nsupseteq':'\\u2289','nsupseteqq':'\\u2AC6\\u0338','ntgl':'\\u2279','ntilde':'\\xF1','Ntilde':'\\xD1','ntlg':'\\u2278','ntriangleleft':'\\u22EA','ntrianglelefteq':'\\u22EC','ntriangleright':'\\u22EB','ntrianglerighteq':'\\u22ED','nu':'\\u03BD','Nu':'\\u039D','num':'#','numero':'\\u2116','numsp':'\\u2007','nvap':'\\u224D\\u20D2','nvdash':'\\u22AC','nvDash':'\\u22AD','nVdash':'\\u22AE','nVDash':'\\u22AF','nvge':'\\u2265\\u20D2','nvgt':'>\\u20D2','nvHarr':'\\u2904','nvinfin':'\\u29DE','nvlArr':'\\u2902','nvle':'\\u2264\\u20D2','nvlt':'<\\u20D2','nvltrie':'\\u22B4\\u20D2','nvrArr':'\\u2903','nvrtrie':'\\u22B5\\u20D2','nvsim':'\\u223C\\u20D2','nwarhk':'\\u2923','nwarr':'\\u2196','nwArr':'\\u21D6','nwarrow':'\\u2196','nwnear':'\\u2927','oacute':'\\xF3','Oacute':'\\xD3','oast':'\\u229B','ocir':'\\u229A','ocirc':'\\xF4','Ocirc':'\\xD4','ocy':'\\u043E','Ocy':'\\u041E','odash':'\\u229D','odblac':'\\u0151','Odblac':'\\u0150','odiv':'\\u2A38','odot':'\\u2299','odsold':'\\u29BC','oelig':'\\u0153','OElig':'\\u0152','ofcir':'\\u29BF','ofr':'\\uD835\\uDD2C','Ofr':'\\uD835\\uDD12','ogon':'\\u02DB','ograve':'\\xF2','Ograve':'\\xD2','ogt':'\\u29C1','ohbar':'\\u29B5','ohm':'\\u03A9','oint':'\\u222E','olarr':'\\u21BA','olcir':'\\u29BE','olcross':'\\u29BB','oline':'\\u203E','olt':'\\u29C0','omacr':'\\u014D','Omacr':'\\u014C','omega':'\\u03C9','Omega':'\\u03A9','omicron':'\\u03BF','Omicron':'\\u039F','omid':'\\u29B6','ominus':'\\u2296','oopf':'\\uD835\\uDD60','Oopf':'\\uD835\\uDD46','opar':'\\u29B7','OpenCurlyDoubleQuote':'\\u201C','OpenCurlyQuote':'\\u2018','operp':'\\u29B9','oplus':'\\u2295','or':'\\u2228','Or':'\\u2A54','orarr':'\\u21BB','ord':'\\u2A5D','order':'\\u2134','orderof':'\\u2134','ordf':'\\xAA','ordm':'\\xBA','origof':'\\u22B6','oror':'\\u2A56','orslope':'\\u2A57','orv':'\\u2A5B','oS':'\\u24C8','oscr':'\\u2134','Oscr':'\\uD835\\uDCAA','oslash':'\\xF8','Oslash':'\\xD8','osol':'\\u2298','otilde':'\\xF5','Otilde':'\\xD5','otimes':'\\u2297','Otimes':'\\u2A37','otimesas':'\\u2A36','ouml':'\\xF6','Ouml':'\\xD6','ovbar':'\\u233D','OverBar':'\\u203E','OverBrace':'\\u23DE','OverBracket':'\\u23B4','OverParenthesis':'\\u23DC','par':'\\u2225','para':'\\xB6','parallel':'\\u2225','parsim':'\\u2AF3','parsl':'\\u2AFD','part':'\\u2202','PartialD':'\\u2202','pcy':'\\u043F','Pcy':'\\u041F','percnt':'%','period':'.','permil':'\\u2030','perp':'\\u22A5','pertenk':'\\u2031','pfr':'\\uD835\\uDD2D','Pfr':'\\uD835\\uDD13','phi':'\\u03C6','Phi':'\\u03A6','phiv':'\\u03D5','phmmat':'\\u2133','phone':'\\u260E','pi':'\\u03C0','Pi':'\\u03A0','pitchfork':'\\u22D4','piv':'\\u03D6','planck':'\\u210F','planckh':'\\u210E','plankv':'\\u210F','plus':'+','plusacir':'\\u2A23','plusb':'\\u229E','pluscir':'\\u2A22','plusdo':'\\u2214','plusdu':'\\u2A25','pluse':'\\u2A72','PlusMinus':'\\xB1','plusmn':'\\xB1','plussim':'\\u2A26','plustwo':'\\u2A27','pm':'\\xB1','Poincareplane':'\\u210C','pointint':'\\u2A15','popf':'\\uD835\\uDD61','Popf':'\\u2119','pound':'\\xA3','pr':'\\u227A','Pr':'\\u2ABB','prap':'\\u2AB7','prcue':'\\u227C','pre':'\\u2AAF','prE':'\\u2AB3','prec':'\\u227A','precapprox':'\\u2AB7','preccurlyeq':'\\u227C','Precedes':'\\u227A','PrecedesEqual':'\\u2AAF','PrecedesSlantEqual':'\\u227C','PrecedesTilde':'\\u227E','preceq':'\\u2AAF','precnapprox':'\\u2AB9','precneqq':'\\u2AB5','precnsim':'\\u22E8','precsim':'\\u227E','prime':'\\u2032','Prime':'\\u2033','primes':'\\u2119','prnap':'\\u2AB9','prnE':'\\u2AB5','prnsim':'\\u22E8','prod':'\\u220F','Product':'\\u220F','profalar':'\\u232E','profline':'\\u2312','profsurf':'\\u2313','prop':'\\u221D','Proportion':'\\u2237','Proportional':'\\u221D','propto':'\\u221D','prsim':'\\u227E','prurel':'\\u22B0','pscr':'\\uD835\\uDCC5','Pscr':'\\uD835\\uDCAB','psi':'\\u03C8','Psi':'\\u03A8','puncsp':'\\u2008','qfr':'\\uD835\\uDD2E','Qfr':'\\uD835\\uDD14','qint':'\\u2A0C','qopf':'\\uD835\\uDD62','Qopf':'\\u211A','qprime':'\\u2057','qscr':'\\uD835\\uDCC6','Qscr':'\\uD835\\uDCAC','quaternions':'\\u210D','quatint':'\\u2A16','quest':'?','questeq':'\\u225F','quot':'\"','QUOT':'\"','rAarr':'\\u21DB','race':'\\u223D\\u0331','racute':'\\u0155','Racute':'\\u0154','radic':'\\u221A','raemptyv':'\\u29B3','rang':'\\u27E9','Rang':'\\u27EB','rangd':'\\u2992','range':'\\u29A5','rangle':'\\u27E9','raquo':'\\xBB','rarr':'\\u2192','rArr':'\\u21D2','Rarr':'\\u21A0','rarrap':'\\u2975','rarrb':'\\u21E5','rarrbfs':'\\u2920','rarrc':'\\u2933','rarrfs':'\\u291E','rarrhk':'\\u21AA','rarrlp':'\\u21AC','rarrpl':'\\u2945','rarrsim':'\\u2974','rarrtl':'\\u21A3','Rarrtl':'\\u2916','rarrw':'\\u219D','ratail':'\\u291A','rAtail':'\\u291C','ratio':'\\u2236','rationals':'\\u211A','rbarr':'\\u290D','rBarr':'\\u290F','RBarr':'\\u2910','rbbrk':'\\u2773','rbrace':'}','rbrack':']','rbrke':'\\u298C','rbrksld':'\\u298E','rbrkslu':'\\u2990','rcaron':'\\u0159','Rcaron':'\\u0158','rcedil':'\\u0157','Rcedil':'\\u0156','rceil':'\\u2309','rcub':'}','rcy':'\\u0440','Rcy':'\\u0420','rdca':'\\u2937','rdldhar':'\\u2969','rdquo':'\\u201D','rdquor':'\\u201D','rdsh':'\\u21B3','Re':'\\u211C','real':'\\u211C','realine':'\\u211B','realpart':'\\u211C','reals':'\\u211D','rect':'\\u25AD','reg':'\\xAE','REG':'\\xAE','ReverseElement':'\\u220B','ReverseEquilibrium':'\\u21CB','ReverseUpEquilibrium':'\\u296F','rfisht':'\\u297D','rfloor':'\\u230B','rfr':'\\uD835\\uDD2F','Rfr':'\\u211C','rHar':'\\u2964','rhard':'\\u21C1','rharu':'\\u21C0','rharul':'\\u296C','rho':'\\u03C1','Rho':'\\u03A1','rhov':'\\u03F1','RightAngleBracket':'\\u27E9','rightarrow':'\\u2192','Rightarrow':'\\u21D2','RightArrow':'\\u2192','RightArrowBar':'\\u21E5','RightArrowLeftArrow':'\\u21C4','rightarrowtail':'\\u21A3','RightCeiling':'\\u2309','RightDoubleBracket':'\\u27E7','RightDownTeeVector':'\\u295D','RightDownVector':'\\u21C2','RightDownVectorBar':'\\u2955','RightFloor':'\\u230B','rightharpoondown':'\\u21C1','rightharpoonup':'\\u21C0','rightleftarrows':'\\u21C4','rightleftharpoons':'\\u21CC','rightrightarrows':'\\u21C9','rightsquigarrow':'\\u219D','RightTee':'\\u22A2','RightTeeArrow':'\\u21A6','RightTeeVector':'\\u295B','rightthreetimes':'\\u22CC','RightTriangle':'\\u22B3','RightTriangleBar':'\\u29D0','RightTriangleEqual':'\\u22B5','RightUpDownVector':'\\u294F','RightUpTeeVector':'\\u295C','RightUpVector':'\\u21BE','RightUpVectorBar':'\\u2954','RightVector':'\\u21C0','RightVectorBar':'\\u2953','ring':'\\u02DA','risingdotseq':'\\u2253','rlarr':'\\u21C4','rlhar':'\\u21CC','rlm':'\\u200F','rmoust':'\\u23B1','rmoustache':'\\u23B1','rnmid':'\\u2AEE','roang':'\\u27ED','roarr':'\\u21FE','robrk':'\\u27E7','ropar':'\\u2986','ropf':'\\uD835\\uDD63','Ropf':'\\u211D','roplus':'\\u2A2E','rotimes':'\\u2A35','RoundImplies':'\\u2970','rpar':')','rpargt':'\\u2994','rppolint':'\\u2A12','rrarr':'\\u21C9','Rrightarrow':'\\u21DB','rsaquo':'\\u203A','rscr':'\\uD835\\uDCC7','Rscr':'\\u211B','rsh':'\\u21B1','Rsh':'\\u21B1','rsqb':']','rsquo':'\\u2019','rsquor':'\\u2019','rthree':'\\u22CC','rtimes':'\\u22CA','rtri':'\\u25B9','rtrie':'\\u22B5','rtrif':'\\u25B8','rtriltri':'\\u29CE','RuleDelayed':'\\u29F4','ruluhar':'\\u2968','rx':'\\u211E','sacute':'\\u015B','Sacute':'\\u015A','sbquo':'\\u201A','sc':'\\u227B','Sc':'\\u2ABC','scap':'\\u2AB8','scaron':'\\u0161','Scaron':'\\u0160','sccue':'\\u227D','sce':'\\u2AB0','scE':'\\u2AB4','scedil':'\\u015F','Scedil':'\\u015E','scirc':'\\u015D','Scirc':'\\u015C','scnap':'\\u2ABA','scnE':'\\u2AB6','scnsim':'\\u22E9','scpolint':'\\u2A13','scsim':'\\u227F','scy':'\\u0441','Scy':'\\u0421','sdot':'\\u22C5','sdotb':'\\u22A1','sdote':'\\u2A66','searhk':'\\u2925','searr':'\\u2198','seArr':'\\u21D8','searrow':'\\u2198','sect':'\\xA7','semi':';','seswar':'\\u2929','setminus':'\\u2216','setmn':'\\u2216','sext':'\\u2736','sfr':'\\uD835\\uDD30','Sfr':'\\uD835\\uDD16','sfrown':'\\u2322','sharp':'\\u266F','shchcy':'\\u0449','SHCHcy':'\\u0429','shcy':'\\u0448','SHcy':'\\u0428','ShortDownArrow':'\\u2193','ShortLeftArrow':'\\u2190','shortmid':'\\u2223','shortparallel':'\\u2225','ShortRightArrow':'\\u2192','ShortUpArrow':'\\u2191','shy':'\\xAD','sigma':'\\u03C3','Sigma':'\\u03A3','sigmaf':'\\u03C2','sigmav':'\\u03C2','sim':'\\u223C','simdot':'\\u2A6A','sime':'\\u2243','simeq':'\\u2243','simg':'\\u2A9E','simgE':'\\u2AA0','siml':'\\u2A9D','simlE':'\\u2A9F','simne':'\\u2246','simplus':'\\u2A24','simrarr':'\\u2972','slarr':'\\u2190','SmallCircle':'\\u2218','smallsetminus':'\\u2216','smashp':'\\u2A33','smeparsl':'\\u29E4','smid':'\\u2223','smile':'\\u2323','smt':'\\u2AAA','smte':'\\u2AAC','smtes':'\\u2AAC\\uFE00','softcy':'\\u044C','SOFTcy':'\\u042C','sol':'/','solb':'\\u29C4','solbar':'\\u233F','sopf':'\\uD835\\uDD64','Sopf':'\\uD835\\uDD4A','spades':'\\u2660','spadesuit':'\\u2660','spar':'\\u2225','sqcap':'\\u2293','sqcaps':'\\u2293\\uFE00','sqcup':'\\u2294','sqcups':'\\u2294\\uFE00','Sqrt':'\\u221A','sqsub':'\\u228F','sqsube':'\\u2291','sqsubset':'\\u228F','sqsubseteq':'\\u2291','sqsup':'\\u2290','sqsupe':'\\u2292','sqsupset':'\\u2290','sqsupseteq':'\\u2292','squ':'\\u25A1','square':'\\u25A1','Square':'\\u25A1','SquareIntersection':'\\u2293','SquareSubset':'\\u228F','SquareSubsetEqual':'\\u2291','SquareSuperset':'\\u2290','SquareSupersetEqual':'\\u2292','SquareUnion':'\\u2294','squarf':'\\u25AA','squf':'\\u25AA','srarr':'\\u2192','sscr':'\\uD835\\uDCC8','Sscr':'\\uD835\\uDCAE','ssetmn':'\\u2216','ssmile':'\\u2323','sstarf':'\\u22C6','star':'\\u2606','Star':'\\u22C6','starf':'\\u2605','straightepsilon':'\\u03F5','straightphi':'\\u03D5','strns':'\\xAF','sub':'\\u2282','Sub':'\\u22D0','subdot':'\\u2ABD','sube':'\\u2286','subE':'\\u2AC5','subedot':'\\u2AC3','submult':'\\u2AC1','subne':'\\u228A','subnE':'\\u2ACB','subplus':'\\u2ABF','subrarr':'\\u2979','subset':'\\u2282','Subset':'\\u22D0','subseteq':'\\u2286','subseteqq':'\\u2AC5','SubsetEqual':'\\u2286','subsetneq':'\\u228A','subsetneqq':'\\u2ACB','subsim':'\\u2AC7','subsub':'\\u2AD5','subsup':'\\u2AD3','succ':'\\u227B','succapprox':'\\u2AB8','succcurlyeq':'\\u227D','Succeeds':'\\u227B','SucceedsEqual':'\\u2AB0','SucceedsSlantEqual':'\\u227D','SucceedsTilde':'\\u227F','succeq':'\\u2AB0','succnapprox':'\\u2ABA','succneqq':'\\u2AB6','succnsim':'\\u22E9','succsim':'\\u227F','SuchThat':'\\u220B','sum':'\\u2211','Sum':'\\u2211','sung':'\\u266A','sup':'\\u2283','Sup':'\\u22D1','sup1':'\\xB9','sup2':'\\xB2','sup3':'\\xB3','supdot':'\\u2ABE','supdsub':'\\u2AD8','supe':'\\u2287','supE':'\\u2AC6','supedot':'\\u2AC4','Superset':'\\u2283','SupersetEqual':'\\u2287','suphsol':'\\u27C9','suphsub':'\\u2AD7','suplarr':'\\u297B','supmult':'\\u2AC2','supne':'\\u228B','supnE':'\\u2ACC','supplus':'\\u2AC0','supset':'\\u2283','Supset':'\\u22D1','supseteq':'\\u2287','supseteqq':'\\u2AC6','supsetneq':'\\u228B','supsetneqq':'\\u2ACC','supsim':'\\u2AC8','supsub':'\\u2AD4','supsup':'\\u2AD6','swarhk':'\\u2926','swarr':'\\u2199','swArr':'\\u21D9','swarrow':'\\u2199','swnwar':'\\u292A','szlig':'\\xDF','Tab':'\\t','target':'\\u2316','tau':'\\u03C4','Tau':'\\u03A4','tbrk':'\\u23B4','tcaron':'\\u0165','Tcaron':'\\u0164','tcedil':'\\u0163','Tcedil':'\\u0162','tcy':'\\u0442','Tcy':'\\u0422','tdot':'\\u20DB','telrec':'\\u2315','tfr':'\\uD835\\uDD31','Tfr':'\\uD835\\uDD17','there4':'\\u2234','therefore':'\\u2234','Therefore':'\\u2234','theta':'\\u03B8','Theta':'\\u0398','thetasym':'\\u03D1','thetav':'\\u03D1','thickapprox':'\\u2248','thicksim':'\\u223C','ThickSpace':'\\u205F\\u200A','thinsp':'\\u2009','ThinSpace':'\\u2009','thkap':'\\u2248','thksim':'\\u223C','thorn':'\\xFE','THORN':'\\xDE','tilde':'\\u02DC','Tilde':'\\u223C','TildeEqual':'\\u2243','TildeFullEqual':'\\u2245','TildeTilde':'\\u2248','times':'\\xD7','timesb':'\\u22A0','timesbar':'\\u2A31','timesd':'\\u2A30','tint':'\\u222D','toea':'\\u2928','top':'\\u22A4','topbot':'\\u2336','topcir':'\\u2AF1','topf':'\\uD835\\uDD65','Topf':'\\uD835\\uDD4B','topfork':'\\u2ADA','tosa':'\\u2929','tprime':'\\u2034','trade':'\\u2122','TRADE':'\\u2122','triangle':'\\u25B5','triangledown':'\\u25BF','triangleleft':'\\u25C3','trianglelefteq':'\\u22B4','triangleq':'\\u225C','triangleright':'\\u25B9','trianglerighteq':'\\u22B5','tridot':'\\u25EC','trie':'\\u225C','triminus':'\\u2A3A','TripleDot':'\\u20DB','triplus':'\\u2A39','trisb':'\\u29CD','tritime':'\\u2A3B','trpezium':'\\u23E2','tscr':'\\uD835\\uDCC9','Tscr':'\\uD835\\uDCAF','tscy':'\\u0446','TScy':'\\u0426','tshcy':'\\u045B','TSHcy':'\\u040B','tstrok':'\\u0167','Tstrok':'\\u0166','twixt':'\\u226C','twoheadleftarrow':'\\u219E','twoheadrightarrow':'\\u21A0','uacute':'\\xFA','Uacute':'\\xDA','uarr':'\\u2191','uArr':'\\u21D1','Uarr':'\\u219F','Uarrocir':'\\u2949','ubrcy':'\\u045E','Ubrcy':'\\u040E','ubreve':'\\u016D','Ubreve':'\\u016C','ucirc':'\\xFB','Ucirc':'\\xDB','ucy':'\\u0443','Ucy':'\\u0423','udarr':'\\u21C5','udblac':'\\u0171','Udblac':'\\u0170','udhar':'\\u296E','ufisht':'\\u297E','ufr':'\\uD835\\uDD32','Ufr':'\\uD835\\uDD18','ugrave':'\\xF9','Ugrave':'\\xD9','uHar':'\\u2963','uharl':'\\u21BF','uharr':'\\u21BE','uhblk':'\\u2580','ulcorn':'\\u231C','ulcorner':'\\u231C','ulcrop':'\\u230F','ultri':'\\u25F8','umacr':'\\u016B','Umacr':'\\u016A','uml':'\\xA8','UnderBar':'_','UnderBrace':'\\u23DF','UnderBracket':'\\u23B5','UnderParenthesis':'\\u23DD','Union':'\\u22C3','UnionPlus':'\\u228E','uogon':'\\u0173','Uogon':'\\u0172','uopf':'\\uD835\\uDD66','Uopf':'\\uD835\\uDD4C','uparrow':'\\u2191','Uparrow':'\\u21D1','UpArrow':'\\u2191','UpArrowBar':'\\u2912','UpArrowDownArrow':'\\u21C5','updownarrow':'\\u2195','Updownarrow':'\\u21D5','UpDownArrow':'\\u2195','UpEquilibrium':'\\u296E','upharpoonleft':'\\u21BF','upharpoonright':'\\u21BE','uplus':'\\u228E','UpperLeftArrow':'\\u2196','UpperRightArrow':'\\u2197','upsi':'\\u03C5','Upsi':'\\u03D2','upsih':'\\u03D2','upsilon':'\\u03C5','Upsilon':'\\u03A5','UpTee':'\\u22A5','UpTeeArrow':'\\u21A5','upuparrows':'\\u21C8','urcorn':'\\u231D','urcorner':'\\u231D','urcrop':'\\u230E','uring':'\\u016F','Uring':'\\u016E','urtri':'\\u25F9','uscr':'\\uD835\\uDCCA','Uscr':'\\uD835\\uDCB0','utdot':'\\u22F0','utilde':'\\u0169','Utilde':'\\u0168','utri':'\\u25B5','utrif':'\\u25B4','uuarr':'\\u21C8','uuml':'\\xFC','Uuml':'\\xDC','uwangle':'\\u29A7','vangrt':'\\u299C','varepsilon':'\\u03F5','varkappa':'\\u03F0','varnothing':'\\u2205','varphi':'\\u03D5','varpi':'\\u03D6','varpropto':'\\u221D','varr':'\\u2195','vArr':'\\u21D5','varrho':'\\u03F1','varsigma':'\\u03C2','varsubsetneq':'\\u228A\\uFE00','varsubsetneqq':'\\u2ACB\\uFE00','varsupsetneq':'\\u228B\\uFE00','varsupsetneqq':'\\u2ACC\\uFE00','vartheta':'\\u03D1','vartriangleleft':'\\u22B2','vartriangleright':'\\u22B3','vBar':'\\u2AE8','Vbar':'\\u2AEB','vBarv':'\\u2AE9','vcy':'\\u0432','Vcy':'\\u0412','vdash':'\\u22A2','vDash':'\\u22A8','Vdash':'\\u22A9','VDash':'\\u22AB','Vdashl':'\\u2AE6','vee':'\\u2228','Vee':'\\u22C1','veebar':'\\u22BB','veeeq':'\\u225A','vellip':'\\u22EE','verbar':'|','Verbar':'\\u2016','vert':'|','Vert':'\\u2016','VerticalBar':'\\u2223','VerticalLine':'|','VerticalSeparator':'\\u2758','VerticalTilde':'\\u2240','VeryThinSpace':'\\u200A','vfr':'\\uD835\\uDD33','Vfr':'\\uD835\\uDD19','vltri':'\\u22B2','vnsub':'\\u2282\\u20D2','vnsup':'\\u2283\\u20D2','vopf':'\\uD835\\uDD67','Vopf':'\\uD835\\uDD4D','vprop':'\\u221D','vrtri':'\\u22B3','vscr':'\\uD835\\uDCCB','Vscr':'\\uD835\\uDCB1','vsubne':'\\u228A\\uFE00','vsubnE':'\\u2ACB\\uFE00','vsupne':'\\u228B\\uFE00','vsupnE':'\\u2ACC\\uFE00','Vvdash':'\\u22AA','vzigzag':'\\u299A','wcirc':'\\u0175','Wcirc':'\\u0174','wedbar':'\\u2A5F','wedge':'\\u2227','Wedge':'\\u22C0','wedgeq':'\\u2259','weierp':'\\u2118','wfr':'\\uD835\\uDD34','Wfr':'\\uD835\\uDD1A','wopf':'\\uD835\\uDD68','Wopf':'\\uD835\\uDD4E','wp':'\\u2118','wr':'\\u2240','wreath':'\\u2240','wscr':'\\uD835\\uDCCC','Wscr':'\\uD835\\uDCB2','xcap':'\\u22C2','xcirc':'\\u25EF','xcup':'\\u22C3','xdtri':'\\u25BD','xfr':'\\uD835\\uDD35','Xfr':'\\uD835\\uDD1B','xharr':'\\u27F7','xhArr':'\\u27FA','xi':'\\u03BE','Xi':'\\u039E','xlarr':'\\u27F5','xlArr':'\\u27F8','xmap':'\\u27FC','xnis':'\\u22FB','xodot':'\\u2A00','xopf':'\\uD835\\uDD69','Xopf':'\\uD835\\uDD4F','xoplus':'\\u2A01','xotime':'\\u2A02','xrarr':'\\u27F6','xrArr':'\\u27F9','xscr':'\\uD835\\uDCCD','Xscr':'\\uD835\\uDCB3','xsqcup':'\\u2A06','xuplus':'\\u2A04','xutri':'\\u25B3','xvee':'\\u22C1','xwedge':'\\u22C0','yacute':'\\xFD','Yacute':'\\xDD','yacy':'\\u044F','YAcy':'\\u042F','ycirc':'\\u0177','Ycirc':'\\u0176','ycy':'\\u044B','Ycy':'\\u042B','yen':'\\xA5','yfr':'\\uD835\\uDD36','Yfr':'\\uD835\\uDD1C','yicy':'\\u0457','YIcy':'\\u0407','yopf':'\\uD835\\uDD6A','Yopf':'\\uD835\\uDD50','yscr':'\\uD835\\uDCCE','Yscr':'\\uD835\\uDCB4','yucy':'\\u044E','YUcy':'\\u042E','yuml':'\\xFF','Yuml':'\\u0178','zacute':'\\u017A','Zacute':'\\u0179','zcaron':'\\u017E','Zcaron':'\\u017D','zcy':'\\u0437','Zcy':'\\u0417','zdot':'\\u017C','Zdot':'\\u017B','zeetrf':'\\u2128','ZeroWidthSpace':'\\u200B','zeta':'\\u03B6','Zeta':'\\u0396','zfr':'\\uD835\\uDD37','Zfr':'\\u2128','zhcy':'\\u0436','ZHcy':'\\u0416','zigrarr':'\\u21DD','zopf':'\\uD835\\uDD6B','Zopf':'\\u2124','zscr':'\\uD835\\uDCCF','Zscr':'\\uD835\\uDCB5','zwj':'\\u200D','zwnj':'\\u200C'};\n\tvar decodeMapLegacy = {'aacute':'\\xE1','Aacute':'\\xC1','acirc':'\\xE2','Acirc':'\\xC2','acute':'\\xB4','aelig':'\\xE6','AElig':'\\xC6','agrave':'\\xE0','Agrave':'\\xC0','amp':'&','AMP':'&','aring':'\\xE5','Aring':'\\xC5','atilde':'\\xE3','Atilde':'\\xC3','auml':'\\xE4','Auml':'\\xC4','brvbar':'\\xA6','ccedil':'\\xE7','Ccedil':'\\xC7','cedil':'\\xB8','cent':'\\xA2','copy':'\\xA9','COPY':'\\xA9','curren':'\\xA4','deg':'\\xB0','divide':'\\xF7','eacute':'\\xE9','Eacute':'\\xC9','ecirc':'\\xEA','Ecirc':'\\xCA','egrave':'\\xE8','Egrave':'\\xC8','eth':'\\xF0','ETH':'\\xD0','euml':'\\xEB','Euml':'\\xCB','frac12':'\\xBD','frac14':'\\xBC','frac34':'\\xBE','gt':'>','GT':'>','iacute':'\\xED','Iacute':'\\xCD','icirc':'\\xEE','Icirc':'\\xCE','iexcl':'\\xA1','igrave':'\\xEC','Igrave':'\\xCC','iquest':'\\xBF','iuml':'\\xEF','Iuml':'\\xCF','laquo':'\\xAB','lt':'<','LT':'<','macr':'\\xAF','micro':'\\xB5','middot':'\\xB7','nbsp':'\\xA0','not':'\\xAC','ntilde':'\\xF1','Ntilde':'\\xD1','oacute':'\\xF3','Oacute':'\\xD3','ocirc':'\\xF4','Ocirc':'\\xD4','ograve':'\\xF2','Ograve':'\\xD2','ordf':'\\xAA','ordm':'\\xBA','oslash':'\\xF8','Oslash':'\\xD8','otilde':'\\xF5','Otilde':'\\xD5','ouml':'\\xF6','Ouml':'\\xD6','para':'\\xB6','plusmn':'\\xB1','pound':'\\xA3','quot':'\"','QUOT':'\"','raquo':'\\xBB','reg':'\\xAE','REG':'\\xAE','sect':'\\xA7','shy':'\\xAD','sup1':'\\xB9','sup2':'\\xB2','sup3':'\\xB3','szlig':'\\xDF','thorn':'\\xFE','THORN':'\\xDE','times':'\\xD7','uacute':'\\xFA','Uacute':'\\xDA','ucirc':'\\xFB','Ucirc':'\\xDB','ugrave':'\\xF9','Ugrave':'\\xD9','uml':'\\xA8','uuml':'\\xFC','Uuml':'\\xDC','yacute':'\\xFD','Yacute':'\\xDD','yen':'\\xA5','yuml':'\\xFF'};\n\tvar decodeMapNumeric = {'0':'\\uFFFD','128':'\\u20AC','130':'\\u201A','131':'\\u0192','132':'\\u201E','133':'\\u2026','134':'\\u2020','135':'\\u2021','136':'\\u02C6','137':'\\u2030','138':'\\u0160','139':'\\u2039','140':'\\u0152','142':'\\u017D','145':'\\u2018','146':'\\u2019','147':'\\u201C','148':'\\u201D','149':'\\u2022','150':'\\u2013','151':'\\u2014','152':'\\u02DC','153':'\\u2122','154':'\\u0161','155':'\\u203A','156':'\\u0153','158':'\\u017E','159':'\\u0178'};\n\tvar invalidReferenceCodePoints = [1,2,3,4,5,6,7,8,11,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,64976,64977,64978,64979,64980,64981,64982,64983,64984,64985,64986,64987,64988,64989,64990,64991,64992,64993,64994,64995,64996,64997,64998,64999,65000,65001,65002,65003,65004,65005,65006,65007,65534,65535,131070,131071,196606,196607,262142,262143,327678,327679,393214,393215,458750,458751,524286,524287,589822,589823,655358,655359,720894,720895,786430,786431,851966,851967,917502,917503,983038,983039,1048574,1048575,1114110,1114111];\n\n\t/*--------------------------------------------------------------------------*/\n\n\tvar stringFromCharCode = String.fromCharCode;\n\n\tvar object = {};\n\tvar hasOwnProperty = object.hasOwnProperty;\n\tvar has = function(object, propertyName) {\n\t\treturn hasOwnProperty.call(object, propertyName);\n\t};\n\n\tvar contains = function(array, value) {\n\t\tvar index = -1;\n\t\tvar length = array.length;\n\t\twhile (++index < length) {\n\t\t\tif (array[index] == value) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t};\n\n\tvar merge = function(options, defaults) {\n\t\tif (!options) {\n\t\t\treturn defaults;\n\t\t}\n\t\tvar result = {};\n\t\tvar key;\n\t\tfor (key in defaults) {\n\t\t\t// A `hasOwnProperty` check is not needed here, since only recognized\n\t\t\t// option names are used anyway. Any others are ignored.\n\t\t\tresult[key] = has(options, key) ? options[key] : defaults[key];\n\t\t}\n\t\treturn result;\n\t};\n\n\t// Modified version of `ucs2encode`; see https://mths.be/punycode.\n\tvar codePointToSymbol = function(codePoint, strict) {\n\t\tvar output = '';\n\t\tif ((codePoint >= 0xD800 && codePoint <= 0xDFFF) || codePoint > 0x10FFFF) {\n\t\t\t// See issue #4:\n\t\t\t// “Otherwise, if the number is in the range 0xD800 to 0xDFFF or is\n\t\t\t// greater than 0x10FFFF, then this is a parse error. Return a U+FFFD\n\t\t\t// REPLACEMENT CHARACTER.”\n\t\t\tif (strict) {\n\t\t\t\tparseError('character reference outside the permissible Unicode range');\n\t\t\t}\n\t\t\treturn '\\uFFFD';\n\t\t}\n\t\tif (has(decodeMapNumeric, codePoint)) {\n\t\t\tif (strict) {\n\t\t\t\tparseError('disallowed character reference');\n\t\t\t}\n\t\t\treturn decodeMapNumeric[codePoint];\n\t\t}\n\t\tif (strict && contains(invalidReferenceCodePoints, codePoint)) {\n\t\t\tparseError('disallowed character reference');\n\t\t}\n\t\tif (codePoint > 0xFFFF) {\n\t\t\tcodePoint -= 0x10000;\n\t\t\toutput += stringFromCharCode(codePoint >>> 10 & 0x3FF | 0xD800);\n\t\t\tcodePoint = 0xDC00 | codePoint & 0x3FF;\n\t\t}\n\t\toutput += stringFromCharCode(codePoint);\n\t\treturn output;\n\t};\n\n\tvar hexEscape = function(codePoint) {\n\t\treturn '&#x' + codePoint.toString(16).toUpperCase() + ';';\n\t};\n\n\tvar decEscape = function(codePoint) {\n\t\treturn '&#' + codePoint + ';';\n\t};\n\n\tvar parseError = function(message) {\n\t\tthrow Error('Parse error: ' + message);\n\t};\n\n\t/*--------------------------------------------------------------------------*/\n\n\tvar encode = function(string, options) {\n\t\toptions = merge(options, encode.options);\n\t\tvar strict = options.strict;\n\t\tif (strict && regexInvalidRawCodePoint.test(string)) {\n\t\t\tparseError('forbidden code point');\n\t\t}\n\t\tvar encodeEverything = options.encodeEverything;\n\t\tvar useNamedReferences = options.useNamedReferences;\n\t\tvar allowUnsafeSymbols = options.allowUnsafeSymbols;\n\t\tvar escapeCodePoint = options.decimal ? decEscape : hexEscape;\n\n\t\tvar escapeBmpSymbol = function(symbol) {\n\t\t\treturn escapeCodePoint(symbol.charCodeAt(0));\n\t\t};\n\n\t\tif (encodeEverything) {\n\t\t\t// Encode ASCII symbols.\n\t\t\tstring = string.replace(regexAsciiWhitelist, function(symbol) {\n\t\t\t\t// Use named references if requested & possible.\n\t\t\t\tif (useNamedReferences && has(encodeMap, symbol)) {\n\t\t\t\t\treturn '&' + encodeMap[symbol] + ';';\n\t\t\t\t}\n\t\t\t\treturn escapeBmpSymbol(symbol);\n\t\t\t});\n\t\t\t// Shorten a few escapes that represent two symbols, of which at least one\n\t\t\t// is within the ASCII range.\n\t\t\tif (useNamedReferences) {\n\t\t\t\tstring = string\n\t\t\t\t\t.replace(/>\\u20D2/g, '>⃒')\n\t\t\t\t\t.replace(/<\\u20D2/g, '<⃒')\n\t\t\t\t\t.replace(/fj/g, 'fj');\n\t\t\t}\n\t\t\t// Encode non-ASCII symbols.\n\t\t\tif (useNamedReferences) {\n\t\t\t\t// Encode non-ASCII symbols that can be replaced with a named reference.\n\t\t\t\tstring = string.replace(regexEncodeNonAscii, function(string) {\n\t\t\t\t\t// Note: there is no need to check `has(encodeMap, string)` here.\n\t\t\t\t\treturn '&' + encodeMap[string] + ';';\n\t\t\t\t});\n\t\t\t}\n\t\t\t// Note: any remaining non-ASCII symbols are handled outside of the `if`.\n\t\t} else if (useNamedReferences) {\n\t\t\t// Apply named character references.\n\t\t\t// Encode `<>\"'&` using named character references.\n\t\t\tif (!allowUnsafeSymbols) {\n\t\t\t\tstring = string.replace(regexEscape, function(string) {\n\t\t\t\t\treturn '&' + encodeMap[string] + ';'; // no need to check `has()` here\n\t\t\t\t});\n\t\t\t}\n\t\t\t// Shorten escapes that represent two symbols, of which at least one is\n\t\t\t// `<>\"'&`.\n\t\t\tstring = string\n\t\t\t\t.replace(/>\\u20D2/g, '>⃒')\n\t\t\t\t.replace(/<\\u20D2/g, '<⃒');\n\t\t\t// Encode non-ASCII symbols that can be replaced with a named reference.\n\t\t\tstring = string.replace(regexEncodeNonAscii, function(string) {\n\t\t\t\t// Note: there is no need to check `has(encodeMap, string)` here.\n\t\t\t\treturn '&' + encodeMap[string] + ';';\n\t\t\t});\n\t\t} else if (!allowUnsafeSymbols) {\n\t\t\t// Encode `<>\"'&` using hexadecimal escapes, now that they’re not handled\n\t\t\t// using named character references.\n\t\t\tstring = string.replace(regexEscape, escapeBmpSymbol);\n\t\t}\n\t\treturn string\n\t\t\t// Encode astral symbols.\n\t\t\t.replace(regexAstralSymbols, function($0) {\n\t\t\t\t// https://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae\n\t\t\t\tvar high = $0.charCodeAt(0);\n\t\t\t\tvar low = $0.charCodeAt(1);\n\t\t\t\tvar codePoint = (high - 0xD800) * 0x400 + low - 0xDC00 + 0x10000;\n\t\t\t\treturn escapeCodePoint(codePoint);\n\t\t\t})\n\t\t\t// Encode any remaining BMP symbols that are not printable ASCII symbols\n\t\t\t// using a hexadecimal escape.\n\t\t\t.replace(regexBmpWhitelist, escapeBmpSymbol);\n\t};\n\t// Expose default options (so they can be overridden globally).\n\tencode.options = {\n\t\t'allowUnsafeSymbols': false,\n\t\t'encodeEverything': false,\n\t\t'strict': false,\n\t\t'useNamedReferences': false,\n\t\t'decimal' : false\n\t};\n\n\tvar decode = function(html, options) {\n\t\toptions = merge(options, decode.options);\n\t\tvar strict = options.strict;\n\t\tif (strict && regexInvalidEntity.test(html)) {\n\t\t\tparseError('malformed character reference');\n\t\t}\n\t\treturn html.replace(regexDecode, function($0, $1, $2, $3, $4, $5, $6, $7, $8) {\n\t\t\tvar codePoint;\n\t\t\tvar semicolon;\n\t\t\tvar decDigits;\n\t\t\tvar hexDigits;\n\t\t\tvar reference;\n\t\t\tvar next;\n\n\t\t\tif ($1) {\n\t\t\t\treference = $1;\n\t\t\t\t// Note: there is no need to check `has(decodeMap, reference)`.\n\t\t\t\treturn decodeMap[reference];\n\t\t\t}\n\n\t\t\tif ($2) {\n\t\t\t\t// Decode named character references without trailing `;`, e.g. `&`.\n\t\t\t\t// This is only a parse error if it gets converted to `&`, or if it is\n\t\t\t\t// followed by `=` in an attribute context.\n\t\t\t\treference = $2;\n\t\t\t\tnext = $3;\n\t\t\t\tif (next && options.isAttributeValue) {\n\t\t\t\t\tif (strict && next == '=') {\n\t\t\t\t\t\tparseError('`&` did not start a character reference');\n\t\t\t\t\t}\n\t\t\t\t\treturn $0;\n\t\t\t\t} else {\n\t\t\t\t\tif (strict) {\n\t\t\t\t\t\tparseError(\n\t\t\t\t\t\t\t'named character reference was not terminated by a semicolon'\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\t// Note: there is no need to check `has(decodeMapLegacy, reference)`.\n\t\t\t\t\treturn decodeMapLegacy[reference] + (next || '');\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ($4) {\n\t\t\t\t// Decode decimal escapes, e.g. `𝌆`.\n\t\t\t\tdecDigits = $4;\n\t\t\t\tsemicolon = $5;\n\t\t\t\tif (strict && !semicolon) {\n\t\t\t\t\tparseError('character reference was not terminated by a semicolon');\n\t\t\t\t}\n\t\t\t\tcodePoint = parseInt(decDigits, 10);\n\t\t\t\treturn codePointToSymbol(codePoint, strict);\n\t\t\t}\n\n\t\t\tif ($6) {\n\t\t\t\t// Decode hexadecimal escapes, e.g. `𝌆`.\n\t\t\t\thexDigits = $6;\n\t\t\t\tsemicolon = $7;\n\t\t\t\tif (strict && !semicolon) {\n\t\t\t\t\tparseError('character reference was not terminated by a semicolon');\n\t\t\t\t}\n\t\t\t\tcodePoint = parseInt(hexDigits, 16);\n\t\t\t\treturn codePointToSymbol(codePoint, strict);\n\t\t\t}\n\n\t\t\t// If we’re still here, `if ($7)` is implied; it’s an ambiguous\n\t\t\t// ampersand for sure. https://mths.be/notes/ambiguous-ampersands\n\t\t\tif (strict) {\n\t\t\t\tparseError(\n\t\t\t\t\t'named character reference was not terminated by a semicolon'\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn $0;\n\t\t});\n\t};\n\t// Expose default options (so they can be overridden globally).\n\tdecode.options = {\n\t\t'isAttributeValue': false,\n\t\t'strict': false\n\t};\n\n\tvar escape = function(string) {\n\t\treturn string.replace(regexEscape, function($0) {\n\t\t\t// Note: there is no need to check `has(escapeMap, $0)` here.\n\t\t\treturn escapeMap[$0];\n\t\t});\n\t};\n\n\t/*--------------------------------------------------------------------------*/\n\n\tvar he = {\n\t\t'version': '1.2.0',\n\t\t'encode': encode,\n\t\t'decode': decode,\n\t\t'escape': escape,\n\t\t'unescape': decode\n\t};\n\n\t// Some AMD build optimizers, like r.js, check for specific condition patterns\n\t// like the following:\n\tif (\n\t\ttypeof define == 'function' &&\n\t\ttypeof define.amd == 'object' &&\n\t\tdefine.amd\n\t) {\n\t\tdefine(function() {\n\t\t\treturn he;\n\t\t});\n\t}\telse if (freeExports && !freeExports.nodeType) {\n\t\tif (freeModule) { // in Node.js, io.js, or RingoJS v0.8.0+\n\t\t\tfreeModule.exports = he;\n\t\t} else { // in Narwhal or RingoJS v0.7.0-\n\t\t\tfor (var key in he) {\n\t\t\t\thas(he, key) && (freeExports[key] = he[key]);\n\t\t\t}\n\t\t}\n\t} else { // in Rhino or a web browser\n\t\troot.he = he;\n\t}\n\n}(this));\n","\"use strict\";\n\n/**\n * RegexEscape\n * Escapes a string for using it in a regular expression.\n *\n * @name RegexEscape\n * @function\n * @param {String} input The string that must be escaped.\n * @return {String} The escaped string.\n */\nfunction RegexEscape(input) {\n return input.replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g, \"\\\\$&\");\n}\n\n/**\n * proto\n * Adds the `RegexEscape` function to `RegExp` class.\n *\n * @name proto\n * @function\n * @return {Function} The `RegexEscape` function.\n */\nRegexEscape.proto = function () {\n RegExp.escape = RegexEscape;\n return RegexEscape;\n};\n\nmodule.exports = RegexEscape;","\"use strict\";\n\nvar iterateObject = require(\"iterate-object\"),\n regexEscape = require(\"regex-escape\"),\n he = require(\"he\");\n\nmodule.exports = {\n /**\n * decode\n * Decodes an encoded string.\n *\n * @name decode\n * @function\n * @param {String} input The encoded string.\n * @returns {String} The decoded string.\n */\n decode: function decode(input) {\n return he.decode(input);\n }\n\n /**\n * encode\n * Encodes a string.\n *\n * @name encode\n * @function\n * @param {String} input The string that must be encoded.\n * @returns {String} The encoded string.\n */\n ,\n encode: function encode(input) {\n return he.encode(input);\n }\n};",";/*! showdown v 2.1.0 - 21-04-2022 */\r\n(function(){\r\n/**\n * Created by Tivie on 13-07-2015.\n */\n\nfunction getDefaultOpts (simple) {\n 'use strict';\n\n var defaultOptions = {\n omitExtraWLInCodeBlocks: {\n defaultValue: false,\n describe: 'Omit the default extra whiteline added to code blocks',\n type: 'boolean'\n },\n noHeaderId: {\n defaultValue: false,\n describe: 'Turn on/off generated header id',\n type: 'boolean'\n },\n prefixHeaderId: {\n defaultValue: false,\n describe: 'Add a prefix to the generated header ids. Passing a string will prefix that string to the header id. Setting to true will add a generic \\'section-\\' prefix',\n type: 'string'\n },\n rawPrefixHeaderId: {\n defaultValue: false,\n describe: 'Setting this option to true will prevent showdown from modifying the prefix. This might result in malformed IDs (if, for instance, the \" char is used in the prefix)',\n type: 'boolean'\n },\n ghCompatibleHeaderId: {\n defaultValue: false,\n describe: 'Generate header ids compatible with github style (spaces are replaced with dashes, a bunch of non alphanumeric chars are removed)',\n type: 'boolean'\n },\n rawHeaderId: {\n defaultValue: false,\n describe: 'Remove only spaces, \\' and \" from generated header ids (including prefixes), replacing them with dashes (-). WARNING: This might result in malformed ids',\n type: 'boolean'\n },\n headerLevelStart: {\n defaultValue: false,\n describe: 'The header blocks level start',\n type: 'integer'\n },\n parseImgDimensions: {\n defaultValue: false,\n describe: 'Turn on/off image dimension parsing',\n type: 'boolean'\n },\n simplifiedAutoLink: {\n defaultValue: false,\n describe: 'Turn on/off GFM autolink style',\n type: 'boolean'\n },\n excludeTrailingPunctuationFromURLs: {\n defaultValue: false,\n describe: 'Excludes trailing punctuation from links generated with autoLinking',\n type: 'boolean'\n },\n literalMidWordUnderscores: {\n defaultValue: false,\n describe: 'Parse midword underscores as literal underscores',\n type: 'boolean'\n },\n literalMidWordAsterisks: {\n defaultValue: false,\n describe: 'Parse midword asterisks as literal asterisks',\n type: 'boolean'\n },\n strikethrough: {\n defaultValue: false,\n describe: 'Turn on/off strikethrough support',\n type: 'boolean'\n },\n tables: {\n defaultValue: false,\n describe: 'Turn on/off tables support',\n type: 'boolean'\n },\n tablesHeaderId: {\n defaultValue: false,\n describe: 'Add an id to table headers',\n type: 'boolean'\n },\n ghCodeBlocks: {\n defaultValue: true,\n describe: 'Turn on/off GFM fenced code blocks support',\n type: 'boolean'\n },\n tasklists: {\n defaultValue: false,\n describe: 'Turn on/off GFM tasklist support',\n type: 'boolean'\n },\n smoothLivePreview: {\n defaultValue: false,\n describe: 'Prevents weird effects in live previews due to incomplete input',\n type: 'boolean'\n },\n smartIndentationFix: {\n defaultValue: false,\n describe: 'Tries to smartly fix indentation in es6 strings',\n type: 'boolean'\n },\n disableForced4SpacesIndentedSublists: {\n defaultValue: false,\n describe: 'Disables the requirement of indenting nested sublists by 4 spaces',\n type: 'boolean'\n },\n simpleLineBreaks: {\n defaultValue: false,\n describe: 'Parses simple line breaks as
(GFM Style)',\n type: 'boolean'\n },\n requireSpaceBeforeHeadingText: {\n defaultValue: false,\n describe: 'Makes adding a space between `#` and the header text mandatory (GFM Style)',\n type: 'boolean'\n },\n ghMentions: {\n defaultValue: false,\n describe: 'Enables github @mentions',\n type: 'boolean'\n },\n ghMentionsLink: {\n defaultValue: 'https://github.com/{u}',\n describe: 'Changes the link generated by @mentions. Only applies if ghMentions option is enabled.',\n type: 'string'\n },\n encodeEmails: {\n defaultValue: true,\n describe: 'Encode e-mail addresses through the use of Character Entities, transforming ASCII e-mail addresses into its equivalent decimal entities',\n type: 'boolean'\n },\n openLinksInNewWindow: {\n defaultValue: false,\n describe: 'Open all links in new windows',\n type: 'boolean'\n },\n backslashEscapesHTMLTags: {\n defaultValue: false,\n describe: 'Support for HTML Tag escaping. ex: \\
foo\\
',\n type: 'boolean'\n },\n emoji: {\n defaultValue: false,\n describe: 'Enable emoji support. Ex: `this is a :smile: emoji`',\n type: 'boolean'\n },\n underline: {\n defaultValue: false,\n describe: 'Enable support for underline. Syntax is double or triple underscores: `__underline word__`. With this option enabled, underscores no longer parses into `` and ``',\n type: 'boolean'\n },\n ellipsis: {\n defaultValue: true,\n describe: 'Replaces three dots with the ellipsis unicode character',\n type: 'boolean'\n },\n completeHTMLDocument: {\n defaultValue: false,\n describe: 'Outputs a complete html document, including ``, `` and `` tags',\n type: 'boolean'\n },\n metadata: {\n defaultValue: false,\n describe: 'Enable support for document metadata (defined at the top of the document between `«««` and `»»»` or between `---` and `---`).',\n type: 'boolean'\n },\n splitAdjacentBlockquotes: {\n defaultValue: false,\n describe: 'Split adjacent blockquote blocks',\n type: 'boolean'\n }\n };\n if (simple === false) {\n return JSON.parse(JSON.stringify(defaultOptions));\n }\n var ret = {};\n for (var opt in defaultOptions) {\n if (defaultOptions.hasOwnProperty(opt)) {\n ret[opt] = defaultOptions[opt].defaultValue;\n }\n }\n return ret;\n}\n\nfunction allOptionsOn () {\n 'use strict';\n var options = getDefaultOpts(true),\n ret = {};\n for (var opt in options) {\n if (options.hasOwnProperty(opt)) {\n ret[opt] = true;\n }\n }\n return ret;\n}\n\r\n/**\n * Created by Tivie on 06-01-2015.\n */\n\n// Private properties\nvar showdown = {},\n parsers = {},\n extensions = {},\n globalOptions = getDefaultOpts(true),\n setFlavor = 'vanilla',\n flavor = {\n github: {\n omitExtraWLInCodeBlocks: true,\n simplifiedAutoLink: true,\n excludeTrailingPunctuationFromURLs: true,\n literalMidWordUnderscores: true,\n strikethrough: true,\n tables: true,\n tablesHeaderId: true,\n ghCodeBlocks: true,\n tasklists: true,\n disableForced4SpacesIndentedSublists: true,\n simpleLineBreaks: true,\n requireSpaceBeforeHeadingText: true,\n ghCompatibleHeaderId: true,\n ghMentions: true,\n backslashEscapesHTMLTags: true,\n emoji: true,\n splitAdjacentBlockquotes: true\n },\n original: {\n noHeaderId: true,\n ghCodeBlocks: false\n },\n ghost: {\n omitExtraWLInCodeBlocks: true,\n parseImgDimensions: true,\n simplifiedAutoLink: true,\n excludeTrailingPunctuationFromURLs: true,\n literalMidWordUnderscores: true,\n strikethrough: true,\n tables: true,\n tablesHeaderId: true,\n ghCodeBlocks: true,\n tasklists: true,\n smoothLivePreview: true,\n simpleLineBreaks: true,\n requireSpaceBeforeHeadingText: true,\n ghMentions: false,\n encodeEmails: true\n },\n vanilla: getDefaultOpts(true),\n allOn: allOptionsOn()\n };\n\n/**\n * helper namespace\n * @type {{}}\n */\nshowdown.helper = {};\n\n/**\n * TODO LEGACY SUPPORT CODE\n * @type {{}}\n */\nshowdown.extensions = {};\n\n/**\n * Set a global option\n * @static\n * @param {string} key\n * @param {*} value\n * @returns {showdown}\n */\nshowdown.setOption = function (key, value) {\n 'use strict';\n globalOptions[key] = value;\n return this;\n};\n\n/**\n * Get a global option\n * @static\n * @param {string} key\n * @returns {*}\n */\nshowdown.getOption = function (key) {\n 'use strict';\n return globalOptions[key];\n};\n\n/**\n * Get the global options\n * @static\n * @returns {{}}\n */\nshowdown.getOptions = function () {\n 'use strict';\n return globalOptions;\n};\n\n/**\n * Reset global options to the default values\n * @static\n */\nshowdown.resetOptions = function () {\n 'use strict';\n globalOptions = getDefaultOpts(true);\n};\n\n/**\n * Set the flavor showdown should use as default\n * @param {string} name\n */\nshowdown.setFlavor = function (name) {\n 'use strict';\n if (!flavor.hasOwnProperty(name)) {\n throw Error(name + ' flavor was not found');\n }\n showdown.resetOptions();\n var preset = flavor[name];\n setFlavor = name;\n for (var option in preset) {\n if (preset.hasOwnProperty(option)) {\n globalOptions[option] = preset[option];\n }\n }\n};\n\n/**\n * Get the currently set flavor\n * @returns {string}\n */\nshowdown.getFlavor = function () {\n 'use strict';\n return setFlavor;\n};\n\n/**\n * Get the options of a specified flavor. Returns undefined if the flavor was not found\n * @param {string} name Name of the flavor\n * @returns {{}|undefined}\n */\nshowdown.getFlavorOptions = function (name) {\n 'use strict';\n if (flavor.hasOwnProperty(name)) {\n return flavor[name];\n }\n};\n\n/**\n * Get the default options\n * @static\n * @param {boolean} [simple=true]\n * @returns {{}}\n */\nshowdown.getDefaultOptions = function (simple) {\n 'use strict';\n return getDefaultOpts(simple);\n};\n\n/**\n * Get or set a subParser\n *\n * subParser(name) - Get a registered subParser\n * subParser(name, func) - Register a subParser\n * @static\n * @param {string} name\n * @param {function} [func]\n * @returns {*}\n */\nshowdown.subParser = function (name, func) {\n 'use strict';\n if (showdown.helper.isString(name)) {\n if (typeof func !== 'undefined') {\n parsers[name] = func;\n } else {\n if (parsers.hasOwnProperty(name)) {\n return parsers[name];\n } else {\n throw Error('SubParser named ' + name + ' not registered!');\n }\n }\n }\n};\n\n/**\n * Gets or registers an extension\n * @static\n * @param {string} name\n * @param {object|object[]|function=} ext\n * @returns {*}\n */\nshowdown.extension = function (name, ext) {\n 'use strict';\n\n if (!showdown.helper.isString(name)) {\n throw Error('Extension \\'name\\' must be a string');\n }\n\n name = showdown.helper.stdExtName(name);\n\n // Getter\n if (showdown.helper.isUndefined(ext)) {\n if (!extensions.hasOwnProperty(name)) {\n throw Error('Extension named ' + name + ' is not registered!');\n }\n return extensions[name];\n\n // Setter\n } else {\n // Expand extension if it's wrapped in a function\n if (typeof ext === 'function') {\n ext = ext();\n }\n\n // Ensure extension is an array\n if (!showdown.helper.isArray(ext)) {\n ext = [ext];\n }\n\n var validExtension = validate(ext, name);\n\n if (validExtension.valid) {\n extensions[name] = ext;\n } else {\n throw Error(validExtension.error);\n }\n }\n};\n\n/**\n * Gets all extensions registered\n * @returns {{}}\n */\nshowdown.getAllExtensions = function () {\n 'use strict';\n return extensions;\n};\n\n/**\n * Remove an extension\n * @param {string} name\n */\nshowdown.removeExtension = function (name) {\n 'use strict';\n delete extensions[name];\n};\n\n/**\n * Removes all extensions\n */\nshowdown.resetExtensions = function () {\n 'use strict';\n extensions = {};\n};\n\n/**\n * Validate extension\n * @param {array} extension\n * @param {string} name\n * @returns {{valid: boolean, error: string}}\n */\nfunction validate (extension, name) {\n 'use strict';\n\n var errMsg = (name) ? 'Error in ' + name + ' extension->' : 'Error in unnamed extension',\n ret = {\n valid: true,\n error: ''\n };\n\n if (!showdown.helper.isArray(extension)) {\n extension = [extension];\n }\n\n for (var i = 0; i < extension.length; ++i) {\n var baseMsg = errMsg + ' sub-extension ' + i + ': ',\n ext = extension[i];\n if (typeof ext !== 'object') {\n ret.valid = false;\n ret.error = baseMsg + 'must be an object, but ' + typeof ext + ' given';\n return ret;\n }\n\n if (!showdown.helper.isString(ext.type)) {\n ret.valid = false;\n ret.error = baseMsg + 'property \"type\" must be a string, but ' + typeof ext.type + ' given';\n return ret;\n }\n\n var type = ext.type = ext.type.toLowerCase();\n\n // normalize extension type\n if (type === 'language') {\n type = ext.type = 'lang';\n }\n\n if (type === 'html') {\n type = ext.type = 'output';\n }\n\n if (type !== 'lang' && type !== 'output' && type !== 'listener') {\n ret.valid = false;\n ret.error = baseMsg + 'type ' + type + ' is not recognized. Valid values: \"lang/language\", \"output/html\" or \"listener\"';\n return ret;\n }\n\n if (type === 'listener') {\n if (showdown.helper.isUndefined(ext.listeners)) {\n ret.valid = false;\n ret.error = baseMsg + '. Extensions of type \"listener\" must have a property called \"listeners\"';\n return ret;\n }\n } else {\n if (showdown.helper.isUndefined(ext.filter) && showdown.helper.isUndefined(ext.regex)) {\n ret.valid = false;\n ret.error = baseMsg + type + ' extensions must define either a \"regex\" property or a \"filter\" method';\n return ret;\n }\n }\n\n if (ext.listeners) {\n if (typeof ext.listeners !== 'object') {\n ret.valid = false;\n ret.error = baseMsg + '\"listeners\" property must be an object but ' + typeof ext.listeners + ' given';\n return ret;\n }\n for (var ln in ext.listeners) {\n if (ext.listeners.hasOwnProperty(ln)) {\n if (typeof ext.listeners[ln] !== 'function') {\n ret.valid = false;\n ret.error = baseMsg + '\"listeners\" property must be an hash of [event name]: [callback]. listeners.' + ln +\n ' must be a function but ' + typeof ext.listeners[ln] + ' given';\n return ret;\n }\n }\n }\n }\n\n if (ext.filter) {\n if (typeof ext.filter !== 'function') {\n ret.valid = false;\n ret.error = baseMsg + '\"filter\" must be a function, but ' + typeof ext.filter + ' given';\n return ret;\n }\n } else if (ext.regex) {\n if (showdown.helper.isString(ext.regex)) {\n ext.regex = new RegExp(ext.regex, 'g');\n }\n if (!(ext.regex instanceof RegExp)) {\n ret.valid = false;\n ret.error = baseMsg + '\"regex\" property must either be a string or a RegExp object, but ' + typeof ext.regex + ' given';\n return ret;\n }\n if (showdown.helper.isUndefined(ext.replace)) {\n ret.valid = false;\n ret.error = baseMsg + '\"regex\" extensions must implement a replace string or function';\n return ret;\n }\n }\n }\n return ret;\n}\n\n/**\n * Validate extension\n * @param {object} ext\n * @returns {boolean}\n */\nshowdown.validateExtension = function (ext) {\n 'use strict';\n\n var validateExtension = validate(ext, null);\n if (!validateExtension.valid) {\n console.warn(validateExtension.error);\n return false;\n }\n return true;\n};\n\r\n/**\n * showdownjs helper functions\n */\n\nif (!showdown.hasOwnProperty('helper')) {\n showdown.helper = {};\n}\n\n/**\n * Check if var is string\n * @static\n * @param {string} a\n * @returns {boolean}\n */\nshowdown.helper.isString = function (a) {\n 'use strict';\n return (typeof a === 'string' || a instanceof String);\n};\n\n/**\n * Check if var is a function\n * @static\n * @param {*} a\n * @returns {boolean}\n */\nshowdown.helper.isFunction = function (a) {\n 'use strict';\n var getType = {};\n return a && getType.toString.call(a) === '[object Function]';\n};\n\n/**\n * isArray helper function\n * @static\n * @param {*} a\n * @returns {boolean}\n */\nshowdown.helper.isArray = function (a) {\n 'use strict';\n return Array.isArray(a);\n};\n\n/**\n * Check if value is undefined\n * @static\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `undefined`, else `false`.\n */\nshowdown.helper.isUndefined = function (value) {\n 'use strict';\n return typeof value === 'undefined';\n};\n\n/**\n * ForEach helper function\n * Iterates over Arrays and Objects (own properties only)\n * @static\n * @param {*} obj\n * @param {function} callback Accepts 3 params: 1. value, 2. key, 3. the original array/object\n */\nshowdown.helper.forEach = function (obj, callback) {\n 'use strict';\n // check if obj is defined\n if (showdown.helper.isUndefined(obj)) {\n throw new Error('obj param is required');\n }\n\n if (showdown.helper.isUndefined(callback)) {\n throw new Error('callback param is required');\n }\n\n if (!showdown.helper.isFunction(callback)) {\n throw new Error('callback param must be a function/closure');\n }\n\n if (typeof obj.forEach === 'function') {\n obj.forEach(callback);\n } else if (showdown.helper.isArray(obj)) {\n for (var i = 0; i < obj.length; i++) {\n callback(obj[i], i, obj);\n }\n } else if (typeof (obj) === 'object') {\n for (var prop in obj) {\n if (obj.hasOwnProperty(prop)) {\n callback(obj[prop], prop, obj);\n }\n }\n } else {\n throw new Error('obj does not seem to be an array or an iterable object');\n }\n};\n\n/**\n * Standardidize extension name\n * @static\n * @param {string} s extension name\n * @returns {string}\n */\nshowdown.helper.stdExtName = function (s) {\n 'use strict';\n return s.replace(/[_?*+\\/\\\\.^-]/g, '').replace(/\\s/g, '').toLowerCase();\n};\n\nfunction escapeCharactersCallback (wholeMatch, m1) {\n 'use strict';\n var charCodeToEscape = m1.charCodeAt(0);\n return '¨E' + charCodeToEscape + 'E';\n}\n\n/**\n * Callback used to escape characters when passing through String.replace\n * @static\n * @param {string} wholeMatch\n * @param {string} m1\n * @returns {string}\n */\nshowdown.helper.escapeCharactersCallback = escapeCharactersCallback;\n\n/**\n * Escape characters in a string\n * @static\n * @param {string} text\n * @param {string} charsToEscape\n * @param {boolean} afterBackslash\n * @returns {XML|string|void|*}\n */\nshowdown.helper.escapeCharacters = function (text, charsToEscape, afterBackslash) {\n 'use strict';\n // First we have to escape the escape characters so that\n // we can build a character class out of them\n var regexString = '([' + charsToEscape.replace(/([\\[\\]\\\\])/g, '\\\\$1') + '])';\n\n if (afterBackslash) {\n regexString = '\\\\\\\\' + regexString;\n }\n\n var regex = new RegExp(regexString, 'g');\n text = text.replace(regex, escapeCharactersCallback);\n\n return text;\n};\n\n/**\n * Unescape HTML entities\n * @param txt\n * @returns {string}\n */\nshowdown.helper.unescapeHTMLEntities = function (txt) {\n 'use strict';\n\n return txt\n .replace(/"/g, '\"')\n .replace(/</g, '<')\n .replace(/>/g, '>')\n .replace(/&/g, '&');\n};\n\nvar rgxFindMatchPos = function (str, left, right, flags) {\n 'use strict';\n var f = flags || '',\n g = f.indexOf('g') > -1,\n x = new RegExp(left + '|' + right, 'g' + f.replace(/g/g, '')),\n l = new RegExp(left, f.replace(/g/g, '')),\n pos = [],\n t, s, m, start, end;\n\n do {\n t = 0;\n while ((m = x.exec(str))) {\n if (l.test(m[0])) {\n if (!(t++)) {\n s = x.lastIndex;\n start = s - m[0].length;\n }\n } else if (t) {\n if (!--t) {\n end = m.index + m[0].length;\n var obj = {\n left: {start: start, end: s},\n match: {start: s, end: m.index},\n right: {start: m.index, end: end},\n wholeMatch: {start: start, end: end}\n };\n pos.push(obj);\n if (!g) {\n return pos;\n }\n }\n }\n }\n } while (t && (x.lastIndex = s));\n\n return pos;\n};\n\n/**\n * matchRecursiveRegExp\n *\n * (c) 2007 Steven Levithan \n * MIT License\n *\n * Accepts a string to search, a left and right format delimiter\n * as regex patterns, and optional regex flags. Returns an array\n * of matches, allowing nested instances of left/right delimiters.\n * Use the \"g\" flag to return all matches, otherwise only the\n * first is returned. Be careful to ensure that the left and\n * right format delimiters produce mutually exclusive matches.\n * Backreferences are not supported within the right delimiter\n * due to how it is internally combined with the left delimiter.\n * When matching strings whose format delimiters are unbalanced\n * to the left or right, the output is intentionally as a\n * conventional regex library with recursion support would\n * produce, e.g. \"<\" and \">\" both produce [\"x\"] when using\n * \"<\" and \">\" as the delimiters (both strings contain a single,\n * balanced instance of \"\").\n *\n * examples:\n * matchRecursiveRegExp(\"test\", \"\\\\(\", \"\\\\)\")\n * returns: []\n * matchRecursiveRegExp(\">>t<>\", \"<\", \">\", \"g\")\n * returns: [\"t<>\", \"\"]\n * matchRecursiveRegExp(\"
test
\", \"]*>\", \"\", \"gi\")\n * returns: [\"test\"]\n */\nshowdown.helper.matchRecursiveRegExp = function (str, left, right, flags) {\n 'use strict';\n\n var matchPos = rgxFindMatchPos (str, left, right, flags),\n results = [];\n\n for (var i = 0; i < matchPos.length; ++i) {\n results.push([\n str.slice(matchPos[i].wholeMatch.start, matchPos[i].wholeMatch.end),\n str.slice(matchPos[i].match.start, matchPos[i].match.end),\n str.slice(matchPos[i].left.start, matchPos[i].left.end),\n str.slice(matchPos[i].right.start, matchPos[i].right.end)\n ]);\n }\n return results;\n};\n\n/**\n *\n * @param {string} str\n * @param {string|function} replacement\n * @param {string} left\n * @param {string} right\n * @param {string} flags\n * @returns {string}\n */\nshowdown.helper.replaceRecursiveRegExp = function (str, replacement, left, right, flags) {\n 'use strict';\n\n if (!showdown.helper.isFunction(replacement)) {\n var repStr = replacement;\n replacement = function () {\n return repStr;\n };\n }\n\n var matchPos = rgxFindMatchPos(str, left, right, flags),\n finalStr = str,\n lng = matchPos.length;\n\n if (lng > 0) {\n var bits = [];\n if (matchPos[0].wholeMatch.start !== 0) {\n bits.push(str.slice(0, matchPos[0].wholeMatch.start));\n }\n for (var i = 0; i < lng; ++i) {\n bits.push(\n replacement(\n str.slice(matchPos[i].wholeMatch.start, matchPos[i].wholeMatch.end),\n str.slice(matchPos[i].match.start, matchPos[i].match.end),\n str.slice(matchPos[i].left.start, matchPos[i].left.end),\n str.slice(matchPos[i].right.start, matchPos[i].right.end)\n )\n );\n if (i < lng - 1) {\n bits.push(str.slice(matchPos[i].wholeMatch.end, matchPos[i + 1].wholeMatch.start));\n }\n }\n if (matchPos[lng - 1].wholeMatch.end < str.length) {\n bits.push(str.slice(matchPos[lng - 1].wholeMatch.end));\n }\n finalStr = bits.join('');\n }\n return finalStr;\n};\n\n/**\n * Returns the index within the passed String object of the first occurrence of the specified regex,\n * starting the search at fromIndex. Returns -1 if the value is not found.\n *\n * @param {string} str string to search\n * @param {RegExp} regex Regular expression to search\n * @param {int} [fromIndex = 0] Index to start the search\n * @returns {Number}\n * @throws InvalidArgumentError\n */\nshowdown.helper.regexIndexOf = function (str, regex, fromIndex) {\n 'use strict';\n if (!showdown.helper.isString(str)) {\n throw 'InvalidArgumentError: first parameter of showdown.helper.regexIndexOf function must be a string';\n }\n if (regex instanceof RegExp === false) {\n throw 'InvalidArgumentError: second parameter of showdown.helper.regexIndexOf function must be an instance of RegExp';\n }\n var indexOf = str.substring(fromIndex || 0).search(regex);\n return (indexOf >= 0) ? (indexOf + (fromIndex || 0)) : indexOf;\n};\n\n/**\n * Splits the passed string object at the defined index, and returns an array composed of the two substrings\n * @param {string} str string to split\n * @param {int} index index to split string at\n * @returns {[string,string]}\n * @throws InvalidArgumentError\n */\nshowdown.helper.splitAtIndex = function (str, index) {\n 'use strict';\n if (!showdown.helper.isString(str)) {\n throw 'InvalidArgumentError: first parameter of showdown.helper.regexIndexOf function must be a string';\n }\n return [str.substring(0, index), str.substring(index)];\n};\n\n/**\n * Obfuscate an e-mail address through the use of Character Entities,\n * transforming ASCII characters into their equivalent decimal or hex entities.\n *\n * Since it has a random component, subsequent calls to this function produce different results\n *\n * @param {string} mail\n * @returns {string}\n */\nshowdown.helper.encodeEmailAddress = function (mail) {\n 'use strict';\n var encode = [\n function (ch) {\n return '&#' + ch.charCodeAt(0) + ';';\n },\n function (ch) {\n return '&#x' + ch.charCodeAt(0).toString(16) + ';';\n },\n function (ch) {\n return ch;\n }\n ];\n\n mail = mail.replace(/./g, function (ch) {\n if (ch === '@') {\n // this *must* be encoded. I insist.\n ch = encode[Math.floor(Math.random() * 2)](ch);\n } else {\n var r = Math.random();\n // roughly 10% raw, 45% hex, 45% dec\n ch = (\n r > 0.9 ? encode[2](ch) : r > 0.45 ? encode[1](ch) : encode[0](ch)\n );\n }\n return ch;\n });\n\n return mail;\n};\n\n/**\n *\n * @param str\n * @param targetLength\n * @param padString\n * @returns {string}\n */\nshowdown.helper.padEnd = function padEnd (str, targetLength, padString) {\n 'use strict';\n /*jshint bitwise: false*/\n // eslint-disable-next-line space-infix-ops\n targetLength = targetLength>>0; //floor if number or convert non-number to 0;\n /*jshint bitwise: true*/\n padString = String(padString || ' ');\n if (str.length > targetLength) {\n return String(str);\n } else {\n targetLength = targetLength - str.length;\n if (targetLength > padString.length) {\n padString += padString.repeat(targetLength / padString.length); //append to original to ensure we are longer than needed\n }\n return String(str) + padString.slice(0,targetLength);\n }\n};\n\n/**\n * POLYFILLS\n */\n// use this instead of builtin is undefined for IE8 compatibility\nif (typeof (console) === 'undefined') {\n console = {\n warn: function (msg) {\n 'use strict';\n alert(msg);\n },\n log: function (msg) {\n 'use strict';\n alert(msg);\n },\n error: function (msg) {\n 'use strict';\n throw msg;\n }\n };\n}\n\n/**\n * Common regexes.\n * We declare some common regexes to improve performance\n */\nshowdown.helper.regexes = {\n asteriskDashAndColon: /([*_:~])/g\n};\n\n/**\n * EMOJIS LIST\n */\nshowdown.helper.emojis = {\n '+1':'\\ud83d\\udc4d',\n '-1':'\\ud83d\\udc4e',\n '100':'\\ud83d\\udcaf',\n '1234':'\\ud83d\\udd22',\n '1st_place_medal':'\\ud83e\\udd47',\n '2nd_place_medal':'\\ud83e\\udd48',\n '3rd_place_medal':'\\ud83e\\udd49',\n '8ball':'\\ud83c\\udfb1',\n 'a':'\\ud83c\\udd70\\ufe0f',\n 'ab':'\\ud83c\\udd8e',\n 'abc':'\\ud83d\\udd24',\n 'abcd':'\\ud83d\\udd21',\n 'accept':'\\ud83c\\ude51',\n 'aerial_tramway':'\\ud83d\\udea1',\n 'airplane':'\\u2708\\ufe0f',\n 'alarm_clock':'\\u23f0',\n 'alembic':'\\u2697\\ufe0f',\n 'alien':'\\ud83d\\udc7d',\n 'ambulance':'\\ud83d\\ude91',\n 'amphora':'\\ud83c\\udffa',\n 'anchor':'\\u2693\\ufe0f',\n 'angel':'\\ud83d\\udc7c',\n 'anger':'\\ud83d\\udca2',\n 'angry':'\\ud83d\\ude20',\n 'anguished':'\\ud83d\\ude27',\n 'ant':'\\ud83d\\udc1c',\n 'apple':'\\ud83c\\udf4e',\n 'aquarius':'\\u2652\\ufe0f',\n 'aries':'\\u2648\\ufe0f',\n 'arrow_backward':'\\u25c0\\ufe0f',\n 'arrow_double_down':'\\u23ec',\n 'arrow_double_up':'\\u23eb',\n 'arrow_down':'\\u2b07\\ufe0f',\n 'arrow_down_small':'\\ud83d\\udd3d',\n 'arrow_forward':'\\u25b6\\ufe0f',\n 'arrow_heading_down':'\\u2935\\ufe0f',\n 'arrow_heading_up':'\\u2934\\ufe0f',\n 'arrow_left':'\\u2b05\\ufe0f',\n 'arrow_lower_left':'\\u2199\\ufe0f',\n 'arrow_lower_right':'\\u2198\\ufe0f',\n 'arrow_right':'\\u27a1\\ufe0f',\n 'arrow_right_hook':'\\u21aa\\ufe0f',\n 'arrow_up':'\\u2b06\\ufe0f',\n 'arrow_up_down':'\\u2195\\ufe0f',\n 'arrow_up_small':'\\ud83d\\udd3c',\n 'arrow_upper_left':'\\u2196\\ufe0f',\n 'arrow_upper_right':'\\u2197\\ufe0f',\n 'arrows_clockwise':'\\ud83d\\udd03',\n 'arrows_counterclockwise':'\\ud83d\\udd04',\n 'art':'\\ud83c\\udfa8',\n 'articulated_lorry':'\\ud83d\\ude9b',\n 'artificial_satellite':'\\ud83d\\udef0',\n 'astonished':'\\ud83d\\ude32',\n 'athletic_shoe':'\\ud83d\\udc5f',\n 'atm':'\\ud83c\\udfe7',\n 'atom_symbol':'\\u269b\\ufe0f',\n 'avocado':'\\ud83e\\udd51',\n 'b':'\\ud83c\\udd71\\ufe0f',\n 'baby':'\\ud83d\\udc76',\n 'baby_bottle':'\\ud83c\\udf7c',\n 'baby_chick':'\\ud83d\\udc24',\n 'baby_symbol':'\\ud83d\\udebc',\n 'back':'\\ud83d\\udd19',\n 'bacon':'\\ud83e\\udd53',\n 'badminton':'\\ud83c\\udff8',\n 'baggage_claim':'\\ud83d\\udec4',\n 'baguette_bread':'\\ud83e\\udd56',\n 'balance_scale':'\\u2696\\ufe0f',\n 'balloon':'\\ud83c\\udf88',\n 'ballot_box':'\\ud83d\\uddf3',\n 'ballot_box_with_check':'\\u2611\\ufe0f',\n 'bamboo':'\\ud83c\\udf8d',\n 'banana':'\\ud83c\\udf4c',\n 'bangbang':'\\u203c\\ufe0f',\n 'bank':'\\ud83c\\udfe6',\n 'bar_chart':'\\ud83d\\udcca',\n 'barber':'\\ud83d\\udc88',\n 'baseball':'\\u26be\\ufe0f',\n 'basketball':'\\ud83c\\udfc0',\n 'basketball_man':'\\u26f9\\ufe0f',\n 'basketball_woman':'\\u26f9\\ufe0f‍\\u2640\\ufe0f',\n 'bat':'\\ud83e\\udd87',\n 'bath':'\\ud83d\\udec0',\n 'bathtub':'\\ud83d\\udec1',\n 'battery':'\\ud83d\\udd0b',\n 'beach_umbrella':'\\ud83c\\udfd6',\n 'bear':'\\ud83d\\udc3b',\n 'bed':'\\ud83d\\udecf',\n 'bee':'\\ud83d\\udc1d',\n 'beer':'\\ud83c\\udf7a',\n 'beers':'\\ud83c\\udf7b',\n 'beetle':'\\ud83d\\udc1e',\n 'beginner':'\\ud83d\\udd30',\n 'bell':'\\ud83d\\udd14',\n 'bellhop_bell':'\\ud83d\\udece',\n 'bento':'\\ud83c\\udf71',\n 'biking_man':'\\ud83d\\udeb4',\n 'bike':'\\ud83d\\udeb2',\n 'biking_woman':'\\ud83d\\udeb4‍\\u2640\\ufe0f',\n 'bikini':'\\ud83d\\udc59',\n 'biohazard':'\\u2623\\ufe0f',\n 'bird':'\\ud83d\\udc26',\n 'birthday':'\\ud83c\\udf82',\n 'black_circle':'\\u26ab\\ufe0f',\n 'black_flag':'\\ud83c\\udff4',\n 'black_heart':'\\ud83d\\udda4',\n 'black_joker':'\\ud83c\\udccf',\n 'black_large_square':'\\u2b1b\\ufe0f',\n 'black_medium_small_square':'\\u25fe\\ufe0f',\n 'black_medium_square':'\\u25fc\\ufe0f',\n 'black_nib':'\\u2712\\ufe0f',\n 'black_small_square':'\\u25aa\\ufe0f',\n 'black_square_button':'\\ud83d\\udd32',\n 'blonde_man':'\\ud83d\\udc71',\n 'blonde_woman':'\\ud83d\\udc71‍\\u2640\\ufe0f',\n 'blossom':'\\ud83c\\udf3c',\n 'blowfish':'\\ud83d\\udc21',\n 'blue_book':'\\ud83d\\udcd8',\n 'blue_car':'\\ud83d\\ude99',\n 'blue_heart':'\\ud83d\\udc99',\n 'blush':'\\ud83d\\ude0a',\n 'boar':'\\ud83d\\udc17',\n 'boat':'\\u26f5\\ufe0f',\n 'bomb':'\\ud83d\\udca3',\n 'book':'\\ud83d\\udcd6',\n 'bookmark':'\\ud83d\\udd16',\n 'bookmark_tabs':'\\ud83d\\udcd1',\n 'books':'\\ud83d\\udcda',\n 'boom':'\\ud83d\\udca5',\n 'boot':'\\ud83d\\udc62',\n 'bouquet':'\\ud83d\\udc90',\n 'bowing_man':'\\ud83d\\ude47',\n 'bow_and_arrow':'\\ud83c\\udff9',\n 'bowing_woman':'\\ud83d\\ude47‍\\u2640\\ufe0f',\n 'bowling':'\\ud83c\\udfb3',\n 'boxing_glove':'\\ud83e\\udd4a',\n 'boy':'\\ud83d\\udc66',\n 'bread':'\\ud83c\\udf5e',\n 'bride_with_veil':'\\ud83d\\udc70',\n 'bridge_at_night':'\\ud83c\\udf09',\n 'briefcase':'\\ud83d\\udcbc',\n 'broken_heart':'\\ud83d\\udc94',\n 'bug':'\\ud83d\\udc1b',\n 'building_construction':'\\ud83c\\udfd7',\n 'bulb':'\\ud83d\\udca1',\n 'bullettrain_front':'\\ud83d\\ude85',\n 'bullettrain_side':'\\ud83d\\ude84',\n 'burrito':'\\ud83c\\udf2f',\n 'bus':'\\ud83d\\ude8c',\n 'business_suit_levitating':'\\ud83d\\udd74',\n 'busstop':'\\ud83d\\ude8f',\n 'bust_in_silhouette':'\\ud83d\\udc64',\n 'busts_in_silhouette':'\\ud83d\\udc65',\n 'butterfly':'\\ud83e\\udd8b',\n 'cactus':'\\ud83c\\udf35',\n 'cake':'\\ud83c\\udf70',\n 'calendar':'\\ud83d\\udcc6',\n 'call_me_hand':'\\ud83e\\udd19',\n 'calling':'\\ud83d\\udcf2',\n 'camel':'\\ud83d\\udc2b',\n 'camera':'\\ud83d\\udcf7',\n 'camera_flash':'\\ud83d\\udcf8',\n 'camping':'\\ud83c\\udfd5',\n 'cancer':'\\u264b\\ufe0f',\n 'candle':'\\ud83d\\udd6f',\n 'candy':'\\ud83c\\udf6c',\n 'canoe':'\\ud83d\\udef6',\n 'capital_abcd':'\\ud83d\\udd20',\n 'capricorn':'\\u2651\\ufe0f',\n 'car':'\\ud83d\\ude97',\n 'card_file_box':'\\ud83d\\uddc3',\n 'card_index':'\\ud83d\\udcc7',\n 'card_index_dividers':'\\ud83d\\uddc2',\n 'carousel_horse':'\\ud83c\\udfa0',\n 'carrot':'\\ud83e\\udd55',\n 'cat':'\\ud83d\\udc31',\n 'cat2':'\\ud83d\\udc08',\n 'cd':'\\ud83d\\udcbf',\n 'chains':'\\u26d3',\n 'champagne':'\\ud83c\\udf7e',\n 'chart':'\\ud83d\\udcb9',\n 'chart_with_downwards_trend':'\\ud83d\\udcc9',\n 'chart_with_upwards_trend':'\\ud83d\\udcc8',\n 'checkered_flag':'\\ud83c\\udfc1',\n 'cheese':'\\ud83e\\uddc0',\n 'cherries':'\\ud83c\\udf52',\n 'cherry_blossom':'\\ud83c\\udf38',\n 'chestnut':'\\ud83c\\udf30',\n 'chicken':'\\ud83d\\udc14',\n 'children_crossing':'\\ud83d\\udeb8',\n 'chipmunk':'\\ud83d\\udc3f',\n 'chocolate_bar':'\\ud83c\\udf6b',\n 'christmas_tree':'\\ud83c\\udf84',\n 'church':'\\u26ea\\ufe0f',\n 'cinema':'\\ud83c\\udfa6',\n 'circus_tent':'\\ud83c\\udfaa',\n 'city_sunrise':'\\ud83c\\udf07',\n 'city_sunset':'\\ud83c\\udf06',\n 'cityscape':'\\ud83c\\udfd9',\n 'cl':'\\ud83c\\udd91',\n 'clamp':'\\ud83d\\udddc',\n 'clap':'\\ud83d\\udc4f',\n 'clapper':'\\ud83c\\udfac',\n 'classical_building':'\\ud83c\\udfdb',\n 'clinking_glasses':'\\ud83e\\udd42',\n 'clipboard':'\\ud83d\\udccb',\n 'clock1':'\\ud83d\\udd50',\n 'clock10':'\\ud83d\\udd59',\n 'clock1030':'\\ud83d\\udd65',\n 'clock11':'\\ud83d\\udd5a',\n 'clock1130':'\\ud83d\\udd66',\n 'clock12':'\\ud83d\\udd5b',\n 'clock1230':'\\ud83d\\udd67',\n 'clock130':'\\ud83d\\udd5c',\n 'clock2':'\\ud83d\\udd51',\n 'clock230':'\\ud83d\\udd5d',\n 'clock3':'\\ud83d\\udd52',\n 'clock330':'\\ud83d\\udd5e',\n 'clock4':'\\ud83d\\udd53',\n 'clock430':'\\ud83d\\udd5f',\n 'clock5':'\\ud83d\\udd54',\n 'clock530':'\\ud83d\\udd60',\n 'clock6':'\\ud83d\\udd55',\n 'clock630':'\\ud83d\\udd61',\n 'clock7':'\\ud83d\\udd56',\n 'clock730':'\\ud83d\\udd62',\n 'clock8':'\\ud83d\\udd57',\n 'clock830':'\\ud83d\\udd63',\n 'clock9':'\\ud83d\\udd58',\n 'clock930':'\\ud83d\\udd64',\n 'closed_book':'\\ud83d\\udcd5',\n 'closed_lock_with_key':'\\ud83d\\udd10',\n 'closed_umbrella':'\\ud83c\\udf02',\n 'cloud':'\\u2601\\ufe0f',\n 'cloud_with_lightning':'\\ud83c\\udf29',\n 'cloud_with_lightning_and_rain':'\\u26c8',\n 'cloud_with_rain':'\\ud83c\\udf27',\n 'cloud_with_snow':'\\ud83c\\udf28',\n 'clown_face':'\\ud83e\\udd21',\n 'clubs':'\\u2663\\ufe0f',\n 'cocktail':'\\ud83c\\udf78',\n 'coffee':'\\u2615\\ufe0f',\n 'coffin':'\\u26b0\\ufe0f',\n 'cold_sweat':'\\ud83d\\ude30',\n 'comet':'\\u2604\\ufe0f',\n 'computer':'\\ud83d\\udcbb',\n 'computer_mouse':'\\ud83d\\uddb1',\n 'confetti_ball':'\\ud83c\\udf8a',\n 'confounded':'\\ud83d\\ude16',\n 'confused':'\\ud83d\\ude15',\n 'congratulations':'\\u3297\\ufe0f',\n 'construction':'\\ud83d\\udea7',\n 'construction_worker_man':'\\ud83d\\udc77',\n 'construction_worker_woman':'\\ud83d\\udc77‍\\u2640\\ufe0f',\n 'control_knobs':'\\ud83c\\udf9b',\n 'convenience_store':'\\ud83c\\udfea',\n 'cookie':'\\ud83c\\udf6a',\n 'cool':'\\ud83c\\udd92',\n 'policeman':'\\ud83d\\udc6e',\n 'copyright':'\\u00a9\\ufe0f',\n 'corn':'\\ud83c\\udf3d',\n 'couch_and_lamp':'\\ud83d\\udecb',\n 'couple':'\\ud83d\\udc6b',\n 'couple_with_heart_woman_man':'\\ud83d\\udc91',\n 'couple_with_heart_man_man':'\\ud83d\\udc68‍\\u2764\\ufe0f‍\\ud83d\\udc68',\n 'couple_with_heart_woman_woman':'\\ud83d\\udc69‍\\u2764\\ufe0f‍\\ud83d\\udc69',\n 'couplekiss_man_man':'\\ud83d\\udc68‍\\u2764\\ufe0f‍\\ud83d\\udc8b‍\\ud83d\\udc68',\n 'couplekiss_man_woman':'\\ud83d\\udc8f',\n 'couplekiss_woman_woman':'\\ud83d\\udc69‍\\u2764\\ufe0f‍\\ud83d\\udc8b‍\\ud83d\\udc69',\n 'cow':'\\ud83d\\udc2e',\n 'cow2':'\\ud83d\\udc04',\n 'cowboy_hat_face':'\\ud83e\\udd20',\n 'crab':'\\ud83e\\udd80',\n 'crayon':'\\ud83d\\udd8d',\n 'credit_card':'\\ud83d\\udcb3',\n 'crescent_moon':'\\ud83c\\udf19',\n 'cricket':'\\ud83c\\udfcf',\n 'crocodile':'\\ud83d\\udc0a',\n 'croissant':'\\ud83e\\udd50',\n 'crossed_fingers':'\\ud83e\\udd1e',\n 'crossed_flags':'\\ud83c\\udf8c',\n 'crossed_swords':'\\u2694\\ufe0f',\n 'crown':'\\ud83d\\udc51',\n 'cry':'\\ud83d\\ude22',\n 'crying_cat_face':'\\ud83d\\ude3f',\n 'crystal_ball':'\\ud83d\\udd2e',\n 'cucumber':'\\ud83e\\udd52',\n 'cupid':'\\ud83d\\udc98',\n 'curly_loop':'\\u27b0',\n 'currency_exchange':'\\ud83d\\udcb1',\n 'curry':'\\ud83c\\udf5b',\n 'custard':'\\ud83c\\udf6e',\n 'customs':'\\ud83d\\udec3',\n 'cyclone':'\\ud83c\\udf00',\n 'dagger':'\\ud83d\\udde1',\n 'dancer':'\\ud83d\\udc83',\n 'dancing_women':'\\ud83d\\udc6f',\n 'dancing_men':'\\ud83d\\udc6f‍\\u2642\\ufe0f',\n 'dango':'\\ud83c\\udf61',\n 'dark_sunglasses':'\\ud83d\\udd76',\n 'dart':'\\ud83c\\udfaf',\n 'dash':'\\ud83d\\udca8',\n 'date':'\\ud83d\\udcc5',\n 'deciduous_tree':'\\ud83c\\udf33',\n 'deer':'\\ud83e\\udd8c',\n 'department_store':'\\ud83c\\udfec',\n 'derelict_house':'\\ud83c\\udfda',\n 'desert':'\\ud83c\\udfdc',\n 'desert_island':'\\ud83c\\udfdd',\n 'desktop_computer':'\\ud83d\\udda5',\n 'male_detective':'\\ud83d\\udd75\\ufe0f',\n 'diamond_shape_with_a_dot_inside':'\\ud83d\\udca0',\n 'diamonds':'\\u2666\\ufe0f',\n 'disappointed':'\\ud83d\\ude1e',\n 'disappointed_relieved':'\\ud83d\\ude25',\n 'dizzy':'\\ud83d\\udcab',\n 'dizzy_face':'\\ud83d\\ude35',\n 'do_not_litter':'\\ud83d\\udeaf',\n 'dog':'\\ud83d\\udc36',\n 'dog2':'\\ud83d\\udc15',\n 'dollar':'\\ud83d\\udcb5',\n 'dolls':'\\ud83c\\udf8e',\n 'dolphin':'\\ud83d\\udc2c',\n 'door':'\\ud83d\\udeaa',\n 'doughnut':'\\ud83c\\udf69',\n 'dove':'\\ud83d\\udd4a',\n 'dragon':'\\ud83d\\udc09',\n 'dragon_face':'\\ud83d\\udc32',\n 'dress':'\\ud83d\\udc57',\n 'dromedary_camel':'\\ud83d\\udc2a',\n 'drooling_face':'\\ud83e\\udd24',\n 'droplet':'\\ud83d\\udca7',\n 'drum':'\\ud83e\\udd41',\n 'duck':'\\ud83e\\udd86',\n 'dvd':'\\ud83d\\udcc0',\n 'e-mail':'\\ud83d\\udce7',\n 'eagle':'\\ud83e\\udd85',\n 'ear':'\\ud83d\\udc42',\n 'ear_of_rice':'\\ud83c\\udf3e',\n 'earth_africa':'\\ud83c\\udf0d',\n 'earth_americas':'\\ud83c\\udf0e',\n 'earth_asia':'\\ud83c\\udf0f',\n 'egg':'\\ud83e\\udd5a',\n 'eggplant':'\\ud83c\\udf46',\n 'eight_pointed_black_star':'\\u2734\\ufe0f',\n 'eight_spoked_asterisk':'\\u2733\\ufe0f',\n 'electric_plug':'\\ud83d\\udd0c',\n 'elephant':'\\ud83d\\udc18',\n 'email':'\\u2709\\ufe0f',\n 'end':'\\ud83d\\udd1a',\n 'envelope_with_arrow':'\\ud83d\\udce9',\n 'euro':'\\ud83d\\udcb6',\n 'european_castle':'\\ud83c\\udff0',\n 'european_post_office':'\\ud83c\\udfe4',\n 'evergreen_tree':'\\ud83c\\udf32',\n 'exclamation':'\\u2757\\ufe0f',\n 'expressionless':'\\ud83d\\ude11',\n 'eye':'\\ud83d\\udc41',\n 'eye_speech_bubble':'\\ud83d\\udc41‍\\ud83d\\udde8',\n 'eyeglasses':'\\ud83d\\udc53',\n 'eyes':'\\ud83d\\udc40',\n 'face_with_head_bandage':'\\ud83e\\udd15',\n 'face_with_thermometer':'\\ud83e\\udd12',\n 'fist_oncoming':'\\ud83d\\udc4a',\n 'factory':'\\ud83c\\udfed',\n 'fallen_leaf':'\\ud83c\\udf42',\n 'family_man_woman_boy':'\\ud83d\\udc6a',\n 'family_man_boy':'\\ud83d\\udc68‍\\ud83d\\udc66',\n 'family_man_boy_boy':'\\ud83d\\udc68‍\\ud83d\\udc66‍\\ud83d\\udc66',\n 'family_man_girl':'\\ud83d\\udc68‍\\ud83d\\udc67',\n 'family_man_girl_boy':'\\ud83d\\udc68‍\\ud83d\\udc67‍\\ud83d\\udc66',\n 'family_man_girl_girl':'\\ud83d\\udc68‍\\ud83d\\udc67‍\\ud83d\\udc67',\n 'family_man_man_boy':'\\ud83d\\udc68‍\\ud83d\\udc68‍\\ud83d\\udc66',\n 'family_man_man_boy_boy':'\\ud83d\\udc68‍\\ud83d\\udc68‍\\ud83d\\udc66‍\\ud83d\\udc66',\n 'family_man_man_girl':'\\ud83d\\udc68‍\\ud83d\\udc68‍\\ud83d\\udc67',\n 'family_man_man_girl_boy':'\\ud83d\\udc68‍\\ud83d\\udc68‍\\ud83d\\udc67‍\\ud83d\\udc66',\n 'family_man_man_girl_girl':'\\ud83d\\udc68‍\\ud83d\\udc68‍\\ud83d\\udc67‍\\ud83d\\udc67',\n 'family_man_woman_boy_boy':'\\ud83d\\udc68‍\\ud83d\\udc69‍\\ud83d\\udc66‍\\ud83d\\udc66',\n 'family_man_woman_girl':'\\ud83d\\udc68‍\\ud83d\\udc69‍\\ud83d\\udc67',\n 'family_man_woman_girl_boy':'\\ud83d\\udc68‍\\ud83d\\udc69‍\\ud83d\\udc67‍\\ud83d\\udc66',\n 'family_man_woman_girl_girl':'\\ud83d\\udc68‍\\ud83d\\udc69‍\\ud83d\\udc67‍\\ud83d\\udc67',\n 'family_woman_boy':'\\ud83d\\udc69‍\\ud83d\\udc66',\n 'family_woman_boy_boy':'\\ud83d\\udc69‍\\ud83d\\udc66‍\\ud83d\\udc66',\n 'family_woman_girl':'\\ud83d\\udc69‍\\ud83d\\udc67',\n 'family_woman_girl_boy':'\\ud83d\\udc69‍\\ud83d\\udc67‍\\ud83d\\udc66',\n 'family_woman_girl_girl':'\\ud83d\\udc69‍\\ud83d\\udc67‍\\ud83d\\udc67',\n 'family_woman_woman_boy':'\\ud83d\\udc69‍\\ud83d\\udc69‍\\ud83d\\udc66',\n 'family_woman_woman_boy_boy':'\\ud83d\\udc69‍\\ud83d\\udc69‍\\ud83d\\udc66‍\\ud83d\\udc66',\n 'family_woman_woman_girl':'\\ud83d\\udc69‍\\ud83d\\udc69‍\\ud83d\\udc67',\n 'family_woman_woman_girl_boy':'\\ud83d\\udc69‍\\ud83d\\udc69‍\\ud83d\\udc67‍\\ud83d\\udc66',\n 'family_woman_woman_girl_girl':'\\ud83d\\udc69‍\\ud83d\\udc69‍\\ud83d\\udc67‍\\ud83d\\udc67',\n 'fast_forward':'\\u23e9',\n 'fax':'\\ud83d\\udce0',\n 'fearful':'\\ud83d\\ude28',\n 'feet':'\\ud83d\\udc3e',\n 'female_detective':'\\ud83d\\udd75\\ufe0f‍\\u2640\\ufe0f',\n 'ferris_wheel':'\\ud83c\\udfa1',\n 'ferry':'\\u26f4',\n 'field_hockey':'\\ud83c\\udfd1',\n 'file_cabinet':'\\ud83d\\uddc4',\n 'file_folder':'\\ud83d\\udcc1',\n 'film_projector':'\\ud83d\\udcfd',\n 'film_strip':'\\ud83c\\udf9e',\n 'fire':'\\ud83d\\udd25',\n 'fire_engine':'\\ud83d\\ude92',\n 'fireworks':'\\ud83c\\udf86',\n 'first_quarter_moon':'\\ud83c\\udf13',\n 'first_quarter_moon_with_face':'\\ud83c\\udf1b',\n 'fish':'\\ud83d\\udc1f',\n 'fish_cake':'\\ud83c\\udf65',\n 'fishing_pole_and_fish':'\\ud83c\\udfa3',\n 'fist_raised':'\\u270a',\n 'fist_left':'\\ud83e\\udd1b',\n 'fist_right':'\\ud83e\\udd1c',\n 'flags':'\\ud83c\\udf8f',\n 'flashlight':'\\ud83d\\udd26',\n 'fleur_de_lis':'\\u269c\\ufe0f',\n 'flight_arrival':'\\ud83d\\udeec',\n 'flight_departure':'\\ud83d\\udeeb',\n 'floppy_disk':'\\ud83d\\udcbe',\n 'flower_playing_cards':'\\ud83c\\udfb4',\n 'flushed':'\\ud83d\\ude33',\n 'fog':'\\ud83c\\udf2b',\n 'foggy':'\\ud83c\\udf01',\n 'football':'\\ud83c\\udfc8',\n 'footprints':'\\ud83d\\udc63',\n 'fork_and_knife':'\\ud83c\\udf74',\n 'fountain':'\\u26f2\\ufe0f',\n 'fountain_pen':'\\ud83d\\udd8b',\n 'four_leaf_clover':'\\ud83c\\udf40',\n 'fox_face':'\\ud83e\\udd8a',\n 'framed_picture':'\\ud83d\\uddbc',\n 'free':'\\ud83c\\udd93',\n 'fried_egg':'\\ud83c\\udf73',\n 'fried_shrimp':'\\ud83c\\udf64',\n 'fries':'\\ud83c\\udf5f',\n 'frog':'\\ud83d\\udc38',\n 'frowning':'\\ud83d\\ude26',\n 'frowning_face':'\\u2639\\ufe0f',\n 'frowning_man':'\\ud83d\\ude4d‍\\u2642\\ufe0f',\n 'frowning_woman':'\\ud83d\\ude4d',\n 'middle_finger':'\\ud83d\\udd95',\n 'fuelpump':'\\u26fd\\ufe0f',\n 'full_moon':'\\ud83c\\udf15',\n 'full_moon_with_face':'\\ud83c\\udf1d',\n 'funeral_urn':'\\u26b1\\ufe0f',\n 'game_die':'\\ud83c\\udfb2',\n 'gear':'\\u2699\\ufe0f',\n 'gem':'\\ud83d\\udc8e',\n 'gemini':'\\u264a\\ufe0f',\n 'ghost':'\\ud83d\\udc7b',\n 'gift':'\\ud83c\\udf81',\n 'gift_heart':'\\ud83d\\udc9d',\n 'girl':'\\ud83d\\udc67',\n 'globe_with_meridians':'\\ud83c\\udf10',\n 'goal_net':'\\ud83e\\udd45',\n 'goat':'\\ud83d\\udc10',\n 'golf':'\\u26f3\\ufe0f',\n 'golfing_man':'\\ud83c\\udfcc\\ufe0f',\n 'golfing_woman':'\\ud83c\\udfcc\\ufe0f‍\\u2640\\ufe0f',\n 'gorilla':'\\ud83e\\udd8d',\n 'grapes':'\\ud83c\\udf47',\n 'green_apple':'\\ud83c\\udf4f',\n 'green_book':'\\ud83d\\udcd7',\n 'green_heart':'\\ud83d\\udc9a',\n 'green_salad':'\\ud83e\\udd57',\n 'grey_exclamation':'\\u2755',\n 'grey_question':'\\u2754',\n 'grimacing':'\\ud83d\\ude2c',\n 'grin':'\\ud83d\\ude01',\n 'grinning':'\\ud83d\\ude00',\n 'guardsman':'\\ud83d\\udc82',\n 'guardswoman':'\\ud83d\\udc82‍\\u2640\\ufe0f',\n 'guitar':'\\ud83c\\udfb8',\n 'gun':'\\ud83d\\udd2b',\n 'haircut_woman':'\\ud83d\\udc87',\n 'haircut_man':'\\ud83d\\udc87‍\\u2642\\ufe0f',\n 'hamburger':'\\ud83c\\udf54',\n 'hammer':'\\ud83d\\udd28',\n 'hammer_and_pick':'\\u2692',\n 'hammer_and_wrench':'\\ud83d\\udee0',\n 'hamster':'\\ud83d\\udc39',\n 'hand':'\\u270b',\n 'handbag':'\\ud83d\\udc5c',\n 'handshake':'\\ud83e\\udd1d',\n 'hankey':'\\ud83d\\udca9',\n 'hatched_chick':'\\ud83d\\udc25',\n 'hatching_chick':'\\ud83d\\udc23',\n 'headphones':'\\ud83c\\udfa7',\n 'hear_no_evil':'\\ud83d\\ude49',\n 'heart':'\\u2764\\ufe0f',\n 'heart_decoration':'\\ud83d\\udc9f',\n 'heart_eyes':'\\ud83d\\ude0d',\n 'heart_eyes_cat':'\\ud83d\\ude3b',\n 'heartbeat':'\\ud83d\\udc93',\n 'heartpulse':'\\ud83d\\udc97',\n 'hearts':'\\u2665\\ufe0f',\n 'heavy_check_mark':'\\u2714\\ufe0f',\n 'heavy_division_sign':'\\u2797',\n 'heavy_dollar_sign':'\\ud83d\\udcb2',\n 'heavy_heart_exclamation':'\\u2763\\ufe0f',\n 'heavy_minus_sign':'\\u2796',\n 'heavy_multiplication_x':'\\u2716\\ufe0f',\n 'heavy_plus_sign':'\\u2795',\n 'helicopter':'\\ud83d\\ude81',\n 'herb':'\\ud83c\\udf3f',\n 'hibiscus':'\\ud83c\\udf3a',\n 'high_brightness':'\\ud83d\\udd06',\n 'high_heel':'\\ud83d\\udc60',\n 'hocho':'\\ud83d\\udd2a',\n 'hole':'\\ud83d\\udd73',\n 'honey_pot':'\\ud83c\\udf6f',\n 'horse':'\\ud83d\\udc34',\n 'horse_racing':'\\ud83c\\udfc7',\n 'hospital':'\\ud83c\\udfe5',\n 'hot_pepper':'\\ud83c\\udf36',\n 'hotdog':'\\ud83c\\udf2d',\n 'hotel':'\\ud83c\\udfe8',\n 'hotsprings':'\\u2668\\ufe0f',\n 'hourglass':'\\u231b\\ufe0f',\n 'hourglass_flowing_sand':'\\u23f3',\n 'house':'\\ud83c\\udfe0',\n 'house_with_garden':'\\ud83c\\udfe1',\n 'houses':'\\ud83c\\udfd8',\n 'hugs':'\\ud83e\\udd17',\n 'hushed':'\\ud83d\\ude2f',\n 'ice_cream':'\\ud83c\\udf68',\n 'ice_hockey':'\\ud83c\\udfd2',\n 'ice_skate':'\\u26f8',\n 'icecream':'\\ud83c\\udf66',\n 'id':'\\ud83c\\udd94',\n 'ideograph_advantage':'\\ud83c\\ude50',\n 'imp':'\\ud83d\\udc7f',\n 'inbox_tray':'\\ud83d\\udce5',\n 'incoming_envelope':'\\ud83d\\udce8',\n 'tipping_hand_woman':'\\ud83d\\udc81',\n 'information_source':'\\u2139\\ufe0f',\n 'innocent':'\\ud83d\\ude07',\n 'interrobang':'\\u2049\\ufe0f',\n 'iphone':'\\ud83d\\udcf1',\n 'izakaya_lantern':'\\ud83c\\udfee',\n 'jack_o_lantern':'\\ud83c\\udf83',\n 'japan':'\\ud83d\\uddfe',\n 'japanese_castle':'\\ud83c\\udfef',\n 'japanese_goblin':'\\ud83d\\udc7a',\n 'japanese_ogre':'\\ud83d\\udc79',\n 'jeans':'\\ud83d\\udc56',\n 'joy':'\\ud83d\\ude02',\n 'joy_cat':'\\ud83d\\ude39',\n 'joystick':'\\ud83d\\udd79',\n 'kaaba':'\\ud83d\\udd4b',\n 'key':'\\ud83d\\udd11',\n 'keyboard':'\\u2328\\ufe0f',\n 'keycap_ten':'\\ud83d\\udd1f',\n 'kick_scooter':'\\ud83d\\udef4',\n 'kimono':'\\ud83d\\udc58',\n 'kiss':'\\ud83d\\udc8b',\n 'kissing':'\\ud83d\\ude17',\n 'kissing_cat':'\\ud83d\\ude3d',\n 'kissing_closed_eyes':'\\ud83d\\ude1a',\n 'kissing_heart':'\\ud83d\\ude18',\n 'kissing_smiling_eyes':'\\ud83d\\ude19',\n 'kiwi_fruit':'\\ud83e\\udd5d',\n 'koala':'\\ud83d\\udc28',\n 'koko':'\\ud83c\\ude01',\n 'label':'\\ud83c\\udff7',\n 'large_blue_circle':'\\ud83d\\udd35',\n 'large_blue_diamond':'\\ud83d\\udd37',\n 'large_orange_diamond':'\\ud83d\\udd36',\n 'last_quarter_moon':'\\ud83c\\udf17',\n 'last_quarter_moon_with_face':'\\ud83c\\udf1c',\n 'latin_cross':'\\u271d\\ufe0f',\n 'laughing':'\\ud83d\\ude06',\n 'leaves':'\\ud83c\\udf43',\n 'ledger':'\\ud83d\\udcd2',\n 'left_luggage':'\\ud83d\\udec5',\n 'left_right_arrow':'\\u2194\\ufe0f',\n 'leftwards_arrow_with_hook':'\\u21a9\\ufe0f',\n 'lemon':'\\ud83c\\udf4b',\n 'leo':'\\u264c\\ufe0f',\n 'leopard':'\\ud83d\\udc06',\n 'level_slider':'\\ud83c\\udf9a',\n 'libra':'\\u264e\\ufe0f',\n 'light_rail':'\\ud83d\\ude88',\n 'link':'\\ud83d\\udd17',\n 'lion':'\\ud83e\\udd81',\n 'lips':'\\ud83d\\udc44',\n 'lipstick':'\\ud83d\\udc84',\n 'lizard':'\\ud83e\\udd8e',\n 'lock':'\\ud83d\\udd12',\n 'lock_with_ink_pen':'\\ud83d\\udd0f',\n 'lollipop':'\\ud83c\\udf6d',\n 'loop':'\\u27bf',\n 'loud_sound':'\\ud83d\\udd0a',\n 'loudspeaker':'\\ud83d\\udce2',\n 'love_hotel':'\\ud83c\\udfe9',\n 'love_letter':'\\ud83d\\udc8c',\n 'low_brightness':'\\ud83d\\udd05',\n 'lying_face':'\\ud83e\\udd25',\n 'm':'\\u24c2\\ufe0f',\n 'mag':'\\ud83d\\udd0d',\n 'mag_right':'\\ud83d\\udd0e',\n 'mahjong':'\\ud83c\\udc04\\ufe0f',\n 'mailbox':'\\ud83d\\udceb',\n 'mailbox_closed':'\\ud83d\\udcea',\n 'mailbox_with_mail':'\\ud83d\\udcec',\n 'mailbox_with_no_mail':'\\ud83d\\udced',\n 'man':'\\ud83d\\udc68',\n 'man_artist':'\\ud83d\\udc68‍\\ud83c\\udfa8',\n 'man_astronaut':'\\ud83d\\udc68‍\\ud83d\\ude80',\n 'man_cartwheeling':'\\ud83e\\udd38‍\\u2642\\ufe0f',\n 'man_cook':'\\ud83d\\udc68‍\\ud83c\\udf73',\n 'man_dancing':'\\ud83d\\udd7a',\n 'man_facepalming':'\\ud83e\\udd26‍\\u2642\\ufe0f',\n 'man_factory_worker':'\\ud83d\\udc68‍\\ud83c\\udfed',\n 'man_farmer':'\\ud83d\\udc68‍\\ud83c\\udf3e',\n 'man_firefighter':'\\ud83d\\udc68‍\\ud83d\\ude92',\n 'man_health_worker':'\\ud83d\\udc68‍\\u2695\\ufe0f',\n 'man_in_tuxedo':'\\ud83e\\udd35',\n 'man_judge':'\\ud83d\\udc68‍\\u2696\\ufe0f',\n 'man_juggling':'\\ud83e\\udd39‍\\u2642\\ufe0f',\n 'man_mechanic':'\\ud83d\\udc68‍\\ud83d\\udd27',\n 'man_office_worker':'\\ud83d\\udc68‍\\ud83d\\udcbc',\n 'man_pilot':'\\ud83d\\udc68‍\\u2708\\ufe0f',\n 'man_playing_handball':'\\ud83e\\udd3e‍\\u2642\\ufe0f',\n 'man_playing_water_polo':'\\ud83e\\udd3d‍\\u2642\\ufe0f',\n 'man_scientist':'\\ud83d\\udc68‍\\ud83d\\udd2c',\n 'man_shrugging':'\\ud83e\\udd37‍\\u2642\\ufe0f',\n 'man_singer':'\\ud83d\\udc68‍\\ud83c\\udfa4',\n 'man_student':'\\ud83d\\udc68‍\\ud83c\\udf93',\n 'man_teacher':'\\ud83d\\udc68‍\\ud83c\\udfeb',\n 'man_technologist':'\\ud83d\\udc68‍\\ud83d\\udcbb',\n 'man_with_gua_pi_mao':'\\ud83d\\udc72',\n 'man_with_turban':'\\ud83d\\udc73',\n 'tangerine':'\\ud83c\\udf4a',\n 'mans_shoe':'\\ud83d\\udc5e',\n 'mantelpiece_clock':'\\ud83d\\udd70',\n 'maple_leaf':'\\ud83c\\udf41',\n 'martial_arts_uniform':'\\ud83e\\udd4b',\n 'mask':'\\ud83d\\ude37',\n 'massage_woman':'\\ud83d\\udc86',\n 'massage_man':'\\ud83d\\udc86‍\\u2642\\ufe0f',\n 'meat_on_bone':'\\ud83c\\udf56',\n 'medal_military':'\\ud83c\\udf96',\n 'medal_sports':'\\ud83c\\udfc5',\n 'mega':'\\ud83d\\udce3',\n 'melon':'\\ud83c\\udf48',\n 'memo':'\\ud83d\\udcdd',\n 'men_wrestling':'\\ud83e\\udd3c‍\\u2642\\ufe0f',\n 'menorah':'\\ud83d\\udd4e',\n 'mens':'\\ud83d\\udeb9',\n 'metal':'\\ud83e\\udd18',\n 'metro':'\\ud83d\\ude87',\n 'microphone':'\\ud83c\\udfa4',\n 'microscope':'\\ud83d\\udd2c',\n 'milk_glass':'\\ud83e\\udd5b',\n 'milky_way':'\\ud83c\\udf0c',\n 'minibus':'\\ud83d\\ude90',\n 'minidisc':'\\ud83d\\udcbd',\n 'mobile_phone_off':'\\ud83d\\udcf4',\n 'money_mouth_face':'\\ud83e\\udd11',\n 'money_with_wings':'\\ud83d\\udcb8',\n 'moneybag':'\\ud83d\\udcb0',\n 'monkey':'\\ud83d\\udc12',\n 'monkey_face':'\\ud83d\\udc35',\n 'monorail':'\\ud83d\\ude9d',\n 'moon':'\\ud83c\\udf14',\n 'mortar_board':'\\ud83c\\udf93',\n 'mosque':'\\ud83d\\udd4c',\n 'motor_boat':'\\ud83d\\udee5',\n 'motor_scooter':'\\ud83d\\udef5',\n 'motorcycle':'\\ud83c\\udfcd',\n 'motorway':'\\ud83d\\udee3',\n 'mount_fuji':'\\ud83d\\uddfb',\n 'mountain':'\\u26f0',\n 'mountain_biking_man':'\\ud83d\\udeb5',\n 'mountain_biking_woman':'\\ud83d\\udeb5‍\\u2640\\ufe0f',\n 'mountain_cableway':'\\ud83d\\udea0',\n 'mountain_railway':'\\ud83d\\ude9e',\n 'mountain_snow':'\\ud83c\\udfd4',\n 'mouse':'\\ud83d\\udc2d',\n 'mouse2':'\\ud83d\\udc01',\n 'movie_camera':'\\ud83c\\udfa5',\n 'moyai':'\\ud83d\\uddff',\n 'mrs_claus':'\\ud83e\\udd36',\n 'muscle':'\\ud83d\\udcaa',\n 'mushroom':'\\ud83c\\udf44',\n 'musical_keyboard':'\\ud83c\\udfb9',\n 'musical_note':'\\ud83c\\udfb5',\n 'musical_score':'\\ud83c\\udfbc',\n 'mute':'\\ud83d\\udd07',\n 'nail_care':'\\ud83d\\udc85',\n 'name_badge':'\\ud83d\\udcdb',\n 'national_park':'\\ud83c\\udfde',\n 'nauseated_face':'\\ud83e\\udd22',\n 'necktie':'\\ud83d\\udc54',\n 'negative_squared_cross_mark':'\\u274e',\n 'nerd_face':'\\ud83e\\udd13',\n 'neutral_face':'\\ud83d\\ude10',\n 'new':'\\ud83c\\udd95',\n 'new_moon':'\\ud83c\\udf11',\n 'new_moon_with_face':'\\ud83c\\udf1a',\n 'newspaper':'\\ud83d\\udcf0',\n 'newspaper_roll':'\\ud83d\\uddde',\n 'next_track_button':'\\u23ed',\n 'ng':'\\ud83c\\udd96',\n 'no_good_man':'\\ud83d\\ude45‍\\u2642\\ufe0f',\n 'no_good_woman':'\\ud83d\\ude45',\n 'night_with_stars':'\\ud83c\\udf03',\n 'no_bell':'\\ud83d\\udd15',\n 'no_bicycles':'\\ud83d\\udeb3',\n 'no_entry':'\\u26d4\\ufe0f',\n 'no_entry_sign':'\\ud83d\\udeab',\n 'no_mobile_phones':'\\ud83d\\udcf5',\n 'no_mouth':'\\ud83d\\ude36',\n 'no_pedestrians':'\\ud83d\\udeb7',\n 'no_smoking':'\\ud83d\\udead',\n 'non-potable_water':'\\ud83d\\udeb1',\n 'nose':'\\ud83d\\udc43',\n 'notebook':'\\ud83d\\udcd3',\n 'notebook_with_decorative_cover':'\\ud83d\\udcd4',\n 'notes':'\\ud83c\\udfb6',\n 'nut_and_bolt':'\\ud83d\\udd29',\n 'o':'\\u2b55\\ufe0f',\n 'o2':'\\ud83c\\udd7e\\ufe0f',\n 'ocean':'\\ud83c\\udf0a',\n 'octopus':'\\ud83d\\udc19',\n 'oden':'\\ud83c\\udf62',\n 'office':'\\ud83c\\udfe2',\n 'oil_drum':'\\ud83d\\udee2',\n 'ok':'\\ud83c\\udd97',\n 'ok_hand':'\\ud83d\\udc4c',\n 'ok_man':'\\ud83d\\ude46‍\\u2642\\ufe0f',\n 'ok_woman':'\\ud83d\\ude46',\n 'old_key':'\\ud83d\\udddd',\n 'older_man':'\\ud83d\\udc74',\n 'older_woman':'\\ud83d\\udc75',\n 'om':'\\ud83d\\udd49',\n 'on':'\\ud83d\\udd1b',\n 'oncoming_automobile':'\\ud83d\\ude98',\n 'oncoming_bus':'\\ud83d\\ude8d',\n 'oncoming_police_car':'\\ud83d\\ude94',\n 'oncoming_taxi':'\\ud83d\\ude96',\n 'open_file_folder':'\\ud83d\\udcc2',\n 'open_hands':'\\ud83d\\udc50',\n 'open_mouth':'\\ud83d\\ude2e',\n 'open_umbrella':'\\u2602\\ufe0f',\n 'ophiuchus':'\\u26ce',\n 'orange_book':'\\ud83d\\udcd9',\n 'orthodox_cross':'\\u2626\\ufe0f',\n 'outbox_tray':'\\ud83d\\udce4',\n 'owl':'\\ud83e\\udd89',\n 'ox':'\\ud83d\\udc02',\n 'package':'\\ud83d\\udce6',\n 'page_facing_up':'\\ud83d\\udcc4',\n 'page_with_curl':'\\ud83d\\udcc3',\n 'pager':'\\ud83d\\udcdf',\n 'paintbrush':'\\ud83d\\udd8c',\n 'palm_tree':'\\ud83c\\udf34',\n 'pancakes':'\\ud83e\\udd5e',\n 'panda_face':'\\ud83d\\udc3c',\n 'paperclip':'\\ud83d\\udcce',\n 'paperclips':'\\ud83d\\udd87',\n 'parasol_on_ground':'\\u26f1',\n 'parking':'\\ud83c\\udd7f\\ufe0f',\n 'part_alternation_mark':'\\u303d\\ufe0f',\n 'partly_sunny':'\\u26c5\\ufe0f',\n 'passenger_ship':'\\ud83d\\udef3',\n 'passport_control':'\\ud83d\\udec2',\n 'pause_button':'\\u23f8',\n 'peace_symbol':'\\u262e\\ufe0f',\n 'peach':'\\ud83c\\udf51',\n 'peanuts':'\\ud83e\\udd5c',\n 'pear':'\\ud83c\\udf50',\n 'pen':'\\ud83d\\udd8a',\n 'pencil2':'\\u270f\\ufe0f',\n 'penguin':'\\ud83d\\udc27',\n 'pensive':'\\ud83d\\ude14',\n 'performing_arts':'\\ud83c\\udfad',\n 'persevere':'\\ud83d\\ude23',\n 'person_fencing':'\\ud83e\\udd3a',\n 'pouting_woman':'\\ud83d\\ude4e',\n 'phone':'\\u260e\\ufe0f',\n 'pick':'\\u26cf',\n 'pig':'\\ud83d\\udc37',\n 'pig2':'\\ud83d\\udc16',\n 'pig_nose':'\\ud83d\\udc3d',\n 'pill':'\\ud83d\\udc8a',\n 'pineapple':'\\ud83c\\udf4d',\n 'ping_pong':'\\ud83c\\udfd3',\n 'pisces':'\\u2653\\ufe0f',\n 'pizza':'\\ud83c\\udf55',\n 'place_of_worship':'\\ud83d\\uded0',\n 'plate_with_cutlery':'\\ud83c\\udf7d',\n 'play_or_pause_button':'\\u23ef',\n 'point_down':'\\ud83d\\udc47',\n 'point_left':'\\ud83d\\udc48',\n 'point_right':'\\ud83d\\udc49',\n 'point_up':'\\u261d\\ufe0f',\n 'point_up_2':'\\ud83d\\udc46',\n 'police_car':'\\ud83d\\ude93',\n 'policewoman':'\\ud83d\\udc6e‍\\u2640\\ufe0f',\n 'poodle':'\\ud83d\\udc29',\n 'popcorn':'\\ud83c\\udf7f',\n 'post_office':'\\ud83c\\udfe3',\n 'postal_horn':'\\ud83d\\udcef',\n 'postbox':'\\ud83d\\udcee',\n 'potable_water':'\\ud83d\\udeb0',\n 'potato':'\\ud83e\\udd54',\n 'pouch':'\\ud83d\\udc5d',\n 'poultry_leg':'\\ud83c\\udf57',\n 'pound':'\\ud83d\\udcb7',\n 'rage':'\\ud83d\\ude21',\n 'pouting_cat':'\\ud83d\\ude3e',\n 'pouting_man':'\\ud83d\\ude4e‍\\u2642\\ufe0f',\n 'pray':'\\ud83d\\ude4f',\n 'prayer_beads':'\\ud83d\\udcff',\n 'pregnant_woman':'\\ud83e\\udd30',\n 'previous_track_button':'\\u23ee',\n 'prince':'\\ud83e\\udd34',\n 'princess':'\\ud83d\\udc78',\n 'printer':'\\ud83d\\udda8',\n 'purple_heart':'\\ud83d\\udc9c',\n 'purse':'\\ud83d\\udc5b',\n 'pushpin':'\\ud83d\\udccc',\n 'put_litter_in_its_place':'\\ud83d\\udeae',\n 'question':'\\u2753',\n 'rabbit':'\\ud83d\\udc30',\n 'rabbit2':'\\ud83d\\udc07',\n 'racehorse':'\\ud83d\\udc0e',\n 'racing_car':'\\ud83c\\udfce',\n 'radio':'\\ud83d\\udcfb',\n 'radio_button':'\\ud83d\\udd18',\n 'radioactive':'\\u2622\\ufe0f',\n 'railway_car':'\\ud83d\\ude83',\n 'railway_track':'\\ud83d\\udee4',\n 'rainbow':'\\ud83c\\udf08',\n 'rainbow_flag':'\\ud83c\\udff3\\ufe0f‍\\ud83c\\udf08',\n 'raised_back_of_hand':'\\ud83e\\udd1a',\n 'raised_hand_with_fingers_splayed':'\\ud83d\\udd90',\n 'raised_hands':'\\ud83d\\ude4c',\n 'raising_hand_woman':'\\ud83d\\ude4b',\n 'raising_hand_man':'\\ud83d\\ude4b‍\\u2642\\ufe0f',\n 'ram':'\\ud83d\\udc0f',\n 'ramen':'\\ud83c\\udf5c',\n 'rat':'\\ud83d\\udc00',\n 'record_button':'\\u23fa',\n 'recycle':'\\u267b\\ufe0f',\n 'red_circle':'\\ud83d\\udd34',\n 'registered':'\\u00ae\\ufe0f',\n 'relaxed':'\\u263a\\ufe0f',\n 'relieved':'\\ud83d\\ude0c',\n 'reminder_ribbon':'\\ud83c\\udf97',\n 'repeat':'\\ud83d\\udd01',\n 'repeat_one':'\\ud83d\\udd02',\n 'rescue_worker_helmet':'\\u26d1',\n 'restroom':'\\ud83d\\udebb',\n 'revolving_hearts':'\\ud83d\\udc9e',\n 'rewind':'\\u23ea',\n 'rhinoceros':'\\ud83e\\udd8f',\n 'ribbon':'\\ud83c\\udf80',\n 'rice':'\\ud83c\\udf5a',\n 'rice_ball':'\\ud83c\\udf59',\n 'rice_cracker':'\\ud83c\\udf58',\n 'rice_scene':'\\ud83c\\udf91',\n 'right_anger_bubble':'\\ud83d\\uddef',\n 'ring':'\\ud83d\\udc8d',\n 'robot':'\\ud83e\\udd16',\n 'rocket':'\\ud83d\\ude80',\n 'rofl':'\\ud83e\\udd23',\n 'roll_eyes':'\\ud83d\\ude44',\n 'roller_coaster':'\\ud83c\\udfa2',\n 'rooster':'\\ud83d\\udc13',\n 'rose':'\\ud83c\\udf39',\n 'rosette':'\\ud83c\\udff5',\n 'rotating_light':'\\ud83d\\udea8',\n 'round_pushpin':'\\ud83d\\udccd',\n 'rowing_man':'\\ud83d\\udea3',\n 'rowing_woman':'\\ud83d\\udea3‍\\u2640\\ufe0f',\n 'rugby_football':'\\ud83c\\udfc9',\n 'running_man':'\\ud83c\\udfc3',\n 'running_shirt_with_sash':'\\ud83c\\udfbd',\n 'running_woman':'\\ud83c\\udfc3‍\\u2640\\ufe0f',\n 'sa':'\\ud83c\\ude02\\ufe0f',\n 'sagittarius':'\\u2650\\ufe0f',\n 'sake':'\\ud83c\\udf76',\n 'sandal':'\\ud83d\\udc61',\n 'santa':'\\ud83c\\udf85',\n 'satellite':'\\ud83d\\udce1',\n 'saxophone':'\\ud83c\\udfb7',\n 'school':'\\ud83c\\udfeb',\n 'school_satchel':'\\ud83c\\udf92',\n 'scissors':'\\u2702\\ufe0f',\n 'scorpion':'\\ud83e\\udd82',\n 'scorpius':'\\u264f\\ufe0f',\n 'scream':'\\ud83d\\ude31',\n 'scream_cat':'\\ud83d\\ude40',\n 'scroll':'\\ud83d\\udcdc',\n 'seat':'\\ud83d\\udcba',\n 'secret':'\\u3299\\ufe0f',\n 'see_no_evil':'\\ud83d\\ude48',\n 'seedling':'\\ud83c\\udf31',\n 'selfie':'\\ud83e\\udd33',\n 'shallow_pan_of_food':'\\ud83e\\udd58',\n 'shamrock':'\\u2618\\ufe0f',\n 'shark':'\\ud83e\\udd88',\n 'shaved_ice':'\\ud83c\\udf67',\n 'sheep':'\\ud83d\\udc11',\n 'shell':'\\ud83d\\udc1a',\n 'shield':'\\ud83d\\udee1',\n 'shinto_shrine':'\\u26e9',\n 'ship':'\\ud83d\\udea2',\n 'shirt':'\\ud83d\\udc55',\n 'shopping':'\\ud83d\\udecd',\n 'shopping_cart':'\\ud83d\\uded2',\n 'shower':'\\ud83d\\udebf',\n 'shrimp':'\\ud83e\\udd90',\n 'signal_strength':'\\ud83d\\udcf6',\n 'six_pointed_star':'\\ud83d\\udd2f',\n 'ski':'\\ud83c\\udfbf',\n 'skier':'\\u26f7',\n 'skull':'\\ud83d\\udc80',\n 'skull_and_crossbones':'\\u2620\\ufe0f',\n 'sleeping':'\\ud83d\\ude34',\n 'sleeping_bed':'\\ud83d\\udecc',\n 'sleepy':'\\ud83d\\ude2a',\n 'slightly_frowning_face':'\\ud83d\\ude41',\n 'slightly_smiling_face':'\\ud83d\\ude42',\n 'slot_machine':'\\ud83c\\udfb0',\n 'small_airplane':'\\ud83d\\udee9',\n 'small_blue_diamond':'\\ud83d\\udd39',\n 'small_orange_diamond':'\\ud83d\\udd38',\n 'small_red_triangle':'\\ud83d\\udd3a',\n 'small_red_triangle_down':'\\ud83d\\udd3b',\n 'smile':'\\ud83d\\ude04',\n 'smile_cat':'\\ud83d\\ude38',\n 'smiley':'\\ud83d\\ude03',\n 'smiley_cat':'\\ud83d\\ude3a',\n 'smiling_imp':'\\ud83d\\ude08',\n 'smirk':'\\ud83d\\ude0f',\n 'smirk_cat':'\\ud83d\\ude3c',\n 'smoking':'\\ud83d\\udeac',\n 'snail':'\\ud83d\\udc0c',\n 'snake':'\\ud83d\\udc0d',\n 'sneezing_face':'\\ud83e\\udd27',\n 'snowboarder':'\\ud83c\\udfc2',\n 'snowflake':'\\u2744\\ufe0f',\n 'snowman':'\\u26c4\\ufe0f',\n 'snowman_with_snow':'\\u2603\\ufe0f',\n 'sob':'\\ud83d\\ude2d',\n 'soccer':'\\u26bd\\ufe0f',\n 'soon':'\\ud83d\\udd1c',\n 'sos':'\\ud83c\\udd98',\n 'sound':'\\ud83d\\udd09',\n 'space_invader':'\\ud83d\\udc7e',\n 'spades':'\\u2660\\ufe0f',\n 'spaghetti':'\\ud83c\\udf5d',\n 'sparkle':'\\u2747\\ufe0f',\n 'sparkler':'\\ud83c\\udf87',\n 'sparkles':'\\u2728',\n 'sparkling_heart':'\\ud83d\\udc96',\n 'speak_no_evil':'\\ud83d\\ude4a',\n 'speaker':'\\ud83d\\udd08',\n 'speaking_head':'\\ud83d\\udde3',\n 'speech_balloon':'\\ud83d\\udcac',\n 'speedboat':'\\ud83d\\udea4',\n 'spider':'\\ud83d\\udd77',\n 'spider_web':'\\ud83d\\udd78',\n 'spiral_calendar':'\\ud83d\\uddd3',\n 'spiral_notepad':'\\ud83d\\uddd2',\n 'spoon':'\\ud83e\\udd44',\n 'squid':'\\ud83e\\udd91',\n 'stadium':'\\ud83c\\udfdf',\n 'star':'\\u2b50\\ufe0f',\n 'star2':'\\ud83c\\udf1f',\n 'star_and_crescent':'\\u262a\\ufe0f',\n 'star_of_david':'\\u2721\\ufe0f',\n 'stars':'\\ud83c\\udf20',\n 'station':'\\ud83d\\ude89',\n 'statue_of_liberty':'\\ud83d\\uddfd',\n 'steam_locomotive':'\\ud83d\\ude82',\n 'stew':'\\ud83c\\udf72',\n 'stop_button':'\\u23f9',\n 'stop_sign':'\\ud83d\\uded1',\n 'stopwatch':'\\u23f1',\n 'straight_ruler':'\\ud83d\\udccf',\n 'strawberry':'\\ud83c\\udf53',\n 'stuck_out_tongue':'\\ud83d\\ude1b',\n 'stuck_out_tongue_closed_eyes':'\\ud83d\\ude1d',\n 'stuck_out_tongue_winking_eye':'\\ud83d\\ude1c',\n 'studio_microphone':'\\ud83c\\udf99',\n 'stuffed_flatbread':'\\ud83e\\udd59',\n 'sun_behind_large_cloud':'\\ud83c\\udf25',\n 'sun_behind_rain_cloud':'\\ud83c\\udf26',\n 'sun_behind_small_cloud':'\\ud83c\\udf24',\n 'sun_with_face':'\\ud83c\\udf1e',\n 'sunflower':'\\ud83c\\udf3b',\n 'sunglasses':'\\ud83d\\ude0e',\n 'sunny':'\\u2600\\ufe0f',\n 'sunrise':'\\ud83c\\udf05',\n 'sunrise_over_mountains':'\\ud83c\\udf04',\n 'surfing_man':'\\ud83c\\udfc4',\n 'surfing_woman':'\\ud83c\\udfc4‍\\u2640\\ufe0f',\n 'sushi':'\\ud83c\\udf63',\n 'suspension_railway':'\\ud83d\\ude9f',\n 'sweat':'\\ud83d\\ude13',\n 'sweat_drops':'\\ud83d\\udca6',\n 'sweat_smile':'\\ud83d\\ude05',\n 'sweet_potato':'\\ud83c\\udf60',\n 'swimming_man':'\\ud83c\\udfca',\n 'swimming_woman':'\\ud83c\\udfca‍\\u2640\\ufe0f',\n 'symbols':'\\ud83d\\udd23',\n 'synagogue':'\\ud83d\\udd4d',\n 'syringe':'\\ud83d\\udc89',\n 'taco':'\\ud83c\\udf2e',\n 'tada':'\\ud83c\\udf89',\n 'tanabata_tree':'\\ud83c\\udf8b',\n 'taurus':'\\u2649\\ufe0f',\n 'taxi':'\\ud83d\\ude95',\n 'tea':'\\ud83c\\udf75',\n 'telephone_receiver':'\\ud83d\\udcde',\n 'telescope':'\\ud83d\\udd2d',\n 'tennis':'\\ud83c\\udfbe',\n 'tent':'\\u26fa\\ufe0f',\n 'thermometer':'\\ud83c\\udf21',\n 'thinking':'\\ud83e\\udd14',\n 'thought_balloon':'\\ud83d\\udcad',\n 'ticket':'\\ud83c\\udfab',\n 'tickets':'\\ud83c\\udf9f',\n 'tiger':'\\ud83d\\udc2f',\n 'tiger2':'\\ud83d\\udc05',\n 'timer_clock':'\\u23f2',\n 'tipping_hand_man':'\\ud83d\\udc81‍\\u2642\\ufe0f',\n 'tired_face':'\\ud83d\\ude2b',\n 'tm':'\\u2122\\ufe0f',\n 'toilet':'\\ud83d\\udebd',\n 'tokyo_tower':'\\ud83d\\uddfc',\n 'tomato':'\\ud83c\\udf45',\n 'tongue':'\\ud83d\\udc45',\n 'top':'\\ud83d\\udd1d',\n 'tophat':'\\ud83c\\udfa9',\n 'tornado':'\\ud83c\\udf2a',\n 'trackball':'\\ud83d\\uddb2',\n 'tractor':'\\ud83d\\ude9c',\n 'traffic_light':'\\ud83d\\udea5',\n 'train':'\\ud83d\\ude8b',\n 'train2':'\\ud83d\\ude86',\n 'tram':'\\ud83d\\ude8a',\n 'triangular_flag_on_post':'\\ud83d\\udea9',\n 'triangular_ruler':'\\ud83d\\udcd0',\n 'trident':'\\ud83d\\udd31',\n 'triumph':'\\ud83d\\ude24',\n 'trolleybus':'\\ud83d\\ude8e',\n 'trophy':'\\ud83c\\udfc6',\n 'tropical_drink':'\\ud83c\\udf79',\n 'tropical_fish':'\\ud83d\\udc20',\n 'truck':'\\ud83d\\ude9a',\n 'trumpet':'\\ud83c\\udfba',\n 'tulip':'\\ud83c\\udf37',\n 'tumbler_glass':'\\ud83e\\udd43',\n 'turkey':'\\ud83e\\udd83',\n 'turtle':'\\ud83d\\udc22',\n 'tv':'\\ud83d\\udcfa',\n 'twisted_rightwards_arrows':'\\ud83d\\udd00',\n 'two_hearts':'\\ud83d\\udc95',\n 'two_men_holding_hands':'\\ud83d\\udc6c',\n 'two_women_holding_hands':'\\ud83d\\udc6d',\n 'u5272':'\\ud83c\\ude39',\n 'u5408':'\\ud83c\\ude34',\n 'u55b6':'\\ud83c\\ude3a',\n 'u6307':'\\ud83c\\ude2f\\ufe0f',\n 'u6708':'\\ud83c\\ude37\\ufe0f',\n 'u6709':'\\ud83c\\ude36',\n 'u6e80':'\\ud83c\\ude35',\n 'u7121':'\\ud83c\\ude1a\\ufe0f',\n 'u7533':'\\ud83c\\ude38',\n 'u7981':'\\ud83c\\ude32',\n 'u7a7a':'\\ud83c\\ude33',\n 'umbrella':'\\u2614\\ufe0f',\n 'unamused':'\\ud83d\\ude12',\n 'underage':'\\ud83d\\udd1e',\n 'unicorn':'\\ud83e\\udd84',\n 'unlock':'\\ud83d\\udd13',\n 'up':'\\ud83c\\udd99',\n 'upside_down_face':'\\ud83d\\ude43',\n 'v':'\\u270c\\ufe0f',\n 'vertical_traffic_light':'\\ud83d\\udea6',\n 'vhs':'\\ud83d\\udcfc',\n 'vibration_mode':'\\ud83d\\udcf3',\n 'video_camera':'\\ud83d\\udcf9',\n 'video_game':'\\ud83c\\udfae',\n 'violin':'\\ud83c\\udfbb',\n 'virgo':'\\u264d\\ufe0f',\n 'volcano':'\\ud83c\\udf0b',\n 'volleyball':'\\ud83c\\udfd0',\n 'vs':'\\ud83c\\udd9a',\n 'vulcan_salute':'\\ud83d\\udd96',\n 'walking_man':'\\ud83d\\udeb6',\n 'walking_woman':'\\ud83d\\udeb6‍\\u2640\\ufe0f',\n 'waning_crescent_moon':'\\ud83c\\udf18',\n 'waning_gibbous_moon':'\\ud83c\\udf16',\n 'warning':'\\u26a0\\ufe0f',\n 'wastebasket':'\\ud83d\\uddd1',\n 'watch':'\\u231a\\ufe0f',\n 'water_buffalo':'\\ud83d\\udc03',\n 'watermelon':'\\ud83c\\udf49',\n 'wave':'\\ud83d\\udc4b',\n 'wavy_dash':'\\u3030\\ufe0f',\n 'waxing_crescent_moon':'\\ud83c\\udf12',\n 'wc':'\\ud83d\\udebe',\n 'weary':'\\ud83d\\ude29',\n 'wedding':'\\ud83d\\udc92',\n 'weight_lifting_man':'\\ud83c\\udfcb\\ufe0f',\n 'weight_lifting_woman':'\\ud83c\\udfcb\\ufe0f‍\\u2640\\ufe0f',\n 'whale':'\\ud83d\\udc33',\n 'whale2':'\\ud83d\\udc0b',\n 'wheel_of_dharma':'\\u2638\\ufe0f',\n 'wheelchair':'\\u267f\\ufe0f',\n 'white_check_mark':'\\u2705',\n 'white_circle':'\\u26aa\\ufe0f',\n 'white_flag':'\\ud83c\\udff3\\ufe0f',\n 'white_flower':'\\ud83d\\udcae',\n 'white_large_square':'\\u2b1c\\ufe0f',\n 'white_medium_small_square':'\\u25fd\\ufe0f',\n 'white_medium_square':'\\u25fb\\ufe0f',\n 'white_small_square':'\\u25ab\\ufe0f',\n 'white_square_button':'\\ud83d\\udd33',\n 'wilted_flower':'\\ud83e\\udd40',\n 'wind_chime':'\\ud83c\\udf90',\n 'wind_face':'\\ud83c\\udf2c',\n 'wine_glass':'\\ud83c\\udf77',\n 'wink':'\\ud83d\\ude09',\n 'wolf':'\\ud83d\\udc3a',\n 'woman':'\\ud83d\\udc69',\n 'woman_artist':'\\ud83d\\udc69‍\\ud83c\\udfa8',\n 'woman_astronaut':'\\ud83d\\udc69‍\\ud83d\\ude80',\n 'woman_cartwheeling':'\\ud83e\\udd38‍\\u2640\\ufe0f',\n 'woman_cook':'\\ud83d\\udc69‍\\ud83c\\udf73',\n 'woman_facepalming':'\\ud83e\\udd26‍\\u2640\\ufe0f',\n 'woman_factory_worker':'\\ud83d\\udc69‍\\ud83c\\udfed',\n 'woman_farmer':'\\ud83d\\udc69‍\\ud83c\\udf3e',\n 'woman_firefighter':'\\ud83d\\udc69‍\\ud83d\\ude92',\n 'woman_health_worker':'\\ud83d\\udc69‍\\u2695\\ufe0f',\n 'woman_judge':'\\ud83d\\udc69‍\\u2696\\ufe0f',\n 'woman_juggling':'\\ud83e\\udd39‍\\u2640\\ufe0f',\n 'woman_mechanic':'\\ud83d\\udc69‍\\ud83d\\udd27',\n 'woman_office_worker':'\\ud83d\\udc69‍\\ud83d\\udcbc',\n 'woman_pilot':'\\ud83d\\udc69‍\\u2708\\ufe0f',\n 'woman_playing_handball':'\\ud83e\\udd3e‍\\u2640\\ufe0f',\n 'woman_playing_water_polo':'\\ud83e\\udd3d‍\\u2640\\ufe0f',\n 'woman_scientist':'\\ud83d\\udc69‍\\ud83d\\udd2c',\n 'woman_shrugging':'\\ud83e\\udd37‍\\u2640\\ufe0f',\n 'woman_singer':'\\ud83d\\udc69‍\\ud83c\\udfa4',\n 'woman_student':'\\ud83d\\udc69‍\\ud83c\\udf93',\n 'woman_teacher':'\\ud83d\\udc69‍\\ud83c\\udfeb',\n 'woman_technologist':'\\ud83d\\udc69‍\\ud83d\\udcbb',\n 'woman_with_turban':'\\ud83d\\udc73‍\\u2640\\ufe0f',\n 'womans_clothes':'\\ud83d\\udc5a',\n 'womans_hat':'\\ud83d\\udc52',\n 'women_wrestling':'\\ud83e\\udd3c‍\\u2640\\ufe0f',\n 'womens':'\\ud83d\\udeba',\n 'world_map':'\\ud83d\\uddfa',\n 'worried':'\\ud83d\\ude1f',\n 'wrench':'\\ud83d\\udd27',\n 'writing_hand':'\\u270d\\ufe0f',\n 'x':'\\u274c',\n 'yellow_heart':'\\ud83d\\udc9b',\n 'yen':'\\ud83d\\udcb4',\n 'yin_yang':'\\u262f\\ufe0f',\n 'yum':'\\ud83d\\ude0b',\n 'zap':'\\u26a1\\ufe0f',\n 'zipper_mouth_face':'\\ud83e\\udd10',\n 'zzz':'\\ud83d\\udca4',\n\n /* special emojis :P */\n 'octocat': '\":octocat:\"',\n 'showdown': 'S'\n};\n\r\n/**\n * Created by Estevao on 31-05-2015.\n */\n\n/**\n * Showdown Converter class\n * @class\n * @param {object} [converterOptions]\n * @returns {Converter}\n */\nshowdown.Converter = function (converterOptions) {\n 'use strict';\n\n var\n /**\n * Options used by this converter\n * @private\n * @type {{}}\n */\n options = {},\n\n /**\n * Language extensions used by this converter\n * @private\n * @type {Array}\n */\n langExtensions = [],\n\n /**\n * Output modifiers extensions used by this converter\n * @private\n * @type {Array}\n */\n outputModifiers = [],\n\n /**\n * Event listeners\n * @private\n * @type {{}}\n */\n listeners = {},\n\n /**\n * The flavor set in this converter\n */\n setConvFlavor = setFlavor,\n\n /**\n * Metadata of the document\n * @type {{parsed: {}, raw: string, format: string}}\n */\n metadata = {\n parsed: {},\n raw: '',\n format: ''\n };\n\n _constructor();\n\n /**\n * Converter constructor\n * @private\n */\n function _constructor () {\n converterOptions = converterOptions || {};\n\n for (var gOpt in globalOptions) {\n if (globalOptions.hasOwnProperty(gOpt)) {\n options[gOpt] = globalOptions[gOpt];\n }\n }\n\n // Merge options\n if (typeof converterOptions === 'object') {\n for (var opt in converterOptions) {\n if (converterOptions.hasOwnProperty(opt)) {\n options[opt] = converterOptions[opt];\n }\n }\n } else {\n throw Error('Converter expects the passed parameter to be an object, but ' + typeof converterOptions +\n ' was passed instead.');\n }\n\n if (options.extensions) {\n showdown.helper.forEach(options.extensions, _parseExtension);\n }\n }\n\n /**\n * Parse extension\n * @param {*} ext\n * @param {string} [name='']\n * @private\n */\n function _parseExtension (ext, name) {\n\n name = name || null;\n // If it's a string, the extension was previously loaded\n if (showdown.helper.isString(ext)) {\n ext = showdown.helper.stdExtName(ext);\n name = ext;\n\n // LEGACY_SUPPORT CODE\n if (showdown.extensions[ext]) {\n console.warn('DEPRECATION WARNING: ' + ext + ' is an old extension that uses a deprecated loading method.' +\n 'Please inform the developer that the extension should be updated!');\n legacyExtensionLoading(showdown.extensions[ext], ext);\n return;\n // END LEGACY SUPPORT CODE\n\n } else if (!showdown.helper.isUndefined(extensions[ext])) {\n ext = extensions[ext];\n\n } else {\n throw Error('Extension \"' + ext + '\" could not be loaded. It was either not found or is not a valid extension.');\n }\n }\n\n if (typeof ext === 'function') {\n ext = ext();\n }\n\n if (!showdown.helper.isArray(ext)) {\n ext = [ext];\n }\n\n var validExt = validate(ext, name);\n if (!validExt.valid) {\n throw Error(validExt.error);\n }\n\n for (var i = 0; i < ext.length; ++i) {\n switch (ext[i].type) {\n\n case 'lang':\n langExtensions.push(ext[i]);\n break;\n\n case 'output':\n outputModifiers.push(ext[i]);\n break;\n }\n if (ext[i].hasOwnProperty('listeners')) {\n for (var ln in ext[i].listeners) {\n if (ext[i].listeners.hasOwnProperty(ln)) {\n listen(ln, ext[i].listeners[ln]);\n }\n }\n }\n }\n\n }\n\n /**\n * LEGACY_SUPPORT\n * @param {*} ext\n * @param {string} name\n */\n function legacyExtensionLoading (ext, name) {\n if (typeof ext === 'function') {\n ext = ext(new showdown.Converter());\n }\n if (!showdown.helper.isArray(ext)) {\n ext = [ext];\n }\n var valid = validate(ext, name);\n\n if (!valid.valid) {\n throw Error(valid.error);\n }\n\n for (var i = 0; i < ext.length; ++i) {\n switch (ext[i].type) {\n case 'lang':\n langExtensions.push(ext[i]);\n break;\n case 'output':\n outputModifiers.push(ext[i]);\n break;\n default:// should never reach here\n throw Error('Extension loader error: Type unrecognized!!!');\n }\n }\n }\n\n /**\n * Listen to an event\n * @param {string} name\n * @param {function} callback\n */\n function listen (name, callback) {\n if (!showdown.helper.isString(name)) {\n throw Error('Invalid argument in converter.listen() method: name must be a string, but ' + typeof name + ' given');\n }\n\n if (typeof callback !== 'function') {\n throw Error('Invalid argument in converter.listen() method: callback must be a function, but ' + typeof callback + ' given');\n }\n\n if (!listeners.hasOwnProperty(name)) {\n listeners[name] = [];\n }\n listeners[name].push(callback);\n }\n\n function rTrimInputText (text) {\n var rsp = text.match(/^\\s*/)[0].length,\n rgx = new RegExp('^\\\\s{0,' + rsp + '}', 'gm');\n return text.replace(rgx, '');\n }\n\n /**\n * Dispatch an event\n * @private\n * @param {string} evtName Event name\n * @param {string} text Text\n * @param {{}} options Converter Options\n * @param {{}} globals\n * @returns {string}\n */\n this._dispatch = function dispatch (evtName, text, options, globals) {\n if (listeners.hasOwnProperty(evtName)) {\n for (var ei = 0; ei < listeners[evtName].length; ++ei) {\n var nText = listeners[evtName][ei](evtName, text, this, options, globals);\n if (nText && typeof nText !== 'undefined') {\n text = nText;\n }\n }\n }\n return text;\n };\n\n /**\n * Listen to an event\n * @param {string} name\n * @param {function} callback\n * @returns {showdown.Converter}\n */\n this.listen = function (name, callback) {\n listen(name, callback);\n return this;\n };\n\n /**\n * Converts a markdown string into HTML\n * @param {string} text\n * @returns {*}\n */\n this.makeHtml = function (text) {\n //check if text is not falsy\n if (!text) {\n return text;\n }\n\n var globals = {\n gHtmlBlocks: [],\n gHtmlMdBlocks: [],\n gHtmlSpans: [],\n gUrls: {},\n gTitles: {},\n gDimensions: {},\n gListLevel: 0,\n hashLinkCounts: {},\n langExtensions: langExtensions,\n outputModifiers: outputModifiers,\n converter: this,\n ghCodeBlocks: [],\n metadata: {\n parsed: {},\n raw: '',\n format: ''\n }\n };\n\n // This lets us use ¨ trema as an escape char to avoid md5 hashes\n // The choice of character is arbitrary; anything that isn't\n // magic in Markdown will work.\n text = text.replace(/¨/g, '¨T');\n\n // Replace $ with ¨D\n // RegExp interprets $ as a special character\n // when it's in a replacement string\n text = text.replace(/\\$/g, '¨D');\n\n // Standardize line endings\n text = text.replace(/\\r\\n/g, '\\n'); // DOS to Unix\n text = text.replace(/\\r/g, '\\n'); // Mac to Unix\n\n // Stardardize line spaces\n text = text.replace(/\\u00A0/g, ' ');\n\n if (options.smartIndentationFix) {\n text = rTrimInputText(text);\n }\n\n // Make sure text begins and ends with a couple of newlines:\n text = '\\n\\n' + text + '\\n\\n';\n\n // detab\n text = showdown.subParser('detab')(text, options, globals);\n\n /**\n * Strip any lines consisting only of spaces and tabs.\n * This makes subsequent regexs easier to write, because we can\n * match consecutive blank lines with /\\n+/ instead of something\n * contorted like /[ \\t]*\\n+/\n */\n text = text.replace(/^[ \\t]+$/mg, '');\n\n //run languageExtensions\n showdown.helper.forEach(langExtensions, function (ext) {\n text = showdown.subParser('runExtension')(ext, text, options, globals);\n });\n\n // run the sub parsers\n text = showdown.subParser('metadata')(text, options, globals);\n text = showdown.subParser('hashPreCodeTags')(text, options, globals);\n text = showdown.subParser('githubCodeBlocks')(text, options, globals);\n text = showdown.subParser('hashHTMLBlocks')(text, options, globals);\n text = showdown.subParser('hashCodeTags')(text, options, globals);\n text = showdown.subParser('stripLinkDefinitions')(text, options, globals);\n text = showdown.subParser('blockGamut')(text, options, globals);\n text = showdown.subParser('unhashHTMLSpans')(text, options, globals);\n text = showdown.subParser('unescapeSpecialChars')(text, options, globals);\n\n // attacklab: Restore dollar signs\n text = text.replace(/¨D/g, '$$');\n\n // attacklab: Restore tremas\n text = text.replace(/¨T/g, '¨');\n\n // render a complete html document instead of a partial if the option is enabled\n text = showdown.subParser('completeHTMLDocument')(text, options, globals);\n\n // Run output modifiers\n showdown.helper.forEach(outputModifiers, function (ext) {\n text = showdown.subParser('runExtension')(ext, text, options, globals);\n });\n\n // update metadata\n metadata = globals.metadata;\n return text;\n };\n\n /**\n * Converts an HTML string into a markdown string\n * @param src\n * @param [HTMLParser] A WHATWG DOM and HTML parser, such as JSDOM. If none is supplied, window.document will be used.\n * @returns {string}\n */\n this.makeMarkdown = this.makeMd = function (src, HTMLParser) {\n\n // replace \\r\\n with \\n\n src = src.replace(/\\r\\n/g, '\\n');\n src = src.replace(/\\r/g, '\\n'); // old macs\n\n // due to an edge case, we need to find this: > <\n // to prevent removing of non silent white spaces\n // ex: this is sparta\n src = src.replace(/>[ \\t]+¨NBSP;<');\n\n if (!HTMLParser) {\n if (window && window.document) {\n HTMLParser = window.document;\n } else {\n throw new Error('HTMLParser is undefined. If in a webworker or nodejs environment, you need to provide a WHATWG DOM and HTML such as JSDOM');\n }\n }\n\n var doc = HTMLParser.createElement('div');\n doc.innerHTML = src;\n\n var globals = {\n preList: substitutePreCodeTags(doc)\n };\n\n // remove all newlines and collapse spaces\n clean(doc);\n\n // some stuff, like accidental reference links must now be escaped\n // TODO\n // doc.innerHTML = doc.innerHTML.replace(/\\[[\\S\\t ]]/);\n\n var nodes = doc.childNodes,\n mdDoc = '';\n\n for (var i = 0; i < nodes.length; i++) {\n mdDoc += showdown.subParser('makeMarkdown.node')(nodes[i], globals);\n }\n\n function clean (node) {\n for (var n = 0; n < node.childNodes.length; ++n) {\n var child = node.childNodes[n];\n if (child.nodeType === 3) {\n if (!/\\S/.test(child.nodeValue) && !/^[ ]+$/.test(child.nodeValue)) {\n node.removeChild(child);\n --n;\n } else {\n child.nodeValue = child.nodeValue.split('\\n').join(' ');\n child.nodeValue = child.nodeValue.replace(/(\\s)+/g, '$1');\n }\n } else if (child.nodeType === 1) {\n clean(child);\n }\n }\n }\n\n // find all pre tags and replace contents with placeholder\n // we need this so that we can remove all indentation from html\n // to ease up parsing\n function substitutePreCodeTags (doc) {\n\n var pres = doc.querySelectorAll('pre'),\n presPH = [];\n\n for (var i = 0; i < pres.length; ++i) {\n\n if (pres[i].childElementCount === 1 && pres[i].firstChild.tagName.toLowerCase() === 'code') {\n var content = pres[i].firstChild.innerHTML.trim(),\n language = pres[i].firstChild.getAttribute('data-language') || '';\n\n // if data-language attribute is not defined, then we look for class language-*\n if (language === '') {\n var classes = pres[i].firstChild.className.split(' ');\n for (var c = 0; c < classes.length; ++c) {\n var matches = classes[c].match(/^language-(.+)$/);\n if (matches !== null) {\n language = matches[1];\n break;\n }\n }\n }\n\n // unescape html entities in content\n content = showdown.helper.unescapeHTMLEntities(content);\n\n presPH.push(content);\n pres[i].outerHTML = '';\n } else {\n presPH.push(pres[i].innerHTML);\n pres[i].innerHTML = '';\n pres[i].setAttribute('prenum', i.toString());\n }\n }\n return presPH;\n }\n\n return mdDoc;\n };\n\n /**\n * Set an option of this Converter instance\n * @param {string} key\n * @param {*} value\n */\n this.setOption = function (key, value) {\n options[key] = value;\n };\n\n /**\n * Get the option of this Converter instance\n * @param {string} key\n * @returns {*}\n */\n this.getOption = function (key) {\n return options[key];\n };\n\n /**\n * Get the options of this Converter instance\n * @returns {{}}\n */\n this.getOptions = function () {\n return options;\n };\n\n /**\n * Add extension to THIS converter\n * @param {{}} extension\n * @param {string} [name=null]\n */\n this.addExtension = function (extension, name) {\n name = name || null;\n _parseExtension(extension, name);\n };\n\n /**\n * Use a global registered extension with THIS converter\n * @param {string} extensionName Name of the previously registered extension\n */\n this.useExtension = function (extensionName) {\n _parseExtension(extensionName);\n };\n\n /**\n * Set the flavor THIS converter should use\n * @param {string} name\n */\n this.setFlavor = function (name) {\n if (!flavor.hasOwnProperty(name)) {\n throw Error(name + ' flavor was not found');\n }\n var preset = flavor[name];\n setConvFlavor = name;\n for (var option in preset) {\n if (preset.hasOwnProperty(option)) {\n options[option] = preset[option];\n }\n }\n };\n\n /**\n * Get the currently set flavor of this converter\n * @returns {string}\n */\n this.getFlavor = function () {\n return setConvFlavor;\n };\n\n /**\n * Remove an extension from THIS converter.\n * Note: This is a costly operation. It's better to initialize a new converter\n * and specify the extensions you wish to use\n * @param {Array} extension\n */\n this.removeExtension = function (extension) {\n if (!showdown.helper.isArray(extension)) {\n extension = [extension];\n }\n for (var a = 0; a < extension.length; ++a) {\n var ext = extension[a];\n for (var i = 0; i < langExtensions.length; ++i) {\n if (langExtensions[i] === ext) {\n langExtensions.splice(i, 1);\n }\n }\n for (var ii = 0; ii < outputModifiers.length; ++ii) {\n if (outputModifiers[ii] === ext) {\n outputModifiers.splice(ii, 1);\n }\n }\n }\n };\n\n /**\n * Get all extension of THIS converter\n * @returns {{language: Array, output: Array}}\n */\n this.getAllExtensions = function () {\n return {\n language: langExtensions,\n output: outputModifiers\n };\n };\n\n /**\n * Get the metadata of the previously parsed document\n * @param raw\n * @returns {string|{}}\n */\n this.getMetadata = function (raw) {\n if (raw) {\n return metadata.raw;\n } else {\n return metadata.parsed;\n }\n };\n\n /**\n * Get the metadata format of the previously parsed document\n * @returns {string}\n */\n this.getMetadataFormat = function () {\n return metadata.format;\n };\n\n /**\n * Private: set a single key, value metadata pair\n * @param {string} key\n * @param {string} value\n */\n this._setMetadataPair = function (key, value) {\n metadata.parsed[key] = value;\n };\n\n /**\n * Private: set metadata format\n * @param {string} format\n */\n this._setMetadataFormat = function (format) {\n metadata.format = format;\n };\n\n /**\n * Private: set metadata raw text\n * @param {string} raw\n */\n this._setMetadataRaw = function (raw) {\n metadata.raw = raw;\n };\n};\n\r\n/**\n * Turn Markdown link shortcuts into XHTML tags.\n */\nshowdown.subParser('anchors', function (text, options, globals) {\n 'use strict';\n\n text = globals.converter._dispatch('anchors.before', text, options, globals);\n\n var writeAnchorTag = function (wholeMatch, linkText, linkId, url, m5, m6, title) {\n if (showdown.helper.isUndefined(title)) {\n title = '';\n }\n linkId = linkId.toLowerCase();\n\n // Special case for explicit empty url\n if (wholeMatch.search(/\\(? ?(['\"].*['\"])?\\)$/m) > -1) {\n url = '';\n } else if (!url) {\n if (!linkId) {\n // lower-case and turn embedded newlines into spaces\n linkId = linkText.toLowerCase().replace(/ ?\\n/g, ' ');\n }\n url = '#' + linkId;\n\n if (!showdown.helper.isUndefined(globals.gUrls[linkId])) {\n url = globals.gUrls[linkId];\n if (!showdown.helper.isUndefined(globals.gTitles[linkId])) {\n title = globals.gTitles[linkId];\n }\n } else {\n return wholeMatch;\n }\n }\n\n //url = showdown.helper.escapeCharacters(url, '*_', false); // replaced line to improve performance\n url = url.replace(showdown.helper.regexes.asteriskDashAndColon, showdown.helper.escapeCharactersCallback);\n\n var result = '';\n\n return result;\n };\n\n // First, handle reference-style links: [link text] [id]\n text = text.replace(/\\[((?:\\[[^\\]]*]|[^\\[\\]])*)] ?(?:\\n *)?\\[(.*?)]()()()()/g, writeAnchorTag);\n\n // Next, inline-style links: [link text](url \"optional title\")\n // cases with crazy urls like ./image/cat1).png\n text = text.replace(/\\[((?:\\[[^\\]]*]|[^\\[\\]])*)]()[ \\t]*\\([ \\t]?<([^>]*)>(?:[ \\t]*(([\"'])([^\"]*?)\\5))?[ \\t]?\\)/g,\n writeAnchorTag);\n\n // normal cases\n text = text.replace(/\\[((?:\\[[^\\]]*]|[^\\[\\]])*)]()[ \\t]*\\([ \\t]??(?:[ \\t]*(([\"'])([^\"]*?)\\5))?[ \\t]?\\)/g,\n writeAnchorTag);\n\n // handle reference-style shortcuts: [link text]\n // These must come last in case you've also got [link test][1]\n // or [link test](/foo)\n text = text.replace(/\\[([^\\[\\]]+)]()()()()()/g, writeAnchorTag);\n\n // Lastly handle GithubMentions if option is enabled\n if (options.ghMentions) {\n text = text.replace(/(^|\\s)(\\\\)?(@([a-z\\d]+(?:[a-z\\d.-]+?[a-z\\d]+)*))/gmi, function (wm, st, escape, mentions, username) {\n if (escape === '\\\\') {\n return st + mentions;\n }\n\n //check if options.ghMentionsLink is a string\n if (!showdown.helper.isString(options.ghMentionsLink)) {\n throw new Error('ghMentionsLink option must be a string');\n }\n var lnk = options.ghMentionsLink.replace(/\\{u}/g, username),\n target = '';\n if (options.openLinksInNewWindow) {\n target = ' rel=\"noopener noreferrer\" target=\"¨E95Eblank\"';\n }\n return st + '' + mentions + '';\n });\n }\n\n text = globals.converter._dispatch('anchors.after', text, options, globals);\n return text;\n});\n\r\n// url allowed chars [a-z\\d_.~:/?#[]@!$&'()*+,;=-]\n\nvar simpleURLRegex = /([*~_]+|\\b)(((https?|ftp|dict):\\/\\/|www\\.)[^'\">\\s]+?\\.[^'\">\\s]+?)()(\\1)?(?=\\s|$)(?![\"<>])/gi,\n simpleURLRegex2 = /([*~_]+|\\b)(((https?|ftp|dict):\\/\\/|www\\.)[^'\">\\s]+\\.[^'\">\\s]+?)([.!?,()\\[\\]])?(\\1)?(?=\\s|$)(?![\"<>])/gi,\n delimUrlRegex = /()<(((https?|ftp|dict):\\/\\/|www\\.)[^'\">\\s]+)()>()/gi,\n simpleMailRegex = /(^|\\s)(?:mailto:)?([A-Za-z0-9!#$%&'*+-/=?^_`{|}~.]+@[-a-z0-9]+(\\.[-a-z0-9]+)*\\.[a-z]+)(?=$|\\s)/gmi,\n delimMailRegex = /<()(?:mailto:)?([-.\\w]+@[-a-z0-9]+(\\.[-a-z0-9]+)*\\.[a-z]+)>/gi,\n\n replaceLink = function (options) {\n 'use strict';\n return function (wm, leadingMagicChars, link, m2, m3, trailingPunctuation, trailingMagicChars) {\n link = link.replace(showdown.helper.regexes.asteriskDashAndColon, showdown.helper.escapeCharactersCallback);\n var lnkTxt = link,\n append = '',\n target = '',\n lmc = leadingMagicChars || '',\n tmc = trailingMagicChars || '';\n if (/^www\\./i.test(link)) {\n link = link.replace(/^www\\./i, 'http://www.');\n }\n if (options.excludeTrailingPunctuationFromURLs && trailingPunctuation) {\n append = trailingPunctuation;\n }\n if (options.openLinksInNewWindow) {\n target = ' rel=\"noopener noreferrer\" target=\"¨E95Eblank\"';\n }\n return lmc + '' + lnkTxt + '' + append + tmc;\n };\n },\n\n replaceMail = function (options, globals) {\n 'use strict';\n return function (wholeMatch, b, mail) {\n var href = 'mailto:';\n b = b || '';\n mail = showdown.subParser('unescapeSpecialChars')(mail, options, globals);\n if (options.encodeEmails) {\n href = showdown.helper.encodeEmailAddress(href + mail);\n mail = showdown.helper.encodeEmailAddress(mail);\n } else {\n href = href + mail;\n }\n return b + '' + mail + '';\n };\n };\n\nshowdown.subParser('autoLinks', function (text, options, globals) {\n 'use strict';\n\n text = globals.converter._dispatch('autoLinks.before', text, options, globals);\n\n text = text.replace(delimUrlRegex, replaceLink(options));\n text = text.replace(delimMailRegex, replaceMail(options, globals));\n\n text = globals.converter._dispatch('autoLinks.after', text, options, globals);\n\n return text;\n});\n\nshowdown.subParser('simplifiedAutoLinks', function (text, options, globals) {\n 'use strict';\n\n if (!options.simplifiedAutoLink) {\n return text;\n }\n\n text = globals.converter._dispatch('simplifiedAutoLinks.before', text, options, globals);\n\n if (options.excludeTrailingPunctuationFromURLs) {\n text = text.replace(simpleURLRegex2, replaceLink(options));\n } else {\n text = text.replace(simpleURLRegex, replaceLink(options));\n }\n text = text.replace(simpleMailRegex, replaceMail(options, globals));\n\n text = globals.converter._dispatch('simplifiedAutoLinks.after', text, options, globals);\n\n return text;\n});\n\r\n/**\n * These are all the transformations that form block-level\n * tags like paragraphs, headers, and list items.\n */\nshowdown.subParser('blockGamut', function (text, options, globals) {\n 'use strict';\n\n text = globals.converter._dispatch('blockGamut.before', text, options, globals);\n\n // we parse blockquotes first so that we can have headings and hrs\n // inside blockquotes\n text = showdown.subParser('blockQuotes')(text, options, globals);\n text = showdown.subParser('headers')(text, options, globals);\n\n // Do Horizontal Rules:\n text = showdown.subParser('horizontalRule')(text, options, globals);\n\n text = showdown.subParser('lists')(text, options, globals);\n text = showdown.subParser('codeBlocks')(text, options, globals);\n text = showdown.subParser('tables')(text, options, globals);\n\n // We already ran _HashHTMLBlocks() before, in Markdown(), but that\n // was to escape raw HTML in the original Markdown source. This time,\n // we're escaping the markup we've just created, so that we don't wrap\n //

tags around block-level tags.\n text = showdown.subParser('hashHTMLBlocks')(text, options, globals);\n text = showdown.subParser('paragraphs')(text, options, globals);\n\n text = globals.converter._dispatch('blockGamut.after', text, options, globals);\n\n return text;\n});\n\r\nshowdown.subParser('blockQuotes', function (text, options, globals) {\n 'use strict';\n\n text = globals.converter._dispatch('blockQuotes.before', text, options, globals);\n\n // add a couple extra lines after the text and endtext mark\n text = text + '\\n\\n';\n\n var rgx = /(^ {0,3}>[ \\t]?.+\\n(.+\\n)*\\n*)+/gm;\n\n if (options.splitAdjacentBlockquotes) {\n rgx = /^ {0,3}>[\\s\\S]*?(?:\\n\\n)/gm;\n }\n\n text = text.replace(rgx, function (bq) {\n // attacklab: hack around Konqueror 3.5.4 bug:\n // \"----------bug\".replace(/^-/g,\"\") == \"bug\"\n bq = bq.replace(/^[ \\t]*>[ \\t]?/gm, ''); // trim one level of quoting\n\n // attacklab: clean up hack\n bq = bq.replace(/¨0/g, '');\n\n bq = bq.replace(/^[ \\t]+$/gm, ''); // trim whitespace-only lines\n bq = showdown.subParser('githubCodeBlocks')(bq, options, globals);\n bq = showdown.subParser('blockGamut')(bq, options, globals); // recurse\n\n bq = bq.replace(/(^|\\n)/g, '$1 ');\n // These leading spaces screw with

 content, so we need to fix that:\n    bq = bq.replace(/(\\s*
[^\\r]+?<\\/pre>)/gm, function (wholeMatch, m1) {\n      var pre = m1;\n      // attacklab: hack around Konqueror 3.5.4 bug:\n      pre = pre.replace(/^  /mg, '¨0');\n      pre = pre.replace(/¨0/g, '');\n      return pre;\n    });\n\n    return showdown.subParser('hashBlock')('
\\n' + bq + '\\n
', options, globals);\n });\n\n text = globals.converter._dispatch('blockQuotes.after', text, options, globals);\n return text;\n});\n\r\n/**\n * Process Markdown `
` blocks.\n */\nshowdown.subParser('codeBlocks', function (text, options, globals) {\n  'use strict';\n\n  text = globals.converter._dispatch('codeBlocks.before', text, options, globals);\n\n  // sentinel workarounds for lack of \\A and \\Z, safari\\khtml bug\n  text += '¨0';\n\n  var pattern = /(?:\\n\\n|^)((?:(?:[ ]{4}|\\t).*\\n+)+)(\\n*[ ]{0,3}[^ \\t\\n]|(?=¨0))/g;\n  text = text.replace(pattern, function (wholeMatch, m1, m2) {\n    var codeblock = m1,\n        nextChar = m2,\n        end = '\\n';\n\n    codeblock = showdown.subParser('outdent')(codeblock, options, globals);\n    codeblock = showdown.subParser('encodeCode')(codeblock, options, globals);\n    codeblock = showdown.subParser('detab')(codeblock, options, globals);\n    codeblock = codeblock.replace(/^\\n+/g, ''); // trim leading newlines\n    codeblock = codeblock.replace(/\\n+$/g, ''); // trim trailing newlines\n\n    if (options.omitExtraWLInCodeBlocks) {\n      end = '';\n    }\n\n    codeblock = '
' + codeblock + end + '
';\n\n return showdown.subParser('hashBlock')(codeblock, options, globals) + nextChar;\n });\n\n // strip sentinel\n text = text.replace(/¨0/, '');\n\n text = globals.converter._dispatch('codeBlocks.after', text, options, globals);\n return text;\n});\n\r\n/**\n *\n * * Backtick quotes are used for spans.\n *\n * * You can use multiple backticks as the delimiters if you want to\n * include literal backticks in the code span. So, this input:\n *\n * Just type ``foo `bar` baz`` at the prompt.\n *\n * Will translate to:\n *\n *

Just type foo `bar` baz at the prompt.

\n *\n * There's no arbitrary limit to the number of backticks you\n * can use as delimters. If you need three consecutive backticks\n * in your code, use four for delimiters, etc.\n *\n * * You can use spaces to get literal backticks at the edges:\n *\n * ... type `` `bar` `` ...\n *\n * Turns to:\n *\n * ... type `bar` ...\n */\nshowdown.subParser('codeSpans', function (text, options, globals) {\n 'use strict';\n\n text = globals.converter._dispatch('codeSpans.before', text, options, globals);\n\n if (typeof (text) === 'undefined') {\n text = '';\n }\n text = text.replace(/(^|[^\\\\])(`+)([^\\r]*?[^`])\\2(?!`)/gm,\n function (wholeMatch, m1, m2, m3) {\n var c = m3;\n c = c.replace(/^([ \\t]*)/g, '');\t// leading whitespace\n c = c.replace(/[ \\t]*$/g, '');\t// trailing whitespace\n c = showdown.subParser('encodeCode')(c, options, globals);\n c = m1 + '' + c + '';\n c = showdown.subParser('hashHTMLSpans')(c, options, globals);\n return c;\n }\n );\n\n text = globals.converter._dispatch('codeSpans.after', text, options, globals);\n return text;\n});\n\r\n/**\n * Create a full HTML document from the processed markdown\n */\nshowdown.subParser('completeHTMLDocument', function (text, options, globals) {\n 'use strict';\n\n if (!options.completeHTMLDocument) {\n return text;\n }\n\n text = globals.converter._dispatch('completeHTMLDocument.before', text, options, globals);\n\n var doctype = 'html',\n doctypeParsed = '\\n',\n title = '',\n charset = '\\n',\n lang = '',\n metadata = '';\n\n if (typeof globals.metadata.parsed.doctype !== 'undefined') {\n doctypeParsed = '\\n';\n doctype = globals.metadata.parsed.doctype.toString().toLowerCase();\n if (doctype === 'html' || doctype === 'html5') {\n charset = '';\n }\n }\n\n for (var meta in globals.metadata.parsed) {\n if (globals.metadata.parsed.hasOwnProperty(meta)) {\n switch (meta.toLowerCase()) {\n case 'doctype':\n break;\n\n case 'title':\n title = '' + globals.metadata.parsed.title + '\\n';\n break;\n\n case 'charset':\n if (doctype === 'html' || doctype === 'html5') {\n charset = '\\n';\n } else {\n charset = '\\n';\n }\n break;\n\n case 'language':\n case 'lang':\n lang = ' lang=\"' + globals.metadata.parsed[meta] + '\"';\n metadata += '\\n';\n break;\n\n default:\n metadata += '\\n';\n }\n }\n }\n\n text = doctypeParsed + '\\n\\n' + title + charset + metadata + '\\n\\n' + text.trim() + '\\n\\n';\n\n text = globals.converter._dispatch('completeHTMLDocument.after', text, options, globals);\n return text;\n});\n\r\n/**\n * Convert all tabs to spaces\n */\nshowdown.subParser('detab', function (text, options, globals) {\n 'use strict';\n text = globals.converter._dispatch('detab.before', text, options, globals);\n\n // expand first n-1 tabs\n text = text.replace(/\\t(?=\\t)/g, ' '); // g_tab_width\n\n // replace the nth with two sentinels\n text = text.replace(/\\t/g, '¨A¨B');\n\n // use the sentinel to anchor our regex so it doesn't explode\n text = text.replace(/¨B(.+?)¨A/g, function (wholeMatch, m1) {\n var leadingText = m1,\n numSpaces = 4 - leadingText.length % 4; // g_tab_width\n\n // there *must* be a better way to do this:\n for (var i = 0; i < numSpaces; i++) {\n leadingText += ' ';\n }\n\n return leadingText;\n });\n\n // clean up sentinels\n text = text.replace(/¨A/g, ' '); // g_tab_width\n text = text.replace(/¨B/g, '');\n\n text = globals.converter._dispatch('detab.after', text, options, globals);\n return text;\n});\n\r\nshowdown.subParser('ellipsis', function (text, options, globals) {\n 'use strict';\n\n if (!options.ellipsis) {\n return text;\n }\n\n text = globals.converter._dispatch('ellipsis.before', text, options, globals);\n\n text = text.replace(/\\.\\.\\./g, '…');\n\n text = globals.converter._dispatch('ellipsis.after', text, options, globals);\n\n return text;\n});\n\r\n/**\n * Turn emoji codes into emojis\n *\n * List of supported emojis: https://github.com/showdownjs/showdown/wiki/Emojis\n */\nshowdown.subParser('emoji', function (text, options, globals) {\n 'use strict';\n\n if (!options.emoji) {\n return text;\n }\n\n text = globals.converter._dispatch('emoji.before', text, options, globals);\n\n var emojiRgx = /:([\\S]+?):/g;\n\n text = text.replace(emojiRgx, function (wm, emojiCode) {\n if (showdown.helper.emojis.hasOwnProperty(emojiCode)) {\n return showdown.helper.emojis[emojiCode];\n }\n return wm;\n });\n\n text = globals.converter._dispatch('emoji.after', text, options, globals);\n\n return text;\n});\n\r\n/**\n * Smart processing for ampersands and angle brackets that need to be encoded.\n */\nshowdown.subParser('encodeAmpsAndAngles', function (text, options, globals) {\n 'use strict';\n text = globals.converter._dispatch('encodeAmpsAndAngles.before', text, options, globals);\n\n // Ampersand-encoding based entirely on Nat Irons's Amputator MT plugin:\n // http://bumppo.net/projects/amputator/\n text = text.replace(/&(?!#?[xX]?(?:[0-9a-fA-F]+|\\w+);)/g, '&');\n\n // Encode naked <'s\n text = text.replace(/<(?![a-z\\/?$!])/gi, '<');\n\n // Encode <\n text = text.replace(/\n text = text.replace(/>/g, '>');\n\n text = globals.converter._dispatch('encodeAmpsAndAngles.after', text, options, globals);\n return text;\n});\n\r\n/**\n * Returns the string, with after processing the following backslash escape sequences.\n *\n * attacklab: The polite way to do this is with the new escapeCharacters() function:\n *\n * text = escapeCharacters(text,\"\\\\\",true);\n * text = escapeCharacters(text,\"`*_{}[]()>#+-.!\",true);\n *\n * ...but we're sidestepping its use of the (slow) RegExp constructor\n * as an optimization for Firefox. This function gets called a LOT.\n */\nshowdown.subParser('encodeBackslashEscapes', function (text, options, globals) {\n 'use strict';\n text = globals.converter._dispatch('encodeBackslashEscapes.before', text, options, globals);\n\n text = text.replace(/\\\\(\\\\)/g, showdown.helper.escapeCharactersCallback);\n text = text.replace(/\\\\([`*_{}\\[\\]()>#+.!~=|:-])/g, showdown.helper.escapeCharactersCallback);\n\n text = globals.converter._dispatch('encodeBackslashEscapes.after', text, options, globals);\n return text;\n});\n\r\n/**\n * Encode/escape certain characters inside Markdown code runs.\n * The point is that in code, these characters are literals,\n * and lose their special Markdown meanings.\n */\nshowdown.subParser('encodeCode', function (text, options, globals) {\n 'use strict';\n\n text = globals.converter._dispatch('encodeCode.before', text, options, globals);\n\n // Encode all ampersands; HTML entities are not\n // entities within a Markdown code span.\n text = text\n .replace(/&/g, '&')\n // Do the angle bracket song and dance:\n .replace(//g, '>')\n // Now, escape characters that are magic in Markdown:\n .replace(/([*_{}\\[\\]\\\\=~-])/g, showdown.helper.escapeCharactersCallback);\n\n text = globals.converter._dispatch('encodeCode.after', text, options, globals);\n return text;\n});\n\r\n/**\n * Within tags -- meaning between < and > -- encode [\\ ` * _ ~ =] so they\n * don't conflict with their use in Markdown for code, italics and strong.\n */\nshowdown.subParser('escapeSpecialCharsWithinTagAttributes', function (text, options, globals) {\n 'use strict';\n text = globals.converter._dispatch('escapeSpecialCharsWithinTagAttributes.before', text, options, globals);\n\n // Build a regex to find HTML tags.\n var tags = /<\\/?[a-z\\d_:-]+(?:[\\s]+[\\s\\S]+?)?>/gi,\n comments = /-]|-[^>])(?:[^-]|-[^-])*)--)>/gi;\n\n text = text.replace(tags, function (wholeMatch) {\n return wholeMatch\n .replace(/(.)<\\/?code>(?=.)/g, '$1`')\n .replace(/([\\\\`*_~=|])/g, showdown.helper.escapeCharactersCallback);\n });\n\n text = text.replace(comments, function (wholeMatch) {\n return wholeMatch\n .replace(/([\\\\`*_~=|])/g, showdown.helper.escapeCharactersCallback);\n });\n\n text = globals.converter._dispatch('escapeSpecialCharsWithinTagAttributes.after', text, options, globals);\n return text;\n});\n\r\n/**\n * Handle github codeblocks prior to running HashHTML so that\n * HTML contained within the codeblock gets escaped properly\n * Example:\n * ```ruby\n * def hello_world(x)\n * puts \"Hello, #{x}\"\n * end\n * ```\n */\nshowdown.subParser('githubCodeBlocks', function (text, options, globals) {\n 'use strict';\n\n // early exit if option is not enabled\n if (!options.ghCodeBlocks) {\n return text;\n }\n\n text = globals.converter._dispatch('githubCodeBlocks.before', text, options, globals);\n\n text += '¨0';\n\n text = text.replace(/(?:^|\\n)(?: {0,3})(```+|~~~+)(?: *)([^\\s`~]*)\\n([\\s\\S]*?)\\n(?: {0,3})\\1/g, function (wholeMatch, delim, language, codeblock) {\n var end = (options.omitExtraWLInCodeBlocks) ? '' : '\\n';\n\n // First parse the github code block\n codeblock = showdown.subParser('encodeCode')(codeblock, options, globals);\n codeblock = showdown.subParser('detab')(codeblock, options, globals);\n codeblock = codeblock.replace(/^\\n+/g, ''); // trim leading newlines\n codeblock = codeblock.replace(/\\n+$/g, ''); // trim trailing whitespace\n\n codeblock = '
' + codeblock + end + '
';\n\n codeblock = showdown.subParser('hashBlock')(codeblock, options, globals);\n\n // Since GHCodeblocks can be false positives, we need to\n // store the primitive text and the parsed text in a global var,\n // and then return a token\n return '\\n\\n¨G' + (globals.ghCodeBlocks.push({text: wholeMatch, codeblock: codeblock}) - 1) + 'G\\n\\n';\n });\n\n // attacklab: strip sentinel\n text = text.replace(/¨0/, '');\n\n return globals.converter._dispatch('githubCodeBlocks.after', text, options, globals);\n});\n\r\nshowdown.subParser('hashBlock', function (text, options, globals) {\n 'use strict';\n text = globals.converter._dispatch('hashBlock.before', text, options, globals);\n text = text.replace(/(^\\n+|\\n+$)/g, '');\n text = '\\n\\n¨K' + (globals.gHtmlBlocks.push(text) - 1) + 'K\\n\\n';\n text = globals.converter._dispatch('hashBlock.after', text, options, globals);\n return text;\n});\n\r\n/**\n * Hash and escape elements that should not be parsed as markdown\n */\nshowdown.subParser('hashCodeTags', function (text, options, globals) {\n 'use strict';\n text = globals.converter._dispatch('hashCodeTags.before', text, options, globals);\n\n var repFunc = function (wholeMatch, match, left, right) {\n var codeblock = left + showdown.subParser('encodeCode')(match, options, globals) + right;\n return '¨C' + (globals.gHtmlSpans.push(codeblock) - 1) + 'C';\n };\n\n // Hash naked \n text = showdown.helper.replaceRecursiveRegExp(text, repFunc, ']*>', '', 'gim');\n\n text = globals.converter._dispatch('hashCodeTags.after', text, options, globals);\n return text;\n});\n\r\nshowdown.subParser('hashElement', function (text, options, globals) {\n 'use strict';\n\n return function (wholeMatch, m1) {\n var blockText = m1;\n\n // Undo double lines\n blockText = blockText.replace(/\\n\\n/g, '\\n');\n blockText = blockText.replace(/^\\n/, '');\n\n // strip trailing blank lines\n blockText = blockText.replace(/\\n+$/g, '');\n\n // Replace the element text with a marker (\"¨KxK\" where x is its key)\n blockText = '\\n\\n¨K' + (globals.gHtmlBlocks.push(blockText) - 1) + 'K\\n\\n';\n\n return blockText;\n };\n});\n\r\nshowdown.subParser('hashHTMLBlocks', function (text, options, globals) {\n 'use strict';\n text = globals.converter._dispatch('hashHTMLBlocks.before', text, options, globals);\n\n var blockTags = [\n 'pre',\n 'div',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'blockquote',\n 'table',\n 'dl',\n 'ol',\n 'ul',\n 'script',\n 'noscript',\n 'form',\n 'fieldset',\n 'iframe',\n 'math',\n 'style',\n 'section',\n 'header',\n 'footer',\n 'nav',\n 'article',\n 'aside',\n 'address',\n 'audio',\n 'canvas',\n 'figure',\n 'hgroup',\n 'output',\n 'video',\n 'p'\n ],\n repFunc = function (wholeMatch, match, left, right) {\n var txt = wholeMatch;\n // check if this html element is marked as markdown\n // if so, it's contents should be parsed as markdown\n if (left.search(/\\bmarkdown\\b/) !== -1) {\n txt = left + globals.converter.makeHtml(match) + right;\n }\n return '\\n\\n¨K' + (globals.gHtmlBlocks.push(txt) - 1) + 'K\\n\\n';\n };\n\n if (options.backslashEscapesHTMLTags) {\n // encode backslash escaped HTML tags\n text = text.replace(/\\\\<(\\/?[^>]+?)>/g, function (wm, inside) {\n return '<' + inside + '>';\n });\n }\n\n // hash HTML Blocks\n for (var i = 0; i < blockTags.length; ++i) {\n\n var opTagPos,\n rgx1 = new RegExp('^ {0,3}(<' + blockTags[i] + '\\\\b[^>]*>)', 'im'),\n patLeft = '<' + blockTags[i] + '\\\\b[^>]*>',\n patRight = '';\n // 1. Look for the first position of the first opening HTML tag in the text\n while ((opTagPos = showdown.helper.regexIndexOf(text, rgx1)) !== -1) {\n\n // if the HTML tag is \\ escaped, we need to escape it and break\n\n\n //2. Split the text in that position\n var subTexts = showdown.helper.splitAtIndex(text, opTagPos),\n //3. Match recursively\n newSubText1 = showdown.helper.replaceRecursiveRegExp(subTexts[1], repFunc, patLeft, patRight, 'im');\n\n // prevent an infinite loop\n if (newSubText1 === subTexts[1]) {\n break;\n }\n text = subTexts[0].concat(newSubText1);\n }\n }\n // HR SPECIAL CASE\n text = text.replace(/(\\n {0,3}(<(hr)\\b([^<>])*?\\/?>)[ \\t]*(?=\\n{2,}))/g,\n showdown.subParser('hashElement')(text, options, globals));\n\n // Special case for standalone HTML comments\n text = showdown.helper.replaceRecursiveRegExp(text, function (txt) {\n return '\\n\\n¨K' + (globals.gHtmlBlocks.push(txt) - 1) + 'K\\n\\n';\n }, '^ {0,3}', 'gm');\n\n // PHP and ASP-style processor instructions ( and <%...%>)\n text = text.replace(/(?:\\n\\n)( {0,3}(?:<([?%])[^\\r]*?\\2>)[ \\t]*(?=\\n{2,}))/g,\n showdown.subParser('hashElement')(text, options, globals));\n\n text = globals.converter._dispatch('hashHTMLBlocks.after', text, options, globals);\n return text;\n});\n\r\n/**\n * Hash span elements that should not be parsed as markdown\n */\nshowdown.subParser('hashHTMLSpans', function (text, options, globals) {\n 'use strict';\n text = globals.converter._dispatch('hashHTMLSpans.before', text, options, globals);\n\n function hashHTMLSpan (html) {\n return '¨C' + (globals.gHtmlSpans.push(html) - 1) + 'C';\n }\n\n // Hash Self Closing tags\n text = text.replace(/<[^>]+?\\/>/gi, function (wm) {\n return hashHTMLSpan(wm);\n });\n\n // Hash tags without properties\n text = text.replace(/<([^>]+?)>[\\s\\S]*?<\\/\\1>/g, function (wm) {\n return hashHTMLSpan(wm);\n });\n\n // Hash tags with properties\n text = text.replace(/<([^>]+?)\\s[^>]+?>[\\s\\S]*?<\\/\\1>/g, function (wm) {\n return hashHTMLSpan(wm);\n });\n\n // Hash self closing tags without />\n text = text.replace(/<[^>]+?>/gi, function (wm) {\n return hashHTMLSpan(wm);\n });\n\n /*showdown.helper.matchRecursiveRegExp(text, ']*>', '', 'gi');*/\n\n text = globals.converter._dispatch('hashHTMLSpans.after', text, options, globals);\n return text;\n});\n\n/**\n * Unhash HTML spans\n */\nshowdown.subParser('unhashHTMLSpans', function (text, options, globals) {\n 'use strict';\n text = globals.converter._dispatch('unhashHTMLSpans.before', text, options, globals);\n\n for (var i = 0; i < globals.gHtmlSpans.length; ++i) {\n var repText = globals.gHtmlSpans[i],\n // limiter to prevent infinite loop (assume 10 as limit for recurse)\n limit = 0;\n\n while (/¨C(\\d+)C/.test(repText)) {\n var num = RegExp.$1;\n repText = repText.replace('¨C' + num + 'C', globals.gHtmlSpans[num]);\n if (limit === 10) {\n console.error('maximum nesting of 10 spans reached!!!');\n break;\n }\n ++limit;\n }\n text = text.replace('¨C' + i + 'C', repText);\n }\n\n text = globals.converter._dispatch('unhashHTMLSpans.after', text, options, globals);\n return text;\n});\n\r\n/**\n * Hash and escape
 elements that should not be parsed as markdown\n */\nshowdown.subParser('hashPreCodeTags', function (text, options, globals) {\n  'use strict';\n  text = globals.converter._dispatch('hashPreCodeTags.before', text, options, globals);\n\n  var repFunc = function (wholeMatch, match, left, right) {\n    // encode html entities\n    var codeblock = left + showdown.subParser('encodeCode')(match, options, globals) + right;\n    return '\\n\\n¨G' + (globals.ghCodeBlocks.push({text: wholeMatch, codeblock: codeblock}) - 1) + 'G\\n\\n';\n  };\n\n  // Hash 
\n  text = showdown.helper.replaceRecursiveRegExp(text, repFunc, '^ {0,3}]*>\\\\s*]*>', '^ {0,3}\\\\s*
', 'gim');\n\n text = globals.converter._dispatch('hashPreCodeTags.after', text, options, globals);\n return text;\n});\n\r\nshowdown.subParser('headers', function (text, options, globals) {\n 'use strict';\n\n text = globals.converter._dispatch('headers.before', text, options, globals);\n\n var headerLevelStart = (isNaN(parseInt(options.headerLevelStart))) ? 1 : parseInt(options.headerLevelStart),\n\n // Set text-style headers:\n //\tHeader 1\n //\t========\n //\n //\tHeader 2\n //\t--------\n //\n setextRegexH1 = (options.smoothLivePreview) ? /^(.+)[ \\t]*\\n={2,}[ \\t]*\\n+/gm : /^(.+)[ \\t]*\\n=+[ \\t]*\\n+/gm,\n setextRegexH2 = (options.smoothLivePreview) ? /^(.+)[ \\t]*\\n-{2,}[ \\t]*\\n+/gm : /^(.+)[ \\t]*\\n-+[ \\t]*\\n+/gm;\n\n text = text.replace(setextRegexH1, function (wholeMatch, m1) {\n\n var spanGamut = showdown.subParser('spanGamut')(m1, options, globals),\n hID = (options.noHeaderId) ? '' : ' id=\"' + headerId(m1) + '\"',\n hLevel = headerLevelStart,\n hashBlock = '' + spanGamut + '';\n return showdown.subParser('hashBlock')(hashBlock, options, globals);\n });\n\n text = text.replace(setextRegexH2, function (matchFound, m1) {\n var spanGamut = showdown.subParser('spanGamut')(m1, options, globals),\n hID = (options.noHeaderId) ? '' : ' id=\"' + headerId(m1) + '\"',\n hLevel = headerLevelStart + 1,\n hashBlock = '' + spanGamut + '';\n return showdown.subParser('hashBlock')(hashBlock, options, globals);\n });\n\n // atx-style headers:\n // # Header 1\n // ## Header 2\n // ## Header 2 with closing hashes ##\n // ...\n // ###### Header 6\n //\n var atxStyle = (options.requireSpaceBeforeHeadingText) ? /^(#{1,6})[ \\t]+(.+?)[ \\t]*#*\\n+/gm : /^(#{1,6})[ \\t]*(.+?)[ \\t]*#*\\n+/gm;\n\n text = text.replace(atxStyle, function (wholeMatch, m1, m2) {\n var hText = m2;\n if (options.customizedHeaderId) {\n hText = m2.replace(/\\s?\\{([^{]+?)}\\s*$/, '');\n }\n\n var span = showdown.subParser('spanGamut')(hText, options, globals),\n hID = (options.noHeaderId) ? '' : ' id=\"' + headerId(m2) + '\"',\n hLevel = headerLevelStart - 1 + m1.length,\n header = '' + span + '';\n\n return showdown.subParser('hashBlock')(header, options, globals);\n });\n\n function headerId (m) {\n var title,\n prefix;\n\n // It is separate from other options to allow combining prefix and customized\n if (options.customizedHeaderId) {\n var match = m.match(/\\{([^{]+?)}\\s*$/);\n if (match && match[1]) {\n m = match[1];\n }\n }\n\n title = m;\n\n // Prefix id to prevent causing inadvertent pre-existing style matches.\n if (showdown.helper.isString(options.prefixHeaderId)) {\n prefix = options.prefixHeaderId;\n } else if (options.prefixHeaderId === true) {\n prefix = 'section-';\n } else {\n prefix = '';\n }\n\n if (!options.rawPrefixHeaderId) {\n title = prefix + title;\n }\n\n if (options.ghCompatibleHeaderId) {\n title = title\n .replace(/ /g, '-')\n // replace previously escaped chars (&, ¨ and $)\n .replace(/&/g, '')\n .replace(/¨T/g, '')\n .replace(/¨D/g, '')\n // replace rest of the chars (&~$ are repeated as they might have been escaped)\n // borrowed from github's redcarpet (some they should produce similar results)\n .replace(/[&+$,\\/:;=?@\"#{}|^¨~\\[\\]`\\\\*)(%.!'<>]/g, '')\n .toLowerCase();\n } else if (options.rawHeaderId) {\n title = title\n .replace(/ /g, '-')\n // replace previously escaped chars (&, ¨ and $)\n .replace(/&/g, '&')\n .replace(/¨T/g, '¨')\n .replace(/¨D/g, '$')\n // replace \" and '\n .replace(/[\"']/g, '-')\n .toLowerCase();\n } else {\n title = title\n .replace(/[^\\w]/g, '')\n .toLowerCase();\n }\n\n if (options.rawPrefixHeaderId) {\n title = prefix + title;\n }\n\n if (globals.hashLinkCounts[title]) {\n title = title + '-' + (globals.hashLinkCounts[title]++);\n } else {\n globals.hashLinkCounts[title] = 1;\n }\n return title;\n }\n\n text = globals.converter._dispatch('headers.after', text, options, globals);\n return text;\n});\n\r\n/**\n * Turn Markdown link shortcuts into XHTML tags.\n */\nshowdown.subParser('horizontalRule', function (text, options, globals) {\n 'use strict';\n text = globals.converter._dispatch('horizontalRule.before', text, options, globals);\n\n var key = showdown.subParser('hashBlock')('
', options, globals);\n text = text.replace(/^ {0,2}( ?-){3,}[ \\t]*$/gm, key);\n text = text.replace(/^ {0,2}( ?\\*){3,}[ \\t]*$/gm, key);\n text = text.replace(/^ {0,2}( ?_){3,}[ \\t]*$/gm, key);\n\n text = globals.converter._dispatch('horizontalRule.after', text, options, globals);\n return text;\n});\n\r\n/**\n * Turn Markdown image shortcuts into tags.\n */\nshowdown.subParser('images', function (text, options, globals) {\n 'use strict';\n\n text = globals.converter._dispatch('images.before', text, options, globals);\n\n var inlineRegExp = /!\\[([^\\]]*?)][ \\t]*()\\([ \\t]??(?: =([*\\d]+[A-Za-z%]{0,4})x([*\\d]+[A-Za-z%]{0,4}))?[ \\t]*(?:([\"'])([^\"]*?)\\6)?[ \\t]?\\)/g,\n crazyRegExp = /!\\[([^\\]]*?)][ \\t]*()\\([ \\t]?<([^>]*)>(?: =([*\\d]+[A-Za-z%]{0,4})x([*\\d]+[A-Za-z%]{0,4}))?[ \\t]*(?:(?:([\"'])([^\"]*?)\\6))?[ \\t]?\\)/g,\n base64RegExp = /!\\[([^\\]]*?)][ \\t]*()\\([ \\t]??(?: =([*\\d]+[A-Za-z%]{0,4})x([*\\d]+[A-Za-z%]{0,4}))?[ \\t]*(?:([\"'])([^\"]*?)\\6)?[ \\t]?\\)/g,\n referenceRegExp = /!\\[([^\\]]*?)] ?(?:\\n *)?\\[([\\s\\S]*?)]()()()()()/g,\n refShortcutRegExp = /!\\[([^\\[\\]]+)]()()()()()/g;\n\n function writeImageTagBase64 (wholeMatch, altText, linkId, url, width, height, m5, title) {\n url = url.replace(/\\s/g, '');\n return writeImageTag (wholeMatch, altText, linkId, url, width, height, m5, title);\n }\n\n function writeImageTag (wholeMatch, altText, linkId, url, width, height, m5, title) {\n\n var gUrls = globals.gUrls,\n gTitles = globals.gTitles,\n gDims = globals.gDimensions;\n\n linkId = linkId.toLowerCase();\n\n if (!title) {\n title = '';\n }\n // Special case for explicit empty url\n if (wholeMatch.search(/\\(? ?(['\"].*['\"])?\\)$/m) > -1) {\n url = '';\n\n } else if (url === '' || url === null) {\n if (linkId === '' || linkId === null) {\n // lower-case and turn embedded newlines into spaces\n linkId = altText.toLowerCase().replace(/ ?\\n/g, ' ');\n }\n url = '#' + linkId;\n\n if (!showdown.helper.isUndefined(gUrls[linkId])) {\n url = gUrls[linkId];\n if (!showdown.helper.isUndefined(gTitles[linkId])) {\n title = gTitles[linkId];\n }\n if (!showdown.helper.isUndefined(gDims[linkId])) {\n width = gDims[linkId].width;\n height = gDims[linkId].height;\n }\n } else {\n return wholeMatch;\n }\n }\n\n altText = altText\n .replace(/\"/g, '"')\n //altText = showdown.helper.escapeCharacters(altText, '*_', false);\n .replace(showdown.helper.regexes.asteriskDashAndColon, showdown.helper.escapeCharactersCallback);\n //url = showdown.helper.escapeCharacters(url, '*_', false);\n url = url.replace(showdown.helper.regexes.asteriskDashAndColon, showdown.helper.escapeCharactersCallback);\n var result = '\"'x \"optional title\")\n\n // base64 encoded images\n text = text.replace(base64RegExp, writeImageTagBase64);\n\n // cases with crazy urls like ./image/cat1).png\n text = text.replace(crazyRegExp, writeImageTag);\n\n // normal cases\n text = text.replace(inlineRegExp, writeImageTag);\n\n // handle reference-style shortcuts: ![img text]\n text = text.replace(refShortcutRegExp, writeImageTag);\n\n text = globals.converter._dispatch('images.after', text, options, globals);\n return text;\n});\n\r\nshowdown.subParser('italicsAndBold', function (text, options, globals) {\n 'use strict';\n\n text = globals.converter._dispatch('italicsAndBold.before', text, options, globals);\n\n // it's faster to have 3 separate regexes for each case than have just one\n // because of backtracing, in some cases, it could lead to an exponential effect\n // called \"catastrophic backtrace\". Ominous!\n\n function parseInside (txt, left, right) {\n /*\n if (options.simplifiedAutoLink) {\n txt = showdown.subParser('simplifiedAutoLinks')(txt, options, globals);\n }\n */\n return left + txt + right;\n }\n\n // Parse underscores\n if (options.literalMidWordUnderscores) {\n text = text.replace(/\\b___(\\S[\\s\\S]*?)___\\b/g, function (wm, txt) {\n return parseInside (txt, '', '');\n });\n text = text.replace(/\\b__(\\S[\\s\\S]*?)__\\b/g, function (wm, txt) {\n return parseInside (txt, '', '');\n });\n text = text.replace(/\\b_(\\S[\\s\\S]*?)_\\b/g, function (wm, txt) {\n return parseInside (txt, '', '');\n });\n } else {\n text = text.replace(/___(\\S[\\s\\S]*?)___/g, function (wm, m) {\n return (/\\S$/.test(m)) ? parseInside (m, '', '') : wm;\n });\n text = text.replace(/__(\\S[\\s\\S]*?)__/g, function (wm, m) {\n return (/\\S$/.test(m)) ? parseInside (m, '', '') : wm;\n });\n text = text.replace(/_([^\\s_][\\s\\S]*?)_/g, function (wm, m) {\n // !/^_[^_]/.test(m) - test if it doesn't start with __ (since it seems redundant, we removed it)\n return (/\\S$/.test(m)) ? parseInside (m, '', '') : wm;\n });\n }\n\n // Now parse asterisks\n if (options.literalMidWordAsterisks) {\n text = text.replace(/([^*]|^)\\B\\*\\*\\*(\\S[\\s\\S]*?)\\*\\*\\*\\B(?!\\*)/g, function (wm, lead, txt) {\n return parseInside (txt, lead + '', '');\n });\n text = text.replace(/([^*]|^)\\B\\*\\*(\\S[\\s\\S]*?)\\*\\*\\B(?!\\*)/g, function (wm, lead, txt) {\n return parseInside (txt, lead + '', '');\n });\n text = text.replace(/([^*]|^)\\B\\*(\\S[\\s\\S]*?)\\*\\B(?!\\*)/g, function (wm, lead, txt) {\n return parseInside (txt, lead + '', '');\n });\n } else {\n text = text.replace(/\\*\\*\\*(\\S[\\s\\S]*?)\\*\\*\\*/g, function (wm, m) {\n return (/\\S$/.test(m)) ? parseInside (m, '', '') : wm;\n });\n text = text.replace(/\\*\\*(\\S[\\s\\S]*?)\\*\\*/g, function (wm, m) {\n return (/\\S$/.test(m)) ? parseInside (m, '', '') : wm;\n });\n text = text.replace(/\\*([^\\s*][\\s\\S]*?)\\*/g, function (wm, m) {\n // !/^\\*[^*]/.test(m) - test if it doesn't start with ** (since it seems redundant, we removed it)\n return (/\\S$/.test(m)) ? parseInside (m, '', '') : wm;\n });\n }\n\n\n text = globals.converter._dispatch('italicsAndBold.after', text, options, globals);\n return text;\n});\n\r\n/**\n * Form HTML ordered (numbered) and unordered (bulleted) lists.\n */\nshowdown.subParser('lists', function (text, options, globals) {\n 'use strict';\n\n /**\n * Process the contents of a single ordered or unordered list, splitting it\n * into individual list items.\n * @param {string} listStr\n * @param {boolean} trimTrailing\n * @returns {string}\n */\n function processListItems (listStr, trimTrailing) {\n // The $g_list_level global keeps track of when we're inside a list.\n // Each time we enter a list, we increment it; when we leave a list,\n // we decrement. If it's zero, we're not in a list anymore.\n //\n // We do this because when we're not inside a list, we want to treat\n // something like this:\n //\n // I recommend upgrading to version\n // 8. Oops, now this line is treated\n // as a sub-list.\n //\n // As a single paragraph, despite the fact that the second line starts\n // with a digit-period-space sequence.\n //\n // Whereas when we're inside a list (or sub-list), that line will be\n // treated as the start of a sub-list. What a kludge, huh? This is\n // an aspect of Markdown's syntax that's hard to parse perfectly\n // without resorting to mind-reading. Perhaps the solution is to\n // change the syntax rules such that sub-lists must start with a\n // starting cardinal number; e.g. \"1.\" or \"a.\".\n globals.gListLevel++;\n\n // trim trailing blank lines:\n listStr = listStr.replace(/\\n{2,}$/, '\\n');\n\n // attacklab: add sentinel to emulate \\z\n listStr += '¨0';\n\n var rgx = /(\\n)?(^ {0,3})([*+-]|\\d+[.])[ \\t]+((\\[(x|X| )?])?[ \\t]*[^\\r]+?(\\n{1,2}))(?=\\n*(¨0| {0,3}([*+-]|\\d+[.])[ \\t]+))/gm,\n isParagraphed = (/\\n[ \\t]*\\n(?!¨0)/.test(listStr));\n\n // Since version 1.5, nesting sublists requires 4 spaces (or 1 tab) indentation,\n // which is a syntax breaking change\n // activating this option reverts to old behavior\n if (options.disableForced4SpacesIndentedSublists) {\n rgx = /(\\n)?(^ {0,3})([*+-]|\\d+[.])[ \\t]+((\\[(x|X| )?])?[ \\t]*[^\\r]+?(\\n{1,2}))(?=\\n*(¨0|\\2([*+-]|\\d+[.])[ \\t]+))/gm;\n }\n\n listStr = listStr.replace(rgx, function (wholeMatch, m1, m2, m3, m4, taskbtn, checked) {\n checked = (checked && checked.trim() !== '');\n\n var item = showdown.subParser('outdent')(m4, options, globals),\n bulletStyle = '';\n\n // Support for github tasklists\n if (taskbtn && options.tasklists) {\n bulletStyle = ' class=\"task-list-item\" style=\"list-style-type: none;\"';\n item = item.replace(/^[ \\t]*\\[(x|X| )?]/m, function () {\n var otp = '
  • a
  • \n // instead of:\n //
    • - - a
    \n // So, to prevent it, we will put a marker (¨A)in the beginning of the line\n // Kind of hackish/monkey patching, but seems more effective than overcomplicating the list parser\n item = item.replace(/^([-*+]|\\d\\.)[ \\t]+[\\S\\n ]*/g, function (wm2) {\n return '¨A' + wm2;\n });\n\n // m1 - Leading line or\n // Has a double return (multi paragraph) or\n // Has sublist\n if (m1 || (item.search(/\\n{2,}/) > -1)) {\n item = showdown.subParser('githubCodeBlocks')(item, options, globals);\n item = showdown.subParser('blockGamut')(item, options, globals);\n } else {\n // Recursion for sub-lists:\n item = showdown.subParser('lists')(item, options, globals);\n item = item.replace(/\\n$/, ''); // chomp(item)\n item = showdown.subParser('hashHTMLBlocks')(item, options, globals);\n\n // Colapse double linebreaks\n item = item.replace(/\\n\\n+/g, '\\n\\n');\n if (isParagraphed) {\n item = showdown.subParser('paragraphs')(item, options, globals);\n } else {\n item = showdown.subParser('spanGamut')(item, options, globals);\n }\n }\n\n // now we need to remove the marker (¨A)\n item = item.replace('¨A', '');\n // we can finally wrap the line in list item tags\n item = '' + item + '\\n';\n\n return item;\n });\n\n // attacklab: strip sentinel\n listStr = listStr.replace(/¨0/g, '');\n\n globals.gListLevel--;\n\n if (trimTrailing) {\n listStr = listStr.replace(/\\s+$/, '');\n }\n\n return listStr;\n }\n\n function styleStartNumber (list, listType) {\n // check if ol and starts by a number different than 1\n if (listType === 'ol') {\n var res = list.match(/^ *(\\d+)\\./);\n if (res && res[1] !== '1') {\n return ' start=\"' + res[1] + '\"';\n }\n }\n return '';\n }\n\n /**\n * Check and parse consecutive lists (better fix for issue #142)\n * @param {string} list\n * @param {string} listType\n * @param {boolean} trimTrailing\n * @returns {string}\n */\n function parseConsecutiveLists (list, listType, trimTrailing) {\n // check if we caught 2 or more consecutive lists by mistake\n // we use the counterRgx, meaning if listType is UL we look for OL and vice versa\n var olRgx = (options.disableForced4SpacesIndentedSublists) ? /^ ?\\d+\\.[ \\t]/gm : /^ {0,3}\\d+\\.[ \\t]/gm,\n ulRgx = (options.disableForced4SpacesIndentedSublists) ? /^ ?[*+-][ \\t]/gm : /^ {0,3}[*+-][ \\t]/gm,\n counterRxg = (listType === 'ul') ? olRgx : ulRgx,\n result = '';\n\n if (list.search(counterRxg) !== -1) {\n (function parseCL (txt) {\n var pos = txt.search(counterRxg),\n style = styleStartNumber(list, listType);\n if (pos !== -1) {\n // slice\n result += '\\n\\n<' + listType + style + '>\\n' + processListItems(txt.slice(0, pos), !!trimTrailing) + '\\n';\n\n // invert counterType and listType\n listType = (listType === 'ul') ? 'ol' : 'ul';\n counterRxg = (listType === 'ul') ? olRgx : ulRgx;\n\n //recurse\n parseCL(txt.slice(pos));\n } else {\n result += '\\n\\n<' + listType + style + '>\\n' + processListItems(txt, !!trimTrailing) + '\\n';\n }\n })(list);\n } else {\n var style = styleStartNumber(list, listType);\n result = '\\n\\n<' + listType + style + '>\\n' + processListItems(list, !!trimTrailing) + '\\n';\n }\n\n return result;\n }\n\n /** Start of list parsing **/\n text = globals.converter._dispatch('lists.before', text, options, globals);\n // add sentinel to hack around khtml/safari bug:\n // http://bugs.webkit.org/show_bug.cgi?id=11231\n text += '¨0';\n\n if (globals.gListLevel) {\n text = text.replace(/^(( {0,3}([*+-]|\\d+[.])[ \\t]+)[^\\r]+?(¨0|\\n{2,}(?=\\S)(?![ \\t]*(?:[*+-]|\\d+[.])[ \\t]+)))/gm,\n function (wholeMatch, list, m2) {\n var listType = (m2.search(/[*+-]/g) > -1) ? 'ul' : 'ol';\n return parseConsecutiveLists(list, listType, true);\n }\n );\n } else {\n text = text.replace(/(\\n\\n|^\\n?)(( {0,3}([*+-]|\\d+[.])[ \\t]+)[^\\r]+?(¨0|\\n{2,}(?=\\S)(?![ \\t]*(?:[*+-]|\\d+[.])[ \\t]+)))/gm,\n function (wholeMatch, m1, list, m3) {\n var listType = (m3.search(/[*+-]/g) > -1) ? 'ul' : 'ol';\n return parseConsecutiveLists(list, listType, false);\n }\n );\n }\n\n // strip sentinel\n text = text.replace(/¨0/, '');\n text = globals.converter._dispatch('lists.after', text, options, globals);\n return text;\n});\n\r\n/**\n * Parse metadata at the top of the document\n */\nshowdown.subParser('metadata', function (text, options, globals) {\n 'use strict';\n\n if (!options.metadata) {\n return text;\n }\n\n text = globals.converter._dispatch('metadata.before', text, options, globals);\n\n function parseMetadataContents (content) {\n // raw is raw so it's not changed in any way\n globals.metadata.raw = content;\n\n // escape chars forbidden in html attributes\n // double quotes\n content = content\n // ampersand first\n .replace(/&/g, '&')\n // double quotes\n .replace(/\"/g, '"');\n\n content = content.replace(/\\n {4}/g, ' ');\n content.replace(/^([\\S ]+): +([\\s\\S]+?)$/gm, function (wm, key, value) {\n globals.metadata.parsed[key] = value;\n return '';\n });\n }\n\n text = text.replace(/^\\s*«««+(\\S*?)\\n([\\s\\S]+?)\\n»»»+\\n/, function (wholematch, format, content) {\n parseMetadataContents(content);\n return '¨M';\n });\n\n text = text.replace(/^\\s*---+(\\S*?)\\n([\\s\\S]+?)\\n---+\\n/, function (wholematch, format, content) {\n if (format) {\n globals.metadata.format = format;\n }\n parseMetadataContents(content);\n return '¨M';\n });\n\n text = text.replace(/¨M/g, '');\n\n text = globals.converter._dispatch('metadata.after', text, options, globals);\n return text;\n});\n\r\n/**\n * Remove one level of line-leading tabs or spaces\n */\nshowdown.subParser('outdent', function (text, options, globals) {\n 'use strict';\n text = globals.converter._dispatch('outdent.before', text, options, globals);\n\n // attacklab: hack around Konqueror 3.5.4 bug:\n // \"----------bug\".replace(/^-/g,\"\") == \"bug\"\n text = text.replace(/^(\\t|[ ]{1,4})/gm, '¨0'); // attacklab: g_tab_width\n\n // attacklab: clean up hack\n text = text.replace(/¨0/g, '');\n\n text = globals.converter._dispatch('outdent.after', text, options, globals);\n return text;\n});\n\r\n/**\n *\n */\nshowdown.subParser('paragraphs', function (text, options, globals) {\n 'use strict';\n\n text = globals.converter._dispatch('paragraphs.before', text, options, globals);\n // Strip leading and trailing lines:\n text = text.replace(/^\\n+/g, '');\n text = text.replace(/\\n+$/g, '');\n\n var grafs = text.split(/\\n{2,}/g),\n grafsOut = [],\n end = grafs.length; // Wrap

    tags\n\n for (var i = 0; i < end; i++) {\n var str = grafs[i];\n // if this is an HTML marker, copy it\n if (str.search(/¨(K|G)(\\d+)\\1/g) >= 0) {\n grafsOut.push(str);\n\n // test for presence of characters to prevent empty lines being parsed\n // as paragraphs (resulting in undesired extra empty paragraphs)\n } else if (str.search(/\\S/) >= 0) {\n str = showdown.subParser('spanGamut')(str, options, globals);\n str = str.replace(/^([ \\t]*)/g, '

    ');\n str += '

    ';\n grafsOut.push(str);\n }\n }\n\n /** Unhashify HTML blocks */\n end = grafsOut.length;\n for (i = 0; i < end; i++) {\n var blockText = '',\n grafsOutIt = grafsOut[i],\n codeFlag = false;\n // if this is a marker for an html block...\n // use RegExp.test instead of string.search because of QML bug\n while (/¨(K|G)(\\d+)\\1/.test(grafsOutIt)) {\n var delim = RegExp.$1,\n num = RegExp.$2;\n\n if (delim === 'K') {\n blockText = globals.gHtmlBlocks[num];\n } else {\n // we need to check if ghBlock is a false positive\n if (codeFlag) {\n // use encoded version of all text\n blockText = showdown.subParser('encodeCode')(globals.ghCodeBlocks[num].text, options, globals);\n } else {\n blockText = globals.ghCodeBlocks[num].codeblock;\n }\n }\n blockText = blockText.replace(/\\$/g, '$$$$'); // Escape any dollar signs\n\n grafsOutIt = grafsOutIt.replace(/(\\n\\n)?¨(K|G)\\d+\\2(\\n\\n)?/, blockText);\n // Check if grafsOutIt is a pre->code\n if (/^]*>\\s*]*>/.test(grafsOutIt)) {\n codeFlag = true;\n }\n }\n grafsOut[i] = grafsOutIt;\n }\n text = grafsOut.join('\\n');\n // Strip leading and trailing lines:\n text = text.replace(/^\\n+/g, '');\n text = text.replace(/\\n+$/g, '');\n return globals.converter._dispatch('paragraphs.after', text, options, globals);\n});\n\r\n/**\n * Run extension\n */\nshowdown.subParser('runExtension', function (ext, text, options, globals) {\n 'use strict';\n\n if (ext.filter) {\n text = ext.filter(text, globals.converter, options);\n\n } else if (ext.regex) {\n // TODO remove this when old extension loading mechanism is deprecated\n var re = ext.regex;\n if (!(re instanceof RegExp)) {\n re = new RegExp(re, 'g');\n }\n text = text.replace(re, ext.replace);\n }\n\n return text;\n});\n\r\n/**\n * These are all the transformations that occur *within* block-level\n * tags like paragraphs, headers, and list items.\n */\nshowdown.subParser('spanGamut', function (text, options, globals) {\n 'use strict';\n\n text = globals.converter._dispatch('spanGamut.before', text, options, globals);\n text = showdown.subParser('codeSpans')(text, options, globals);\n text = showdown.subParser('escapeSpecialCharsWithinTagAttributes')(text, options, globals);\n text = showdown.subParser('encodeBackslashEscapes')(text, options, globals);\n\n // Process anchor and image tags. Images must come first,\n // because ![foo][f] looks like an anchor.\n text = showdown.subParser('images')(text, options, globals);\n text = showdown.subParser('anchors')(text, options, globals);\n\n // Make links out of things like ``\n // Must come after anchors, because you can use < and >\n // delimiters in inline links like [this]().\n text = showdown.subParser('autoLinks')(text, options, globals);\n text = showdown.subParser('simplifiedAutoLinks')(text, options, globals);\n text = showdown.subParser('emoji')(text, options, globals);\n text = showdown.subParser('underline')(text, options, globals);\n text = showdown.subParser('italicsAndBold')(text, options, globals);\n text = showdown.subParser('strikethrough')(text, options, globals);\n text = showdown.subParser('ellipsis')(text, options, globals);\n\n // we need to hash HTML tags inside spans\n text = showdown.subParser('hashHTMLSpans')(text, options, globals);\n\n // now we encode amps and angles\n text = showdown.subParser('encodeAmpsAndAngles')(text, options, globals);\n\n // Do hard breaks\n if (options.simpleLineBreaks) {\n // GFM style hard breaks\n // only add line breaks if the text does not contain a block (special case for lists)\n if (!/\\n\\n¨K/.test(text)) {\n text = text.replace(/\\n+/g, '
    \\n');\n }\n } else {\n // Vanilla hard breaks\n text = text.replace(/ +\\n/g, '
    \\n');\n }\n\n text = globals.converter._dispatch('spanGamut.after', text, options, globals);\n return text;\n});\n\r\nshowdown.subParser('strikethrough', function (text, options, globals) {\n 'use strict';\n\n function parseInside (txt) {\n if (options.simplifiedAutoLink) {\n txt = showdown.subParser('simplifiedAutoLinks')(txt, options, globals);\n }\n return '' + txt + '';\n }\n\n if (options.strikethrough) {\n text = globals.converter._dispatch('strikethrough.before', text, options, globals);\n text = text.replace(/(?:~){2}([\\s\\S]+?)(?:~){2}/g, function (wm, txt) { return parseInside(txt); });\n text = globals.converter._dispatch('strikethrough.after', text, options, globals);\n }\n\n return text;\n});\n\r\n/**\n * Strips link definitions from text, stores the URLs and titles in\n * hash references.\n * Link defs are in the form: ^[id]: url \"optional title\"\n */\nshowdown.subParser('stripLinkDefinitions', function (text, options, globals) {\n 'use strict';\n\n var regex = /^ {0,3}\\[([^\\]]+)]:[ \\t]*\\n?[ \\t]*\\s]+)>?(?: =([*\\d]+[A-Za-z%]{0,4})x([*\\d]+[A-Za-z%]{0,4}))?[ \\t]*\\n?[ \\t]*(?:(\\n*)[\"|'(](.+?)[\"|')][ \\t]*)?(?:\\n+|(?=¨0))/gm,\n base64Regex = /^ {0,3}\\[([^\\]]+)]:[ \\t]*\\n?[ \\t]*?(?: =([*\\d]+[A-Za-z%]{0,4})x([*\\d]+[A-Za-z%]{0,4}))?[ \\t]*\\n?[ \\t]*(?:(\\n*)[\"|'(](.+?)[\"|')][ \\t]*)?(?:\\n\\n|(?=¨0)|(?=\\n\\[))/gm;\n\n // attacklab: sentinel workarounds for lack of \\A and \\Z, safari\\khtml bug\n text += '¨0';\n\n var replaceFunc = function (wholeMatch, linkId, url, width, height, blankLines, title) {\n\n // if there aren't two instances of linkId it must not be a reference link so back out\n linkId = linkId.toLowerCase();\n if (text.toLowerCase().split(linkId).length - 1 < 2) {\n return wholeMatch;\n }\n if (url.match(/^data:.+?\\/.+?;base64,/)) {\n // remove newlines\n globals.gUrls[linkId] = url.replace(/\\s/g, '');\n } else {\n globals.gUrls[linkId] = showdown.subParser('encodeAmpsAndAngles')(url, options, globals); // Link IDs are case-insensitive\n }\n\n if (blankLines) {\n // Oops, found blank lines, so it's not a title.\n // Put back the parenthetical statement we stole.\n return blankLines + title;\n\n } else {\n if (title) {\n globals.gTitles[linkId] = title.replace(/\"|'/g, '"');\n }\n if (options.parseImgDimensions && width && height) {\n globals.gDimensions[linkId] = {\n width: width,\n height: height\n };\n }\n }\n // Completely remove the definition from the text\n return '';\n };\n\n // first we try to find base64 link references\n text = text.replace(base64Regex, replaceFunc);\n\n text = text.replace(regex, replaceFunc);\n\n // attacklab: strip sentinel\n text = text.replace(/¨0/, '');\n\n return text;\n});\n\r\nshowdown.subParser('tables', function (text, options, globals) {\n 'use strict';\n\n if (!options.tables) {\n return text;\n }\n\n var tableRgx = /^ {0,3}\\|?.+\\|.+\\n {0,3}\\|?[ \\t]*:?[ \\t]*(?:[-=]){2,}[ \\t]*:?[ \\t]*\\|[ \\t]*:?[ \\t]*(?:[-=]){2,}[\\s\\S]+?(?:\\n\\n|¨0)/gm,\n //singeColTblRgx = /^ {0,3}\\|.+\\|\\n {0,3}\\|[ \\t]*:?[ \\t]*(?:[-=]){2,}[ \\t]*:?[ \\t]*\\|[ \\t]*\\n(?: {0,3}\\|.+\\|\\n)+(?:\\n\\n|¨0)/gm;\n singeColTblRgx = /^ {0,3}\\|.+\\|[ \\t]*\\n {0,3}\\|[ \\t]*:?[ \\t]*(?:[-=]){2,}[ \\t]*:?[ \\t]*\\|[ \\t]*\\n( {0,3}\\|.+\\|[ \\t]*\\n)*(?:\\n|¨0)/gm;\n\n function parseStyles (sLine) {\n if (/^:[ \\t]*--*$/.test(sLine)) {\n return ' style=\"text-align:left;\"';\n } else if (/^--*[ \\t]*:[ \\t]*$/.test(sLine)) {\n return ' style=\"text-align:right;\"';\n } else if (/^:[ \\t]*--*[ \\t]*:$/.test(sLine)) {\n return ' style=\"text-align:center;\"';\n } else {\n return '';\n }\n }\n\n function parseHeaders (header, style) {\n var id = '';\n header = header.trim();\n // support both tablesHeaderId and tableHeaderId due to error in documentation so we don't break backwards compatibility\n if (options.tablesHeaderId || options.tableHeaderId) {\n id = ' id=\"' + header.replace(/ /g, '_').toLowerCase() + '\"';\n }\n header = showdown.subParser('spanGamut')(header, options, globals);\n\n return '' + header + '\\n';\n }\n\n function parseCells (cell, style) {\n var subText = showdown.subParser('spanGamut')(cell, options, globals);\n return '' + subText + '\\n';\n }\n\n function buildTable (headers, cells) {\n var tb = '\\n\\n\\n',\n tblLgn = headers.length;\n\n for (var i = 0; i < tblLgn; ++i) {\n tb += headers[i];\n }\n tb += '\\n\\n\\n';\n\n for (i = 0; i < cells.length; ++i) {\n tb += '\\n';\n for (var ii = 0; ii < tblLgn; ++ii) {\n tb += cells[i][ii];\n }\n tb += '\\n';\n }\n tb += '\\n
    \\n';\n return tb;\n }\n\n function parseTable (rawTable) {\n var i, tableLines = rawTable.split('\\n');\n\n for (i = 0; i < tableLines.length; ++i) {\n // strip wrong first and last column if wrapped tables are used\n if (/^ {0,3}\\|/.test(tableLines[i])) {\n tableLines[i] = tableLines[i].replace(/^ {0,3}\\|/, '');\n }\n if (/\\|[ \\t]*$/.test(tableLines[i])) {\n tableLines[i] = tableLines[i].replace(/\\|[ \\t]*$/, '');\n }\n // parse code spans first, but we only support one line code spans\n tableLines[i] = showdown.subParser('codeSpans')(tableLines[i], options, globals);\n }\n\n var rawHeaders = tableLines[0].split('|').map(function (s) { return s.trim();}),\n rawStyles = tableLines[1].split('|').map(function (s) { return s.trim();}),\n rawCells = [],\n headers = [],\n styles = [],\n cells = [];\n\n tableLines.shift();\n tableLines.shift();\n\n for (i = 0; i < tableLines.length; ++i) {\n if (tableLines[i].trim() === '') {\n continue;\n }\n rawCells.push(\n tableLines[i]\n .split('|')\n .map(function (s) {\n return s.trim();\n })\n );\n }\n\n if (rawHeaders.length < rawStyles.length) {\n return rawTable;\n }\n\n for (i = 0; i < rawStyles.length; ++i) {\n styles.push(parseStyles(rawStyles[i]));\n }\n\n for (i = 0; i < rawHeaders.length; ++i) {\n if (showdown.helper.isUndefined(styles[i])) {\n styles[i] = '';\n }\n headers.push(parseHeaders(rawHeaders[i], styles[i]));\n }\n\n for (i = 0; i < rawCells.length; ++i) {\n var row = [];\n for (var ii = 0; ii < headers.length; ++ii) {\n if (showdown.helper.isUndefined(rawCells[i][ii])) {\n\n }\n row.push(parseCells(rawCells[i][ii], styles[ii]));\n }\n cells.push(row);\n }\n\n return buildTable(headers, cells);\n }\n\n text = globals.converter._dispatch('tables.before', text, options, globals);\n\n // find escaped pipe characters\n text = text.replace(/\\\\(\\|)/g, showdown.helper.escapeCharactersCallback);\n\n // parse multi column tables\n text = text.replace(tableRgx, parseTable);\n\n // parse one column tables\n text = text.replace(singeColTblRgx, parseTable);\n\n text = globals.converter._dispatch('tables.after', text, options, globals);\n\n return text;\n});\n\r\nshowdown.subParser('underline', function (text, options, globals) {\n 'use strict';\n\n if (!options.underline) {\n return text;\n }\n\n text = globals.converter._dispatch('underline.before', text, options, globals);\n\n if (options.literalMidWordUnderscores) {\n text = text.replace(/\\b___(\\S[\\s\\S]*?)___\\b/g, function (wm, txt) {\n return '' + txt + '';\n });\n text = text.replace(/\\b__(\\S[\\s\\S]*?)__\\b/g, function (wm, txt) {\n return '' + txt + '';\n });\n } else {\n text = text.replace(/___(\\S[\\s\\S]*?)___/g, function (wm, m) {\n return (/\\S$/.test(m)) ? '' + m + '' : wm;\n });\n text = text.replace(/__(\\S[\\s\\S]*?)__/g, function (wm, m) {\n return (/\\S$/.test(m)) ? '' + m + '' : wm;\n });\n }\n\n // escape remaining underscores to prevent them being parsed by italic and bold\n text = text.replace(/(_)/g, showdown.helper.escapeCharactersCallback);\n\n text = globals.converter._dispatch('underline.after', text, options, globals);\n\n return text;\n});\n\r\n/**\n * Swap back in all the special characters we've hidden.\n */\nshowdown.subParser('unescapeSpecialChars', function (text, options, globals) {\n 'use strict';\n text = globals.converter._dispatch('unescapeSpecialChars.before', text, options, globals);\n\n text = text.replace(/¨E(\\d+)E/g, function (wholeMatch, m1) {\n var charCodeToReplace = parseInt(m1);\n return String.fromCharCode(charCodeToReplace);\n });\n\n text = globals.converter._dispatch('unescapeSpecialChars.after', text, options, globals);\n return text;\n});\n\r\nshowdown.subParser('makeMarkdown.blockquote', function (node, globals) {\n 'use strict';\n\n var txt = '';\n if (node.hasChildNodes()) {\n var children = node.childNodes,\n childrenLength = children.length;\n\n for (var i = 0; i < childrenLength; ++i) {\n var innerTxt = showdown.subParser('makeMarkdown.node')(children[i], globals);\n\n if (innerTxt === '') {\n continue;\n }\n txt += innerTxt;\n }\n }\n // cleanup\n txt = txt.trim();\n txt = '> ' + txt.split('\\n').join('\\n> ');\n return txt;\n});\n\r\nshowdown.subParser('makeMarkdown.codeBlock', function (node, globals) {\n 'use strict';\n\n var lang = node.getAttribute('language'),\n num = node.getAttribute('precodenum');\n return '```' + lang + '\\n' + globals.preList[num] + '\\n```';\n});\n\r\nshowdown.subParser('makeMarkdown.codeSpan', function (node) {\n 'use strict';\n\n return '`' + node.innerHTML + '`';\n});\n\r\nshowdown.subParser('makeMarkdown.emphasis', function (node, globals) {\n 'use strict';\n\n var txt = '';\n if (node.hasChildNodes()) {\n txt += '*';\n var children = node.childNodes,\n childrenLength = children.length;\n for (var i = 0; i < childrenLength; ++i) {\n txt += showdown.subParser('makeMarkdown.node')(children[i], globals);\n }\n txt += '*';\n }\n return txt;\n});\n\r\nshowdown.subParser('makeMarkdown.header', function (node, globals, headerLevel) {\n 'use strict';\n\n var headerMark = new Array(headerLevel + 1).join('#'),\n txt = '';\n\n if (node.hasChildNodes()) {\n txt = headerMark + ' ';\n var children = node.childNodes,\n childrenLength = children.length;\n\n for (var i = 0; i < childrenLength; ++i) {\n txt += showdown.subParser('makeMarkdown.node')(children[i], globals);\n }\n }\n return txt;\n});\n\r\nshowdown.subParser('makeMarkdown.hr', function () {\n 'use strict';\n\n return '---';\n});\n\r\nshowdown.subParser('makeMarkdown.image', function (node) {\n 'use strict';\n\n var txt = '';\n if (node.hasAttribute('src')) {\n txt += '![' + node.getAttribute('alt') + '](';\n txt += '<' + node.getAttribute('src') + '>';\n if (node.hasAttribute('width') && node.hasAttribute('height')) {\n txt += ' =' + node.getAttribute('width') + 'x' + node.getAttribute('height');\n }\n\n if (node.hasAttribute('title')) {\n txt += ' \"' + node.getAttribute('title') + '\"';\n }\n txt += ')';\n }\n return txt;\n});\n\r\nshowdown.subParser('makeMarkdown.links', function (node, globals) {\n 'use strict';\n\n var txt = '';\n if (node.hasChildNodes() && node.hasAttribute('href')) {\n var children = node.childNodes,\n childrenLength = children.length;\n txt = '[';\n for (var i = 0; i < childrenLength; ++i) {\n txt += showdown.subParser('makeMarkdown.node')(children[i], globals);\n }\n txt += '](';\n txt += '<' + node.getAttribute('href') + '>';\n if (node.hasAttribute('title')) {\n txt += ' \"' + node.getAttribute('title') + '\"';\n }\n txt += ')';\n }\n return txt;\n});\n\r\nshowdown.subParser('makeMarkdown.list', function (node, globals, type) {\n 'use strict';\n\n var txt = '';\n if (!node.hasChildNodes()) {\n return '';\n }\n var listItems = node.childNodes,\n listItemsLenght = listItems.length,\n listNum = node.getAttribute('start') || 1;\n\n for (var i = 0; i < listItemsLenght; ++i) {\n if (typeof listItems[i].tagName === 'undefined' || listItems[i].tagName.toLowerCase() !== 'li') {\n continue;\n }\n\n // define the bullet to use in list\n var bullet = '';\n if (type === 'ol') {\n bullet = listNum.toString() + '. ';\n } else {\n bullet = '- ';\n }\n\n // parse list item\n txt += bullet + showdown.subParser('makeMarkdown.listItem')(listItems[i], globals);\n ++listNum;\n }\n\n // add comment at the end to prevent consecutive lists to be parsed as one\n txt += '\\n\\n';\n return txt.trim();\n});\n\r\nshowdown.subParser('makeMarkdown.listItem', function (node, globals) {\n 'use strict';\n\n var listItemTxt = '';\n\n var children = node.childNodes,\n childrenLenght = children.length;\n\n for (var i = 0; i < childrenLenght; ++i) {\n listItemTxt += showdown.subParser('makeMarkdown.node')(children[i], globals);\n }\n // if it's only one liner, we need to add a newline at the end\n if (!/\\n$/.test(listItemTxt)) {\n listItemTxt += '\\n';\n } else {\n // it's multiparagraph, so we need to indent\n listItemTxt = listItemTxt\n .split('\\n')\n .join('\\n ')\n .replace(/^ {4}$/gm, '')\n .replace(/\\n\\n+/g, '\\n\\n');\n }\n\n return listItemTxt;\n});\n\r\n\n\nshowdown.subParser('makeMarkdown.node', function (node, globals, spansOnly) {\n 'use strict';\n\n spansOnly = spansOnly || false;\n\n var txt = '';\n\n // edge case of text without wrapper paragraph\n if (node.nodeType === 3) {\n return showdown.subParser('makeMarkdown.txt')(node, globals);\n }\n\n // HTML comment\n if (node.nodeType === 8) {\n return '\\n\\n';\n }\n\n // process only node elements\n if (node.nodeType !== 1) {\n return '';\n }\n\n var tagName = node.tagName.toLowerCase();\n\n switch (tagName) {\n\n //\n // BLOCKS\n //\n case 'h1':\n if (!spansOnly) { txt = showdown.subParser('makeMarkdown.header')(node, globals, 1) + '\\n\\n'; }\n break;\n case 'h2':\n if (!spansOnly) { txt = showdown.subParser('makeMarkdown.header')(node, globals, 2) + '\\n\\n'; }\n break;\n case 'h3':\n if (!spansOnly) { txt = showdown.subParser('makeMarkdown.header')(node, globals, 3) + '\\n\\n'; }\n break;\n case 'h4':\n if (!spansOnly) { txt = showdown.subParser('makeMarkdown.header')(node, globals, 4) + '\\n\\n'; }\n break;\n case 'h5':\n if (!spansOnly) { txt = showdown.subParser('makeMarkdown.header')(node, globals, 5) + '\\n\\n'; }\n break;\n case 'h6':\n if (!spansOnly) { txt = showdown.subParser('makeMarkdown.header')(node, globals, 6) + '\\n\\n'; }\n break;\n\n case 'p':\n if (!spansOnly) { txt = showdown.subParser('makeMarkdown.paragraph')(node, globals) + '\\n\\n'; }\n break;\n\n case 'blockquote':\n if (!spansOnly) { txt = showdown.subParser('makeMarkdown.blockquote')(node, globals) + '\\n\\n'; }\n break;\n\n case 'hr':\n if (!spansOnly) { txt = showdown.subParser('makeMarkdown.hr')(node, globals) + '\\n\\n'; }\n break;\n\n case 'ol':\n if (!spansOnly) { txt = showdown.subParser('makeMarkdown.list')(node, globals, 'ol') + '\\n\\n'; }\n break;\n\n case 'ul':\n if (!spansOnly) { txt = showdown.subParser('makeMarkdown.list')(node, globals, 'ul') + '\\n\\n'; }\n break;\n\n case 'precode':\n if (!spansOnly) { txt = showdown.subParser('makeMarkdown.codeBlock')(node, globals) + '\\n\\n'; }\n break;\n\n case 'pre':\n if (!spansOnly) { txt = showdown.subParser('makeMarkdown.pre')(node, globals) + '\\n\\n'; }\n break;\n\n case 'table':\n if (!spansOnly) { txt = showdown.subParser('makeMarkdown.table')(node, globals) + '\\n\\n'; }\n break;\n\n //\n // SPANS\n //\n case 'code':\n txt = showdown.subParser('makeMarkdown.codeSpan')(node, globals);\n break;\n\n case 'em':\n case 'i':\n txt = showdown.subParser('makeMarkdown.emphasis')(node, globals);\n break;\n\n case 'strong':\n case 'b':\n txt = showdown.subParser('makeMarkdown.strong')(node, globals);\n break;\n\n case 'del':\n txt = showdown.subParser('makeMarkdown.strikethrough')(node, globals);\n break;\n\n case 'a':\n txt = showdown.subParser('makeMarkdown.links')(node, globals);\n break;\n\n case 'img':\n txt = showdown.subParser('makeMarkdown.image')(node, globals);\n break;\n\n default:\n txt = node.outerHTML + '\\n\\n';\n }\n\n // common normalization\n // TODO eventually\n\n return txt;\n});\n\r\nshowdown.subParser('makeMarkdown.paragraph', function (node, globals) {\n 'use strict';\n\n var txt = '';\n if (node.hasChildNodes()) {\n var children = node.childNodes,\n childrenLength = children.length;\n for (var i = 0; i < childrenLength; ++i) {\n txt += showdown.subParser('makeMarkdown.node')(children[i], globals);\n }\n }\n\n // some text normalization\n txt = txt.trim();\n\n return txt;\n});\n\r\nshowdown.subParser('makeMarkdown.pre', function (node, globals) {\n 'use strict';\n\n var num = node.getAttribute('prenum');\n return '
    ' + globals.preList[num] + '
    ';\n});\n\r\nshowdown.subParser('makeMarkdown.strikethrough', function (node, globals) {\n 'use strict';\n\n var txt = '';\n if (node.hasChildNodes()) {\n txt += '~~';\n var children = node.childNodes,\n childrenLength = children.length;\n for (var i = 0; i < childrenLength; ++i) {\n txt += showdown.subParser('makeMarkdown.node')(children[i], globals);\n }\n txt += '~~';\n }\n return txt;\n});\n\r\nshowdown.subParser('makeMarkdown.strong', function (node, globals) {\n 'use strict';\n\n var txt = '';\n if (node.hasChildNodes()) {\n txt += '**';\n var children = node.childNodes,\n childrenLength = children.length;\n for (var i = 0; i < childrenLength; ++i) {\n txt += showdown.subParser('makeMarkdown.node')(children[i], globals);\n }\n txt += '**';\n }\n return txt;\n});\n\r\nshowdown.subParser('makeMarkdown.table', function (node, globals) {\n 'use strict';\n\n var txt = '',\n tableArray = [[], []],\n headings = node.querySelectorAll('thead>tr>th'),\n rows = node.querySelectorAll('tbody>tr'),\n i, ii;\n for (i = 0; i < headings.length; ++i) {\n var headContent = showdown.subParser('makeMarkdown.tableCell')(headings[i], globals),\n allign = '---';\n\n if (headings[i].hasAttribute('style')) {\n var style = headings[i].getAttribute('style').toLowerCase().replace(/\\s/g, '');\n switch (style) {\n case 'text-align:left;':\n allign = ':---';\n break;\n case 'text-align:right;':\n allign = '---:';\n break;\n case 'text-align:center;':\n allign = ':---:';\n break;\n }\n }\n tableArray[0][i] = headContent.trim();\n tableArray[1][i] = allign;\n }\n\n for (i = 0; i < rows.length; ++i) {\n var r = tableArray.push([]) - 1,\n cols = rows[i].getElementsByTagName('td');\n\n for (ii = 0; ii < headings.length; ++ii) {\n var cellContent = ' ';\n if (typeof cols[ii] !== 'undefined') {\n cellContent = showdown.subParser('makeMarkdown.tableCell')(cols[ii], globals);\n }\n tableArray[r].push(cellContent);\n }\n }\n\n var cellSpacesCount = 3;\n for (i = 0; i < tableArray.length; ++i) {\n for (ii = 0; ii < tableArray[i].length; ++ii) {\n var strLen = tableArray[i][ii].length;\n if (strLen > cellSpacesCount) {\n cellSpacesCount = strLen;\n }\n }\n }\n\n for (i = 0; i < tableArray.length; ++i) {\n for (ii = 0; ii < tableArray[i].length; ++ii) {\n if (i === 1) {\n if (tableArray[i][ii].slice(-1) === ':') {\n tableArray[i][ii] = showdown.helper.padEnd(tableArray[i][ii].slice(-1), cellSpacesCount - 1, '-') + ':';\n } else {\n tableArray[i][ii] = showdown.helper.padEnd(tableArray[i][ii], cellSpacesCount, '-');\n }\n } else {\n tableArray[i][ii] = showdown.helper.padEnd(tableArray[i][ii], cellSpacesCount);\n }\n }\n txt += '| ' + tableArray[i].join(' | ') + ' |\\n';\n }\n\n return txt.trim();\n});\n\r\nshowdown.subParser('makeMarkdown.tableCell', function (node, globals) {\n 'use strict';\n\n var txt = '';\n if (!node.hasChildNodes()) {\n return '';\n }\n var children = node.childNodes,\n childrenLength = children.length;\n\n for (var i = 0; i < childrenLength; ++i) {\n txt += showdown.subParser('makeMarkdown.node')(children[i], globals, true);\n }\n return txt.trim();\n});\n\r\nshowdown.subParser('makeMarkdown.txt', function (node) {\n 'use strict';\n\n var txt = node.nodeValue;\n\n // multiple spaces are collapsed\n txt = txt.replace(/ +/g, ' ');\n\n // replace the custom ¨NBSP; with a space\n txt = txt.replace(/¨NBSP;/g, ' ');\n\n // \", <, > and & should replace escaped html entities\n txt = showdown.helper.unescapeHTMLEntities(txt);\n\n // escape markdown magic characters\n // emphasis, strong and strikethrough - can appear everywhere\n // we also escape pipe (|) because of tables\n // and escape ` because of code blocks and spans\n txt = txt.replace(/([*_~|`])/g, '\\\\$1');\n\n // escape > because of blockquotes\n txt = txt.replace(/^(\\s*)>/g, '\\\\$1>');\n\n // hash character, only troublesome at the beginning of a line because of headers\n txt = txt.replace(/^#/gm, '\\\\#');\n\n // horizontal rules\n txt = txt.replace(/^(\\s*)([-=]{3,})(\\s*)$/, '$1\\\\$2$3');\n\n // dot, because of ordered lists, only troublesome at the beginning of a line when preceded by an integer\n txt = txt.replace(/^( {0,3}\\d+)\\./gm, '$1\\\\.');\n\n // +, * and -, at the beginning of a line becomes a list, so we need to escape them also (asterisk was already escaped)\n txt = txt.replace(/^( {0,3})([+-])/gm, '$1\\\\$2');\n\n // images and links, ] followed by ( is problematic, so we escape it\n txt = txt.replace(/]([\\s]*)\\(/g, '\\\\]$1\\\\(');\n\n // reference URIs must also be escaped\n txt = txt.replace(/^ {0,3}\\[([\\S \\t]*?)]:/gm, '\\\\[$1]:');\n\n return txt;\n});\n\r\nvar root = this;\n\n// AMD Loader\nif (typeof define === 'function' && define.amd) {\n define(function () {\n 'use strict';\n return showdown;\n });\n\n// CommonJS/nodeJS Loader\n} else if (typeof module !== 'undefined' && module.exports) {\n module.exports = showdown;\n\n// Regular Browser loader\n} else {\n root.showdown = showdown;\n}\n}).call(this);\r\n\n//# sourceMappingURL=showdown.js.map\r\n","/* eslint-disable no-multi-assign */\n\nfunction deepFreeze(obj) {\n if (obj instanceof Map) {\n obj.clear =\n obj.delete =\n obj.set =\n function () {\n throw new Error('map is read-only');\n };\n } else if (obj instanceof Set) {\n obj.add =\n obj.clear =\n obj.delete =\n function () {\n throw new Error('set is read-only');\n };\n }\n\n // Freeze self\n Object.freeze(obj);\n\n Object.getOwnPropertyNames(obj).forEach((name) => {\n const prop = obj[name];\n const type = typeof prop;\n\n // Freeze prop if it is an object or function and also not already frozen\n if ((type === 'object' || type === 'function') && !Object.isFrozen(prop)) {\n deepFreeze(prop);\n }\n });\n\n return obj;\n}\n\n/** @typedef {import('highlight.js').CallbackResponse} CallbackResponse */\n/** @typedef {import('highlight.js').CompiledMode} CompiledMode */\n/** @implements CallbackResponse */\n\nclass Response {\n /**\n * @param {CompiledMode} mode\n */\n constructor(mode) {\n // eslint-disable-next-line no-undefined\n if (mode.data === undefined) mode.data = {};\n\n this.data = mode.data;\n this.isMatchIgnored = false;\n }\n\n ignoreMatch() {\n this.isMatchIgnored = true;\n }\n}\n\n/**\n * @param {string} value\n * @returns {string}\n */\nfunction escapeHTML(value) {\n return value\n .replace(/&/g, '&')\n .replace(//g, '>')\n .replace(/\"/g, '"')\n .replace(/'/g, ''');\n}\n\n/**\n * performs a shallow merge of multiple objects into one\n *\n * @template T\n * @param {T} original\n * @param {Record[]} objects\n * @returns {T} a single new object\n */\nfunction inherit$1(original, ...objects) {\n /** @type Record */\n const result = Object.create(null);\n\n for (const key in original) {\n result[key] = original[key];\n }\n objects.forEach(function(obj) {\n for (const key in obj) {\n result[key] = obj[key];\n }\n });\n return /** @type {T} */ (result);\n}\n\n/**\n * @typedef {object} Renderer\n * @property {(text: string) => void} addText\n * @property {(node: Node) => void} openNode\n * @property {(node: Node) => void} closeNode\n * @property {() => string} value\n */\n\n/** @typedef {{scope?: string, language?: string, sublanguage?: boolean}} Node */\n/** @typedef {{walk: (r: Renderer) => void}} Tree */\n/** */\n\nconst SPAN_CLOSE = '';\n\n/**\n * Determines if a node needs to be wrapped in \n *\n * @param {Node} node */\nconst emitsWrappingTags = (node) => {\n // rarely we can have a sublanguage where language is undefined\n // TODO: track down why\n return !!node.scope;\n};\n\n/**\n *\n * @param {string} name\n * @param {{prefix:string}} options\n */\nconst scopeToCSSClass = (name, { prefix }) => {\n // sub-language\n if (name.startsWith(\"language:\")) {\n return name.replace(\"language:\", \"language-\");\n }\n // tiered scope: comment.line\n if (name.includes(\".\")) {\n const pieces = name.split(\".\");\n return [\n `${prefix}${pieces.shift()}`,\n ...(pieces.map((x, i) => `${x}${\"_\".repeat(i + 1)}`))\n ].join(\" \");\n }\n // simple scope\n return `${prefix}${name}`;\n};\n\n/** @type {Renderer} */\nclass HTMLRenderer {\n /**\n * Creates a new HTMLRenderer\n *\n * @param {Tree} parseTree - the parse tree (must support `walk` API)\n * @param {{classPrefix: string}} options\n */\n constructor(parseTree, options) {\n this.buffer = \"\";\n this.classPrefix = options.classPrefix;\n parseTree.walk(this);\n }\n\n /**\n * Adds texts to the output stream\n *\n * @param {string} text */\n addText(text) {\n this.buffer += escapeHTML(text);\n }\n\n /**\n * Adds a node open to the output stream (if needed)\n *\n * @param {Node} node */\n openNode(node) {\n if (!emitsWrappingTags(node)) return;\n\n const className = scopeToCSSClass(node.scope,\n { prefix: this.classPrefix });\n this.span(className);\n }\n\n /**\n * Adds a node close to the output stream (if needed)\n *\n * @param {Node} node */\n closeNode(node) {\n if (!emitsWrappingTags(node)) return;\n\n this.buffer += SPAN_CLOSE;\n }\n\n /**\n * returns the accumulated buffer\n */\n value() {\n return this.buffer;\n }\n\n // helpers\n\n /**\n * Builds a span element\n *\n * @param {string} className */\n span(className) {\n this.buffer += ``;\n }\n}\n\n/** @typedef {{scope?: string, language?: string, children: Node[]} | string} Node */\n/** @typedef {{scope?: string, language?: string, children: Node[]} } DataNode */\n/** @typedef {import('highlight.js').Emitter} Emitter */\n/** */\n\n/** @returns {DataNode} */\nconst newNode = (opts = {}) => {\n /** @type DataNode */\n const result = { children: [] };\n Object.assign(result, opts);\n return result;\n};\n\nclass TokenTree {\n constructor() {\n /** @type DataNode */\n this.rootNode = newNode();\n this.stack = [this.rootNode];\n }\n\n get top() {\n return this.stack[this.stack.length - 1];\n }\n\n get root() { return this.rootNode; }\n\n /** @param {Node} node */\n add(node) {\n this.top.children.push(node);\n }\n\n /** @param {string} scope */\n openNode(scope) {\n /** @type Node */\n const node = newNode({ scope });\n this.add(node);\n this.stack.push(node);\n }\n\n closeNode() {\n if (this.stack.length > 1) {\n return this.stack.pop();\n }\n // eslint-disable-next-line no-undefined\n return undefined;\n }\n\n closeAllNodes() {\n while (this.closeNode());\n }\n\n toJSON() {\n return JSON.stringify(this.rootNode, null, 4);\n }\n\n /**\n * @typedef { import(\"./html_renderer\").Renderer } Renderer\n * @param {Renderer} builder\n */\n walk(builder) {\n // this does not\n return this.constructor._walk(builder, this.rootNode);\n // this works\n // return TokenTree._walk(builder, this.rootNode);\n }\n\n /**\n * @param {Renderer} builder\n * @param {Node} node\n */\n static _walk(builder, node) {\n if (typeof node === \"string\") {\n builder.addText(node);\n } else if (node.children) {\n builder.openNode(node);\n node.children.forEach((child) => this._walk(builder, child));\n builder.closeNode(node);\n }\n return builder;\n }\n\n /**\n * @param {Node} node\n */\n static _collapse(node) {\n if (typeof node === \"string\") return;\n if (!node.children) return;\n\n if (node.children.every(el => typeof el === \"string\")) {\n // node.text = node.children.join(\"\");\n // delete node.children;\n node.children = [node.children.join(\"\")];\n } else {\n node.children.forEach((child) => {\n TokenTree._collapse(child);\n });\n }\n }\n}\n\n/**\n Currently this is all private API, but this is the minimal API necessary\n that an Emitter must implement to fully support the parser.\n\n Minimal interface:\n\n - addText(text)\n - __addSublanguage(emitter, subLanguageName)\n - startScope(scope)\n - endScope()\n - finalize()\n - toHTML()\n\n*/\n\n/**\n * @implements {Emitter}\n */\nclass TokenTreeEmitter extends TokenTree {\n /**\n * @param {*} options\n */\n constructor(options) {\n super();\n this.options = options;\n }\n\n /**\n * @param {string} text\n */\n addText(text) {\n if (text === \"\") { return; }\n\n this.add(text);\n }\n\n /** @param {string} scope */\n startScope(scope) {\n this.openNode(scope);\n }\n\n endScope() {\n this.closeNode();\n }\n\n /**\n * @param {Emitter & {root: DataNode}} emitter\n * @param {string} name\n */\n __addSublanguage(emitter, name) {\n /** @type DataNode */\n const node = emitter.root;\n if (name) node.scope = `language:${name}`;\n\n this.add(node);\n }\n\n toHTML() {\n const renderer = new HTMLRenderer(this, this.options);\n return renderer.value();\n }\n\n finalize() {\n this.closeAllNodes();\n return true;\n }\n}\n\n/**\n * @param {string} value\n * @returns {RegExp}\n * */\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction source(re) {\n if (!re) return null;\n if (typeof re === \"string\") return re;\n\n return re.source;\n}\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction lookahead(re) {\n return concat('(?=', re, ')');\n}\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction anyNumberOfTimes(re) {\n return concat('(?:', re, ')*');\n}\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction optional(re) {\n return concat('(?:', re, ')?');\n}\n\n/**\n * @param {...(RegExp | string) } args\n * @returns {string}\n */\nfunction concat(...args) {\n const joined = args.map((x) => source(x)).join(\"\");\n return joined;\n}\n\n/**\n * @param { Array } args\n * @returns {object}\n */\nfunction stripOptionsFromArgs(args) {\n const opts = args[args.length - 1];\n\n if (typeof opts === 'object' && opts.constructor === Object) {\n args.splice(args.length - 1, 1);\n return opts;\n } else {\n return {};\n }\n}\n\n/** @typedef { {capture?: boolean} } RegexEitherOptions */\n\n/**\n * Any of the passed expresssions may match\n *\n * Creates a huge this | this | that | that match\n * @param {(RegExp | string)[] | [...(RegExp | string)[], RegexEitherOptions]} args\n * @returns {string}\n */\nfunction either(...args) {\n /** @type { object & {capture?: boolean} } */\n const opts = stripOptionsFromArgs(args);\n const joined = '('\n + (opts.capture ? \"\" : \"?:\")\n + args.map((x) => source(x)).join(\"|\") + \")\";\n return joined;\n}\n\n/**\n * @param {RegExp | string} re\n * @returns {number}\n */\nfunction countMatchGroups(re) {\n return (new RegExp(re.toString() + '|')).exec('').length - 1;\n}\n\n/**\n * Does lexeme start with a regular expression match at the beginning\n * @param {RegExp} re\n * @param {string} lexeme\n */\nfunction startsWith(re, lexeme) {\n const match = re && re.exec(lexeme);\n return match && match.index === 0;\n}\n\n// BACKREF_RE matches an open parenthesis or backreference. To avoid\n// an incorrect parse, it additionally matches the following:\n// - [...] elements, where the meaning of parentheses and escapes change\n// - other escape sequences, so we do not misparse escape sequences as\n// interesting elements\n// - non-matching or lookahead parentheses, which do not capture. These\n// follow the '(' with a '?'.\nconst BACKREF_RE = /\\[(?:[^\\\\\\]]|\\\\.)*\\]|\\(\\??|\\\\([1-9][0-9]*)|\\\\./;\n\n// **INTERNAL** Not intended for outside usage\n// join logically computes regexps.join(separator), but fixes the\n// backreferences so they continue to match.\n// it also places each individual regular expression into it's own\n// match group, keeping track of the sequencing of those match groups\n// is currently an exercise for the caller. :-)\n/**\n * @param {(string | RegExp)[]} regexps\n * @param {{joinWith: string}} opts\n * @returns {string}\n */\nfunction _rewriteBackreferences(regexps, { joinWith }) {\n let numCaptures = 0;\n\n return regexps.map((regex) => {\n numCaptures += 1;\n const offset = numCaptures;\n let re = source(regex);\n let out = '';\n\n while (re.length > 0) {\n const match = BACKREF_RE.exec(re);\n if (!match) {\n out += re;\n break;\n }\n out += re.substring(0, match.index);\n re = re.substring(match.index + match[0].length);\n if (match[0][0] === '\\\\' && match[1]) {\n // Adjust the backreference.\n out += '\\\\' + String(Number(match[1]) + offset);\n } else {\n out += match[0];\n if (match[0] === '(') {\n numCaptures++;\n }\n }\n }\n return out;\n }).map(re => `(${re})`).join(joinWith);\n}\n\n/** @typedef {import('highlight.js').Mode} Mode */\n/** @typedef {import('highlight.js').ModeCallback} ModeCallback */\n\n// Common regexps\nconst MATCH_NOTHING_RE = /\\b\\B/;\nconst IDENT_RE = '[a-zA-Z]\\\\w*';\nconst UNDERSCORE_IDENT_RE = '[a-zA-Z_]\\\\w*';\nconst NUMBER_RE = '\\\\b\\\\d+(\\\\.\\\\d+)?';\nconst C_NUMBER_RE = '(-?)(\\\\b0[xX][a-fA-F0-9]+|(\\\\b\\\\d+(\\\\.\\\\d*)?|\\\\.\\\\d+)([eE][-+]?\\\\d+)?)'; // 0x..., 0..., decimal, float\nconst BINARY_NUMBER_RE = '\\\\b(0b[01]+)'; // 0b...\nconst RE_STARTERS_RE = '!|!=|!==|%|%=|&|&&|&=|\\\\*|\\\\*=|\\\\+|\\\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\\\?|\\\\[|\\\\{|\\\\(|\\\\^|\\\\^=|\\\\||\\\\|=|\\\\|\\\\||~';\n\n/**\n* @param { Partial & {binary?: string | RegExp} } opts\n*/\nconst SHEBANG = (opts = {}) => {\n const beginShebang = /^#![ ]*\\//;\n if (opts.binary) {\n opts.begin = concat(\n beginShebang,\n /.*\\b/,\n opts.binary,\n /\\b.*/);\n }\n return inherit$1({\n scope: 'meta',\n begin: beginShebang,\n end: /$/,\n relevance: 0,\n /** @type {ModeCallback} */\n \"on:begin\": (m, resp) => {\n if (m.index !== 0) resp.ignoreMatch();\n }\n }, opts);\n};\n\n// Common modes\nconst BACKSLASH_ESCAPE = {\n begin: '\\\\\\\\[\\\\s\\\\S]', relevance: 0\n};\nconst APOS_STRING_MODE = {\n scope: 'string',\n begin: '\\'',\n end: '\\'',\n illegal: '\\\\n',\n contains: [BACKSLASH_ESCAPE]\n};\nconst QUOTE_STRING_MODE = {\n scope: 'string',\n begin: '\"',\n end: '\"',\n illegal: '\\\\n',\n contains: [BACKSLASH_ESCAPE]\n};\nconst PHRASAL_WORDS_MODE = {\n begin: /\\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\\b/\n};\n/**\n * Creates a comment mode\n *\n * @param {string | RegExp} begin\n * @param {string | RegExp} end\n * @param {Mode | {}} [modeOptions]\n * @returns {Partial}\n */\nconst COMMENT = function(begin, end, modeOptions = {}) {\n const mode = inherit$1(\n {\n scope: 'comment',\n begin,\n end,\n contains: []\n },\n modeOptions\n );\n mode.contains.push({\n scope: 'doctag',\n // hack to avoid the space from being included. the space is necessary to\n // match here to prevent the plain text rule below from gobbling up doctags\n begin: '[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)',\n end: /(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,\n excludeBegin: true,\n relevance: 0\n });\n const ENGLISH_WORD = either(\n // list of common 1 and 2 letter words in English\n \"I\",\n \"a\",\n \"is\",\n \"so\",\n \"us\",\n \"to\",\n \"at\",\n \"if\",\n \"in\",\n \"it\",\n \"on\",\n // note: this is not an exhaustive list of contractions, just popular ones\n /[A-Za-z]+['](d|ve|re|ll|t|s|n)/, // contractions - can't we'd they're let's, etc\n /[A-Za-z]+[-][a-z]+/, // `no-way`, etc.\n /[A-Za-z][a-z]{2,}/ // allow capitalized words at beginning of sentences\n );\n // looking like plain text, more likely to be a comment\n mode.contains.push(\n {\n // TODO: how to include \", (, ) without breaking grammars that use these for\n // comment delimiters?\n // begin: /[ ]+([()\"]?([A-Za-z'-]{3,}|is|a|I|so|us|[tT][oO]|at|if|in|it|on)[.]?[()\":]?([.][ ]|[ ]|\\))){3}/\n // ---\n\n // this tries to find sequences of 3 english words in a row (without any\n // \"programming\" type syntax) this gives us a strong signal that we've\n // TRULY found a comment - vs perhaps scanning with the wrong language.\n // It's possible to find something that LOOKS like the start of the\n // comment - but then if there is no readable text - good chance it is a\n // false match and not a comment.\n //\n // for a visual example please see:\n // https://github.com/highlightjs/highlight.js/issues/2827\n\n begin: concat(\n /[ ]+/, // necessary to prevent us gobbling up doctags like /* @author Bob Mcgill */\n '(',\n ENGLISH_WORD,\n /[.]?[:]?([.][ ]|[ ])/,\n '){3}') // look for 3 words in a row\n }\n );\n return mode;\n};\nconst C_LINE_COMMENT_MODE = COMMENT('//', '$');\nconst C_BLOCK_COMMENT_MODE = COMMENT('/\\\\*', '\\\\*/');\nconst HASH_COMMENT_MODE = COMMENT('#', '$');\nconst NUMBER_MODE = {\n scope: 'number',\n begin: NUMBER_RE,\n relevance: 0\n};\nconst C_NUMBER_MODE = {\n scope: 'number',\n begin: C_NUMBER_RE,\n relevance: 0\n};\nconst BINARY_NUMBER_MODE = {\n scope: 'number',\n begin: BINARY_NUMBER_RE,\n relevance: 0\n};\nconst REGEXP_MODE = {\n scope: \"regexp\",\n begin: /\\/(?=[^/\\n]*\\/)/,\n end: /\\/[gimuy]*/,\n contains: [\n BACKSLASH_ESCAPE,\n {\n begin: /\\[/,\n end: /\\]/,\n relevance: 0,\n contains: [BACKSLASH_ESCAPE]\n }\n ]\n};\nconst TITLE_MODE = {\n scope: 'title',\n begin: IDENT_RE,\n relevance: 0\n};\nconst UNDERSCORE_TITLE_MODE = {\n scope: 'title',\n begin: UNDERSCORE_IDENT_RE,\n relevance: 0\n};\nconst METHOD_GUARD = {\n // excludes method names from keyword processing\n begin: '\\\\.\\\\s*' + UNDERSCORE_IDENT_RE,\n relevance: 0\n};\n\n/**\n * Adds end same as begin mechanics to a mode\n *\n * Your mode must include at least a single () match group as that first match\n * group is what is used for comparison\n * @param {Partial} mode\n */\nconst END_SAME_AS_BEGIN = function(mode) {\n return Object.assign(mode,\n {\n /** @type {ModeCallback} */\n 'on:begin': (m, resp) => { resp.data._beginMatch = m[1]; },\n /** @type {ModeCallback} */\n 'on:end': (m, resp) => { if (resp.data._beginMatch !== m[1]) resp.ignoreMatch(); }\n });\n};\n\nvar MODES = /*#__PURE__*/Object.freeze({\n __proto__: null,\n APOS_STRING_MODE: APOS_STRING_MODE,\n BACKSLASH_ESCAPE: BACKSLASH_ESCAPE,\n BINARY_NUMBER_MODE: BINARY_NUMBER_MODE,\n BINARY_NUMBER_RE: BINARY_NUMBER_RE,\n COMMENT: COMMENT,\n C_BLOCK_COMMENT_MODE: C_BLOCK_COMMENT_MODE,\n C_LINE_COMMENT_MODE: C_LINE_COMMENT_MODE,\n C_NUMBER_MODE: C_NUMBER_MODE,\n C_NUMBER_RE: C_NUMBER_RE,\n END_SAME_AS_BEGIN: END_SAME_AS_BEGIN,\n HASH_COMMENT_MODE: HASH_COMMENT_MODE,\n IDENT_RE: IDENT_RE,\n MATCH_NOTHING_RE: MATCH_NOTHING_RE,\n METHOD_GUARD: METHOD_GUARD,\n NUMBER_MODE: NUMBER_MODE,\n NUMBER_RE: NUMBER_RE,\n PHRASAL_WORDS_MODE: PHRASAL_WORDS_MODE,\n QUOTE_STRING_MODE: QUOTE_STRING_MODE,\n REGEXP_MODE: REGEXP_MODE,\n RE_STARTERS_RE: RE_STARTERS_RE,\n SHEBANG: SHEBANG,\n TITLE_MODE: TITLE_MODE,\n UNDERSCORE_IDENT_RE: UNDERSCORE_IDENT_RE,\n UNDERSCORE_TITLE_MODE: UNDERSCORE_TITLE_MODE\n});\n\n/**\n@typedef {import('highlight.js').CallbackResponse} CallbackResponse\n@typedef {import('highlight.js').CompilerExt} CompilerExt\n*/\n\n// Grammar extensions / plugins\n// See: https://github.com/highlightjs/highlight.js/issues/2833\n\n// Grammar extensions allow \"syntactic sugar\" to be added to the grammar modes\n// without requiring any underlying changes to the compiler internals.\n\n// `compileMatch` being the perfect small example of now allowing a grammar\n// author to write `match` when they desire to match a single expression rather\n// than being forced to use `begin`. The extension then just moves `match` into\n// `begin` when it runs. Ie, no features have been added, but we've just made\n// the experience of writing (and reading grammars) a little bit nicer.\n\n// ------\n\n// TODO: We need negative look-behind support to do this properly\n/**\n * Skip a match if it has a preceding dot\n *\n * This is used for `beginKeywords` to prevent matching expressions such as\n * `bob.keyword.do()`. The mode compiler automatically wires this up as a\n * special _internal_ 'on:begin' callback for modes with `beginKeywords`\n * @param {RegExpMatchArray} match\n * @param {CallbackResponse} response\n */\nfunction skipIfHasPrecedingDot(match, response) {\n const before = match.input[match.index - 1];\n if (before === \".\") {\n response.ignoreMatch();\n }\n}\n\n/**\n *\n * @type {CompilerExt}\n */\nfunction scopeClassName(mode, _parent) {\n // eslint-disable-next-line no-undefined\n if (mode.className !== undefined) {\n mode.scope = mode.className;\n delete mode.className;\n }\n}\n\n/**\n * `beginKeywords` syntactic sugar\n * @type {CompilerExt}\n */\nfunction beginKeywords(mode, parent) {\n if (!parent) return;\n if (!mode.beginKeywords) return;\n\n // for languages with keywords that include non-word characters checking for\n // a word boundary is not sufficient, so instead we check for a word boundary\n // or whitespace - this does no harm in any case since our keyword engine\n // doesn't allow spaces in keywords anyways and we still check for the boundary\n // first\n mode.begin = '\\\\b(' + mode.beginKeywords.split(' ').join('|') + ')(?!\\\\.)(?=\\\\b|\\\\s)';\n mode.__beforeBegin = skipIfHasPrecedingDot;\n mode.keywords = mode.keywords || mode.beginKeywords;\n delete mode.beginKeywords;\n\n // prevents double relevance, the keywords themselves provide\n // relevance, the mode doesn't need to double it\n // eslint-disable-next-line no-undefined\n if (mode.relevance === undefined) mode.relevance = 0;\n}\n\n/**\n * Allow `illegal` to contain an array of illegal values\n * @type {CompilerExt}\n */\nfunction compileIllegal(mode, _parent) {\n if (!Array.isArray(mode.illegal)) return;\n\n mode.illegal = either(...mode.illegal);\n}\n\n/**\n * `match` to match a single expression for readability\n * @type {CompilerExt}\n */\nfunction compileMatch(mode, _parent) {\n if (!mode.match) return;\n if (mode.begin || mode.end) throw new Error(\"begin & end are not supported with match\");\n\n mode.begin = mode.match;\n delete mode.match;\n}\n\n/**\n * provides the default 1 relevance to all modes\n * @type {CompilerExt}\n */\nfunction compileRelevance(mode, _parent) {\n // eslint-disable-next-line no-undefined\n if (mode.relevance === undefined) mode.relevance = 1;\n}\n\n// allow beforeMatch to act as a \"qualifier\" for the match\n// the full match begin must be [beforeMatch][begin]\nconst beforeMatchExt = (mode, parent) => {\n if (!mode.beforeMatch) return;\n // starts conflicts with endsParent which we need to make sure the child\n // rule is not matched multiple times\n if (mode.starts) throw new Error(\"beforeMatch cannot be used with starts\");\n\n const originalMode = Object.assign({}, mode);\n Object.keys(mode).forEach((key) => { delete mode[key]; });\n\n mode.keywords = originalMode.keywords;\n mode.begin = concat(originalMode.beforeMatch, lookahead(originalMode.begin));\n mode.starts = {\n relevance: 0,\n contains: [\n Object.assign(originalMode, { endsParent: true })\n ]\n };\n mode.relevance = 0;\n\n delete originalMode.beforeMatch;\n};\n\n// keywords that should have no default relevance value\nconst COMMON_KEYWORDS = [\n 'of',\n 'and',\n 'for',\n 'in',\n 'not',\n 'or',\n 'if',\n 'then',\n 'parent', // common variable name\n 'list', // common variable name\n 'value' // common variable name\n];\n\nconst DEFAULT_KEYWORD_SCOPE = \"keyword\";\n\n/**\n * Given raw keywords from a language definition, compile them.\n *\n * @param {string | Record | Array} rawKeywords\n * @param {boolean} caseInsensitive\n */\nfunction compileKeywords(rawKeywords, caseInsensitive, scopeName = DEFAULT_KEYWORD_SCOPE) {\n /** @type {import(\"highlight.js/private\").KeywordDict} */\n const compiledKeywords = Object.create(null);\n\n // input can be a string of keywords, an array of keywords, or a object with\n // named keys representing scopeName (which can then point to a string or array)\n if (typeof rawKeywords === 'string') {\n compileList(scopeName, rawKeywords.split(\" \"));\n } else if (Array.isArray(rawKeywords)) {\n compileList(scopeName, rawKeywords);\n } else {\n Object.keys(rawKeywords).forEach(function(scopeName) {\n // collapse all our objects back into the parent object\n Object.assign(\n compiledKeywords,\n compileKeywords(rawKeywords[scopeName], caseInsensitive, scopeName)\n );\n });\n }\n return compiledKeywords;\n\n // ---\n\n /**\n * Compiles an individual list of keywords\n *\n * Ex: \"for if when while|5\"\n *\n * @param {string} scopeName\n * @param {Array} keywordList\n */\n function compileList(scopeName, keywordList) {\n if (caseInsensitive) {\n keywordList = keywordList.map(x => x.toLowerCase());\n }\n keywordList.forEach(function(keyword) {\n const pair = keyword.split('|');\n compiledKeywords[pair[0]] = [scopeName, scoreForKeyword(pair[0], pair[1])];\n });\n }\n}\n\n/**\n * Returns the proper score for a given keyword\n *\n * Also takes into account comment keywords, which will be scored 0 UNLESS\n * another score has been manually assigned.\n * @param {string} keyword\n * @param {string} [providedScore]\n */\nfunction scoreForKeyword(keyword, providedScore) {\n // manual scores always win over common keywords\n // so you can force a score of 1 if you really insist\n if (providedScore) {\n return Number(providedScore);\n }\n\n return commonKeyword(keyword) ? 0 : 1;\n}\n\n/**\n * Determines if a given keyword is common or not\n *\n * @param {string} keyword */\nfunction commonKeyword(keyword) {\n return COMMON_KEYWORDS.includes(keyword.toLowerCase());\n}\n\n/*\n\nFor the reasoning behind this please see:\nhttps://github.com/highlightjs/highlight.js/issues/2880#issuecomment-747275419\n\n*/\n\n/**\n * @type {Record}\n */\nconst seenDeprecations = {};\n\n/**\n * @param {string} message\n */\nconst error = (message) => {\n console.error(message);\n};\n\n/**\n * @param {string} message\n * @param {any} args\n */\nconst warn = (message, ...args) => {\n console.log(`WARN: ${message}`, ...args);\n};\n\n/**\n * @param {string} version\n * @param {string} message\n */\nconst deprecated = (version, message) => {\n if (seenDeprecations[`${version}/${message}`]) return;\n\n console.log(`Deprecated as of ${version}. ${message}`);\n seenDeprecations[`${version}/${message}`] = true;\n};\n\n/* eslint-disable no-throw-literal */\n\n/**\n@typedef {import('highlight.js').CompiledMode} CompiledMode\n*/\n\nconst MultiClassError = new Error();\n\n/**\n * Renumbers labeled scope names to account for additional inner match\n * groups that otherwise would break everything.\n *\n * Lets say we 3 match scopes:\n *\n * { 1 => ..., 2 => ..., 3 => ... }\n *\n * So what we need is a clean match like this:\n *\n * (a)(b)(c) => [ \"a\", \"b\", \"c\" ]\n *\n * But this falls apart with inner match groups:\n *\n * (a)(((b)))(c) => [\"a\", \"b\", \"b\", \"b\", \"c\" ]\n *\n * Our scopes are now \"out of alignment\" and we're repeating `b` 3 times.\n * What needs to happen is the numbers are remapped:\n *\n * { 1 => ..., 2 => ..., 5 => ... }\n *\n * We also need to know that the ONLY groups that should be output\n * are 1, 2, and 5. This function handles this behavior.\n *\n * @param {CompiledMode} mode\n * @param {Array} regexes\n * @param {{key: \"beginScope\"|\"endScope\"}} opts\n */\nfunction remapScopeNames(mode, regexes, { key }) {\n let offset = 0;\n const scopeNames = mode[key];\n /** @type Record */\n const emit = {};\n /** @type Record */\n const positions = {};\n\n for (let i = 1; i <= regexes.length; i++) {\n positions[i + offset] = scopeNames[i];\n emit[i + offset] = true;\n offset += countMatchGroups(regexes[i - 1]);\n }\n // we use _emit to keep track of which match groups are \"top-level\" to avoid double\n // output from inside match groups\n mode[key] = positions;\n mode[key]._emit = emit;\n mode[key]._multi = true;\n}\n\n/**\n * @param {CompiledMode} mode\n */\nfunction beginMultiClass(mode) {\n if (!Array.isArray(mode.begin)) return;\n\n if (mode.skip || mode.excludeBegin || mode.returnBegin) {\n error(\"skip, excludeBegin, returnBegin not compatible with beginScope: {}\");\n throw MultiClassError;\n }\n\n if (typeof mode.beginScope !== \"object\" || mode.beginScope === null) {\n error(\"beginScope must be object\");\n throw MultiClassError;\n }\n\n remapScopeNames(mode, mode.begin, { key: \"beginScope\" });\n mode.begin = _rewriteBackreferences(mode.begin, { joinWith: \"\" });\n}\n\n/**\n * @param {CompiledMode} mode\n */\nfunction endMultiClass(mode) {\n if (!Array.isArray(mode.end)) return;\n\n if (mode.skip || mode.excludeEnd || mode.returnEnd) {\n error(\"skip, excludeEnd, returnEnd not compatible with endScope: {}\");\n throw MultiClassError;\n }\n\n if (typeof mode.endScope !== \"object\" || mode.endScope === null) {\n error(\"endScope must be object\");\n throw MultiClassError;\n }\n\n remapScopeNames(mode, mode.end, { key: \"endScope\" });\n mode.end = _rewriteBackreferences(mode.end, { joinWith: \"\" });\n}\n\n/**\n * this exists only to allow `scope: {}` to be used beside `match:`\n * Otherwise `beginScope` would necessary and that would look weird\n\n {\n match: [ /def/, /\\w+/ ]\n scope: { 1: \"keyword\" , 2: \"title\" }\n }\n\n * @param {CompiledMode} mode\n */\nfunction scopeSugar(mode) {\n if (mode.scope && typeof mode.scope === \"object\" && mode.scope !== null) {\n mode.beginScope = mode.scope;\n delete mode.scope;\n }\n}\n\n/**\n * @param {CompiledMode} mode\n */\nfunction MultiClass(mode) {\n scopeSugar(mode);\n\n if (typeof mode.beginScope === \"string\") {\n mode.beginScope = { _wrap: mode.beginScope };\n }\n if (typeof mode.endScope === \"string\") {\n mode.endScope = { _wrap: mode.endScope };\n }\n\n beginMultiClass(mode);\n endMultiClass(mode);\n}\n\n/**\n@typedef {import('highlight.js').Mode} Mode\n@typedef {import('highlight.js').CompiledMode} CompiledMode\n@typedef {import('highlight.js').Language} Language\n@typedef {import('highlight.js').HLJSPlugin} HLJSPlugin\n@typedef {import('highlight.js').CompiledLanguage} CompiledLanguage\n*/\n\n// compilation\n\n/**\n * Compiles a language definition result\n *\n * Given the raw result of a language definition (Language), compiles this so\n * that it is ready for highlighting code.\n * @param {Language} language\n * @returns {CompiledLanguage}\n */\nfunction compileLanguage(language) {\n /**\n * Builds a regex with the case sensitivity of the current language\n *\n * @param {RegExp | string} value\n * @param {boolean} [global]\n */\n function langRe(value, global) {\n return new RegExp(\n source(value),\n 'm'\n + (language.case_insensitive ? 'i' : '')\n + (language.unicodeRegex ? 'u' : '')\n + (global ? 'g' : '')\n );\n }\n\n /**\n Stores multiple regular expressions and allows you to quickly search for\n them all in a string simultaneously - returning the first match. It does\n this by creating a huge (a|b|c) regex - each individual item wrapped with ()\n and joined by `|` - using match groups to track position. When a match is\n found checking which position in the array has content allows us to figure\n out which of the original regexes / match groups triggered the match.\n\n The match object itself (the result of `Regex.exec`) is returned but also\n enhanced by merging in any meta-data that was registered with the regex.\n This is how we keep track of which mode matched, and what type of rule\n (`illegal`, `begin`, end, etc).\n */\n class MultiRegex {\n constructor() {\n this.matchIndexes = {};\n // @ts-ignore\n this.regexes = [];\n this.matchAt = 1;\n this.position = 0;\n }\n\n // @ts-ignore\n addRule(re, opts) {\n opts.position = this.position++;\n // @ts-ignore\n this.matchIndexes[this.matchAt] = opts;\n this.regexes.push([opts, re]);\n this.matchAt += countMatchGroups(re) + 1;\n }\n\n compile() {\n if (this.regexes.length === 0) {\n // avoids the need to check length every time exec is called\n // @ts-ignore\n this.exec = () => null;\n }\n const terminators = this.regexes.map(el => el[1]);\n this.matcherRe = langRe(_rewriteBackreferences(terminators, { joinWith: '|' }), true);\n this.lastIndex = 0;\n }\n\n /** @param {string} s */\n exec(s) {\n this.matcherRe.lastIndex = this.lastIndex;\n const match = this.matcherRe.exec(s);\n if (!match) { return null; }\n\n // eslint-disable-next-line no-undefined\n const i = match.findIndex((el, i) => i > 0 && el !== undefined);\n // @ts-ignore\n const matchData = this.matchIndexes[i];\n // trim off any earlier non-relevant match groups (ie, the other regex\n // match groups that make up the multi-matcher)\n match.splice(0, i);\n\n return Object.assign(match, matchData);\n }\n }\n\n /*\n Created to solve the key deficiently with MultiRegex - there is no way to\n test for multiple matches at a single location. Why would we need to do\n that? In the future a more dynamic engine will allow certain matches to be\n ignored. An example: if we matched say the 3rd regex in a large group but\n decided to ignore it - we'd need to started testing again at the 4th\n regex... but MultiRegex itself gives us no real way to do that.\n\n So what this class creates MultiRegexs on the fly for whatever search\n position they are needed.\n\n NOTE: These additional MultiRegex objects are created dynamically. For most\n grammars most of the time we will never actually need anything more than the\n first MultiRegex - so this shouldn't have too much overhead.\n\n Say this is our search group, and we match regex3, but wish to ignore it.\n\n regex1 | regex2 | regex3 | regex4 | regex5 ' ie, startAt = 0\n\n What we need is a new MultiRegex that only includes the remaining\n possibilities:\n\n regex4 | regex5 ' ie, startAt = 3\n\n This class wraps all that complexity up in a simple API... `startAt` decides\n where in the array of expressions to start doing the matching. It\n auto-increments, so if a match is found at position 2, then startAt will be\n set to 3. If the end is reached startAt will return to 0.\n\n MOST of the time the parser will be setting startAt manually to 0.\n */\n class ResumableMultiRegex {\n constructor() {\n // @ts-ignore\n this.rules = [];\n // @ts-ignore\n this.multiRegexes = [];\n this.count = 0;\n\n this.lastIndex = 0;\n this.regexIndex = 0;\n }\n\n // @ts-ignore\n getMatcher(index) {\n if (this.multiRegexes[index]) return this.multiRegexes[index];\n\n const matcher = new MultiRegex();\n this.rules.slice(index).forEach(([re, opts]) => matcher.addRule(re, opts));\n matcher.compile();\n this.multiRegexes[index] = matcher;\n return matcher;\n }\n\n resumingScanAtSamePosition() {\n return this.regexIndex !== 0;\n }\n\n considerAll() {\n this.regexIndex = 0;\n }\n\n // @ts-ignore\n addRule(re, opts) {\n this.rules.push([re, opts]);\n if (opts.type === \"begin\") this.count++;\n }\n\n /** @param {string} s */\n exec(s) {\n const m = this.getMatcher(this.regexIndex);\n m.lastIndex = this.lastIndex;\n let result = m.exec(s);\n\n // The following is because we have no easy way to say \"resume scanning at the\n // existing position but also skip the current rule ONLY\". What happens is\n // all prior rules are also skipped which can result in matching the wrong\n // thing. Example of matching \"booger\":\n\n // our matcher is [string, \"booger\", number]\n //\n // ....booger....\n\n // if \"booger\" is ignored then we'd really need a regex to scan from the\n // SAME position for only: [string, number] but ignoring \"booger\" (if it\n // was the first match), a simple resume would scan ahead who knows how\n // far looking only for \"number\", ignoring potential string matches (or\n // future \"booger\" matches that might be valid.)\n\n // So what we do: We execute two matchers, one resuming at the same\n // position, but the second full matcher starting at the position after:\n\n // /--- resume first regex match here (for [number])\n // |/---- full match here for [string, \"booger\", number]\n // vv\n // ....booger....\n\n // Which ever results in a match first is then used. So this 3-4 step\n // process essentially allows us to say \"match at this position, excluding\n // a prior rule that was ignored\".\n //\n // 1. Match \"booger\" first, ignore. Also proves that [string] does non match.\n // 2. Resume matching for [number]\n // 3. Match at index + 1 for [string, \"booger\", number]\n // 4. If #2 and #3 result in matches, which came first?\n if (this.resumingScanAtSamePosition()) {\n if (result && result.index === this.lastIndex) ; else { // use the second matcher result\n const m2 = this.getMatcher(0);\n m2.lastIndex = this.lastIndex + 1;\n result = m2.exec(s);\n }\n }\n\n if (result) {\n this.regexIndex += result.position + 1;\n if (this.regexIndex === this.count) {\n // wrap-around to considering all matches again\n this.considerAll();\n }\n }\n\n return result;\n }\n }\n\n /**\n * Given a mode, builds a huge ResumableMultiRegex that can be used to walk\n * the content and find matches.\n *\n * @param {CompiledMode} mode\n * @returns {ResumableMultiRegex}\n */\n function buildModeRegex(mode) {\n const mm = new ResumableMultiRegex();\n\n mode.contains.forEach(term => mm.addRule(term.begin, { rule: term, type: \"begin\" }));\n\n if (mode.terminatorEnd) {\n mm.addRule(mode.terminatorEnd, { type: \"end\" });\n }\n if (mode.illegal) {\n mm.addRule(mode.illegal, { type: \"illegal\" });\n }\n\n return mm;\n }\n\n /** skip vs abort vs ignore\n *\n * @skip - The mode is still entered and exited normally (and contains rules apply),\n * but all content is held and added to the parent buffer rather than being\n * output when the mode ends. Mostly used with `sublanguage` to build up\n * a single large buffer than can be parsed by sublanguage.\n *\n * - The mode begin ands ends normally.\n * - Content matched is added to the parent mode buffer.\n * - The parser cursor is moved forward normally.\n *\n * @abort - A hack placeholder until we have ignore. Aborts the mode (as if it\n * never matched) but DOES NOT continue to match subsequent `contains`\n * modes. Abort is bad/suboptimal because it can result in modes\n * farther down not getting applied because an earlier rule eats the\n * content but then aborts.\n *\n * - The mode does not begin.\n * - Content matched by `begin` is added to the mode buffer.\n * - The parser cursor is moved forward accordingly.\n *\n * @ignore - Ignores the mode (as if it never matched) and continues to match any\n * subsequent `contains` modes. Ignore isn't technically possible with\n * the current parser implementation.\n *\n * - The mode does not begin.\n * - Content matched by `begin` is ignored.\n * - The parser cursor is not moved forward.\n */\n\n /**\n * Compiles an individual mode\n *\n * This can raise an error if the mode contains certain detectable known logic\n * issues.\n * @param {Mode} mode\n * @param {CompiledMode | null} [parent]\n * @returns {CompiledMode | never}\n */\n function compileMode(mode, parent) {\n const cmode = /** @type CompiledMode */ (mode);\n if (mode.isCompiled) return cmode;\n\n [\n scopeClassName,\n // do this early so compiler extensions generally don't have to worry about\n // the distinction between match/begin\n compileMatch,\n MultiClass,\n beforeMatchExt\n ].forEach(ext => ext(mode, parent));\n\n language.compilerExtensions.forEach(ext => ext(mode, parent));\n\n // __beforeBegin is considered private API, internal use only\n mode.__beforeBegin = null;\n\n [\n beginKeywords,\n // do this later so compiler extensions that come earlier have access to the\n // raw array if they wanted to perhaps manipulate it, etc.\n compileIllegal,\n // default to 1 relevance if not specified\n compileRelevance\n ].forEach(ext => ext(mode, parent));\n\n mode.isCompiled = true;\n\n let keywordPattern = null;\n if (typeof mode.keywords === \"object\" && mode.keywords.$pattern) {\n // we need a copy because keywords might be compiled multiple times\n // so we can't go deleting $pattern from the original on the first\n // pass\n mode.keywords = Object.assign({}, mode.keywords);\n keywordPattern = mode.keywords.$pattern;\n delete mode.keywords.$pattern;\n }\n keywordPattern = keywordPattern || /\\w+/;\n\n if (mode.keywords) {\n mode.keywords = compileKeywords(mode.keywords, language.case_insensitive);\n }\n\n cmode.keywordPatternRe = langRe(keywordPattern, true);\n\n if (parent) {\n if (!mode.begin) mode.begin = /\\B|\\b/;\n cmode.beginRe = langRe(cmode.begin);\n if (!mode.end && !mode.endsWithParent) mode.end = /\\B|\\b/;\n if (mode.end) cmode.endRe = langRe(cmode.end);\n cmode.terminatorEnd = source(cmode.end) || '';\n if (mode.endsWithParent && parent.terminatorEnd) {\n cmode.terminatorEnd += (mode.end ? '|' : '') + parent.terminatorEnd;\n }\n }\n if (mode.illegal) cmode.illegalRe = langRe(/** @type {RegExp | string} */ (mode.illegal));\n if (!mode.contains) mode.contains = [];\n\n mode.contains = [].concat(...mode.contains.map(function(c) {\n return expandOrCloneMode(c === 'self' ? mode : c);\n }));\n mode.contains.forEach(function(c) { compileMode(/** @type Mode */ (c), cmode); });\n\n if (mode.starts) {\n compileMode(mode.starts, parent);\n }\n\n cmode.matcher = buildModeRegex(cmode);\n return cmode;\n }\n\n if (!language.compilerExtensions) language.compilerExtensions = [];\n\n // self is not valid at the top-level\n if (language.contains && language.contains.includes('self')) {\n throw new Error(\"ERR: contains `self` is not supported at the top-level of a language. See documentation.\");\n }\n\n // we need a null object, which inherit will guarantee\n language.classNameAliases = inherit$1(language.classNameAliases || {});\n\n return compileMode(/** @type Mode */ (language));\n}\n\n/**\n * Determines if a mode has a dependency on it's parent or not\n *\n * If a mode does have a parent dependency then often we need to clone it if\n * it's used in multiple places so that each copy points to the correct parent,\n * where-as modes without a parent can often safely be re-used at the bottom of\n * a mode chain.\n *\n * @param {Mode | null} mode\n * @returns {boolean} - is there a dependency on the parent?\n * */\nfunction dependencyOnParent(mode) {\n if (!mode) return false;\n\n return mode.endsWithParent || dependencyOnParent(mode.starts);\n}\n\n/**\n * Expands a mode or clones it if necessary\n *\n * This is necessary for modes with parental dependenceis (see notes on\n * `dependencyOnParent`) and for nodes that have `variants` - which must then be\n * exploded into their own individual modes at compile time.\n *\n * @param {Mode} mode\n * @returns {Mode | Mode[]}\n * */\nfunction expandOrCloneMode(mode) {\n if (mode.variants && !mode.cachedVariants) {\n mode.cachedVariants = mode.variants.map(function(variant) {\n return inherit$1(mode, { variants: null }, variant);\n });\n }\n\n // EXPAND\n // if we have variants then essentially \"replace\" the mode with the variants\n // this happens in compileMode, where this function is called from\n if (mode.cachedVariants) {\n return mode.cachedVariants;\n }\n\n // CLONE\n // if we have dependencies on parents then we need a unique\n // instance of ourselves, so we can be reused with many\n // different parents without issue\n if (dependencyOnParent(mode)) {\n return inherit$1(mode, { starts: mode.starts ? inherit$1(mode.starts) : null });\n }\n\n if (Object.isFrozen(mode)) {\n return inherit$1(mode);\n }\n\n // no special dependency issues, just return ourselves\n return mode;\n}\n\nvar version = \"11.10.0\";\n\nclass HTMLInjectionError extends Error {\n constructor(reason, html) {\n super(reason);\n this.name = \"HTMLInjectionError\";\n this.html = html;\n }\n}\n\n/*\nSyntax highlighting with language autodetection.\nhttps://highlightjs.org/\n*/\n\n\n\n/**\n@typedef {import('highlight.js').Mode} Mode\n@typedef {import('highlight.js').CompiledMode} CompiledMode\n@typedef {import('highlight.js').CompiledScope} CompiledScope\n@typedef {import('highlight.js').Language} Language\n@typedef {import('highlight.js').HLJSApi} HLJSApi\n@typedef {import('highlight.js').HLJSPlugin} HLJSPlugin\n@typedef {import('highlight.js').PluginEvent} PluginEvent\n@typedef {import('highlight.js').HLJSOptions} HLJSOptions\n@typedef {import('highlight.js').LanguageFn} LanguageFn\n@typedef {import('highlight.js').HighlightedHTMLElement} HighlightedHTMLElement\n@typedef {import('highlight.js').BeforeHighlightContext} BeforeHighlightContext\n@typedef {import('highlight.js/private').MatchType} MatchType\n@typedef {import('highlight.js/private').KeywordData} KeywordData\n@typedef {import('highlight.js/private').EnhancedMatch} EnhancedMatch\n@typedef {import('highlight.js/private').AnnotatedError} AnnotatedError\n@typedef {import('highlight.js').AutoHighlightResult} AutoHighlightResult\n@typedef {import('highlight.js').HighlightOptions} HighlightOptions\n@typedef {import('highlight.js').HighlightResult} HighlightResult\n*/\n\n\nconst escape = escapeHTML;\nconst inherit = inherit$1;\nconst NO_MATCH = Symbol(\"nomatch\");\nconst MAX_KEYWORD_HITS = 7;\n\n/**\n * @param {any} hljs - object that is extended (legacy)\n * @returns {HLJSApi}\n */\nconst HLJS = function(hljs) {\n // Global internal variables used within the highlight.js library.\n /** @type {Record} */\n const languages = Object.create(null);\n /** @type {Record} */\n const aliases = Object.create(null);\n /** @type {HLJSPlugin[]} */\n const plugins = [];\n\n // safe/production mode - swallows more errors, tries to keep running\n // even if a single syntax or parse hits a fatal error\n let SAFE_MODE = true;\n const LANGUAGE_NOT_FOUND = \"Could not find the language '{}', did you forget to load/include a language module?\";\n /** @type {Language} */\n const PLAINTEXT_LANGUAGE = { disableAutodetect: true, name: 'Plain text', contains: [] };\n\n // Global options used when within external APIs. This is modified when\n // calling the `hljs.configure` function.\n /** @type HLJSOptions */\n let options = {\n ignoreUnescapedHTML: false,\n throwUnescapedHTML: false,\n noHighlightRe: /^(no-?highlight)$/i,\n languageDetectRe: /\\blang(?:uage)?-([\\w-]+)\\b/i,\n classPrefix: 'hljs-',\n cssSelector: 'pre code',\n languages: null,\n // beta configuration options, subject to change, welcome to discuss\n // https://github.com/highlightjs/highlight.js/issues/1086\n __emitter: TokenTreeEmitter\n };\n\n /* Utility functions */\n\n /**\n * Tests a language name to see if highlighting should be skipped\n * @param {string} languageName\n */\n function shouldNotHighlight(languageName) {\n return options.noHighlightRe.test(languageName);\n }\n\n /**\n * @param {HighlightedHTMLElement} block - the HTML element to determine language for\n */\n function blockLanguage(block) {\n let classes = block.className + ' ';\n\n classes += block.parentNode ? block.parentNode.className : '';\n\n // language-* takes precedence over non-prefixed class names.\n const match = options.languageDetectRe.exec(classes);\n if (match) {\n const language = getLanguage(match[1]);\n if (!language) {\n warn(LANGUAGE_NOT_FOUND.replace(\"{}\", match[1]));\n warn(\"Falling back to no-highlight mode for this block.\", block);\n }\n return language ? match[1] : 'no-highlight';\n }\n\n return classes\n .split(/\\s+/)\n .find((_class) => shouldNotHighlight(_class) || getLanguage(_class));\n }\n\n /**\n * Core highlighting function.\n *\n * OLD API\n * highlight(lang, code, ignoreIllegals, continuation)\n *\n * NEW API\n * highlight(code, {lang, ignoreIllegals})\n *\n * @param {string} codeOrLanguageName - the language to use for highlighting\n * @param {string | HighlightOptions} optionsOrCode - the code to highlight\n * @param {boolean} [ignoreIllegals] - whether to ignore illegal matches, default is to bail\n *\n * @returns {HighlightResult} Result - an object that represents the result\n * @property {string} language - the language name\n * @property {number} relevance - the relevance score\n * @property {string} value - the highlighted HTML code\n * @property {string} code - the original raw code\n * @property {CompiledMode} top - top of the current mode stack\n * @property {boolean} illegal - indicates whether any illegal matches were found\n */\n function highlight(codeOrLanguageName, optionsOrCode, ignoreIllegals) {\n let code = \"\";\n let languageName = \"\";\n if (typeof optionsOrCode === \"object\") {\n code = codeOrLanguageName;\n ignoreIllegals = optionsOrCode.ignoreIllegals;\n languageName = optionsOrCode.language;\n } else {\n // old API\n deprecated(\"10.7.0\", \"highlight(lang, code, ...args) has been deprecated.\");\n deprecated(\"10.7.0\", \"Please use highlight(code, options) instead.\\nhttps://github.com/highlightjs/highlight.js/issues/2277\");\n languageName = codeOrLanguageName;\n code = optionsOrCode;\n }\n\n // https://github.com/highlightjs/highlight.js/issues/3149\n // eslint-disable-next-line no-undefined\n if (ignoreIllegals === undefined) { ignoreIllegals = true; }\n\n /** @type {BeforeHighlightContext} */\n const context = {\n code,\n language: languageName\n };\n // the plugin can change the desired language or the code to be highlighted\n // just be changing the object it was passed\n fire(\"before:highlight\", context);\n\n // a before plugin can usurp the result completely by providing it's own\n // in which case we don't even need to call highlight\n const result = context.result\n ? context.result\n : _highlight(context.language, context.code, ignoreIllegals);\n\n result.code = context.code;\n // the plugin can change anything in result to suite it\n fire(\"after:highlight\", result);\n\n return result;\n }\n\n /**\n * private highlight that's used internally and does not fire callbacks\n *\n * @param {string} languageName - the language to use for highlighting\n * @param {string} codeToHighlight - the code to highlight\n * @param {boolean?} [ignoreIllegals] - whether to ignore illegal matches, default is to bail\n * @param {CompiledMode?} [continuation] - current continuation mode, if any\n * @returns {HighlightResult} - result of the highlight operation\n */\n function _highlight(languageName, codeToHighlight, ignoreIllegals, continuation) {\n const keywordHits = Object.create(null);\n\n /**\n * Return keyword data if a match is a keyword\n * @param {CompiledMode} mode - current mode\n * @param {string} matchText - the textual match\n * @returns {KeywordData | false}\n */\n function keywordData(mode, matchText) {\n return mode.keywords[matchText];\n }\n\n function processKeywords() {\n if (!top.keywords) {\n emitter.addText(modeBuffer);\n return;\n }\n\n let lastIndex = 0;\n top.keywordPatternRe.lastIndex = 0;\n let match = top.keywordPatternRe.exec(modeBuffer);\n let buf = \"\";\n\n while (match) {\n buf += modeBuffer.substring(lastIndex, match.index);\n const word = language.case_insensitive ? match[0].toLowerCase() : match[0];\n const data = keywordData(top, word);\n if (data) {\n const [kind, keywordRelevance] = data;\n emitter.addText(buf);\n buf = \"\";\n\n keywordHits[word] = (keywordHits[word] || 0) + 1;\n if (keywordHits[word] <= MAX_KEYWORD_HITS) relevance += keywordRelevance;\n if (kind.startsWith(\"_\")) {\n // _ implied for relevance only, do not highlight\n // by applying a class name\n buf += match[0];\n } else {\n const cssClass = language.classNameAliases[kind] || kind;\n emitKeyword(match[0], cssClass);\n }\n } else {\n buf += match[0];\n }\n lastIndex = top.keywordPatternRe.lastIndex;\n match = top.keywordPatternRe.exec(modeBuffer);\n }\n buf += modeBuffer.substring(lastIndex);\n emitter.addText(buf);\n }\n\n function processSubLanguage() {\n if (modeBuffer === \"\") return;\n /** @type HighlightResult */\n let result = null;\n\n if (typeof top.subLanguage === 'string') {\n if (!languages[top.subLanguage]) {\n emitter.addText(modeBuffer);\n return;\n }\n result = _highlight(top.subLanguage, modeBuffer, true, continuations[top.subLanguage]);\n continuations[top.subLanguage] = /** @type {CompiledMode} */ (result._top);\n } else {\n result = highlightAuto(modeBuffer, top.subLanguage.length ? top.subLanguage : null);\n }\n\n // Counting embedded language score towards the host language may be disabled\n // with zeroing the containing mode relevance. Use case in point is Markdown that\n // allows XML everywhere and makes every XML snippet to have a much larger Markdown\n // score.\n if (top.relevance > 0) {\n relevance += result.relevance;\n }\n emitter.__addSublanguage(result._emitter, result.language);\n }\n\n function processBuffer() {\n if (top.subLanguage != null) {\n processSubLanguage();\n } else {\n processKeywords();\n }\n modeBuffer = '';\n }\n\n /**\n * @param {string} text\n * @param {string} scope\n */\n function emitKeyword(keyword, scope) {\n if (keyword === \"\") return;\n\n emitter.startScope(scope);\n emitter.addText(keyword);\n emitter.endScope();\n }\n\n /**\n * @param {CompiledScope} scope\n * @param {RegExpMatchArray} match\n */\n function emitMultiClass(scope, match) {\n let i = 1;\n const max = match.length - 1;\n while (i <= max) {\n if (!scope._emit[i]) { i++; continue; }\n const klass = language.classNameAliases[scope[i]] || scope[i];\n const text = match[i];\n if (klass) {\n emitKeyword(text, klass);\n } else {\n modeBuffer = text;\n processKeywords();\n modeBuffer = \"\";\n }\n i++;\n }\n }\n\n /**\n * @param {CompiledMode} mode - new mode to start\n * @param {RegExpMatchArray} match\n */\n function startNewMode(mode, match) {\n if (mode.scope && typeof mode.scope === \"string\") {\n emitter.openNode(language.classNameAliases[mode.scope] || mode.scope);\n }\n if (mode.beginScope) {\n // beginScope just wraps the begin match itself in a scope\n if (mode.beginScope._wrap) {\n emitKeyword(modeBuffer, language.classNameAliases[mode.beginScope._wrap] || mode.beginScope._wrap);\n modeBuffer = \"\";\n } else if (mode.beginScope._multi) {\n // at this point modeBuffer should just be the match\n emitMultiClass(mode.beginScope, match);\n modeBuffer = \"\";\n }\n }\n\n top = Object.create(mode, { parent: { value: top } });\n return top;\n }\n\n /**\n * @param {CompiledMode } mode - the mode to potentially end\n * @param {RegExpMatchArray} match - the latest match\n * @param {string} matchPlusRemainder - match plus remainder of content\n * @returns {CompiledMode | void} - the next mode, or if void continue on in current mode\n */\n function endOfMode(mode, match, matchPlusRemainder) {\n let matched = startsWith(mode.endRe, matchPlusRemainder);\n\n if (matched) {\n if (mode[\"on:end\"]) {\n const resp = new Response(mode);\n mode[\"on:end\"](match, resp);\n if (resp.isMatchIgnored) matched = false;\n }\n\n if (matched) {\n while (mode.endsParent && mode.parent) {\n mode = mode.parent;\n }\n return mode;\n }\n }\n // even if on:end fires an `ignore` it's still possible\n // that we might trigger the end node because of a parent mode\n if (mode.endsWithParent) {\n return endOfMode(mode.parent, match, matchPlusRemainder);\n }\n }\n\n /**\n * Handle matching but then ignoring a sequence of text\n *\n * @param {string} lexeme - string containing full match text\n */\n function doIgnore(lexeme) {\n if (top.matcher.regexIndex === 0) {\n // no more regexes to potentially match here, so we move the cursor forward one\n // space\n modeBuffer += lexeme[0];\n return 1;\n } else {\n // no need to move the cursor, we still have additional regexes to try and\n // match at this very spot\n resumeScanAtSamePosition = true;\n return 0;\n }\n }\n\n /**\n * Handle the start of a new potential mode match\n *\n * @param {EnhancedMatch} match - the current match\n * @returns {number} how far to advance the parse cursor\n */\n function doBeginMatch(match) {\n const lexeme = match[0];\n const newMode = match.rule;\n\n const resp = new Response(newMode);\n // first internal before callbacks, then the public ones\n const beforeCallbacks = [newMode.__beforeBegin, newMode[\"on:begin\"]];\n for (const cb of beforeCallbacks) {\n if (!cb) continue;\n cb(match, resp);\n if (resp.isMatchIgnored) return doIgnore(lexeme);\n }\n\n if (newMode.skip) {\n modeBuffer += lexeme;\n } else {\n if (newMode.excludeBegin) {\n modeBuffer += lexeme;\n }\n processBuffer();\n if (!newMode.returnBegin && !newMode.excludeBegin) {\n modeBuffer = lexeme;\n }\n }\n startNewMode(newMode, match);\n return newMode.returnBegin ? 0 : lexeme.length;\n }\n\n /**\n * Handle the potential end of mode\n *\n * @param {RegExpMatchArray} match - the current match\n */\n function doEndMatch(match) {\n const lexeme = match[0];\n const matchPlusRemainder = codeToHighlight.substring(match.index);\n\n const endMode = endOfMode(top, match, matchPlusRemainder);\n if (!endMode) { return NO_MATCH; }\n\n const origin = top;\n if (top.endScope && top.endScope._wrap) {\n processBuffer();\n emitKeyword(lexeme, top.endScope._wrap);\n } else if (top.endScope && top.endScope._multi) {\n processBuffer();\n emitMultiClass(top.endScope, match);\n } else if (origin.skip) {\n modeBuffer += lexeme;\n } else {\n if (!(origin.returnEnd || origin.excludeEnd)) {\n modeBuffer += lexeme;\n }\n processBuffer();\n if (origin.excludeEnd) {\n modeBuffer = lexeme;\n }\n }\n do {\n if (top.scope) {\n emitter.closeNode();\n }\n if (!top.skip && !top.subLanguage) {\n relevance += top.relevance;\n }\n top = top.parent;\n } while (top !== endMode.parent);\n if (endMode.starts) {\n startNewMode(endMode.starts, match);\n }\n return origin.returnEnd ? 0 : lexeme.length;\n }\n\n function processContinuations() {\n const list = [];\n for (let current = top; current !== language; current = current.parent) {\n if (current.scope) {\n list.unshift(current.scope);\n }\n }\n list.forEach(item => emitter.openNode(item));\n }\n\n /** @type {{type?: MatchType, index?: number, rule?: Mode}}} */\n let lastMatch = {};\n\n /**\n * Process an individual match\n *\n * @param {string} textBeforeMatch - text preceding the match (since the last match)\n * @param {EnhancedMatch} [match] - the match itself\n */\n function processLexeme(textBeforeMatch, match) {\n const lexeme = match && match[0];\n\n // add non-matched text to the current mode buffer\n modeBuffer += textBeforeMatch;\n\n if (lexeme == null) {\n processBuffer();\n return 0;\n }\n\n // we've found a 0 width match and we're stuck, so we need to advance\n // this happens when we have badly behaved rules that have optional matchers to the degree that\n // sometimes they can end up matching nothing at all\n // Ref: https://github.com/highlightjs/highlight.js/issues/2140\n if (lastMatch.type === \"begin\" && match.type === \"end\" && lastMatch.index === match.index && lexeme === \"\") {\n // spit the \"skipped\" character that our regex choked on back into the output sequence\n modeBuffer += codeToHighlight.slice(match.index, match.index + 1);\n if (!SAFE_MODE) {\n /** @type {AnnotatedError} */\n const err = new Error(`0 width match regex (${languageName})`);\n err.languageName = languageName;\n err.badRule = lastMatch.rule;\n throw err;\n }\n return 1;\n }\n lastMatch = match;\n\n if (match.type === \"begin\") {\n return doBeginMatch(match);\n } else if (match.type === \"illegal\" && !ignoreIllegals) {\n // illegal match, we do not continue processing\n /** @type {AnnotatedError} */\n const err = new Error('Illegal lexeme \"' + lexeme + '\" for mode \"' + (top.scope || '') + '\"');\n err.mode = top;\n throw err;\n } else if (match.type === \"end\") {\n const processed = doEndMatch(match);\n if (processed !== NO_MATCH) {\n return processed;\n }\n }\n\n // edge case for when illegal matches $ (end of line) which is technically\n // a 0 width match but not a begin/end match so it's not caught by the\n // first handler (when ignoreIllegals is true)\n if (match.type === \"illegal\" && lexeme === \"\") {\n // advance so we aren't stuck in an infinite loop\n return 1;\n }\n\n // infinite loops are BAD, this is a last ditch catch all. if we have a\n // decent number of iterations yet our index (cursor position in our\n // parsing) still 3x behind our index then something is very wrong\n // so we bail\n if (iterations > 100000 && iterations > match.index * 3) {\n const err = new Error('potential infinite loop, way more iterations than matches');\n throw err;\n }\n\n /*\n Why might be find ourselves here? An potential end match that was\n triggered but could not be completed. IE, `doEndMatch` returned NO_MATCH.\n (this could be because a callback requests the match be ignored, etc)\n\n This causes no real harm other than stopping a few times too many.\n */\n\n modeBuffer += lexeme;\n return lexeme.length;\n }\n\n const language = getLanguage(languageName);\n if (!language) {\n error(LANGUAGE_NOT_FOUND.replace(\"{}\", languageName));\n throw new Error('Unknown language: \"' + languageName + '\"');\n }\n\n const md = compileLanguage(language);\n let result = '';\n /** @type {CompiledMode} */\n let top = continuation || md;\n /** @type Record */\n const continuations = {}; // keep continuations for sub-languages\n const emitter = new options.__emitter(options);\n processContinuations();\n let modeBuffer = '';\n let relevance = 0;\n let index = 0;\n let iterations = 0;\n let resumeScanAtSamePosition = false;\n\n try {\n if (!language.__emitTokens) {\n top.matcher.considerAll();\n\n for (;;) {\n iterations++;\n if (resumeScanAtSamePosition) {\n // only regexes not matched previously will now be\n // considered for a potential match\n resumeScanAtSamePosition = false;\n } else {\n top.matcher.considerAll();\n }\n top.matcher.lastIndex = index;\n\n const match = top.matcher.exec(codeToHighlight);\n // console.log(\"match\", match[0], match.rule && match.rule.begin)\n\n if (!match) break;\n\n const beforeMatch = codeToHighlight.substring(index, match.index);\n const processedCount = processLexeme(beforeMatch, match);\n index = match.index + processedCount;\n }\n processLexeme(codeToHighlight.substring(index));\n } else {\n language.__emitTokens(codeToHighlight, emitter);\n }\n\n emitter.finalize();\n result = emitter.toHTML();\n\n return {\n language: languageName,\n value: result,\n relevance,\n illegal: false,\n _emitter: emitter,\n _top: top\n };\n } catch (err) {\n if (err.message && err.message.includes('Illegal')) {\n return {\n language: languageName,\n value: escape(codeToHighlight),\n illegal: true,\n relevance: 0,\n _illegalBy: {\n message: err.message,\n index,\n context: codeToHighlight.slice(index - 100, index + 100),\n mode: err.mode,\n resultSoFar: result\n },\n _emitter: emitter\n };\n } else if (SAFE_MODE) {\n return {\n language: languageName,\n value: escape(codeToHighlight),\n illegal: false,\n relevance: 0,\n errorRaised: err,\n _emitter: emitter,\n _top: top\n };\n } else {\n throw err;\n }\n }\n }\n\n /**\n * returns a valid highlight result, without actually doing any actual work,\n * auto highlight starts with this and it's possible for small snippets that\n * auto-detection may not find a better match\n * @param {string} code\n * @returns {HighlightResult}\n */\n function justTextHighlightResult(code) {\n const result = {\n value: escape(code),\n illegal: false,\n relevance: 0,\n _top: PLAINTEXT_LANGUAGE,\n _emitter: new options.__emitter(options)\n };\n result._emitter.addText(code);\n return result;\n }\n\n /**\n Highlighting with language detection. Accepts a string with the code to\n highlight. Returns an object with the following properties:\n\n - language (detected language)\n - relevance (int)\n - value (an HTML string with highlighting markup)\n - secondBest (object with the same structure for second-best heuristically\n detected language, may be absent)\n\n @param {string} code\n @param {Array} [languageSubset]\n @returns {AutoHighlightResult}\n */\n function highlightAuto(code, languageSubset) {\n languageSubset = languageSubset || options.languages || Object.keys(languages);\n const plaintext = justTextHighlightResult(code);\n\n const results = languageSubset.filter(getLanguage).filter(autoDetection).map(name =>\n _highlight(name, code, false)\n );\n results.unshift(plaintext); // plaintext is always an option\n\n const sorted = results.sort((a, b) => {\n // sort base on relevance\n if (a.relevance !== b.relevance) return b.relevance - a.relevance;\n\n // always award the tie to the base language\n // ie if C++ and Arduino are tied, it's more likely to be C++\n if (a.language && b.language) {\n if (getLanguage(a.language).supersetOf === b.language) {\n return 1;\n } else if (getLanguage(b.language).supersetOf === a.language) {\n return -1;\n }\n }\n\n // otherwise say they are equal, which has the effect of sorting on\n // relevance while preserving the original ordering - which is how ties\n // have historically been settled, ie the language that comes first always\n // wins in the case of a tie\n return 0;\n });\n\n const [best, secondBest] = sorted;\n\n /** @type {AutoHighlightResult} */\n const result = best;\n result.secondBest = secondBest;\n\n return result;\n }\n\n /**\n * Builds new class name for block given the language name\n *\n * @param {HTMLElement} element\n * @param {string} [currentLang]\n * @param {string} [resultLang]\n */\n function updateClassName(element, currentLang, resultLang) {\n const language = (currentLang && aliases[currentLang]) || resultLang;\n\n element.classList.add(\"hljs\");\n element.classList.add(`language-${language}`);\n }\n\n /**\n * Applies highlighting to a DOM node containing code.\n *\n * @param {HighlightedHTMLElement} element - the HTML element to highlight\n */\n function highlightElement(element) {\n /** @type HTMLElement */\n let node = null;\n const language = blockLanguage(element);\n\n if (shouldNotHighlight(language)) return;\n\n fire(\"before:highlightElement\",\n { el: element, language });\n\n if (element.dataset.highlighted) {\n console.log(\"Element previously highlighted. To highlight again, first unset `dataset.highlighted`.\", element);\n return;\n }\n\n // we should be all text, no child nodes (unescaped HTML) - this is possibly\n // an HTML injection attack - it's likely too late if this is already in\n // production (the code has likely already done its damage by the time\n // we're seeing it)... but we yell loudly about this so that hopefully it's\n // more likely to be caught in development before making it to production\n if (element.children.length > 0) {\n if (!options.ignoreUnescapedHTML) {\n console.warn(\"One of your code blocks includes unescaped HTML. This is a potentially serious security risk.\");\n console.warn(\"https://github.com/highlightjs/highlight.js/wiki/security\");\n console.warn(\"The element with unescaped HTML:\");\n console.warn(element);\n }\n if (options.throwUnescapedHTML) {\n const err = new HTMLInjectionError(\n \"One of your code blocks includes unescaped HTML.\",\n element.innerHTML\n );\n throw err;\n }\n }\n\n node = element;\n const text = node.textContent;\n const result = language ? highlight(text, { language, ignoreIllegals: true }) : highlightAuto(text);\n\n element.innerHTML = result.value;\n element.dataset.highlighted = \"yes\";\n updateClassName(element, language, result.language);\n element.result = {\n language: result.language,\n // TODO: remove with version 11.0\n re: result.relevance,\n relevance: result.relevance\n };\n if (result.secondBest) {\n element.secondBest = {\n language: result.secondBest.language,\n relevance: result.secondBest.relevance\n };\n }\n\n fire(\"after:highlightElement\", { el: element, result, text });\n }\n\n /**\n * Updates highlight.js global options with the passed options\n *\n * @param {Partial} userOptions\n */\n function configure(userOptions) {\n options = inherit(options, userOptions);\n }\n\n // TODO: remove v12, deprecated\n const initHighlighting = () => {\n highlightAll();\n deprecated(\"10.6.0\", \"initHighlighting() deprecated. Use highlightAll() now.\");\n };\n\n // TODO: remove v12, deprecated\n function initHighlightingOnLoad() {\n highlightAll();\n deprecated(\"10.6.0\", \"initHighlightingOnLoad() deprecated. Use highlightAll() now.\");\n }\n\n let wantsHighlight = false;\n\n /**\n * auto-highlights all pre>code elements on the page\n */\n function highlightAll() {\n // if we are called too early in the loading process\n if (document.readyState === \"loading\") {\n wantsHighlight = true;\n return;\n }\n\n const blocks = document.querySelectorAll(options.cssSelector);\n blocks.forEach(highlightElement);\n }\n\n function boot() {\n // if a highlight was requested before DOM was loaded, do now\n if (wantsHighlight) highlightAll();\n }\n\n // make sure we are in the browser environment\n if (typeof window !== 'undefined' && window.addEventListener) {\n window.addEventListener('DOMContentLoaded', boot, false);\n }\n\n /**\n * Register a language grammar module\n *\n * @param {string} languageName\n * @param {LanguageFn} languageDefinition\n */\n function registerLanguage(languageName, languageDefinition) {\n let lang = null;\n try {\n lang = languageDefinition(hljs);\n } catch (error$1) {\n error(\"Language definition for '{}' could not be registered.\".replace(\"{}\", languageName));\n // hard or soft error\n if (!SAFE_MODE) { throw error$1; } else { error(error$1); }\n // languages that have serious errors are replaced with essentially a\n // \"plaintext\" stand-in so that the code blocks will still get normal\n // css classes applied to them - and one bad language won't break the\n // entire highlighter\n lang = PLAINTEXT_LANGUAGE;\n }\n // give it a temporary name if it doesn't have one in the meta-data\n if (!lang.name) lang.name = languageName;\n languages[languageName] = lang;\n lang.rawDefinition = languageDefinition.bind(null, hljs);\n\n if (lang.aliases) {\n registerAliases(lang.aliases, { languageName });\n }\n }\n\n /**\n * Remove a language grammar module\n *\n * @param {string} languageName\n */\n function unregisterLanguage(languageName) {\n delete languages[languageName];\n for (const alias of Object.keys(aliases)) {\n if (aliases[alias] === languageName) {\n delete aliases[alias];\n }\n }\n }\n\n /**\n * @returns {string[]} List of language internal names\n */\n function listLanguages() {\n return Object.keys(languages);\n }\n\n /**\n * @param {string} name - name of the language to retrieve\n * @returns {Language | undefined}\n */\n function getLanguage(name) {\n name = (name || '').toLowerCase();\n return languages[name] || languages[aliases[name]];\n }\n\n /**\n *\n * @param {string|string[]} aliasList - single alias or list of aliases\n * @param {{languageName: string}} opts\n */\n function registerAliases(aliasList, { languageName }) {\n if (typeof aliasList === 'string') {\n aliasList = [aliasList];\n }\n aliasList.forEach(alias => { aliases[alias.toLowerCase()] = languageName; });\n }\n\n /**\n * Determines if a given language has auto-detection enabled\n * @param {string} name - name of the language\n */\n function autoDetection(name) {\n const lang = getLanguage(name);\n return lang && !lang.disableAutodetect;\n }\n\n /**\n * Upgrades the old highlightBlock plugins to the new\n * highlightElement API\n * @param {HLJSPlugin} plugin\n */\n function upgradePluginAPI(plugin) {\n // TODO: remove with v12\n if (plugin[\"before:highlightBlock\"] && !plugin[\"before:highlightElement\"]) {\n plugin[\"before:highlightElement\"] = (data) => {\n plugin[\"before:highlightBlock\"](\n Object.assign({ block: data.el }, data)\n );\n };\n }\n if (plugin[\"after:highlightBlock\"] && !plugin[\"after:highlightElement\"]) {\n plugin[\"after:highlightElement\"] = (data) => {\n plugin[\"after:highlightBlock\"](\n Object.assign({ block: data.el }, data)\n );\n };\n }\n }\n\n /**\n * @param {HLJSPlugin} plugin\n */\n function addPlugin(plugin) {\n upgradePluginAPI(plugin);\n plugins.push(plugin);\n }\n\n /**\n * @param {HLJSPlugin} plugin\n */\n function removePlugin(plugin) {\n const index = plugins.indexOf(plugin);\n if (index !== -1) {\n plugins.splice(index, 1);\n }\n }\n\n /**\n *\n * @param {PluginEvent} event\n * @param {any} args\n */\n function fire(event, args) {\n const cb = event;\n plugins.forEach(function(plugin) {\n if (plugin[cb]) {\n plugin[cb](args);\n }\n });\n }\n\n /**\n * DEPRECATED\n * @param {HighlightedHTMLElement} el\n */\n function deprecateHighlightBlock(el) {\n deprecated(\"10.7.0\", \"highlightBlock will be removed entirely in v12.0\");\n deprecated(\"10.7.0\", \"Please use highlightElement now.\");\n\n return highlightElement(el);\n }\n\n /* Interface definition */\n Object.assign(hljs, {\n highlight,\n highlightAuto,\n highlightAll,\n highlightElement,\n // TODO: Remove with v12 API\n highlightBlock: deprecateHighlightBlock,\n configure,\n initHighlighting,\n initHighlightingOnLoad,\n registerLanguage,\n unregisterLanguage,\n listLanguages,\n getLanguage,\n registerAliases,\n autoDetection,\n inherit,\n addPlugin,\n removePlugin\n });\n\n hljs.debugMode = function() { SAFE_MODE = false; };\n hljs.safeMode = function() { SAFE_MODE = true; };\n hljs.versionString = version;\n\n hljs.regex = {\n concat: concat,\n lookahead: lookahead,\n either: either,\n optional: optional,\n anyNumberOfTimes: anyNumberOfTimes\n };\n\n for (const key in MODES) {\n // @ts-ignore\n if (typeof MODES[key] === \"object\") {\n // @ts-ignore\n deepFreeze(MODES[key]);\n }\n }\n\n // merge all the modes/regexes into our main object\n Object.assign(hljs, MODES);\n\n return hljs;\n};\n\n// Other names for the variable may break build script\nconst highlight = HLJS({});\n\n// returns a new instance of the highlighter to be used for extensions\n// check https://github.com/wooorm/lowlight/issues/47\nhighlight.newInstance = () => HLJS({});\n\nmodule.exports = highlight;\nhighlight.HighlightJS = highlight;\nhighlight.default = highlight;\n","/*\nLanguage: 1C:Enterprise\nAuthor: Stanislav Belov \nDescription: built-in language 1C:Enterprise (v7, v8)\nCategory: enterprise\n*/\n\nfunction _1c(hljs) {\n // общий паттерн для определения идентификаторов\n const UNDERSCORE_IDENT_RE = '[A-Za-zА-Яа-яёЁ_][A-Za-zА-Яа-яёЁ_0-9]+';\n\n // v7 уникальные ключевые слова, отсутствующие в v8 ==> keyword\n const v7_keywords =\n 'далее ';\n\n // v8 ключевые слова ==> keyword\n const v8_keywords =\n 'возврат вызватьисключение выполнить для если и из или иначе иначеесли исключение каждого конецесли '\n + 'конецпопытки конеццикла не новый перейти перем по пока попытка прервать продолжить тогда цикл экспорт ';\n\n // keyword : ключевые слова\n const KEYWORD = v7_keywords + v8_keywords;\n\n // v7 уникальные директивы, отсутствующие в v8 ==> meta-keyword\n const v7_meta_keywords =\n 'загрузитьизфайла ';\n\n // v8 ключевые слова в инструкциях препроцессора, директивах компиляции, аннотациях ==> meta-keyword\n const v8_meta_keywords =\n 'вебклиент вместо внешнеесоединение клиент конецобласти мобильноеприложениеклиент мобильноеприложениесервер '\n + 'наклиенте наклиентенасервере наклиентенасерверебезконтекста насервере насерверебезконтекста область перед '\n + 'после сервер толстыйклиентобычноеприложение толстыйклиентуправляемоеприложение тонкийклиент ';\n\n // meta-keyword : ключевые слова в инструкциях препроцессора, директивах компиляции, аннотациях\n const METAKEYWORD = v7_meta_keywords + v8_meta_keywords;\n\n // v7 системные константы ==> built_in\n const v7_system_constants =\n 'разделительстраниц разделительстрок символтабуляции ';\n\n // v7 уникальные методы глобального контекста, отсутствующие в v8 ==> built_in\n const v7_global_context_methods =\n 'ansitooem oemtoansi ввестивидсубконто ввестиперечисление ввестипериод ввестиплансчетов выбранныйплансчетов '\n + 'датагод датамесяц датачисло заголовоксистемы значениевстроку значениеизстроки каталогиб каталогпользователя '\n + 'кодсимв конгода конецпериодаби конецрассчитанногопериодаби конецстандартногоинтервала конквартала конмесяца '\n + 'коннедели лог лог10 максимальноеколичествосубконто названиеинтерфейса названиенабораправ назначитьвид '\n + 'назначитьсчет найтиссылки началопериодаби началостандартногоинтервала начгода начквартала начмесяца '\n + 'начнедели номерднягода номерднянедели номернеделигода обработкаожидания основнойжурналрасчетов '\n + 'основнойплансчетов основнойязык очиститьокносообщений периодстр получитьвремята получитьдатута '\n + 'получитьдокументта получитьзначенияотбора получитьпозициюта получитьпустоезначение получитьта '\n + 'префиксавтонумерации пропись пустоезначение разм разобратьпозициюдокумента рассчитатьрегистрына '\n + 'рассчитатьрегистрыпо симв создатьобъект статусвозврата стрколичествострок сформироватьпозициюдокумента '\n + 'счетпокоду текущеевремя типзначения типзначениястр установитьтана установитьтапо фиксшаблон шаблон ';\n\n // v8 методы глобального контекста ==> built_in\n const v8_global_context_methods =\n 'acos asin atan base64значение base64строка cos exp log log10 pow sin sqrt tan xmlзначение xmlстрока '\n + 'xmlтип xmlтипзнч активноеокно безопасныйрежим безопасныйрежимразделенияданных булево ввестидату ввестизначение '\n + 'ввестистроку ввестичисло возможностьчтенияxml вопрос восстановитьзначение врег выгрузитьжурналрегистрации '\n + 'выполнитьобработкуоповещения выполнитьпроверкуправдоступа вычислить год данныеформывзначение дата день деньгода '\n + 'деньнедели добавитьмесяц заблокироватьданныедляредактирования заблокироватьработупользователя завершитьработусистемы '\n + 'загрузитьвнешнююкомпоненту закрытьсправку записатьjson записатьxml записатьдатуjson записьжурналарегистрации '\n + 'заполнитьзначениясвойств запроситьразрешениепользователя запуститьприложение запуститьсистему зафиксироватьтранзакцию '\n + 'значениевданныеформы значениевстрокувнутр значениевфайл значениезаполнено значениеизстрокивнутр значениеизфайла '\n + 'изxmlтипа импортмоделиxdto имякомпьютера имяпользователя инициализироватьпредопределенныеданные информацияобошибке '\n + 'каталогбиблиотекимобильногоустройства каталогвременныхфайлов каталогдокументов каталогпрограммы кодироватьстроку '\n + 'кодлокализацииинформационнойбазы кодсимвола командасистемы конецгода конецдня конецквартала конецмесяца конецминуты '\n + 'конецнедели конецчаса конфигурациябазыданныхизмененадинамически конфигурацияизменена копироватьданныеформы '\n + 'копироватьфайл краткоепредставлениеошибки лев макс местноевремя месяц мин минута монопольныйрежим найти '\n + 'найтинедопустимыесимволыxml найтиокнопонавигационнойссылке найтипомеченныенаудаление найтипоссылкам найтифайлы '\n + 'началогода началодня началоквартала началомесяца началоминуты началонедели началочаса начатьзапросразрешенияпользователя '\n + 'начатьзапускприложения начатькопированиефайла начатьперемещениефайла начатьподключениевнешнейкомпоненты '\n + 'начатьподключениерасширенияработыскриптографией начатьподключениерасширенияработысфайлами начатьпоискфайлов '\n + 'начатьполучениекаталогавременныхфайлов начатьполучениекаталогадокументов начатьполучениерабочегокаталогаданныхпользователя '\n + 'начатьполучениефайлов начатьпомещениефайла начатьпомещениефайлов начатьсозданиедвоичныхданныхизфайла начатьсозданиекаталога '\n + 'начатьтранзакцию начатьудалениефайлов начатьустановкувнешнейкомпоненты начатьустановкурасширенияработыскриптографией '\n + 'начатьустановкурасширенияработысфайлами неделягода необходимостьзавершениясоединения номерсеансаинформационнойбазы '\n + 'номерсоединенияинформационнойбазы нрег нстр обновитьинтерфейс обновитьнумерациюобъектов обновитьповторноиспользуемыезначения '\n + 'обработкапрерыванияпользователя объединитьфайлы окр описаниеошибки оповестить оповеститьобизменении '\n + 'отключитьобработчикзапросанастроекклиенталицензирования отключитьобработчикожидания отключитьобработчикоповещения '\n + 'открытьзначение открытьиндекссправки открытьсодержаниесправки открытьсправку открытьформу открытьформумодально '\n + 'отменитьтранзакцию очиститьжурналрегистрации очиститьнастройкипользователя очиститьсообщения параметрыдоступа '\n + 'перейтипонавигационнойссылке переместитьфайл подключитьвнешнююкомпоненту '\n + 'подключитьобработчикзапросанастроекклиенталицензирования подключитьобработчикожидания подключитьобработчикоповещения '\n + 'подключитьрасширениеработыскриптографией подключитьрасширениеработысфайлами подробноепредставлениеошибки '\n + 'показатьвводдаты показатьвводзначения показатьвводстроки показатьвводчисла показатьвопрос показатьзначение '\n + 'показатьинформациюобошибке показатьнакарте показатьоповещениепользователя показатьпредупреждение полноеимяпользователя '\n + 'получитьcomобъект получитьxmlтип получитьадреспоместоположению получитьблокировкусеансов получитьвремязавершенияспящегосеанса '\n + 'получитьвремязасыпанияпассивногосеанса получитьвремяожиданияблокировкиданных получитьданныевыбора '\n + 'получитьдополнительныйпараметрклиенталицензирования получитьдопустимыекодылокализации получитьдопустимыечасовыепояса '\n + 'получитьзаголовокклиентскогоприложения получитьзаголовоксистемы получитьзначенияотборажурналарегистрации '\n + 'получитьидентификаторконфигурации получитьизвременногохранилища получитьимявременногофайла '\n + 'получитьимяклиенталицензирования получитьинформациюэкрановклиента получитьиспользованиежурналарегистрации '\n + 'получитьиспользованиесобытияжурналарегистрации получитькраткийзаголовокприложения получитьмакетоформления '\n + 'получитьмаскувсефайлы получитьмаскувсефайлыклиента получитьмаскувсефайлысервера получитьместоположениепоадресу '\n + 'получитьминимальнуюдлинупаролейпользователей получитьнавигационнуюссылку получитьнавигационнуюссылкуинформационнойбазы '\n + 'получитьобновлениеконфигурациибазыданных получитьобновлениепредопределенныхданныхинформационнойбазы получитьобщиймакет '\n + 'получитьобщуюформу получитьокна получитьоперативнуюотметкувремени получитьотключениебезопасногорежима '\n + 'получитьпараметрыфункциональныхопцийинтерфейса получитьполноеимяпредопределенногозначения '\n + 'получитьпредставлениянавигационныхссылок получитьпроверкусложностипаролейпользователей получитьразделительпути '\n + 'получитьразделительпутиклиента получитьразделительпутисервера получитьсеансыинформационнойбазы '\n + 'получитьскоростьклиентскогосоединения получитьсоединенияинформационнойбазы получитьсообщенияпользователю '\n + 'получитьсоответствиеобъектаиформы получитьсоставстандартногоинтерфейсаodata получитьструктурухранениябазыданных '\n + 'получитьтекущийсеансинформационнойбазы получитьфайл получитьфайлы получитьформу получитьфункциональнуюопцию '\n + 'получитьфункциональнуюопциюинтерфейса получитьчасовойпоясинформационнойбазы пользователиос поместитьвовременноехранилище '\n + 'поместитьфайл поместитьфайлы прав праводоступа предопределенноезначение представлениекодалокализации представлениепериода '\n + 'представлениеправа представлениеприложения представлениесобытияжурналарегистрации представлениечасовогопояса предупреждение '\n + 'прекратитьработусистемы привилегированныйрежим продолжитьвызов прочитатьjson прочитатьxml прочитатьдатуjson пустаястрока '\n + 'рабочийкаталогданныхпользователя разблокироватьданныедляредактирования разделитьфайл разорватьсоединениесвнешнимисточникомданных '\n + 'раскодироватьстроку рольдоступна секунда сигнал символ скопироватьжурналрегистрации смещениелетнеговремени '\n + 'смещениестандартноговремени соединитьбуферыдвоичныхданных создатькаталог создатьфабрикуxdto сокрл сокрлп сокрп сообщить '\n + 'состояние сохранитьзначение сохранитьнастройкипользователя сред стрдлина стрзаканчиваетсяна стрзаменить стрнайти стрначинаетсяс '\n + 'строка строкасоединенияинформационнойбазы стрполучитьстроку стрразделить стрсоединить стрсравнить стрчисловхождений '\n + 'стрчислострок стршаблон текущаядата текущаядатасеанса текущаяуниверсальнаядата текущаяуниверсальнаядатавмиллисекундах '\n + 'текущийвариантинтерфейсаклиентскогоприложения текущийвариантосновногошрифтаклиентскогоприложения текущийкодлокализации '\n + 'текущийрежимзапуска текущийязык текущийязыксистемы тип типзнч транзакцияактивна трег удалитьданныеинформационнойбазы '\n + 'удалитьизвременногохранилища удалитьобъекты удалитьфайлы универсальноевремя установитьбезопасныйрежим '\n + 'установитьбезопасныйрежимразделенияданных установитьблокировкусеансов установитьвнешнююкомпоненту '\n + 'установитьвремязавершенияспящегосеанса установитьвремязасыпанияпассивногосеанса установитьвремяожиданияблокировкиданных '\n + 'установитьзаголовокклиентскогоприложения установитьзаголовоксистемы установитьиспользованиежурналарегистрации '\n + 'установитьиспользованиесобытияжурналарегистрации установитькраткийзаголовокприложения '\n + 'установитьминимальнуюдлинупаролейпользователей установитьмонопольныйрежим установитьнастройкиклиенталицензирования '\n + 'установитьобновлениепредопределенныхданныхинформационнойбазы установитьотключениебезопасногорежима '\n + 'установитьпараметрыфункциональныхопцийинтерфейса установитьпривилегированныйрежим '\n + 'установитьпроверкусложностипаролейпользователей установитьрасширениеработыскриптографией '\n + 'установитьрасширениеработысфайлами установитьсоединениесвнешнимисточникомданных установитьсоответствиеобъектаиформы '\n + 'установитьсоставстандартногоинтерфейсаodata установитьчасовойпоясинформационнойбазы установитьчасовойпояссеанса '\n + 'формат цел час часовойпояс часовойпояссеанса число числопрописью этоадресвременногохранилища ';\n\n // v8 свойства глобального контекста ==> built_in\n const v8_global_context_property =\n 'wsссылки библиотекакартинок библиотекамакетовоформлениякомпоновкиданных библиотекастилей бизнеспроцессы '\n + 'внешниеисточникиданных внешниеобработки внешниеотчеты встроенныепокупки главныйинтерфейс главныйстиль '\n + 'документы доставляемыеуведомления журналыдокументов задачи информацияобинтернетсоединении использованиерабочейдаты '\n + 'историяработыпользователя константы критерииотбора метаданные обработки отображениерекламы отправкадоставляемыхуведомлений '\n + 'отчеты панельзадачос параметрзапуска параметрысеанса перечисления планывидоврасчета планывидовхарактеристик '\n + 'планыобмена планысчетов полнотекстовыйпоиск пользователиинформационнойбазы последовательности проверкавстроенныхпокупок '\n + 'рабочаядата расширенияконфигурации регистрыбухгалтерии регистрынакопления регистрырасчета регистрысведений '\n + 'регламентныезадания сериализаторxdto справочники средствагеопозиционирования средствакриптографии средствамультимедиа '\n + 'средстваотображениярекламы средствапочты средствателефонии фабрикаxdto файловыепотоки фоновыезадания хранилищанастроек '\n + 'хранилищевариантовотчетов хранилищенастроекданныхформ хранилищеобщихнастроек хранилищепользовательскихнастроекдинамическихсписков '\n + 'хранилищепользовательскихнастроекотчетов хранилищесистемныхнастроек ';\n\n // built_in : встроенные или библиотечные объекты (константы, классы, функции)\n const BUILTIN =\n v7_system_constants\n + v7_global_context_methods + v8_global_context_methods\n + v8_global_context_property;\n\n // v8 системные наборы значений ==> class\n const v8_system_sets_of_values =\n 'webцвета windowsцвета windowsшрифты библиотекакартинок рамкистиля символы цветастиля шрифтыстиля ';\n\n // v8 системные перечисления - интерфейсные ==> class\n const v8_system_enums_interface =\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 + 'положениешкалывремени порядокотображенияточекгоризонтальнойгистограммы порядоксерийвлегендедиаграммы '\n + 'размеркартинки расположениезаголовкашкалыдиаграммы растягиваниеповертикалидиаграммыганта '\n + 'режимавтоотображениясостояния режимвводастроктаблицы режимвыборанезаполненного режимвыделениядаты '\n + 'режимвыделениястрокитаблицы режимвыделениятаблицы режимизмененияразмера режимизменениясвязанногозначения '\n + 'режимиспользованиядиалогапечати режимиспользованияпараметракоманды режиммасштабированияпросмотра '\n + 'режимосновногоокнаклиентскогоприложения режимоткрытияокнаформы режимотображениявыделения '\n + 'режимотображениягеографическойсхемы режимотображениязначенийсерии режимотрисовкисеткиграфическойсхемы '\n + 'режимполупрозрачностидиаграммы режимпробеловдиаграммы режимразмещениянастранице режимредактированияколонки '\n + 'режимсглаживаниядиаграммы режимсглаживанияиндикатора режимсписказадач сквозноевыравнивание '\n + 'сохранениеданныхформывнастройках способзаполнениятекстазаголовкашкалыдиаграммы '\n + 'способопределенияограничивающегозначениядиаграммы стандартнаягруппакоманд стандартноеоформление '\n + 'статусоповещенияпользователя стильстрелки типаппроксимациилиниитрендадиаграммы типдиаграммы '\n + 'типединицышкалывремени типимпортасерийслоягеографическойсхемы типлиниигеографическойсхемы типлиниидиаграммы '\n + 'типмаркерагеографическойсхемы типмаркерадиаграммы типобластиоформления '\n + 'типорганизацииисточникаданныхгеографическойсхемы типотображениясериислоягеографическойсхемы '\n + 'типотображенияточечногообъектагеографическойсхемы типотображенияшкалыэлементалегендыгеографическойсхемы '\n + 'типпоискаобъектовгеографическойсхемы типпроекциигеографическойсхемы типразмещенияизмерений '\n + 'типразмещенияреквизитовизмерений типрамкиэлементауправления типсводнойдиаграммы '\n + 'типсвязидиаграммыганта типсоединениязначенийпосериямдиаграммы типсоединенияточекдиаграммы '\n + 'типсоединительнойлинии типстороныэлементаграфическойсхемы типформыотчета типшкалырадарнойдиаграммы '\n + 'факторлиниитрендадиаграммы фигуракнопки фигурыграфическойсхемы фиксациявтаблице форматдняшкалывремени '\n + 'форматкартинки ширинаподчиненныхэлементовформы ';\n\n // v8 системные перечисления - свойства прикладных объектов ==> class\n const v8_system_enums_objects_properties =\n 'виддвижениябухгалтерии виддвижениянакопления видпериодарегистрарасчета видсчета видточкимаршрутабизнеспроцесса '\n + 'использованиеагрегатарегистранакопления использованиегруппиэлементов использованиережимапроведения '\n + 'использованиесреза периодичностьагрегатарегистранакопления режимавтовремя режимзаписидокумента режимпроведениядокумента ';\n\n // v8 системные перечисления - планы обмена ==> class\n const v8_system_enums_exchange_plans =\n 'авторегистрацияизменений допустимыйномерсообщения отправкаэлементаданных получениеэлементаданных ';\n\n // v8 системные перечисления - табличный документ ==> class\n const v8_system_enums_tabular_document =\n 'использованиерасшифровкитабличногодокумента ориентациястраницы положениеитоговколоноксводнойтаблицы '\n + 'положениеитоговстроксводнойтаблицы положениетекстаотносительнокартинки расположениезаголовкагруппировкитабличногодокумента '\n + 'способчтениязначенийтабличногодокумента типдвустороннейпечати типзаполненияобластитабличногодокумента '\n + 'типкурсоровтабличногодокумента типлиниирисункатабличногодокумента типлинииячейкитабличногодокумента '\n + 'типнаправленияпереходатабличногодокумента типотображениявыделениятабличногодокумента типотображениялинийсводнойтаблицы '\n + 'типразмещениятекстатабличногодокумента типрисункатабличногодокумента типсмещениятабличногодокумента '\n + 'типузоратабличногодокумента типфайлатабличногодокумента точностьпечати чередованиерасположениястраниц ';\n\n // v8 системные перечисления - планировщик ==> class\n const v8_system_enums_sheduler =\n 'отображениевремениэлементовпланировщика ';\n\n // v8 системные перечисления - форматированный документ ==> class\n const v8_system_enums_formatted_document =\n 'типфайлаформатированногодокумента ';\n\n // v8 системные перечисления - запрос ==> class\n const v8_system_enums_query =\n 'обходрезультатазапроса типзаписизапроса ';\n\n // v8 системные перечисления - построитель отчета ==> class\n const v8_system_enums_report_builder =\n 'видзаполнениярасшифровкипостроителяотчета типдобавленияпредставлений типизмеренияпостроителяотчета типразмещенияитогов ';\n\n // v8 системные перечисления - работа с файлами ==> class\n const v8_system_enums_files =\n 'доступкфайлу режимдиалогавыборафайла режимоткрытияфайла ';\n\n // v8 системные перечисления - построитель запроса ==> class\n const v8_system_enums_query_builder =\n 'типизмеренияпостроителязапроса ';\n\n // v8 системные перечисления - анализ данных ==> class\n const v8_system_enums_data_analysis =\n 'видданныханализа методкластеризации типединицыинтервалавременианализаданных типзаполнениятаблицырезультатаанализаданных '\n + 'типиспользованиячисловыхзначенийанализаданных типисточникаданныхпоискаассоциаций типколонкианализаданныхдереворешений '\n + 'типколонкианализаданныхкластеризация типколонкианализаданныхобщаястатистика типколонкианализаданныхпоискассоциаций '\n + 'типколонкианализаданныхпоискпоследовательностей типколонкимоделипрогноза типмерырасстоянияанализаданных '\n + 'типотсеченияправилассоциации типполяанализаданных типстандартизациианализаданных типупорядочиванияправилассоциациианализаданных '\n + 'типупорядочиванияшаблоновпоследовательностейанализаданных типупрощениядереварешений ';\n\n // v8 системные перечисления - xml, json, xs, dom, xdto, web-сервисы ==> class\n const v8_system_enums_xml_json_xs_dom_xdto_ws =\n 'wsнаправлениепараметра вариантxpathxs вариантзаписидатыjson вариантпростоготипаxs видгруппымоделиxs видфасетаxdto '\n + 'действиепостроителяdom завершенностьпростоготипаxs завершенностьсоставноготипаxs завершенностьсхемыxs запрещенныеподстановкиxs '\n + 'исключениягруппподстановкиxs категорияиспользованияатрибутаxs категорияограниченияидентичностиxs категорияограниченияпространствименxs '\n + 'методнаследованияxs модельсодержимогоxs назначениетипаxml недопустимыеподстановкиxs обработкапробельныхсимволовxs обработкасодержимогоxs '\n + 'ограничениезначенияxs параметрыотбораузловdom переносстрокjson позициявдокументеdom пробельныесимволыxml типатрибутаxml типзначенияjson '\n + 'типканоническогоxml типкомпонентыxs типпроверкиxml типрезультатаdomxpath типузлаdom типузлаxml формаxml формапредставленияxs '\n + 'форматдатыjson экранированиесимволовjson ';\n\n // v8 системные перечисления - система компоновки данных ==> class\n const v8_system_enums_data_composition_system =\n 'видсравнениякомпоновкиданных действиеобработкирасшифровкикомпоновкиданных направлениесортировкикомпоновкиданных '\n + 'расположениевложенныхэлементоврезультатакомпоновкиданных расположениеитоговкомпоновкиданных расположениегруппировкикомпоновкиданных '\n + 'расположениеполейгруппировкикомпоновкиданных расположениеполякомпоновкиданных расположениереквизитовкомпоновкиданных '\n + 'расположениересурсовкомпоновкиданных типбухгалтерскогоостаткакомпоновкиданных типвыводатекстакомпоновкиданных '\n + 'типгруппировкикомпоновкиданных типгруппыэлементовотборакомпоновкиданных типдополненияпериодакомпоновкиданных '\n + 'типзаголовкаполейкомпоновкиданных типмакетагруппировкикомпоновкиданных типмакетаобластикомпоновкиданных типостаткакомпоновкиданных '\n + 'типпериодакомпоновкиданных типразмещениятекстакомпоновкиданных типсвязинаборовданныхкомпоновкиданных типэлементарезультатакомпоновкиданных '\n + 'расположениелегендыдиаграммыкомпоновкиданных типпримененияотборакомпоновкиданных режимотображенияэлементанастройкикомпоновкиданных '\n + 'режимотображениянастроеккомпоновкиданных состояниеэлементанастройкикомпоновкиданных способвосстановлениянастроеккомпоновкиданных '\n + 'режимкомпоновкирезультата использованиепараметракомпоновкиданных автопозицияресурсовкомпоновкиданных '\n + 'вариантиспользованиягруппировкикомпоновкиданных расположениересурсоввдиаграммекомпоновкиданных фиксациякомпоновкиданных '\n + 'использованиеусловногооформлениякомпоновкиданных ';\n\n // v8 системные перечисления - почта ==> class\n const v8_system_enums_email =\n 'важностьинтернетпочтовогосообщения обработкатекстаинтернетпочтовогосообщения способкодированияинтернетпочтовоговложения '\n + 'способкодированиянеasciiсимволовинтернетпочтовогосообщения типтекстапочтовогосообщения протоколинтернетпочты '\n + 'статусразборапочтовогосообщения ';\n\n // v8 системные перечисления - журнал регистрации ==> class\n const v8_system_enums_logbook =\n 'режимтранзакциизаписижурналарегистрации статустранзакциизаписижурналарегистрации уровеньжурналарегистрации ';\n\n // v8 системные перечисления - криптография ==> class\n const v8_system_enums_cryptography =\n 'расположениехранилищасертификатовкриптографии режимвключениясертификатовкриптографии режимпроверкисертификатакриптографии '\n + 'типхранилищасертификатовкриптографии ';\n\n // v8 системные перечисления - ZIP ==> class\n const v8_system_enums_zip =\n 'кодировкаименфайловвzipфайле методсжатияzip методшифрованияzip режимвосстановленияпутейфайловzip режимобработкиподкаталоговzip '\n + 'режимсохраненияпутейzip уровеньсжатияzip ';\n\n // v8 системные перечисления -\n // Блокировка данных, Фоновые задания, Автоматизированное тестирование,\n // Доставляемые уведомления, Встроенные покупки, Интернет, Работа с двоичными данными ==> class\n const v8_system_enums_other =\n 'звуковоеоповещение направлениепереходакстроке позициявпотоке порядокбайтов режимблокировкиданных режимуправленияблокировкойданных '\n + 'сервисвстроенныхпокупок состояниефоновогозадания типподписчикадоставляемыхуведомлений уровеньиспользованиязащищенногосоединенияftp ';\n\n // v8 системные перечисления - схема запроса ==> class\n const v8_system_enums_request_schema =\n 'направлениепорядкасхемызапроса типдополненияпериодамисхемызапроса типконтрольнойточкисхемызапроса типобъединениясхемызапроса '\n + 'типпараметрадоступнойтаблицысхемызапроса типсоединениясхемызапроса ';\n\n // v8 системные перечисления - свойства объектов метаданных ==> class\n const v8_system_enums_properties_of_metadata_objects =\n 'httpметод автоиспользованиеобщегореквизита автопрефиксномеразадачи вариантвстроенногоязыка видиерархии видрегистранакопления '\n + 'видтаблицывнешнегоисточникаданных записьдвиженийприпроведении заполнениепоследовательностей индексирование '\n + 'использованиебазыпланавидоврасчета использованиебыстроговыбора использованиеобщегореквизита использованиеподчинения '\n + 'использованиеполнотекстовогопоиска использованиеразделяемыхданныхобщегореквизита использованиереквизита '\n + 'назначениеиспользованияприложения назначениерасширенияконфигурации направлениепередачи обновлениепредопределенныхданных '\n + 'оперативноепроведение основноепредставлениевидарасчета основноепредставлениевидахарактеристики основноепредставлениезадачи '\n + 'основноепредставлениепланаобмена основноепредставлениесправочника основноепредставлениесчета перемещениеграницыприпроведении '\n + 'периодичностьномерабизнеспроцесса периодичностьномерадокумента периодичностьрегистрарасчета периодичностьрегистрасведений '\n + 'повторноеиспользованиевозвращаемыхзначений полнотекстовыйпоискпривводепостроке принадлежностьобъекта проведение '\n + 'разделениеаутентификацииобщегореквизита разделениеданныхобщегореквизита разделениерасширенийконфигурацииобщегореквизита '\n + 'режимавтонумерацииобъектов режимзаписирегистра режимиспользованиямодальности '\n + 'режимиспользованиясинхронныхвызововрасширенийплатформыивнешнихкомпонент режимповторногоиспользованиясеансов '\n + 'режимполученияданныхвыборапривводепостроке режимсовместимости режимсовместимостиинтерфейса '\n + 'режимуправленияблокировкойданныхпоумолчанию сериикодовпланавидовхарактеристик сериикодовпланасчетов '\n + 'сериикодовсправочника созданиепривводе способвыбора способпоискастрокипривводепостроке способредактирования '\n + 'типданныхтаблицывнешнегоисточникаданных типкодапланавидоврасчета типкодасправочника типмакета типномерабизнеспроцесса '\n + 'типномерадокумента типномеразадачи типформы удалениедвижений ';\n\n // v8 системные перечисления - разные ==> class\n const v8_system_enums_differents =\n 'важностьпроблемыприменениярасширенияконфигурации вариантинтерфейсаклиентскогоприложения вариантмасштабаформклиентскогоприложения '\n + 'вариантосновногошрифтаклиентскогоприложения вариантстандартногопериода вариантстандартнойдатыначала видграницы видкартинки '\n + 'видотображенияполнотекстовогопоиска видрамки видсравнения видцвета видчисловогозначения видшрифта допустимаядлина допустимыйзнак '\n + 'использованиеbyteordermark использованиеметаданныхполнотекстовогопоиска источникрасширенийконфигурации клавиша кодвозвратадиалога '\n + 'кодировкаxbase кодировкатекста направлениепоиска направлениесортировки обновлениепредопределенныхданных обновлениеприизмененииданных '\n + 'отображениепанелиразделов проверказаполнения режимдиалогавопрос режимзапускаклиентскогоприложения режимокругления режимоткрытияформприложения '\n + 'режимполнотекстовогопоиска скоростьклиентскогосоединения состояниевнешнегоисточникаданных состояниеобновленияконфигурациибазыданных '\n + 'способвыборасертификатаwindows способкодированиястроки статуссообщения типвнешнейкомпоненты типплатформы типповеденияклавишиenter '\n + 'типэлементаинформацииовыполненииобновленияконфигурациибазыданных уровеньизоляциитранзакций хешфункция частидаты';\n\n // class: встроенные наборы значений, системные перечисления (содержат дочерние значения, обращения к которым через разыменование)\n const CLASS =\n v8_system_sets_of_values\n + v8_system_enums_interface\n + v8_system_enums_objects_properties\n + v8_system_enums_exchange_plans\n + v8_system_enums_tabular_document\n + v8_system_enums_sheduler\n + v8_system_enums_formatted_document\n + v8_system_enums_query\n + v8_system_enums_report_builder\n + v8_system_enums_files\n + v8_system_enums_query_builder\n + v8_system_enums_data_analysis\n + v8_system_enums_xml_json_xs_dom_xdto_ws\n + v8_system_enums_data_composition_system\n + v8_system_enums_email\n + v8_system_enums_logbook\n + v8_system_enums_cryptography\n + v8_system_enums_zip\n + v8_system_enums_other\n + v8_system_enums_request_schema\n + v8_system_enums_properties_of_metadata_objects\n + v8_system_enums_differents;\n\n // v8 общие объекты (у объектов есть конструктор, экземпляры создаются методом НОВЫЙ) ==> type\n const v8_shared_object =\n 'comобъект ftpсоединение httpзапрос httpсервисответ httpсоединение wsопределения wsпрокси xbase анализданных аннотацияxs '\n + 'блокировкаданных буфердвоичныхданных включениеxs выражениекомпоновкиданных генераторслучайныхчисел географическаясхема '\n + 'географическиекоординаты графическаясхема группамоделиxs данныерасшифровкикомпоновкиданных двоичныеданные дендрограмма '\n + 'диаграмма диаграммаганта диалогвыборафайла диалогвыборацвета диалогвыборашрифта диалограсписаниярегламентногозадания '\n + 'диалогредактированиястандартногопериода диапазон документdom документhtml документацияxs доставляемоеуведомление '\n + 'записьdom записьfastinfoset записьhtml записьjson записьxml записьzipфайла записьданных записьтекста записьузловdom '\n + 'запрос защищенноесоединениеopenssl значенияполейрасшифровкикомпоновкиданных извлечениетекста импортxs интернетпочта '\n + 'интернетпочтовоесообщение интернетпочтовыйпрофиль интернетпрокси интернетсоединение информациядляприложенияxs '\n + 'использованиеатрибутаxs использованиесобытияжурналарегистрации источникдоступныхнастроеккомпоновкиданных '\n + 'итераторузловdom картинка квалификаторыдаты квалификаторыдвоичныхданных квалификаторыстроки квалификаторычисла '\n + 'компоновщикмакетакомпоновкиданных компоновщикнастроеккомпоновкиданных конструктормакетаоформлениякомпоновкиданных '\n + 'конструкторнастроеккомпоновкиданных конструкторформатнойстроки линия макеткомпоновкиданных макетобластикомпоновкиданных '\n + 'макетоформлениякомпоновкиданных маскаxs менеджеркриптографии наборсхемxml настройкикомпоновкиданных настройкисериализацииjson '\n + 'обработкакартинок обработкарасшифровкикомпоновкиданных обходдереваdom объявлениеатрибутаxs объявлениенотацииxs '\n + 'объявлениеэлементаxs описаниеиспользованиясобытиядоступжурналарегистрации '\n + 'описаниеиспользованиясобытияотказвдоступежурналарегистрации описаниеобработкирасшифровкикомпоновкиданных '\n + 'описаниепередаваемогофайла описаниетипов определениегруппыатрибутовxs определениегруппымоделиxs '\n + 'определениеограниченияидентичностиxs определениепростоготипаxs определениесоставноготипаxs определениетипадокументаdom '\n + 'определенияxpathxs отборкомпоновкиданных пакетотображаемыхдокументов параметрвыбора параметркомпоновкиданных '\n + 'параметрызаписиjson параметрызаписиxml параметрычтенияxml переопределениеxs планировщик полеанализаданных '\n + 'полекомпоновкиданных построительdom построительзапроса построительотчета построительотчетаанализаданных '\n + 'построительсхемxml поток потоквпамяти почта почтовоесообщение преобразованиеxsl преобразованиекканоническомуxml '\n + 'процессорвыводарезультатакомпоновкиданныхвколлекциюзначений процессорвыводарезультатакомпоновкиданныхвтабличныйдокумент '\n + 'процессоркомпоновкиданных разыменовательпространствименdom рамка расписаниерегламентногозадания расширенноеимяxml '\n + 'результатчтенияданных своднаядиаграмма связьпараметравыбора связьпотипу связьпотипукомпоновкиданных сериализаторxdto '\n + 'сертификатклиентаwindows сертификатклиентафайл сертификаткриптографии сертификатыудостоверяющихцентровwindows '\n + 'сертификатыудостоверяющихцентровфайл сжатиеданных системнаяинформация сообщениепользователю сочетаниеклавиш '\n + 'сравнениезначений стандартнаядатаначала стандартныйпериод схемаxml схемакомпоновкиданных табличныйдокумент '\n + 'текстовыйдокумент тестируемоеприложение типданныхxml уникальныйидентификатор фабрикаxdto файл файловыйпоток '\n + 'фасетдлиныxs фасетколичестваразрядовдробнойчастиxs фасетмаксимальноговключающегозначенияxs '\n + 'фасетмаксимальногоисключающегозначенияxs фасетмаксимальнойдлиныxs фасетминимальноговключающегозначенияxs '\n + 'фасетминимальногоисключающегозначенияxs фасетминимальнойдлиныxs фасетобразцаxs фасетобщегоколичестваразрядовxs '\n + 'фасетперечисленияxs фасетпробельныхсимволовxs фильтрузловdom форматированнаястрока форматированныйдокумент '\n + 'фрагментxs хешированиеданных хранилищезначения цвет чтениеfastinfoset чтениеhtml чтениеjson чтениеxml чтениеzipфайла '\n + 'чтениеданных чтениетекста чтениеузловdom шрифт элементрезультатакомпоновкиданных ';\n\n // v8 универсальные коллекции значений ==> type\n const v8_universal_collection =\n 'comsafearray деревозначений массив соответствие списокзначений структура таблицазначений фиксированнаяструктура '\n + 'фиксированноесоответствие фиксированныймассив ';\n\n // type : встроенные типы\n const TYPE =\n v8_shared_object\n + v8_universal_collection;\n\n // literal : примитивные типы\n const LITERAL = 'null истина ложь неопределено';\n\n // number : числа\n const NUMBERS = hljs.inherit(hljs.NUMBER_MODE);\n\n // string : строки\n const STRINGS = {\n className: 'string',\n begin: '\"|\\\\|',\n end: '\"|$',\n contains: [ { begin: '\"\"' } ]\n };\n\n // number : даты\n const DATE = {\n begin: \"'\",\n end: \"'\",\n excludeBegin: true,\n excludeEnd: true,\n contains: [\n {\n className: 'number',\n begin: '\\\\d{4}([\\\\.\\\\\\\\/:-]?\\\\d{2}){0,5}'\n }\n ]\n };\n\n const PUNCTUATION = {\n match: /[;()+\\-:=,]/,\n className: \"punctuation\",\n relevance: 0\n };\n\n // comment : комментарии\n const COMMENTS = hljs.inherit(hljs.C_LINE_COMMENT_MODE);\n\n // meta : инструкции препроцессора, директивы компиляции\n const META = {\n className: 'meta',\n\n begin: '#|&',\n end: '$',\n keywords: {\n $pattern: UNDERSCORE_IDENT_RE,\n keyword: KEYWORD + METAKEYWORD\n },\n contains: [ COMMENTS ]\n };\n\n // symbol : метка goto\n const SYMBOL = {\n className: 'symbol',\n begin: '~',\n end: ';|:',\n excludeEnd: true\n };\n\n // function : объявление процедур и функций\n const FUNCTION = {\n className: 'function',\n variants: [\n {\n begin: 'процедура|функция',\n end: '\\\\)',\n keywords: 'процедура функция'\n },\n {\n begin: 'конецпроцедуры|конецфункции',\n keywords: 'конецпроцедуры конецфункции'\n }\n ],\n contains: [\n {\n begin: '\\\\(',\n end: '\\\\)',\n endsParent: true,\n contains: [\n {\n className: 'params',\n begin: UNDERSCORE_IDENT_RE,\n end: ',',\n excludeEnd: true,\n endsWithParent: true,\n keywords: {\n $pattern: UNDERSCORE_IDENT_RE,\n keyword: 'знач',\n literal: LITERAL\n },\n contains: [\n NUMBERS,\n STRINGS,\n DATE\n ]\n },\n COMMENTS\n ]\n },\n hljs.inherit(hljs.TITLE_MODE, { begin: UNDERSCORE_IDENT_RE })\n ]\n };\n\n return {\n name: '1C:Enterprise',\n case_insensitive: true,\n keywords: {\n $pattern: UNDERSCORE_IDENT_RE,\n keyword: KEYWORD,\n built_in: BUILTIN,\n class: CLASS,\n type: TYPE,\n literal: LITERAL\n },\n contains: [\n META,\n FUNCTION,\n COMMENTS,\n SYMBOL,\n NUMBERS,\n STRINGS,\n DATE,\n PUNCTUATION\n ]\n };\n}\n\nmodule.exports = _1c;\n","/*\nLanguage: Augmented Backus-Naur Form\nAuthor: Alex McKibben \nWebsite: https://tools.ietf.org/html/rfc5234\nCategory: syntax\nAudit: 2020\n*/\n\n/** @type LanguageFn */\nfunction abnf(hljs) {\n const regex = hljs.regex;\n const IDENT = /^[a-zA-Z][a-zA-Z0-9-]*/;\n\n const KEYWORDS = [\n \"ALPHA\",\n \"BIT\",\n \"CHAR\",\n \"CR\",\n \"CRLF\",\n \"CTL\",\n \"DIGIT\",\n \"DQUOTE\",\n \"HEXDIG\",\n \"HTAB\",\n \"LF\",\n \"LWSP\",\n \"OCTET\",\n \"SP\",\n \"VCHAR\",\n \"WSP\"\n ];\n\n const COMMENT = hljs.COMMENT(/;/, /$/);\n\n const TERMINAL_BINARY = {\n scope: \"symbol\",\n match: /%b[0-1]+(-[0-1]+|(\\.[0-1]+)+)?/\n };\n\n const TERMINAL_DECIMAL = {\n scope: \"symbol\",\n match: /%d[0-9]+(-[0-9]+|(\\.[0-9]+)+)?/\n };\n\n const TERMINAL_HEXADECIMAL = {\n scope: \"symbol\",\n match: /%x[0-9A-F]+(-[0-9A-F]+|(\\.[0-9A-F]+)+)?/\n };\n\n const CASE_SENSITIVITY = {\n scope: \"symbol\",\n match: /%[si](?=\".*\")/\n };\n\n const RULE_DECLARATION = {\n scope: \"attribute\",\n match: regex.concat(IDENT, /(?=\\s*=)/)\n };\n\n const ASSIGNMENT = {\n scope: \"operator\",\n match: /=\\/?/\n };\n\n return {\n name: 'Augmented Backus-Naur Form',\n illegal: /[!@#$^&',?+~`|:]/,\n keywords: KEYWORDS,\n contains: [\n ASSIGNMENT,\n RULE_DECLARATION,\n COMMENT,\n TERMINAL_BINARY,\n TERMINAL_DECIMAL,\n TERMINAL_HEXADECIMAL,\n CASE_SENSITIVITY,\n hljs.QUOTE_STRING_MODE,\n hljs.NUMBER_MODE\n ]\n };\n}\n\nmodule.exports = abnf;\n","/*\n Language: Apache Access Log\n Author: Oleg Efimov \n Description: Apache/Nginx Access Logs\n Website: https://httpd.apache.org/docs/2.4/logs.html#accesslog\n Category: web, logs\n Audit: 2020\n */\n\n/** @type LanguageFn */\nfunction accesslog(hljs) {\n const regex = hljs.regex;\n // https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods\n const HTTP_VERBS = [\n \"GET\",\n \"POST\",\n \"HEAD\",\n \"PUT\",\n \"DELETE\",\n \"CONNECT\",\n \"OPTIONS\",\n \"PATCH\",\n \"TRACE\"\n ];\n return {\n name: 'Apache Access Log',\n contains: [\n // IP\n {\n className: 'number',\n begin: /^\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(:\\d{1,5})?\\b/,\n relevance: 5\n },\n // Other numbers\n {\n className: 'number',\n begin: /\\b\\d+\\b/,\n relevance: 0\n },\n // Requests\n {\n className: 'string',\n begin: regex.concat(/\"/, regex.either(...HTTP_VERBS)),\n end: /\"/,\n keywords: HTTP_VERBS,\n illegal: /\\n/,\n relevance: 5,\n contains: [\n {\n begin: /HTTP\\/[12]\\.\\d'/,\n relevance: 5\n }\n ]\n },\n // Dates\n {\n className: 'string',\n // dates must have a certain length, this prevents matching\n // simple array accesses a[123] and [] and other common patterns\n // found in other languages\n begin: /\\[\\d[^\\]\\n]{8,}\\]/,\n illegal: /\\n/,\n relevance: 1\n },\n {\n className: 'string',\n begin: /\\[/,\n end: /\\]/,\n illegal: /\\n/,\n relevance: 0\n },\n // User agent / relevance boost\n {\n className: 'string',\n begin: /\"Mozilla\\/\\d\\.\\d \\(/,\n end: /\"/,\n illegal: /\\n/,\n relevance: 3\n },\n // Strings\n {\n className: 'string',\n begin: /\"/,\n end: /\"/,\n illegal: /\\n/,\n relevance: 0\n }\n ]\n };\n}\n\nmodule.exports = accesslog;\n","/*\nLanguage: ActionScript\nAuthor: Alexander Myadzel \nCategory: scripting\nAudit: 2020\n*/\n\n/** @type LanguageFn */\nfunction actionscript(hljs) {\n const regex = hljs.regex;\n const IDENT_RE = /[a-zA-Z_$][a-zA-Z0-9_$]*/;\n const PKG_NAME_RE = regex.concat(\n IDENT_RE,\n regex.concat(\"(\\\\.\", IDENT_RE, \")*\")\n );\n const IDENT_FUNC_RETURN_TYPE_RE = /([*]|[a-zA-Z_$][a-zA-Z0-9_$]*)/;\n\n const AS3_REST_ARG_MODE = {\n className: 'rest_arg',\n begin: /[.]{3}/,\n end: IDENT_RE,\n relevance: 10\n };\n\n const KEYWORDS = [\n \"as\",\n \"break\",\n \"case\",\n \"catch\",\n \"class\",\n \"const\",\n \"continue\",\n \"default\",\n \"delete\",\n \"do\",\n \"dynamic\",\n \"each\",\n \"else\",\n \"extends\",\n \"final\",\n \"finally\",\n \"for\",\n \"function\",\n \"get\",\n \"if\",\n \"implements\",\n \"import\",\n \"in\",\n \"include\",\n \"instanceof\",\n \"interface\",\n \"internal\",\n \"is\",\n \"namespace\",\n \"native\",\n \"new\",\n \"override\",\n \"package\",\n \"private\",\n \"protected\",\n \"public\",\n \"return\",\n \"set\",\n \"static\",\n \"super\",\n \"switch\",\n \"this\",\n \"throw\",\n \"try\",\n \"typeof\",\n \"use\",\n \"var\",\n \"void\",\n \"while\",\n \"with\"\n ];\n const LITERALS = [\n \"true\",\n \"false\",\n \"null\",\n \"undefined\"\n ];\n\n return {\n name: 'ActionScript',\n aliases: [ 'as' ],\n keywords: {\n keyword: KEYWORDS,\n literal: LITERALS\n },\n contains: [\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE,\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n hljs.C_NUMBER_MODE,\n {\n match: [\n /\\bpackage/,\n /\\s+/,\n PKG_NAME_RE\n ],\n className: {\n 1: \"keyword\",\n 3: \"title.class\"\n }\n },\n {\n match: [\n /\\b(?:class|interface|extends|implements)/,\n /\\s+/,\n IDENT_RE\n ],\n className: {\n 1: \"keyword\",\n 3: \"title.class\"\n }\n },\n {\n className: 'meta',\n beginKeywords: 'import include',\n end: /;/,\n keywords: { keyword: 'import include' }\n },\n {\n beginKeywords: 'function',\n end: /[{;]/,\n excludeEnd: true,\n illegal: /\\S/,\n contains: [\n hljs.inherit(hljs.TITLE_MODE, { className: \"title.function\" }),\n {\n className: 'params',\n begin: /\\(/,\n end: /\\)/,\n contains: [\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE,\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n AS3_REST_ARG_MODE\n ]\n },\n { begin: regex.concat(/:\\s*/, IDENT_FUNC_RETURN_TYPE_RE) }\n ]\n },\n hljs.METHOD_GUARD\n ],\n illegal: /#/\n };\n}\n\nmodule.exports = actionscript;\n","/*\nLanguage: Ada\nAuthor: Lars Schulna \nDescription: Ada is a general-purpose programming language that has great support for saftey critical and real-time applications.\n It has been developed by the DoD and thus has been used in military and safety-critical applications (like civil aviation).\n The first version appeared in the 80s, but it's still actively developed today with\n the newest standard being Ada2012.\n*/\n\n// We try to support full Ada2012\n//\n// We highlight all appearances of types, keywords, literals (string, char, number, bool)\n// and titles (user defined function/procedure/package)\n// CSS classes are set accordingly\n//\n// Languages causing problems for language detection:\n// xml (broken by Foo : Bar type), elm (broken by Foo : Bar type), vbscript-html (broken by body keyword)\n// sql (ada default.txt has a lot of sql keywords)\n\n/** @type LanguageFn */\nfunction ada(hljs) {\n // Regular expression for Ada numeric literals.\n // stolen form the VHDL highlighter\n\n // Decimal literal:\n const INTEGER_RE = '\\\\d(_|\\\\d)*';\n const EXPONENT_RE = '[eE][-+]?' + INTEGER_RE;\n const DECIMAL_LITERAL_RE = INTEGER_RE + '(\\\\.' + INTEGER_RE + ')?' + '(' + EXPONENT_RE + ')?';\n\n // Based literal:\n const BASED_INTEGER_RE = '\\\\w+';\n const BASED_LITERAL_RE = INTEGER_RE + '#' + BASED_INTEGER_RE + '(\\\\.' + BASED_INTEGER_RE + ')?' + '#' + '(' + EXPONENT_RE + ')?';\n\n const NUMBER_RE = '\\\\b(' + BASED_LITERAL_RE + '|' + DECIMAL_LITERAL_RE + ')';\n\n // Identifier regex\n const ID_REGEX = '[A-Za-z](_?[A-Za-z0-9.])*';\n\n // bad chars, only allowed in literals\n const BAD_CHARS = `[]\\\\{\\\\}%#'\"`;\n\n // Ada doesn't have block comments, only line comments\n const COMMENTS = hljs.COMMENT('--', '$');\n\n // variable declarations of the form\n // Foo : Bar := Baz;\n // where only Bar will be highlighted\n const VAR_DECLS = {\n // TODO: These spaces are not required by the Ada syntax\n // however, I have yet to see handwritten Ada code where\n // someone does not put spaces around :\n begin: '\\\\s+:\\\\s+',\n end: '\\\\s*(:=|;|\\\\)|=>|$)',\n // endsWithParent: true,\n // returnBegin: true,\n illegal: BAD_CHARS,\n contains: [\n {\n // workaround to avoid highlighting\n // named loops and declare blocks\n beginKeywords: 'loop for declare others',\n endsParent: true\n },\n {\n // properly highlight all modifiers\n className: 'keyword',\n beginKeywords: 'not null constant access function procedure in out aliased exception'\n },\n {\n className: 'type',\n begin: ID_REGEX,\n endsParent: true,\n relevance: 0\n }\n ]\n };\n\n const KEYWORDS = [\n \"abort\",\n \"else\",\n \"new\",\n \"return\",\n \"abs\",\n \"elsif\",\n \"not\",\n \"reverse\",\n \"abstract\",\n \"end\",\n \"accept\",\n \"entry\",\n \"select\",\n \"access\",\n \"exception\",\n \"of\",\n \"separate\",\n \"aliased\",\n \"exit\",\n \"or\",\n \"some\",\n \"all\",\n \"others\",\n \"subtype\",\n \"and\",\n \"for\",\n \"out\",\n \"synchronized\",\n \"array\",\n \"function\",\n \"overriding\",\n \"at\",\n \"tagged\",\n \"generic\",\n \"package\",\n \"task\",\n \"begin\",\n \"goto\",\n \"pragma\",\n \"terminate\",\n \"body\",\n \"private\",\n \"then\",\n \"if\",\n \"procedure\",\n \"type\",\n \"case\",\n \"in\",\n \"protected\",\n \"constant\",\n \"interface\",\n \"is\",\n \"raise\",\n \"use\",\n \"declare\",\n \"range\",\n \"delay\",\n \"limited\",\n \"record\",\n \"when\",\n \"delta\",\n \"loop\",\n \"rem\",\n \"while\",\n \"digits\",\n \"renames\",\n \"with\",\n \"do\",\n \"mod\",\n \"requeue\",\n \"xor\"\n ];\n\n return {\n name: 'Ada',\n case_insensitive: true,\n keywords: {\n keyword: KEYWORDS,\n literal: [\n \"True\",\n \"False\"\n ]\n },\n contains: [\n COMMENTS,\n // strings \"foobar\"\n {\n className: 'string',\n begin: /\"/,\n end: /\"/,\n contains: [\n {\n begin: /\"\"/,\n relevance: 0\n }\n ]\n },\n // characters ''\n {\n // character literals always contain one char\n className: 'string',\n begin: /'.'/\n },\n {\n // number literals\n className: 'number',\n begin: NUMBER_RE,\n relevance: 0\n },\n {\n // Attributes\n className: 'symbol',\n begin: \"'\" + ID_REGEX\n },\n {\n // package definition, maybe inside generic\n className: 'title',\n begin: '(\\\\bwith\\\\s+)?(\\\\bprivate\\\\s+)?\\\\bpackage\\\\s+(\\\\bbody\\\\s+)?',\n end: '(is|$)',\n keywords: 'package body',\n excludeBegin: true,\n excludeEnd: true,\n illegal: BAD_CHARS\n },\n {\n // function/procedure declaration/definition\n // maybe inside generic\n begin: '(\\\\b(with|overriding)\\\\s+)?\\\\b(function|procedure)\\\\s+',\n end: '(\\\\bis|\\\\bwith|\\\\brenames|\\\\)\\\\s*;)',\n keywords: 'overriding function procedure with is renames return',\n // we need to re-match the 'function' keyword, so that\n // the title mode below matches only exactly once\n returnBegin: true,\n contains:\n [\n COMMENTS,\n {\n // name of the function/procedure\n className: 'title',\n begin: '(\\\\bwith\\\\s+)?\\\\b(function|procedure)\\\\s+',\n end: '(\\\\(|\\\\s+|$)',\n excludeBegin: true,\n excludeEnd: true,\n illegal: BAD_CHARS\n },\n // 'self'\n // // parameter types\n VAR_DECLS,\n {\n // return type\n className: 'type',\n begin: '\\\\breturn\\\\s+',\n end: '(\\\\s+|;|$)',\n keywords: 'return',\n excludeBegin: true,\n excludeEnd: true,\n // we are done with functions\n endsParent: true,\n illegal: BAD_CHARS\n\n }\n ]\n },\n {\n // new type declarations\n // maybe inside generic\n className: 'type',\n begin: '\\\\b(sub)?type\\\\s+',\n end: '\\\\s+',\n keywords: 'type',\n excludeBegin: true,\n illegal: BAD_CHARS\n },\n\n // see comment above the definition\n VAR_DECLS\n\n // no markup\n // relevance boosters for small snippets\n // {begin: '\\\\s*=>\\\\s*'},\n // {begin: '\\\\s*:=\\\\s*'},\n // {begin: '\\\\s+:=\\\\s+'},\n ]\n };\n}\n\nmodule.exports = ada;\n","/*\nLanguage: AngelScript\nAuthor: Melissa Geels \nCategory: scripting\nWebsite: https://www.angelcode.com/angelscript/\n*/\n\n/** @type LanguageFn */\nfunction angelscript(hljs) {\n const builtInTypeMode = {\n className: 'built_in',\n begin: '\\\\b(void|bool|int8|int16|int32|int64|int|uint8|uint16|uint32|uint64|uint|string|ref|array|double|float|auto|dictionary)'\n };\n\n const objectHandleMode = {\n className: 'symbol',\n begin: '[a-zA-Z0-9_]+@'\n };\n\n const genericMode = {\n className: 'keyword',\n begin: '<',\n end: '>',\n contains: [\n builtInTypeMode,\n objectHandleMode\n ]\n };\n\n builtInTypeMode.contains = [ genericMode ];\n objectHandleMode.contains = [ genericMode ];\n\n const KEYWORDS = [\n \"for\",\n \"in|0\",\n \"break\",\n \"continue\",\n \"while\",\n \"do|0\",\n \"return\",\n \"if\",\n \"else\",\n \"case\",\n \"switch\",\n \"namespace\",\n \"is\",\n \"cast\",\n \"or\",\n \"and\",\n \"xor\",\n \"not\",\n \"get|0\",\n \"in\",\n \"inout|10\",\n \"out\",\n \"override\",\n \"set|0\",\n \"private\",\n \"public\",\n \"const\",\n \"default|0\",\n \"final\",\n \"shared\",\n \"external\",\n \"mixin|10\",\n \"enum\",\n \"typedef\",\n \"funcdef\",\n \"this\",\n \"super\",\n \"import\",\n \"from\",\n \"interface\",\n \"abstract|0\",\n \"try\",\n \"catch\",\n \"protected\",\n \"explicit\",\n \"property\"\n ];\n\n return {\n name: 'AngelScript',\n aliases: [ 'asc' ],\n\n keywords: KEYWORDS,\n\n // avoid close detection with C# and JS\n illegal: '(^using\\\\s+[A-Za-z0-9_\\\\.]+;$|\\\\bfunction\\\\s*[^\\\\(])',\n\n contains: [\n { // 'strings'\n className: 'string',\n begin: '\\'',\n end: '\\'',\n illegal: '\\\\n',\n contains: [ hljs.BACKSLASH_ESCAPE ],\n relevance: 0\n },\n\n // \"\"\"heredoc strings\"\"\"\n {\n className: 'string',\n begin: '\"\"\"',\n end: '\"\"\"'\n },\n\n { // \"strings\"\n className: 'string',\n begin: '\"',\n end: '\"',\n illegal: '\\\\n',\n contains: [ hljs.BACKSLASH_ESCAPE ],\n relevance: 0\n },\n\n hljs.C_LINE_COMMENT_MODE, // single-line comments\n hljs.C_BLOCK_COMMENT_MODE, // comment blocks\n\n { // metadata\n className: 'string',\n begin: '^\\\\s*\\\\[',\n end: '\\\\]'\n },\n\n { // interface or namespace declaration\n beginKeywords: 'interface namespace',\n end: /\\{/,\n illegal: '[;.\\\\-]',\n contains: [\n { // interface or namespace name\n className: 'symbol',\n begin: '[a-zA-Z0-9_]+'\n }\n ]\n },\n\n { // class declaration\n beginKeywords: 'class',\n end: /\\{/,\n illegal: '[;.\\\\-]',\n contains: [\n { // class name\n className: 'symbol',\n begin: '[a-zA-Z0-9_]+',\n contains: [\n {\n begin: '[:,]\\\\s*',\n contains: [\n {\n className: 'symbol',\n begin: '[a-zA-Z0-9_]+'\n }\n ]\n }\n ]\n }\n ]\n },\n\n builtInTypeMode, // built-in types\n objectHandleMode, // object handles\n\n { // literals\n className: 'literal',\n begin: '\\\\b(null|true|false)'\n },\n\n { // numbers\n className: 'number',\n relevance: 0,\n begin: '(-?)(\\\\b0[xXbBoOdD][a-fA-F0-9]+|(\\\\b\\\\d+(\\\\.\\\\d*)?f?|\\\\.\\\\d+f?)([eE][-+]?\\\\d+f?)?)'\n }\n ]\n };\n}\n\nmodule.exports = angelscript;\n","/*\nLanguage: Apache config\nAuthor: Ruslan Keba \nContributors: Ivan Sagalaev \nWebsite: https://httpd.apache.org\nDescription: language definition for Apache configuration files (httpd.conf & .htaccess)\nCategory: config, web\nAudit: 2020\n*/\n\n/** @type LanguageFn */\nfunction apache(hljs) {\n const NUMBER_REF = {\n className: 'number',\n begin: /[$%]\\d+/\n };\n const NUMBER = {\n className: 'number',\n begin: /\\b\\d+/\n };\n const IP_ADDRESS = {\n className: \"number\",\n begin: /\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(:\\d{1,5})?/\n };\n const PORT_NUMBER = {\n className: \"number\",\n begin: /:\\d{1,5}/\n };\n return {\n name: 'Apache config',\n aliases: [ 'apacheconf' ],\n case_insensitive: true,\n contains: [\n hljs.HASH_COMMENT_MODE,\n {\n className: 'section',\n begin: /<\\/?/,\n end: />/,\n contains: [\n IP_ADDRESS,\n PORT_NUMBER,\n // low relevance prevents us from claming XML/HTML where this rule would\n // match strings inside of XML tags\n hljs.inherit(hljs.QUOTE_STRING_MODE, { relevance: 0 })\n ]\n },\n {\n className: 'attribute',\n begin: /\\w+/,\n relevance: 0,\n // keywords aren’t needed for highlighting per se, they only boost relevance\n // for a very generally defined mode (starts with a word, ends with line-end\n keywords: { _: [\n \"order\",\n \"deny\",\n \"allow\",\n \"setenv\",\n \"rewriterule\",\n \"rewriteengine\",\n \"rewritecond\",\n \"documentroot\",\n \"sethandler\",\n \"errordocument\",\n \"loadmodule\",\n \"options\",\n \"header\",\n \"listen\",\n \"serverroot\",\n \"servername\"\n ] },\n starts: {\n end: /$/,\n relevance: 0,\n keywords: { literal: 'on off all deny allow' },\n contains: [\n {\n className: 'meta',\n begin: /\\s\\[/,\n end: /\\]$/\n },\n {\n className: 'variable',\n begin: /[\\$%]\\{/,\n end: /\\}/,\n contains: [\n 'self',\n NUMBER_REF\n ]\n },\n IP_ADDRESS,\n NUMBER,\n hljs.QUOTE_STRING_MODE\n ]\n }\n }\n ],\n illegal: /\\S/\n };\n}\n\nmodule.exports = apache;\n","/*\nLanguage: AppleScript\nAuthors: Nathan Grigg , Dr. Drang \nCategory: scripting\nWebsite: https://developer.apple.com/library/archive/documentation/AppleScript/Conceptual/AppleScriptLangGuide/introduction/ASLR_intro.html\nAudit: 2020\n*/\n\n/** @type LanguageFn */\nfunction applescript(hljs) {\n const regex = hljs.regex;\n const STRING = hljs.inherit(\n hljs.QUOTE_STRING_MODE, { illegal: null });\n const PARAMS = {\n className: 'params',\n begin: /\\(/,\n end: /\\)/,\n contains: [\n 'self',\n hljs.C_NUMBER_MODE,\n STRING\n ]\n };\n const COMMENT_MODE_1 = hljs.COMMENT(/--/, /$/);\n const COMMENT_MODE_2 = hljs.COMMENT(\n /\\(\\*/,\n /\\*\\)/,\n { contains: [\n 'self', // allow nesting\n COMMENT_MODE_1\n ] }\n );\n const COMMENTS = [\n COMMENT_MODE_1,\n COMMENT_MODE_2,\n hljs.HASH_COMMENT_MODE\n ];\n\n const KEYWORD_PATTERNS = [\n /apart from/,\n /aside from/,\n /instead of/,\n /out of/,\n /greater than/,\n /isn't|(doesn't|does not) (equal|come before|come after|contain)/,\n /(greater|less) than( or equal)?/,\n /(starts?|ends|begins?) with/,\n /contained by/,\n /comes (before|after)/,\n /a (ref|reference)/,\n /POSIX (file|path)/,\n /(date|time) string/,\n /quoted form/\n ];\n\n const BUILT_IN_PATTERNS = [\n /clipboard info/,\n /the clipboard/,\n /info for/,\n /list (disks|folder)/,\n /mount volume/,\n /path to/,\n /(close|open for) access/,\n /(get|set) eof/,\n /current date/,\n /do shell script/,\n /get volume settings/,\n /random number/,\n /set volume/,\n /system attribute/,\n /system info/,\n /time to GMT/,\n /(load|run|store) script/,\n /scripting components/,\n /ASCII (character|number)/,\n /localized string/,\n /choose (application|color|file|file name|folder|from list|remote application|URL)/,\n /display (alert|dialog)/\n ];\n\n return {\n name: 'AppleScript',\n aliases: [ 'osascript' ],\n keywords: {\n keyword:\n 'about above after against and around as at back before beginning '\n + 'behind below beneath beside between but by considering '\n + 'contain contains continue copy div does eighth else end equal '\n + 'equals error every exit fifth first for fourth from front '\n + 'get given global if ignoring in into is it its last local me '\n + 'middle mod my ninth not of on onto or over prop property put ref '\n + 'reference repeat returning script second set seventh since '\n + 'sixth some tell tenth that the|0 then third through thru '\n + 'timeout times to transaction try until where while whose with '\n + 'without',\n literal:\n 'AppleScript false linefeed return pi quote result space tab true',\n built_in:\n 'alias application boolean class constant date file integer list '\n + 'number real record string text '\n + 'activate beep count delay launch log offset read round '\n + 'run say summarize write '\n + 'character characters contents day frontmost id item length '\n + 'month name|0 paragraph paragraphs rest reverse running time version '\n + 'weekday word words year'\n },\n contains: [\n STRING,\n hljs.C_NUMBER_MODE,\n {\n className: 'built_in',\n begin: regex.concat(\n /\\b/,\n regex.either(...BUILT_IN_PATTERNS),\n /\\b/\n )\n },\n {\n className: 'built_in',\n begin: /^\\s*return\\b/\n },\n {\n className: 'literal',\n begin:\n /\\b(text item delimiters|current application|missing value)\\b/\n },\n {\n className: 'keyword',\n begin: regex.concat(\n /\\b/,\n regex.either(...KEYWORD_PATTERNS),\n /\\b/\n )\n },\n {\n beginKeywords: 'on',\n illegal: /[${=;\\n]/,\n contains: [\n hljs.UNDERSCORE_TITLE_MODE,\n PARAMS\n ]\n },\n ...COMMENTS\n ],\n illegal: /\\/\\/|->|=>|\\[\\[/\n };\n}\n\nmodule.exports = applescript;\n","/*\n Language: ArcGIS Arcade\n Category: scripting\n Author: John Foster \n Website: https://developers.arcgis.com/arcade/\n Description: ArcGIS Arcade is an expression language used in many Esri ArcGIS products such as Pro, Online, Server, Runtime, JavaScript, and Python\n*/\n\n/** @type LanguageFn */\nfunction arcade(hljs) {\n const regex = hljs.regex;\n const IDENT_RE = '[A-Za-z_][0-9A-Za-z_]*';\n const KEYWORDS = {\n keyword: [\n \"break\",\n \"case\",\n \"catch\",\n \"continue\",\n \"debugger\",\n \"do\",\n \"else\",\n \"export\",\n \"for\",\n \"function\",\n \"if\",\n \"import\",\n \"in\",\n \"new\",\n \"return\",\n \"switch\",\n \"try\",\n \"var\",\n \"void\",\n \"while\"\n ],\n literal: [\n \"BackSlash\",\n \"DoubleQuote\",\n \"ForwardSlash\",\n \"Infinity\",\n \"NaN\",\n \"NewLine\",\n \"PI\",\n \"SingleQuote\",\n \"Tab\",\n \"TextFormatting\",\n \"false\",\n \"null\",\n \"true\",\n \"undefined\"\n ],\n built_in: [\n \"Abs\",\n \"Acos\",\n \"All\",\n \"Angle\",\n \"Any\",\n \"Area\",\n \"AreaGeodetic\",\n \"Array\",\n \"Asin\",\n \"Atan\",\n \"Atan2\",\n \"Attachments\",\n \"Average\",\n \"Back\",\n \"Bearing\",\n \"Boolean\",\n \"Buffer\",\n \"BufferGeodetic\",\n \"Ceil\",\n \"Centroid\",\n \"ChangeTimeZone\",\n \"Clip\",\n \"Concatenate\",\n \"Console\",\n \"Constrain\",\n \"Contains\",\n \"ConvertDirection\",\n \"ConvexHull\",\n \"Cos\",\n \"Count\",\n \"Crosses\",\n \"Cut\",\n \"Date|0\",\n \"DateAdd\",\n \"DateDiff\",\n \"DateOnly\",\n \"Day\",\n \"Decode\",\n \"DefaultValue\",\n \"Densify\",\n \"DensifyGeodetic\",\n \"Dictionary\",\n \"Difference\",\n \"Disjoint\",\n \"Distance\",\n \"DistanceGeodetic\",\n \"Distinct\",\n \"Domain\",\n \"DomainCode\",\n \"DomainName\",\n \"EnvelopeIntersects\",\n \"Equals\",\n \"Erase\",\n \"Exp\",\n \"Expects\",\n \"Extent\",\n \"Feature\",\n \"FeatureSet\",\n \"FeatureSetByAssociation\",\n \"FeatureSetById\",\n \"FeatureSetByName\",\n \"FeatureSetByPortalItem\",\n \"FeatureSetByRelationshipClass\",\n \"FeatureSetByRelationshipName\",\n \"Filter\",\n \"Find\",\n \"First|0\",\n \"Floor\",\n \"FromCharCode\",\n \"FromCodePoint\",\n \"FromJSON\",\n \"Front\",\n \"GdbVersion\",\n \"Generalize\",\n \"Geometry\",\n \"GetEnvironment\",\n \"GetFeatureSet\",\n \"GetFeatureSetInfo\",\n \"GetUser\",\n \"GroupBy\",\n \"Guid\",\n \"HasKey\",\n \"HasValue\",\n \"Hash\",\n \"Hour\",\n \"IIf\",\n \"ISOMonth\",\n \"ISOWeek\",\n \"ISOWeekday\",\n \"ISOYear\",\n \"Includes\",\n \"IndexOf\",\n \"Insert\",\n \"Intersection\",\n \"Intersects\",\n \"IsEmpty\",\n \"IsNan\",\n \"IsSelfIntersecting\",\n \"IsSimple\",\n \"Left|0\",\n \"Length\",\n \"Length3D\",\n \"LengthGeodetic\",\n \"Log\",\n \"Lower\",\n \"Map\",\n \"Max\",\n \"Mean\",\n \"Mid\",\n \"Millisecond\",\n \"Min\",\n \"Minute\",\n \"Month\",\n \"MultiPartToSinglePart\",\n \"Multipoint\",\n \"NearestCoordinate\",\n \"NearestVertex\",\n \"NextSequenceValue\",\n \"None\",\n \"Now\",\n \"Number\",\n \"Offset\",\n \"OrderBy\",\n \"Overlaps\",\n \"Point\",\n \"Polygon\",\n \"Polyline\",\n \"Pop\",\n \"Portal\",\n \"Pow\",\n \"Proper\",\n \"Push\",\n \"Random\",\n \"Reduce\",\n \"Relate\",\n \"Replace\",\n \"Resize\",\n \"Reverse\",\n \"Right|0\",\n \"RingIsClockwise\",\n \"Rotate\",\n \"Round\",\n \"Schema\",\n \"Second\",\n \"SetGeometry\",\n \"Simplify\",\n \"Sin\",\n \"Slice\",\n \"Sort\",\n \"Splice\",\n \"Split\",\n \"Sqrt\",\n \"StandardizeGuid\",\n \"Stdev\",\n \"SubtypeCode\",\n \"SubtypeName\",\n \"Subtypes\",\n \"Sum\",\n \"SymmetricDifference\",\n \"Tan\",\n \"Text\",\n \"Time\",\n \"TimeZone\",\n \"TimeZoneOffset\",\n \"Timestamp\",\n \"ToCharCode\",\n \"ToCodePoint\",\n \"ToHex\",\n \"ToLocal\",\n \"ToUTC\",\n \"Today\",\n \"Top|0\",\n \"Touches\",\n \"TrackAccelerationAt\",\n \"TrackAccelerationWindow\",\n \"TrackCurrentAcceleration\",\n \"TrackCurrentDistance\",\n \"TrackCurrentSpeed\",\n \"TrackCurrentTime\",\n \"TrackDistanceAt\",\n \"TrackDistanceWindow\",\n \"TrackDuration\",\n \"TrackFieldWindow\",\n \"TrackGeometryWindow\",\n \"TrackIndex\",\n \"TrackSpeedAt\",\n \"TrackSpeedWindow\",\n \"TrackStartTime\",\n \"TrackWindow\",\n \"Trim\",\n \"TypeOf\",\n \"Union\",\n \"Upper\",\n \"UrlEncode\",\n \"Variance\",\n \"Week\",\n \"Weekday\",\n \"When|0\",\n \"Within\",\n \"Year|0\",\n ]\n };\n const PROFILE_VARS = [\n \"aggregatedFeatures\",\n \"analytic\",\n \"config\",\n \"datapoint\",\n \"datastore\",\n \"editcontext\",\n \"feature\",\n \"featureSet\",\n \"feedfeature\",\n \"fencefeature\",\n \"fencenotificationtype\",\n \"join\",\n \"layer\",\n \"locationupdate\",\n \"map\",\n \"measure\",\n \"measure\",\n \"originalFeature\",\n \"record\",\n \"reference\",\n \"rowindex\",\n \"sourcedatastore\",\n \"sourcefeature\",\n \"sourcelayer\",\n \"target\",\n \"targetdatastore\",\n \"targetfeature\",\n \"targetlayer\",\n \"value\",\n \"view\"\n ];\n const SYMBOL = {\n className: 'symbol',\n begin: '\\\\$' + regex.either(...PROFILE_VARS)\n };\n const NUMBER = {\n className: 'number',\n variants: [\n { begin: '\\\\b(0[bB][01]+)' },\n { begin: '\\\\b(0[oO][0-7]+)' },\n { begin: hljs.C_NUMBER_RE }\n ],\n relevance: 0\n };\n const SUBST = {\n className: 'subst',\n begin: '\\\\$\\\\{',\n end: '\\\\}',\n keywords: KEYWORDS,\n contains: [] // defined later\n };\n const TEMPLATE_STRING = {\n className: 'string',\n begin: '`',\n end: '`',\n contains: [\n hljs.BACKSLASH_ESCAPE,\n SUBST\n ]\n };\n SUBST.contains = [\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE,\n TEMPLATE_STRING,\n NUMBER,\n hljs.REGEXP_MODE\n ];\n const PARAMS_CONTAINS = SUBST.contains.concat([\n hljs.C_BLOCK_COMMENT_MODE,\n hljs.C_LINE_COMMENT_MODE\n ]);\n\n return {\n name: 'ArcGIS Arcade',\n case_insensitive: true,\n keywords: KEYWORDS,\n contains: [\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE,\n TEMPLATE_STRING,\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n SYMBOL,\n NUMBER,\n { // object attr container\n begin: /[{,]\\s*/,\n relevance: 0,\n contains: [\n {\n begin: IDENT_RE + '\\\\s*:',\n returnBegin: true,\n relevance: 0,\n contains: [\n {\n className: 'attr',\n begin: IDENT_RE,\n relevance: 0\n }\n ]\n }\n ]\n },\n { // \"value\" container\n begin: '(' + hljs.RE_STARTERS_RE + '|\\\\b(return)\\\\b)\\\\s*',\n keywords: 'return',\n contains: [\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n hljs.REGEXP_MODE,\n {\n className: 'function',\n begin: '(\\\\(.*?\\\\)|' + IDENT_RE + ')\\\\s*=>',\n returnBegin: true,\n end: '\\\\s*=>',\n contains: [\n {\n className: 'params',\n variants: [\n { begin: IDENT_RE },\n { begin: /\\(\\s*\\)/ },\n {\n begin: /\\(/,\n end: /\\)/,\n excludeBegin: true,\n excludeEnd: true,\n keywords: KEYWORDS,\n contains: PARAMS_CONTAINS\n }\n ]\n }\n ]\n }\n ],\n relevance: 0\n },\n {\n beginKeywords: 'function',\n end: /\\{/,\n excludeEnd: true,\n contains: [\n hljs.inherit(hljs.TITLE_MODE, {\n className: \"title.function\",\n begin: IDENT_RE\n }),\n {\n className: 'params',\n begin: /\\(/,\n end: /\\)/,\n excludeBegin: true,\n excludeEnd: true,\n contains: PARAMS_CONTAINS\n }\n ],\n illegal: /\\[|%/\n },\n { begin: /\\$[(.]/ }\n ],\n illegal: /#(?!!)/\n };\n}\n\nmodule.exports = arcade;\n","/*\nLanguage: C++\nCategory: common, system\nWebsite: https://isocpp.org\n*/\n\n/** @type LanguageFn */\nfunction cPlusPlus(hljs) {\n const regex = hljs.regex;\n // added for historic reasons because `hljs.C_LINE_COMMENT_MODE` does\n // not include such support nor can we be sure all the grammars depending\n // on it would desire this behavior\n const C_LINE_COMMENT_MODE = hljs.COMMENT('//', '$', { contains: [ { begin: /\\\\\\n/ } ] });\n const DECLTYPE_AUTO_RE = 'decltype\\\\(auto\\\\)';\n const NAMESPACE_RE = '[a-zA-Z_]\\\\w*::';\n const TEMPLATE_ARGUMENT_RE = '<[^<>]+>';\n const FUNCTION_TYPE_RE = '(?!struct)('\n + DECLTYPE_AUTO_RE + '|'\n + regex.optional(NAMESPACE_RE)\n + '[a-zA-Z_]\\\\w*' + regex.optional(TEMPLATE_ARGUMENT_RE)\n + ')';\n\n const CPP_PRIMITIVE_TYPES = {\n className: 'type',\n begin: '\\\\b[a-z\\\\d_]*_t\\\\b'\n };\n\n // https://en.cppreference.com/w/cpp/language/escape\n // \\\\ \\x \\xFF \\u2837 \\u00323747 \\374\n const CHARACTER_ESCAPES = '\\\\\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\\\S)';\n const STRINGS = {\n className: 'string',\n variants: [\n {\n begin: '(u8?|U|L)?\"',\n end: '\"',\n illegal: '\\\\n',\n contains: [ hljs.BACKSLASH_ESCAPE ]\n },\n {\n begin: '(u8?|U|L)?\\'(' + CHARACTER_ESCAPES + '|.)',\n end: '\\'',\n illegal: '.'\n },\n hljs.END_SAME_AS_BEGIN({\n begin: /(?:u8?|U|L)?R\"([^()\\\\ ]{0,16})\\(/,\n end: /\\)([^()\\\\ ]{0,16})\"/\n })\n ]\n };\n\n const NUMBERS = {\n className: 'number',\n variants: [\n // Floating-point literal.\n { begin:\n \"[+-]?(?:\" // Leading sign.\n // Decimal.\n + \"(?:\"\n +\"[0-9](?:'?[0-9])*\\\\.(?:[0-9](?:'?[0-9])*)?\"\n + \"|\\\\.[0-9](?:'?[0-9])*\"\n + \")(?:[Ee][+-]?[0-9](?:'?[0-9])*)?\"\n + \"|[0-9](?:'?[0-9])*[Ee][+-]?[0-9](?:'?[0-9])*\"\n // Hexadecimal.\n + \"|0[Xx](?:\"\n +\"[0-9A-Fa-f](?:'?[0-9A-Fa-f])*(?:\\\\.(?:[0-9A-Fa-f](?:'?[0-9A-Fa-f])*)?)?\"\n + \"|\\\\.[0-9A-Fa-f](?:'?[0-9A-Fa-f])*\"\n + \")[Pp][+-]?[0-9](?:'?[0-9])*\"\n + \")(?:\" // Literal suffixes.\n + \"[Ff](?:16|32|64|128)?\"\n + \"|(BF|bf)16\"\n + \"|[Ll]\"\n + \"|\" // Literal suffix is optional.\n + \")\"\n },\n // Integer literal.\n { begin:\n \"[+-]?\\\\b(?:\" // Leading sign.\n + \"0[Bb][01](?:'?[01])*\" // Binary.\n + \"|0[Xx][0-9A-Fa-f](?:'?[0-9A-Fa-f])*\" // Hexadecimal.\n + \"|0(?:'?[0-7])*\" // Octal or just a lone zero.\n + \"|[1-9](?:'?[0-9])*\" // Decimal.\n + \")(?:\" // Literal suffixes.\n + \"[Uu](?:LL?|ll?)\"\n + \"|[Uu][Zz]?\"\n + \"|(?:LL?|ll?)[Uu]?\"\n + \"|[Zz][Uu]\"\n + \"|\" // Literal suffix is optional.\n + \")\"\n // Note: there are user-defined literal suffixes too, but perhaps having the custom suffix not part of the\n // literal highlight actually makes it stand out more.\n }\n ],\n relevance: 0\n };\n\n const PREPROCESSOR = {\n className: 'meta',\n begin: /#\\s*[a-z]+\\b/,\n end: /$/,\n keywords: { keyword:\n 'if else elif endif define undef warning error line '\n + 'pragma _Pragma ifdef ifndef include' },\n contains: [\n {\n begin: /\\\\\\n/,\n relevance: 0\n },\n hljs.inherit(STRINGS, { className: 'string' }),\n {\n className: 'string',\n begin: /<.*?>/\n },\n C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE\n ]\n };\n\n const TITLE_MODE = {\n className: 'title',\n begin: regex.optional(NAMESPACE_RE) + hljs.IDENT_RE,\n relevance: 0\n };\n\n const FUNCTION_TITLE = regex.optional(NAMESPACE_RE) + hljs.IDENT_RE + '\\\\s*\\\\(';\n\n // https://en.cppreference.com/w/cpp/keyword\n const RESERVED_KEYWORDS = [\n 'alignas',\n 'alignof',\n 'and',\n 'and_eq',\n 'asm',\n 'atomic_cancel',\n 'atomic_commit',\n 'atomic_noexcept',\n 'auto',\n 'bitand',\n 'bitor',\n 'break',\n 'case',\n 'catch',\n 'class',\n 'co_await',\n 'co_return',\n 'co_yield',\n 'compl',\n 'concept',\n 'const_cast|10',\n 'consteval',\n 'constexpr',\n 'constinit',\n 'continue',\n 'decltype',\n 'default',\n 'delete',\n 'do',\n 'dynamic_cast|10',\n 'else',\n 'enum',\n 'explicit',\n 'export',\n 'extern',\n 'false',\n 'final',\n 'for',\n 'friend',\n 'goto',\n 'if',\n 'import',\n 'inline',\n 'module',\n 'mutable',\n 'namespace',\n 'new',\n 'noexcept',\n 'not',\n 'not_eq',\n 'nullptr',\n 'operator',\n 'or',\n 'or_eq',\n 'override',\n 'private',\n 'protected',\n 'public',\n 'reflexpr',\n 'register',\n 'reinterpret_cast|10',\n 'requires',\n 'return',\n 'sizeof',\n 'static_assert',\n 'static_cast|10',\n 'struct',\n 'switch',\n 'synchronized',\n 'template',\n 'this',\n 'thread_local',\n 'throw',\n 'transaction_safe',\n 'transaction_safe_dynamic',\n 'true',\n 'try',\n 'typedef',\n 'typeid',\n 'typename',\n 'union',\n 'using',\n 'virtual',\n 'volatile',\n 'while',\n 'xor',\n 'xor_eq'\n ];\n\n // https://en.cppreference.com/w/cpp/keyword\n const RESERVED_TYPES = [\n 'bool',\n 'char',\n 'char16_t',\n 'char32_t',\n 'char8_t',\n 'double',\n 'float',\n 'int',\n 'long',\n 'short',\n 'void',\n 'wchar_t',\n 'unsigned',\n 'signed',\n 'const',\n 'static'\n ];\n\n const TYPE_HINTS = [\n 'any',\n 'auto_ptr',\n 'barrier',\n 'binary_semaphore',\n 'bitset',\n 'complex',\n 'condition_variable',\n 'condition_variable_any',\n 'counting_semaphore',\n 'deque',\n 'false_type',\n 'future',\n 'imaginary',\n 'initializer_list',\n 'istringstream',\n 'jthread',\n 'latch',\n 'lock_guard',\n 'multimap',\n 'multiset',\n 'mutex',\n 'optional',\n 'ostringstream',\n 'packaged_task',\n 'pair',\n 'promise',\n 'priority_queue',\n 'queue',\n 'recursive_mutex',\n 'recursive_timed_mutex',\n 'scoped_lock',\n 'set',\n 'shared_future',\n 'shared_lock',\n 'shared_mutex',\n 'shared_timed_mutex',\n 'shared_ptr',\n 'stack',\n 'string_view',\n 'stringstream',\n 'timed_mutex',\n 'thread',\n 'true_type',\n 'tuple',\n 'unique_lock',\n 'unique_ptr',\n 'unordered_map',\n 'unordered_multimap',\n 'unordered_multiset',\n 'unordered_set',\n 'variant',\n 'vector',\n 'weak_ptr',\n 'wstring',\n 'wstring_view'\n ];\n\n const FUNCTION_HINTS = [\n 'abort',\n 'abs',\n 'acos',\n 'apply',\n 'as_const',\n 'asin',\n 'atan',\n 'atan2',\n 'calloc',\n 'ceil',\n 'cerr',\n 'cin',\n 'clog',\n 'cos',\n 'cosh',\n 'cout',\n 'declval',\n 'endl',\n 'exchange',\n 'exit',\n 'exp',\n 'fabs',\n 'floor',\n 'fmod',\n 'forward',\n 'fprintf',\n 'fputs',\n 'free',\n 'frexp',\n 'fscanf',\n 'future',\n 'invoke',\n 'isalnum',\n 'isalpha',\n 'iscntrl',\n 'isdigit',\n 'isgraph',\n 'islower',\n 'isprint',\n 'ispunct',\n 'isspace',\n 'isupper',\n 'isxdigit',\n 'labs',\n 'launder',\n 'ldexp',\n 'log',\n 'log10',\n 'make_pair',\n 'make_shared',\n 'make_shared_for_overwrite',\n 'make_tuple',\n 'make_unique',\n 'malloc',\n 'memchr',\n 'memcmp',\n 'memcpy',\n 'memset',\n 'modf',\n 'move',\n 'pow',\n 'printf',\n 'putchar',\n 'puts',\n 'realloc',\n 'scanf',\n 'sin',\n 'sinh',\n 'snprintf',\n 'sprintf',\n 'sqrt',\n 'sscanf',\n 'std',\n 'stderr',\n 'stdin',\n 'stdout',\n 'strcat',\n 'strchr',\n 'strcmp',\n 'strcpy',\n 'strcspn',\n 'strlen',\n 'strncat',\n 'strncmp',\n 'strncpy',\n 'strpbrk',\n 'strrchr',\n 'strspn',\n 'strstr',\n 'swap',\n 'tan',\n 'tanh',\n 'terminate',\n 'to_underlying',\n 'tolower',\n 'toupper',\n 'vfprintf',\n 'visit',\n 'vprintf',\n 'vsprintf'\n ];\n\n const LITERALS = [\n 'NULL',\n 'false',\n 'nullopt',\n 'nullptr',\n 'true'\n ];\n\n // https://en.cppreference.com/w/cpp/keyword\n const BUILT_IN = [ '_Pragma' ];\n\n const CPP_KEYWORDS = {\n type: RESERVED_TYPES,\n keyword: RESERVED_KEYWORDS,\n literal: LITERALS,\n built_in: BUILT_IN,\n _type_hints: TYPE_HINTS\n };\n\n const FUNCTION_DISPATCH = {\n className: 'function.dispatch',\n relevance: 0,\n keywords: {\n // Only for relevance, not highlighting.\n _hint: FUNCTION_HINTS },\n begin: regex.concat(\n /\\b/,\n /(?!decltype)/,\n /(?!if)/,\n /(?!for)/,\n /(?!switch)/,\n /(?!while)/,\n hljs.IDENT_RE,\n regex.lookahead(/(<[^<>]+>|)\\s*\\(/))\n };\n\n const EXPRESSION_CONTAINS = [\n FUNCTION_DISPATCH,\n PREPROCESSOR,\n CPP_PRIMITIVE_TYPES,\n C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n NUMBERS,\n STRINGS\n ];\n\n const EXPRESSION_CONTEXT = {\n // This mode covers expression context where we can't expect a function\n // definition and shouldn't highlight anything that looks like one:\n // `return some()`, `else if()`, `(x*sum(1, 2))`\n variants: [\n {\n begin: /=/,\n end: /;/\n },\n {\n begin: /\\(/,\n end: /\\)/\n },\n {\n beginKeywords: 'new throw return else',\n end: /;/\n }\n ],\n keywords: CPP_KEYWORDS,\n contains: EXPRESSION_CONTAINS.concat([\n {\n begin: /\\(/,\n end: /\\)/,\n keywords: CPP_KEYWORDS,\n contains: EXPRESSION_CONTAINS.concat([ 'self' ]),\n relevance: 0\n }\n ]),\n relevance: 0\n };\n\n const FUNCTION_DECLARATION = {\n className: 'function',\n begin: '(' + FUNCTION_TYPE_RE + '[\\\\*&\\\\s]+)+' + FUNCTION_TITLE,\n returnBegin: true,\n end: /[{;=]/,\n excludeEnd: true,\n keywords: CPP_KEYWORDS,\n illegal: /[^\\w\\s\\*&:<>.]/,\n contains: [\n { // to prevent it from being confused as the function title\n begin: DECLTYPE_AUTO_RE,\n keywords: CPP_KEYWORDS,\n relevance: 0\n },\n {\n begin: FUNCTION_TITLE,\n returnBegin: true,\n contains: [ TITLE_MODE ],\n relevance: 0\n },\n // needed because we do not have look-behind on the below rule\n // to prevent it from grabbing the final : in a :: pair\n {\n begin: /::/,\n relevance: 0\n },\n // initializers\n {\n begin: /:/,\n endsWithParent: true,\n contains: [\n STRINGS,\n NUMBERS\n ]\n },\n // allow for multiple declarations, e.g.:\n // extern void f(int), g(char);\n {\n relevance: 0,\n match: /,/\n },\n {\n className: 'params',\n begin: /\\(/,\n end: /\\)/,\n keywords: CPP_KEYWORDS,\n relevance: 0,\n contains: [\n C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n STRINGS,\n NUMBERS,\n CPP_PRIMITIVE_TYPES,\n // Count matching parentheses.\n {\n begin: /\\(/,\n end: /\\)/,\n keywords: CPP_KEYWORDS,\n relevance: 0,\n contains: [\n 'self',\n C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n STRINGS,\n NUMBERS,\n CPP_PRIMITIVE_TYPES\n ]\n }\n ]\n },\n CPP_PRIMITIVE_TYPES,\n C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n PREPROCESSOR\n ]\n };\n\n return {\n name: 'C++',\n aliases: [\n 'cc',\n 'c++',\n 'h++',\n 'hpp',\n 'hh',\n 'hxx',\n 'cxx'\n ],\n keywords: CPP_KEYWORDS,\n illegal: ' rooms (9);`\n begin: '\\\\b(deque|list|queue|priority_queue|pair|stack|vector|map|set|bitset|multiset|multimap|unordered_map|unordered_set|unordered_multiset|unordered_multimap|array|tuple|optional|variant|function)\\\\s*<(?!<)',\n end: '>',\n keywords: CPP_KEYWORDS,\n contains: [\n 'self',\n CPP_PRIMITIVE_TYPES\n ]\n },\n {\n begin: hljs.IDENT_RE + '::',\n keywords: CPP_KEYWORDS\n },\n {\n match: [\n // extra complexity to deal with `enum class` and `enum struct`\n /\\b(?:enum(?:\\s+(?:class|struct))?|class|struct|union)/,\n /\\s+/,\n /\\w+/\n ],\n className: {\n 1: 'keyword',\n 3: 'title.class'\n }\n }\n ])\n };\n}\n\n/*\nLanguage: Arduino\nAuthor: Stefania Mellai \nDescription: The Arduino® Language is a superset of C++. This rules are designed to highlight the Arduino® source code. For info about language see http://www.arduino.cc.\nWebsite: https://www.arduino.cc\nCategory: system\n*/\n\n\n/** @type LanguageFn */\nfunction arduino(hljs) {\n const ARDUINO_KW = {\n type: [\n \"boolean\",\n \"byte\",\n \"word\",\n \"String\"\n ],\n built_in: [\n \"KeyboardController\",\n \"MouseController\",\n \"SoftwareSerial\",\n \"EthernetServer\",\n \"EthernetClient\",\n \"LiquidCrystal\",\n \"RobotControl\",\n \"GSMVoiceCall\",\n \"EthernetUDP\",\n \"EsploraTFT\",\n \"HttpClient\",\n \"RobotMotor\",\n \"WiFiClient\",\n \"GSMScanner\",\n \"FileSystem\",\n \"Scheduler\",\n \"GSMServer\",\n \"YunClient\",\n \"YunServer\",\n \"IPAddress\",\n \"GSMClient\",\n \"GSMModem\",\n \"Keyboard\",\n \"Ethernet\",\n \"Console\",\n \"GSMBand\",\n \"Esplora\",\n \"Stepper\",\n \"Process\",\n \"WiFiUDP\",\n \"GSM_SMS\",\n \"Mailbox\",\n \"USBHost\",\n \"Firmata\",\n \"PImage\",\n \"Client\",\n \"Server\",\n \"GSMPIN\",\n \"FileIO\",\n \"Bridge\",\n \"Serial\",\n \"EEPROM\",\n \"Stream\",\n \"Mouse\",\n \"Audio\",\n \"Servo\",\n \"File\",\n \"Task\",\n \"GPRS\",\n \"WiFi\",\n \"Wire\",\n \"TFT\",\n \"GSM\",\n \"SPI\",\n \"SD\"\n ],\n _hints: [\n \"setup\",\n \"loop\",\n \"runShellCommandAsynchronously\",\n \"analogWriteResolution\",\n \"retrieveCallingNumber\",\n \"printFirmwareVersion\",\n \"analogReadResolution\",\n \"sendDigitalPortPair\",\n \"noListenOnLocalhost\",\n \"readJoystickButton\",\n \"setFirmwareVersion\",\n \"readJoystickSwitch\",\n \"scrollDisplayRight\",\n \"getVoiceCallStatus\",\n \"scrollDisplayLeft\",\n \"writeMicroseconds\",\n \"delayMicroseconds\",\n \"beginTransmission\",\n \"getSignalStrength\",\n \"runAsynchronously\",\n \"getAsynchronously\",\n \"listenOnLocalhost\",\n \"getCurrentCarrier\",\n \"readAccelerometer\",\n \"messageAvailable\",\n \"sendDigitalPorts\",\n \"lineFollowConfig\",\n \"countryNameWrite\",\n \"runShellCommand\",\n \"readStringUntil\",\n \"rewindDirectory\",\n \"readTemperature\",\n \"setClockDivider\",\n \"readLightSensor\",\n \"endTransmission\",\n \"analogReference\",\n \"detachInterrupt\",\n \"countryNameRead\",\n \"attachInterrupt\",\n \"encryptionType\",\n \"readBytesUntil\",\n \"robotNameWrite\",\n \"readMicrophone\",\n \"robotNameRead\",\n \"cityNameWrite\",\n \"userNameWrite\",\n \"readJoystickY\",\n \"readJoystickX\",\n \"mouseReleased\",\n \"openNextFile\",\n \"scanNetworks\",\n \"noInterrupts\",\n \"digitalWrite\",\n \"beginSpeaker\",\n \"mousePressed\",\n \"isActionDone\",\n \"mouseDragged\",\n \"displayLogos\",\n \"noAutoscroll\",\n \"addParameter\",\n \"remoteNumber\",\n \"getModifiers\",\n \"keyboardRead\",\n \"userNameRead\",\n \"waitContinue\",\n \"processInput\",\n \"parseCommand\",\n \"printVersion\",\n \"readNetworks\",\n \"writeMessage\",\n \"blinkVersion\",\n \"cityNameRead\",\n \"readMessage\",\n \"setDataMode\",\n \"parsePacket\",\n \"isListening\",\n \"setBitOrder\",\n \"beginPacket\",\n \"isDirectory\",\n \"motorsWrite\",\n \"drawCompass\",\n \"digitalRead\",\n \"clearScreen\",\n \"serialEvent\",\n \"rightToLeft\",\n \"setTextSize\",\n \"leftToRight\",\n \"requestFrom\",\n \"keyReleased\",\n \"compassRead\",\n \"analogWrite\",\n \"interrupts\",\n \"WiFiServer\",\n \"disconnect\",\n \"playMelody\",\n \"parseFloat\",\n \"autoscroll\",\n \"getPINUsed\",\n \"setPINUsed\",\n \"setTimeout\",\n \"sendAnalog\",\n \"readSlider\",\n \"analogRead\",\n \"beginWrite\",\n \"createChar\",\n \"motorsStop\",\n \"keyPressed\",\n \"tempoWrite\",\n \"readButton\",\n \"subnetMask\",\n \"debugPrint\",\n \"macAddress\",\n \"writeGreen\",\n \"randomSeed\",\n \"attachGPRS\",\n \"readString\",\n \"sendString\",\n \"remotePort\",\n \"releaseAll\",\n \"mouseMoved\",\n \"background\",\n \"getXChange\",\n \"getYChange\",\n \"answerCall\",\n \"getResult\",\n \"voiceCall\",\n \"endPacket\",\n \"constrain\",\n \"getSocket\",\n \"writeJSON\",\n \"getButton\",\n \"available\",\n \"connected\",\n \"findUntil\",\n \"readBytes\",\n \"exitValue\",\n \"readGreen\",\n \"writeBlue\",\n \"startLoop\",\n \"IPAddress\",\n \"isPressed\",\n \"sendSysex\",\n \"pauseMode\",\n \"gatewayIP\",\n \"setCursor\",\n \"getOemKey\",\n \"tuneWrite\",\n \"noDisplay\",\n \"loadImage\",\n \"switchPIN\",\n \"onRequest\",\n \"onReceive\",\n \"changePIN\",\n \"playFile\",\n \"noBuffer\",\n \"parseInt\",\n \"overflow\",\n \"checkPIN\",\n \"knobRead\",\n \"beginTFT\",\n \"bitClear\",\n \"updateIR\",\n \"bitWrite\",\n \"position\",\n \"writeRGB\",\n \"highByte\",\n \"writeRed\",\n \"setSpeed\",\n \"readBlue\",\n \"noStroke\",\n \"remoteIP\",\n \"transfer\",\n \"shutdown\",\n \"hangCall\",\n \"beginSMS\",\n \"endWrite\",\n \"attached\",\n \"maintain\",\n \"noCursor\",\n \"checkReg\",\n \"checkPUK\",\n \"shiftOut\",\n \"isValid\",\n \"shiftIn\",\n \"pulseIn\",\n \"connect\",\n \"println\",\n \"localIP\",\n \"pinMode\",\n \"getIMEI\",\n \"display\",\n \"noBlink\",\n \"process\",\n \"getBand\",\n \"running\",\n \"beginSD\",\n \"drawBMP\",\n \"lowByte\",\n \"setBand\",\n \"release\",\n \"bitRead\",\n \"prepare\",\n \"pointTo\",\n \"readRed\",\n \"setMode\",\n \"noFill\",\n \"remove\",\n \"listen\",\n \"stroke\",\n \"detach\",\n \"attach\",\n \"noTone\",\n \"exists\",\n \"buffer\",\n \"height\",\n \"bitSet\",\n \"circle\",\n \"config\",\n \"cursor\",\n \"random\",\n \"IRread\",\n \"setDNS\",\n \"endSMS\",\n \"getKey\",\n \"micros\",\n \"millis\",\n \"begin\",\n \"print\",\n \"write\",\n \"ready\",\n \"flush\",\n \"width\",\n \"isPIN\",\n \"blink\",\n \"clear\",\n \"press\",\n \"mkdir\",\n \"rmdir\",\n \"close\",\n \"point\",\n \"yield\",\n \"image\",\n \"BSSID\",\n \"click\",\n \"delay\",\n \"read\",\n \"text\",\n \"move\",\n \"peek\",\n \"beep\",\n \"rect\",\n \"line\",\n \"open\",\n \"seek\",\n \"fill\",\n \"size\",\n \"turn\",\n \"stop\",\n \"home\",\n \"find\",\n \"step\",\n \"tone\",\n \"sqrt\",\n \"RSSI\",\n \"SSID\",\n \"end\",\n \"bit\",\n \"tan\",\n \"cos\",\n \"sin\",\n \"pow\",\n \"map\",\n \"abs\",\n \"max\",\n \"min\",\n \"get\",\n \"run\",\n \"put\"\n ],\n literal: [\n \"DIGITAL_MESSAGE\",\n \"FIRMATA_STRING\",\n \"ANALOG_MESSAGE\",\n \"REPORT_DIGITAL\",\n \"REPORT_ANALOG\",\n \"INPUT_PULLUP\",\n \"SET_PIN_MODE\",\n \"INTERNAL2V56\",\n \"SYSTEM_RESET\",\n \"LED_BUILTIN\",\n \"INTERNAL1V1\",\n \"SYSEX_START\",\n \"INTERNAL\",\n \"EXTERNAL\",\n \"DEFAULT\",\n \"OUTPUT\",\n \"INPUT\",\n \"HIGH\",\n \"LOW\"\n ]\n };\n\n const ARDUINO = cPlusPlus(hljs);\n\n const kws = /** @type {Record} */ (ARDUINO.keywords);\n\n kws.type = [\n ...kws.type,\n ...ARDUINO_KW.type\n ];\n kws.literal = [\n ...kws.literal,\n ...ARDUINO_KW.literal\n ];\n kws.built_in = [\n ...kws.built_in,\n ...ARDUINO_KW.built_in\n ];\n kws._hints = ARDUINO_KW._hints;\n\n ARDUINO.name = 'Arduino';\n ARDUINO.aliases = [ 'ino' ];\n ARDUINO.supersetOf = \"cpp\";\n\n return ARDUINO;\n}\n\nmodule.exports = arduino;\n","/*\nLanguage: ARM Assembly\nAuthor: Dan Panzarella \nDescription: ARM Assembly including Thumb and Thumb2 instructions\nCategory: assembler\n*/\n\n/** @type LanguageFn */\nfunction armasm(hljs) {\n // local labels: %?[FB]?[AT]?\\d{1,2}\\w+\n\n const COMMENT = { variants: [\n hljs.COMMENT('^[ \\\\t]*(?=#)', '$', {\n relevance: 0,\n excludeBegin: true\n }),\n hljs.COMMENT('[;@]', '$', { relevance: 0 }),\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE\n ] };\n\n return {\n name: 'ARM Assembly',\n case_insensitive: true,\n aliases: [ 'arm' ],\n keywords: {\n $pattern: '\\\\.?' + hljs.IDENT_RE,\n meta:\n // GNU preprocs\n '.2byte .4byte .align .ascii .asciz .balign .byte .code .data .else .end .endif .endm .endr .equ .err .exitm .extern .global .hword .if .ifdef .ifndef .include .irp .long .macro .rept .req .section .set .skip .space .text .word .arm .thumb .code16 .code32 .force_thumb .thumb_func .ltorg '\n // ARM directives\n + 'ALIAS ALIGN ARM AREA ASSERT ATTR CN CODE CODE16 CODE32 COMMON CP DATA DCB DCD DCDU DCDO DCFD DCFDU DCI DCQ DCQU DCW DCWU DN ELIF ELSE END ENDFUNC ENDIF ENDP ENTRY EQU EXPORT EXPORTAS EXTERN FIELD FILL FUNCTION GBLA GBLL GBLS GET GLOBAL IF IMPORT INCBIN INCLUDE INFO KEEP LCLA LCLL LCLS LTORG MACRO MAP MEND MEXIT NOFP OPT PRESERVE8 PROC QN READONLY RELOC REQUIRE REQUIRE8 RLIST FN ROUT SETA SETL SETS SN SPACE SUBT THUMB THUMBX TTL WHILE WEND ',\n built_in:\n 'r0 r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13 r14 r15 ' // standard registers\n + 'w0 w1 w2 w3 w4 w5 w6 w7 w8 w9 w10 w11 w12 w13 w14 w15 ' // 32 bit ARMv8 registers\n + 'w16 w17 w18 w19 w20 w21 w22 w23 w24 w25 w26 w27 w28 w29 w30 '\n + 'x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 ' // 64 bit ARMv8 registers\n + 'x16 x17 x18 x19 x20 x21 x22 x23 x24 x25 x26 x27 x28 x29 x30 '\n + 'pc lr sp ip sl sb fp ' // typical regs plus backward compatibility\n + 'a1 a2 a3 a4 v1 v2 v3 v4 v5 v6 v7 v8 f0 f1 f2 f3 f4 f5 f6 f7 ' // more regs and fp\n + 'p0 p1 p2 p3 p4 p5 p6 p7 p8 p9 p10 p11 p12 p13 p14 p15 ' // coprocessor regs\n + 'c0 c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c11 c12 c13 c14 c15 ' // more coproc\n + 'q0 q1 q2 q3 q4 q5 q6 q7 q8 q9 q10 q11 q12 q13 q14 q15 ' // advanced SIMD NEON regs\n\n // program status registers\n + 'cpsr_c cpsr_x cpsr_s cpsr_f cpsr_cx cpsr_cxs cpsr_xs cpsr_xsf cpsr_sf cpsr_cxsf '\n + 'spsr_c spsr_x spsr_s spsr_f spsr_cx spsr_cxs spsr_xs spsr_xsf spsr_sf spsr_cxsf '\n\n // NEON and VFP registers\n + 's0 s1 s2 s3 s4 s5 s6 s7 s8 s9 s10 s11 s12 s13 s14 s15 '\n + 's16 s17 s18 s19 s20 s21 s22 s23 s24 s25 s26 s27 s28 s29 s30 s31 '\n + 'd0 d1 d2 d3 d4 d5 d6 d7 d8 d9 d10 d11 d12 d13 d14 d15 '\n + 'd16 d17 d18 d19 d20 d21 d22 d23 d24 d25 d26 d27 d28 d29 d30 d31 '\n\n + '{PC} {VAR} {TRUE} {FALSE} {OPT} {CONFIG} {ENDIAN} {CODESIZE} {CPU} {FPU} {ARCHITECTURE} {PCSTOREOFFSET} {ARMASM_VERSION} {INTER} {ROPI} {RWPI} {SWST} {NOSWST} . @'\n },\n contains: [\n {\n className: 'keyword',\n begin: '\\\\b(' // mnemonics\n + 'adc|'\n + '(qd?|sh?|u[qh]?)?add(8|16)?|usada?8|(q|sh?|u[qh]?)?(as|sa)x|'\n + 'and|adrl?|sbc|rs[bc]|asr|b[lx]?|blx|bxj|cbn?z|tb[bh]|bic|'\n + 'bfc|bfi|[su]bfx|bkpt|cdp2?|clz|clrex|cmp|cmn|cpsi[ed]|cps|'\n + 'setend|dbg|dmb|dsb|eor|isb|it[te]{0,3}|lsl|lsr|ror|rrx|'\n + 'ldm(([id][ab])|f[ds])?|ldr((s|ex)?[bhd])?|movt?|mvn|mra|mar|'\n + 'mul|[us]mull|smul[bwt][bt]|smu[as]d|smmul|smmla|'\n + 'mla|umlaal|smlal?([wbt][bt]|d)|mls|smlsl?[ds]|smc|svc|sev|'\n + 'mia([bt]{2}|ph)?|mrr?c2?|mcrr2?|mrs|msr|orr|orn|pkh(tb|bt)|rbit|'\n + 'rev(16|sh)?|sel|[su]sat(16)?|nop|pop|push|rfe([id][ab])?|'\n + 'stm([id][ab])?|str(ex)?[bhd]?|(qd?)?sub|(sh?|q|u[qh]?)?sub(8|16)|'\n + '[su]xt(a?h|a?b(16)?)|srs([id][ab])?|swpb?|swi|smi|tst|teq|'\n + 'wfe|wfi|yield'\n + ')'\n + '(eq|ne|cs|cc|mi|pl|vs|vc|hi|ls|ge|lt|gt|le|al|hs|lo)?' // condition codes\n + '[sptrx]?' // legal postfixes\n + '(?=\\\\s)' // followed by space\n },\n COMMENT,\n hljs.QUOTE_STRING_MODE,\n {\n className: 'string',\n begin: '\\'',\n end: '[^\\\\\\\\]\\'',\n relevance: 0\n },\n {\n className: 'title',\n begin: '\\\\|',\n end: '\\\\|',\n illegal: '\\\\n',\n relevance: 0\n },\n {\n className: 'number',\n variants: [\n { // hex\n begin: '[#$=]?0x[0-9a-f]+' },\n { // bin\n begin: '[#$=]?0b[01]+' },\n { // literal\n begin: '[#$=]\\\\d+' },\n { // bare number\n begin: '\\\\b\\\\d+' }\n ],\n relevance: 0\n },\n {\n className: 'symbol',\n variants: [\n { // GNU ARM syntax\n begin: '^[ \\\\t]*[a-z_\\\\.\\\\$][a-z0-9_\\\\.\\\\$]+:' },\n { // ARM syntax\n begin: '^[a-z_\\\\.\\\\$][a-z0-9_\\\\.\\\\$]+' },\n { // label reference\n begin: '[=#]\\\\w+' }\n ],\n relevance: 0\n }\n ]\n };\n}\n\nmodule.exports = armasm;\n","/*\nLanguage: HTML, XML\nWebsite: https://www.w3.org/XML/\nCategory: common, web\nAudit: 2020\n*/\n\n/** @type LanguageFn */\nfunction xml(hljs) {\n const regex = hljs.regex;\n // XML names can have the following additional letters: https://www.w3.org/TR/xml/#NT-NameChar\n // OTHER_NAME_CHARS = /[:\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]/;\n // Element names start with NAME_START_CHAR followed by optional other Unicode letters, ASCII digits, hyphens, underscores, and periods\n // const TAG_NAME_RE = regex.concat(/[A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD]/, regex.optional(/[A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*:/), /[A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*/);;\n // const XML_IDENT_RE = /[A-Z_a-z:\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]+/;\n // const TAG_NAME_RE = regex.concat(/[A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD]/, regex.optional(/[A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*:/), /[A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*/);\n // however, to cater for performance and more Unicode support rely simply on the Unicode letter class\n const TAG_NAME_RE = regex.concat(/[\\p{L}_]/u, regex.optional(/[\\p{L}0-9_.-]*:/u), /[\\p{L}0-9_.-]*/u);\n const XML_IDENT_RE = /[\\p{L}0-9._:-]+/u;\n const XML_ENTITIES = {\n className: 'symbol',\n begin: /&[a-z]+;|&#[0-9]+;|&#x[a-f0-9]+;/\n };\n const XML_META_KEYWORDS = {\n begin: /\\s/,\n contains: [\n {\n className: 'keyword',\n begin: /#?[a-z_][a-z1-9_-]+/,\n illegal: /\\n/\n }\n ]\n };\n const XML_META_PAR_KEYWORDS = hljs.inherit(XML_META_KEYWORDS, {\n begin: /\\(/,\n end: /\\)/\n });\n const APOS_META_STRING_MODE = hljs.inherit(hljs.APOS_STRING_MODE, { className: 'string' });\n const QUOTE_META_STRING_MODE = hljs.inherit(hljs.QUOTE_STRING_MODE, { className: 'string' });\n const TAG_INTERNALS = {\n endsWithParent: true,\n illegal: /`]+/ }\n ]\n }\n ]\n }\n ]\n };\n return {\n name: 'HTML, XML',\n aliases: [\n 'html',\n 'xhtml',\n 'rss',\n 'atom',\n 'xjb',\n 'xsd',\n 'xsl',\n 'plist',\n 'wsf',\n 'svg'\n ],\n case_insensitive: true,\n unicodeRegex: true,\n contains: [\n {\n className: 'meta',\n begin: //,\n relevance: 10,\n contains: [\n XML_META_KEYWORDS,\n QUOTE_META_STRING_MODE,\n APOS_META_STRING_MODE,\n XML_META_PAR_KEYWORDS,\n {\n begin: /\\[/,\n end: /\\]/,\n contains: [\n {\n className: 'meta',\n begin: //,\n contains: [\n XML_META_KEYWORDS,\n XML_META_PAR_KEYWORDS,\n QUOTE_META_STRING_MODE,\n APOS_META_STRING_MODE\n ]\n }\n ]\n }\n ]\n },\n hljs.COMMENT(\n //,\n { relevance: 10 }\n ),\n {\n begin: //,\n relevance: 10\n },\n XML_ENTITIES,\n // xml processing instructions\n {\n className: 'meta',\n end: /\\?>/,\n variants: [\n {\n begin: /<\\?xml/,\n relevance: 10,\n contains: [\n QUOTE_META_STRING_MODE\n ]\n },\n {\n begin: /<\\?[a-z][a-z0-9]+/,\n }\n ]\n\n },\n {\n className: 'tag',\n /*\n The lookahead pattern (?=...) ensures that 'begin' only matches\n ')/,\n end: />/,\n keywords: { name: 'style' },\n contains: [ TAG_INTERNALS ],\n starts: {\n end: /<\\/style>/,\n returnEnd: true,\n subLanguage: [\n 'css',\n 'xml'\n ]\n }\n },\n {\n className: 'tag',\n // See the comment in the